:root{--ink:#1a2740;--ink-deep:#131d31;--ink-line:#2a3a58;--ink-text:#e6ecf5;--ink-dim:#8a9ab8;--vellum:#e8ecf0;--vellum-dot:#c2cbd6;--graphite:#3d4a5c;--signal:#ffb21a;--signal-ink:#2a1c00;--error:#ff6b6b;--warn:#ffc247;--ok:#4cc38a;--radius-s:6px;--radius-m:10px;--bar-h:56px;--foot-h:30px;--ui:"Instrument Sans", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[hidden]{display:none!important}*{box-sizing:border-box}html,body{height:100%;margin:0}body{grid-template-rows:var(--bar-h) 1fr var(--foot-h);background:var(--ink-deep);color:var(--ink-text);font:14px/1.45 var(--ui);display:grid;overflow:hidden}button,select,input{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--signal);outline-offset:2px}.bar{background:var(--ink-deep);border-bottom:1px solid var(--ink-line);align-items:center;gap:20px;min-width:0;padding:0 16px;display:flex}.mark{color:var(--ink-text);flex:none;align-items:baseline;gap:2px;text-decoration:none;display:flex}.mark-word{font:600 22px/1 var(--mono);letter-spacing:-.02em}.mark-cursor{background:var(--signal);width:9px;height:18px;margin-left:2px;animation:1.1s step-end 3 blink;display:inline-block;transform:translateY(2px)}.mark-sub{color:var(--ink-dim);margin-left:10px;font-weight:500}@keyframes blink{50%{opacity:0}}.picker{min-width:0;position:relative}.picker-btn{background:var(--ink);border:1px solid var(--ink-line);border-radius:var(--radius-m);cursor:pointer;align-items:center;gap:10px;max-width:360px;padding:6px 10px 6px 12px;display:flex}.picker-btn:hover{border-color:#3b5078}.picker-label{color:var(--ink-dim);font-size:12px}.picker-title{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.chev{fill:none;width:12px;height:12px;stroke:var(--ink-dim);stroke-width:1.6px;flex:none}.panel{z-index:20;background:var(--ink);border:1px solid var(--ink-line);border-radius:var(--radius-m);width:min(560px,100vw - 32px);max-height:min(70vh,640px);padding:8px;position:absolute;top:calc(100% + 8px);left:0;overflow:auto;box-shadow:0 24px 60px #050a148c}.panel h2{color:var(--ink-dim);margin:10px 10px 4px;font-size:12px;font-weight:600}.ex{text-align:left;border-radius:var(--radius-s);cursor:pointer;background:0 0;border:0;grid-template-columns:1fr auto;gap:2px 12px;width:100%;padding:8px 10px;display:grid}.ex:hover,.ex:focus-visible{background:#22324f}.ex[aria-current=true]{box-shadow:inset 3px 0 0 var(--signal);background:#22324f}.ex-title{font-weight:600}.ex-kind{color:var(--ink-dim);grid-row:span 2;align-self:center;font-size:12px}.ex-desc{color:var(--ink-dim);font-size:13px}.controls{align-items:center;gap:12px;min-width:0;margin-left:auto;display:flex}.seg{background:var(--ink);border:1px solid var(--ink-line);border-radius:var(--radius-m);padding:3px;display:flex}.seg button{color:var(--ink-dim);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:4px 12px;font-weight:500}.seg button[aria-checked=true]{background:var(--signal);color:var(--signal-ink)}.field,.toggle{color:var(--ink-dim);align-items:center;gap:8px;font-size:13px;display:flex}.field select{background:var(--ink);border:1px solid var(--ink-line);border-radius:var(--radius-s);max-width:170px;color:var(--ink-text);padding:5px 8px}.toggle{cursor:pointer}.toggle input{accent-color:var(--signal);width:15px;height:15px;margin:0}.btn{background:var(--ink);border:1px solid var(--ink-line);border-radius:var(--radius-s);cursor:pointer;white-space:nowrap;padding:6px 12px;font-weight:500}.btn:hover{border-color:#3b5078}.dl{gap:6px;display:flex}.work{--split:44%;grid-template-columns:var(--split) 6px 1fr;min-height:0;display:grid}.code{background:var(--ink);grid-template-rows:auto 1fr auto;min-width:0;min-height:0;display:grid}.tabs{border-bottom:1px solid var(--ink-line);scrollbar-width:thin;gap:2px;padding:8px 10px 0;display:flex;overflow-x:auto}.tab{color:var(--ink-dim);font:13px var(--mono);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:6px 12px 8px;display:flex}.tab[aria-selected=true]{color:var(--ink-text);border-bottom-color:var(--signal)}.tab-note{font:11px var(--ui);color:var(--ink-dim)}.tab .dot{background:var(--signal);border-radius:50%;width:6px;height:6px}.editor{min-height:0;overflow:hidden}.editor .cm-editor{height:100%}.split{background:var(--ink-deep);border-left:1px solid var(--ink-line);cursor:col-resize}.split:hover,.split:focus-visible{background:#22324f}.report{border-top:1px solid var(--ink-line);background:var(--ink-deep);max-height:38vh;font-size:13px;overflow:auto}.statusbar{align-items:center;gap:10px;min-height:38px;padding:7px 14px;display:flex}.status{color:var(--ink-dim);align-items:center;gap:10px;min-width:0;display:flex}.status:before{content:"";background:var(--ok);border-radius:50%;flex:none;width:8px;height:8px}.status.is-error:before{background:var(--error)}.status.is-warn:before{background:var(--warn)}.status.is-busy:before{background:var(--ink-dim)}.count{color:var(--warn);cursor:pointer;white-space:nowrap;background:#ffc2471f;border:1px solid #ffc24759;border-radius:999px;align-items:center;gap:6px;margin-left:auto;padding:3px 10px;font-size:12px;font-weight:600;display:flex}.count.is-error{color:var(--error);background:#ff6b6b1f;border-color:#ff6b6b66}.count:after{content:"";border:1.5px solid;border-width:0 1.5px 1.5px 0;width:7px;height:7px;transition:transform .15s;transform:translateY(-2px)rotate(45deg)}.count[aria-expanded=true]:after{transform:translateY(1px)rotate(-135deg)}.findings{max-height:30vh;overflow:auto}.diag{text-align:left;cursor:default;background:0 0;border:0;border-top:1px solid #1d2a43;grid-template-columns:68px 1fr;gap:2px 10px;width:100%;padding:8px 14px;display:grid}.diag[title]{cursor:pointer}.diag:hover,.diag:focus-visible{background:#1b2842}.diag-sev{color:var(--warn);font-size:12px;font-weight:600}.diag-sev.error{color:var(--error)}.diag-msg{min-width:0}.diag-meta,.diag-hint{color:var(--ink-dim);grid-column:2;font-size:12px}.diag-hint{font-family:var(--mono)}.missing{border-top:1px solid #1d2a43;align-items:center;gap:10px;padding:8px 14px;display:flex}.missing code{font-family:var(--mono);color:var(--signal)}.missing .btn{margin-left:auto;padding:3px 10px;font-size:12px}.table{background-color:var(--vellum);background-image:radial-gradient(var(--vellum-dot) 1px, transparent 1.2px);min-width:0;min-height:0;color:var(--graphite);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background-size:16px 16px;grid-template-rows:1fr auto;display:grid;position:relative}.stage{place-items:center;min-height:0;padding:48px;display:grid;position:relative;overflow:auto}.sheet{transition:opacity .15s;position:relative}.sheet.is-stale{opacity:.35}.sheet iframe{background:0 0;border:0;display:block}.crop{border:0 solid var(--graphite);opacity:.55;width:14px;height:14px;position:absolute}.crop.tl{border-top-width:1.5px;border-left-width:1.5px;top:-10px;left:-10px}.crop.tr{border-top-width:1.5px;border-right-width:1.5px;top:-10px;right:-10px}.crop.bl{border-bottom-width:1.5px;border-left-width:1.5px;bottom:-10px;left:-10px}.crop.br{border-bottom-width:1.5px;border-right-width:1.5px;bottom:-10px;right:-10px}.dims{font:11px var(--mono);color:var(--graphite);opacity:.75;white-space:nowrap;position:absolute;bottom:-30px;right:-10px}.empty{text-align:center;max-width:340px;color:var(--graphite)}.empty strong{margin-bottom:4px;font-size:16px;display:block}.frames{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#e8ecf0eb;border-top:1px solid #cfd6de;align-items:center;gap:16px;min-width:0;padding:10px 16px;display:flex}.chips{scrollbar-width:thin;gap:6px;min-width:0;display:flex;overflow-x:auto}.chip{color:var(--graphite);font:12px var(--mono);white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #c9d1db;border-radius:999px;padding:4px 10px}.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}.scrub{flex:none;align-items:center;gap:8px;margin-left:auto;font-size:12px;display:flex}.scrub input{width:140px;accent-color:var(--ink)}.scrub output{width:34px;font:12px var(--mono)}.zoom{border-radius:var(--radius-s);background:#fff;border:1px solid #c9d1db;display:flex;position:absolute;top:12px;right:12px;overflow:hidden}.zbtn{min-width:32px;color:var(--graphite);cursor:pointer;background:0 0;border:0;padding:4px 8px}.zbtn+.zbtn{border-left:1px solid #dde3ea}.zbtn:hover{background:#f1f4f7}.zfit{font-size:12px;font-weight:600}.foot{border-top:1px solid var(--ink-line);color:var(--ink-dim);align-items:center;gap:16px;padding:0 16px;font-size:12px;display:flex}.foot-sep{flex:1}.foot a{color:var(--ink-dim)}.foot a:hover{color:var(--ink-text)}.toast{z-index:30;background:var(--ink-text);color:var(--ink-deep);border-radius:var(--radius-s);padding:8px 14px;font-weight:500;position:fixed;bottom:48px;left:50%;transform:translate(-50%)}.cm-editor{background:var(--ink);color:var(--ink-text);font-size:13.5px}.cm-editor .cm-scroller{font-family:var(--mono);line-height:1.6}.cm-editor .cm-gutters{background:var(--ink);color:#4d5f80;border-right:0}.cm-editor .cm-activeLineGutter{color:var(--ink-text);background:0 0}.cm-editor .cm-activeLine{background:#ffffff08}.cm-editor .cm-cursor{border-left:2px solid var(--signal)}.cm-editor.cm-focused .cm-selectionBackground,.cm-editor .cm-selectionBackground{background:#34507e!important}.cm-editor .cm-lintRange-error{-webkit-text-decoration:underline wavy var(--error);text-decoration:underline wavy var(--error);text-underline-offset:3px;background-image:none}.cm-editor .cm-tooltip{background:var(--ink-deep);border:1px solid var(--ink-line);color:var(--ink-text)}.cm-editor .cm-diagnostic-error{border-left-color:var(--error)}@media (max-width:860px){body{grid-template-rows:auto 1fr var(--foot-h);overflow:auto}.bar{flex-wrap:wrap;gap:10px 14px;padding:10px 16px}.controls{flex-wrap:wrap;width:100%;margin-left:0}.picker{flex:1}.picker-btn{max-width:100%}.work{grid-template-rows:55vh 60vh;grid-template-columns:1fr}.split{display:none}.stage{padding:28px 16px}.foot a:nth-of-type(n+2){display:none}}@media (prefers-reduced-motion:reduce){.mark-cursor{animation:none}.sheet{transition:none}}
