:root{
  color-scheme:light;
  --bg:#f3f5f8;--card:#ffffff;--card-2:#f7f8fa;--ink:#0f172a;--ink-2:#4b5563;--muted:#8a94a6;--line:#e4e7ec;
  --brand:#1487bb;--brand-2:#1a9fd6;--brand-soft:#d3eef9;
  --ok:#008300;--ok-bg:#e6f4e6;--warn:#d98e00;--warn-bg:#fff4d6;--crit:#e34948;--crit-bg:#fde8e8;
  --off:#64748b;--off-bg:#e9edf2;--info:#1487bb;--info-bg:#d3eef9;
  --code-bg:#eef1f4;--pre-bg:#0f172a;--pre-ink:#e2e8f0;--bar-bg:#e9edf2;--input-line:#cbd5e1;
  --r:14px;--sh:0 1px 2px rgba(15,23,42,.04),0 6px 20px -8px rgba(15,23,42,.10);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  color-scheme:dark;--bg:#0f141c;--card:#171d27;--card-2:#1d2432;--ink:#f1f4f9;--ink-2:#c3c9d4;--muted:#7f8a9c;--line:#2a3242;
  --brand:#4fb3e6;--brand-2:#5fc0ee;--brand-soft:#163a4f;
  --ok:#3ccf5a;--ok-bg:#153a1f;--warn:#f2b134;--warn-bg:#3d2f10;--crit:#ff6b6b;--crit-bg:#3f1d1d;
  --off:#9aa6b8;--off-bg:#232b38;--info:#4fb3e6;--info-bg:#163a4f;
  --code-bg:#232b38;--pre-bg:#0b0f16;--pre-ink:#d5dbe5;--bar-bg:#2a3242;--input-line:#3a4658;--sh:none;
}}
:root[data-theme="dark"]{
  color-scheme:dark;--bg:#0f141c;--card:#171d27;--card-2:#1d2432;--ink:#f1f4f9;--ink-2:#c3c9d4;--muted:#7f8a9c;--line:#2a3242;
  --brand:#4fb3e6;--brand-2:#5fc0ee;--brand-soft:#163a4f;
  --ok:#3ccf5a;--ok-bg:#153a1f;--warn:#f2b134;--warn-bg:#3d2f10;--crit:#ff6b6b;--crit-bg:#3f1d1d;
  --off:#9aa6b8;--off-bg:#232b38;--info:#4fb3e6;--info-bg:#163a4f;
  --code-bg:#232b38;--pre-bg:#0b0f16;--pre-ink:#d5dbe5;--bar-bg:#2a3242;--input-line:#3a4658;--sh:none;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 "Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif}
a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}
code{font:13px/1.3 ui-monospace,Menlo,Consolas,monospace;background:var(--code-bg);padding:1px 5px;border-radius:5px}
pre{font:12px/1.4 ui-monospace,Menlo,Consolas,monospace;background:var(--pre-bg);color:var(--pre-ink);padding:14px;border-radius:8px;overflow:auto;max-height:480px}
h1{font-size:24px;margin:0;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
h2{font-size:16px;margin:26px 0 10px;color:var(--ink-2);display:flex;align-items:center;gap:12px}
h3{font-size:14px;margin:0 0 10px;color:var(--ink-2)}
.muted{color:var(--muted)}.small{font-size:13px}.center{text-align:center}.right{text-align:right}.nowrap{white-space:nowrap}
.ok-txt{color:var(--ok);font-weight:600}.bad{color:var(--crit);font-weight:600}.warn{color:var(--warn);font-weight:600}
.dim{opacity:.55}

.top{background:var(--card);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:24px;padding:0 24px;height:56px;position:sticky;top:0;z-index:5}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:17px;color:var(--ink)}
.brand.big{font-size:22px;justify-content:center;margin-bottom:4px}
.brand-nk{color:var(--brand)}
.brand img.logo{height:30px;width:auto;display:block}
.logo-lg{height:56px;width:auto;margin-bottom:6px}
.theme-btn{width:36px;height:36px;border-radius:9px;border:1px solid var(--line);background:var(--card-2);color:var(--ink-2);display:grid;place-items:center;cursor:pointer}
.theme-btn:hover{color:var(--ink)}.theme-btn .i-moon{display:none}
:root[data-theme="dark"] .theme-btn .i-moon{display:block}:root[data-theme="dark"] .theme-btn .i-sun{display:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .theme-btn .i-moon{display:block}:root:not([data-theme="light"]) .theme-btn .i-sun{display:none}}
.theme-btn.floating{position:fixed;top:16px;right:16px}
.top nav{display:flex;gap:4px}.top nav a{padding:8px 12px;border-radius:8px;color:var(--ink-2);font-weight:500}
.top nav a:hover{background:var(--card-2);text-decoration:none}.top nav a.on{background:var(--brand-soft);color:var(--brand);font-weight:600}
.who{margin-left:auto;display:flex;align-items:center;gap:12px;color:var(--muted)}
.link{background:none;border:0;color:var(--brand);cursor:pointer;font:inherit;padding:0}.link.danger{color:var(--crit)}
.wrap{max-width:1380px;margin:0 auto;padding:22px 24px 40px}
.foot{text-align:center;color:var(--muted);font-size:12px;padding:20px}

