:root{
  --bg:#f4f6f9; --card:#fff; --ink:#1b2733; --muted:#6b7a8d; --line:#e3e8ef;
  --brand:#004BEA; --brand-d:#0039b3;
  --never:#9aa7b4; --b30:#1f9d57; --b60:#d9a213; --b90:#e2730f; --b90p:#d23b3b;
  --good:#1f9d57; --bad:#d23b3b;
  --shadow:0 1px 3px rgba(16,32,52,.08),0 4px 16px rgba(16,32,52,.06);
  /* coverage recency ramp: ColorBrewer "Blues" (darkest = most recent) */
  --m30:#08519c; --m15:#3182bd; --m60:#6baed6; --m90:#9ecae1; --mno:#c6dbef;
  /* "No sales" (never-bought) meter tail: gray/white diagonal hatch, reads as an absence of activity */
  --mns:repeating-linear-gradient(45deg,#eef1f5 0,#eef1f5 4px,#fff 4px,#fff 8px);
}
*{box-sizing:border-box}
body{margin:0;font:14px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);display:flex;flex-direction:column;height:100vh;overflow:hidden}
h1{font-size:18px;margin:0;font-weight:650}

.topbar{display:flex;justify-content:space-between;align-items:center;padding:12px 22px;background:var(--card);border-bottom:1px solid var(--line)}
.brand{display:flex;gap:14px;align-items:center}
.logo{height:26px;width:auto;display:block}
.brand-divider{width:1px;height:28px;background:var(--line)}
.sub{color:var(--muted);font-size:12px;margin-top:2px}
.user{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted)}
.user .who{background:var(--bg);border:1px solid var(--line);padding:6px 11px;border-radius:20px}
.user .who b{color:var(--ink)}
.user .signout{border:1px solid var(--line);background:var(--card);color:var(--muted);padding:6px 12px;border-radius:20px;cursor:pointer;font-size:12px}
.user .signout:hover{color:var(--ink);border-color:#c9d3e0}

/* Authenticated-but-unauthorized gate (wrong/no AD group) */
.gate{position:fixed;inset:0;background:#f5f7fb;display:flex;align-items:center;justify-content:center;padding:24px;z-index:40}
.gate-card{max-width:440px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:36px;text-align:center;box-shadow:0 18px 50px -16px rgba(10,22,51,.22)}
.gate-card svg.lk{height:34px;margin-bottom:18px}
.gate-card h2{margin:0 0 8px;font-size:19px}
.gate-card p{margin:0 0 18px;color:var(--muted);font-size:14px;line-height:1.55}
.gate-card p b{color:var(--ink)}
.gate-card .signout{border:1px solid var(--line);background:var(--card);color:var(--muted);padding:9px 18px;border-radius:9px;cursor:pointer;font-size:13px}
.gate-card .signout:hover{color:var(--ink)}

.tabs{display:flex;align-items:center;gap:4px;padding:0 22px;background:var(--card);border-bottom:1px solid var(--line)}
.tab{border:0;background:none;padding:12px 16px;font-size:14px;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;font-weight:550}
.tab:hover{color:var(--ink)}
.tab.active{color:var(--brand);border-bottom-color:var(--brand)}

.view{padding:18px 22px;flex:1;min-height:0;display:flex;flex-direction:column}
.hidden{display:none!important}

.tablefoot{display:flex;align-items:center;gap:8px;margin-top:12px}
.foot-actions{flex:1;display:flex;gap:8px}
.tablefoot .pager{display:contents}
.tablefoot .pg-info{flex:1;text-align:center}
.tablefoot .pg-nav{flex:1;justify-content:flex-end}
.f{padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);font-size:13px;max-width:230px}
.search{min-width:200px}
.chk{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:13px}

.tiles{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.tile{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:11px 15px;min-width:108px;cursor:pointer;box-shadow:var(--shadow);transition:transform .05s}
.tile:hover{transform:translateY(-1px)}
.tile.sel{outline:2px solid var(--brand);outline-offset:-1px}
.tile .n{font-size:21px;font-weight:700}
.tile .l{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin-top:2px}
.tile .dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:5px;vertical-align:1px}
.tile.stat{cursor:default}

/* ── Compliance-by-Rep team-health panel: 4 widget cards ── */
.usr-health{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}
@media(max-width:1080px){.usr-health{grid-template-columns:repeat(2,1fr)}}
.uh-card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:11px 13px;box-shadow:var(--shadow);min-width:0;display:flex;flex-direction:column}
.uh-t{font-size:11px;font-weight:800;color:var(--ink);text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px;display:flex;align-items:center;gap:6px}
.uh-sub{font-weight:500;text-transform:none;letter-spacing:0;color:var(--muted);font-size:10px}
.uh-cap{font-size:10px;color:var(--muted);margin-top:6px}
/* meter/donut "media" region — fixed height across all three cards so the by-division
   bars below them line up horizontally across the panel */
