/* ============================ SRS Calculator styles ===================== */
/* ===== Brand palette (Centurion/Spartan guide): Spartan Blue primary,
   Centurion Gold secondary. Light = :root, dark = [data-theme="dark"]. ===== */
:root{
  --accent:#0075c9; --accent-2:#005fa6; --accent-soft:#e7f2fb; --focus:#0075c955;
  --gold:#d29e0e; --gold-soft:#faf1d8;
  --navy:#1a2230; --slate:#475569; --line:#e8ebf1; --line2:#d9dee7;
  --bg:#f3f6fb; --card:#ffffff; --input-bg:#ffffff; --sidebar:#ffffff;
  --ink:#1a2230; --muted:#667085; --gray:#a2a9ad;
  --ctl-bg:#eef2f8; --hover:#f5f8fc; --th-bg:#f5f8fc; --head-bg:#16202e;
  --green:#15803d; --green-bg:#e7f6ec; --red:#c0392b; --red-bg:#fdeceb;
  --amber:#b45309; --amber-bg:#fef3c7; --blue:#0075c9; --blue-bg:#e7f2fb;
  --shadow:0 1px 2px rgba(16,24,40,.04),0 10px 28px rgba(16,24,40,.07);
  --shadow-sm:0 1px 2px rgba(16,24,40,.06);
  --shadow-lg:0 1px 2px rgba(16,24,40,.05),0 20px 44px rgba(16,24,40,.10);
  --radius-card:16px; --radius-ctl:10px;
  color-scheme:light;
}
[data-theme="dark"]{
  --accent:#2b94e0; --accent-2:#56a9e6; --accent-soft:#13283a; --focus:#2b94e077;
  --gold:#e0ad2a; --gold-soft:#2a2410;
  --navy:#f1f4f9; --slate:#aab4c2; --line:#232a33; --line2:#2d3540;
  --bg:#0a0a0d; --card:#15181f; --input-bg:#1b1f28; --sidebar:#111318;
  --ink:#eef2f8; --muted:#9aa4b2; --gray:#6b7682;
  --ctl-bg:#1b1f28; --hover:#1a1e26; --th-bg:#181c24; --head-bg:#1f2937;
  --green:#34d399; --green-bg:#13271d; --red:#f87171; --red-bg:#2a1715;
  --amber:#fbbf24; --amber-bg:#2a2210; --blue:#56a9e6; --blue-bg:#13283a;
  --shadow:0 2px 4px rgba(0,0,0,.5),0 10px 28px rgba(0,0,0,.45);
  --shadow-sm:0 1px 3px rgba(0,0,0,.5);
  --shadow-lg:0 4px 8px rgba(0,0,0,.5),0 24px 56px rgba(0,0,0,.5);
  color-scheme:dark;
}
.card,.btn,.side-item,.segbtn,.iconbtn,.theme-toggle,.tab,.statcard{transition:background .12s ease,box-shadow .15s ease,border-color .12s ease,transform .12s ease}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink);background:var(--bg);font-size:14px;line-height:1.45}
h1,h2,h3,h4{margin:0 0 .4em;color:var(--ink);font-weight:650}
h1{font-size:22px} h2{font-size:17px} h3{font-size:14px}
a{color:var(--blue)}
button,input,select,textarea{font-family:inherit}

/* ---- top bar ---- */
.topbar{display:flex;align-items:center;gap:18px;background:var(--accent);color:#fff;padding:10px 18px;position:sticky;top:0;z-index:50}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:15px}
.logo{width:38px;height:38px;border-radius:var(--radius-ctl);background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;letter-spacing:.5px;font-size:13px}
.tabs{display:flex;gap:4px;margin-left:8px}
.tab{background:transparent;color:var(--line2);border:0;padding:8px 14px;border-radius:var(--radius-ctl);font-weight:600;cursor:pointer}
.tab:hover{background:rgba(255,255,255,.08);color:#fff}
.tab.active{background:var(--input-bg);color:var(--ink)}
.tab.disabled{opacity:.4;cursor:not-allowed}
.activeProfile{margin-left:auto;font-size:12px;color:var(--line2)}
.activeProfile b{color:#fff}
.dot-dirty{color:#fbbf24}

/* ---- app shell: left sidebar + main column (Salezy-style) ---- */
.appshell{display:flex;min-height:100vh;align-items:stretch}
.sidebar{flex:0 0 250px;width:250px;background:var(--sidebar);border-right:1px solid var(--line);
  display:flex;flex-direction:column;padding:14px 12px;position:sticky;top:0;height:100vh;overflow-y:auto;
  transition:flex-basis .18s ease,width .18s ease}
.side-brand{display:flex;align-items:center;gap:10px;padding:6px 8px 14px;margin-bottom:6px}
.side-name{font-weight:800;font-size:15px;color:var(--ink);white-space:nowrap;line-height:1.25}
.side-sub{font-size:10.5px;color:var(--muted);white-space:nowrap;font-weight:600}
.sidebar.collapsed .side-sub{display:none}
/* Due-diligence context switcher + banner */
.side-ctx{padding:0 4px 4px}
.side-ctx .ctxswitch{width:100%;padding:7px 8px;border:1px solid var(--line2);border-radius:9px;background:var(--input-bg);
  color:var(--ink);font-size:12px;font-weight:600;cursor:pointer}
.sidebar.collapsed .side-ctx{display:none}
.ddbanner{display:flex;align-items:center;gap:10px;padding:9px 22px;background:var(--amber-bg);color:var(--amber);
  border-bottom:1px solid var(--line);font-size:13px}
.ddbanner svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;flex:0 0 auto}
.ddbanner-sub{font-size:12px;opacity:.85}
tr.ddhome td{opacity:.68}
.side-nav{display:flex;flex-direction:column;gap:2px;flex:1}
.side-group{margin-top:12px}
.side-group-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700;padding:6px 10px 5px}
.side-item{display:flex;align-items:center;gap:11px;width:100%;text-align:left;border:0;background:transparent;
  padding:9px 11px;border-radius:10px;color:var(--slate);font-weight:600;font-size:13.5px;cursor:pointer;position:relative}
.side-item:hover{background:var(--hover);color:var(--ink)}
.side-item.active{background:var(--accent-soft);color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}
.side-icon{flex:0 0 20px;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center}
.side-icon svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.side-item .lbl{white-space:nowrap;overflow:hidden}
.side-badge{margin-left:auto;background:var(--accent);color:#fff;border-radius:999px;min-width:20px;height:18px;
  display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;padding:0 6px;line-height:1}
.side-foot{margin-top:auto;padding-top:10px;border-top:1px solid var(--line)}
.collapse-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;
  border:1px solid var(--line2);background:var(--card);color:var(--slate);cursor:pointer}
.collapse-btn:hover{background:var(--hover);color:var(--ink)}
.collapse-btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
/* collapsed rail */
.sidebar.collapsed{flex-basis:66px;width:66px}
.sidebar.collapsed .side-name,.sidebar.collapsed .side-group-label,.sidebar.collapsed .side-item .lbl{display:none}
.sidebar.collapsed .side-item{justify-content:center;padding:9px}
.sidebar.collapsed .side-brand{justify-content:center;padding:6px 0 14px}
.sidebar.collapsed .side-badge{position:absolute;top:5px;right:7px;min-width:8px;width:8px;height:8px;padding:0;font-size:0;border-radius:50%}

.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topstrip{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:14px;padding:11px 22px;
  background:var(--card);border-bottom:1px solid var(--line)}
.topstrip .page-title{font-size:18px;font-weight:700;color:var(--ink);margin:0}
.topstrip .spacer{flex:1}
.topsearch{display:flex;align-items:center;gap:8px;flex:1;max-width:360px;background:var(--ctl-bg);border:1px solid var(--line2);border-radius:var(--radius-ctl);padding:0 12px;color:var(--muted)}
.topsearch svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.9;flex-shrink:0}
.topsearch input{flex:1;border:0;background:transparent;padding:8px 0;font-size:13px;color:var(--ink);outline:none}
.topsearch input::placeholder{color:var(--muted)}
@media (max-width:1100px){.topsearch{display:none}}
.notifwrap{position:relative}
.notifdot{position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:50%;background:var(--accent);border:2px solid var(--card)}
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;
  border:1px solid var(--line2);background:var(--card);color:var(--slate);cursor:pointer}
