:root{--ink:#10110f;--paper:#f4f1e9;--soft:#ddd9cf;--muted:#6e7069;--coral:#ff5c35;--cyan:#15c8d4;--yellow:#f5dc36;--line:#23241f;--header:58px;color-scheme:light}
*{box-sizing:border-box}
html{scroll-behavior:auto}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Geist,"Helvetica Neue",Arial,sans-serif;letter-spacing:0;overflow-x:hidden}
button,input,textarea{font:inherit;letter-spacing:0}
button{cursor:pointer}
[hidden]{display:none!important}
.site-header{height:var(--header);position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:0 22px;background:var(--ink);color:#fff;border-bottom:1px solid #000}
.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font:700 12px/1 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap}
.brand-mark{width:12px;height:12px;background:var(--coral);box-shadow:7px 0 0 var(--cyan)}
.runtime{font:600 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace;color:#d8d8d2;white-space:nowrap}
.workbench{min-height:calc(100vh - var(--header));display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);border-bottom:2px solid var(--ink)}
.input-panel,.result-panel{min-width:0;padding:24px 28px}
.input-panel{border-right:2px solid var(--ink);display:flex;flex-direction:column;gap:14px}
.result-panel{background:var(--ink);color:#fff;display:flex;align-items:stretch}
.signal-label{margin:0 0 7px;font:700 10px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--coral);text-transform:uppercase}
.title-block h1{max-width:18ch;margin:0;font-size:clamp(2.35rem,4.4vw,4.3rem);line-height:.93;letter-spacing:0}
.intro{max-width:54ch;margin:10px 0 0;color:#454740;font-size:14px;line-height:1.45}
.command-row,.utility-row,.result-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.button,.file-control,.text-command,.icon-button{min-height:44px;border:1px solid var(--ink);border-radius:2px;padding:0 15px;font-weight:750;white-space:nowrap}
.button.primary{background:var(--coral);color:var(--ink);border-color:var(--coral)}
.button.secondary,.file-control{background:transparent;color:var(--ink)}
.button:disabled{opacity:.45;cursor:not-allowed}
.button:hover:not(:disabled),.file-control:hover,.text-command:hover,.icon-button:hover{transform:translateY(-1px)}
.button:focus-visible,.file-control:focus-within,.text-command:focus-visible,.icon-button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}
.error-banner{border:1px solid #9c2412;background:#ffe6de;color:#6d170a;padding:10px 12px;font:700 12px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace}
.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.settings-grid>label{display:flex;align-items:center;justify-content:space-between;min-width:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:7px 0;font-size:12px;font-weight:700}
.input-with-unit,.hour-pair{display:flex;align-items:center;gap:6px;color:var(--muted)}
.settings-grid input{width:66px;height:38px;border:1px solid var(--line);border-radius:0;background:#fff;color:var(--ink);padding:0 8px;text-align:right}
.hour-pair input{width:48px}
.csv-label{display:flex;justify-content:space-between;gap:10px;font-size:12px;font-weight:800}
.csv-label span{color:var(--muted);font:500 10px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;text-align:right}
textarea{display:block;width:100%;min-height:160px;resize:vertical;border:1px solid var(--line);border-radius:0;background:#fff;color:var(--ink);padding:12px;font:500 11px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace}
.file-control{display:inline-flex;align-items:center;font-size:12px}
.file-control input{position:absolute;width:1px;height:1px;opacity:0}
.text-command{border:0;border-bottom:1px solid var(--ink);padding:0 3px;background:transparent;color:var(--ink);font-size:11px;min-height:34px}
.empty-state,.result-content{width:100%;align-self:center}
.empty-state{max-width:680px;padding:22px}
.empty-state h2{max-width:14ch;margin:0;font-size:clamp(2.4rem,5vw,5rem);line-height:.95;letter-spacing:0}
.empty-state>p:not(.signal-label){max-width:50ch;color:#bfc1bb;line-height:1.55}
.empty-proof{margin-top:32px;border-top:1px solid #484a44;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
.empty-proof span,.empty-proof strong{padding:12px 0;border-bottom:1px solid #484a44;font-size:12px}
.empty-proof span{color:#8e918a;font:600 10px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase}
.result-content{padding-top:2px}
.result-heading-row{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.result-heading-row h2{max-width:18ch;margin:0;color:#fff;font-size:clamp(2.15rem,4vw,4.6rem);line-height:.9;letter-spacing:0}
.icon-button{width:44px;padding:0;background:transparent;border-color:#676962;color:#fff;font-size:22px}
.explanation{max-width:70ch;margin:12px 0 16px;color:#c9cbc4;font-size:13px;line-height:1.45}
.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #51534d;border-left:1px solid #51534d}
.metric-grid>div{min-width:0;padding:10px;border-right:1px solid #51534d;border-bottom:1px solid #51534d}
.metric-grid span,.gap-strip span{display:block;margin-bottom:5px;color:#8f928a;font:600 9px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase}
.metric-grid strong{display:block;color:#fff;font-size:clamp(1rem,1.8vw,1.45rem);line-height:1.1;white-space:nowrap}
.tape-wrap{margin-top:10px;background:#181a17;border:1px solid #51534d;overflow:hidden}
#timeline{display:block;width:100%;aspect-ratio:920/144;min-height:100px}
.tape-base{stroke:#4d504a;stroke-width:2}
.gap-line{stroke:#767970;stroke-width:5}
.gap-line.quick{stroke:var(--cyan)}
.session-block{fill:var(--coral)}
.time-axis path,.time-axis line{stroke:#777a72}
.time-axis text{fill:#bdbfb8;font:10px ui-monospace,SFMono-Regular,Menlo,monospace}
.tape-caption{fill:#a9aba4;font:10px ui-monospace,SFMono-Regular,Menlo,monospace}
.gap-strip{display:grid;grid-template-columns:90px minmax(0,1fr);align-items:start;gap:10px;padding:10px 0;border-bottom:1px solid #51534d}
.gap-strip strong{font:700 12px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--cyan);overflow-wrap:anywhere}
.interpretation{display:grid;grid-template-columns:120px minmax(0,1fr);gap:14px;padding:12px 0;color:#c9cbc4;font-size:12px;line-height:1.45}
.interpretation strong{color:#fff}
.result-actions{padding-top:4px}
.result-actions .button.secondary{color:#fff;border-color:#777a72}
#export-status{color:#a9aba4;font:600 10px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace}
.evidence-section{display:grid;grid-template-columns:minmax(220px,1fr) minmax(0,2.4fr);gap:34px;padding:48px 28px 58px;border-bottom:2px solid var(--ink)}
.evidence-intro h2{margin:0;font-size:clamp(2rem,3.5vw,3.6rem);line-height:.95;letter-spacing:0}
.evidence-intro>p:not(.signal-label){color:var(--muted);line-height:1.5}
.evidence-rows:empty:before{content:"Run an analysis to populate row-level evidence.";display:block;border-top:1px solid var(--ink);padding:18px 0;color:var(--muted);font-size:13px}
.evidence-row{display:grid;grid-template-columns:38px minmax(0,2fr) minmax(88px,1fr) minmax(112px,1fr);border-top:1px solid var(--ink);align-items:stretch}
.evidence-row>*{min-width:0;padding:12px 10px;border-right:1px solid var(--soft);font-size:12px;line-height:1.35}
.evidence-row>*:last-child{border-right:0}
.evidence-row small{display:block;margin-bottom:4px;color:var(--muted);font:600 9px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase}
.limits{display:grid;grid-template-columns:180px minmax(0,1fr);gap:20px;padding:24px 28px;background:var(--yellow);font-size:13px;line-height:1.45}
.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}
@media (max-width:900px){
  :root{--header:64px}
  .site-header{padding:0 16px}
  .runtime{font-size:8px}
  .workbench{grid-template-columns:minmax(0,1fr)}
  .input-panel,.result-panel{padding:20px 16px}
  .input-panel{border-right:0;border-bottom:2px solid var(--ink)}
  .title-block h1{max-width:100%;font-size:2.35rem;line-height:.96}
  textarea{min-height:178px}
  .result-panel{min-height:780px}
  .result-content,.empty-state{align-self:flex-start;padding-top:4px}
  .result-heading-row h2{max-width:100%;font-size:2.45rem}
  .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .metric-grid strong{font-size:1rem;white-space:normal;overflow-wrap:anywhere}
  #timeline{min-height:112px}
  .evidence-section{grid-template-columns:minmax(0,1fr);padding:36px 16px}
  .evidence-row{grid-template-columns:44px minmax(0,1fr) minmax(0,1fr)}
  .evidence-row>span:first-of-type{grid-column:2/-1;border-right:0}
  .evidence-row>span:nth-of-type(2){grid-column:2}
  .evidence-row>span:nth-of-type(3){grid-column:3}
  .limits{grid-template-columns:minmax(0,1fr);padding:22px 16px}
}
@media (max-width:520px){
  .brand span:last-child{max-width:150px;overflow:hidden;text-overflow:ellipsis}
  .runtime{display:none}
  .settings-grid{grid-template-columns:minmax(0,1fr)}
  .command-row .button{flex:1 1 160px}
  .utility-row{align-items:flex-start}
  .gap-strip,.interpretation{grid-template-columns:minmax(0,1fr)}
  .evidence-row{grid-template-columns:38px minmax(0,1fr) minmax(0,1fr)}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