.uh-media{min-height:128px;display:flex;flex-direction:column;justify-content:center}
.uh-card .rc-mlegend .it{font-size:9px}
.ph-bar{display:flex;height:10px;border-radius:5px;overflow:hidden;border:1px solid var(--line);margin-bottom:8px}
.ph-bar span{display:block}
.ph-rows{display:flex;flex-direction:column;gap:3px}
.ph-row{display:flex;align-items:center;gap:7px;font-size:11px}
.ph-sw{width:9px;height:9px;border-radius:2px;flex:none}
.ph-lbl{color:var(--ink);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ph-row b{font-variant-numeric:tabular-nums}
.ph-att{margin-bottom:9px}
.ph-att-h{display:flex;justify-content:space-between;font-size:11px;color:var(--ink);margin-bottom:3px}
.ph-att-h b{font-variant-numeric:tabular-nums;color:var(--muted);font-weight:700}
.ph-att-bar{height:8px;background:#eef2f7;border-radius:4px;overflow:hidden}
.ph-att-bar i{display:block;height:100%;background:var(--brand);border-radius:4px}
.dn-wrap{display:flex;gap:10px;align-items:center}
.dn-svg{width:126px;height:126px;flex:none}
.dn-legend{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.dn-li{display:flex;align-items:center;gap:6px;font-size:11px}
.dn-sw{width:9px;height:9px;border-radius:2px;flex:none}
.dn-lbl{flex:1;min-width:0;white-space:nowrap;color:var(--ink)}
.dn-li b{font-variant-numeric:tabular-nums}
/* clickable donut wedges + legend rows (filter the rep table) */
.dn-wedge{cursor:pointer;transition:opacity .12s}
.dn-wedge:hover{opacity:.82}
path.dn-wedge.on{stroke:#111827;stroke-width:2;stroke-linejoin:round}
.dn-click{cursor:pointer;border-radius:5px;padding:0 3px}
.dn-click:hover{background:#f1f5fb}
.dn-click.on{background:#eef4ff}
.dn-click.on .dn-lbl{font-weight:700}
/* by-division stacked bars under each health card */
.dv-bars{margin-top:4px;padding-top:6px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:3px}
.dv-row{display:flex;align-items:center;gap:6px}
.dv-nm{flex:none;width:86px;text-align:right;font-size:9.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.dv-nm:hover{color:var(--ink);text-decoration:underline}
.dv-nm.on{color:var(--ink);font-weight:700}
.usr-title{white-space:normal;line-height:1.18;max-width:128px}
.dv-barzone{flex:1;display:flex;align-items:center;min-width:0}
.dv-track{flex:none;display:flex;height:11px;border-radius:3px;overflow:hidden}
.dv-seg{height:100%;min-width:0;cursor:pointer}
.dv-seg:hover{filter:brightness(1.08)}
.dv-seg.on{box-shadow:inset 0 0 0 2px #111827}
.dv-tot{flex:none;width:44px;text-align:right;font-size:9.5px;color:var(--muted);font-variant-numeric:tabular-nums}
/* shared floating tooltip for the health panel */
/* shared floating rich tooltip (donut/divbar/meter hovers) — matches the .ac-tip chart style */
.uh-tip{position:fixed;z-index:60;pointer-events:none;background:#fff;border:1px solid #e5e7eb;color:#374151;font-size:11px;line-height:1.5;padding:6px 8px;border-radius:4px;white-space:nowrap;min-width:96px;box-shadow:0 4px 14px rgba(0,0,0,.16)}
/* active-filter chip above the rep table */
.usr-filterbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 8px}
.usr-filterbar:empty{display:none}
.ufb-lbl{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-right:2px}
.ufb-chip{display:inline-flex;align-items:center;gap:6px;background:#eef4ff;border:1px solid #cfe0ff;color:#1f2a37;font-size:12px;padding:4px 10px;border-radius:999px}
.ufb-chip .ufb-k{color:#5b6b86;font-weight:600}
.ufb-chip b{font-weight:700}
.ufb-chart{background:#f1ecff;border-color:#ddd0ff}   /* chart-driven filter — tinted apart from the header-column filters */
.ufb-x{border:0;background:#1f2a37;color:#fff;width:16px;height:16px;border-radius:50%;cursor:pointer;font-size:13px;line-height:1;display:flex;align-items:center;justify-content:center;padding:0}
.ufb-x:hover{background:#39465a}
.ufb-none{font-size:12px;color:var(--muted);font-style:italic}
.ufb-count{font-size:12px;color:var(--muted);margin-left:2px}
.ufb-clear{border:0;background:none;color:var(--brand,#004BEA);font-size:12px;font-weight:600;cursor:pointer;padding:2px 4px}
.ufb-clear:hover{text-decoration:underline}
/* Quick-filter (preset) pill: a neutral dropdown trigger that turns brand-blue once a preset is active */
.ufb-qf{display:inline-flex;align-items:center;gap:5px;background:var(--card);border:1px solid #cfe0ff;color:var(--brand);font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;cursor:pointer}
.ufb-qf:hover{background:#eef4ff}
.ufb-qf-caret{font-size:10px;opacity:.8}
.ufb-qf.on{background:var(--brand);border-color:var(--brand);color:#fff;padding:4px 6px 4px 12px;gap:6px}
.ufb-qf-lbl{border:0;background:none;color:inherit;font:inherit;font-weight:700;cursor:pointer;padding:0}
.ufb-qf-x{border:0;background:rgba(255,255,255,.25);color:#fff;width:16px;height:16px;border-radius:50%;cursor:pointer;font-size:13px;line-height:1;display:flex;align-items:center;justify-content:center;padding:0}
.ufb-qf-x:hover{background:rgba(255,255,255,.45)}

.tablewrap{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:auto;box-shadow:var(--shadow);flex:1;min-height:120px}
table.tbl-loading tbody{opacity:.5;transition:opacity .12s}
table{width:100%;border-collapse:collapse;font-size:13px}
thead th{position:sticky;top:0;z-index:4;background:#fbfcfe;text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);color:var(--muted);font-weight:600;white-space:nowrap}
th.num,td.num{text-align:right}
tbody td{padding:9px 12px;border-bottom:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}
tbody tr{cursor:pointer}
tbody tr:hover{background:#f7faff}
tbody tr:last-child td{border-bottom:0}
.acct-name{font-weight:600}
.muted{color:var(--muted)}

.badge{display:inline-block;padding:2px 9px;border-radius:20px;font-size:12px;font-weight:600;color:#fff}
.b-Never{background:var(--never)} .b-0-30{background:var(--b30)} .b-31-60{background:var(--b60)}
.b-61-90{background:var(--b90)} .b-90\+{background:var(--b90p)} .b-Unknown{background:var(--never)}
.pill{padding:2px 8px;border-radius:6px;font-size:12px;font-weight:600}
.pill.good{background:#e7f6ee;color:var(--good)} .pill.bad{background:#fbeaea;color:var(--bad)}
.pct-bar{display:inline-block;width:46px;height:6px;border-radius:3px;background:#eceff3;vertical-align:middle;margin-left:6px;position:relative;overflow:hidden}
.pct-bar i{position:absolute;left:0;top:0;bottom:0;background:var(--brand)}

.pager{display:flex;justify-content:space-between;align-items:center;margin-top:12px;color:var(--muted);font-size:13px}
.pager button{padding:7px 14px;border:1px solid var(--line);background:var(--card);border-radius:8px;cursor:pointer;font-size:13px}
.pager button:disabled{opacity:.4;cursor:default}

.scrim{position:fixed;inset:0;background:rgba(16,32,52,.34);z-index:20}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(1500px,75vw);background:var(--bg);z-index:21;box-shadow:-8px 0 30px rgba(16,32,52,.18);display:flex;flex-direction:column}
/* everything below the head scrolls as one region — charts can scroll out of view */
.drawer-scroll{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column}
/* charts (left, stacked) + calendar (right) */
.drawer-top{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:flex-start;padding:12px 18px 0}
.drawer-head{display:flex;justify-content:space-between;align-items:flex-start;padding:16px 20px;background:var(--card);border-bottom:1px solid var(--line)}
.drawer-title{font-size:16px;font-weight:680}
.drawer-sub{color:var(--muted);font-size:12px;margin-top:3px}
.x{border:0;background:none;font-size:26px;line-height:1;color:var(--muted);cursor:pointer}
.drawer-tabs{display:flex;gap:4px;padding:8px 20px 0;background:var(--card);position:sticky;top:0;z-index:3}  /* stay pinned while the drawer body scrolls */
.drawer-tabs button{border:0;background:none;padding:8px 12px;color:var(--muted);border-bottom:2px solid transparent;cursor:pointer;font-size:13px;font-weight:550}
.drawer-tabs button.active{color:var(--brand);border-bottom-color:var(--brand)}
.drawer-body{padding:14px 20px}
.loading{color:var(--muted);padding:24px;text-align:center}
.empty{color:var(--muted);padding:24px;text-align:center}
.daygrid td.hit{color:var(--good);font-weight:700}
.kpis{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:9px;padding:8px 12px;min-width:84px}
.kpi .n{font-size:17px;font-weight:700}.kpi .l{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.3px}
.rc-meter{display:flex;height:30px;border-radius:6px;overflow:hidden;border:1px solid var(--line);margin-top:4px}
.uh-media .rc-meter{height:45px}   /* team-health coverage meter only (1.5×); report-card meters stay 30px */
.rc-meter span{display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px;font-weight:800;min-width:0}
.rc-meter .m60,.rc-meter .m90,.rc-meter .seg-no{color:#1f2a37}   /* dark text on the lighter blues */
.rc-meter .mns,.rc-mlegend .sw.mns{box-shadow:inset 0 0 0 1px var(--line)}   /* outline the near-white "No sales" hatch so it reads against the card */
.rc-mlegend{display:flex;gap:0;margin-top:2px}
.rc-mlegend .it{text-align:center;padding:0 3px;font-size:10px;min-width:0;line-height:1.25}
.rc-mlegend .sw{display:block;width:10px;height:10px;border-radius:2px;margin:0 auto 2px}
.rc-mlegend .nm{color:#42505f}
.rc-mlegend .ct{font-weight:800}.rc-mlegend .pc{color:var(--muted)}
.rc-mconnect{display:block;width:100%;height:16px}

/* ── UX pass: legend, caption, chips, click-to-filter tiles ── */
.legendbar{padding:6px 22px 0}
.legend-toggle{border:1px solid var(--line);background:var(--card);color:var(--brand);border-radius:20px;padding:5px 13px;font-size:12.5px;font-weight:600;cursor:pointer}
.legend-toggle:hover{background:#eef4ff}
.legend{display:flex;gap:28px;flex-wrap:wrap;margin:10px 22px 0;padding:14px 20px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}
.legend.hidden{display:none}
.lgcol{flex:1;min-width:300px}
.legend h4{margin:12px 0 4px;font-size:12px;color:var(--brand);text-transform:uppercase;letter-spacing:.4px}
.legend h4:first-child{margin-top:0}
.legend ul{margin:0;padding-left:18px}
.legend li{font-size:13px;margin:4px 0;color:var(--ink)}
.chip{display:inline-block;background:#eef4ff;border:1px solid #cfe0ff;color:var(--brand);border-radius:20px;padding:1px 6px 1px 10px;font-size:12px;font-weight:600;margin-left:4px}
.chip a{cursor:pointer;margin-left:5px;text-decoration:none;font-weight:700}
.tile:not(.stat)::after{content:'filter';position:absolute;top:7px;right:10px;font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;opacity:.55}
.tile.sel::after{content:'\2713 on';color:var(--brand);opacity:1;font-weight:700}

/* ── numbered pagination ── */
.pager .pg-nav{display:inline-flex;gap:4px;align-items:center;flex-wrap:wrap}
.pager .pg-num,.pager .pg-arrow{min-width:30px;height:30px;padding:0 9px;border:1px solid var(--line);background:var(--card);border-radius:7px;cursor:pointer;font-size:13px;color:var(--ink)}
.pager .pg-num:hover,.pager .pg-arrow:hover{background:#eef4ff;border-color:#c9d3e0}
.pager .pg-num.active{background:var(--brand);color:#fff;border-color:var(--brand);font-weight:700}
.pager .pg-arrow:disabled{opacity:.4;cursor:default}
.pager .pg-ellip{padding:0 3px;color:var(--muted)}

/* ── RLS banner + view-as ── */
/* RLS control — compact trigger + anchored "view as" popup in the top-right */
.topbar-right{display:flex;align-items:center;gap:10px}
.rls-ctl{position:relative}
.rls-chip{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--muted);background:var(--bg);border:1px solid var(--line);padding:6px 11px;border-radius:20px}
.rls-trigger{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);background:var(--bg);border:1px solid var(--line);padding:6px 11px;border-radius:20px;cursor:pointer}
.rls-trigger:hover{color:var(--ink);border-color:#c9d3e0}
.rls-trigger b{color:var(--ink)}
.rls-eye{font-size:13px;line-height:1}
.rls-caret{font-size:10px;opacity:.6}
.rls-ctl.impersonating .rls-trigger{background:#fdecec;border-color:#e3a7a7;color:#9b2c2c;font-weight:600}
.rls-ctl.impersonating .rls-trigger b{color:#7a1f1f}
.rls-pop{position:absolute;top:calc(100% + 7px);right:0;z-index:50;width:340px;max-width:calc(100vw - 16px);background:var(--card);border:1px solid var(--line);border-radius:11px;box-shadow:0 10px 30px rgba(13,23,48,.16);padding:13px}
.rls-pop.hidden{display:none}
.rls-pop-h{font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.rls-pop input{width:100%;box-sizing:border-box;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font-size:13px}
.rls-pop input:focus{outline:none;border-color:var(--brand)}
.rls-pop-actions{display:flex;gap:7px;margin-top:9px}
.rls-pop .rls-go{flex:0 0 auto;padding:7px 16px;border:0;background:var(--brand);color:#fff;border-radius:8px;cursor:pointer;font-weight:600;font-size:12.5px}
.rls-pop .rls-go:hover{background:#003ec2}
.rls-pop .rls-reset{flex:1;padding:7px 10px;border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:8px;cursor:pointer;font-size:12.5px}
.rls-pop .rls-reset:hover{color:#9b2c2c;border-color:#e3a7a7}
.rls-pop-hint{margin-top:9px;font-size:11px;color:var(--muted)}
/* View-as typeahead */
.rls-ta{position:relative}
.rls-results{margin-top:8px;max-height:296px;overflow-y:auto;overflow-x:hidden}
.rls-results:empty{display:none}
.rls-results::-webkit-scrollbar{width:8px}
.rls-results::-webkit-scrollbar-thumb{background:#d7deea;border-radius:8px;border:2px solid var(--card)}
.rls-row{display:flex;align-items:center;gap:9px;padding:6px 7px;border-radius:8px;cursor:pointer}
.rls-row.active{background:#eef3ff}
.rls-ava{flex:0 0 auto;width:27px;height:27px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10.5px;font-weight:700;color:#fff;background:#8a93a6;letter-spacing:.3px}
.rls-ava[data-seg="Field Rep"]{background:var(--brand)}
.rls-ava[data-seg="Manager/Leadership"]{background:#6d4bd8}
.rls-ava[data-seg="Inside Sales"]{background:#0f9d8f}
.rls-ava-raw{background:#aeb6c4;font-size:14px}
.rls-row-body{min-width:0;flex:1 1 auto}
.rls-row-main{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--ink);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rls-row-main .rls-seg{margin-left:auto}
.rls-row-sub{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.rls-row-email{font-size:11px;color:#9aa6b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rls-row mark{background:#fff1b8;color:inherit;padding:0;border-radius:2px;font-weight:inherit}
.rls-seg{flex:0 0 auto;font-size:9px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;padding:1px 6px;border-radius:9px;background:var(--bg);color:var(--muted);border:1px solid var(--line)}
.rls-empty{padding:16px 6px;text-align:center;font-size:12px;color:var(--muted)}

/* ── Activity chart (drawer) ── */
/* left column of drawer-top: activity over sales, stacked */
.drawer-chart{flex:1 1 300px;min-width:280px;max-width:560px;display:flex;flex-direction:column;gap:10px;padding:0}
.drawer-chart:empty{display:none}
.drawer-chart > div{width:100%}
.ac-wrap{position:relative;margin:12px 0 4px}
/* in the drill-down columns, rely on the column gap for spacing (no compounded margins; tops align) */
.drawer-top .ac-wrap{margin:0}
.ac-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px;flex-wrap:wrap}
.ac-ctl{display:inline-flex;align-items:center;gap:10px}
.ac-seg button{padding:5px 11px;font-size:12px}
.ac-avg{margin-top:4px;padding-top:4px;border-top:1px solid #f0f0f3;color:#111827;font-weight:600}
.ac-empty{font-size:12px;color:#9aa6b8;padding:18px 0;text-align:center}
.ac-title{font-size:12px;font-weight:600;color:var(--ink,#0a1633)}
.ac-bud{color:#111;font-size:12px;margin-left:8px;font-weight:800}
.ac-svg{display:block;width:100%;height:auto;background:#f9fafb;border-radius:4px}
.ac-tip{position:absolute;top:24px;background:#fff;border:1px solid #e5e7eb;border-radius:4px;padding:6px 8px;font-size:11px;line-height:1.5;box-shadow:0 2px 6px rgba(0,0,0,.08);pointer-events:none;z-index:3;white-space:nowrap;min-width:96px}
.ac-tm{font-weight:600;color:#111827;margin-bottom:2px}
.ac-tr{display:flex;align-items:center;gap:6px}
.ac-tr i,.ac-lg i{width:8px;height:8px;border-radius:2px;display:inline-block;flex:none}
.ac-tr span{color:#374151}
.ac-tr b{margin-left:auto;font-variant-numeric:tabular-nums;color:#6b7280;font-weight:600}
.ac-legend{display:flex;gap:10px;margin-top:4px;font-size:10px;flex-wrap:wrap}
.ac-lg{display:inline-flex;align-items:center;gap:3px;color:#6b7280;cursor:pointer;user-select:none}
.ac-lg:hover{color:#0a1633}
.ac-lg.off{color:#b6bdc9}
.ac-lg.off span{text-decoration:line-through}
.ac-lg.off i{opacity:.35}

/* ── Activity calendar heatmap (rep drawer) ── */
/* right column of drawer-top: the calendar heatmap */
.drawer-cal{flex:2 1 540px;min-width:360px;max-width:900px;padding:0}  /* min-width so it wraps below rather than collapsing to a sliver */
.drawer-cal:empty{display:none}
.cal-wrap .ac-head{justify-content:flex-start}
.cal-hint{font-size:11px;color:var(--muted);font-weight:500;margin-left:8px}
.cal-svgwrap{position:relative;margin-top:10px;overflow-x:auto}
.cal-svg{display:block;background:transparent}
.cal-svg rect[data-d]{cursor:default}
.cal-svg rect[data-d]:hover{stroke:#111827;stroke-width:1}
.cal-svg .cal-sep,.cal-svg .cal-hol{pointer-events:none}
.cal-legend{display:flex;align-items:center;gap:8px;font-size:10.5px;color:var(--muted);margin:10px 0 2px;flex-wrap:wrap}
.cal-keylabel{font-weight:600;color:var(--ink)}
.cal-key{display:inline-flex;align-items:center;gap:3px}
.cal-sw{width:11px;height:11px;border-radius:2px;display:inline-block}
.cal-holkey-wrap{display:inline-flex;align-items:center;gap:5px;margin-left:14px}
.cal-dim{font-style:italic;opacity:.8}
.cal-holkey{width:12px;height:12px;border:1.1px dashed #4b5563;border-radius:3px;display:inline-block}
.cal-tot{margin-left:auto;font-variant-numeric:tabular-nums}
.cal-tip{top:auto}
.cal-thol{color:#b45309;font-weight:600;margin-bottom:3px}
.cal-tt{color:#111827;font-weight:600;margin-bottom:3px;font-variant-numeric:tabular-nums}
.cal-tnone{color:#9aa6b8}
.cal-tx{color:#9aa6b8;margin-top:3px;padding-top:3px;border-top:1px solid #f0f0f3}

/* ── column header sort/filter icons ── */
thead th.hcol{user-select:none}
thead th.hcol:hover{background:#f1f5fb}
thead th.sorted,thead th.filtered{color:var(--brand)}
.hlabel{cursor:pointer}
.h-ic{display:inline-flex;align-items:center;justify-content:center;margin-left:6px;cursor:pointer;color:#9aa6b8;opacity:.6;vertical-align:middle;font-size:13px}
thead th.hcol:hover .h-ic{opacity:.95}
.h-sort.on{color:var(--brand);opacity:1}
.h-funnel .fn{width:14px;height:14px;display:block}
.h-funnel.on,.h-funnel:hover{color:var(--brand);opacity:1}
.filters-hint{font-size:12px;color:var(--muted);margin-left:2px}

/* ── per-column filter popover ── */
.col-menu{position:fixed;z-index:35;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px -8px rgba(16,32,52,.3);min-width:210px;max-width:320px;font-size:13px;overflow:hidden}
.fm-body{padding:8px}
.fm-search{width:100%;padding:6px 8px;border:1px solid var(--line);border-radius:7px;font-size:12.5px;margin-bottom:6px;font-family:inherit}
.fm-list{max-height:240px;overflow:auto;display:flex;flex-direction:column;gap:1px}
.fm-opt{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:6px;cursor:pointer;white-space:normal;line-height:1.3}
.fm-opt:hover{background:#f1f5fb}
.fm-opt input{margin:0;flex:none}
.fm-radio.on{background:#eef4ff;color:var(--brand);font-weight:600}
.fm-radio.on::after{content:'\2713';margin-left:auto;color:var(--brand)}
.fm-text{width:100%;padding:7px 9px;border:1px solid var(--line);border-radius:7px;font-size:13px;font-family:inherit}
.fm-num{display:flex;align-items:center;gap:6px}
.fm-num input{width:100%;padding:7px 8px;border:1px solid var(--line);border-radius:7px;font-size:13px;font-family:inherit}
.fm-foot{display:flex;justify-content:space-between;gap:8px;padding:8px;border-top:1px solid var(--line);background:#fbfcfe}
.fm-clear{border:0;background:none;color:var(--muted);cursor:pointer;font-size:12.5px;padding:6px 8px;border-radius:6px}
.fm-clear:hover{color:var(--ink);background:#eef1f5}
.fm-apply{border:0;background:var(--brand);color:#fff;cursor:pointer;font-size:12.5px;font-weight:600;padding:6px 14px;border-radius:7px}

/* ── Salesforce Lightning deep-link (cloud logo) ── */
.sf-badge{display:inline-flex;align-items:center;vertical-align:middle;margin-left:5px;text-decoration:none;opacity:.82}
.sf-badge:hover{opacity:1}
.sf-cloud{width:15px;height:auto;display:block}
.drawer-title .sf-badge{margin-left:8px}
.drawer-title .sf-cloud{width:18px}

/* ── manager rollup rows (reps grouped under their leader) ── */
tbody tr.usr-grp{cursor:pointer;background:#eef3ff;font-weight:600}
tbody tr.usr-grp:hover{background:#e4ecff}
tbody tr.usr-grp > td{border-top:1px solid #d4deef}
.grp-name{font-weight:700}
.grp-caret{display:inline-block;width:12px;color:var(--brand)}
.grp-n{font-weight:500;color:var(--muted);margin-left:6px;font-size:12px}


/* ── loading skeletons ───────────────────────────────────────────────────── */
@keyframes sk-shimmer{0%{background-position:-200px 0}100%{background-position:calc(200px + 100%) 0}}
.sk-line,.sk-bar,.sk-chart,.sk-row span{background:#eef1f5;background-image:linear-gradient(90deg,#eef1f5 0,#f6f8fa 40px,#eef1f5 80px);background-size:600px 100%;animation:sk-shimmer 1.2s infinite linear;border-radius:4px}
.ac-wrap.sk .ac-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.sk-line{display:inline-block;height:9px}
.sk-line.w20{width:20%}.sk-line.w30{width:30%}.sk-line.w40{width:40%}
.sk-chart{display:flex;align-items:flex-end;gap:3px;height:116px;padding:8px 4px;background:none;animation:none}
.sk-chart .sk-bar{flex:1;min-width:3px;border-radius:2px 2px 0 0}
.sk-table{display:flex;flex-direction:column;gap:10px;padding:10px 2px}
.sk-row{display:flex;gap:12px}
.sk-row span{height:11px;border-radius:4px}

/* ── salesperson report card ── */
.report-card{max-width:680px;margin:0 auto;padding:18px 22px;background:var(--card)}
.report-card:empty{display:none}
.rc-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2.5px solid var(--brand);padding-bottom:12px;margin-bottom:4px;gap:14px}
.rc-name-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.rc-name-row .sf-badge{margin-left:0}
.rc-name-row .sf-cloud{width:20px}
.rc-name{font-size:22px;font-weight:800;line-height:1.05}
.rc-sub{color:var(--muted);font-size:11px;margin-top:4px}
.rc-id{min-width:0}
.rc-meta{display:flex;align-items:center;gap:12px;flex:none}
.rc-meta .lk{height:40px;width:auto;display:block;flex:none}
.rc-badge{background:#eef3fe;color:var(--brand);font-weight:700;font-size:10px;padding:3px 9px;border-radius:10px;letter-spacing:.03em;white-space:nowrap}
.report-card .rc-sec-t{font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--brand);margin:18px 0 9px;display:flex;align-items:center;gap:8px;break-after:avoid;page-break-after:avoid}
.report-card .rc-sec-t::after{content:"";flex:1;height:1px;background:var(--line)}
.rc-tiles{display:grid;gap:9px}
.rc-tiles.t3{grid-template-columns:repeat(3,1fr)}
.rc-tiles.t4{grid-template-columns:repeat(4,1fr)}
.rc-tile{background:#f6f8fb;border:1px solid #e9eef5;border-radius:7px;padding:9px 11px}
.rc-tile .v{font-size:19px;font-weight:800;line-height:1}
.rc-tile .l{font-size:9.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-top:4px}
.rc-tile .s{font-size:10px;color:var(--good);font-weight:700;margin-top:2px}
.rc-tile .s2{font-size:10px;color:var(--muted);font-weight:600;margin-top:3px}
.rc-tile.muted-tile .v{color:var(--muted)}
.rc-meter-lbl{font-size:11px;color:#42505f;font-weight:600;margin:13px 0 0}
.report-card .cal-svg{max-width:100%;height:auto}
.rc-bytype{font-size:10.5px;color:#42505f;display:flex;flex-wrap:wrap;gap:12px;margin:6px 0}
.rc-bytype .rc-ty b{color:var(--ink)}
.rc-bytype .rc-ty-d{color:var(--muted)}
.rc-chart-slot{margin-top:8px}
.drawer-head-actions{display:flex;align-items:center;gap:10px}
/* prev/next rep navigation buttons in the report-card drawer head */
.drawer-nav{display:flex;flex-direction:column;align-items:flex-start;gap:1px;line-height:1.15;text-align:left;padding:4px 10px;max-width:160px;cursor:pointer}
.drawer-nav:hover{border-color:#c9d3e0}
.drawer-nav .nav-lbl{font-size:10px;color:var(--muted);font-weight:600}
.drawer-nav .nav-nm{font-size:12px;font-weight:650;color:var(--ink);max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.btn-print{background:var(--brand);color:#fff;border:0;border-radius:7px;padding:7px 12px;font-weight:600;cursor:pointer;font-size:13px}
.btn-print:hover{background:var(--brand-d)}
.rc-pagebreak{height:0}

/* value color-coding (pace + activities/day), shared with the delta arrows */
.rc-c-red{color:#d7191c} .rc-c-orange{color:#e07a1c} .rc-c-amber{color:#b08900}
.rc-c-green{color:#3f9142} .rc-c-blue{color:#2b83ba}

/* AI executive-summary breakout box (top of the card) */
.rc-ai{margin:14px 0 2px;padding:11px 14px;background:linear-gradient(180deg,#f3f7ff,#fbfcff);border:1px solid #d7e2fb;border-left:3px solid var(--brand);border-radius:10px}
.rc-ai-chip{display:inline-block;font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--brand);margin-bottom:5px}
.rc-ai-body{font-size:12px;line-height:1.5;color:var(--ink)}
.rc-ai-loading{display:flex;gap:8px;align-items:center}
.rc-ai-loading .sk-line{height:10px}

/* Prepared stamp — bottom-right corner of the card */
.rc-prepared{text-align:right;color:var(--muted);font-size:10px;margin-top:16px;padding-top:6px;border-top:1px solid var(--line)}

/* ── Key Accounts (four ranked groups) ── */
.rc-key{margin-top:4px}
.rc-kg{margin:0 0 14px;break-inside:avoid;page-break-inside:avoid}
.rc-kg-h{display:flex;align-items:baseline;gap:8px;margin:10px 0 4px;flex-wrap:wrap}
.rc-kg-t{font-size:12px;font-weight:800;color:var(--ink)}
.rc-kg-s{font-size:10px;color:var(--muted)}
.rc-kg-empty{font-size:10.5px;color:var(--muted);padding:2px 0 6px}
.ka-tbl{width:100%;border-collapse:collapse;font-size:11px;table-layout:fixed}
.ka-tbl th{text-align:left;color:var(--muted);font-weight:600;font-size:8.5px;text-transform:uppercase;letter-spacing:.04em;padding:4px 6px;border-bottom:1px solid var(--line);white-space:normal;vertical-align:bottom}
.ka-tbl .th-sub{display:block;font-weight:400;font-size:7.5px;letter-spacing:0;text-transform:none;color:var(--muted);margin-top:2px;white-space:nowrap}
.ka-tbl th.num,.ka-tbl td.num{text-align:right}
.ka-tbl td{padding:5px 6px;border-bottom:1px solid #eef2f7;vertical-align:top;overflow:visible}  /* let the sparkline tooltip escape the cell (overrides global tbody td overflow:hidden) */
.ka-tbl td.num{font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}
.ka-name{font-weight:700;white-space:normal;line-height:1.2}
.ka-metric{font-weight:600;font-size:9.5px;margin-top:2px}
.ka-d{font-weight:500;font-size:9px;margin-top:1px;white-space:nowrap}
.rc-dl{font-weight:800;font-variant-numeric:tabular-nums}
.spark{height:24px;display:block}
.spk-wrap{position:relative;display:inline-block;line-height:0}
.spk-tip{top:auto;bottom:28px;min-width:120px}  /* pop above the sparkline (overrides .ac-tip top) */

/* PDF clone (html2canvas rasterizes the on-screen DOM, so @media print does NOT
   apply here — these screen rules drive the generated PDF's whitespace/width). */
.rc-pdf{max-width:none;padding:6px 10px}
.rc-pdf .rc-sec-t{margin-top:20px}
.rc-pdf .rc-head{margin-bottom:8px}
.rc-pdf .no-print{display:none!important}
.rc-pdf .rc-prepared{display:none!important}  /* per-page jsPDF footer carries this in the PDF */

@media print {
  body * { visibility: hidden; }
  .no-print, .scrim { display: none !important; }
  #drawer, #drawer * { visibility: visible; }
  #drawer { position: static; width: auto; max-width: none; box-shadow: none; height: auto; display: block; }
  .drawer-head { border: 0; padding: 0 0 8px; }
  .drawer-scroll { overflow: visible !important; display: block; }
  .report-card { max-width: none; padding: 0; }
  .ac-ctl, .ac-seg { display: none !important; }
  .rc-sec-t, .rc-tiles, .rc-meter, .rc-mconnect, .rc-mlegend, .rc-chart-slot, .ac-wrap, .cal-wrap, .rc-kg { break-inside: avoid; page-break-inside: avoid; }
  .rc-pagebreak { break-before: page; page-break-before: always; }
  * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
  @page { margin: 12mm; }
}

/* ───────────── Performance by Leader (rollup tree) ───────────── */
.ldr-legend { display:flex; flex-direction:column; align-items:flex-start; gap:4px; margin:6px 2px 12px; font-size:11px; color:#5b6573; }
.ldr-lg-grp { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.ldr-lg-t { font-weight:700; color:#1f2a37; min-width:96px; }
.ldr-lg-it { display:inline-flex; align-items:center; gap:4px; white-space:nowrap; width:108px; }
.ldr-lg-sw { width:11px; height:11px; border-radius:2px; display:inline-block; }
.ldr-tree { font-size:13px; min-width:1160px; }
.ldr-head, .ldr-row { display:grid; grid-template-columns:minmax(200px,1.3fr) minmax(150px,1.1fr) minmax(110px,0.85fr) 70px 80px 1fr 1fr 1fr; align-items:center; column-gap:14px; }
.ldr-c-title { color:#374151; font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; }
.ldr-c-geo { color:var(--muted); font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; }
.ldr-head { position:sticky; top:0; z-index:4; background:#fbfcfe; border-bottom:1px solid var(--line); padding:10px 12px; font-size:13px; font-weight:600; color:var(--muted); white-space:nowrap; }
.ldr-head .ldr-hsub { display:block; font-weight:500; color:var(--muted); font-size:11px; margin-top:1px; }
.ldr-head .ldr-c-num { text-align:right; }
.ldr-h { cursor:pointer; user-select:none; }
.ldr-h:hover, .ldr-h.on { color:#1f2a37; }
.ldr-sort { margin-left:3px; font-size:9px; color:var(--brand); }
.ldr-row { padding:9px 12px; border-bottom:1px solid var(--line); cursor:pointer; }
.ldr-row:last-child { border-bottom:0; }
.ldr-row[data-depth="0"] { background:#eef4ff; }
.ldr-row[data-depth="1"] { background:#f7fafe; }
.ldr-row:hover { background:#f7faff; }
.ldr-c-name { display:flex; align-items:center; gap:7px; min-width:0; }
.ldr-caret { flex:0 0 20px; color:#6b7280; font-size:18px; text-align:center; }
.ldr-caret-none { visibility:hidden; }
.ldr-nm { font-weight:600; color:#1f2a37; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ldr-c-num { text-align:right; font-variant-numeric:tabular-nums; color:#374151; }
.ldr-c-bar { min-width:0; }
.ldr-mval { display:block; font-weight:700; font-size:13px; color:#1f2a37; line-height:1.1; margin-bottom:3px; }
.ldr-bar { display:flex; width:100%; height:9px; border-radius:3px; overflow:hidden; background:#eef2f7; }
.ldr-seg { height:100%; }
/* single-seller cell: color chip + number (pace / activities) */
.ldr-chipwrap { display:flex; align-items:center; gap:7px; }
.ldr-chipwrap .ldr-mval { margin:0; }
.ldr-chip { flex:0 0 auto; width:11px; height:11px; border-radius:2px; }