.theme-toggle:hover{background:var(--hover);color:var(--ink)}
.theme-toggle svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.iconbtn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;
  border:1px solid var(--line2);background:var(--card);color:var(--slate);cursor:pointer;position:relative}
.iconbtn:hover{background:var(--hover);color:var(--ink)}
.iconbtn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:900px){
  .sidebar{flex-basis:66px;width:66px}
  .sidebar .side-name,.sidebar .side-group-label,.sidebar .side-item .lbl{display:none}
  .sidebar .side-item{justify-content:center;padding:9px}
}

/* ---- layout ---- */
.view{max-width:1240px;margin:22px auto;padding:0 18px 60px}
.footer{max-width:1240px;margin:0 auto 24px;padding:0 18px;color:var(--muted);font-size:12px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow);padding:18px;margin-bottom:16px}
.rowflex{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.rowflex.sectionhdr{margin-top:18px;border-top:2px solid var(--line);padding-top:14px}
.spacer{flex:1}
.muted{color:var(--muted)}
.count{display:inline-block;background:var(--ctl-bg);color:var(--slate);border-radius:999px;padding:1px 9px;font-size:12px;font-weight:700;margin-left:4px}
.inline{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--slate)}

/* ---- buttons ---- */
.btn{background:var(--ctl-bg);color:var(--ink);border:1px solid var(--line2);padding:8px 14px;border-radius:var(--radius-ctl);font-weight:600;font-size:13px;cursor:pointer}
.btn:hover{background:var(--line2)}
.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.btn.primary:hover{background:var(--accent-2)}
.btn.danger{background:var(--red);color:#fff;border-color:var(--red)}
.btn.danger:hover{filter:brightness(.92)}
.btn.sm{padding:5px 10px;font-size:12px;border-radius:6px}
.btn.xs{padding:2px 8px;font-size:12px;border-radius:6px;background:transparent;border-color:transparent;color:var(--muted)}
.btn.xs.danger{color:var(--red);background:transparent}
.btn.xs.danger:hover{background:var(--red-bg)}
.btn.big{font-size:15px;padding:14px 22px}

/* ---- flash / selftest ---- */
.flash{max-width:1240px;margin:12px auto -4px;padding:10px 16px;border-radius:var(--radius-ctl);font-weight:600;cursor:pointer}
.flash.ok{background:var(--green-bg);color:var(--green)}
.flash.warn{background:var(--amber-bg);color:var(--amber)}
.flash.fail{background:var(--red-bg);color:var(--red)}
.selftest{border-radius:var(--radius-ctl);padding:8px 14px;margin-bottom:16px;font-size:13px}
.selftest.pass{background:var(--green-bg);color:var(--green)}
.selftest.fail{background:var(--red-bg);color:var(--red)}
.selftest ul{margin:6px 0 0;padding-left:20px}

/* ---- tables ---- */
table{border-collapse:collapse;width:100%;font-size:13px}
th,td{text-align:left;padding:7px 9px;border-bottom:1px solid var(--line);vertical-align:middle}
th{color:var(--slate);font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;background:var(--hover);border-bottom:1px solid var(--line2)}
.grid tbody tr:hover{background:var(--hover)}
td,td.num,th.num{font-variant-numeric:tabular-nums}
td.num,th.num{text-align:right}
.empty{padding:48px 24px;text-align:center;color:var(--muted);font-size:13.5px;background:var(--hover);border:1px solid var(--line);border-radius:var(--radius-card)}

/* ---- tier badges ---- */
.tierbadge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap;color:#fff}
.tierbadge.t1{background:#991b1b} .tierbadge.t2{background:#c2410c}
.tierbadge.t3{background:#b45309} .tierbadge.t4{background:#2563eb} .tierbadge.t5{background:#15803d}
.tierbadge.gate{outline:2px solid #fca5a5;outline-offset:1px}
.realbadge{display:inline-block;margin-left:4px;padding:1px 6px;border-radius:999px;font-size:10px;font-weight:800;color:#fff;background:#15803d;vertical-align:middle}
.cmdtext{font-family:ui-monospace,Consolas,monospace;font-size:11px;background:var(--head-bg);padding:2px 6px;border-radius:6px;white-space:nowrap}

/* ---- upload ---- */
.drop{text-align:center;padding:30px}
.drop input[type=file]{display:none}
.parsestatus{margin-top:14px;font-size:13px;min-height:18px}
.parsestatus .err{color:var(--red)}
.spin{color:var(--slate)}
textarea.paste{width:100%;border:1px solid var(--line2);border-radius:var(--radius-ctl);padding:10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;margin:8px 0}
details.card summary{cursor:pointer;font-weight:600;color:var(--ink)}

/* ---- header / settings card ---- */
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px 14px}
.field{display:flex;flex-direction:column;gap:3px}
.field label{font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-weight:700}
.field input{padding:7px 8px;border:1px solid var(--line2);border-radius:7px;font-size:13px;background:var(--input-bg);color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--blue);outline-offset:-1px;border-color:var(--blue)}
.winrow{margin-top:12px;font-size:12px;color:var(--slate);display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.winchip{background:var(--ctl-bg);border-radius:6px;padding:3px 9px}
.winchip b{color:var(--ink)}
.cleanrow{margin-top:10px;font-size:12px;color:var(--slate);display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.cleanrow label{font-weight:600}
.cleaninp{width:64px;padding:5px 6px;border:1px solid var(--line2);border-radius:6px;font-size:12px}
.statedrow{margin-top:8px;font-size:12px;color:var(--slate)}

/* ---- score strip ---- */
.scorestrip{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:6px}
.scorecell{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow);padding:12px 16px;text-align:center}
.scoreyr{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700}
.scoresri{font-size:30px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.1}
.scorepts{font-size:11px;color:var(--muted);margin-top:3px}
.mismatch{background:var(--amber-bg);color:var(--amber);border-radius:var(--radius-ctl);padding:8px 14px;font-weight:600;margin:8px 0}
.okline{color:var(--green);font-weight:600;margin-top:6px}
.warnline{color:var(--amber);font-weight:600;margin-top:6px}

/* ---- editable incident tables ---- */
.grid.editable input{width:100%;padding:5px 6px;border:1px solid transparent;border-radius:6px;font-size:12.5px;background:transparent}
.grid.editable input:hover{border-color:var(--line2)}
.grid.editable input:focus{background:var(--input-bg);border-color:var(--blue)}
.grid.editable td{padding:3px 6px}
input.w-date{min-width:78px} input.w-name{min-width:130px} input.w-man{min-width:150px}
input.w-cls{min-width:130px} input.w-dot{width:46px;text-align:center} input.w-notes{min-width:140px}
.bucketsel{width:100%;padding:5px 6px;border:1px solid var(--line2);border-radius:6px;font-size:12px;background:var(--input-bg)}
.muted-row{opacity:.55}
.muted-row:hover{opacity:1}
.yearchip{display:inline-block;padding:1px 7px;border-radius:6px;font-size:11px;font-weight:800;color:#fff}
.yearchip.y0{background:#2563eb} .yearchip.y1{background:#7c3aed} .yearchip.y2{background:#0891b2}
.yearchip.out{background:var(--line2);color:var(--slate)}
.card.vedr{font-size:13px;color:var(--slate)}

/* ---- KC-style summary grid ---- */
.formula{font-style:italic;color:var(--slate);margin:-4px 0 14px}
.grid.kc th.yrhead{text-align:center;background:var(--ctl-bg);color:var(--ink)}
.grid.kc tr.subhead th{font-size:10px}
.grid.kc td.wt{color:var(--muted);width:48px}
.grid.kc td.pts{font-weight:700;color:var(--ink)}
.grid.kc tr.grouphdr td{background:var(--head-bg);color:#fff;font-weight:700;text-transform:uppercase;font-size:11px;letter-spacing:.04em}
.grid.kc tr.subtotal td{background:var(--ctl-bg);font-weight:700}
.grid.kc tr.total td{background:var(--blue-bg);font-weight:800}
.grid.kc tr.sri td{background:var(--head-bg);color:#fff;font-weight:800}
.grid.kc tr.sri td.srival{font-size:16px}
.grid.kc tr.tierrow td{font-weight:700}
.card.compare .mini{width:auto;min-width:420px}
.card.compare .mini td,.card.compare .mini th{text-align:center}
.card.compare .mini td:first-child,.card.compare .mini th:first-child{text-align:left}

/* ---- v2: stats, banners, subtabs, locations, regions ---- */
.statgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
@media (max-width:1000px){.statgrid{grid-template-columns:repeat(2,1fr)}}
.statcard{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-sm);padding:14px 16px;text-align:left}
.statcard:hover{box-shadow:var(--shadow)}
.statnum{font-size:24px;font-weight:800;color:var(--ink);letter-spacing:-.01em;line-height:1.2;font-variant-numeric:tabular-nums}
.statlabel{font-size:11.5px;color:var(--muted);font-weight:600;margin-top:3px;line-height:1.4}
.covbanner{background:var(--blue-bg);color:var(--blue);border-radius:var(--radius-ctl);padding:9px 14px;margin-bottom:14px;font-size:13px}
.esttag{display:inline-block;background:var(--amber-bg);color:var(--amber);border-radius:5px;padding:1px 6px;font-size:10px;font-weight:800;letter-spacing:.04em;vertical-align:middle}
.estline{font-size:12px;color:var(--amber);margin-bottom:6px}
.small{font-size:12px}
.muted.small{color:var(--muted)}
.subtabs{display:inline-flex;gap:2px;margin-left:8px;background:var(--ctl-bg);border-radius:var(--radius-ctl);padding:2px}
.subtab{background:transparent;border:0;padding:6px 14px;border-radius:6px;font-weight:600;font-size:13px;color:var(--slate);cursor:pointer}
.subtab.active{background:var(--input-bg);color:var(--ink);box-shadow:var(--shadow)}
input.w-fac{width:60px;text-align:center}
.src{font-size:9px;font-weight:800;border-radius:4px;padding:0 3px;margin-left:2px;vertical-align:middle}
.src.driver{background:var(--blue-bg);color:var(--blue)}
.src.roster{background:var(--green-bg);color:var(--green)}
.src.unknown{background:var(--ctl-bg);color:var(--slate)}
.cleanchip{display:inline-block;border-radius:5px;padding:1px 7px;font-size:10px;font-weight:800}
.cleanchip.cl{background:var(--green-bg);color:var(--green)}
.cleanchip.fa{background:var(--red-bg);color:var(--red)}
.milesrow{margin-top:10px;display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--slate)}
.milesrow label{font-weight:600}
.region .regname{font-size:15px;font-weight:700;border:1px solid transparent;border-radius:6px;padding:4px 6px;color:var(--ink);min-width:220px}
.region .regname:hover{border-color:var(--line2)}
.regsri{font-size:13px;font-weight:700;color:var(--ink)}
.facpicker{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.facchip{background:var(--ctl-bg);border:1px solid var(--line2);border-radius:999px;padding:4px 11px;font-size:12px;font-weight:600;color:var(--slate);cursor:pointer}
.facchip.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.facchip.other{background:var(--input-bg);color:var(--amber);border-color:var(--amber);border-style:dashed}
.regdesc{display:block;width:100%;margin:8px 0 2px;border:1px solid var(--line);border-radius:6px;padding:6px 8px;font-size:12px;color:var(--slate)}
/* scope selector + banner */
.scopebox{display:flex;align-items:center;gap:6px}
.scopelbl{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700}
.scopesel{border:1px solid var(--line2);border-radius:var(--radius-ctl);padding:5px 9px;font-size:13px;font-weight:600;color:var(--ink);background:var(--input-bg);cursor:pointer}
.scopebanner{background:var(--accent);color:#fff;border-radius:var(--radius-ctl);padding:8px 14px;margin-bottom:14px;font-size:13px}
.scopebanner a{color:#fff;text-decoration:underline}
.periodsel{border:1px solid var(--line2);border-radius:var(--radius-ctl);padding:5px 9px;font-size:13px;font-weight:600;color:var(--ink);background:var(--input-bg);cursor:pointer}
.periodbanner{background:var(--blue-bg);color:var(--ink);border:1px solid var(--line2);border-radius:var(--radius-ctl);padding:8px 14px;margin-bottom:14px;font-size:13px}
/* dismissible notification banners — × on the far right */
.hasdismiss{position:relative;padding-right:36px}
.banner-x{position:absolute;top:50%;transform:translateY(-50%);right:8px;background:transparent;border:0;color:inherit;opacity:.55;cursor:pointer;font-size:13px;line-height:1;padding:3px 6px;border-radius:5px}
.banner-x:hover{opacity:1;background:rgba(0,0,0,.10)}
/* scorecard search bar + combined "company total" row */
.scsearchbar{margin:6px 0 10px}
.scsearchbar .fsearch{min-width:230px;padding:7px 11px;border:1px solid var(--line2);border-radius:var(--radius-ctl);background:var(--input-bg);color:var(--ink);font-size:13px}
.sctable th.sortable{white-space:nowrap}
tr.combined-row>td{border-top:2px solid var(--line2);background:var(--accent-soft);font-weight:600}
/* driver directory: Active/Inactive status pills + driver-detail meta chips */
.statuspill{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:700}
.statuspill.on{background:var(--green-bg);color:var(--green)}
.statuspill.off{background:var(--red-bg);color:var(--red)}
.driverchips{gap:10px;flex-wrap:wrap;margin:4px 0 14px}
.metachip{background:var(--hover);border:1px solid var(--line2);border-radius:999px;padding:5px 12px;font-size:13px;color:var(--ink)}
/* drill-down: clickable grid numbers + read-only incident section */
.kc td.drillable{cursor:pointer;text-decoration:underline dotted;text-underline-offset:2px}
.kc td.drillable:hover{background:var(--blue-bg);color:var(--blue);font-weight:700}
.incidents{margin-top:18px}
.incidents .sectionhdr{align-items:center;margin-bottom:6px}
.drillchip{display:inline-flex;align-items:center;gap:8px;background:var(--blue-bg);color:var(--blue);border-radius:999px;padding:3px 6px 3px 12px;font-size:13px}
.chipx{border:0;background:var(--input-bg);color:var(--slate);border-radius:999px;padding:2px 9px;font-size:12px;font-weight:700;cursor:pointer}
.chipx:hover{color:var(--red)}
.inc-details{margin-bottom:12px;border:1px solid var(--line);border-radius:10px;background:var(--card);box-shadow:var(--shadow);overflow:hidden}
.inc-details>summary{cursor:pointer;padding:9px 14px;font-weight:700;color:var(--ink);list-style:none;user-select:none}
.inc-details>summary::-webkit-details-marker{display:none}
.inc-details>summary:before{content:'▸';display:inline-block;margin-right:8px;color:var(--muted);transition:transform .15s}
.inc-details[open]>summary:before{transform:rotate(90deg)}
.inc-details .count{background:var(--ctl-bg);color:var(--slate);border-radius:999px;padding:0 8px;font-size:12px;margin-left:4px}
table.grid.ro{margin:0}
table.grid.ro td,table.grid.ro th{font-size:12px}
.incctrls{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:flex-end}
.toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:12px;font-weight:600;color:var(--slate);user-select:none}
.toggle input{position:absolute;opacity:0;width:0;height:0}
.toggle .slider{position:relative;width:34px;height:18px;background:var(--line2);border-radius:999px;transition:background .15s;flex:0 0 auto}
.toggle .slider:before{content:'';position:absolute;left:2px;top:2px;width:14px;height:14px;background:var(--input-bg);border-radius:50%;transition:transform .15s;box-shadow:0 1px 2px rgba(0,0,0,.3)}
.toggle input:checked + .slider{background:var(--accent)}
.toggle input:checked + .slider:before{transform:translateX(16px)}
.notscored{font-size:11px;font-style:italic;color:var(--muted)}
/* overview / data-check / filters */
.trend{font-weight:700;font-size:12px}
.trend.good{color:var(--green)} .trend.bad{color:var(--red)} .trend.muted{color:var(--muted)}
.moverrow{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.movercard{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 14px;min-width:120px;box-shadow:var(--shadow)}
.movercard .big{font-size:22px;font-weight:800}
.movercard.good .big{color:var(--green)} .movercard.bad .big{color:var(--red)} .movercard.muted .big{color:var(--slate)}
.twocol{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:8px}
.minilist{list-style:none;margin:0;padding:0}
.minilist li{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:4px 0;font-size:13px}
.minicount{font-weight:700;color:var(--ink)}
.filterbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:10px;background:var(--hover);border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.filterbar select,.filterbar input{border:1px solid var(--line2);border-radius:6px;padding:4px 7px;font-size:12px;color:var(--slate)}
.filterbar .fsearch{min-width:170px}
th.sortable{cursor:pointer;user-select:none} th.sortable:hover{color:var(--ink)} th.sortable.on{color:var(--ink)}
.inferchip{display:inline-block;margin-left:6px;background:var(--blue-bg);color:var(--blue);border-radius:4px;padding:0 6px;font-size:10px;font-weight:700}
.datacheck{display:block;border-radius:var(--radius-ctl);padding:8px 12px;margin-bottom:12px;font-size:13px;background:var(--hover);border:1px solid var(--line)}
.datacheck.minor{background:var(--amber-bg)} .datacheck.mismatch{background:var(--red-bg)}
.dcdetail{margin-top:3px;font-variant-numeric:tabular-nums}
.dcdot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:middle;background:var(--muted)}
.dcdot.ok{background:var(--green)} .dcdot.minor{background:var(--amber)} .dcdot.mismatch{background:var(--red)} .dcdot.na{background:var(--line2)} .dcdot.ack{background:var(--gray)}
.dcdot{cursor:pointer}
.datacheck.ack{background:var(--ctl-bg);border-color:var(--line2)}
/* history / trends */
.storagebar{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--muted);margin-bottom:12px}
.storagebar.warn{color:var(--amber)}
.storagetrack{flex:0 0 160px;height:6px;background:var(--line);border-radius:3px;overflow:hidden}
.storagefill{height:100%;background:var(--accent)}
.storagebar.warn .storagefill{background:var(--amber)}
.warntext{color:var(--amber);font-weight:600}
.linechart{width:100%;height:auto;display:block}
.linechart.mini{width:120px;height:28px;display:inline-block;vertical-align:middle}
.linechart .pt{font-size:10px;fill:var(--navy);font-weight:700}
.linechart .xl{font-size:9px;fill:var(--muted)}
.linechart .charttitle{font-size:11px;fill:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.typechip{font-size:10px;font-weight:800;border-radius:4px;padding:1px 6px}
.typechip.t-acc{background:var(--red-bg);color:var(--red)}
.typechip.t-rsd{background:var(--amber-bg);color:var(--amber)}
.typechip.t-vedr{background:var(--blue-bg);color:var(--blue)}
.statusok{color:var(--green);font-weight:700;font-size:12px}
.statusoff{color:var(--muted);font-size:12px}
tr.flagrow{background:var(--red-bg)}
.filters{display:flex;gap:5px;flex-wrap:wrap}
.chipbtn{background:var(--ctl-bg);border:1px solid var(--line2);border-radius:999px;padding:3px 11px;font-size:12px;font-weight:600;color:var(--slate);cursor:pointer}
.chipbtn.on{background:var(--accent);color:#fff;border-color:var(--accent)}

/* ---- memos (top bar) ---- */
.memobtn{background:rgba(255,255,255,.10);color:#fff;border:1px solid rgba(255,255,255,.25);padding:6px 12px;border-radius:var(--radius-ctl);font-weight:600;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.memobtn:hover{background:rgba(255,255,255,.18)}
.memobtn.on{background:var(--input-bg);color:var(--ink)}
.memobadge{background:var(--accent);color:#fff;border-radius:999px;padding:0 7px;font-size:11px;font-weight:800;line-height:18px}
.memobtn.on .memobadge{background:var(--accent);color:#fff}
.memopanel{max-width:1240px;margin:10px auto -6px;padding:14px 18px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow)}
.memolist{display:flex;flex-direction:column;gap:10px}
.memocard{border:1px solid var(--line);border-left:4px solid var(--slate);border-radius:var(--radius-ctl);padding:10px 12px;background:var(--hover)}
.memocard.roadside{border-left-color:var(--amber)}
.memocard.datacheck{border-left-color:var(--red)}
.memocard.storage{border-left-color:var(--blue)}
.memocard.archived{opacity:.6}
.memoarchive{margin-top:12px;border-top:1px solid var(--line);padding-top:8px}
.memoarchive>summary{cursor:pointer;font-weight:600;color:var(--slate);font-size:13px;user-select:none}
.memoarchive .memolist{margin-top:8px}

/* ---- dashboard trend chart (centerpiece) ---- */
.trendwrap{padding:18px 18px 14px}
.segctl{display:inline-flex;gap:4px;flex-wrap:wrap}
.segbtn{background:var(--ctl-bg);border:1px solid var(--line2);color:var(--slate);padding:6px 13px;border-radius:999px;font-size:12px;font-weight:650;cursor:pointer}
.segbtn:hover{background:var(--line2);color:var(--ink)}
.segbtn.on{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 2px 8px var(--focus)}
.trendchart{width:100%;height:auto;display:block;margin:6px 0 2px}
.trendchart .tc-grid{stroke:var(--line);stroke-width:1;stroke-dasharray:2 3}
.trendchart .tc-axl,.trendchart .tc-axr{fill:var(--muted);font-size:10px}
.trendchart .tc-cap{fill:var(--slate);font-size:10px;font-weight:700}
.trendchart .tc-xl{fill:var(--slate);font-size:10px}
.trendchart .tc-tick{stroke:var(--line2);stroke-width:1}
.trendchart .tc-empty{fill:var(--muted);font-size:13px}
.trendlegend{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:6px;font-size:12px;color:var(--slate)}
.legitem{display:inline-flex;align-items:center;gap:6px;font-weight:600}
.legsw{width:10px;height:10px;border-radius:50%;display:inline-block}

/* two side-by-side metric charts + hover tooltip */
.twochart{display:flex;gap:18px;flex-wrap:wrap;margin-top:10px}
.chartblock{flex:1 1 360px;min-width:300px}
.chartblock.wide{flex:1 1 100%;min-width:0;width:100%}
.chartholder{position:relative}
.charttip{position:absolute;left:0;top:0;pointer-events:none;background:var(--head-bg);color:#fff;border-radius:10px;padding:7px 10px;font-size:12px;line-height:1.4;box-shadow:var(--shadow-lg);opacity:0;transition:opacity .08s;z-index:6;white-space:nowrap;max-width:230px}
.charttip.show{opacity:1}
.charttip .tiphead{display:flex;align-items:center;gap:6px}
.charttip .tipdot{display:inline-block;width:9px;height:9px;border-radius:50%}
.charttip .tipline{color:rgba(255,255,255,.82);margin-top:2px}

/* ---- region drill-down table ---- */
.regiontable .regrow>td{font-weight:600}
.regiontable .regrow.open{background:var(--accent-soft)}
.regtoggle{text-decoration:none;font-weight:700;color:var(--ink)}
.regtoggle:hover{text-decoration:underline}
.regiontable .regsub>td{background:var(--hover);font-size:13px}
.regiontable .regsub .subfac{padding-left:14px;display:inline-block}
.danger-card{border-color:var(--red)}

/* ---- driver scorecard card + History date range ---- */
.scorecard{display:flex;gap:10px;flex-wrap:wrap;padding:14px 16px}
.sc-cell{flex:1 1 110px;text-align:center;border-right:1px solid var(--line)}
.sc-cell:last-child{border-right:0}
.sc-num{font-size:24px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.1}
.sc-num.strong{color:var(--accent)}
.sc-lbl{font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-weight:700;margin-top:3px}
.histrange{gap:6px}
.histdate{border:1px solid var(--line2);border-radius:var(--radius-ctl);padding:5px 8px;font-size:13px;color:var(--ink);background:var(--input-bg);cursor:pointer}

/* ---- print (WO-8 overhaul) ---------------------------------------------
   Force the LIGHT palette regardless of the on-screen theme so a dark-mode
   user still prints black-on-white, hide all chrome, and control page breaks
   so the weekly brief and coaching packets come out as clean one-pagers. */
@page{margin:14mm}
@media print{
  /* Force light tokens onto both the default and the dark override — the
     dark selector must be restated here or its cascade would still win. */
  :root,:root[data-theme="dark"],[data-theme="dark"]{
    --accent:#0075c9; --accent-2:#005fa6; --accent-soft:#e7f2fb;
    --gold:#d29e0e; --gold-soft:#faf1d8;
    --navy:#1a2230; --slate:#475569; --line:#d9dee7; --line2:#c7ced9;
    --bg:#ffffff; --card:#ffffff; --input-bg:#ffffff; --sidebar:#ffffff;
    --ink:#111820; --muted:#444c58; --gray:#6b7280;
    --ctl-bg:#f2f4f8; --hover:#ffffff; --th-bg:#f2f4f8; --head-bg:#e9edf3;
    --green:#15803d; --green-bg:#e7f6ec; --red:#b91c1c; --red-bg:#fdeceb;
    --amber:#a15c07; --amber-bg:#fef3c7; --blue:#0075c9; --blue-bg:#e7f2fb;
    --shadow:none; --shadow-sm:none; --shadow-lg:none;
    color-scheme:light;
  }
  .topbar,.sidebar,.topstrip,.footer,.no-print,.btn,.tab,.flash,.memopanel,
  .side-item,.periodselect,.segbtn,.iconbtn,.theme-toggle,.selftestbanner{display:none !important}
  html,body{background:#fff !important;color:#111820 !important}
  .appshell{display:block}
  .view{margin:0;max-width:none;padding:0}
  .card,.brief-card{box-shadow:none;border:1px solid #cfd6e0;break-inside:avoid}
  h1,h2,h3{break-after:avoid}
  .brief-sec,.packet-sec,.statcard,.trendmini{break-inside:avoid}
  table{break-inside:auto}
  tr,thead{break-inside:avoid}
  thead{display:table-header-group}          /* repeat headers across page breaks */
  a{color:#111820 !important;text-decoration:none}
  .print-only{display:block !important}
  .page-break{break-before:page}
}
.print-only{display:none}

/* ---- Analysis tab (insight cards) ---------------------------------------- */
.ansection{margin-top:6px}
.sechead{display:flex;align-items:flex-start;gap:12px;margin:30px 0 14px;padding-top:24px;border-top:1px solid var(--line)}
.sechead-txt{min-width:0}
.secnum{flex-shrink:0;width:30px;height:30px;border-radius:9px;background:var(--accent-soft);color:var(--accent);font-weight:800;font-size:14px;display:inline-flex;align-items:center;justify-content:center;margin-top:1px}
.sechead h2{margin:0;font-size:17px;letter-spacing:-.01em;line-height:1.35}
.secsub{margin:4px 0 0;font-size:12.5px;color:var(--muted);line-height:1.55;max-width:920px}
.jumpnav{position:sticky;top:59px;z-index:30;display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:10px 2px;margin-bottom:2px;background:var(--bg);border-bottom:1px solid var(--line)}
.insight{margin-bottom:12px;padding:16px 18px}
.insighthead{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.insighthead h3{margin:0;font-size:15px;letter-spacing:-.005em}
.insighthead .sevchip{margin-left:auto}
.sevico{flex-shrink:0;width:28px;height:28px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:800;background:var(--ctl-bg);color:var(--slate)}
.sevico.sev-good{background:var(--green-bg);color:var(--green)}
.sevico.sev-info{background:var(--blue-bg);color:var(--blue)}
.sevico.sev-watch{background:var(--amber-bg);color:var(--amber)}
.sevico.sev-action{background:var(--red-bg);color:var(--red)}
.sevchip{font-size:10.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;
  padding:2px 8px;border-radius:999px;background:var(--ctl-bg);color:var(--slate);white-space:nowrap}
.sevchip.sev-good{background:var(--green-bg);color:var(--green)}
.sevchip.sev-info{background:var(--blue-bg);color:var(--blue)}
.sevchip.sev-watch{background:var(--amber-bg);color:var(--amber)}
.sevchip.sev-action{background:var(--red-bg);color:var(--red)}
.insightbody{margin:6px 0;font-size:13.5px;color:var(--ink);line-height:1.55;max-width:78ch}
.insightsteps{margin-top:12px;font-size:13px;background:var(--hover);border:1px solid var(--line);border-radius:12px;padding:12px 16px}
.insightsteps ul{margin:8px 0 0 18px;padding:0}
.insightsteps li{margin:4px 0;line-height:1.5}
.regionchips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 14px}
/* ---- consulting-style analysis & stats summary ---- */
.kicker{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--slate);margin:0 0 10px}
.exechead{margin-bottom:14px}
.exechead h2{margin:0;font-size:17px}
.execsev{display:flex;gap:6px;flex-wrap:wrap}
.execgrid{display:grid;grid-template-columns:1fr 1.55fr 1.15fr;gap:22px}
.execcol{min-width:0}
.execcol+.execcol{border-left:1px solid var(--line);padding-left:22px}
@media (max-width:1050px){.execgrid{grid-template-columns:1fr}.execcol+.execcol{border-left:none;padding-left:0;border-top:1px solid var(--line);padding-top:16px}}
.bignum{font-size:34px;font-weight:800;letter-spacing:-.02em;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
.standblock{margin-bottom:14px}
.standent{font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}
.standrow{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.standmiles{font-size:11.5px;color:var(--muted);margin-top:5px}
.standpool{font-size:11.5px;color:var(--muted);border-top:1px solid var(--line);padding-top:10px;margin-top:2px}
.trendchips{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.focuslist{display:flex;flex-direction:column;gap:6px}
.focusrow{display:flex;flex-direction:column;gap:5px;cursor:pointer;border-radius:10px;padding:7px 9px;margin:0 -9px}
.focusrow:hover{background:var(--hover)}
.focustop{display:flex;align-items:center;gap:8px}
.focusrank{flex-shrink:0;width:18px;height:18px;border-radius:6px;background:var(--ctl-bg);color:var(--slate);font-size:10.5px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}
.focusname{font-size:13px;font-weight:700;color:var(--ink)}
.focusval{margin-left:auto;font-size:12.5px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
.focusbar{height:7px;border-radius:4px;background:var(--ctl-bg);overflow:hidden}
.focusfill{height:100%;border-radius:4px;background:var(--accent)}
.focusfill.watch{background:var(--amber)}
.focusfill.action{background:var(--red)}
.focuswhy{font-size:11px;color:var(--muted);line-height:1.45}
.stepsstrip .kicker{margin-bottom:0}
.stepsstrip ol{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin:12px 0 0;padding:0;list-style:none;counter-reset:step}
.stepsstrip li{counter-increment:step;position:relative;padding-left:30px;font-size:12.5px;line-height:1.5;color:var(--ink)}
.stepsstrip li::before{content:counter(step);position:absolute;left:0;top:1px;width:20px;height:20px;border-radius:7px;background:var(--accent-soft);color:var(--accent);font-weight:800;font-size:11px;display:flex;align-items:center;justify-content:center}
.card .sechead{border-top:none;padding-top:0;margin:0 0 16px}
.decrow{display:grid;grid-template-columns:1.15fr 1fr;gap:24px;align-items:start}
@media (max-width:1000px){.decrow{grid-template-columns:1fr}}
.decrow .card.insight{border:none;box-shadow:none;background:transparent;padding:0;margin:0;border-radius:0}
.hbarlist{display:flex;flex-direction:column;gap:10px}
.hbar{display:grid;grid-template-columns:minmax(130px,1.1fr) 1.6fr auto;gap:10px;align-items:center}
.hbarlab{font-size:12px;color:var(--ink);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hbarsub{font-size:10.5px;color:var(--muted)}
.hbartrack{height:9px;border-radius:5px;background:var(--ctl-bg);overflow:hidden}
.hbarfill{height:100%;border-radius:5px;background:var(--accent)}
.hbarfill.gold{background:var(--gold)}
.hbarfill.green{background:var(--green)}
.hbarval{font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink);text-align:right;min-width:54px}
.insightgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start;margin-bottom:18px}
@media (max-width:1000px){.insightgrid{grid-template-columns:1fr}}
.insightgrid .insight{margin-bottom:0}
.insightht{flex:1;min-width:0}
.inskicker{display:block;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:3px}
details.insightsteps summary{cursor:pointer;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--slate);font-weight:800;user-select:none}
details.insightsteps summary:hover{color:var(--ink)}
details.insightsteps[open] summary{margin-bottom:6px}
.regexec{display:grid;grid-template-columns:0.85fr 1.6fr;gap:24px;align-items:start}
@media (max-width:1000px){.regexec{grid-template-columns:1fr}}
.reglist{margin:12px 0 0 16px;padding:0;font-size:12.5px;color:var(--muted)}
.reglist li{margin:4px 0;line-height:1.5}
.headlinegrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:2px 0 20px}
@media (max-width:1000px){.headlinegrid{grid-template-columns:repeat(2,1fr)}}
.hlcard{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-sm);padding:14px 16px;cursor:pointer;display:flex;flex-direction:column;gap:5px}
.hlcard:hover{box-shadow:var(--shadow);border-color:var(--line2)}
.hlval{font-size:21px;font-weight:800;letter-spacing:-.01em;color:var(--ink);font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.hlval .sevico{width:22px;height:22px;border-radius:7px;font-size:11px}
.hlnote{font-size:11.5px;color:var(--muted);line-height:1.45}
.quadaxes{display:grid;grid-template-columns:auto 1fr;gap:8px;margin:2px 0 12px}
.quadgrid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:8px}
.quadcell{border-radius:12px;border:1px solid var(--line);padding:12px;min-height:84px}
.quadcell .qlab{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}
.quadcell.q-red{background:var(--red-bg);border-color:transparent}
.quadcell.q-red .qlab{color:var(--red)}
.quadcell.q-amber{background:var(--amber-bg);border-color:transparent}
.quadcell.q-amber .qlab{color:var(--amber)}
.quadcell.q-blue{background:var(--blue-bg);border-color:transparent}
.quadcell.q-blue .qlab{color:var(--blue)}
.quadcell.q-green{background:var(--green-bg);border-color:transparent}
.quadcell.q-green .qlab{color:var(--green)}
.quadpills{display:flex;flex-wrap:wrap;gap:6px}
.quadpill{background:var(--card);border:1px solid var(--line);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700;color:var(--ink)}
.quadylab{writing-mode:vertical-rl;transform:rotate(180deg);font-size:10px;color:var(--muted);text-align:center;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.quadxlab{font-size:10px;color:var(--muted);text-align:center;font-weight:800;letter-spacing:.05em;text-transform:uppercase}

/* ---- Policies tab --------------------------------------------------------- */
.polrow{display:flex;align-items:center;gap:10px;padding:7px 2px;border-bottom:1px solid var(--line)}
.polrow:last-child{border-bottom:none}
.polrow a{color:var(--accent);text-decoration:none;font-weight:600}
.polrow a:hover{text-decoration:underline}
.kindchip{font-size:10.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;
  padding:2px 8px;border-radius:999px;background:var(--ctl-bg);color:var(--slate);white-space:nowrap}
.policydoc h3{margin:14px 0 4px}
.policydoc p{margin:6px 0;font-size:13.5px}
.policydoc ul{margin:6px 0 6px 20px}
.policydoc li{margin:3px 0;font-size:13.5px}
.policyimg{max-width:100%;border:1px solid var(--line);border-radius:8px}

/* ---- policy citations + SRS source references ----------------------------- */
.polref{color:var(--accent);font-weight:600;text-decoration:none;white-space:nowrap}
.polref:hover{text-decoration:underline}
.srsref{font-size:10.5px;font-weight:700;letter-spacing:.3px;padding:1px 8px;border-radius:999px;
  border:1px solid var(--accent);background:var(--blue-bg);color:var(--accent);cursor:pointer;white-space:nowrap}
.srsref:hover{background:var(--accent);color:#fff}

/* ---- sortable table headers + count drill-through links ------------------- */
th.sorth{cursor:pointer;user-select:none;white-space:nowrap}
th.sorth:hover{color:var(--accent)}
th.sorth.on{color:var(--accent)}
a.countlink{color:var(--accent);font-weight:600;text-decoration:none}
a.countlink:hover{text-decoration:underline}

/* ---- trend chart polish ---------------------------------------------------- */
.tc-grid.tc-zero{stroke:var(--slate);stroke-width:1.2}
.trendseg{flex-wrap:wrap;row-gap:6px}

/* ---- Statistics tab -------------------------------------------------------- */
.heatgrid .heatval{font-size:9px;fill:var(--ink);opacity:.85}
.heatgrid .heatval.hi{fill:#fff;opacity:.95}
.chartblock h3{margin:4px 0 10px;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--slate)}
.trendlegend .legitem{background:var(--hover);border:1px solid var(--line);border-radius:999px;padding:4px 10px;font-size:12px;margin-bottom:2px}

/* MODELED miles badge (FedEx total × Motive share) — sits between REAL and EST */
.modbadge{font-size:10px;font-weight:800;letter-spacing:.4px;color:var(--blue);background:var(--blue-bg);
  border-radius:999px;padding:1px 7px;white-space:nowrap}

/* ---- WO-7 weekly decision brief ---------------------------------------- */
.stat-bad{color:var(--red)!important}
.stat-good{color:var(--green)!important}
.stat-warn{color:var(--amber)!important}
.brief-card{margin-bottom:16px}
.brief-headline{grid-template-columns:repeat(6,1fr);margin-bottom:14px}
@media (max-width:1000px){.brief-headline{grid-template-columns:repeat(3,1fr)}}
@media (max-width:560px){.brief-headline{grid-template-columns:repeat(2,1fr)}}
.brief-sec{margin:18px 0;padding-top:6px;border-top:1px solid var(--line)}
.brief-sec h3{margin:0 0 4px;font-size:15px}
.brief-tbl{width:100%;margin-top:8px}
.brief-tbl td,.brief-tbl th{padding:5px 8px}
.brief-tbl .num,.brief-tbl th.num{text-align:right;font-variant-numeric:tabular-nums}
.brief-actions{margin:4px 0 0;padding-left:18px}
.brief-actions li{margin:2px 0;font-size:13px}
.brief-foot{margin-top:20px;border-top:1px solid var(--line);padding-top:10px}
.brief-top h1{margin-bottom:2px}

/* ---- WO-8 coaching packet ---------------------------------------------- */
.packet-sheet{max-width:820px;margin:0 auto;background:var(--card);border:1px solid var(--line);
  border-radius:var(--radius-card);padding:26px 30px}
.packet-hd{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;
  border-bottom:2px solid var(--ink);padding-bottom:12px;margin-bottom:6px}
.packet-org{font-size:11px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}
.packet-hd h1{font-size:22px;margin:4px 0 0}
.packet-meta{text-align:right;font-size:13px}
.packet-sec{margin:16px 0;padding-top:12px;border-top:1px solid var(--line)}
.packet-sec:first-of-type{border-top:none}
.packet-sec h2{font-size:15px;margin-bottom:6px}
.packet-policy{margin:6px 0 0;padding:8px 12px;border-left:3px solid var(--accent);
  background:var(--hover);font-size:12.5px;color:var(--slate);border-radius:0 6px 6px 0}
.packet-signoff{margin-top:22px}
.signgrid{display:grid;grid-template-columns:2fr 1fr;gap:22px 26px;margin-top:18px}
.signrow{display:flex;flex-direction:column-reverse}
.signblank{border-bottom:1px solid var(--ink);height:26px}
.signlbl{font-size:11px;color:var(--muted);margin-bottom:2px;text-transform:uppercase;letter-spacing:.4px}
@media print{ .packet-sheet{border:none;border-radius:0;padding:0;max-width:none} }

/* ---- WO-9 modal (replaces native prompt/confirm) ----------------------- */
.modal-overlay{position:fixed;inset:0;z-index:200;background:rgba(16,24,40,.44);
  display:flex;align-items:center;justify-content:center;padding:20px}
.modal-dialog{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-card);
  box-shadow:var(--shadow-lg);width:100%;max-width:460px;max-height:88vh;overflow:auto;
  animation:modalpop .12s ease}
@keyframes modalpop{from{opacity:0;transform:translateY(6px) scale(.99)}to{opacity:1;transform:none}}
.modal-title{font-size:16px;font-weight:700;padding:16px 20px 0;color:var(--ink)}
.modal-body{padding:12px 20px 4px}
.modal-msg{margin:0 0 6px;color:var(--slate);white-space:pre-line}
.modal-label{display:block;font-size:12px;font-weight:600;color:var(--muted);margin:10px 0 4px}
.modal-body textarea,.modal-body input{width:100%}
.modal-body .err{border-color:var(--red);box-shadow:0 0 0 2px var(--red-bg)}
.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px 18px}
@media print{ .modal-overlay{display:none !important} }

/* ---- WO-10 wide-table scroll + sticky first column --------------------- */
.tablescroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.stickycol thead th:first-child,.stickycol tbody td:first-child{position:sticky;left:0;background:var(--card)}
.stickycol thead th:first-child{background:var(--th-bg);z-index:2}
.stickycol tbody td:first-child{z-index:1}
@media print{ .tablescroll{overflow:visible} .stickycol thead th:first-child,.stickycol tbody td:first-child{position:static} }
