:root{
  --bg:#eef0f6;--su:#fff;--s2:#f6f7fb;--s3:#eff1f8;
  --bd:#e3e6f0;--b2:#c5c9dc;
  --gld:#7c5200;--gldl:#fdf4e3;--gldb:#f5c842;
  --grn:#0a6e3d;--grnl:#eaf9f2;--grnb:#6ee7b7;
  --red:#b31a1a;--redl:#fff0f0;--redb:#fca5a5;
  --amb:#8a3d00;--ambl:#fff8ed;--ambb:#fcd34d;
  --blu:#1a3cb5;--blul:#eff3ff;--blub:#93c5fd;
  --pur:#4f1fa0;--purl:#f4f1ff;--purb:#c4b5fd;
  --tx:#0c1225;--t2:#2d3a55;--mu:#5e6e8a;--mu2:#8fa0b8;
  --scroll-track:#eef0f6;--scroll-thumb:#c5c9dc;
  --fn:'Plus Jakarta Sans',sans-serif;--mo:'JetBrains Mono',monospace;
  --sh:0 1px 4px rgba(0,0,0,.07);--sh2:0 8px 24px rgba(0,0,0,.10);
}
html[data-theme="dark"]{
  --bg:#0d1117;--su:#161b22;--s2:#1c2230;--s3:#242b3a;
  --bd:#2a3243;--b2:#3a4358;
  --gld:#f5c842;--gldl:rgba(124,82,0,.3);--gldb:rgba(245,200,66,.45);
  --grn:#6ee7b7;--grnl:rgba(10,110,61,.28);--grnb:rgba(110,231,183,.5);
  --red:#fca5a5;--redl:rgba(179,26,26,.28);--redb:rgba(252,165,165,.5);
  --amb:#fcd34d;--ambl:rgba(138,61,0,.28);--ambb:rgba(252,211,77,.5);
  --blu:#93c5fd;--blul:rgba(26,60,181,.32);--blub:rgba(147,197,253,.5);
  --pur:#c4b5fd;--purl:rgba(79,31,160,.32);--purb:rgba(196,181,253,.5);
  --tx:#e6edf3;--t2:#c9d1d9;--mu:#8b949e;--mu2:#6e7681;
  --scroll-track:#161b22;--scroll-thumb:#3a4358;
  --sh:0 1px 4px rgba(0,0,0,.45);--sh2:0 8px 24px rgba(0,0,0,.55);
}
*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--bg);color:var(--tx);font-family:var(--fn);font-size:13px;line-height:1.4}

