: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)); --right-collapsed-width: 46px; --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.is-right-sidebar-collapsed { --right-width-expanded: var(--right-collapsed-width); } .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(4, 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; } .workbench-shell.is-right-sidebar-collapsed .right-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, .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; } .skills-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; min-width: 0; } .skills-panel { min-height: 0; height: 100%; display: grid; grid-template-rows: auto minmax(0, 1fr); gap: 12px; padding: 12px; } .skills-layout { min-width: 0; min-height: 0; display: grid; grid-template-columns: minmax(310px, 0.9fr) minmax(320px, 1fr); gap: 10px; } .skill-upload-panel, .skill-preview-panel { min-width: 0; min-height: 0; display: grid; gap: 10px; align-content: start; overflow: hidden; } .skill-upload-panel { grid-template-rows: auto minmax(0, 1fr); } .skill-detail-panel, .skill-tree.is-detached { display: none; } .skill-upload-form { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; } .skill-upload-drop { min-width: 0; min-height: 42px; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 10px; padding: 8px 10px; border: 1px dashed var(--line-strong); background: var(--surface-2); color: var(--muted); font-weight: 760; } .skill-upload-drop input { min-width: 0; color: var(--text); } .skill-list, .skill-tree, .skill-preview { min-width: 0; min-height: 0; overflow: auto; overscroll-behavior: contain; } .skill-list, .skill-tree { display: grid; align-content: start; gap: 7px; } .skill-row, .skill-notice, .skill-tree-entry { min-width: 0; padding: 9px; border: 1px solid var(--line); background: var(--surface-2); } .skill-row { display: grid; gap: 7px; cursor: pointer; } .skill-row-tree { display: grid; gap: 7px; max-height: min(360px, 38dvh); padding-top: 8px; border-top: 1px solid var(--line); overflow: auto; overscroll-behavior: contain; } .skill-row:hover, .skill-row:focus-visible, .skill-row.active { border-color: var(--accent); outline: 0; } .skill-row.active { box-shadow: inset 3px 0 0 var(--accent); } .skill-row-head, .skill-meta { min-width: 0; display: flex; align-items: center; gap: 7px; } .skill-row-head { justify-content: space-between; } .skill-name, .skill-description, .skill-meta { min-width: 0; overflow-wrap: anywhere; } .skill-name { color: var(--text); font-weight: 850; } .skill-description, .skill-meta { color: var(--muted); font-size: 11px; } .skill-meta { flex-wrap: wrap; font-family: var(--mono); } .skill-detail-head { min-height: 42px; } .skill-tree-entry.directory { color: var(--accent-2); font-family: var(--mono); font-size: 11px; } .skill-tree-entry.file { width: 100%; color: var(--text); font-family: var(--mono); font-size: 11px; text-align: left; cursor: pointer; } .skill-tree-entry.file:hover, .skill-tree-entry.file:focus-visible { border-color: var(--accent); outline: 0; } .skill-preview { padding: 12px; border: 1px solid var(--line); background: #101310; color: var(--text); font-family: var(--mono); font-size: 11px; line-height: 1.55; white-space: pre-wrap; overflow-wrap: anywhere; } .skill-preview h1, .skill-preview h2, .skill-preview h3 { margin: 0 0 8px; font-family: var(--body); font-size: 13px; } .skill-preview p, .skill-preview ul, .skill-preview ol, .skill-preview pre { margin: 0 0 8px; } .panel-title-row p, .panel-copy { color: var(--muted); } .compact-list, .conversation-list { min-height: 0; overflow: auto; } .center-workspace { display: grid; grid-template-rows: 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: 3px; padding: 8px 10px; background: var(--surface-2); border-left: 4px solid var(--accent); } .probe-card strong { font-size: 15px; line-height: 1.2; text-transform: uppercase; overflow-wrap: anywhere; } .probe-card small { color: var(--muted); display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-height: 1.3; overflow: hidden; overflow-wrap: anywhere; } .live-build-summary { position: relative; min-width: 0; max-width: 100%; margin-top: 2px; padding-top: 5px; border-top: 1px solid var(--line); } .live-build-toggle { min-width: 0; width: 100%; display: flex; align-items: center; gap: 6px; padding: 0; border: 0; background: transparent; color: var(--text); font-family: var(--mono); font-size: 10px; line-height: 1.35; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .live-build-toggle::before { content: "›"; color: var(--accent-2); } .live-build-toggle:hover, .live-build-toggle:focus-visible { color: var(--accent-2); outline: 0; } .live-build-summary-label { pointer-events: none; min-width: 0; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; overflow-wrap: anywhere; } .live-build-list { min-width: 0; max-height: min(352px, calc(58dvh - 54px)); display: grid; gap: 6px; overflow: auto; overscroll-behavior: contain; } .live-build-list-template { display: none; } .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; } .workbench-dialog-layer { position: fixed; z-index: 1000; inset: 0; display: grid; place-items: center; padding: 18px; } .workbench-dialog-backdrop { position: absolute; inset: 0; border: 0; background: rgba(0, 0, 0, 0.58); cursor: pointer; } .workbench-dialog { position: relative; z-index: 1; width: min(820px, calc(100vw - 36px)); max-height: min(720px, calc(100dvh - 36px)); display: grid; grid-template-rows: auto minmax(0, 1fr); gap: 10px; padding: 12px; background: rgba(20, 22, 20, 0.99); border: 1px solid var(--line-strong); box-shadow: 0 24px 70px rgba(0, 0, 0, 0.54); overflow: hidden; } .workbench-dialog-head { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; } .workbench-dialog-head strong { min-width: 0; color: var(--text); font-family: var(--mono); font-size: 11px; line-height: 1.2; overflow-wrap: anywhere; } .workbench-dialog-close { flex: 0 0 auto; min-height: 28px; padding: 3px 9px; border: 1px solid var(--line); background: var(--surface-2); color: var(--muted); font-family: var(--mono); font-size: 10px; font-weight: 760; cursor: pointer; } .workbench-dialog-close:hover, .workbench-dialog-close:focus-visible { border-color: var(--line-strong); color: var(--text); outline: 0; } .workbench-dialog-content { min-width: 0; min-height: 0; overflow: auto; overscroll-behavior: contain; } .workbench-dialog-content .live-build-list, .workbench-dialog-content .message-runtime-grid, .workbench-dialog-content .message-session-grid { max-height: none; overflow: visible; } .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(0, 1fr); 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); } .help-panel { height: 100%; grid-template-rows: auto minmax(0, 1fr); overflow: hidden; } .conversation-list, .compact-list { display: grid; align-content: start; gap: 8px; } .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-copy-markdown { display: grid; gap: 8px; white-space: normal; } .message-copy-markdown > * { margin: 0; min-width: 0; } .message-copy-markdown h1, .message-copy-markdown h2, .message-copy-markdown h3, .message-copy-markdown h4, .message-copy-markdown h5, .message-copy-markdown h6 { color: var(--text); font-size: 13px; line-height: 1.35; } .message-copy-markdown p, .message-copy-markdown li, .message-copy-markdown blockquote, .message-copy-markdown td, .message-copy-markdown th { line-height: 1.55; } .message-copy-markdown ul, .message-copy-markdown ol { display: grid; gap: 4px; padding-left: 18px; } .message-copy-markdown blockquote { padding: 6px 8px; border-left: 3px solid var(--line-strong); background: rgba(255, 255, 255, 0.035); } .message-copy-markdown pre { max-width: 100%; overflow: auto; padding: 8px; border: 1px solid var(--line); background: rgba(8, 10, 9, 0.58); color: var(--text); white-space: pre; } .message-copy-markdown code { padding: 1px 4px; border: 1px solid var(--line); background: rgba(8, 10, 9, 0.48); color: var(--text); font-family: var(--mono); font-size: 0.94em; overflow-wrap: anywhere; } .message-copy-markdown pre code { display: block; padding: 0; border: 0; background: transparent; white-space: pre; overflow-wrap: normal; } .message-copy-markdown table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; } .message-copy-markdown th, .message-copy-markdown td { padding: 5px 7px; border: 1px solid var(--line); text-align: left; vertical-align: top; } .message-copy-markdown th { color: var(--text); background: rgba(255, 255, 255, 0.04); } .message-copy-markdown a { color: var(--accent); text-decoration: underline; text-underline-offset: 2px; } .message-copy-markdown hr { width: 100%; border: 0; border-top: 1px solid var(--line); } .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-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-compact-details { display: block; padding: 0; } .message-compact-summary { width: 100%; min-width: 0; min-height: 30px; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 7px; align-items: center; padding: 6px 8px; border: 0; background: transparent; color: var(--muted); text-align: left; cursor: pointer; } .message-compact-summary-text { min-width: 0; color: var(--muted); font-size: 10px; line-height: 1.35; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .message-compact-summary:hover, .message-compact-summary:focus-visible { background: rgba(255, 255, 255, 0.03); color: var(--text); outline: 0; } .message-trace { background: rgba(20, 24, 23, 0.76); border-left-width: 3px; } .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); } .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; max-height: min(520px, 54dvh); overflow: auto; overscroll-behavior: contain; padding-right: 4px; color: var(--muted); font-family: var(--mono); font-size: 10px; list-style: none; } .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 { display: block; } .command-bar { display: grid; grid-template-columns: repeat(3, minmax(142px, 176px)) minmax(0, 1fr) auto auto; grid-template-areas: "profile agent gateway . . ." "input input input input send clear"; align-items: start; gap: 6px; padding: 6px 8px; background: rgba(20, 22, 20, 0.98); border-top: 1px solid var(--line); } .agent-timeout-control { display: flex; align-items: center; justify-content: flex-start; gap: 8px; min-width: 142px; min-height: 28px; padding: 3px 7px; border: 1px solid rgba(94, 142, 231, 0.38); background: rgba(25, 31, 39, 0.78); color: var(--muted); font-family: var(--mono); font-size: 10px; font-weight: 760; line-height: 1.2; } .agent-timeout-control[for="code-agent-provider-profile"] { grid-area: profile; } .agent-timeout-control[for="code-agent-timeout"] { grid-area: agent; } .agent-timeout-control[for="gateway-shell-timeout"] { grid-area: gateway; } .agent-timeout-control span { flex: 0 0 auto; white-space: nowrap; } .agent-timeout-control select { flex: 1 1 78px; min-width: 72px; min-height: 22px; border: 1px solid var(--line); background: var(--surface); color: var(--text); font: inherit; cursor: pointer; } .input-shell { grid-area: input; 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 textarea { width: 100%; min-height: 38px; max-height: calc(1.35em * 5 + 14px); padding: 8px 0; border: 0; outline: 0; resize: none; overflow-y: auto; background: transparent; color: var(--text); font: inherit; line-height: 1.35; } .input-shell textarea::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-send { grid-area: send; } #command-clear { grid-area: clear; } .command-button:disabled, .input-shell textarea: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: auto auto auto auto minmax(0, 1fr); align-content: stretch; gap: 6px; padding: 8px 10px 8px 16px; background: rgba(18, 20, 18, 0.98); border-left: 1px solid var(--line); overflow-x: hidden; overflow-y: hidden; overscroll-behavior: contain; scrollbar-gutter: stable; } .right-sidebar-control-row { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; } .right-sidebar-toggle { min-width: 0; min-height: 34px; padding: 0 10px; border: 1px solid var(--line-strong); background: var(--surface-2); color: var(--text); font-size: 11px; font-weight: 800; cursor: pointer; } .right-sidebar-toggle:hover, .right-sidebar-toggle:focus-visible { border-color: var(--accent); outline: 0; } .sidebar-workbench-header { min-width: 0; display: grid; gap: 4px; padding: 8px 10px; background: rgba(24, 27, 24, 0.76); border: 1px solid var(--line); } .sidebar-workbench-header .route-path { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; } .sidebar-workbench-header h2 { font-size: 15px; line-height: 1.15; } .workbench-shell.is-right-sidebar-collapsed .right-sidebar { padding: 8px 5px; overflow: hidden; } .workbench-shell.is-right-sidebar-collapsed .right-sidebar-control-row { writing-mode: vertical-rl; align-items: center; justify-content: start; } .workbench-shell.is-right-sidebar-collapsed .right-sidebar .logout-button, .workbench-shell.is-right-sidebar-collapsed .right-sidebar > :not(.right-sidebar-control-row) { display: none; } .workbench-shell.is-right-sidebar-collapsed .right-sidebar-toggle { width: 100%; min-height: 0; padding: 8px 2px; border-color: var(--accent); background: var(--surface-hot); line-height: 1.15; } .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; } .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; } .right-sidebar 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; } .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, .skills-view, .help-view, .right-sidebar { padding: 8px; } .skills-layout { grid-template-columns: 1fr; grid-template-rows: auto minmax(220px, 1fr); } .skill-upload-form { grid-template-columns: 1fr; } .conversation-column { grid-template-rows: minmax(0, 1fr); gap: 8px; } .command-bar { grid-template-columns: 1fr 1fr; grid-template-areas: "profile agent" "gateway gateway" "input input" "send clear"; align-items: stretch; } .agent-timeout-control { min-width: 0; justify-content: start; } .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-list { max-height: min(352px, calc(70dvh - 54px)); } .live-build-time { text-align: left; } .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-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-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: 1fr 1fr; grid-template-areas: "profile profile" "agent agent" "gateway gateway" "input input" "send clear"; align-items: stretch; } .agent-timeout-control { min-width: 0; } .agent-timeout-control select { width: 100%; } .prompt-mark { display: none; } .input-shell { grid-template-columns: minmax(0, 1fr); } .right-sidebar { grid-template-rows: auto auto auto minmax(0, 1fr); } .skills-actions, .skill-row-head, .skill-upload-drop { align-items: stretch; flex-direction: column; grid-template-columns: 1fr; } .command-button { min-width: 45px; padding: 0 8px; } } .device-pod-status, .device-pod-workspace { min-width: 0; min-height: 0; display: grid; gap: 6px; padding: 8px; overflow: visible; } .device-pod-status { grid-template-rows: auto auto auto; align-content: start; } .device-pod-workspace { grid-template-rows: auto minmax(0, 1fr); align-self: stretch; overflow: hidden; } .device-pod-selector-row { min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; align-items: center; color: var(--muted); font-size: 11px; font-weight: 760; } .device-pod-selector-row select { min-width: 0; height: 30px; padding: 0 8px; border: 1px solid var(--line); background: var(--surface); color: var(--text); font: 11px/1.2 var(--mono); } .device-pod-summary, .device-pod-interfaces { min-width: 0; display: grid; gap: 6px; } .device-pod-summary .summary-tile, .device-pod-interfaces .summary-tile { gap: 4px; padding: 7px; } .device-pod-summary .kv-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 8px; } .device-pod-summary .kv-list > div { min-width: 0; } .device-pod-summary dt { color: var(--muted); font: 760 9px/1.1 var(--mono); } .device-pod-summary dd { min-width: 0; margin: 2px 0 0; color: var(--text); font: 9px/1.15 var(--mono); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .device-pod-interfaces { grid-template-columns: repeat(2, minmax(0, 1fr)); } .summary-tile { min-width: 0; display: grid; gap: 6px; padding: 10px; border: 1px solid var(--line); background: var(--surface-2); cursor: pointer; } .summary-tile:hover, .summary-tile:focus-visible { border-color: var(--accent); outline: 0; } .summary-title { color: var(--accent-2); font: 760 10px/1.2 var(--mono); text-transform: uppercase; } .summary-value { color: var(--text); font-size: 12px; font-weight: 800; } .summary-detail { color: var(--muted); font-size: 10px; line-height: 1.3; overflow-wrap: anywhere; } .device-event-panel { min-width: 0; min-height: 0; display: grid; grid-template-rows: auto minmax(132px, 1fr); border: 1px solid var(--line); background: #101310; overflow: hidden; } .event-toolbar { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 8px; align-items: center; padding: 6px 8px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 11px; font-weight: 760; } .event-toolbar button { min-height: 26px; padding: 0 8px; border: 1px solid var(--line); background: var(--surface-2); color: var(--text); font: 10px/1.2 var(--mono); cursor: pointer; } .event-toolbar button:hover, .event-toolbar button:focus-visible { border-color: var(--accent); outline: 0; } .device-event-scroll { min-width: 0; min-height: 0; overflow: auto; overscroll-behavior: contain; padding: 7px; } .device-event-scroll pre { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; color: #d8ded8; font: 11px/1.45 var(--mono); } .device-detail-dialog { width: min(760px, calc(100vw - 28px)); max-height: min(720px, calc(100dvh - 28px)); padding: 0; border: 1px solid var(--line-strong); background: var(--surface); color: var(--text); } .device-detail-dialog::backdrop { background: rgba(0, 0, 0, 0.62); } .device-detail-shell { min-width: 0; max-height: inherit; display: grid; grid-template-rows: auto minmax(0, 1fr); } .device-detail-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 12px; border-bottom: 1px solid var(--line); } .device-detail-head h2 { min-width: 0; font-size: 16px; overflow-wrap: anywhere; } .device-detail-body { min-width: 0; min-height: 0; margin: 0; padding: 12px; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; color: #d8ded8; font: 11px/1.45 var(--mono); }