.pagehead{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:16px;flex-wrap:wrap}
.crumbs{font-size:13px;color:var(--muted);margin-bottom:4px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:16px;margin-bottom:14px}
details.card summary{cursor:pointer;font-weight:600;color:var(--ink-2)}
.cols{display:grid;grid-template-columns:1fr 1.4fr;gap:18px}
.cols3{display:grid;grid-template-columns:1fr 1.3fr 1.4fr;gap:18px}
@media (max-width:1000px){.cols,.cols3{grid-template-columns:1fr}}

.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px}
.tile{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;box-shadow:var(--sh);border-left:5px solid var(--input-line)}
.tile .n{font-size:22px;font-weight:700;line-height:1.1}.tile .l{font-size:12.5px;color:var(--muted);margin-top:4px}
.tile.ok{border-left-color:var(--ok)}.tile.warning{border-left-color:var(--warn);background:var(--warn-bg)}
.tile.critical{border-left-color:var(--crit);background:var(--crit-bg)}.tile.offline{border-left-color:var(--off)}

.pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:13px;font-weight:600;background:var(--off-bg);color:var(--off);white-space:nowrap}
.pill.sm{font-size:11.5px;padding:2px 8px}
.pill.ok{background:var(--ok-bg);color:var(--ok)}.pill.warning{background:var(--warn-bg);color:var(--warn)}
.pill.critical{background:var(--crit-bg);color:var(--crit)}.pill.offline{background:var(--off-bg);color:var(--off)}
.pill.info{background:var(--info-bg);color:var(--info)}.pill.unknown{background:var(--off-bg);color:var(--off)}

table.grid{width:100%;border-collapse:collapse;font-size:14px}
table.grid th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
table.grid td{padding:10px;border-bottom:1px solid var(--line);vertical-align:middle}
table.grid tbody tr:last-child td{border-bottom:0}
table.grid tbody tr[onclick]{cursor:pointer}table.grid tbody tr[onclick]:hover{background:var(--card-2)}
table.grid.compact td{padding:7px 10px}
tr.row-critical td:first-child{box-shadow:inset 4px 0 var(--crit)}tr.row-warning td:first-child{box-shadow:inset 4px 0 var(--warn)}
tr.row-offline td:first-child{box-shadow:inset 4px 0 var(--off)}tr.row-ok td:first-child{box-shadow:inset 4px 0 var(--ok)}

.bar{position:relative;height:18px;background:var(--bar-bg);border-radius:6px;overflow:hidden}
.bar.sm{height:8px;width:90px;display:inline-block;vertical-align:middle;margin-right:6px}
.bar .fill{height:100%;background:var(--brand);border-radius:6px;transition:width .4s}
.bar .fill.warning{background:var(--warn)}.bar .fill.critical{background:var(--crit)}
.bar .pct{position:absolute;right:8px;top:0;font-size:12px;font-weight:600;line-height:18px;color:var(--ink)}
.volrow{margin-bottom:12px}.volrow:last-of-type{margin-bottom:0}
.volhead{display:flex;justify-content:space-between;font-size:13.5px;margin-bottom:5px}.volhead span{color:var(--muted)}

