:root { color-scheme: dark; --bg: #0f1110; --rail: #141614; --surface: #181b18; --surface-2: #1f231f; --surface-3: #282e28; --surface-hot: #342f1d; --text: #ece8dc; --muted: #a9aa9e; --dim: #73776d; --line: #353a33; --line-strong: #555d52; --accent: #d4ad43; --accent-2: #6fb7a9; --ok: #7fbe74; --warn: #dfaa55; --bad: #e76e5e; --info: #7ea6c9; --left-sidebar-width: 92px; --left-sidebar-min-width: 72px; --left-sidebar-max-width: 180px; --rail-width: 92px; --right-sidebar-width: 728px; --right-sidebar-min-width: 560px; --right-sidebar-max-width: 740px; --right-width: clamp(var(--right-sidebar-min-width), var(--right-sidebar-width), var(--right-sidebar-max-width)); --right-width-expanded: clamp(var(--right-sidebar-min-width), var(--right-sidebar-width), var(--right-sidebar-max-width)); --rail-collapsed-width: 44px; --mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace; --body: "Aptos", "Segoe UI", system-ui, sans-serif; } * { box-sizing: border-box; } html, body { margin: 0; width: 100%; height: 100%; min-height: 0; display: grid; overflow: hidden; background: linear-gradient(90deg, rgba(212, 173, 67, 0.055) 1px, transparent 1px), linear-gradient(0deg, rgba(111, 183, 169, 0.04) 1px, transparent 1px), var(--bg); background-size: 36px 36px; color: var(--text); font: 12px/1.4 var(--body); } body > [data-app-shell] { grid-area: 1 / 1; height: 100%; min-height: 0; overflow: hidden; overscroll-behavior: contain; } body[data-auth-state="login"] { background: linear-gradient(90deg, rgba(212, 173, 67, 0.04) 1px, transparent 1px), linear-gradient(0deg, rgba(111, 183, 169, 0.035) 1px, transparent 1px), var(--bg); background-size: 32px 32px; } button, input { font: inherit; } button { color: inherit; } h1, h2, h3, p, ol, ul { margin: 0; } .workbench-shell { --rail-width: clamp(var(--left-sidebar-min-width), var(--left-sidebar-width), var(--left-sidebar-max-width)); --right-width: clamp(var(--right-sidebar-min-width), var(--right-sidebar-width), var(--right-sidebar-max-width)); --right-width-expanded: clamp(var(--right-sidebar-min-width), var(--right-sidebar-width), var(--right-sidebar-max-width)); position: relative; height: 100vh; height: 100dvh; max-height: 100dvh; min-height: 0; display: grid; grid-template-columns: var(--rail-width) minmax(420px, 1fr) var(--right-width-expanded); grid-template-rows: 1fr; overflow: hidden; overscroll-behavior: contain; background: rgba(15, 17, 16, 0.88); } .workbench-shell[hidden], body > [data-app-shell][hidden] { display: none; } .login-shell { grid-area: 1 / 1; width: 100%; height: 100vh; height: 100dvh; min-height: 0; display: grid; place-items: center; padding: 18px; overflow: hidden; } .login-shell[hidden] { display: none; } .login-panel { width: min(100%, 360px); min-width: 0; display: grid; gap: 18px; padding: 24px; background: rgba(24, 27, 24, 0.98); border: 1px solid var(--line-strong); box-shadow: 0 20px 70px rgba(0, 0, 0, 0.34); } .login-heading { display: grid; gap: 6px; min-width: 0; } .login-heading h1 { font-size: 22px; } .login-heading p:last-child { color: var(--muted); font-size: 12px; } .login-form { min-width: 0; display: grid; gap: 12px; } .login-form label { min-width: 0; display: grid; gap: 6px; color: var(--muted); font-size: 11px; font-weight: 760; } .login-form input { width: 100%; min-width: 0; min-height: 42px; padding: 0 11px; border: 1px solid var(--line); background: #101310; color: var(--text); outline: 0; } .login-form input:focus { border-color: var(--accent); box-shadow: inset 3px 0 0 var(--accent); } .login-error { min-height: 22px; padding: 7px 9px; background: rgba(231, 110, 94, 0.1); border: 1px solid rgba(231, 110, 94, 0.52); color: var(--bad); font-size: 12px; line-height: 1.35; overflow-wrap: anywhere; } .login-error[hidden] { display: none; } .login-submit, .logout-button { min-width: 0; border: 1px solid var(--line-strong); background: var(--surface-2); color: var(--text); font-weight: 800; cursor: pointer; } .login-submit { min-height: 42px; padding: 0 14px; background: var(--accent); color: #171713; } .login-submit:hover, .login-submit:focus-visible, .logout-button:hover, .logout-button:focus-visible { border-color: var(--accent); outline: 0; } .login-submit:disabled { cursor: wait; opacity: 0.72; } .logout-button { align-self: center; min-height: 34px; padding: 0 12px; font-size: 11px; } .activity-rail, .right-sidebar, .center-workspace { min-width: 0; min-height: 0; } .activity-rail { display: grid; grid-template-rows: repeat(3, minmax(42px, auto)) minmax(0, 1fr) auto; gap: 6px; padding: 8px; background: var(--rail); border-right: 1px solid var(--line); overflow: auto; } .rail-spacer { min-height: 20px; } .rail-button { width: 100%; min-width: 0; min-height: 36px; padding: 6px 5px; border: 1px solid transparent; background: transparent; color: var(--muted); font-size: 12px; font-weight: 760; line-height: 1.2; cursor: pointer; text-align: center; overflow-wrap: anywhere; word-break: keep-all; } .rail-button:hover, .rail-button:focus-visible, .rail-button.active { border-color: var(--line-strong); background: var(--surface-2); color: var(--text); outline: 0; } .rail-button.active { box-shadow: inset 3px 0 0 var(--accent); } .sidebar-toggle { min-height: 34px; border-color: var(--line); background: var(--surface); color: var(--text); } .sidebar-toggle[aria-expanded="false"] { border-color: var(--accent); background: var(--surface-hot); } .workbench-shell.is-left-sidebar-collapsed { --rail-width: var(--rail-collapsed-width); } .workbench-shell.is-left-sidebar-collapsed .activity-rail { grid-template-rows: minmax(0, 1fr) auto; padding: 7px 5px; overflow: hidden; } .workbench-shell.is-left-sidebar-collapsed .activity-rail .rail-button:not(.sidebar-toggle), .workbench-shell.is-left-sidebar-collapsed .rail-spacer { display: none; } .workbench-shell.is-left-sidebar-collapsed .sidebar-toggle { min-width: 0; padding: 4px 2px; font-size: 11px; line-height: 1.1; overflow-wrap: anywhere; } .workbench-shell.is-resizing { cursor: col-resize; user-select: none; } .resize-handle { position: absolute; z-index: 5; background: transparent; touch-action: none; } .resize-handle::before { content: ""; position: absolute; background: var(--line-strong); opacity: 0.56; } .left-sidebar-resize { top: 0; left: calc(var(--rail-width) - 6px); width: 12px; height: 100%; cursor: col-resize; } .left-sidebar-resize::before { top: 10px; bottom: 10px; left: 5px; width: 2px; } .workbench-shell.is-left-sidebar-collapsed .left-sidebar-resize { display: none; } .right-sidebar-resize { top: 0; left: 0; width: 12px; height: 100%; cursor: col-resize; } .right-sidebar-resize::before { top: 10px; bottom: 10px; left: 5px; width: 2px; } .resize-handle:hover::before, .resize-handle:focus-visible::before, .workbench-shell.is-resizing .resize-handle::before { background: var(--accent); opacity: 1; } .resize-handle:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; } .topbar, .hardware-status, .side-workspace, .workspace-panel { background: rgba(24, 27, 24, 0.97); border: 1px solid var(--line); } .eyebrow { color: var(--accent-2); font-size: 10px; font-weight: 740; letter-spacing: 0; text-transform: uppercase; } h1 { margin-top: 3px; font-size: 20px; line-height: 1.1; } h2 { font-size: 13px; line-height: 1.2; } h3 { font-size: 12px; } .status-dot, .state-tag, .badge { display: inline-flex; align-items: center; justify-content: center; flex: 0 1 auto; width: fit-content; max-width: 100%; min-height: 22px; padding: 3px 7px; border: 1px solid var(--line); background: var(--surface-2); font-family: var(--mono); font-size: 10px; font-weight: 760; text-transform: uppercase; line-height: 1.25; white-space: normal; text-align: center; overflow-wrap: anywhere; } .blockers-panel { max-height: 230px; } .panel-title-row { display: flex; justify-content: space-between; gap: 10px; align-items: center; min-width: 0; } .panel-title-row > div { min-width: 0; } .panel-title-row p, .panel-copy { color: var(--muted); } .compact-list, .conversation-list, .task-list, .hardware-list { min-height: 0; overflow: auto; } .center-workspace { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; overflow: hidden; } .topbar { min-height: 82px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 460px) auto; gap: 12px; align-items: stretch; padding: 12px; border-left: 0; border-right: 0; } .topbar-main { display: grid; align-content: center; gap: 4px; min-width: 0; } .topbar-main h2 { font-size: 19px; } .route-path { max-width: 100%; color: var(--muted); font-family: var(--mono); font-size: 11px; overflow-wrap: anywhere; } .probe-card { position: relative; min-width: 0; display: grid; align-content: center; gap: 4px; padding: 10px 12px; background: var(--surface-2); border-left: 4px solid var(--accent); } .probe-card strong { font-size: 17px; line-height: 1.2; text-transform: uppercase; overflow-wrap: anywhere; } .probe-card small { color: var(--muted); overflow-wrap: anywhere; } .live-build-summary { position: relative; min-width: 0; max-width: 100%; margin-top: 4px; padding-top: 7px; border-top: 1px solid var(--line); } .live-build-summary summary { min-width: 0; display: flex; align-items: center; gap: 6px; color: var(--text); font-family: var(--mono); font-size: 10px; line-height: 1.35; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; list-style-position: inside; } .live-build-summary summary::marker { color: var(--accent-2); } .live-build-summary-label { min-width: 0; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; overflow-wrap: anywhere; } .live-build-popover { position: absolute; z-index: 30; top: calc(100% + 8px); right: 0; width: min(100%, 560px); max-width: 100%; max-height: min(420px, 58dvh); display: none; grid-template-rows: auto minmax(0, 1fr); gap: 8px; padding: 10px; background: rgba(20, 22, 20, 0.99); border: 1px solid var(--line-strong); box-shadow: 0 18px 42px rgba(0, 0, 0, 0.42); overflow: hidden; } .live-build-summary[open] .live-build-popover { display: grid; } .live-build-popover-head { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; } .live-build-popover-head strong { min-width: 0; color: var(--text); font-family: var(--mono); font-size: 11px; line-height: 1.2; text-transform: none; overflow-wrap: anywhere; } .live-build-close { flex: 0 0 auto; min-height: 26px; padding: 3px 8px; border: 1px solid var(--line); background: var(--surface-2); color: var(--muted); font-family: var(--mono); font-size: 10px; font-weight: 760; cursor: pointer; } .live-build-close:hover, .live-build-close:focus-visible { border-color: var(--line-strong); color: var(--text); outline: 0; } .live-build-list { min-width: 0; max-height: min(352px, calc(58dvh - 54px)); display: grid; gap: 6px; overflow: auto; overscroll-behavior: contain; } .live-build-row { min-width: 0; max-width: 100%; display: grid; gap: 3px; padding: 7px; background: var(--surface); border: 1px solid var(--line); } .live-build-row-head { min-width: 0; display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 8px; } .live-build-service, .live-build-time { min-width: 0; overflow-wrap: anywhere; } .live-build-service { color: var(--text); font-weight: 800; } .live-build-time { color: var(--accent-2); font-family: var(--mono); font-size: 10px; text-align: right; } .live-build-meta { min-width: 0; max-width: 100%; display: flex; flex-wrap: wrap; gap: 4px 7px; color: var(--dim); font-family: var(--mono); font-size: 10px; overflow-wrap: anywhere; } .live-build-meta span { min-width: 0; max-width: 100%; overflow-wrap: anywhere; } .live-build-reason { color: var(--muted); font-size: 10px; overflow-wrap: anywhere; } .view { min-height: 0; overflow: auto; } .view[hidden] { display: none; } .workbench-view { padding: 10px; } .help-view { min-height: 0; padding: 10px; overflow: hidden; } .conversation-column { min-height: 100%; display: grid; grid-template-rows: minmax(280px, 1fr) minmax(170px, 0.45fr); gap: 10px; } .workspace-panel { min-width: 0; min-height: 0; display: grid; gap: 10px; padding: 12px; } .conversation-panel { grid-template-rows: auto auto minmax(0, 1fr); } .task-panel { grid-template-rows: auto minmax(0, 1fr); } .help-panel { height: 100%; grid-template-rows: auto minmax(0, 1fr); overflow: hidden; } .conversation-list, .compact-list, .task-list { display: grid; align-content: start; gap: 8px; } .record-group { min-width: 0; display: grid; gap: 7px; padding: 8px; background: var(--surface); border: 1px solid var(--line); } .record-group-head { min-width: 0; display: grid; gap: 2px; } .record-group-title { color: var(--text); font-weight: 800; overflow-wrap: anywhere; } .record-group-meta { color: var(--dim); font-family: var(--mono); font-size: 10px; overflow-wrap: anywhere; } .record-group-list { min-height: 0; display: grid; gap: 7px; } .code-agent-summary { min-width: 0; display: grid; gap: 8px; padding: 8px 10px; background: rgba(15, 17, 16, 0.72); border: 1px solid var(--line); border-left-width: 3px; } .code-agent-summary summary { min-width: 0; display: grid; grid-template-columns: auto minmax(88px, auto) minmax(120px, 1fr) minmax(110px, auto); gap: 8px; align-items: center; cursor: pointer; list-style: none; } .code-agent-summary summary::-webkit-details-marker { display: none; } .code-agent-summary summary::after { content: "展开"; justify-self: end; color: var(--dim); font-size: 10px; } .code-agent-summary[open] summary::after { content: "收起"; } .code-agent-summary-icon { font-family: var(--mono); font-size: 13px; line-height: 1; } .code-agent-summary-label { min-width: 0; font-size: 12px; overflow-wrap: anywhere; } .code-agent-summary-capability, .code-agent-summary-trace { min-width: 0; color: var(--muted); font-family: var(--mono); font-size: 10px; overflow-wrap: anywhere; } .code-agent-summary-trace { justify-self: end; text-align: right; } .code-agent-summary-detail { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px 8px; } .code-agent-summary-row { min-width: 0; display: grid; grid-template-columns: minmax(92px, 0.8fr) minmax(0, 1.2fr); gap: 6px; align-items: start; padding: 5px 6px; background: var(--surface); border: 1px solid var(--line-soft); } .code-agent-summary-key { min-width: 0; color: var(--dim); font-family: var(--mono); font-size: 10px; overflow-wrap: anywhere; } .code-agent-summary-value { min-width: 0; font-family: var(--mono); font-size: 10px; overflow-wrap: anywhere; } .message-card, .info-card, .metric { min-width: 0; background: var(--surface-2); border: 1px solid var(--line); } .message-card { display: grid; grid-template-columns: 82px minmax(0, 1fr); gap: 6px 12px; padding: 10px; width: min(100%, 780px); align-self: start; } .message-card.status-running { border-color: rgba(223, 170, 85, 0.52); } .message-card.status-completed { border-color: rgba(127, 190, 116, 0.62); background: rgba(31, 47, 32, 0.78); } .message-card.status-source { border-color: rgba(111, 183, 169, 0.46); background: rgba(24, 39, 37, 0.72); } .message-card.status-failed { border-color: rgba(231, 110, 94, 0.58); } .message-card.status-timeout, .message-card.status-canceled, .message-card.status-error { border-color: rgba(231, 110, 94, 0.58); background: rgba(45, 28, 25, 0.74); } .message-user { justify-self: end; border-color: rgba(212, 173, 67, 0.46); background: rgba(52, 47, 29, 0.68); } .message-agent, .message-system { justify-self: start; } .message-system { width: 100%; background: rgba(24, 27, 24, 0.76); } .message-role { grid-row: span 2; color: var(--accent); font-family: var(--mono); font-size: 10px; font-weight: 760; text-transform: uppercase; } .message-title { color: var(--text); font-weight: 760; } .message-copy { color: var(--muted); white-space: pre-wrap; overflow-wrap: anywhere; } .message-meta { color: var(--dim); font-family: var(--mono); font-size: 10px; overflow-wrap: anywhere; } .message-trace { grid-column: 2; min-width: 0; } .message-pending-context, .message-runtime-path, .message-session-context, .message-trace, .message-m3-evidence, .message-actions { grid-column: 2; min-width: 0; display: grid; gap: 7px; padding: 8px; border: 1px solid var(--line); } .message-pending-context { background: rgba(55, 45, 24, 0.54); } .message-runtime-path { background: rgba(20, 24, 23, 0.76); border-left-width: 3px; } .message-session-context { background: rgba(18, 25, 24, 0.64); border-left-width: 3px; } .message-trace { background: rgba(20, 24, 23, 0.76); border-left-width: 3px; } .message-m3-evidence { background: rgba(15, 17, 16, 0.44); } .message-actions { display: flex; flex-wrap: wrap; align-items: center; background: rgba(20, 24, 23, 0.58); border-left-width: 3px; } .message-action { min-height: 28px; padding: 4px 8px; border: 1px solid var(--line-strong); background: var(--surface-2); color: var(--text); cursor: pointer; font-family: var(--mono); font-size: 10px; font-weight: 760; } .message-action:hover, .message-action:focus-visible { border-color: var(--accent); background: var(--surface-3); outline: 0; } .message-action-cancel { border-color: rgba(231, 110, 94, 0.64); } .message-action-status { min-width: 0; color: var(--dim); font-family: var(--mono); font-size: 10px; overflow-wrap: anywhere; } .message-pending-head, .message-runtime-head, .message-session-head, .message-trace-head { min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 7px; align-items: start; } .message-pending-head { display: flex; flex-wrap: wrap; align-items: center; } .message-session-head { display: flex; flex-wrap: wrap; align-items: center; } .message-pending-summary, .message-runtime-summary, .message-session-summary, .message-trace-summary { min-width: 0; color: var(--muted); font-size: 11px; overflow-wrap: anywhere; } .message-pending-grid, .message-runtime-grid, .message-session-grid { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; } .message-pending-row, .message-runtime-row, .message-session-row { min-width: 0; display: grid; grid-template-columns: minmax(70px, auto) minmax(0, 1fr) auto; gap: 5px; align-items: center; padding: 5px 6px; background: rgba(24, 27, 24, 0.68); border: 1px solid var(--line-soft); } .message-runtime-row { grid-template-columns: minmax(132px, 0.8fr) minmax(0, 1.2fr) auto; } .message-runtime-row-wide { grid-column: 1 / -1; } .message-runtime-row-missing { border-color: rgba(223, 170, 85, 0.44); } .message-pending-key, .message-runtime-key, .message-session-key, .message-pending-value, .message-runtime-value, .message-session-value { min-width: 0; font-size: 10px; overflow-wrap: anywhere; } .message-runtime-value { word-break: break-word; } .message-pending-key, .message-runtime-key, .message-session-key { color: var(--dim); font-family: var(--mono); } .message-pending-value, .message-runtime-value, .message-session-value { color: var(--text); } .message-m3-head { min-width: 0; display: flex; align-items: center; gap: 7px; flex-wrap: wrap; } .message-m3-summary { min-width: 0; color: var(--muted); font-family: var(--mono); font-size: 10px; overflow-wrap: anywhere; } .code-agent-fact-grid, .message-m3-rows { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; } .code-agent-fact-grid { margin: 0; } .code-agent-fact-row { min-width: 0; display: grid; gap: 2px; padding: 6px; background: var(--surface); border: 1px solid var(--line); } .message-m3-row { min-width: 0; display: grid; grid-template-columns: minmax(70px, auto) minmax(0, 1fr) auto; gap: 5px; align-items: center; padding: 4px 5px; background: var(--surface); border: 1px solid var(--line); } .code-agent-fact-key, .code-agent-fact-value { min-width: 0; overflow-wrap: anywhere; word-break: break-word; } .code-agent-fact-key { color: var(--dim); font-family: var(--mono); font-size: 9px; font-weight: 760; text-transform: uppercase; } .code-agent-fact-value { color: var(--text); font-size: 10px; } .hwlab-api-facts { min-width: 0; display: grid; gap: 5px; } .hwlab-api-facts-title { color: var(--accent-2); font-family: var(--mono); font-size: 9px; font-weight: 760; text-transform: uppercase; } .hwlab-api-fact-code { min-width: 0; display: block; padding: 6px; background: var(--surface); border: 1px solid var(--line); color: var(--text); font-family: var(--mono); font-size: 10px; line-height: 1.35; white-space: pre-wrap; overflow-wrap: anywhere; word-break: break-word; user-select: all; } .message-m3-key { min-width: 0; color: var(--dim); font-family: var(--mono); font-size: 10px; overflow-wrap: anywhere; } .message-m3-value { min-width: 0; color: var(--text); font-size: 10px; overflow-wrap: anywhere; word-break: break-word; } .message-m3-value[href] { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 2px; } .message-m3-raw { min-width: 0; padding: 6px; background: rgba(20, 24, 23, 0.72); border: 1px solid var(--line-soft); } .message-m3-raw summary { cursor: pointer; color: var(--dim); font-family: var(--mono); font-size: 10px; } .message-m3-raw pre { min-width: 0; max-height: 240px; margin: 7px 0 0; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; word-break: break-word; color: var(--muted); font-family: var(--mono); font-size: 10px; line-height: 1.4; } .copy-chip { min-width: 42px; min-height: 24px; padding: 2px 6px; border: 1px solid var(--line-strong); background: var(--surface-2); color: var(--muted); cursor: pointer; font-family: var(--mono); font-size: 10px; } .copy-chip:hover, .copy-chip:focus-visible { border-color: var(--accent); color: var(--text); outline: 0; } .message-trace summary { cursor: pointer; list-style-position: inside; } .message-trace-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 7px 0 0; } .message-trace-count { min-height: 24px; display: inline-flex; align-items: center; padding: 2px 7px; border: 1px solid var(--line-soft); background: rgba(20, 24, 23, 0.68); color: var(--muted); font-family: var(--mono); font-size: 10px; } .message-trace-action { min-height: 24px; padding: 2px 7px; border: 1px solid var(--line-strong); background: var(--surface-2); color: var(--muted); cursor: pointer; font-family: var(--mono); font-size: 10px; } .message-trace-action:hover, .message-trace-action:focus-visible { border-color: var(--accent); color: var(--text); outline: 0; } .message-trace-events { display: grid; gap: 8px; margin: 8px 0 0; padding-left: 0; color: var(--muted); font-family: var(--mono); font-size: 10px; list-style: none; } .message-trace-events-full { max-height: min(360px, 42vh); overflow: auto; overscroll-behavior: contain; padding-right: 4px; } .message-trace-row { min-width: 0; display: grid; gap: 4px; padding: 7px 8px; border: 1px solid var(--line-soft); background: rgba(11, 13, 12, 0.34); overflow-wrap: anywhere; } .message-trace-line { color: var(--text); line-height: 1.45; } .message-trace-body { max-height: 180px; margin: 0; padding: 0; overflow: auto; color: var(--muted); font-family: var(--mono); font-size: 10px; line-height: 1.45; white-space: pre-wrap; word-break: break-word; } .message-blocker { border-color: rgba(231, 110, 94, 0.48); } .help-content { min-height: 0; overflow: auto; padding: 16px; background: var(--surface-2); border: 1px solid var(--line); color: var(--text); } .help-content > * + * { margin-top: 12px; } .help-content h1, .help-content h2, .help-content h3 { line-height: 1.25; } .help-content h1 { font-size: 20px; } .help-content h2 { margin-top: 20px; color: var(--accent); font-size: 15px; } .help-content h3 { color: var(--accent-2); } .help-content p, .help-content li { color: var(--muted); } .help-content ul, .help-content ol { display: grid; gap: 6px; padding-left: 20px; } .help-content code { padding: 1px 4px; background: var(--surface); border: 1px solid var(--line); color: var(--text); font-family: var(--mono); font-size: 11px; } .help-error { padding: 12px; background: rgba(231, 110, 94, 0.08); border: 1px solid rgba(231, 110, 94, 0.48); color: var(--bad); } .info-title { display: block; color: var(--text); font-weight: 760; overflow-wrap: anywhere; } .info-detail, .command-bar { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 8px; padding: 10px; background: rgba(20, 22, 20, 0.98); border-top: 1px solid var(--line); } .agent-quick-prompts { grid-column: 1 / -1; min-width: 0; display: flex; flex-wrap: wrap; gap: 6px; overflow: hidden; } .agent-quick-prompts button { flex: 0 1 auto; max-width: 100%; min-height: 28px; padding: 4px 8px; border: 1px solid var(--line); background: var(--surface-2); color: var(--muted); font-family: var(--mono); font-size: 10px; font-weight: 760; line-height: 1.2; text-align: left; overflow-wrap: anywhere; cursor: pointer; } .agent-quick-prompts button[data-requires-explicit-send="true"] { border-color: rgba(223, 170, 85, 0.56); color: var(--text); background: rgba(52, 47, 29, 0.74); } .agent-quick-prompts button:hover, .agent-quick-prompts button:focus-visible { border-color: var(--line-strong); background: var(--surface-3); color: var(--text); outline: 0; } .input-shell { min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; align-items: center; padding: 0 10px; background: var(--surface); border: 1px solid var(--line-strong); } .prompt-mark { color: var(--accent); font-family: var(--mono); font-weight: 760; } .input-shell input { width: 100%; min-height: 38px; border: 0; outline: 0; background: transparent; color: var(--text); } .input-shell input::placeholder { color: var(--dim); } .command-button { min-height: 38px; padding: 0 12px; border: 1px solid var(--accent); background: var(--surface-hot); color: var(--text); font-weight: 760; cursor: pointer; } .command-button:disabled, .input-shell input:disabled { cursor: progress; opacity: 0.68; } .command-button.secondary { border-color: var(--line-strong); background: var(--surface-2); } .right-sidebar { position: relative; display: grid; grid-template-rows: minmax(0, 1fr) minmax(0, 0.9fr); gap: 10px; padding: 10px 10px 10px 16px; background: rgba(18, 20, 18, 0.98); border-left: 1px solid var(--line); overflow: hidden; } .hardware-status { min-height: 0; display: grid; grid-template-rows: auto auto minmax(0, 1fr); gap: 10px; padding: 12px; overflow: hidden; } .hardware-status-tabs { min-width: 0; display: flex; flex-wrap: wrap; gap: 6px; } .hardware-tab { flex: 1 1 92px; min-width: 0; min-height: 30px; padding: 5px 7px; border: 1px solid var(--line); background: var(--surface); color: var(--muted); font-family: var(--mono); font-size: 10px; font-weight: 760; cursor: pointer; overflow-wrap: anywhere; word-break: keep-all; } .hardware-tab:hover, .hardware-tab:focus-visible, .hardware-tab.active { border-color: var(--line-strong); background: var(--surface-2); color: var(--text); outline: 0; } .hardware-tab.active { box-shadow: inset 0 -3px 0 var(--accent); } .hardware-list { display: grid; gap: 8px; align-content: start; overflow-x: hidden; } .hardware-section { display: grid; gap: 8px; padding: 9px; background: var(--surface-2); border: 1px solid var(--line); } .hardware-section-title { color: var(--accent-2); font-family: var(--mono); font-size: 10px; font-weight: 760; letter-spacing: 0; text-transform: uppercase; } .hardware-rows { display: grid; gap: 6px; } .hardware-kv-section { min-width: 0; } .kv-list { min-width: 0; display: grid; gap: 6px; margin: 0; } .kv-row { min-width: 0; display: grid; grid-template-columns: minmax(96px, 0.42fr) minmax(0, 1fr); gap: 8px; align-items: start; padding: 7px 8px; background: var(--surface); border: 1px solid var(--line); border-left-width: 3px; } .kv-key, .kv-value { min-width: 0; overflow-wrap: anywhere; word-break: break-word; } .kv-key { color: var(--muted); font-family: var(--mono); font-size: 10px; font-weight: 760; } .kv-value { color: var(--text); font-family: var(--mono); font-size: 11px; } .hardware-row { min-width: 0; display: grid; gap: 5px 8px; padding: 8px; background: var(--surface); border: 1px solid var(--line); border-left-width: 3px; } .hardware-row-head { grid-column: 1 / -1; display: flex; gap: 8px; align-items: center; justify-content: space-between; min-width: 0; } .hardware-row-label, .hardware-row-value, .hardware-row-detail { min-width: 0; overflow-wrap: anywhere; } .hardware-row-label { color: var(--text); font-weight: 760; } .hardware-row-value { color: var(--text); font-family: var(--mono); font-size: 14px; font-weight: 800; line-height: 1.1; } .hardware-row-detail { color: var(--muted); font-size: 11px; } .side-workspace { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; overflow: hidden; } .side-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-bottom: 1px solid var(--line); } .side-tab { min-width: 0; min-height: 34px; padding: 6px 4px; border: 0; border-right: 1px solid var(--line); background: var(--surface); color: var(--muted); font-size: 11px; font-weight: 760; cursor: pointer; overflow-wrap: anywhere; word-break: keep-all; } .side-tab:last-child { border-right: 0; } .side-tab:hover, .side-tab:focus-visible, .side-tab.active { background: var(--surface-2); color: var(--text); outline: 0; } .side-tab.active { box-shadow: inset 0 -3px 0 var(--accent); } .side-panel { min-height: 0; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: 10px; padding: 12px; overflow: auto; overflow-x: hidden; overscroll-behavior: contain; } .side-panel[hidden] { display: none; } #panel-control { grid-template-rows: auto auto auto minmax(0, 1fr); } #panel-wiring { grid-template-rows: auto auto auto; align-content: start; } .m3-control-form { min-width: 0; display: grid; gap: 9px; padding: 9px; background: var(--surface); border: 1px solid var(--line); } .m3-flow-summary { min-width: 0; display: grid; gap: 9px; padding: 10px; background: rgba(20, 24, 23, 0.78); border: 1px solid var(--line-strong); } .m3-flow-head, .m3-flow-footer { min-width: 0; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; } .m3-flow-head > div { min-width: 0; display: grid; gap: 2px; } .m3-flow-head strong { min-width: 0; color: var(--text); font-family: var(--mono); font-size: 12px; line-height: 1.2; overflow-wrap: anywhere; } .m3-flow-line { min-width: 0; display: grid; grid-template-columns: minmax(0, 1.1fr) auto minmax(0, 1.2fr) minmax(0, 1.1fr) auto; gap: 6px; align-items: center; } .m3-flow-node, .m3-flow-port, .m3-flow-hop { min-width: 0; padding: 6px 7px; border: 1px solid var(--line); background: var(--surface); line-height: 1.25; overflow-wrap: anywhere; } .m3-flow-port { color: #151812; background: var(--accent); border-color: var(--accent); font-family: var(--mono); font-size: 10px; font-weight: 900; text-align: center; } .m3-flow-hop { color: var(--accent-2); font-family: var(--mono); font-size: 10px; font-weight: 800; text-align: center; } .m3-flow-kv { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin: 0; } .m3-flow-kv div { min-width: 0; display: grid; gap: 3px; padding: 7px; background: var(--surface); border: 1px solid var(--line); } .m3-flow-kv dt { color: var(--dim); font-family: var(--mono); font-size: 10px; font-weight: 760; } .m3-flow-kv dd { min-width: 0; margin: 0; color: var(--text); font-family: var(--mono); font-size: 10px; line-height: 1.35; overflow-wrap: anywhere; } .m3-jump-button { min-height: 28px; padding: 4px 8px; border: 1px solid var(--line-strong); background: var(--surface-2); color: var(--text); cursor: pointer; font-family: var(--mono); font-size: 10px; font-weight: 760; } .m3-jump-button:hover, .m3-jump-button:focus-visible { border-color: var(--accent); outline: 0; } .m3-trace-summary { min-width: 0; color: var(--muted); font-size: 10px; line-height: 1.35; overflow-wrap: anywhere; } .m3-control-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; } .m3-control-grid label { min-width: 0; display: grid; gap: 4px; color: var(--muted); font-size: 10px; font-weight: 760; text-transform: uppercase; } .m3-control-grid select { width: 100%; min-width: 0; min-height: 30px; padding: 5px 7px; border: 1px solid var(--line-strong); background: var(--surface-2); color: var(--text); font: 11px/1.2 var(--mono); } .m3-control-grid select:disabled, .m3-control-actions button:disabled { opacity: 0.62; cursor: not-allowed; } .m3-control-actions { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px; } .info-card { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; align-items: start; padding: 9px; } .readonly-rpc { display: grid; gap: 7px; padding-top: 10px; border-top: 1px solid var(--line); } .sidebar-note { padding: 10px 12px; background: var(--surface); } .gate-view { display: grid; grid-template-rows: auto auto minmax(0, 1fr); gap: 8px; padding: 10px; overflow: hidden; } .gate-header, .gate-controls { display: grid; align-items: center; gap: 10px; padding: 12px; background: rgba(24, 27, 24, 0.97); border: 1px solid var(--line); } .gate-header { grid-template-columns: minmax(0, 1fr); align-items: start; } .gate-controls { grid-template-columns: minmax(92px, 140px) minmax(0, 1fr) auto; } .gate-controls label { min-width: 0; display: grid; gap: 4px; } .gate-controls label span { color: var(--muted); font-size: 10px; font-weight: 760; } .gate-controls select, .gate-controls input { width: 100%; min-height: 34px; padding: 0 9px; border: 1px solid var(--line); background: var(--surface-2); color: var(--text); } .metric { display: grid; gap: 4px; padding: 9px; } .metric-label { color: var(--muted); font-size: 10px; font-weight: 760; text-transform: uppercase; } .table-wrap, .gate-table-wrap { min-height: 0; overflow: auto; border: 1px solid var(--line); overflow-x: auto; overflow-y: auto; } .right-sidebar .table-wrap { overflow-x: hidden; } table { width: 100%; border-collapse: collapse; background: var(--surface-2); } .wide-table { min-width: 860px; } .wiring-table-wrap { width: 100%; min-width: 0; min-height: 128px; max-height: min(220px, 42dvh); overflow-x: hidden; overflow-y: auto; } .wiring-long-table { table-layout: fixed; min-width: 0; } .wiring-long-table th, .wiring-long-table td { width: 50%; } .wiring-long-table th { color: var(--text); font-size: 11px; text-transform: none; } .wiring-long-table th small, .wiring-detail { display: block; margin-top: 4px; color: var(--muted); font-family: var(--font); font-size: 10px; font-weight: 640; line-height: 1.35; text-transform: none; } .wiring-port { display: block; color: var(--text); font-size: 13px; font-weight: 840; line-height: 1.15; } .wiring-summary { min-width: 0; margin: 0; padding: 9px; border: 1px solid var(--line); background: var(--surface); color: var(--muted); font-size: 11px; line-height: 1.45; overflow-wrap: anywhere; } .right-sidebar table, .right-sidebar .wiring-table { min-width: 0; table-layout: fixed; } .gate-table { min-width: 1120px; } th, td { text-align: left; vertical-align: top; padding: 8px; border-bottom: 1px solid var(--line); } th { color: var(--muted); font-size: 10px; font-weight: 760; text-transform: uppercase; } td { max-width: 360px; overflow-wrap: anywhere; } tbody tr:last-child td { border-bottom: 0; } .mono { font-family: var(--mono); font-size: 11px; } .wrap { overflow-wrap: anywhere; word-break: break-word; } .danger { border-color: rgba(231, 110, 94, 0.55); } .tone-pass, .tone-healthy, .tone-connected, .tone-completed, .tone-succeeded, .tone-available, .tone-active, .tone-accepted, .tone-ok { color: var(--ok); } .tone-blocked, .tone-degraded, .tone-network_blocker, .tone-runtime_blocker, .tone-failed, .tone-rejected, .tone-unavailable, .tone-disabled { color: var(--bad); } .tone-dry-run, .tone-not_run, .tone-pending, .tone-warn, .tone-warning, .tone-probing, .tone-false { color: var(--warn); } .tone-dev-live, .tone-live, .tone-recorded { color: var(--info); } .tone-source, .tone-muted { color: var(--muted); } .tone-bg-pass, .tone-bg-healthy, .tone-bg-connected, .tone-bg-completed, .tone-bg-succeeded, .tone-bg-available, .tone-bg-active, .tone-bg-accepted, .tone-bg-ok { background: var(--ok); } .tone-bg-blocked, .tone-bg-degraded, .tone-bg-network_blocker, .tone-bg-runtime_blocker, .tone-bg-failed, .tone-bg-rejected, .tone-bg-unavailable, .tone-bg-disabled { background: var(--bad); } .tone-border-live, .tone-border-dev-live, .tone-border-connected, .tone-border-available, .tone-border-active, .tone-border-ok { border-left-color: var(--ok); } .tone-border-source, .tone-border-pending, .tone-border-disabled { border-left-color: var(--dim); } .tone-border-warn, .tone-border-warning { border-left-color: var(--warn); } .tone-border-degraded, .tone-border-blocked, .tone-border-failed { border-left-color: var(--bad); } .tone-bg-dry-run, .tone-bg-not_run, .tone-bg-warn, .tone-bg-warning, .tone-bg-probing, .tone-bg-false { background: var(--warn); } .tone-bg-dev-live, .tone-bg-live, .tone-bg-recorded { background: var(--info); } .tone-bg-source, .tone-bg-muted { background: var(--dim); } @media (max-width: 1240px) { .workbench-shell { --rail-width: 86px; grid-template-columns: var(--rail-width) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) clamp(220px, 36dvh, 360px); } .right-sidebar { grid-column: 2; grid-row: 2; min-height: 0; padding-left: 10px; border-top: 1px solid var(--line); border-left: 0; } .left-sidebar-resize, .right-sidebar-resize { display: none; } } @media (max-width: 860px) { .workbench-shell { --rail-width: 68px; grid-template-columns: var(--rail-width) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) clamp(214px, 30dvh, 280px); } .activity-rail { grid-column: 1; grid-row: 1 / 3; grid-template-rows: repeat(3, minmax(42px, auto)) minmax(12px, 1fr) auto; overflow: hidden; } .rail-button { min-height: 42px; line-height: 1.15; } .sidebar-toggle { min-height: 36px; } .left-sidebar-resize, .right-sidebar-resize { display: none; } .center-workspace, .right-sidebar { grid-column: 2; } .center-workspace { grid-row: 1; } .right-sidebar { grid-row: 2; } .hardware-status { grid-template-rows: auto minmax(0, auto) minmax(0, 1fr); } .topbar { min-height: 0; gap: 8px; padding: 10px; } .topbar-main h2 { font-size: 16px; } .probe-card { padding: 8px 10px; } .probe-card strong { font-size: 15px; } .workbench-view, .gate-view, .help-view, .right-sidebar { padding: 8px; } .conversation-column { grid-template-rows: minmax(210px, 1fr) minmax(150px, 0.45fr); gap: 8px; } .command-bar { grid-template-columns: minmax(0, 1fr) auto auto; align-items: stretch; padding: 8px; } .agent-quick-prompts { gap: 5px; } .agent-quick-prompts button { flex: 1 1 148px; min-height: 30px; } .input-shell { padding: 0 8px; } .command-button { min-width: 48px; padding: 0 9px; } .topbar, .gate-controls { grid-template-columns: 1fr; } .logout-button { justify-self: start; } .live-build-row-head { grid-template-columns: 1fr; gap: 2px; } .live-build-popover { right: 0; left: auto; width: 100%; max-width: 100%; max-height: min(420px, 56dvh); } .live-build-list { max-height: min(352px, calc(56dvh - 54px)); } .live-build-time { text-align: left; } .hardware-list, .m3-flow-line, .m3-flow-kv, .m3-control-grid, .m3-control-actions { grid-template-columns: 1fr; } .kv-row { grid-template-columns: 1fr; gap: 3px; } .message-card { grid-template-columns: 1fr; } .message-pending-context, .message-runtime-path, .message-session-context, .message-trace, .message-m3-evidence, .message-actions { grid-column: 1; } .message-pending-grid, .message-runtime-grid, .message-pending-row, .message-session-grid, .message-session-row { grid-template-columns: 1fr; } .message-runtime-row { grid-template-columns: 1fr; } .message-m3-rows { grid-template-columns: 1fr; } .message-m3-row { grid-template-columns: minmax(0, 0.36fr) minmax(0, 1fr) auto; } .message-trace { grid-column: 1; } .message-trace-head, .code-agent-summary summary, .code-agent-summary-detail, .code-agent-summary-row { grid-template-columns: 1fr; } .code-agent-summary-trace { justify-self: start; text-align: left; } } @media (max-width: 520px) { .workbench-shell { --rail-width: 64px; grid-template-columns: var(--rail-width) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) clamp(260px, 34dvh, 320px); } .activity-rail { padding: 7px; } .rail-button { padding: 6px 3px; font-size: 11px; } .topbar { display: block; } .topbar .probe-card { margin-top: 8px; } .command-bar { grid-template-columns: minmax(0, 1fr) auto auto; } .agent-quick-prompts button { flex-basis: 100%; } .prompt-mark { display: none; } .input-shell { grid-template-columns: minmax(0, 1fr); } .right-sidebar { grid-template-rows: minmax(168px, 1.18fr) minmax(0, 0.82fr); } .command-button { min-width: 45px; padding: 0 8px; } }