:root{--bg: #0a0e1a;--bg-grid: #0e1424;--surface: #121829;--surface-2: #1a2238;--border: #263149;--border-soft: #1c2437;--text: #eaf0ff;--muted: #8895b3;--faint: #5b6786;--signal: #46b1ff;--signal-dim: #1e4a72;--online: #37e0a6;--warn: #ffb44c;--danger: #ff6274;--radius: 12px;--radius-sm: 8px;--shadow: 0 12px 40px rgba(0, 0, 0, .45);--font-display: "Space Grotesk", system-ui, sans-serif;--font-body: "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-body);color:var(--text);background:radial-gradient(1200px 700px at 80% -10%,rgba(70,177,255,.08),transparent 60%),linear-gradient(180deg,var(--bg),#070a12);background-attachment:fixed;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--signal);outline-offset:2px;border-radius:4px}.app{display:grid;grid-template-columns:236px 1fr;min-height:100vh}.rail{border-right:1px solid var(--border-soft);padding:22px 16px;display:flex;flex-direction:column;gap:6px;background:linear-gradient(180deg,rgba(18,24,41,.6),transparent)}.brand{display:flex;align-items:center;gap:10px;margin-bottom:26px;padding:0 6px}.brand-mark{width:30px;height:30px;flex:none}.brand-name{font-family:var(--font-display);font-weight:700;letter-spacing:-.02em;font-size:16px}.brand-sub{font-family:var(--font-mono);font-size:10px;color:var(--faint);letter-spacing:.14em;text-transform:uppercase}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);color:var(--muted);font-size:14px;font-weight:500;border:1px solid transparent}.nav-item:hover{color:var(--text);background:var(--surface)}.nav-item.active{color:var(--text);background:var(--surface-2);border-color:var(--border)}.nav-item .dot{width:6px;height:6px;border-radius:50%;background:var(--signal);margin-left:auto}.rail-foot{margin-top:auto;font-size:12px;color:var(--faint);padding:0 6px}.rail-foot button{color:var(--muted);background:none;border:none;padding:8px 0;font-size:13px}.rail-foot button:hover{color:var(--danger)}.main{padding:0 34px 48px;overflow:auto}.telemetry{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:26px;flex-wrap:wrap;padding:20px 0 18px;margin-bottom:26px;border-bottom:1px solid var(--border-soft);background:linear-gradient(180deg,#070a12 60%,transparent)}.telemetry h1{font-family:var(--font-display);font-size:22px;font-weight:600;letter-spacing:-.02em;margin:0}.tele-block{display:flex;flex-direction:column;gap:3px}.tele-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}.tele-value{font-family:var(--font-mono);font-size:15px;font-weight:500}.beacon{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:13px}.beacon .led{width:9px;height:9px;border-radius:50%;position:relative}.beacon.up .led{background:var(--online);box-shadow:0 0 #37e0a699;animation:pulse 2s infinite}.beacon.up{color:var(--online)}.beacon.down .led{background:var(--danger)}.beacon.down{color:var(--danger)}@keyframes pulse{70%{box-shadow:0 0 0 8px #37e0a600}to{box-shadow:0 0 #37e0a600}}@media (prefers-reduced-motion: reduce){.beacon.up .led{animation:none}}.grid{display:grid;gap:18px}.grid.stats{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));margin-bottom:26px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.card.stat .k{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}.card.stat .v{font-family:var(--font-display);font-size:30px;font-weight:600;margin-top:10px;letter-spacing:-.02em}.card.stat .v .unit{font-size:14px;color:var(--muted);font-family:var(--font-mono);margin-left:5px}.card.stat .bar{height:5px;border-radius:3px;background:var(--surface-2);margin-top:14px;overflow:hidden}.card.stat .bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--signal),var(--online))}.section-head{display:flex;align-items:baseline;justify-content:space-between;margin:8px 0 14px}.section-head h2{font-family:var(--font-display);font-size:17px;font-weight:600;margin:0}.section-head .hint{font-size:12px;color:var(--faint);font-family:var(--font-mono)}.cred{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}.cred+.cred{margin-top:12px}.cred .who{display:flex;flex-direction:column;gap:3px;min-width:150px}.cred .who .u{font-family:var(--font-mono);font-weight:500}.cred .who .o{font-size:12px;color:var(--faint)}.conn{flex:1 1 320px;min-width:0}.conn .row{display:flex;align-items:center;gap:8px;background:var(--bg-grid);border:1px solid var(--border-soft);border-radius:var(--radius-sm);padding:8px 10px}.conn .row+.row{margin-top:8px}.conn code{font-family:var(--font-mono);font-size:12.5px;color:var(--signal);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.btn{border:1px solid var(--border);background:var(--surface-2);color:var(--text);padding:9px 14px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;display:inline-flex;align-items:center;gap:7px}.btn:hover{border-color:var(--signal-dim);background:#202b45}.btn.primary{background:var(--signal);color:#04121f;border-color:transparent;font-weight:600}.btn.primary:hover{background:#62bcff}.btn.ghost{background:transparent}.btn.tiny{padding:6px 10px;font-size:12px}.btn.danger:hover{border-color:var(--danger);color:var(--danger)}.badge{font-family:var(--font-mono);font-size:11px;padding:3px 8px;border-radius:20px;border:1px solid var(--border);color:var(--muted)}.badge.on{color:var(--online);border-color:#37e0a64d;background:#37e0a614}.badge.admin{color:var(--signal);border-color:#46b1ff4d;background:#46b1ff14}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);padding:0 14px 12px;font-weight:500}.table td{padding:13px 14px;border-top:1px solid var(--border-soft);font-size:14px}.table tr:hover td{background:#1a223866}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:15px}.field label{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.field input,.field select{background:var(--bg-grid);border:1px solid var(--border);color:var(--text);padding:11px 13px;border-radius:var(--radius-sm);font-size:14px;font-family:var(--font-body)}.field input:focus{border-color:var(--signal);outline:none}.login{display:grid;place-items:center;min-height:100vh;padding:24px}.login-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:34px;box-shadow:var(--shadow);position:relative;overflow:hidden}.login-card:before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,transparent,var(--signal),transparent)}.login h1{font-family:var(--font-display);font-size:24px;font-weight:700;letter-spacing:-.02em;margin:16px 0 4px}.login .tag{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:26px}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%);background:var(--surface-2);border:1px solid var(--border);color:var(--text);padding:11px 18px;border-radius:10px;font-size:13.5px;box-shadow:var(--shadow);z-index:50}.toast.err{border-color:var(--danger)}.empty{text-align:center;color:var(--faint);padding:48px;font-size:14px;border:1px dashed var(--border);border-radius:var(--radius)}.reveal{font-family:var(--font-mono);font-size:13px;background:#ffb44c14;border:1px solid rgba(255,180,76,.3);color:var(--warn);padding:10px 12px;border-radius:var(--radius-sm);margin-top:10px;word-break:break-all}@media (max-width: 820px){.app{grid-template-columns:1fr}.rail{flex-direction:row;align-items:center;overflow-x:auto;border-right:none;border-bottom:1px solid var(--border-soft)}.rail-foot{margin:0 0 0 auto}.main{padding:0 18px 40px}}
