:root{--bg: #0b1220;--panel: #121b2e;--panel-2: #182338;--border: #263450;--text: #e6ebf5;--text-dim: #93a1bd;--accent: #4f8cff;--accent-dim: #274a8a;--danger: #ef4444;--warning: #f59e0b;--info: #64748b;--ok: #22c55e;--radius: 10px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text)}a{color:var(--accent);text-decoration:none}.page-loading{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--text-dim)}.app-shell{display:flex;height:100vh}.nav{width:220px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:16px 0}.nav-brand{padding:0 16px 16px;font-weight:700;font-size:15px;border-bottom:1px solid var(--border);margin-bottom:8px}.nav-org{padding:0 16px 12px;font-size:12px;color:var(--text-dim)}.nav-link{display:block;padding:9px 16px;color:var(--text-dim);font-size:14px;border-left:3px solid transparent}.nav-link:hover{color:var(--text);background:var(--panel-2)}.nav-link.active{color:var(--text);border-left-color:var(--accent);background:var(--panel-2)}.nav-section-title{padding:16px 16px 6px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim)}.nav-footer{margin-top:auto;padding:12px 16px 0;border-top:1px solid var(--border)}.main{flex:1;overflow:auto;display:flex;flex-direction:column}.topbar{height:56px;flex-shrink:0;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 20px}.content{padding:20px;flex:1}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.grid{display:grid;gap:16px}.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:repeat(3,1fr)}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border)}th{color:var(--text-dim);font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.04em}tr:hover td{background:var(--panel-2)}.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);border-radius:8px;padding:7px 12px;font-size:13px;cursor:pointer}.btn:hover{border-color:var(--accent)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{filter:brightness(1.08)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.input,select.input,textarea.input{width:100%;background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:8px 10px;font-size:14px}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.field label{font-size:12px;color:var(--text-dim)}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600}.badge-critical{background:#ef444426;color:#fca5a5}.badge-warning{background:#f59e0b26;color:#fcd34d}.badge-info{background:#64748b33;color:#cbd5e1}.badge-ok{background:#22c55e26;color:#86efac}.badge-muted{background:#94a3b826;color:var(--text-dim)}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dot-online{background:var(--ok)}.dot-offline{background:var(--text-dim)}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.auth-card{width:380px;background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:28px}.auth-title{font-size:18px;font-weight:700;margin-bottom:4px}.auth-sub{font-size:13px;color:var(--text-dim);margin-bottom:20px}.auth-error{background:#ef44441f;border:1px solid rgba(239,68,68,.4);color:#fca5a5;padding:8px 10px;border-radius:8px;font-size:13px;margin-bottom:12px}.auth-footer{margin-top:16px;font-size:13px;color:var(--text-dim);text-align:center}.map-wrap{border-radius:var(--radius);overflow:hidden;border:1px solid var(--border)}.section-title{font-size:14px;font-weight:600;margin:0 0 12px}.muted{color:var(--text-dim)}.row{display:flex;align-items:center;gap:10px}.row-between{display:flex;align-items:center;justify-content:space-between}.stack{display:flex;flex-direction:column;gap:16px}
