.browse-labs{margin-left:10px;min-height:48px;display:inline-flex;align-items:center;font-size:13px}
.docs-header{flex-wrap:wrap}.docs-header strong{min-width:0;overflow-wrap:anywhere}
.waiting-actions{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;margin-top:24px;font-size:13px}.waiting-actions a{display:inline-flex;align-items:center;min-height:44px;color:var(--accent)}
@media(max-width:400px){.site-header nav{gap:12px;font-size:11px}}
*{box-sizing:border-box}body{margin:0;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:disabled{opacity:.55;cursor:wait}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.mono{font-family:'IBM Plex Mono',ui-monospace,monospace;font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.small{font-size:13px;line-height:1.6}.eyebrow{font-size:11px;font-weight:650;letter-spacing:.13em;color:var(--muted);margin:0 0 12px}.site-header{height:88px;max-width:1600px;margin:auto;padding:0 40px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:17px;letter-spacing:.06em;display:flex;gap:10px;align-items:center}.lamp{width:7px;height:7px;border-radius:50%;background:var(--accent)}nav{display:flex;align-items:center;gap:28px;font-size:13px}nav a:hover{color:var(--accent)}.preview-label{border:1px solid var(--line);border-radius:5px;padding:6px 10px;color:var(--muted);font-size:11px}main{max-width:1600px;margin:auto;padding:0 40px}.intro{min-height:calc(100dvh - 160px);display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:80px;max-width:1180px;margin:auto;padding:70px 0}.intro h1{margin-inline:0;text-wrap:balance}.facts{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:12px;color:var(--muted);margin-bottom:30px}.facts span+span:before{content:'·';margin-right:18px;color:var(--dim)}.primary{display:inline-flex;align-items:center;justify-content:center;gap:30px;min-height:48px;border:1px solid var(--accent);border-radius:7px;background:var(--accent);color:var(--bg);padding:12px 20px;font-weight:650;font-size:14px}.primary:hover{background:var(--hover)}.primary:active,.secondary:active{transform:translateY(1px)}.secondary{min-height:40px;padding:9px 14px;border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--fg);font-size:13px}.secondary:hover{border-color:var(--muted)}.text-button{min-height:40px;border:0;background:none;color:var(--muted);font-size:12px;padding:8px}.text-button:hover{color:var(--fg)}#start-note{max-width:42ch;margin-top:16px}.incident-card{border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:26px}.alert-heading{display:flex;align-items:center;gap:10px;font-size:13px}.alert-dot{width:7px;height:7px;background:var(--red);border-radius:50%;flex:none}.tag{font-size:10px;letter-spacing:.08em;margin-left:auto;color:var(--red)}.incident-quote{font-size:24px;line-height:1.4;font-weight:450;margin:30px 0;text-wrap:pretty}.request-path{display:flex;gap:12px;align-items:center;font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--muted);padding-bottom:28px;border-bottom:1px solid var(--line)}.card-foot{padding-top:24px}.card-foot p:last-child{font-size:14px;line-height:1.55;margin:0;max-width:35ch}.site-footer{max-width:1600px;margin:auto;padding:24px 40px;display:flex;justify-content:space-between;gap:20px;font-size:12px;color:var(--muted)}.site-footer a:hover{color:var(--fg)}.waiting{min-height:calc(100dvh - 170px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:64px 20px}.waiting h1{font-weight:500;letter-spacing:-.025em;font-size:32px;margin:0 0 12px}.waiting p:not(.eyebrow){max-width:40ch;line-height:1.6;margin:0 0 24px}.spinner{height:24px;width:24px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:26px}@keyframes spin{to{transform:rotate(360deg)}}.workspace{padding-top:30px}.incident-bar{display:flex;align-items:center;justify-content:space-between;gap:20px}.incident-bar .eyebrow{margin-bottom:6px}.incident-bar h1{font-size:25px;font-weight:550;letter-spacing:-.025em;margin:0}.session-controls{display:flex;align-items:center;gap:22px}.session-clock{font-size:21px;min-width:5ch;color:var(--accent)}.brief-row{display:flex;justify-content:space-between;gap:20px;align-items:center;color:var(--muted);font-size:13px;margin:18px 0 25px}.brief-row p{margin:0}.success-readout{font-size:12px;white-space:nowrap}.success-readout.recovered{color:var(--green)}.workspace-toolbar{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);margin-bottom:16px}.view-tabs{display:flex;gap:20px}.view-tabs button{background:none;border:0;border-bottom:2px solid transparent;color:var(--muted);padding:13px 2px;font-size:13px;min-height:44px}.view-tabs button[aria-pressed=true]{color:var(--fg);border-bottom-color:var(--accent)}.panes{display:grid;gap:14px;grid-template-columns:1fr}.pane{min-width:0;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface)}.pane-heading{height:40px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;font-size:11px;background:var(--surface);border-bottom:1px solid var(--line)}.frame-slot{height:max(560px,calc(100dvh - 340px))}iframe{border:0;width:100%;height:100%;display:block}.panes[data-view=dashboard] .terminal-pane,.panes[data-view=terminal] .dashboard-pane{display:none}.panes[data-view=split]{grid-template-columns:1fr 1fr}.workspace-foot{margin:16px 0 0}.error{color:var(--red);max-width:680px;margin:20px auto;line-height:1.5;padding:14px 18px;border:1px solid var(--error-line);border-radius:3px;background:var(--error-bg)}dialog{background:var(--surface);color:var(--fg);border:1px solid var(--line);border-radius:10px;padding:28px;max-width:460px;width:calc(100% - 40px)}dialog::backdrop{background:var(--backdrop)}dialog h2{margin:0 0 12px}dialog p{font-size:14px;color:var(--muted);line-height:1.6}.dialog-actions{display:flex;justify-content:flex-end;gap:var(--dialog-gap,12px);margin-top:var(--dialog-lead,26px)}
@media(min-width:1700px){.frame-slot{height:calc(100dvh - 340px)}}
@media(max-width:1000px){.intro{gap:35px}.incident-quote{font-size:21px}.request-path{gap:8px;font-size:10px}}
@media(max-width:760px){.site-header{height:70px;padding:0 20px}nav{gap:14px}main{padding:0 20px}.intro{grid-template-columns:1fr;gap:34px;padding:48px 0}.facts{gap:10px;font-size:11px}.facts span+span:before{margin-right:10px}.incident-card{padding:22px}.incident-quote{font-size:23px}.request-path{font-size:11px;gap:10px}.site-footer{padding:24px 20px;flex-wrap:wrap}.incident-bar{align-items:flex-start}.incident-bar h1{font-size:21px}.session-controls{gap:10px}.session-clock{font-size:17px;padding-top:10px}.session-controls .secondary{font-size:11px;padding:8px}.brief-row{display:block;line-height:1.5}.success-readout{display:block;margin-top:12px}.split-option{display:none}.view-tabs{gap:16px}.panes[data-view=split]{grid-template-columns:1fr}.panes[data-view=split] .terminal-pane{display:none}.frame-slot{height:calc(100dvh - 320px);min-height:430px}.workspace-toolbar>#reconnect{font-size:11px}.dialog-actions{flex-direction:column-reverse}.dialog-actions button{width:100%;justify-content:center}}
@media(prefers-reduced-motion:reduce){.spinner{animation:none}button:active{transform:none}}

/* Startup communicates real server stages even when motion is reduced. */
.healthy-dot{width:7px;height:7px;background:var(--green);border-radius:50%;flex:none}
.healthy-tag{font-size:10px;letter-spacing:.08em;margin-left:auto;color:var(--green)}
.success-readout.firing,[data-signal=firing] #signal-label{color:var(--red)}
.spinner{width:36px;height:36px;border-width:3px;margin-bottom:24px}
.waiting h1{text-wrap:balance}
.waiting #waiting-copy{max-width:48ch;font-size:17px}
.startup-progress{width:min(100%,480px);margin:8px 0 16px;text-align:center}
.waiting #startup-phase{max-width:none;margin:0 0 18px;font-size:18px;color:var(--accent)}
.startup-steps{list-style:none;padding:0;margin:0;counter-reset:stage}
.startup-steps li{display:flex;gap:14px;align-items:center;padding:12px 0;font-size:16px;color:var(--muted);counter-increment:stage}
.startup-steps li::before{content:counter(stage);display:grid;place-items:center;flex:none;width:28px;height:28px;border:1px solid var(--line);border-radius:50%;font-size:13px;font-variant-numeric:tabular-nums}
.startup-steps li[data-state=current]{color:var(--fg);font-weight:600}
.startup-steps li[data-state=current]::before{border-color:var(--accent);color:var(--accent)}
.startup-steps li[data-state=complete]::before{content:'✓';color:var(--green);border-color:var(--green)}
.startup-meta{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:18px;padding-top:18px;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
#startup-elapsed{color:var(--fg)}
.incident-bar h1{font-size:34px;text-wrap:balance}
.incident-summary{font-size:clamp(22px,2vw,28px);line-height:1.35;font-weight:500;margin:0 0 12px;text-wrap:pretty}
.incident-goal{border-left:1px solid var(--line);padding-left:28px}
.incident-goal>p:not(.eyebrow){font-size:18px;line-height:1.55;margin:0 0 16px;text-wrap:pretty}
.success-readout{display:block;font-size:13px;white-space:normal}
.incident-card{padding:32px}.incident-quote{font-size:clamp(26px,2.2vw,32px)}
.card-foot p:last-child{font-size:18px;max-width:40ch}.request-path{font-size:14px;flex-wrap:wrap}
@media(max-width:760px){
  
  .waiting{padding:40px 0}.waiting #waiting-copy{font-size:16px}
  .incident-bar{flex-wrap:wrap}.incident-bar h1{font-size:28px}
  .session-controls{width:100%;justify-content:space-between}.session-clock{padding-top:0}
  .session-controls .secondary{font-size:14px;min-height:44px}
  .incident-goal{padding:18px 0 0;border-left:0;border-top:1px solid var(--line)}
  .incident-goal>p:not(.eyebrow){font-size:17px}
  .incident-card{padding:24px}.request-path{font-size:12px}
}

/* Desktop tiling: only CSS placement changes, never iframe DOM ownership. */
.scratchpad-panel{border:1px solid var(--line);border-radius:8px;margin:0 0 16px;padding:14px 18px;background:var(--surface)}
.scratchpad-panel summary{cursor:pointer;font-size:15px;font-weight:550;min-height:24px}.scratchpad-panel summary span{margin-left:20px;font-weight:400}
#scratchpad{display:block;width:100%;resize:vertical;margin-top:16px;padding:14px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--fg);font:14px/1.6 'IBM Plex Mono',monospace}
#review-scratchpad{white-space:pre-wrap;overflow-wrap:anywhere;font:14px/1.7 'IBM Plex Mono',monospace}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.tool-actions,#layout-controls{display:flex;align-items:center;gap:10px}
#layout-order{font:inherit;font-size:12px;color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:10px;min-height:40px}
.layout-hint{font-size:12px;color:var(--muted);margin:-4px 0 16px}
.panes{position:relative}
.panes[data-view=split]{gap:0;height:max(620px,calc(100dvh - 420px));grid-template-columns:minmax(0,var(--first-size,50fr)) 12px minmax(0,var(--second-size,50fr));grid-template-rows:minmax(0,1fr)}
.panes[data-view=split][data-axis=rows]{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,var(--first-size,50fr)) 12px minmax(0,var(--second-size,50fr))}
.panes[data-view=split] .pane{display:flex;flex-direction:column;min-height:0}
.panes[data-view=split] .pane-heading{flex:none;cursor:grab;user-select:none}
.panes[data-view=split] .pane-heading:active{cursor:grabbing}
.panes[data-view=split] .frame-slot{flex:1;height:0;min-height:0}
.drag-grip{color:var(--muted);margin-right:8px;font-size:18px;vertical-align:middle}
.panes:not([data-view=split]) .drag-grip{display:none}
.panes[data-view=split][data-axis=columns][data-first=dashboard] .dashboard-pane,.panes[data-view=split][data-axis=columns][data-first=terminal] .terminal-pane{grid-column:1;grid-row:1}
.panes[data-view=split][data-axis=columns][data-first=dashboard] .terminal-pane,.panes[data-view=split][data-axis=columns][data-first=terminal] .dashboard-pane{grid-column:3;grid-row:1}
.panes[data-view=split][data-axis=rows][data-first=dashboard] .dashboard-pane,.panes[data-view=split][data-axis=rows][data-first=terminal] .terminal-pane{grid-row:1;grid-column:1}
.panes[data-view=split][data-axis=rows][data-first=dashboard] .terminal-pane,.panes[data-view=split][data-axis=rows][data-first=terminal] .dashboard-pane{grid-row:3;grid-column:1}
#splitter{grid-column:2;grid-row:1;position:relative;cursor:col-resize;touch-action:none;border-radius:5px}
#splitter::after{content:'';position:absolute;left:4px;right:4px;top:calc(50% - 24px);height:48px;border-radius:4px;background:var(--line)}
[data-axis=rows] #splitter{grid-column:1;grid-row:2;cursor:row-resize}
[data-axis=rows] #splitter::after{top:4px;bottom:4px;left:calc(50% - 24px);height:auto;width:48px}
#splitter:hover::after,#splitter:focus-visible::after,.is-resizing #splitter::after{background:var(--accent)}
.is-resizing iframe,.is-dragging iframe{pointer-events:none}
.is-resizing{user-select:none}
#snap-preview{position:absolute;z-index:5;pointer-events:none;background:var(--tint);border:2px solid var(--accent);border-radius:8px;display:grid;place-items:center;inset:0}
#snap-preview span{background:var(--accent);color:var(--bg);font-size:14px;padding:10px 16px;border-radius:6px}
#snap-preview[data-side=left]{right:50%}#snap-preview[data-side=right]{left:50%}
#snap-preview[data-side=top]{bottom:50%}#snap-preview[data-side=bottom]{top:50%}

.review{max-width:1000px;margin:0 auto;padding:40px 0 64px}.review h1,.review h2,.review h3,.review p{margin:0}
.shift-report{display:grid;gap:24px}.shift-report .label{font:600 12px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0}
.report-tag{font:500 11px 'IBM Plex Mono',monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 -8px}
.ribbon{position:relative;display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;padding:26px 28px;border-radius:12px;border:1px solid var(--line);border-left:6px solid var(--line);background:var(--surface)}
.ribbon[data-outcome=resolved]{border-left-color:var(--green)}.ribbon[data-outcome=unresolved]{border-left-color:var(--red)}
.ribbon .verdict{display:grid;gap:12px;min-width:0}
.ribbon .review-summary{color:var(--muted);font-size:16px;line-height:1.55;max-width:60ch;text-wrap:pretty}
.stamp{font:700 13px 'IBM Plex Mono',monospace;letter-spacing:.2em;padding:10px 14px;border:2px solid currentColor;border-radius:6px;transform:rotate(-6deg);width:max-content;height:max-content;margin:6px 0 0 8px}
.ribbon[data-outcome=resolved] .stamp{color:var(--green)}.ribbon[data-outcome=unresolved] .stamp{color:var(--red)}
.ring{position:relative;flex:none;width:150px;height:150px}.ring svg{transform:rotate(-90deg);display:block;width:100%;height:100%}
.ring .c{position:absolute;inset:0;display:grid;place-items:center;text-align:center}.ring .c b{display:block;font-size:40px;font-weight:800;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums;margin-bottom:6px}
.ring .c span{font:500 10px 'IBM Plex Mono',monospace;letter-spacing:.1em;color:var(--muted)}.shift-report .ok{color:var(--green)}
.scores{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:10px;overflow:hidden}
.scores>div{padding:14px 16px;border-right:1px solid var(--line);display:grid;gap:2px;align-content:center}.scores>div:last-child{border-right:0}
.scores b{font-size:26px;font-weight:800;font-variant-numeric:tabular-nums}.scores span{font:500 11px 'IBM Plex Mono',monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.scores small{font-size:11px;color:var(--muted)}.scores small:empty{display:none}
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px}.two>div{display:grid;gap:18px;align-content:start;min-width:0}.two section{display:grid;gap:10px}
.rank{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:10px;padding:14px 16px;background:var(--surface)}
.rank .class-insignia{width:64px;height:76px;flex:none;margin:0}.rank .grow{flex:1;display:grid;gap:6px;min-width:0}.rank-head{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.rank-head b{font-size:16px}.rank-head .mono{font-size:13px}.rank-caption,.rank-unlock{font-size:14px;line-height:1.5}.rank-unlock{font-weight:600}
.prog{height:12px;background:var(--tile2);border:1px solid var(--line);border-radius:999px;overflow:hidden}.prog i{display:block;height:100%;background:var(--fg)}
.actions{display:flex;gap:12px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 20px;border-radius:8px;font:600 15px var(--sans);border:1px solid transparent;background:transparent;color:var(--fg)}
.btn-p{background:var(--accent);color:var(--bg);border-color:var(--accent)}.btn-p:hover{background:var(--hover)}.btn-g{border-color:var(--line)}.btn-g:hover{border-color:var(--muted)}
.strip{border:1px solid var(--line);border-radius:10px;padding:14px 16px;background:var(--surface)}
.answer{display:grid;gap:10px}.answer h3{font-size:20px;line-height:1.3}.answer p{color:var(--muted);font-size:16px;line-height:1.6}
pre.fix{font:14px/1.6 'IBM Plex Mono',monospace;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:12px 14px;margin:0;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--accent)}
.lock{border:1px dashed var(--line);border-radius:10px;padding:18px;display:grid;gap:6px}.lock b{font-size:17px}.lock span{font-size:14px;line-height:1.5}
.learn{border-top:1px solid var(--line);padding-top:18px}#review-debrief{display:grid;gap:8px}#review-debrief h3{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}#review-debrief ul{margin:0;padding-left:18px;font-size:14px;line-height:1.6}#review-debrief p{font-size:15px;line-height:1.6}#review-debrief a{color:var(--accent);text-decoration:underline;text-underline-offset:4px;font-size:15px}#review-next a{display:block;color:var(--accent);text-decoration:underline;text-underline-offset:4px;font-size:17px;line-height:1.5}#review-next p{font-size:14px;line-height:1.6}
#review-chart svg{width:100%;display:block}#review-chart text{fill:var(--muted);font:12px 'IBM Plex Mono',monospace}#review-chart svg[data-narrow] text{font-size:28px}.review-grid{stroke:var(--line);stroke-width:1;fill:none}.review-curve{stroke:var(--accent);stroke-width:2;fill:none}

/* A working desk, not a stack of introductory cards. Details expand on demand. */
.brief-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:24px;padding:16px;margin-top:8px;background:var(--surface);border:1px solid var(--line);border-radius:6px}
.brief-grid .incident-summary{font-size:18px;margin-bottom:6px}.brief-grid .incident-context,.brief-grid .incident-goal>p:not(.eyebrow){font-size:14px;line-height:1.5;margin-bottom:8px}
.customer-view{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface)}
.store-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;border-bottom:1px solid var(--line)}
.store-header strong{font:13px 'IBM Plex Mono',monospace;letter-spacing:.14em}.store-header>span{font-size:12px;color:var(--muted)}
.store-body{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr)}
.store-product{display:flex;align-items:center;gap:32px;padding:32px;background:var(--tile2);color:var(--fg);min-width:0}
.store-product .eyebrow{color:var(--muted);font-size:10px;margin-bottom:10px}.store-product h2{font-size:25px;letter-spacing:-.03em;margin:0 0 8px;font-weight:550}
.store-description{font-size:14px;line-height:1.6;max-width:33ch;margin:0;color:var(--muted)}
.store-price{font-size:20px;margin:18px 0}.store-price span{font-size:11px;color:var(--muted)}
.store-product .primary{background:var(--tile2);color:var(--fg);border-color:var(--muted);min-height:40px;padding:8px 16px;font-size:13px}
.store-product :focus-visible{outline-color:var(--fg)}.customer-view button:disabled{cursor:not-allowed}
.wordmark img{display:block;max-height:48px;width:160px;object-fit:contain}
.guide{max-width:760px;margin:0 auto;padding:44px 0 64px;font-size:16px;line-height:1.7}.guide h1{margin-inline:0}.guide h2{font-size:22px;font-weight:550;line-height:1.3;margin:32px 0 12px}.guide p{margin:0 0 18px}.guide a{color:var(--accent);text-decoration:underline;text-underline-offset:4px}.guide pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:16px;font:13px/1.7 'IBM Plex Mono',monospace}.guide code{font-size:.85em}.guide-list{list-style:none;padding:0}.guide-list li{padding:22px 0;border-top:1px solid var(--line)}.guide-list a{font-size:21px}.guide-list p{font-size:15px;color:var(--muted);margin:8px 0 0}
.notebook{flex:none;display:flex;flex-direction:column;justify-content:space-between;width:112px;height:154px;padding:20px 14px 14px 20px;background:var(--surface);color:var(--fg);border-radius:0;border-left:3px solid var(--muted);box-shadow:none;transform:none}
.notebook>span{font-size:18px;line-height:1.25;letter-spacing:.06em}.notebook small{font:10px 'IBM Plex Mono',monospace}
.store-cart{padding:24px;display:flex;flex-direction:column;align-items:stretch;min-width:0;border-left:1px solid var(--line)}
.store-cart h2{display:flex;justify-content:space-between;font-size:16px;font-weight:550;margin:0 0 18px}.store-cart h2 span{font:12px 'IBM Plex Mono',monospace;color:var(--muted)}
#cart-empty{font-size:14px;margin:0 0 20px;flex:1}.cart-line,.cart-total{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:14px}
.cart-line label{font-size:12px;color:var(--muted)}#cart-quantity{font:inherit;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:6px 10px;margin-left:6px}
.cart-total{margin:18px 0;padding-top:14px;border-top:1px solid var(--line)}#customer-checkout{margin-top:auto;min-height:42px;font-size:14px;padding:10px 16px}
.store-fine{font-size:11px;line-height:1.5;color:var(--muted);margin:12px 0 0}
.store-cart h2 #cart-heading{font:inherit;color:inherit}
.scene-fields{display:grid;gap:12px;margin:0 0 20px}.scene-field{display:grid;gap:4px;font-size:12px;color:var(--muted)}.scene-field input,.scene-field select{font-size:14px;font-family:inherit;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:7px 10px;min-width:0}
.checkout-result{display:flex;flex-direction:column;gap:6px;padding:14px 24px;border-top:1px solid var(--line);font-size:13px;line-height:1.5}
.checkout-result strong{font-size:15px;font-weight:550}.checkout-result span{color:var(--muted)}.checkout-result[data-tone=success] strong{color:var(--green)}.checkout-result[data-tone=error] strong{color:var(--red)}
.request-details{padding:12px 24px;border-top:1px solid var(--line)}.request-details>summary{cursor:pointer;display:list-item;list-style-position:inside;font-size:12px;line-height:24px}.request-details>summary span{float:right;font-family:'IBM Plex Mono',monospace;color:var(--muted)}
.request-id-row{display:flex;align-items:center;gap:14px;font-size:12px;margin-top:12px}.request-id-row code{font-size:12px;overflow-wrap:anywhere}.request-id-row button{margin-left:auto;min-height:32px}
#request-body{font:12px/1.6 'IBM Plex Mono',monospace;white-space:pre-wrap;overflow-wrap:anywhere;max-height:140px;overflow:auto;background:var(--bg);padding:12px;border-radius:4px}
.attempts-details{font-size:12px;color:var(--muted)}#checkout-attempts{padding-left:20px;line-height:1.8;overflow-wrap:anywhere}
@media(min-width:1001px){
  .site-header{height:56px;padding:0 24px}main{padding:0 24px}.workspace{padding:16px 0}.incident-bar h1{font-size:25px}.incident-bar .eyebrow{font-size:10px;margin-bottom:6px}
  .session-clock{font-size:18px}.session-controls .secondary{min-height:36px;padding:8px 12px;font-size:12px}
  .layout-hint{font-size:11px;margin:0 0 10px}
  .workspace-toolbar{margin:8px 0}.scratchpad-panel{padding:9px 12px;margin-bottom:12px}.scratchpad-panel summary{font-size:13px;min-height:20px}
  .panes[data-view=split]{height:max(360px,calc(100dvh - 380px))}.frame-slot{height:max(360px,calc(100dvh - 380px));min-height:360px}
  .panes[data-view=split][data-axis=rows]{height:max(560px,calc(100dvh - 380px))}
}
@media(max-width:1000px){.store-body{grid-template-columns:1fr}.store-cart{border-left:0;border-top:1px solid var(--line)}.store-product{padding:24px;gap:24px}.store-header{padding:12px 18px}.request-id-row{flex-wrap:wrap}}

