:root{
  /* macOS surfaces */
  --ink:#1D1D1F; --ink-2:#000000; --rail:rgba(246,246,248,.85); --rail-2:#FBFCFD;
  --paper:#FAFAFC; --card:#FFFFFF; --line:rgba(0,0,0,.09); --line-2:rgba(0,0,0,.055);
  /* text — SF system greys */
  --tx:#1D1D1F; --tx-2:rgba(60,60,67,.6); --tx-3:rgba(60,60,67,.45); --tx-on:#E8EDF6; --tx-on-2:#9DAAC4;
  /* system accent (interactive) */
  --sysblue:#0A84FF; --sysblue-2:#0060DF;
  /* product (load-bearing for DATA only) */
  --pmg:#D11F2A; --hsd:#1F6FB2; --hobc:#7A4FB5;
  /* status — Apple system colours */
  --good:#34C759; --good-s:rgba(52,199,89,.12); --warn:#FF9F0A; --warn-s:rgba(255,159,10,.14); --bad:#FF3B30; --bad-s:rgba(255,59,48,.11);
  --grey:#8E8E93; --grey-s:rgba(120,120,128,.12);
  /* interactive accent */
  --sig:#0A84FF; --sig-s:rgba(10,132,255,.1); --sig-2:#0060DF;
  --r:16px; --r-sm:9px;
  --sh:0 1px 3px rgba(0,0,0,.06);
  --sh-rail:0 0 0 1px rgba(255,255,255,.04);
  --disp:-apple-system,'SF Pro Display','Space Grotesk','Inter',sans-serif; --body:-apple-system,'SF Pro Text','Inter',sans-serif; --mono:'SF Mono','JetBrains Mono',monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--paper);font-family:var(--body);color:var(--tx);line-height:1.45;-webkit-font-smoothing:antialiased}