.alertbox{padding:10px 14px;border-radius:8px;margin-bottom:12px;font-size:14px}
.alertbox.critical{background:var(--crit-bg);color:var(--crit)}.alertbox.warning{background:var(--warn-bg);color:var(--warn)}.alertbox.info{background:var(--info-bg);color:var(--info)}
.alertline{padding:8px 10px;border-radius:8px;margin:4px 0;font-size:14px;background:var(--card-2);border-left:4px solid var(--input-line)}
.alertline.critical{background:var(--crit-bg);border-left-color:var(--crit)}.alertline.warning{background:var(--warn-bg);border-left-color:var(--warn)}.alertline.info{border-left-color:var(--info)}

.charts{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media (max-width:900px){.charts{grid-template-columns:1fr}}
.charts canvas{width:100%!important;height:230px!important}
.range{font-size:13px;font-weight:400;display:inline-flex;gap:2px;background:var(--bar-bg);padding:3px;border-radius:8px}
.range a{padding:3px 10px;border-radius:6px;color:var(--ink-2);cursor:pointer}.range a.on{background:var(--brand);color:#fff;font-weight:600}

.hero{border-radius:var(--r);padding:22px 26px;margin-bottom:18px;color:#fff;background:linear-gradient(135deg,#0e6a94,#1a9fd6)}
.hero.warning{background:linear-gradient(135deg,#b45309,#f59e0b)}.hero.critical{background:linear-gradient(135deg,#991b1b,#ef4444)}
.hero.offline,.hero.unknown{background:linear-gradient(135deg,#475569,#64748b)}
.hero-t{font-size:22px;font-weight:700}.hero-s{opacity:.92;margin-top:4px;max-width:720px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}
.devcard{display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px;box-shadow:var(--sh);color:var(--ink);border-top:5px solid var(--input-line)}
.devcard:hover{text-decoration:none;box-shadow:0 6px 18px rgba(16,24,40,.12)}
.devcard.ok{border-top-color:var(--ok)}.devcard.warning{border-top-color:var(--warn)}.devcard.critical{border-top-color:var(--crit)}.devcard.offline{border-top-color:var(--off)}
.devhead{display:flex;align-items:center;gap:10px;font-size:17px}.devmodel{font-size:13px;margin:2px 0 10px}
.facts{list-style:none;margin:0;padding:0}.facts li{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--line);font-size:14px}
.facts li:last-child{border-bottom:0}.facts li span{color:var(--muted)}
.devalerts{margin-top:10px}

form.inline{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}form.inline.mini{margin:0;display:inline-flex}
form.stack{margin-top:12px;display:flex;flex-direction:column;gap:8px}form.stack .inline{margin:0}
input,select{font:inherit;padding:8px 10px;border:1px solid var(--input-line);border-radius:8px;background:var(--card-2);color:var(--ink);min-width:0}
form.inline.mini input{padding:4px 8px;font-size:13px;width:130px}
.btn{font:inherit;font-weight:600;padding:8px 14px;border-radius:8px;border:1px solid var(--input-line);background:var(--card-2);cursor:pointer;color:var(--ink)}
.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover{background:var(--brand-2)}
.btn.wide{width:100%;margin-top:6px}
label{display:block;font-size:13px;color:var(--muted);margin-bottom:12px}label input{display:block;width:100%;margin-top:4px}
.login{min-height:calc(100vh - 80px);display:flex;align-items:center;justify-content:center}
.login .card{width:360px;padding:28px;text-align:center}.login form{text-align:left;margin-top:16px}
.tokenbox{border-color:var(--brand)}.token{font-size:15px;user-select:all}

.bk-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}
.bk{border:1px solid var(--line);border-radius:10px;padding:12px 14px;border-left:5px solid var(--input-line);background:var(--card-2)}
.bk.ok{border-left-color:var(--ok)}.bk.warning{border-left-color:var(--warn)}.bk.critical{border-left-color:var(--crit)}
.bk-head{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:15px}
.donuts{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:14px;margin-bottom:14px}
.donut canvas{width:100%!important;max-height:190px;height:190px!important}
.legend{display:flex;flex-direction:column;gap:4px;font-size:12.5px;margin-top:10px}
.legend.cols2{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px}
.legend span{display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.legend i{width:10px;height:10px;border-radius:3px;flex:none;display:inline-block}
.legend .c0{background:#1487bb}.legend .c1{background:#1baf7a}.legend .c2{background:#eb6834}.legend .c3{background:#7c3aed}.legend .c4{background:#e34948}.legend .c5{background:#0891b2}.legend .c6{background:#65a30d}.legend .c7{background:#db2777}.legend .c8{background:#9aa3b2}