/* Preparation is one small scene; its signal is set by measured server state. */
.prep-scene{width:min(100%,500px);margin:8px auto 18px;padding:8px 0;border-bottom:1px solid var(--line)}
.prep-scene svg{display:block;width:100%;height:auto;max-height:170px;overflow:visible}
.scene-floor,.desk,.chair{fill:var(--art-floor)}.head,.arm{fill:var(--art-skin)}.hair{fill:var(--art-hair)}.eyes{fill:var(--art-eyes)}.shirt{fill:var(--shirt,var(--art-shirt))}.second{--shirt:var(--art-shirt2)}
.monitor,.pager-case{fill:var(--art-case)}.screen,.pager-screen{fill:var(--art-screen)}.screen-lines{fill:var(--art-lines)}.cup{fill:var(--art-cup)}
[data-stage=connecting] .cup,[data-stage=observing] .cup{animation:coffee-break 2s steps(2,end) infinite;transform-box:fill-box}
.flame,.frustration{opacity:0;fill:var(--red)}.flame-core{fill:var(--art-flame)}.pager-light{fill:var(--art-lines)}
[data-stage=healthy] .screen-lines{fill:var(--green);animation:screen-tick 2s steps(2,end) infinite}
[data-stage=healthy] .arm{animation:typing .8s steps(2,end) infinite;transform-box:fill-box;transform-origin:left center}
[data-stage=impact] .flame,[data-stage=paged] .flame,[data-stage=impact] .frustration,[data-stage=paged] .frustration{opacity:1}
[data-stage=impact] .screen-lines,[data-stage=paged] .screen-lines{fill:var(--red)}
[data-stage=impact] .flame,[data-stage=paged] .flame{animation:flame-wave .9s steps(2,end) infinite;transform-box:fill-box;transform-origin:center bottom}
[data-stage=impact] .arm,[data-stage=paged] .arm{transform:translateY(-8px) rotate(-25deg);transform-box:fill-box;transform-origin:left center}
[data-stage=paged] .pager-light{fill:var(--red)}[data-stage=paged] .pager{animation:pager-call .7s steps(2,end) 3;transform-box:fill-box;transform-origin:center}
.prep-caption{font-size:11px!important;color:var(--muted);text-align:center;margin:0 0 18px!important}
#startup-phase{text-align:center;min-height:28px}.startup-meta{margin-top:10px;padding-top:12px}
@keyframes typing{to{transform:translateY(-1px)}}@keyframes screen-tick{50%{opacity:.65}}@keyframes flame-wave{to{transform:scaleX(.9) scaleY(1.08)}}@keyframes pager-call{50%{translate:1px 0}}
@keyframes coffee-break{50%{transform:translateY(-2px)}}
@media(prefers-reduced-motion:reduce){.prep-scene *{animation:none!important;transition:none!important}}
.scratchpad-panel{position:relative}.scratchpad-panel summary{padding-right:144px}.notes-tools{position:absolute;right:12px;top:5px;display:flex;align-items:center;gap:12px;height:28px;margin:0}.notes-tools .mono{font-size:10px;color:var(--muted)}#notes-editor{margin-top:14px}
#vim-toggle{border:1px solid var(--line);border-radius:4px;padding:5px 10px;min-height:28px;font-size:12px}#vim-toggle[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}
.terminal-pane{position:relative}.terminal-pane .pane-heading{padding-right:54px}.terminal-theme{position:absolute;right:8px;top:3px;width:34px;height:34px;padding:7px;z-index:3;background:transparent;color:var(--muted);border:1px solid transparent;border-radius:5px}.terminal-theme:hover,.terminal-theme:focus-visible{color:var(--fg);border-color:var(--line)}.terminal-theme .moon{display:none}.terminal-theme[data-theme=light] .sun{display:none}.terminal-theme[data-theme=light] .moon{display:block}
.terminal-blocked{display:flex;flex:none;align-items:flex-start;gap:12px;padding:12px 16px;background:var(--surface);color:var(--fg);border-bottom:1px solid var(--line);font-size:13px;line-height:1.5}.terminal-blocked p{margin:4px 0 0;color:var(--muted)}.terminal-blocked button{margin-left:auto;min-height:40px;padding:8px;background:transparent;color:var(--muted);border:1px solid var(--line);border-radius:5px}.terminal-blocked button:hover{color:var(--fg)}
.transport-chip{margin-left:8px;padding:1px 6px;border:1px solid var(--line);border-radius:4px;font:11px/1.5 'IBM Plex Mono',ui-monospace,monospace;color:var(--accent)}.transport-chip[data-state=reconnecting]{color:var(--muted)}.transport-chip[data-state=closed]{color:var(--red)}#terminal-blocked-http{color:var(--fg)}#terminal-blocked-http:not([hidden])+#terminal-blocked-dismiss{margin-left:0}
.docs-view{border:1px solid var(--line);border-radius:8px;background:var(--surface)}.docs-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;border-bottom:1px solid var(--line);font-size:14px}.docs-layout{display:grid;grid-template-columns:160px minmax(0,1fr)}
.docs-layout>nav{display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:12px;border-right:1px solid var(--line)}.docs-layout button{background:transparent;border:0;border-radius:4px;color:var(--muted);text-align:left;font-size:13px;padding:10px}.docs-layout button[aria-pressed=true]{background:var(--bg);color:var(--accent)}
.docs-content{padding:20px 24px;max-height:max(360px,calc(100dvh - 430px));min-height:360px;overflow:auto;font-size:14px;line-height:1.65}.docs-content h2{font-size:21px;font-weight:550;margin:0 0 16px}.docs-content h3{font-size:15px;margin:22px 0 8px}.docs-content p{max-width:80ch;margin:10px 0}.docs-content pre{background:var(--bg);border:1px solid var(--line);padding:12px;border-radius:4px;font:12px/1.7 'IBM Plex Mono',monospace;white-space:pre-wrap;overflow-wrap:anywhere}.docs-content li{margin:8px 0;max-width:80ch}.docs-table{border-collapse:collapse;width:100%;font-size:13px}.docs-table td,.docs-table th{text-align:left;padding:10px 12px 10px 0;border-bottom:1px solid var(--line)}.docs-table th{color:var(--muted);font-size:11px;font-weight:500}.change-row{padding:12px 0;border-bottom:1px solid var(--line)}.change-row summary{cursor:pointer;font-size:13px}
@media(max-width:1000px){.docs-layout{grid-template-columns:1fr}.docs-layout>nav{flex-direction:row;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--line)}.docs-header{flex-wrap:wrap}.docs-content{padding:16px;overflow-x:auto}}

