:root{
  --bg:#F0F4F8;--surface:#FFF;--s2:#EBF0F7;--border:#D0DAE8;--b2:#B8C8DC;
  --text:#0D1B2A;--t2:#3D5166;--t3:#7A90A8;
  --blue:#0A3977;--blue2:#1253B5;--blue3:#2E72D2;--blt:#E8F0FB;--bmd:#C5D8F5;
  --red:#B91C1C;--rlt:#FEF2F2;
  --amb:#92400E;--alt:#FFFBEB;
  --grn:#065F46;--glt:#ECFDF5;
  --sl:#334155;--slt:#F1F5F9;
  --sh:0 1px 3px rgba(10,57,119,.08),0 1px 2px rgba(10,57,119,.04);
}
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:'Inter',sans-serif;background:var(--bg);color:var(--text);font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased;}

.hdr{background:var(--blue);color:#fff;padding:0 40px;height:64px;display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid var(--blue2);}
.hdr-l{display:flex;align-items:center;gap:20px;}
.logo{font-size:16px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;}
.sep{width:1px;height:22px;background:rgba(255,255,255,.2);}
.sub{font-size:13px;font-weight:500;opacity:.7;}
.hdr-r{font-size:11px;opacity:.55;font-weight:600;letter-spacing:.8px;text-transform:uppercase;}

.nav{background:var(--surface);border-bottom:2px solid var(--border);padding:0 40px;display:flex;overflow-x:auto;position:sticky;top:0;z-index:100;}
.nav::-webkit-scrollbar{height:0;}
.nt{padding:0 18px;height:46px;display:flex;align-items:center;font-size:11px;font-weight:700;color:var(--t3);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;white-space:nowrap;transition:color .12s,border-color .12s;letter-spacing:.8px;text-transform:uppercase;user-select:none;}
.nt:hover{color:var(--t2);}.nt.active{color:var(--blue2);border-bottom-color:var(--blue2);}
.nt[aria-busy="true"]{opacity:.55;cursor:progress;}

.main{padding:36px 40px;max-width:1360px;margin:0 auto;}
.sec{display:none;animation:fi .15s ease;}.sec.active{display:block;}
@keyframes fi{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

.loading{padding:60px 20px;text-align:center;color:var(--t3);font-size:13px;}
.loading::after{content:"";display:inline-block;width:14px;height:14px;margin-left:8px;border:2px solid var(--border);border-top-color:var(--blue2);border-radius:50%;animation:spin .8s linear infinite;vertical-align:middle;}
@keyframes spin{to{transform:rotate(360deg)}}

.phd{margin-bottom:30px;padding-bottom:18px;border-bottom:1px solid var(--border);}
.pn{font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--blue3);margin-bottom:7px;}
.pt{font-size:25px;font-weight:800;letter-spacing:-.8px;}
.pd{font-size:13px;color:var(--t3);margin-top:7px;max-width:740px;line-height:1.65;}

.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:22px 24px;box-shadow:var(--sh);margin-bottom:14px;}
.ct{font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--t3);margin-bottom:15px;display:flex;align-items:center;gap:8px;}
.cr{width:16px;height:2px;background:var(--blue3);flex-shrink:0;border-radius:1px;}
.cr.ra{background:#D97706;}.cr.rg{background:#059669;}.cr.rr{background:var(--red);}.cr.rs{background:var(--sl);}

.g2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
.g5{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;}

.kpi{background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--blue3);border-radius:8px;padding:16px 18px 13px;box-shadow:var(--sh);}
.kpi.kg{border-top-color:#059669;}.kpi.ka{border-top-color:#D97706;}.kpi.kr{border-top-color:var(--red);}.kpi.ks{border-top-color:var(--sl);}
.kl{font-size:10px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--t3);margin-bottom:6px;}
.kv{font-size:23px;font-weight:800;letter-spacing:-1px;line-height:1;}
.kv.vb{color:var(--blue2);}.kv.vg{color:#059669;}.kv.va{color:#D97706;}.kv.vr{color:var(--red);}
.ks2{font-size:11px;color:var(--t3);margin-top:5px;line-height:1.4;}
.tag{display:inline-block;font-size:9px;font-weight:700;padding:2px 6px;border-radius:2px;letter-spacing:.5px;text-transform:uppercase;margin-top:7px;}
.tg{background:var(--glt);color:var(--grn);}.ta{background:var(--alt);color:var(--amb);}.tr{background:var(--rlt);color:var(--red);}.tb{background:var(--blt);color:var(--blue2);}.ts{background:var(--slt);color:var(--sl);}

.st{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:3px;font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;}
.sl2{background:var(--glt);color:var(--grn);}.sb{background:var(--alt);color:var(--amb);}.sa{background:var(--blt);color:var(--blue2);}.sp{background:var(--rlt);color:var(--red);}.sm{background:var(--slt);color:var(--sl);}
.sd{width:5px;height:5px;border-radius:50%;background:currentColor;display:inline-block;}

.t{width:100%;border-collapse:collapse;}
.t th{text-align:left;font-size:10px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;color:var(--t3);padding:8px 12px;background:var(--s2);border-bottom:1px solid var(--border);}
.t td{padding:10px 12px;border-bottom:1px solid var(--border);font-size:12px;vertical-align:top;color:var(--text);}
.t tr:last-child td{border-bottom:none;}.t tbody tr:hover td{background:var(--blt);}
.tn{font-weight:700;}.ts3{font-size:11px;color:var(--t3);margin-top:2px;line-height:1.5;}

.al{border-radius:6px;padding:13px 16px;margin-bottom:13px;font-size:13px;line-height:1.75;}
.al strong{font-weight:700;}
.ab{background:var(--blt);border:1px solid var(--bmd);border-left:4px solid var(--blue2);color:var(--blue);}
.ar{background:var(--rlt);border:1px solid #FCA5A5;border-left:4px solid var(--red);color:#7F1D1D;}
.aa{background:var(--alt);border:1px solid #FDE68A;border-left:4px solid #D97706;color:#92400E;}
.ag{background:var(--glt);border:1px solid #A7F3D0;border-left:4px solid #059669;color:var(--grn);}

.il{list-style:none;}
.il li{padding:8px 0;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;gap:10px;font-size:13px;}
.il li:last-child{border-bottom:none;}
.im{width:19px;height:19px;border-radius:3px;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;}
.md{background:var(--glt);color:var(--grn);}.mb{background:var(--blt);color:var(--blue2);}.ma{background:var(--alt);color:var(--amb);}.mr{background:var(--rlt);color:var(--red);}
.ib{flex:1;}.it{font-weight:600;color:var(--text);}.is{font-size:12px;color:var(--t3);margin-top:2px;line-height:1.5;}
.ir{flex-shrink:0;font-size:11px;font-weight:600;color:var(--t3);}

.sr{display:flex;gap:0;border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-bottom:13px;}
.sc{flex:1;padding:13px 15px;border-right:1px solid var(--border);background:var(--surface);}
.sc:last-child{border-right:none;}
.sl3{font-size:10px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;color:var(--t3);margin-bottom:5px;}
.sv{font-size:19px;font-weight:800;letter-spacing:-.8px;}
.sv.vg{color:#059669;}.sv.va{color:#D97706;}.sv.vr{color:var(--red);}.sv.vb{color:var(--blue2);}
.sn{font-size:11px;color:var(--t3);margin-top:3px;line-height:1.4;}

.pb{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--blue3);border-radius:8px;padding:18px 22px;box-shadow:var(--sh);margin-bottom:12px;}
.pbl{font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--t3);margin-bottom:6px;}
.pbn{font-size:16px;font-weight:800;margin-bottom:5px;}
.pbd{font-size:12px;color:var(--t2);line-height:1.7;}
.pbv{font-size:30px;font-weight:800;letter-spacing:-1.5px;margin-top:10px;}

.spb{border-radius:8px;padding:18px 20px;border:1px solid var(--border);}
.sps{font-size:50px;font-weight:800;letter-spacing:-2px;line-height:1;}
.spl{font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;margin-top:4px;}
.spm{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--border);font-size:12px;}
.spm:last-child{border-bottom:none;}
.spml{color:var(--t2);font-weight:500;}.spmv{font-weight:700;}
.spmv.pass{color:#059669;}.spmv.warn{color:#D97706;}.spmv.fail{color:var(--red);}

.si{display:flex;align-items:flex-start;gap:11px;padding:10px 0;border-bottom:1px solid var(--border);}
.si:last-child{border-bottom:none;}
.sin{font-weight:700;font-size:13px;flex:0 0 175px;color:var(--text);}
.sid{font-size:12px;color:var(--t2);flex:1;line-height:1.55;}

.dr{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border:1px solid #FDE68A;border-left:3px solid #D97706;border-radius:6px;background:var(--alt);margin-bottom:9px;}
.dr:last-child{margin-bottom:0;}
.dr.dn{border-color:#A7F3D0;border-left-color:#059669;background:var(--glt);}
.dc{font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;background:#FDE68A;color:var(--amb);border:1px solid #F6D860;padding:3px 8px;border-radius:3px;flex-shrink:0;margin-top:2px;white-space:nowrap;min-width:68px;text-align:center;}
.dc.dn{background:#A7F3D0;color:var(--grn);border-color:#6EE7B7;}
.db{flex:1;}.dt{font-size:13px;font-weight:700;color:var(--text);}.dd{font-size:12px;color:#78350F;margin-top:3px;line-height:1.55;}
.dd.dn{color:#065F46;}

.kw-l{background:var(--glt);color:var(--grn);}
.kw-b{background:var(--blt);color:var(--blue2);}
.kw-m{background:var(--rlt);color:var(--red);}
.kw-n{background:var(--alt);color:var(--amb);}
.kwb{display:inline-block;font-size:9px;font-weight:700;padding:1px 6px;border-radius:2px;letter-spacing:.4px;text-transform:uppercase;}

.cr-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border);font-size:13px;}
.cr-row:last-child{border-bottom:none;}
.crn{font-weight:600;color:var(--text);}.crnt{font-size:11px;color:var(--t3);margin-top:2px;}
.cra{font-weight:800;font-family:'IBM Plex Mono',monospace;font-size:13px;text-align:right;flex-shrink:0;color:var(--text);}
.cra.green{color:#059669;}.cra.red{color:var(--red);}
.cra-s{font-size:11px;color:var(--t3);text-align:right;margin-top:1px;}
.cr-tot{display:flex;align-items:center;justify-content:space-between;padding:14px 0 0;margin-top:4px;border-top:2px solid var(--blue2);}

.kw-pos{font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:700;}
.pos-low{color:#059669;}.pos-mid{color:#D97706;}.pos-hi{color:var(--red);}

.footer{text-align:center;padding:20px 40px;font-size:11px;color:var(--t3);border-top:1px solid var(--border);background:var(--surface);letter-spacing:.5px;font-weight:500;text-transform:uppercase;}

@media(max-width:900px){
  .hdr,.nav,.main{padding-left:16px;padding-right:16px;}
  .g2,.g3,.g4,.g5{grid-template-columns:1fr 1fr;}
  .sr{flex-wrap:wrap;}.sc{min-width:45%;border-bottom:1px solid var(--border);}
  .sin{flex:0 0 140px;}
}

/* ── Mobile (≤600px) ─────────────────────────────────────────────────── */
@media(max-width:600px){
  body{font-size:12px;}

  /* Header — stack title + date vertically, tighten */
  .hdr{padding:10px 14px;height:auto;min-height:54px;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;}
  .hdr-l{gap:10px;flex-wrap:wrap;}
  .logo{font-size:14px;}
  .sub{font-size:11px;}
  .hdr-r{font-size:10px;letter-spacing:.5px;opacity:.6;}
  .sep{display:none;}

  /* Nav — smaller tabs, smoother scroll on iOS */
  .nav{padding:0 12px;-webkit-overflow-scrolling:touch;}
  .nt{padding:0 12px;height:42px;font-size:10px;letter-spacing:.5px;}

  /* Main container */
  .main{padding:18px 14px;}

  /* Page header */
  .phd{margin-bottom:18px;padding-bottom:12px;}
  .pn{font-size:10px;letter-spacing:1px;}
  .pt{font-size:20px;letter-spacing:-.5px;}
  .pd{font-size:12px;line-height:1.55;}

  /* Cards — tighter padding */
  .card{padding:14px 14px;border-radius:6px;}
  .ct{font-size:9.5px;margin-bottom:12px;}

  /* All grids → single column on phones */
  .g2,.g3,.g4,.g5{grid-template-columns:1fr;gap:10px;}

  /* KPI cards */
  .kpi{padding:12px 14px 11px;}
  .kl{font-size:9px;}
  .kv{font-size:20px;}
  .ks2{font-size:10px;}

  /* Stat rows — stack vertically */
  .sr{flex-direction:column;}
  .sc{flex:1 1 auto;min-width:0;border-right:none;border-bottom:1px solid var(--border);padding:11px 13px;}
  .sc:last-child{border-bottom:none;}
  .sv{font-size:17px;}

  /* Tables — only cards containing a table scroll horizontally.
     :has() is supported in all evergreen browsers (Chrome 105+, Safari 15.4+,
     Firefox 121+). Falls back to normal overflow on older browsers. */
  .card:has(table){overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .t{min-width:500px;}
  .t th,.t td{padding:7px 9px;font-size:11px;}

  /* Spec items — stack label above value */
  .si{flex-direction:column;gap:3px;align-items:stretch;}
  .sin{flex:0 0 auto;font-size:12px;}
  .sid{font-size:12px;}

  /* Pipeline blurb boxes */
  .pb{padding:14px 16px;}
  .pbn{font-size:14px;}
  .pbd{font-size:12px;}
  .pbv{font-size:24px;}

  /* Score plate (big number on Tech Stack / Data) */
  .spb{padding:14px 16px;}
  .sps{font-size:36px;letter-spacing:-1px;}

  /* Alerts */
  .al{padding:11px 13px;font-size:12px;line-height:1.65;}

  /* Initiative list rows */
  .il li{font-size:12px;padding:7px 0;gap:9px;}
  .it{font-size:12.5px;}
  .is{font-size:11.5px;}
  .ir{font-size:10px;}

  /* Deadline rows */
  .dc{font-size:9px;padding:2px 6px;min-width:56px;}
  .dt{font-size:12px;}
  .dd{font-size:11.5px;}

  /* Client row (receivables) */
  .cr-row{flex-wrap:wrap;gap:4px;padding:9px 0;}
  .crn{font-size:12px;}

  /* Long strings (emails, URLs, notes) — break instead of overflowing */
  .pbd,.ts3,.sid,.is,.ks2,.sn,.cra-s,.kw-pos,.crnt{overflow-wrap:anywhere;word-break:break-word;}

  /* Footer */
  .footer{padding:14px 14px;font-size:10px;}
}

/* ── Very narrow phones (≤400px — iPhone SE, Android budget) ────────── */
@media(max-width:400px){
  .pt{font-size:17px;}
  .pbv{font-size:20px;}
  .pbn{font-size:13px;}
  .sps{font-size:28px;}
  .kv{font-size:18px;}
  .sv{font-size:16px;}
  .nt{padding:0 10px;font-size:9.5px;}
  .main{padding:14px 10px;}
  .hdr{padding:8px 10px;}
  .card{padding:12px 12px;}
}