/* ============ APP SHELL: rail + canvas ============ */
.app{display:grid;grid-template-columns:230px 1fr;min-height:100vh}
.rail{background:var(--rail);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);color:var(--tx);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:16px 12px;gap:1px;overflow-y:auto;border-right:1px solid var(--line)}
.rail>*{flex:0 0 auto}  /* every rail child keeps natural height — rail scrolls, never squashes/overlaps (content-height-independent) */
.rail .nav{flex:0 0 auto}
.navsec>*{flex:0 0 auto}
.rail .logo{display:flex;align-items:center;gap:10px;padding:2px 6px 12px;margin-bottom:6px}
.rail .logo .mk{width:28px;height:28px;border-radius:7px;background:var(--pmg);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:11px;letter-spacing:-.3px}
.rail .logo .lt{font-family:var(--body);font-weight:700;font-size:14px;letter-spacing:-.02em;line-height:1.1;color:var(--ink)}
.rail .logo .lt small{display:block;font-family:var(--body);font-weight:500;font-size:8.5px;letter-spacing:.1em;color:var(--tx-3);margin-top:2px}
.rail .grp{font-size:11px;font-weight:600;letter-spacing:.02em;text-transform:none;color:var(--tx-3);padding:10px 8px 4px}
.rail .grp-tog{display:flex;align-items:center;gap:6px;width:100%;background:none;border:none;cursor:pointer;font-family:var(--body);text-align:left;transition:.1s}
.rail .grp-tog:hover{color:var(--tx-2)}
.rail .grp-tog .caret{font-size:12px;font-weight:600;width:11px;display:inline-block;color:var(--tx-3);transition:.15s}
.navsec{overflow:hidden;transition:max-height .22s ease;max-height:1000px}
.navsec.collapsed{max-height:0}
.nav{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:7px;font-size:13px;font-weight:500;color:var(--tx);cursor:pointer;border:none;background:none;font-family:var(--body);width:100%;text-align:left;transition:.1s;position:relative;margin-bottom:1px}
.nav:hover{background:rgba(120,120,128,.1)}
.nav.active{background:rgba(19,75,122,.1);color:var(--ink);font-weight:600}
.nav.active::before{display:none}
.nav .ic{width:22px;height:22px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:6px;background:rgba(120,120,128,.16);color:var(--tx-2);transition:.1s}
.nav .ic svg{width:13px;height:13px;stroke:var(--tx-2);stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;transition:.1s}
.nav:hover .ic{background:rgba(120,120,128,.22)}
.nav.active .ic{background:#134B7A}
.nav.active .ic svg{stroke:#fff}
.nav .bdg{margin-left:auto;font-family:var(--body);font-size:10.5px;font-weight:600;color:var(--tx-3);background:none;padding:0 2px;border-radius:20px}
.nav.active .bdg{color:var(--tx-2)}
.nav .bdg.alert{background:var(--bad);color:#fff;font-size:9.5px;font-weight:700;padding:1px 0;min-width:22px;text-align:center;border-radius:20px;letter-spacing:.01em}
.nav .bdg.warn{background:var(--warn);color:#fff;font-size:9.5px;font-weight:700;padding:1px 0;min-width:22px;text-align:center;border-radius:20px}
.nav .bdg.info{background:var(--hsd);color:#fff;font-size:9.5px;font-weight:700;padding:1px 0;min-width:22px;text-align:center;border-radius:20px}
.nav.active .bdg.alert{background:var(--bad);color:#fff}
.rail .spacer{flex:0 0 14px;min-height:14px}
.rail .region-key{flex:0 0 auto;border-top:1px solid var(--line);padding-top:10px;margin-top:8px}
.rkrow{display:flex;align-items:center;gap:8px;padding:5px 8px;font-size:11px;color:var(--tx-2)}
.rkrow .sw{width:7px;height:7px;border-radius:2px}
.rkrow b{color:var(--ink);font-weight:600}
.rkrow span.rm{margin-left:auto;font-family:var(--body);font-size:10.5px;color:var(--tx-3)}

/* canvas */
.canvas{padding:0 0 60px;max-width:none}
.content-wrap{padding:0 26px;max-width:1400px}
.winlights{display:flex;gap:7px;padding:0 6px 16px}
.winlights span{width:11px;height:11px;border-radius:50%}
.topbar{display:flex;align-items:center;gap:14px;padding:13px 26px;margin:0 0 22px;background:rgba(255,255,255,.82);backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:40}
.topbar .crumb{flex:1;min-width:160px}
.topbar .crumb h1{font-family:var(--disp);font-size:19px;font-weight:700;letter-spacing:-.02em;line-height:1.1}
.topbar .crumb .desc{font-size:11.5px;font-weight:500;color:var(--tx-3);margin-top:2px}
.seg{display:flex;align-items:center;gap:3px;background:rgba(120,120,128,.12);border-radius:8px;padding:3px}
.seg button{font-family:var(--body);font-size:11.5px;font-weight:500;padding:4px 12px;border-radius:6px;color:var(--tx-2);cursor:pointer;border:none;background:none;transition:.1s}
.seg button.on{font-weight:600;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.12);color:var(--ink)}
.tb-search{display:flex;align-items:center;gap:7px;background:rgba(120,120,128,.12);border-radius:8px;padding:6px 11px;cursor:text;min-width:128px}
.tb-search svg{width:13px;height:13px;stroke:var(--tx-3);stroke-width:1.8;fill:none;stroke-linecap:round}
.tb-search span{font-size:12px;color:var(--tx-3);font-weight:500}
.tb-export{display:flex;align-items:center;gap:6px;font-family:var(--body);font-size:12.5px;font-weight:600;color:#fff;background:var(--sysblue);border:none;border-radius:8px;padding:7px 14px;cursor:pointer;transition:.1s}
.tb-export svg{width:14px;height:14px;stroke:#fff;stroke-width:1.9;fill:none;stroke-linecap:round;stroke-linejoin:round}
.tb-export:hover{background:var(--sysblue-2)}

/* ============ VITALS STRIP (persistent) ============ */
.vitals{display:grid;grid-template-columns:repeat(5,1fr);gap:13px;margin:0 26px 18px;padding:0}
.vital{background:var(--card);padding:15px 17px;position:relative;border:1px solid var(--line-2);border-radius:14px}
.vital .vl{font-size:11px;font-weight:600;letter-spacing:.01em;text-transform:none;color:var(--tx-3);display:flex;align-items:center;gap:6px}
.vital .vl .dotind{width:7px;height:7px;border-radius:50%}
.vital .vv{font-family:var(--disp);font-weight:700;font-size:25px;letter-spacing:-.02em;line-height:1.05;margin-top:6px;font-feature-settings:"tnum" 1}
.vital .vv small{font-size:14px;font-weight:600;color:var(--tx-3)}
.vital .vs{font-family:var(--mono);font-size:10.5px;color:var(--tx-3);margin-top:4px}
.vital.clk{cursor:pointer;transition:.12s}.vital.clk:hover{border-color:var(--ink)}

/* ============ FILTERS ============ */
.filters{background:var(--card);border:1px solid var(--line-2);border-radius:var(--r);box-shadow:var(--sh);padding:13px 16px;margin-bottom:18px;display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:11px}
.fgrp label{display:block;font-size:11px;letter-spacing:0;color:var(--tx-2);font-weight:500;margin-bottom:5px}
.fgrp select,.fgrp input{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font-family:var(--body);font-size:12.5px;font-weight:500;color:var(--tx);background:#fff;cursor:pointer}
.fgrp select:focus,.fgrp input:focus{outline:none;border-color:var(--sysblue);box-shadow:0 0 0 3px var(--sig-s)}
.reset{align-self:end;padding:7px 15px;border:none;background:var(--sysblue);border-radius:8px;font-size:12px;font-weight:600;color:#fff;cursor:pointer;font-family:var(--body);transition:.1s}
.reset:hover{background:var(--sysblue-2)}

/* ============ CARDS / SECTIONS ============ */
.section{background:var(--card);border:1px solid var(--line-2);border-radius:var(--r);box-shadow:var(--sh);margin-bottom:18px;overflow:hidden}
.sh{padding:15px 20px;border-bottom:1px solid var(--line-2);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}
.sh h3{font-size:14px;font-weight:700;font-family:var(--disp);display:flex;align-items:center;gap:9px}
.sh h3 .seg{display:none}
.sh .note{font-size:11px;color:var(--tx-3)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}
.grid2b{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;margin-bottom:18px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:18px}
.panel{background:var(--card);border:1px solid var(--line-2);border-radius:var(--r);box-shadow:var(--sh);padding:20px 22px}
.panel h3{font-family:var(--disp);font-size:14px;font-weight:700;margin-bottom:2px;display:flex;align-items:center;gap:8px}
.panel .ph{font-size:11.5px;color:var(--tx-3);margin-bottom:15px}

/* KPI band */
.kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:18px}
.kpi{background:var(--card);border:1px solid var(--line-2);border-radius:14px;box-shadow:var(--sh);padding:14px 16px;position:relative;overflow:hidden}
.kpi::before{display:none}
.kpi.k-good::before{background:var(--good)}.kpi.k-warn::before{background:var(--warn)}.kpi.k-bad::before{background:var(--bad)}.kpi.k-steel::before{background:var(--hsd)}.kpi.k-pmg::before{background:var(--pmg)}
.kpi .cap{font-size:11px;text-transform:none;letter-spacing:0;color:var(--tx-3);font-weight:700;margin-bottom:7px}
.kpi .big{font-size:26px;font-weight:700;font-family:var(--disp);font-feature-settings:"tnum" 1;letter-spacing:-1px;line-height:1}
.kpi .big small{font-size:14px;font-weight:600;color:var(--tx-3)}
.kpi .sub{font-size:10.5px;color:var(--tx-3);font-weight:500;margin-top:4px;font-family:var(--mono)}

/* pills / trend */
.pill{display:inline-block;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:700;font-family:var(--body)}
.pill.good{background:var(--good-s);color:var(--good)}.pill.warn{background:var(--warn-s);color:var(--warn)}.pill.bad{background:var(--bad-s);color:var(--bad)}.pill.grey{background:var(--grey-s);color:var(--grey)}
.trend{font-family:var(--mono);font-weight:600;font-size:12px}
.trend.up{color:var(--good)}.trend.down{color:var(--bad)}.trend.flat{color:var(--tx-3)}
.reg-tag{font-size:9.5px;font-weight:700;padding:1px 7px;border-radius:5px;margin-left:7px;letter-spacing:.02em}
.reg-North{background:var(--bad-s);color:var(--pmg)}.reg-Centre{background:#E5F0F8;color:var(--hsd)}

/* ============ TOLERANCE GAUGE (signature) ============ */
.gauge{position:relative}
.gauge svg{display:block;width:100%;height:auto;overflow:visible}

/* ============ HIERARCHY ROWS ============ */
.hrow{display:grid;grid-template-columns:2fr 1fr 1.1fr 1fr 1.3fr;gap:10px;padding:11px 18px;border-bottom:1px solid var(--line-2);align-items:center;font-size:13px}
.hrow.region{background:#FAFBFD;cursor:pointer;font-weight:700}
.hrow.region:hover{background:#F3F6FA}
.hrow.asm{cursor:pointer;padding-left:34px}.hrow.asm:hover{background:#FBFCFE}
.hrow.site{padding-left:54px;font-size:12.5px;color:var(--tx-2);cursor:pointer}.hrow.site:hover{background:#FBFCFE}
.hrow.hdr{background:#FBFCFE;font-size:9.5px;text-transform:none;letter-spacing:0;color:var(--tx-3);font-weight:700;padding:10px 18px}
.hrow .label{display:flex;align-items:center;gap:8px}
.caret{display:inline-block;width:13px;font-size:10px;color:var(--tx-3);transition:transform .15s}
.caret.open{transform:rotate(90deg)}
.metric{font-family:var(--mono);font-weight:600;text-align:right;font-size:12px}

/* recon visit grid */
.vgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:9px;padding:16px 18px}
.vcell{border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px;font-size:11px;background:#fff;cursor:pointer;transition:.12s;position:relative;overflow:hidden}
.vcell::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px}
.vcell:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(11,18,32,.1);border-color:var(--line)}
.vcell .vc-code{font-family:var(--mono);font-weight:700;font-size:12px}
.vcell .vc-city{color:var(--tx-3);font-size:10px;margin:1px 0 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vcell .vc-stat{font-size:9.5px;font-weight:700;text-transform:none;letter-spacing:0}
.vcell .vc-val{font-family:var(--mono);font-size:11px;font-weight:600;margin-top:3px}
.vcell.s-good::before{background:var(--good)}.vcell.s-good .vc-stat{color:var(--good)}
.vcell.s-warn::before{background:var(--warn)}.vcell.s-warn .vc-stat{color:var(--warn)}
.vcell.s-bad::before{background:var(--bad)}.vcell.s-bad .vc-stat{color:var(--bad)}
.vcell.s-pending{background:var(--grey-s)}.vcell.s-pending::before{background:var(--grey)}.vcell.s-pending .vc-stat{color:var(--grey)}

/* chart */
.chartwrap{padding:18px}
.chart-legend{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:12px;font-size:12px}
.chart-legend span{display:inline-flex;align-items:center;gap:6px;font-weight:500}
.chart-legend i{width:14px;height:3px;border-radius:2px;display:inline-block}
.gridline{stroke:var(--line);stroke-width:1}
.axlabel{font-size:10px;fill:var(--tx-3);font-family:var(--mono)}
.dataline{fill:none;stroke-width:2.5}
.dot{stroke:#fff;stroke-width:1.5}

/* tables */
table{width:100%;border-collapse:collapse}
thead th{font-size:9.5px;text-transform:none;letter-spacing:.05em;color:var(--tx-3);font-weight:700;text-align:left;padding:9px 18px;border-bottom:1px solid var(--line)}
thead th.r{text-align:right}thead th.c{text-align:center}
tbody td{padding:9px 18px;border-bottom:1px solid var(--line-2);font-size:12.5px}
tbody td.r{text-align:right;font-family:var(--mono);font-weight:600}
tbody td.c{text-align:center}
tbody tr:last-child td{border-bottom:none}
tbody tr.clk{cursor:pointer}tbody tr.clk:hover{background:#FBFCFE}
.rank{font-family:var(--mono);font-weight:700;color:var(--tx-3);width:24px;text-align:center}
.rank.r1{color:var(--good)}.rank.last{color:var(--bad)}
.scorecell{font-family:var(--mono);font-weight:700;font-size:13px}
.minibar{display:inline-block;width:54px;height:6px;border-radius:3px;background:var(--line-2);overflow:hidden;vertical-align:middle;margin-left:8px}
.minibar i{display:block;height:100%}
.flagcell{font-family:var(--mono);font-weight:600;font-size:12px}.flagcell.hi{color:var(--bad)}

/* inspection benchmark */
.catbar{margin-bottom:14px}.catbar:last-child{margin-bottom:0}
.catbar .cl{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:5px}
.catbar .cl .nm{font-size:13px;font-weight:600}
.catbar .cl .pc{font-family:var(--mono);font-weight:700;font-size:14px}
.catbar .track{height:13px;border-radius:7px;background:var(--line-2);overflow:hidden;position:relative}
.catbar .track i{display:block;height:100%;border-radius:7px}
.catbar .track .mark{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--tx);opacity:.3}
.weakest{font-size:11px;font-weight:600;color:var(--bad);margin-top:12px;background:var(--bad-s);border-radius:8px;padding:8px 11px;display:flex;gap:7px;align-items:center}

/* inspection site grid */
/* --- inspection flag queue (model B, RM per-flag confirm/return) --- */
.ifqueue{padding:14px 18px}
.ifqbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:10px 14px;background:var(--paper);border:1px solid var(--line-2);border-radius:11px;margin-bottom:12px}
.ifqc{font-size:12px;color:var(--tx-2)}.ifqc b{font-family:var(--disp);font-size:16px;color:var(--ink);margin-right:3px}
.ifqc.crit b{color:var(--bad)}.ifqc.sub b{color:var(--warn)}
.ifqnote{margin-left:auto;font-size:11px;color:var(--tx-3);font-family:var(--mono)}
.ifrow{display:flex;gap:14px;align-items:flex-start;padding:14px 16px;border:1px solid var(--line-2);border-radius:12px;margin-bottom:9px;border-left-width:3px}
.ifrow.crit{border-left-color:var(--bad)}.ifrow.std{border-left-color:var(--warn)}
.ifrow.closed{opacity:.7;border-left-color:var(--good)}
.ifmain{flex:1;min-width:0}
.ifhd{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:5px}
.ifsev{font-family:var(--mono);font-size:9.5px;font-weight:700;padding:2px 8px;border-radius:5px}
.ifsev.crit{background:var(--bad-s);color:var(--bad)}.ifsev.std{background:var(--warn-s);color:#92600F}
.ifcat{font-size:12px;font-weight:600;color:var(--ink)}
.ifq{font-family:var(--mono);font-size:10.5px;color:var(--hsd);background:rgba(31,111,178,.08);padding:1px 6px;border-radius:4px}
.ifstat{font-family:var(--mono);font-size:10px;font-weight:700;padding:2px 8px;border-radius:20px;margin-left:auto}
.ifstat.raised{background:var(--grey-s);color:var(--tx-2)}
.ifstat.sub{background:var(--warn-s);color:#92600F}
.ifstat.ret{background:var(--bad-s);color:var(--bad)}
.ifstat.closed{background:var(--good-s);color:#0E6B49}
.ifdesc{font-size:13px;color:var(--tx);margin-bottom:4px}
.ifmeta{font-size:11.5px;color:var(--tx-2)}.ifmeta b{color:var(--ink)}
.ifid{font-family:var(--mono);font-size:10.5px;color:var(--tx-3);margin-left:4px}
.ifev{margin-top:8px;padding:8px 11px;background:rgba(31,111,178,.05);border:1px solid rgba(31,111,178,.12);border-radius:8px;font-size:12px;color:var(--tx)}
.ifev-l{display:block;font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--hsd);margin-bottom:3px;font-weight:700}
.iffoot{flex-shrink:0;display:flex;align-items:center;min-width:170px;justify-content:flex-end}
.ifacts{display:flex;gap:7px}
.ifbtn{font-family:var(--body);font-size:12px;font-weight:600;padding:7px 13px;border-radius:8px;cursor:pointer;border:1px solid var(--line)}
.ifbtn.ok{background:var(--good);color:#fff;border-color:var(--good)}
.ifbtn.ret{background:#fff;color:var(--bad);border-color:rgba(255,59,48,.35)}
.ifwait{font-size:11.5px;color:var(--tx-3);font-family:var(--mono);text-align:right}
.ifwait.ret{color:var(--bad)}.ifwait.ok{color:#0E6B49}

.legend{display:flex;gap:14px;margin:0 0 12px;font-size:11px;color:var(--tx-2);align-items:center;flex-wrap:wrap}
.legend span{display:flex;align-items:center;gap:5px}
.ldot{width:10px;height:10px;border-radius:3px}
.regionblock{margin-bottom:18px}
.regionhead{display:flex;align-items:center;gap:11px;padding:9px 2px;margin-bottom:9px;border-bottom:1px solid var(--line)}
.regionhead .rtag{font-family:var(--disp);font-weight:700;font-size:13px;padding:3px 12px;border-radius:7px;color:#fff}
.regionhead .rrm{font-size:12.5px;font-weight:600;color:var(--tx-2)}
.regionhead .rstats{margin-left:auto;font-family:var(--mono);font-size:11.5px;font-weight:600;color:var(--tx-2);display:flex;gap:12px;align-items:center}
.regionhead .rstats b{color:var(--tx)}
.regionhead .rstats .bdg2{padding:1px 7px;border-radius:5px;font-weight:700}
.sitegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:7px}
.iscore{border-radius:9px;padding:8px 6px;text-align:center;cursor:pointer;border:1px solid transparent;transition:.12s;position:relative}
.iscore:hover{transform:translateY(-2px);box-shadow:0 6px 14px rgba(11,18,32,.12)}
.iscore .sc{font-family:var(--mono);font-size:9.5px;font-weight:700;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.iscore .sp{font-family:var(--disp);font-size:17px;font-weight:700;line-height:1;margin-top:3px}
.iscore.green{background:var(--good-s);color:#0E6B49}.iscore.green .sc{color:var(--good)}
.iscore.amber{background:var(--warn-s);color:#92600F}.iscore.amber .sc{color:var(--warn)}
.iscore.red{background:var(--bad-s);color:#9A2A20}.iscore.red .sc{color:var(--bad)}
.iscore.unvisited{background:#F0F2F5;color:#9AA3AF;border:1px dashed #CBD2DB}
.iscore.unvisited .sp{font-size:11px;font-weight:600;margin-top:5px}
.botgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:16px 18px}
.botcard{border:1px solid var(--line);border-left:3px solid var(--bad);border-radius:11px;padding:12px 13px;cursor:pointer}
.botcard:hover{box-shadow:0 6px 14px rgba(11,18,32,.09)}
.botcard .bc{font-family:var(--mono);font-weight:700;font-size:12px;color:var(--pmg)}
.botcard .bn{font-size:12px;font-weight:600;margin-top:1px}
.botcard .bm{font-size:10.5px;color:var(--tx-3);margin-top:1px}
.botcard .bs{font-family:var(--disp);font-weight:700;font-size:22px;margin-top:6px;color:var(--bad)}
.botcard .bs small{font-size:11px;color:var(--tx-3);font-weight:500;margin-left:4px}

/* ============ HUB ============ */
.hub-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:18px}
.hubcard{background:var(--card);border:1px solid var(--line-2);border-radius:var(--r);box-shadow:var(--sh);padding:0;cursor:pointer;transition:.14s;overflow:hidden;display:flex;flex-direction:column}
.hubcard:hover{box-shadow:0 4px 16px rgba(0,0,0,.1)}
.hubcard .hc-h{display:flex;align-items:center;gap:11px;padding:15px 18px;border-bottom:1px solid var(--line-2)}
.hubcard .hc-h .ico{width:30px;height:30px;border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--ico-c,var(--sysblue))}
.hubcard .hc-h .ico svg{width:16px;height:16px;stroke:#fff;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}
.hubcard .hc-h h3{font-family:var(--disp);font-size:14px;font-weight:700;letter-spacing:-.01em}
.hubcard .hc-h .sub{font-size:11px;color:var(--tx-3);margin-top:1px}
.hubcard .hc-h .arr{margin-left:auto;color:var(--tx-3);width:16px;height:16px;transition:.14s}
.hubcard:hover .hc-h .arr{color:var(--sysblue);transform:translateX(2px)}
.hubcard .hc-h .arr svg{width:16px;height:16px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}
.hubcard .hc-b{padding:16px 18px;flex:1}
.hub-stat{display:flex;gap:24px;flex-wrap:wrap}
.hub-stat .s .n{font-family:var(--disp);font-weight:700;font-size:27px;letter-spacing:-.6px;line-height:1}
.hub-stat .s .n small{font-size:14px;color:var(--tx-3)}
.hub-stat .s .l{font-size:10px;color:var(--tx-3);font-weight:600;text-transform:none;letter-spacing:0;margin-top:4px}
.hub-spark{margin-top:14px}

/* ===== Navy command board (Network Overview hero) ===== */
.cmd{background:linear-gradient(160deg,#0B1F3A 0%,#0E2747 55%,#10305A 100%);border-radius:18px;padding:20px 22px 22px;margin-bottom:20px;box-shadow:0 6px 24px rgba(11,31,58,.28);position:relative;overflow:hidden}
.cmd::after{content:"";position:absolute;inset:0;background:radial-gradient(900px 300px at 88% -10%,rgba(10,132,255,.16),transparent 70%);pointer-events:none}
.cmd-h{display:flex;align-items:baseline;gap:12px;margin-bottom:16px;position:relative;z-index:1}
.cmd-h .t{font-family:var(--disp);font-size:14px;font-weight:700;letter-spacing:.02em;color:#fff;text-transform:none}
.cmd-h .s{font-size:11.5px;color:var(--tx-on-2);font-weight:500}
.cmd-h .legend{margin-left:auto;display:flex;gap:13px;align-items:center}
.cmd-h .legend i{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;color:var(--tx-on-2);font-weight:500}
.cmd-h .legend i b{width:7px;height:7px;border-radius:50%;display:inline-block}
.cmd-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:11px;position:relative;z-index:1}
.tile{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);border-radius:12px;padding:12px 13px 11px;cursor:pointer;transition:.13s;text-align:left;display:flex;flex-direction:column;gap:0;min-height:96px;position:relative}
.tile:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2);transform:translateY(-1px)}
.tile .tl{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:600;letter-spacing:.01em;color:var(--tx-on-2);text-transform:none;line-height:1.2}
.tile .tl .d{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.tile .tv{font-family:var(--disp);font-weight:700;font-size:26px;letter-spacing:-.02em;line-height:1;color:#fff;margin-top:auto;font-feature-settings:"tnum" 1}
.tile .tv small{font-size:13px;font-weight:600;color:var(--tx-on-2);letter-spacing:0}
.tile .ts{font-size:10px;color:var(--tx-on-2);margin-top:4px;font-family:var(--mono);line-height:1.3}
.tile .alert-pip{position:absolute;top:11px;right:11px;font-family:var(--mono);font-size:10px;font-weight:700;color:#fff;background:var(--bad);border-radius:20px;padding:1px 7px}
@media(max-width:1080px){.cmd-grid{grid-template-columns:repeat(3,1fr)}.cmd-h .legend{display:none}}
@media(max-width:640px){.cmd-grid{grid-template-columns:repeat(2,1fr)}}
@media print{.cmd{background:#0B1F3A!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* ===== Operational domain decks ===== */
.decks{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px}
.decks.slim{margin-bottom:16px}
.deck{border-radius:16px;padding:15px 16px 14px;position:relative;overflow:hidden;color:#fff;display:flex;flex-direction:column;box-shadow:0 6px 20px rgba(11,31,58,.16);cursor:pointer;transition:transform .14s,box-shadow .14s}
.deck:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(11,31,58,.26)}
.deck:hover .deck-open{background:rgba(255,255,255,.4)}
.deck.big{min-height:262px}
.deck.slim{min-height:200px}
/* palette: each deck a unique colour */
.deck.c-blue{background:linear-gradient(155deg,#1A5A92 0%,#134B7A 45%,#0C3355 100%)}
.deck.c-red{background:linear-gradient(155deg,#C0252E 0%,#A01821 46%,#6E0F16 100%)}
.deck.c-grey{background:linear-gradient(155deg,#4A535F 0%,#39414C 48%,#252A33 100%)}
.deck.c-green{background:linear-gradient(155deg,#1B8A4F 0%,#13713F 46%,#0B4D2B 100%)}
.deck.c-amber{background:linear-gradient(155deg,#D98414 0%,#B86C0C 46%,#824A06 100%)}
.deck.c-teal{background:linear-gradient(155deg,#138A8A 0%,#0E7070 46%,#084A4A 100%)}
.deck::before{content:"";position:absolute;width:200px;height:200px;border-radius:50%;top:-78px;right:-58px;background:rgba(255,255,255,.12)}
.deck::after{content:"";position:absolute;width:110px;height:110px;border-radius:50%;bottom:-40px;left:-30px;background:rgba(255,255,255,.06)}
.deck>*{position:relative;z-index:1}
.deck-h{display:flex;align-items:center;gap:8px;margin-bottom:3px}
.deck-h .di{width:28px;height:28px;border-radius:8px;background:rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.deck-h .di svg{width:15px;height:15px;stroke:#fff;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.deck-h .dt{font-family:var(--disp);font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.deck-h .dc{font-size:9.5px;font-weight:700;background:rgba(255,255,255,.2);padding:2px 8px;border-radius:20px;margin-left:6px}
.deck-h .deck-open{margin-left:auto;width:24px;height:24px;border-radius:7px;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:.14s}
.deck-h .deck-open svg{width:13px;height:13px;stroke:#fff;stroke-width:2.4;fill:none;stroke-linecap:round;stroke-linejoin:round}
.deck-hero{margin:5px 0 1px}
.deck.big .deck-hero .big{font-family:var(--disp);font-weight:800;font-size:48px;line-height:.92;letter-spacing:-2px;text-shadow:0 2px 10px rgba(0,0,0,.15)}
.deck.slim .deck-hero .big{font-family:var(--disp);font-weight:800;font-size:42px;line-height:.92;letter-spacing:-1.5px}
.deck-hero .big small{font-size:21px;font-weight:700;opacity:.8;letter-spacing:-1px}
.deck-hero .big .pre{font-size:18px;font-weight:700;opacity:.78;letter-spacing:0;margin-right:3px}
.deck-hero .big .heronote{font-family:var(--body);font-size:10.5px;font-weight:600;opacity:.82;letter-spacing:0;margin-left:9px;vertical-align:middle;white-space:nowrap}
.deck-hero .heroregions{font-family:var(--mono);font-size:10.5px;font-weight:700;opacity:.85;margin-top:4px;letter-spacing:.01em}
.deck-hero .cap{font-size:11px;font-weight:600;opacity:.9;margin-top:3px}
.trendpill{display:inline-flex;align-items:center;gap:3px;font-family:var(--mono);font-size:10.5px;font-weight:800;padding:1px 7px;border-radius:20px;margin:0 4px;vertical-align:middle;background:rgba(255,255,255,.22)}
.trendpill svg{width:11px;height:11px;stroke:currentColor;stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round}
.trendpill.up{color:#C8F5DA}.trendpill.down{color:#FFC9C9}
.rsplit{margin:11px 0 1px;background:rgba(255,255,255,.12);border-radius:10px;padding:9px 11px}
.rsplit .rh{display:flex;justify-content:space-between;font-size:9px;font-weight:700;opacity:.85;text-transform:uppercase;letter-spacing:.04em;margin-bottom:7px}
.rsplit .rrow{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.rsplit .rrow:last-child{margin-bottom:0}
.rsplit .rlab{font-size:10px;font-weight:700;width:46px;flex-shrink:0;opacity:.92}
.rsplit .rtrack{flex:1;height:8px;border-radius:5px;background:rgba(0,0,0,.22);overflow:hidden}
.rsplit .rfill{height:100%;border-radius:5px}
.rsplit .rval{font-family:var(--mono);font-size:10px;font-weight:800;width:54px;text-align:right;flex-shrink:0}
.deck-mini{display:flex;gap:6px;margin:11px 0 1px}
.deck-mini .m{flex:1;background:rgba(255,255,255,.14);border-radius:9px;padding:7px 9px;cursor:pointer;transition:.13s}
.deck-mini .m:hover{background:rgba(255,255,255,.28)}
.deck-mini .m .mv{font-family:var(--disp);font-weight:800;font-size:17px;line-height:1;letter-spacing:-.5px}
.deck-mini .m .mv small{font-size:10px;opacity:.8}
.deck-mini .m .mv .pre{font-size:11px;opacity:.78;margin-right:2px}
.deck-mini .m .ml{font-size:9px;opacity:.85;margin-top:3px;font-weight:600;line-height:1.25}
/* utilisation meter */
.umeter{margin:10px 0 1px}
.umeter .ut{display:flex;justify-content:space-between;font-size:9.5px;opacity:.9;font-weight:700;margin-bottom:4px}
.umeter .ubar{height:7px;border-radius:5px;background:rgba(0,0,0,.22);overflow:hidden}
.umeter .ufill{height:100%;border-radius:5px;background:#fff;transition:width .5s}
.agebar{display:flex;height:7px;border-radius:5px;overflow:hidden;margin-top:8px;background:rgba(0,0,0,.22)}
.agebar span{height:100%}
.agekey{display:flex;gap:10px;margin-top:6px;flex-wrap:wrap}
.agekey span{display:inline-flex;align-items:center;gap:4px;font-size:9px;font-weight:700;opacity:.9;font-family:var(--mono)}
.agekey i{width:7px;height:7px;border-radius:2px;display:inline-block}
/* financials due schedule */
.duegrid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.duecol{background:#fff;border:1px solid var(--line);border-radius:12px;padding:13px 14px}
.duecol .dl{font-size:10.5px;color:var(--tx-3);font-weight:700;margin-bottom:7px;text-transform:uppercase;letter-spacing:.02em}
.duecol .da{font-family:var(--disp);font-size:20px;font-weight:800;letter-spacing:-.5px;color:var(--ink)}
.duecol .dn{font-size:10.5px;color:var(--tx-2);margin-top:3px;font-family:var(--mono)}
.duecol.urgent{border-color:#F2C200;background:linear-gradient(180deg,#FFFBEF,#fff)}
.duecol.urgent .da{color:#9A6B00}
.duecol.over{border-color:var(--bad);background:linear-gradient(180deg,#FDF1F1,#fff)}
.duecol.over .da{color:var(--bad)}
@media(max-width:900px){.duegrid{grid-template-columns:repeat(2,1fr)}}
.duecol .dd{font-size:10px;color:var(--tx-3);font-family:var(--mono);margin:-3px 0 7px}
/* financials two-column layout */
.fingrid{display:grid;grid-template-columns:1.85fr 1fr;gap:14px;align-items:start}
@media(max-width:1080px){.fingrid{grid-template-columns:1fr}}
.finbox{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 17px;margin-bottom:14px}
.finbox .sh{margin-bottom:13px}
/* region split */
.finregion{background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px 16px;margin-bottom:14px}
.finregion .frlab{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--tx-3);margin-bottom:11px}
.frrow{display:flex;align-items:center;gap:10px;margin-bottom:9px}
.frrow:last-child{margin-bottom:0}
.frrow .frn{font-size:11px;font-weight:600;color:var(--tx-2);width:120px;flex-shrink:0}
.frrow .frtrack{flex:1;height:9px;border-radius:5px;background:var(--line-2);overflow:hidden}
.frrow .frtrack span{display:block;height:100%;border-radius:5px}
.frrow .frv{font-family:var(--mono);font-size:11px;font-weight:800;width:72px;text-align:right;flex-shrink:0}
/* receipts list */
.rcptmeta{display:flex;gap:10px;margin-bottom:12px}
.rcptmeta>div{flex:1;background:var(--line-2);border-radius:10px;padding:9px 11px}
.rcptmeta .rl{display:block;font-size:9.5px;color:var(--tx-3);font-weight:700;text-transform:uppercase;margin-bottom:3px}
.rcptmeta .rv{font-family:var(--disp);font-size:15px;font-weight:800;color:var(--good)}
.rcptlist{display:flex;flex-direction:column}
.rcptrow{display:flex;justify-content:space-between;align-items:center;padding:9px 4px;border-bottom:1px solid var(--line);cursor:pointer;transition:.1s}
.rcptrow:last-child{border-bottom:none}
.rcptrow:hover{background:#FBFCFE}
.rcptrow .rc1{font-size:12px;font-weight:600;color:var(--ink)}
.rcptrow .rc2{font-size:10px;color:var(--tx-3);font-family:var(--mono);margin-top:2px}
.rcptrow .rcr{text-align:right}
.rcptrow .rca{font-family:var(--mono);font-size:12px;font-weight:800;color:var(--good)}
.rcptrow .rcm{font-size:9.5px;font-weight:700;margin-top:2px}
/* ledger */
.fledhead,.fledrow{display:grid;grid-template-columns:2.2fr 1fr 1fr 1fr 1.1fr .9fr;gap:8px;align-items:center}
.fledhead.fl7,.fledlist .fledrow{grid-template-columns:2.1fr .95fr .95fr 1fr 1fr .7fr .85fr}
/* FIFO ageing bar */
.agewrap{margin-top:4px}
.agebar2{display:flex;height:14px;border-radius:7px;overflow:hidden;background:var(--line-2)}
.agebar2 span{height:100%}
.agelegend{display:flex;flex-wrap:wrap;gap:14px;margin-top:11px}
.agelegend span{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--tx-2);font-weight:600}
.agelegend i{width:9px;height:9px;border-radius:3px}
.agelegend b{font-family:var(--mono);color:var(--ink)}
/* AM/region exposure */
.finseg{display:inline-flex;background:var(--line-2);border-radius:8px;padding:2px;gap:2px}
.finseg button{border:none;background:none;font-family:var(--body);font-size:11px;font-weight:600;color:var(--tx-2);padding:4px 11px;border-radius:6px;cursor:pointer;transition:.1s}
.finseg button.on{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.1)}
.amlist{display:flex;flex-direction:column;gap:11px;margin-top:4px}
.amrow{display:grid;grid-template-columns:1.4fr 2fr 1.3fr;gap:12px;align-items:center}
.aminfo .amn{font-size:12.5px;font-weight:700;color:var(--ink)}
.aminfo .ams{font-size:10px;color:var(--tx-3);margin-top:2px}
.ambar{position:relative;height:16px;background:var(--line-2);border-radius:5px;overflow:hidden}
.ambar .amfill{position:absolute;left:0;top:0;height:100%;background:var(--hsd);border-radius:5px}
.ambar .amfill.od{background:var(--bad);opacity:.92}
.amfig{text-align:right}
.amfig .amowed{font-family:var(--mono);font-size:12px;font-weight:800;color:var(--ink)}
.amfig .amover{font-family:var(--mono);font-size:10px;color:var(--bad);margin-top:2px}
.amkey{display:flex;gap:14px;margin-top:12px;padding-top:11px;border-top:1px solid var(--line)}
.amkey span{display:inline-flex;align-items:center;gap:5px;font-size:10px;color:var(--tx-3);font-weight:600}
.amkey i{width:8px;height:8px;border-radius:2px}
.amrow.clickable{cursor:pointer;border-radius:8px;padding:8px;margin:-8px -8px;transition:.1s}
.amrow.clickable:hover{background:#FBFCFE;box-shadow:inset 0 0 0 1px var(--line)}
/* AM drawer due schedule */
.dueblock{display:flex;flex-direction:column;gap:9px;margin-top:4px}
.dueline{display:grid;grid-template-columns:1.2fr 1.6fr auto;gap:12px;align-items:center}
.dueline .dll{display:flex;flex-direction:column;gap:1px}
.dueline .dlt{font-size:12px;font-weight:600;color:var(--ink)}
.dueline .dld{font-size:10px;color:var(--tx-3);font-family:var(--mono)}
.dueline .dltrack{height:12px;background:var(--line-2);border-radius:5px;overflow:hidden}
.dueline .dltrack span{display:block;height:100%;border-radius:5px}
.dueline .dlv{font-family:var(--mono);font-size:12px;font-weight:800;color:var(--ink);text-align:right;white-space:nowrap}
.duefoot{font-size:11px;color:var(--tx-3);margin-top:11px;padding-top:10px;border-top:1px solid var(--line);font-family:var(--mono)}
.amdlist{display:flex;flex-direction:column}
.amdrow{display:grid;grid-template-columns:1.5fr auto auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.amdrow:last-child{border-bottom:none}
.amdn .amd1{font-size:12px;font-weight:600;color:var(--ink)}
.amdn .amd2{font-size:10px;color:var(--tx-3);font-family:var(--mono);margin-top:2px}
.amdfig{text-align:right}
.amdfig .amdo{font-family:var(--mono);font-size:12px;font-weight:800;color:var(--ink)}
.amdfig .amdov{font-family:var(--mono);font-size:10px;color:var(--bad);margin-top:1px}
.amdfig .amdok{font-size:10px;color:var(--good);margin-top:1px}
.fledhead{font-size:9.5px;font-weight:700;color:var(--tx-3);text-transform:uppercase;letter-spacing:.02em;padding:0 6px 9px;border-bottom:1px solid var(--line)}
.fledhead span:nth-child(n+2){text-align:right}
.fledlist{display:flex;flex-direction:column}
.fledrow{padding:10px 6px;border-bottom:1px solid var(--line);cursor:pointer;transition:.1s}
.fledrow:last-child{border-bottom:none}
.fledrow:hover{background:#FBFCFE}
.fledrow .fl-n{font-size:12px;font-weight:600;color:var(--ink)}
.fledrow .fl-s{font-size:10px;color:var(--tx-3);font-family:var(--mono);margin-top:2px;display:flex;align-items:center;gap:6px}
.fledrow .fl-num{font-family:var(--mono);font-size:11.5px;font-weight:700;text-align:right;color:var(--tx-2)}
.fledrow .fl-out{color:var(--ink);font-weight:800;font-size:12px}
.fledrow .fl-dt{font-family:var(--mono);font-size:10px;color:var(--tx-3);text-align:right}
.fledrow .statetag{justify-self:end}
.deck-flags{margin-top:auto;padding-top:9px}
.deck-flags .ft{font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;opacity:.82;margin-bottom:6px}
.fchip{display:flex;align-items:center;gap:7px;background:rgba(255,255,255,.13);border-radius:8px;padding:6px 9px;margin-bottom:4px;cursor:pointer;transition:.12s}
.fchip:hover{background:rgba(255,255,255,.26);transform:translateX(2px)}
.fchip:last-child{margin-bottom:0}
.fchip .fn{font-size:10.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}
.fchip .fn b{opacity:.68;font-family:var(--mono);font-size:9px;font-weight:600;margin-right:5px}
.fchip .fb{font-family:var(--mono);font-size:10px;font-weight:800;background:rgba(0,0,0,.22);padding:2px 7px;border-radius:20px;white-space:nowrap}
.fclear{font-size:10.5px;opacity:.85;background:rgba(255,255,255,.12);border-radius:9px;padding:8px 10px}
@media(max-width:1080px){.decks{grid-template-columns:1fr}.deck.big,.deck.slim{min-height:auto}}

/* ===== Three themed hero bands ===== */
.hero{border-radius:18px;padding:18px 20px 19px;margin-bottom:16px;position:relative;overflow:hidden;box-shadow:0 6px 22px rgba(11,31,58,.22)}
.hero.h-health{background:linear-gradient(155deg,#0B1F3A,#11335C)}
.hero.h-money{background:linear-gradient(155deg,#0B1F3A,#10325A)}
.hero.h-service{background:linear-gradient(155deg,#0B1F3A,#0F2A4C)}
.hero::after{content:"";position:absolute;inset:0;pointer-events:none}
.hero.h-health::after{background:radial-gradient(680px 240px at 92% -20%,rgba(52,199,89,.13),transparent 70%)}
.hero.h-money::after{background:radial-gradient(680px 240px at 92% -20%,rgba(10,132,255,.16),transparent 70%)}
.hero.h-service::after{background:radial-gradient(680px 240px at 92% -20%,rgba(255,159,10,.13),transparent 70%)}
.hero-h{display:flex;align-items:center;gap:9px;margin-bottom:14px;position:relative;z-index:1}
.hero-h .ic{width:24px;height:24px;border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.hero-h .ic svg{width:14px;height:14px;stroke:#fff;stroke-width:1.9;fill:none;stroke-linecap:round;stroke-linejoin:round}
.hero-h .ht{font-family:var(--disp);font-size:13px;font-weight:700;letter-spacing:.03em;color:#fff;text-transform:uppercase}
.hero-h .hs{font-size:11px;color:var(--tx-on-2);margin-left:2px}
.hero-body{display:grid;grid-template-columns:minmax(280px,1.05fr) 1.95fr;gap:16px;position:relative;z-index:1}
.hero-stats{display:flex;gap:8px;flex-wrap:wrap;align-content:start}
.hstat{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);border-radius:11px;padding:10px 12px;cursor:pointer;transition:.13s;flex:1;min-width:84px}
.hstat:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2)}
.hstat .v{font-family:var(--disp);font-weight:700;font-size:25px;line-height:1;color:#fff;letter-spacing:-.02em}
.hstat .v small{font-size:12px;color:var(--tx-on-2)}
.hstat .l{font-size:9.5px;color:var(--tx-on-2);margin-top:5px;font-weight:600;display:flex;align-items:center;gap:4px}
.hstat .l .d{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.hero-graph{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:11px 13px}
.hero-graph .gt{font-size:10px;color:var(--tx-on-2);font-weight:600;margin-bottom:8px;display:flex;justify-content:space-between}
.hero-flags{display:flex;flex-direction:column;gap:0;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.07);border-radius:12px;overflow:hidden}
.hero-flags .fh{font-size:9.5px;color:var(--tx-on-2);font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:9px 13px 7px;border-bottom:1px solid rgba(255,255,255,.07)}
.flagrow{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:8px 13px;border-bottom:1px solid rgba(255,255,255,.05);cursor:pointer;transition:.1s}
.flagrow:last-child{border-bottom:none}
.flagrow:hover{background:rgba(255,255,255,.06)}
.flagrow .fdot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.flagrow .fname{font-size:11.5px;color:#EAF0F7;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.flagrow .fname b{color:var(--tx-on-2);font-weight:500;font-family:var(--mono);font-size:10px;margin-right:6px}
.flagrow .fval{font-family:var(--mono);font-size:11px;font-weight:700;white-space:nowrap}
.flagrow .fmeta{font-size:10px;color:var(--tx-on-2)}
.hero-flags .fnone{padding:14px 13px;font-size:11.5px;color:var(--tx-on-2)}
.bars{display:flex;align-items:flex-end;gap:7px;height:54px}
.bars .bar{flex:1;border-radius:3px 3px 0 0;min-height:3px;position:relative}
.bars .blab{font-size:8.5px;color:var(--tx-on-2);text-align:center;margin-top:5px;font-family:var(--mono)}
@media(max-width:1080px){.hero-body{grid-template-columns:1fr}.hero-flags{order:-1}}

.attn{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);overflow:hidden}
.attn-row{display:grid;grid-template-columns:1.7fr 1fr .8fr .8fr;gap:10px;padding:11px 18px;border-bottom:1px solid var(--line-2);align-items:center;font-size:12.5px;cursor:pointer}
.attn-row:hover{background:#FBFCFE}.attn-row:last-child{border-bottom:none}
.attn-row.hdr2{background:#FBFCFE;cursor:default;font-size:9.5px;text-transform:none;letter-spacing:0;color:var(--tx-3);font-weight:700}
.attn-row .sx{font-family:var(--body);font-weight:600;font-size:12.5px;font-feature-settings:"tnum" 1}
.attn-row .why{font-size:11px;color:var(--tx-2)}

/* ============ LOGISTICS ============ */
.pipe{display:flex;gap:0;padding:18px;overflow-x:auto}
.pipe .stg{flex:1;min-width:96px;text-align:center;position:relative;padding:0 4px}
.pipe .stg::after{content:"";position:absolute;top:21px;left:50%;width:100%;height:2px;background:var(--line)}
.pipe .stg:last-child::after{display:none}
.pipe .stg .ball{width:42px;height:42px;border-radius:50%;margin:0 auto 8px;display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-weight:700;font-size:16px;position:relative;z-index:1;border:2px solid var(--line);background:#fff;color:var(--tx-2)}
.pipe .stg.has .ball{border-color:var(--sig);background:var(--sig);color:#fff}
.pipe .stg .nm{font-size:10px;font-weight:600;color:var(--tx-2);line-height:1.25}
.pipe .stg .dv{font-size:8.5px;color:var(--tx-3);margin-top:2px;font-family:var(--mono)}
.tanklist{}
.tankrow{display:grid;grid-template-columns:1.5fr 1.2fr 1fr 1.4fr 90px;gap:12px;padding:13px 18px;border-bottom:1px solid var(--line-2);align-items:center;font-size:12.5px;cursor:pointer}
.tankrow:hover{background:#FBFCFE}.tankrow:last-child{border-bottom:none}
.tankrow .oid{font-family:var(--mono);font-weight:700;font-size:12px}
.tankrow .dest{font-size:11px;color:var(--tx-2);margin-top:1px}
.tankrow .prodq{font-family:var(--mono);font-weight:600;font-size:12px}
.tankrow .tk{font-family:var(--mono);font-size:11px;color:var(--tx-2)}
.statetag{font-size:10px;font-weight:700;padding:3px 9px;border-radius:20px;white-space:nowrap;text-align:center;display:inline-block}
.prog{height:6px;border-radius:4px;background:var(--line-2);overflow:hidden;margin-top:5px}
.prog i{display:block;height:100%;border-radius:4px;background:var(--hsd)}
.prodchip{font-size:9.5px;font-weight:700;padding:1px 7px;border-radius:5px;color:#fff}
.pc-PMG{background:var(--pmg)}.pc-HSD{background:var(--hsd)}.pc-HOBC{background:var(--hobc)}

/* map */
.tmap{position:relative;background:linear-gradient(160deg,#0E1A30,#0B1220);border-radius:var(--r);overflow:hidden;border:1px solid var(--line)}
.tmap svg{display:block;width:100%;height:auto}
.maplabel{font-family:var(--mono);font-size:9px;fill:var(--tx-on-2)}

/* ============ SITE 360 DRAWER ============ */
.scrim{position:fixed;inset:0;background:rgba(11,18,32,.55);opacity:0;pointer-events:none;transition:.2s;z-index:60;backdrop-filter:blur(1.5px)}
.scrim.on{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(580px,96vw);background:var(--paper);box-shadow:-10px 0 50px rgba(0,0,0,.3);transform:translateX(100%);transition:transform .26s cubic-bezier(.4,0,.2,1);z-index:70;overflow-y:auto}
.drawer.on{transform:translateX(0)}
.dh{position:sticky;top:0;background:linear-gradient(135deg,#15233E,#0B1220);color:#fff;padding:20px 24px;z-index:2}
.dh .dclose{position:absolute;top:16px;right:18px;background:rgba(255,255,255,.12);border:none;color:#fff;width:30px;height:30px;border-radius:8px;font-size:15px;cursor:pointer}
.dh .dcode{font-family:var(--mono);font-size:11.5px;font-weight:600;color:var(--tx-on-2)}
.dh h2{font-family:var(--disp);font-size:20px;font-weight:700;margin:4px 0 8px;letter-spacing:-.3px}
.dh .dmeta{display:flex;gap:7px;flex-wrap:wrap;font-size:11px}
.dh .dmeta .chip{background:rgba(255,255,255,.12);border-radius:6px;padding:3px 9px;font-weight:500}
.db{padding:18px 24px}
.dsec{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:16px 18px;margin-bottom:14px}
.dsec .dst{display:flex;align-items:center;gap:8px;font-family:var(--disp);font-size:13px;font-weight:700;margin-bottom:14px}
.dsec .dst .tg{font-size:9px;font-weight:700;text-transform:none;letter-spacing:0;padding:2px 8px;border-radius:5px;margin-left:auto}
.tg.recon{background:var(--sig-s);color:var(--sig)}.tg.insp{background:var(--good-s);color:var(--good)}.tg.logi{background:#E5F0F8;color:var(--hsd)}
.prodrow{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.prodbox{border:1px solid var(--line);border-radius:11px;padding:13px 14px}
.prodbox .pt{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:700;text-transform:none;letter-spacing:0;margin-bottom:9px}
.prodbox .pt .sw{width:10px;height:10px;border-radius:3px}
.prodbox .pv{font-family:var(--disp);font-size:23px;font-weight:700;letter-spacing:-.5px;line-height:1}
.prodbox .pl{font-size:10px;color:var(--tx-3);font-weight:600;margin-top:3px}
.prodbox .pvar{font-family:var(--mono);font-size:12px;font-weight:700;margin-top:9px}
.dscore{display:flex;align-items:center;gap:16px;margin-bottom:14px}
.dscore .si .sv{font-family:var(--disp);font-size:30px;font-weight:700;letter-spacing:-1px;line-height:1}
.dscore .si .sl{font-size:11px;color:var(--tx-3);font-weight:600;margin-top:3px}
.dcat{margin-bottom:10px}.dcat .cl{display:flex;justify-content:space-between;font-size:12px;margin-bottom:4px}
.dcat .cl .nm{font-weight:600}.dcat .cl .pc{font-family:var(--mono);font-weight:700}
.dcat .tr{height:9px;border-radius:5px;background:var(--line-2);overflow:hidden}.dcat .tr i{display:block;height:100%;border-radius:5px}
.dlink{display:flex;gap:10px;margin-top:8px}
.dlink button{flex:1;border:1px solid var(--line);background:#fff;border-radius:9px;padding:10px;font-weight:600;font-size:12px;cursor:pointer;font-family:var(--body);color:var(--tx-2)}
.dlink button.primary{background:var(--pmg);color:#fff;border-color:var(--pmg)}
.dempty{font-size:12px;color:var(--tx-3);padding:8px 0;font-style:italic}
.dorder{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line-2);font-size:12px}
.dorder:last-child{border:none}

/* footer */
.foot{margin-top:18px;text-align:center;font-size:11px;color:var(--tx-3);line-height:1.7}
.legend-foot{display:inline-flex;gap:14px;flex-wrap:wrap;justify-content:center}
.legend-foot span{display:inline-flex;align-items:center;gap:5px}
.legend-foot i{width:9px;height:9px;border-radius:3px;display:inline-block}
.integ{margin-top:10px;font-family:var(--mono);font-size:10px;color:var(--tx-3);background:var(--card);border:1px solid var(--line);border-radius:9px;padding:8px 14px;display:inline-block}

/* mobile rail → topbar */
.railtoggle{display:none}
.hide{display:none!important}
@media(max-width:1080px){.kpis{grid-template-columns:repeat(3,1fr)}.vitals{grid-template-columns:repeat(3,1fr)}.grid2,.grid2b,.grid3,.hub-grid{grid-template-columns:1fr}.hrow{grid-template-columns:2fr 1fr 1.3fr}.hrow .col-hide{display:none}.botgrid{grid-template-columns:1fr}.tankrow{grid-template-columns:1.5fr 1fr 90px}.tankrow .col-hide{display:none}}
@media(max-width:820px){
  .app{grid-template-columns:1fr}
  .rail{position:fixed;left:0;top:0;bottom:0;width:230px;z-index:80;transform:translateX(-100%);transition:.25s}
  .rail.open{transform:translateX(0)}
  .railtoggle{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:var(--ink);color:#fff;border:none;font-size:18px;cursor:pointer}
  .canvas{padding:16px}
}
@media(max-width:560px){.kpis,.vitals{grid-template-columns:repeat(2,1fr)}.prodrow{grid-template-columns:1fr}.attn-row{grid-template-columns:1.7fr 1fr}.attn-row .col-hide{display:none}}
@media print{.rail,.filters,.reset,.scrim,.drawer,.railtoggle{display:none!important}.app{grid-template-columns:1fr}.section,.kpi,.panel,.vital{box-shadow:none}body{background:#fff}}
/* ===== Shortage Reimbursement Queue (dealer-first) ===== */
.kpis-s{grid-template-columns:repeat(6,1fr)}
.shtoolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:8px}
.depttabs{display:inline-flex;gap:3px;background:rgba(120,120,128,.12);border-radius:9px;padding:3px}
.depttabs button{display:flex;align-items:center;gap:7px;font-family:var(--body);font-size:12.5px;font-weight:550;padding:7px 14px;border-radius:7px;color:var(--tx-2);cursor:pointer;border:none;background:none;transition:.1s}
.depttabs button svg{width:14px;height:14px;stroke:currentColor;stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round}
.depttabs button.on{background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.12);color:var(--ink);font-weight:650}
.shfilters{display:flex;align-items:center;gap:8px}
.shfilters select{font-family:var(--body);font-size:12.5px;color:var(--tx);background:#fff;border:1px solid var(--line);border-radius:8px;padding:7px 11px;cursor:pointer;min-width:120px}
.shfilters .exp{display:flex;align-items:center;gap:6px;font-family:var(--body);font-size:12px;font-weight:600;color:var(--tx-2);background:#fff;border:1px solid var(--line);border-radius:8px;padding:7px 12px;cursor:pointer;transition:.1s}
.shfilters .exp:hover{border-color:var(--ink);color:var(--ink)}
.shfilters .exp svg{width:14px;height:14px;stroke:currentColor;stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round}
.deptnote{font-size:12px;color:var(--tx-2);max-width:760px;line-height:1.5;margin-bottom:16px}
/* dealer ledger */
.dealerhdr{display:grid;grid-template-columns:38px 2.4fr 90px 150px 1fr 110px;gap:12px;padding:11px 20px;font-size:11px;color:var(--tx-3);font-weight:500;border-bottom:1px solid var(--line-2)}
.dealerblock{border-bottom:1px solid var(--line-2)}
.dealerrow{display:grid;grid-template-columns:38px 2.4fr 90px 150px 1fr 110px;gap:12px;padding:13px 20px;align-items:center;cursor:pointer;transition:.08s}
.dealerrow:hover{background:rgba(120,120,128,.05)}
.dx .exp-ic{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;background:rgba(120,120,128,.14);color:var(--tx-2);font-size:15px;font-weight:600}
.ddeal b{font-size:13.5px;font-weight:600;color:var(--ink);display:block}
.ddeal small{font-size:11px;color:var(--tx-3);font-feature-settings:"tnum" 1}
.dcount{font-size:12.5px;color:var(--tx-2)}
.dtot{text-align:right;font-size:12px;color:var(--tx-3);font-feature-settings:"tnum" 1}
.dtot b{display:block;font-family:var(--disp);font-size:15px;color:var(--ink);font-weight:700}
.dpost{text-align:right}
.ministat{display:inline-block;font-size:11px;font-weight:600;padding:3px 9px;border-radius:20px;white-space:nowrap}
.postedtag{font-size:11px;color:var(--tx-3);font-style:italic}
/* expanded claim list */
.claimlist{display:none;background:rgba(120,120,128,.035);padding:6px 20px 16px 56px}
.dealerblock.open .claimlist{display:block}
.clhdr{display:grid;grid-template-columns:1.1fr 60px 1.3fr 1fr 1fr .8fr 1fr 110px 80px;gap:10px;padding:9px 4px;font-size:10px;color:var(--tx-3);font-weight:600;border-bottom:1px solid var(--line-2)}
.clrow{display:grid;grid-template-columns:1.1fr 60px 1.3fr 1fr 1fr .8fr 1fr 110px 80px;gap:10px;padding:10px 4px;align-items:center;border-bottom:1px solid var(--line-2);cursor:pointer;font-size:12px}
.clrow:hover{background:rgba(120,120,128,.05)}
.clc{font-family:var(--mono);font-size:11px;font-weight:600;color:var(--tx-2);display:flex;align-items:center;gap:5px}
.amtag,.amend .audk:after{font-family:var(--body)}
.amtag{font-size:8.5px;font-weight:700;color:var(--warn);background:var(--warn-s);padding:1px 5px;border-radius:4px}
.clmeta{font-size:11px;color:var(--tx-3);font-feature-settings:"tnum" 1}
.clnum{text-align:right;font-feature-settings:"tnum" 1;color:var(--tx)}
.clshort{color:var(--bad);font-weight:600}
.clact{text-align:right}
.dprog{display:flex;gap:6px;flex-wrap:wrap;padding:10px 4px 0}
.dprog i{font-style:normal;font-size:10px;font-weight:600;padding:2px 8px;border-radius:20px}
.dprog .pf{background:var(--warn-s);color:#92600F}.dprog .pl{background:rgba(31,111,178,.1);color:var(--hsd)}
.dprog .pa{background:var(--good-s);color:#0E6B49}.dprog .pp{background:rgba(120,120,128,.12);color:var(--tx-2)}
.qbtn{font-family:var(--body);font-size:11.5px;font-weight:600;color:#fff;background:var(--sysblue);border:none;border-radius:7px;padding:5px 12px;cursor:pointer;transition:.1s;white-space:nowrap}
.qbtn:hover{background:var(--sysblue-2)}
.qbtn.ghost{background:rgba(120,120,128,.14);color:var(--tx-2)}
.qbtn.ghost:disabled{color:var(--tx-3);cursor:not-allowed}
.ledgerfoot{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;font-size:12.5px;color:var(--tx-2)}
.ledgerfoot b{font-family:var(--disp);font-size:17px;color:var(--ink)}
.shempty{padding:34px 20px;text-align:center;color:var(--tx-3);font-size:13px}
/* drawer: stepper */
.stepper{display:flex;align-items:center;gap:0;margin-top:6px}
.stp{display:flex;flex-direction:column;align-items:center;gap:6px;flex-shrink:0}
.stp .sd{width:26px;height:26px;border-radius:50%;background:rgba(120,120,128,.16);color:var(--tx-3);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}
.stp .sl{font-size:10px;color:var(--tx-3);white-space:nowrap}
.stp.done .sd{background:var(--good);color:#fff}.stp.cur .sd{background:var(--sysblue);color:#fff}
.stp.cur .sl{color:var(--ink);font-weight:600}
.stpline{flex:1;height:2px;background:var(--line);margin:0 4px 18px}
/* drawer: evidence */
.evidence{display:flex;gap:14px;align-items:center}
.evimg{width:76px;height:95px;border-radius:8px;overflow:hidden;border:1px solid var(--line);flex-shrink:0;cursor:pointer}
.evimg svg{width:100%;height:100%}
.evmeta b{font-size:13px;color:var(--ink);display:block}
.evmeta small{font-size:11px;color:var(--tx-3);display:block;margin:3px 0 9px}
.evbtn{font-family:var(--body);font-size:11.5px;font-weight:600;color:var(--sysblue);background:none;border:1px solid var(--line);border-radius:7px;padding:6px 12px;cursor:pointer}
/* drawer: chamber table */
.editbadge{font-size:10px;font-weight:700;color:var(--warn);background:var(--warn-s);padding:2px 8px;border-radius:20px;margin-left:8px;text-transform:none;letter-spacing:0}
.cmhint,.cmnote{font-size:11.5px;color:var(--tx-2);line-height:1.5;margin-bottom:12px}
.cmnote{background:var(--good-s);color:#0E6B49;padding:10px 12px;border-radius:8px;margin:0}
.chtbl{font-size:11.5px}
.chhdr,.chrow,.chfoot{display:grid;grid-template-columns:54px 1fr 58px 58px 86px 1fr 1fr 66px;gap:7px;padding:8px 0;align-items:center}
.chhdr{color:var(--tx-3);font-size:10px;font-weight:600;border-bottom:1px solid var(--line)}
.chrow{border-bottom:1px solid var(--line-2)}
.chn{font-weight:600;color:var(--ink)}
.chnum{text-align:right;font-feature-settings:"tnum" 1;color:var(--tx-2)}
.chnum s{color:var(--tx-3);opacity:.7;margin-left:3px}
.chshort{color:var(--bad);font-weight:650}
.dipinput{width:48px;font-family:var(--mono);font-size:11px;text-align:right;border:1px solid var(--sysblue);border-radius:5px;padding:3px 4px;background:#fff}
.chfoot{font-weight:700;color:var(--ink);border-top:2px solid var(--line);font-feature-settings:"tnum" 1}
.chfoot span{text-align:right}.chfoot span:first-child{text-align:left}
.cmsum{background:rgba(120,120,128,.06);border-radius:10px;padding:4px 14px}
.cmrow{display:flex;justify-content:space-between;align-items:center;padding:10px 0;font-size:13px;color:var(--tx-2);border-bottom:1px solid var(--line-2)}
.cmrow:last-child{border-bottom:none}.cmrow b{color:var(--ink);font-feature-settings:"tnum" 1}
.cmrow.total{font-size:14px}.cmrow.total b{font-family:var(--disp);font-size:18px;color:var(--bad)}
.cmaudit{font-size:12px}
.audrow{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--line-2)}
.audrow.amend{background:var(--warn-s);margin:0 -6px;padding:7px 6px;border-radius:5px;border-bottom:none}
.audk{color:var(--tx-3)}.audv{color:var(--tx);font-weight:500}
.cmactions{display:flex;gap:10px;flex-wrap:wrap}
.cmactions .primary{background:var(--sysblue);color:#fff;border:none;border-radius:8px;padding:10px 18px;font-size:13px;font-weight:600;cursor:pointer;font-family:var(--body)}
.cmactions .primary:hover{background:var(--sysblue-2)}
.cmactions button:not(.primary){background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px 18px;font-size:13px;font-weight:500;color:var(--tx-2);cursor:pointer;font-family:var(--body)}
/* orders module */
.prodchip.pc-lube{background:rgba(122,79,181,.12);color:var(--hobc)}
.dealerhdr.orddh{grid-template-columns:38px 2.4fr 90px 150px 130px 1fr}
.dealerrow.ordr{grid-template-columns:38px 2.4fr 90px 150px 130px 1fr}
.dbal{text-align:left}
.baltag{font-size:11px;font-weight:600;padding:3px 9px;border-radius:20px;white-space:nowrap}
.baltag.pos{background:var(--good-s);color:#0E6B49}
.baltag.neg{background:var(--bad-s);color:#9A2A20}
.clhdr.ordhdr,.clrow.ordr2{grid-template-columns:1.3fr 90px 2fr 1fr 1.2fr 110px 80px}
.dealerblock .clhdr.ordhdr{grid-template-columns:1.3fr 90px 2fr 1fr 1.2fr 110px 80px}
.dealerblock .claimlist .clrow{grid-template-columns:1.3fr 90px 2fr 1fr 1.2fr 110px 80px}
.chhdr.ordlnh,.chrow.ordln,.chfoot.ordlnf{grid-template-columns:2.4fr 1fr 1fr 1fr}
.refinput{font-family:var(--body);font-size:12.5px;border:1px solid var(--line);border-radius:8px;padding:8px 11px;flex:1;min-width:120px}
.refinput:focus{outline:none;border-color:var(--sysblue);box-shadow:0 0 0 3px var(--sig-s)}
.bookrow{display:flex;gap:8px;align-items:center}
/* DLS module */
.dls-two{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.sh2{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--disp);font-size:14px;font-weight:700;color:var(--ink);margin-bottom:14px}
.sh2 .note{font-family:var(--body);font-weight:400}
.covbar{display:flex;height:30px;border-radius:8px;overflow:hidden;background:var(--line-2)}
.covseg{display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:700;font-feature-settings:"tnum" 1}
.covseg.good{background:var(--good)}.covseg.warn{background:var(--warn)}.covseg.bad{background:var(--bad)}
.covlegend{display:flex;gap:16px;margin-top:10px;font-size:11px;color:var(--tx-2)}
.covlegend i.dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:5px}
.covlegend .good{background:var(--good)}.covlegend .warn{background:var(--warn)}.covlegend .bad{background:var(--bad)}
.itrow{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid var(--line-2);font-size:12.5px}
.itrow:last-child{border-bottom:none}
.itname b,.itname{color:var(--ink);font-weight:600}
.itname small{display:block;color:var(--tx-3);font-size:11px;font-weight:400}
.itvol{font-feature-settings:"tnum" 1;color:var(--tx-2);text-align:right}
.dlshdr{display:grid;grid-template-columns:2fr 70px 1.4fr 1fr 1fr 1.1fr 90px 90px;gap:12px;padding:11px 20px;font-size:11px;color:var(--tx-3);font-weight:500;border-bottom:1px solid var(--line-2)}
.dlsrow{display:grid;grid-template-columns:2fr 70px 1.4fr 1fr 1fr 1.1fr 90px 90px;gap:12px;padding:12px 20px;align-items:center;border-bottom:1px solid var(--line-2);cursor:pointer;font-size:12.5px;transition:.08s}
/* station-grouped DLS rows */
.stnhdr{display:grid;grid-template-columns:1.5fr 3fr 100px;gap:16px;padding:10px 20px;font-size:9.5px;font-weight:700;color:var(--tx-3);text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--line)}
.stnrow{display:grid;grid-template-columns:1.5fr 3fr 100px;gap:16px;padding:13px 20px 13px 17px;align-items:center;border-bottom:1px solid var(--line-2);cursor:pointer;transition:.08s}
.stnrow:hover{background:rgba(120,120,128,.05)}
.stnsite b{font-size:13px;font-weight:700;color:var(--ink);display:block}
.stnsite small{font-size:10.5px;color:var(--tx-3);display:block;margin-top:2px}
.stnsite .stnit{display:inline-block;margin-top:5px;font-size:9.5px;font-weight:700;color:var(--hsd);background:rgba(31,111,178,.1);padding:1px 7px;border-radius:8px;font-family:var(--mono)}
.stnprods{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pcell{background:#FBFCFE;border:1px solid var(--line-2);border-radius:10px;padding:9px 11px}
.pcell.empty{display:flex;align-items:center;justify-content:center;color:var(--tx-3);background:transparent;border-style:dashed}
.pctop{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}
.pcdev{font-family:var(--mono);font-size:11.5px}
.pcbar{margin-bottom:6px}
.pcbar .tankbar{height:7px}
.pcmeta{display:flex;align-items:center;justify-content:space-between;font-family:var(--mono);font-size:10.5px;color:var(--tx-2)}
.pcmeta b{font-size:11.5px}
.pcflag{margin-top:6px;font-size:10px;font-weight:700;color:var(--bad);font-family:var(--mono)}
.pcflag.warn{color:var(--warn)}
.stnby{text-align:right}
.stnby small{display:block;font-size:10.5px;color:var(--tx-2)}
.stnby .stnentry{font-size:9.5px;color:var(--tx-3);font-family:var(--mono);margin-top:2px}
@media(max-width:1000px){.stnhdr,.stnrow{grid-template-columns:1.3fr 2.4fr 80px}.stnprods{grid-template-columns:1fr}}
.dlsrow:hover{background:rgba(120,120,128,.05)}
.dlssite b{font-size:13px;font-weight:600;color:var(--ink);display:block}
.dlssite small{font-size:11px;color:var(--tx-3)}
.dlstank small{display:block;font-size:10.5px;color:var(--tx-3);margin-top:3px;font-feature-settings:"tnum" 1}
.tankbar{display:flex;height:8px;border-radius:5px;overflow:hidden;background:var(--line-2);width:100%}
.tankbar.big{height:14px;border-radius:7px;margin:6px 0}
.tankbar .onh{background:var(--ink)}.tankbar .itr{background:var(--hsd);opacity:.55}
.dlsnum{text-align:right;font-feature-settings:"tnum" 1;color:var(--tx-2)}
.dlsnum.ullbad{color:var(--bad);font-weight:600}
.dlscov b{font-family:var(--disp);font-size:15px;font-weight:700;display:block}
.dlscov small{font-size:10px;color:var(--tx-3)}
.cov-good{color:var(--good)}.cov-warn{color:var(--warn)}.cov-bad{color:var(--bad)}
.dlsdiv{text-align:right;font-feature-settings:"tnum" 1;color:var(--tx-3)}
.dlsdiv.divflag{color:var(--warn);font-weight:600}
.streakbadge{display:inline-block;background:var(--bad);color:#fff;font-size:9px;font-weight:800;padding:1px 5px;border-radius:8px;margin-left:3px;vertical-align:middle;font-family:var(--mono)}
.dlsby small{color:var(--tx-3);font-size:11px}
/* DLS drawer tank cards */
.tankcard{background:rgba(120,120,128,.05);border-radius:12px;padding:14px 16px;margin-bottom:12px}
.tkhead{display:flex;justify-content:space-between;align-items:center}
.tkcap{font-size:11px;color:var(--tx-3);font-feature-settings:"tnum" 1}
.tklegend{display:flex;gap:14px;font-size:10.5px;color:var(--tx-2);margin-bottom:10px}
.tklegend .dot{width:8px;height:8px;border-radius:2px;display:inline-block;margin-right:5px}
.tkgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px}
.tkgrid>div{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;color:var(--tx-2);padding:6px 0;border-bottom:1px solid var(--line-2)}
.tkgrid b{font-feature-settings:"tnum" 1;color:var(--ink)}
/* tracking module */
.trk-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:16px;margin-bottom:16px}
.trkmap{background:var(--card);border:1px solid var(--line-2);border-radius:var(--r);box-shadow:var(--sh);padding:14px}
.mapsvg{width:100%;height:auto;display:block;border-radius:12px}
.mlbl{font-size:8px;fill:var(--tx-3);font-family:var(--body);text-anchor:middle}
.mlbl.b{fill:var(--ink);font-weight:700;font-size:9px}
.maplegend{display:flex;gap:14px;margin-top:10px;font-size:11px;color:var(--tx-2);flex-wrap:wrap}
.maplegend .dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:5px}
.maplegend .ring{width:10px;height:10px;border-radius:50%;border:1px dashed var(--pmg);display:inline-block;margin-right:5px;vertical-align:middle}
.playback{background:var(--card);border:1px solid var(--line-2);border-radius:var(--r);box-shadow:var(--sh);padding:16px 18px;margin-top:16px}
.pbtop{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.pbtop b{font-size:13px;color:var(--ink)}
.pbbar{position:relative;height:6px;background:var(--line-2);border-radius:4px;margin:8px 0 14px}
.pbfill{height:100%;background:var(--good);border-radius:4px}
.pbknob{position:absolute;top:50%;width:14px;height:14px;border-radius:50%;background:#fff;border:2px solid var(--good);transform:translate(-50%,-50%)}
.pbctl{display:flex;align-items:center;gap:10px}
.pbtn{font-family:var(--body);font-size:12px;font-weight:600;color:#fff;background:var(--sysblue);border:none;border-radius:7px;padding:7px 14px;cursor:pointer}
.pbtn.ghost{background:rgba(120,120,128,.14);color:var(--tx-2)}
.pbmeta{font-size:11.5px;color:var(--tx-3);margin-left:auto;font-feature-settings:"tnum" 1}
.trk-right{background:var(--card);border:1px solid var(--line-2);border-radius:var(--r);box-shadow:var(--sh);overflow:hidden;align-self:start}
.vlisthdr{padding:13px 16px;font-size:12px;font-weight:600;color:var(--tx-2);border-bottom:1px solid var(--line-2)}
.vrow{display:grid;grid-template-columns:12px 1.6fr 1.2fr auto;gap:10px;align-items:center;padding:11px 16px;border-bottom:1px solid var(--line-2);cursor:pointer;transition:.08s}
.vrow:hover{background:rgba(120,120,128,.05)}
.vrow.on{background:var(--sig-s)}
.vdot{width:9px;height:9px;border-radius:50%}
.vmain b{font-size:12.5px;font-weight:600;color:var(--ink);display:block}
.vmain small{font-size:10.5px;color:var(--tx-3)}
.vtrip{font-size:11px;color:var(--tx-2);font-weight:600}
.vtrip small{display:block;font-weight:400;color:var(--tx-3)}
.chainstrip{display:flex;align-items:stretch;gap:8px;padding:18px 20px;overflow-x:auto}
.chainleg{display:flex;gap:10px;align-items:flex-start;min-width:200px;padding:12px 14px;border-radius:10px;background:rgba(120,120,128,.05)}
.chainleg.active{background:var(--good-s);box-shadow:inset 0 0 0 1.5px var(--good)}
.chainleg.done{opacity:.6}
.clgnum{width:22px;height:22px;border-radius:50%;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0}
.chainleg.active .clgnum{background:var(--good)}
.clgbody b{font-size:12.5px;color:var(--ink);display:block}
.clgbody small{font-size:10.5px;color:var(--tx-3);display:block;margin:2px 0 6px}
.clgbody .vis{display:block;font-size:10px;color:var(--tx-2);margin-top:5px}
.chainarrow{display:flex;align-items:center;color:var(--tx-3);font-size:16px;flex-shrink:0}
/* customer master */
.addcust{display:flex;align-items:center;gap:6px;font-family:var(--body);font-size:12.5px;font-weight:600;color:#fff;background:var(--sysblue);border:none;border-radius:8px;padding:8px 14px;cursor:pointer}
.addcust:hover{background:var(--sysblue-2)}
.addcust svg{width:15px;height:15px;stroke:#fff;stroke-width:2;fill:none;stroke-linecap:round}
.custhdr{display:grid;grid-template-columns:1.8fr 1.2fr 1.1fr 1.3fr 1.1fr 90px 1fr 80px;gap:12px;padding:11px 20px;font-size:11px;color:var(--tx-3);font-weight:500;border-bottom:1px solid var(--line-2)}
.custrow{display:grid;grid-template-columns:1.8fr 1.2fr 1.1fr 1.3fr 1.1fr 90px 1fr 80px;gap:12px;padding:12px 20px;align-items:center;border-bottom:1px solid var(--line-2);cursor:pointer;font-size:12.5px;transition:.08s}
.custrow:hover{background:rgba(120,120,128,.05)}
.cmsite b,.cmdealer{font-size:13px;font-weight:600;color:var(--ink);display:block}
.cmsite small,.cmdealer small,.cmgeo small,.cmhier small{font-size:11px;color:var(--tx-3);font-weight:400;display:block;margin-top:1px}
.cmgeo,.cmhier{color:var(--tx);font-size:12px}
.cmdealer{font-weight:500}
.cotag{font-size:11px;font-family:var(--mono);font-feature-settings:"tnum" 1}
.cotag.ok{color:var(--tx-2)}
.cotag.missing{color:var(--warn);font-weight:600;font-family:var(--body)}
.tierchip{font-size:10.5px;font-weight:600;padding:3px 8px;border-radius:5px}
.t-Platinum{background:rgba(120,120,128,.16);color:var(--ink)}
.t-Gold{background:rgba(255,159,10,.16);color:#92600F}
.t-Bronze{background:rgba(193,57,43,.1);color:#9A2A20}
.t-Housekeeping{background:rgba(10,132,255,.1);color:var(--sysblue-2)}
.catchip{font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:5px;letter-spacing:.02em}
.cat-DF{background:rgba(20,133,94,.12);color:#0E6B49}
.cat-MF{background:rgba(31,111,178,.12);color:var(--hsd)}
.cat-CF{background:rgba(255,159,10,.16);color:#92600F}
.cat-COCO{background:rgba(122,79,181,.14);color:var(--hobc)}
.cmbal{font-size:12px;font-feature-settings:"tnum" 1}
/* customer form */
.fldgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fld{display:flex;flex-direction:column;gap:5px}
.fld span{font-size:11px;color:var(--tx-2);font-weight:500}
.fld input,.fld select{font-family:var(--body);font-size:13px;border:1px solid var(--line);border-radius:8px;padding:8px 11px;background:#fff}
.fld input:focus,.fld select:focus{outline:none;border-color:var(--sysblue);box-shadow:0 0 0 3px var(--sig-s)}
.pickmap{width:100%;height:auto;border-radius:10px;cursor:crosshair;display:block;margin-bottom:10px}
.coordrow{display:flex;gap:10px;align-items:center}
.coordrow .refinput{flex:1}
.coordval{font-family:var(--mono);font-size:11px;color:var(--tx-3);white-space:nowrap}
.tankedit{display:flex;align-items:center;gap:10px;padding:8px 0;font-size:12.5px;color:var(--tx-2)}
.toggle{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:13px;color:var(--ink)}
.toggle input{width:18px;height:18px;accent-color:var(--good)}
/* fleet master */
.fleethdr{display:grid;grid-template-columns:1.2fr 1.4fr 1.1fr 1.4fr 1.2fr 1.3fr;gap:12px;padding:11px 20px;font-size:11px;color:var(--tx-3);font-weight:500;border-bottom:1px solid var(--line-2)}
.fleetrow{display:grid;grid-template-columns:1.2fr 1.4fr 1.1fr 1.4fr 1.2fr 1.3fr;gap:12px;padding:13px 20px;align-items:center;border-bottom:1px solid var(--line-2);cursor:pointer;font-size:12.5px;transition:.08s}
.fleetrow:hover{background:rgba(120,120,128,.05)}
.flreg b{font-size:13px;font-weight:700;color:var(--ink);display:block;font-family:var(--mono)}
.flreg small,.flpm small,.flcap small,.fllife small{font-size:10.5px;color:var(--tx-3);display:block;margin-top:2px}
.flpm{font-weight:600;color:var(--ink)}
.flcap{font-feature-settings:"tnum" 1;color:var(--tx)}
.lifebar{height:7px;background:var(--line-2);border-radius:4px;overflow:hidden;width:100%}
.lifebar.big{height:12px;border-radius:6px;margin:8px 0}
.lifebar i{display:block;height:100%}
.lf-good{background:var(--good)}.lf-warn{background:var(--warn)}.lf-bad{background:var(--bad)}
.fldocs{display:flex;gap:4px;flex-wrap:wrap}
.docdot{width:9px;height:9px;border-radius:50%;display:inline-block}
.lifebig{background:rgba(120,120,128,.05);border-radius:12px;padding:16px}
.lifebig.over{background:var(--bad-s)}
.lifenum{display:flex;align-items:baseline;gap:8px}
.lifenum b{font-family:var(--disp);font-size:32px;font-weight:700;color:var(--ink)}
.lifebig.over .lifenum b{color:var(--bad)}
.lifenum span{font-size:12px;color:var(--tx-2)}
.lifemeta{font-size:11px;color:var(--tx-3);margin-top:4px}
.chrow.flch,.chhdr.flchh,.chfoot.flchf{grid-template-columns:60px 1fr 1fr 1.2fr}
.docdock{font-size:12.5px}
.dockhdr{display:grid;grid-template-columns:1.6fr 1fr 1fr 30px;gap:10px;padding:8px 0;font-size:10px;color:var(--tx-3);font-weight:600;border-bottom:1px solid var(--line)}
.docrow{display:grid;grid-template-columns:1.6fr 1fr 1fr 30px;gap:10px;padding:11px 0;align-items:center;border-bottom:1px solid var(--line-2)}
.docname{font-weight:600;color:var(--ink)}
.blktag{font-style:normal;font-size:9px;font-weight:700;color:var(--bad);background:var(--bad-s);padding:1px 6px;border-radius:4px;margin-left:7px}
.docexp{font-family:var(--mono);font-size:11.5px;color:var(--tx-2);font-feature-settings:"tnum" 1}
.docleft{font-size:12px;font-weight:600;text-align:right}
.docband{text-align:center}
/* pricing engine */
.pricecol .sh2{margin-bottom:10px}
.exp.editing{background:var(--sysblue);color:#fff;border-color:var(--sysblue)}
.exp.editing svg{stroke:#fff}
.prow{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--line-2);font-size:12.5px;color:var(--tx-2)}
.prow:last-child{border-bottom:none}
.prow.total{font-weight:700;color:var(--ink);border-top:2px solid var(--line);margin-top:4px;font-size:13.5px}
.plbl{display:flex;flex-direction:column}
.plbl small{font-size:10px;color:var(--sysblue);font-weight:600}
.pval{font-family:var(--mono);font-feature-settings:"tnum" 1;color:var(--ink);font-weight:600}
.pinput{width:90px;font-family:var(--mono);font-size:12px;text-align:right;border:1px solid var(--sysblue);border-radius:6px;padding:5px 8px;background:#fff}
.ffgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding-top:8px}
.ffcell{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--tx-2);font-feature-settings:"tnum" 1}
.pricehdr{display:grid;grid-template-columns:2fr 60px 1fr 1.1fr 1.2fr 1fr 1fr 1fr;gap:10px;padding:11px 20px;font-size:11px;color:var(--tx-3);font-weight:500;border-bottom:1px solid var(--line-2)}
.pricerow{display:grid;grid-template-columns:2fr 60px 1fr 1.1fr 1.2fr 1fr 1fr 1fr;gap:10px;padding:11px 20px;align-items:center;border-bottom:1px solid var(--line-2);cursor:pointer;font-size:12.5px;transition:.08s}
.pricerow:hover{background:rgba(120,120,128,.05)}
.pssite b{font-size:13px;font-weight:600;color:var(--ink);display:block}
.pssite small{font-size:11px;color:var(--tx-3)}
.psnum{text-align:right;font-family:var(--mono);font-feature-settings:"tnum" 1;color:var(--tx-2);font-size:12px}
.psnum b{color:var(--ink)}
.breakdown{font-size:12.5px}
.bdrow{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--line-2);color:var(--tx-2)}
.bdrow b{font-feature-settings:"tnum" 1;color:var(--ink)}
.bdrow.sub{font-weight:600;color:var(--ink);background:rgba(120,120,128,.05);margin:0 -6px;padding:7px 6px}
.bdrow.tot{font-weight:700;color:var(--ink);border-top:2px solid var(--line);font-size:13.5px}
.assetgrid{display:grid;grid-template-columns:1fr 1fr;gap:9px 16px}
.assetgrid>div{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;color:var(--tx-2);padding:6px 0;border-bottom:1px solid var(--line-2)}
.assetgrid b{font-feature-settings:"tnum" 1;color:var(--ink);font-weight:600;text-align:right}
/* bulk upload preview */
.uplsum{display:flex;gap:10px;margin-top:8px}
.uplstat{font-size:12px;font-weight:600;padding:5px 12px;border-radius:8px}
.uplstat.add{background:var(--good-s);color:#0E6B49}
.uplstat.skip{background:rgba(120,120,128,.12);color:var(--tx-2)}
.uploadtbl{font-size:11.5px;max-height:380px;overflow-y:auto}
.uplhdr{display:grid;grid-template-columns:70px 1.4fr 70px 60px 1.6fr;gap:8px;padding:8px 4px;font-size:10px;color:var(--tx-3);font-weight:600;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--card)}
.uplrow{display:grid;grid-template-columns:70px 1.4fr 70px 60px 1.6fr;gap:8px;padding:8px 4px;align-items:center;border-bottom:1px solid var(--line-2)}
.uplrow.add{background:rgba(20,133,94,.04)}
.uplrow.skip{opacity:.6}
.uplnote{font-size:10.5px;color:var(--tx-3)}
.uplrow.add .uplnote{color:#0E6B49}
/* decant receipts */
.rcphdr{display:grid;grid-template-columns:1fr 1.8fr 70px 1fr 1fr 1fr 1.2fr 1.1fr;gap:10px;padding:11px 20px;font-size:11px;color:var(--tx-3);font-weight:500;border-bottom:1px solid var(--line-2)}
.rcprow{display:grid;grid-template-columns:1fr 1.8fr 70px 1fr 1fr 1fr 1.2fr 1.1fr;gap:10px;padding:12px 20px;align-items:center;border-bottom:1px solid var(--line-2);cursor:pointer;font-size:12.5px;transition:.08s}
.rcprow:hover{background:rgba(120,120,128,.05)}
.rcpid b{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--ink);display:block}
.rcpid small,.rcpsite small,.rcplink small{font-size:10.5px;color:var(--tx-3);display:block;margin-top:1px}
.rcpsite{font-size:12.5px;color:var(--ink);font-weight:500}
.rcpnum{text-align:right;font-feature-settings:"tnum" 1;color:var(--tx-2)}
.rcplink{font-size:11.5px;color:var(--tx-2);font-feature-settings:"tnum" 1}
.tracerow{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tracecell{background:rgba(120,120,128,.05);border-radius:10px;padding:11px 14px}
.tracecell span{font-size:11px;color:var(--tx-3);display:block;margin-bottom:3px}
.tracecell b{font-size:13px;color:var(--ink);font-feature-settings:"tnum" 1}
.chrow.rcpch,.chhdr.rcpchh,.chfoot.rcpchf{grid-template-columns:60px 1fr 1fr 1fr 1fr}
/* document store */
.dochdr{display:grid;grid-template-columns:2.2fr 56px 70px 1.6fr 1fr;gap:12px;padding:11px 20px;font-size:11px;color:var(--tx-3);font-weight:500;border-bottom:1px solid var(--line-2)}
.docrow{display:grid;grid-template-columns:2.2fr 56px 70px 1.6fr 1fr;gap:12px;padding:12px 20px;align-items:center;border-bottom:1px solid var(--line-2);cursor:pointer;font-size:12.5px;transition:.08s}
.docrow:hover{background:rgba(120,120,128,.05)}
.docsite b{font-size:13px;font-weight:600;color:var(--ink);display:block}
.docsite small{font-size:11px;color:var(--tx-3)}
.doccount{text-align:center;font-family:var(--mono);font-weight:700;font-size:13px}
.docdotlabel{display:flex;gap:4px}
.dtcol{flex:1;font-size:8.5px;color:var(--tx-3);text-align:center;text-transform:uppercase;letter-spacing:.02em}
.docdots{display:flex;gap:4px;align-items:center}
.docdot2{flex:1;height:7px;border-radius:3px;min-width:14px}
.docdot2.have{background:var(--good)}
.docdot2.miss{background:rgba(120,120,128,.22)}
.docdot2.hl{outline:2px solid var(--sysblue);outline-offset:1px}
.docslots{display:flex;flex-direction:column;gap:8px}
.docslot{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-radius:11px;border:1px solid var(--line-2)}
.docslot.have{background:rgba(20,133,94,.04)}
.docslot.miss{background:var(--warn-s);border-color:transparent}
.dsleft{display:flex;align-items:center;gap:11px}
.dsicon{font-size:17px}
.dsicon.miss{font-size:18px;color:#92600F;font-weight:700;width:20px;text-align:center}
.dsleft b{font-size:13px;color:var(--ink);display:block}
.dsleft small{font-size:11px;color:var(--tx-3)}
.dsact{display:flex;gap:6px}
.dschip{font-family:var(--body);font-size:11.5px;font-weight:600;border:none;border-radius:7px;padding:6px 12px;cursor:pointer}
.dschip.view{background:rgba(10,132,255,.1);color:var(--sysblue-2)}
.dschip.rep{background:rgba(120,120,128,.12);color:var(--tx-2)}
.dschip.up{background:var(--sysblue);color:#fff}
/* pump & tank config */
.cfghdr{display:grid;grid-template-columns:2.2fr 1.4fr 60px 60px 70px 1fr;gap:12px;padding:11px 20px;font-size:11px;color:var(--tx-3);font-weight:500;border-bottom:1px solid var(--line-2)}
.cfgrow{display:grid;grid-template-columns:2.2fr 1.4fr 60px 60px 70px 1fr;gap:12px;padding:12px 20px;align-items:center;border-bottom:1px solid var(--line-2);cursor:pointer;font-size:12.5px;transition:.08s}
.cfgrow:hover{background:rgba(120,120,128,.05)}
.cfgsite b{font-size:13px;font-weight:600;color:var(--ink);display:block}
.cfgsite small{font-size:11px;color:var(--tx-3)}
.cfgprod{display:flex;gap:4px;flex-wrap:wrap}
.cfgnum{text-align:center;font-family:var(--mono);font-weight:600;color:var(--ink)}
.cfgttbl,.cfgptbl{font-size:12px}
.cfgthdr,.cfgtrow{display:grid;grid-template-columns:50px 60px 1fr 60px 1fr 1fr;gap:8px;align-items:center;padding:9px 4px;border-bottom:1px solid var(--line-2)}
.cfgthdr{font-size:10px;color:var(--tx-3);font-weight:600;text-transform:uppercase}
.ctn{font-family:var(--mono);font-weight:700;color:var(--ink)}
.cfgtnum{font-family:var(--mono);font-feature-settings:"tnum" 1;color:var(--tx-2);font-size:11.5px}
.cfgprow{display:flex;align-items:center;gap:12px;padding:10px 4px;border-bottom:1px solid var(--line-2)}
.cpn{font-weight:600;color:var(--ink);min-width:64px;font-size:12px}
.cfgnoz{display:flex;gap:8px;flex-wrap:wrap}
.nozchip{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--tx-2);font-family:var(--mono)}
/* engineering complaints */
.engcats{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:18px}
.engcat{background:var(--card);border:1px solid var(--line-2);border-radius:12px;padding:14px 10px;cursor:pointer;text-align:center;transition:.1s;box-shadow:var(--shadow)}
.engcat:hover{transform:translateY(-1px)}
.engcat.on{border-color:var(--sysblue);background:rgba(10,132,255,.05)}
.engcat b{display:block;font-family:var(--mono);font-size:22px;font-weight:700;color:var(--ink)}
.engcat span{font-size:10.5px;color:var(--tx-3);line-height:1.2;display:block;margin-top:3px}
.enghdr{display:grid;grid-template-columns:1.1fr 1.6fr 1.4fr 80px 1fr 1.3fr;gap:12px;padding:11px 20px;font-size:11px;color:var(--tx-3);font-weight:500;border-bottom:1px solid var(--line-2)}
.engrow{display:grid;grid-template-columns:1.1fr 1.6fr 1.4fr 80px 1fr 1.3fr;gap:12px;padding:12px 20px;align-items:center;border-bottom:1px solid var(--line-2);cursor:pointer;font-size:12.5px;transition:.08s}
.engrow:hover{background:rgba(120,120,128,.05)}
.engid b{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--ink);display:block}
.engid small,.engsite small{font-size:10.5px;color:var(--tx-3);display:block;margin-top:1px}
.engsite{font-size:12.5px;color:var(--ink);font-weight:500}
.engcatcell{font-size:12px;color:var(--tx-2)}
.pripill{font-size:11px;font-weight:700;padding:3px 10px;border-radius:6px;text-align:center}
.engsla{font-family:var(--mono);font-size:11.5px;color:var(--tx-2);font-weight:600}
.engsla.breach{color:#C0392B}
.engsteps{display:flex;gap:3px;margin-bottom:3px}
.engstep{width:18px;height:5px;border-radius:3px;background:rgba(120,120,128,.2)}
.engstep.done{background:var(--good)}
.engstep.cur{background:var(--sysblue)}
.engstate small{font-size:10.5px;color:var(--tx-3)}
.engdesc{font-size:13px;color:var(--ink);background:rgba(120,120,128,.05);border-radius:10px;padding:12px 14px;line-height:1.5}
.tlwrap{display:flex;flex-direction:column;gap:0}
.tlstep{display:flex;align-items:center;gap:12px;padding:8px 0;position:relative}
.tlstep i{width:14px;height:14px;border-radius:50%;background:rgba(120,120,128,.25);flex-shrink:0;z-index:1}
.tlstep.done i{background:var(--good)}
.tlstep.cur i{background:var(--sysblue);box-shadow:0 0 0 4px rgba(10,132,255,.15)}
.tlstep:not(:last-child)::after{content:'';position:absolute;left:6px;top:22px;width:2px;height:18px;background:var(--line-2)}
.tlstep.done:not(:last-child)::after{background:var(--good)}
.tlstep b{font-size:13px;color:var(--ink)}
.tlstep small{font-size:10.5px;color:var(--sysblue);margin-left:8px}

/* ============ price revision (full build-up) + final build ============ */
#prForm{position:fixed;inset:0;background:rgba(16,24,40,.5);z-index:920;display:none;align-items:center;justify-content:center;padding:24px}
#prForm.on{display:flex}
.tk-card.pr-wide{max-width:660px}
.pr-daterow{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:4px}
.pr-daterow label{display:block;font-size:11px;font-weight:600;color:#475467;margin:2px 0 4px}
.pr-daterow input[type=date]{border:1.5px solid #E4E7EC;border-radius:8px;padding:9px 11px;font-family:'JetBrains Mono',monospace;font-size:13px}
.pr-daterow input[type=date]:focus{outline:none;border-color:#1F6FB2}
.pr-hint{font-size:10.5px;color:#98A2B3;text-align:right;max-width:300px;line-height:1.5}
.pr-sect{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:12px;color:#0F2440;margin:18px 0 8px;padding-bottom:5px;border-bottom:1.5px solid #EDF0F4;text-transform:uppercase;letter-spacing:.4px}
.pr-tbl{width:100%;border-collapse:collapse}
.pr-tbl th{font-size:10.5px;font-weight:600;color:#667085;text-align:left;padding:0 6px 7px;letter-spacing:.2px}
.pr-tbl th.ms{color:#D11F2A}.pr-tbl th.hsd{color:#1F6FB2}.pr-tbl th.hobc{color:#7A5AF8}
.pr-tbl td{padding:3px 6px}
.pr-tbl td.pr-lbl{font-size:12px;color:#344054;white-space:nowrap;font-weight:500}
.pr-tbl input{width:100%;border:1.5px solid #E4E7EC;border-radius:7px;padding:7px 9px;font-family:'JetBrains Mono',monospace;font-size:12.5px}
.pr-tbl input:focus{outline:none;border-color:#1F6FB2;box-shadow:0 0 0 3px rgba(31,111,178,.1)}
.pr-frgrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:11px}
.pr-fr label{display:block;font-size:10.5px;font-weight:600;color:#667085;margin-bottom:4px}
.pr-fr input{width:100%;border:1.5px solid #E4E7EC;border-radius:7px;padding:8px 9px;font-family:'JetBrains Mono',monospace;font-size:12.5px}
.pr-fr input:focus{outline:none;border-color:#1F6FB2}
.exp.pricenew{background:#D11F2A;color:#fff;border-color:#D11F2A}
.exp.pricenew svg{stroke:#fff}
.exp.pricenew:hover{filter:brightness(1.05)}
/* ============ FINAL BUILD: auth · exports · typeahead · polish ============ */
#authOverlay{position:fixed;inset:0;background:linear-gradient(135deg,#0F2440 0%,#16345C 100%);z-index:900;display:flex;align-items:center;justify-content:center;padding:22px}
.auth-card{background:#fff;border-radius:16px;padding:32px 30px;width:100%;max-width:400px;box-shadow:0 24px 70px rgba(0,0,0,.4);animation:authIn .4s cubic-bezier(.2,.9,.3,1.2)}
@keyframes authIn{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.auth-logo{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:21px;color:#0F2440;letter-spacing:-.3px}
.auth-logo b{color:#D11F2A}
.auth-sub{font-size:12px;color:#98A2B3;margin:3px 0 20px}
.auth-card label{display:block;font-size:11px;color:#475467;font-weight:600;margin:13px 0 5px;letter-spacing:.2px}
.auth-card input,.auth-card select{width:100%;border:1.5px solid #E4E7EC;border-radius:9px;padding:11px 12px;font-family:'JetBrains Mono',monospace;font-size:14px;transition:border-color .15s,box-shadow .15s}
.auth-card input:focus,.auth-card select:focus{outline:none;border-color:#1F6FB2;box-shadow:0 0 0 3px rgba(31,111,178,.12)}
.auth-btn{width:100%;margin-top:18px;background:#D11F2A;color:#fff;border:none;border-radius:9px;padding:12.5px;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:14px;cursor:pointer;transition:transform .12s,box-shadow .12s}
.auth-btn:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(209,31,42,.3)}
.auth-err{font-size:11px;color:#D11F2A;margin-top:8px;display:none}
.otp-row{display:flex;gap:8px}.otp-row input{text-align:center;font-size:18px;padding:10px 0}
.auth-meta{font-size:10.5px;color:#98A2B3;margin-top:14px;text-align:center;line-height:1.55}
.userchip{display:flex;align-items:center;gap:8px;background:#fff;border:1.5px solid var(--line,#E4E7EC);border-radius:22px;padding:5px 13px 5px 6px;font-size:12px;font-weight:600;color:#0F2440;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.userchip:hover{border-color:#D11F2A;box-shadow:0 3px 10px rgba(209,31,42,.12)}
.userchip .uc-av{width:26px;height:26px;border-radius:50%;background:#0F2440;color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Space Grotesk';font-size:11px;font-weight:700}
.userchip .uc-role{font-size:9.5px;color:#98A2B3;font-weight:500;display:block;margin-top:-2px}
.tb-kbd{font-family:'JetBrains Mono',monospace;font-size:10px;background:#EEF1F5;border:1px solid #DCE2EA;border-radius:4px;padding:1px 6px;margin-left:8px;color:#667085}
.tahwrap{position:relative}
.tah-clear{position:absolute;right:9px;top:50%;transform:translateY(-50%);cursor:pointer;color:#98A2B3;font-size:15px;line-height:1;padding:2px 4px;border-radius:5px}
.tah-clear:hover{background:#F2F4F8;color:#D11F2A}
.tahdrop{position:absolute;top:calc(100% + 5px);left:0;right:0;background:#fff;border:1px solid var(--line,#E4E7EC);border-radius:11px;box-shadow:0 14px 40px rgba(16,24,40,.16);z-index:120;display:none;overflow:hidden;max-height:330px;overflow-y:auto}
.tahdrop.on{display:block;animation:tahIn .14s ease}
@keyframes tahIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.tah-it{display:flex;align-items:center;gap:10px;padding:9px 13px;cursor:pointer;border-bottom:1px solid #F3F5F8}
.tah-it:last-child{border-bottom:none}
.tah-it:hover,.tah-it.act{background:#F6F8FB}
.tah-it .t-code{font-family:'JetBrains Mono',monospace;font-size:11.5px;font-weight:600;background:#0F2440;color:#fff;border-radius:6px;padding:2px 8px;flex-shrink:0}
.tah-it .t-nm{font-size:12.5px;font-weight:600;color:#101828;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tah-it .t-sub{font-size:10.5px;color:#98A2B3;margin-left:auto;flex-shrink:0}
.tah-none{padding:12px 14px;font-size:12px;color:#98A2B3}
#toastBox{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(8px);background:#0F2440;color:#fff;font-size:12.5px;font-weight:500;padding:11px 20px;border-radius:26px;z-index:950;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;box-shadow:0 10px 30px rgba(16,36,64,.35);max-width:70%;text-align:center}
#toastBox.on{opacity:1;transform:translateX(-50%) translateY(0)}
#evLight{position:fixed;inset:0;background:rgba(10,16,28,.86);z-index:940;display:none;align-items:center;justify-content:center;padding:40px;cursor:zoom-out}
#evLight.on{display:flex}
#evLight .evbig{background:#fff;border-radius:14px;padding:20px;max-width:520px;width:100%;animation:authIn .3s ease}
#evLight .evbig svg{width:100%;height:auto}
#evLight .evcap{font-size:12px;color:#475467;margin-top:12px;text-align:center;font-family:'JetBrains Mono',monospace}
#tkForm,#docPrev{position:fixed;inset:0;background:rgba(16,24,40,.5);z-index:920;display:none;align-items:center;justify-content:center;padding:24px}
#tkForm.on,#docPrev.on{display:flex}
.tk-card{background:#fff;border-radius:15px;padding:24px 26px;width:100%;max-width:580px;max-height:88vh;overflow-y:auto;animation:authIn .3s ease}
.tk-card h3{font-family:'Space Grotesk',sans-serif;font-size:17px;margin-bottom:2px}
.tk-sub{font-size:11.5px;color:#98A2B3;margin-bottom:15px}
.tk-card label{display:block;font-size:11px;font-weight:600;color:#475467;margin:10px 0 4px}
.tk-card input,.tk-card select{width:100%;border:1.5px solid #E4E7EC;border-radius:8px;padding:9px 10px;font-family:'JetBrains Mono',monospace;font-size:13px}
.tk-card input:focus,.tk-card select:focus{outline:none;border-color:#1F6FB2}
.tk-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:11px}
.tk-ch{border:1px solid #E4E7EC;border-radius:10px;padding:10px 12px;margin-top:9px;display:grid;grid-template-columns:56px 1fr 1fr 96px;gap:11px;align-items:end}
.tk-ch .lmm{font-family:'JetBrains Mono',monospace;font-size:12px;color:#1F6FB2;padding-bottom:9px}
.tk-actions{display:flex;gap:10px;margin-top:18px}
.tk-actions .go{flex:1;background:#D11F2A;color:#fff;border:none;border-radius:9px;padding:11.5px;font-family:'Space Grotesk',sans-serif;font-weight:600;cursor:pointer}
.tk-actions .gh{background:#fff;border:1.5px solid #E4E7EC;border-radius:9px;padding:11.5px 20px;cursor:pointer;font-family:'Space Grotesk',sans-serif;font-weight:600;color:#475467}
.tk-err{font-size:11px;color:#D11F2A;margin-top:9px;display:none}
.docprev-card{background:#fff;border-radius:15px;padding:22px;width:100%;max-width:460px;animation:authIn .3s ease}
.docprev-card .dp-page{border:1px solid #E4E7EC;border-radius:10px;background:#FBFCFE;padding:26px 24px;min-height:300px}
.docprev-card .dp-meta{display:flex;justify-content:space-between;font-size:11.5px;color:#667085;margin-top:12px;font-family:'JetBrains Mono',monospace}
.pinput.pxbad{border-color:#D11F2A !important;background:#FDF0F1;animation:shake .3s}
@keyframes shake{0%,100%{transform:none}25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}
/* micro-interaction & polish layer (within locked design tokens) */
.kpi{transition:transform .18s cubic-bezier(.2,.8,.3,1),box-shadow .18s}
.kpi:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(16,36,64,.09)}
.panel{transition:box-shadow .2s}
.nav{transition:background .15s,color .15s}
button{transition:filter .12s}
button:active{filter:brightness(.95)}
:focus-visible{outline:2px solid #1F6FB2;outline-offset:2px;border-radius:4px}
::selection{background:rgba(209,31,42,.15)}
*::-webkit-scrollbar{width:9px;height:9px}
*::-webkit-scrollbar-thumb{background:#C7CFDA;border-radius:6px;border:2px solid transparent;background-clip:content-box}
*::-webkit-scrollbar-thumb:hover{background:#9AA6B8;border:2px solid transparent;background-clip:content-box}
*::-webkit-scrollbar-track{background:transparent}
[id^="mod-"]:not(.hide){animation:modIn .28s cubic-bezier(.2,.8,.3,1)}
@keyframes modIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@media print{.rail,.topbar,#filters,.foot,#authOverlay,.userchip,.tb-search,.tb-export{display:none !important}.canvas{margin:0 !important;padding:0 !important}}

/* ============ design finalization: rail 2.0 · charts · quick card ============ */
.railtog{margin-left:auto;background:transparent;border:1px solid rgba(255,255,255,.14);border-radius:7px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}
.railtog svg{width:13px;height:13px;stroke:rgba(255,255,255,.65);fill:none;stroke-width:2.2;transition:transform .25s}
.railtog:hover{border-color:rgba(255,255,255,.35)}
.rail{transition:width .25s cubic-bezier(.2,.8,.3,1)}
.rail.slim{width:64px}
.rail.slim .lt,.rail.slim .grp,.rail.slim .bdg,.rail.slim .region-key,.rail.slim .railpulse,.rail.slim .winlights{display:none}
.rail.slim .nav{justify-content:center;padding-left:0;padding-right:0;font-size:0;gap:0}
.rail.slim .nav .ic{margin:0}
.rail.slim .navsec{display:block !important}
.rail.slim .railtog svg{transform:rotate(180deg)}
.rail .nav{position:relative}
.rail .nav.active::before{content:'';position:absolute;left:0;top:15%;bottom:15%;width:3px;border-radius:0 3px 3px 0;background:#D11F2A}
.railpulse{flex:0 0 auto;margin:10px 12px 8px;padding:10px 11px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:11px}
.rp-title{font-family:'Space Grotesk',sans-serif;font-size:9.5px;letter-spacing:.8px;text-transform:uppercase;color:rgba(255,255,255,.45);margin-bottom:7px}
.rp-row{display:flex;align-items:center;gap:7px;margin-top:5px}
.rp-l{font-size:9.5px;color:rgba(255,255,255,.55);width:38px;flex-shrink:0}
.rp-track{flex:1;height:4px;background:rgba(255,255,255,.1);border-radius:3px;overflow:hidden}
.rp-track i{display:block;height:100%;border-radius:3px;transition:width .4s}
.rp-v{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:600;width:34px;text-align:right;flex-shrink:0}
.ctt{position:absolute;background:#0F2440;color:#fff;border-radius:9px;padding:9px 12px;font-size:11px;pointer-events:none;opacity:0;transition:opacity .12s;z-index:40;box-shadow:0 8px 22px rgba(16,36,64,.3);min-width:135px}
.ctt.on{opacity:1}
.ctt-m{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:11.5px;margin-bottom:5px;color:#fff}
.ctt div{display:flex;align-items:center;gap:6px;margin-top:3px;color:rgba(255,255,255,.85)}
.ctt div i{width:8px;height:8px;border-radius:2px;flex-shrink:0}
.ctt div b{margin-left:auto;font-family:'JetBrains Mono',monospace;font-weight:600;padding-left:10px}
.sprk{width:60px;height:20px;vertical-align:middle}
.hubsvg{width:100%;height:auto;display:block}
.hubchart{padding-bottom:8px}
.vhist{display:flex;gap:18px;align-items:flex-end;padding:8px 6px 2px}
.vh-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px}
.vh-n{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:17px}
.vh-bar{width:100%;max-width:86px;height:86px;background:#F2F4F8;border-radius:8px;display:flex;align-items:flex-end;overflow:hidden}
.vh-bar i{display:block;width:100%;border-radius:8px 8px 0 0;transition:height .4s}
.vh-l{font-size:10.5px;color:#667085;font-family:'JetBrains Mono',monospace}
.donutrow{display:flex;align-items:center;gap:26px;padding:6px 4px}
.donut{width:130px;height:130px;flex-shrink:0}
.donutkey div{display:flex;align-items:center;gap:8px;font-size:12.5px;color:#344054;margin-top:7px}
.donutkey i{width:10px;height:10px;border-radius:3px;flex-shrink:0}
.donutkey b{margin-left:6px;font-family:'JetBrains Mono',monospace}
.wfsvg{width:100%;height:auto;display:block}
#siteQuick{position:fixed;inset:0;background:rgba(16,24,40,.5);z-index:930;display:none;align-items:center;justify-content:center;padding:24px}
#siteQuick.on{display:flex}
.sq-card{background:#fff;border-radius:16px;padding:22px 24px;width:100%;max-width:640px;animation:authIn .3s ease}
.sq-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding-bottom:14px;border-bottom:1.5px solid #EDF0F4}
.sq-code{font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:600;background:#0F2440;color:#fff;border-radius:6px;padding:2px 9px;display:inline-block}
.sq-name{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:18px;color:#0F2440;margin-top:6px}
.sq-sub{font-size:11.5px;color:#98A2B3;margin-top:2px}
.sq-chips{display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.sq-asm{font-size:11px;color:#475467;background:#F2F4F8;border-radius:12px;padding:3px 10px}
.sq-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:11px;margin-top:15px}
.sq-cell{border:1px solid #EDF0F4;border-radius:11px;padding:11px 12px;display:flex;flex-direction:column;gap:4px}
.sq-l{font-size:10px;color:#98A2B3;text-transform:uppercase;letter-spacing:.4px;font-weight:600}
.sq-cell b{font-family:'Space Grotesk',sans-serif;font-size:15px;color:#0F2440}
.sq-jump{margin-top:5px;background:#F6F8FB;border:1px solid #E4E7EC;border-radius:7px;padding:5px 8px;font-size:10.5px;font-weight:600;color:#1F6FB2;cursor:pointer;text-align:left;transition:background .12s,border-color .12s}
.sq-jump:hover{background:#EDF3F9;border-color:#1F6FB2}
@media(max-width:760px){.sq-grid{grid-template-columns:1fr 1fr}}

/* ============ branding + rail elegance ============ */
.foot{display:none !important}
.brandchip{flex:1;background:#fff;border-radius:11px;padding:7px 12px;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px rgba(15,36,64,.08),0 0 0 1px rgba(15,36,64,.05)}
.brandchip img{width:100%;max-width:150px;height:auto;display:block}
/* light textured rail — subtle diagonal weave + soft top sheen, navy ink */
.rail{background:
  linear-gradient(180deg,rgba(255,255,255,.9),rgba(242,244,248,.92) 22%,rgba(238,241,246,.94)),
  repeating-linear-gradient(45deg,rgba(15,36,64,.022) 0 1px,transparent 1px 9px),
  repeating-linear-gradient(-45deg,rgba(15,36,64,.015) 0 1px,transparent 1px 9px),
  #EEF1F6;
  border-right:1px solid rgba(15,36,64,.09);box-shadow:inset -8px 0 20px -18px rgba(15,36,64,.25)}
.rail .logo{gap:10px;align-items:center}
.rail.slim .brandchip{display:none}
.rail .grp,.rail .grp-tog{letter-spacing:.6px;font-size:9.5px;color:rgba(15,36,64,.5);font-weight:700;text-transform:uppercase}
.rail .grp-tog:hover{color:rgba(15,36,64,.75)}
.rail .grp-tog .caret{color:rgba(15,36,64,.4)}
.rail .nav{border-radius:9px;margin:1px 8px;color:#334660;font-weight:500}
.rail .nav .ic svg{stroke:#5A6B84}
.rail .nav:hover{background:rgba(15,36,64,.05);transform:translateX(2px)}
.rail .nav.active{background:#fff;color:#0F2440;font-weight:600;box-shadow:0 1px 4px rgba(15,36,64,.1),0 0 0 1px rgba(15,36,64,.05)}
.rail .nav.active .ic{background:#0F2440}
.rail .nav.active .ic svg{stroke:#fff}
.rail .nav.active::before{background:#D11F2A}
.rail .nav .bdg{color:rgba(15,36,64,.5)}
.rail .nav .bdg.alert,.rail .nav .bdg.warn,.rail .nav .bdg.info{color:#fff;box-shadow:0 1px 3px rgba(15,36,64,.2)}
.rail .region-key{border-top:1px solid rgba(15,36,64,.1);padding-top:10px}
.rkrow{color:#475467}.rkrow b{color:#0F2440}.rkrow span.rm{color:rgba(15,36,64,.5)}
.railpulse{background:rgba(255,255,255,.7);border:1px solid rgba(15,36,64,.08);box-shadow:0 1px 3px rgba(15,36,64,.05)}
.rp-title{color:rgba(15,36,64,.5)}
.rp-l{color:rgba(15,36,64,.6)}
.rp-track{background:rgba(15,36,64,.09)}
.railtog{border-color:rgba(15,36,64,.14)}
.railtog svg{stroke:rgba(15,36,64,.55)}
.railtog:hover{border-color:rgba(15,36,64,.35)}
.auth-brand{display:block;max-width:190px;height:auto;margin:0 auto 14px;background:#fff}
.auth-card{text-align:left}
.auth-card .auth-logo{text-align:center}
.auth-card .auth-sub{text-align:center}
.donutrow.big{gap:30px;padding:10px 8px}
.donutrow.big .donut{width:168px;height:168px}
.donutkey .dk-n{font-size:10.5px;color:#98A2B3;margin-top:10px}

/* ================= COMMAND CENTRE (AI layer) ================= */
.cc-grid{display:grid;grid-template-columns:minmax(0,1fr) 372px;gap:14px;align-items:start}
@media(max-width:1250px){.cc-grid{grid-template-columns:minmax(0,1fr)}}
.cc-brief{background:linear-gradient(135deg,#0F2440 0%,#1B3A63 100%);color:#E8EDF6;border-radius:var(--r);padding:20px 22px;box-shadow:var(--sh);margin-bottom:14px}
.cc-eb{font-size:10.5px;text-transform:uppercase;letter-spacing:.09em;color:#8FA6C6;font-weight:600;display:flex;align-items:center;gap:8px}
.cc-eb i{width:6px;height:6px;border-radius:50%;background:var(--good);display:inline-block}
.cc-brief h2{font-family:var(--disp);font-size:20px;line-height:1.3;font-weight:600;margin:9px 0 10px;max-width:62ch;letter-spacing:-.01em}
.cc-brief p{margin:0;font-size:13.5px;line-height:1.65;color:#C3D0E4;max-width:94ch}
.cc-brief p b{color:#fff;font-weight:600}
.cc-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.cc-chips button{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:#E8EDF6;border-radius:999px;padding:6px 13px;font:inherit;font-size:12px;cursor:pointer}
.cc-chips button:hover{background:rgba(255,255,255,.16)}
.cc-src-note{font-size:11px;color:#7E93B3;margin-top:12px;font-family:var(--mono)}
.cc-focus{display:flex;flex-direction:column}
.cc-frow{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:12px;padding:12px 18px;border-top:1px solid var(--line-2);align-items:start}
.cc-frow:first-child{border-top:0}
.cc-frow:hover{background:rgba(10,132,255,.03)}
.cc-fsev{width:9px;height:9px;border-radius:50%;margin-top:5px}
.cc-ft{font-size:13.5px;font-weight:600;color:var(--tx);margin-bottom:2px}
.cc-fd{font-size:12.5px;color:var(--tx-2);line-height:1.5}
.cc-fr{display:flex;flex-direction:column;align-items:flex-end;gap:5px;text-align:right}
.cc-fv{font-family:var(--mono);font-size:12px;color:var(--tx);white-space:nowrap}
.cc-act{border:1px solid var(--line);background:var(--card);color:var(--sig);border-radius:7px;padding:4px 10px;font:inherit;font-size:11.5px;font-weight:600;cursor:pointer;white-space:nowrap}
.cc-act:hover{border-color:var(--sig);background:var(--sig-s)}
.cc-split{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:16px;padding:14px 18px}
@media(max-width:900px){.cc-split{grid-template-columns:minmax(0,1fr)}}
.cc-mix{display:flex;flex-direction:column;gap:11px}
.cc-mrow{display:grid;grid-template-columns:58px 1fr auto;gap:10px;align-items:center;font-size:12px}
.cc-mtag{font-family:var(--mono);font-size:10.5px;color:#fff;border-radius:5px;padding:2px 0;text-align:center}
.cc-mbar{height:7px;background:var(--grey-s);border-radius:4px;overflow:hidden}
.cc-mbar i{display:block;height:100%;border-radius:4px}
.cc-mv{font-family:var(--mono);font-size:11.5px;white-space:nowrap;color:var(--tx-2)}
.cc-note{font-size:11.5px;color:var(--tx-3);line-height:1.55;padding:0 18px 14px}
.cc-pbox{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px 18px 6px}
.cc-p{border:1px solid var(--line);border-radius:var(--r-sm);padding:11px 13px}
.cc-p .l{font-size:11px;color:var(--tx-2);display:flex;align-items:center;gap:7px}
.cc-p .v{font-family:var(--disp);font-size:22px;font-weight:600;margin-top:3px}
.cc-p .r{font-family:var(--mono);font-size:10.5px;color:var(--tx-3)}
.cc-drv{display:grid;grid-template-columns:150px 1fr 56px;gap:10px;align-items:center;font-size:12px;padding:3px 18px;color:var(--tx-2)}
.cc-drv .t{position:relative;height:9px;background:var(--grey-s);border-radius:3px}
.cc-drv .t i{position:absolute;top:0;bottom:0;border-radius:3px;background:var(--bad)}
.cc-drv .t i.neg{background:var(--good)}
.cc-drv .n{font-family:var(--mono);text-align:right;color:var(--tx)}
.cc-guard{margin:12px 18px 16px;border-left:3px solid var(--sig);background:var(--sig-s);border-radius:0 8px 8px 0;padding:10px 13px;font-size:12px;color:var(--tx-2);line-height:1.55}
.cc-guard b{color:var(--tx)}
.cc-ask{background:var(--card);border-radius:var(--r);box-shadow:var(--sh);display:flex;flex-direction:column;position:sticky;top:14px;height:calc(100vh - 150px);min-height:520px;overflow:hidden}
@media(max-width:1250px){.cc-ask{position:static;height:600px}}
.cc-askh{padding:13px 16px;border-bottom:1px solid var(--line-2);display:flex;gap:10px;align-items:center}
.cc-orb{width:28px;height:28px;border-radius:8px;background:#0F2440;color:#fff;display:grid;place-items:center;font-family:var(--disp);font-size:11px;font-weight:700;letter-spacing:.04em;flex:none}
.cc-askh b{font-size:13.5px;display:block;line-height:1.2}
.cc-askh span{font-size:11px;color:var(--tx-3)}
.cc-thread{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:13px}
.cc-msg{font-size:13px;line-height:1.6}
.cc-msg.me{align-self:flex-end;max-width:86%;background:var(--sig);color:#fff;padding:7px 12px;border-radius:13px 13px 3px 13px}
.cc-msg.ai p{margin:0 0 7px}
.cc-msg.ai ul{margin:0 0 7px;padding-left:17px;display:flex;flex-direction:column;gap:3px}
.cc-msg.ai h5{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--tx-3);margin:11px 0 5px;font-weight:600}
.cc-msg.ai table{width:100%;border-collapse:collapse;font-size:12px;margin:3px 0 8px}
.cc-msg.ai th{text-align:left;font-size:10.5px;color:var(--tx-3);font-weight:500;border-bottom:1px solid var(--line-2);padding:3px 5px 3px 0}
.cc-msg.ai td{padding:4px 5px 4px 0;border-bottom:1px solid var(--line-2)}
.cc-msg.ai td.r,.cc-msg.ai th.r{text-align:right;font-family:var(--mono)}
.cc-msg.ai b{color:var(--tx)}
.cc-steps{display:flex;flex-direction:column;gap:3px;font-family:var(--mono);font-size:10.5px;color:var(--tx-3)}
.cc-steps div::before{content:"\203A ";color:var(--sig)}
.cc-srcs{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.cc-srcs span{font-family:var(--mono);font-size:10px;color:var(--tx-3);border:1px solid var(--line);border-radius:4px;padding:1px 5px}
.cc-dots{display:inline-flex;gap:4px;margin-top:6px}
.cc-dots i{width:5px;height:5px;border-radius:50%;background:var(--tx-3);animation:ccblink 1.2s infinite}
.cc-dots i:nth-child(2){animation-delay:.18s}.cc-dots i:nth-child(3){animation-delay:.36s}
@keyframes ccblink{50%{opacity:.2}}
.cc-sugg{display:flex;flex-wrap:wrap;gap:5px;padding:10px 16px 0;border-top:1px solid var(--line-2)}
.cc-sugg button{border:1px solid var(--line);background:var(--paper);border-radius:999px;padding:4px 10px;font:inherit;font-size:11.5px;color:var(--tx-2);cursor:pointer;text-align:left}
.cc-sugg button:hover{border-color:var(--sig);color:var(--sig)}
.cc-form{display:flex;gap:7px;padding:10px 16px 13px}
.cc-form input{flex:1;min-width:0;border:1px solid var(--line);background:var(--paper);border-radius:9px;padding:8px 11px;font:inherit;font-size:12.5px;color:var(--tx)}
.cc-form input:focus{outline:none;border-color:var(--sig)}
.cc-form button{background:var(--sig);color:#fff;border:0;border-radius:9px;padding:0 13px;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}