/* Quiet entry and preparation: one message, one primary action. */
:root{--entry-header-height:88px}
@media(min-width:1001px){:root{--entry-header-height:56px}}
@media(max-width:760px){:root{--entry-header-height:70px}}
.intro{display:flex;align-items:start;justify-content:center;min-height:calc(100svh - var(--entry-header-height));padding:48px 0;text-align:center}
.intro-copy{display:flex;flex-direction:column;align-items:center;width:min(100%,36rem);max-width:36rem}
.intro h1{max-width:100%;margin-inline:0}
.intro #start-note{max-width:100%;margin:16px auto 0;text-wrap:balance}
/* Briefing ticket (design E, 2026-09-29): the selected lab is the page's headline, like an incident record.
   Facts (runtime, level, time box, reward) come from the catalogue; description 17px/1.6 at <=60ch, objectives 16px. */
.intro-copy{width:min(100%,760px);max-width:760px}
.ticket{width:100%;text-align:left;border:1px solid var(--line);border-radius:10px;background:var(--surface);overflow:hidden}
.ticket-top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 20px;border-bottom:1px solid var(--line);background:var(--raised)}
.ticket-id{font:500 13px 'IBM Plex Mono',ui-monospace,monospace;color:var(--muted)}
.ticket-status{display:inline-flex;align-items:center;gap:8px;font:600 12px 'IBM Plex Mono',ui-monospace,monospace;letter-spacing:.1em;color:var(--red)}
.ticket-status::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--red)}
.ticket-body{padding:24px 20px;display:grid;gap:22px}
.ticket[data-pending] .ticket-body{visibility:hidden}
.intro .ticket h1{max-width:100%;margin-inline:0;text-wrap:balance}
.ticket-facts{display:flex;flex-wrap:wrap;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:6px;overflow:hidden;margin:0}
/* Flex, not a fixed grid: facts share each row, so 2-5 facts never leave an empty shaded cell. */
.ticket-facts div{flex:1 1 0;background:var(--surface);padding:10px 12px;min-width:0}
.ticket-facts dt{font:500 11px 'IBM Plex Mono',ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.ticket-facts dd{margin:2px 0 0;font-size:15px;font-weight:600;overflow-wrap:anywhere}
.ticket h2{font:600 12px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 6px}
.ticket p{margin:0;font-size:17px;line-height:1.6;max-width:60ch;text-wrap:pretty}
.ticket ol{margin:0;padding-left:22px;display:grid;gap:6px;font-size:16px;line-height:1.5;list-style-position:outside}
/* Prerequisite soft lock (design 10 §3.10): the briefing's list of labs to solve first, ✓ solved / ○ unsolved, in play order. */
#launch-prereqs-title{color:var(--muted)}
#launch-prereqs ol{list-style:none;padding:0;gap:0}
#launch-prereqs a{display:flex;align-items:center;gap:8px;min-height:44px;color:var(--fg)}
#launch-prereqs .prereq-title{text-decoration:underline;text-decoration-color:var(--muted);text-underline-offset:3px}#launch-prereqs a:hover .prereq-title{text-decoration-color:var(--fg)}
#launch-prereqs .prereq-mark{flex:none;width:1.1em;color:var(--muted)}#launch-prereqs a[data-solved=true] .prereq-mark{color:var(--solved)}
.ticket-foot{display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:center;padding:16px 20px;border-top:1px solid var(--line)}
.ticket-foot .primary,.ticket-foot .secondary{margin:0;min-height:48px;padding:0 22px;border-radius:8px;font-size:16px;font-weight:600;gap:10px;display:inline-flex;align-items:center;justify-content:center}
@media(max-width:760px){.ticket-body{padding:20px 16px}.ticket-top,.ticket-foot{padding-left:16px;padding-right:16px}.ticket-foot .primary,.ticket-foot .secondary{flex:1 1 100%}.ticket-facts div{flex-basis:calc(50% - 1px)}}
.waiting{min-height:calc(100svh - var(--entry-header-height));padding:48px 0}
.prep-scene{margin:20px auto;border:0}.startup-progress{margin:0 0 20px}
.startup-meta{font-size:12px}.waiting #waiting-copy{font-size:14px}
.waiting p.preparation-brief{max-width:43ch;margin:4px auto 20px;text-align:center;font-size:15px;line-height:1.6;color:var(--muted)}
/* Waiting screens (2026-09-29): every line shares one centred axis and the ticket's title size; the runtime line is a
   mono label like the ticket's fact labels, and the elapsed/connection row is one centred mono line. */
.startup-meta{justify-content:center;gap:24px;font-family:'IBM Plex Mono',ui-monospace,monospace}
.waiting p.runtime-label{font:500 11px/1.7 'IBM Plex Mono',ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);max-width:none;margin:0 0 14px}
.incident-purpose{padding:4px 0 8px}
.incident-purpose .incident-summary{font-size:14px;line-height:1.45;font-weight:550;margin:0 0 3px}
.incident-purpose #goal-copy{font-size:13px;line-height:1.5;color:var(--muted);margin:0}
.incident-purpose{display:flex;align-items:center;justify-content:space-between;gap:20px}
#validate{flex:none;min-height:38px;padding:9px 14px;font-size:12px}
#validate:disabled{cursor:not-allowed}
.resolution[data-outcome=idle]{display:none}
body[data-screen=workspace] .resolution{flex-shrink:1;min-height:44px;max-height:20dvh;overflow:auto;margin:4px 0 8px;padding:10px 12px;border:1px solid var(--line);border-radius:6px}
/* Once resolved, the strip's visible content is gone (the title carries RESOLVED); keep its screen-reader copy without an empty framed box. */
body[data-screen=workspace] .resolution[data-outcome=resolved]{min-height:0;margin:0;padding:0;border:0}
.validation-progress{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
#validation-dots{display:flex;gap:5px;margin:0;padding:0;list-style:none}
#validation-dots li{width:12px;height:12px;border-radius:3px;border:1px solid var(--line)}
#validation-dots li[data-state=ok]{background:var(--green);border-color:var(--green);animation:dot-land .35s steps(3,end) 1}
#validation-dots li[data-state=fail]{background:var(--red);border-color:var(--red);animation:dot-land .35s steps(3,end) 1}
#validation-text{margin:0;font:12px/1.5 'IBM Plex Mono',monospace;color:var(--accent)}
.resolution[data-outcome=failed] #validation-text{color:var(--red)}
[data-resolved=true] #signal-label{color:var(--green)}
.confetti{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;z-index:40}
@keyframes dot-land{0%{transform:translateY(-8px) scale(1.3)}60%{transform:translateY(2px)}100%{transform:none}}
[data-stage=connecting] .cup,[data-stage=observing] .cup{animation:coffee-break 2s steps(4,end) infinite}
[data-stage=healthy] .arm{animation:typing .6s steps(4,end) infinite}
[data-stage=impact] .flame,[data-stage=paged] .flame{animation:flame-wave .5s steps(3,end) infinite}
[data-stage=impact] .frustration,[data-stage=paged] .frustration{animation:frustration-bob .5s steps(2,end) infinite;transform-box:fill-box}
[data-stage=paged] .pager{animation:pager-call .35s steps(4,end) infinite}
[data-stage=paged] .pager-light{animation:pager-blink .35s steps(2,end) infinite}
[data-stage=resolved] .flame,[data-stage=resolved] .frustration{opacity:0;animation:none}
[data-stage=resolved] .screen-lines{fill:var(--green);animation:screen-tick 1.2s steps(2,end) infinite}
[data-stage=resolved] .arm{animation:fist-pump .7s steps(3,end) infinite;transform-box:fill-box;transform-origin:left center}
[data-stage=resolved] .cup{animation:toast 1.4s steps(3,end) infinite;transform-box:fill-box}
[data-stage=resolved] .pager-light{fill:var(--green);animation:pager-clear 1.2s steps(2,end) infinite}
[data-stage=resolved] .pager{animation:none}
@keyframes typing{0%{transform:translateY(0)}25%{transform:translateY(-3px)}50%{transform:translateY(0)}75%{transform:translate(1px,-2px)}}
@keyframes flame-wave{0%{transform:scale(1,1)}33%{transform:scale(.9,1.12) translateX(1px)}66%{transform:scale(1.06,.9) translateX(-1px)}}
@keyframes pager-call{0%{translate:0 0}25%{translate:2px 0}50%{translate:0 -1px}75%{translate:-2px 0}}
@keyframes pager-blink{50%{opacity:.25}}
@keyframes coffee-break{0%{transform:translateY(0)}25%{transform:translateY(-3px)}50%{transform:translate(-2px,-5px)}75%{transform:translateY(-2px)}}
@keyframes frustration-bob{50%{transform:translateY(-2px)}}
@keyframes fist-pump{0%{transform:translateY(0) rotate(0)}40%{transform:translateY(-10px) rotate(-70deg)}70%{transform:translateY(-6px) rotate(-55deg)}}
@keyframes toast{0%{transform:none}50%{transform:translate(-3px,-7px) rotate(-8deg)}}
@keyframes pager-clear{50%{opacity:.35}}
@media(prefers-reduced-motion:reduce){#validation-dots li{animation:none!important}}
.incident-identity{display:flex;align-items:center;gap:16px;min-width:0}
#signal-label{font-size:10px;letter-spacing:.08em;color:var(--muted)}
[data-signal=recovered] #signal-label,[data-signal=healthy] #signal-label{color:var(--green)}
.workspace-toolbar{gap:12px}.view-tabs{min-width:0;overflow-x:auto;white-space:nowrap}
.view-tabs button{flex:none}
#tool-options{position:relative;flex:none;align-self:center}
#tool-options>summary{display:grid;place-items:center;width:36px;height:36px;cursor:pointer;list-style:none;border-radius:5px;color:var(--muted)}
#tool-options>summary::-webkit-details-marker{display:none}
#tool-options>summary:hover,#tool-options[open]>summary{background:var(--surface);color:var(--fg)}
#tool-options .tool-actions{position:absolute;right:0;top:40px;width:240px;z-index:10;display:grid;gap:12px;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:3px;box-shadow:none}
#tool-options #layout-controls{display:grid;gap:10px}#tool-options .text-button{text-align:left}
#tool-options .layout-hint{margin:0;line-height:1.5}
.scratchpad-panel{padding:8px 12px;margin-bottom:10px}.scratchpad-panel summary{font-size:13px}
.scratchpad-panel summary span{margin-left:12px;font-size:11px}
.notes-tools{top:5px}.notes-tools #vim-toggle{padding:4px 8px;min-height:26px;font-size:11px}
#account-save-status:empty{display:none}
#review-editor .scratchpad-panel{margin:0}

/* The workspace owns the viewport. Only its tools and disclosures scroll. */
body[data-screen=workspace]{height:100dvh;overflow:hidden;display:flex;flex-direction:column}
body[data-screen=workspace] .site-header{flex:none;width:100%}
body[data-screen=workspace] main{display:flex;flex-direction:column;flex:1;min-height:0;width:100%}
body[data-screen=workspace] .workspace{display:flex;flex-direction:column;flex:1;min-height:0;padding:12px 0;overflow:hidden}
body[data-screen=workspace] .workspace-content{display:flex;flex-direction:column;flex:1;min-height:0;overflow:auto;scrollbar-gutter:stable}
body[data-screen=workspace] .workspace-content>*{flex-shrink:0}
body[data-screen=workspace] .workspace> *{flex-shrink:0}
body[data-screen=workspace] .incident-bar{margin:0;gap:16px;min-height:40px}
body[data-screen=workspace] .scratchpad-panel[open]{min-height:42px;max-height:30dvh;overflow:auto}
body[data-screen=workspace] #notes-editor .cm-scroller{max-height:20dvh}
body[data-screen=workspace] #notes-editor .cm-content{min-height:100px}
body[data-screen=workspace] #scratchpad{max-height:20dvh;min-height:80px}
/* Grafana needs usable height after its own toolbar. Scroll the workspace rather
   than squeezing its iframe when Overview, notes or verification details expand. */
body[data-screen=workspace] #panes{flex:1 0 402px;min-height:402px;height:auto;grid-template-rows:minmax(0,1fr)}
body[data-screen=workspace] #panes[data-view=split][data-axis=rows]{min-height:calc(402px / var(--smallest-share,.5) + 12px);flex-basis:calc(402px / var(--smallest-share,.5) + 12px);grid-template-rows:minmax(0,var(--first-size,50fr)) 12px minmax(0,var(--second-size,50fr))}
body[data-screen=workspace] #panes>.pane{display:flex;flex-direction:column;min-height:0;min-width:0;overflow:hidden}
body[data-screen=workspace] #panes[data-view=dashboard] .terminal-pane,body[data-screen=workspace] #panes[data-view=terminal] .dashboard-pane{display:none}
body[data-screen=workspace] .pane-heading{flex:none}
body[data-screen=workspace] .frame-slot{flex:1;min-height:0;height:0}
body[data-screen=workspace] .frame-slot iframe{display:block;width:100%;height:100%}
body[data-screen=workspace] #docs-view{display:flex;flex-direction:column;flex:1 0 360px;min-height:360px;overflow:hidden}
body[data-screen=workspace] .docs-header{flex:none;padding:10px 16px}
body[data-screen=workspace] .docs-layout{flex:1;min-height:0;grid-template-rows:minmax(0,1fr)}
body[data-screen=workspace] .docs-layout>nav{min-height:0;overflow:auto}
body[data-screen=workspace] .docs-content{min-height:0;max-height:none;overflow:auto}
body[data-screen=workspace] #customer-view{flex:1;min-height:0;overflow:auto}
body[data-screen=workspace] #error{flex:none;max-height:15dvh;overflow:auto;margin:6px 0}
@media(max-width:1000px){
  body[data-screen=workspace] .docs-layout{grid-template-rows:auto minmax(0,1fr)}
  .docs-layout>nav{gap:0;padding:6px}.docs-layout button{padding:8px;font-size:12px}
}
@media(max-width:760px){
  .incident-purpose{align-items:flex-start;flex-direction:column;gap:8px}
  .review{padding:20px 0 48px}.ribbon,.two{grid-template-columns:1fr}.ribbon{padding:22px 18px}.ribbon .ring{justify-self:center}.stamp{margin-left:0}.scores b{font-size:22px}.scores>div{padding:12px 10px}.two{gap:22px}.rank{padding:12px}.rank .class-insignia{width:52px;height:62px}
  #validate{min-height:34px;padding:7px 10px;font-size:11px}
  body[data-screen=workspace] .site-header{height:48px;padding:0 12px}
  body[data-screen=workspace] .wordmark img{width:112px;height:34px}
  body[data-screen=workspace] main{padding:0 12px}
  body[data-screen=workspace] .incident-bar{flex-wrap:nowrap}
  .incident-identity{align-items:flex-start;flex-direction:column;gap:3px}
  .incident-bar h1{font-size:22px}#signal-label{font-size:9px}
  body[data-screen=workspace] .session-controls{width:auto;gap:10px}
  body[data-screen=workspace] .session-controls .secondary{font-size:12px;min-height:36px;padding:8px}
  .view-tabs{gap:16px}.view-tabs button{font-size:12px}
body[data-screen=workspace] .workspace-toolbar{margin:4px 0;flex-wrap:wrap}
  .brief-grid{grid-template-columns:1fr;gap:10px;padding:12px}
  .scratchpad-panel summary{padding-right:100px}
  .host-reference-table,.host-reference-table tbody,.host-reference-table tr,.host-reference-table td{display:block}
  .host-reference-table tr:first-child{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .host-reference-table tr+tr{border-bottom:1px solid var(--line);padding:12px 0}
  .host-reference-table td{display:grid;grid-template-columns:90px minmax(0,1fr);gap:12px;border:0;padding:4px 0;overflow-wrap:anywhere}
  .host-reference-table td::before{content:attr(data-label);color:var(--muted);font-size:11px}
}

/* Beacon shares the workbench, but its probe and preparation depict event delivery. */
body[data-screen=workspace] #event-view{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain}
.event-view{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:24px}
.event-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.event-header .eyebrow{font:10px/1.5 'IBM Plex Mono',monospace;margin:0 0 8px}
.event-header h2{font-size:26px;font-weight:500;letter-spacing:-.03em;margin:0}
.event-route{font-size:12px;color:var(--muted);white-space:nowrap}
.event-probe{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:36px;padding:24px 0}
.event-probe .eyebrow{font-size:10px;margin-bottom:12px}.event-probe p{max-width:65ch;margin-bottom:0}
.event-view pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.7 'IBM Plex Mono',monospace;color:var(--accent);background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:14px 16px}
.event-send{align-self:center}.event-send button{font-size:13px;min-height:46px}.event-send p{font-size:12px;line-height:1.7;max-width:43ch}
.event-result{border-block:1px solid var(--line);padding:20px 0;line-height:1.6}.event-result strong{font-size:17px;font-weight:500}.event-result p{color:var(--muted);font-size:13px;max-width:80ch;margin:6px 0 0}
.event-result[data-tone=error] strong{color:var(--red)}.event-result[data-tone=success] strong{color:var(--green)}.event-result[data-tone=pending] strong{color:var(--accent)}
.event-receipt{padding-top:16px}.event-receipt summary{cursor:pointer;font-size:13px;line-height:1.7;padding:6px 0}.event-receipt summary span{font-size:11px;color:var(--muted);margin-left:12px}.event-receipt .request-id-row{flex-wrap:wrap;margin-top:14px}.event-receipt code{overflow-wrap:anywhere;min-width:0}.event-receipt .text-button{min-height:44px}.event-receipt>p:empty{display:none}
.event-scene{max-width:360px;margin:28px auto;text-align:center}.event-scene svg{display:block;width:100%;height:auto}.event-scene>span{font:10px/1.7 'IBM Plex Mono',monospace;color:var(--muted);letter-spacing:.07em}.event-scene>span span{margin:0 18px}
.event-nodes{fill:var(--surface);stroke:var(--muted);stroke-width:1.5}.event-packet,.event-beacon{fill:var(--accent)}.event-packet{animation:event-transit 2s ease-in-out infinite}
.event-scene[data-stage=impact] .event-packet,.event-scene[data-stage=paged] .event-packet,.event-scene[data-stage=observing] .event-packet{animation:none;opacity:.35}
.event-scene[data-stage=impact] .event-beacon,.event-scene[data-stage=paged] .event-beacon{fill:var(--red)}
.event-resolution-icon{width:52px;height:52px;flex:none;fill:none;stroke:var(--green);stroke-width:2}
@keyframes event-transit{0%{transform:translateX(0);opacity:0}20%{opacity:1}80%{opacity:1}100%{transform:translateX(92px);opacity:0}}
@media(max-width:760px){.event-view{padding:16px}.event-header{padding-bottom:14px;flex-wrap:wrap;gap:10px}.event-header h2{font-size:23px}.event-route{font-size:10px}.event-probe{grid-template-columns:minmax(0,1fr);gap:16px;padding:18px 0}.event-probe .small{font-size:12px;line-height:1.6}.event-send p{max-width:none}.event-receipt summary span{display:block;margin:4px 0}.event-result strong{font-size:16px}}
@media(prefers-reduced-motion:reduce){.event-packet{animation:none;opacity:.65}}

body[data-screen=workspace] #database-view{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain}
.database-client{padding:20px 0;border-bottom:1px solid var(--line)}
.database-shortcuts{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.database-shortcuts button{min-height:36px;padding:4px 0;font-size:12px;color:var(--accent)}
.database-view h3{font-size:18px;font-weight:500;margin:0 0 10px;letter-spacing:-.02em}
.database-view .small{max-width:90ch;margin:10px 0}
.database-commands{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;margin:22px 0 12px}
.database-commands .eyebrow{font:10px/1.6 'IBM Plex Mono',monospace;margin:0 0 10px}
.database-command-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;margin-top:8px}
.database-commands button{min-height:44px;font-size:12px}.database-commands .text-button{padding-inline:0}
.database-probe{padding-top:22px}.database-probe .event-probe{padding-top:0;align-items:start;gap:28px}
.database-probe .event-send{align-self:start}.database-view p:empty{display:none}
@media(max-width:760px){.database-commands{grid-template-columns:minmax(0,1fr);gap:18px;margin-top:18px}.database-view .small{font-size:12px;line-height:1.65}.database-client{padding-top:18px}.database-command-actions{gap:4px 14px}.database-probe .event-probe{gap:14px}}

/* Keep actions findable while tools scroll; wrapping exposes every tool on phones. */
body[data-screen=workspace] #customer-view,body[data-screen=workspace] #event-view,body[data-screen=workspace] #database-view{flex:1 0 360px;min-height:360px;overflow:auto}
body[data-screen=workspace] .workspace-toolbar{position:relative;flex:none;z-index:12;background:var(--bg);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:8px 0;border-block:1px solid var(--line)}
body[data-screen=workspace] .view-tabs{display:flex;flex-wrap:wrap;overflow:visible;gap:6px;white-space:normal;border:0;min-width:0}
body[data-screen=workspace] .view-tabs button{min-width:44px;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--fg);font-size:14px;line-height:1.3}
body[data-screen=workspace] .view-tabs button[aria-pressed=true]{background:var(--raised);border-color:var(--accent);color:var(--accent)}
.workspace-actions{display:flex;align-items:center;gap:8px;flex:none}
body[data-screen=workspace] #validate,body[data-screen=workspace] #end{min-height:44px;font-size:14px;padding:8px 12px;white-space:nowrap}
body[data-screen=workspace] #tool-options>summary{display:flex;align-items:center;justify-content:center;gap:8px;width:auto;min-width:66px;min-height:44px;padding:8px 10px;font-size:14px;border:1px solid var(--line);background:var(--surface);color:var(--fg)}
body[data-screen=workspace] #tool-options .tool-actions{top:48px}body[data-screen=workspace] #tool-options .tool-actions button{min-height:44px}
body[data-screen=workspace] .workspace-help{position:relative;flex:none;background:var(--bg);padding:4px 0;min-height:48px;border-top:1px solid var(--line)}
body[data-screen=workspace] .workspace-help button{min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:6px;font-size:14px}
body[data-screen=workspace] .scratchpad-panel>summary{min-height:40px;line-height:24px;padding-block:8px;font-size:14px}
.intro .ticket{overflow:visible}.ticket-foot{position:sticky;bottom:0;z-index:2;background:var(--surface);border-radius:0 0 8px 8px}
@media(max-width:760px){body[data-screen=workspace] .view-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}body[data-screen=workspace] .view-tabs .split-option{display:none}body[data-screen=workspace] .workspace-actions{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px}body[data-screen=workspace] #validate,body[data-screen=workspace] #end{font-size:13px;padding-inline:10px}.ticket-foot{gap:8px;padding-block:10px}.ticket-foot .secondary{min-height:40px}body[data-screen=workspace] #panes[data-view=split][data-axis]{grid-template-columns:minmax(0,1fr);grid-template-rows:repeat(2,minmax(45dvh,auto));height:auto;min-height:0;flex-basis:auto}body[data-screen=workspace] #panes[data-view=split]>.pane{grid-column:1;grid-row:auto}body[data-screen=workspace] #splitter{display:none}}


/* Notes drawer: slides in over the panes below the toolbar; the panes stay usable beside it. */
body[data-screen=workspace] .workspace{position:relative}
.notes-drawer{position:absolute;z-index:11;right:0;top:var(--notes-top,0px);bottom:12px;width:min(380px,100%);display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);transform:translateX(calc(100% + 32px));visibility:hidden;transition:transform .18s ease-out,visibility 0s linear .18s}
.notes-drawer[data-open=true]{transform:none;visibility:visible;transition:transform .18s ease-out}
.notes-close{position:absolute;top:4px;right:4px;z-index:2;min-width:40px;min-height:40px;font-size:14px}
.notes-drawer .scratchpad-panel{flex:1;min-height:0;margin:0;padding:10px 14px 14px;border:0;border-radius:0;background:transparent;overflow:auto}
body[data-screen=workspace] .notes-drawer .scratchpad-panel[open]{max-height:none}
.notes-drawer .scratchpad-panel>summary{list-style:none;cursor:default;padding-right:136px;font:500 18px/24px var(--serif)}
body[data-screen=workspace] .notes-drawer .scratchpad-panel>summary{min-height:32px;padding-block:4px;font:500 18px/24px var(--serif)}
.notes-drawer .scratchpad-panel>summary::-webkit-details-marker{display:none}
.notes-drawer .scratchpad-panel>summary span{display:block;margin:2px 0 0;font:11px var(--mono);color:var(--muted)}
.notes-drawer .notes-tools{right:44px;top:6px}
body[data-screen=workspace] .notes-drawer #notes-editor .cm-scroller{max-height:none}
body[data-screen=workspace] .notes-drawer #notes-editor .cm-content{min-height:max(160px,calc(100dvh - 380px))}
body[data-screen=workspace] .notes-drawer #scratchpad{max-height:none;min-height:max(160px,calc(100dvh - 380px));resize:none}
@media(max-width:760px){.notes-drawer{width:100%;border-inline:0}}
@media(prefers-reduced-motion:reduce){.notes-drawer,.notes-drawer[data-open=true]{transition:none}}

