:root{--void: #05070b;--deep: #090d14;--panel: #0e131c;--panel-2: #121926;--line: #1c2533;--line-strong: #2a3647;--text: #e6edf6;--muted: #8a97aa;--faint: #5b6778;--signal: #3ee6ff;--signal-dim: rgba(62, 230, 255, .14);--blue: #4c8dff;--orange: #ff8a3d;--ok: #35d49a;--warn: #f5b544;--bad: #ff5d6c;--maint: #a78bfa;--radius: 10px;--mono: ui-monospace, "Cascadia Mono", "SF Mono", Menlo, Consolas, monospace;--sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--void);color:var(--text);font:14px/1.5 var(--sans);-webkit-font-smoothing:antialiased}a{color:var(--signal);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}code,.mono{font-family:var(--mono);font-size:.92em}.num{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.faint{color:var(--faint)}.small{font-size:12px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.spread{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:14px}.grow{flex:1}.hidden{display:none}.pill{display:inline-flex;align-items:center;gap:7px;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border:1px solid currentColor;white-space:nowrap}.pill:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.pill.online,.pill.ok,.pill.active,.pill.ready{color:var(--ok)}.pill.degraded,.pill.warning,.pill.stale,.pill.draining,.pill.starting{color:var(--warn)}.pill.offline,.pill.critical,.pill.failed,.pill.denied,.pill.revoked,.pill.banned,.pill.stopping{color:var(--bad)}.pill.maintenance{color:var(--maint)}.pill.neutral,.pill.info,.pill.expired,.pill.internal{color:var(--muted)}.pill.public{color:var(--signal)}.pill.live:before{animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{50%{opacity:.25}}.chip{display:inline-block;padding:1px 7px;border-radius:5px;background:var(--panel-2);border:1px solid var(--line);color:var(--muted);font-size:11px;font-family:var(--mono)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.panel h2,.panel h3{margin:0 0 12px;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700}.panel.tight{padding:0;overflow:hidden}.panel.tight>h2{padding:16px 18px 0}.grid{display:grid;gap:14px}.grid.stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.grid.two{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.grid.three{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px}.stat .label{color:var(--muted);font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:700}.stat .value{font-size:34px;font-weight:700;line-height:1.15;margin-top:6px;font-variant-numeric:tabular-nums}.stat .sub{color:var(--faint);font-size:12px;margin-top:2px}.stat.accent .value{color:var(--signal)}.bar{height:8px;border-radius:99px;background:var(--panel-2);overflow:hidden;border:1px solid var(--line)}.bar>span{display:block;height:100%;background:linear-gradient(90deg,var(--signal),#7df0ff);border-radius:99px;transition:width .6s ease}.bar.orange>span{background:linear-gradient(90deg,var(--orange),#ffb27d)}.bar.hot>span{background:linear-gradient(90deg,var(--warn),var(--bad))}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-weight:700;padding:10px 14px;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--panel)}td{padding:10px 14px;border-bottom:1px solid var(--line);vertical-align:middle}tr:last-child td{border-bottom:none}tbody tr:hover td{background:#ffffff04}td.right,th.right{text-align:right}tr.clickable{cursor:pointer}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 14px;border-radius:8px;border:1px solid var(--line-strong);background:var(--panel-2);color:var(--text);cursor:pointer;font-weight:600;font-size:13px;transition:border-color .15s,background .15s}.btn:hover:not(:disabled){border-color:var(--signal)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--signal);color:#031017;border-color:var(--signal)}.btn.primary:hover:not(:disabled){background:#7af0ff}.btn.danger{color:var(--bad);border-color:#ff5d6c73}.btn.danger:hover:not(:disabled){background:#ff5d6c1a;border-color:var(--bad)}.btn.warn{color:var(--warn);border-color:#f5b54473}.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}.btn.ghost:hover:not(:disabled){color:var(--text);border-color:var(--line)}.btn.sm{padding:4px 10px;font-size:12px}input[type=text],input[type=password],input[type=number],input[type=search],select,textarea{width:100%;padding:8px 11px;border-radius:8px;background:var(--deep);border:1px solid var(--line-strong);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--signal);box-shadow:0 0 0 3px var(--signal-dim)}textarea{min-height:90px;resize:vertical}label.field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted);font-weight:600}label.check{display:inline-flex;gap:8px;align-items:center;cursor:pointer}.form{display:flex;flex-direction:column;gap:14px}.form-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.notice{padding:11px 14px;border-radius:8px;border:1px solid var(--line-strong);background:var(--panel-2)}.notice.error{border-color:#ff5d6c80;background:#ff5d6c14;color:#ffc2c8}.notice.warning{border-color:#f5b54480;background:#f5b54414;color:#ffe1a6}.notice.ok{border-color:#35d49a80;background:#35d49a14;color:#b5f3da}.notice.info{border-color:#3ee6ff59;background:var(--signal-dim);color:#c9f7ff}.notice.maintenance{border-color:#a78bfa8c;background:#a78bfa1a;color:#ddd2ff}.empty{padding:26px;text-align:center;color:var(--faint)}.secret{font-family:var(--mono);padding:12px;border-radius:8px;word-break:break-all;background:#02060a;border:1px dashed var(--signal);color:var(--signal)}.modal-backdrop{position:fixed;inset:0;background:#020408b8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}.modal{width:min(520px,100%);background:var(--panel);border:1px solid var(--line-strong);border-radius:14px;padding:22px;box-shadow:0 24px 60px #0009}.modal h3{margin:0 0 8px;font-size:17px}.modal .actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.toast-stack{position:fixed;right:18px;bottom:18px;display:flex;flex-direction:column;gap:8px;z-index:60;max-width:420px}.toast{padding:11px 14px;border-radius:9px;background:var(--panel-2);border:1px solid var(--line-strong);box-shadow:0 10px 30px #00000080;animation:rise .2s ease}.toast.error{border-color:var(--bad)}.toast.ok{border-color:var(--ok)}@keyframes rise{0%{transform:translateY(8px);opacity:0}}.public{min-height:100%;background:radial-gradient(1200px 600px at 85% -10%,rgba(62,230,255,.1),transparent 60%),radial-gradient(900px 500px at -10% 10%,rgba(76,141,255,.08),transparent 60%),var(--void)}.public-wrap{max-width:1180px;margin:0 auto;padding:0 22px 60px}.public-nav{display:flex;justify-content:space-between;align-items:center;padding:22px 0}.brand{display:flex;align-items:center;gap:12px;font-weight:800;letter-spacing:.22em;font-size:13px}.brand-mark{width:30px;height:30px;border-radius:50%;border:3px solid var(--signal);position:relative;box-shadow:0 0 22px #3ee6ff59}.brand-mark:after{content:"";position:absolute;inset:7px;border-radius:50%;background:var(--orange)}.brand small{color:var(--muted);letter-spacing:.12em;font-weight:600;margin-left:4px}.hero{padding:38px 0 30px;display:grid;gap:18px}.hero h1{margin:0;font-size:clamp(38px,7vw,76px);line-height:.95;letter-spacing:.04em;font-weight:900}.hero h1 span{color:var(--signal);text-shadow:0 0 40px rgba(62,230,255,.35)}.hero .lead{color:var(--muted);font-size:16px;max-width:640px;margin:0}.status-line{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.status-big{font-size:22px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.status-big.online{color:var(--ok)}.status-big.degraded{color:var(--warn)}.status-big.offline{color:var(--bad)}.status-big.maintenance{color:var(--maint)}.station-board{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.station-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 16px;display:grid;gap:10px}.station-card .name{font-weight:700}.station-card.arena{border-left:3px solid var(--orange)}.station-card.lounge{border-left:3px solid var(--signal)}.announcement{border-left:3px solid var(--signal);padding:4px 0 4px 14px}.announcement.warning{border-color:var(--warn)}.announcement.critical{border-color:var(--bad)}.announcement h4{margin:0 0 4px;font-size:15px}.announcement p{margin:0;color:var(--muted);white-space:pre-wrap}.public-footer{margin-top:50px;padding-top:22px;border-top:1px solid var(--line);color:var(--faint);font-size:12px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}.login-shell{min-height:100%;display:grid;place-items:center;padding:24px;background:radial-gradient(700px 400px at 50% 0%,rgba(62,230,255,.12),transparent 70%),var(--void)}.login-card{width:min(420px,100%);background:var(--panel);border:1px solid var(--line-strong);border-radius:16px;padding:28px;box-shadow:0 30px 80px #0000008c}.login-card h1{margin:16px 0 4px;font-size:20px}.admin{display:grid;grid-template-columns:236px 1fr;min-height:100%}.sidebar{background:var(--deep);border-right:1px solid var(--line);padding:18px 12px;display:flex;flex-direction:column;gap:18px;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar .brand{padding:0 8px 6px}.nav-group{display:flex;flex-direction:column;gap:2px}.nav-group .title{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);padding:0 10px 6px;font-weight:700}.nav-link{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:7px;color:var(--muted);font-weight:600;font-size:13px}.nav-link:hover{background:var(--panel);color:var(--text);text-decoration:none}.nav-link.active{background:var(--signal-dim);color:var(--signal)}.nav-link .glyph{width:16px;text-align:center;opacity:.8;font-size:12px}.main{min-width:0;display:flex;flex-direction:column}.topbar{display:flex;justify-content:space-between;align-items:center;padding:12px 26px;border-bottom:1px solid var(--line);background:#090d14d9;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);position:sticky;top:0;z-index:10;gap:12px;flex-wrap:wrap}.content{padding:24px 26px 60px;display:flex;flex-direction:column;gap:18px;max-width:1500px;width:100%}.page-title{margin:0;font-size:22px;font-weight:800;letter-spacing:.01em}.page-sub{margin:4px 0 0;color:var(--muted)}.kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 18px}.kv dt{color:var(--muted);font-size:12px}.kv dd{margin:0}.log-view{font-family:var(--mono);font-size:12px;line-height:1.55;background:#03060a;border:1px solid var(--line);border-radius:8px;padding:10px 12px;max-height:620px;overflow:auto;white-space:pre-wrap;word-break:break-word}.log-line.error{color:#ff9aa4}.log-line.warning{color:#ffd98a}.log-line.critical{color:#fff;background:#ff5d6c40}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line)}.tab{padding:8px 14px;border:none;background:none;color:var(--muted);cursor:pointer;font-weight:600;border-bottom:2px solid transparent;margin-bottom:-1px}.tab.active{color:var(--signal);border-color:var(--signal)}.score{display:flex;align-items:center;gap:14px;font-size:26px;font-weight:800;font-variant-numeric:tabular-nums}.score .b{color:var(--blue)}.score .o{color:var(--orange)}.chart{width:100%;height:200px;display:block}.chart .grid-line{stroke:var(--line);stroke-width:1}.chart .series{fill:none;stroke:var(--signal);stroke-width:2}.chart .area{fill:url(#fillSignal)}.chart text{fill:var(--faint);font-size:10px;font-family:var(--mono)}@media(max-width:900px){.admin{grid-template-columns:1fr}.sidebar{position:static;height:auto;flex-direction:row;overflow-x:auto}.nav-group .title{display:none}.nav-group{flex-direction:row}.content,.topbar{padding-left:16px;padding-right:16px}}
