html,body{margin:0}:root{--bg:#e8ecef;--paper:#f8f9fa;--grid:#d3dae0;--ink:#1a2128;--muted:#5a6672;--line:#c8d0d7;--node:#fff;--nodeEdge:#9aa6b1;--accent:#1d5fa6;--pos:#cc3127;--neg:#22282e;--data:#23905a;--ok:#2c7a4c;--warn:#a66a10;--danger:#c42a1b;--h1:#d98a1c;--h2:#ea5f17;--h3:#ff3b1f;--onColor:#fff;--zap:#f2c230;--zapInk:#1a1a1a;--zapText:#8a5a0a;--logo:#1a2128;--shadow:0 6px 24px #141e2824,0 1px 3px #141e281f;--f-display:"Barlow Semi Condensed","Arial Narrow",sans-serif;--f-body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--f-mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#111519;--paper:#181d22;--grid:#252d35;--ink:#e4e9ee;--muted:#98a3ae;--line:#2e3740;--node:#1f252c;--nodeEdge:#4d5865;--accent:#6aa6ec;--pos:#f05a4b;--neg:#9aa6b2;--data:#4cc785;--ok:#5cc28a;--warn:#e3a43c;--danger:#ff5d4a;--zapText:#f2c230;--logo:#2a333c;--shadow:0 8px 28px #00000080,0 1px 3px #0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#111519;--paper:#181d22;--grid:#252d35;--ink:#e4e9ee;--muted:#98a3ae;--line:#2e3740;--node:#1f252c;--nodeEdge:#4d5865;--accent:#6aa6ec;--pos:#f05a4b;--neg:#9aa6b2;--data:#4cc785;--ok:#5cc28a;--warn:#e3a43c;--danger:#ff5d4a;--zapText:#f2c230;--logo:#2a333c;--shadow:0 8px 28px #00000080,0 1px 3px #0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--f-body);-webkit-text-size-adjust:100%;font-size:14px;line-height:1.45;overflow:hidden}button,select,input{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{grid-template-columns:300px minmax(0,1fr) var(--dock,0px);height:100%;display:grid;position:relative}.app.pinned{--dock:340px}.app.pinned.dcol{--dock:46px}.btn{border:1px solid var(--line);background:var(--node);white-space:nowrap;border-radius:7px;align-items:center;gap:6px;padding:6px 11px;font-size:13px;display:inline-flex}.btn:hover{border-color:var(--nodeEdge)}.btn.danger{background:var(--danger);border-color:var(--danger);color:var(--onColor);font-weight:600}.btn.zap{background:var(--zap);border-color:var(--zapInk);color:var(--zapInk);font-weight:600}.btn.zap kbd{font:600 10.5px/1 var(--f-mono);text-align:center;border:1px solid color-mix(in srgb,currentColor 35%,transparent);background:color-mix(in srgb,currentColor 10%,transparent);border-bottom-width:2px;border-radius:4px;min-width:18px;margin-left:4px;padding:2px 5px 1px}.btn svg{width:14px;height:14px}select,input[type=number],input[type=text]{background:var(--node);border:1px solid var(--line);border-radius:6px;width:100%;min-width:0;padding:6px 8px;font-size:13px}select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 15px) 52%,calc(100% - 10px) 52%;background-repeat:no-repeat;background-size:5px 5px;padding-right:28px}input[type=range]{width:100%;accent-color:var(--danger)}.kicker{font-family:var(--f-display);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0;font-size:12px;font-weight:600}.chev{color:var(--muted);transition:transform .15s;display:inline-block}.lv{background:var(--muted);border-radius:50%;flex:none;width:8px;height:8px}.lv.danger{background:var(--danger)}.lv.warn{background:var(--warn)}.lv.safe,.lv.ok{background:var(--ok)}.muted{color:var(--muted)}.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}.help{margin:0;font-size:13px}.float{background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;position:absolute}.side{background:var(--paper);border-right:1px solid var(--line);z-index:6;flex-direction:column;grid-column:1;min-height:0;display:flex;position:relative}.shead{border-bottom:1px solid var(--line);flex-direction:column;gap:10px;padding:12px 14px;display:flex;position:relative}.proj{align-items:center;gap:8px;min-width:0;display:flex}.logo{flex:none}.pname{text-align:left;background:0 0;border:0;border-radius:6px;flex-direction:column;flex:1;align-items:flex-start;min-width:0;margin:-2px -4px;padding:2px 4px;display:flex}.pname:hover,.pname[aria-expanded=true]{background:var(--bg)}.pn{font-family:var(--f-display);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:17px;font-weight:700;line-height:1.1;overflow:hidden}.pn:after{content:" ▾";color:var(--muted);font-size:11px}.ps{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:11.5px;overflow:hidden}.pedit{font-family:var(--f-display);flex:1;font-weight:700;padding:3px 6px!important;font-size:16px!important}.sq{border:1px solid var(--line);background:var(--node);border-radius:7px;flex:none;place-items:center;width:30px;height:30px;padding:0;display:grid}.sq:hover{border-color:var(--nodeEdge)}.sq svg{width:14px;height:14px}.menu{z-index:8;background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;gap:1px;padding:6px;display:grid;position:absolute;top:50px;left:12px;right:12px}.menu button{text-align:left;background:0 0;border:0;border-radius:6px;padding:6px 10px;font-size:13px}.menu button:hover,.menu button:focus-visible{background:var(--bg)}.menu hr{border:0;border-top:1px solid var(--line);width:100%;margin:5px 0}.menu .kicker{padding:2px 10px 4px}.parts{border-bottom:1px solid var(--line);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.stog{background:0 0;border:0;justify-content:space-between;align-items:center;width:100%;padding:0;display:flex}.stog[aria-expanded=false] .chev{transform:rotate(-90deg)}.tiles{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;display:grid}.tile{border:1px solid var(--line);background:var(--node);-webkit-user-select:none;user-select:none;touch-action:none;white-space:nowrap;border-radius:7px;flex-direction:column;align-items:center;gap:4px;padding:7px 2px 5px;font-size:10.5px;display:flex}.tile:hover{border-color:var(--nodeEdge)}.tile i{flex:none;display:block}.sfill{flex:1;min-height:12px}.vpanel{background:var(--node);border-top:3px solid var(--muted);flex-direction:column;flex:1;min-height:0;display:flex}.vpanel.l-danger{border-top-color:var(--danger)}.vpanel.l-warn{border-top-color:var(--warn)}.vpanel.l-ok,.vpanel.l-safe{border-top-color:var(--ok)}.vhead{flex:none;align-items:center;min-width:0;margin:0;padding:12px 14px 10px;display:flex}.vhead .vt{min-width:0;font-family:var(--f-display);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:12px;font-weight:600;overflow:hidden}.vbody{overscroll-behavior:contain;flex-direction:column;gap:10px;min-height:0;padding:0 14px 14px;display:flex;overflow:auto}.vnone{margin:0;font-size:13px}.vbody .btn.zap{align-self:flex-start}.verdict{border-left:4px solid var(--line);flex-direction:column;gap:7px;padding-left:11px;display:flex}.verdict p{margin:0;font-size:13px}.eyebrow{font-family:var(--f-display);text-transform:uppercase;letter-spacing:.09em;font-size:12px;font-weight:700}.vh{font-family:var(--f-display);text-wrap:balance;font-weight:700;line-height:1.08;font-size:22px!important}.lvl-danger{border-color:var(--danger)}.lvl-danger .eyebrow{color:var(--danger)}.lvl-warn{border-color:var(--warn)}.lvl-warn .eyebrow{color:var(--warn)}.lvl-safe,.lvl-ok{border-color:var(--ok)}.lvl-safe .eyebrow,.lvl-ok .eyebrow{color:var(--ok)}.lvl-none .eyebrow{color:var(--muted)}.tl{gap:5px;margin:2px 0 0;padding:0;list-style:none;display:grid}.tl li{grid-template-columns:50px minmax(0,1fr);gap:8px;font-size:12.5px;display:grid}.tl .t{font-family:var(--f-mono);color:var(--muted);font-variant-numeric:tabular-nums;padding-top:2px;font-size:10.5px}.tl .k-blow span:last-child{font-weight:600}.tl .k-dmg span:last-child,.tl .k-heat span:last-child{color:var(--danger)}.fix{background:var(--bg);border-radius:7px;padding:7px 9px;font-size:12.5px}.fix b{font-family:var(--f-display);text-transform:uppercase;letter-spacing:.07em;margin-right:5px;font-size:11.5px}.shortlist{flex-wrap:wrap;gap:6px;display:flex}.shortlist button{border:1px solid var(--line);background:var(--node);border-radius:14px;align-items:center;gap:6px;padding:3px 10px 3px 6px;font-size:12px;display:inline-flex}.shortlist button:hover{border-color:var(--nodeEdge)}.shortlist button[aria-pressed=true]{border-color:var(--ink)}.shortlist button i{background:var(--zap);border-radius:4px;width:14px;height:14px;display:inline-block}.shortlist .addchip{border:1px dashed var(--nodeEdge);color:var(--muted);background:0 0;padding:3px 10px}.shortlist .addchip:hover{color:var(--ink)}.shortlist .addchip[aria-pressed=true]{background:var(--zap);border:1px solid var(--zapInk);color:var(--zapInk)}.btn.zap[aria-pressed=true]{box-shadow:0 0 0 2px var(--zapInk) inset}.stage{flex-direction:column;grid-column:2;min-width:0;min-height:0;display:flex}.canvas{flex:1;min-height:0;position:relative;overflow:hidden}#board{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block;position:absolute;inset:0}#board.panning{cursor:grabbing!important}#board.shortmode{cursor:crosshair}#board.panmode{cursor:grab}#board.panmode *{cursor:inherit!important}.toast{z-index:5;width:max-content;max-width:min(560px,100% - 24px);padding:9px 14px;font-size:13px;bottom:16px;left:50%;transform:translate(-50%)}.pop{z-index:5;overscroll-behavior:contain;gap:10px;width:min(440px,100% - 20px);max-height:calc(100% - 16px);padding:12px 14px;display:grid;bottom:8px;left:10px;overflow:auto}.audit{gap:9px;margin:0;padding:0;list-style:none;display:grid}.audit li{grid-template-columns:10px minmax(0,1fr);gap:8px;font-size:13px;display:grid}.audit .dot{border-radius:50%;width:8px;height:8px;margin-top:6px}.a-error .dot{background:var(--danger)}.a-warn .dot{background:var(--warn)}.a-info .dot{background:var(--muted)}.a-ok .dot{background:var(--ok)}.foot{color:var(--muted);margin:0;font-size:11.5px}.status{background:var(--paper);border-top:1px solid var(--line);height:30px;color:var(--muted);white-space:nowrap;flex:none;align-items:center;gap:18px;min-width:0;padding:0 10px 0 8px;font-size:12.5px;display:flex}.cbtn{color:inherit;background:0 0;border:0;border-radius:5px;flex:none;align-items:center;gap:6px;padding:3px 6px;display:flex}.cbtn:hover,.cbtn[aria-expanded=true]{background:var(--bg);color:var(--ink)}.loads{flex:0 auto;gap:14px;min-width:0;display:flex;overflow:hidden}.loads .mono{color:var(--ink)}.loads .warn{color:var(--warn)}.loads .danger{color:var(--danger)}.hint{text-overflow:ellipsis;text-align:center;min-width:0;color:var(--ink);flex:1;overflow:hidden}.hint b{color:var(--zapText)}.zctl{color:var(--ink);flex:none;align-items:center;gap:2px;display:flex}.zctl button{background:0 0;border:0;border-radius:5px;place-items:center;padding:2px 7px;line-height:1.3;display:grid}.zctl button:hover{background:var(--bg)}.zctl button svg{width:13px;height:13px}.zctl #undoBtn{margin-right:6px}.zctl #zpct{text-align:center;min-width:40px}.zctl .smode{color:var(--muted);margin-right:8px;font-size:11.5px}.zctl .smode[aria-pressed=true]{color:var(--ink)}.zctl .fitb{border:1px solid var(--line);background:var(--node);margin-left:4px;padding:1px 7px;font-size:11.5px}.drawer{background:var(--paper);border:1px solid var(--line);z-index:7;border-radius:10px;flex-direction:column;width:310px;min-height:0;max-height:calc(100% - 58px);display:none;position:absolute;top:14px;right:14px;box-shadow:0 10px 32px #141e282e,0 1px 3px #141e281f}.drawer.open{display:flex}.app.pinned .drawer{border:0;border-left:1px solid var(--line);width:auto;height:100%;max-height:none;box-shadow:none;border-radius:0;grid-area:1/3;display:flex;position:relative;inset:auto}.dhead{border-bottom:1px solid var(--line);cursor:move;-webkit-user-select:none;user-select:none;flex:none;align-items:center;gap:4px;min-width:0;padding:9px 8px 9px 14px;display:flex}.app.pinned .dhead{cursor:default;padding:12px 10px 12px 16px}.dhead h2{font-family:var(--f-display);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;margin:0;font-size:18px;font-weight:700;overflow:hidden}.app.pinned .dhead h2{font-size:20px}.ibtn{width:30px;height:30px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;place-items:center;display:grid}.ibtn:hover{background:var(--bg);color:var(--ink)}.ibtn svg{width:15px;height:15px}.ibtn[aria-pressed=true]{color:var(--accent);background:var(--bg)}.dbody{overscroll-behavior:contain;flex:auto;align-content:start;gap:12px;min-height:0;padding:12px 14px 14px;display:grid;overflow:auto}.app.pinned .dbody{gap:14px;padding:14px 16px 20px}.drail{width:100%;height:100%;color:var(--muted);background:0 0;border:0;flex-direction:column;align-items:center;gap:10px;padding:12px 0;display:none}.drail span{writing-mode:vertical-rl;font-family:var(--f-display);letter-spacing:.08em;text-transform:uppercase;font-size:12.5px;font-weight:600}.drail:hover{background:var(--bg);color:var(--ink)}.app.dcol .dhead,.app.dcol .dbody{display:none}.app.dcol .drail{display:flex}.form{gap:9px;display:grid}.form label{color:var(--muted);grid-template-columns:96px minmax(0,1fr);align-items:center;gap:10px;font-size:13px;display:grid}.app.pinned .form label{grid-template-columns:102px minmax(0,1fr)}.stats{background:var(--bg);border-radius:8px;grid-template-columns:auto minmax(0,1fr);gap:4px 14px;margin:0;padding:10px 12px;font-size:13px;display:grid}.stats dt{color:var(--muted)}.stats dd{font-family:var(--f-mono);text-align:right;margin:0;font-size:12.5px}.stats dd.meter{white-space:nowrap;align-items:center;gap:8px;display:flex}.meter .bar{background:var(--line);border-radius:3px;flex:1;min-width:40px;height:6px;overflow:hidden}.meter .v{text-align:right;min-width:6ch}.meter .bar i{background:var(--m);border-radius:3px;height:100%;display:block}.meter .of{color:var(--muted);text-align:left;min-width:6ch;margin-left:-4px}.m-ok{--m:var(--ok)}.m-warn{--m:var(--warn)}.m-danger{--m:var(--danger);color:var(--danger)}.actions{flex-wrap:wrap;gap:8px;display:flex}.note{color:var(--muted);margin:0;font-size:12.5px}.swatches{gap:6px;display:flex}.swatches button{border:1px solid var(--line);background:var(--node);border-radius:6px;flex:1;justify-content:center;align-items:center;gap:6px;padding:6px;font-size:12.5px;display:flex}.swatches button[aria-pressed=true]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.swatches i{border-radius:2px;width:14px;height:4px}.sevrow{gap:4px;display:grid}.sevrow .lab{justify-content:space-between;gap:8px;font-size:13px;display:flex}.empty{color:var(--muted);gap:10px;font-size:13px;display:grid}.empty ul{gap:4px;margin:0;padding-left:18px;display:grid}.bulk{background:var(--bg);border-radius:8px;gap:8px;padding:10px 12px;display:grid}.n-body{fill:var(--node);stroke:var(--nodeEdge);stroke-width:1.2px}.node{cursor:grab}.node.sel .n-body{stroke:var(--accent);stroke-width:2.4px}.n-title{font:700 16px var(--f-display);fill:var(--ink)}.n-sub{font:400 10.5px var(--f-mono);fill:var(--muted)}.n-tiny{font:600 9.5px var(--f-mono);fill:var(--muted)}.p-lab{font:600 9.5px var(--f-mono);fill:var(--muted);pointer-events:none}.port{stroke-width:1.6px;cursor:crosshair}.port.pol-p{fill:var(--pos);stroke:var(--pos)}.port.pol-m{fill:var(--neg);stroke:var(--neg)}.port.pol-d{fill:var(--data);stroke:var(--data)}.port.pol-n{fill:var(--paper);stroke:var(--ink)}.port-hit{fill:#0000;cursor:crosshair}.hoverport{fill:none;stroke:var(--accent);stroke-width:2px;pointer-events:none}#board.onport,#board.onport *{cursor:crosshair}.w-line{fill:none;stroke-linecap:round}.c-red .w-line{stroke:var(--pos)}.c-black .w-line{stroke:var(--neg)}.c-data .w-line{stroke:var(--data)}.w-hit{fill:none;stroke:#0000;stroke-width:16px;cursor:pointer}.cable .w-hit{stroke-width:8px}.c-sheath{fill:none;stroke:var(--nodeEdge);stroke-opacity:.22;stroke-linecap:round;pointer-events:none}.cable.sel .c-sheath{stroke:var(--accent);stroke-opacity:.3}.cable.sel .w-halo{display:none}.shortmode .w-hit{cursor:crosshair}.w-halo{fill:none;stroke:var(--accent);stroke-opacity:.28;stroke-width:13px;stroke-linecap:round}.wire.heat1 .w-line{stroke:var(--h1)}.wire.heat2 .w-line{stroke:var(--h2)}.wire.heat3 .w-line{stroke:var(--h3);filter:url(#glow);animation:.5s infinite alternate flick}@keyframes flick{0%{stroke-opacity:1}to{stroke-opacity:.5}}.w-lab{pointer-events:none}.w-lab rect{fill:var(--paper);stroke:var(--line)}.w-lab text{font:600 9.5px var(--f-mono);fill:var(--muted)}.w-lab.along .halo{fill:var(--bg);stroke:var(--bg);stroke-width:4px;stroke-linejoin:round}.w-lab.call line{stroke:var(--nodeEdge);stroke-width:1px}.w-lab.call circle{fill:var(--nodeEdge)}.w-lab.hot.call line{stroke:var(--danger)}.w-lab.hot.call circle{fill:var(--danger)}.w-lab.hot rect{stroke:var(--danger)}.w-lab.hot text{fill:var(--danger)}.dim{opacity:.4}.badge text{font:700 9.5px var(--f-mono);fill:var(--onColor);letter-spacing:.06em}.b-danger rect{fill:var(--danger)}.b-warn rect{fill:var(--warn)}.blink{animation:1s steps(2,start) infinite blink}@keyframes blink{to{visibility:hidden}}.short{cursor:pointer}.short .s-hit{fill:none;stroke:#0000;stroke-width:18px}.short .s-halo{fill:none;stroke:var(--accent);stroke-opacity:.3;stroke-width:14px;stroke-linejoin:round}.short .s-line{fill:none;stroke:var(--zap);stroke-width:3px;stroke-linejoin:round}.short .s-dot{fill:var(--zap);stroke:var(--zapInk);stroke-width:1.2px}.short .s-tag rect{fill:var(--zap);stroke:var(--zapInk);stroke-width:1px}.short .s-tag text{font:700 9.5px var(--f-mono);fill:var(--zapInk)}.zap{fill:var(--zap);stroke:var(--zapInk);stroke-width:1px}.pulse{transform-box:fill-box;transform-origin:50%;animation:.9s ease-in-out infinite alternate pulse}@keyframes pulse{0%{transform:scale(1)}to{transform:scale(1.25)}}.tempshort{fill:none;stroke:var(--zap);stroke-width:3px;stroke-dasharray:6 5}.pickdot{fill:var(--zap);stroke:var(--zapInk);stroke-width:1.5px}.blown-x{stroke:var(--danger);stroke-width:2.6px;stroke-linecap:round}.strip-base{fill:var(--grid);stroke:var(--nodeEdge);stroke-width:.8px}.led-off{fill:var(--line)}.vent{stroke:var(--line);stroke-width:2px;stroke-linecap:round}.bus{stroke:var(--neg);stroke-width:2px;opacity:.5}.marquee{fill:var(--accent);fill-opacity:.08;stroke:var(--accent);stroke-width:1.2px;stroke-dasharray:5 4}.junc-ring{fill:var(--node);stroke:var(--nodeEdge);stroke-width:1.2px}.node.sel .junc-ring{stroke:var(--accent);stroke-width:2.4px}.tempwire{fill:none;stroke:var(--ink);stroke-width:2.2px;stroke-dasharray:6 5;opacity:.7}@media (prefers-reduced-motion:reduce){.wire.heat3 .w-line,.blink,.pulse,.chev{transition:none;animation:none}}.cores{font:500 11.5px var(--f-mono);color:var(--muted);margin:0 0 10px;padding:0;list-style:none}.cores li{align-items:center;gap:8px;padding:2px 0;display:flex}.cores i{border-radius:2px;flex:none;width:14px;height:4px}.ps.dirty{color:var(--warn)}.ask{border:1px solid var(--line);background:var(--paper);color:var(--ink);box-shadow:var(--shadow);border-radius:12px;width:min(420px,100% - 32px);padding:18px 20px 16px}.ask::backdrop{background:#0a0f1459}.ask h2{font-family:var(--f-display);margin:0 0 6px;font-size:18px;font-weight:700}.ask p{color:var(--muted);margin:0 0 16px;font-size:13.5px}.ask .acts{align-items:center;gap:8px;display:flex}.ask .sfill{flex:1}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--onColor);font-weight:600}.menu kbd{float:right;font:500 11.5px var(--f-body);color:var(--muted);margin-left:16px}#recent{display:contents}.menu .rf{flex-direction:column;gap:0;line-height:1.3;display:flex}.menu .rf span,.menu .rf small{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.menu .rf small{color:var(--muted);font-size:11px}