/* Board look (founder 2026-10-12): the lab workspace in the lab board's quiet CTF look — flat tiles, 1px lines,
   Newsreader headings, IBM Plex Mono data, text-coloured actions instead of bright fills. Since scope C (2026-10-16)
   these are the default on every page that loads this sheet (:root keeps the old .board-look specificity). */
:root :focus-visible{outline:1px solid var(--fg);outline-offset:3px}
:root .eyebrow{font:500 10.5px var(--mono);letter-spacing:.12em;color:var(--muted)}
/* Actions: text colour on a tile, never a bright fill. */
:root .primary,:root .btn-p,:root .store-product .primary{background:var(--tile2);color:var(--fg);border:1px solid var(--muted);border-radius:3px;font-weight:500}
:root .primary:hover,:root .btn-p:hover,:root .store-product .primary:hover{background:var(--hover);border-color:var(--fg)}
:root .secondary,:root .btn-g{background:transparent;color:var(--fg);border:1px solid var(--line);border-radius:3px}
/* Fix 5 (audit): the four board buttons the audit found in the wrong font. */
#cancel,#queue-leave,#customer-checkout,#net-send{font-family:var(--mono)}
body:not([data-page=workspace]) :is(.primary,.btn-p,.secondary,.btn-g){font-family:var(--mono)}  /* every other page: board buttons in mono */
:root .secondary:hover,:root .btn-g:hover{border-color:var(--muted)}
:root .primary:active,:root .secondary:active,:root .btn:active{transform:none}
:root .text-button{color:var(--muted)}:root .text-button:hover{color:var(--fg)}
:root .error{border-radius:0;background:var(--error-bg);border-color:var(--error-line)}
:root dialog{border-radius:3px;box-shadow:none}
#end-dialog{--dialog-inset:28px;padding:var(--dialog-inset)}
:root dialog h2{font:var(--dialog-font,500 23px/1.15 var(--serif))}
:root .spinner{width:32px;height:2px;border:0;border-radius:0;background:var(--muted);animation:quiet-pulse 1.2s ease-in-out infinite}
@keyframes quiet-pulse{50%{opacity:.3}}
/* Briefing and preparation share the page. */
:root .ticket{border-radius:0;background:var(--surface)}
:root .ticket-status::before{display:none}
:root .ticket-id,:root .ticket-status{font-family:var(--mono)}
:root .intro .ticket h1,:root .waiting h1{font-family:var(--serif)}
:root .ticket h2{font:500 10.5px var(--mono);letter-spacing:.12em;color:var(--muted)}
:root .ticket-facts{border-radius:0}:root .ticket-facts dt{color:var(--dim)}:root .ticket-facts dd{font-weight:500}
:root .ticket-foot{background:var(--surface);border-radius:0}
:root .ticket-foot .primary,:root .ticket-foot .secondary{border-radius:3px;font:500 14px var(--mono)}
/* Workspace header: title, signal, mode; the success readout sits beside the clock. */
:root .incident-bar h1{font:500 26px/1.1 var(--serif);letter-spacing:-.01em}
:root #signal-label{font:11px var(--mono);letter-spacing:.12em}
:root #workspace-runtime{font:11px var(--mono);letter-spacing:.06em;color:var(--dim);white-space:nowrap}
:root #workspace-runtime:empty{display:none}
:root .session-controls{gap:18px}
:root .session-clock{font:500 18px var(--mono);color:var(--fg)}
:root .success-readout{display:inline;font:12px var(--mono);color:var(--muted);white-space:nowrap;margin:0}
:root .success-readout.recovered{color:var(--green)}:root .success-readout.firing{color:var(--red)}
:root .incident-purpose .incident-summary{font-weight:500}
:root body[data-screen=workspace] .workspace-toolbar{background:var(--bg);border-block-color:var(--line);padding:6px 0}
:root body[data-screen=workspace] .view-tabs{gap:2px}
:root body[data-screen=workspace] .view-tabs button{min-height:40px;padding:8px 10px;border:0;border-radius:3px;background:transparent;color:var(--muted);font:13px var(--mono)}
:root body[data-screen=workspace] .view-tabs button:hover{color:var(--fg)}
:root body[data-screen=workspace] .view-tabs button[aria-pressed=true],:root body[data-screen=workspace] .view-tabs .notes-toggle[aria-expanded=true]{background:var(--tile2);color:var(--fg);border:0}
:root body[data-screen=workspace] .view-tabs .notes-toggle{margin-left:10px;box-shadow:-11px 0 0 -10px var(--line)}
:root body[data-screen=workspace] #validate,:root body[data-screen=workspace] #end{min-height:40px;padding:8px 12px;font:13px var(--mono)}
:root body[data-screen=workspace] #tool-options>summary{min-height:40px;border:1px solid var(--line);border-radius:3px;background:transparent;color:var(--muted);font:13px var(--mono)}
:root body[data-screen=workspace] #tool-options>summary:hover,:root body[data-screen=workspace] #tool-options[open]>summary{color:var(--fg);border-color:var(--muted)}
:root #tool-options .tool-actions{background:var(--surface);border-radius:3px;box-shadow:none}
:root #layout-order{border-radius:3px;font-family:var(--mono)}
/* Panes: flat tiles with a mono label row. */
:root .pane{border-radius:0;background:var(--surface)}
:root .pane-heading{height:40px;background:var(--surface);font:11px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
:root .drag-grip{color:var(--dim);font-size:15px}
:root .terminal-theme{top:0;border-radius:3px}
:root #splitter::after{background:var(--line)}
:root #splitter:hover::after,:root #splitter:focus-visible::after,:root .is-resizing #splitter::after{background:var(--muted)}
:root #snap-preview{background:var(--tint);border:1px dashed var(--muted);border-radius:0}
:root #snap-preview span{background:var(--tile2);color:var(--fg);border:1px solid var(--line);border-radius:3px;font:12.5px var(--mono)}
:root body[data-screen=workspace] .resolution{border-radius:0}
:root #validation-dots li{border-radius:1px}
:root .resolution[data-outcome=running] #validation-text,:root .event-result[data-tone=pending] strong{color:var(--amber)}
/* Docs, probes and the customer board. */
:root .docs-view,:root .event-view,:root .customer-view{border-radius:0;background:var(--surface)}
:root .docs-header strong{font:500 17px var(--serif)}:root #docs-version{font-family:var(--mono)}
:root .docs-layout button{font:12.5px var(--mono);border-radius:3px;color:var(--muted)}
:root .docs-layout button[aria-pressed=true]{background:var(--tile2);color:var(--fg)}
:root .docs-content h2{font:500 24px/1.2 var(--serif)}
:root .docs-content pre,:root .event-view pre,:root #request-body{border-radius:0;background:var(--bg);color:var(--fg)}
:root .event-header h2{font:500 24px/1.15 var(--serif);letter-spacing:-.01em}
:root .database-view h3{font:500 19px var(--serif)}
:root .database-shortcuts button{color:var(--fg)}
:root .store-header strong{font-family:var(--mono)}
:root .store-product{background:var(--tile2);color:var(--fg)}
:root .store-product .eyebrow{color:var(--muted)}
:root .store-product h2{font:500 26px/1.1 var(--serif);letter-spacing:-.01em}
:root .store-description,:root .store-price span{color:var(--muted)}
:root .store-price{font:500 18px var(--mono)}
:root .store-product :focus-visible{outline-color:var(--fg)}
:root .notebook{background:var(--surface);color:var(--fg);border:1px solid var(--line);border-left:3px solid var(--muted);border-radius:0;box-shadow:none;transform:none}
:root .notebook>span{font:500 17px/1.2 var(--serif);letter-spacing:.02em}
:root .store-cart h2{font:500 18px var(--serif)}
:root #cart-quantity{border-radius:3px}
:root .trace-span-identity strong{color:var(--fg)}
/* Hints popover. */
:root .hints-view{border-radius:3px;border-color:var(--muted);box-shadow:none}
:root .hints-heading h2{font:500 22px/1.2 var(--serif);letter-spacing:-.01em}
:root .hint-list .eyebrow{color:var(--muted)}
:root .hint-list h3{font-family:var(--serif);font-weight:500}
:root .hint-list pre{border-radius:0;background:var(--bg)}
:root body[data-screen=workspace] .workspace-help button{border-radius:3px;font:13px var(--mono)}
:root #scratchpad{border-radius:0;background:var(--bg)}
:root .scratchpad-panel{border-radius:0}
:root #vim-toggle{border-radius:3px;font-family:var(--mono)}
@media(prefers-reduced-motion:reduce){:root .spinner{animation:none}}
/* Shift report: one flat verdict tile, quiet numbers. */
:root .shift-report .label,:root .report-tag{font:500 10.5px var(--mono);letter-spacing:.12em;color:var(--muted)}
:root .ribbon{--page-title-space-before:6px;background:var(--surface);border-radius:0;border-left-width:3px;padding:22px 24px}
:root .ribbon h1{font-family:var(--serif);font-stretch:normal}
:root .stamp{transform:none;border-width:1px;border-radius:2px;font:500 11px var(--mono);letter-spacing:.14em;padding:5px 8px;margin:0}
:root .ring{width:112px;height:112px}
:root .ring .c b{font:500 26px/1 var(--serif);letter-spacing:0;margin-bottom:4px}
:root .scores{border-radius:0}
:root .scores b{font:500 20px var(--serif)}
:root .rank,:root .strip,:root .lock{border-radius:0;background:var(--surface)}
:root .prog{height:4px;border:0;border-radius:0;background:var(--line)}:root .prog i{background:var(--fg)}
:root .btn{border-radius:3px;font:500 13px var(--mono)}
:root .answer h3{font:500 21px/1.25 var(--serif)}
:root pre.fix{border-radius:0;background:var(--bg);color:var(--fg)}
:root #review-next a{color:var(--fg);font:500 18px/1.4 var(--serif)}
:root .shift-report{gap:36px}
:root .ribbon{padding:36px}
:root .scores{grid-template-columns:repeat(4,minmax(0,1fr))}:root .scores>div{padding:20px 22px}
:root .two{gap:48px}:root .two>div{gap:28px}
:root .rank{padding:18px 20px}:root .rank .class-insignia{width:40px;height:48px}
.answer details>*+*{margin-top:10px}
.answer summary{cursor:pointer;list-style:none;font:12.5px var(--mono,'IBM Plex Mono',monospace);color:var(--muted);padding:8px 0}.answer summary::-webkit-details-marker{display:none}
.answer summary::before{content:'+ '}.answer details[open]>summary::before{content:'– '}
:root .lock{border:0;background:transparent;padding:8px 0}:root .lock b{font:12.5px var(--mono);font-weight:400;color:var(--muted)}
@media(max-width:760px){:root .ribbon{padding:28px 22px}:root .scores{grid-template-columns:repeat(2,minmax(0,1fr))}:root .scores>div:nth-child(2){border-right:0}:root .scores>div:nth-child(n+3){border-top:1px solid var(--line)}:root .two{gap:28px}}
:root .reward-character{background:transparent;border-radius:0}
@media(max-width:760px){:root body[data-screen=workspace] .session-controls{flex-direction:column-reverse;align-items:flex-end;gap:2px}:root .success-readout{font-size:11px}:root body[data-screen=workspace] .view-tabs .notes-toggle{margin-left:0;box-shadow:none}}

/* Look b, terminal-first (founder look review 2026-10-13): no site header while a lab runs, the tools full-bleed,
   one 28px tmux-style status line at the bottom holding the title, signal, success, clock, short-word tabs and actions. */
body.look-b[data-screen=workspace] #site-header{display:none}
body.look-b[data-screen=workspace] main{padding:0;max-width:none}
body.look-b[data-screen=workspace] .workspace{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:minmax(0,1fr) 28px;padding:0;gap:0}
body.look-b[data-screen=workspace] .workspace-content{grid-column:1/-1;grid-row:1}
body.look-b[data-screen=workspace] .incident-purpose{display:none}
body.look-b[data-screen=workspace] .incident-bar,body.look-b[data-screen=workspace] .workspace-toolbar{grid-row:2;min-height:0;height:28px;margin:0;padding:0 10px;border:0;border-top:1px solid var(--line);background:var(--tile2);font:12px/28px var(--mono);flex-wrap:nowrap;gap:0}
body.look-b[data-screen=workspace] .incident-bar{grid-column:1;padding-right:0}
body.look-b[data-screen=workspace] .workspace-toolbar{grid-column:2;padding-right:132px}
body.look-b .incident-identity{gap:0;flex-direction:row;align-items:center}
body.look-b .incident-bar h1{font:500 12px/28px var(--mono);letter-spacing:0;max-width:34ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.look-b #signal-label,body.look-b #workspace-runtime,body.look-b .success-readout,body.look-b .session-clock{font:12px/28px var(--mono);letter-spacing:0}
body.look-b #signal-label::before,body.look-b #workspace-runtime:not(:empty)::before,body.look-b .success-readout::before,body.look-b .session-clock::before{content:"·";color:var(--dim);margin:0 8px}
body.look-b[data-screen=workspace] .session-controls{gap:0;flex-direction:row;align-items:center;width:auto}
body.look-b .session-clock{min-width:0;padding:0}
body.look-b[data-screen=workspace] .view-tabs{display:flex;flex-wrap:nowrap;gap:0;width:auto;margin-left:8px}
body.look-b[data-screen=workspace] .view-tabs::before{content:"│";color:var(--dim);margin-right:4px}
/* Short words: the button keeps its accessible text; only the painted label changes. */
body.look-b[data-screen=workspace] .view-tabs button,body.look-b[data-screen=workspace] #validate,body.look-b[data-screen=workspace] #end,body.look-b[data-screen=workspace] #tool-options>summary,body.look-b[data-screen=workspace] #keys-help,body.look-b[data-screen=workspace] .workspace-help button{min-height:0;min-width:0;height:28px;padding:0 7px;border:0;border-radius:0;background:transparent;color:var(--muted);font-size:0;line-height:28px}
body.look-b[data-screen=workspace] .view-tabs button::after,body.look-b[data-screen=workspace] #validate::after,body.look-b[data-screen=workspace] #end::after,body.look-b[data-screen=workspace] #tool-options>summary::after,body.look-b[data-screen=workspace] #keys-help::after,body.look-b[data-screen=workspace] .workspace-help button::after{font:12px/28px var(--mono)}
body.look-b button[data-view=terminal]::after{content:"1:term"}body.look-b button[data-view=dashboard]::after{content:"2:dash"}body.look-b button[data-view=docs]::after{content:"3:docs"}
body.look-b button[data-view=customer]::after{content:"4:app"}body.look-b button[data-view=split]::after{content:"5:split"}body.look-b .notes-toggle::after{content:"n notes"}
body.look-b #validate::after{content:"v verify"}body.look-b #tool-options>summary::after{content:"tools"}body.look-b #end::after{content:"e end"}body.look-b .workspace-help button::after{content:"h hint"}body.look-b #keys-help::after{content:"? keys"}
body.look-b #tool-options>summary>span,body.look-b .workspace-help button>span{display:none}
body.look-b[data-screen=workspace] .view-tabs button[aria-pressed=true],body.look-b[data-screen=workspace] .view-tabs .notes-toggle[aria-expanded=true]{background:var(--fg);color:var(--bg)}
body.look-b[data-screen=workspace] .view-tabs .notes-toggle{margin-left:0;box-shadow:none}
body.look-b[data-screen=workspace] #validate:not(:disabled){color:var(--fg)}
body.look-b[data-screen=workspace] .workspace-actions{gap:0;margin-left:auto}
body.look-b[data-screen=workspace] #tool-options .tool-actions{top:auto;bottom:32px}
body.look-b[data-screen=workspace] .workspace-help{position:fixed;right:0;bottom:0;z-index:13;height:28px;min-height:0;padding:0 8px;border:0;background:var(--tile2)}
body.look-b[data-screen=workspace] #panes{gap:0;flex-basis:0}
body.look-b[data-screen=workspace] .pane{border:0}
body.look-b[data-screen=workspace] .pane-heading{display:none}
body.look-b[data-screen=workspace] .terminal-theme{top:4px;right:10px;background:var(--tile2)}
body.look-b[data-screen=workspace] #splitter::after{left:5px;right:5px;top:0;bottom:0;height:auto;border-radius:0}
body.look-b[data-screen=workspace] .resolution{margin:0}
body.look-b .notes-drawer{top:0;bottom:0;border-top:0;border-bottom:0}
body.look-b .hints-view{bottom:36px;right:8px}

/* Look c, left rail console: a fixed ~200px rail holds title, signal, success, clock, the view tabs stacked and
   Notes/Verify/Tools/End at the bottom; the panes take everything else. IBM Plex Mono only. */
body.look-c{--serif:var(--mono);font-family:var(--mono)}
body.look-c[data-screen=workspace] #site-header{display:none}
body.look-c[data-screen=workspace] main{padding:0;max-width:none}
body.look-c[data-screen=workspace] .workspace{display:grid;grid-template-columns:200px minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr);padding:0;gap:0}
body.look-c[data-screen=workspace] .workspace>.incident-bar,body.look-c[data-screen=workspace] .workspace>.incident-purpose,body.look-c[data-screen=workspace] .workspace>.workspace-toolbar{grid-column:1;background:var(--surface);border-right:1px solid var(--line);margin:0}
body.look-c[data-screen=workspace] .workspace-content{grid-column:2;grid-row:1/-1;padding:8px 10px 8px 10px}
body.look-c[data-screen=workspace] .incident-bar{grid-row:1;display:block;padding:16px 14px 10px;min-height:0}
body.look-c .incident-identity{display:grid;gap:6px}
body.look-c .incident-bar h1{font:500 15px/1.3 var(--mono);letter-spacing:0}
body.look-c #signal-label{font-size:11px}
body.look-c[data-screen=workspace] .session-controls{display:grid;gap:4px;margin-top:12px;width:auto;justify-items:start}
body.look-c .success-readout{white-space:normal;font-size:11px}
body.look-c .session-clock{font-size:22px;order:-1;padding:0}
body.look-c[data-screen=workspace] .incident-purpose{grid-row:2;display:block;padding:0 14px 12px}
body.look-c .incident-purpose .incident-summary{font-size:12px;line-height:1.5}
body.look-c .incident-purpose #goal-copy{font-size:11px}
body.look-c[data-screen=workspace] .workspace-toolbar{grid-row:3;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:2px;padding:10px 8px 60px;border-block:0;border-top:1px solid var(--line);flex-wrap:nowrap;min-height:0;overflow:auto}
body.look-c[data-screen=workspace] .view-tabs{display:contents}
body.look-c[data-screen=workspace] .view-tabs button{width:100%;text-align:left;font-size:13px}
body.look-c[data-screen=workspace] .view-tabs .split-option{display:block}
body.look-c[data-screen=workspace] .view-tabs .notes-toggle{margin:auto 0 0;box-shadow:0 -9px 0 -8px var(--line)}
body.look-c[data-screen=workspace] .workspace-actions{display:grid;grid-template-columns:1fr;gap:4px;margin-top:6px}
body.look-c[data-screen=workspace] #validate,body.look-c[data-screen=workspace] #end,body.look-c[data-screen=workspace] #tool-options>summary{width:100%;justify-content:flex-start;text-align:left}
body.look-c[data-screen=workspace] #tool-options .tool-actions{left:calc(100% + 8px);right:auto;top:auto;bottom:0}
body.look-c[data-screen=workspace] .workspace-help{position:fixed;left:0;bottom:0;width:200px;z-index:13;padding:4px 8px;border-top:1px solid var(--line);border-right:1px solid var(--line);background:var(--surface)}
body.look-c[data-screen=workspace] .workspace-help button{width:100%;justify-content:flex-start}
body.look-c .notes-drawer{top:8px;bottom:8px}
body.look-c .hints-view{left:216px;right:auto;bottom:16px}
body.look-c .incident-bar h1,body.look-c dialog h2,body.look-c .ribbon h1,body.look-c .hints-heading h2,body.look-c .docs-content h2,body.look-c .event-header h2,body.look-c .answer h3,body.look-c .notes-drawer .scratchpad-panel>summary{font-family:var(--mono);letter-spacing:0}


/* Look d, paper: the night ledger's structure in a light theme for people who work in light mode. Ink on off-white,
   hairlines, the signal colours darkened for contrast. The tools (terminal, dashboard) keep their own themes. */

/* Look e, dense ops desk: one 40px strip (title, signal, success, clock, tabs, actions), borderless panes split by
   1px hairlines, 12-13px mono, and the notes drawer as an inline 320px third column instead of an overlay. */
body.look-e{--serif:var(--mono)}
body.look-e[data-screen=workspace] #site-header{display:none}
body.look-e[data-screen=workspace] main{padding:0;max-width:none}
body.look-e[data-screen=workspace] .workspace{--drawer-w:0px;display:grid;grid-template-columns:max-content minmax(0,1fr) var(--drawer-w);grid-template-rows:40px minmax(0,1fr);padding:0;gap:0}
body.look-e[data-screen=workspace] .workspace:has(.notes-drawer[data-open=true]){--drawer-w:320px}
body.look-e[data-screen=workspace] .incident-purpose{display:none}
body.look-e[data-screen=workspace] .incident-bar,body.look-e[data-screen=workspace] .workspace-toolbar{grid-row:1;height:40px;min-height:0;margin:0;padding:0 10px;border:0;border-bottom:1px solid var(--line);background:var(--bg);flex-wrap:nowrap}
body.look-e[data-screen=workspace] .incident-bar{grid-column:1;gap:14px}
body.look-e[data-screen=workspace] .workspace-toolbar{grid-column:2/-1;gap:8px}
body.look-e .incident-identity{flex-direction:row;align-items:center;gap:10px}
body.look-e .incident-bar h1{font:500 13px var(--mono);letter-spacing:0;max-width:32ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.look-e #signal-label,body.look-e #workspace-runtime,body.look-e .success-readout{font-size:12px;letter-spacing:0}
body.look-e[data-screen=workspace] .session-controls{flex-direction:row;align-items:center;gap:12px;width:auto}
body.look-e .session-clock{font-size:13px;padding:0}
body.look-e[data-screen=workspace] .view-tabs{flex-wrap:nowrap;gap:0;width:auto;display:flex}
body.look-e[data-screen=workspace] .view-tabs button,body.look-e[data-screen=workspace] #validate,body.look-e[data-screen=workspace] #end,body.look-e[data-screen=workspace] #tool-options>summary{min-height:30px;height:30px;padding:0 8px;font-size:12px;border-radius:0}
body.look-e[data-screen=workspace] .workspace-actions{gap:4px}
body.look-e[data-screen=workspace] .workspace-content{grid-column:1/3;grid-row:2;padding:0}
body.look-e[data-screen=workspace] .resolution{margin:0;border-width:0 0 1px;padding:6px 10px}
body.look-e[data-screen=workspace] #panes{gap:0}
body.look-e[data-screen=workspace] .pane{border:0;background:var(--bg)}
body.look-e[data-screen=workspace] .pane-heading{height:24px;font-size:10.5px;padding:0 10px;background:var(--bg);border-bottom:1px solid var(--line)}
body.look-e[data-screen=workspace] .terminal-theme{width:24px;height:24px;padding:4px;top:0}
body.look-e[data-screen=workspace] #panes[data-view=split]{grid-template-columns:minmax(0,var(--first-size,50fr)) 5px minmax(0,var(--second-size,50fr))}
body.look-e[data-screen=workspace] #panes[data-view=split][data-axis=rows]{grid-template-rows:minmax(0,var(--first-size,50fr)) 5px minmax(0,var(--second-size,50fr))}
body.look-e[data-screen=workspace] #splitter::after{left:2px;right:2px;top:0;bottom:0;height:auto;border-radius:0;background:var(--line)}
body.look-e[data-screen=workspace] [data-axis=rows] #splitter::after{top:2px;bottom:2px;left:0;right:0;width:auto}
body.look-e[data-screen=workspace] .docs-view,body.look-e[data-screen=workspace] .event-view,body.look-e[data-screen=workspace] .customer-view{border:0}
body.look-e[data-screen=workspace] .workspace-help{min-height:30px;padding:0 6px}
body.look-e[data-screen=workspace] .workspace-help button{min-height:28px;padding:2px 8px;font-size:12px}
body.look-e .notes-drawer{position:static;grid-column:3;grid-row:2;width:auto;transform:none;transition:none;border:0;border-left:1px solid var(--line);background:var(--bg)}
body.look-e .notes-drawer[data-open=false]{display:none}
body.look-e .notes-drawer .scratchpad-panel>summary{font-size:13px}
body.look-e .hints-view{font-size:13px}
@media(max-width:760px){body.look-e[data-screen=workspace] .workspace{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr)}body.look-e[data-screen=workspace] .incident-bar,body.look-e[data-screen=workspace] .workspace-toolbar{grid-column:1;height:auto;flex-wrap:wrap}body.look-e[data-screen=workspace] .workspace-toolbar{grid-row:2}body.look-e[data-screen=workspace] .workspace-content{grid-column:1;grid-row:3}body.look-e .notes-drawer{grid-column:1;grid-row:3;z-index:11}}
body.look-e .notes-drawer{position:relative}
body.look-e #workspace-runtime{display:none}
body.look-e[data-screen=workspace] .view-tabs .notes-toggle{margin-left:6px;box-shadow:none;border-left:1px solid var(--line);border-radius:0}
body.look-e[data-screen=workspace] .workspace-toolbar{justify-content:space-between;min-width:0}
body.look-e[data-screen=workspace] .view-tabs{min-width:0;overflow:hidden}
body.look-e .notes-drawer{top:0;bottom:0}
body.look-c[data-screen=workspace] #keys-help{width:100%;text-align:left;min-height:40px;font-size:13px}
body.look-e[data-screen=workspace] #keys-help{min-height:30px;height:30px;padding:0 6px}
body.look-b #workspace-runtime{display:none}
body.look-b .incident-bar h1{max-width:26ch}
body.look-b[data-screen=workspace] .workspace-toolbar{padding-right:84px;min-width:0}
body.look-b[data-screen=workspace] .view-tabs button,body.look-b[data-screen=workspace] #validate,body.look-b[data-screen=workspace] #end,body.look-b[data-screen=workspace] #tool-options>summary,body.look-b[data-screen=workspace] #keys-help{padding:0 5px;flex:none}
/* Look b: Notes is not a view; it sits after a separator and shows open as bright text, never as the active-tab block. */
body.look-b[data-screen=workspace] .view-tabs .notes-toggle{margin-left:10px}
body.look-b[data-screen=workspace] .view-tabs .notes-toggle::before{content:"│";color:var(--dim);font:12px/28px var(--mono);margin-right:10px}
body.look-b[data-screen=workspace] .view-tabs .notes-toggle[aria-expanded=true]{background:transparent;color:var(--fg)}

/* Incident feel: the header stamp, hypothesis line and report block (plain, CTF look). */
.page-toggle{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:14px;color:var(--muted);cursor:pointer}.page-toggle input{width:18px;height:18px;accent-color:var(--accent);margin:0}
.paged-stamp{font-size:12px;color:var(--red);white-space:nowrap}
.hypothesis-form{display:flex;align-items:center;gap:12px;margin:12px 0 0}.hypothesis-form input{flex:1;min-width:0;min-height:40px;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--fg);font:13px 'IBM Plex Mono',monospace}
.hypothesis-form input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.hypothesis-list,.review-hypotheses{list-style:none;padding:0;margin:8px 0 0;font-size:13px}.hypothesis-list li,.review-hypotheses li{display:flex;gap:14px;padding:5px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.hypothesis-list li:last-child,.review-hypotheses li:last-child{border-bottom:0}.hypothesis-list time,.review-hypotheses time{font-family:'IBM Plex Mono',monospace;color:var(--accent);min-width:5ch}
.review-hypotheses span{flex:1;min-width:0}.review-hypotheses .truth{color:var(--muted)}
@media(max-width:760px){.review-hypotheses li{flex-wrap:wrap}.review-hypotheses .truth{flex-basis:100%;padding-left:calc(5ch + 14px)}}
.capture-block{margin:12px 0 0}.capture-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px}.capture-row .secondary{min-height:40px}
#capture-button[data-busy]::before{content:'';display:inline-block;width:12px;height:12px;margin-right:8px;vertical-align:-2px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}
.capture-list{list-style:none;padding:0;margin:8px 0 0;font-size:13px}.capture-list li{border-bottom:1px solid var(--line)}.capture-list li:last-child{border-bottom:0}
.capture-list summary{cursor:pointer;padding:6px 0;color:var(--accent);min-height:32px}.capture-list pre{margin:0 0 10px;padding:10px;max-height:320px;overflow:auto;background:var(--bg);border:1px solid var(--line);border-radius:6px;font:11px/1.5 'IBM Plex Mono',monospace;white-space:pre}

