:root{--bg:#f7f8fa;--surface:#fff;--surface-2:#f0f2f5;--border:#e2e5ea;--ink:#0a0a0b;--ink-2:#53565f;--ink-3:#8a8d96;--accent:#00f;--accent-soft:#e8e8ff;--healthy:#2d7a4a;--watch:#c77b17;--atrisk:#b23a1f;--churned:#e30613;--neutral:#8a8d96;--radius:10px;--font:-apple-system, "Segoe UI", "Inter", system-ui, sans-serif;--font-mono:ui-monospace, "SFMono-Regular", "JetBrains Mono", Consolas, monospace}@media (prefers-color-scheme:dark){:root{--bg:#0d0e11;--surface:#17181c;--surface-2:#1d1f24;--border:#2b2d33;--ink:#f2f3f5;--ink-2:#c1c3cb;--ink-3:#8d909a;--accent:#6b8bff;--accent-soft:#1e2340;--healthy:#6fe09c;--watch:#f2b968;--atrisk:#ff9466;--churned:#ff8e96;--neutral:#9a9da6}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased}a{color:var(--accent)}button{cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:6px;padding:6px 12px;font-family:inherit;font-size:13px}button:hover{border-color:var(--ink-3)}.login-wrap{justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:340px;padding:28px;box-shadow:0 4px 16px #0000000f}.login-brand{letter-spacing:-.01em;margin-bottom:18px;font-size:15px;font-weight:800}.login-card form{flex-direction:column;gap:10px;display:flex}.login-card button[type=submit]{background:var(--accent);color:#fff;border-color:var(--accent);padding:9px 14px}.login-error{color:var(--churned);font-size:12px}.login-divider{text-align:center;color:var(--ink-3);margin:2px 0;font-size:12px}.login-email-form input[type=email]{border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:6px;padding:8px 10px;font-family:inherit;font-size:13px}.login-check-email{color:var(--ink-2);font-size:13px}.shell{flex-direction:column;min-height:100vh;display:flex}.topnav{z-index:50;color:#f5f6f8;background:#0a0a0b;flex-wrap:wrap;align-items:center;gap:4px 6px;padding:8px 20px;display:flex;position:sticky;top:0}.topnav-brand{letter-spacing:-.01em;color:#f5f6f8;margin-right:14px;font-size:14px;font-weight:800;text-decoration:none}.topnav-item{position:relative}.topnav-trigger,.topnav-link{color:#c1c3cb;background:0 0;border:none;border-radius:6px;padding:8px 10px;font-size:13px;text-decoration:none;display:inline-block}.topnav-trigger:hover,.topnav-link:hover,.topnav-item.open .topnav-trigger{color:#fff;background:#1c1d21}.topnav-trigger.active,.topnav-link.active{color:#fff;box-shadow:inset 0 -2px 0 var(--accent)}.topnav-menu{background:var(--surface);min-width:240px;max-width:calc(100vw - 32px);color:var(--ink);border:1px solid var(--border);border-radius:var(--radius);max-height:calc(100dvh - 64px);margin-top:4px;padding:6px;position:absolute;top:100%;left:0;overflow-y:auto;box-shadow:0 8px 24px #0000002e}.topnav-menu-section+.topnav-menu-section{border-top:1px solid var(--border);margin-top:4px;padding-top:4px}.topnav-menu-heading{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);padding:6px 8px 2px;font-size:10.5px;font-weight:600}.topnav-menu a{color:var(--ink);border-radius:6px;padding:6px 8px;font-size:13px;text-decoration:none;display:block}.topnav-menu a:hover{background:var(--surface-2)}.topnav-menu a.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.topnav-spacer{flex:1}.topnav-email{color:#9a9da6;margin:0 6px;font-size:12px}.topnav-signout{color:#c1c3cb;background:0 0;border-color:#2b2d33;font-size:12px}.content{flex:1;width:100%;max-width:1320px;margin:0 auto;padding:24px 28px}@media (max-width:700px){.topnav{padding:8px 12px}.topnav-email{display:none}.topnav-item{position:static}.topnav-menu{min-width:0;max-width:none;left:12px;right:12px}.content{padding:16px}}.dash-loading,.dash-error{color:var(--ink-2);padding:40px}.dash-error button{margin-top:10px}.overline{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.09em;color:var(--ink-3);font-size:11px;font-weight:600}.page-head h1{letter-spacing:-.02em;margin:6px 0 16px;font-size:22px;font-weight:800}.page-head .page-sub{color:var(--ink-2);margin:-10px 0 16px;font-size:12.5px}.page-head .season-switch{color:var(--ink-2);align-items:center;gap:8px;margin:-6px 0 16px;font-size:12.5px;display:inline-flex}.brandbar{gap:8px;margin-bottom:16px;display:flex}.bpill{border:1px solid var(--border);background:var(--surface);color:var(--ink-3);border-radius:999px;padding:5px 12px;font-size:12.5px;font-weight:600}.bpill.on{color:var(--ink);border-color:var(--accent);background:var(--accent-soft)}.kpi-row{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px;display:grid}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.kpi.accent{border-color:var(--accent)}.kpi .label{font-family:var(--font-mono);text-transform:uppercase;color:var(--ink-3);font-size:10.5px;font-weight:600}.kpi .value{font-family:var(--font-mono);margin-top:6px;font-size:22px;font-weight:700}.kpi .foot{color:var(--ink-2);margin-top:4px;font-size:12px}.toolbar{margin-bottom:10px}.toolbar input{width:280px}.table-scroll{border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}table.acct{border-collapse:collapse;width:100%;font-size:13px}table.acct th{text-align:left;background:var(--surface-2);color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);padding:8px 12px;font-size:11px}table.acct td{border-bottom:1px solid var(--border);padding:8px 12px}table.acct th.num,table.acct td.num{text-align:right;font-family:var(--font-mono)}table.acct th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}table.acct th.sortable:hover{color:var(--ink)}table.acct .muted{color:var(--ink-3);font-size:11px}.tier-dot{border-radius:50%;width:8px;height:8px;margin-right:4px;display:inline-block}.section-head{justify-content:space-between;align-items:baseline;gap:12px;margin:24px 0 10px;display:flex}.section-head h2{margin:0;font-size:15px;font-weight:700}.hint,.section-head .hint{color:var(--ink-3);font-size:12px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.admin-panel{max-width:760px}.admin-panel h2{margin:0 0 12px;font-size:14px;font-weight:700}.admin-group-list{flex-direction:column;gap:12px;margin:0 0 14px;padding:0;list-style:none;display:flex}.admin-group-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);padding:14px 16px;position:relative}.admin-group-card-head{align-items:center;gap:10px;margin-bottom:12px;padding-right:76px;display:flex}.admin-group-name{flex:1;max-width:220px;font-size:13px;font-weight:700}.admin-group-delete-form{position:absolute;top:14px;right:16px}.admin-dash-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;display:grid}.admin-dash-col-title{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);margin-bottom:6px;font-size:10px;font-weight:600}.admin-checkbox{align-items:center;gap:6px;padding:3px 0;font-size:12.5px;display:flex}.admin-add-group{border:1px dashed var(--border);border-radius:var(--radius);padding:10px 16px}.admin-add-group summary{cursor:pointer;color:var(--ink-2);font-size:13px;font-weight:600}.admin-add-form-body{flex-direction:column;align-items:flex-start;gap:12px;margin-top:12px;display:flex}.admin-add-form-body .admin-group-name{width:100%;max-width:none}.admin-remove-btn{color:var(--churned);border-color:var(--churned);background:0 0}.muted{color:var(--ink-3);font-size:11px}table.cmp{border-collapse:collapse;width:100%;font-size:13px}table.cmp th{text-align:left;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);padding:6px 10px;font-size:11px}table.cmp td{border-bottom:1px solid var(--border);vertical-align:middle;padding:8px 10px}table.cmp tr.total td{border-bottom:none;font-weight:700}.barcell{font-family:var(--font-mono);align-items:center;gap:8px;font-size:12.5px;display:flex}.barcell-value{text-align:right;min-width:80px}.minibar{background:var(--accent);border-radius:3px;height:8px;display:inline-block}.pos{color:var(--healthy)}.neg{color:var(--churned)}.scatter-panel,.scatter-svg-wrap{position:relative}.scatter-svg{width:100%;height:auto;display:block}.scatter-axis{stroke:var(--border);stroke-width:1px}.scatter-axis-zero{stroke:var(--border);stroke-width:1px;stroke-dasharray:3 3}.scatter-gridline{stroke:var(--border);stroke-width:1px;stroke-dasharray:2 4}.scatter-axis-tick{fill:var(--ink-3);font-size:11px}.scatter-axis-labels{color:var(--ink-3);justify-content:space-between;margin-top:4px;font-size:11px;display:flex}.scatter-tooltip{background:var(--ink);color:var(--bg);white-space:nowrap;pointer-events:none;border-radius:6px;padding:5px 9px;font-size:12px;position:absolute;transform:translate(-50%,-130%)}.scatter-legend{color:var(--ink-2);flex-wrap:wrap;gap:14px;margin-top:10px;font-size:12px;display:flex}.scatter-legend-item{align-items:center;gap:5px;display:flex}.scatter-legend-swatch{border-radius:50%;width:9px;height:9px;display:inline-block}.kpi-row-7{grid-template-columns:repeat(4,1fr)}.kpi-row-7 .kpi{position:relative}.kpi .lbl{font-family:var(--font-mono);text-transform:uppercase;color:var(--ink-3);font-size:10.5px;font-weight:600}.kpi .val{font-family:var(--font-mono);margin-top:6px;font-size:22px;font-weight:700}.kpi .sub{color:var(--ink-2);margin-top:4px;font-size:12px}.kpi .val-text{word-break:break-word;margin-top:6px;font-size:14px;font-weight:700}.kpi .val.success{color:var(--healthy)}.kpi .val.danger{color:var(--churned)}.kpi-split{gap:16px;margin-top:6px;display:flex}.kpi-split-item{flex:1}.yoy{margin-top:4px;font-size:11px;font-weight:600;display:inline-block}.yoy-good{color:var(--healthy)}.yoy-bad{color:var(--churned)}.yoy-new{color:var(--accent)}.msel{position:relative}.msel>button{text-align:left;justify-content:space-between;width:100%;display:flex}.msel .msel-panel{z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:240px;max-height:280px;padding:8px;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto;box-shadow:0 10px 28px #0000002e}.msel .msel-panel input[type=search]{width:100%;margin-bottom:6px}.msel .opt label{cursor:pointer;align-items:center;gap:8px;width:100%;padding:4px 2px;font-size:12.5px;display:flex}.msel .opt.all{border-bottom:1px solid var(--border);margin-bottom:4px;padding-bottom:4px;font-weight:600}.filterbar{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:16px;display:flex}.filterbar .field{flex-direction:column;gap:4px;min-width:120px;display:flex}.filterbar .field label{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);font-size:10.5px;font-weight:600}.filterbar select{border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:6px;padding:7px 8px;font-family:inherit;font-size:12.5px}.seg{border:1px solid var(--border);border-radius:6px;display:flex;overflow:hidden}.seg button{border:none;border-right:1px solid var(--border);border-radius:0;padding:7px 10px;font-size:12px}.seg button:last-child{border-right:none}.seg button.on{background:var(--accent);color:#fff}.export-btn{white-space:nowrap}.trend-wrap{position:relative}.trend-svg{width:100%;height:auto;display:block}.trend-axis-tick{fill:var(--ink-3);font-size:9px;font-family:var(--font-mono)}.trend-gridline{stroke:var(--border);stroke-width:1px}.trend-guide{stroke:var(--ink-3);stroke-width:1px;stroke-dasharray:2 3}.trend-tooltip{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font-family:var(--font-mono);color:var(--ink);white-space:nowrap;z-index:10;padding:6px 10px;font-size:11px;position:absolute;top:4px;right:4px;box-shadow:0 10px 28px #0000002e}.empty{color:var(--ink-3);padding:12px 0;font-size:12.5px}.bar-row{margin-bottom:14px}.bar-row:last-child{margin-bottom:0}.brow{justify-content:space-between;align-items:baseline;margin-bottom:4px;font-size:12.5px;display:flex}.bname{font-weight:600}.bnum{font-family:var(--font-mono);color:var(--ink-2)}.bar-track{background:var(--surface-2);border-radius:5px;height:10px;overflow:hidden}.bar-fill{background:var(--accent);border-radius:5px;height:100%}.bar-fill.alt{background:#7c3aed}.bar-fill.danger{background:var(--churned)}.seg-detail{color:var(--ink-3);flex-wrap:wrap;gap:12px;margin-top:3px;font-size:10px;display:flex}.seg-detail-item{align-items:center;gap:4px;display:inline-flex}.seg-detail-swatch{border-radius:999px;width:7px;height:7px;display:inline-block}.bookmarkbar{gap:8px;margin-bottom:16px;display:flex}.bookmarkbar button{border-radius:999px;padding:6px 14px;font-size:12.5px;font-weight:600}.bookmarkbar button.on{background:var(--accent);color:#fff;border-color:var(--accent)}.refresh-status{color:var(--ink-3);align-items:center;gap:12px;margin-bottom:12px;font-size:12px;display:flex}.refresh-progress{align-items:center;gap:8px;display:flex}.refresh-progress-bar{background:var(--surface-2);border-radius:999px;width:100px;height:6px;display:inline-block;overflow:hidden}.refresh-progress-fill{background:var(--accent);height:100%;transition:width .3s;display:block}.refresh-progress-count{font-family:var(--font-mono);color:var(--ink-3);font-size:11px}.grid2{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;display:grid}@media (max-width:900px){.grid2{grid-template-columns:1fr}.kpi-row-7{grid-template-columns:1fr 1fr}}.rep-kpi-row{grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:20px;display:grid}@media (max-width:1080px){.rep-kpi-row{grid-template-columns:repeat(2,1fr)}}.rep-kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.rep-kpi__lbl{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);font-size:10px}.rep-kpi__val{font-variant-numeric:tabular-nums;margin:6px 0 4px;font-size:22px;font-weight:800}.rep-kpi__sub{font-family:var(--font-mono);color:var(--ink-3);font-size:11px}.rep-kpi__sub .pos{color:var(--healthy);font-weight:700}.rep-kpi__sub .neg{color:var(--churned);font-weight:700}.rep-kpi__sub .muted{color:var(--ink-3)}.rep-rank-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-bottom:20px;display:grid}.rep-rank-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.rep-rank-card__hd{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.rep-rank-card__brand{font-size:13.5px;font-weight:700}.rep-rank-card__n{font-family:var(--font-mono);color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;font-size:9.5px}.rep-rank-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:6px 0;display:flex}.rep-rank-row:last-child{border-bottom:none}.rep-rank-row__cat{color:var(--ink-2);font-size:12px;font-weight:500}.rep-rank-row__mid{font-family:var(--font-mono);align-items:baseline;gap:6px;display:flex}.rep-rank-row__units{color:var(--ink);font-variant-numeric:tabular-nums;font-size:12.5px;font-weight:700}.rep-rank-row__u-lbl{color:var(--ink-3);font-size:9.5px}.rep-rank-badge{font-family:var(--font-mono);white-space:nowrap;background:var(--surface-2);color:var(--ink-2);border:1px solid var(--border);border-radius:20px;padding:2px 8px;font-size:11px;font-weight:700}.rep-rank-badge--top{background:var(--accent);color:#fff;border-color:var(--accent)}.rep-yoy{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px}.rep-yoy__hd{margin-bottom:8px;font-size:14px;font-weight:700}.rep-yoy__stat{align-items:baseline;gap:12px;display:flex}.rep-yoy__val{font-size:28px;font-weight:800}.rep-yoy__sub{color:var(--ink-3);margin-bottom:12px;font-size:12px}.rep-yoy__bars{flex-direction:column;gap:8px;display:flex}.rep-yoy__bar-row{align-items:center;gap:10px;display:flex}.rep-yoy__bar-lbl{width:70px;color:var(--ink-2);flex-shrink:0;font-size:12px}.rep-yoy__bar-track{background:var(--surface-2);border-radius:4px;flex:1;height:22px;overflow:hidden}.rep-yoy__bar-fill{background:var(--accent);height:100%}.rep-yoy__bar-fill--prior{background:var(--border-strong,var(--border))}.rep-yoy__bar-val{text-align:right;width:80px;font-family:var(--font-mono);flex-shrink:0;font-size:12px}.rep-yoy__brands{border-top:1px solid var(--border);flex-direction:column;gap:6px;margin-top:12px;padding-top:10px;display:flex}.rep-yoy__brand-row{font-size:12px;font-family:var(--font-mono);color:var(--ink-2);justify-content:space-between;display:flex}.rep-donut{position:relative}.rep-donut__svg{width:100%;max-width:300px;height:auto;margin:0 auto;display:block}.rep-donut__tip{color:#fff;background:#0a0a0b;border-radius:6px;max-width:200px;padding:6px 10px;font-size:11px;position:absolute;top:0;right:0}.legend{flex-wrap:wrap;gap:12px;margin-top:8px;display:flex}.legend span{font-family:var(--font-mono);color:var(--ink-3);align-items:center;gap:6px;font-size:11px;display:inline-flex}.legend i{border-radius:2px;flex-shrink:0;width:10px;height:10px;display:inline-block}.rep-fambars{flex-direction:column;gap:8px;margin-top:12px;display:flex}.rep-fambar-row{align-items:center;gap:8px;display:flex}.rep-fambar-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.rep-fambar-name{text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;width:140px;font-size:12px;font-weight:600;overflow:hidden}.rep-fambar-track{background:var(--surface-2);border-radius:3px;flex:1;height:18px;overflow:hidden}.rep-fambar-fill{background:var(--accent);height:100%}.rep-fambar-val{text-align:right;width:110px;font-family:var(--font-mono);color:var(--ink-2);flex-shrink:0;font-size:11px}.bkcell{position:relative}.bkbar{background:var(--accent-soft);z-index:0;border-radius:3px;height:20px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.bkcell span{z-index:1;position:relative}.new-badge{font-family:var(--font-mono);color:#fff;background:var(--accent);border-radius:10px;margin-left:6px;padding:1px 6px;font-size:9px;font-weight:800;display:inline-block}table.acct--sortable th{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}table.acct--sortable th.sortcol{color:var(--accent)}table.acct--sortable th .arw{opacity:.7;font-size:9px}.filterbar input[type=date]{border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:6px;padding:6px 8px;font-family:inherit;font-size:12.5px}.date-range{color:var(--ink-3);align-items:center;gap:6px;font-size:12px;display:flex}.ecom-window{color:var(--ink-3);margin:-6px 0 12px;font-size:12px}table.acct tr.clickable{cursor:pointer}table.acct tr.clickable:hover td{background:var(--surface-2)}.seg button:disabled{opacity:.4;cursor:not-allowed}.admin-wide{max-width:none}.admin-add-person{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:16px;display:flex}.admin-add-person input[type=email]{flex:1;min-width:220px}.admin-group-checks{flex-wrap:wrap;gap:2px 14px;display:flex}.admin-people-section{margin-bottom:14px}.admin-people-section>summary{cursor:pointer;padding:6px 0;font-size:13px;font-weight:700}.admin-people-section>summary .muted{font-weight:500}.admin-people-table td{vertical-align:top}.admin-people-table th:last-child,.admin-people-table td:last-child{white-space:nowrap;width:1%}.admin-can-see{color:var(--ink-2);max-width:380px;font-size:12px}.admin-edit-row td{border-bottom:1px solid var(--border);padding-top:0}.admin-edit-row summary{cursor:pointer;color:var(--accent);font-size:12px}.admin-person-form{flex-direction:column;align-items:flex-start;gap:10px;padding:10px 0 14px;display:flex}.admin-form-label{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);font-size:10.5px;font-weight:600}.admin-board-grid{flex-direction:column;gap:12px;width:100%;display:flex}.admin-board-dept-title{margin-bottom:6px;font-size:12px;font-weight:700}.admin-overview th,.admin-overview td{text-align:center;padding:6px 8px}.admin-overview th:first-child,.admin-overview td:first-child{text-align:left}.admin-overview-family{border-bottom:1px solid var(--border)}.admin-overview-version{color:var(--ink-3);font-size:10.5px;font-weight:500}.admin-overview-cell{font-family:var(--font-mono)}
