:root{--bg:#06090d;--bg-grid:#0b1017;--panel:#0c1117;--panel-raised:#111823;--border:#1a2430;--border-bright:#26374a;--text:#ccd7e2;--text-dim:#6d8095;--text-faint:#43535f;--ok:#3ddc84;--warn:#f5a623;--crit:#ff4d5e;--accent:#4fc3f7;--ok-dim:#3ddc8422;--warn-dim:#f5a62322;--crit-dim:#ff4d5e22;--mono:ui-monospace, "SF Mono", "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{background-color:var(--bg);background-image:linear-gradient(var(--bg-grid) 1px, transparent 1px), linear-gradient(90deg, var(--bg-grid) 1px, transparent 1px);color:var(--text);font-family:var(--mono);-webkit-font-smoothing:antialiased;background-size:48px 48px;margin:0;font-size:13px;line-height:1.5}.shell{flex-direction:column;min-height:100%;display:flex}.topbar{border-bottom:1px solid var(--border);z-index:10;background:linear-gradient(#0d141d,#0a0f16);flex-wrap:wrap;align-items:center;gap:24px;padding:10px 20px;display:flex;position:sticky;top:0}.brand{letter-spacing:.14em;text-transform:uppercase;align-items:baseline;gap:10px;font-size:12px;font-weight:700;display:flex}.brand span{color:var(--accent)}.brand small{color:var(--text-faint);letter-spacing:.08em;font-weight:400}.topbar-facts{flex-wrap:wrap;align-items:center;gap:20px;margin-left:auto;display:flex}.fact{white-space:nowrap;align-items:baseline;gap:7px;display:flex}.fact-label{color:var(--text-faint);letter-spacing:.12em;text-transform:uppercase;font-size:10px}.fact-value{color:var(--text);font-variant-numeric:tabular-nums}.tabs{border-bottom:1px solid var(--border);background:#080c12;gap:2px;padding:0 20px;display:flex;overflow-x:auto}.tab{appearance:none;color:var(--text-dim);font:inherit;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:11px 16px;font-size:11px;transition:color .12s,border-color .12s}.tab:hover{color:var(--text)}.tab[aria-selected=true]{color:var(--accent);border-bottom-color:var(--accent)}.tab-count{background:var(--crit-dim);color:var(--crit);border-radius:2px;margin-left:7px;padding:1px 6px;font-size:10px}main{flex:1;width:100%;max-width:1600px;margin:0 auto;padding:20px}.grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;display:grid}.grid-wide{grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:14px;display:grid}.panel{background:var(--panel);border:1px solid var(--border);flex-direction:column;min-width:0;display:flex}.panel-head{border-bottom:1px solid var(--border);background:var(--panel-raised);justify-content:space-between;align-items:center;gap:12px;padding:9px 14px;display:flex}.panel-title{letter-spacing:.16em;text-transform:uppercase;color:var(--text-dim);font-size:10px}.panel-body{min-width:0;padding:14px}.panel-body.flush{padding:0}.meter{flex-direction:column;gap:9px;display:flex}.meter-top{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.meter-value{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:26px;font-weight:600}.meter-sub{color:var(--text-dim);text-align:right;font-variant-numeric:tabular-nums;font-size:11px}.meter-track{border:1px solid var(--border);background:#0a0f15;height:10px;position:relative;overflow:hidden}.meter-fill{height:100%;transition:width .45s ease-out}.meter-track:after{content:"";background-image:repeating-linear-gradient(90deg, transparent 0 3px, var(--panel) 3px 5px);pointer-events:none;position:absolute;inset:0}.level-ok .meter-value{color:var(--ok)}.level-warn .meter-value{color:var(--warn)}.level-crit .meter-value{color:var(--crit)}.level-ok .meter-fill{background:var(--ok);box-shadow:0 0 10px var(--ok-dim)}.level-warn .meter-fill{background:var(--warn);box-shadow:0 0 10px var(--warn-dim)}.level-crit .meter-fill{background:var(--crit);box-shadow:0 0 12px var(--crit)}.badge{letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;border:1px solid;align-items:center;gap:6px;padding:2px 8px;font-size:10px;display:inline-flex}.badge-ok{color:var(--ok);background:var(--ok-dim);border-color:#3ddc8455}.badge-warn{color:var(--warn);background:var(--warn-dim);border-color:#f5a62355}.badge-crit{color:var(--crit);background:var(--crit-dim);border-color:#ff4d5e55}.badge-idle{color:var(--text-dim);border-color:var(--border-bright)}.dot{background:currentColor;border-radius:50%;width:6px;height:6px}.dot-pulse{animation:2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.25}}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}thead th{text-align:left;letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);background:var(--panel-raised);border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 14px;font-size:10px;font-weight:500;position:sticky;top:0}tbody td{white-space:nowrap;border-bottom:1px solid #121a24;padding:6px 14px}tbody tr:hover td{background:#101822}.scroll{max-height:380px;overflow:auto}.num{text-align:right}.ip{color:var(--accent)}.dim{color:var(--text-dim)}.faint{color:var(--text-faint)}.empty{text-align:center;color:var(--text-faint);padding:28px 14px;font-size:12px}.log-toolbar{border-bottom:1px solid var(--border);background:var(--panel-raised);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 14px;display:flex}select,input[type=number],input[type=password],input[type=search]{border:1px solid var(--border-bright);color:var(--text);font:inherit;background:#080d13;outline:none;padding:5px 9px}select:focus,input:focus{border-color:var(--accent)}.log-view{background:#05080c;max-height:620px;margin:0;padding:12px 14px;font-size:12px;line-height:1.65;overflow:auto}.log-line{white-space:pre-wrap;word-break:break-all;color:var(--text-dim);border-left:2px solid #0000;padding-left:8px;display:block}.log-line:hover{background:#0b1219}.log-line.hit-crit{color:#ffb0b8;border-left-color:var(--crit)}.log-line.hit-warn{color:#f8d79b;border-left-color:var(--warn)}.log-line.hit-ok{color:#a9e9c4;border-left-color:var(--ok)}.login-screen{place-items:center;min-height:100%;padding:24px;display:grid}.login-card{background:var(--panel);border:1px solid var(--border);width:100%;max-width:380px;padding:26px}.login-card h1{letter-spacing:.18em;text-transform:uppercase;margin:0 0 4px;font-size:15px}.login-card h1 span{color:var(--accent)}.login-card p.hint{color:var(--text-faint);margin:0 0 22px;font-size:11px;line-height:1.6}.field{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.field label{letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);font-size:10px}.field input{width:100%}button.primary{appearance:none;border:1px solid var(--accent);width:100%;color:var(--accent);font:inherit;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;background:#0e2733;padding:10px;font-size:11px;transition:background .12s}button.primary:hover:not(:disabled){background:#14384a}button.primary:disabled{opacity:.5;cursor:not-allowed}button.ghost{appearance:none;border:1px solid var(--border-bright);color:var(--text-dim);font:inherit;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;padding:4px 10px;font-size:10px}button.ghost:hover{color:var(--text);border-color:var(--accent)}.error-box{background:var(--crit-dim);color:#ff8a95;border:1px solid #ff4d5e55;margin-bottom:16px;padding:9px 12px;font-size:11px;line-height:1.5}.banner{border:1px solid;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;padding:9px 14px;font-size:11px;display:flex}.banner-warn{background:var(--warn-dim);color:var(--warn);border-color:#f5a62355}.banner-crit{background:var(--crit-dim);color:#ff8a95;border-color:#ff4d5e55}.kv{grid-template-columns:auto 1fr;align-items:baseline;gap:6px 16px;display:grid}.kv dt{color:var(--text-faint);letter-spacing:.1em;text-transform:uppercase;font-size:10px}.kv dd{font-variant-numeric:tabular-nums;text-align:right;margin:0}.bar-list{flex-direction:column;gap:8px;display:flex}.bar-row{grid-template-columns:1fr auto;align-items:baseline;gap:4px 12px;display:grid}.bar-row .track{border:1px solid var(--border);background:#0a0f15;grid-column:1/-1;height:4px}.bar-row .track>div{background:var(--accent);opacity:.75;height:100%}@media (width<=640px){main{padding:12px}.topbar{gap:12px}.topbar-facts{gap:12px;width:100%;margin-left:0}}
