: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; --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; 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] { height: 100%; min-height: 0; overflow: hidden; overscroll-behavior: contain; } button, input { font: inherit; } button { color: inherit; } h1, h2, h3, p, ol, ul { margin: 0; } .workbench-shell { height: 100vh; height: 100dvh; max-height: 100dvh; min-height: 0; display: grid; grid-template-columns: 92px 292px minmax(460px, 1fr) 366px; grid-template-rows: 1fr; overflow: hidden; overscroll-behavior: contain; background: rgba(15, 17, 16, 0.88); } .activity-rail, .explorer, .right-sidebar, .center-workspace { min-width: 0; min-height: 0; } .activity-rail { display: grid; grid-template-rows: repeat(3, minmax(42px, auto)) 1fr minmax(42px, 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-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; overflow-wrap: anywhere; } .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); } .explorer { display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto; gap: 8px; padding: 10px; background: rgba(22, 25, 22, 0.98); border-right: 1px solid var(--line); overflow: hidden; } .explorer-collapsed { grid-template-columns: 92px 0 minmax(460px, 1fr) 366px; } .explorer-collapsed .explorer { padding: 0; border-right: 0; overflow: hidden; } .explorer-collapsed .explorer > * { display: none; } .explorer-collapsed .explorer { pointer-events: none; } .explorer-head, .topbar, .hardware-status, .side-workspace, .workspace-panel { background: rgba(24, 27, 24, 0.97); border: 1px solid var(--line); } .explorer-head { min-height: 78px; display: flex; justify-content: space-between; gap: 10px; align-items: start; padding: 12px; } .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; 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; overflow-wrap: anywhere; } .quick-actions { display: grid; grid-template-columns: 1fr; gap: 6px; } .quick-actions button { width: 100%; min-height: 32px; padding: 6px 8px; border: 1px solid var(--line); background: var(--surface-2); color: var(--text); font-weight: 760; text-align: left; cursor: pointer; } .quick-actions button:hover, .quick-actions button:focus-visible { border-color: var(--line-strong); background: var(--surface-3); outline: 0; } .tree-panel { min-height: 0; display: grid; grid-template-rows: auto minmax(0, 1fr); gap: 8px; padding: 10px; background: var(--surface); border: 1px solid var(--line); overflow: hidden; } .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); } .resource-tree, .compact-list, .conversation-list, .trace-list, .task-list, .hardware-list { min-height: 0; overflow: auto; } .resource-tree { display: grid; align-content: start; gap: 6px; } .resource-tree details { border: 1px solid var(--line); background: var(--surface-2); } .resource-tree summary, .tree-row { width: 100%; min-height: 31px; display: grid; grid-template-columns: 8px minmax(0, 1fr); gap: 7px; align-items: center; padding: 7px 8px; border: 0; background: transparent; text-align: left; } .resource-tree summary { cursor: pointer; } .tree-row { padding-left: 22px; border-top: 1px solid var(--line); cursor: pointer; } .tree-row:hover { background: rgba(212, 173, 67, 0.06); } .tree-label, .tree-meta { display: block; min-width: 0; overflow-wrap: anywhere; } .tree-label { color: var(--text); font-family: var(--mono); font-size: 11px; } .tree-meta { grid-column: 2; color: var(--muted); font-size: 11px; } .tree-light { width: 8px; height: 8px; background: var(--dim); } .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(260px, 360px); 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 { 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; text-transform: uppercase; } .probe-card small { color: var(--muted); 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, .trace-panel, .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, .trace-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; } .message-card, .info-card, .trace-item, .metric, .milestone-card, .status-card { 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-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-evidence { grid-column: 2; min-width: 0; } .message-evidence summary { cursor: pointer; list-style-position: inside; } .message-evidence-chips { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; } .message-evidence-chip { max-width: 100%; padding: 2px 5px; background: var(--surface); border: 1px solid var(--line); color: var(--muted); font-family: var(--mono); font-size: 10px; overflow-wrap: anywhere; } .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); } .trace-item { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 8px 10px; } .trace-order { color: var(--accent); font-family: var(--mono); font-weight: 760; } .trace-title, .info-title, .milestone-id { display: block; color: var(--text); font-weight: 760; overflow-wrap: anywhere; } .trace-meta, .info-detail, .milestone-meta, .milestone-summary, .status-meta { display: block; color: var(--muted); overflow-wrap: anywhere; } .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); } .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 { display: grid; grid-template-rows: minmax(0, 0.45fr) minmax(0, 1fr); gap: 10px; padding: 10px; 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 minmax(0, 1fr); gap: 10px; padding: 12px; overflow: hidden; } .hardware-list { display: grid; gap: 8px; align-content: start; } .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-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; } .status-card { display: grid; gap: 5px; padding: 9px; } .status-value { font-size: 18px; font-weight: 800; line-height: 1; overflow-wrap: anywhere; } .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-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; } .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: hidden; } .side-panel[hidden] { display: none; } .m3-control-form { min-width: 0; display: grid; gap: 9px; padding: 9px; background: var(--surface); border: 1px solid var(--line); } .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); } .rpc-chip-list { display: flex; flex-wrap: wrap; gap: 6px; } .gate-view { display: grid; gap: 10px; padding: 10px; } .gate-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; } .gate-split { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; } .metric { display: grid; gap: 4px; padding: 9px; } .metric-label { color: var(--muted); font-size: 10px; font-weight: 760; text-transform: uppercase; } .metric-value { color: var(--text); font-family: var(--mono); overflow-wrap: anywhere; } .milestone-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; } .milestone-card { display: grid; gap: 8px; padding: 10px; } .table-wrap { overflow: auto; border: 1px solid var(--line); } table { width: 100%; min-width: 860px; border-collapse: collapse; background: var(--surface-2); } .wiring-table { min-width: 980px; } 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; } .command-list { display: grid; gap: 8px; padding: 0; list-style: none; } .command-list li { min-width: 0; padding: 9px; background: var(--surface-2); border: 1px solid var(--line); color: var(--muted); font-family: var(--mono); overflow-wrap: anywhere; } .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-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-disabled { border-left-color: var(--dim); } .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 { grid-template-columns: 86px 260px minmax(420px, 1fr); grid-template-rows: minmax(0, 1fr) clamp(220px, 36dvh, 360px); } .explorer-collapsed { grid-template-columns: 86px 0 minmax(0, 1fr); } .right-sidebar { grid-column: 2 / 4; grid-row: 2; min-height: 0; border-top: 1px solid var(--line); border-left: 0; } .gate-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } } @media (max-width: 860px) { .workbench-shell, .explorer-collapsed { grid-template-columns: 68px 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) minmax(42px, auto); overflow: hidden; } .rail-button { min-height: 42px; } .explorer { grid-column: 2; grid-row: 1 / 3; z-index: 4; max-height: 100%; overflow: auto; box-shadow: -1px 0 0 var(--line), 12px 0 24px rgba(0, 0, 0, 0.24); } .center-workspace, .right-sidebar { grid-column: 2; } .center-workspace { grid-row: 1; } .right-sidebar { grid-row: 2; } .explorer-collapsed .explorer { display: none; } .topbar { min-height: 0; gap: 8px; padding: 10px; } .topbar-main h2 { font-size: 16px; } .probe-card { padding: 8px 10px; } .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; } .input-shell { padding: 0 8px; } .command-button { min-width: 48px; padding: 0 9px; } .topbar, .gate-split { grid-template-columns: 1fr; } .hardware-list, .milestone-grid, .gate-grid, .m3-control-grid, .m3-control-actions, .quick-actions { grid-template-columns: 1fr; } .message-card, .trace-item { grid-template-columns: 1fr; } } @media (max-width: 520px) { .workbench-shell, .explorer-collapsed { grid-template-columns: 64px minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) clamp(200px, 28dvh, 250px); } .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; } .prompt-mark { display: none; } .input-shell { grid-template-columns: minmax(0, 1fr); } .command-button { min-width: 45px; padding: 0 8px; } }