/* One accent, neutral surfaces, two weights. Keep upstream DOM and licenses. */
:root{color-scheme:light;--background:#fafafa;--surface:#fafafa;--panel:#fafafa;--control:#f2f2f2;--hover:#eaeaea;--selected:#dedede;--line:#d6d6d6;--line-strong:#858585;--text:#222222;--muted:#626262;--accent:#256b62;--content-width:960px;--content-gutter:24px;--radius-small:4px;--radius:4px;--radius-large:4px;font-size:15px;font-weight:400}
@media(prefers-color-scheme:dark){:root{color-scheme:dark;--background:#181818;--surface:#181818;--panel:#181818;--control:#242424;--hover:#303030;--selected:#363636;--line:#494949;--line-strong:#8c8c8c;--text:#e6e6e6;--muted:#aaaaaa;--accent:#83b6ad}}
body{margin:0;background:var(--background);color:var(--text);line-height:1.6}
body :is(button,input,select,textarea,.primary,.quiet){font-weight:400;font-family:inherit}
body :is(h1,h2,h3,strong,b,summary){font-weight:600}
.terminal summary,.shell-empty strong{font-weight:600}
[hidden]{display:none!important}
header,.badge,#column-resizer,.empty-mascot,.terminal-paws,.setup-cat,.setup-paws{display:none!important}
#bench-intro,main,#bench-secondary{width:calc(100% - 2 * var(--content-gutter));max-width:var(--content-width);margin-inline:auto}
#bench-intro{box-sizing:border-box;min-height:calc(100svh - 64px);padding-block:48px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
#bench-intro h1{font-size:clamp(28px,3.5vw,44px);letter-spacing:-.025em;line-height:1.25;margin:0}
.bench-lead{font-size:clamp(14px,1.6vw,18px);color:var(--muted);margin:20px 0 28px}
#bench-limit{font-size:12px;color:var(--muted);margin:18px 0 0;white-space:nowrap}
.bench-actions{display:flex;gap:12px;flex-wrap:wrap}
button,.button{min-height:40px;background:transparent;color:var(--text);border:1px solid var(--line);border-radius:4px;padding:8px 14px;box-shadow:none}
button:hover,.button:hover{background:var(--hover)}
button:disabled{color:var(--muted);background:transparent;opacity:1}
#load:not(:disabled),#bench-bit-run:not(:disabled),#send:not(:disabled),#gate-load:not(:disabled),#gate-send:not(:disabled){background:var(--accent);color:var(--background);border-color:transparent}
#load.is-loaded{border-color:transparent;padding-left:0;background:transparent;color:var(--muted)}
body[data-brain=ready] #bench-intro,body[data-brain=bits] #bench-intro{min-height:0;padding-block:40px 24px}
main{display:block;height:auto;min-height:0;padding-bottom:36px}
.conversation{padding:20px 0 0;height:clamp(360px,48svh,500px)}
.terminal-panel{border:0;border-radius:0;padding:0;background:var(--background)}
.terminal-controls{gap:8px;padding-block:12px}
.terminal-controls #new-chat{margin-right:auto}
.terminal-controls :is(#new-chat,#newline){border-color:transparent;color:var(--muted)}
body[data-brain=bits] .conversation{display:none}
#bench-secondary{padding:0;margin-block:0 16px;border:0}
summary{cursor:pointer;min-height:44px;padding-block:10px;box-sizing:border-box;list-style-position:inside;font-size:14px}
#bench-secondary>summary{color:var(--muted);font-weight:400}
#bench-secondary>details,#brain-picker{border-top:1px solid var(--line);padding-block:6px}
#bench-secondary :is(p,fieldset,pre){max-width:100%;overflow-wrap:anywhere}
#bench-secondary p{color:var(--muted);margin:12px 0}
#brain-picker{margin:0;background:transparent}
#brain-picker label{display:block;margin-block:12px}
#brain-picker input{display:block;box-sizing:border-box;width:100%;max-width:48em;min-height:40px;padding:8px;background:transparent;border:1px solid var(--line);border-radius:4px}
#brain-picker fieldset{min-width:0;border:0;padding:12px 0;margin:12px 0}
#brain-presets{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 24px}
#brain-presets button{white-space:normal}
#brain-gate{margin:-12px 0 20px}
#brain-status[data-error=true],#bench-error{border-left:2px solid var(--accent);padding-left:12px;color:var(--text)}
.bench-examples{display:flex;gap:12px;flex-wrap:wrap;align-items:center;padding:12px 0}
#bench-example,#brain-frame{max-width:100%;min-width:0;min-height:40px;background:transparent;color:var(--text);border:1px solid var(--line);padding:8px}
#bench-progress{width:100%;height:4px;accent-color:var(--accent)}
.gate-pane{padding:0;margin:12px 0 0;background:transparent;border-radius:0;overflow:visible}
#gate-observer{outline-offset:6px}
#gate-phase{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden;white-space:nowrap}
.gate-metrics{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px;margin:0 0 12px;font-size:12px;font-variant-numeric:tabular-nums}
.gate-metrics>div{display:flex;gap:4px;align-items:baseline;white-space:nowrap}
.gate-metrics dt{order:2;color:var(--muted)}.gate-metrics dd{margin:0}
#gate-state{display:block;max-width:100%;height:auto;image-rendering:pixelated}
#gate-details{margin-top:8px;color:var(--muted);font-size:12px}
#gate-details summary{font-size:12px;font-weight:400}
#gate-details p{margin:8px 0}
#gate-raw,#brain-output,#bench-tool-result{font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:18em;overflow:auto}
#workspace-panel{width:100%;height:650px;min-height:460px;margin:0;border-radius:0;background:transparent}
.workspace-heading,.editor-heading,.workspace>.terminal{background:transparent;border-radius:0}
.workspace-heading{flex-wrap:wrap;gap:8px}
.file-area{min-height:250px}
#editor-highlight *,#command-highlight *{color:var(--text)!important;font-weight:400!important}
.chain-fields{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:12px}.chain-fields dd{margin:0;overflow-wrap:anywhere}
#chain-identity{overflow-wrap:anywhere}.chain-fields dt{color:var(--muted)}
#nt-scope{position:static;max-height:none;background:transparent;border-radius:0;line-height:1.6}
#nt-badge,#nt-credit{position:static;max-width:100%;margin-block:12px;overflow-wrap:anywhere;background:transparent}
#nt-scope footer{display:block;font-size:12px;color:var(--muted)}
#nt-scope .setup-credits{display:flex;flex-wrap:wrap;padding:0;border:0;font-size:12px}
a{color:var(--accent);text-underline-offset:3px}
#model-dialog{background:var(--background);border:1px solid var(--line);border-radius:4px;box-shadow:none;padding:24px;max-width:min(520px,calc(100% - 32px))}
#model-dialog .setup-body,#model-dialog .setup-actions{padding:12px 0;background:transparent;border:0}
#model-dialog .setup-heading{padding:0;background:transparent}
:is(a,button,summary,select,input,textarea):focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(width<=600px){:root{--content-gutter:20px}.conversation{height:380px}#bench-intro{padding-block:32px}body[data-brain=ready] #bench-intro,body[data-brain=bits] #bench-intro{padding-block:24px 16px}.bench-lead{margin-block:16px 24px}.gate-metrics{gap:4px 10px;font-size:11px}.chain-fields{grid-template-columns:1fr}#bench-example{width:100%}.terminal-controls{gap:4px}.terminal-controls button{padding:8px}#workspace-panel{height:720px}.workspace-heading>div{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Three-column workbench: navigation / open view / verified information. */
html,body{min-height:100%;}
#bench-shell{height:100dvh;display:grid;grid-template-columns:250px minmax(0,1fr) minmax(260px,300px);grid-template-rows:minmax(0,1fr) 34px;background:var(--background);overflow:hidden}
#bench-sidebar,#bench-inspector{min-width:0;overflow:auto;background:var(--surface)}
#bench-sidebar{grid-area:1/1;border-right:1px solid var(--line);padding:16px 12px}
#bench-center{grid-area:1/2;display:flex;flex-direction:column;min-width:0;min-height:0}
#bench-inspector{grid-area:1/3;border-left:1px solid var(--line);padding:16px}
#bench-inspector[hidden]{display:none!important}
#bench-shell:has(#bench-inspector[hidden]){grid-template-columns:250px minmax(0,1fr)}
#bench-statusbar{grid-column:1/-1;grid-row:2;display:flex;align-items:center;gap:20px;min-width:0;padding:0 18px;border-top:1px solid var(--line);font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden}
#bench-statusbar span:last-child{margin-left:auto}
#bench-statusbar span{overflow:hidden;text-overflow:ellipsis}
#status-flips{flex:none}
.sidebar-heading,.inspector-heading{display:flex;align-items:center;justify-content:space-between;padding:0 8px 12px;min-height:34px}
.sidebar-heading strong{font-size:17px;letter-spacing:-.02em}
.sidebar-heading button,.inspector-heading button{border:0;min-height:32px;padding:4px 10px;color:var(--muted)}
#sidebar-close,#sidebar-toggle{display:none}
.sidebar-search input{box-sizing:border-box;width:100%;min-height:38px;padding:6px 10px;border:1px solid var(--line);border-radius:6px;background:var(--control);color:var(--text)}
.brain-tree button,#side-session{display:flex;align-items:center;text-align:left;gap:9px;width:100%;min-width:0;min-height:36px;padding:6px 9px;border:0;background:transparent}
.brain-tree button:hover,#side-session:hover,.brain-tree button.selected{background:var(--control)}
.brain-tree button>span:last-child,#side-session>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis}
.tree-heading{margin:20px 8px 6px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.07em}
.brain-heading{display:flex;align-items:center;justify-content:space-between;margin-top:22px}
.brain-heading button{min-height:28px;width:28px;padding:0;border:0;color:var(--muted);font-size:18px}
.brain-tree{padding-left:8px}
.brain-tree small,#side-session small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:11px}
.brain-tree .row-time{margin-left:auto;align-self:center;color:var(--muted);font-size:10px;font-variant-numeric:tabular-nums}
.status-dot{display:inline-block;flex:none;width:7px;height:7px;border-radius:50%;background:var(--line-strong)}
.status-dot.active{background:var(--accent)}
#bench-secondary{width:auto;max-width:none;margin:24px 4px 10px;padding-top:8px;border-top:1px solid var(--line)}
#bench-secondary>summary{font-size:12px}
#brain-picker{min-width:0}
#brain-picker p,#brain-picker a,#brain-picker label{overflow-wrap:anywhere}
#brain-picker input{max-width:100%}
#bench-tabs{display:flex;align-items:center;gap:3px;min-height:51px;padding:0 14px;border-bottom:1px solid var(--line);white-space:nowrap}
#bench-tabs button{min-height:37px;border:0;padding:7px 12px;background:transparent;color:var(--muted)}
#bench-tabs button[aria-pressed="true"]{color:var(--text);border-radius:0;border-bottom:2px solid var(--accent)}
#bench-tabs button:hover{background:var(--control)}
.tab-spacer{flex:1}
#chat-view,#tool-view,#gate-view{min-width:0;min-height:0;overflow:auto;padding:0 clamp(16px,3vw,38px) 30px}
#chat-view[hidden],#tool-view[hidden],#gate-view[hidden]{display:none!important}
#bench-intro,#chat-view main{width:100%;max-width:none;margin:0}
#bench-intro{min-height:0;padding:20px 0 14px;display:block}
#bench-intro h1{font-size:22px}
.bench-lead{font-size:13px;margin:4px 0 14px}
#bench-limit{margin:10px 0 0}
body[data-brain=ready] #bench-intro,body[data-brain=bits] #bench-intro{min-height:0;padding:20px 0 14px}
#chat-view main{display:block;min-height:0;padding:0}
#chat-view .conversation{height:min(58svh,590px);min-height:320px;padding-top:8px}
#gate-panel{border-top:1px solid var(--line);padding-top:8px}
#gate-panel>.gate-pane{width:100%;margin:4px 0 16px}
#tool-view h2{font-size:18px;margin:24px 0 4px}
#tool-view>p,.field-note{color:var(--muted);font-size:12px}
#tool-view>details{border-top:1px solid var(--line);padding:8px 0}
#tool-view #workspace-panel{height:600px;max-width:100%}
#bench-loading{border-top:1px solid var(--line);margin-top:16px}
.netlist-fields{display:grid;grid-template-columns:1fr;gap:1px;margin:14px 0}
.netlist-fields dt{color:var(--muted);font-size:11px;margin-top:10px}
.netlist-fields dd{margin:0;overflow-wrap:anywhere;font-size:12px}
#bench-inspector #chain-identity{border-top:1px solid var(--line);padding-top:8px}
#bench-inspector .chain-fields{grid-template-columns:1fr;gap:3px;font-size:12px}
#bench-inspector .chain-fields dt{margin-top:10px}
#bench-inspector :is(p,li){font-size:12px;overflow-wrap:anywhere}
#sidebar-backdrop{position:fixed;inset:0;z-index:9;background:#0008;border:0;border-radius:0}
@media(max-width:760px){
  #bench-shell,#bench-shell:has(#bench-inspector[hidden]){grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) 38px}
  #bench-center{grid-area:1/1}
  #bench-sidebar{position:fixed;z-index:10;top:0;bottom:0;left:0;width:min(82vw,320px);box-sizing:border-box;transform:translateX(-105%);box-shadow:4px 0 24px #0004;transition:transform .2s}
  body.sidebar-open #bench-sidebar{transform:translateX(0)}
  #sidebar-close,#sidebar-toggle{display:inline-block}
  #bench-inspector{position:fixed;z-index:8;top:50px;bottom:38px;right:0;width:min(86vw,340px);box-sizing:border-box;box-shadow:-4px 0 24px #0004}
  #bench-statusbar{grid-area:2/1;gap:9px;padding:0 9px;font-size:10px}
  #bench-tabs{min-height:50px;padding:0 6px}
  #bench-tabs button{padding:6px 9px}
  #chat-view,#tool-view,#gate-view{padding:0 18px 24px}
  #bench-intro h1{font-size:19px}
  #chat-view .conversation{height:min(54svh,500px);min-height:300px}
  #bench-limit{white-space:normal}
}
/* Language switch, first-screen examples, in-page dialogs. */
#bench-tabs #lang-toggle{display:inline-flex;gap:2px;align-items:center;border-bottom:0;border-radius:4px;font-size:12px}
#lang-toggle span{padding:1px 5px;border-radius:3px;color:var(--muted)}
#lang-toggle span.on{background:var(--selected);color:var(--text)}
.bench-lead{margin-bottom:8px}
.bench-sub{font-size:13px;color:var(--muted);margin:0 0 24px}
#bench-limit{white-space:normal}
#bench-try{margin-top:20px;font-size:13px;color:var(--muted)}
#bench-try p{margin:0 0 8px}
.try-chips{display:flex;flex-wrap:wrap;gap:8px}
.try-chips button{min-height:34px;padding:5px 12px;border-radius:999px;font-size:13px;text-align:left}
#bench-try .try-hint{margin:8px 0 0;font-size:12px}
body:not([data-brain=ready]) #bench-try .try-hint::after{content:""}
.brain-tree .row-time:empty{display:none}
dialog{background:var(--background);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:20px;max-width:min(560px,calc(100vw - 32px));box-sizing:border-box}
dialog::backdrop{background:rgb(0 0 0 / .45)}
#bench-dialog p{margin:0 0 20px;line-height:1.6}
.dialog-actions{display:flex;justify-content:flex-end;gap:8px}
#bench-dialog .primary{background:var(--accent);color:var(--background);border-color:transparent}
#brain-dialog{width:min(640px,calc(100vw - 32px));max-height:calc(100svh - 48px);overflow:auto;padding:0 20px 16px}
#brain-dialog .dialog-heading{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;background:var(--background);padding:14px 0 8px;z-index:1}
#brain-dialog .dialog-heading button{min-height:32px;border:0;padding:4px 10px}
#brain-dialog #brain-open{display:none}
#brain-dialog #brain-picker{border-top:0;padding-top:0}
#brain-dialog p{color:var(--muted);overflow-wrap:anywhere}
/* 全屏应用：外层不滚动（读屏元素 #activity 为 absolute 且无 top，会把文档撑高 148px，状态栏下露出空白） */
html,body{height:100%;overflow:hidden}
.sr-only{top:0;left:0}
/* 「加载大脑」按钮由脚本移入，先占位，避免示例按钮下移、首次点击落空 */
.bench-actions{min-height:40px}
/* 门电路大脑视图 */
#gate-view h1{margin:20px 0 8px}
#gate-checks{list-style:none;padding:0;margin:16px 0;display:grid;gap:4px;font-size:12px}
#gate-checks li{display:grid;grid-template-columns:16px minmax(0,1fr);column-gap:8px}
#gate-checks li small{grid-column:2;color:var(--muted);overflow-wrap:anywhere}
#gate-checks .bad{color:var(--accent)}
#gate-progress{width:100%;max-width:520px}
#gate-stage{margin:12px 0 4px}
#gate-log{display:flex;flex-direction:column;gap:10px;margin:18px 0}
.gate-msg{scroll-margin-bottom:230px;max-width:min(720px,100%);padding:10px 14px;border:1px solid var(--line);white-space:pre-wrap;overflow-wrap:anywhere}
.gate-msg.user{align-self:flex-end;background:var(--selected)}
.gate-msg.assistant{align-self:flex-start}
.gate-wait{color:var(--muted)}
.gate-info{scroll-margin-bottom:230px;margin:-4px 0 4px;color:var(--muted);font-size:12px}
#gate-form{position:sticky;bottom:0;background:var(--background);padding-top:8px}
#gate-form[hidden]{display:none}
#gate-form .try-chips{margin-bottom:8px}
#gate-run{margin:0}
#gate-input{box-sizing:border-box;width:100%;min-height:72px;resize:vertical;background:transparent;color:var(--text);border:1px solid var(--line);padding:10px;font:inherit}
.gate-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}
.gate-row .tab-spacer{flex:1}
