: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: rgba(63, 231, 210, .16);--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{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-ui);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--cyan);text-decoration:none}a:hover{text-decoration:underline}::selection{background:var(--cyan);color:#04201c}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--line-strong);border:3px solid var(--bg);border-radius:0}.app{height:100%;display:grid;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"}.topbar{grid-area:topbar;display:flex;align-items:stretch;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#0f1518,#0b0f12)}.brand{display:flex;align-items:center;gap:12px;padding:0 20px 0 22px;border-right:1px solid var(--line);width:var(--rail);flex:0 0 var(--rail)}.brand .mark{width:22px;height:22px;flex:0 0 22px;position:relative}.brand .mark:before,.brand .mark:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:1.5px solid var(--cyan)}.brand .mark:after{transform:rotate(45deg) scale(.66);border-color:var(--ink-dim)}.brand .wordmark{font-family:var(--font-display);font-weight:700;font-size:19px;letter-spacing:.06em;text-transform:uppercase;line-height:1}.brand .wordmark small{display:block;font-family:var(--font-mono);font-weight:400;font-size:9.5px;letter-spacing:.34em;color:var(--cyan-dim);margin-top:2px}.topbar .tabs{display:flex;align-items:stretch}.topbar .tab{display:inline-flex;align-items:center;gap:9px;padding:0 22px;height:100%;font-family:var(--font-mono);font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-dim);background:transparent;border:0;border-right:1px solid var(--line);cursor:pointer;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:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--cyan)}.topbar .tab .glyph{width:7px;height:7px;border:1px solid currentColor}.topbar .tab.active .glyph{background:var(--cyan)}.topbar .spacer{flex:1}.session{display:flex;align-items:center;gap:16px;padding:0 18px 0 22px;border-left:1px solid var(--line);font-family:var(--font-mono);font-size:11px}.session .who{text-align:right;line-height:1.35}.session .who b{color:var(--ink);font-weight:500}.session .who span{display:block;color:var(--ink-faint);letter-spacing:.12em;text-transform:uppercase;font-size:9px}.rail{grid-area:rail;border-right:1px solid var(--line);background:var(--bg-panel);display:flex;flex-direction:column;padding:18px 0;overflow-x:hidden;overflow-y:auto;min-width:0}.rail .rail-label{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-faint);padding:0 22px;margin:6px 0 10px}.rail a.tool{display:flex;flex-direction:column;gap:3px;padding:12px 22px;border-left:2px solid transparent;color:var(--ink-dim)}.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);font-weight:600;font-size:16px;letter-spacing:.04em;text-transform:uppercase}.rail a.tool.active .t{color:var(--cyan)}.rail a.tool .d{font-family:var(--font-mono);font-size:10px;color:var(--ink-faint);letter-spacing:.03em}.rail .rail-foot{margin-top:auto;padding:14px 22px 4px;font-family:var(--font-mono);font-size:9.5px;line-height:1.7;color:var(--ink-faint);letter-spacing:.06em;overflow-wrap:anywhere}.canvas{grid-area:canvas;position:relative;overflow:auto;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(rgba(35,48,55,.4) 1px,transparent 1px),linear-gradient(90deg,rgba(35,48,55,.4) 1px,transparent 1px);background-size:140px 140px,140px 140px,28px 28px,28px 28px;background-position:-1px -1px}.canvas:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(120% 100% at 50% 0%,transparent 40%,rgba(0,0,0,.55) 100%)}.canvas-inner{position:relative;min-height:100%;padding:40px 48px 56px;max-width:1080px}.regmark{position:fixed;width:14px;height:14px;pointer-events:none;z-index:2;opacity:.5}.regmark:before,.regmark:after{content:"";position:absolute;background:var(--cyan)}.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{right:0}.regmark.tr:before{right:0}.regmark.bl{bottom:calc(var(--statusbar-h) + 12px);left:calc(var(--rail) + 12px)}.regmark.bl:after{bottom:0}.regmark.br{bottom:calc(var(--statusbar-h) + 12px);right:12px}.regmark.br:before{right:0}.regmark.br:after{right:0;bottom:0}.statusbar{grid-area:status;display:flex;align-items:stretch;border-top:1px solid var(--line);background:linear-gradient(180deg,#0d1316,#090c0e);font-family:var(--font-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint)}.statusbar .cell{display:flex;align-items:center;gap:8px;padding:0 16px;border-right:1px solid var(--line);white-space:nowrap}.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{width:6px;height:6px;border-radius:50%;background:var(--cyan);box-shadow:0 0 6px var(--cyan)}.statusbar .spacer{flex:1;border-right:none}.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);font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--cyan-dim);margin-bottom:8px}.page-head h1{font-family:var(--font-display);font-weight:800;font-size:clamp(34px,5vw,52px);line-height:.96;letter-spacing:.01em;text-transform:uppercase;margin:0 0 10px}.page-head p{max-width:64ch;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{display:flex;align-items:center;gap:12px;padding:11px 18px;border-bottom:1px solid var(--line);font-family:var(--font-mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-dim);background:var(--bg-panel-2)}.panel>header .idx{color:var(--cyan)}.panel>header .hint{margin-left:auto;letter-spacing:.08em;text-transform:none;color:var(--ink-faint);font-size:10.5px}.panel .body{padding:20px 18px}.panel .body.tight{padding:0}.field{display:block;margin-bottom:18px}.field:last-child{margin-bottom:0}.field>label{display:flex;align-items:baseline;gap:8px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:7px}.field>label .req{color:var(--amber)}.field>label .opt{color:var(--ink-faint);letter-spacing:.08em}.field .hint{font-family:var(--font-mono);font-size:10.5px;color:var(--ink-faint);margin-top:6px;letter-spacing:.02em}.field .err{color:var(--red)}input[type=text],input[type=email],select,textarea{width:100%;background:var(--bg-inset);border:1px solid var(--line-strong);color:var(--ink);font-family:var(--font-mono);font-size:13px;padding:10px 12px;outline:none;border-radius:0;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{-webkit-appearance:none;-moz-appearance:none;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) center,calc(100% - 11px) center;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:32px}.btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--font-mono);font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;padding:11px 20px;border:1px solid var(--line-strong);background:var(--bg-panel-2);color:var(--ink);cursor:pointer;border-radius:0;transition:border-color .12s,background .12s,color .12s,transform .06s;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{width:7px;height:7px;border:1px solid currentColor}.btn-primary{border-color:var(--cyan-dim);background:linear-gradient(180deg,#0f2b29,#0b1f1d);color:var(--cyan)}.btn-primary:hover{border-color:var(--cyan);background:linear-gradient(180deg,#123733,#0d2421);box-shadow:0 0 0 1px var(--cyan-dim),0 6px 24px -10px var(--cyan)}.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{background:transparent;border-color:transparent;color:var(--ink-dim);padding:8px 10px;letter-spacing:.12em}.btn-ghost:hover{color:var(--ink);background:transparent;border-color:var(--line)}.btn-sm{padding:7px 12px;font-size:10.5px;letter-spacing:.14em}.btn.loading{color:transparent!important}.btn.loading:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:12px;height:12px;border:1.5px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite;color:var(--cyan)}.btn-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}@keyframes spin{to{transform:rotate(360deg)}}.inline-form{display:flex;gap:0;align-items:stretch}.inline-form input{flex:1;border-right:none}.inline-form .btn{white-space:nowrap}.spec{display:grid;grid-template-columns:max-content 1fr;border:1px solid var(--line)}.spec>dt,.spec>dd{padding:9px 14px;border-bottom:1px solid var(--line);font-family:var(--font-mono);font-size:12px;margin:0}.spec>dt{background:var(--bg-panel-2);color:var(--ink-faint);font-size:10px;letter-spacing:.18em;text-transform:uppercase;border-right:1px solid var(--line);white-space:nowrap}.spec>dd{color:var(--ink);word-break:break-all}.spec>dt:last-of-type,.spec>dd:last-of-type{border-bottom:none}table.grid{width:100%;border-collapse:collapse;font-size:12.5px}table.grid th{text-align:left;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint);padding:10px 16px;border-bottom:1px solid var(--line);background:var(--bg-panel-2)}table.grid td{padding:11px 16px;border-bottom:1px solid var(--line);color:var(--ink);vertical-align:middle}table.grid tr:last-child td{border-bottom:none}table.grid tr:hover td{background:#3fe7d20a}table.grid td.mono,table.grid td .mono{font-family:var(--font-mono);color:var(--ink-dim)}table.grid td.actions{text-align:right;white-space:nowrap}table.grid .empty{padding:28px 16px;text-align:center;color:var(--ink-faint);font-family:var(--font-mono);letter-spacing:.1em}.tag{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:2px 8px;border:1px solid var(--line-strong);color:var(--ink-dim)}.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);border-left-width:2px;background:var(--bg-panel);padding:13px 16px;font-family:var(--font-mono);font-size:12px;line-height:1.55;color:var(--ink-dim);display:flex;gap:12px}.callout .mk{flex:0 0 auto;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.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{margin:6px 0 0;white-space:pre-wrap;word-break:break-word;color:var(--ink)}.scanline{height:1px;background:var(--line);position:relative;overflow:hidden}.scanline:after{content:"";position:absolute;top:0;left:-40%;width:40%;height:100%;background:linear-gradient(90deg,transparent,var(--cyan),transparent);animation:scan 1.1s ease-in-out infinite}@keyframes scan{to{left:110%}}.reveal{opacity:0;transform:translateY(8px);animation:reveal .5s cubic-bezier(.2,.7,.2,1) forwards}.reveal[data-d="1"]{animation-delay:.04s}.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]{animation:none;opacity:1;transform:none}.scanline:after,.btn.loading:after{animation:none}}.fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:var(--bg);background-image:linear-gradient(rgba(35,48,55,.5) 1px,transparent 1px),linear-gradient(90deg,rgba(35,48,55,.5) 1px,transparent 1px);background-size:28px 28px;padding:24px}.fullscreen:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(100% 80% at 50% 30%,transparent 30%,rgba(0,0,0,.7));pointer-events:none}.boot-card{position:relative;width:min(460px,100%);border:1px solid var(--line-strong);background:var(--bg-panel);padding:0}.boot-card .bar{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--bg-panel-2);font-family:var(--font-mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint)}.boot-card .bar .mark{width:14px;height:14px;position:relative}.boot-card .bar .mark:before,.boot-card .bar .mark:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:1.5px solid var(--cyan)}.boot-card .bar .mark:after{transform:rotate(45deg) scale(.6);border-color:var(--ink-dim)}.boot-card .content{padding:26px 22px 24px}.boot-card h2{font-family:var(--font-display);font-weight:800;font-size:30px;text-transform:uppercase;letter-spacing:.02em;margin:0 0 8px}.boot-card .content>p{color:var(--ink-dim);font-size:13px;margin:0 0 18px}.boot-card .content .mono-block{font-family:var(--font-mono);font-size:11px;color:var(--ink-faint);line-height:1.7;letter-spacing:.05em;border-top:1px solid var(--line);margin-top:18px;padding-top:14px}.boot-card .content .mono-block b{color:var(--ink-dim);font-weight:500}
