/* ═══════════════════════════════════════════════════════════════
   Candidate layer — extends production CSS in build_dashboard.py.
   Visual overhaul: light/dark theming, sidebar filters, underline
   tabs, cohort funnel redesign, improved readability.
   ═══════════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

/* ── 1. Light-mode token overrides ──────────────────────────── */
:root[data-theme="light"]{
  --bg:#f4f6f9;--card:#ffffff;--card2:#f0f2f6;--ink:#1a1e2a;--mut:#6b7385;
  --line:#d8dce6;--good:#1a9e6e;--warn:#c58a1e;--bad:#c94444;
  --accent:#3d7ce6;--ref:#9b5fbf;
}
@media(prefers-color-scheme:light){
  :root:not([data-theme="dark"]){
    --bg:#f4f6f9;--card:#ffffff;--card2:#f0f2f6;--ink:#1a1e2a;--mut:#6b7385;
    --line:#d8dce6;--good:#1a9e6e;--warn:#c58a1e;--bad:#c94444;
    --accent:#3d7ce6;--ref:#9b5fbf;
  }
}

/* ── 2. Base overrides ──────────────────────────────────────── */
body{
  font-family:'Inter',-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  font-variant-numeric:tabular-nums;
  -webkit-font-smoothing:antialiased;
  transition:background .25s ease,color .25s ease;
}

/* Scrollbar */
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}

/* ── 3. Header restructure ──────────────────────────────────── */
header{transition:background .25s ease,border-color .25s ease}
header .hdin{
  position:relative;padding-right:26px;
  max-width:1440px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
}
.hdr-right{display:flex;align-items:center;gap:6px;flex-shrink:0}
header h1{color:#e8ecf3}
header .meta{color:#9aa8bd}
header .meta b,header .prepared-by{color:#dbe4f2}
header .prepared-by{font-weight:600}

/* ── 4. Mode switch (theme + language) ──────────────────────── */
.mode-switch{
  display:inline-flex;gap:2px;padding:3px;
  border:1px solid var(--line);border-radius:10px;
  background:var(--card2);
  transition:background .25s ease,border-color .25s ease;
}
.mode-switch button{
  border:0;border-radius:7px;padding:5px 10px;
  background:transparent;color:var(--mut);
  font:inherit;font-size:11.5px;font-weight:600;
  cursor:pointer;transition:background .15s,color .15s;
  display:flex;align-items:center;gap:4px;
}
.mode-switch button:hover{color:var(--ink)}
.mode-switch button.active{
  background:var(--accent);color:#fff;
  box-shadow:0 1px 4px rgba(0,0,0,.15);
}
.mode-switch .theme-icon{font-size:13px;line-height:1}
.switcher-sep{width:1px;background:var(--line);margin:2px 4px;transition:background .25s ease}

/* Legacy .lang-switch — keep for i18n.js compatibility */
.lang-switch{
  display:none;
}

/* Edition badge */
.candidate-badge{
  display:inline-block;margin-left:8px;padding:3px 8px;border-radius:12px;
  background:#221a2e;border:1px solid #4a3b63;color:#c58af0;
  font-size:10px;letter-spacing:.06em;vertical-align:2px;
  transition:background .25s ease,border-color .25s ease,color .25s ease;
}

/* ── 5. Sidebar layout ──────────────────────────────────────── */
.dashboard-layout{
  display:grid;grid-template-columns:1fr 260px;
  max-width:1440px;margin:0 auto;gap:0;
  min-height:calc(100vh - 56px);
}
.main-content{min-width:0}

.sidebar{
  position:sticky;top:56px;height:calc(100vh - 56px);
  overflow-y:auto;border-left:1px solid var(--line);
  background:var(--bg);padding:20px 18px;
  transition:background .25s ease,border-color .25s ease;
}
.sidebar-title{
  font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;
  color:var(--mut);margin-bottom:16px;padding-bottom:8px;
  border-bottom:1px solid var(--line);
  transition:color .25s ease,border-color .25s ease;
}
.filter-group{margin-bottom:16px}
.filter-label{
  display:block;font-size:10.5px;font-weight:700;text-transform:uppercase;
  letter-spacing:.06em;color:var(--mut);margin-bottom:5px;
  transition:color .25s ease;
}
.filter-select{
  width:100%;background:var(--card2);color:var(--ink);
  border:1px solid var(--line);border-radius:8px;
  padding:9px 12px;font:inherit;font-size:13px;font-weight:600;
  cursor:pointer;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%238b94a7'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;
  transition:background .2s ease,border-color .2s ease,color .2s ease;
}
.filter-select:hover{border-color:var(--accent)}
.filter-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(91,157,255,.15)}
.filter-select:disabled{opacity:.5;cursor:default}
.filter-sep{height:1px;background:var(--line);margin:18px 0;transition:background .25s ease}
.filter-hint{font-size:10.5px;color:var(--mut);line-height:1.5;transition:color .25s ease}
.filter-reset{
  display:block;width:100%;margin-top:12px;
  background:transparent;color:var(--accent);
  border:1px solid var(--accent);border-radius:8px;
  padding:8px;font:inherit;font-size:12px;font-weight:600;
  cursor:pointer;transition:background .15s,color .15s;
}
.filter-reset:hover{background:rgba(91,157,255,.08)}

/* Sidebar multi-select panels within sidebar */
.sidebar .ms{min-width:0;width:100%}
.sidebar .ms-btn{
  width:100%;background:var(--card2);color:var(--ink);
  border:1px solid var(--line);border-radius:8px;
  padding:9px 12px;font-size:13px;font-weight:600;
  cursor:pointer;text-align:left;font-family:inherit;
  display:flex;justify-content:space-between;align-items:center;gap:10px;
}
.sidebar .ms-btn:after{content:'▾';color:var(--mut);font-size:11px;flex:none}
.sidebar .ms.open .ms-btn{border-color:var(--accent)}
.sidebar .ms-panel{
  left:0;right:0;min-width:100%;
  background:var(--card);border:1px solid var(--accent);border-radius:8px;
  padding:9px 11px;box-shadow:0 10px 26px rgba(0,0,0,.25);
}

/* Mobile sidebar */
.sidebar-toggle{display:none}
.sidebar-overlay{display:none}

@media(max-width:960px){
  .dashboard-layout{grid-template-columns:1fr}
  .sidebar{
    position:fixed;right:-280px;top:56px;width:280px;
    height:calc(100vh - 56px);z-index:200;
    box-shadow:0 8px 32px rgba(0,0,0,.3);
    transition:right .3s ease,background .25s ease,border-color .25s ease;
  }
  .sidebar.open{right:0}
  .sidebar-toggle{
    display:flex;position:fixed;right:16px;bottom:20px;z-index:201;
    width:48px;height:48px;border-radius:50%;
    background:var(--accent);color:#fff;border:none;
    box-shadow:0 4px 16px rgba(0,0,0,.25);cursor:pointer;
    align-items:center;justify-content:center;font-size:20px;
  }
  .sidebar-overlay{
    display:none;position:fixed;inset:0;z-index:199;
    background:rgba(0,0,0,.4);
  }
  .sidebar.open~.sidebar-overlay{display:block}
}

/* Hide old top slicer bar — filters now in sidebar */
.slicer{display:none}

/* ── 6. Tab redesign (underline style) ──────────────────────── */
header .hdin,.tabs,.wrap{max-width:1440px}
.tabs{
  gap:4px;padding:14px 26px 0;
  border-bottom:1px solid var(--line);margin-bottom:18px;
  transition:border-color .25s ease;
}
.tab{
  background:transparent;color:var(--mut);
  border:none;border-bottom:2px solid transparent;
  padding:9px 16px 11px;border-radius:0;
  cursor:pointer;font:inherit;font-size:13px;font-weight:600;
  transition:color .15s,border-color .15s,background .15s;
  white-space:nowrap;
}
.tab:hover{color:var(--ink);background:color-mix(in srgb,var(--accent) 6%,transparent)}
.tab.active{color:var(--accent);border-bottom-color:var(--accent);background:transparent}

.wrap{padding-top:16px}

/* ── 7. Card & tile readability ─────────────────────────────── */
.card{
  border-radius:10px;padding:16px 17px;margin-bottom:14px;
  box-shadow:0 1px 3px rgba(0,0,0,.04);
  transition:background .25s ease,border-color .25s ease,box-shadow .25s ease;
}
.grid2,.cols2{gap:14px;margin-bottom:14px;align-items:start}
.grid2>.card,.cols2>.card{margin-bottom:0}
.candidate-ops-grid{
  display:grid;grid-template-columns:minmax(300px,.9fr) minmax(420px,1.1fr);
  gap:14px;margin-bottom:14px;
}
.candidate-ops-grid>.card{margin-bottom:0}
.pnote,.orient{margin-bottom:14px;transition:background .25s ease,border-color .25s ease,color .25s ease}

.tiles{gap:9px}
.tile{
  min-width:138px;padding:10px 12px;border-radius:8px;
  transition:background .25s ease,border-color .25s ease;
}
.tile .tv{font-size:24px;font-weight:800}
.tile .tl{transition:color .25s ease}
.tile .tn{transition:color .25s ease}

/* Charts: cap full-width charts */
svg.lc{display:block;width:min(100%,760px);height:auto;margin:2px auto 0}
.grid2 svg.lc,.cols2 svg.lc{width:100%;margin-top:2px}

table.mini th,table.mini td{padding-top:5px;padding-bottom:5px}

/* ── 8. Existing component overrides ────────────────────────── */
.slicers select:disabled{opacity:.58;cursor:default;color:var(--mut);-webkit-text-fill-color:var(--mut)}
.healthbtn{
  background:var(--card2);color:var(--ink);border:1px solid var(--line);
  border-radius:8px;padding:8px 11px;font-weight:700;cursor:pointer;
  transition:background .25s ease,border-color .25s ease,color .25s ease;
}
.healthbtn:hover{border-color:var(--accent)}
.healthbtn span{display:inline-block;min-width:18px;margin-left:5px;padding:1px 5px;border-radius:10px;background:#3a1f1f;color:#ff9a9a;font-size:10px}

.lang-zh{font-family:"Microsoft YaHei","PingFang SC","Noto Sans CJK SC",'Inter',Arial,sans-serif}

.weekviewbar,.levelbar,.healthviews{
  display:inline-flex;gap:4px;padding:4px;margin-bottom:14px;
  background:#111722;border:1px solid var(--line);border-radius:10px;
  transition:background .25s ease,border-color .25s ease;
}
.weekviewbar button,.levelbar button,.healthviews button{
  border:0;background:transparent;color:var(--mut);padding:7px 12px;
  border-radius:7px;font-weight:700;cursor:pointer;transition:background .15s,color .15s;
}
.weekviewbar button.active,.levelbar button.active,.healthviews button.active{background:#22303f;color:#9cd0ff}

.candidate-note{
  background:#221a2e;border:1px solid #4a3b63;color:#dcccf0;
  border-radius:9px;padding:10px 13px;margin-bottom:14px;font-size:12.5px;
  transition:background .25s ease,border-color .25s ease,color .25s ease;
}
.candidate-note b{color:#f3ecff}

.entityctl{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap}
.entityctl .fld{display:flex;flex-direction:column;gap:4px}
.entityctl label{font-size:11px;color:var(--mut);text-transform:uppercase;letter-spacing:.04em}
.entityctl select{
  background:var(--card2);color:var(--ink);border:1px solid var(--line);
  border-radius:8px;padding:8px 12px;min-width:260px;font-weight:600;
  transition:background .25s ease,border-color .25s ease,color .25s ease;
}
.profilehead{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap}
.profileid{display:flex;gap:13px;align-items:center}
.avatar{width:48px;height:48px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,#35506b,#4a3b63);color:#fff;font-weight:800;font-size:16px}
.profileid h2{margin:0;font-size:19px}.profileid p{margin:2px 0 0;color:var(--mut);font-size:12px}
.scopechip{
  padding:4px 10px;border-radius:14px;background:#22303f;color:#9cd0ff;
  border:1px solid #35506b;font-size:11px;font-weight:700;
  transition:background .25s ease,border-color .25s ease,color .25s ease;
}
.funnelrows{margin-top:8px}
.funnelrow{display:grid;grid-template-columns:105px 1fr 72px 70px;gap:9px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line);font-size:12.5px}
.funnelrow:last-child{border-bottom:0}
.funnelbar{height:15px;border-radius:4px;background:var(--card2);border:1px solid var(--line);overflow:hidden;transition:background .25s ease,border-color .25s ease}
.funnelbar span{display:block;height:100%;background:var(--accent)}
.funnelrow:nth-child(2) .funnelbar span{background:var(--warn)}.funnelrow:nth-child(3) .funnelbar span{background:var(--accent)}.funnelrow:nth-child(4) .funnelbar span{background:var(--good)}
.mixrow{display:grid;grid-template-columns:120px 1fr 62px;gap:10px;align-items:center;padding:6px 0;font-size:12px}
.mixbar{height:11px;border-radius:5px;background:var(--card2);border:1px solid var(--line);overflow:hidden;transition:background .25s ease,border-color .25s ease}
.mixbar span{display:block;height:100%;background:var(--accent)}
.coachbox{
  background:#221a2e;border:1px solid #4a3b63;border-left:4px solid var(--ref);
  border-radius:9px;padding:12px 14px;margin-top:12px;color:#dcccf0;
  font-size:12.5px;line-height:1.55;
  transition:background .25s ease,border-color .25s ease,color .25s ease;
}
.coachbox b{color:#f3ecff}
.queuebar{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.queuefilters{display:flex;gap:6px;flex-wrap:wrap}
.queuefilters button{
  border:1px solid var(--line);background:var(--card2);color:var(--mut);
  border-radius:16px;padding:6px 10px;cursor:pointer;font-size:11px;
  transition:background .15s,border-color .15s,color .15s;
}
.queuefilters button.active{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--card2))}
.queuesearch{
  background:var(--card2);color:var(--ink);border:1px solid var(--line);
  border-radius:8px;padding:7px 10px;min-width:210px;
  transition:background .25s ease,border-color .25s ease,color .25s ease;
}
.prioritydot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--warn);margin-right:6px}.prioritydot.urgent{background:var(--bad)}
.dhstat{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.dhstat .tile{min-width:0}
.refreshbridge{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center;text-align:center;margin:16px 0}
.refreshbridge .big{font-size:26px;font-weight:700}
.refreshbridge .arrow{color:var(--accent);font-size:24px}
.subscope{color:var(--accent);font-weight:600}
.perf-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:8px}.perf-head .sub{margin-bottom:0}
.perf-scroll{overflow-x:auto}
.perf-table{min-width:790px}
.perf-table thead th{padding-top:8px;padding-bottom:8px;border-bottom-color:var(--line)}
.perf-table tbody td{vertical-align:middle}
.perf-table tbody td:first-child{width:25%}
.perf-section th{padding:11px 8px 7px!important;background:var(--card2);border-bottom-color:var(--line)!important;color:var(--ink)!important;text-align:left!important}
.perf-section span{font-size:12.5px;text-transform:uppercase;letter-spacing:.045em;color:var(--accent)}
.perf-section small{display:block;margin-top:1px;color:var(--mut);font-size:10.5px;font-weight:500;text-transform:none;letter-spacing:0}
.perf-ref{display:block;margin-top:1px;color:var(--mut);font-size:9.5px;font-weight:500;white-space:normal}
.perf-actual,.perf-var{font-weight:800;white-space:nowrap}.perf-var small{display:block;color:inherit;font-size:9.5px;font-weight:600}
.perf-actual.good,.perf-var.good{color:var(--good)}.perf-actual.warn,.perf-var.warn{color:var(--warn)}.perf-actual.bad,.perf-var.bad{color:var(--bad)}
.perf-state{display:inline-flex;align-items:center;gap:6px;min-width:64px;font-size:10.5px;font-weight:800}.perf-state i{width:7px;height:7px;border-radius:50%;background:currentColor}
.perf-state.good{color:var(--good)}.perf-state.warn{color:var(--warn)}.perf-state.bad{color:var(--bad)}
.perf-state.neutral{color:var(--mut)}
.referral-team-card{margin-top:14px}
.referral-team-table{min-width:1040px}
.referral-team-table tbody td{vertical-align:middle}
.team-region{display:block;margin-top:2px;color:var(--mut);font-size:9.5px;font-weight:500}
.ref-variance{font-weight:800;white-space:nowrap}
.ref-variance.good{color:var(--good)}.ref-variance.warn{color:var(--warn)}.ref-variance.bad{color:var(--bad)}.ref-variance.neutral{color:var(--mut)}
.referral-break-grid{grid-template-columns:1fr;margin-top:14px}
.referral-break-card{min-width:0}
.ref-break-chart{
  margin:10px 0 14px;padding:10px 12px;
  background:var(--card2);border:1px solid var(--line);border-radius:9px;
  transition:background .25s ease,border-color .25s ease;
}
.ref-break-row{display:grid;grid-template-columns:128px minmax(110px,1fr) 58px;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line)}
.ref-break-row:last-child{border-bottom:0}
.ref-break-label b{display:block;font-size:11.5px}.ref-break-label span{display:block;margin-top:1px;color:var(--mut);font-size:9.5px}
.ref-break-bar{height:13px;overflow:hidden;background:var(--card2);border:1px solid var(--line);border-radius:5px;transition:background .25s ease,border-color .25s ease}
.ref-break-bar span{display:block;height:100%;min-width:0;border-radius:4px;background:var(--accent)}
.ref-break-bar .tone-1{background:var(--ref)}.ref-break-bar .tone-2{background:var(--warn)}.ref-break-bar .tone-3{background:var(--mut)}
.ref-break-row>strong{text-align:right;color:var(--accent);font-size:11px}
.referral-break-table{min-width:650px}
.cohort-quality{min-width:760px}

/* Old cohort maturity/leakage (still used as fallback) */
.cohort-maturity{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:12px}
.cohort-maturity>div,.cohort-leak{
  display:flex;flex-direction:column;gap:4px;padding:12px;
  background:var(--card2);border:1px solid var(--line);border-radius:8px;
  transition:background .25s ease,border-color .25s ease;
}
.cohort-maturity span,.cohort-leak span{color:var(--mut);font-size:10.5px;text-transform:uppercase;letter-spacing:.04em}
.cohort-maturity strong,.cohort-leak strong{font-size:20px;color:var(--ink);transition:color .25s ease}
.cohort-maturity small,.cohort-leak small{color:var(--mut);font-size:10px}
.cohort-leakage{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:12px}
.cohort-leak.largest{border-color:var(--warn);background:color-mix(in srgb,var(--warn) 8%,var(--card2))}
.cohort-leak.largest strong{color:var(--warn)}
.cohort-seller-grid{align-items:start}

/* ── 9. Cohort funnel redesign ──────────────────────────────── */

/* Stage cards row */
.funnel-stages{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;margin:16px 0 0;position:relative}
.funnel-stage{position:relative;padding:18px 16px 16px;text-align:center;transition:background .25s ease}
.funnel-stage:first-child{border-radius:10px 0 0 10px}
.funnel-stage:last-child{border-radius:0 10px 10px 0}
.funnel-stage .fs-num{font-size:28px;font-weight:800;line-height:1.2;margin-bottom:2px}
.funnel-stage .fs-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;opacity:.7}
.funnel-stage .fs-rate{display:inline-block;font-size:10px;font-weight:700;margin-top:6px;padding:2px 8px;border-radius:10px}
.funnel-stage:nth-child(1){background:color-mix(in srgb,var(--accent) 15%,var(--card))}
.funnel-stage:nth-child(1) .fs-num{color:var(--accent)}
.funnel-stage:nth-child(1) .fs-rate{background:color-mix(in srgb,var(--accent) 20%,transparent);color:var(--accent)}
.funnel-stage:nth-child(2){background:color-mix(in srgb,#7ab4ff 15%,var(--card))}
.funnel-stage:nth-child(2) .fs-num{color:#7ab4ff}
.funnel-stage:nth-child(2) .fs-rate{background:color-mix(in srgb,#7ab4ff 20%,transparent);color:#7ab4ff}
.funnel-stage:nth-child(3){background:color-mix(in srgb,var(--good) 15%,var(--card))}
.funnel-stage:nth-child(3) .fs-num{color:var(--good)}
.funnel-stage:nth-child(3) .fs-rate{background:color-mix(in srgb,var(--good) 20%,transparent);color:var(--good)}
.funnel-stage:nth-child(4){background:color-mix(in srgb,var(--warn) 15%,var(--card))}
.funnel-stage:nth-child(4) .fs-num{color:var(--warn)}
.funnel-stage:nth-child(4) .fs-rate{background:color-mix(in srgb,var(--warn) 20%,transparent);color:var(--warn)}

/* Drop-off connectors */
.funnel-connectors{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:4px 0 20px}
.funnel-connector{text-align:center;padding:6px}
.funnel-connector .fc-arrow{font-size:16px;color:var(--mut);margin-bottom:2px}
.funnel-connector .fc-drop{font-size:11px;font-weight:700;color:var(--bad)}
.funnel-connector .fc-label{font-size:9.5px;color:var(--mut);transition:color .25s ease}

/* Visual tapered funnel */
.funnel-visual{position:relative;margin:24px auto;max-width:600px}
.funnel-bar-row{display:flex;align-items:center;gap:16px;margin-bottom:6px}
.funnel-bar-label{width:80px;text-align:right;font-size:11px;font-weight:700;color:var(--mut);flex-shrink:0;transition:color .25s ease}
.funnel-bar-wrap{flex:1;position:relative;height:36px}
.funnel-bar{
  position:absolute;left:50%;top:0;height:100%;border-radius:6px;
  transition:width .8s cubic-bezier(.4,0,.2,1),transform .8s cubic-bezier(.4,0,.2,1);
  transform:translateX(-50%);
}
.funnel-bar-val{flex-shrink:0;font-size:13px;font-weight:800;white-space:nowrap;min-width:60px;text-align:right}
.funnel-bar.s1{background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 70%,transparent),var(--accent))}
.funnel-bar.s2{background:linear-gradient(90deg,color-mix(in srgb,#7ab4ff 70%,transparent),#7ab4ff)}
.funnel-bar.s3{background:linear-gradient(90deg,color-mix(in srgb,var(--good) 70%,transparent),var(--good))}
.funnel-bar.s4{background:linear-gradient(90deg,color-mix(in srgb,var(--warn) 70%,transparent),var(--warn))}

/* Leakage cards */
.leakage-viz{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}
.leak-card{
  padding:14px;border-radius:10px;background:var(--card2);
  border:1px solid var(--line);text-align:center;
  transition:background .25s ease,border-color .25s ease,transform .2s ease;
}
.leak-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,.12)}
.leak-card.worst{background:color-mix(in srgb,var(--warn) 8%,var(--card2));border-color:var(--warn)}
.leak-card .lk-from{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--mut);margin-bottom:4px;transition:color .25s ease}
.leak-card .lk-lost{font-size:22px;font-weight:800;color:var(--bad);margin-bottom:2px}
.leak-card.worst .lk-lost{color:var(--warn)}
.leak-card .lk-label{font-size:10.5px;color:var(--mut);transition:color .25s ease}
.leak-card .lk-rate{display:inline-block;margin-top:6px;font-size:10px;font-weight:700;padding:2px 8px;border-radius:10px;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}

/* Maturity gauges with donut rings */
.maturity-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}
.maturity-card{
  padding:16px;border-radius:10px;background:var(--card2);
  border:1px solid var(--line);text-align:center;
  transition:background .25s ease,border-color .25s ease;
}
.maturity-card .mc-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--mut);margin-bottom:8px;transition:color .25s ease}
.maturity-ring{position:relative;width:80px;height:80px;margin:0 auto 8px}
.maturity-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.maturity-ring .ring-bg{fill:none;stroke:var(--line);stroke-width:6;transition:stroke .25s ease}
.maturity-ring .ring-fill{fill:none;stroke-width:6;stroke-linecap:round;transition:stroke-dashoffset .8s ease}
.maturity-ring .ring-val{position:absolute;inset:0;display:grid;place-items:center;font-size:16px;font-weight:800;color:var(--ink);transition:color .25s ease}
.maturity-card .mc-detail{font-size:10px;color:var(--mut);margin-top:4px;transition:color .25s ease}

/* ── 10. Tab guide ──────────────────────────────────────────── */
.tab-guide-bar{display:flex;justify-content:flex-end;align-items:center;margin:0 0 10px}
.tab-guide-open{
  display:inline-flex;align-items:center;gap:6px;
  border:1px solid var(--line);background:var(--card2);color:var(--accent);
  border-radius:18px;padding:6px 12px;font-size:11.5px;font-weight:750;
  cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .15s ease;
}
.tab-guide-open::before{content:'?';display:grid;place-items:center;width:16px;height:16px;border-radius:50%;background:color-mix(in srgb,var(--accent) 15%,var(--card2));color:var(--accent);font-size:10px;font-weight:900}
.tab-guide-open:hover{border-color:var(--accent);transform:translateY(-1px)}
.tab-guide-open:focus-visible,.tab-guide-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.guide-open{overflow:hidden}
.tab-guide-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:22px}
.tab-guide-modal[hidden]{display:none}
.tab-guide-backdrop{position:absolute;inset:0;background:rgba(5,8,13,.78);backdrop-filter:blur(3px)}
.tab-guide-dialog{
  position:relative;width:min(620px,100%);max-height:min(760px,calc(100vh - 44px));
  overflow:auto;background:var(--card);border:1px solid var(--line);
  border-radius:14px;box-shadow:0 24px 70px rgba(0,0,0,.35);
  padding:22px 24px;color:var(--ink);
  transition:background .25s ease,border-color .25s ease;
}
.tab-guide-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.tab-guide-eyebrow{display:block;margin-bottom:4px;color:var(--accent);font-size:10px;font-weight:850;letter-spacing:.11em}
.tab-guide-title{margin:0;font-size:23px;line-height:1.25}
.tab-guide-close{border:1px solid var(--line);background:var(--card2);color:var(--mut);border-radius:8px;padding:7px 11px;font-size:11.5px;cursor:pointer;transition:background .25s ease,border-color .25s ease,color .25s ease}
.tab-guide-close:hover{border-color:var(--accent);color:var(--ink)}
.tab-guide-section{padding:15px 0 2px}
.tab-guide-section h3{margin:0 0 6px;color:var(--ink);font-size:13px}
.tab-guide-section p,.tab-guide-section li{color:var(--mut);font-size:12.5px;line-height:1.65}
.tab-guide-section p{margin:0}
.tab-guide-section ul{margin:2px 0 0;padding-left:19px}
.tab-guide-section li+li{margin-top:4px}
.lang-zh .tab-guide-section p,.lang-zh .tab-guide-section li{line-height:1.8}