.hdr{background:var(--su);border-bottom:1px solid var(--bd);padding:0 24px;height:54px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:400;box-shadow:var(--sh)}
.hl{display:flex;align-items:center;gap:10px}
.logo{height:34px;background:#fff;border:1px solid var(--bd);border-radius:7px;display:flex;align-items:center;justify-content:center;padding:4px 8px;flex-shrink:0}
.logo img{height:100%;width:auto;display:block}
.bn{font-size:11px;font-weight:600;color:var(--t2)}.bs{font-size:9.5px;color:var(--mu)}
.hr_{display:flex;gap:8px;align-items:center}
.pill{padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;display:flex;align-items:center;gap:4px}
.pg{background:var(--grnl);border:1px solid var(--grnb);color:var(--grn)}
.pa{background:var(--gldl);border:1px solid var(--gldb);color:var(--gld)}
.bk_{width:6px;height:6px;border-radius:50%;background:var(--grn);animation:bk 2s infinite}
@keyframes bk{0%,100%{opacity:1}50%{opacity:.3}}
.msel{padding:4px 10px;border:1px solid var(--b2);border-radius:7px;font-size:12px;font-weight:600;background:var(--su);color:var(--tx);cursor:pointer;outline:none;font-family:var(--fn)}

.mtabs{background:linear-gradient(180deg,var(--s2),var(--su));border-bottom:1px solid var(--bd);padding:0 24px;display:flex;gap:4px;overflow-x:auto;position:sticky;top:54px;z-index:310}
.mtab{padding:10px 18px;font-size:13px;font-weight:600;color:var(--mu);cursor:pointer;background:none;border:none;white-space:nowrap;transition:.15s;user-select:none;font-family:var(--fn);border-radius:8px 8px 0 0;margin-top:6px;margin-bottom:-1px;border-bottom:2px solid transparent}
.mtab:hover{color:var(--tx);background:var(--s3)}
.mtab.on{color:var(--blu);background:var(--su);border:1px solid var(--bd);border-bottom:2px solid var(--su);font-weight:700}

.tabs{background:var(--su);border-bottom:2px solid var(--bd);padding:0 24px;display:flex;overflow-x:auto;position:sticky;top:100px;z-index:300;box-shadow:0 2px 4px rgba(0,0,0,.05)}
.tab{padding:10px 14px;font-size:12px;font-weight:500;color:var(--mu);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;white-space:nowrap;transition:.15s;user-select:none;background:none;border-top:none;border-left:none;border-right:none;font-family:var(--fn)}
.tab:hover{color:var(--tx)}
.tab.on{color:var(--blu);border-color:var(--blu);font-weight:700}

.mpills{background:var(--s2);border-bottom:1px solid var(--bd);padding:8px 24px;display:flex;align-items:center;gap:6px;overflow-x:auto;position:sticky;top:142px;z-index:290}
.mpill{padding:5px 14px;border-radius:20px;font-size:11px;font-weight:600;background:var(--su);border:1px solid var(--bd);cursor:pointer;color:var(--mu);white-space:nowrap;transition:.15s;font-family:var(--fn);letter-spacing:.3px}
.mpill:hover{background:var(--blul);color:var(--blu);border-color:var(--blub)}
.mpill.on{background:var(--blu);color:#fff;border-color:var(--blu);box-shadow:0 1px 3px rgba(26,60,181,.3)}
.mpill.no-data{opacity:.55}
.mpill-meta{margin-left:auto;font-size:11px;color:var(--mu);font-weight:600;white-space:nowrap}
.mpill-divider{width:1px;height:18px;background:var(--bd);margin:0 4px;flex-shrink:0}
.mpill-aop{background:linear-gradient(135deg,var(--s2) 0%,var(--blul) 100%);border-color:var(--blub);color:var(--blu);font-weight:700}
.mpill-aop:hover{background:var(--blul);color:var(--blu);border-color:var(--blub)}
.mpill-aop.on{background:linear-gradient(135deg,var(--blu) 0%,#1e40af 100%);color:#fff;border-color:var(--blu);box-shadow:0 2px 6px rgba(26,60,181,.4)}

/* AOP cohort filter chips */
.aop-cchip{display:inline-flex;align-items:center;gap:3px;padding:4px 11px;border-radius:14px;font-size:11px;font-weight:600;background:var(--su);border:1px solid var(--bd);color:var(--mu);cursor:pointer;transition:.15s;font-family:var(--fn);user-select:none;white-space:nowrap}
.aop-cchip:hover{background:var(--blul);color:var(--blu);border-color:var(--blub)}
.aop-cchip.on{background:var(--blu);color:#fff;border-color:var(--blu);box-shadow:0 1px 3px rgba(26,60,181,.3)}
.aop-cchip[data-cohort="SSSG"].on{background:var(--blu);border-color:var(--blu)}
.aop-cchip[data-cohort="LY"].on{background:var(--amb);border-color:var(--amb)}
.aop-cchip[data-cohort="New"].on{background:var(--grn);border-color:var(--grn)}

.main{padding:18px 24px}
.tv{display:none}.tv.on{display:block}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-bottom:14px}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}
.g5{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:14px}
.cohort-layout{display:grid;grid-template-columns:4fr 1fr;gap:12px;margin-bottom:14px;align-items:stretch}
.cohort-stack{display:flex;flex-direction:column;gap:12px;min-width:0}
.cohort-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.cohort-layout > .card{margin-bottom:0}
.cohort-stack > .card{margin-bottom:0}

.ks{display:grid;gap:12px;margin-bottom:16px}
.k3{grid-template-columns:repeat(3,1fr)}.k4{grid-template-columns:repeat(4,1fr)}.k5{grid-template-columns:repeat(5,1fr)}.k6{grid-template-columns:repeat(6,1fr)}
.dw-wrap{max-height:480px;overflow:auto;border:1px solid var(--bd);border-radius:8px}
.dw-tbl{border-collapse:separate;border-spacing:0;font-size:11px;width:max-content;min-width:100%}
.dw-tbl th,.dw-tbl td{padding:5px 8px;border-bottom:1px solid var(--bd);white-space:nowrap;text-align:right;font-family:var(--mo)}
.dw-tbl td .dw-b{display:block;font-size:9px;color:var(--mu);margin-top:1px;font-weight:500}
.dw-tbl td .dw-a{display:block;font-size:9px;color:var(--mu2);font-weight:500}
.dw-tbl thead th{position:sticky;top:0;background:var(--s2);z-index:3;font-size:10px;font-weight:700;color:var(--t2);text-align:center;border-bottom:2px solid var(--bd)}
.dw-tbl th.fc,.dw-tbl td.fc{position:sticky;left:0;background:var(--su);z-index:2;text-align:left;font-family:var(--fn);font-weight:600;max-width:200px;overflow:hidden;text-overflow:ellipsis;border-right:1px solid var(--bd)}
.dw-tbl thead th.fc{z-index:4;background:var(--s2)}
.dw-tbl thead th.tot,.dw-tbl td.tot{position:sticky;right:0;background:var(--s2);border-left:1px solid var(--bd);font-weight:700;z-index:2;text-align:right}
.dw-tbl thead th.tot{z-index:4}
.dw-tbl tfoot td{position:sticky;bottom:0;background:var(--s2);border-top:2px solid var(--bd);z-index:3}
.dw-tbl tfoot td.fc{z-index:5}
.dw-tbl tfoot td.tot{z-index:5}
.dw-tbl td.tot{background:var(--su);color:var(--tx)}
.sm-ovl{position:fixed;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(3px);z-index:600;display:none;align-items:flex-start;justify-content:center;padding:40px 20px;overflow:auto}
.sm-ovl.on{display:flex}
.sm-box{background:var(--su);border:1px solid var(--bd);border-radius:12px;box-shadow:var(--sh2);width:min(900px,100%);animation:dp-in .18s ease}
.sm-hd{padding:14px 18px;border-bottom:1px solid var(--bd);background:linear-gradient(135deg,var(--blul),var(--su));display:flex;align-items:center;justify-content:space-between;gap:10px;border-radius:12px 12px 0 0}
.sm-hd .sm-name{font-size:16px;font-weight:800;color:var(--tx)}
.sm-hd .sm-sub{font-size:11px;color:var(--mu);margin-top:3px}
.sm-x{width:28px;height:28px;border-radius:7px;background:var(--s3);border:1px solid var(--bd);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--mu)}
.sm-x:hover{background:var(--bd);color:var(--tx)}
.sm-bd{padding:14px 18px;display:flex;flex-direction:column;gap:12px}
.sm-hl{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sm-hl .hl{padding:10px 12px;border-radius:8px;border:1px solid var(--bd)}
.sm-hl .hl .hl-l{font-size:10px;font-weight:600;letter-spacing:.6px;text-transform:uppercase;color:var(--mu);margin-bottom:4px}
.sm-hl .hl .hl-v{font-family:var(--mo);font-size:15px;font-weight:800}
.sm-hl .best{background:var(--grnl);border-color:var(--grnb)}
.sm-hl .best .hl-v{color:var(--grn)}
.sm-hl .worst{background:var(--redl);border-color:var(--redb)}
.sm-hl .worst .hl-v{color:var(--red)}
.sm-kg{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.sm-kc{padding:10px 12px;border-radius:9px;border:1px solid var(--bd);background:var(--s2)}
.sm-kc .kl_{font-size:9px;font-weight:600;letter-spacing:.6px;text-transform:uppercase;color:var(--mu)}
.sm-kc .kv_{font-family:var(--mo);font-size:15px;font-weight:800;margin-top:3px}
.sm-kc .ks_{font-size:10px;color:var(--mu);margin-top:2px}
.sm-kc.ok{background:var(--grnl);border-color:var(--grnb)}
.sm-kc.ok .kv_{color:var(--grn)}
.sm-kc.warn{background:var(--ambl);border-color:var(--ambb)}
.sm-kc.warn .kv_{color:var(--amb)}
.sm-kc.bad{background:var(--redl);border-color:var(--redb)}
.sm-kc.bad .kv_{color:var(--red)}
.dw-tbl th.wknd{background:var(--ambl);color:var(--amb)}
.dw-tbl td.wknd{background:var(--ambl);color:var(--amb)}
.dw-tbl tbody tr:hover td{background:var(--blul)}
.dw-tbl tbody tr:hover td.fc{background:var(--blul)}
.dw-tbl tbody tr:hover td.tot{background:var(--blul)}
.dw-tbl tbody tr:hover td.wknd{background:var(--ambl);filter:brightness(1.1)}
.dw-tbl th.sortable{cursor:pointer;user-select:none}
.dw-tbl th.sortable:hover{background:var(--s3)}
.dw-tbl th.sortable.active{color:var(--blu)}
.dw-tbl th.active{color:var(--blu)}
.dw-tbl th:hover{background:var(--s3)}
.dw-sort{display:inline-block;font-size:9px;color:var(--mu);cursor:pointer;padding:1px 3px;border-radius:3px;margin-left:2px;user-select:none}
.dw-sort:hover{background:var(--bd);color:var(--blu)}
.dw-tbl th.active .dw-sort{color:var(--blu)}
.di-pop{position:fixed;z-index:500;background:var(--su);border:1px solid var(--bd);border-radius:10px;box-shadow:var(--sh2);width:min(360px,92vw);display:none;animation:dp-in .15s ease}
.di-pop.on{display:block}
.di-pop-hd{padding:10px 12px;border-bottom:1px solid var(--bd);display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,var(--blul),var(--su));border-radius:10px 10px 0 0}
.di-pop-hd .hd-lbl{font-size:13px;font-weight:800;color:var(--tx)}
.di-pop-hd .hd-sub{font-size:10px;color:var(--mu);margin-top:2px}
.di-pop-x{width:22px;height:22px;border-radius:5px;background:var(--s3);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--mu);border:1px solid var(--bd)}
.di-pop-x:hover{background:var(--bd);color:var(--tx)}
.di-pop-bd{padding:10px 12px}
.kpi{background:var(--su);border:1px solid var(--bd);border-radius:10px;padding:12px 14px;box-shadow:var(--sh);transition:.18s}
.kc{background:var(--su);border:1px solid var(--bd);border-radius:10px;padding:12px 14px;box-shadow:var(--sh);display:flex;flex-direction:column;gap:6px;min-height:126px;transition:.18s}
.kc.clk{cursor:pointer;position:relative}
.kc.clk:hover{border-color:var(--blu);box-shadow:var(--sh2);transform:translateY(-2px)}
.kc.clk:hover::after{content:'›';position:absolute;top:8px;right:10px;color:var(--blu);font-size:15px;font-weight:800;line-height:1}
.kc.on{border-color:var(--blu);box-shadow:0 0 0 2px rgba(26,60,181,.12)}
.kc-hd{display:flex;justify-content:space-between;align-items:center}
.kc-lbl{font-size:9px;font-weight:600;letter-spacing:.9px;text-transform:uppercase;color:#6b7280}
.kc-chip{font-size:10px;font-weight:700;padding:2px 7px;border-radius:99px;background:var(--s3);color:var(--t2)}
.kc-chip.cg{background:var(--grnl);color:var(--grn)}
.kc-chip.ca{background:var(--ambl);color:var(--amb)}
.kc-chip.cr{background:var(--redl);color:var(--red)}
.wi-src{display:inline-block;font-size:8.5px;font-weight:700;letter-spacing:.4px;padding:1px 5px;margin-left:5px;border-radius:4px;background:var(--grnl);color:var(--grn);text-transform:uppercase;vertical-align:middle}
.wi-src-dsr{background:var(--ambl);color:var(--amb)}
.wi-audit-badge{display:inline-block;font-size:9px;font-weight:700;padding:1px 6px;margin-left:6px;border-radius:99px}
.wi-audit-badge.aw{background:var(--ambl);color:var(--amb)}
.wi-audit-badge.cd{background:var(--redl);color:var(--red)}
.wi-audit-badge.um{background:var(--s3);color:var(--mu)}
.kc-main{font-size:22px;font-weight:800;letter-spacing:-.3px;line-height:1.05;font-family:var(--fn)}
.kc-sub{font-size:10px;color:#6b7280;display:flex;justify-content:space-between;gap:8px}
.kc-sub b{font-weight:700;color:var(--t2);font-family:var(--mo)}
.kc-bar{height:4px;background:var(--bd);border-radius:99px;overflow:hidden}
.kc-bar>div{height:100%;border-radius:99px;transition:width .4s}
.kc-foot{font-size:10px;color:#6b7280;display:flex;justify-content:space-between;gap:8px;border-top:1px dashed var(--bd);padding-top:5px;margin-top:auto}
.kc-foot b{font-family:var(--mo);font-weight:700;color:var(--t2)}
.kpi.clk{cursor:pointer;position:relative}
.kpi.clk:hover{border-color:var(--blu);box-shadow:var(--sh2);transform:translateY(-2px)}
.kpi.clk:hover::after{content:'›';position:absolute;top:8px;right:10px;color:var(--blu);font-size:15px;font-weight:800;line-height:1}
.kpi.clk.on{border-color:var(--blu);background:var(--blul);box-shadow:0 0 0 2px rgba(26,60,181,.12)}
.kl{font-size:9px;font-weight:600;letter-spacing:.9px;text-transform:uppercase;color:#6b7280;margin-bottom:5px}
.kv{font-size:20px;font-weight:800;line-height:1;margin-bottom:3px;font-family:var(--fn)}
.ks_{font-size:10px;color:#6b7280}.ks_ b{font-weight:600}
#m-kpis .kv{font-size:22px;font-weight:800;letter-spacing:-.3px;margin-bottom:4px;line-height:1.1}
#m-kpis .kpi{padding:12px 14px}
#m-kpis .ks_{font-size:10px}
/* Keep the monthly KPI strip on a single row of 6 cards (Sales · Walk-ins · Bills ·
   Conversion · ABV · UPT) at every breakpoint. minmax(0,1fr) + min-width:0 lets
   cards shrink instead of overflowing; the kc-main number scales via clamp(). */
#m-kpis{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
#m-kpis .kc{padding:10px 12px;min-height:118px;min-width:0}
#m-kpis .kc-main{font-size:clamp(14px,1.4vw,22px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#m-kpis .kc-lbl{font-size:8.5px;letter-spacing:.6px}
#m-kpis .kc-sub,#m-kpis .kc-foot{font-size:9px;flex-wrap:wrap;gap:4px}
#m-kpis .kc-chip{font-size:9px;padding:2px 5px}
@media(max-width:1100px){#m-kpis{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}#m-kpis .kc{padding:9px 10px}}
@media(max-width:900px){#m-kpis{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}#m-kpis .kc{padding:7px 8px;min-height:96px}#m-kpis .kc-main{font-size:clamp(12px,2.4vw,18px)}}
#fy-kpis .kv{font-size:20px;font-weight:800;letter-spacing:-.3px;margin-bottom:3px;line-height:1.1}
#fy-kpis .kpi{padding:10px 12px}
#fy-kpis .kl{margin-bottom:4px;font-size:9px}
#fy-kpis .ks_{font-size:10px}
.cg{color:var(--grn)}.cr{color:var(--red)}.ca{color:var(--amb)}.cb{color:var(--blu)}.cp{color:var(--pur)}.co{color:var(--gld)}

.card{background:var(--su);border:1px solid var(--bd);border-radius:10px;overflow:hidden;box-shadow:var(--sh);margin-bottom:14px}
.ch{padding:11px 15px;border-bottom:1px solid var(--bd);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}
.ct{font-size:13px;font-weight:700}.cs{font-size:11px;color:var(--mu)}
.cb_{padding:14px}

.bg_{display:inline-flex;align-items:center;padding:2px 7px;border-radius:99px;font-size:10px;font-weight:600;white-space:nowrap}
.bgg{background:var(--grnl);color:var(--grn)}.bga{background:var(--ambl);color:var(--amb)}
.bgr{background:var(--redl);color:var(--red)}.bgb{background:var(--blul);color:var(--blu)}.bgp{background:var(--purl);color:var(--pur)}

.ins{display:flex;gap:8px;padding:9px 11px;border-radius:8px;border:1px solid var(--bd);margin-bottom:6px}
.ins.go{border-left:3px solid var(--grn);background:var(--grnl)}
.ins.wa,.ins.ga{border-left:3px solid var(--amb);background:var(--ambl)}
.ins.ba,.ins.gr{border-left:3px solid var(--red);background:var(--redl)}
.ins.in,.ins.gb{border-left:3px solid var(--blu);background:var(--blul)}

.cohort-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px;align-items:start}
@media(max-width:1300px){.cohort-grid{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.cohort-grid{grid-template-columns:1fr}}
.ii{font-size:13px;flex-shrink:0;margin-top:1px}
.it{font-size:11px;line-height:1.5;color:var(--t2)}.it strong{font-weight:700;color:var(--tx)}

.coh-split{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;margin-bottom:8px}
.coh-split .cell{background:var(--s2);border:1px solid var(--bd);border-radius:7px;padding:6px 8px;text-align:center}
.coh-split .cell .val{font-family:var(--mo);font-size:13px;font-weight:800}
.donut-wrap{display:flex;align-items:center;gap:10px;background:var(--s2);border:1px solid var(--bd);border-radius:8px;padding:8px;margin-bottom:8px}
.donut-wrap canvas{flex-shrink:0}
.donut-lg{display:flex;flex-direction:column;gap:3px;font-size:10px;flex:1}
.donut-lg .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px;vertical-align:middle}

.fb_{padding:8px 14px;border-bottom:1px solid var(--bd);display:flex;gap:6px;flex-wrap:wrap;background:var(--s2);align-items:center}
.chip{padding:3px 9px;border-radius:20px;font-size:11px;font-weight:500;background:var(--su);border:1px solid var(--bd);cursor:pointer;color:var(--mu);transition:.15s;white-space:nowrap}
.chip:hover,.chip.on{background:var(--blul);border-color:var(--blu);color:var(--blu);font-weight:600}
.tbl-wrap{overflow:auto;position:relative}
.tbl-wrap.mh3{max-height:320px}.tbl-wrap.mh5{max-height:520px}.tbl-wrap.mh56{max-height:560px}
table{width:100%;border-collapse:separate;border-spacing:0}
thead th{position:sticky;top:0;z-index:10;background:var(--s2);padding:8px 11px;text-align:left;font-size:9px;font-weight:700;letter-spacing:.9px;text-transform:uppercase;color:var(--mu);border-bottom:2px solid var(--bd);cursor:pointer;white-space:nowrap;user-select:none}
thead th:hover{color:var(--blu)}
thead th.fc,tbody td.fc{position:sticky;left:0;z-index:5;background:var(--su)}
thead th.fc{z-index:15;background:var(--s2)}
tbody tr:hover td.fc{background:var(--s2)}
tbody tr{cursor:default;transition:.1s}
tbody tr.clickable{cursor:pointer}
tbody tr.clickable:hover{background:var(--blul)}
tbody tr.clickable:hover td.fc{background:var(--blul)}
tbody tr:hover{background:var(--s2)}
tbody td{padding:8px 11px;vertical-align:middle;border-bottom:1px solid var(--bd)}
tbody tr:last-child td{border-bottom:none}
td.fc{border-right:2px solid var(--bd)}
.tn{font-weight:600;color:var(--tx);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ts_{font-size:10px;color:var(--mu);margin-top:1px}
.tnum{font-family:var(--mo);font-size:11px;color:var(--t2);text-align:right}
.tb{font-family:var(--mo);font-size:12px;font-weight:700}
.tbl-center thead th:not(.fc){text-align:center}
.tbl-center tbody td:not(.fc){text-align:center}

.pg_grid{display:grid;gap:10px;margin-bottom:14px}
.pg6{grid-template-columns:repeat(6,1fr)}.pg3{grid-template-columns:repeat(3,1fr)}.pg4{grid-template-columns:repeat(4,1fr)}
.pcard{background:var(--su);border:1px solid var(--bd);border-radius:10px;padding:13px;cursor:pointer;transition:.2s;box-shadow:var(--sh);position:relative;overflow:visible}
.pcard:hover{box-shadow:var(--sh2);border-color:var(--blu);transform:translateY(-2px);z-index:5}

/* EOM projection popover — opens on click of the "Proj" row, closes on outside-click / Esc */
.pcard-proj{cursor:pointer;display:inline-flex;align-items:center;gap:4px;padding:1px 6px;border-radius:6px;transition:background .12s;user-select:none}
.pcard-proj:hover{background:var(--s2)}
.pcard-proj-caret{font-size:9px;color:var(--mu);transition:transform .15s}
.pcard.pcard-pop-open .pcard-proj{background:var(--blul);color:var(--blu)}
.pcard.pcard-pop-open .pcard-proj-caret{transform:rotate(180deg)}
/* Popover is body-fixed and positioned via JS (togglePcardPop). JS sets left/top in viewport coords
   so it can never crop. Base rule keeps it hidden until the open class is added. */
.pcard-pop{position:fixed;left:0;top:0;background:var(--su);border:1px solid var(--bd);border-radius:10px;box-shadow:0 12px 36px rgba(0,0,0,.18);padding:10px 12px;min-width:280px;max-width:340px;font-family:var(--fn);z-index:1200;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s}
.pcard.pcard-pop-open .pcard-pop{opacity:1;visibility:visible;pointer-events:auto}
.pcard-pop-h{font-size:9.5px;font-weight:800;color:var(--mu);text-transform:uppercase;letter-spacing:.5px;margin-bottom:7px;padding-bottom:5px;border-bottom:1px dashed var(--bd)}
.pcard-pop-row{display:grid;grid-template-columns:54px 1fr auto;align-items:baseline;gap:8px;padding:4px 0;font-size:11px;border-bottom:1px dotted var(--bd)}
.pcard-pop-row:last-of-type{border-bottom:none}
.pcard-pop-l{font-size:10px;color:var(--mu);font-weight:700;letter-spacing:.2px;text-transform:uppercase}
.pcard-pop-v{font-family:var(--mo);color:var(--t2);font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pcard-pop-proj{font-family:var(--mo);font-weight:800;font-size:11px;white-space:nowrap}
.pcard-pop-proj small{font-weight:600;color:var(--mu);font-family:var(--fn);margin-left:3px}
.pcard-pop-foot{font-size:9.5px;color:var(--blu);text-align:center;font-weight:600;margin-top:6px;padding-top:5px;border-top:1px dashed var(--bd)}
.pcard.sel{border-color:var(--blu);background:var(--blul);box-shadow:0 0 0 2px rgba(26,60,181,.12)}
.pcard-top{position:absolute;top:0;left:0;right:0;height:3px;border-radius:10px 10px 0 0}
.pcard-lbl{font-size:11px;font-weight:700;color:var(--tx);margin-bottom:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pcard-sub{font-size:10px;color:var(--mu);margin-bottom:7px}
.pcard-main{font-family:var(--mo);font-size:15px;font-weight:800;margin-bottom:2px}
.pcard-proj{font-size:10px;margin-bottom:6px}
.pcard-bar-bg{height:4px;background:var(--bd);border-radius:99px;overflow:hidden;margin-bottom:5px}
.pcard-bar{height:100%;border-radius:99px}
.pcard-footer{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--mu)}

.dp{background:var(--su);border:1px solid var(--bd);border-radius:10px;box-shadow:var(--sh2);margin-bottom:14px;overflow:hidden;animation:dp-in .2s ease}
@keyframes dp-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.dp-h{padding:13px 17px;border-bottom:1px solid var(--bd);background:linear-gradient(135deg,var(--blul),var(--su));display:flex;align-items:center;justify-content:space-between}
.dp-x{width:26px;height:26px;border-radius:6px;background:var(--s3);border:1px solid var(--bd);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--mu)}
.dp-x:hover{background:var(--bd)}
.dp-body{padding:15px 17px}
/* Compact Format & Cohort Breakup table inside the Market Detail Panel */
.dp-bk-tbl{width:100%;font-size:10.5px;border-collapse:collapse;font-family:var(--fn)}
.dp-bk-tbl thead th{padding:5px 7px;background:var(--s3);font-size:8.5px;letter-spacing:.6px;text-transform:uppercase;color:var(--mu);text-align:left;font-weight:700}
.dp-bk-tbl thead th.r,.dp-bk-tbl tbody td.r{text-align:right}
.dp-bk-tbl tbody td{padding:6px 7px;border-bottom:1px solid var(--bd)}
.dp-bk-tbl tbody tr:last-child td{border-bottom:none}
.dp-bk-tbl tbody td b{font-weight:700;font-size:10.5px}
.dp-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:9px;margin-bottom:13px}
.dk{background:var(--s2);border:1px solid var(--bd);border-radius:8px;padding:9px 11px;text-align:center}
.dkl{font-size:9px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--mu);margin-bottom:3px}
.dkv{font-size:15px;font-weight:800;font-family:var(--mo)}

.store-dp{background:var(--su);border:1px solid var(--bd);border-radius:10px;box-shadow:var(--sh2);margin-bottom:14px;overflow:hidden;animation:dp-in .2s ease}
.store-dp-h{padding:11px 15px;border-bottom:1px solid var(--bd);background:linear-gradient(135deg,var(--grnl),var(--su));display:flex;align-items:center;justify-content:space-between}

/* RM Drill Panel — market filter pills */
.dp-mkt-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px 15px;border-bottom:1px solid var(--bd);background:var(--bg, var(--su))}
.mkt-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:99px;border:1px solid var(--bd);background:var(--su);font-size:11.5px;font-weight:700;color:var(--t2);cursor:pointer;transition:.12s;font-family:var(--fn)}
.mkt-pill:hover{background:var(--blul);border-color:var(--blub);color:var(--blu)}
.mkt-pill.on{background:var(--blu);border-color:var(--blu);color:#fff;box-shadow:0 1px 3px rgba(26,60,181,.3)}
.mkt-pill-c{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:0 5px;border-radius:5px;background:var(--bd);color:var(--mu);font-weight:800;font-size:10px}
.mkt-pill:hover .mkt-pill-c{background:var(--blub);color:var(--blu)}
.mkt-pill.on .mkt-pill-c{background:rgba(255,255,255,.25);color:#fff}
/* Per-market achievement chip on each filter pill */
.mkt-pill-ach{display:inline-flex;align-items:center;justify-content:center;height:18px;padding:0 7px;border-radius:5px;font-weight:800;font-size:10px;font-family:var(--mo);letter-spacing:.2px}
.mkt-pill-ach.good{background:var(--grnl);color:var(--grn)}
.mkt-pill-ach.mid{background:var(--ambl);color:var(--amb)}
.mkt-pill-ach.bad{background:var(--redl);color:var(--red)}
.mkt-pill-ach.na{background:var(--bd);color:var(--mu)}
.mkt-pill.on .mkt-pill-ach.good{background:rgba(255,255,255,.25);color:#fff}
.mkt-pill.on .mkt-pill-ach.mid{background:rgba(255,255,255,.25);color:#fff}
.mkt-pill.on .mkt-pill-ach.bad{background:rgba(255,255,255,.25);color:#fff}
.mkt-pill.on .mkt-pill-ach.na{background:rgba(255,255,255,.25);color:#fff}

/* Store Drill Panel — modal overlay version */
.sdp-modal{position:fixed;inset:0;display:none;z-index:9999}
.sdp-modal.open{display:block;animation:sdp-modal-in .15s ease}
.sdp-modal-bd{position:absolute;inset:0;background:rgba(15,23,42,.55);backdrop-filter:blur(2px);cursor:pointer}
.sdp-modal .store-dp{position:relative;margin:3vh auto;max-width:1280px;width:94vw;max-height:94vh;display:flex;flex-direction:column;margin-bottom:0;animation:sdp-pop-in .18s cubic-bezier(.2,.7,.3,1.2)}
.sdp-modal .store-dp-h{flex-shrink:0}
.sdp-modal .dp-body{overflow:auto;flex:1;padding:14px 16px}
body.sdp-modal-open{overflow:hidden}
@keyframes sdp-modal-in{from{opacity:0}to{opacity:1}}
@keyframes sdp-pop-in{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}

/* SDP — per-metric trend chips & projection */
.sdp-trend-banner{font-size:11.5px;font-weight:700;padding:7px 11px;border-radius:7px;border:1px solid;margin-bottom:7px;letter-spacing:.2px}
.sdp-trend-banner b{font-weight:800;font-size:12.5px}
.sdp-trend-banner.bad{background:var(--redl);border-color:var(--redb);color:var(--red)}
.sdp-trend-banner.good{background:var(--grnl);border-color:var(--grnb);color:var(--grn)}
.sdp-overall{display:flex;align-items:center;gap:8px;padding:8px 11px;background:var(--s2);border:1px solid var(--bd);border-radius:7px;margin-bottom:7px;flex-wrap:wrap}
.sdp-overall-l{font-size:10.5px;font-weight:700;color:var(--mu);text-transform:uppercase;letter-spacing:.4px;margin-right:auto}
.sdp-mrow{display:grid;grid-template-columns:90px minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:6px 10px;background:var(--s2);border-radius:7px;border-left:3px solid transparent}
.sdp-mrow-bad{border-left-color:var(--red)}
.sdp-mrow-warn{border-left-color:var(--amb)}
.sdp-mrow-good{border-left-color:var(--grn)}
.sdp-mrow-l{font-size:11px;color:var(--mu);font-weight:600}
.sdp-mrow-v{font-family:var(--mo);font-size:12px;font-weight:700;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sdp-mrow-v small{font-size:10px;font-weight:600;opacity:.85;margin-left:4px}
.sdp-mrow-t,.sdp-mrow-p{display:flex;align-items:center;gap:6px}
.sdp-tchip{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:800;padding:2px 8px;border-radius:99px;border:1px solid;letter-spacing:.2px;white-space:nowrap;font-family:var(--fn)}
.sdp-tchip.good{background:var(--grnl);border-color:var(--grnb);color:var(--grn)}
.sdp-tchip.warn{background:var(--ambl);border-color:var(--ambb);color:var(--amb)}
.sdp-tchip.bad{background:var(--redl);border-color:var(--redb);color:var(--red)}
.sdp-tchip.na{background:var(--bd);border-color:var(--bd);color:var(--mu);font-weight:700}

.cmp-bar{display:flex;align-items:center;gap:7px;margin-bottom:11px;padding:9px 13px;background:var(--s2);border-radius:8px;border:1px solid var(--bd);flex-wrap:wrap}
.cmp-lbl{font-size:10px;font-weight:700;color:var(--mu);text-transform:uppercase;letter-spacing:.7px}
.cmp-chip{padding:3px 10px;border-radius:20px;font-size:11px;font-weight:500;background:var(--su);border:1px solid var(--bd);cursor:pointer;color:var(--mu);transition:.15s}
.cmp-chip:hover,.cmp-chip.on{background:var(--blu);border-color:var(--blu);color:#fff;font-weight:600}

.src-pill{padding:3px 11px;border-radius:16px;font-size:11px;font-weight:600;background:var(--su);border:1px solid var(--bd);cursor:pointer;color:var(--mu);transition:.15s;font-family:var(--fn);letter-spacing:.3px}
.src-pill:hover{background:var(--blul);color:var(--blu);border-color:var(--blub)}
.src-pill.on{background:var(--blu);color:#fff;border-color:var(--blu);box-shadow:0 1px 3px rgba(26,60,181,.3)}

/* Ops Tracker — interactive task cards */
.opt-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;padding:14px}
.opt-card{position:relative;background:var(--su);border:1px solid var(--bd);border-radius:10px;padding:14px 14px 10px;cursor:pointer;transition:.15s ease;overflow:hidden;display:flex;flex-direction:column;gap:6px;font-family:var(--fn)}
.opt-card:hover{border-color:var(--blub);box-shadow:0 4px 14px rgba(26,60,181,.08);transform:translateY(-1px)}
.opt-card.opt-card-open{border-color:var(--blu);box-shadow:0 4px 18px rgba(26,60,181,.16)}
.opt-card-stripe{position:absolute;top:0;left:0;right:0;height:4px}
.opt-card-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:4px}
.opt-card-id{font-family:var(--mo);font-size:10px;color:var(--mu);font-weight:700;letter-spacing:.3px}
.opt-card-module{font-size:10px;color:var(--t2);background:var(--s2);padding:1px 8px;border-radius:10px;font-weight:600}
.opt-card-type{font-size:9px;color:var(--mu);text-transform:uppercase;letter-spacing:.4px;font-weight:700}
.opt-card-priority{font-size:10px;font-weight:800;padding:2px 9px;border-radius:10px;letter-spacing:.2px}
.opt-card-title{font-size:13px;font-weight:700;color:var(--tx);line-height:1.35;margin:2px 0 4px}
.opt-card-meta{display:flex;flex-wrap:wrap;gap:10px;font-size:10.5px;color:var(--t2)}
.opt-card-meta span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.opt-due-over{color:var(--red);font-weight:700}
.opt-card-status-row{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:4px}
.opt-card-status{font-size:10px;font-weight:800;padding:2px 10px;border-radius:10px;white-space:nowrap}
.opt-card-prog-text{font-size:10.5px;color:var(--t2);font-family:var(--mo)}
.opt-card-prog-bar{height:6px;background:var(--s2);border-radius:3px;overflow:hidden;margin-top:2px}
.opt-card-prog-fill{height:100%;transition:width .35s ease}
.opt-card-impact{font-size:10.5px;color:var(--mu);margin-top:4px;padding:4px 0 0;border-top:1px dashed var(--bd);line-height:1.4;max-height:44px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.opt-card-expand-hint{text-align:center;font-size:9px;color:var(--mu);letter-spacing:.4px;font-weight:600;padding-top:4px;margin-top:auto;border-top:1px dashed var(--bd)}

/* Expanded subtask panel — appears under a card, spans full grid width */
.opt-sub-panel{grid-column:1/-1;background:var(--s2);border:1px solid var(--blu);border-radius:10px;padding:12px 14px;margin-top:-4px;box-shadow:inset 0 2px 6px rgba(26,60,181,.08)}
.opt-sub-panel-stats{display:flex;flex-wrap:wrap;gap:14px;font-size:11px;color:var(--mu);margin-bottom:10px;padding-bottom:8px;border-bottom:1px dashed var(--bd)}
.opt-sub-panel-empty{font-size:11.5px;color:var(--t2);padding:6px 2px}
.opt-subcard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px}
.opt-subcard{background:var(--su);border:1px solid var(--bd);border-radius:7px;padding:8px 10px;font-size:11px;display:flex;flex-direction:column;gap:3px}
.opt-subcard-blocked{border-color:var(--red);background:#fff5f5}
[data-theme="dark"] .opt-subcard-blocked{background:rgba(179,26,26,.08)}
.opt-subcard-head{display:flex;justify-content:space-between;align-items:center;gap:6px;flex-wrap:wrap}
.opt-subcard-owner{font-weight:700;color:var(--tx);font-size:11px}
.opt-subcard-role{font-size:9px;color:var(--mu);text-transform:uppercase;letter-spacing:.4px}
.opt-subcard-status{font-size:9px;font-weight:800;padding:1px 7px;border-radius:8px;margin-left:auto}
.opt-subcard-id{font-family:var(--mo);font-size:10px;color:var(--mu)}
.opt-subcard-blocker{font-size:10.5px;color:var(--red);background:var(--redl);border:1px solid var(--redb);padding:4px 6px;border-radius:5px;margin-top:2px;line-height:1.35}
.opt-subcard-notes{font-size:10.5px;color:var(--t2);font-style:italic;padding-top:3px;border-top:1px dashed var(--bd);line-height:1.4}

/* Ops Tracker — compact top strip (title + inline KPI chips) */
.opt-top{display:flex;align-items:center;gap:14px;padding:10px 14px;background:var(--su);border:1px solid var(--bd);border-radius:10px;margin-bottom:8px;flex-wrap:wrap}
.opt-top-lbl{font-size:13px;font-weight:700;color:var(--tx);letter-spacing:.2px;white-space:nowrap}
.opt-top-src{font-size:10px;font-weight:500;color:var(--mu);margin-left:4px;padding:2px 7px;background:var(--s2);border-radius:8px}
.opt-top-kpis{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto}
.opt-kchip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:12px;background:var(--s2);border:1px solid var(--bd);font-family:var(--mo);font-size:11px;font-weight:700}
.opt-kchip b{font-weight:800;font-size:12px}
.opt-kchip-l{font-family:var(--fn);font-weight:600;color:var(--mu);font-size:10px;letter-spacing:.2px}
.opt-kchip.cg b{color:var(--grn)}
.opt-kchip.cb b{color:var(--blu)}
.opt-kchip.ca b{color:var(--amb)}
.opt-kchip.cr b{color:var(--red)}
.opt-overdue-badge{background:var(--redl);color:var(--red);padding:1px 6px;border-radius:4px;font-size:9px;font-weight:700;margin-left:6px}

/* Ops Tracker — filter + view bar (single row) */
.opt-bar{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--su);border:1px solid var(--bd);border-radius:10px;margin-bottom:8px;flex-wrap:wrap}
.opt-view{display:inline-flex;background:var(--s2);border-radius:8px;padding:2px;gap:1px;border:1px solid var(--bd)}
.opt-vpill{background:transparent;border:none;padding:5px 13px;font-size:11px;font-weight:700;color:var(--mu);cursor:pointer;border-radius:6px;transition:.15s;font-family:var(--fn);letter-spacing:.2px}
.opt-vpill:hover{color:var(--tx)}
.opt-vpill.on{background:var(--su);color:var(--tx);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.opt-bar-filters{display:flex;align-items:center;gap:6px;flex-wrap:wrap;flex:1}
.opt-container{background:var(--su);border:1px solid var(--bd);border-radius:10px;overflow:hidden;min-height:200px}

/* Ops Tracker — RM summary strip above task table (compact) */
.opt-rm-strip{padding:10px 12px 4px;border-bottom:1px solid var(--bd);background:var(--s2)}
.opt-rm-strip-lbl{font-size:9px;font-weight:700;color:var(--mu);letter-spacing:.5px;text-transform:uppercase;margin-bottom:6px}
.opt-rm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px}
.opt-rm-card{background:var(--su);border:1px solid var(--bd);border-radius:7px;padding:7px 9px;cursor:pointer;transition:.12s;display:flex;flex-direction:column;gap:4px;font-family:var(--fn)}
.opt-rm-card:hover{border-color:var(--blub);background:var(--blul)}
.opt-rm-card-on{border-color:var(--blu);background:var(--blul)}
.opt-rm-card-name{font-size:10.5px;font-weight:700;color:var(--tx);letter-spacing:.1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.opt-rm-card-total{font-family:var(--mo);font-size:16px;font-weight:800;color:var(--tx);line-height:1}
.opt-rm-card-total-l{font-size:8.5px;font-weight:600;color:var(--mu);margin-left:5px;letter-spacing:.5px;text-transform:uppercase}
.opt-rm-card-split{display:flex;flex-wrap:wrap;gap:3px}
.opt-rm-chip{font-size:9.5px;font-weight:700;padding:0px 6px;border-radius:8px;font-family:var(--mo);border:1px solid transparent;line-height:1.55}
.opt-rm-chip.done{background:var(--grnl);color:var(--grn);border-color:var(--grnb)}
.opt-rm-chip.inprog{background:var(--blul);color:var(--blu);border-color:var(--blub)}
.opt-rm-chip.pending{background:var(--s2);color:var(--mu);border-color:var(--bd)}
.opt-rm-chip.hold{background:var(--ambl);color:var(--amb);border-color:var(--ambb)}
.opt-rm-chip.over{background:var(--redl);color:var(--red);border-color:var(--redb)}
.opt-rm-card-bar{height:3px;background:var(--s2);border-radius:2px;overflow:hidden}
.opt-rm-card-bar-fill{height:100%;background:var(--grn);transition:width .35s ease}

/* Ops Tracker — state filter chips */
.opt-state-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:14px;border:1px solid var(--bd);background:var(--s2);font-family:var(--fn);font-size:11px;font-weight:700;cursor:pointer;transition:.15s;color:var(--t2);user-select:none}
.opt-state-chip:hover{border-color:var(--blu);color:var(--blu)}
.opt-state-chip.on{box-shadow:0 1px 4px rgba(0,0,0,.12)}
.opt-state-chip-lbl{letter-spacing:.1px}
.opt-state-chip-ct{font-family:var(--mo);font-size:10px;font-weight:800;background:rgba(0,0,0,.08);padding:0 6px;border-radius:8px;min-width:18px;text-align:center}
.opt-state-chip.on .opt-state-chip-ct{background:rgba(255,255,255,.22);color:#fff}

/* Ops Tracker — task table (compact) */
.opt-table{font-size:11px}
.opt-table thead th{position:sticky;top:0;z-index:2;padding:7px 6px!important;font-size:9px!important}
.opt-table tbody td{padding:6px 6px!important;font-size:11px!important;line-height:1.35}
.opt-table tr.opt-row:hover{background:var(--blul)!important}
.opt-table tr.opt-row-open{background:var(--blul)!important;border-bottom:none!important}
.opt-table tr.opt-row-open td{border-bottom:1px solid var(--blu)}

/* Monthly · Network totals — refined layout */
.net-tot{display:grid;grid-template-columns:0.85fr 0.95fr 1.4fr 1.4fr;gap:14px;align-items:stretch}
.net-stat{display:flex;align-items:center;gap:10px;padding:6px 8px;background:linear-gradient(135deg,var(--s2),transparent);border-radius:8px;border:1px solid var(--bd);min-height:62px}
.net-stat-icn{font-size:22px;line-height:1;flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--su);border-radius:8px;border:1px solid var(--bd)}
.net-stat-l{font-size:9px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--mu);margin-bottom:2px}
.net-stat-v{font-family:var(--mo);font-size:18px;font-weight:800;color:var(--tx);line-height:1.05}
.net-stat-sub{font-size:9.5px;color:var(--mu);font-family:var(--mo);margin-top:2px}
.net-stat-format,.net-stat-cohort{display:block;padding:8px 10px}
.net-format-row,.net-cohort-row{display:flex;gap:6px;flex-wrap:wrap;margin:4px 0 6px}
.net-format-pill{font-size:11px;font-weight:700;padding:2px 9px;border-radius:14px;display:inline-flex;align-items:center;gap:5px;border:1px solid transparent;font-family:var(--fn)}
.net-format-pill.hs{background:var(--ambl);color:var(--amb);border-color:var(--ambb)}
.net-format-pill.mall{background:rgba(37,99,235,.1);color:var(--blu);border-color:rgba(37,99,235,.25)}
.net-format-pct{font-family:var(--mo);font-size:10px;background:rgba(0,0,0,.08);padding:0 5px;border-radius:6px}
.net-format-bar{height:6px;background:var(--s2);border-radius:3px;overflow:hidden;display:flex}
.net-format-bar-hs{background:var(--amb);height:100%;transition:width .35s}
.net-format-bar-mall{background:var(--blu);height:100%;transition:width .35s}
.net-format-foot{display:flex;justify-content:space-between;font-size:9.5px;color:var(--mu);font-family:var(--mo);margin-top:3px}
.net-cohort-pill{font-size:11px;font-weight:700;padding:2px 9px;border-radius:14px;border:1px solid transparent;font-family:var(--fn)}
.net-cohort-pill.lfl{background:rgba(37,99,235,.1);color:var(--blu);border-color:rgba(37,99,235,.25)}
.net-cohort-pill.ly{background:var(--ambl);color:var(--amb);border-color:var(--ambb)}
.net-cohort-pill.new{background:var(--grnl);color:var(--grn);border-color:var(--grnb)}
.net-cohort-bar{height:6px;background:var(--s2);border-radius:3px;overflow:hidden;display:flex}
.net-cohort-seg{height:100%;transition:width .35s}
.net-cohort-seg.lfl{background:var(--blu)}
.net-cohort-seg.ly{background:var(--amb)}
.net-cohort-seg.new{background:var(--grn)}
@media(max-width:1100px){.net-tot{grid-template-columns:1fr 1fr}}

/* Subtask card click hint + clickable state */
.opt-subcard-clickable{cursor:pointer;transition:.15s}
.opt-subcard-clickable:hover{border-color:var(--blu);box-shadow:0 2px 8px rgba(26,60,181,.12);transform:translateY(-1px)}
.opt-subcard-hint{font-size:9px;color:var(--mu);text-align:right;font-style:italic;margin-top:2px;opacity:.7}
.opt-subcard-clickable:hover .opt-subcard-hint{opacity:1;color:var(--blu);font-style:normal;font-weight:600}

/* Subtask status modal */
.opt-modal-overlay{position:fixed;inset:0;background:rgba(16,22,40,.55);display:none;align-items:flex-start;justify-content:center;z-index:9998;padding:40px 20px;overflow-y:auto;animation:opt-fade .15s ease}
.opt-modal-overlay.on{display:flex}
[data-theme="dark"] .opt-modal-overlay{background:rgba(4,8,20,.78)}
@keyframes opt-fade{from{opacity:0}to{opacity:1}}
.opt-modal-box{background:var(--su);border:1px solid var(--bd);border-radius:12px;box-shadow:0 18px 50px rgba(0,0,0,.22);max-width:560px;width:100%;font-family:var(--fn);animation:opt-slide .18s ease}
@keyframes opt-slide{from{transform:translateY(-12px);opacity:0}to{transform:translateY(0);opacity:1}}
.opt-modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:16px 18px 12px;border-bottom:1px solid var(--bd)}
.opt-modal-id{font-family:var(--mo);font-size:10px;color:var(--mu);font-weight:700;letter-spacing:.4px}
.opt-modal-title{font-size:15px;font-weight:700;color:var(--tx);margin-top:3px;line-height:1.3}
.opt-modal-sub{font-size:11px;color:var(--mu);margin-top:2px}
.opt-modal-x{cursor:pointer;color:var(--mu);font-size:18px;padding:2px 8px;border-radius:6px;transition:.15s;user-select:none}
.opt-modal-x:hover{background:var(--s2);color:var(--red)}
.opt-modal-chips{display:flex;gap:6px;flex-wrap:wrap;padding:10px 18px;border-bottom:1px solid var(--bd);background:var(--s2)}
.opt-modal-chip{font-size:10px;font-weight:800;padding:3px 10px;border-radius:12px;letter-spacing:.2px}
.opt-modal-body{padding:14px 18px 18px;display:flex;flex-direction:column;gap:6px}
.opt-modal-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:5px 0;border-bottom:1px dashed var(--bd);font-size:12px}
.opt-modal-row:last-child{border-bottom:none}
.opt-modal-lbl{color:var(--mu);font-weight:600;font-size:11px;letter-spacing:.2px;text-transform:uppercase;min-width:110px}
.opt-modal-val{color:var(--tx);font-weight:600;text-align:right;flex:1}
.opt-modal-block,.opt-modal-notes-block,.opt-modal-parent{margin-top:12px;background:var(--s2);border:1px solid var(--bd);border-radius:8px;padding:10px 12px}
.opt-modal-block{border-color:var(--redb);background:var(--redl)}
.opt-modal-block-h,.opt-modal-notes-h,.opt-modal-parent-h{font-size:11px;font-weight:800;color:var(--tx);margin-bottom:6px;letter-spacing:.2px}
.opt-modal-block-h{color:var(--red)}
.opt-modal-notes-body{font-size:12px;color:var(--t2);line-height:1.5;font-style:italic}
.opt-modal-parent-body,.opt-modal-block-body{display:flex;flex-direction:column;gap:4px}

.topbar-progress{position:fixed;top:0;left:0;right:0;height:3px;background:transparent;z-index:999;pointer-events:none;overflow:hidden;display:none}
.topbar-progress.on{display:block}
.topbar-progress::before{content:'';position:absolute;top:0;left:0;height:100%;width:40%;background:linear-gradient(90deg,transparent,var(--blu),transparent);animation:tp-slide 1.1s ease-in-out infinite}
@keyframes tp-slide{0%{left:-40%}100%{left:100%}}
.pill.loading{background:#fff4d6;border-color:#f3c766;color:#8a6d00}
.pill.loading .bk_{background:#d49a00;animation:pulse-dot 1s ease-in-out infinite}
@keyframes pulse-dot{0%,100%{opacity:1}50%{opacity:.3}}
@keyframes spin{to{transform:rotate(360deg)}}

::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:var(--scroll-track)}
::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:99px}

.theme-btn{width:32px;height:32px;border-radius:8px;border:1px solid var(--bd);background:var(--su);color:var(--tx);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:15px;transition:.15s;padding:0}
.theme-btn:hover{background:var(--s2);border-color:var(--b2)}

@media(max-width:1100px){.g4,.g5{grid-template-columns:repeat(2,1fr)}.k4,.k5,.k6{grid-template-columns:repeat(3,1fr)}.pg6{grid-template-columns:repeat(4,1fr)}.cohort-layout{grid-template-columns:1fr}.cohort-row{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){
  .k4,.k5,.k6{grid-template-columns:repeat(2,1fr)}
  .g2,.g3,.g4,.g5{grid-template-columns:1fr}
  .pg6,.pg3,.pg4{grid-template-columns:repeat(2,1fr)}
  .dp-kpis{grid-template-columns:repeat(3,1fr)}
  .cohort-row{grid-template-columns:1fr}
}

/* ── OKR / AOP Tracker tab ────────────────────────────────────────── */
.okr-summary-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.okr-status-row{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.okr-status-pill{font-size:10px;font-weight:700;padding:3px 9px;border-radius:99px;background:var(--s2);color:var(--t2);border:1px solid var(--bd);font-family:var(--mo)}
.okr-status-pill.ok{background:var(--grnl);color:var(--grn);border-color:var(--grnb)}
.okr-status-pill.warn{background:var(--ambl);color:var(--amb);border-color:var(--ambb)}
.okr-status-pill.err{background:var(--redl);color:var(--red);border-color:var(--redb)}
.okr-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin-bottom:10px}
.okr-stat{background:var(--s2);border:1px solid var(--bd);border-radius:8px;padding:8px 12px}

/* Status board · LIVE indicator (pulsing green dot) */
.stb-live-pill{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:800;letter-spacing:.5px;padding:3px 10px;border-radius:99px;background:var(--grnl);color:var(--grn);border:1px solid var(--grnb);font-family:var(--fn);white-space:nowrap}
.stb-live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--grn);box-shadow:0 0 0 0 rgba(16,185,129,.55);animation:stb-pulse 1.6s ease-in-out infinite}
@keyframes stb-pulse{0%{box-shadow:0 0 0 0 rgba(16,185,129,.55)}70%{box-shadow:0 0 0 6px rgba(16,185,129,0)}100%{box-shadow:0 0 0 0 rgba(16,185,129,0)}}
.okr-stat .n{font-family:var(--mo);font-size:18px;font-weight:800;color:var(--tx)}
.okr-stat .l{font-size:9.5px;color:var(--mu);text-transform:uppercase;letter-spacing:.4px;font-weight:700}
.okr-stat.owner .n{color:#7c3aed}
.okr-stat.member .n{color:var(--blu)}
.okr-stat.support .n{color:var(--amb)}
.okr-stat.team .n{color:var(--grn)}
.okr-team-roster{display:flex;flex-wrap:wrap;gap:5px;align-items:center;padding-top:9px;border-top:1px dashed var(--bd)}
.okr-roster-l{font-size:9.5px;color:var(--mu);font-weight:700;text-transform:uppercase;letter-spacing:.4px}
.okr-roster-chip{font-size:10.5px;font-weight:600;color:var(--t2);background:var(--s2);border:1px solid var(--bd);border-radius:5px;padding:2px 8px}
.okr-roster-chip.more{color:var(--mu);font-style:italic}
.okr-section{background:var(--su);border:1px solid var(--bd);border-radius:10px;padding:12px 14px;margin-bottom:12px}
.okr-section-h{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:700;color:var(--tx);padding-bottom:8px;border-bottom:1px solid var(--bd);margin-bottom:10px}
.okr-section-ct{font-family:var(--mo);background:var(--blul);color:var(--blu);padding:2px 10px;border-radius:10px;font-size:11px;font-weight:800;border:1px solid var(--bd)}
.okr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:10px}
.okr-card{background:var(--su);border:1px solid var(--bd);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:5px;transition:border-color .12s,box-shadow .12s}
.okr-card:hover{border-color:var(--bd2);box-shadow:var(--sh1)}
.okr-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.okr-card-name{font-size:12px;font-weight:700;color:var(--tx);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
.okr-card-meta{display:flex;gap:4px;align-items:center;flex-wrap:nowrap;flex-shrink:0}
.okr-card-sub{font-size:10px;color:var(--mu);font-weight:600}
.okr-card-outcome{font-size:10.5px;color:var(--t2);line-height:1.45;background:var(--s2);border-left:2px solid var(--bd);padding:5px 8px;border-radius:0 4px 4px 0}
.okr-card-people{display:flex;flex-direction:column;gap:2px;font-size:10px;color:var(--t2);line-height:1.35}
.okr-card-people b{color:var(--mu);font-weight:700;font-size:9.5px;text-transform:uppercase;letter-spacing:.3px;margin-right:3px}
.okr-card-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;padding-top:5px;border-top:1px dashed var(--bd)}
.okr-card-next{font-size:10px;color:var(--blu);font-style:italic;line-height:1.35}
.okr-status{font-size:9px;font-weight:800;padding:2px 7px;border-radius:4px;background:var(--s2);color:var(--mu);text-transform:uppercase;letter-spacing:.3px}
.okr-status.ok{background:var(--grnl);color:var(--grn)}
.okr-status.warn{background:var(--ambl);color:var(--amb)}
.okr-status.err{background:var(--redl);color:var(--red)}
/* Timeline / due-date chip — derived from end_date vs today, NOT from sheet status */
.okr-due{font-size:9px;font-weight:800;padding:2px 7px;border-radius:4px;background:var(--s2);color:var(--mu);text-transform:uppercase;letter-spacing:.3px;font-family:var(--mo);white-space:nowrap}
.okr-due.done   {background:var(--grnl);color:var(--grn)}
.okr-due.overdue{background:var(--redl);color:var(--red);animation:okr-pulse-red 2s ease-in-out infinite}
.okr-due.soon   {background:var(--ambl);color:var(--amb)}
.okr-due.mid    {background:var(--blul);color:var(--blu)}
.okr-due.far    {background:var(--s2);color:var(--mu)}
@keyframes okr-pulse-red{0%,100%{box-shadow:0 0 0 0 rgba(220,38,38,0)}50%{box-shadow:0 0 0 3px rgba(220,38,38,.15)}}
/* Milestone callout */
.okr-card-milestone{display:flex;align-items:center;gap:6px;padding:5px 8px;background:var(--blul);border:1px solid var(--blub);border-radius:5px;font-size:10.5px;color:var(--t2);line-height:1.35}
.okr-ms-icon{font-size:13px;line-height:1;flex-shrink:0}
.okr-ms-text{font-weight:600}
.okr-pri{font-size:9px;font-weight:800;padding:2px 6px;border-radius:4px;background:var(--s2);color:var(--mu);text-transform:uppercase;letter-spacing:.3px}
.okr-pri.pri-hi{background:var(--redl);color:var(--red)}
.okr-pri.pri-mid{background:var(--ambl);color:var(--amb)}
.okr-pri.pri-lo{background:var(--blul);color:var(--blu)}
.okr-role{font-size:9px;font-weight:800;padding:2px 6px;border-radius:4px;letter-spacing:.4px;text-transform:uppercase;font-family:var(--fn)}
.okr-role.owner{background:rgba(124,58,237,.12);color:#7c3aed}
.okr-role.member{background:var(--blul);color:var(--blu)}
.okr-role.support{background:var(--ambl);color:var(--amb)}
.okr-pct{display:flex;align-items:center;gap:6px;flex:1;min-width:0}
.okr-pct-bg{flex:1;height:5px;background:var(--s3);border-radius:99px;overflow:hidden;min-width:60px}
.okr-pct-fl{height:100%;border-radius:99px;background:var(--blu);transition:width .8s ease}
.okr-pct-fl.ok{background:var(--grn)}
.okr-pct-fl.mid{background:var(--blu)}
.okr-pct-fl.lo{background:var(--amb)}
.okr-pct-v{font-family:var(--mo);font-size:10.5px;font-weight:700;color:var(--t2);min-width:32px;text-align:right}
.okr-link{font-size:10px;font-weight:700;color:var(--blu);text-decoration:none;font-family:var(--fn)}
.okr-link:hover{text-decoration:underline}
.okr-team-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:6px}
.okr-team-row{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:var(--s2);border-radius:6px}
.okr-team-name{font-size:11.5px;font-weight:700;color:var(--tx)}
.okr-team-count{font-size:10px;font-weight:700;color:var(--blu);font-family:var(--mo);background:var(--blul);padding:1px 8px;border-radius:99px}
.okr-team-count.zero{color:var(--mu);background:var(--s3)}
.okr-tbl{width:100%;border-collapse:collapse;font-size:11px;font-family:var(--fn)}
.okr-tbl thead th{position:sticky;top:0;background:var(--s2);text-align:left;padding:7px 9px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--mu);border-bottom:1px solid var(--bd)}
.okr-tbl tbody td{padding:7px 9px;border-bottom:1px solid var(--bd);vertical-align:top}
.okr-tbl tbody tr:hover td{background:var(--s2)}
.okr-tn b{font-size:11px;color:var(--tx)}
.okr-tn-sub{font-size:9.5px;color:var(--mu);margin-top:2px;line-height:1.35}
.okr-tnames{font-size:10px;color:var(--t2);max-width:160px}
.okr-tdate{font-family:var(--mo);font-size:10.5px;color:var(--t2);white-space:nowrap}
.okr-objective{margin-bottom:14px;padding-bottom:10px;border-bottom:1px dashed var(--bd)}
.okr-objective:last-child{border-bottom:none;margin-bottom:0}
.okr-obj-h{display:flex;gap:8px;align-items:baseline;margin-bottom:8px}
.okr-obj-num{font-family:var(--mo);font-size:13px;font-weight:800;color:#7c3aed;min-width:22px}
.okr-obj-title{font-size:13px;font-weight:700;color:var(--tx)}
.okr-kr-list{display:flex;flex-direction:column;gap:6px;padding-left:30px}
.okr-kr{display:flex;gap:8px;align-items:flex-start;background:var(--s2);border-radius:6px;padding:8px 10px}
.okr-kr-num{font-family:var(--mo);font-size:10px;font-weight:800;color:var(--blu);min-width:28px;padding-top:1px}
.okr-kr-body{flex:1;display:flex;flex-direction:column;gap:3px}
.okr-kr-obj{font-size:11px;font-weight:600;color:var(--tx);line-height:1.4}
.okr-kr-meas{font-size:10.5px;color:var(--t2);line-height:1.35}
.okr-kr-meas b{color:var(--mu);font-weight:700;font-size:9.5px}
.okr-kr-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:10px;color:var(--mu);margin-top:2px}
.okr-kr-target,.okr-kr-owner{font-size:10px;color:var(--t2)}
.okr-kr-target b,.okr-kr-owner b{color:var(--mu);font-weight:700}

/* OKR · Project Overview table + click-to-modal */
.okr-ov-wrap{max-height:62vh;overflow:auto;border:1px solid var(--bd);border-radius:8px}
.okr-ov-tbl{width:100%;border-collapse:collapse;font-size:11.5px;font-family:var(--fn)}
.okr-ov-tbl thead th.okr-ov-th{position:sticky;top:0;background:var(--s2);text-align:left;padding:8px 10px;font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--mu);border-bottom:1px solid var(--bd);cursor:pointer;user-select:none;white-space:nowrap;z-index:5}
.okr-ov-tbl thead th.okr-ov-th:hover{color:var(--blu)}
.okr-ov-tbl thead th.okr-ov-th.num{text-align:right}
.okr-ov-ar{font-size:8px;margin-left:4px;color:var(--blu)}
.okr-ov-tbl tbody tr.okr-ov-row{border-bottom:1px solid var(--bd);transition:background .12s}
.okr-ov-tbl tbody tr.okr-ov-row:hover{background:var(--s2)}
.okr-ov-tbl tbody tr.okr-ov-row:last-child{border-bottom:none}
.okr-ov-tbl td{padding:8px 10px;vertical-align:middle}
.okr-ov-name{font-weight:700;color:var(--tx)}
.okr-ov-name.clk{cursor:pointer}
.okr-ov-name.clk:hover{color:var(--blu);text-decoration:underline}
.okr-ov-num{text-align:right;font-family:var(--mo);font-weight:700;color:var(--t2);font-size:12.5px}
.okr-ov-num.clk{cursor:pointer;color:var(--blu)}
.okr-ov-num.clk:hover{background:var(--blul);border-radius:4px}
.okr-ov-num.zero{color:var(--di);font-weight:500}
/* Modal overlay */
.okr-modal{position:fixed;inset:0;background:rgba(0,0,0,.55);display:none;align-items:flex-start;justify-content:center;z-index:1500;padding:30px 20px;overflow:auto}
.okr-modal.open{display:flex}
.okr-modal-card{background:var(--su);border:1px solid var(--bd);border-radius:12px;box-shadow:var(--sh3,0 12px 36px rgba(0,0,0,.4));max-width:1100px;width:100%;max-height:85vh;display:flex;flex-direction:column;overflow:hidden;animation:okrm-in .15s ease}
@keyframes okrm-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.okr-modal-head{padding:14px 20px;border-bottom:1px solid var(--bd);display:flex;justify-content:space-between;align-items:flex-start;background:linear-gradient(135deg,var(--blul),var(--su));flex-shrink:0}
.okr-modal-title{font-size:16px;font-weight:800;color:var(--tx)}
.okr-modal-sub{font-size:11px;color:var(--mu);margin-top:2px;font-weight:600}
.okr-modal-x{width:30px;height:30px;border-radius:6px;background:var(--s3);border:1px solid var(--bd);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--mu);font-family:var(--fn);transition:.12s}
.okr-modal-x:hover{background:var(--bd);color:var(--tx)}
.okr-modal-body{padding:14px 18px;overflow-y:auto;flex:1}

/* RM × Month matrix table */
.rm-fy-tbl{font-size:11.5px;font-family:var(--mo)}
.rm-fy-tbl thead th{position:sticky;top:0;background:var(--s2);font-size:10px;font-weight:700;color:var(--mu);padding:7px 9px;text-align:right;text-transform:uppercase;letter-spacing:.4px;border-bottom:2px solid var(--bd);z-index:3}
.rm-fy-tbl thead th.fc{text-align:left;background:var(--s2);z-index:4}
.rm-fy-tbl thead th.tot{background:var(--s3);position:sticky;right:0;z-index:4}
.rm-fy-tbl tbody td{padding:7px 9px;text-align:right;border-bottom:1px solid var(--bd);font-weight:600;color:var(--t2)}
.rm-fy-tbl tbody td.fc{text-align:left;font-family:var(--fn);font-weight:700;color:var(--tx);position:sticky;left:0;background:var(--su);border-right:1px solid var(--bd);z-index:2}
.rm-fy-tbl tbody td.tot{position:sticky;right:0;background:var(--s2);font-weight:800;color:var(--tx);border-left:1px solid var(--bd);z-index:2}
.rm-fy-tbl tbody tr.rmf-row{cursor:pointer;transition:background .12s}
.rm-fy-tbl tbody tr.rmf-row:hover td{background:var(--blul)}
.rm-fy-tbl tbody tr.rmf-row:hover td.fc{background:var(--blul)}
.rm-fy-tbl tbody tr.rmf-row:hover td.tot{background:var(--blul)}
.rm-fy-tbl tfoot td{padding:8px 9px;text-align:right;border-top:2px solid var(--bd);font-weight:800;color:var(--tx);font-family:var(--mo);background:var(--s3)}
.rm-fy-tbl tfoot td.fc{text-align:left;font-family:var(--fn);position:sticky;left:0;z-index:2}
.rm-fy-tbl tfoot td.tot{position:sticky;right:0;z-index:2}
/* Achievement heat-map cells */
.rm-fy-tbl td.rmf-ok  {background:var(--grnl);color:var(--grn)}
.rm-fy-tbl td.rmf-mid {background:var(--blul);color:var(--blu)}
.rm-fy-tbl td.rmf-warn{background:var(--ambl);color:var(--amb)}
.rm-fy-tbl td.rmf-err {background:var(--redl);color:var(--red)}

/* ── Growth Sub-tabs & Compare Dashboard ─────────────────────────────────── */
.gr-stabs{display:flex;gap:4px;margin-bottom:14px;flex-wrap:wrap}
.gr-stab{padding:5px 16px;border-radius:16px;font-size:11px;font-weight:600;background:var(--su);border:1px solid var(--bd);cursor:pointer;color:var(--mu);transition:.15s;font-family:var(--fn);letter-spacing:.3px}
.gr-stab:hover{background:var(--blul);color:var(--blu);border-color:var(--blub)}
.gr-stab.on{background:var(--blu);color:#fff;border-color:var(--blu);box-shadow:0 1px 3px rgba(26,60,181,.3)}
.cmp-flbl{font-size:10px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--mu);margin-bottom:3px}
.cmp-finput{width:100%;padding:6px 10px;border:1px solid var(--bd);border-radius:8px;font-size:11px;font-family:var(--fn);background:var(--su);color:var(--tx);box-sizing:border-box;transition:border-color .15s,box-shadow .15s}
.cmp-finput:focus{outline:none;border-color:var(--blu);box-shadow:0 0 0 3px rgba(26,60,181,.1)}
.cmp-run-btn{padding:7px 20px;border-radius:8px;background:var(--blu);color:#fff;border:none;font-size:11px;font-weight:700;font-family:var(--fn);cursor:pointer;letter-spacing:.3px;white-space:nowrap;box-shadow:0 2px 6px rgba(26,60,181,.25);transition:opacity .15s,box-shadow .15s}
.cmp-run-btn:hover{opacity:.9;box-shadow:0 4px 10px rgba(26,60,181,.3)}

/* Period grouping cards */
.cmp-period-card{border-radius:10px;padding:12px 14px;border:1.5px solid}
.cmp-period-card.p1{background:rgba(26,60,181,.04);border-color:rgba(26,60,181,.18)}
.cmp-period-card.p2{background:rgba(138,61,0,.04);border-color:rgba(138,61,0,.18)}
.cmp-period-hdr{display:flex;align-items:center;gap:7px;margin-bottom:9px}
.cmp-period-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.cmp-period-dot.p1{background:var(--blu)}
.cmp-period-dot.p2{background:var(--amb)}
.cmp-period-tag{font-size:10px;font-weight:800;letter-spacing:.6px;text-transform:uppercase}
.cmp-period-tag.p1{color:var(--blu)}
.cmp-period-tag.p2{color:var(--amb)}
html[data-theme="dark"] .cmp-period-card.p1{background:rgba(26,60,181,.12);border-color:rgba(147,197,253,.25)}
html[data-theme="dark"] .cmp-period-card.p2{background:rgba(138,61,0,.12);border-color:rgba(252,211,77,.25)}

/* Compare metric KPI cards */
.cmp-metric-card{background:var(--su);border:1px solid var(--bd);border-radius:12px;padding:14px 16px;position:relative;overflow:hidden;box-shadow:var(--sh)}
.cmp-metric-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;border-radius:0 0 12px 12px}
.cmp-metric-card.m-sales::after{background:linear-gradient(90deg,var(--blu),#6b8ff7)}
.cmp-metric-card.m-bills::after{background:linear-gradient(90deg,var(--grn),#34d399)}
.cmp-metric-card.m-qty::after{background:linear-gradient(90deg,var(--amb),#f59e0b)}
.cmp-metric-card.m-abv::after{background:linear-gradient(90deg,#c8901a,#f5c842)}
.cmp-metric-title{font-size:9px;font-weight:800;letter-spacing:.7px;text-transform:uppercase;color:var(--mu);margin-bottom:10px}
.cmp-metric-vals{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.cmp-mv-lbl{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;margin-bottom:3px;display:flex;align-items:center;gap:4px}
.cmp-mv-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0}
.cmp-mv-lbl.p1{color:var(--blu)}
.cmp-mv-lbl.p1 .cmp-mv-dot{background:var(--blu)}
.cmp-mv-lbl.p2{color:var(--amb)}
.cmp-mv-lbl.p2 .cmp-mv-dot{background:var(--amb)}
.cmp-mv-num{font-size:15px;font-weight:800;font-family:var(--mo);line-height:1}
.cmp-mv-num.p1{color:var(--blu)}
.cmp-mv-num.p2{color:var(--amb)}
.cmp-metric-diff{display:flex;align-items:center;justify-content:space-between;padding-top:8px;border-top:1px solid var(--bd)}
.cmp-diff-main{font-size:14px;font-weight:800;font-family:var(--mo)}
.cmp-diff-main.up{color:var(--grn)}
.cmp-diff-main.dn{color:var(--red)}
.cmp-diff-sub{font-size:10px;color:var(--mu);font-family:var(--mo)}

/* Table group-header row */
.cmp-grp-row th{font-size:9px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;text-align:center;padding:5px 0 !important;border-bottom:1px solid var(--bd) !important;position:sticky;top:0;z-index:3}
.cmp-grp-row .gh-name{text-align:left;background:var(--s2);color:var(--mu);z-index:4}
.cmp-grp-row .gh-sales{color:var(--blu);background:rgba(26,60,181,.07)}
.cmp-grp-row .gh-bills{color:var(--grn);background:rgba(10,110,61,.07)}
.cmp-grp-row .gh-qty{color:var(--amb);background:rgba(138,61,0,.07)}
.cmp-grp-row .gh-abv{color:#c8901a;background:rgba(200,144,26,.07)}
.cmp-grp-row .gh-upt{color:var(--pur);background:rgba(79,31,160,.07)}
.cmp-grp-row .gh-asp{color:#0891b2;background:rgba(8,145,178,.07)}

/* ── Compact period inline ─────────────────────────────────────────────────── */
.cmp-period-inline{border-radius:8px;padding:8px 12px;border:1.5px solid;flex:1;min-width:248px}
.cmp-period-inline.p1{background:rgba(26,60,181,.04);border-color:rgba(26,60,181,.18)}
.cmp-period-inline.p2{background:rgba(138,61,0,.04);border-color:rgba(138,61,0,.18)}
html[data-theme="dark"] .cmp-period-inline.p1{background:rgba(26,60,181,.12);border-color:rgba(147,197,253,.25)}
html[data-theme="dark"] .cmp-period-inline.p2{background:rgba(138,61,0,.12);border-color:rgba(252,211,77,.25)}
.cmp-period-inline-hdr{display:flex;align-items:center;gap:5px;margin-bottom:6px}

/* ── UPT / ASP metric card accent ─────────────────────────────────────────── */
.cmp-metric-card.m-upt::after{background:linear-gradient(90deg,var(--pur),#a78bfa)}
.cmp-metric-card.m-asp::after{background:linear-gradient(90deg,#0891b2,#22d3ee)}

/* ── Compare compact table ─────────────────────────────────────────────────── */
.cmp-compact th,.cmp-compact td{padding:3px 7px !important;font-size:10px !important;min-width:68px}
.cmp-compact th:first-child,.cmp-compact td:first-child{min-width:110px;max-width:180px;overflow:hidden;text-overflow:ellipsis}
.cmp-compact thead th{font-size:9px !important}
.cmp-compact .cmp-grp-row th{padding:2px 0 !important;font-size:8px !important;min-width:0}
.cmp-tbl-wrap{max-height:420px;overflow-x:auto;overflow-y:auto}

/* ── Metric group slicer pills ─────────────────────────────────────────────── */
.cmp-grp-pill{padding:3px 9px;border-radius:12px;font-size:10px;font-weight:700;cursor:pointer;border:1px solid var(--bd);background:var(--su);color:var(--mu);user-select:none;transition:.15s;white-space:nowrap}
.cmp-grp-pill:hover{border-color:var(--b2);color:var(--t2)}
.cmp-grp-pill.on{color:#fff;border-color:transparent}
.cmp-grp-pill.on[data-grp="sales"]{background:var(--blu)}
.cmp-grp-pill.on[data-grp="bills"]{background:var(--grn)}
.cmp-grp-pill.on[data-grp="qty"]{background:var(--amb)}
.cmp-grp-pill.on[data-grp="abv"]{background:#c8901a}
.cmp-grp-pill.on[data-grp="upt"]{background:var(--pur)}
.cmp-grp-pill.on[data-grp="asp"]{background:#0891b2}

/* ── Kushals store analytics page ─────────────────────────────────────────── */
.ksh-map{height:420px;border-radius:10px;overflow:hidden;border:1px solid var(--bd)}
.ksh-stat{background:var(--su);border:1px solid var(--bd);border-radius:10px;padding:12px 16px;box-shadow:var(--sh);text-align:center;min-width:110px}
.ksh-stat-num{font-size:30px;font-weight:800;font-family:var(--mo);color:var(--blu);line-height:1}
.ksh-stat-lbl{font-size:9px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--mu);margin-top:4px}
/* Kushals store-directory badges */
.ksh-type-badge{display:inline-block;padding:2px 8px;border-radius:5px;font-size:10px;font-weight:700;background:rgba(37,99,235,.1);color:var(--blu);border:1px solid rgba(37,99,235,.2);white-space:nowrap}
.ksh-hub-badge{display:inline-block;padding:2px 8px;border-radius:5px;font-size:10px;font-weight:700;white-space:nowrap}
.ksh-hub-badge.ksh-hub-hub,.ksh-hub-badge.ksh-hub-hub-store{background:var(--grnl);color:var(--grn);border:1px solid var(--grnb)}
.ksh-hub-badge.ksh-hub-outstation,.ksh-hub-badge.ksh-hub-out{background:var(--ambl);color:var(--amb);border:1px solid var(--ambb)}
.ksh-hub-badge:not(.ksh-hub-hub):not(.ksh-hub-hub-store):not(.ksh-hub-outstation):not(.ksh-hub-out){background:var(--s2);color:var(--t2);border:1px solid var(--bd)}
.ksh-cohort-lfl{display:inline-block;padding:2px 7px;border-radius:5px;font-size:10px;font-weight:700;background:var(--grnl);color:var(--grn);border:1px solid var(--grnb)}
.ksh-cohort-ly{display:inline-block;padding:2px 7px;border-radius:5px;font-size:10px;font-weight:700;background:rgba(37,99,235,.1);color:var(--blu);border:1px solid rgba(37,99,235,.2)}
.ksh-cohort-new{display:inline-block;padding:2px 7px;border-radius:5px;font-size:10px;font-weight:700;background:rgba(124,58,237,.1);color:#7c3aed;border:1px solid rgba(124,58,237,.25)}
