:root{
  --bg:#050f14; --bg2:#09171e; --panel:#0d2029; --panel2:#112c38; --line:#1a3a47; --line2:#2a5668;
  --ink:#e6f4f8; --muted:#8bb0bd; --accent:#2cd5c4; --accent2:#4aa8ff; --accent-ink:#04141a;
  --ok:#5ff0a6; --ok-bg:rgba(var(--accent-rgb),.14); --warn:#f6c453; --warn-bg:rgba(246,196,83,.14); --bad:#ff8f84; --bad-bg:rgba(255,107,94,.16);
  --off:#9fb8c2; --off-bg:rgba(139,176,189,.13); --info:#7fe0f0; --info-bg:rgba(95,211,230,.13); --sim:#d9c2ff; --sim-bg:rgba(177,140,255,.16);
  --accent-rgb:44,213,196; --accent2-rgb:74,168,255; --shadow:0 10px 30px rgba(0,0,0,.35); --r:14px; --rail:84px;
}
*{box-sizing:border-box}
html{color-scheme:dark}
body{margin:0;color:var(--ink);font:14px/1.5 "Segoe UI Variable","Segoe UI",Inter,system-ui,-apple-system,Roboto,sans-serif;
  background:radial-gradient(1200px 600px at 8% -10%,rgba(var(--accent-rgb),.13),transparent 60%),radial-gradient(900px 500px at 100% 0%,rgba(var(--accent2-rgb),.07),transparent 55%),
  linear-gradient(rgba(var(--accent-rgb),.035) 1px,transparent 1px) 0 0/44px 44px,linear-gradient(90deg,rgba(var(--accent-rgb),.035) 1px,transparent 1px) 0 0/44px 44px,var(--bg);
  background-attachment:fixed;min-height:100vh}