/* ── 11. Light-mode overrides for hardcoded dark colors ─────── */
:root[data-theme="light"] .candidate-badge{background:#e8f0fd;border-color:#b8d4fa;color:#3d7ce6}
:root[data-theme="light"] .act0{background:#fdf0f0}
:root[data-theme="light"] .act0 .actt{color:#a03030}
:root[data-theme="light"] .act1{background:#fdf8ee}
:root[data-theme="light"] .act1 .actt{color:#8a6a20}
:root[data-theme="light"] .act .actd{color:#4a4e5a}
:root[data-theme="light"] .pnote{background:#e8f0fd;border-color:#b8d4fa;color:#2a4a7a}
:root[data-theme="light"] .pnote b{color:#1a1e2a}
:root[data-theme="light"] .tbar{background:#e8ecf3}
:root[data-theme="light"] .weekviewbar,
:root[data-theme="light"] .levelbar,
:root[data-theme="light"] .healthviews{background:#f0f2f6}
:root[data-theme="light"] .weekviewbar button.active,
:root[data-theme="light"] .levelbar button.active,
:root[data-theme="light"] .healthviews button.active{background:#e0ecff;color:#2a5caa}
:root[data-theme="light"] .scopechip{background:#e0ecff;color:#2a5caa;border-color:#b8d4fa}
:root[data-theme="light"] .coachbox{background:#f3ecfa;border-color:#d0b8e8;color:#5a3580}
:root[data-theme="light"] .coachbox b{color:#3a1a5a}
:root[data-theme="light"] .candidate-note{background:#f3ecfa;border-color:#d0b8e8;color:#5a3580}
:root[data-theme="light"] .candidate-note b{color:#3a1a5a}
:root[data-theme="light"] .healthbtn span{background:#fdf0f0;color:#c94444}
:root[data-theme="light"] .tab-guide-backdrop{background:rgba(0,0,0,.35)}
:root[data-theme="light"] .avatar{background:linear-gradient(145deg,#b8d4fa,#d0b8e8)}
:root[data-theme="light"] .tile.good{border-color:#b5e4d0;background:#f0faf5}
:root[data-theme="light"] .tile.warn{border-color:#f0d8a0;background:#fdf8ee}
:root[data-theme="light"] .tile.bad{border-color:#f0baba;background:#fdf0f0}
:root[data-theme="light"] .chip.money{background:#e8faf2;border-color:#b5e4d0;color:#1a5a3a}
:root[data-theme="light"] .chip.money .ct{color:#1a9e6e}
:root[data-theme="light"] .chip.money b{color:#0a3a2a}
:root[data-theme="light"] .chip.noise{background:#e8f0fd;border-color:#b8d4fa;color:#2a4a7a}
:root[data-theme="light"] .chip.noise .ct{color:#3d7ce6}
:root[data-theme="light"] .chip.noise b{color:#1a2a4a}
:root[data-theme="light"] .chip.cause{background:#f3ecfa;border-color:#d0b8e8;color:#5a3580}
:root[data-theme="light"] .chip.cause .ct{color:#9b5fbf}
:root[data-theme="light"] .chip.cause b{color:#3a1a5a}
:root[data-theme="light"] .chip.goal{background:#fdf8ee;border-color:#f0d8a0;color:#6a4a1a}
:root[data-theme="light"] .chip.goal .ct{color:#c58a1e}
:root[data-theme="light"] .chip.goal b{color:#4a3010}
:root[data-theme="light"] .chip.bench{background:#f0f2f6;border-color:#d8dce6;color:#4a4e5a}
:root[data-theme="light"] .chip.bench .ct{color:#6b7385}
:root[data-theme="light"] .chip.bench b{color:#1a1e2a}
:root[data-theme="light"] .story p{color:#4a4e5a}
:root[data-theme="light"] .story p b{color:#1a1e2a}
:root[data-theme="light"] .fdiagtxt{color:#4a4e5a}
:root[data-theme="light"] .fdiagtxt b{color:#1a1e2a}
:root[data-theme="light"] .risk{background:#fdf0f0;border-color:#f0baba;color:#7a2020}
:root[data-theme="light"] .flagbox{background:#fdf0f0;border-color:#f0baba;color:#7a2020}
:root[data-theme="light"] .status.behind{background:#fdf0f0;color:#c94444;border-color:#f0baba}
:root[data-theme="light"] .status.ahead{background:#f0faf5;color:#1a9e6e;border-color:#b5e4d0}
:root[data-theme="light"] .status.watch{background:#fdf8ee;color:#c58a1e;border-color:#f0d8a0}
:root[data-theme="light"] .status.flat{background:#f0f2f6;color:#6b7385;border-color:#d8dce6}
:root[data-theme="light"] .wkstate.closed{background:#f0faf5;color:#1a9e6e;border-color:#b5e4d0}
:root[data-theme="light"] .wkstate.open{background:#e0ecff;color:#2a5caa;border-color:#b8d4fa}
:root[data-theme="light"] .pill.starved{background:#fdf0f0;color:#c94444}
:root[data-theme="light"] .pill.over{background:#fdf8ee;color:#8a6a20}
:root[data-theme="light"] .pill.ok{background:#f0faf5;color:#1a9e6e}
:root[data-theme="light"] .tag-chronic{background:#fdf0f0;color:#c94444}
:root[data-theme="light"] .tag-oneoff{background:#e0ecff;color:#2a5caa}
:root[data-theme="light"] .tag-improving{background:#f0faf5;color:#1a9e6e}
:root[data-theme="light"] .tag-recurring{background:#fdf8ee;color:#8a6a20}
:root[data-theme="light"] .queuefilters button.active{background:#e0ecff;color:#2a5caa;border-color:#b8d4fa}
:root[data-theme="light"] .wins{background:#f0faf5;border-color:#b5e4d0}
:root[data-theme="light"] .wins .wt{color:#1a9e6e}
:root[data-theme="light"] .wins.empty{background:var(--card);border-color:var(--line)}
:root[data-theme="light"] .wins.empty .wt{color:var(--mut)}
:root[data-theme="light"] .gaps{background:#fdf0f0;border-color:#f0baba}
:root[data-theme="light"] .gaps .gt{color:#c94444}

/* Duplicate light overrides for system-preference users */
@media(prefers-color-scheme:light){
  :root:not([data-theme="dark"]) .candidate-badge{background:#e8f0fd;border-color:#b8d4fa;color:#3d7ce6}
  :root:not([data-theme="dark"]) .act0{background:#fdf0f0}
  :root:not([data-theme="dark"]) .act0 .actt{color:#a03030}
  :root:not([data-theme="dark"]) .act1{background:#fdf8ee}
  :root:not([data-theme="dark"]) .act1 .actt{color:#8a6a20}
  :root:not([data-theme="dark"]) .act .actd{color:#4a4e5a}
  :root:not([data-theme="dark"]) .pnote{background:#e8f0fd;border-color:#b8d4fa;color:#2a4a7a}
  :root:not([data-theme="dark"]) .pnote b{color:#1a1e2a}
  :root:not([data-theme="dark"]) .tbar{background:#e8ecf3}
  :root:not([data-theme="dark"]) .weekviewbar,
  :root:not([data-theme="dark"]) .levelbar,
  :root:not([data-theme="dark"]) .healthviews{background:#f0f2f6}
  :root:not([data-theme="dark"]) .weekviewbar button.active,
  :root:not([data-theme="dark"]) .levelbar button.active,
  :root:not([data-theme="dark"]) .healthviews button.active{background:#e0ecff;color:#2a5caa}
  :root:not([data-theme="dark"]) .scopechip{background:#e0ecff;color:#2a5caa;border-color:#b8d4fa}
  :root:not([data-theme="dark"]) .coachbox{background:#f3ecfa;border-color:#d0b8e8;color:#5a3580}
  :root:not([data-theme="dark"]) .coachbox b{color:#3a1a5a}
  :root:not([data-theme="dark"]) .candidate-note{background:#f3ecfa;border-color:#d0b8e8;color:#5a3580}
  :root:not([data-theme="dark"]) .candidate-note b{color:#3a1a5a}
  :root:not([data-theme="dark"]) .healthbtn span{background:#fdf0f0;color:#c94444}
  :root:not([data-theme="dark"]) .tab-guide-backdrop{background:rgba(0,0,0,.35)}
  :root:not([data-theme="dark"]) .avatar{background:linear-gradient(145deg,#b8d4fa,#d0b8e8)}
  :root:not([data-theme="dark"]) .tile.good{border-color:#b5e4d0;background:#f0faf5}
  :root:not([data-theme="dark"]) .tile.warn{border-color:#f0d8a0;background:#fdf8ee}
  :root:not([data-theme="dark"]) .tile.bad{border-color:#f0baba;background:#fdf0f0}
  :root:not([data-theme="dark"]) .chip.money{background:#e8faf2;border-color:#b5e4d0;color:#1a5a3a}
  :root:not([data-theme="dark"]) .chip.money .ct{color:#1a9e6e}
  :root:not([data-theme="dark"]) .chip.money b{color:#0a3a2a}
  :root:not([data-theme="dark"]) .chip.noise{background:#e8f0fd;border-color:#b8d4fa;color:#2a4a7a}
  :root:not([data-theme="dark"]) .chip.noise .ct{color:#3d7ce6}
  :root:not([data-theme="dark"]) .chip.noise b{color:#1a2a4a}
  :root:not([data-theme="dark"]) .chip.cause{background:#f3ecfa;border-color:#d0b8e8;color:#5a3580}
  :root:not([data-theme="dark"]) .chip.cause .ct{color:#9b5fbf}
  :root:not([data-theme="dark"]) .chip.cause b{color:#3a1a5a}
  :root:not([data-theme="dark"]) .chip.goal{background:#fdf8ee;border-color:#f0d8a0;color:#6a4a1a}
  :root:not([data-theme="dark"]) .chip.goal .ct{color:#c58a1e}
  :root:not([data-theme="dark"]) .chip.goal b{color:#4a3010}
  :root:not([data-theme="dark"]) .chip.bench{background:#f0f2f6;border-color:#d8dce6;color:#4a4e5a}
  :root:not([data-theme="dark"]) .chip.bench .ct{color:#6b7385}
  :root:not([data-theme="dark"]) .chip.bench b{color:#1a1e2a}
  :root:not([data-theme="dark"]) .story p{color:#4a4e5a}
  :root:not([data-theme="dark"]) .story p b{color:#1a1e2a}
  :root:not([data-theme="dark"]) .fdiagtxt{color:#4a4e5a}
  :root:not([data-theme="dark"]) .fdiagtxt b{color:#1a1e2a}
  :root:not([data-theme="dark"]) .risk{background:#fdf0f0;border-color:#f0baba;color:#7a2020}
  :root:not([data-theme="dark"]) .flagbox{background:#fdf0f0;border-color:#f0baba;color:#7a2020}
  :root:not([data-theme="dark"]) .status.behind{background:#fdf0f0;color:#c94444;border-color:#f0baba}
  :root:not([data-theme="dark"]) .status.ahead{background:#f0faf5;color:#1a9e6e;border-color:#b5e4d0}
  :root:not([data-theme="dark"]) .status.watch{background:#fdf8ee;color:#c58a1e;border-color:#f0d8a0}
  :root:not([data-theme="dark"]) .status.flat{background:#f0f2f6;color:#6b7385;border-color:#d8dce6}
  :root:not([data-theme="dark"]) .wkstate.closed{background:#f0faf5;color:#1a9e6e;border-color:#b5e4d0}
  :root:not([data-theme="dark"]) .wkstate.open{background:#e0ecff;color:#2a5caa;border-color:#b8d4fa}
  :root:not([data-theme="dark"]) .pill.starved{background:#fdf0f0;color:#c94444}
  :root:not([data-theme="dark"]) .pill.over{background:#fdf8ee;color:#8a6a20}
  :root:not([data-theme="dark"]) .pill.ok{background:#f0faf5;color:#1a9e6e}
  :root:not([data-theme="dark"]) .tag-chronic{background:#fdf0f0;color:#c94444}
  :root:not([data-theme="dark"]) .tag-oneoff{background:#e0ecff;color:#2a5caa}
  :root:not([data-theme="dark"]) .tag-improving{background:#f0faf5;color:#1a9e6e}
  :root:not([data-theme="dark"]) .tag-recurring{background:#fdf8ee;color:#8a6a20}
  :root:not([data-theme="dark"]) .queuefilters button.active{background:#e0ecff;color:#2a5caa;border-color:#b8d4fa}
  :root:not([data-theme="dark"]) .wins{background:#f0faf5;border-color:#b5e4d0}
  :root:not([data-theme="dark"]) .wins .wt{color:#1a9e6e}
  :root:not([data-theme="dark"]) .wins.empty{background:var(--card);border-color:var(--line)}
  :root:not([data-theme="dark"]) .wins.empty .wt{color:var(--mut)}
  :root:not([data-theme="dark"]) .gaps{background:#fdf0f0;border-color:#f0baba}
  :root:not([data-theme="dark"]) .gaps .gt{color:#c94444}
}

/* ── 12. Responsive ─────────────────────────────────────────── */
@media(max-width:1120px){
  header .hdin,.tabs,.wrap{max-width:100%}
}
@media(max-width:960px){
  .funnel-stages{grid-template-columns:repeat(2,1fr)}
  .funnel-connectors{grid-template-columns:1fr}
  .maturity-grid{grid-template-columns:1fr}
  .leakage-viz{grid-template-columns:1fr}
}
@media(max-width:900px){
  .candidate-ops-grid{grid-template-columns:1fr}
  .dhstat{grid-template-columns:1fr 1fr}
  .healthbtn{position:static;margin-top:10px}
  .funnelrow{grid-template-columns:85px 1fr 58px}
  .tabs{gap:4px}
  .tab{padding:8px 11px}
  .grid2,.cols2{margin-bottom:0}
  .grid2>.card,.cols2>.card{margin-bottom:14px}
  svg.lc{width:100%}
}
@media(max-width:620px){
  .dhstat{grid-template-columns:1fr}
  .entityctl select{min-width:190px}
  .refreshbridge{grid-template-columns:1fr}
  .refreshbridge .arrow{transform:rotate(90deg)}
  .ref-break-row{grid-template-columns:105px 1fr 50px}
  .cohort-maturity,.cohort-leakage{grid-template-columns:1fr}
  .tab-guide-modal{padding:12px}
  .tab-guide-dialog{max-height:calc(100vh - 24px);padding:18px}
  .tab-guide-title{font-size:20px}
}

/* ── Additions layered onto the canonical 592c9a29 UI ───────── */
.rank-sort{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.rank-sort button{border:1px solid var(--line);background:var(--card2);color:var(--mut);border-radius:16px;padding:6px 10px;font-size:10.5px;font-weight:700;cursor:pointer}
.rank-sort button.active{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--card2))}
.prediction-comment{margin-top:14px;padding:12px 14px;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:8px;background:var(--card2);font-size:12.5px;line-height:1.5}
.prediction-comment span{display:block;color:var(--accent);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px}
.regional-split{min-width:1260px}

/* ═══════════════════════════════════════════════════════════════
   Visual pass — appended after the canonical 592c9a29 stylesheet.
   Severity-aware performance colour, permanent region identity,
   sticky table context, collapsible secondary sections and a
   light-mode contrast pass. Presentation only.
   ═══════════════════════════════════════════════════════════════ */

/* ── 13. Severity scale ─────────────────────────────────────────
   Tier boundaries are unchanged (on/above = good, near = warn,
   short = bad). --sev only varies intensity inside the short tier
   so a mild shortfall reads amber and the worst reads deep red. */
:root{
  --sev-good:#4ad9a8;--sev-warn:#f0b35a;--sev-bad:#ff6b6b;
  --sev-good-fill:#43c59e;--sev-warn-fill:#e0a34e;--sev-bad-fill:#e05252;
  --region-eg:#00c2e0;--region-jo:#ef6fb4;
}
/* Existing status components adopt the same tokens so one scale reads across the page. */
.perf-actual.good,.perf-var.good,.perf-state.good,.ref-variance.good{color:var(--sev-good)}
.perf-actual.warn,.perf-var.warn,.perf-state.warn,.ref-variance.warn{color:var(--sev-warn)}
.perf-actual.bad,.perf-var.bad,.perf-state.bad,.ref-variance.bad{color:var(--sev-bad)}
/* The ramp is declared last so any element carrying .sev wins over the flat tier colour. */
.sev{font-weight:700}
.sev.good{color:var(--sev-good)}
.sev.warn{color:var(--sev-warn)}
.sev.bad{color:color-mix(in srgb,var(--sev-bad) calc(var(--sev,1) * 100%),var(--sev-warn))}
.sev.neutral{color:var(--mut)}
.tbarf.sev{transition:background .25s ease}
.tbarf.sev.good{background:var(--sev-good-fill)}
.tbarf.sev.warn{background:var(--sev-warn-fill)}
.tbarf.sev.bad{background:color-mix(in srgb,var(--sev-bad-fill) calc(var(--sev,1) * 100%),var(--sev-warn-fill))}
.teamrow .tval.sev{font-weight:800}

/* ── 14. Permanent region identity ──────────────────────────────
   North and South keep the same two colours in every direct
   comparison. Neither is a status colour, and each is paired with
   a text label so colour is never the only cue. */
.region-ident{font-weight:700}
.region-ident.region-eg{color:var(--region-eg)}
.region-ident.region-jo{color:var(--region-jo)}
.region-swatch{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:7px;vertical-align:0;background:currentColor}
.region-legend{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin-top:7px;font-size:11px;line-height:1.2}
.region-legend .region-ident{display:inline-flex;align-items:center}
tr.region-row>td:first-child{box-shadow:inset 3px 0 0 var(--line)}
tr.region-row.region-eg>td:first-child{box-shadow:inset 3px 0 0 var(--region-eg)}
tr.region-row.region-jo>td:first-child{box-shadow:inset 3px 0 0 var(--region-jo)}
.team-region.region-ident{font-weight:700;letter-spacing:.02em}

/* ── 15. Sticky table context ───────────────────────────────────
   .perf-scroll owns both axes, so the header sticks inside the
   real scroll container instead of scrolling away with the page. */
.perf-scroll{
  --perf-thead-h:34px;
  max-height:min(72vh,780px);
  overflow:auto;overscroll-behavior:contain;
  scrollbar-width:thin;
}
.perf-scroll::-webkit-scrollbar{width:9px;height:9px}
.perf-scroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:5px}
.perf-scroll::-webkit-scrollbar-thumb:hover{background:var(--mut)}
.perf-scroll table.mini thead th{
  position:sticky;top:0;z-index:4;
  background:var(--card);
  box-shadow:inset 0 -1px 0 var(--line);
}
.perf-scroll table.mini tbody tr.perf-section th{
  position:sticky;top:var(--perf-thead-h);z-index:3;
  box-shadow:inset 0 -1px 0 var(--line);
}
.perf-ref{font-size:10.5px;line-height:1.4}
.perf-var small{font-size:10.5px}

/* ── 16. Collapsible secondary sections ─────────────────────────
   The toggle takes its accessible name from the heading it folds,
   so no new translated copy is introduced. */
.cc-toggle{
  flex:none;display:grid;place-items:center;
  width:22px;height:22px;padding:0;margin-right:2px;
  border:1px solid var(--line);border-radius:6px;
  background:var(--card2);color:var(--mut);cursor:pointer;
  transition:background .15s,border-color .15s,color .15s;
}
.cc-toggle:hover{border-color:var(--accent);color:var(--accent)}
.cc-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.cc-caret{
  width:0;height:0;
  border-left:4.5px solid transparent;border-right:4.5px solid transparent;
  border-top:5.5px solid currentColor;
  transition:transform .2s ease;
}
.cc-toggle[aria-expanded="false"] .cc-caret{transform:rotate(-90deg)}
.cc-body[hidden]{display:none}
.card.cc-collapsed{padding-bottom:14px}
.card.cc-collapsed>p.sub,.card.cc-collapsed .perf-head .sub{margin-bottom:0}
.report>.rbar{cursor:pointer}
.report>.rbar:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:8px}

/* ── 17. Chart & density polish ─────────────────────────────────
   Adaptive x-axis label thinning is applied at runtime; these
   rules give the labels room and keep hover targets untouched. */
svg.lc .ax,svg.lc .wkndlab{pointer-events:none}
svg.lc .hit{cursor:crosshair}
.chartcap{line-height:1.5}

/* ── 18. Light-mode contrast pass ───────────────────────────────
   Muted text, controls, chart text and status colour are lifted to
   the same readable footing they already have in dark mode. */
:root[data-theme="light"]{
  --mut:#5a6275;--line:#d3d8e2;
  --good:#0e7a52;--warn:#8a5a00;--bad:#b83a3a;--accent:#2f6ad4;
  --sev-good:#0e7a52;--sev-warn:#8a5a00;--sev-bad:#b02525;
  --sev-good-fill:#12946a;--sev-warn-fill:#c58a1e;--sev-bad-fill:#c93b3b;
  --region-eg:#00708a;--region-jo:#a52a72;
}
:root[data-theme="light"] .wknd.full{opacity:.16}
:root[data-theme="light"] .wknd.partial{opacity:.085}
:root[data-theme="light"] .gl{stroke:#c9cfdb}
:root[data-theme="light"] table.mini th{color:#4d5568}
:root[data-theme="light"] .filter-hint,:root[data-theme="light"] .muted,:root[data-theme="light"] .sub{color:#5a6275}
:root[data-theme="light"] .tile .tl,:root[data-theme="light"] .tile .tn{color:#5a6275}
:root[data-theme="light"] .pill.over{background:#fdf6e8;color:#7a5200}
:root[data-theme="light"] .pill.starved{background:#fdeeee;color:#a32626}
:root[data-theme="light"] .pill.ok{background:#eef9f3;color:#0e7a52}
:root[data-theme="light"] .act1 .actt{color:#7a5200}
:root[data-theme="light"] .act0 .actt{color:#992a2a}
:root[data-theme="light"] .act .actd{color:#3f4553}
:root[data-theme="light"] .status.watch{color:#7a5200;border-color:#e8d3a0}
:root[data-theme="light"] .status.behind{color:#b02525;border-color:#ecb5b5}
:root[data-theme="light"] .status.ahead{color:#0e7a52;border-color:#a8ddc6}
:root[data-theme="light"] .tag-recurring{color:#7a5200}
:root[data-theme="light"] .tag-chronic{color:#b02525}
:root[data-theme="light"] .tag-improving{color:#0e7a52}
:root[data-theme="light"] .chip.money .ct{color:#0e7a52}
:root[data-theme="light"] .chip.goal .ct{color:#8a5a00}
:root[data-theme="light"] .chip.noise .ct{color:#2f6ad4}
:root[data-theme="light"] .chip.bench .ct{color:#5a6275}
:root[data-theme="light"] .funnel-connector .fc-drop{color:#b02525}
:root[data-theme="light"] .leak-card .lk-lost{color:#b02525}
:root[data-theme="light"] .leak-card .lk-rate{color:#2a5caa;background:#e8f0fd}
:root[data-theme="light"] .cc-toggle{background:#f0f2f6;color:#5a6275}
:root[data-theme="light"] .card{box-shadow:0 1px 3px rgba(16,24,40,.06)}

@media(prefers-color-scheme:light){
  :root:not([data-theme="dark"]){
    --mut:#5a6275;--line:#d3d8e2;
    --good:#0e7a52;--warn:#8a5a00;--bad:#b83a3a;--accent:#2f6ad4;
    --sev-good:#0e7a52;--sev-warn:#8a5a00;--sev-bad:#b02525;
    --sev-good-fill:#12946a;--sev-warn-fill:#c58a1e;--sev-bad-fill:#c93b3b;
    --region-eg:#00708a;--region-jo:#a52a72;
  }
  :root:not([data-theme="dark"]) .wknd.full{opacity:.16}
  :root:not([data-theme="dark"]) .wknd.partial{opacity:.085}
  :root:not([data-theme="dark"]) .gl{stroke:#c9cfdb}
  :root:not([data-theme="dark"]) table.mini th{color:#4d5568}
  :root:not([data-theme="dark"]) .filter-hint,:root:not([data-theme="dark"]) .muted,:root:not([data-theme="dark"]) .sub{color:#5a6275}
  :root:not([data-theme="dark"]) .tile .tl,:root:not([data-theme="dark"]) .tile .tn{color:#5a6275}
  :root:not([data-theme="dark"]) .pill.over{background:#fdf6e8;color:#7a5200}
  :root:not([data-theme="dark"]) .pill.starved{background:#fdeeee;color:#a32626}
  :root:not([data-theme="dark"]) .pill.ok{background:#eef9f3;color:#0e7a52}
  :root:not([data-theme="dark"]) .act1 .actt{color:#7a5200}
  :root:not([data-theme="dark"]) .act0 .actt{color:#992a2a}
  :root:not([data-theme="dark"]) .act .actd{color:#3f4553}
  :root:not([data-theme="dark"]) .status.watch{color:#7a5200;border-color:#e8d3a0}
  :root:not([data-theme="dark"]) .status.behind{color:#b02525;border-color:#ecb5b5}
  :root:not([data-theme="dark"]) .status.ahead{color:#0e7a52;border-color:#a8ddc6}
  :root:not([data-theme="dark"]) .tag-recurring{color:#7a5200}
  :root:not([data-theme="dark"]) .tag-chronic{color:#b02525}
  :root:not([data-theme="dark"]) .tag-improving{color:#0e7a52}
  :root:not([data-theme="dark"]) .chip.money .ct{color:#0e7a52}
  :root:not([data-theme="dark"]) .chip.goal .ct{color:#8a5a00}
  :root:not([data-theme="dark"]) .chip.noise .ct{color:#2f6ad4}
  :root:not([data-theme="dark"]) .chip.bench .ct{color:#5a6275}
  :root:not([data-theme="dark"]) .funnel-connector .fc-drop{color:#b02525}
  :root:not([data-theme="dark"]) .leak-card .lk-lost{color:#b02525}
  :root:not([data-theme="dark"]) .leak-card .lk-rate{color:#2a5caa;background:#e8f0fd}
  :root:not([data-theme="dark"]) .cc-toggle{background:#f0f2f6;color:#5a6275}
  :root:not([data-theme="dark"]) .card{box-shadow:0 1px 3px rgba(16,24,40,.06)}
}

/* ── 19. Narrow-width refinements ───────────────────────────────*/
@media(max-width:960px){
  .perf-scroll{max-height:min(64vh,620px)}
  .perf-head{flex-direction:column;align-items:stretch;gap:10px}
  .rank-sort{justify-content:flex-start}
  header .hdin{gap:10px}
  .hdr-right{flex-wrap:wrap;justify-content:flex-end}
}
@media(max-width:620px){
  .perf-scroll{max-height:min(58vh,520px)}
  .tiles{gap:8px}
  .tile{min-width:calc(50% - 4px)}
  .mode-switch button{padding:5px 8px;font-size:11px}
  .cc-toggle{width:26px;height:26px}
}

/* ── 20. Command Center trajectory block ────────────────────────
   The trajectory renderer writes its heading, description and chart
   straight into a two-column grid, which halved the chart and put
   the description beside the title. Restore a single full-width
   card so the month-long series has room to breathe. */
.grid2:has(>h3){
  display:block;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:10px;
  padding:16px 17px;
  margin-bottom:14px;
  box-shadow:0 1px 3px rgba(0,0,0,.04);
}
.grid2:has(>h3)>svg.lc{width:min(100%,760px);margin:8px auto 0}

/* ── 21. Light-mode contrast, part two ──────────────────────────
   Components that still carried the dark palette as hard-coded
   values: the pattern/legend callouts, the contribution bar
   troughs, and the forecast bar's inline SVG fills. */
:root[data-theme="light"] .prnote,
:root[data-theme="light"] .legendbox{background:#eef2f9;color:#3f4553;border-left-color:#2f6ad4}
:root[data-theme="light"] .prnote b{color:#1a1e2a}
:root[data-theme="light"] .cbar{background:#e8ecf3}
:root[data-theme="light"] .cbar .z{background:#8b93a5}
:root[data-theme="light"] svg.lc [fill="#0e1116"]{fill:#e8ecf3}
:root[data-theme="light"] svg.lc [stroke="#252c39"]{stroke:#c9cfdb}
:root[data-theme="light"] svg.lc [fill="#e8ecf3"]{fill:#2b3244}
:root[data-theme="light"] svg.lc [stroke="#8b94a7"]{stroke:#5a6275}
:root[data-theme="light"] svg.lc [fill="#2c6b57"]{fill:#4f9d84}

@media(prefers-color-scheme:light){
  :root:not([data-theme="dark"]) .prnote,
  :root:not([data-theme="dark"]) .legendbox{background:#eef2f9;color:#3f4553;border-left-color:#2f6ad4}
  :root:not([data-theme="dark"]) .prnote b{color:#1a1e2a}
  :root:not([data-theme="dark"]) .cbar{background:#e8ecf3}
  :root:not([data-theme="dark"]) .cbar .z{background:#8b93a5}
  :root:not([data-theme="dark"]) svg.lc [fill="#0e1116"]{fill:#e8ecf3}
  :root:not([data-theme="dark"]) svg.lc [stroke="#252c39"]{stroke:#c9cfdb}
  :root:not([data-theme="dark"]) svg.lc [fill="#e8ecf3"]{fill:#2b3244}
  :root:not([data-theme="dark"]) svg.lc [stroke="#8b94a7"]{stroke:#5a6275}
  :root:not([data-theme="dark"]) svg.lc [fill="#2c6b57"]{fill:#4f9d84}
}

/* Keep the original emphasis on components that now also carry the ramp. */
.perf-actual.sev,.perf-var.sev,.ref-variance.sev,.perf-state.sev{font-weight:800}

/* ═══════════════════════════════════════════════════════════════
   Second visual pass — executive Weekly Story, region comparison
   chips, chart legend/interaction states and maturity checkpoints.
   Appended after the canonical stylesheet. Presentation only.
   ═══════════════════════════════════════════════════════════════ */

/* ── 22. Weekly Story — executive narrative ─────────────────────
   Reading order is outcome → what/why/action → ranked drivers →
   who → collapsed detail. Hierarchy carries it; no ornament. */
.weekly-story-head{margin-bottom:14px}
.weekly-story-head .perf-head{margin-bottom:0}
.weekly-story-head .sub{margin-bottom:0}

.weekly-hero{
  display:grid;gap:7px;
  padding:22px 24px;
  border-left:4px solid var(--mut);
  margin-bottom:14px;
}
.weekly-hero .story-kicker{
  font-size:10px;font-weight:800;letter-spacing:.14em;
  text-transform:uppercase;color:var(--mut);
}
.weekly-hero .story-result{
  font-size:clamp(26px,3.2vw,36px);font-weight:800;
  line-height:1.1;letter-spacing:-.015em;
}
.weekly-hero>p{margin:0;font-size:13.5px;line-height:1.55;color:var(--mut)}
.weekly-hero .scopechip{justify-self:start;margin-top:3px}
.weekly-hero.good{border-left-color:var(--sev-good);background:color-mix(in srgb,var(--sev-good) 7%,var(--card))}
.weekly-hero.warn{border-left-color:var(--sev-warn);background:color-mix(in srgb,var(--sev-warn) 7%,var(--card))}
.weekly-hero.bad{border-left-color:var(--sev-bad);background:color-mix(in srgb,var(--sev-bad) 7%,var(--card))}
.weekly-hero.good .story-result{color:var(--sev-good)}
.weekly-hero.warn .story-result{color:var(--sev-warn)}
.weekly-hero.bad .story-result{color:color-mix(in srgb,var(--sev-bad) calc(var(--sev,1) * 100%),var(--sev-warn))}

/* What happened · Why · Recommended action — one row, equal weight */
.weekly-story-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;margin-bottom:14px;align-items:stretch;
}
.weekly-story-grid>.card{margin-bottom:0;display:flex;flex-direction:column;gap:8px}
.weekly-story-grid>.card>h3{
  margin:0;font-size:10.5px;font-weight:800;letter-spacing:.09em;
  text-transform:uppercase;color:var(--mut);
}
.weekly-story-grid>.card>p{margin:0;font-size:13.5px;line-height:1.6}
.weekly-story-grid>.card:last-child{border-left:3px solid var(--accent)}
.weekly-story-grid>.card:last-child>h3{color:var(--accent)}

/* Ranked drivers */
.weekly-driver-list{margin-top:10px}
.weekly-driver{
  display:grid;
  grid-template-columns:24px minmax(0,1fr) 104px minmax(120px,150px);
  gap:14px;align-items:center;
  padding:11px 12px;border-bottom:1px solid var(--line);
}
.weekly-driver:last-child{border-bottom:0}
.weekly-driver.primary{
  background:color-mix(in srgb,var(--accent) 7%,transparent);
  border-bottom-color:transparent;border-radius:9px;
}
.driver-rank{
  display:grid;place-items:center;width:24px;height:24px;
  border-radius:50%;background:var(--card2);border:1px solid var(--line);
  font-size:11px;font-weight:800;color:var(--mut);
}
.weekly-driver.primary .driver-rank{background:var(--accent);border-color:var(--accent);color:#fff}
.weekly-driver>div{min-width:0}
.weekly-driver>div>b{display:block;font-size:13px;line-height:1.35}
.weekly-driver>div>span{display:block;margin-top:2px;font-size:10.5px;color:var(--mut)}
.weekly-driver>strong{
  text-align:right;font-size:13.5px;font-weight:800;white-space:nowrap;
}
.weekly-driver>strong.up{color:var(--sev-good)}
.weekly-driver>strong.down{color:var(--sev-bad)}
.weekly-driver>em{
  text-align:right;font-style:normal;font-size:11.5px;
  line-height:1.4;color:var(--mut);
}

/* Who moved the BM position */
.weekly-movers .grid2{gap:14px;margin-bottom:0}
.weekly-movers h4{
  margin:0 0 7px;font-size:10.5px;font-weight:800;letter-spacing:.08em;
  text-transform:uppercase;color:var(--mut);
}
.weekly-movers ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.weekly-movers li{
  display:flex;justify-content:space-between;gap:12px;align-items:baseline;
  padding:9px 12px;border-radius:8px;font-size:12.5px;
  background:var(--card2);border:1px solid var(--line);border-left-width:3px;
}
.weekly-movers li>span{font-weight:700;white-space:nowrap}
.weekly-movers li.down{border-left-color:var(--sev-bad)}
.weekly-movers li.down>span{color:var(--sev-bad)}
.weekly-movers li.up{border-left-color:var(--sev-good)}
.weekly-movers li.up>span{color:var(--sev-good)}
.weekly-movers li.muted{background:transparent;border-style:dashed;border-left-width:1px;color:var(--mut)}

/* Prose-valued tiles step down so figures and words share one rhythm. */
.tile .tv.tv-long{font-size:19px;line-height:1.25}
.tile .tv.tv-longer{font-size:15.5px;line-height:1.3;font-weight:700}

/* Command Center headline-card contract: every KPI occupies the same grid
   cell and reserves identical title/value space. A one-line label such as
   Booking Rate therefore aligns with longer two-line metric labels. */
.headline-ten{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  grid-auto-rows:136px;align-items:stretch;gap:9px;
}
.headline-ten .tile{
  min-width:0;height:136px;box-sizing:border-box;overflow:hidden;
  display:grid;grid-template-rows:32px 29px minmax(0,1fr);align-content:start;
}
.headline-ten .tile .tl{
  height:32px;margin:0;line-height:1.35;overflow:hidden;overflow-wrap:anywhere;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;
}
.headline-ten .tile .tv{display:block;min-width:0;line-height:1.15;align-self:start}
.headline-ten .tile .tn{
  min-width:0;margin-top:3px;line-height:1.35;overflow:hidden;overflow-wrap:anywhere;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;
}
@media(max-width:760px){.headline-ten{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:430px){.headline-ten{grid-template-columns:1fr}}

/* ── 23. Region comparison — identity vs performance ────────────
   Region identity keeps its geography colour. Variance uses the same
   compact inline direction treatment as the week-over-week table. */
/* Command Center Action Center contract: three deterministic priorities share
   the headline panel's outer height. The compact rows expand only after the
   two panels stack on narrower screens. */
.candidate-ops-grid{align-items:stretch}
.candidate-ops-grid>.card{height:100%;box-sizing:border-box}
.action-center-card{display:flex;min-width:0;flex-direction:column;overflow:hidden}
.action-center-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}
.action-center-head>div{min-width:0}
.action-center-head h3{margin-bottom:3px}
.action-center-head .sub{margin:0;line-height:1.4}
.action-summary{flex:none;max-width:128px;padding:4px 8px;border:1px solid var(--line);border-radius:999px;color:var(--mut);font-size:10.5px;line-height:1.25;text-align:center}
.action-center-list{display:grid;grid-template-rows:repeat(var(--action-count),minmax(0,1fr));min-height:0;flex:1;gap:8px}
.action-alert{display:flex;min-width:0;min-height:0;flex-direction:column;justify-content:center;margin:0;padding:9px 11px;border:1px solid var(--line);border-left-width:3px;border-radius:8px;background:var(--card2);overflow:hidden}
.action-alert.action-critical{border-left-color:var(--bad);background:#241a1a}
.action-alert.action-attention{border-left-color:var(--warn);background:#241f17}
.action-alert.action-opportunity{border-left-color:var(--good);background:#17241f}
.action-alert.action-data{border-left-color:var(--accent);background:#17202b}
.action-alert-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;column-gap:8px;row-gap:2px;margin-bottom:5px}
.action-alert .actt{min-width:0;margin:0;font-size:12.5px;line-height:1.3;overflow-wrap:anywhere}
.action-type{justify-self:end;padding:2px 6px;border-radius:999px;background:rgba(255,255,255,.06);color:var(--mut);font-size:9.5px;font-weight:700;letter-spacing:.035em;text-transform:uppercase;white-space:nowrap}
.action-value{grid-column:1/-1;color:var(--ink);font-size:15px;line-height:1.25;overflow-wrap:anywhere}
.action-critical .action-value{color:var(--bad)}
.action-attention .action-value{color:var(--warn)}
.action-opportunity .action-value{color:var(--good)}
.action-data .action-value{color:var(--accent)}
.action-alert .actd{margin:2px 0 0;color:var(--ink);font-size:11.5px;line-height:1.38;overflow-wrap:anywhere}
.action-alert .actd>span{margin-right:5px;color:var(--mut);font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.action-alert .action-next{color:#83dec0}
:root[data-theme="light"] .action-alert.action-critical{background:#fff3f3}
:root[data-theme="light"] .action-alert.action-attention{background:#fff9eb}
:root[data-theme="light"] .action-alert.action-opportunity{background:#effaf5}
:root[data-theme="light"] .action-alert.action-data{background:#eef6ff}
:root[data-theme="light"] .action-alert .action-next{color:#17624d}
@media(prefers-color-scheme:light){
  :root:not([data-theme="dark"]) .action-alert.action-critical{background:#fff3f3}
  :root:not([data-theme="dark"]) .action-alert.action-attention{background:#fff9eb}
  :root:not([data-theme="dark"]) .action-alert.action-opportunity{background:#effaf5}
  :root:not([data-theme="dark"]) .action-alert.action-data{background:#eef6ff}
  :root:not([data-theme="dark"]) .action-alert .action-next{color:#17624d}
}
@media(max-width:900px){
  .candidate-ops-grid>.card{height:auto}
  .action-center-card{overflow:visible}
  .action-center-list{grid-template-rows:none}
  .action-alert{overflow:visible}
}
@media(max-width:520px){
  .action-center-head{flex-direction:column}
  .action-summary{max-width:none}
}

td.region-compare{vertical-align:middle;white-space:nowrap}
td.region-compare>b{display:inline;font-weight:700;line-height:1.3}
td.region-compare>.delta{
  display:inline-flex;align-items:center;gap:2px;
  margin-left:5px;padding:0;
  font-size:11px;font-weight:700;line-height:1.3;letter-spacing:0;
}
td.region-compare>.delta::before{font-size:8px;line-height:1}
td.region-compare.up>.delta{
  color:var(--sev-good);
}
td.region-compare.up>.delta::before{content:'▲'}
td.region-compare.down>.delta{
  color:var(--sev-bad);
}
td.region-compare.down>.delta::before{content:'▼'}
td.region-compare.flat>.delta{
  color:var(--mut);
}
td.region-compare.flat>.delta::before{content:'▬'}
.regional-split tbody td{padding-top:9px;padding-bottom:9px}
.regional-split tbody td:first-child{vertical-align:middle}

/* ── 24. Chart legends, points and tooltip ──────────────────────*/
.legend{
  display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;
  margin:2px 0 8px;font-size:11.5px;
}
.legend span{display:inline-flex;align-items:center;gap:7px;color:var(--ink);font-weight:600}
.legend i{width:15px;height:3px;border-radius:2px;margin-right:0;flex:none}
.slegend{gap:8px 18px}

svg.lc .hit{cursor:pointer;outline:none;stroke:transparent;stroke-width:2;transition:stroke .12s ease,fill .12s ease}
svg.lc .hit:hover{
  stroke:color-mix(in srgb,var(--accent) 55%,transparent);
  fill:color-mix(in srgb,var(--accent) 12%,transparent);
}
svg.lc .hit:focus-visible{
  stroke:var(--accent);stroke-width:2.5;
  fill:color-mix(in srgb,var(--accent) 16%,transparent);
}
svg.lc .hit[aria-pressed="true"]{
  stroke:var(--accent);stroke-width:2.5;
  fill:color-mix(in srgb,var(--accent) 22%,transparent);
}
svg.lc .pt{transition:stroke-width .12s ease}

#tt{border-radius:9px;padding:7px 11px;font-weight:600}
#tt .ts{font-weight:500}

/* ── 25. Maturity checkpoints — three equal cards ───────────────*/
.maturity-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:stretch}
.maturity-card{
  display:flex;flex-direction:column;align-items:center;
  padding:14px 10px 13px;
}
.maturity-card .mc-label{
  display:flex;align-items:center;justify-content:center;text-align:center;
  min-height:26px;margin-bottom:6px;font-size:9.5px;letter-spacing:.055em;
}
.maturity-ring{width:76px;height:76px;margin:0 auto 8px}
.maturity-ring .ring-bg{stroke:color-mix(in srgb,var(--mut) 26%,transparent);stroke-width:6.5}
.maturity-ring .ring-fill{stroke-width:6.5}
.maturity-ring .ring-val{font-size:17px}
.maturity-card .mc-detail{
  margin-top:auto;padding-top:2px;
  font-size:9.5px;line-height:1.45;text-align:center;
}

/* ── 26. Leads page — Allocation by Sales Rep reads as the closing block */
#p-leads>.card:last-of-type{
  margin-bottom:34px;
  border-top:2px solid color-mix(in srgb,var(--accent) 45%,var(--line));
}
#p-leads>.card:last-of-type>h3{margin-bottom:2px}
#p-leads>.card:last-of-type>.perf-scroll{margin-top:10px}

/* ── 27. Long-table context at narrow widths ────────────────────
   Once a table scrolls sideways the label column stays pinned, so
   a metric row is never read without its own name. */
.perf-scroll table.mini thead th:first-child{left:0;z-index:6}
.perf-scroll table.mini tbody td:first-child{
  position:sticky;left:0;z-index:2;background:var(--card);
}
.perf-scroll table.mini thead th:first-child{background:var(--card)}
.perf-scroll table.mini tbody tr.perf-section th{z-index:3}
@media(min-width:961px){
  /* Only pin horizontally where the table actually overflows. */
  .perf-scroll table.mini:not(.perf-table):not(.referral-team-table):not(.regional-split):not(.cohort-quality) tbody td:first-child{position:static}
}

/* ── 28. Narrow-width refinements, second pass ──────────────────*/
@media(max-width:1120px){
  .weekly-story-grid{grid-template-columns:1fr 1fr}
  .weekly-story-grid>.card:last-child{grid-column:1 / -1}
}
@media(max-width:900px){
  .weekly-story-grid{grid-template-columns:1fr}
  .weekly-story-grid>.card:last-child{grid-column:auto}
  .weekly-driver{grid-template-columns:24px minmax(0,1fr) auto;row-gap:6px}
  .weekly-driver>em{grid-column:2 / -1;text-align:left}
  .weekly-movers .grid2{grid-template-columns:1fr}
}
@media(max-width:760px){
  .maturity-grid{grid-template-columns:1fr}
  .maturity-card{flex-direction:row;align-items:center;gap:14px;text-align:left;padding:12px 14px}
  .maturity-card .mc-label{min-height:0;margin:0;text-align:left;justify-content:flex-start;order:1;flex:1}
  .maturity-ring{margin:0;order:0;width:60px;height:60px;flex:none}
  .maturity-card .mc-detail{margin:0;text-align:left;order:2;flex:1}
}
@media(max-width:620px){
  .weekly-hero{padding:17px 16px}
  .weekly-hero .story-result{font-size:24px}
  td.region-compare>.delta{font-size:9.5px}
}

/* ── 29. Pinned-column boundary and sticky section labels ───────
   A pinned label column needs an explicit edge, and a section
   heading must stay readable when the table is scrolled sideways. */
:root{--pin-edge:2px 0 5px rgba(0,0,0,.34)}
.perf-scroll table.mini tbody td:first-child[style],
.perf-scroll table.mini tbody td:first-child,
.perf-scroll table.mini thead th:first-child{box-shadow:var(--pin-edge)}
tr.region-row>td:first-child{box-shadow:inset 3px 0 0 var(--line),var(--pin-edge)}
tr.region-row.region-eg>td:first-child{box-shadow:inset 3px 0 0 var(--region-eg),var(--pin-edge)}
tr.region-row.region-jo>td:first-child{box-shadow:inset 3px 0 0 var(--region-jo),var(--pin-edge)}
.perf-scroll table.mini thead th:first-child{box-shadow:var(--pin-edge),inset 0 -1px 0 var(--line)}
.perf-scroll table.mini tbody tr.perf-section th>.perf-section-inner{
  position:sticky;left:0;display:inline-block;max-width:100%;
}
.perf-scroll table.mini tbody tr.perf-section th>.perf-section-inner>small{display:block}

/* Static first columns keep the plain header rule, no floating edge. */
@media(min-width:961px){
  .perf-scroll table.mini:not(.perf-table):not(.referral-team-table):not(.regional-split):not(.cohort-quality) tbody td:first-child{box-shadow:none}
}

/* ── 30. Light-mode pass for the second visual round ────────────*/
:root[data-theme="light"]{--pin-edge:2px 0 5px rgba(16,24,40,.10)}
:root[data-theme="light"] #tt{
  background:#ffffff;border-color:var(--accent);color:#1a1e2a;
  box-shadow:0 8px 22px rgba(16,24,40,.18);
}
:root[data-theme="light"] #tt .ts{color:#5a6275}
:root[data-theme="light"] .weekly-driver.primary{background:color-mix(in srgb,var(--accent) 8%,transparent)}
:root[data-theme="light"] .weekly-movers li{background:#f6f8fc}
:root[data-theme="light"] .driver-rank{background:#eef1f7}
:root[data-theme="light"] .maturity-ring .ring-bg{stroke:#d9dfea}
:root[data-theme="light"] .perf-scroll table.mini tbody td:first-child,
:root[data-theme="light"] .perf-scroll table.mini thead th:first-child{background:var(--card)}

@media(prefers-color-scheme:light){
  :root:not([data-theme="dark"]){--pin-edge:2px 0 5px rgba(16,24,40,.10)}
  :root:not([data-theme="dark"]) #tt{
    background:#ffffff;border-color:var(--accent);color:#1a1e2a;
    box-shadow:0 8px 22px rgba(16,24,40,.18);
  }
  :root:not([data-theme="dark"]) #tt .ts{color:#5a6275}
  :root:not([data-theme="dark"]) .weekly-driver.primary{background:color-mix(in srgb,var(--accent) 8%,transparent)}
  :root:not([data-theme="dark"]) .weekly-movers li{background:#f6f8fc}
  :root:not([data-theme="dark"]) .driver-rank{background:#eef1f7}
  :root:not([data-theme="dark"]) .maturity-ring .ring-bg{stroke:#d9dfea}
  :root:not([data-theme="dark"]) .perf-scroll table.mini tbody td:first-child,
  :root:not([data-theme="dark"]) .perf-scroll table.mini thead th:first-child{background:var(--card)}
}

/* A stretched flex column must not stretch a pill-shaped chip. */
@media(max-width:960px){
  .perf-head{align-items:flex-start}
  .perf-head>.scopechip,.perf-head>.rank-sort{flex:none}
}

/* ── 31. Accessible accent for white-on-accent surfaces ─────────
   The mid-blue accent reads at 2.7:1 behind white label text. A
   deeper companion tone keeps the accent family and clears 4.5:1. */
:root{--accent-strong:#3a6cc2}
:root[data-theme="light"]{--accent-strong:#2f6ad4}
@media(prefers-color-scheme:light){
  :root:not([data-theme="dark"]){--accent-strong:#2f6ad4}
}
.mode-switch button.active,
.sidebar-toggle,
.weekly-driver.primary .driver-rank{background:var(--accent-strong)}
.mode-switch button.active{border:1px solid var(--accent-strong)}

/* 32. Lead Performance by Channel conditional formatting.
   Green = benchmark/leader, yellow = near benchmark, red = shortfall. */
.channel-performance{min-width:1080px}
.channel-performance td.channel-cf>span{color:var(--cf-color);font-weight:800;white-space:nowrap}
.channel-cf.good{--cf-color:var(--good)}
.channel-cf.warn{--cf-color:var(--warn)}
.channel-cf.bad{--cf-color:var(--bad)}
.channel-format-legend{display:flex;align-items:center;flex-wrap:wrap;gap:7px 14px;margin:10px 0 12px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card2);color:var(--mut);font-size:10px}
.channel-format-legend span{display:inline-flex;align-items:center;gap:6px}
.channel-format-legend i{width:9px;height:9px;border-radius:3px;background:currentColor}
.channel-format-legend .good{color:var(--good)}
.channel-format-legend .warn{color:var(--warn)}
.channel-format-legend .bad{color:var(--bad)}

/* 33. Maturity-safe, drillable funnel loss trend. */
.funnel-loss-trend .perf-head{align-items:flex-start}
.loss-controls{display:grid;grid-template-columns:auto minmax(300px,1fr) minmax(180px,.65fr);gap:12px;margin:16px 0;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--card2)}
.loss-control,.loss-context{display:flex;flex-direction:column;gap:6px;min-width:0}
.loss-control>span,.loss-context>span{color:var(--mut);font-size:9.5px;font-weight:750;letter-spacing:.055em;text-transform:uppercase}
.loss-context strong{overflow:hidden;color:var(--ink);font-size:11.5px;line-height:26px;text-overflow:ellipsis;white-space:nowrap}
.loss-segments{display:flex;align-items:center;gap:3px;padding:2px;border:1px solid var(--line);border-radius:8px;background:var(--card)}
.loss-segments button{min-height:26px;padding:4px 10px;border:0;border-radius:6px;background:transparent;color:var(--mut);font:inherit;font-size:10.5px;font-weight:750;cursor:pointer;transition:background .15s,color .15s,box-shadow .15s}
.loss-segments button:hover:not(:disabled){color:var(--ink);background:color-mix(in srgb,var(--accent) 8%,var(--card))}
.loss-segments button.active{color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--card));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 40%,transparent)}
.loss-segments button:disabled{cursor:not-allowed;opacity:.38}
.loss-segments button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.loss-latest{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 12px}
.loss-latest-item{position:relative;display:grid;grid-template-columns:1fr auto;gap:3px 8px;min-height:70px;padding:10px 11px 9px 14px;border:1px solid var(--line);border-radius:9px;background:var(--card2);overflow:hidden}
.loss-latest-item::before{content:'';position:absolute;inset:0 auto 0 0;width:3px;background:var(--loss-color)}
.loss-latest-item>span{align-self:center;color:var(--mut);font-size:10px;font-weight:700;line-height:1.3}
.loss-latest-item>strong{align-self:center;color:var(--ink);font-size:17px;line-height:1}
.loss-latest-item>small{grid-column:1/-1;font-size:9.5px;font-weight:700}
.loss-latest-item>small.improve{color:var(--good)}
.loss-latest-item>small.decline{color:var(--bad)}
.loss-latest-item>small.flat{color:var(--mut)}
.loss-chart{padding:10px 10px 2px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--card2) 72%,transparent);overflow:hidden}
.loss-chart .legend{margin:0 2px 4px}
.loss-chart svg.lc{min-height:270px}
.loss-chart .loss-hit{cursor:zoom-in}
.loss-empty{margin:18px 0;padding:18px;border:1px dashed var(--line);border-radius:10px;text-align:center}
.funnel-loss-trend .chartcap{margin:10px 0 0;color:var(--mut);font-size:10.5px}
@media(max-width:960px){
  .loss-controls{grid-template-columns:1fr 1fr}
  .loss-context{grid-column:1/-1}
  .loss-latest{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  .loss-controls,.loss-latest{grid-template-columns:1fr}
  .loss-context{grid-column:auto}
  .loss-segments{overflow-x:auto}
  .loss-segments button{flex:1;white-space:nowrap}
}

/* 34. Synchronized funnel-loss small multiples. */
.loss-small-multiples{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.loss-mini{min-width:0;padding:12px 12px 6px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--card2) 72%,transparent);overflow:hidden}
.loss-mini-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;min-height:45px;margin:0 2px 3px}
.loss-mini-title{display:flex;align-items:center;min-width:0;gap:7px}
.loss-mini-title i{flex:0 0 auto;width:18px;height:3px;border-radius:2px;background:var(--loss-color)}
.loss-mini-title h4{margin:0;color:var(--ink);font-size:11.5px;font-weight:750;line-height:1.3}
.loss-mini-head>strong{align-self:center;color:var(--ink);font-size:19px;line-height:1}
.loss-mini-head>small{grid-column:1/-1;font-size:9.5px;font-weight:700}
.loss-mini-head>small.improve{color:var(--good)}
.loss-mini-head>small.decline{color:var(--bad)}
.loss-mini-head>small.flat{color:var(--mut)}
.loss-mini-chart{min-width:0;overflow:hidden}
.loss-mini-chart svg.lc{display:block;width:100%;min-height:205px}
.loss-mini-chart .loss-hit{cursor:zoom-in}
@media(max-width:900px){
  .loss-small-multiples{grid-template-columns:1fr}
}
@media(max-width:620px){
  .loss-mini{padding-inline:8px}
  .loss-mini-head{margin-inline:4px}
}

/* 35. Apache ECharts visual pilot (testing branch).
   The chart canvases inherit the dashboard palette and remain secondary to
   the audited tables, which continue to carry the exact values. */
.team-viz-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}
.echart-panel{min-width:0;padding:12px 12px 4px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--card2) 74%,transparent);overflow:hidden}
.echart-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin:0 2px 2px}
.echart-panel-head>div{min-width:0}
.echart-panel h4{margin:0;color:var(--ink);font-size:12px;font-weight:800;line-height:1.35}
.echart-panel p{margin:4px 0 0;color:var(--mut);font-size:10px;line-height:1.45}
.candidate-chart-control{display:flex;flex:0 0 auto;flex-direction:column;gap:4px;min-width:150px;color:var(--mut);font-size:9px;font-weight:750;text-transform:uppercase;letter-spacing:.04em}
.candidate-chart-control select{width:100%;min-height:31px;padding:5px 26px 5px 8px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);font-size:10px;font-weight:700;text-transform:none;letter-spacing:0}
.candidate-chart-control-stack{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.team-contribution-section{margin:14px 0 2px;padding-top:13px;border-top:1px solid var(--line)}
.team-contribution-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:9px}
.team-contribution-grid.single{grid-template-columns:minmax(0,620px);justify-content:center}
.candidate-echart{display:block;width:100%;min-width:0}
.echart-channel{margin-top:14px}
.maturity-chart-wrap{margin:10px 0 2px;padding:4px 8px 0;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--card2) 74%,transparent)}
:root[data-theme="light"] .echart-panel,
:root[data-theme="light"] .maturity-chart-wrap{background:#f7f9fd}
@media(prefers-color-scheme:light){
  :root:not([data-theme="dark"]) .echart-panel,
  :root:not([data-theme="dark"]) .maturity-chart-wrap{background:#f7f9fd}
}
@media(max-width:1000px){
  .team-viz-grid,.team-contribution-grid{grid-template-columns:1fr}
  .team-contribution-grid.single{grid-template-columns:1fr}
}
@media(max-width:620px){
  .echart-panel{padding-inline:7px}
  .echart-panel-head{flex-direction:column;gap:6px}
  .echart-panel-head>.scopechip{align-self:flex-start}
  .candidate-chart-control-stack{align-items:flex-start;justify-content:flex-start}
  .candidate-chart-control{min-width:min(240px,100%)}
  .candidate-echart{min-width:520px}
  .echart-panel,.maturity-chart-wrap,.team-contribution-section{overflow-x:auto}
}

/* 36. Leadership forecast bridge.
   Banked revenue, expected remainder and the target gap share one scale so the
   business position reads before the supporting forecast detail. */
.forecast-bridge-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.forecast-bridge-head>div{min-width:0}.forecast-bridge-head h3{margin-bottom:5px}.forecast-bridge-head .sub{margin-bottom:0}
.forecast-bridge-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:17px}
.forecast-bridge-kpis>div{display:grid;align-content:start;min-height:78px;padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:var(--card2)}
.forecast-bridge-kpis span{color:var(--mut);font-size:9.5px;font-weight:750;letter-spacing:.025em}
.forecast-bridge-kpis strong{margin-top:5px;color:var(--ink);font-size:19px;line-height:1.05}
.forecast-bridge-kpis small{margin-top:6px;color:var(--mut);font-size:9.5px;line-height:1.25}
.forecast-bridge-kpis .forecast-primary{border-color:color-mix(in srgb,var(--accent) 50%,var(--line));background:color-mix(in srgb,var(--accent) 9%,var(--card2))}
.forecast-bridge-kpis .forecast-primary strong{color:var(--accent)}
.forecast-bridge-kpis .forecast-gap{border-color:color-mix(in srgb,var(--bad) 48%,var(--line));background:color-mix(in srgb,var(--bad) 8%,var(--card2))}
.forecast-bridge-kpis .forecast-gap strong{color:var(--bad)}
.forecast-bridge-kpis .forecast-ahead{border-color:color-mix(in srgb,var(--good) 48%,var(--line));background:color-mix(in srgb,var(--good) 8%,var(--card2))}
.forecast-bridge-kpis .forecast-ahead strong{color:var(--good)}
.forecast-bridge-visual{padding:12px 14px 11px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--card2) 70%,transparent)}
.forecast-bridge-scale{position:relative;height:21px;color:var(--mut);font-size:9px;font-weight:750}
.forecast-marker-label{position:absolute;bottom:4px;transform:translateX(-50%);color:var(--accent);white-space:nowrap}
.forecast-target-label{position:absolute;right:0;bottom:4px;color:var(--warn);white-space:nowrap}
.forecast-bridge-track{position:relative;display:flex;width:100%;height:20px;border:1px solid var(--line);border-radius:6px;background:var(--bg);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--line) 35%,transparent);overflow:visible}
.forecast-bridge-track>span{display:block;height:100%}.forecast-banked{border-radius:5px 0 0 5px;background:var(--good)}
.forecast-projected{background:color-mix(in srgb,var(--good) 53%,var(--card))}.forecast-shortfall{border-radius:0 5px 5px 0;background:color-mix(in srgb,var(--bad) 30%,var(--card))}
.forecast-point,.forecast-target{position:absolute;z-index:2;top:-4px;bottom:-4px;width:2px;transform:translateX(-1px);border-radius:2px;background:var(--accent)}
.forecast-target{width:1px;background:var(--warn);box-shadow:0 0 0 1px color-mix(in srgb,var(--warn) 18%,transparent)}
.forecast-range-track{position:relative;height:20px;margin-top:3px}
.forecast-range-line{position:absolute;top:8px;height:2px;background:var(--mut)}
.forecast-range-line::before,.forecast-range-line::after{content:'';position:absolute;top:-4px;width:1px;height:10px;background:var(--mut)}
.forecast-range-line::before{left:0}.forecast-range-line::after{right:0}.forecast-range-track>i{position:absolute;top:5px;width:8px;height:8px;transform:translateX(-4px);border:2px solid var(--card);border-radius:50%;background:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.forecast-bridge-legend{display:flex;align-items:center;flex-wrap:wrap;gap:7px 14px;color:var(--mut);font-size:9.5px}
.forecast-bridge-legend>span{display:inline-flex;align-items:center;gap:6px}.forecast-bridge-legend i{width:10px;height:8px;border-radius:2px}.forecast-bridge-legend i.banked{background:var(--good)}
.forecast-bridge-legend i.projected{background:color-mix(in srgb,var(--good) 53%,var(--card))}.forecast-bridge-legend i.shortfall{background:color-mix(in srgb,var(--bad) 40%,var(--card))}
.forecast-range-copy{margin-left:auto}.forecast-range-copy b{color:var(--ink)}
@media(max-width:820px){.forecast-bridge-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.forecast-range-copy{flex-basis:100%;margin-left:0}}
@media(max-width:560px){.forecast-bridge-head{flex-direction:column}.forecast-bridge-head>.scopechip{align-self:flex-start}.forecast-bridge-kpis{grid-template-columns:1fr 1fr}.forecast-bridge-kpis strong{font-size:16px}.forecast-bridge-visual{padding-inline:9px}.forecast-marker-label{display:none}}

/* Testing visual pilot: give the combined time-series enough horizontal room
   for three unit-specific axes without changing any global scale or width. */
.grid2>[data-cc-sec="gmv-driver-chart"],
.grid2>[data-cc-sec="funnel-volume-chart"]{grid-column:1 / -1}

/* Keep the pilot charts usable on a phone without forcing the entire page to
   the desktop chart width. The card stays inside the mobile grid and the
   chart itself remains horizontally scrollable so all three axes stay legible. */
@media(max-width:620px){
  .grid2{grid-template-columns:minmax(0,1fr)!important}
  .grid2>[data-cc-sec="gmv-driver-chart"],
  .grid2>[data-cc-sec="funnel-volume-chart"],
  [data-cc-sec="cc-gmv-driver-chart"]{min-width:0;overflow-x:auto}
}

/* 37. Next-month operating forecast (Leadership testing pilot). */
.tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin}
.tab{padding-inline:12px}

/* Platform release notes. The release record is static product metadata;
   daily data refreshes reuse it without changing the version. */
.platform-release-button{
  display:grid;grid-template-columns:auto auto;grid-template-areas:"label version" "date date";
  align-items:center;gap:1px 6px;min-height:38px;padding:5px 10px;border:1px solid color-mix(in srgb,var(--accent) 38%,var(--line));
  border-radius:9px;background:color-mix(in srgb,var(--accent) 8%,var(--card2));color:var(--ink);cursor:pointer;text-align:left;
}
.platform-release-button span{grid-area:label;color:var(--mut);font-size:9.5px;font-weight:750;letter-spacing:.04em;text-transform:uppercase}
.platform-release-button strong{grid-area:version;color:var(--accent);font-size:12px}
.platform-release-button em{grid-area:date;color:var(--mut);font-size:9px;font-style:normal}
.platform-release-button:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 13%,var(--card2))}
.platform-release-button:focus-visible,.release-notes-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.release-notes-shell{position:fixed;inset:0;z-index:1200}
.release-notes-shell[hidden]{display:none}
.release-notes-backdrop{position:absolute;inset:0;background:rgba(4,7,12,.76);backdrop-filter:blur(3px)}
.release-notes-dialog{position:absolute;inset:0 0 0 auto;width:min(860px,92vw);overflow:auto;border-left:1px solid var(--line);background:var(--bg);box-shadow:-24px 0 70px rgba(0,0,0,.32)}
body.release-notes-open{overflow:hidden}
.release-notes-head{display:flex;justify-content:space-between;gap:24px;padding:30px 34px 24px;border-bottom:1px solid var(--line);background:linear-gradient(140deg,color-mix(in srgb,var(--accent) 9%,var(--card)),var(--card))}
.release-notes-eyebrow{display:block;margin-bottom:8px;color:var(--accent);font-size:10px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.release-notes-head h2{margin:0;color:var(--ink);font-size:27px;line-height:1.2}
.release-notes-head p{max-width:690px;margin:9px 0 0;color:var(--mut);font-size:13px;line-height:1.6}
.release-notes-close{flex:0 0 36px;width:36px;height:36px;border:1px solid var(--line);border-radius:10px;background:var(--card2);color:var(--ink);font-size:24px;line-height:1;cursor:pointer}
.release-notes-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;border-bottom:1px solid var(--line);background:var(--line)}
.release-notes-summary>div{padding:15px 20px;background:var(--card)}
.release-notes-summary span{display:block;margin-bottom:4px;color:var(--mut);font-size:9.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.release-notes-summary strong{color:var(--ink);font-size:12.5px}
.release-notes-content{padding:25px 34px 34px}
.release-notes-section-head{display:flex;align-items:center;gap:9px;margin-bottom:13px;color:var(--ink);font-size:15px;font-weight:850}
.release-notes-section-head strong{display:grid;place-items:center;min-width:22px;height:22px;border-radius:999px;background:color-mix(in srgb,var(--accent) 15%,var(--card2));color:var(--accent);font-size:10px}
.release-change-card{display:grid;grid-template-columns:minmax(230px,38%) 1fr;gap:20px;margin-bottom:16px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.release-change-card:not(:has(.release-change-media)){grid-template-columns:1fr}
.release-change-media{align-self:start;margin:0;overflow:hidden;border:1px solid var(--line);border-radius:9px;background:var(--card2)}
.release-change-media img{display:block;width:100%;height:150px;object-fit:cover;object-position:top left}
.release-change-media figcaption{padding:7px 9px;color:var(--mut);font-size:9.5px}
.release-change-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}
.release-change-meta span{color:var(--accent);font-size:9.5px;font-weight:850;letter-spacing:.07em;text-transform:uppercase}
.release-change-meta em{color:var(--mut);font-size:9.5px;font-style:normal}
.release-change-copy h3{margin:0;color:var(--ink);font-size:17px}
.release-change-copy>p{margin:7px 0 12px;color:var(--mut);font-size:12px;line-height:1.55}
.release-change-copy dl{display:grid;gap:8px;margin:0}
.release-change-copy dl>div{padding:9px 11px;border-left:3px solid color-mix(in srgb,var(--accent) 55%,var(--line));border-radius:0 7px 7px 0;background:var(--card2)}
.release-change-copy dt{margin-bottom:3px;color:var(--mut);font-size:9.5px;font-weight:800;text-transform:uppercase}
.release-change-copy dd{margin:0;color:var(--ink);font-size:11.5px;line-height:1.45}
.release-empty{padding:20px;border:1px dashed var(--line);border-radius:11px;background:var(--card)}
.release-empty h3{margin:0 0 6px;font-size:15px}.release-empty p{margin:0;color:var(--mut);font-size:12px;line-height:1.5}
.release-history{margin-top:22px;border-top:1px solid var(--line);padding-top:18px}
.release-history summary{color:var(--ink);font-size:13px;font-weight:800;cursor:pointer}
.release-history summary span{margin-left:5px;color:var(--accent)}
.release-history ol{display:grid;gap:0;margin:13px 0 0;padding:0;list-style:none}
.release-history li{display:grid;grid-template-columns:1fr auto;gap:4px 18px;padding:12px 0;border-top:1px solid var(--line)}
.release-history li>div{display:flex;flex-wrap:wrap;gap:5px 10px}.release-history li strong{color:var(--ink);font-size:12px}.release-history li span,.release-history time{color:var(--mut);font-size:10px}.release-history li p{grid-column:1/-1;margin:0;color:var(--mut);font-size:11px;line-height:1.45}
.release-notes-footer{display:flex;justify-content:space-between;gap:18px;padding:17px 34px;border-top:1px solid var(--line);background:var(--card);color:var(--mut);font-size:10px}
.release-notes-footer strong{color:var(--ink);font-size:10px}

@media(max-width:900px){
  .platform-release-button span,.platform-release-button em{display:none}.platform-release-button{display:flex;min-height:34px;padding:6px 9px}.release-notes-dialog{width:100vw}
  .release-change-card{grid-template-columns:1fr}.release-change-media img{height:auto;max-height:260px}.release-notes-head,.release-notes-content{padding-inline:22px}.release-notes-footer{padding-inline:22px}
}
@media(max-width:560px){
  .release-notes-head{padding:21px 17px 18px}.release-notes-head h2{font-size:21px}.release-notes-summary{grid-template-columns:1fr}.release-notes-summary>div{padding:10px 17px}.release-notes-content{padding:18px 14px 26px}.release-change-card{gap:13px;padding:11px}.release-notes-footer{display:grid;padding:14px 17px}
}
.forecast-tab-head{padding-bottom:13px}
.forecast-tab-head h2{margin:3px 0 5px;color:var(--ink);font-size:22px;line-height:1.15}
.forecast-overview{margin:10px 0;padding-bottom:10px}
.forecast-table-scroll{margin-top:10px;overflow:hidden;border:1px solid var(--line);border-radius:9px}
.forecast-table{width:100%;min-width:0;margin:0;table-layout:fixed}
.forecast-table th,.forecast-table td{min-width:0;padding:8px 5px;vertical-align:middle;text-align:center}
.forecast-table thead th{background:var(--card2);color:var(--ink);font-size:10.5px;font-weight:850;line-height:1.25;text-align:center}
.forecast-table thead th:first-child,.forecast-table tbody th{width:21%;padding-left:10px;text-align:left;overflow-wrap:anywhere}
.forecast-table thead th:first-child{background:var(--card2);color:var(--ink);font-size:10.5px;font-weight:850;line-height:1.25}
.forecast-table tbody th{background:var(--card);color:var(--ink);font-size:10.5px;font-weight:700;line-height:1.35}
.forecast-table thead th:last-child,.forecast-table td.forecast-next-col{width:22%;background:color-mix(in srgb,var(--accent) 5%,var(--card))}
.forecast-table thead th:last-child{background:color-mix(in srgb,var(--accent) 10%,var(--card2));color:var(--ink)}
.forecast-table thead span{display:block;margin-top:3px;color:var(--accent);font-size:8px;font-weight:850;line-height:1.2}
.forecast-cell{display:grid;gap:3px;justify-items:center;min-width:0}
.forecast-cell strong{color:var(--ink);font-size:10.5px;line-height:1.15;white-space:nowrap}
.forecast-cell span,.forecast-cell small{max-width:100%;color:var(--mut);font-size:8.5px;line-height:1.35;text-align:center}
.forecast-cell small.up{color:var(--good)}
.forecast-cell small.down{color:var(--bad)}
.forecast-next{gap:5px;padding-block:2px}
.forecast-next>strong{font-size:14px;color:var(--accent)}
.forecast-next>span{font-size:9px}
.forecast-next>small{font-size:8.5px;font-weight:700}
.forecast-table-note{margin:8px 2px 0;color:var(--mut);font-size:8.5px;line-height:1.4}
.forecast-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:10px;margin:10px 0}
.forecast-summary{display:grid;align-content:start;min-height:126px}
.forecast-summary>span{color:var(--mut);font-size:10px;font-weight:750;letter-spacing:.025em}
.forecast-summary>strong{margin:11px 0 6px;color:var(--ink);font-size:27px;line-height:1}
.forecast-summary>small{color:var(--mut);font-size:10px;line-height:1.4}
.forecast-summary.primary{border-color:color-mix(in srgb,var(--good) 48%,var(--line));background:color-mix(in srgb,var(--good) 7%,var(--card))}
.forecast-summary.referral{border-color:color-mix(in srgb,#c58af0 46%,var(--line));background:color-mix(in srgb,#c58af0 6%,var(--card))}
.forecast-summary.referral>strong{color:#c58af0}
.forecast-summary.primary>strong,.forecast-summary.good>strong{color:var(--good)}
.forecast-summary.improve>strong{color:var(--bad)}
.forecast-summary.sustain>strong{color:var(--good)}
.forecast-summary.decline>strong{color:var(--bad)}
.forecast-summary.warn>strong{color:var(--warn)}
.forecast-summary.bad>strong{color:var(--bad)}
.forecast-strategy{margin-bottom:10px}
.forecast-strategy h3{margin:3px 0 5px;color:var(--ink);font-size:18px}
.forecast-strategy p{margin:0;color:var(--mut);font-size:11px;line-height:1.5}
.forecast-chart-card{margin-bottom:10px}
.forecast-metric-control{min-width:210px}
.forecast-details{padding:0;overflow:hidden}
.forecast-details summary{padding:14px 16px;color:var(--ink);font-size:12px;font-weight:800;cursor:pointer;list-style-position:inside}
.forecast-details[open] summary{border-bottom:1px solid var(--line)}
.forecast-details-body{padding:14px 16px 16px;color:var(--mut);font-size:11px;line-height:1.55}
.forecast-details-body h3{margin:0 0 7px;color:var(--ink)}
.forecast-details-body p{margin:0 0 10px}
.forecast-details-body b{color:var(--ink)}
.forecast-details-body .forecast-model-card{margin:0 0 14px;padding:0;border:0;background:transparent;box-shadow:none}
.forecast-model-card,.forecast-driver-card{margin-bottom:10px}
.forecast-model-table{min-width:820px;margin-top:10px}
.forecast-model-table tr.selected td{background:color-mix(in srgb,var(--good) 8%,var(--card));color:var(--ink)}
.forecast-model-table tr.selected td:first-child{box-shadow:inset 3px 0 0 var(--good)}
.forecast-selected{display:inline-flex;padding:3px 7px;border:1px solid color-mix(in srgb,var(--good) 48%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--good) 8%,var(--card));color:var(--good);font-size:8px;font-weight:850;text-transform:uppercase}
.forecast-driver-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0 0}
.forecast-driver-grid>div{display:grid;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--card2)}
.forecast-driver-grid span{color:var(--mut);font-size:9.5px}
.forecast-driver-grid strong{margin-top:5px;color:var(--ink);font-size:17px}
.forecast-driver-grid small{margin-top:4px;color:var(--mut);font-size:9px}
.forecast-driver-grid em{margin-top:8px;color:var(--accent);font-size:8.5px;font-style:normal;line-height:1.35}
@media(max-width:1120px){
  .forecast-table th,.forecast-table td{padding-inline:4px}
  .forecast-table thead th:first-child,.forecast-table tbody th{width:19%}
  .forecast-table tbody th{font-size:9.5px}
  .forecast-table thead th:last-child,.forecast-table td.forecast-next-col{width:23%}
  .forecast-cell strong{font-size:10px}
}
@media(max-width:820px){
  .forecast-summary-grid{grid-template-columns:1fr}
  .forecast-summary{min-height:96px}
  .forecast-table-scroll{overflow-x:auto}
  .forecast-table{min-width:760px}
  .forecast-driver-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  .forecast-tab-head .perf-head,.forecast-chart-card .perf-head{align-items:stretch}
  .forecast-metric-control{min-width:0;width:100%}
  .forecast-chart-card{overflow-x:auto}
  .forecast-chart-card .candidate-echart{min-width:660px}
  .forecast-driver-grid{grid-template-columns:1fr}
}

/* 38. Owner-only, aggregate usage monitor. */
.usage-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:10px}
.usage-head h2{margin:3px 0 5px;color:var(--ink);font-size:22px}
.usage-head-actions{display:grid;grid-template-columns:auto auto;align-items:end;justify-items:end;gap:7px 8px;color:var(--mut);font-size:9px;white-space:nowrap}
.usage-day-filter{display:grid;gap:4px;text-align:left;color:var(--mut);font-size:9px;font-weight:750}
.usage-day-filter input{min-width:142px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--card2);color:var(--ink);font:inherit;color-scheme:dark}
body.light .usage-day-filter input{color-scheme:light}
.usage-period-reset{padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card2);color:var(--ink);font-size:9px;font-weight:750;cursor:pointer}
.usage-period-reset:disabled{opacity:.45;cursor:default}
.usage-refresh{padding:7px 12px;border:1px solid var(--accent);border-radius:999px;background:transparent;color:var(--accent);font-size:9px;font-weight:800;cursor:pointer}
.usage-refresh:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}
.usage-refresh:disabled{opacity:.55;cursor:wait}
.usage-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:10px}
.usage-kpi{display:grid;align-content:start;min-height:108px}
.usage-kpi>span{color:var(--mut);font-size:10px;font-weight:750}
.usage-kpi>strong{margin:10px 0 6px;color:var(--accent);font-size:27px;line-height:1}
.usage-kpi>small{color:var(--mut);font-size:9px;line-height:1.4}
.usage-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(270px,.65fr);gap:10px;margin-bottom:10px}
.usage-grid h3,.usage-table-card h3{margin:0 0 4px;color:var(--ink)}
.usage-days{display:grid;gap:9px;margin-top:15px}
.usage-day{display:grid;grid-template-columns:48px minmax(90px,1fr) 38px minmax(120px,.55fr);align-items:center;gap:9px;color:var(--mut);font-size:9px}
.usage-day-track{height:8px;overflow:hidden;border:1px solid var(--line);border-radius:999px;background:var(--card2)}
.usage-day-track i{display:block;height:100%;border-radius:inherit;background:var(--accent)}
.usage-day strong{color:var(--ink);text-align:right}
.usage-day small{color:var(--mut)}
.usage-day.selected{padding:5px 7px;border:1px solid var(--accent);border-radius:8px;background:color-mix(in srgb,var(--accent) 7%,transparent)}
.usage-owner{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:8px 10px;margin:18px 0}
.usage-owner strong{color:var(--purple,#c58af0);font-size:24px}
.usage-owner span{color:var(--mut);font-size:10px}
.usage-note,.usage-footnote{color:var(--mut);font-size:9px;line-height:1.5}
.usage-table-card{margin-bottom:10px}
.usage-table-card .perf-scroll{margin-top:10px}
.usage-state{display:grid;justify-items:start;gap:9px}
.usage-state h2,.usage-state p{margin:0}
@media(max-width:1000px){.usage-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.usage-grid{grid-template-columns:1fr}}
@media(max-width:620px){.usage-head{display:grid}.usage-head-actions{grid-template-columns:1fr auto;justify-items:start}.usage-kpis{grid-template-columns:1fr}.usage-day{grid-template-columns:44px minmax(70px,1fr) 30px}.usage-day small{grid-column:2/4}}

/* 39. Leadership acquisition-quality drill-down. */
.acquisition-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:12px}
.acquisition-head h2{margin:3px 0 6px;color:var(--ink);font-size:22px}
.acquisition-control{display:grid;gap:5px;min-width:190px;color:var(--mut);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.acquisition-control select{width:100%;padding:8px 30px 8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card2);color:var(--ink);font:700 10px Inter,Segoe UI,Arial;text-transform:none;letter-spacing:0}
.acquisition-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}
.acquisition-kpis .card{display:grid;gap:4px;min-height:92px;align-content:center}
.acquisition-kpis span{color:var(--mut);font-size:10px;font-weight:700}
.acquisition-kpis strong{color:var(--ink);font-size:25px;line-height:1.05}
.acquisition-kpis small{color:var(--mut);font-size:9px;line-height:1.35}
.acquisition-table-card{margin-bottom:12px}
.acquisition-table{min-width:960px}
.acquisition-table th:first-child{min-width:205px}
.acquisition-table td small{display:block;margin-top:3px;color:var(--mut);font-size:8px;font-weight:600}
.acquisition-table tfoot th,.acquisition-table tfoot td{border-top:2px solid var(--line);color:var(--ink);font-weight:800}
.acquisition-read{display:inline-flex;align-items:center;padding:4px 8px;border:1px solid var(--line);border-radius:999px;font-size:9px;font-weight:800;white-space:nowrap}
.acquisition-read.good{border-color:color-mix(in srgb,var(--good) 55%,var(--line));color:var(--good);background:color-mix(in srgb,var(--good) 8%,transparent)}
.acquisition-read.warn{border-color:color-mix(in srgb,var(--warn) 55%,var(--line));color:var(--warn);background:color-mix(in srgb,var(--warn) 8%,transparent)}
.acquisition-read.bad{border-color:color-mix(in srgb,var(--bad) 55%,var(--line));color:var(--bad);background:color-mix(in srgb,var(--bad) 8%,transparent)}
.acquisition-read.sample,.acquisition-read.neutral{color:var(--mut);background:var(--card2)}
.acquisition-visual-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.acquisition-visual-grid .echart-panel{margin:0;min-width:0}
.acquisition-chart-controls{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}
.acquisition-chart-controls .acquisition-control{min-width:155px}
@media(max-width:1050px){.acquisition-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.acquisition-visual-grid{grid-template-columns:1fr}}
@media(max-width:620px){.acquisition-head{display:grid}.acquisition-kpis{grid-template-columns:1fr}.acquisition-control{width:100%;min-width:0}.acquisition-chart-controls{display:grid;width:100%}}

/* 40. Headcount-normalized Sales Rep productivity. */
.cash-per-cc-cell{min-width:180px}
.cash-per-cc-cell>span{display:block;font-size:11px;font-weight:850}
.cash-per-cc-cell small{display:block;margin-top:3px;color:var(--mut);font-size:8.5px;font-weight:650;line-height:1.3;white-space:normal}
.cc-productivity{margin-bottom:10px}
.productivity-kpis{grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;margin-top:12px}
.productivity-kpis>.tile{height:100%;min-height:116px}
.productivity-benchmarks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0 14px}
.productivity-benchmarks>span{display:grid;gap:4px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--card2)}
.productivity-benchmarks small{color:var(--mut);font-size:9px;font-weight:750}
.productivity-benchmarks b{color:var(--ink);font-size:17px;line-height:1.1}
.productivity-benchmarks em{color:var(--mut);font-size:8.5px;font-style:normal;line-height:1.35}
.productivity-benchmarks em.good{color:var(--good)}
.productivity-benchmarks em.bad{color:var(--bad)}
.productivity-chart-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-top:12px;border-top:1px solid var(--line)}
.productivity-chart-head h4{margin:0 0 4px;color:var(--ink);font-size:13px}
.productivity-chart-head p{margin:0;color:var(--mut);font-size:9.5px;line-height:1.45}
@media(max-width:1000px){.productivity-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.productivity-benchmarks{grid-template-columns:1fr}.productivity-chart-head{display:grid}.cc-productivity{overflow-x:auto}.cc-productivity>.candidate-echart{min-width:620px}}
@media(max-width:520px){.productivity-kpis{grid-template-columns:1fr}}

/* 41. Leadership GMV driver analysis. */
.gmv-drivers-head{margin-bottom:10px}
.gmv-drivers-head h2{margin:3px 0 6px;color:var(--ink);font-size:22px;line-height:1.15}
.gmv-driver-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:10px}
.gmv-driver-kpis>.card{display:grid;align-content:center;gap:5px;min-height:106px}
.gmv-driver-kpis span{color:var(--mut);font-size:10px;font-weight:750}
.gmv-driver-kpis strong{color:var(--ink);font-size:25px;line-height:1.05}
.gmv-driver-kpis small{color:var(--mut);font-size:9px;line-height:1.4}
.gmv-driver-kpis>.primary{border-color:color-mix(in srgb,var(--good) 46%,var(--line));background:color-mix(in srgb,var(--good) 6%,var(--card))}
.gmv-driver-kpis>.primary strong{color:var(--good)}
.gmv-driver-kpis>.top-source{border-color:color-mix(in srgb,var(--accent) 42%,var(--line));background:color-mix(in srgb,var(--accent) 5%,var(--card))}
.gmv-driver-kpis>.top-source strong{color:var(--accent);font-size:20px;overflow-wrap:anywhere}
.gmv-driver-read{margin-bottom:10px;border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 5%,var(--card))}
.gmv-driver-read p{margin:6px 0 0;color:var(--mut);font-size:11px;line-height:1.55}
.gmv-driver-read b{color:var(--ink)}
.gmv-concentration-watch{margin-bottom:10px;border-left:3px solid var(--warn);background:color-mix(in srgb,var(--warn) 5%,var(--card))}
.gmv-concentration-watch p{margin:6px 0 0;color:var(--mut);font-size:11px;line-height:1.5}
.gmv-concentration-watch b{color:var(--ink)}
.gmv-driver-grid{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:10px}
.gmv-driver-card,.gmv-channel-driver,.gmv-waterfall-driver,.gmv-trend-driver{margin-bottom:10px;min-width:0}
.gmv-driver-table{min-width:900px;margin-top:10px}
.gmv-driver-table th:first-child{min-width:150px}
.gmv-driver-table tbody th small{display:block;margin-top:3px;color:var(--mut);font-size:8px;font-weight:650}
.gmv-driver-card .candidate-echart,.gmv-channel-driver .candidate-echart,.gmv-waterfall-driver .candidate-echart,.gmv-trend-driver .candidate-echart{margin-top:6px}
.gmv-impact-summary{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;margin:14px 0 6px;padding:12px 16px;border:1px solid var(--line);border-radius:9px;background:var(--card2)}
.gmv-impact-summary>div{display:grid;gap:3px;text-align:center}.gmv-impact-summary span{color:var(--mut);font-size:9px;font-weight:750;text-transform:uppercase;letter-spacing:.04em}.gmv-impact-summary b{color:var(--ink);font-size:17px}.gmv-impact-summary b.up{color:var(--good)}.gmv-impact-summary b.down{color:var(--bad)}.gmv-impact-summary i{color:var(--mut);font-size:18px;font-style:normal}
.gmv-waterfall-read{margin:8px 0 0;padding:9px 11px;border-radius:7px;background:var(--card2);color:var(--mut);font-size:10px;line-height:1.45}
.gmv-impact-method{margin-top:8px;border-top:1px solid var(--line);padding-top:8px;color:var(--mut);font-size:9.5px}.gmv-impact-method summary{width:max-content;cursor:pointer;color:var(--accent);font-weight:750}.gmv-impact-method p{margin:7px 0 0;max-width:940px;line-height:1.5}
@media(max-width:1050px){.gmv-driver-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.gmv-drivers-head .perf-head,.gmv-driver-card .echart-panel-head,.gmv-channel-driver .echart-panel-head,.gmv-waterfall-driver .echart-panel-head,.gmv-trend-driver .echart-panel-head{display:grid}.gmv-driver-kpis{grid-template-columns:1fr}.gmv-impact-summary{grid-template-columns:1fr}.gmv-impact-summary i{transform:rotate(90deg);justify-self:center}.gmv-driver-card,.gmv-channel-driver,.gmv-waterfall-driver,.gmv-trend-driver{overflow-x:auto}.gmv-driver-card>.candidate-echart,.gmv-channel-driver>.candidate-echart,.gmv-waterfall-driver>.candidate-echart,.gmv-trend-driver>.candidate-echart{min-width:660px}}

/* 42. Regional lead-quality comparison. */
.regional-lead-quality{margin-bottom:12px}
.regional-quality-summary{margin:9px 0 12px;padding:9px 11px;border-left:3px solid var(--accent);border-radius:0 7px 7px 0;background:color-mix(in srgb,var(--accent) 5%,var(--card2));color:var(--mut);font-size:10.5px;line-height:1.5}
.regional-quality-summary b{color:var(--ink)}
.regional-quality-table{min-width:700px;margin-top:4px}
.regional-quality-table th:first-child{min-width:190px}
.regional-quality-table td small,.regional-quality-channel-table td small{display:block;margin-top:3px;color:var(--mut);font-size:8px;font-weight:650;line-height:1.35}
.regional-quality-channel{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.regional-quality-channel h4{margin:0 0 4px;color:var(--ink);font-size:13px}
.regional-quality-channel-table{min-width:680px;margin-top:10px}
.regional-quality-channel-table th:first-child{min-width:150px}
.regional-quality-channel-table thead th small{display:block;margin-top:3px;color:var(--mut);font-size:8px;font-weight:650;line-height:1.25}
.regional-yield b{color:var(--ink);font-size:13px}.regional-yield-gap{display:inline-flex;align-items:center;min-height:24px;padding:4px 9px;border:1px solid var(--line);border-radius:999px;background:var(--card2);color:var(--mut);font-size:9px;font-weight:800;white-space:nowrap}.regional-yield-gap.north{border-color:color-mix(in srgb,var(--region-eg) 52%,var(--line));color:var(--region-eg)}.regional-yield-gap.south{border-color:color-mix(in srgb,var(--region-jo) 52%,var(--line));color:var(--region-jo)}.regional-yield-gap.similar{border-color:color-mix(in srgb,var(--warn) 52%,var(--line));color:var(--warn)}.regional-yield-gap.sample{color:var(--mut)}
.regional-quality-note{margin:14px 0 0;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--card2);color:var(--mut);font-size:10px}
@media(max-width:620px){.regional-lead-quality{overflow-x:auto}.regional-lead-quality>.candidate-echart{min-width:660px}.regional-lead-quality>.perf-head{display:grid}}

/* ═══════════════════════════════════════════════════════════════
   Visual layer for the versioned release experience. Appended
   only; the canonical stylesheet above is untouched.
   ═══════════════════════════════════════════════════════════════ */

/* ── 43. Accent tone that stays legible as small text ───────────
   --accent carries enough contrast on the dark surface but only
   3.7:1 on the light one, so light mode borrows the deeper
   companion tone already used behind white labels. */
:root{--accent-text:var(--accent);--warn-text:var(--warn)}
:root[data-theme="light"]{--accent-text:var(--accent-strong);--warn-text:#8a5c0c}
@media(prefers-color-scheme:light){
  :root:not([data-theme="dark"]){--accent-text:var(--accent-strong);--warn-text:#8a5c0c}
}

/* ── 44. Platform navigation — grouped section menubar ──────────
   The destination list outgrew a single tab strip, so navigation is
   two tiers: four section triggers that are always visible, and the
   open section's destinations directly beneath them.

   Presentation only. The .tab[data-t] buttons keep their exact DOM
   sequence, labels and count for the release and canonical
   validators; tier order is expressed with `order`, and a collapsed
   destination keeps the `hidden` attribute set by candidate.js.

   Two rules carry most of the redesign:
   - only the section you are in spells out its destination, so the
     bar states one fact instead of showing four look-alike select
     boxes whose values are remembered rather than current;
   - a revealed destination is a solid pill under a divider, so an
     open menu reads as a menu instead of loose text on the page. */

.tabs{
  position:relative;
  display:flex;flex-wrap:wrap;align-items:stretch;
  column-gap:4px;row-gap:0;
  padding:8px 26px 0;
  background:var(--card);
  border-bottom:1px solid var(--line);
  overflow:visible;
  transition:background .25s ease,border-color .25s ease;
}
.tab-row-break{flex:0 0 100%;height:0;margin:0;padding:0;border:0;overflow:hidden}

/* ── Tier 1: section triggers ─────────────────────────────────── */
.tab-group{
  position:relative;
  display:flex;flex-direction:column;justify-content:center;gap:1px;
  flex:0 0 auto;margin:0 0 8px;min-height:38px;
  padding:4px 28px 5px 11px;
  border:1px solid transparent;border-radius:9px;
  background:transparent;color:var(--mut);
  font:inherit;text-align:left;cursor:pointer;
  transition:border-color .15s ease,background .15s ease,color .15s ease,box-shadow .15s ease;
}
/* A closed section carries its name only. Printing four remembered
   destinations made three of them look like the current one. */
.tab-group:not(.current) .tab-group-current{display:none}
.tab-group-name{
  color:inherit;
  font-size:12.5px;font-weight:650;line-height:1.35;
  letter-spacing:0;text-transform:none;white-space:nowrap;
}
.tab-group.current .tab-group-name{
  /* The 8.5px eyebrow needs the full 4.5:1: plain --accent-text lands at
     3.99:1 on the tinted light card, so it is deepened toward --ink. */
  color:color-mix(in srgb,var(--accent-text) 74%,var(--ink));
  font-size:8.5px;font-weight:800;letter-spacing:.115em;line-height:1.2;
  text-transform:uppercase;
}
.tab-group-current{color:var(--ink);font-size:12.5px;font-weight:700;line-height:1.2;white-space:nowrap}
.tab-group::after{
  content:'';position:absolute;right:12px;top:50%;
  width:6px;height:6px;margin-top:-5px;
  border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;
  transform:rotate(45deg);opacity:.45;
  transition:transform .15s ease,opacity .15s ease;
}
.tab-group:hover{background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--ink)}
.tab-group:hover::after{opacity:.85}
.tab-group:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* Where you are. The one trigger that spells out its destination. */
.tab-group.current{
  border-color:color-mix(in srgb,var(--accent) 42%,var(--line));
  background:color-mix(in srgb,var(--accent) 10%,var(--card2));
  color:var(--accent-text);
}
.tab-group.current:hover{background:color-mix(in srgb,var(--accent) 16%,var(--card2))}
.tab-group.current::after{opacity:.7}

/* An open section lifts off the bar and points at its destinations. */
.tab-group[aria-expanded="true"]{
  border-color:var(--accent);
  background:var(--card2);
  color:var(--accent-text);
  box-shadow:0 3px 10px color-mix(in srgb,var(--accent) 20%,transparent);
}
.tab-group[aria-expanded="true"]::after{transform:rotate(-135deg);margin-top:-1px;opacity:1}
.tab-group[aria-expanded="true"]::before{
  content:'';position:absolute;left:22px;bottom:-5px;
  width:10px;height:10px;margin-left:-5px;
  background:var(--card2);
  border:1px solid var(--accent);border-width:0 1px 1px 0;
  transform:rotate(45deg);
}

/* ── Tier 2: destinations of the open section ─────────────────── */
.tabs .tab[hidden]{display:none}
.tabs .tab{
  margin:0 0 9px;padding:6px 12px;
  border:1px solid var(--line);border-radius:8px;
  background:var(--card2);
  color:color-mix(in srgb,var(--mut) 45%,var(--ink));
  font-size:12.5px;font-weight:600;line-height:1.3;
  box-shadow:0 1px 2px color-mix(in srgb,#000 7%,transparent);
  transition:border-color .15s ease,background .15s ease,color .15s ease,box-shadow .15s ease;
}
.tabs .tab:hover{
  border-color:var(--accent);color:var(--ink);
  background:color-mix(in srgb,var(--accent) 12%,var(--card2));
}
.tabs .tab.active{
  border-color:var(--accent-strong);background:var(--accent-strong);color:#fff;
  box-shadow:0 2px 8px color-mix(in srgb,var(--accent) 30%,transparent);
}
.tabs .tab.active:hover{background:var(--accent-strong);color:#fff}
.tabs .tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* The divider exists only while a section is open, so a closed bar
   stays exactly one row tall. */
.tabs:has(.tab-group[aria-expanded="true"]) .tab-row-break{
  height:1px;background:var(--line);margin:0 0 9px;
}
@keyframes ccTabTrayIn{from{opacity:0}to{opacity:1}}
.tabs .tab:not([hidden]):not([data-t="usage"]){animation:ccTabTrayIn .14s ease-out both}
@media(prefers-reduced-motion:reduce){
  .tabs .tab:not([hidden]):not([data-t="usage"]){animation:none}
}

/* Usage Tracking is an owner utility rather than an analytical
   section: it stays outside the four groups and sits apart, on the
   opposite edge of the bar. */
.tabs .tab[data-t="usage"]{
  order:5;margin-left:auto;margin-bottom:8px;
  display:inline-flex;align-items:center;gap:7px;
  border-color:color-mix(in srgb,var(--accent) 34%,var(--line));
  background:transparent;color:var(--accent-text);font-weight:700;
  box-shadow:none;
}
.tabs .tab[data-t="usage"]::before{
  content:'';width:6px;height:6px;border-radius:50%;
  background:currentColor;opacity:.9;flex:none;
}
.tabs .tab[data-t="usage"]:hover{
  border-color:var(--accent);color:var(--accent-text);
  background:color-mix(in srgb,var(--accent) 10%,transparent);
}
.tabs .tab[data-t="usage"].active{
  border-color:var(--accent-strong);background:var(--accent-strong);color:#fff;
}

/* Visual order only. DOM order is untouched and still drives the validators. */
.tabs .tab-group[data-tab-group="overview"]{order:1}
.tabs .tab-group[data-tab-group="revenue"]{order:2}
.tabs .tab-group[data-tab-group="acquisition"]{order:3}
.tabs .tab-group[data-tab-group="performance"]{order:4}
.tabs .tab-row-break{order:6}
.tabs .tab[data-t="overview"]{order:11}
.tabs .tab[data-t="weekperf"]{order:12}
.tabs .tab[data-t="gmvdrivers"]{order:13}
.tabs .tab[data-t="referral"]{order:14}
.tabs .tab[data-t="forecasting"]{order:15}
.tabs .tab[data-t="leads"]{order:16}
.tabs .tab[data-t="acquisition"]{order:17}
.tabs .tab[data-t="funnel"]{order:18}
.tabs .tab[data-t="ccperf"]{order:19}
.tabs .tab[data-t="explore"]{order:20}

@media(max-width:1120px){
  .tabs{padding-inline:18px}
  .tab-group{padding-right:26px}
  .tab-group::after{right:10px}
}
/* Phone: the four triggers become a two-by-two block and the open
   section's destinations wrap underneath the whole block. */
@media(max-width:760px){
  .tabs{padding:8px 14px 0;column-gap:5px}
  .tab-group{
    flex:1 1 calc(50% - 3px);min-width:0;
    padding:5px 24px 6px 10px;margin-bottom:6px;
  }
  .tab-group-name,.tab-group-current{white-space:normal}
  .tab-group[aria-expanded="true"]::before{left:20px}
  .tabs .tab{padding:6px 10px;font-size:12px;margin-bottom:7px}
  /* Usage moves below the destinations so the open section's caret
     points straight at its own tray instead of across the chip. */
  .tabs .tab[data-t="usage"]{
    order:21;flex:1 1 100%;margin-left:0;margin-bottom:7px;
    justify-content:center;font-size:11.5px;padding:5px 10px;
  }
  .tabs:has(.tab-group[aria-expanded="true"]) .tab-row-break{margin-bottom:7px}
}

/* ── 45. Header version control ─────────────────────────────────
   Data Health, the release control and the theme/language switch
   share one 32px height, one radius and one type scale so the
   header reads as a single row of controls. */
header .hdin{gap:12px 14px}
.hdr-right{gap:8px}
.healthbtn{
  display:inline-flex;align-items:center;height:32px;margin-top:0;padding:0 11px;
  border-radius:10px;font-size:11.5px;
}
.mode-switch{min-height:32px;align-items:center;border-radius:10px}
.platform-release-button{
  display:grid;align-items:center;
  grid-template-columns:auto auto auto;
  grid-template-areas:"version label chevron" "version date chevron";
  gap:0 9px;min-height:32px;height:32px;padding:0 8px 0 5px;border-radius:10px;
  border:1px solid color-mix(in srgb,var(--accent) 40%,var(--line));
  background:color-mix(in srgb,var(--accent) 9%,var(--card2));
  transition:border-color .15s ease,background .15s ease,box-shadow .15s ease;
}
.platform-release-button strong{
  grid-area:version;display:grid;place-items:center;
  min-width:42px;height:22px;padding:0 7px;border-radius:7px;
  background:var(--accent-strong);color:#fff;font-size:11px;font-weight:800;
}
.platform-release-button span{
  grid-area:label;color:var(--ink);font-size:9.5px;font-weight:800;
  letter-spacing:.05em;line-height:1.15;text-transform:uppercase;
}
.platform-release-button em{grid-area:date;color:var(--mut);font-size:9px;font-style:normal;line-height:1.2}
.platform-release-button::after{
  grid-area:chevron;content:'\203A';color:var(--mut);
  font-size:16px;line-height:1;transform:translateY(-1px);
}
.platform-release-button:hover{
  border-color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,var(--card2));
  box-shadow:0 1px 6px color-mix(in srgb,var(--accent) 22%,transparent);
}
.platform-release-button:hover::after{color:var(--accent-text)}
/* A release candidate is a preview, not the published version. */
.platform-release-button.is-preview{
  border-color:color-mix(in srgb,var(--warn) 48%,var(--line));
  background:color-mix(in srgb,var(--warn) 11%,var(--card2));
}
.platform-release-button.is-preview strong{background:var(--warn);color:#231a05}
.platform-release-button.is-preview:hover{
  border-color:var(--warn);background:color-mix(in srgb,var(--warn) 18%,var(--card2));
  box-shadow:0 1px 6px color-mix(in srgb,var(--warn) 24%,transparent);
}

@media(max-width:1180px){
  .platform-release-button{grid-template-areas:"version label chevron";gap:0 8px}
  .platform-release-button em{display:none}
}
@media(max-width:900px){
  header .hdin{gap:10px}
  .healthbtn{position:static;margin-top:0;height:30px;padding:0 9px;font-size:11px}
  .mode-switch{min-height:30px}
  .platform-release-button{
    display:grid;grid-template-columns:auto auto;grid-template-areas:"version chevron";
    height:30px;min-height:30px;padding:0 7px 0 4px;
  }
  .platform-release-button span,.platform-release-button em{display:none}
  .platform-release-button strong{min-width:38px;height:21px;font-size:10.5px}
}
@media(max-width:640px){
  header .hdin{gap:8px 10px}
  .hdr-right{gap:6px;flex-wrap:wrap}
}

/* ── 46. Release drawer ─────────────────────────────────────────
   The dialog becomes a column: the identity header and the
   ownership credit stay pinned while the change list scrolls, and
   the screenshots get the full panel width so their text is
   legible instead of being cropped into a 150px band. */
.release-notes-dialog{
  width:min(1040px,96vw);
  display:flex;flex-direction:column;overflow:hidden;
}
.release-notes-head{flex:0 0 auto;align-items:flex-start;padding:26px 32px 22px}
.release-notes-head h2{font-size:25px;letter-spacing:-.01em}
.release-notes-eyebrow{
  display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;
  border:1px solid color-mix(in srgb,var(--accent) 45%,var(--line));
  background:color-mix(in srgb,var(--accent) 12%,transparent);
  color:var(--accent-text);
}
.release-notes-shell.is-preview .release-notes-eyebrow{
  border-color:color-mix(in srgb,var(--warn) 50%,var(--line));
  background:color-mix(in srgb,var(--warn) 14%,transparent);
  color:var(--warn-text);
}
.release-notes-close{
  display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;
  font-size:22px;transition:border-color .15s ease,background .15s ease,color .15s ease;
}
.release-notes-close:hover{border-color:var(--accent);background:var(--card);color:var(--accent-text)}
.release-notes-summary{flex:0 0 auto}
.release-notes-summary span{color:color-mix(in srgb,var(--mut) 62%,var(--ink))}
.release-notes-content{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:22px 32px 30px}
.release-notes-section-head strong{background:var(--accent-strong);color:#fff;font-weight:800}
.release-notes-footer{flex:0 0 auto;align-items:center;padding:15px 32px}
.release-notes-footer strong{white-space:nowrap}

.release-change-card{
  grid-template-columns:1fr;gap:0;padding:0;overflow:hidden;margin-bottom:18px;
}
.release-change-card:not(:has(.release-change-media)){grid-template-columns:1fr}
/* Release screenshots are captured on the dark theme, so they keep
   a dark mat in both themes rather than floating on a light card. */
.release-change-media{
  order:-1;margin:0;border:0;border-bottom:1px solid var(--line);border-radius:0;
  background:#0d1117;
}
.release-change-media img{width:100%;height:auto;max-height:none;object-fit:contain;object-position:center top}
.release-change-media figcaption{
  padding:7px 14px;border-top:1px solid var(--line);background:var(--card2);
  color:color-mix(in srgb,var(--mut) 62%,var(--ink));font-size:9.5px;font-weight:700;letter-spacing:.05em;
}
.release-change-copy{padding:16px 18px 18px}
.release-change-meta{margin-bottom:7px}
.release-change-meta span{color:var(--accent-text)}
.release-change-meta em{color:color-mix(in srgb,var(--mut) 62%,var(--ink));font-weight:700}
.release-change-copy h3{font-size:16.5px;line-height:1.25}
.release-change-copy>p{margin:7px 0 13px;font-size:12.5px;line-height:1.6}
.release-change-copy dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.release-change-copy dl>div{padding:10px 13px;border-left-width:3px;border-radius:0 8px 8px 0}
.release-change-copy dl>div:first-child{border-left-color:color-mix(in srgb,var(--accent) 70%,var(--line))}
.release-change-copy dl>div:last-child{border-left-color:color-mix(in srgb,var(--good) 70%,var(--line))}
.release-change-copy dt{color:color-mix(in srgb,var(--mut) 62%,var(--ink));font-size:9.5px;letter-spacing:.07em}
.release-change-copy dd{font-size:12px;line-height:1.5}

/* Release history reads as a dated ledger, not a bullet list. */
.release-history{margin-top:24px;padding-top:20px}
.release-history summary{
  padding:10px 13px;border:1px solid var(--line);border-radius:9px;
  background:var(--card);font-size:12.5px;
}
.release-history summary:hover{border-color:var(--accent)}
.release-history summary span{color:var(--accent-text);font-weight:800}
.release-history[open] summary{margin-bottom:4px}
.release-history li{padding:13px 2px;gap:5px 18px;align-items:baseline}
.release-history li>div{align-items:baseline;gap:5px 9px}
.release-history li strong{font-size:12.5px}
.release-history li span{
  padding:2px 8px;border:1px solid var(--line);border-radius:999px;background:var(--card2);
  color:color-mix(in srgb,var(--mut) 62%,var(--ink));font-size:9px;font-weight:750;letter-spacing:.04em;text-transform:uppercase;
}
.release-history time{font-size:10.5px;font-weight:750;white-space:nowrap}
.release-history li p{margin-top:2px;font-size:11.5px;line-height:1.55}
.release-empty{padding:18px 20px}
/* --mut clears 4.5:1 on the dark surface but only 4.4:1 on the light
   one. Supporting copy in the drawer is nudged toward --ink so both
   themes pass at these sizes. */
.release-notes-shell .release-notes-head p,
.release-notes-shell .release-change-copy>p,
.release-notes-shell .release-history li p,
.release-notes-shell .release-history time,
.release-notes-shell .release-empty p,
.release-notes-shell .release-notes-footer{color:color-mix(in srgb,var(--mut) 76%,var(--ink))}

@media(max-width:1000px){
  .release-notes-dialog{width:100vw}
}
@media(max-width:820px){
  .release-change-copy dl{grid-template-columns:1fr}
}
/* Full-screen on a phone: no side sheet, no rounded edge, and the
   header and ownership credit stay reachable without scrolling. */
@media(max-width:760px){
  .release-notes-dialog{inset:0;width:100vw;border-left:0;box-shadow:none}
  .release-notes-head{padding:20px 18px 16px}
  .release-notes-head h2{font-size:20px}
  .release-notes-head p{font-size:12.5px}
  .release-notes-close{flex-basis:42px;width:42px;height:42px}
  .release-notes-summary{grid-template-columns:1fr}
  .release-notes-summary>div{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:10px 18px}
  .release-notes-summary span{margin-bottom:0}
  .release-notes-content{padding:16px 14px 24px}
  .release-change-card{margin-bottom:14px}
  .release-change-copy{padding:14px}
  .release-notes-footer{display:grid;gap:5px;padding:13px 18px 16px}
  .release-notes-footer strong{white-space:normal}
  .release-history li{grid-template-columns:1fr;padding:11px 0}
  .release-history time{order:-1}
}

/* App-style release notes: feature headings and plain business-focused bullets. */
.journey-progress{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:16px}
.journey-stage{min-width:0;padding:12px 8px;position:relative;flex-direction:column;gap:0;text-align:center}
.journey-stage-name{font-size:13px;font-weight:750;min-height:36px}
.journey-stage>strong{display:block;font-size:25px;line-height:1.4;margin:6px 0;color:var(--ink)}
.journey-stage>small{display:block;font-size:11px;line-height:1.5;color:var(--mut);margin-top:6px;overflow-wrap:anywhere}
.journey-stage+.journey-stage:before{content:'→';position:absolute;left:-9px;top:53px;color:var(--accent);font-weight:800}
.journey-pending,.journey-timing{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:12px 0;border-top:1px solid var(--line)}
.journey-pending b,.journey-pending span,.journey-timing b,.journey-timing>div>span{display:block}
.journey-pending b{font-size:19px}.journey-pending span,.journey-timing>div>span{font-size:12px;line-height:1.5;color:var(--mut)}
.journey-overall{font-size:13px;margin:12px 0}
.journey-detail{border-top:1px solid var(--line);padding-top:10px;margin-top:12px}.journey-detail>summary{font-size:13px;font-weight:700;cursor:pointer}.journey-detail>.sub{margin-top:12px}
@media(max-width:760px){.journey-progress{grid-template-columns:repeat(2,minmax(0,1fr))}.journey-stage:nth-child(3):before{content:none}.journey-pending,.journey-timing{grid-template-columns:1fr}.journey-stage-name{min-height:0}}
.journey-conversion .perf-head{flex-wrap:wrap;gap:12px}
.journey-conversion .maturity-card .mc-label{font-size:12px;line-height:1.4;text-transform:none;letter-spacing:0;order:0;flex:none}
.journey-conversion .maturity-card .mc-detail{font-size:12px;line-height:1.5;color:var(--ink)}
.journey-window{display:flex;flex-direction:column;gap:6px;flex-shrink:0;max-width:100%}
.journey-window>span{font-size:12px;font-weight:700;color:var(--mut)}
.journey-window select{max-width:100%;padding:9px 12px;background:var(--card2);color:var(--ink);border:1px solid var(--line);border-radius:8px;font:inherit;font-size:13px;cursor:pointer}
.journey-window select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media(max-width:760px){.journey-conversion .maturity-grid{grid-template-columns:1fr}.regional-lead-quality>.perf-head{flex-wrap:wrap}}

/* Grouped navigation + global filter rail. The navigation answers where the
   reader is; the right rail continues to own the complete analytical scope. */
.dashboard-layout{
  display:grid;grid-template-columns:250px minmax(0,1fr) 260px;
  width:100%;max-width:1800px;margin:0 auto;min-height:calc(100vh - 56px)
}
.main-content{min-width:0;position:relative;display:flex;flex-direction:column;background:var(--bg)}
.nav-sidebar{
  position:sticky;top:56px;height:calc(100vh - 56px);min-width:0;
  display:flex;flex-direction:column;padding:14px 12px;
  background:#0b111a;border-right:1px solid var(--line);
  overflow:hidden;z-index:30
}
.nav-brand{display:flex;align-items:center;gap:10px;padding:0 7px 15px;border-bottom:1px solid var(--line)}
.nav-brand-mark{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:linear-gradient(145deg,#65a8ff,#2f73d9);color:#fff;font-size:12px;font-weight:850;box-shadow:0 8px 18px rgba(34,99,191,.24)}
.nav-brand strong{display:block;color:var(--ink);font-size:13px;line-height:1.25}.nav-brand small{display:block;color:var(--mut);font-size:10px;margin-top:2px}
.nav-sidebar .tabs{
  flex:1;min-height:0;width:100%;max-width:none;margin:0;padding:12px 0 0;
  display:flex;flex-direction:column;flex-wrap:nowrap;gap:3px;overflow-y:auto;overflow-x:hidden;
  border:0;background:transparent;align-items:stretch
}
.tab-group-section{display:block;width:100%}.tab-group-section+.tab-group-section{margin-top:2px}
.nav-sidebar .tab-group{
  position:static;width:100%;min-width:0;min-height:0;margin:0;padding:8px 9px;
  border:0;border-radius:8px;background:transparent;color:#8093b2;box-shadow:none;
  display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:8px;text-align:left;cursor:pointer
}
.nav-sidebar .tab-group::before,.nav-sidebar .tab-group::after{content:none;display:none}
.nav-sidebar .tab-group:hover{background:#121b29;color:#c6d5eb;box-shadow:none}
.tab-group:focus-visible,.nav-sidebar .tab:focus-visible,.nav-sidebar .tab-destination:focus-visible,.nav-utility:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.nav-sidebar .tab-group.current{color:#9ebef0}.nav-sidebar .tab-group[aria-expanded="true"]{background:transparent;color:#c6d5eb;box-shadow:none}
.tab-group-icon{width:18px;height:18px;display:grid;place-items:center;flex:0 0 18px;color:currentColor;font-size:15px;line-height:1}
.platform-nav-icon{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;display:block}
.tab-group-copy{min-width:0;display:flex;flex:1;align-items:center}
.tab-group-name{font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.1em;line-height:1.25}
.tab-group-chevron{width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform .16s ease;opacity:.85}
.tab-group[aria-expanded="true"] .tab-group-chevron{transform:rotate(45deg)}
.tab-group-items{display:flex;flex-direction:column;gap:3px;margin-bottom:8px;padding:0}
.tab-group-section:not(.open) .tab-group-items{display:none}
.tab-group-items:empty{display:none}
.nav-sidebar .tab-group-items .tab-destination{
  width:100%;min-height:38px;display:flex;align-items:center;gap:9px;margin:0;padding:9px 10px;border:0;border-radius:8px;
  background:transparent;color:#99aac4;text-align:left;font:inherit;font-size:12px;font-weight:650;white-space:normal;cursor:pointer
}
.nav-sidebar .tab-group-items .tab-destination:hover{background:#121c2a;color:#fff}
.nav-sidebar .tab-group-items .tab-destination.active{background:#18315a;color:#fff;box-shadow:none}
.tab-destination-icon{width:18px;height:18px;display:grid;place-items:center;flex:0 0 18px;color:currentColor;font-size:14px;line-height:1}
.tab-destination-label{min-width:0;overflow-wrap:anywhere}
.panel [data-cc-sec]{scroll-margin-top:72px}
.tabs>.nav-utility,.tabs>.tab[data-t="usage"]{
  width:100%;display:block!important;border:0;border-radius:8px!important;background:transparent!important;
  color:#a9bad3!important;text-align:left!important;font-size:12px!important;line-height:1.25;text-decoration:none!important
}
.tabs>.nav-utility:hover,.tabs>.tab[data-t="usage"]:hover{background:color-mix(in srgb,var(--accent) 9%,transparent)!important;color:var(--ink)!important}
#access-usage-link,.tabs>.tab[data-t="usage"]{margin-top:auto!important;border-top:1px solid var(--line)!important;border-radius:0!important;padding-top:18px!important}
#tabs:has(#access-usage-link)>.tab[data-t="usage"]{display:none!important}
#tabs:not(:has(#access-usage-link)):not(:has(.tab[data-t="usage"])) #access-logout-link{margin-top:auto!important;border-top:1px solid var(--line)!important;border-radius:0!important;padding-top:18px!important}
#access-admin-link{margin-top:2px!important}#access-logout-link{margin-top:2px!important;color:var(--mut)!important}
.sidebar{top:56px;height:calc(100vh - 56px);border-left:1px solid var(--line)}
.sidebar-title{display:flex;align-items:center;justify-content:space-between;gap:8px}
.filter-collapse{width:26px;height:26px;border:1px solid var(--line);border-radius:7px;background:var(--card2);color:var(--mut);cursor:pointer;display:grid;place-items:center;flex:0 0 26px}
.filter-collapse::before{content:'›';font-size:20px;line-height:1;transform:rotate(0)}
.filter-collapse:hover{border-color:var(--accent);color:var(--ink)}
body.filters-collapsed .dashboard-layout{grid-template-columns:250px minmax(0,1fr) 48px}
body.filters-collapsed .sidebar{padding-left:10px;padding-right:10px;overflow:hidden}
body.filters-collapsed .sidebar-title{border-bottom:0;padding-bottom:0;margin-bottom:0}
body.filters-collapsed .sidebar-title>span,body.filters-collapsed .sidebar>.filter-group,body.filters-collapsed .sidebar>.filter-sep,body.filters-collapsed .sidebar>.filter-hint,body.filters-collapsed .sidebar>.filter-reset{display:none}
body.filters-collapsed .filter-collapse::before{transform:rotate(180deg)}
.nav-sidebar-toggle,.nav-sidebar-overlay{display:none}

/* Workspace chrome adapted from the approved grouped-sidebar prototype. */
.workspace-topbar{
  position:sticky;top:56px;z-index:28;min-height:58px;padding:0 18px;
  display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);
  background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(12px)
}
.workspace-breadcrumb{min-width:0;display:flex;align-items:center;gap:7px;color:#7f91af;font-size:12px}
.workspace-breadcrumb strong{min-width:0;color:var(--ink);font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.workspace-topbar-spacer{flex:1}
.workspace-filter-toggle,.workspace-search-trigger,.workspace-version{
  height:36px;border:1px solid var(--line);border-radius:9px;background:var(--card2);color:#9db0cd;
  display:flex;align-items:center;gap:8px;padding:0 10px;font:inherit;font-size:11px;font-weight:750;cursor:pointer
}
.workspace-filter-toggle:hover,.workspace-search-trigger:hover,.workspace-version:hover{border-color:#42618f;color:var(--ink)}
.workspace-filter-toggle.active{background:#17325f;border-color:#3e79d5;color:#fff}
.workspace-filter-toggle svg,.workspace-search-trigger svg,.workspace-command-search svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
.workspace-search-trigger{width:190px;text-align:left}.workspace-search-trigger kbd,.workspace-command-search kbd{margin-left:auto;border:1px solid #344159;background:#1a2434;border-radius:5px;padding:1px 5px;color:#9dacc4;font-size:10px;font-family:inherit;font-weight:650}
.workspace-version{border-color:#315b92;background:#132541;color:#9cc8ff;font-weight:850}
.workspace-command-overlay{position:fixed;inset:0;z-index:500;display:flex;align-items:flex-start;justify-content:center;padding-top:110px;background:rgba(3,6,11,.72);backdrop-filter:blur(6px)}
.workspace-command-overlay[hidden]{display:none}
.workspace-command-dialog{width:min(580px,calc(100% - 36px));max-height:min(560px,calc(100vh - 150px));overflow:hidden;border:1px solid #34455f;border-radius:14px;background:#101825;box-shadow:0 28px 90px #000;padding:9px}
.workspace-command-search{display:flex;align-items:center;gap:9px;padding:10px;border-bottom:1px solid var(--line)}
.workspace-command-search input{min-width:0;width:100%;border:0;outline:0;background:transparent;color:#fff;font:inherit;font-size:15px}.workspace-command-search input::placeholder{color:#657895}
.workspace-command-results{padding:8px 0;overflow-y:auto;max-height:460px}
.workspace-command-label{padding:6px 9px;color:#7386a7;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.12em}
.workspace-command-item{width:100%;border:0;background:transparent;color:#bbc9dd;display:flex;align-items:center;gap:10px;padding:10px;border-radius:8px;text-align:left;font:inherit;cursor:pointer}
.workspace-command-item:hover,.workspace-command-item.active{background:#1a2940;color:#fff}.workspace-command-item>span:last-child{margin-left:auto;color:#6d819f;font-size:11px}.workspace-command-item-icon{display:grid;place-items:center;color:#8ebcff}.workspace-command-empty{margin:8px 9px 12px;color:var(--mut);font-size:12px}
body.command-palette-open{overflow:hidden}

/* Tableau-inspired KPI-to-detail cards. Chart sources are declared on the
   rendered card, line and bullet elements in candidate.js. */
:root{--metric-blue:#3987e5;--metric-aqua:#45c4a1;--metric-amber:#f0ad4e;--metric-magenta:#d55181}
#p-overview .candidate-ops-grid{grid-template-columns:minmax(0,1fr)}
.metric-section{margin:0;min-width:0}
.metric-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:0 0 12px}
.metric-section-head h3,.metric-section-head h4{margin:0 0 4px;color:var(--ink);font-size:17px;line-height:1.25}.metric-section-head h4{font-size:14px}.metric-section-head p{margin:0;color:var(--mut);font-size:11px;line-height:1.55;max-width:780px}.metric-section-head>span{flex:0 0 auto;padding:6px 9px;border:1px solid var(--line);border-radius:999px;color:#a9bad4;font-size:9px;font-weight:800}
.metric-section-head-secondary{margin-top:22px;align-items:flex-start}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.headline-operational{grid-template-columns:repeat(3,minmax(0,1fr))}
.metric-card{--metric-accent:var(--metric-blue);position:relative;min-width:0;min-height:180px;padding:16px 16px 13px;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:linear-gradient(155deg,color-mix(in srgb,var(--card2) 92%,var(--metric-accent) 8%),var(--card));box-shadow:0 16px 38px rgba(0,0,0,.15);transition:transform .18s ease,border-color .18s ease}
.metric-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--metric-accent) 46%,var(--line))}.metric-card::after{content:"";position:absolute;inset:0 0 auto;height:2px;background:var(--metric-accent);opacity:.92}
.metric-card-top{display:flex;align-items:flex-start;gap:10px}.metric-card-icon{width:34px;height:34px;display:grid;place-items:center;flex:0 0 34px;border:1px solid color-mix(in srgb,var(--metric-accent) 28%,transparent);border-radius:9px;background:color-mix(in srgb,var(--metric-accent) 14%,transparent);color:var(--metric-accent)}.metric-card-icon svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.metric-card-label{margin-top:1px;color:#a9bad4;font-size:10px;font-weight:850;letter-spacing:.09em;line-height:1.3;text-transform:uppercase}.metric-card-context{margin-top:3px;color:#6f83a4;font-size:9px;line-height:1.35}
.metric-card-value-row{display:flex;align-items:baseline;gap:8px;min-width:0;margin-top:13px}.metric-card-value{min-width:0;color:var(--ink);font-size:30px;font-weight:850;letter-spacing:-.035em;line-height:1;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.metric-card-delta{flex:0 1 auto;font-size:10px;font-weight:850;line-height:1.25}.metric-card-delta.up{color:var(--good)}.metric-card-delta.down{color:var(--bad)}.metric-card-delta.neutral{color:var(--warn)}
.metric-card-meaning{min-height:30px;margin:7px 0 0;color:#a8b9d2;font-size:10px;line-height:1.45}.metric-card-meaning strong{color:var(--ink)}
.metric-spark{position:absolute;left:13px;right:13px;bottom:10px;height:48px}.metric-spark>span{position:absolute;right:0;top:0;color:#6f83a4;font-size:8px;font-weight:800;text-transform:uppercase}.metric-spark svg{width:100%;height:100%;overflow:visible}.metric-spark-grid{stroke:var(--line);stroke-width:1}.metric-spark-area{fill:color-mix(in srgb,var(--metric-accent) 11%,transparent)}.metric-spark-line{fill:none;stroke:var(--metric-accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.metric-spark-dot{fill:var(--metric-accent);stroke:var(--card);stroke-width:2}
.metric-pace{position:absolute;left:15px;right:15px;bottom:15px}.metric-pace-track{height:7px;overflow:visible;position:relative;border-radius:999px;background:color-mix(in srgb,var(--line) 84%,transparent)}.metric-pace-track i{display:block;height:100%;border-radius:999px;background:var(--metric-accent)}.metric-pace-track b{position:absolute;left:calc(100% - 2px);top:-4px;width:2px;height:15px;border-radius:2px;background:var(--ink)}.metric-pace-copy{display:flex;justify-content:space-between;margin-top:6px;color:#7286a6;font-size:8px}.metric-pace-copy strong{color:#c9d5e8;font-weight:750}
.metric-card-fallback{position:absolute;left:15px;right:15px;bottom:17px;color:var(--mut);font-size:9px}
.metric-card-hero{min-height:208px}.metric-card-hero .metric-card-value{font-size:36px}.metric-card-hero .metric-spark{height:58px}
.metric-card-compact{min-height:184px}.metric-card-compact .metric-card-value{font-size:27px}
.metric-decision-strip{display:grid;grid-template-columns:150px 1fr;gap:14px;align-items:center;margin-top:12px;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:var(--card2)}.metric-decision-strip strong{color:#78adf0;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.1em}.metric-decision-strip p{margin:0;color:#b6c5da;font-size:11px;line-height:1.5}
.headline-detail{margin-top:14px;border-top:1px solid var(--line);padding-top:10px}.headline-detail>summary{width:max-content;max-width:100%;cursor:pointer;color:var(--accent-text);font-size:10px;font-weight:800}.headline-detail .headline-ten{margin-top:10px}
.gmv-driver-summary{margin:0 0 14px}.gmv-driver-kpis{margin-bottom:0}.gmv-driver-kpis>.metric-card{display:block;min-height:208px}.gmv-driver-kpis>.metric-card strong{font-size:inherit}
@media(max-width:1280px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.headline-operational{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.metric-grid,.headline-operational{grid-template-columns:1fr}.metric-section-head{display:block}.metric-section-head>span{display:inline-block;margin-top:8px}.metric-decision-strip{grid-template-columns:1fr}.metric-card{min-height:190px}.metric-card-hero{min-height:208px}}

/* Sequential journey. Visual grammar adapted from the approved Higher
   Education Admissions reference; all nodes use one verified nested cohort. */
.journey-conversion{padding:0;overflow:hidden}
.journey-flow-head{padding:16px 17px 14px;margin:0;border-bottom:1px solid var(--line)}
.journey-flow-head .sub{margin-bottom:0;max-width:900px}
.journey-window-segments{display:flex;gap:5px;padding:4px;background:color-mix(in srgb,var(--bg) 70%,var(--card2));border:1px solid var(--line);border-radius:10px;flex:0 0 auto}
.journey-window-segments button{border:0;background:transparent;color:var(--mut);border-radius:7px;padding:7px 11px;font:inherit;font-size:11px;font-weight:800;cursor:pointer}
.journey-window-segments button:hover{color:var(--ink)}.journey-window-segments button.active{background:#234b7c;color:#fff;box-shadow:0 4px 12px rgba(0,0,0,.2)}
.journey-flow-scroll{overflow-x:auto;padding:8px 12px 0}.journey-flow{display:block;width:100%;min-width:880px;height:auto}
.journey-flow-band{transition:opacity .18s ease}.journey-flow-band:hover{opacity:1!important}
.journey-flow-node{stroke:var(--card);stroke-width:2}.journey-flow-node-label{font-size:10px;font-weight:800;fill:#fff}.journey-flow-node-rate{font-size:12px;font-weight:900;fill:#fff}.journey-flow-node-detail{font-size:7.5px;font-weight:700;fill:#e6eef9}.journey-flow-note{font-size:8px;font-weight:700;fill:var(--mut)}
.journey-flow-stage{font-size:10px;font-weight:800;letter-spacing:.12em;fill:#7890b3}.journey-flow-stage-rate{font-size:11px;font-weight:800;fill:var(--ink)}
.journey-flow-empty{padding:38px 18px;text-align:center}
.journey-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:0;background:var(--line);border-top:1px solid var(--line)}
.journey-stat{background:var(--card2);padding:13px 15px;min-width:0}.journey-stat small{display:block;color:var(--mut);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.journey-stat strong{display:block;color:var(--ink);font-size:22px;margin:4px 0 3px}.journey-stat span{display:block;color:var(--mut);font-size:10px;line-height:1.4}.journey-stat span b{color:var(--ink)}
.journey-flow-legend{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:11px 16px;background:color-mix(in srgb,var(--bg) 60%,var(--card2));color:var(--mut);font-size:10px}.journey-flow-legend span{display:flex;gap:7px;align-items:center}.journey-flow-legend i{width:14px;height:5px;border-radius:99px;background:currentColor}.journey-flow-legend .progressed{color:#3987e5}.journey-flow-legend .stopped{color:#7f8b9d}
.journey-conversion .journey-detail{margin:0;padding:12px 16px;border-top:1px solid var(--line)}

@media(max-width:1180px) and (min-width:961px){
  .dashboard-layout{grid-template-columns:218px minmax(0,1fr) 232px}.nav-sidebar{padding-inline:9px}.nav-brand{padding-inline:5px}.nav-brand strong{font-size:12px}
  body.filters-collapsed .dashboard-layout{grid-template-columns:218px minmax(0,1fr) 48px}
}
@media(max-width:960px){
  .dashboard-layout,body.filters-collapsed .dashboard-layout{grid-template-columns:minmax(0,1fr)}
  .nav-sidebar{position:fixed;left:-282px;top:56px;width:272px;height:calc(100vh - 56px);z-index:240;transition:left .24s ease;box-shadow:0 16px 38px rgba(0,0,0,.34)}
  .nav-sidebar.open{left:0}.nav-sidebar.open~.nav-sidebar-overlay{display:block;position:fixed;inset:56px 0 0;z-index:229;background:rgba(0,0,0,.46)}
  .nav-sidebar-toggle{display:grid;place-items:center;position:fixed;left:16px;bottom:20px;z-index:241;width:48px;height:48px;border:0;border-radius:50%;background:var(--accent);color:#fff;box-shadow:0 4px 16px rgba(0,0,0,.3);cursor:pointer}
  .nav-sidebar-toggle::before{content:'☰';font-size:20px}.sidebar{z-index:240}
  body.filters-collapsed .sidebar{padding:20px 18px;overflow-y:auto}body.filters-collapsed .sidebar-title>span,body.filters-collapsed .sidebar>.filter-group,body.filters-collapsed .sidebar>.filter-sep,body.filters-collapsed .sidebar>.filter-hint,body.filters-collapsed .sidebar>.filter-reset{display:initial}body.filters-collapsed .filter-collapse{display:none}
  .workspace-topbar{padding-left:70px}
}
@media(max-width:760px){.journey-flow-head{align-items:flex-start}.journey-window-segments{margin-top:4px}.journey-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-topbar{padding-right:10px;gap:7px}.workspace-breadcrumb>span:nth-child(2),.workspace-breadcrumb>span:first-child,.workspace-filter-toggle span,.workspace-search-trigger span,.workspace-search-trigger kbd{display:none}.workspace-filter-toggle,.workspace-search-trigger{width:36px;padding:0;justify-content:center}.workspace-version{padding-inline:8px}.workspace-command-overlay{padding-top:78px}}

.release-notes-dialog{width:min(720px,94vw)}
.release-change-note{margin-bottom:22px;padding-bottom:22px;border-bottom:1px solid var(--line)}
.release-change-note h3{margin:0 0 10px;color:var(--ink);font-size:17px;line-height:1.35;font-weight:800}
.release-change-bullets{margin:0;padding-left:20px;list-style:disc}
.release-change-bullets li{margin:0 0 9px;padding-left:3px;color:color-mix(in srgb,var(--mut) 76%,var(--ink));font-size:14px;line-height:1.65;overflow-wrap:anywhere}
.release-change-bullets li:last-child{margin-bottom:0}
.release-change-bullets li::marker{color:var(--mut)}
.release-change-bullets strong{color:var(--ink);font-weight:800}
.release-note-path{color:var(--ink);font-size:inherit}
@media(max-width:700px){
  .release-notes-dialog{width:100vw}
}

/* ── 47. Weighted contribution value ────────────────────────────
   The signed percentage-point cell carries its own colour so the
   shared .good/.bad classes keep their existing meaning and tone
   everywhere else. Colours reuse the theme-aware semantic tones. */
.contribution-value{
  font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap;
  color:var(--mut);
}
.contribution-value.positive{color:var(--sev-good)}
.contribution-value.negative{color:var(--sev-bad)}
.contribution-value.zero{color:var(--mut)}

/* Sortable comparison tables: native buttons preserve keyboard access while
   leaving the existing table geometry and sticky header behavior intact.
   The 2px block padding is deliberate — it brings the header row to ~34px,
   which is the offset sticky section labels are positioned against. */
.table-sort-button{display:inline-flex;align-items:center;justify-content:inherit;gap:5px;width:100%;padding:2px 0;border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;text-align:inherit;cursor:pointer;transition:color .15s ease}
th.r .table-sort-button{justify-content:flex-end}
.table-sort-label{min-width:0}
/* Reserve a constant marker box: the idle glyph is 4.5px wide and the sorted
   arrows are 7.8px, so a variable marker reflowed the column on every sort. */
.table-sort-marker{flex:none;width:10px;text-align:center;color:var(--mut);font-size:10px;opacity:.78;line-height:1}
/* On right-aligned columns the marker leads, so the header label stays flush
   with the figures beneath it instead of being pushed off the column edge. */
th.r .table-sort-marker{order:-1}
/* Affordance carries on the whole header, not only the marker glyph.
   --accent-text is the light-mode-legible companion of --accent. */
.table-sort-button:hover,.table-sort-button:focus-visible,.table-sort-button.active{color:var(--accent-text)}
.table-sort-button:hover .table-sort-label,.table-sort-button:focus-visible .table-sort-label{text-decoration:underline;text-underline-offset:3px}
.table-sort-button:hover .table-sort-marker,.table-sort-button:focus-visible .table-sort-marker,.table-sort-button.active .table-sort-marker{color:var(--accent-text);opacity:1}
.table-sort-button:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-radius:4px}
@media(max-width:760px){
  .table-sort-button{gap:4px}
  .table-sort-marker{width:9px;font-size:9px}
}

/* === Appended additions (canonical-UI append-only): layout containment + working-adult referral lead-share card === */
.main-content>.wrap{min-width:0;max-width:100%}
.referral-adult-share .referral-adult-kpis{margin:8px 0 16px}
.adult-share-bars{display:flex;flex-direction:column;gap:2px}
.adult-share-bars .ref-break-row{grid-template-columns:minmax(140px,220px) minmax(120px,1fr)}
.referral-adult-share .adult-share-guard{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.referral-mix-switch{display:flex;gap:4px;flex-shrink:0;padding:4px;border:1px solid var(--line);border-radius:9px}
.referral-mix-switch button{border:0;border-radius:6px;background:transparent;color:var(--mut);padding:8px 12px;font:inherit;font-weight:700;cursor:pointer}
.referral-mix-switch button[aria-pressed="true"]{background:var(--accent);color:#09111f}
.referral-mix-switch button:focus-visible,.referral-mix-values summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.referral-mix-panel{padding-top:18px;margin-top:16px;border-top:1px solid var(--line);min-width:0}
.referral-mix-panel h4{font-size:15px;margin:0 0 6px;color:var(--ink)}
.nav-sidebar [data-tab-group-section="overview"]{--nav-color:#86b6ef}
.nav-sidebar [data-tab-group-section="revenue"]{--nav-color:#53d4b3}
.nav-sidebar [data-tab-group-section="acquisition"]{--nav-color:#f4ba61}
.nav-sidebar [data-tab-group-section="performance"]{--nav-color:#bca8f5}
.nav-sidebar [data-tab-group-section="whatsapp"]{--nav-color:#65d5a0}
.nav-sidebar .tab-group-section .tab-group,.nav-sidebar .tab-group-section .tab-group.current,.nav-sidebar .tab-group-section .tab-group[aria-expanded="true"]{color:var(--nav-color)}
.nav-sidebar .tab-group-section .tab-group-name{color:inherit}
.nav-sidebar .tab-group-section .tab-destination .platform-nav-icon{color:var(--nav-color)}
.nav-sidebar .tab-group-section .tab-destination.active{background:color-mix(in srgb,var(--nav-color) 16%,#0c121c);color:#fff;box-shadow:inset 3px 0 var(--nav-color)}
.nav-sidebar .tab-group-section .tab-group:focus-visible,.nav-sidebar .tab-group-section .tab-destination:focus-visible{outline-color:var(--nav-color)}
.referral-adult-share .candidate-echart{min-width:0;max-width:100%}
[data-cc-sec="referral-combined-trend"]{overflow-x:auto}
.referral-adult-share .referral-adult-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
.referral-adult-share .metric-card{min-height:150px}
.referral-mix-values{margin-top:8px}
.referral-mix-values summary{cursor:pointer;color:var(--ink);font-weight:600;padding:8px 0}
.referral-mix-values .perf-scroll{width:100%;max-width:100%;box-sizing:border-box;border-radius:9px;border:1px solid var(--line)}
.referral-mix-values table{width:100%;min-width:640px;border-collapse:separate;border-spacing:0}
.referral-mix-values th,.referral-mix-values td{text-align:center;vertical-align:middle;padding:7px 10px;border-right:1px solid var(--line)}
.referral-mix-values th{background:#17365b;color:#fff;font-weight:700}
.referral-mix-values td{color:var(--ink)}
.referral-mix-values tbody tr:nth-child(odd){background:var(--card)}
.referral-mix-values tbody tr:nth-child(even){background:var(--card2)}
@media(max-width:700px){.referral-adult-share .perf-head{flex-wrap:wrap}.referral-adult-share .referral-adult-kpis{grid-template-columns:1fr}.referral-mix-switch button{min-height:40px}}
/* chartSource: mustafa:rounded-banded-table. New analytical tables only. */
.analytics-table-shell{border:1px solid #344052;border-radius:10px;overflow:hidden;margin-top:12px}
.analytics-table-shell table{border-collapse:separate;border-spacing:0;width:100%;font-size:14px}
.analytics-table-shell th{background:#17365b;color:#fff;font-weight:700}
.analytics-table-shell td{color:#fff;background:#202630}
.analytics-table-shell tr:nth-child(even) td{background:#252d38}
.analytics-table-shell th,.analytics-table-shell td{padding:7px 10px;text-align:center;vertical-align:middle;border-bottom:0}
.analytics-table-shell th+th,.analytics-table-shell td+td{border-left:1px solid #344052}
.analytics-table-shell .table-sort-button{color:inherit;justify-content:center}
/* The newly added Referral Growth and WhatsApp tables share this source ID.
   Keep the treatment scoped to them; legacy performance tables are unchanged. */
.perf-scroll table.mini[data-chart-source="mustafa:rounded-banded-table"] thead th,
.perf-scroll table.mini[data-chart-source="mustafa:rounded-banded-table"] thead th:first-child{
  background:#17365b;color:#fff;font-size:15px;font-weight:800;
  text-align:center;vertical-align:middle;padding:9px 10px;
  box-shadow:inset 0 -1px 0 #344052;
}
.perf-scroll table.mini[data-chart-source="mustafa:rounded-banded-table"] tbody td,
.perf-scroll table.mini[data-chart-source="mustafa:rounded-banded-table"] tbody td:first-child{
  color:#fff;background:#202630;font-size:14px;font-weight:600;
  text-align:center;vertical-align:middle;padding:7px 10px;
  box-shadow:none;
}
.perf-scroll table.mini[data-chart-source="mustafa:rounded-banded-table"] tbody tr:nth-child(even) td,
.perf-scroll table.mini[data-chart-source="mustafa:rounded-banded-table"] tbody tr:nth-child(even) td:first-child{
  background:#252d38;
}
.perf-scroll table.mini[data-chart-source="mustafa:rounded-banded-table"] th+th,
.perf-scroll table.mini[data-chart-source="mustafa:rounded-banded-table"] td+td{border-left:1px solid #344052}
.perf-scroll table.mini[data-chart-source="mustafa:rounded-banded-table"] thead .table-sort-button,
.perf-scroll table.mini[data-chart-source="mustafa:rounded-banded-table"] thead th.r .table-sort-button{
  color:#fff;font-size:inherit;font-weight:inherit;justify-content:center;text-align:center;min-height:32px;
}
.perf-scroll table.mini[data-chart-source="mustafa:rounded-banded-table"] thead .table-sort-button:hover,
.perf-scroll table.mini[data-chart-source="mustafa:rounded-banded-table"] thead .table-sort-button:focus-visible,
.perf-scroll table.mini[data-chart-source="mustafa:rounded-banded-table"] thead .table-sort-button.active{color:#fff}
.perf-scroll table.mini[data-chart-source="mustafa:rounded-banded-table"] thead .table-sort-marker{color:#d9e8ff;opacity:1}
.perf-scroll table.mini[data-chart-source="mustafa:rounded-banded-table"] thead th.r .table-sort-marker{order:0}
.wa-filters{display:flex;flex-wrap:wrap;gap:14px}
.wa-filters label{display:flex;flex-direction:column;gap:7px;color:var(--mut);font-size:13px}
.wa-filters input,.wa-filters select{background:#1c2635;color:#fff;border:1px solid #425269;border-radius:8px;padding:9px;min-height:42px}
.wa-matrix-toolbar{display:flex;align-items:end;flex-wrap:wrap;gap:16px;margin:16px 0 4px}
.wa-matrix-toolbar label{display:flex;flex-direction:column;gap:6px;color:var(--mut);font-size:13px;font-weight:700}
.wa-matrix-toolbar select{background:#1c2635;color:#fff;border:1px solid #425269;border-radius:8px;padding:9px;min-height:42px}
.wa-matrix-toolbar .sub{margin:0 0 8px}
.wa-matrix{min-width:640px}
.wa-matrix th:first-child,.wa-matrix td:first-child{min-width:190px}
.wa-matrix th:not(:first-child),.wa-matrix td:not(:first-child){min-width:100px}
.perf-scroll table.mini.wa-matrix tbody td[data-wa-heat="0"],.perf-scroll table.mini.wa-matrix tbody tr:nth-child(even) td[data-wa-heat="0"]{background:#873f48;color:#fff}
.perf-scroll table.mini.wa-matrix tbody td[data-wa-heat="1"],.perf-scroll table.mini.wa-matrix tbody tr:nth-child(even) td[data-wa-heat="1"]{background:#886032;color:#fff}
.perf-scroll table.mini.wa-matrix tbody td[data-wa-heat="2"],.perf-scroll table.mini.wa-matrix tbody tr:nth-child(even) td[data-wa-heat="2"]{background:#5d6a37;color:#fff}
.perf-scroll table.mini.wa-matrix tbody td[data-wa-heat="3"],.perf-scroll table.mini.wa-matrix tbody tr:nth-child(even) td[data-wa-heat="3"]{background:#216a58;color:#fff}
.perf-scroll table.mini.wa-matrix tbody td[data-wa-heat="same"],.perf-scroll table.mini.wa-matrix tbody tr:nth-child(even) td[data-wa-heat="same"]{background:#305477;color:#fff}
.perf-scroll table.mini.wa-matrix tbody td.wa-matrix-total{font-weight:800}
.wa-metrics{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));margin-bottom:20px}
#p-whatsapp .candidate-echart{min-width:0;width:100%;max-width:100%}
.referral-persona-details summary,#p-whatsapp summary{cursor:pointer;font-weight:700;padding:8px 0}
@media print{.analytics-table-shell td{background:#fff!important;color:#111!important}.analytics-table-shell th{background:#17365b!important;color:#fff!important}}
.forecast-plan .plan-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;margin:20px 0}
.forecast-plan label{display:flex;flex-direction:column;gap:7px;font-size:14px;font-weight:700}
.forecast-plan input,.forecast-plan textarea{font:inherit;color:var(--text,#edf3fb);background:var(--bg2,#1c2533);border:1px solid var(--border,#354354);border-radius:8px;padding:10px;max-width:100%}
.forecast-plan .plan-actions{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}.forecast-plan button{padding:10px 16px;border-radius:8px;cursor:pointer;background:var(--card2,#1c2533);border:1px solid var(--line,#354354);color:var(--ink,#edf3fb)}
.forecast-plan button:focus-visible{outline:2px solid #78b1ff;outline-offset:3px}.forecast-plan button:disabled{opacity:.6;cursor:wait}
.tab-group-section[data-tab-group-section="whatsapp"]{border-top:1px solid var(--line,#2b3747);margin-top:16px;padding-top:12px}
.wa-platform-metrics{grid-template-columns:repeat(5,minmax(0,1fr));margin:20px 0;gap:14px}
.wa-platform-metrics .metric-card{min-width:0;min-height:150px}.wa-platform-metrics .metric-card-value{overflow-wrap:anywhere;font-size:clamp(22px,2.25vw,34px)}
@media(max-width:1100px){.wa-platform-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.wa-platform-metrics .metric-card:last-child{grid-column:1/-1}}
@media(max-width:650px){.wa-platform-metrics .metric-card{padding:12px}.wa-platform-metrics .metric-card-value{font-size:28px}}

/* ── 48. Command Center redesign — shell, filter row and page ──────
   Layout and styling only. The left navigation spans the full height,
   the top bar and filter row replace the header band and the right
   filter rail, and the Command Center reads summary → commercial →
   funnel → actions → teams. Colours map to the theme variables so
   light and dark both follow the same hierarchy. */
:root[data-theme="dark"]{
  --bg:#0e1116;--card:#161a21;--card2:#1c212b;--line:#252c39;--ink:#e8ecf3;--mut:#9aa3b5;
  --good:#43c59e;--warn:#e0a34e;--bad:#e8736f;--accent:#5b9dff;
  --sidebar:#12161c;--cc-ref:#c58af0;--cc-good-deep:#2f8f73;--cc-hover:#1a202a;--cc-active:#1f2632
}
:root[data-theme="light"]{--sidebar:#ffffff;--cc-ref:#9b5fbf;--cc-good-deep:#12946a;--cc-hover:#eef1f6;--cc-active:#e7edf8}
body.cc-shell{font-family:'IBM Plex Sans','Inter',-apple-system,'Segoe UI',Roboto,Helvetica,Arial,'PingFang SC','Microsoft YaHei',sans-serif;font-variant-numeric:tabular-nums;background:var(--bg)}
.cc-shell .cc-hidden,.cc-shell #sidebar-reset.cc-hidden{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Retired chrome: the header band, helper box, rail toggles and floating buttons. */
.cc-shell>header{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.cc-shell .wrap>.orient,.cc-shell #workspaceFilterToggle,.cc-shell #sidebarToggle,.cc-shell .sidebar-overlay,
.cc-shell .cc-filter-row .sidebar-title,.cc-shell .cc-filter-row .filter-sep,.cc-shell .cc-filter-row .filter-hint{display:none!important}

/* Grid: nav rail | top bar / filter row / content. */
.cc-shell .dashboard-layout,.cc-shell.filters-collapsed .dashboard-layout{
  display:grid;grid-template-columns:232px minmax(0,1fr);grid-template-rows:auto auto 1fr;
  max-width:none;min-height:100vh;margin:0
}
.cc-shell .main-content{display:contents}
.cc-shell .nav-sidebar{
  grid-column:1;grid-row:1/-1;position:sticky;top:0;height:100vh;
  padding:18px 16px 16px;background:var(--sidebar);border-right:1px solid var(--line)
}
.cc-shell .workspace-topbar{grid-column:2;grid-row:1}
.cc-shell .cc-filter-row{grid-column:2;grid-row:2}
.cc-shell .wrap{grid-column:2;grid-row:3;width:100%;max-width:1440px;margin:0;padding:24px 32px 40px;min-width:0}

/* Sidebar ─ brand, groups, utilities, user chip. */
.cc-shell .nav-brand{gap:11px;padding:0 4px 18px;border-bottom:0}
.cc-logo{width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;border-radius:9px;background:#1a2230;border:1px solid #2f3d55}
.cc-logo svg{width:34px;height:34px;fill:none;stroke-width:2.4;stroke-linecap:round}
.cc-brand-copy strong{display:block;color:var(--ink);font-size:14px;font-weight:600;line-height:1.25}
.cc-brand-copy small{display:block;color:var(--mut);font-size:12px;margin-top:1px}
.cc-shell .nav-sidebar .tabs{padding:6px 0 0;gap:0}
.cc-shell .tab-group-section{margin:0 0 14px}
.cc-shell .nav-sidebar .tab-group{
  padding:6px 10px;min-height:0;height:auto;border-radius:0;background:transparent!important;cursor:pointer;
  font-family:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace
}
.cc-shell .nav-sidebar .tab-group .tab-group-icon,.cc-shell .nav-sidebar .tab-group .tab-group-chevron{display:none}
.cc-shell .tab-group-name{font-size:11px;font-weight:500;letter-spacing:.14em;color:var(--mut)}
.cc-shell .nav-sidebar .tab-group:hover .tab-group-name{color:var(--ink)}
.cc-shell .nav-sidebar .tab-group.current .tab-group-name{color:var(--mut)}
.cc-shell .tab-group-items{gap:2px;margin:2px 0 0}
.cc-shell .nav-sidebar .tab-group-items .tab-destination{
  position:relative;min-height:38px;padding:9px 14px 9px 26px;border-radius:8px;
  color:color-mix(in srgb,var(--mut) 55%,var(--ink));font-size:14px;font-weight:500
}
.cc-shell .nav-sidebar .tab-group-items .tab-destination .tab-destination-icon{display:none}
.cc-shell .nav-sidebar .tab-group-items .tab-destination:hover{background:var(--cc-hover);color:var(--ink)}
.cc-shell .nav-sidebar .tab-group-items .tab-destination.active{background:var(--cc-active);color:var(--ink);font-weight:600}
.cc-shell .nav-sidebar .tab-group-items .tab-destination.active::before{content:'';position:absolute;left:10px;top:9px;bottom:9px;width:3px;border-radius:3px;background:var(--accent)}
.cc-shell .tabs>.nav-utility,.cc-shell .tabs>.tab[data-t="usage"],.cc-shell #access-admin-link,.cc-shell #access-logout-link,.cc-shell #access-usage-link{
  padding:9px 12px!important;font-size:14px!important;font-weight:500;color:color-mix(in srgb,var(--mut) 55%,var(--ink))!important
}
.cc-shell #access-usage-link,.cc-shell .tabs>.tab[data-t="usage"]{padding-top:16px!important}
.cc-user-chip{display:flex;align-items:center;gap:10px;margin-top:12px;padding:10px 8px 0;border-top:1px solid var(--line)}
.cc-user-avatar{width:32px;height:32px;flex:0 0 32px;display:grid;place-items:center;border-radius:50%;background:var(--card2);border:1px solid var(--line);color:var(--mut)}
.cc-user-avatar svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.cc-user-copy strong{display:block;color:var(--ink);font-size:13px;font-weight:600;line-height:1.3}
.cc-user-copy small{display:block;color:var(--mut);font-size:12px;line-height:1.35}

/* Top bar (64px). */
.cc-shell .workspace-topbar{
  position:sticky;top:0;z-index:60;height:64px;min-height:64px;padding:0 32px;gap:12px;
  background:color-mix(in srgb,var(--bg) 94%,transparent);border-bottom:1px solid var(--line);backdrop-filter:blur(10px)
}
.cc-shell .workspace-breadcrumb{gap:8px;font-size:14px;color:var(--mut)}
.cc-shell .workspace-breadcrumb strong{color:var(--ink);font-size:20px;font-weight:600;letter-spacing:-.01em}
.cc-shell #navSidebarToggle{display:none}
.cc-shell .workspace-search-trigger{
  width:auto;min-width:300px;height:40px;padding:0 10px 0 14px;border-radius:8px;border-color:var(--line);
  background:var(--card);color:var(--mut);font-size:14px;font-weight:400
}
.cc-shell .workspace-search-trigger kbd{font-family:'IBM Plex Mono',ui-monospace,monospace;border-color:var(--line);background:var(--card2);color:var(--mut);font-size:11px;padding:2px 6px}
.cc-shell .workspace-search-trigger:hover{border-color:color-mix(in srgb,var(--accent) 50%,var(--line));color:var(--ink)}
.cc-health-pill{
  height:40px;display:inline-flex;align-items:center;gap:6px;padding:0 14px;border-radius:8px;cursor:pointer;
  border:1px solid color-mix(in srgb,var(--warn) 45%,transparent);background:color-mix(in srgb,var(--warn) 12%,transparent);
  color:var(--warn);font:inherit;font-size:14px;font-weight:600;white-space:nowrap
}
.cc-shell .cc-health-pill{margin:0}
:root[data-theme="light"] .cc-health-pill{color:#8a5c0c}
.cc-health-dot{width:8px;height:8px;border-radius:50%;background:var(--warn);flex:none}
.cc-health-pill:hover{background:color-mix(in srgb,var(--warn) 20%,transparent)}
.cc-health-pill:focus-visible,.cc-settings-btn:focus-visible,.cc-settings-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.cc-settings{position:relative}
.cc-settings-btn{width:40px;height:40px;display:grid;place-items:center;border-radius:8px;border:1px solid var(--line);background:var(--card);color:var(--mut);cursor:pointer}
.cc-settings-btn:hover,.cc-settings-btn.active{color:var(--ink);border-color:color-mix(in srgb,var(--accent) 50%,var(--line))}
.cc-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.cc-settings-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:300;width:280px;padding:8px;border:1px solid var(--line);border-radius:12px;background:var(--card);box-shadow:0 18px 44px rgba(0,0,0,.35)}
.cc-settings-menu[hidden]{display:none}
.cc-settings-group{padding:8px 8px 10px;border-bottom:1px solid var(--line);margin-bottom:6px}
.cc-settings-label{display:block;margin-bottom:8px;color:var(--mut);font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.cc-settings .mode-switch{display:flex;flex-wrap:wrap;gap:6px;position:static;padding:0;border:0;background:transparent;box-shadow:none}
.cc-settings .mode-switch button{flex:1 1 calc(50% - 3px);height:34px;border-radius:8px;border:1px solid var(--line);background:var(--card2);color:var(--mut);font:inherit;font-size:13px;font-weight:500;cursor:pointer}
.cc-settings .mode-switch button.active{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}
.cc-settings-item,.cc-settings .platform-release-button{
  width:100%;display:flex;align-items:center;gap:10px;min-height:40px;padding:8px 10px;border:0;border-radius:8px;
  background:transparent;color:var(--ink);font:inherit;font-size:14px;font-weight:500;text-align:left;cursor:pointer;box-shadow:none
}
.cc-settings-item:hover,.cc-settings .platform-release-button:hover{background:var(--cc-hover)}
.cc-settings-item .cc-icon{color:var(--mut)}
.cc-settings-item[hidden]{display:none}

/* Filter row (56px, sticky under the top bar). */
.cc-shell .cc-filter-row{
  position:sticky;top:64px;z-index:55;height:auto;min-height:56px;width:auto;overflow:visible;
  display:flex;align-items:center;gap:10px;padding:9px 32px;
  background:color-mix(in srgb,var(--bg) 96%,transparent);border-left:0;border-bottom:1px solid var(--line);backdrop-filter:blur(10px)
}
.cc-shell .cc-filter-row .filter-group{margin:0;position:relative;display:flex;align-items:center}
.cc-shell .cc-filter-row .filter-label{margin:0;text-transform:none;letter-spacing:0;font-size:14px;font-weight:400;color:var(--mut)}
.cc-shell .cc-pill-group{height:38px;padding:0 4px 0 14px;border:1px solid var(--line);border-radius:999px;background:var(--card);gap:4px}
.cc-shell .cc-pill-group:hover,.cc-shell .cc-pill-group:has(.ms.open){border-color:color-mix(in srgb,var(--accent) 50%,var(--line))}
.cc-shell .cc-period>.filter-label{font-size:0}
.cc-shell .cc-period>.filter-label::before{content:attr(data-cc-label);font-size:14px}
.cc-shell .cc-filter-row .ms{position:static;width:auto}
.cc-shell .cc-filter-row .ms-btn{
  width:auto;height:36px;padding:0 12px 0 4px;border:0;background:transparent;color:var(--ink);
  font:inherit;font-size:14px;font-weight:600;gap:6px;white-space:nowrap
}
.cc-shell .cc-filter-row .ms-btn::after{content:'▾';color:var(--ink);font-size:11px}
.cc-shell .cc-filter-row .ms-panel{
  left:0;right:auto;top:calc(100% + 6px);min-width:240px;max-height:340px;padding:10px 12px;
  background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 44px rgba(0,0,0,.35)
}
.cc-shell .cc-period-day{display:block!important;margin-top:10px!important;padding-top:10px;border-top:1px solid var(--line)}
.cc-shell .cc-period-day .filter-label{display:block;margin-bottom:6px!important;font-size:12px!important;color:var(--mut)}
.cc-shell .cc-period-day .filter-select{width:100%}
.cc-shell .cc-team .filter-select,.cc-shell .cc-team select{
  width:auto;height:36px;padding:0 26px 0 6px;border:0;background-color:transparent;color:var(--ink);
  font:inherit;font-size:14px;font-weight:600;background-position:right 10px center
}
.cc-shell .cc-team .filter-select:focus{box-shadow:none}
.cc-shell .cc-region>.filter-label,.cc-shell .cc-region>.filter-select{position:absolute;width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.cc-seg{display:inline-flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--line);border-radius:999px;background:var(--card)}
.cc-seg button{height:32px;padding:0 16px;border:0;border-radius:999px;background:transparent;color:var(--mut);font:inherit;font-size:14px;font-weight:500;cursor:pointer;white-space:nowrap}
.cc-seg button:hover:not(:disabled){color:var(--ink)}
.cc-seg button.active{background:var(--accent);color:#0b1422;font-weight:600}
:root[data-theme="light"] .cc-seg button.active{background:var(--accent-strong);color:#fff}
.cc-seg button:disabled{cursor:default}
.cc-seg button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.cc-shell #sidebar-reset.cc-reset{width:auto;margin:0;padding:6px 4px;border:0;background:none;color:var(--accent-text);font:inherit;font-size:14px;font-weight:500;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.cc-freshness{margin-left:auto;display:flex;align-items:center;gap:10px;color:var(--mut);font-size:13px;white-space:nowrap}
.cc-freshness b{color:var(--mut);font-weight:500}
.cc-fresh-sep{margin:0 5px}
.cc-shell .cc-version-tag{height:24px;padding:0 7px;border-radius:5px;border:1px solid var(--line);background:transparent;color:var(--mut);font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;font-weight:500}
.cc-shell .cc-version-tag:hover{color:var(--ink);border-color:var(--mut)}

/* Command Center composition. */
.cc-shell #p-overview.active{display:flex;flex-direction:column;gap:20px}
.cc-shell #p-overview>*{margin:0}
.cc-shell #p-overview .card{border-radius:12px;background:var(--card);border-color:var(--line)}
.cc-summary{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:48px;align-items:center;padding:28px 32px;border:1px solid var(--line);border-radius:14px;background:var(--card)}
.cc-summary.cc-summary-solo{grid-template-columns:minmax(0,1fr)}
.cc-summary-meta{display:flex;align-items:center;flex-wrap:wrap;gap:10px 12px;margin-bottom:16px}
.cc-status{display:inline-flex;align-items:center;height:26px;padding:0 12px;border-radius:999px;font-size:14px;font-weight:600;border:1px solid}
.cc-status.warn{color:var(--warn);background:color-mix(in srgb,var(--warn) 12%,transparent);border-color:color-mix(in srgb,var(--warn) 45%,transparent)}
.cc-status.good{color:var(--good);background:color-mix(in srgb,var(--good) 12%,transparent);border-color:color-mix(in srgb,var(--good) 45%,transparent)}
:root[data-theme="light"] .cc-status.warn{color:#8a5c0c}:root[data-theme="light"] .cc-status.good{color:#0e7a52}
.cc-summary-scope{color:var(--mut);font-size:14px}
.cc-summary-headline{margin:0 0 14px;color:var(--ink);font-size:26px;line-height:1.3;font-weight:600;letter-spacing:-.01em}
.cc-summary-headline em{font-style:normal}.cc-summary-headline em.bad{color:var(--bad)}.cc-summary-headline em.good{color:var(--good)}
:root[data-theme="light"] .cc-summary-headline em.bad{color:#b02525}:root[data-theme="light"] .cc-summary-headline em.good{color:#0e7a52}
.cc-shell #p-overview .cc-summary-note{margin:0;padding:0;border:0;background:none;color:var(--mut);font-size:15px;line-height:1.6}
.cc-shell #p-overview .cc-summary-note b{color:var(--mut);font-weight:500}
.cc-forecast-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px;color:var(--mut);font-size:14px}
.cc-forecast-head b{color:var(--ink);font-weight:700}
.cc-forecast-bar{position:relative;display:flex;height:36px;border-radius:6px;overflow:hidden;background:var(--card2)}
.cc-forecast-bar>span{position:relative;display:flex;align-items:center;min-width:0;overflow:hidden}
.cc-forecast-bar em{font-style:normal;font-size:14px;font-weight:600;white-space:nowrap;padding:0 12px}
.cc-seg-banked{background:var(--good);color:#0c2a20}
.cc-seg-rest{background:var(--cc-good-deep);color:#e9fff6;justify-content:center}
.cc-seg-gap{justify-content:center;color:var(--bad);background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--bad) 34%,transparent) 0 5px,color-mix(in srgb,var(--bad) 14%,transparent) 5px 10px)}
:root[data-theme="light"] .cc-seg-gap{color:#9c2020}
.cc-seg-rest em,.cc-seg-gap em{padding:0 6px;font-size:13px}
.cc-forecast-bar>span.cc-label-out em{visibility:hidden}
.cc-forecast-target{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink)}
.cc-forecast-labels{display:flex;justify-content:flex-end;gap:12px;min-height:0;margin-top:6px;font-size:12px;font-weight:600}
.cc-forecast-labels:empty{display:none}
.cc-forecast-labels .cc-seg-rest-label{color:var(--good)}.cc-forecast-labels .cc-seg-gap-label{color:var(--bad)}.cc-forecast-labels .cc-seg-banked-label{color:var(--good)}
.cc-forecast-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:18px}
.cc-forecast-stats span{display:block;color:var(--mut);font-size:14px}
.cc-forecast-stats strong{display:block;margin:4px 0 2px;color:var(--ink);font-size:20px;font-weight:600;white-space:nowrap}
.cc-forecast-stats small{display:block;color:var(--mut);font-size:13px}
.cc-forecast-stats small span{display:inline;font-size:inherit}
.cc-forecast-mobile{display:none}

.cc-section-head{display:flex;align-items:center;gap:12px;margin:0 0 12px}
.cc-section-head h3{margin:0;color:var(--ink);font-size:17px;font-weight:600}
.cc-scope-tag{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:4px;border:1px solid;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;font-weight:500;letter-spacing:.08em}
.cc-scope-tag.overall{color:#b38ef0;border-color:color-mix(in srgb,#b38ef0 50%,transparent)}
.cc-scope-tag.funnel{color:var(--good);border-color:color-mix(in srgb,var(--good) 50%,transparent)}
:root[data-theme="light"] .cc-scope-tag.overall{color:#6b3fb0}:root[data-theme="light"] .cc-scope-tag.funnel{color:#0e7a52}
.cc-section-note{color:var(--mut);font-size:13px}
.cc-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.cc-kpi-grid>.headline-primary{display:contents}
.cc-funnel-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px}
.cc-shell .cc-kpi,.cc-shell .metric-card.cc-kpi{
  position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;height:100%;padding:20px 22px 18px;overflow:hidden;
  border:1px solid var(--line);border-radius:12px;background:var(--card);box-shadow:none;transform:none
}
.cc-shell .metric-card.cc-kpi::after{content:none}
.cc-shell .metric-card.cc-kpi:hover{transform:none;border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}
.cc-kpi-label{color:var(--mut);font-size:13px;font-weight:500}
.cc-shell .cc-kpi-value{margin:8px 0 6px;color:var(--ink);font-size:28px;font-weight:600;letter-spacing:-.01em;line-height:1.15;white-space:nowrap}
.cc-kpi-context{color:var(--mut);font-size:13px;line-height:1.4;min-height:18px}
.cc-kpi-context.good{color:var(--good)}.cc-kpi-context.warn{color:var(--warn)}.cc-kpi-context.bad{color:var(--bad)}
:root[data-theme="light"] .cc-kpi-context.good{color:#0e7a52}:root[data-theme="light"] .cc-kpi-context.warn{color:#8a5c0c}:root[data-theme="light"] .cc-kpi-context.bad{color:#b02525}
.cc-spark{margin-top:auto;padding-top:14px;height:48px}
.cc-spark svg{width:100%;height:34px;overflow:visible}
.cc-spark path{fill:none;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.cc-spark .cc-spark-goal{stroke:var(--mut);stroke-width:1;stroke-dasharray:3 3;opacity:.8}
.cc-kpi .cc-bar{margin-top:auto}
.cc-bar{position:relative;height:8px;border-radius:999px;background:var(--card2)}
.cc-bar i{display:block;height:100%;border-radius:999px;background:var(--accent)}
.cc-bar b{position:absolute;top:-5px;width:2px;height:18px;margin-left:-1px;border-radius:2px;background:var(--ink)}
.cc-bar.good i{background:var(--good)}.cc-bar.warn i{background:var(--warn)}.cc-bar.bad i{background:var(--bad)}.cc-bar.accent i{background:var(--accent)}
.cc-kpi>.cc-bar{margin-top:auto;margin-bottom:6px}

.cc-funnel-card{display:grid;grid-template-columns:minmax(0,1fr) 196px;align-items:stretch;padding:24px 26px 20px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.cc-funnel-flow{display:grid;grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr) 64px minmax(0,1fr) 64px minmax(0,1fr);grid-template-rows:auto 72px auto;padding-right:24px;border-right:1px solid var(--line)}
.cc-funnel-stage{display:contents}
.cc-funnel-head{grid-row:1;min-width:0;display:flex;flex-direction:column}
.cc-funnel-label{color:var(--mut);font-size:14px}
.cc-funnel-count{margin:4px 0 12px;color:var(--ink);font-size:24px;font-weight:600;line-height:1.2}
.cc-funnel-track{grid-row:2;position:relative;height:72px;border-radius:6px;background:var(--card2);overflow:hidden}
.cc-funnel-track i{position:absolute;left:0;right:0;bottom:0;display:block;min-height:3px;border-radius:6px 6px 0 0;background:color-mix(in srgb,var(--accent) 72%,#1b3a70)}
.cc-funnel-stage.weakest .cc-funnel-track i{background:var(--warn)}
.cc-funnel-foot{grid-row:3;margin-top:10px;color:var(--mut);font-size:13px;line-height:1.4;min-width:0}
.cc-funnel-stage.weakest .cc-funnel-foot{color:var(--warn)}
:root[data-theme="light"] .cc-funnel-stage.weakest .cc-funnel-foot{color:#8a5c0c}
.cc-funnel-step{grid-row:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}
.cc-step-arrow{width:30px;height:16px;color:var(--mut);stroke-width:1.4}
.cc-rate-pill{display:inline-flex;align-items:center;height:24px;padding:0 9px;border-radius:999px;border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);background:color-mix(in srgb,var(--accent) 14%,transparent);color:color-mix(in srgb,var(--accent) 60%,var(--ink));font-size:13px;font-weight:600;white-space:nowrap}
.cc-funnel-step.weakest .cc-rate-pill{border-color:color-mix(in srgb,var(--warn) 50%,transparent);background:color-mix(in srgb,var(--warn) 14%,transparent);color:var(--warn)}
:root[data-theme="light"] .cc-funnel-step.weakest .cc-rate-pill{color:#8a5c0c}
.cc-funnel-total{display:flex;flex-direction:column;justify-content:center;padding-left:24px}
.cc-funnel-total span{color:var(--mut);font-size:14px}
.cc-funnel-total strong{margin:6px 0 4px;color:var(--ink);font-size:36px;font-weight:600;line-height:1.1}
.cc-funnel-total small{color:var(--mut);font-size:13px}
.cc-funnel-mobile{display:none}

.cc-shell #p-overview .cc-ops-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:20px;align-items:stretch}
.cc-shell #p-overview .cc-ops-grid.cc-ops-solo{grid-template-columns:minmax(0,1fr)}
.cc-shell #p-overview .cc-ops-grid>.card{margin:0;padding:24px 26px}
.cc-action-card .action-center-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--line);margin:0}
.cc-action-card .action-center-head h3{margin:0;font-size:17px;font-weight:600}
.cc-action-card .action-center-head .sub{display:none}
.cc-action-card .action-summary{border:0;background:none;padding:0;color:var(--mut);font-size:13px;font-weight:400}
.cc-shell .cc-action-card .action-center-list{display:block;margin:0}
.cc-shell .cc-action-card .action-alert{
  display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:16px;align-items:start;padding:18px 0;margin:0;
  border:0;border-bottom:1px solid var(--line);border-radius:0;background:none;box-shadow:none;cursor:default
}
.cc-shell .cc-action-card .action-alert:last-child{border-bottom:0;padding-bottom:4px}
.cc-shell .cc-action-card .action-alert::before{content:none}
.cc-rank{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;font-size:14px;font-weight:600;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}
.action-critical .cc-rank{background:color-mix(in srgb,var(--bad) 18%,transparent);color:var(--bad)}
.action-attention .cc-rank{background:color-mix(in srgb,var(--warn) 18%,transparent);color:var(--warn)}
.action-opportunity .cc-rank{background:color-mix(in srgb,var(--good) 18%,transparent);color:var(--good)}
.cc-action-body{min-width:0}
.cc-shell .cc-action-card .action-alert-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin:0 0 4px}
.cc-shell .cc-action-card .actt{color:var(--ink);font-size:16px;font-weight:600;text-transform:none;letter-spacing:0}
.cc-shell .cc-action-card .action-value{color:var(--ink);font-size:16px;font-weight:600}
.cc-shell .cc-action-card .action-value::before{content:': ';color:var(--ink)}
.cc-shell .cc-action-card .action-type{order:3;padding:0;border:0;background:none;color:var(--mut);font-size:12px;font-weight:500}
.cc-shell .cc-action-card .actd{margin:2px 0 0;color:var(--mut);font-size:14px;line-height:1.55;padding:0;border:0;background:none}
.cc-shell .cc-action-card .actd>span{display:none}
.cc-open-btn{height:40px;padding:0 14px;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--accent-text);font:inherit;font-size:14px;font-weight:600;white-space:nowrap;cursor:pointer}
.cc-open-btn:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}
.cc-region-card .cc-card-head h3{margin:0 0 6px;font-size:17px;font-weight:600}
.cc-compare{width:100%;border-collapse:collapse}
.cc-compare th{padding:0 0 10px;color:var(--mut);font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:12px;font-weight:500;letter-spacing:.08em;text-align:right;border-bottom:1px solid var(--line)}
.cc-compare th:first-child{text-align:left}
.cc-compare td{padding:12px 0;border-bottom:1px solid var(--line);color:var(--ink);font-size:14px}
.cc-compare td:first-child{color:color-mix(in srgb,var(--mut) 40%,var(--ink))}
.cc-compare td.r{text-align:right;padding-left:18px;white-space:nowrap}
.cc-compare td.better{color:var(--good);font-weight:600}
:root[data-theme="light"] .cc-compare td.better{color:#0e7a52}
.cc-link{display:inline-block;margin-top:14px;border:0;background:none;padding:0;color:var(--accent-text);font:inherit;font-size:14px;font-weight:500;text-decoration:none;cursor:pointer}
.cc-link:hover{text-decoration:underline}

.cc-shell #p-overview .cc-teams{padding:24px 26px}
.cc-teams-head{display:flex;align-items:center;gap:16px;margin-bottom:12px}
.cc-teams-title{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 12px;flex:1;min-width:0}
.cc-teams-title h3{margin:0;font-size:17px;font-weight:600}
.cc-teams-sub{color:var(--mut);font-size:14px}
.cc-team-tabs{border-radius:10px;background:var(--card2);border-color:transparent}
.cc-team-tabs button{border-radius:8px;height:34px;color:color-mix(in srgb,var(--mut) 55%,var(--ink))}
.cc-team-tabs button.active{background:var(--card);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.25)}
:root[data-theme="light"] .cc-team-tabs button.active{background:#fff;color:var(--ink)}
.cc-teams-all{display:none;margin:0}
.cc-team-pane[hidden]{display:none}
.cc-shell .cc-teams .cc-table-scroll{max-height:none}
.cc-team-table{width:100%;border-collapse:collapse}
.cc-shell .cc-team-table th{padding:10px 12px;color:var(--mut);font-size:14px;font-weight:400;text-align:left;border-bottom:1px solid var(--line);background:var(--card)}
.cc-shell .cc-team-table th.r{text-align:right}
.cc-shell .cc-team-table td{padding:12px;border-bottom:1px solid var(--line);color:var(--ink);font-size:15px;white-space:nowrap}
.cc-shell .cc-team-table tr:last-child td{border-bottom:0}
.cc-shell .cc-team-table td.r{text-align:right}
.cc-team-name{font-weight:600;color:var(--ink)}
.cc-team-region,.cc-shell .cc-team-table td.cc-muted{color:var(--mut)}
.cc-sort{border:0;background:none;padding:0;color:inherit;font:inherit;cursor:pointer}
.cc-sort:hover,.cc-shell .cc-team-table th.sorted .cc-sort{color:var(--ink)}
.cc-sort:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
.cc-col-bm{width:32%}
.cc-bm-cell{display:grid;grid-template-columns:minmax(120px,1fr) 64px;gap:16px;align-items:center}
.cc-bm-cell>span{text-align:right}
.good-text{color:var(--good)}.warn-text{color:var(--warn)}.bad-text{color:var(--bad)}
:root[data-theme="light"] .good-text{color:#0e7a52}:root[data-theme="light"] .warn-text{color:#8a5c0c}:root[data-theme="light"] .bad-text{color:#b02525}
.cc-bm-cell>span.good-text,.cc-bm-cell>span.warn-text,.cc-bm-cell>span.bad-text{color:var(--ink)}
.cc-projection{margin:14px 0 0;color:var(--mut);font-size:13px}
.cc-projection span{color:var(--ink);font-weight:600;margin-right:6px}
.cc-shell #p-overview .cc-teams .team-viz-grid{margin:4px 0 0}
.cc-shell #p-overview .cc-trends{margin:0}
.cc-shell #p-overview .cc-regional.cc-regional-closed{display:none}
.cc-shell #p-overview .cc-recon[hidden]{display:none}
.cc-shell #p-overview .cc-recon .headline-detail{margin:0;border:0;padding:0}
.cc-page-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 20px;margin-top:28px;padding-top:16px;border-top:1px solid var(--line);color:var(--mut);font-size:13px}
.cc-page-foot .prepared-by{color:var(--ink);font-weight:600}
.cc-foot-fresh{display:none}

/* Light theme keeps the same hierarchy on white cards. */
:root[data-theme="light"] .cc-logo{background:#1a2230;border-color:#2f3d55}
:root[data-theme="light"] .cc-shell .workspace-topbar,:root[data-theme="light"] .cc-shell .cc-filter-row{background:color-mix(in srgb,var(--bg) 94%,transparent)}
:root[data-theme="light"] .cc-seg-banked{color:#06281b}
:root[data-theme="light"] .cc-funnel-track i{background:color-mix(in srgb,var(--accent) 80%,#fff)}

/* Medium widths. */
@media(max-width:1280px){
  .cc-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .cc-summary{grid-template-columns:minmax(0,1fr);gap:24px}
  .cc-shell .workspace-search-trigger{min-width:0}
  .cc-shell .workspace-search-trigger>span{display:none}
}
@media(max-width:1100px){
  .cc-shell #p-overview .cc-ops-grid{grid-template-columns:minmax(0,1fr)}
  .cc-funnel-card{grid-template-columns:minmax(0,1fr)}
  .cc-funnel-flow{padding-right:0;border-right:0;padding-bottom:18px;border-bottom:1px solid var(--line)}
  .cc-funnel-total{padding:16px 0 0}
  .cc-freshness>.cc-fresh-copy{display:none}
}
/* Tablet: the navigation becomes a drawer opened from the top-bar menu button. */
@media(max-width:960px){
  .cc-shell .dashboard-layout,.cc-shell.filters-collapsed .dashboard-layout{grid-template-columns:minmax(0,1fr)}
  .cc-shell .workspace-topbar,.cc-shell .cc-filter-row,.cc-shell .wrap{grid-column:1}
  .cc-shell .nav-sidebar{position:fixed;left:-260px;top:0;width:252px;height:100vh;z-index:400;grid-row:auto}
  .cc-shell .nav-sidebar.open{left:0}
  .cc-shell .nav-sidebar.open~.nav-sidebar-overlay{display:block;position:fixed;inset:0;z-index:390;background:rgba(0,0,0,.5)}
  .cc-shell #navSidebarToggle{display:grid;place-items:center;position:static;width:44px;height:44px;margin-left:-8px;border:0;border-radius:8px;background:transparent;color:var(--ink);box-shadow:none}
  .cc-shell #navSidebarToggle::before{content:none}
  .cc-shell #navSidebarToggle .cc-icon{width:22px;height:22px}
  .cc-shell .workspace-topbar{padding-left:16px;padding-right:16px}
}
/* Phone. */
@media(max-width:767px){
  .cc-shell .workspace-topbar{height:56px;min-height:56px;gap:4px}
  .cc-shell .workspace-breadcrumb>span{display:none}
  .cc-shell .workspace-breadcrumb strong{font-size:18px}
  .cc-shell .workspace-search-trigger{width:44px;height:44px;min-width:44px;padding:0;justify-content:center;border:0;background:transparent;color:var(--ink)}
  .cc-shell .workspace-search-trigger kbd,.cc-shell .workspace-search-trigger>span{display:none}
  .cc-health-pill{width:44px;height:44px;padding:0;justify-content:center;border:0;background:transparent}
  .cc-health-pill>:not(.cc-health-dot){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  .cc-health-dot{width:10px;height:10px}
  .cc-settings-btn{width:44px;height:44px;border:0;background:transparent}
  .cc-shell .cc-filter-row{top:56px;padding:10px 16px;gap:8px;overflow-x:auto;overflow-y:visible;scrollbar-width:none}
  .cc-shell .cc-filter-row::-webkit-scrollbar{display:none}
  .cc-shell .cc-filter-row>*{flex:none}
  .cc-shell .cc-filter-row .ms-panel{position:fixed;left:16px;right:16px;top:118px;min-width:0}
  .cc-shell .cc-pill-group{height:40px}
  .cc-freshness{display:none}
  .cc-shell .wrap{padding:16px 16px 32px}
  .cc-shell #p-overview.active{gap:16px}
  .cc-summary{padding:20px;gap:16px;border-radius:14px}
  .cc-summary-scope,.cc-summary-note{display:none}
  .cc-summary-headline{font-size:22px;margin:0}
  .cc-forecast-head,.cc-forecast-stats,.cc-forecast-labels{display:none}
  .cc-forecast-bar em{visibility:hidden}
  .cc-forecast-mobile{display:flex;justify-content:space-between;gap:8px;margin-top:10px;color:var(--mut);font-size:13px}
  .cc-forecast-mobile b{color:var(--ink)}
  .cc-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .cc-kpi-unit{grid-column:1 / -1}
  .cc-funnel-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .cc-shell .cc-kpi{padding:16px}
  .cc-shell .cc-kpi-value{font-size:24px}
  .cc-kpi .cc-spark,.cc-kpi .cc-bar{display:none}
  .cc-section-note{display:none}
  .cc-funnel-card{padding:16px 18px}
  .cc-funnel-flow,.cc-funnel-total{display:none}
  .cc-funnel-mobile{display:grid;gap:12px}
  .cc-funnel-row{display:grid;grid-template-columns:96px minmax(0,1fr) 56px;align-items:center;gap:12px;color:var(--mut);font-size:14px}
  .cc-funnel-row.weakest>span{color:var(--warn)}
  .cc-funnel-row b{color:var(--ink);font-weight:500;text-align:right}
  .cc-funnel-hbar{height:10px;border-radius:999px;background:var(--card2);overflow:hidden}
  .cc-funnel-hbar i{display:block;height:100%;min-width:3px;border-radius:999px;background:color-mix(in srgb,var(--accent) 72%,#1b3a70)}
  .cc-funnel-row.weakest .cc-funnel-hbar i{background:var(--warn)}
  .cc-funnel-row-total{grid-template-columns:minmax(0,1fr) auto;padding-top:12px;border-top:1px solid var(--line)}
  .cc-funnel-row-total b{font-weight:700}
  .cc-shell #p-overview .cc-ops-grid>.card{padding:6px 16px}
  .cc-action-card .action-center-head{display:none}
  .cc-shell .cc-action-card .action-alert{grid-template-columns:32px minmax(0,1fr);gap:12px;padding:14px 0;cursor:pointer}
  .cc-open-btn{display:none}
  .cc-shell .cc-action-card .actd.action-next{display:none}
  .cc-region-card{display:none}
  .cc-shell #p-overview .cc-teams{padding:14px 16px}
  .cc-team-tabs,.cc-teams-sub{display:none}
  .cc-teams-all{display:inline-block}
  .cc-teams-collapsed .cc-team-row.cc-mid{display:none}
  .cc-team-table thead,.cc-team-table td:nth-child(2),.cc-team-table td:nth-child(n+4){display:none}
  .cc-shell .cc-team-table td{padding:12px 6px}
  .cc-bm-cell{grid-template-columns:minmax(0,1fr) 52px;gap:10px}
  .cc-projection,.cc-shell #p-overview .cc-trends{display:none}
  .cc-page-foot{justify-content:center;text-align:center;border-top:0}
  .cc-foot-fresh{display:block}
}

/* Pass 2: specificity and spacing corrections found in review. */
.cc-shell .nav-sidebar .tab-group .tab-group-name,.cc-shell .nav-sidebar .tab-group.current .tab-group-name{color:var(--mut)}
.cc-shell .nav-sidebar .tab-group:hover .tab-group-name{color:var(--ink)}
.cc-shell .workspace-topbar .cc-health-pill{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 45%,transparent);background:color-mix(in srgb,var(--warn) 12%,transparent)}
:root[data-theme="light"] .cc-shell .workspace-topbar .cc-health-pill{color:#8a5c0c}
.cc-shell .cc-health-pill #healthCount{color:inherit;background:none;padding:0;min-width:0;font-weight:600}
.cc-shell #p-overview>.tab-guide-bar{display:none}
.cc-forecast-stats strong{font-size:18px;white-space:normal;overflow-wrap:anywhere;line-height:1.25}
.cc-shell .cc-action-card .action-alert-head{column-gap:0}
.cc-shell .cc-action-card .action-type{margin-left:10px}
.cc-shell .cc-action-card .action-value::before{content:': ';white-space:pre}
.cc-action-card .action-summary{text-align:right}
.cc-step-arrow{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.cc-shell .cc-health-pill span{display:inline;min-width:0;margin:0;padding:0;border-radius:0;background:none;color:inherit;font-size:14px}
.cc-shell .cc-health-pill .cc-health-sep{margin:0 2px;color:inherit}
.cc-shell .nav-sidebar .tab-group-items .tab-destination{min-height:36px;padding-top:8px;padding-bottom:8px}
.cc-shell .tab-group-section{margin-bottom:10px}
@media(max-width:767px){
  .cc-shell .workspace-topbar .cc-health-pill{width:44px;padding:0;border:0;background:transparent}
  .cc-action-card .action-center-head{display:flex;padding:12px 0;border-bottom:1px solid var(--line)}
  .cc-action-card .action-summary{display:none}
}
.cc-teams-scope{color:var(--mut);font-size:13px;padding:2px 8px;border:1px solid var(--line);border-radius:999px}
@media(max-width:767px){.cc-teams-scope{display:none}}
/* Pass 3: light-mode action rows, banked label contrast, header rhythm. */
.cc-shell .cc-action-card .action-alert,:root[data-theme="light"] .cc-shell .cc-action-card .action-alert{background:none!important;border-left:0!important}
.cc-shell .cc-action-card .actd,:root[data-theme="light"] .cc-shell .cc-action-card .actd{color:var(--mut)!important}
.cc-ranked{margin-left:auto;color:var(--mut);font-size:13px;white-space:nowrap}
.cc-ranked::after{content:' ·';margin-right:4px}
.cc-action-card .action-center-head>div{flex:1}
:root[data-theme="light"] .cc-seg-banked{color:#fff}
:root[data-theme="light"] .cc-seg-rest{color:#fff}
.cc-shell .cc-bm-cell>span[class$="-text"]{color:var(--ink)!important}
@media(max-width:767px){.cc-ranked{display:none}.cc-action-card .action-center-head{justify-content:flex-start}}
/* Forecast review: controls and evaluation use the platform's existing tokens.
   chartSource: mustafa:rounded-banded-table; echarts:line */
.forecast-selector-head,.forecast-evaluation-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.forecast-selectors h2{margin:5px 0 8px;font-size:24px}
.forecast-controls{display:flex;flex-wrap:wrap;gap:16px;margin:20px 0}
.forecast-controls label{display:grid;gap:8px;font-size:13px;font-weight:700;color:var(--mut)}
.forecast-controls select{min-width:220px;max-width:100%;padding:11px 36px 11px 12px;border:1px solid var(--line);border-radius:8px;background:var(--card2,var(--card));color:var(--ink);font:inherit;font-size:14px;color-scheme:dark}
.forecast-controls select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.forecast-notice{padding:12px 14px;border-left:3px solid var(--warn,#e8ad45);background:rgba(232,173,69,.07);font-size:13px;line-height:1.5}
.forecast-evaluation-head{margin-top:20px}
.forecast-score-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:12px 0 18px}
.forecast-score-grid>div{display:grid;gap:8px;padding:16px;border:1px solid var(--line);border-top:3px solid #5b9dff;border-radius:10px;background:var(--card2,var(--card))}
.forecast-score-grid span,.forecast-score-grid small{color:var(--mut);font-size:12px}
.forecast-score-grid strong{font-size:25px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--ink)}
.forecast-evaluation-notes{font-size:13px;line-height:1.6;color:var(--mut)}
.forecast-evaluation-notes summary{cursor:pointer;color:var(--ink);font-weight:700}
.forecast-summary-grid .forecast-summary strong{font-size:30px}
.forecast-cell strong{font-size:13px}
.forecast-cell span,.forecast-cell small,.forecast-table-note{font-size:11px}
@media(max-width:750px){.forecast-score-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.forecast-controls{display:grid;grid-template-columns:1fr}.forecast-controls select{width:100%;min-width:0}.forecast-score-grid strong{font-size:22px}}

/* Owner-approved 12 October override: compact full-cell grid throughout
   analytical tables; retain heat colors, grouping, sorting and scrolling.
   Source: mustafa:rounded-banded-table (explicit full-grid variation). */
body.cc-ready table:not([role="presentation"]){width:100%;border-spacing:0;border-collapse:separate;border:1px solid #3a485d;border-radius:9px;font-variant-numeric:tabular-nums}
body.cc-ready table:not([role="presentation"]) :is(th,td){text-align:center!important;vertical-align:middle!important;padding:7px 10px!important;line-height:1.35;font-size:13px;border-right:1px solid #3a485d!important;border-bottom:1px solid #3a485d!important}
body.cc-ready table:not([role="presentation"]) tr>:last-child{border-right:0!important}
body.cc-ready table:not([role="presentation"]) tbody:last-child tr:last-child>*{border-bottom:0!important}
body.cc-ready table:not([role="presentation"]) thead th{background:#193b60!important;color:#fff!important;font-size:14px!important;font-weight:800!important;white-space:normal}
body.cc-ready table:not([role="presentation"]) thead tr:first-child th:first-child{border-top-left-radius:8px}
body.cc-ready table:not([role="presentation"]) thead tr:first-child th:last-child{border-top-right-radius:8px}
body.cc-ready table:not([role="presentation"]) tbody tr:nth-child(odd){background-color:#202630}
body.cc-ready table:not([role="presentation"]) tbody tr:nth-child(even){background-color:#252d38}
body.cc-ready table:not([role="presentation"]) :is(.table-sort-button,.cc-sort){justify-content:center!important;text-align:center!important;width:100%;font:inherit;color:inherit}
body.cc-ready table:not([role="presentation"]) thead :is(button,.table-sort-marker){color:#fff!important}
body.cc-ready table:not([role="presentation"]) :is(td,tbody th){color:var(--ink,#f4f7fb)}
body.cc-ready table:not([role="presentation"]) :is(th,td){border-left:0!important;border-top:0!important}
body.cc-ready table:not([role="presentation"]) thead button{font-weight:800!important}
body.cc-ready .cc-table-scroll{overflow-x:auto}
body.cc-ready .cc-team-table thead{display:table-header-group}
body.cc-ready .cc-team-table tbody td{display:table-cell!important}
:root[data-theme="light"] body.cc-ready table:not([role="presentation"]) tbody tr:nth-child(odd){background-color:#f0f4f9}
:root[data-theme="light"] body.cc-ready table:not([role="presentation"]) tbody tr:nth-child(even){background-color:#e6edf6}
@media print{body.cc-ready table:not([role="presentation"]) :is(td,tbody th){color:#111;background:#fff}body.cc-ready table:not([role="presentation"]) thead th{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
/* Retired regional scope stays visible as a disabled historical option. */
body.cc-ready .cc-region-seg button:disabled {
  opacity: .3;
  cursor: not-allowed;
  filter: grayscale(1);
  box-shadow: none;
}

/* Team ranking table: shared sortable comparison styling. */
.cc-team-table th,.cc-team-table td{text-align:center!important;vertical-align:middle;padding:8px 10px!important;color:#fff!important}.cc-team-table th{background:#193e64!important}.cc-team-table .table-sort-button{justify-content:center;width:100%;font-weight:700}.cc-team-table tbody tr:nth-child(odd){background:#202630}.cc-team-table tbody tr:nth-child(even){background:#252d38}.cc-team-table .team-value{font-variant-numeric:tabular-nums;color:#fff}.cc-team-table .team-value.good{color:#24c9a2;background:none}.cc-team-table .team-value.warn{color:#f0b44e;background:none}.cc-team-table .team-value.bad{color:#f27680;background:none}.team-color-note{font-size:12px;color:#c9baff;font-weight:700;margin:12px 0}.cc-team-table{border-radius:9px;overflow:hidden}.cc-team-table th:focus-within{outline:2px solid #63a5ff;outline-offset:-2px}

/* Uses the actual platform chrome and story-analytics card components. */
#p-referral .rg-header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin:0 0 18px}
#p-referral .rg-header h2{font-size:28px;margin:4px 0 8px}
#p-referral .rg-kicker{color:#77b4ff;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;font-weight:800}
#p-referral .rg-badge{border:1px solid #385c85;border-radius:20px;padding:8px 12px;white-space:nowrap;color:#afcbed;font-size:12px}
#p-referral .rg-tabs{display:flex;gap:5px;flex-wrap:wrap;padding:7px;border:1px solid #2c3b51;border-radius:12px;background:#101824;margin-bottom:20px}
#p-referral .rg-tabs button{color:#aabbd1;background:transparent;border:0;border-radius:7px;padding:11px 13px;font:inherit;font-size:12px;font-weight:700;cursor:pointer}
#p-referral .rg-tabs button[aria-selected=true]{background:#1b3b64;color:#fff}
#p-referral .rg-tabs button:focus-visible,#p-referral .rg-link:focus-visible{outline:2px solid #78b6ff;outline-offset:2px}
#p-referral .rg-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}
#p-referral .rg-grid .metric-card{min-width:0}
#p-referral .rg-grid .metric-card-hero{min-height:165px}
#p-referral .rg-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:16px 0}
#p-referral .rg-row>.card{min-width:0}
#p-referral .rg-chart{width:100%;height:290px;min-width:0}
#p-referral .rg-note{border-left:3px solid #629adf;padding:12px 16px;background:#142031;border-radius:0 8px 8px 0;color:#b1c4de;line-height:1.6;margin:16px 0}
#p-referral .rg-pending{padding:24px;border:1px dashed #3e5069;border-radius:12px;background:#101722;margin:16px 0}
#p-referral .rg-pending h3{margin:0 0 8px;color:#dae7fa}
#p-referral .rg-pending p{margin:0;color:#a3b4ca;line-height:1.7}
#p-referral .rg-table-wrap{width:100%;overflow:auto;border:1px solid #354459;border-radius:11px;margin:14px 0}
#p-referral table{width:100%!important;border-collapse:separate!important;border-spacing:0;table-layout:auto}
#p-referral table th{background:#19395d!important;color:#fff!important;font-size:14px!important;font-weight:800!important;text-align:center!important;padding:15px 12px!important;white-space:normal}
#p-referral table th button,#p-referral table th span{color:#fff!important;font-weight:800!important}
#p-referral [data-rg-sort]{font:inherit;background:transparent;border:0;padding:4px;cursor:pointer}
#p-referral [data-rg-sort]:focus-visible{outline:2px solid #78b6ff;outline-offset:2px}
#p-referral table td{text-align:center!important;padding:8px 12px!important;border:0;border-right:1px solid #344152;color:#fff}
#p-referral table tbody tr:nth-child(odd){background:#202a37!important}
#p-referral table tbody tr:nth-child(even){background:#263240!important}
#p-referral .rg-link{border:0;background:none;color:#8bbfff;font:inherit;font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:4px}
#p-referral .rg-equation{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;padding:24px 0}
#p-referral .rg-factor{border:1px solid #304761;border-radius:12px;padding:22px;min-width:180px;text-align:center;background:#111d2b}
#p-referral .rg-factor strong{display:block;font-size:29px;margin:8px 0;color:#fff}
#p-referral .rg-factor span{color:#aabbd1;font-size:12px}
#p-referral .rg-changes{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
#p-referral .rg-change{padding:20px;border:1px solid #344253;border-radius:10px}
#p-referral .rg-change strong{display:block;font-size:24px;margin:9px 0}
#p-referral .rg-footer{color:#8ca2bf;font-size:11px;margin-top:24px;line-height:1.8}
#p-referral .rg-controls{display:flex;gap:8px;align-items:center;margin:14px 0;flex-wrap:wrap}
#p-referral .rg-controls select{background:#192537;color:#e8f0fb;border:1px solid #3b506c;border-radius:8px;padding:9px}
@media(max-width:1150px){#p-referral .rg-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#p-referral .rg-row{grid-template-columns:minmax(0,1fr)}}
@media(max-width:650px){#p-referral .rg-header{display:block}#p-referral .rg-badge{display:inline-block}#p-referral .rg-grid,#p-referral .rg-changes{grid-template-columns:1fr}#p-referral .rg-tabs button{padding:10px}#p-referral .rg-equation{gap:10px}}

.attendance-preview{scroll-margin-top:90px;padding:22px!important}
.ap-channel-table{max-height:460px;overflow:auto}
.ap-channel-table thead{position:sticky;top:0;z-index:1}
.ap-sort-trigger{background:none;border:0;color:inherit;font:inherit;cursor:pointer;padding:3px}
.ap-filter-trigger{display:inline-flex;align-items:center;vertical-align:middle;margin-left:6px;padding:5px;background:#ffffff0a;color:#adc5e0;border:1px solid #ffffff25;border-radius:4px;cursor:pointer}
.ap-filter-trigger:hover,.ap-filter-trigger.is-active{background:#367fd0;color:white;border-color:#75b5ff}
.ap-filter-popup{position:fixed;inset:auto;margin:0;width:300px;max-width:calc(100vw - 16px);box-sizing:border-box;padding:14px;background:#192432;color:#eef4fc;border:1px solid #465a72;border-radius:10px;box-shadow:0 14px 38px #0008;font:13px/1.4 system-ui;z-index:99999}
.ap-filter-popup::backdrop{background:transparent}.ap-filter-popup strong{display:block;margin-bottom:10px}
.ap-filter-popup input[type=search]{box-sizing:border-box;width:100%;background:#0e1824;border:1px solid #42566f;border-radius:5px;padding:8px 10px;color:white;font:inherit}
.ap-filter-popup .ap-filter-options{width:auto;max-height:210px;overflow:auto;margin:8px 0;min-height:40px}
.ap-filter-popup .ap-filter-options label{padding:7px 5px;align-items:center;border-radius:4px;font-size:13px}
.ap-filter-popup .ap-filter-options label:hover{background:#ffffff09}.ap-filter-popup input[type=checkbox]{accent-color:#579aff}
.ap-filter-popup button{font:inherit;cursor:pointer;border-radius:5px;border:1px solid #43576e;padding:6px 11px;background:transparent;color:#dce9f9}
.ap-filter-popup .ap-filter-actions button{border:0;padding:2px 0;color:#92c2ff;font-size:12px}.ap-filter-popup .ap-filter-actions{justify-content:space-between}
.ap-filter-footer{display:flex;justify-content:flex-end;gap:8px;border-top:1px solid #344559;padding-top:12px}
.ap-filter-popup [data-apply]{background:#347acc;border-color:#347acc;color:white}
.ap-filter-popup :focus-visible,.ap-filter-trigger:focus-visible{outline:2px solid #91c8ff;outline-offset:2px}
.ap-channel-table th select,.ap-header-filter input[type=search]{display:block;background:#172638;color:white;border:1px solid #58718d;border-radius:6px;padding:7px;margin:7px auto;width:100%;font:inherit}
.ap-header-filter{font-size:12px;min-width:180px;margin-top:8px;text-align:left}
.ap-header-filter summary{cursor:pointer;text-align:center;color:#c4dfff}
.ap-filter-options{max-height:200px;overflow:auto;width:300px}
.ap-filter-options label{display:flex;gap:8px;padding:7px;white-space:normal;font-weight:400}
.ap-filter-options label[hidden]{display:none}.ap-filter-options small{display:block;color:#a8b8cb;font-size:10px;overflow-wrap:anywhere}
.ap-filter-actions{display:flex;gap:8px;margin:8px 0}.ap-header-filter button{background:#28517c;color:white;border:1px solid #6480a0;border-radius:5px;padding:6px;cursor:pointer}
#p-referral h2{font-size:22px;margin:28px 0 14px}
#local-referral-teams th button{background:transparent;border:0;color:white;font:inherit;cursor:pointer}
/* Native team menu must retain readable colors when expanded on Windows. */
#sidebar-tm{color-scheme:dark}
#sidebar-tm option{background-color:#192330;color:#edf3fb}
#sidebar-tm option:disabled{color:#8998ab}
.rp-headlines{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.rp-tracking th{min-width:105px}.rp-tracking th:first-child{min-width:120px}
@media(max-width:700px){.rp-headlines{grid-template-columns:1fr!important}}
.ap-heading{display:flex;justify-content:space-between;gap:16px;align-items:start}
.ap-eyebrow{font-size:11px;font-weight:800;letter-spacing:1.5px;color:#89a9cc}
.ap-heading h3{font-size:23px;margin:8px 0!important}.ap-controls{display:flex;gap:18px;flex-wrap:wrap;align-items:end;margin:20px 0}
.ap-control{display:flex;flex-direction:column;gap:8px;font-size:12px;color:#a5b4c7}
.ap-segments{display:flex;gap:4px;background:#111b28;border:1px solid #2e4056;border-radius:12px;padding:4px}
.ap-segments button{background:transparent;border:0;border-radius:8px;color:#aebed2;padding:8px 17px;font:inherit;font-weight:650;cursor:pointer;transition:background .15s}
.ap-segments button:hover{background:#24354b;color:white}.ap-segments button[aria-pressed="true"]{background:#3879d3;color:white;box-shadow:0 2px 6px #0003}
#ap-reset{border:1px solid #304259;background:transparent;color:#adc7e8;border-radius:10px;width:38px;height:38px;font-size:22px;cursor:pointer}
#ap-reset:disabled{opacity:.3;cursor:default}
.ap-kpis{display:flex;flex-wrap:wrap;gap:18px 28px;margin:22px 0 24px;font-variant-numeric:tabular-nums}
.ap-kpi{padding:0 28px 0 0;border-right:1px solid #344252}
.ap-kpi:last-child{padding-right:0;border-right:0}
.ap-kpi-main{display:flex;align-items:baseline;gap:14px}
.ap-kpi-label{font-size:14px;font-weight:650;color:#d6e1ef}
.ap-kpi-label::before{content:"";display:inline-block;width:8px;height:8px;margin-right:8px;background:var(--ap-accent);border-radius:50%}
.ap-kpi-main strong{font-size:28px;line-height:1.25;letter-spacing:-.6px;color:var(--ap-accent)}
.ap-kpi-detail{font-size:12px;color:#aebed2;margin-top:5px}
#ap-chart{height:320px;width:100%}.ap-table-scroll{overflow-x:auto;border-radius:9px;border:1px solid #41536b;margin-top:12px}
.attendance-preview table{width:100%;border-collapse:collapse;font-size:14px;color:white}
.attendance-preview th,.attendance-preview td{padding:7px 12px;text-align:center!important;border:1px solid #3b4b60!important}
.attendance-preview th{background:#193b60;font-size:15px;font-weight:800}
.attendance-preview tbody tr:nth-child(odd){background:#202934}.attendance-preview tbody tr:nth-child(even){background:#27313e}
.attendance-preview tfoot{background:#203953;font-weight:800}.attendance-preview td button{background:none;border:0;color:inherit;cursor:pointer;font:inherit}
.attendance-preview tr.ap-selected{outline:2px solid #579aff;outline-offset:-2px}
.attendance-preview td.ap-rate-green{background:#183e35;color:#a1f1cf;font-weight:700}
.attendance-preview td.ap-rate-orange{background:#49371f;color:#ffcf8c;font-weight:700}
.attendance-preview td.ap-rate-red{background:#48272f;color:#ffb4bb;font-weight:700}
.ap-rate-legend{font-size:12px;color:#aebed2;line-height:1.7;margin:12px 0 0}
.ap-legend-green{color:#a1f1cf}.ap-legend-orange{color:#ffcf8c}.ap-legend-red{color:#ffb4bb}
.ap-footnote{font-size:12px;color:#a1b0c4;margin:16px 0 0}.attendance-preview :focus-visible{outline:2px solid #70adff;outline-offset:3px}
@media(max-width:600px){.attendance-preview{padding:14px!important}.ap-kpis{flex-direction:column;gap:16px}.ap-kpi{border-right:0;padding-right:0}.ap-heading{display:block}.ap-heading h3{font-size:20px}#ap-chart{height:270px}}
