:root{--bg:#0a0a0a;--bg-2:#111;--bg-3:#1a1a1a;--border:#242424;--border-bright:#333;--green:#22c55e;--green-dim:#166534;--green-glow:#22c55e1f;--amber:#f59e0b;--red:#ef4444;--muted:#555;--text:#d4d4d4;--text-bright:#f5f5f5;--mono:"Courier New", "Courier", monospace}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:var(--bg);height:100%;color:var(--text);font-family:var(--mono);font-size:13px;line-height:1.6}.shell{flex-direction:column;min-height:100vh;display:flex}.topbar{border-bottom:1px solid var(--border);background:var(--bg-2);z-index:10;justify-content:space-between;align-items:center;padding:14px 24px;display:flex;position:sticky;top:0}.topbar-logo{align-items:center;gap:10px;display:flex}.logo-dot{background:var(--green);width:8px;height:8px;box-shadow:0 0 8px var(--green);border-radius:50%;animation:2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.logo-text{color:var(--text-bright);letter-spacing:.05em;font-size:14px;font-weight:700}.logo-sub{color:var(--muted);font-size:11px}.topbar-right{color:var(--muted);align-items:center;gap:16px;font-size:11px;display:flex}.status-ok{color:var(--green)}.status-err{color:var(--red)}.status-warn{color:var(--amber)}.main{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:24px}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:28px;display:grid}.stat-card{background:var(--bg-2);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:4px;padding:16px;transition:border-color .2s;display:flex}.stat-card:hover{border-color:var(--border-bright)}.stat-label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:10px}.stat-value{color:var(--green);letter-spacing:-.02em;font-size:28px;font-weight:700;line-height:1}.stat-sub{color:var(--muted);font-size:10px}.section{margin-bottom:28px}.section-header{border-bottom:1px solid var(--border);align-items:center;gap:10px;margin-bottom:10px;padding-bottom:8px;display:flex}.section-title{color:var(--text-bright);text-transform:uppercase;letter-spacing:.1em;font-size:11px}.section-badge{background:var(--bg-3);border:1px solid var(--border);color:var(--muted);border-radius:3px;padding:1px 6px;font-size:10px}.data-table{border-collapse:collapse;width:100%;font-size:12px}.data-table th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--border);white-space:nowrap;padding:6px 12px;font-size:10px}.data-table td{border-bottom:1px solid var(--border);color:var(--text);white-space:nowrap;padding:8px 12px}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--bg-3)}.table-wrap{background:var(--bg-2);border:1px solid var(--border);border-radius:6px;overflow:hidden}.pill{letter-spacing:.04em;border-radius:3px;padding:1px 8px;font-size:10px;display:inline-block}.pill-green{background:var(--green-dim);color:var(--green);border:1px solid #22c55e4d}.pill-amber{color:var(--amber);background:#f59e0b1a;border:1px solid #f59e0b4d}.pill-red{color:var(--red);background:#ef44441a;border:1px solid #ef44444d}.pill-gray{background:var(--bg-3);color:var(--muted);border:1px solid var(--border)}.bar-wrap{align-items:center;gap:8px;display:flex}.bar-bg{background:var(--bg-3);border-radius:2px;flex:1;height:4px;overflow:hidden}.bar-fill{background:var(--green);border-radius:2px;height:100%;transition:width .6s}.two-col{grid-template-columns:1fr 1fr;gap:20px;display:grid}.three-col{grid-template-columns:1fr 1fr 1fr;gap:20px;display:grid}@media (width<=900px){.three-col{grid-template-columns:1fr 1fr}}@media (width<=700px){.two-col,.three-col{grid-template-columns:1fr}}.refreshing{border:1.5px solid var(--green);vertical-align:middle;border-top-color:#0000;border-radius:50%;width:7px;height:7px;margin-left:6px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.skel{background:linear-gradient(90deg, var(--bg-3) 25%, var(--border) 50%, var(--bg-3) 75%);background-size:200% 100%;border-radius:3px;animation:1.4s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.num{color:var(--green)}.muted{color:var(--muted)}.bright{color:var(--text-bright)}
