:root{--bg:#0a0d0f;--bg-grid:#0d1114;--bg-panel:#10161a;--bg-panel-2:#141b20;--bg-inset:#0c1113;--line:#233037;--line-strong:#38505b;--line-bright:#4f7480;--ink:#d4e1e5;--ink-dim:#8295a0;--ink-faint:#56666e;--cyan:#3fe7d2;--cyan-dim:#1f7d74;--cyan-glow:#3fe7d229;--amber:#ffb45a;--amber-dim:#8a5f23;--red:#ff6f5f;--red-dim:#7e3128;--lime:#b6e84a;--font-display:"Big Shoulders Display", "Arial Narrow", "Helvetica Neue", sans-serif;--font-ui:"Spline Sans", system-ui, -apple-system, sans-serif;--font-mono:"Spline Sans Mono", "SFMono-Regular", ui-monospace, "Cascadia Code", monospace;--rail:232px;--topbar-h:56px;--statusbar-h:30px}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:14px;line-height:1.5}a{color:var(--cyan);text-decoration:none}a:hover{text-decoration:underline}::selection{background:var(--cyan);color:#04201c}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--line-strong);border:3px solid var(--bg);border-radius:0}::-webkit-scrollbar-thumb:hover{background:var(--line-bright)}@supports ((-moz-appearance:none)){*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}}.app{grid-template-rows:var(--topbar-h) 1fr var(--statusbar-h);grid-template-columns:var(--rail) 1fr;grid-template-areas:"topbar topbar""rail canvas""status status";height:100%;display:grid}.topbar{border-bottom:1px solid var(--line);background:linear-gradient(#0f1518,#0b0f12);grid-area:topbar;align-items:stretch;display:flex}.brand{border-right:1px solid var(--line);width:var(--rail);flex:0 0 var(--rail);align-items:center;gap:12px;padding:0 20px 0 22px;display:flex}.brand .mark{flex:0 0 22px;width:22px;height:22px;position:relative}.brand .mark:before,.brand .mark:after{content:"";border:1.5px solid var(--cyan);position:absolute;inset:0}.brand .mark:after{border-color:var(--ink-dim);transform:rotate(45deg)scale(.66)}.brand .wordmark{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;font-size:19px;font-weight:700;line-height:1}.brand .wordmark .accent{color:var(--cyan)}.brand .wordmark small{font-family:var(--font-mono);letter-spacing:.34em;color:var(--cyan-dim);margin-top:2px;font-size:9.5px;font-weight:400;display:block}.topbar .tabs{align-items:stretch;display:flex}.topbar .tab{height:100%;font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-dim);border:0;border-right:1px solid var(--line);cursor:pointer;background:0 0;align-items:center;gap:9px;padding:0 22px;font-size:11.5px;display:inline-flex;position:relative}.topbar .tab:disabled{cursor:default}.topbar .tab:not(:disabled):hover{color:var(--ink);background:var(--bg-panel)}.topbar .tab.active{color:var(--cyan);background:var(--bg-panel)}.topbar .tab.active:after{content:"";background:var(--cyan);height:2px;position:absolute;bottom:-1px;left:0;right:0}.topbar .tab .glyph{border:1px solid;width:7px;height:7px}.topbar .tab.active .glyph{background:var(--cyan)}.topbar .spacer{flex:1}.session{border-left:1px solid var(--line);font-family:var(--font-mono);align-items:center;gap:16px;padding:0 18px 0 22px;font-size:11px;display:flex}.session .who{text-align:right;line-height:1.35}.session .who b{color:var(--ink);font-weight:500}.session .who span{color:var(--ink-faint);letter-spacing:.12em;text-transform:uppercase;font-size:9px;display:block}.rail{border-right:1px solid var(--line);background:var(--bg-panel);flex-direction:column;grid-area:rail;min-width:0;padding:18px 0;display:flex;overflow:hidden auto}.rail .rail-label{font-family:var(--font-mono);letter-spacing:.3em;text-transform:uppercase;color:var(--ink-faint);margin:6px 0 10px;padding:0 22px;font-size:9.5px}.rail>div+div .rail-label{border-top:1px dashed var(--line);margin-top:22px;padding-top:14px}.rail a.tool{color:var(--ink-dim);border-left:2px solid #0000;flex-direction:column;gap:3px;padding:12px 22px;display:flex}.rail a.tool:hover{color:var(--ink);background:var(--bg-panel-2);text-decoration:none}.rail a.tool.active{color:var(--ink);border-left-color:var(--cyan);background:linear-gradient(90deg, var(--cyan-glow), transparent 70%)}.rail a.tool .t{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;font-size:16px;font-weight:600}.rail a.tool.active .t{color:var(--cyan)}.rail a.tool .d{font-family:var(--font-mono);color:var(--ink-faint);letter-spacing:.03em;font-size:10px}.rail .rail-foot{font-family:var(--font-mono);color:var(--ink-faint);letter-spacing:.06em;overflow-wrap:anywhere;margin-top:auto;padding:14px 22px 4px;font-size:9.5px;line-height:1.7}.canvas{cursor:crosshair;background-color:var(--bg-grid);background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px), linear-gradient(#23303766 1px, transparent 1px), linear-gradient(90deg, #23303766 1px, transparent 1px);background-position:-1px -1px;background-size:140px 140px,140px 140px,28px 28px,28px 28px;grid-area:canvas;position:relative;overflow:auto}.canvas:before{content:"";pointer-events:none;background:radial-gradient(120% 100% at 50% 0,#0000 40%,#0000008c 100%);position:absolute;inset:0}.canvas-inner{max-width:1080px;min-height:100%;padding:40px 48px 56px;position:relative}.regmark{pointer-events:none;z-index:2;opacity:.5;width:14px;height:14px;position:fixed}.regmark:before,.regmark:after{content:"";background:var(--cyan);position:absolute}.regmark:before{width:14px;height:1px}.regmark:after{width:1px;height:14px}.regmark.tl{top:calc(var(--topbar-h) + 12px);left:calc(var(--rail) + 12px)}.regmark.tr{top:calc(var(--topbar-h) + 12px);right:12px}.regmark.tr:after,.regmark.tr:before{right:0}.regmark.bl{bottom:calc(var(--statusbar-h) + 12px);left:calc(var(--rail) + 12px)}.regmark.bl:before{bottom:0}.regmark.br{bottom:calc(var(--statusbar-h) + 12px);right:12px}.regmark.br:before,.regmark.br:after{bottom:0;right:0}.statusbar{border-top:1px solid var(--line);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);background:linear-gradient(#0d1316,#090c0e);grid-area:status;align-items:stretch;font-size:10.5px;display:flex}.statusbar .cell{border-right:1px solid var(--line);white-space:nowrap;align-items:center;gap:8px;padding:0 16px;display:flex}.statusbar .cell .k{color:var(--ink-faint)}.statusbar .cell .v{color:var(--ink-dim)}.statusbar .cell .v.ok{color:var(--cyan)}.statusbar .cell .v.warn{color:var(--amber)}.statusbar .led{background:var(--cyan);width:6px;height:6px;box-shadow:0 0 6px var(--cyan);border-radius:50%}.statusbar .spacer{border-right:none;flex:1}.statusbar .cell.right{border-right:none;border-left:1px solid var(--line);color:var(--ink-faint)}.page-head{margin-bottom:28px}.page-head .crumb{font-family:var(--font-mono);letter-spacing:.28em;text-transform:uppercase;color:var(--cyan-dim);margin-bottom:8px;font-size:10px}.page-head h1{font-family:var(--font-display);letter-spacing:.01em;text-transform:uppercase;margin:0 0 10px;font-size:clamp(34px,5vw,52px);font-weight:800;line-height:.96}.page-head p{color:var(--ink-dim);margin:0}.panel{background:var(--bg-panel);border:1px solid var(--line);position:relative}.panel+.panel{margin-top:22px}.panel>header{border-bottom:1px solid var(--line);font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-dim);background:var(--bg-panel-2);align-items:center;gap:12px;padding:11px 18px;font-size:11px;display:flex}.panel>header .idx{color:var(--cyan)}.panel>header .hint{letter-spacing:.08em;text-transform:none;color:var(--ink-faint);margin-left:auto;font-size:10.5px}.panel .body{padding:20px 18px}.panel .body.tight{padding:0}.field{margin-bottom:18px;display:block}.field:last-child{margin-bottom:0}.field>label{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-dim);align-items:baseline;gap:8px;margin-bottom:7px;font-size:10.5px;display:flex}.field>label .req{color:var(--amber)}.field>label .opt{color:var(--ink-faint);letter-spacing:.08em}.field .hint{font-family:var(--font-mono);color:var(--ink-faint);letter-spacing:.02em;margin-top:6px;font-size:10.5px}.field .err{color:var(--red)}input[type=text],input[type=email],input[type=search],input[type=password],select,textarea{background:var(--bg-inset);border:1px solid var(--line-strong);width:100%;color:var(--ink);font-family:var(--font-mono);border-radius:0;outline:none;padding:10px 12px;font-size:13px;transition:border-color .12s,box-shadow .12s,background .12s}input::placeholder{color:var(--ink-faint)}input:focus,select:focus,textarea:focus{border-color:var(--cyan);box-shadow:inset 0 0 0 1px var(--cyan-dim), 0 0 0 1px var(--cyan-dim);background:#0a1214}input:disabled,select:disabled{opacity:.5;cursor:not-allowed}input.invalid{border-color:var(--red)}select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--ink-dim) 50%), linear-gradient(135deg, var(--ink-dim) 50%, transparent 50%);background-position:calc(100% - 16px),calc(100% - 11px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:32px}.btn{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;border:1px solid var(--line-strong);background:var(--bg-panel-2);color:var(--ink);cursor:pointer;border-radius:0;align-items:center;gap:9px;padding:11px 20px;font-size:11.5px;transition:border-color .12s,background .12s,color .12s,transform 60ms;display:inline-flex;position:relative}.btn:hover{border-color:var(--line-bright);background:#1a2329}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.42;cursor:not-allowed}.btn:disabled:hover{border-color:var(--line-strong);background:var(--bg-panel-2)}.btn .glyph{border:1px solid;width:7px;height:7px}.btn-primary{border-color:var(--cyan-dim);color:var(--cyan);background:linear-gradient(#0f2b29,#0b1f1d)}.btn-primary:hover{border-color:var(--cyan);box-shadow:0 0 0 1px var(--cyan-dim), 0 6px 24px -10px var(--cyan);background:linear-gradient(#123733,#0d2421)}.btn-primary .glyph{background:var(--cyan)}.btn-danger{border-color:var(--red-dim);color:var(--red)}.btn-danger:hover{border-color:var(--red);background:#2a1310}.btn-ghost{color:var(--ink-dim);letter-spacing:.12em;background:0 0;border-color:#0000;padding:8px 10px}.btn-ghost:hover{color:var(--ink);border-color:var(--line);background:0 0}.btn-sm{letter-spacing:.14em;padding:7px 12px;font-size:10.5px}.btn.loading{color:#0000!important}.btn.loading:after{content:"";width:12px;height:12px;color:var(--cyan);border:1.5px solid;border-top-color:#0000;border-radius:50%;margin:auto;animation:.7s linear infinite spin;position:absolute;inset:0}.btn-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}@keyframes spin{to{transform:rotate(360deg)}}.inline-form{align-items:stretch;gap:0;display:flex}.inline-form input{border-right:none;flex:1}.inline-form .btn{white-space:nowrap}.spec{border:1px solid var(--line);grid-template-columns:max-content 1fr;display:grid}.spec>dt,.spec>dd{border-bottom:1px solid var(--line);font-family:var(--font-mono);margin:0;padding:9px 14px;font-size:12px}.spec>dt{background:var(--bg-panel-2);color:var(--ink-faint);letter-spacing:.18em;text-transform:uppercase;border-right:1px solid var(--line);white-space:nowrap;font-size:10px}.spec>dd{color:var(--ink);word-break:break-all}.spec>dt:last-of-type,.spec>dd:last-of-type{border-bottom:none}.spec.spec-kv{grid-template-columns:minmax(0,1fr) max-content}.spec.spec-kv>dt{white-space:normal;overflow-wrap:break-word}.spec.spec-kv>dd{word-break:normal;white-space:nowrap;text-align:right}table.grid{border-collapse:collapse;width:100%;font-size:12.5px}table.grid th{text-align:left;font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint);border-bottom:1px solid var(--line);background:var(--bg-panel-2);padding:10px 16px;font-size:9.5px}table.grid td{border-bottom:1px solid var(--line);color:var(--ink);vertical-align:middle;padding:11px 16px}table.grid tr:last-child td{border-bottom:none}table.grid tr:hover td{background:#3fe7d20a}table.grid tr.row-selected td{box-shadow:inset 2px 0 0 var(--cyan);background:#3fe7d214}table.grid td.mono,table.grid td .mono{font-family:var(--font-mono);color:var(--ink-dim)}.id-cell{align-items:center;gap:8px;max-width:100%;display:inline-flex}.id-cell .id-text{text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;max-width:38ch;display:inline-block;overflow:hidden}.id-copy{width:22px;height:22px;color:var(--ink-faint);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:0;flex:none;justify-content:center;align-items:center;padding:0;transition:color .12s,border-color .12s,background .12s;display:inline-flex}.id-copy:hover{color:var(--ink);border-color:var(--line);background:var(--bg-panel-2)}.id-copy.copied{color:var(--cyan);border-color:var(--cyan-dim)}table.grid th.actions,table.grid td.actions{text-align:right;white-space:nowrap}table.grid .empty{text-align:center;color:var(--ink-faint);font-family:var(--font-mono);letter-spacing:.1em;padding:28px 16px}dialog.modal{background:var(--bg-panel);color:var(--ink);border:1px solid var(--line-strong);width:min(960px,92vw);max-height:86vh;padding:0;overflow:hidden}dialog.modal::backdrop{background:#000000b8}dialog.modal .modal-head{border-bottom:1px solid var(--line);background:var(--bg-panel-2);font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-dim);align-items:center;gap:10px;padding:12px 16px;font-size:11px;display:flex}dialog.modal .modal-head .title{color:var(--ink);flex:1}dialog.modal .modal-body{max-height:calc(86vh - 52px);padding:16px;overflow:auto}.tag{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--line-strong);color:var(--ink-dim);align-items:center;gap:5px;padding:2px 8px;font-size:10px;display:inline-flex}.tag.cyan{border-color:var(--cyan-dim);color:var(--cyan)}.tag.amber{border-color:var(--amber-dim);color:var(--amber)}.tag.you{border-color:var(--lime);color:var(--lime)}.mono{font-family:var(--font-mono)}.dim{color:var(--ink-dim)}.faint{color:var(--ink-faint)}.callout{border:1px solid var(--line-strong);background:var(--bg-panel);font-family:var(--font-mono);color:var(--ink-dim);border-left-width:2px;gap:12px;padding:13px 16px;font-size:12px;line-height:1.55;display:flex}.callout .mk{letter-spacing:.1em;text-transform:uppercase;flex:none;font-weight:600}.callout.info{border-left-color:var(--cyan)}.callout.info .mk{color:var(--cyan)}.callout.warn{border-left-color:var(--amber)}.callout.warn .mk{color:var(--amber)}.callout.error{border-left-color:var(--red);color:var(--ink)}.callout.error .mk{color:var(--red)}.callout.ok{border-left-color:var(--lime)}.callout.ok .mk{color:var(--lime)}.callout pre{white-space:pre-wrap;word-break:break-word;color:var(--ink);margin:6px 0 0}.banner-broken{border:2px solid var(--red);background:var(--bg-panel-2);background:color-mix(in srgb, var(--red) 12%, var(--bg-panel));margin-bottom:18px;padding:16px 20px}.banner-broken-title{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--red);align-items:center;gap:10px;font-size:18px;font-weight:700;display:flex}.banner-broken-title:before{content:"⚠";font-size:22px}.banner-broken-body{font-family:var(--font-mono);color:var(--ink);margin-top:8px;font-size:12px;line-height:1.55}.scanline{background:var(--line);height:1px;position:relative;overflow:hidden}.scanline:after{content:"";background:linear-gradient(90deg, transparent, var(--cyan), transparent);width:40%;height:100%;animation:1.1s ease-in-out infinite scan;position:absolute;top:0;left:-40%}@keyframes scan{to{left:110%}}.reveal{opacity:0;animation:.5s cubic-bezier(.2,.7,.2,1) forwards reveal;transform:translateY(8px)}.reveal[data-d="1"]{animation-delay:40ms}.reveal[data-d="2"]{animation-delay:.1s}.reveal[data-d="3"]{animation-delay:.17s}.reveal[data-d="4"]{animation-delay:.25s}@keyframes reveal{to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.reveal,.reveal[data-d]{opacity:1;animation:none;transform:none}.scanline:after,.btn.loading:after{animation:none}}.fullscreen{background:var(--bg);background-image:linear-gradient(#23303780 1px,#0000 1px),linear-gradient(90deg,#23303780 1px,#0000 1px);background-size:28px 28px;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.fullscreen:before{content:"";pointer-events:none;background:radial-gradient(100% 80% at 50% 30%,#0000 30%,#000000b3);position:fixed;inset:0}.boot-card{border:1px solid var(--line-strong);background:var(--bg-panel);width:min(460px,100%);padding:0;position:relative}.boot-card .bar{border-bottom:1px solid var(--line);background:var(--bg-panel-2);font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint);align-items:center;gap:10px;padding:10px 16px;font-size:10.5px;display:flex}.boot-card .bar .mark{width:14px;height:14px;position:relative}.boot-card .bar .mark:before,.boot-card .bar .mark:after{content:"";border:1.5px solid var(--cyan);position:absolute;inset:0}.boot-card .bar .mark:after{border-color:var(--ink-dim);transform:rotate(45deg)scale(.6)}.boot-card .content{padding:26px 22px 24px}.boot-card h2{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.02em;margin:0 0 8px;font-size:30px;font-weight:800}.boot-card .content>p{color:var(--ink-dim);margin:0 0 18px;font-size:13px}.boot-card .content .mono-block{font-family:var(--font-mono);color:var(--ink-faint);letter-spacing:.05em;border-top:1px solid var(--line);margin-top:18px;padding-top:14px;font-size:11px;line-height:1.7}.boot-card .content .mono-block b{color:var(--ink-dim);font-weight:500}
