:root{color-scheme:dark;--ground: #05080f;--panel: #0a101c;--panel-2: #0d1524;--panel-3: #111b2c;--line: #1b2739;--line-2: #243348;--ink: #e6edf7;--ink-2: #8fa1ba;--ink-3: #54657e;--t-client: #c7d3e3;--t-edge: #fbbf24;--t-entry: #38bdf8;--t-compute: #a78bfa;--t-async: #f472b6;--t-data: #34d399;--t-ext: #fb7185;--t-ops: #8ca0bc;--t-group: #3e5170;--ok: #34d399;--warn: #fbbf24;--bad: #fb7185;--mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html,body,#app{height:100%}body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--mono);font-size:12px;overflow:hidden}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}.btn{background:var(--panel-2);border:1px solid var(--line);border-radius:7px;padding:8px 12px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;transition:border-color .15s,background .15s}.btn:hover:not(:disabled){border-color:var(--line-2);background:var(--panel-3)}.btn:disabled{opacity:.35;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--t-entry);outline-offset:1px}.btn.primary{background:#12314a;border-color:#1e4e72;color:#cdebff}.btn.primary:hover:not(:disabled){background:#164163}.btn.danger:hover:not(:disabled){border-color:#7f3547;color:#ffc9d3}.btn.sm{padding:5px 9px;font-size:10.5px}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3)}.field input,.field select,.field textarea{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;padding:7px 9px;width:100%}.field textarea{resize:vertical;min-height:52px;line-height:1.6}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--t-entry)}.row{display:flex;gap:8px}.row .field{flex:1;min-width:0}.err{color:var(--bad);font-size:11px;line-height:1.6}.muted{color:var(--ink-3);line-height:1.9}.muted b{color:var(--ink-2);font-weight:600}.scroll{overflow-y:auto;overflow-x:hidden;min-height:0}.scroll::-webkit-scrollbar{width:9px}.scroll::-webkit-scrollbar-thumb{background:#1d2a3d;border-radius:5px}.toast{position:fixed;left:50%;bottom:92px;transform:translate(-50%,14px);background:var(--panel-3);border:1px solid var(--line-2);border-radius:8px;padding:9px 16px;opacity:0;pointer-events:none;transition:opacity .22s,transform .22s;z-index:90}.toast.on{opacity:1;transform:translate(-50%)}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.canvas-host{position:relative;width:100%;height:100%;overflow:hidden;background:var(--ground);cursor:default;-webkit-user-select:none;user-select:none}.canvas-host.panning{cursor:grabbing}.canvas-host.linking{cursor:crosshair}.canvas-host.picking{cursor:copy}.canvas-host>svg.board{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%}.nd{cursor:move}.nd.static{cursor:default}.nd .body{fill:var(--panel-2);stroke:currentColor;stroke-width:1.1;rx:7}.nd .rail{fill:currentColor;opacity:.9}.nd .lab{fill:var(--ink);font-size:10.5px;font-weight:600;pointer-events:none}.nd .sub{fill:var(--ink-3);font-size:8px;pointer-events:none}.nd .ico{fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;opacity:.95}.nd:hover .body{stroke-width:1.7}.nd.sel .body{stroke-width:2.1;fill:#16223a}.nd.sel .halo{stroke:currentColor;stroke-width:1;fill:none;opacity:.5;stroke-dasharray:3 3}.nd.lit .body{fill:#16223a;stroke-width:2.2;filter:drop-shadow(0 0 10px currentColor)}.nd.lit .lab{fill:#fff}.nd.dim{opacity:.16;transition:opacity .25s}.nd .handle{fill:var(--ground);stroke:currentColor;stroke-width:1.4;opacity:0;cursor:crosshair}.nd .hplus{stroke:currentColor;stroke-width:1.3;opacity:0;pointer-events:none;fill:none}.nd:hover .handle,.nd.sel .handle,.nd:hover .hplus,.nd.sel .hplus{opacity:1}.nd .hgrp:hover .handle{fill:currentColor;stroke-width:2}.nd .hgrp:hover .hplus{stroke:var(--ground)}.grpnode .gbody{fill:#7896c809;stroke:var(--t-group);stroke-width:1;stroke-dasharray:4 4;rx:10}.grpnode .glab{fill:var(--t-group);font-size:9.5px;letter-spacing:.14em}.grpnode .gsub{fill:var(--ink-3);font-size:8px}.grpnode.sel .gbody{stroke-width:1.8;stroke-dasharray:none}.grpnode.dim{opacity:.2}.grpnode .grip{fill:var(--t-group);opacity:0;cursor:nwse-resize}.grpnode:hover .grip,.grpnode.sel .grip{opacity:.8}.lk{fill:none;stroke:#2a3b54;stroke-width:1.3;marker-end:url(#fb-arrow)}.lk.async{stroke-dasharray:5 4;stroke:#4a3355;marker-end:url(#fb-arrow-a)}.lk.sel{stroke:var(--t-entry);stroke-width:2.2;marker-end:url(#fb-arrow-s)}.lk-hit{fill:none;stroke:transparent;stroke-width:14;cursor:pointer}.lklab{fill:var(--ink-3);font-size:8.5px;pointer-events:none}[data-link].dim{opacity:.12;transition:opacity .25s}.ghost{fill:none;stroke:var(--t-entry);stroke-width:1.6;stroke-dasharray:4 4;pointer-events:none}.pkt{pointer-events:none}.pk-halo{fill:currentColor;opacity:.22}.pk-dot{fill:currentColor;stroke:var(--ground);stroke-width:1.5}.pk-num{fill:var(--ground);font-size:9px;font-weight:700;font-family:var(--mono)}.nd .badge{fill:currentColor;font-size:9px;font-weight:600;letter-spacing:.04em;opacity:.85;pointer-events:none}.nd .hits{fill:var(--ink-3);font-size:8.5px;letter-spacing:.06em;pointer-events:none}.nd.lit .hits{fill:var(--ink-2)}.nd.lit .badge{opacity:1}@media(prefers-reduced-motion:reduce){.nd,[data-link]{transition:none!important}}
