:root{--bg: #0f1b2b;--surface: #16243a;--surface-raised: #1c3049;--border: #223454;--text: #e7eef5;--text-muted: #8ea3c0;--accent: #3ed9c5;--accent-dim: #245e56;--warning: #f5a623;--warning-dim: #4a3819;--critical: #e5484d;--critical-dim: #4a2224;--font-display: "Space Grotesk", sans-serif;--font-body: "IBM Plex Sans", sans-serif;--font-mono: "IBM Plex Mono", monospace;--radius: 10px;--sidebar-width: 240px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);font-weight:600;margin:0;letter-spacing:-.01em}.mono{font-family:var(--font-mono)}a{color:inherit}button{font-family:var(--font-body);cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:var(--accent-dim);color:var(--text)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.badge{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:500;padding:3px 10px;border-radius:999px}.badge-dot{width:6px;height:6px;border-radius:50%}.badge.online{background:var(--accent-dim);color:var(--accent)}.badge.online .badge-dot{background:var(--accent)}.badge.warning{background:var(--warning-dim);color:var(--warning)}.badge.warning .badge-dot{background:var(--warning)}.badge.critical{background:var(--critical-dim);color:var(--critical)}.badge.critical .badge-dot{background:var(--critical)}.badge.offline{background:#253248;color:var(--text-muted)}.badge.offline .badge-dot{background:var(--text-muted)}.btn{border:none;border-radius:8px;padding:10px 18px;font-size:14px;font-weight:600;transition:filter .15s ease}.btn:hover{filter:brightness(1.1)}.btn-primary{background:var(--accent);color:#0a1a18}.btn-ghost{background:transparent;color:var(--text);border:1px solid var(--border)}.input{background:var(--surface-raised);border:1px solid var(--border);border-radius:8px;padding:11px 14px;color:var(--text);font-size:14px;width:100%}.input:focus{border-color:var(--accent)}