/* Focus look (ws-min-3, founder 2026-10-14): the current tokens with hairlines and no panel fills; plain lowercase text
   tabs; Hint, Verify fix and End session as the only actions (Keys, Share, layout and reconnect live under Tools);
   signal, success and clock as small text. The terminal leads the split. */
body.ws-focus .success-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
body.ws-focus[data-screen=workspace]{--site-header-height:var(--shell-compact-height)}
body.ws-focus[data-screen=workspace] #site-header{border-bottom-color:var(--line)}
body.ws-focus[data-screen=workspace] #site-header nav{display:none}
body.ws-focus[data-screen=workspace] #site-header .site-account{display:inline-flex}
body.ws-focus[data-screen=workspace] .workspace{padding:0 0 8px}
body.ws-focus[data-screen=workspace] .incident-bar{min-height:40px;gap:20px;align-items:center}
body.ws-focus .incident-identity{flex:1;min-width:0;align-items:baseline}
body.ws-focus .incident-bar h1{font-size:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
body.ws-focus #workspace-runtime:not([data-ranked=true]){display:none}
body.ws-focus[data-screen=workspace] .incident-purpose{display:none}
body.ws-focus[data-screen=workspace] .session-controls{gap:12px;align-items:baseline}
body.ws-focus #signal-label,body.ws-focus .success-readout,body.ws-focus .session-clock{font:12px var(--mono);letter-spacing:.06em}
body.ws-focus[data-screen=workspace] .workspace-toolbar{margin:0;padding:2px 0;border-block:0;border-bottom:1px solid var(--line);background:var(--bg)}
body.ws-focus[data-screen=workspace] .view-tabs{gap:18px}
body.ws-focus[data-screen=workspace] .view-tabs button{min-width:0;min-height:40px;padding:6px 0;border:0;border-bottom:1px solid transparent;border-radius:0;background:none;color:var(--muted);font:13px var(--mono);text-transform:lowercase}
body.ws-focus[data-screen=workspace] .view-tabs button:hover{color:var(--fg)}
body.ws-focus[data-screen=workspace] .view-tabs button[aria-pressed=true],body.ws-focus[data-screen=workspace] .view-tabs .notes-toggle[aria-expanded=true]{background:none;border:0;border-bottom:1px solid var(--fg);color:var(--fg)}
body.ws-focus[data-screen=workspace] .view-tabs .notes-toggle{margin-left:0;box-shadow:none}
body.ws-focus[data-screen=workspace] .workspace-help{position:static;min-height:0;padding:0;border:0;background:none}
body.ws-focus[data-screen=workspace] .workspace-help button,body.ws-focus[data-screen=workspace] #validate,body.ws-focus[data-screen=workspace] #end,body.ws-focus[data-screen=workspace] #tool-options>summary{min-height:36px;padding:6px 12px;border-radius:3px;font:13px var(--mono)}
body.ws-focus[data-screen=workspace] .workspace-help button{border:1px solid var(--line);background:transparent;color:var(--fg)}
body.ws-focus[data-screen=workspace] .workspace-help button:hover{border-color:var(--muted)}
body.ws-focus[data-screen=workspace] #tool-options>summary{min-width:0}
body.ws-focus[data-screen=workspace] #tool-options>summary>span{display:none}
body.ws-focus[data-screen=workspace] #tool-options .tool-actions{top:42px}
body.ws-focus[data-screen=workspace] .workspace-content{padding-top:6px}
body.ws-focus[data-screen=workspace] .pane{border:0;border-top:1px solid var(--line);border-radius:0;background:transparent}
body.ws-focus[data-screen=workspace] .pane-heading{height:24px;min-height:24px;padding:0 4px;border:0;background:transparent}
body.ws-focus[data-screen=workspace] .pane-label,body.ws-focus[data-screen=workspace]:not([data-bridge=viewer]) #terminal-context{display:none}
body.ws-focus[data-screen=workspace] .terminal-theme{top:0;width:24px;height:24px;padding:4px}
body.ws-focus[data-screen=workspace] .docs-view,body.ws-focus[data-screen=workspace] .event-view,body.ws-focus[data-screen=workspace] .customer-view{border:0;border-top:1px solid var(--line);border-radius:0;background:transparent}
@media(max-width:760px){
  body.ws-focus[data-screen=workspace] .incident-bar{gap:10px}
  body.ws-focus .incident-bar h1{font-size:19px}
  body.ws-focus[data-screen=workspace] .incident-identity{flex-direction:row}
  body.ws-focus[data-screen=workspace] .session-controls{flex-direction:row;align-items:baseline;gap:8px}
  body.ws-focus[data-screen=workspace] .view-tabs{display:flex;flex-wrap:wrap;overflow-x:visible;white-space:nowrap;gap:4px 14px;width:100%}
  body.ws-focus[data-screen=workspace] .view-tabs button{min-height:36px}
  body.ws-focus[data-screen=workspace] .workspace-actions{width:100%;display:flex;flex-wrap:wrap;gap:6px}
  body.ws-focus[data-screen=workspace] #panes[data-view=split][data-first=terminal]>.terminal-pane{grid-row:1}
  body.ws-focus[data-screen=workspace] #panes[data-view=split][data-first=terminal]>.dashboard-pane{grid-row:2}
}
body.ws-focus .hints-intro,body.ws-focus #hints-empty{display:none}
@media(max-width:760px){
  body.ws-focus[data-screen=workspace] .view-tabs{gap:4px 8px}  /* Every tab in view, no swipe: one row when the six fit, else they wrap (R15-17). */
  body.ws-focus[data-screen=workspace] .view-tabs button{font-size:12px}
  body.ws-focus[data-screen=workspace] .workspace-help button,body.ws-focus[data-screen=workspace] #validate,body.ws-focus[data-screen=workspace] #end,body.ws-focus[data-screen=workspace] #tool-options>summary{padding:6px 9px;font-size:12px}
}
@media(max-width:600px){
  body.ws-focus[data-screen=workspace] #site-header{padding:0 var(--shell-inset);display:flex;align-items:center;justify-content:space-between}
}
body.ws-focus[data-screen=workspace] #tool-options .tool-actions{gap:2px;padding:8px;width:200px}
body.ws-focus[data-screen=workspace] #tool-options .tool-actions button{min-height:36px;padding:6px 8px;font:13px var(--mono);color:var(--fg)}
body.ws-focus[data-screen=workspace] #tool-options #layout-controls{gap:4px}
/* Hit areas stay at least 40px and text at least 13px (discoverability audit). */
body.ws-focus[data-screen=workspace] .view-tabs button{min-width:40px;min-height:40px;font-size:13px}
@media(max-width:760px){body.ws-focus[data-screen=workspace] .view-tabs button{min-height:44px}}  /* Phone tap targets 44px tall (R15-17). */
body.ws-focus[data-screen=workspace] .workspace-help button,body.ws-focus[data-screen=workspace] #validate,body.ws-focus[data-screen=workspace] #end,body.ws-focus[data-screen=workspace] #tool-options>summary{min-height:40px;font-size:13px}
@media(min-width:761px){body.ws-focus .hints-view{inset:150px 24px auto auto;max-height:calc(100dvh - 170px)}}
/* The workspace column never scrolls itself: on 552847ae at 320px a scrollIntoView scrolled this overflow:hidden box and
   slid the toolbar over the bottom of the panes (discoverability, narrow). clip keeps only .workspace-content scrolling. */
body.ws-focus[data-screen=workspace] .workspace{overflow:clip}
/* Net scene (customer-scenes.json net): who is affected and what they see, above the desk probe. */
.net-world{font-size:13px;line-height:1.5;color:var(--muted);margin:6px 0 0;max-width:80ch}
.net-who{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin:0}
.net-who>*{margin:0;padding:10px 0;border-bottom:1px solid var(--line);font-size:15px;align-self:stretch}
.net-fields div{padding:10px 0;border-bottom:1px solid var(--line)}
.net-who dt,.net-fields dt{font:10.5px/1.4 'IBM Plex Mono',monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.net-who dd,.net-fields dd{margin:2px 0 0;font-size:15px}
.net-fields{margin:0}
#net-result-copy:empty{display:none}
/* Brief strip: the incident in one collapsible line above the bridge strip, on every workspace view. */
.brief-strip{border-bottom:1px solid var(--line)}
.brief-strip>summary{display:flex;align-items:center;gap:16px;min-height:40px;list-style:none;cursor:pointer;font-size:13px;color:var(--muted)}
.brief-strip>summary::-webkit-details-marker{display:none}
.bs-line{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bs-more{flex:none;font:12px 'IBM Plex Mono',monospace;color:var(--fg)}.bs-more::after{content:'More ⌄'}
.brief-strip[open] .bs-more::after{content:'Less ⌃'}.brief-strip[open] .bs-line{visibility:hidden}
.bs-body{padding:4px 0 24px}
.bs-body .tk-world{font:13px/1.5 'IBM Plex Mono',monospace;color:var(--muted);margin:8px 0 22px}
.bs-body .label{font:400 10.5px/1.4 'IBM Plex Mono',monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 6px}
.bs-body .tk-desc{font:400 18px/1.55 var(--serif,Georgia,serif);color:var(--fg);margin:0 0 22px;max-width:62ch}
.bs-body .tk-job{list-style:none;counter-reset:job;margin:0;padding:0;max-width:62ch}
.bs-body .tk-job li{counter-increment:job;display:flex;gap:12px;padding:9px 0;border-top:1px solid var(--line);font-size:15px;line-height:1.5}
.bs-body .tk-job li:last-child{border-bottom:1px solid var(--line)}
.bs-body .tk-job li::before{content:counter(job);flex:none;width:14px;font:12px/1.9 'IBM Plex Mono',monospace;color:var(--muted)}
@media(max-width:760px){
  .net-who{grid-template-columns:minmax(0,1fr)}
  .bs-body .tk-desc{font-size:17px}
  #net-view .event-send .primary{width:100%}
}
/* Customer scenes v2 (docs/design/customer-scenes-v2.md): the customer's own small site, in its own palette (--site-*, from the
   scene), framed so it sits on the page in either theme. State colours are fixed pairs that read on every site palette. */
.net-site{margin:18px 0 8px}
.net-who:has(>dl[hidden]){grid-template-columns:minmax(0,1fr)}
.csite-sprite{position:absolute;width:0;height:0;overflow:hidden}
.csite{--site-line:color-mix(in srgb,var(--site-ink) 18%,var(--site-bg));--site-soft:color-mix(in srgb,var(--site-ink) 5%,var(--site-bg));position:relative;background:var(--site-bg);color:var(--site-ink);font:15px/1.5 ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;letter-spacing:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:0 10px 28px var(--cs-shadow)}
.csite p{margin:0}
.csite-browser{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--cs-chrome-bg);color:var(--cs-chrome-fg);font-size:13px}
.csite-dots{display:flex;gap:6px;flex:none}.csite-dots i{width:10px;height:10px;border-radius:50%;background:var(--cs-chrome-dot)}
.csite-address{flex:1;min-width:0;padding:5px 12px;border-radius:999px;background:var(--cs-white);color:var(--cs-chrome-fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.csite-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:14px 20px 0}
.csite-brand{display:flex;align-items:center;gap:10px;min-width:0;margin-right:auto}
.csite-mark{width:36px;height:36px;flex:none;padding:7px;border-radius:9px;background:var(--site-accent);color:var(--site-on-accent);fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.csite-brand strong{display:block;font-size:17px;font-weight:650;line-height:1.25}
.csite-brand small{display:block;font-size:12.5px;line-height:1.4;color:var(--site-muted)}
.csite-badge{font-size:11.5px;line-height:1.5;color:var(--site-muted);border:1px solid var(--site-line);border-radius:999px;padding:2px 10px;white-space:nowrap}
.csite-nav{display:flex;flex-wrap:wrap;gap:0 20px;list-style:none;margin:6px 0 0;padding:0;width:100%;font-size:14px;color:var(--site-muted);border-bottom:1px solid var(--site-line)}
.csite-nav li{padding:8px 0}.csite-nav .current{color:var(--site-ink);font-weight:600;box-shadow:inset 0 -2px var(--site-accent)}
.csite-hero{padding:18px 20px 0}
.csite-hero h3{margin:0;font:650 22px/1.25 ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;letter-spacing:-.01em;color:var(--site-ink)}
.csite-hero p{margin-top:6px;color:var(--site-muted);max-width:62ch}
.csite-main{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:20px;align-items:start;padding:16px 20px 20px}
.csite-task{display:grid;gap:12px;padding:16px;border:1px solid var(--site-line);border-radius:8px;background:var(--site-soft)}
.csite-fields{display:grid;gap:12px}
.csite-field{display:grid;gap:4px;font-size:13px;color:var(--site-muted)}
.csite-field input{width:100%;min-height:44px;padding:8px 12px;border:1px solid color-mix(in srgb,var(--site-ink) 35%,var(--site-bg));border-radius:6px;background:var(--site-bg);color:var(--site-ink);font:15px/1.4 ui-sans-serif,system-ui,sans-serif}
.csite-field input:disabled{opacity:1;color:var(--site-muted)}
:is(#net-view,#customer-view) .csite .csite-submit-button{width:100%;min-height:48px;padding:10px 16px;gap:10px;border:0;border-radius:6px;background:var(--site-accent);color:var(--site-on-accent);font:650 15px/1.3 ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;letter-spacing:0;opacity:1;cursor:pointer}
:is(#net-view,#customer-view) .csite .csite-submit-button:disabled{cursor:default}
:is(#net-view,#customer-view) .csite .csite-submit-button:focus-visible{outline:3px solid var(--site-ink);outline-offset:2px}
.csite[data-state=pending] .csite-submit-button::before{content:'';flex:none;width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite}
.csite-stage{min-width:0;display:flex;flex-direction:column}
.csite-stage-head{order:-2}
.csite-shop .csite-notice[data-style=toast],.csite-shop .csite-notice[data-tone=success],.csite-shop .csite-notice[data-tone=busy]{order:-1;margin:0 0 12px}
.csite-console .csite-items:empty{border:0}
.csite-stage-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:0 0 10px}
.csite-stage h4{margin:0;font-size:15px;font-weight:650;line-height:1.4}
.csite-stale{font-size:12.5px;font-weight:600;line-height:1.5;color:var(--cs-stale-fg);background:var(--cs-stale-bg);border-radius:999px;padding:2px 10px}
.csite-items{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.csite-items li{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 14px;min-height:44px;padding:10px 12px;border:1px solid var(--site-line);border-radius:6px;background:var(--site-bg)}
.csite-items li>span:first-child{font-weight:600}
.csite-items li>span:last-child:not(:first-child){margin-left:auto;color:var(--site-muted)}
.csite-items .csite-empty{justify-content:center;color:var(--site-muted);border-style:dashed}
.csite-items .csite-skeleton{background:linear-gradient(90deg,var(--site-soft) 0 30%,var(--site-line) 50%,var(--site-soft) 70%);background-size:300% 100%;animation:csite-shimmer 1.3s linear infinite}
.csite-items .csite-skeleton.still{animation:none;background:var(--site-soft)}
.csite-notice{margin-top:12px;padding:12px 14px;border-radius:6px;font-size:14.5px;line-height:1.5}
.csite-notice:not([data-tone]){display:none}
.csite-notice strong{display:block;font-size:16px;line-height:1.35;margin-bottom:2px}
.csite-notice[data-tone=error]{background:var(--cs-error-bg);color:var(--cs-error-fg);border:1px solid var(--cs-error-line)}
.csite-notice[data-tone=stale]{background:var(--cs-stale-bg);color:var(--cs-stale-fg);border:1px solid var(--cs-stale-line)}
.csite-notice[data-tone=busy]{background:var(--site-soft);color:var(--site-ink);border:1px solid var(--site-line)}
.csite-notice[data-tone=success]{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;background:var(--cs-ok-bg);color:var(--cs-ok-fg);border:1px solid var(--cs-ok-line)}
.csite-notice[data-tone=success]>p,.csite-notice[data-tone=success]>strong{flex-basis:100%}
.csite-notice[data-tone=success]>strong::before{content:'✓';display:inline-grid;place-items:center;width:22px;height:22px;margin-right:8px;border-radius:50%;background:var(--cs-ok-mark);color:var(--cs-white);font-size:13px;vertical-align:1px}
.csite-notice[data-tone=progress]{padding:0;background:none}
.csite-progress{display:block;height:4px;border-radius:2px;background:var(--site-line);overflow:hidden;position:relative}
.csite-progress::after{content:'';position:absolute;inset:0 auto 0 0;width:40%;background:var(--site-accent);animation:csite-progress 1.4s ease-in-out infinite}
.csite-thumb{flex:none;width:112px;height:76px;border:1px solid var(--cs-ok-line);border-radius:4px;background:linear-gradient(var(--cs-sheet-ink),var(--cs-sheet-ink)) 12px 12px/40px 1.5px no-repeat,linear-gradient(var(--cs-sheet-ink),var(--cs-sheet-ink)) 12px 12px/1.5px 50px no-repeat,linear-gradient(var(--cs-sheet-ink),var(--cs-sheet-ink)) 52px 12px/1.5px 30px no-repeat,linear-gradient(var(--cs-sheet-ink),var(--cs-sheet-ink)) 12px 62px/88px 1.5px no-repeat,linear-gradient(var(--cs-sheet-ink),var(--cs-sheet-ink)) 100px 26px/1.5px 37px no-repeat,linear-gradient(var(--cs-sheet-ink),var(--cs-sheet-ink)) 52px 26px/48px 1.5px no-repeat,repeating-linear-gradient(0deg,var(--cs-sheet-grid) 0 1px,transparent 1px 8px),var(--cs-white)}
.csite-notice[data-tone=interstitial]{margin:0;padding:36px 28px;border:1px solid var(--cs-page-line);border-radius:8px;background:var(--cs-white);color:var(--cs-chrome-fg);font-size:15px}
.csite-notice[data-tone=interstitial]::before{content:'';display:block;width:40px;height:40px;margin-bottom:18px;border:3px solid var(--cs-page-icon);border-radius:6px;background:linear-gradient(var(--cs-page-icon),var(--cs-page-icon)) 50% 30%/3px 14px no-repeat,linear-gradient(var(--cs-page-icon),var(--cs-page-icon)) 50% 78%/3px 3px no-repeat}
.csite-notice[data-tone=interstitial] strong{font-size:24px;font-weight:500;color:var(--cs-page-head);margin-bottom:12px}
.csite-portal[data-state=failure] .csite-stage-head,.csite-portal[data-state=timeout] .csite-stage-head{display:none}
.csite-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px;padding:12px 20px;border-top:1px solid var(--site-line);font-size:12.5px;line-height:1.5;color:var(--site-muted)}
.csite-ref code{font:12.5px ui-monospace,'IBM Plex Mono',monospace;color:var(--site-ink);background:none;border:0;padding:0;overflow-wrap:anywhere}
/* Template layouts. */
.csite-shop .csite-main{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr)}
.csite-shop .csite-items{grid-template-columns:repeat(auto-fill,minmax(132px,1fr))}
.csite-shop .csite-items li{flex-direction:column;align-items:stretch;gap:2px;padding:0 0 10px;overflow:hidden}
.csite-shop .csite-items li::before{content:'';height:54px;margin-bottom:6px;background:color-mix(in srgb,var(--site-accent) 14%,var(--site-bg))}
.csite-shop .csite-items li>span{padding:0 10px}
.csite-shop .csite-items li>span:last-child:not(:first-child){margin-left:0;color:var(--site-ink);font-weight:600}
.csite-shop .csite-items .csite-skeleton{min-height:110px}
.csite-tracker .csite-items{gap:0}
.csite-tracker .csite-items li{position:relative;border:0;border-left:2px solid var(--site-line);border-radius:0;margin-left:7px;padding:4px 0 18px 22px;background:none}
.csite-tracker .csite-items li::before{content:'';position:absolute;left:-8px;top:8px;width:10px;height:10px;border:2px solid var(--site-accent);border-radius:50%;background:var(--site-bg)}
.csite-tracker .csite-items li:last-child::before{background:var(--site-accent)}
.csite-tracker[data-state=failure] .csite-items li:last-child::before,.csite-tracker[data-state=timeout] .csite-items li:last-child::before{border-color:var(--cs-amber-line);background:var(--cs-amber-dot)}
.csite-tracker .csite-items li>span:first-child{font:600 13px/1.5 ui-monospace,'IBM Plex Mono',monospace;color:var(--site-muted);flex-basis:100%}
.csite-tracker .csite-items li>span:last-child:not(:first-child){margin-left:0}
.csite-portal .csite-main{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}
.csite-portal .csite-items li{gap:2px 12px}
.csite-portal .csite-items li>span:first-child::before{content:'';display:inline-block;width:12px;height:15px;margin-right:10px;vertical-align:-2px;border:1.5px solid var(--site-accent);border-radius:2px}
.csite-dashboard .csite-main,.csite-board .csite-main{grid-template-columns:minmax(0,1fr)}
.csite-dashboard .csite-items{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.csite-dashboard .csite-items li{flex-direction:column-reverse;align-items:flex-start;justify-content:flex-end;gap:0;padding:12px 14px}
.csite-dashboard .csite-items li>span:first-child{font-weight:400;font-size:13px;color:var(--site-muted)}
.csite-dashboard .csite-items li>span:last-child:not(:first-child){margin-left:0;font:650 28px/1.2 ui-sans-serif,system-ui,sans-serif;color:var(--site-ink);font-variant-numeric:tabular-nums}
.csite-dashboard[data-state=failure] .csite-items li>span:last-child{color:var(--site-muted)}
.csite-dashboard .csite-items .csite-skeleton{min-height:78px}
.csite-dashboard .csite-task,.csite-board .csite-task{grid-template-columns:minmax(0,2fr) minmax(200px,1fr);align-items:end}
.csite-dashboard .csite-fields,.csite-board .csite-fields{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.csite-console .csite-main{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}
.csite-console .csite-items{gap:0;border:1px solid var(--site-line);border-radius:6px;overflow:hidden}
.csite-console .csite-items li{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:12px;border:0;border-radius:0;border-top:1px solid var(--site-line)}
.csite-console .csite-items li:first-child{border-top:0}
.csite-console .csite-items li.csite-empty{display:flex;border:0}
.csite-console .csite-items li>span:first-child{font:600 13px/1.6 ui-monospace,'IBM Plex Mono',monospace}
.csite-board .csite-items{gap:4px}
.csite-board .csite-items li{display:grid;grid-template-columns:64px minmax(0,1.4fr) minmax(0,1fr) 11ch;gap:10px;align-items:center;border:0;border-radius:3px;background:color-mix(in srgb,var(--site-ink) 7%,var(--site-bg));font:500 15px/1.4 'IBM Plex Mono',ui-monospace,monospace;text-transform:uppercase;letter-spacing:.03em}
.csite-board .csite-items li>span{color:var(--site-accent);font-weight:500}
.csite-board .csite-items li>span:last-child:not(:first-child){margin-left:0;color:var(--site-ink);text-align:right}
.csite-board .csite-items .csite-skeleton{min-height:44px}
@keyframes csite-shimmer{from{background-position:100% 0}to{background-position:0 0}}
@keyframes csite-progress{from{transform:translateX(-100%)}to{transform:translateX(250%)}}
@media(max-width:760px){
  .csite-head,.csite-hero{padding-inline:14px}.csite-main{grid-template-columns:minmax(0,1fr)!important;padding:14px}.csite-foot{padding-inline:14px}
  .csite-hero h3{font-size:20px}
  .csite-nav{gap:0 16px}
  .csite-dashboard .csite-task,.csite-board .csite-task{grid-template-columns:minmax(0,1fr)}
  .csite-shop .csite-items{grid-template-columns:repeat(2,minmax(0,1fr))}
  .csite-board .csite-items li{grid-template-columns:52px minmax(0,1fr) auto;gap:2px 10px;font-size:13.5px}
  .csite-board .csite-items li>span:nth-child(2){grid-column:2/4}
  .csite-console .csite-items li{grid-template-columns:52px minmax(0,1fr);gap:0 12px}
  .csite-console .csite-items li>span:nth-child(3){grid-column:2;margin-left:0}
  .csite-board .csite-items li>span:nth-child(3){grid-column:2;grid-row:2;color:var(--site-muted)}
  .csite-board .csite-items li>span:nth-child(4){grid-column:3;grid-row:2}
  .csite-notice[data-tone=interstitial]{padding:28px 18px}
  .csite-badge{order:3}
  .csite-shop .csite-task{order:-1}
}
@media(prefers-reduced-motion:reduce){.csite-items .csite-skeleton,.csite-progress::after,.csite[data-state=pending] .csite-submit-button::before{animation:none}}
/* Logs view = a classic log search page (search.js): bar, "Search help", header line, events timeline, Events | Statistics | Visualization.
   Colours are the search-page palette in tokens.css; the workspace theme (the terminal's light/dark button) picks the pane. */
.logs-view{--sp-page:var(--search-page);--sp-panel:var(--search-panel);--sp-rule:var(--search-rule);--sp-text:var(--search-text);--sp-green:var(--search-go);--sp-bar:var(--search-bar);--sp-link:var(--search-link);
  --sp-muted:color-mix(in srgb,var(--sp-text) 62%,var(--sp-panel));--sp-s1:var(--search-s1);--sp-s2:var(--search-s2);--sp-s3:var(--search-s3);--sp-s4:var(--search-s4);--sp-note:var(--search-note);
  --s-bg:var(--sp-panel);--s-fg:var(--sp-text);--s-line:var(--sp-rule);--s-head:var(--sp-panel);--s-muted:var(--sp-muted);--s-dim:var(--sp-muted);
  background:var(--sp-page);color:var(--sp-text);padding:12px 16px 16px;min-width:0;font:13px var(--sans)}
.logs-view[data-theme=light]{--sp-page:var(--search-light-page);--sp-panel:var(--search-light-panel);--sp-rule:var(--search-light-rule);--sp-text:var(--search-light-text);--sp-bar:var(--search-light-bar);--sp-link:var(--search-light-link);--sp-s2:var(--search-light-s2);--sp-muted:var(--search-light-muted);--sp-note:var(--search-light-note)}
.search-bar{display:flex;align-items:stretch;min-width:0}
.search-field{position:relative;display:flex;flex:1 1 auto;min-width:0}
.search-field .search-query{flex:1 1 auto;width:100%;min-width:0;min-height:40px;padding:8px 36px 8px 11px;position:relative;border:1px solid var(--sp-rule);border-right:0;border-radius:2px 0 0 2px;background:transparent;color:transparent;caret-color:var(--sp-text);font:13px 'IBM Plex Mono',ui-monospace,monospace}
.search-field .search-query::placeholder{color:var(--sp-muted)}.search-field .search-query::selection{color:transparent;background:var(--sp-rule)}
.search-mirror{position:absolute;inset:1px 36px 1px 1px;display:flex;align-items:center;padding:0 10px;overflow:hidden;white-space:pre;border-radius:2px;background:var(--sp-panel);color:var(--sp-text);font:13px 'IBM Plex Mono',ui-monospace,monospace;pointer-events:none}.search-token{color:var(--sp-muted)}
.search-field::before{content:'';position:absolute;inset:0;background:var(--sp-panel);border-radius:2px 0 0 2px}
.search-x{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:28px;height:28px;border:0;background:none;color:var(--sp-muted);font:18px/1 var(--sans);cursor:pointer}.search-x:hover{color:var(--sp-text)}
.search-range{flex:none;max-width:45%;min-height:40px;padding:0 28px 0 12px;position:relative;border:1px solid var(--sp-rule);background:var(--sp-panel);color:var(--sp-text);font:13px var(--sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.search-range::after{content:'';position:absolute;right:11px;top:50%;margin-top:-2px;border:4px solid transparent;border-top-color:currentColor}
.search-run{flex:none;width:48px;min-height:40px;display:grid;place-items:center;border:0;border-radius:0 2px 2px 0;background:var(--sp-green);color:var(--search-go-ink);cursor:pointer}.search-run:hover{filter:brightness(1.08)}
.search-range-menu{position:fixed;inset:auto;margin:0;padding:12px 18px 14px;border:1px solid var(--sp-rule);border-radius:3px;background:var(--sp-panel);color:var(--sp-text);font:13px var(--sans);box-shadow:0 4px 16px rgb(0 0 0/.35)}
.range-group{margin:0 0 10px;font-weight:600}.range-cols{display:flex;gap:36px}.range-head{margin:0 0 4px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--sp-muted)}
.range-cols button{display:block;min-height:30px;padding:0;border:0;background:none;color:var(--sp-link);font:inherit;text-align:left;cursor:pointer}.range-cols button:hover{text-decoration:underline}
.search-under{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0 4px}
.search-help{font-size:12px;color:var(--sp-link)}.search-help:hover{text-decoration:underline}
.search-note{margin:4px 0;font:12.5px/1.5 var(--sans);color:var(--sp-note)}
.search-status{min-height:20px;margin:4px 0 6px;font:13px var(--sans);color:var(--sp-text)}
.search-timeline{margin:0 0 8px;padding-right:28px;min-width:0}.search-timeline .search-svg{overflow:visible}.search-timeline .search-svg .bar{fill:var(--sp-bar)}.search-timeline .search-svg .grid,.search-timeline .search-svg .axis[text-anchor=end]{display:none}
.search-mode{display:flex;gap:24px;border-bottom:1px solid var(--sp-rule);margin:0 0 8px}
.search-mode button{min-height:36px;padding:0;border:0;border-bottom:3px solid transparent;background:none;color:var(--sp-muted);font:13px var(--sans);cursor:pointer}
.search-mode button:hover{color:var(--sp-text)}.search-mode button[aria-pressed=true]{color:var(--sp-text);border-bottom-color:var(--sp-text)}.search-mode button:focus-visible{outline:2px solid var(--sp-link);outline-offset:2px}
.search-results{height:max(360px,calc(100dvh - 460px));overflow:auto;border:1px solid var(--sp-rule);background:var(--sp-panel);color:var(--sp-text)}
.search-results table{border-collapse:collapse;width:max-content;min-width:100%;font:12.5px/1.5 'IBM Plex Mono',ui-monospace,monospace}
.search-results th{position:sticky;top:0;background:var(--sp-panel);color:var(--sp-muted);text-align:left;font:600 12px var(--sans);padding:7px 12px;border-bottom:1px solid var(--sp-rule);white-space:nowrap}
.search-results td{padding:6px 12px;border-bottom:1px solid var(--sp-rule);vertical-align:top;white-space:pre-wrap;overflow-wrap:anywhere;max-width:72ch}
.search-results .search-events{width:100%;table-layout:fixed}.search-events th:first-child{width:11.5em}
.search-events .search-time{font:12px/1.5 var(--sans);color:var(--sp-text);white-space:normal;overflow-wrap:normal}.search-events .search-event{max-width:none;font:12.5px/1.5 'IBM Plex Mono',ui-monospace,monospace}
.search-empty{margin:0;padding:18px 14px;color:var(--sp-muted);font:13px var(--sans)}
.search-chart{padding:12px}.search-chart-head{display:flex;flex-wrap:wrap;gap:4px 14px}.search-chart-head:has(> :not([hidden])){margin:0 0 10px}.search-legend{display:flex;flex-wrap:wrap;gap:4px 14px;font:12px 'IBM Plex Mono',ui-monospace,monospace;color:var(--s-fg)}.search-key{display:inline-flex;align-items:center;gap:6px}.search-key i{width:10px;height:10px;border-radius:2px}.search-caption{font:12px 'IBM Plex Mono',ui-monospace,monospace;color:var(--s-dim)}.search-chart{padding:12px}.search-svg{display:block;font:12px 'IBM Plex Mono',ui-monospace,monospace;font-variant-numeric:tabular-nums}.search-svg .grid{stroke:var(--s-line);stroke-width:1}.search-svg .base{stroke:var(--s-muted);stroke-width:1}.search-svg .axis{fill:var(--s-dim)}.search-svg .label,.search-svg .value{fill:var(--s-fg)}.search-svg .s1,.search-key .k1{fill:var(--sp-s1);background:var(--sp-s1)}.search-svg .s2,.search-key .k2{fill:var(--sp-s2);background:var(--sp-s2)}.search-svg .s3,.search-key .k3{fill:var(--sp-s3);background:var(--sp-s3)}.search-svg .s4,.search-key .k4{fill:var(--sp-s4);background:var(--sp-s4)}
@media(max-width:600px){.search-bar{flex-wrap:wrap}.search-field{flex-basis:100%}.search-field .search-query{border-right:1px solid var(--sp-rule);border-radius:2px 2px 0 0}.search-range{flex:1 1 auto;max-width:none;border-top:0;text-align:left}.search-run{border-radius:0 0 2px 0}}
@media(max-width:760px){.logs-view{padding:10px 10px 12px}.search-events th:first-child{width:7.5em}.search-results{height:max(320px,calc(100dvh - 400px))}.search-results td{max-width:48ch}.range-cols{gap:24px}}
/* Not found (worker.mjs notFoundPage): the site header, one line, one way back. */
.not-found{max-width:760px;margin:0 auto;padding:96px 24px}
.not-found h1{font-family:var(--serif);margin-inline:0}
.not-found .secondary{display:inline-flex;align-items:center;min-height:44px;padding:0 16px}

/* Commerce host and original quantity controls: shared low-level layout. */
#customer-site{margin:20px}
#customer-site .site-action{min-height:44px}
#customer-site [data-slot=fields] .scene-field{display:grid;gap:8px;font:14px/1.5 var(--sans);color:inherit}
#customer-site [data-slot=fields] select{appearance:none;min-height:44px;width:100%;font:inherit;color:inherit;background:var(--surface);background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 18px) center,calc(100% - 12px) center;background-size:6px 6px;background-repeat:no-repeat;border:2px solid currentColor;padding:8px 36px 8px 12px}
#customer-site [data-slot=fields] select:focus-visible{outline:3px solid var(--fg);outline-offset:4px}
@media(max-width:600px){#customer-site{margin:12px}}
