:root{--bg:#f7f6f2;--pn:#fff;--tx:#1b1b1f;--mu:#6b6b73;--bd:#dcdad2;--ac:#1d4ed8;--hl:#fdf1c4;--open:#f1dc94;--closed:#d8d6cd;--path:#2f7d4f;--ok:#2f7d4f;--no:#b4443c}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#141416;--pn:#1c1c20;--tx:#e8e8ea;--mu:#9a9aa3;--bd:#33333a;--ac:#7aa2ff;--hl:#3d3513;--open:#6b5a1c;--closed:#3b3b42;--path:#3f9d68;--ok:#3f9d68;--no:#c8574e}}:root[data-theme=dark]{--bg:#141416;--pn:#1c1c20;--tx:#e8e8ea;--mu:#9a9aa3;--bd:#33333a;--ac:#7aa2ff;--hl:#3d3513;--open:#6b5a1c;--closed:#3b3b42;--path:#3f9d68;--ok:#3f9d68;--no:#c8574e}*{box-sizing:border-box}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background:var(--bg);color:var(--tx);margin:0;font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}.app{grid-template-columns:250px 1fr;min-height:100vh;display:grid}nav{border-right:1px solid var(--bd);height:100vh;padding:18px 14px;position:sticky;top:0;overflow:auto}nav h1{letter-spacing:.02em;white-space:nowrap;margin:0 0 10px;font-size:17px}.seg{border:1px solid var(--bd);border-radius:4px;margin-bottom:12px;display:flex;overflow:hidden}.seg button{text-align:center;width:auto;color:var(--mu);border-radius:0;flex:1;padding:4px 0;font-size:13px}.seg button.on{color:#fff}.ctl label{align-items:center;gap:8px;display:flex}.ln{padding-left:8px}nav h3{text-transform:uppercase;letter-spacing:.08em;color:var(--mu);margin:16px 0 4px;font-size:11px}nav button{text-align:left;width:100%;color:var(--tx);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:4px;padding:5px 8px;font-size:14px;display:block}nav button:hover{background:var(--bd)}nav button.on{background:var(--ac);color:#fff}input,button{font:inherit;color:var(--tx);background:var(--pn);border:1px solid var(--bd);border-radius:4px;padding:4px 9px}nav input{width:100%}button{cursor:pointer}button.pri{background:var(--ac);border-color:var(--ac);color:#fff}main{min-width:0;padding:20px 26px}header h2{margin:0;font-size:22px}header p{color:var(--mu);max-width:70ch;margin:4px 0 10px}.params{flex-wrap:wrap;gap:14px;display:flex}.params label{color:var(--mu);font-size:13px}.params input{width:64px;margin-left:6px}.cols{grid-template-columns:minmax(0,1fr) minmax(0,.95fr);align-items:start;gap:16px;margin-top:12px;display:grid}.panel{background:var(--pn);border:1px solid var(--bd);border-radius:6px;margin-bottom:14px;padding:14px}.panel h4{text-transform:uppercase;letter-spacing:.08em;color:var(--mu);margin:0 0 8px;font-size:11px}.panel h4 small{text-transform:none;letter-spacing:0}.viz{width:100%;display:block}.edge{stroke:var(--bd);stroke-width:2px}.edge.tour{stroke:var(--ac);stroke-width:5px}.nd circle{fill:var(--pn);stroke:var(--mu);stroke-width:2px}.nd text{text-anchor:middle;fill:var(--tx);font-size:16px;font-weight:700}text.h{fill:var(--mu);text-anchor:middle;font-size:11px;font-weight:400}.nd.open circle{fill:var(--open)}.nd.closed circle{fill:var(--closed)}.nd.path circle{fill:var(--path)}.nd.path text,.nd.cur text{fill:#fff}.nd.cur circle{fill:var(--ac);stroke:var(--tx)}.nd.goal circle{stroke-dasharray:4 3}.msg{border-left:3px solid var(--ac);background:var(--hl);min-height:48px;margin:10px 0;padding:8px 12px}.info{color:var(--mu);font-size:13px;display:block}.ctl{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.ctl input[type=range]{flex:1;min-width:90px;padding:0}.cnt{color:var(--mu);font-size:13px}.warn{color:var(--no)}.lst{margin:6px 0}.lst b{color:var(--mu);font-size:12px}.chips{flex-wrap:wrap;gap:5px;margin-top:3px;display:flex}.chip{background:var(--bg);border:1px solid var(--bd);border-radius:4px;padding:1px 7px;font:13px ui-monospace,Menlo,Consolas,monospace}.chip:first-child{border-color:var(--ac)}.code{max-height:80vh;font:13px/1.6 ui-monospace,Menlo,Consolas,monospace;position:sticky;top:12px;overflow:auto}.ln{white-space:pre;border-left:3px solid #0000}.ln.on{background:var(--hl);border-left-color:var(--ac)}.ln .n{width:2.4em;color:var(--mu);display:inline-block}.fn{color:var(--ac);margin:8px 0 2px;font-weight:700}.brow{flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0;display:flex}.brow b{text-transform:uppercase;letter-spacing:.06em;width:100%;color:var(--mu);font-size:11px}.cell{border:1px solid var(--bd);border-radius:4px;flex-direction:column;align-items:center;padding:3px 5px;display:inline-flex}.cell.first{border-color:var(--ac)}.cell small{color:var(--mu);font-size:11px}.bits{gap:2px;display:inline-flex}.bit{text-align:center;color:#fff;border-radius:3px;width:22px;height:26px;font:700 14px ui-monospace,monospace}.bit.ok{background:var(--ok)}.bit.no{background:var(--no)}.bit.t{background:var(--mu)}.legend{color:var(--mu);font-size:12px}.legend i{border-radius:2px;width:10px;height:10px;margin:0 4px 0 10px;display:inline-block}.legend i.ok{background:var(--ok)}.legend i.no{background:var(--no)}@media (width<=900px){.app{grid-template-columns:1fr}nav{border-right:0;border-bottom:1px solid var(--bd);height:auto;position:static}.cols{grid-template-columns:1fr}.code{max-height:360px;position:static}}:root{--pl:80%}:root[data-theme=dark]{--pl:32%}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--pl:32%}}.permv{flex-direction:column;gap:6px;padding-bottom:4px;display:flex;overflow-x:auto}.prow{align-items:center;gap:3px;display:flex}.prow b{width:74px;color:var(--mu);text-transform:uppercase;letter-spacing:.04em;flex:none;font-size:11px}.pc{text-align:center;border:1px solid var(--bd);width:24px;height:28px;color:var(--tx);border-radius:3px;flex:none;font:700 13px ui-monospace,Menlo,monospace}.pc.n{color:var(--mu);border:0;font-size:11px;font-weight:400}.pc.bad{outline:2px solid var(--no);outline-offset:-2px}nav button.res{border:1px solid var(--bd);margin-bottom:10px;font-weight:600}.rel a{color:var(--ac);margin-right:14px}header input{margin-top:6px}.rsec{margin:18px 0}.rsec h4{text-transform:uppercase;letter-spacing:.08em;color:var(--mu);margin:0 0 8px;font-size:11px}.rcard{background:var(--pn);border:1px solid var(--bd);border-radius:6px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:8px;padding:12px 14px;display:flex}.rinfo{flex:300px}.rcard p{color:var(--mu);max-width:70ch;margin:2px 0 0;font-size:14px}.rtimestamps{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.tstag{color:var(--tx);background:var(--bg);border:1px solid var(--bd);border-radius:4px;align-items:center;gap:6px;padding:3px 8px;font-size:12px;text-decoration:none;transition:border-color .15s,color .15s;display:inline-flex}.tstag:hover{border-color:var(--ac);color:var(--ac)}.tstag .ts{color:var(--ac);font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600}.ract{flex:none;align-self:center;gap:8px;display:flex}.btn{border:1px solid var(--bd);color:var(--tx);border-radius:4px;padding:4px 12px;font-size:14px;text-decoration:none}.btn:hover{border-color:var(--ac)}
