:root{color-scheme:dark;--bg:#07090d;--panel:#0e1219;--line:#202735;--text:#e7ebf2;--muted:#7d8798;--green:#4ade80;--red:#fb7185;--amber:#fbbf24;--cyan:#22d3ee;--violet:#a78bfa}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 80% -20%,#192338 0,transparent 38%),var(--bg);color:var(--text);font:14px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;min-height:100vh}.noise{position:fixed;inset:0;pointer-events:none;opacity:.018;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(420px,100%);background:linear-gradient(145deg,#111722,#0b0f16);border:1px solid var(--line);border-radius:18px;padding:40px;box-shadow:0 28px 80px #0009}.brand-mark{width:52px;height:52px;border-radius:13px;display:grid;place-items:center;background:#e7ebf2;color:#090b10;font-size:27px;font-weight:900;box-shadow:0 0 40px #a78bfa33;margin-bottom:28px}.brand-mark.small{width:35px;height:35px;border-radius:9px;font-size:18px;margin:0}.eyebrow,.project{font:700 10px/1.2 ui-monospace,SFMono-Regular,monospace;letter-spacing:.16em;color:#8995a8;margin:0 0 8px}.login-card h1{font-size:34px;letter-spacing:-.04em;margin:0}.muted{color:var(--muted);margin:5px 0 28px}.login-form{display:grid;gap:18px}.login-form label{display:grid;gap:8px;color:#a9b2c1;font-size:12px;font-weight:650}input,select{width:100%;background:#090c12;border:1px solid #2a3240;border-radius:9px;color:var(--text);font:inherit;padding:12px 13px;outline:none}input:focus,select:focus{border-color:#7787a3;box-shadow:0 0 0 3px #7787a322}button{font:inherit}.primary{border:0;border-radius:9px;background:#e7ebf2;color:#0a0d12;padding:13px;font-weight:800;cursor:pointer}.classification{text-align:center;margin:30px 0 0;color:#4c5563;font:700 9px ui-monospace,monospace;letter-spacing:.2em}.topbar{height:68px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1200px)/2));background:#090c12cc;backdrop-filter:blur(12px)}.brand,.operator{display:flex;align-items:center;gap:11px}.brand div{display:grid}.brand strong{font-size:13px;letter-spacing:.12em}.brand span:not(.brand-mark){font:9px ui-monospace,monospace;color:#657084;letter-spacing:.12em}.operator{color:#c5ccd7;font-size:12px}.operator form{display:inline}.link-button{border:0;background:none;color:#747f90;cursor:pointer}.pulse{width:7px;height:7px;border-radius:50%;display:inline-block}.pulse.online{background:var(--green);box-shadow:0 0 10px var(--green)}.pulse.offline{background:var(--red);box-shadow:0 0 10px var(--red)}.dashboard-shell{width:min(1200px,calc(100% - 40px));margin:44px auto 70px}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:20px}.section-head h1{font-size:30px;letter-spacing:-.03em;margin:0}.agent-state,.updated{font:700 10px ui-monospace,monospace;letter-spacing:.11em;color:#748096;display:flex;align-items:center;gap:8px}.game-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.game-card{position:relative;overflow:hidden;background:linear-gradient(135deg,#10151e,#0b0f16);border:1px solid var(--line);border-radius:13px;padding:22px}.game-card:before{content:"";position:absolute;inset:0 auto auto 0;width:100%;height:2px;background:var(--accent)}.accent-violet{--accent:var(--violet)}.accent-cyan{--accent:var(--cyan)}.accent-amber{--accent:var(--amber)}.accent-red{--accent:var(--red)}.game-card-top,.metric-label{display:flex;justify-content:space-between;align-items:start}.game-card h2{font-size:20px;margin:0;letter-spacing:-.02em}.project{color:var(--accent)}.status{font:700 9px ui-monospace,monospace;letter-spacing:.1em;text-transform:uppercase;padding:5px 8px;border:1px solid;border-radius:20px}.status-running{color:var(--green);background:#4ade800d}.status-stopped{color:#8792a3;background:#8792a30d}.status-degraded,.status-unavailable{color:var(--amber)}.status-unknown{color:var(--red)}.game-detail{font:11px ui-monospace,monospace;color:#667184;margin:22px 0}.actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.actions form{display:contents}.action{background:#111722;border:1px solid #293140;color:#aeb7c6;border-radius:7px;padding:9px;cursor:pointer;font:700 10px ui-monospace,monospace;letter-spacing:.08em}.action:hover:not(:disabled){border-color:#6e7a8e;color:white}.action-stop:hover:not(:disabled){border-color:var(--red);color:var(--red)}.action:disabled{opacity:.35;cursor:not-allowed}.metrics-section{margin-top:42px}.section-head.compact h2{margin:0;font-size:20px}.metrics-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.metric{background:#0d1118;border:1px solid #1d2430;border-radius:10px;padding:16px}.metric-label{align-items:center;color:#778296;font:700 10px ui-monospace,monospace}.metric-label strong{color:#d8dee8;font-size:15px}.bar{height:3px;background:#242b36;margin:15px 0 10px;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,#64748b,#cbd5e1)}.metric small{color:#596474;font:9px ui-monospace,monospace}.uptime{display:flex;flex-direction:column;justify-content:space-between}.uptime .metric-label{display:grid;gap:13px}.uptime .metric-label strong{font-size:18px}.flash{border:1px solid;border-radius:8px;padding:11px 14px;margin:0 0 16px}.flash.success{background:#4ade800c;border-color:#4ade8044;color:#9ce9b8}.flash.error{background:#fb71850c;border-color:#fb718544;color:#fda4af}@media(max-width:760px){.game-grid{grid-template-columns:1fr}.metrics-grid{grid-template-columns:repeat(2,1fr)}.topbar{padding:0 18px}.brand span:not(.brand-mark){display:none}.dashboard-shell{width:calc(100% - 28px);margin-top:28px}.section-head{align-items:start;gap:16px}.agent-state{margin-top:8px}.login-card{padding:30px 24px}}@media(max-width:430px){.metrics-grid{grid-template-columns:1fr}.section-head{display:block}.agent-state{margin-top:14px}.operator{gap:7px}}

