:root{--void: #08090a;--panel: #0f1113;--rail: #23272b;--ink: #e8e8e8;--ink-dim: #7a8085;--ink-faint: #4a4f54;--mono: "JetBrains Mono", "Fira Code", ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace;--sans: Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--bg: var(--void);--surface: var(--panel);--border: var(--rail);--text: var(--ink);--text-dim: var(--ink-dim)}*{box-sizing:border-box}html,body{margin:0}body{background:var(--void);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;line-height:1.5;min-height:100dvh}.lockup{font-family:var(--mono);font-weight:700;letter-spacing:.01em;white-space:nowrap}.centered{min-height:100dvh;display:grid;place-items:center;padding:24px}.auth-card{width:100%;max-width:380px;background:var(--panel);border:1px solid var(--rail);border-radius:12px;padding:32px 28px}.auth-card .lockup{display:block;margin-bottom:4px}.auth-tag{color:var(--ink-dim);font-size:13px;margin:0 0 26px}.auth-card label{display:block;font-size:12px;color:var(--ink-dim);margin:0 0 6px;font-family:var(--mono);letter-spacing:.03em;text-transform:uppercase}.auth-card input{width:100%;background:var(--void);border:1px solid var(--rail);border-radius:8px;color:var(--ink);font-family:var(--sans);font-size:15px;padding:11px 13px;outline:none}.auth-card input:focus{border-color:#454b50}.auth-card input[inputmode=numeric]{font-family:var(--mono);letter-spacing:.35em;text-align:center;font-size:20px}.auth-card button{width:100%;cursor:pointer;border:1px solid transparent;border-radius:8px;font-family:var(--sans);font-size:15px;font-weight:600;padding:11px 14px}.auth-card button.primary{background:#e8e8e8;color:#0a0a0a;margin-top:16px}.auth-card button.primary:hover{opacity:.88}.auth-card button.ghost{background:transparent;border-color:var(--rail);color:var(--ink-dim);margin-top:10px}.auth-card button.ghost:hover{color:var(--ink)}.auth-card button:disabled{opacity:.5;cursor:default}.msg{font-size:13px;margin:16px 0 0;padding:10px 12px;border-radius:8px;border:1px solid var(--rail);font-family:var(--mono);word-break:break-word}.msg.err{color:#e5b567;border-color:#4a3a1a}.msg.ok{color:#7fb069;border-color:#2a3a1a}.dash-stage{min-height:100dvh;display:grid;place-items:start center;padding:clamp(24px,6vh,60px) 16px 48px;background:radial-gradient(130% 90% at 50% -15%,#16181d,#0a0b0d 58%,#06070900),var(--void)}.dash-wrap{width:100%;max-width:720px}.eng{color:#c3c8ce;text-shadow:0 1px 0 rgba(0,0,0,.7),0 -1px 0 rgba(255,255,255,.04);font-family:var(--mono)}.face-top{display:flex;align-items:center;gap:12px 18px;flex-wrap:wrap;padding:15px 20px;margin-bottom:14px;background:repeating-linear-gradient(180deg,rgba(255,255,255,.016) 0 1px,transparent 1px 3px),linear-gradient(180deg,#1c2025,#141619);border:1px solid #0a0c0e;border-radius:12px;box-shadow:inset 0 1px #ffffff0f,0 8px 20px -10px #000000b3}.con-brand{font-weight:700;font-size:15px;letter-spacing:.05em}.cb-op{color:#eef1f4}.cb-id{color:#7f858c}.readout{margin-left:auto;display:flex;flex-direction:column;gap:1px;align-items:flex-end;background:#090b0d;border-radius:5px;padding:6px 12px;box-shadow:inset 0 1px 3px #000000d9,inset 0 0 0 1px #ffffff05}.ro-id{font-family:var(--mono);font-size:12px;color:#a7d8c4;letter-spacing:.02em}.ro-tier{font-family:var(--mono);font-size:10px;color:#5f7a6f;letter-spacing:.14em}.con-ctl{display:flex;align-items:center;gap:12px}.con-manage{font-size:11px;letter-spacing:.12em;text-decoration:none;color:#9aa0a7}.con-manage:hover{color:#e8e8e8}.con-pwr{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:12px;color:#b9bec4;background:linear-gradient(180deg,#24282e,#171a1e);border:1px solid #0a0c0e;border-radius:6px;padding:6px 10px;cursor:pointer;box-shadow:inset 0 1px #ffffff14,0 1px 2px #0009}.pwr-led{width:7px;height:7px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#ff8a7a,#e5433a 55%,#7a1f1a);box-shadow:0 0 5px #e5433ab3}.con-pwr:hover{color:#fff}.con-pwr:active{box-shadow:inset 0 2px 3px #000000b3}.dash-label{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;padding:2px 4px 4px}.fl-eng{font-size:11px;letter-spacing:.3em}.fl-count{font-family:var(--mono);font-size:11px;color:#676d73;letter-spacing:.04em}.hub{display:flex;flex-direction:column;gap:10px;margin:8px auto 0;max-width:420px}.hub-lines{display:none}.hub-node{display:flex;align-items:center;gap:9px;padding:11px 13px;background:repeating-linear-gradient(180deg,rgba(255,255,255,.014) 0 1px,transparent 1px 3px),linear-gradient(180deg,#1d2126,#15181c);border:1px solid #0a0c0e;border-radius:10px;box-shadow:inset 0 1px #ffffff0f,0 6px 14px -8px #0009;opacity:0;animation:unit-in .34s ease both;animation-delay:calc(var(--i, 0) * 55ms + .14s)}.hn-led{width:10px;height:10px;border-radius:50%;flex:none;background:#0a0c0e;box-shadow:inset 0 0 2px #000000e6,0 0 0 1px #0009}.hub-node--live .hn-led{background:radial-gradient(circle at 40% 35%,#fff,var(--accent) 50%,color-mix(in srgb,var(--accent) 55%,#000));box-shadow:0 0 6px var(--accent),0 0 2px var(--accent),0 0 0 1px #0009}.hub-node--soon .hn-led{background:radial-gradient(circle at 40% 35%,var(--accent),color-mix(in srgb,var(--accent) 40%,#000));box-shadow:0 0 4px color-mix(in srgb,var(--accent) 60%,transparent),0 0 0 1px #0009;animation:led-pulse 2.2s ease-in-out infinite}.hub-node--infra .hn-led,.hub-center .hn-led{background:radial-gradient(circle at 40% 35%,#fff,var(--accent) 55%,color-mix(in srgb,var(--accent) 45%,#000));box-shadow:0 0 7px var(--accent),0 0 2px var(--accent),0 0 0 1px #0009}.hn-name{flex:1;min-width:0}.hn-name .lockup{font-size:15px}.hn-name .lockup span:first-child{color:#eef1f4!important;text-shadow:0 1px 0 rgba(0,0,0,.6)}.hn-name .lockup span:last-child{text-shadow:0 0 7px color-mix(in srgb,var(--accent) 45%,transparent)}.hn-status{font-size:9px;letter-spacing:.1em;color:#6b7178;flex:none}.hub-node--live .hn-status{color:color-mix(in srgb,var(--accent) 70%,#cfd3d8)}.hub-node--live{cursor:pointer;transition:scale .14s ease,box-shadow .14s ease}.hub-node--live:hover,.hub-node--live:focus-visible{outline:none;box-shadow:inset 0 1px #ffffff12,0 10px 20px -10px #000000b3,0 0 0 1px color-mix(in srgb,var(--accent) 42%,transparent)}.hub-center{flex-direction:column;text-align:center;gap:5px;padding:15px 16px;border-color:color-mix(in srgb,var(--accent) 32%,#0a0c0e);box-shadow:inset 0 1px #ffffff12,0 8px 22px -8px #000000bf,0 0 24px -6px color-mix(in srgb,var(--accent) 32%,transparent)}.hub-center .hn-led{width:12px;height:12px}.hc-name .lockup{font-size:19px}.hc-name .lockup span:first-child{color:#eef1f4!important}.hc-name .lockup span:last-child{text-shadow:0 0 9px color-mix(in srgb,var(--accent) 55%,transparent)}.hc-sub{font-size:9px;letter-spacing:.16em;color:#6b7178;text-transform:uppercase}.hub-line{stroke:#454b52;stroke-width:.5;fill:none;stroke-dasharray:1.6 2.4;animation:hub-flow 1.1s linear infinite}.hub-arrow{fill:#767d84}@media (min-width: 641px){.hub{position:relative;display:block;width:100%;max-width:640px;aspect-ratio:1;margin:14px auto 4px}.hub-lines{display:block;position:absolute;inset:0;width:100%;height:100%;overflow:visible}.hub-node{position:absolute;left:var(--x);top:var(--y);translate:-50% -50%;width:158px}.hub-node--live:hover,.hub-node--live:focus-visible{scale:1.05;z-index:3}.hub-center{left:50%;top:50%;width:176px;z-index:2}}@keyframes unit-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes led-pulse{0%,to{opacity:.4}50%{opacity:1}}@keyframes hub-flow{to{stroke-dashoffset:-4}}.dash-foot{padding:22px 4px 0;font-size:10px;letter-spacing:.18em;color:#565c62;text-align:center}.con-admin{color:#d8b35f}.con-admin:hover{color:#f4d488}.admin-page{max-width:1120px;margin:0 auto;padding:clamp(18px,4vh,40px) 16px 56px}.admin-top{display:flex;align-items:center;gap:12px 18px;flex-wrap:wrap;padding:14px 18px;background:repeating-linear-gradient(180deg,rgba(255,255,255,.016) 0 1px,transparent 1px 3px),linear-gradient(180deg,#1c2025,#141619);border:1px solid #0a0c0e;border-radius:12px;box-shadow:inset 0 1px #ffffff0f,0 8px 20px -10px #000000b3}.admin-brand{display:flex;flex-direction:column;gap:2px}.admin-sub{font-size:9px;letter-spacing:.22em;color:#6b7178}.admin-who{margin-left:auto;display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:12px;min-width:0}.admin-who .am-dim{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-tabs{display:flex;gap:6px;margin:16px 0 14px}.admin-tab{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#868c93;background:linear-gradient(180deg,#1a1e22,#131619);border:1px solid #0a0c0e;border-radius:8px;padding:9px 16px;cursor:pointer}.admin-tab:hover{color:#dfe3e7}.admin-tab.is-on{color:#0c0d0f;background:linear-gradient(180deg,#e8e8e8,#c7ccd1);border-color:#0a0c0e}.admin-form{max-width:34rem;margin:0}.am-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.am-search{flex:1 1 240px;min-width:0;background:var(--void);border:1px solid var(--rail);border-radius:8px;color:var(--ink);font-family:var(--sans);font-size:14px;padding:9px 12px;outline:none}.am-search:focus{border-color:#454b50}.am-toggle{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--ink-dim);cursor:pointer;white-space:nowrap}.am-summary{margin:0 0 8px;font-family:var(--mono);font-size:11px;letter-spacing:.06em}.am-note{margin:0 0 14px;font-size:12px}.am-flash .msg{margin:0 0 12px}.am-btn{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:#cfd4d9;background:linear-gradient(180deg,#24282e,#171a1e);border:1px solid #0a0c0e;border-radius:6px;padding:8px 12px;cursor:pointer;white-space:nowrap;box-shadow:inset 0 1px #ffffff12}.am-btn:hover{color:#fff}.am-btn:disabled{opacity:.45;cursor:default}.am-btn--tiny{padding:6px 9px;font-size:10px}.am-btn--danger{color:#e6a09a;border-color:#2a1512}.am-btn--danger:hover{color:#ffd0ca}.am-rows{display:flex;flex-direction:column;gap:6px}.am-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1.2fr) 96px 116px 104px 218px;align-items:center;gap:10px;padding:10px 14px;background:repeating-linear-gradient(180deg,rgba(255,255,255,.012) 0 1px,transparent 1px 3px),linear-gradient(180deg,#1a1e22,#14171a);border:1px solid #0a0c0e;border-radius:10px}.am-row--banned{opacity:.62}.am-head{background:none;border:none;padding:2px 14px;font-family:var(--mono);font-size:9px;letter-spacing:.18em;color:#5c6268}.am-cell{min-width:0}.am-cell--act{justify-self:end}.am-who{display:flex;flex-direction:column;gap:2px;min-width:0}.am-email{font-family:var(--mono);font-size:13px;color:#a7d8c4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.am-meta{font-family:var(--mono);font-size:10px;color:#6b7178;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.am-dim{font-family:var(--mono);font-size:11px;color:#6b7178}.am-select,.am-input{width:100%;background:var(--void);border:1px solid var(--rail);border-radius:6px;color:var(--ink);font-family:var(--mono);font-size:12px;padding:6px 8px;outline:none}.am-select:focus,.am-input:focus{border-color:#454b50}.am-username{display:flex;align-items:center;gap:6px}.am-badge{display:inline-block;font-family:var(--mono);font-size:9px;letter-spacing:.12em;padding:4px 7px;border-radius:5px;border:1px solid var(--rail);color:#9aa0a7;white-space:nowrap}.am-badge--ok{color:#7fb069;border-color:#2a3a1a}.am-badge--warn{color:#e5b567;border-color:#4a3a1a}.am-badge--bad{color:#e0736a;border-color:#4a1f1a}.am-badge--head{color:#f0c674;border-color:#4a3a1a}.am-badge--admin{color:#8ab4d8;border-color:#1c3242}.am-actions{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.am-search{max-width:420px}.am-cell--confirm{grid-column:1 / -1}.am-cell--confirm:empty{display:none}.am-confirm{padding:10px 12px;border:1px solid #4a1f1a;border-radius:8px;background:#14100f}.am-confirm-note{margin:0 0 8px;font-family:var(--mono);font-size:11px;line-height:1.5;color:#e0a9a2}.am-confirm-ctl{display:flex;gap:6px;flex-wrap:wrap}.am-confirm-ctl .am-input{flex:1 1 220px;width:auto}@media (max-width: 900px){.am-head{display:none}.am-row{grid-template-columns:1fr;gap:8px}.am-cell[data-label]:before{content:attr(data-label);display:block;font-family:var(--mono);font-size:9px;letter-spacing:.16em;color:#5c6268;margin-bottom:4px}.am-cell--act{justify-self:stretch}.am-actions{justify-content:flex-start}}@media (prefers-reduced-motion: reduce){.hub-node{opacity:1;animation:none}.hub-node--soon .hn-led,.hub-line{animation:none}.hub-node--live{transition:none}}
