:root{--bg:#F4F6F5;--surface:#FFFFFF;--surface-2:#F8FAF9;--ink:#15211E;--muted:#5D6562;--faint:#8A918D;--line:#E4E8E5;--line-2:#CFD5D1;--accent:#0F6E56;--accent-ink:#0B5443;--accent-soft:#E1F5EE;--machine-bg:#EEF1F0;--machine-line:#AAB1AD;--machine-ink:#69706C;--c-sel-bg:#DCE8F6;--c-sel-line:#3D74B8;--c-sel-ink:#234E78;--c-prep-bg:#D4EFE6;--c-prep-line:#1A9576;--c-prep-ink:#0D5C49;--c-inc-bg:#F4EAD0;--c-inc-line:#C18C24;--c-inc-ink:#7A5A12;--c-load-bg:#F8DCC4;--c-load-line:#D57C39;--c-load-ink:#8C4A17;--c-run-bg:#E7E1F7;--c-run-line:#7E5FD1;--c-run-ink:#4E3A91;--c-rst-bg:#F6DCE6;--c-rst-line:#C25684;--c-rst-ink:#8A3A5C;--idle:#9A6A12;--radius:12px;--radius-sm:8px;--mono:ui-monospace,"SF Mono",SFMono-Regular,"JetBrains Mono",Menlo,Consolas,monospace;--sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}@media (prefers-color-scheme: dark){:root{--bg:#0D1312;--surface:#141B1A;--surface-2:#101615;--ink:#E8ECEA;--muted:#9BA39F;--faint:#717873;--line:#222C2A;--line-2:#2E3A37;--accent:#3FBF9C;--accent-ink:#7FD8C2;--accent-soft:#103A30;--machine-bg:#1A2220;--machine-line:#3A4541;--machine-ink:#909893;--c-sel-bg:#16314A;--c-sel-line:#4E83C0;--c-sel-ink:#9CC2E6;--c-prep-bg:#0E3B30;--c-prep-line:#2FB394;--c-prep-ink:#74D8C2;--c-inc-bg:#3A2F12;--c-inc-line:#C99B3A;--c-inc-ink:#E0C277;--c-load-bg:#3C2818;--c-load-line:#C87A3E;--c-load-ink:#E5AF7E;--c-run-bg:#2A2150;--c-run-line:#9A7FE0;--c-run-ink:#C3B5F0;--c-rst-bg:#3E1E2C;--c-rst-line:#C56C8E;--c-rst-ink:#E6A8C0;--idle:#D6A24A}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;padding:28px 20px 64px}.wrap{max-width:1060px;margin:0 auto}.eyebrow{font-family:var(--mono);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin:0 0 6px}h1{font-size:26px;line-height:1.1;font-weight:650;letter-spacing:-.01em;margin:0 0 6px}.lede{color:var(--muted);margin:0;max-width:62ch}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.panel+.panel{margin-top:18px}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 14px}.section-head h2{font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0}.section-head .hint{font-size:12.5px;color:var(--faint)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));gap:10px}.test{position:relative;text-align:left;cursor:pointer;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 13px;transition:border-color .12s,background .12s,box-shadow .12s}.test:hover{border-color:var(--line-2)}.test:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.test[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}@media (prefers-color-scheme: dark){.test[aria-pressed=true]{background:var(--accent-soft)}}.test .name{font-weight:600;font-size:14.5px;display:flex;align-items:center;gap:8px}.dot{width:8px;height:8px;border-radius:50%;flex:none}.test .mod{font-size:12px;color:var(--muted);margin:1px 0 9px}.test .timing{font-family:var(--mono);font-size:11.5px;color:var(--faint);letter-spacing:.01em;display:flex;flex-wrap:wrap;gap:2px 9px}.test .timing b{color:var(--ink);font-weight:500}.test .total{font-family:var(--mono);font-size:11.5px;color:var(--muted);margin-top:7px}.check{position:absolute;top:11px;right:11px;width:18px;height:18px;border-radius:5px;border:1.5px solid var(--line-2);display:grid;place-items:center;color:#fff;background:transparent;transition:.12s}.test[aria-pressed=true] .check{background:var(--accent);border-color:var(--accent)}.check svg{opacity:0;width:12px;height:12px}.test[aria-pressed=true] .check svg{opacity:1}.controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:16px}.controls .spacer{flex:1 1 auto}.btn{font-family:var(--sans);font-size:14px;font-weight:550;border-radius:var(--radius-sm);padding:9px 16px;cursor:pointer;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);transition:.12s}.btn:hover{border-color:var(--accent)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{filter:brightness(1.06)}.btn-ghost{background:transparent;border-color:transparent;color:var(--muted);padding:9px 8px}.btn-ghost:hover{color:var(--ink);border-color:transparent}.toggle{display:inline-flex;align-items:center;gap:9px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:13.5px;color:var(--muted)}.toggle input{position:absolute;opacity:0;width:0;height:0}.switch{width:34px;height:20px;border-radius:11px;background:var(--line-2);position:relative;transition:.15s;flex:none}.switch:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:.15s}.toggle input:checked+.switch{background:var(--accent)}.toggle input:checked+.switch:after{transform:translate(14px)}.toggle input:focus-visible+.switch{outline:2px solid var(--accent);outline-offset:2px}#results{margin-top:18px}.fade{animation:fade .25s ease both}@keyframes fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.fade{animation:none}}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px}@media (max-width:680px){.metrics{grid-template-columns:repeat(2,1fr)}}.metric{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:13px 14px}.metric .k{font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.metric .v{font-family:var(--mono);font-size:23px;font-weight:550;line-height:1;letter-spacing:-.01em}.metric .sub{font-family:var(--mono);font-size:11.5px;color:var(--faint);margin-top:5px}.metric.good .v{color:var(--accent)}.optbar{background:var(--accent-soft);border:1px solid var(--line);border-radius:var(--radius-sm);padding:13px 15px;margin-bottom:18px}.optbar-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:11px}.optbar-title{font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--accent-ink);font-weight:600}.obadge{font-family:var(--mono);font-size:10px;letter-spacing:.03em;text-transform:uppercase;padding:2px 7px;border-radius:4px;background:var(--accent);color:#fff}.obadge.soft{background:var(--surface-2);color:var(--muted);border:1px solid var(--line-2)}.seqchips{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.chip{display:inline-flex;align-items:center;gap:7px;background:var(--surface-2);border:1px solid var(--line);border-radius:20px;padding:4px 12px 4px 5px;font-size:12.5px;white-space:nowrap}.chip b{font-family:var(--mono);font-size:11px;background:var(--accent);color:#fff;width:19px;height:19px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex:none}.chip .cdot{width:8px;height:8px;border-radius:50%;flex:none}.seqchips .arrow{color:var(--faint);font-size:13px;padding:0 1px}.optbar-note{margin-top:11px;font-size:12.5px;color:var(--muted);line-height:1.55}.optbar-note b{font-family:var(--mono);color:var(--ink)}.gantt{margin:4px 0 2px}.g-axis{position:relative;height:18px;margin-left:152px}.g-tick{position:absolute;transform:translate(-50%);font-family:var(--mono);font-size:11px;color:var(--faint);white-space:nowrap}.g-body{position:relative}.g-grid{position:absolute;left:152px;right:0;top:0;bottom:8px;pointer-events:none}.g-grid i{position:absolute;top:0;bottom:0;width:1px;background:var(--line)}.lane{display:flex;align-items:center;height:34px}.lane-label{width:152px;flex:none;padding-right:12px;overflow:hidden}.lane-label .ln{font-size:13px;font-weight:550;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:flex;align-items:center;gap:7px}.lane-label .lm{font-size:11px;color:var(--faint);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.lane-track{position:relative;flex:1;height:24px}.seg{position:absolute;top:0;height:24px;border-radius:5px;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:10.5px;overflow:hidden;white-space:nowrap;padding:0 4px}.seg{border:1px solid transparent}.seg.machine{border-style:dashed}.s-selection{background:var(--c-sel-bg);border-color:var(--c-sel-line);color:var(--c-sel-ink)}.s-prep{background:var(--c-prep-bg);border-color:var(--c-prep-line);color:var(--c-prep-ink)}.s-incload{background:var(--c-load-bg);border-color:var(--c-load-line);color:var(--c-load-ink)}.s-incubation{background:var(--c-inc-bg);border-color:var(--c-inc-line);color:var(--c-inc-ink)}.s-run{background:var(--c-run-bg);border-color:var(--c-run-line);color:var(--c-run-ink)}.s-reset{background:var(--c-rst-bg);border-color:var(--c-rst-line);color:var(--c-rst-ink)}.legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin:14px 0 0 152px;font-size:12px;color:var(--muted)}@media (max-width:680px){.legend{margin-left:0}}.legend span{display:inline-flex;align-items:center;gap:7px}.sw{width:13px;height:13px;border-radius:3px;flex:none;border:1px solid transparent}.sw.machine{border-style:dashed}.plan{list-style:none;margin:0;padding:0}.plan li{display:flex;gap:14px;padding:8px 0;border-top:1px solid var(--line)}.plan li:first-child{border-top:0}.plan .num{font-family:var(--mono);font-size:12px;color:var(--faint);width:22px;flex:none;text-align:right;padding-top:1px}.plan .time{font-family:var(--mono);font-size:13px;width:96px;flex:none;color:var(--muted)}.plan .what{flex:1}.plan .badge{font-family:var(--mono);font-size:10px;letter-spacing:.03em;text-transform:uppercase;padding:1px 6px;border-radius:4px;margin-left:8px;vertical-align:1px}.b-tech{background:var(--accent-soft);color:var(--accent-ink)}.b-machine{background:var(--machine-bg);color:var(--machine-ink)}.plan li.idle{opacity:.85}.plan li.idle .what{color:var(--faint);font-style:italic}.plan .dur{color:var(--faint);font-family:var(--mono);font-size:12px}.empty{color:var(--muted);font-size:14px;padding:8px 2px}.footnote{color:var(--faint);font-size:12.5px;margin-top:16px;line-height:1.6}code{font-family:var(--mono);font-size:.88em;background:var(--surface-2);border:1px solid var(--line);border-radius:4px;padding:1px 5px}.is-live #planPanel{opacity:.45;pointer-events:none;-webkit-user-select:none;user-select:none}.btn.mini{padding:5px 10px;font-size:12.5px;border-radius:7px}.btn.danger{border-color:var(--c-rst-line);color:var(--c-rst-ink)}.btn.danger:hover{background:var(--c-rst-bg)}.live-head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:flex-start}.clockrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:4px}.clock{font-family:var(--mono);font-size:30px;font-weight:560;letter-spacing:-.01em;min-width:96px}.live-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.obadge.danger{background:var(--c-rst-line)}.attn{border:1px solid var(--c-inc-line);background:var(--c-inc-bg);border-radius:var(--radius-sm);padding:11px 13px;margin-bottom:10px}.attn:last-child{margin-bottom:0}.attn-msg{color:var(--c-inc-ink);font-size:13.5px;margin-bottom:9px}.attn-actions{display:flex;gap:8px;flex-wrap:wrap}.action-main .action-what{display:flex;align-items:center;gap:8px;font-size:15px}.action-meta{font-size:12.5px;color:var(--muted);margin:6px 0 12px;font-family:var(--mono)}.action-ctl{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.action-blocked{color:var(--muted);font-size:13.5px}.action-armed{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--ink);padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2,rgba(120,140,180,.06));margin-top:4px}.action-armed .dot{width:9px;height:9px;border-radius:50%;flex:none}.action-done{color:var(--accent-ink);font-size:14px}.block-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.block-chip .code{font-family:var(--mono);font-size:10px;color:var(--c-rst-ink);margin-right:6px}.bc-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.bc-input{font-family:var(--mono);font-size:14px;padding:8px 11px;border:1px solid var(--line-2);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);min-width:200px}.bc-input:focus{outline:2px solid var(--accent);outline-offset:1px}.bc-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px;align-items:center}.bc-chip{cursor:pointer}.hint.late{color:var(--idle)}.mono{font-family:var(--mono)}.urgent{color:var(--c-rst-line);font-weight:600}.seg.ghost{background:transparent;border-style:dashed;opacity:.55}.seg.missedseg{border-color:var(--c-rst-line);color:var(--c-rst-ink);opacity:.85}.protectband{position:absolute;top:-3px;bottom:-3px;background:var(--c-inc-line);opacity:.16;border:1px dashed var(--c-inc-line);border-radius:4px}.nowline{position:absolute;top:0;bottom:6px;width:2px;background:var(--c-rst-line);opacity:.75;pointer-events:none}.tscroll{overflow-x:auto}.sesstable{width:100%;border-collapse:collapse;font-size:13px;min-width:780px}.sesstable th{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);text-align:left;padding:6px 10px 8px;border-bottom:1px solid var(--line)}.sesstable td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}.sesstable tr:last-child td{border-bottom:0}.sesstable .lm{font-size:11px;color:var(--faint)}.resTd{font-size:12px;color:var(--muted);max-width:160px}.stepsTd{max-width:240px}.mstep{display:inline-block;font-family:var(--mono);font-size:10px;padding:1px 6px;border:1px solid var(--line-2);border-radius:4px;margin:0 3px 3px 0;color:var(--faint)}.mstep.done{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft)}.mstep.live{border-color:var(--c-run-line);color:var(--c-run-ink);background:var(--c-run-bg)}.mstep.off{opacity:.45;text-decoration:line-through}.mstep.miss{border-color:var(--c-rst-line);color:var(--c-rst-ink)}.actTd{white-space:nowrap;text-align:right}.actTd .btn{margin:0 0 4px 4px}.statechip{display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.02em;padding:2px 7px;border-radius:4px;border:1px solid var(--line-2);color:var(--muted);white-space:nowrap}.st-done{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft)}.st-man{border-color:var(--accent);color:var(--accent-ink)}.st-inc{border-color:var(--c-inc-line);color:var(--c-inc-ink);background:var(--c-inc-bg)}.st-wrun{border-color:var(--c-load-line);color:var(--c-load-ink);background:var(--c-load-bg)}.st-exec{border-color:var(--c-sel-line);color:var(--c-sel-ink);background:var(--c-sel-bg)}.st-wres{border-color:var(--c-run-line);color:var(--c-run-ink);background:var(--c-run-bg)}.st-over{border-color:var(--idle);color:var(--idle);font-weight:600}.st-rrq{border-color:var(--c-rst-line);color:var(--c-rst-ink);background:var(--c-rst-bg)}.st-rcr{border-color:var(--c-rst-line);color:var(--c-rst-ink);opacity:.7}.st-skip{opacity:.6}.st-fail{border-color:var(--c-rst-line);color:var(--c-rst-ink);background:var(--c-rst-bg)}.unavail-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.modrow{display:flex;align-items:center;gap:9px;padding:9px 0;border-top:1px solid var(--line);flex-wrap:wrap}.modrow:first-child{border-top:0}.modrow .spacer{flex:1 1 auto}.auditlog{list-style:none;margin:0;padding:0;max-height:340px;overflow:auto;font-size:12px}.auditlog li{display:flex;gap:10px;padding:5px 0;border-top:1px solid var(--line);align-items:baseline}.auditlog li:first-child{border-top:0}.auditlog .at{color:var(--faint);width:46px;flex:none}.auditlog .av{color:var(--faint);width:30px;flex:none}.auditlog .ac{color:var(--accent-ink);width:230px;flex:none;font-size:10.5px;letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auditlog .am{color:var(--muted);flex:1}.auditlog .aerr .ac,.auditlog .aerr .am{color:var(--c-rst-ink)}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a100e73;display:grid;place-items:center;z-index:60;padding:20px}.modal{max-width:540px;width:100%;max-height:86vh;overflow:auto}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:16px;flex-wrap:wrap}.mlabel{display:block;font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:10px 0 4px}.minput{width:100%;font-family:var(--sans);font-size:14px;padding:8px 11px;border:1px solid var(--line-2);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink)}.minput:focus{outline:2px solid var(--accent);outline-offset:1px}select.minput{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.prevbox{margin-top:12px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:11px 13px;font-size:12.5px;color:var(--muted);display:grid;gap:5px}#toastRoot{position:fixed;left:50%;bottom:22px;transform:translate(-50%);display:grid;gap:8px;z-index:70;width:min(540px,90vw)}.toast{background:var(--ink);color:var(--bg);padding:10px 14px;border-radius:10px;font-size:13px;box-shadow:0 8px 24px #00000040;opacity:.97;transition:.3s}.toast.terr{background:#7a2e48;color:#fff}.vsummary{font-size:13px;color:var(--muted);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 13px;margin-bottom:12px;line-height:1.9}.vsummary b{color:var(--ink);font-family:var(--mono)}.vlist{display:flex;flex-direction:column;gap:8px}.vrow{display:grid;grid-template-columns:66px 1fr auto;gap:12px;align-items:start;padding:11px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2)}.vrow.cur{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.vtag{font-family:var(--mono);font-weight:600;font-size:14px;color:var(--ink);display:flex;flex-direction:column;gap:4px;align-items:flex-start}.vmain{min-width:0}.vhead{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.vreason{font-size:13.5px;color:var(--ink);font-weight:550}.vat{font-size:11.5px;color:var(--faint)}.vdetail{font-size:12.5px;color:var(--muted);margin:3px 0 0}.vmeta{font-size:12px;color:var(--faint);margin-top:5px;font-family:var(--mono)}.vmeta b{color:var(--ink)}.vact{display:flex;flex-direction:column;gap:6px;align-items:flex-end;white-space:nowrap}.vbadge{font-family:var(--mono);font-size:10px;letter-spacing:.03em;text-transform:uppercase;padding:2px 7px;border-radius:4px;border:1px solid transparent}.vbadge.base{background:var(--surface);color:var(--muted);border-color:var(--line-2)}.vbadge.opt{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent)}.vbadge.safe{background:var(--c-sel-bg);color:var(--c-sel-ink);border-color:var(--c-sel-line)}.vbadge.rerun{background:var(--c-run-bg);color:var(--c-run-ink);border-color:var(--c-run-line)}.vdelta{font-family:var(--mono);font-size:11.5px;font-weight:600;padding:0 2px;color:var(--faint)}.vdelta.good{color:var(--accent)}.vdelta.bad{color:var(--idle)}.vsnap{display:flex;flex-direction:column;gap:5px;max-height:52vh;overflow:auto;padding-right:4px}.vsnap-lane{display:grid;grid-template-columns:132px 1fr;gap:8px;align-items:center}.vsnap-lab{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px}.vsnap-track{position:relative;height:16px;background:var(--surface-2);border:1px solid var(--line);border-radius:4px}.vsnap-seg{position:absolute;top:1px;height:12px;border-radius:2px;border:1px solid rgba(0,0,0,.14);opacity:.62}.vsnap-seg.done{opacity:1}.vsnap-axis{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;color:var(--faint);margin:3px 0 0 140px}.vdiff{width:100%;border-collapse:collapse;font-size:12.5px}.vdiff th,.vdiff td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:middle}.vdiff th{color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.vdiff td .dot{width:8px;height:8px;border-radius:50%;display:inline-block;vertical-align:middle;margin-right:4px}.vdiff .up{color:var(--idle);font-weight:600}.vdiff .down{color:var(--accent);font-weight:600}.toast.gone{opacity:0;transform:translateY(6px)}@media (max-width:680px){.auditlog .ac{width:120px}.clock{font-size:24px}}