button,select,input,textarea{font:inherit;color:inherit}
a{color:var(--accent)}
/* ---------- shell */
.shell{display:grid;grid-template-columns:var(--rail) 1fr;min-height:100vh}
.rail{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;background:linear-gradient(180deg,#0c212b,#06111a);border-right:1px solid var(--line)}
.brand{display:grid;place-items:center;min-height:46px;margin-bottom:10px;max-width:100%}
.rail-nav{display:flex;flex-direction:column;gap:4px;width:100%}
.rail-nav button{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 2px;border:0;background:none;border-radius:12px;color:var(--muted);cursor:pointer;font-size:10.5px;font-weight:600;letter-spacing:.02em}
.rail-nav button svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.rail-nav button:hover{background:rgba(var(--accent-rgb),.08);color:var(--ink)}
.rail-nav button[aria-selected=true]{color:var(--accent);background:linear-gradient(90deg,rgba(var(--accent-rgb),.18),rgba(var(--accent-rgb),.03))}
.rail-nav button[aria-selected=true]:before{content:"";position:absolute;left:-8px;top:10px;bottom:10px;width:3px;border-radius:3px;background:var(--accent);box-shadow:0 0 12px var(--accent)}
.rail-dot{position:absolute;top:5px;right:16px;min-width:16px;height:16px;border-radius:8px;background:var(--bad);color:#2a0805;font-size:10px;font-weight:800;display:grid;place-items:center;padding:0 4px}
.rail-foot{margin-top:auto;font-size:9.5px;color:var(--muted);text-align:center;opacity:.8}
.stage{min-width:0;display:flex;flex-direction:column}
.topbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 22px;border-bottom:1px solid var(--line);background:rgba(6,17,23,.72);backdrop-filter:blur(10px);position:sticky;top:0;z-index:6}
.crumb{font-size:18px;font-weight:650;letter-spacing:.01em}.crumb span{color:var(--muted);font-weight:500}
.sim{background:var(--sim-bg);color:var(--sim);border:1px solid rgba(177,140,255,.35);border-radius:999px;padding:3px 10px;font-size:11px;font-weight:700;letter-spacing:.06em}
.spacer{flex:1}
.who select{background:var(--panel);border:1px solid var(--line2)}
/* vitals ribbon */
.ribbon{display:flex;gap:8px;flex-wrap:nowrap;align-items:stretch;scrollbar-width:thin;padding:12px 22px 6px;overflow-x:auto}
.vital{flex:1 0 auto;min-width:0;display:flex;align-items:center;gap:9px;background:linear-gradient(180deg,rgba(16,42,54,.9),rgba(10,26,35,.9));border:1px solid var(--line);border-radius:var(--r);padding:8px 10px;box-shadow:var(--shadow)}
.vital .k{white-space:nowrap;font-size:9.5px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:700}
.vital .v{white-space:nowrap;font-size:19px;font-weight:700;line-height:1.15;font-variant-numeric:tabular-nums}.vital .v small{font-size:12px;color:var(--muted);font-weight:500}
.vital .n{white-space:normal;max-width:132px;line-height:1.25;font-size:10.5px;color:var(--muted)}
.vital .n b.g,.vital .v.g{color:var(--ok)}.vital .n b.w,.vital .v.w{color:var(--warn)}.vital .n b.r,.vital .v.r{color:var(--bad)}.vital.kv .n{max-width:none;white-space:nowrap}
td.mono .small{white-space:nowrap}td b.g{color:var(--ok)}td b.w{color:var(--warn)}td b.r{color:var(--bad)}
.vital.alert .v{color:var(--bad)}.vital.good .v{color:var(--ok)}
.ring{width:38px;height:38px;flex:none}
main{padding:16px 22px 40px;max-width:1500px;width:100%}
/* ---------- surfaces */
.card,.panel{background:linear-gradient(180deg,rgba(15,38,50,.92),rgba(10,25,34,.92));border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;margin-bottom:14px;box-shadow:var(--shadow)}
.card h2,.panel h2{font-size:15px;margin:0 0 8px;letter-spacing:.01em}.card h3{font-size:11px;margin:14px 0 6px;color:var(--muted);text-transform:uppercase;letter-spacing:.09em}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px}
.tile{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px}.tile .k{color:var(--muted);font-size:12px}.tile .v{font-size:22px;font-weight:650}.tile .n{color:var(--muted);font-size:11.5px}
table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:8px 9px;border-bottom:1px solid rgba(42,86,104,.55);vertical-align:top}
th{font-size:10.5px;color:var(--muted);font-weight:700;white-space:nowrap;text-transform:uppercase;letter-spacing:.08em}
tr.click{cursor:pointer}tr.click:hover{background:rgba(var(--accent-rgb),.07)}
.badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:2px 9px;font-size:12px;font-weight:650;white-space:nowrap}
.b-ok{background:var(--ok-bg);color:var(--ok)}.b-warn{background:var(--warn-bg);color:var(--warn)}.b-bad{background:var(--bad-bg);color:var(--bad)}.b-off{background:var(--off-bg);color:var(--off)}.b-info{background:var(--info-bg);color:var(--info)}
.muted{color:var(--muted)}.small{font-size:12px}.mono{font-variant-numeric:tabular-nums}.why{font-size:12px;color:var(--muted)}.err{color:var(--bad);font-weight:600}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.btn{background:rgba(13,32,42,.9);border:1px solid var(--line2);border-radius:10px;padding:6px 12px;cursor:pointer;font-weight:650;color:var(--ink)}
.btn:hover{border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.12)}.btn.p{background:linear-gradient(135deg,var(--accent),#1a9fd0);color:var(--accent-ink);border-color:transparent}.btn.p:hover{box-shadow:0 0 18px rgba(var(--accent-rgb),.45)}
.btn[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.btn:disabled{opacity:.5}
select,input[type=text],input[type=search],input[type=datetime-local],textarea{background:#08151c;border:1px solid var(--line2);border-radius:10px;padding:6px 10px;max-width:100%;color:var(--ink)}
select:focus,input:focus,textarea:focus,.btn:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
input[type=checkbox]{accent-color:var(--accent)}textarea{width:100%;min-height:60px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:1000px){.grid2{grid-template-columns:1fr}}
.insight{border-left:4px solid var(--warn);background:var(--warn-bg);padding:10px 14px;border-radius:10px;margin-bottom:10px}
.bar{height:8px;background:rgba(139,176,189,.15);border-radius:5px;overflow:hidden}.bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2))}
.tl{border-left:2px solid var(--line2);margin-left:6px;padding-left:12px}.tl div{margin-bottom:8px;position:relative}.tl div:before{content:"";position:absolute;left:-18px;top:6px;width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent)}
.modal{position:fixed;inset:0;background:rgba(0,6,10,.7);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:16px;z-index:2000}
.modal>div{background:var(--panel);border:1px solid var(--line2);border-radius:16px;padding:18px;max-width:540px;width:100%;max-height:90vh;overflow:auto;box-shadow:var(--shadow)}
.modal label{display:block;margin:8px 0 3px;font-weight:650;font-size:12.5px}.modal input,.modal textarea,.modal select{width:100%}
canvas{width:100%;display:block}
.legend{max-height:92px;overflow:auto}.legend span{margin-right:12px;white-space:nowrap}
/* inner tab strip (site pages) */
nav[role=tablist]:not(.rail-nav){display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
nav[role=tablist]:not(.rail-nav) button{background:rgba(13,32,42,.9);border:1px solid var(--line);border-radius:999px;padding:6px 14px;color:var(--muted);cursor:pointer;font-weight:650}
nav[role=tablist]:not(.rail-nav) button[aria-selected=true]{background:var(--ok-bg);border-color:var(--accent);color:var(--accent)}
/* dropdown multiselect (Analyze) */
.dd{position:relative;display:inline-block}.dd>summary{list-style:none;cursor:pointer;background:rgba(13,32,42,.95);border:1px solid var(--line2);border-radius:10px;padding:6px 11px;font-weight:650;user-select:none}
.dd>summary::-webkit-details-marker{display:none}.dd>summary:after{content:" ▾";color:var(--muted)}.dd[open]>summary{border-color:var(--accent)}
.ddp:before{content:"";position:absolute;left:-6px;right:-6px;top:-10px;height:10px}
.ddp{position:absolute;z-index:12;top:100%;left:0;margin-top:5px;min-width:250px;max-height:330px;overflow:auto;background:#0b1d27;border:1px solid var(--line2);border-radius:12px;padding:9px 11px;box-shadow:0 14px 34px rgba(0,0,0,.55)}
.ddp label{display:block;padding:2px 0;white-space:nowrap;font-weight:400}.ddg{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:9px 0 2px}
.tip{position:absolute;pointer-events:none;background:#0b1d27;border:1px solid var(--line2);border-radius:10px;padding:7px 10px;font-size:12px;box-shadow:0 8px 22px rgba(0,0,0,.5);max-width:310px}
/* ---------- fleet command layout */
.hero{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:14px;margin-bottom:14px}@media(max-width:1100px){.hero{grid-template-columns:1fr}}
.hero .panel{margin:0}
.mapbox{position:relative;height:330px;border-radius:12px;overflow:hidden;background:radial-gradient(circle at 50% 40%,rgba(var(--accent-rgb),.10),transparent 65%),repeating-linear-gradient(0deg,rgba(var(--accent-rgb),.06) 0 1px,transparent 1px 36px),repeating-linear-gradient(90deg,rgba(var(--accent-rgb),.06) 0 1px,transparent 1px 36px),#07171f;border:1px solid var(--line)}
.pin{position:absolute;transform:translate(-50%,-50%);cursor:pointer;display:flex;flex-direction:column;align-items:center;font-size:11px;color:var(--ink);text-shadow:0 1px 4px #000}
.pin i{width:14px;height:14px;border-radius:50%;box-shadow:0 0 0 4px rgba(255,255,255,.08),0 0 16px currentColor}
.pin.pulse i{animation:pulse 1.6s infinite}@keyframes pulse{0%{box-shadow:0 0 0 0 currentColor}100%{box-shadow:0 0 0 14px transparent}}
.feed{display:flex;flex-direction:column;max-height:420px}.feed .items{overflow:auto;flex:1}
.ev{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid rgba(42,86,104,.5);cursor:pointer}.ev:hover{background:rgba(var(--accent-rgb),.05)}
.ev .dot{width:9px;height:9px;border-radius:50%;margin-top:6px;flex:none}.ev .t{font-size:11px;color:var(--muted)}
.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{border:1px solid var(--line2);background:rgba(13,32,42,.9);border-radius:999px;padding:4px 12px;cursor:pointer;font-weight:650;font-size:12.5px;color:var(--muted)}
.chip[aria-pressed=true]{background:var(--ok-bg);border-color:var(--accent);color:var(--accent)}
.sgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}
.stile{position:relative;background:linear-gradient(180deg,rgba(18,46,60,.95),rgba(10,26,35,.95));border:1px solid var(--line);border-radius:var(--r);padding:13px 14px 12px;cursor:pointer;overflow:hidden;transition:transform .12s,border-color .12s}
.stile:hover{transform:translateY(-2px);border-color:var(--accent)}.stile:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--c,var(--ok));box-shadow:0 0 16px var(--c,var(--ok))}
.st-ok{--c:var(--ok)}.st-warn{--c:var(--warn)}.st-bad{--c:var(--bad)}.st-off{--c:var(--off)}
.st-top{display:flex;align-items:center;gap:8px}.st-top b{font-size:14.5px}.led{width:9px;height:9px;border-radius:50%;background:var(--c);box-shadow:0 0 10px var(--c);flex:none}
.st-pw{display:flex;align-items:baseline;gap:5px;margin:8px 0 4px}.st-pw .big{font-size:30px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.st-pw .u{color:var(--muted);font-weight:600}
.bar2{height:6px;border-radius:4px;background:rgba(139,176,189,.15);overflow:hidden;margin-bottom:6px}.bar2>i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2))}
.st-meta{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.st-meta b{color:var(--ink);font-weight:650}
.st-why{font-size:11.5px;color:var(--muted);margin:7px 0 6px;min-height:32px}
.st-foot{display:flex;gap:6px;flex-wrap:wrap;align-items:center;font-size:11.5px}
/* mobile: rail becomes bottom bar */
@media(max-width:820px){.shell{grid-template-columns:1fr}.rail{position:fixed;bottom:0;left:0;right:0;top:auto;height:62px;flex-direction:row;padding:4px 6px;z-index:20;border-right:0;border-top:1px solid var(--line)}
 .brand,.rail-foot{display:none}.rail-nav{flex-direction:row}.rail-nav button{flex:1}.rail-nav button[aria-selected=true]:before{left:20%;right:20%;top:-4px;bottom:auto;width:auto;height:3px}
 main{padding:12px 12px 90px}.topbar,.ribbon{padding-left:12px;padding-right:12px}.vital{min-width:140px}}

/* fleet dashboard widgets */
.portal{display:flex;flex-direction:column;line-height:1.15;padding-right:14px;margin-right:4px;border-right:1px solid var(--line)}.portal b{font-size:14px;letter-spacing:.02em}.portal #portalTag{font-size:11px;color:var(--muted)}
.avgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}@media(max-width:1100px){.avgrid{grid-template-columns:1fr}}
.avc{background:linear-gradient(180deg,rgba(15,38,50,.92),rgba(10,25,34,.92));border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;box-shadow:var(--shadow)}
.avh{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px}.avh b{font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted)}
.avr{padding:7px 0;border-top:1px solid rgba(42,86,104,.45)}.avr .lb{font-size:11.5px;color:var(--muted);font-weight:650}
.avr .vals{display:grid;grid-template-columns:1fr 1fr .7fr;gap:6px;margin:3px 0 5px;font-size:12px;color:var(--muted)}.avr .vals b{font-size:18px;font-variant-numeric:tabular-nums;color:var(--ink);margin-right:3px}
.avr .u b{color:var(--ok)}.avr .d b.z{color:var(--ink)}.avr .d b{color:var(--bad)}
.stack{display:flex;height:6px;border-radius:4px;overflow:hidden;background:rgba(139,176,189,.15)}.stack i{background:var(--ok)}.stack em{background:var(--bad)}
.kpit{width:100%}.kpit th{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);text-align:center}.kpit th:first-child,.kpit td:first-child{text-align:left}
.kpit td{text-align:center;font-variant-numeric:tabular-nums;font-size:17px;font-weight:700}.kpit td:first-child{font-size:13px;font-weight:650}.kpit td:first-child small{display:block;font-weight:500;color:var(--muted);font-size:11px}
.kpit .g{color:var(--ok)}.kpit .w{color:var(--warn)}.kpit .r{color:var(--bad)}.kpit .na{color:var(--muted);font-weight:500;font-size:13px}
.mapwrap{position:relative}.mapbox2{height:430px;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:#dfe7ea}
.maplegend{position:absolute;z-index:500;left:10px;bottom:10px;display:flex;gap:10px;flex-wrap:wrap;background:rgba(6,17,23,.86);border:1px solid var(--line2);border-radius:10px;padding:6px 10px;font-size:11.5px}
.maplegend span{display:flex;align-items:center;gap:5px}.maplegend i{width:10px;height:10px;border-radius:50%;display:inline-block}
.mk{display:flex;flex-direction:column;align-items:center;transform:translate(-50%,-100%)}
.mk .pn{position:relative;width:26px;height:26px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);border:2px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.45)}
.mk .pn:after{content:"";position:absolute;inset:6px;background:#fff;border-radius:50%}
.mk.pulse .pn{animation:mkp 1.6s infinite}@keyframes mkp{0%{box-shadow:0 0 0 0 rgba(255,90,80,.7)}100%{box-shadow:0 0 0 16px rgba(255,90,80,0)}}
.mk .lbl{margin-top:3px;background:rgba(6,17,23,.88);color:#e6f4f8;border-radius:6px;padding:1px 6px;font-size:11px;white-space:nowrap;font-weight:650}
.leaflet-popup-content-wrapper{background:var(--panel);color:var(--ink);border:1px solid var(--line2)}.leaflet-popup-tip{background:var(--panel)}.leaflet-popup-content{margin:10px 12px;font:12.5px/1.4 system-ui,sans-serif}
.leaflet-container a.pbtn{color:var(--accent-ink);background:var(--accent);padding:3px 10px;border-radius:8px;font-weight:700;cursor:pointer;display:inline-block;margin-top:6px}
.fl{stroke-dasharray:5 7;animation:flowdash .8s linear infinite}@keyframes flowdash{to{stroke-dashoffset:-16}}@media(prefers-reduced-motion:reduce){.fl{animation:none}}

/* devices & health */
.dsum{border-left:5px solid var(--ok)}.dsum-w{border-left-color:var(--warn)}.dsum-h{font-size:18px;font-weight:700;margin-bottom:8px}.dsum-c{display:flex;gap:8px;flex-wrap:wrap}
.dpill{font-size:11.5px;font-weight:700;padding:3px 10px;border-radius:999px;border:1px solid currentColor;white-space:nowrap}
.dp-ok{color:var(--ok);background:var(--ok-bg)}.dp-warn{color:var(--warn);background:var(--warn-bg)}.dp-bad{color:var(--bad);background:var(--bad-bg)}.dp-off{color:var(--off);background:var(--off-bg)}.dp-info{color:var(--info);background:var(--info-bg)}
.dblk{margin-bottom:10px}.dblk-h{font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:700;margin:4px 0 6px}
.dgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:10px}
.dc{background:var(--panel2);border:1px solid var(--line);border-left:4px solid var(--off);border-radius:12px;padding:10px 12px}
.dc-ok,.dc-online{border-left-color:var(--ok)}.dc-warn{border-left-color:var(--warn)}.dc-bad{border-left-color:var(--bad)}.dc-info{border-left-color:var(--info)}.dc-off{border-left-color:var(--off)}
.dch{display:flex;align-items:center;gap:8px}.dct{display:flex;flex-direction:column;line-height:1.2;flex:1;min-width:0}.dct b{font-size:14px}
.dwhy{margin:6px 0 8px;color:var(--muted);min-height:18px}
.dms{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.dms4{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.dm{background:rgba(255,255,255,.03);border-radius:8px;padding:6px 8px}.dml{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.dmv{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums}.dmv small{font-size:10.5px;color:var(--muted);font-weight:500}
.dmv .g{color:var(--ok)}.dmv .r{color:var(--bad)}
.dstr{display:flex;align-items:flex-end;gap:4px;margin-top:8px;height:34px}.dstr i{display:block;width:9px;background:var(--accent);border-radius:2px}.dstr i.lo{background:var(--warn)}.dstr .dml{margin-right:4px;align-self:center}.dstr .small{margin-left:6px;align-self:center}
.warn-t{color:var(--warn)}.dcf{margin-top:8px}
.devd{margin-top:6px}.devd summary{cursor:pointer;color:var(--accent);font-size:12.5px;font-weight:650}
.dg-g{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700;margin:8px 0 2px}.dg-t{width:100%;font-size:12.5px}.dg-t td{padding:3px 6px;border-bottom:1px solid rgba(42,86,104,.35)}
@media(max-width:700px){.dms{grid-template-columns:repeat(2,1fr)}}

/* trend summary */
.sm-top{display:flex;gap:18px;flex-wrap:wrap;align-items:center;background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-size:13px}
.sm-top .g{color:var(--ok)}.sm-top .w{color:var(--warn)}.sm-top .r{color:var(--bad)}.sm-top b.g{color:var(--ok)}.sm-top b.w{color:var(--warn)}.sm-top b.r{color:var(--bad)}
.sm-g{border:1px solid var(--line);border-radius:10px;margin-bottom:8px;background:rgba(255,255,255,.015)}
.sm-g>summary{cursor:pointer;padding:8px 12px;display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;list-style:none}.sm-g>summary::-webkit-details-marker{display:none}
.sm-g>summary:before{content:"▸";color:var(--accent);margin-right:2px}.sm-g[open]>summary:before{content:"▾"}
.sm-gt{font-weight:700;font-size:14px}.sm-gs b{color:var(--ink)}
.sm-r{display:grid;grid-template-columns:90px minmax(120px,1fr) 78px 78px 78px 130px;gap:10px;align-items:center;padding:6px 12px;border-top:1px solid rgba(42,86,104,.35)}
.sm-d{display:flex;align-items:center;gap:7px}.sm-d i{width:10px;height:10px;border-radius:3px;display:inline-block}
.sm-bar{position:relative;height:10px;background:rgba(139,176,189,.14);border-radius:6px}.sm-bar span{position:absolute;top:0;bottom:0;border-radius:6px}.sm-bar em{position:absolute;top:-2px;width:5px;height:14px;border-radius:3px;transform:translateX(-50%)}
.sm-v{font-variant-numeric:tabular-nums;font-weight:650;text-align:right}.sm-v small{display:block;font-size:9.5px;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.sm-avg{color:var(--accent)}
.cv{font-size:11.5px;font-weight:650;padding:2px 9px;border-radius:999px;white-space:nowrap}.cv-ok{color:var(--ok);background:var(--ok-bg)}.cv-w{color:var(--warn);background:var(--warn-bg)}.cv-b{color:var(--bad);background:var(--bad-bg)}
@media(max-width:760px){.sm-r{grid-template-columns:80px 1fr 1fr 1fr;}.sm-bar{grid-column:1/-1;order:5}.sm-c{grid-column:1/-1}}

/* trend insights */
.in-head{border-radius:10px;padding:10px 14px;font-size:14px;margin-bottom:8px}.in-w{background:var(--warn-bg);border:1px solid rgba(246,196,83,.35)}.in-ok{background:var(--ok-bg);border:1px solid rgba(95,240,166,.3)}
.in-list{display:flex;flex-direction:column;gap:6px}
.in-f{display:flex;gap:10px;background:var(--panel2);border:1px solid var(--line);border-left:4px solid var(--info);border-radius:10px;padding:8px 12px}
.in-bad{border-left-color:var(--bad)}.in-warn{border-left-color:var(--warn)}.in-info{border-left-color:var(--info)}
.in-i{font-weight:800;width:16px;text-align:center;flex:none;margin-top:1px}.in-bad .in-i{color:var(--bad)}.in-warn .in-i{color:var(--warn)}.in-info .in-i{color:var(--info)}
.in-t{font-weight:700;font-size:13.5px}.in-x{font-size:12.5px;color:var(--muted);margin-top:2px;line-height:1.45}
.in-tag{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;margin-left:6px;opacity:.8}.in-bad .in-tag{color:var(--bad)}.in-warn .in-tag{color:var(--warn)}.in-info .in-tag{color:var(--info)}
.cp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:10px}
.cp{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:10px 12px}.cp-h b{font-size:14px}.cp-s{margin:2px 0 8px}.cp-s b{color:var(--ink)}
.cp-r{display:grid;grid-template-columns:70px 1fr 64px 46px 80px;gap:8px;align-items:center;padding:3px 0}
.cp-n{display:flex;align-items:center;gap:6px;font-weight:650;font-size:12.5px}.cp-n i{width:9px;height:9px;border-radius:3px;display:inline-block}
.cp-b{position:relative;height:12px;background:rgba(139,176,189,.12);border-radius:6px}.cp-b s{position:absolute;left:0;top:0;bottom:0;border-radius:6px;opacity:.85}.cp-b u{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink);opacity:.7}
.cp-v{font-variant-numeric:tabular-nums;font-weight:700;text-align:right}.cp-d{font-size:11px;font-weight:700;text-align:right}.d-ok{color:var(--ok)}.d-w{color:var(--warn)}.d-b{color:var(--bad)}
.in-sp{width:80px;height:20px}
@media(max-width:700px){.cp-grid{grid-template-columns:1fr}.cp-r{grid-template-columns:60px 1fr 56px 40px}.in-sp{display:none}}

/* trend at-a-glance */
.kt-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.kt{background:var(--panel2);border:1px solid var(--line);border-top:3px solid var(--info);border-radius:12px;padding:10px 14px}.kt-ok{border-top-color:var(--ok)}.kt-w{border-top-color:var(--warn)}.kt-b{border-top-color:var(--bad)}.kt-n{border-top-color:var(--accent)}
.ktl{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700}.ktv{font-size:28px;font-weight:800;line-height:1.15;font-variant-numeric:tabular-nums}.ktv small{font-size:13px;color:var(--muted);font-weight:500}.kts{font-size:11.5px;color:var(--muted)}
.hm{display:grid;gap:2px 1px;align-items:center;overflow-x:auto}
.hm-c{display:block;height:22px;border-radius:2px;min-width:7px}.hm-na{background:repeating-linear-gradient(45deg,#1a2a31 0 3px,#0f1d23 3px 6px)}.hm-neu{background:#16303a}
.hm-t{font-size:10px;color:var(--muted);white-space:nowrap;overflow:visible;height:14px}
.hm-n{display:flex;align-items:center;gap:6px;font-weight:650;font-size:12.5px;padding-right:6px}.hm-n i{width:9px;height:9px;border-radius:3px;display:inline-block}
.hm-a{font-size:12px;color:var(--muted);padding-left:10px;white-space:nowrap}.hm-a b{color:var(--ink);font-variant-numeric:tabular-nums}.hm-ah{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding-left:10px}
.hm-b{font-size:11px;font-weight:800;margin-left:4px}
.hm-lg{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:11.5px;color:var(--muted)}.hm-lg i{display:block;width:200px;height:10px;border-radius:5px}.hm-lg em{font-style:normal;margin-left:14px;display:flex;align-items:center;gap:5px}.hm-lg s{display:inline-block;width:12px;height:12px;border-radius:3px}

/* troubleshooting assistant */
.as-hd{display:flex;align-items:center;gap:12px;margin-bottom:10px}.as-ic{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;font-size:20px;background:linear-gradient(135deg,var(--accent),var(--accent2));color:var(--accent-ink)}.as-t{font-size:17px;font-weight:800}.as-s{font-size:13px;color:var(--muted)}
.as-sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.as-sum>div{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:8px 12px}.as-sum b{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.as-sum p{margin:4px 0 0;font-size:13px;line-height:1.45}
.as-verdict{margin:10px 0;padding:10px 14px;border-radius:10px;background:var(--info-bg);border:1px solid rgba(127,224,240,.3);font-weight:650}
.as-sec{margin-top:16px;padding-top:6px;border-top:1px solid var(--line)}.as-sec h3{margin:6px 0 8px;font-size:15px}
.as-stage{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-weight:800;margin:10px 0 4px}
.as-chk{display:flex;gap:10px;align-items:flex-start;padding:7px 10px;border:1px solid var(--line);border-radius:10px;margin-bottom:5px;background:rgba(255,255,255,.02);cursor:pointer}.as-chk input{margin-top:3px}.as-chk input:checked+span .as-ct{text-decoration:line-through;opacity:.55}
.as-ct{display:block;font-size:13.5px}.as-cm{display:block;font-size:11.5px;margin-top:2px}
.rk{font-size:10px;font-weight:800;padding:1px 7px;border-radius:999px;border:1px solid currentColor}.rk1,.rk2{color:var(--ok)}.rk3{color:var(--warn)}.rk4,.rk5{color:var(--bad)}
.as-cause{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:8px}.as-ch{display:flex;align-items:center;gap:8px;margin-bottom:6px}.as-rank{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:800;background:var(--accent);color:var(--accent-ink)}.as-pct{font-weight:800;color:var(--accent)}
.as-ev{margin:6px 0;font-size:12.5px}.ev-y{color:var(--ok)}.ev-n{color:var(--bad)}.ev-u{color:var(--muted)}
.as-how summary{cursor:pointer;color:var(--accent);font-weight:650;font-size:13px;margin-top:4px}.as-steps{margin:8px 0;padding-left:20px;font-size:13px}.as-steps li{margin-bottom:6px}.as-sm{font-size:11.5px;margin-top:2px}
.as-kit{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:8px 0}.as-kit>div{background:rgba(255,255,255,.025);border-radius:8px;padding:6px 10px}.as-kit b,.as-kit3 b,.as-cols b{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.as-kit3{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.as-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;margin:8px 0}
.as-ul{margin:4px 0 0;padding-left:18px;font-size:12.5px}.as-ul li{margin-bottom:3px}.as-safety li{color:var(--warn)}.as-src{font-size:9.5px;color:var(--info);border:1px solid currentColor;border-radius:999px;padding:0 5px;margin-left:4px}
.as-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:8px}.as-tile{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:8px 12px}.as-tile b{display:block;font-size:20px}.as-tile span{font-size:11px;color:var(--muted)}
.as-past{border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin:6px 0;background:rgba(255,255,255,.02)}.as-ph{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:3px}
.as-t2{width:100%;font-size:12.5px}.as-t2 td{padding:3px 6px;border-bottom:1px solid rgba(42,86,104,.35)}
.as-hit{padding:6px 0;border-bottom:1px solid rgba(42,86,104,.35)}.as-other{margin:6px 0}
.kb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;margin-top:12px}.kb-card{display:flex;flex-direction:column;gap:4px;background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:10px 12px;text-decoration:none;color:var(--ink)}.kb-card:hover{border-color:var(--accent)}

/* performance analytics */
.kd{font-size:9.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:1px 7px;border-radius:999px;border:1px solid currentColor;margin-left:4px;vertical-align:middle}
.kd-obs{color:var(--ok)}.kd-calc{color:var(--info)}.kd-model{color:var(--accent2)}.kd-hyp{color:var(--warn)}
.tls{position:relative;height:16px;background:rgba(139,176,189,.12);border-radius:6px;margin:4px 0 6px;overflow:hidden}.tls i{position:absolute;top:0;bottom:0;border-radius:3px;opacity:.9}
.gt{width:100%;border-collapse:collapse}.gt th{font-size:11.5px;text-align:center;background:rgba(var(--accent-rgb),.12)}.gt td{text-align:center;padding:6px 8px;border-bottom:1px solid rgba(42,86,104,.45)}.gtu th{font-size:10.5px;color:var(--muted);font-weight:600;background:transparent}.gtt td{border-top:2px solid var(--line2);background:rgba(255,255,255,.03)}

/* readability and alignment */
.small{font-size:13px}th{font-size:11.5px}.card h3{font-size:12.5px}.badge{font-size:12.5px}
.ktl{font-size:12px;display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.ktl .kd{flex:none;margin-left:0}.kts{font-size:13px;line-height:1.35}.kd{font-size:10.5px}.kt{display:flex;flex-direction:column;justify-content:space-between}
#anbody td,#anbody th{vertical-align:middle}#anbody td.mono,#anbody th.num{text-align:right;font-variant-numeric:tabular-nums}#anbody table td,#anbody table th{padding:9px 10px}
#anbody .card,#anhead{padding:16px 18px}#anbody h2{font-size:17px}#anbody h3{margin-top:16px}
.hm-t{font-size:11px}.hm-n{font-size:13.5px}.hm-a{font-size:13px}.hm-ah{font-size:11px}.hm-lg{font-size:12.5px}
.as-verdict{font-size:14.5px;line-height:1.45}.legend{font-size:13px}.legend span{margin-right:16px}
.gloss summary{cursor:pointer;font-size:14.5px;list-style:revert}.gl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px 22px;margin-top:12px}.gl-grid b{font-size:13.5px}
.warn-t{color:var(--warn)}
.zbar{display:flex;align-items:center;gap:8px;margin:2px 0 6px;flex-wrap:wrap}.zbar .btn{padding:4px 12px}.zbar .btn:disabled{opacity:.45;cursor:default}
.zw{position:relative}.zw canvas,.zw svg{cursor:crosshair;user-select:none}.zsel{display:none;position:absolute;top:0;bottom:0;background:rgba(var(--accent-rgb),.18);border:1px solid var(--accent);pointer-events:none}
.gtip{position:fixed;z-index:80;pointer-events:none;display:none;background:#0b1d27;border:1px solid var(--line2);border-radius:10px;padding:9px 12px;font-size:13px;line-height:1.45;box-shadow:0 10px 26px rgba(0,0,0,.55);max-width:360px}
.gt-h{font-weight:700;font-size:13.5px}.gt-r{display:flex;align-items:center;gap:8px;margin-top:3px}.gt-r i{width:10px;height:10px;border-radius:3px;flex:none}.gt-r span{flex:1;color:var(--muted)}.gt-r b{font-variant-numeric:tabular-nums}
.zx{display:none;position:absolute;top:14px;bottom:28px;width:1px;background:rgba(230,244,248,.55);pointer-events:none}
.feed2{display:flex;flex-direction:column;max-height:500px}.feed2 .items{overflow:auto;flex:1}
.evk{font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:1px 7px;border-radius:999px;border:1px solid currentColor}
.evk.Alarm{color:var(--bad)}.evk.Warning{color:var(--warn)}.evk.Ticket{color:var(--info)}.evk.Event{color:var(--ok)}
.newp{background:var(--accent);color:var(--accent-ink);font-size:9.5px;font-weight:800;border-radius:999px;padding:1px 6px;margin-left:5px}


/* ===== typography and alignment (fonts only; layout and colours unchanged) ===== */
body{font-family:Inter,"Segoe UI Variable Text","Segoe UI",system-ui,-apple-system,Roboto,sans-serif;font-size:13.5px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"tnum" 0}
b,strong{font-weight:600}
.crumb{font-size:16px;font-weight:600;letter-spacing:0}.crumb span{font-weight:400}
.portal b{font-weight:600}
.card h2,.panel h2,#anbody h2{font-size:15.5px;font-weight:600;letter-spacing:0}
.card h3,#anbody h3{font-size:11.5px;font-weight:600;letter-spacing:.06em}
.small{font-size:12.5px}
th{font-size:11px;font-weight:600;letter-spacing:.05em}
td,th{vertical-align:middle;line-height:1.4}
td.mono,th.num,.num{text-align:right;font-variant-numeric:tabular-nums}
.mono,.v,.ktv,.dmv,.big,.sm-v,.cp-v{font-variant-numeric:tabular-nums}
.vital .k,.ktl,.dml,.avh b,.dblk-h,.as-sum b,.as-kit b,.as-kit3 b,.as-cols b{font-weight:600;letter-spacing:.06em}
.vital .v{font-size:18px;font-weight:600}.ktv{font-size:25px;font-weight:600}.tile .v{font-size:20px;font-weight:600}.st-pw .big{font-size:27px;font-weight:600;letter-spacing:-.01em}
.kt{justify-content:flex-start;gap:3px}.ktl{min-height:34px}
.btn,.chip,.dd>summary,nav[role=tablist]:not(.rail-nav) button{font-weight:500}
.btn.p{font-weight:600}
.badge,.dpill,.cv{font-weight:600}.badge{font-size:12px}
.rail-nav button{font-weight:500;letter-spacing:0}
.st-top b,.dct b,.sm-gt,.in-t,.as-t{font-weight:600}
.as-verdict{font-weight:500}
.dsum-h{font-weight:600}
.avr .vals b,.kpit td{font-weight:600}.kpit td:first-child{font-weight:500}
.cp-n,.hm-n{font-weight:500}
.modal label{font-weight:600}
.arfield{display:grid;grid-template-columns:minmax(150px,1fr) auto;gap:2px 10px;margin:4px 0;align-items:center}.arfield>span:last-child{grid-column:1/-1}.arfield input[type=number]{width:96px}.arch input{border-color:var(--accent)}.artable td{vertical-align:top}
.legend{font-size:12.5px}
.docdrop{border:1.5px dashed var(--line2);border-radius:12px;padding:22px;text-align:center;background:rgba(255,255,255,.015);margin-bottom:12px;transition:border-color .12s,background .12s}.docdrop.on{border-color:var(--accent);background:rgba(var(--accent-rgb),.07)}
td.mono{white-space:nowrap}
.doc-pick{color:var(--accent);cursor:pointer;text-decoration:underline}
.docform{display:grid;grid-template-columns:1.5fr 1.3fr 1fr;gap:12px;margin-bottom:12px}.docform label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--muted);font-weight:600}.docform input,.docform select,.docform textarea{width:100%;font-weight:400;color:var(--ink)}.docform .docwide{grid-column:1/-1}.docform textarea{min-height:56px}
.docact{white-space:nowrap;text-align:right}.docact .btn{margin-left:6px;padding:4px 10px;font-size:12.5px}
@media(max-width:800px){.docform{grid-template-columns:1fr}}
.rptgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.rptcard{display:flex;flex-direction:column;justify-content:space-between;margin:0}
.rptform{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px 16px;margin-bottom:12px}.rptform label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--muted);font-weight:600}.rptform input,.rptform select{width:100%;font-weight:400;color:var(--ink)}.rptform label .small{font-weight:400}
.rptsel{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:10px;display:flex;flex-wrap:wrap;gap:4px 18px;align-items:center}.rptsel-h{display:flex;align-items:center;gap:8px;width:100%;margin-bottom:2px}.rptsel-h .btn{padding:2px 10px;font-size:12px}
.rptck{display:flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}
table.rpt th,table.rpt td{white-space:nowrap}table.rpt td:nth-child(n){max-width:340px;overflow:hidden;text-overflow:ellipsis}table.rpt thead th{position:sticky;top:0;background:#0e232d}table.rpt tfoot td{font-weight:700;border-top:2px solid var(--line2)}
th.num{text-align:right}
@media print{.rail,.topbar,.ribbon,.noprint,#modalRoot{display:none!important}.shell{display:block}body{background:#fff!important;color:#000!important}.card{background:#fff!important;border:0;box-shadow:none;color:#000}.muted,.small{color:#444!important}table.rpt thead th{background:#eee;color:#000;position:static}td,th{border-color:#bbb!important;color:#000}main{padding:0;max-width:none}div[style*="overflow:auto"]{max-height:none!important;overflow:visible!important}}
.rptsites{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center;padding-bottom:6px;max-width:100%}
.rpthead{display:flex;gap:16px 28px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap}.rptleft{flex:1 1 620px;min-width:0}
.rptper{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:flex-end;justify-content:flex-end;flex:0 1 300px;margin-left:auto}.rptper>span.small,.rptper>.rptsites{flex:1 0 100%;text-align:right;justify-content:flex-end;padding-bottom:0!important}
@media(max-width:900px){.rptper{justify-content:flex-start;flex-basis:100%}.rptper>span.small,.rptper>.rptsites{text-align:left;justify-content:flex-start}}
.rpttabs{display:flex;align-items:flex-end;gap:10px 16px;flex-wrap:wrap}.rptsite{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:flex-end;padding-bottom:4px}.rptsite .rptsites{flex:1 0 100%;padding-bottom:0}
#rptSiteList .rptsites{padding:10px 0 0}
.loginwrap{min-height:100vh;display:grid;place-items:center;padding:16px}.login{width:min(380px,100%);display:flex;flex-direction:column;gap:12px;margin:0}.login h2{margin:0}.login label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--muted);font-weight:600}.login input{width:100%;font-weight:400;color:var(--ink)}
input[type=number],input[type=password],input[type=date]{background:#08151c;border:1px solid var(--line2);border-radius:10px;padding:6px 10px;max-width:100%;color:var(--ink)}
input[type=color]{background:#08151c;border:1px solid var(--line2);border-radius:10px;padding:2px;height:34px;width:100%;max-width:140px}
input[type=file]{color:var(--muted);font-size:12.5px;max-width:100%}

/* Admin > Onboard project */
.onb-steps{padding-left:20px;line-height:2}.onb-file{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.onb-ok{background:rgba(44,213,196,.10);border:1px solid rgba(44,213,196,.4);border-radius:8px;padding:10px 12px}.onb-bad{background:rgba(255,107,107,.10);border:1px solid rgba(255,107,107,.45);border-radius:8px;padding:10px 12px}
.onb-scroll{overflow:auto;max-height:420px;margin-top:8px}.onb-issues td{vertical-align:top}.onb-issues tr.onb-error td{background:rgba(255,107,107,.05)}
.onb-stats{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.onb-stat{min-width:84px;padding:8px 10px;border:1px solid var(--line);border-radius:8px}.onb-stat .mono{font-size:18px}
.onb-tree{margin-top:6px}.onb-n{margin:4px 0 4px 14px}.onb-n>summary{cursor:pointer;padding:3px 0}.onb-leaf{margin:3px 0 3px 30px}
