:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#0f172a;background:#eef2f8}body{margin:0;min-height:100vh;display:grid;place-items:center}.card{width:min(440px,calc(100% - 40px));background:#fff;border-radius:16px;padding:36px;box-shadow:0 12px 36px #0f172a20}h1{margin:0 0 8px;font-size:24px}.eyebrow{color:#1d4ed8;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.muted,.footer{color:#64748b;line-height:1.5}.footer{text-align:center;margin:22px 0 0;font-size:13px}a{color:#1d4ed8;font-weight:700;text-decoration:none}label{display:block;margin:16px 0 0;font-size:13px;font-weight:700}input{box-sizing:border-box;display:block;width:100%;margin-top:6px;padding:11px;border:1px solid #94a3b8;border-radius:8px;font:inherit}button{width:100%;margin-top:20px;border:0;border-radius:8px;padding:12px;background:#1d4ed8;color:white;font:inherit;font-weight:700;cursor:pointer}button:disabled{opacity:.6;cursor:wait}.notice{border-radius:8px;padding:10px 12px;background:#fee2e2;color:#991b1b;font-size:13px}.notice.success{background:#e7f6ee;color:#14532d}.data-row{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid #e2e8f0}.data-row span:last-child{text-align:right;font-weight:600}
[hidden]{display:none !important}
body.workspace-open{display:block;background:#f4f7fb}
.workspace{box-sizing:border-box;width:min(1080px,calc(100% - 40px));margin:28px auto 48px}
.workspace-header{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px}
.workspace h1{font-size:32px}
.workspace h2,.workspace h3{margin:0 0 8px;font-size:18px}
.workspace .eyebrow{color:#0B75D7}
.workspace .muted{margin:6px 0 0}
.tabs{display:flex;gap:8px;margin-bottom:16px}
.workspace button{width:auto;margin-top:0;background:#0B75D7}
.workspace button.secondary,.workspace button.tab{background:#fff;color:#1e293b;border:1px solid #cbd5e1}
.workspace button.tab[aria-selected="true"]{background:#0B75D7;color:#fff;border-color:#0B75D7}
.pane{background:#fff;border-radius:16px;padding:20px;box-shadow:0 10px 30px #0f172a14}
.split{display:grid;grid-template-columns:280px 1fr;gap:16px;align-items:start}
.access-grid{display:grid;gap:16px}
.partner-list{display:flex;flex-direction:column;gap:4px;margin-top:12px;max-height:640px;overflow:auto}
.workspace button.partner-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:10px 12px;background:transparent;color:#0f172a;border:0;text-align:left}
.workspace button.partner-item span{color:#64748b;font-size:13px;font-weight:500}
.workspace button.partner-item[aria-current="true"]{background:#e7f2fc}
.search-label{margin-top:0}
.workspace select{box-sizing:border-box;display:block;width:100%;margin-top:6px;padding:11px;border:1px solid #94a3b8;border-radius:8px;font:inherit;background:#fff}
.inline-form{display:flex;gap:8px;align-items:flex-end;margin-top:14px}
.inline-form label{flex:1;margin:0}
.period{margin-top:18px}
.access-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #e2e8f0}
.access-row div{display:flex;flex-direction:column;gap:2px}
.access-row span{color:#64748b;font-size:13px}
@media (max-width:720px){.split{grid-template-columns:1fr}.inline-form{flex-direction:column;align-items:stretch}.workspace-header{align-items:flex-start;flex-direction:column}}

/* Phase 2 — staff monthly dashboard */
.workspace{width:min(1400px,calc(100% - 48px));}
.workspace-header{padding:8px 0 4px}.workspace-header h1{letter-spacing:-.035em;color:#1e2a6b}.tabs{overflow-x:auto;padding:4px 0 8px}.workspace button.tab{min-height:44px;white-space:nowrap}.workspace button.secondary{background:#fff;color:#334155;border:1px solid #d8dee9}.workspace button.secondary:hover{background:#f8fafc}
.monthly-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin:8px 0 20px}.monthly-heading h2{font-size:28px!important;letter-spacing:-.025em;color:#1e2a6b}.section-kicker{margin:0 0 5px;color:#64748b;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.period-select{margin:0;min-width:210px}.period-select select{margin-top:7px}
.loading-panel,.empty-state{display:flex;align-items:center;justify-content:center;gap:12px;min-height:180px;background:#fff;border:1px solid #e6eaf0;border-radius:12px;color:#64748b}.spinner{width:20px;height:20px;border:3px solid #dbeafe;border-top-color:#2783de;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:16px}.kpi-card{display:flex;flex-direction:column;min-height:116px;padding:18px;background:#fff;border:1px solid #e6eaf0;border-radius:12px;box-shadow:0 1px 2px #0f172a0d}.kpi-label{color:#64748b;font-size:12px;font-weight:750;text-transform:uppercase;letter-spacing:.06em}.kpi-value{margin-top:12px;color:#1e2a6b;font-size:24px;letter-spacing:-.03em}.kpi-note{margin-top:auto;padding-top:10px;color:#7d7a75;font-size:12px;line-height:1.35}
.tier-summary{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:16px;border:1px solid #e6eaf0;box-shadow:none}.tier-counts{display:flex;flex-wrap:wrap;gap:10px}.tier-count{display:flex;align-items:center;gap:10px;padding:8px 10px;background:#f8fafc;border:1px solid #e6eaf0;border-radius:8px}.tier-badge,.status-badge{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.03em;white-space:nowrap}.tier-gold{background:#fff4cc;color:#7a5600}.tier-silver{background:#eef1f5;color:#475569}.tier-bronze{background:#f8e6d7;color:#8a4b20}.tier-custom{background:#eee8ff;color:#6842a5}.tier-ambassador{background:#e5f2fc;color:#155d96}.status-healthy{background:#e8f1ec;color:#24714a}.status-active{background:#e5f2fc;color:#1767a8}.status-at-risk{background:#fbebde;color:#9a4f18}.status-demote{background:#fce9e7;color:#a63c34}.status-not-set{background:#f0efed;color:#64748b}
.monthly-table-pane{padding:0;overflow:hidden;border:1px solid #e6eaf0;box-shadow:0 1px 2px #0f172a0d}.table-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;padding:20px 22px 0}.filter-grid{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(2,minmax(150px,.7fr)) minmax(180px,.8fr);gap:12px;padding:16px 22px 20px}.filter-grid label{margin:0}.check-filter{display:flex;align-items:center;gap:9px;align-self:end;min-height:44px;padding:0 12px;border:1px solid #d8dee9;border-radius:8px;background:#fff}.check-filter input{display:inline-block;width:auto;margin:0;accent-color:#2783de}.table-scroll{overflow:auto;border-top:1px solid #e6eaf0}.performance-table{width:100%;min-width:1280px;border-collapse:collapse;background:#fff;font-size:13px}.performance-table th{position:sticky;top:0;z-index:1;padding:12px 14px;background:#f8fafc;border-bottom:1px solid #dfe5ec;color:#64748b;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.05em}.performance-table th button{display:inline-flex;align-items:center;gap:4px;width:auto;margin:0;padding:0;background:transparent;color:inherit;border:0;font-size:inherit;text-transform:inherit;letter-spacing:inherit}.performance-table td{padding:14px;border-bottom:1px solid #edf0f4;vertical-align:middle}.performance-table tr:hover td{background:#fafcff}.performance-table .numeric{text-align:right;font-variant-numeric:tabular-nums}.partner-identity{display:flex;flex-direction:column;gap:3px;min-width:165px}.partner-identity span{color:#7d7a75;font-size:12px}.strong-cell{font-weight:800;color:#1e2a6b}.positive{color:#24714a}.negative{color:#a63c34}.improvement-cell{min-width:240px;max-width:340px;color:#475569;line-height:1.4}.empty-state{flex-direction:column;min-height:140px;border:0;border-radius:0}.empty-state strong{color:#334155}.empty-state span{font-size:13px}
@media (max-width:1150px){.kpi-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:760px){.workspace{width:min(100% - 32px,1400px);margin-top:18px}.monthly-heading,.tier-summary,.table-heading{align-items:stretch;flex-direction:column}.period-select{width:100%}.kpi-grid{grid-template-columns:repeat(2,1fr)}.filter-grid{grid-template-columns:1fr}.tabs{margin-right:-16px}.pane{border-radius:12px}}
@media (max-width:420px){.kpi-grid{grid-template-columns:1fr}.kpi-card{min-height:104px}.workspace h1{font-size:27px}.monthly-heading h2{font-size:24px!important}}
@media (prefers-reduced-motion:reduce){.spinner{animation:none}}
body.workspace-open{overflow-x:hidden}.workspace,#panel-monthly,.monthly-table-pane,.table-scroll{min-width:0;max-width:100%}.tabs{max-width:100%;box-sizing:border-box}


/* Phase 3 — staff partner profile */
.profile-intro{max-width:760px;margin:8px 0 20px}.profile-intro h2{font-size:28px!important;letter-spacing:-.025em;color:#1e2a6b}.profile-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:16px;align-items:start}.profile-directory{position:sticky;top:16px;padding:18px;box-shadow:0 1px 2px #0f172a0d;border:1px solid #e6eaf0}.profile-directory-count{font-size:13px}.profile-main{min-width:0}.profile-directory .partner-list{max-height:680px;margin-top:12px}.workspace button.partner-item{gap:6px;padding:11px 12px;border-radius:9px}.workspace button.partner-item:hover{background:#f5f8fc}.partner-item-top{display:flex!important;align-items:center;justify-content:space-between;width:100%;gap:8px;color:#0f172a!important;font-size:14px!important}.partner-item-top strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace button.partner-item .partner-item-email{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.workspace button.partner-item .tier-badge{color:inherit;font-size:9px;font-weight:800}.profile-empty{display:flex;min-height:220px;align-items:center;justify-content:center;flex-direction:column;gap:8px;padding:24px;background:#fff;border:1px solid #e6eaf0;border-radius:12px;color:#64748b;text-align:center}.profile-empty strong{color:#334155;font-size:16px}.profile-detail{min-width:0}.profile-hero{display:flex;align-items:center;gap:18px;padding:24px 26px;border-radius:16px;margin-bottom:14px;background:linear-gradient(135deg,#0b1f52,#1d4ed8 55%,#3b82f6);color:#fff;overflow:hidden}.profile-avatar{display:flex;flex:0 0 64px;width:64px;height:64px;align-items:center;justify-content:center;border:2px solid #ffffff59;border-radius:50%;background:#ffffff2e;font-size:22px;font-weight:800;letter-spacing:-.03em}.profile-hero-body{min-width:0}.profile-name-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.profile-name-row h2{margin:0;color:#fff;font-size:24px}.profile-meta{display:flex;gap:8px 18px;flex-wrap:wrap;margin-top:8px;color:#dbeafe;font-size:13px;line-height:1.45}.profile-meta span{overflow-wrap:anywhere}.profile-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px}.profile-kpi{display:flex;min-height:92px;box-sizing:border-box;flex-direction:column;padding:15px;background:#fff;border:1px solid #e6eaf0;border-radius:12px}.profile-kpi-label{color:#64748b;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.profile-kpi-value{margin-top:8px;color:#1e2a6b;font-size:20px;letter-spacing:-.025em}.profile-kpi-note{margin-top:auto;padding-top:6px;color:#7d7a75;font-size:12px;line-height:1.35}.profile-assessment{padding:19px 20px;margin-bottom:14px;background:#fff;border:1px solid #dbe5f3;border-left:4px solid #2783de;border-radius:12px}.profile-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:14px}.profile-section-heading h3{margin:0!important;color:#1e2a6b}.profile-statuses{display:flex;gap:10px;flex-wrap:wrap}.profile-status-pair{display:flex;align-items:center;gap:6px;color:#64748b;font-size:12px;font-weight:700}.profile-guidance{padding:14px 16px;background:#f5f8fc;border-radius:9px;color:#334155}.profile-guidance p{margin:5px 0 0;line-height:1.5}.profile-section{margin-bottom:14px;padding:20px;border:1px solid #e6eaf0;box-shadow:0 1px 2px #0f172a0d}.qtd-profile-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.qtd-profile-grid .profile-kpi{background:#f8fafc}.profile-trend{display:flex;flex-direction:column;gap:10px}.profile-trend-row{display:grid;grid-template-columns:110px minmax(80px,1fr) 100px;align-items:center;gap:12px}.profile-trend-label{color:#475569;font-size:13px}.profile-trend-track{height:9px;overflow:hidden;background:#eef2f8;border-radius:999px}.profile-trend-bar{display:block;height:100%;border-radius:inherit;background:#2783de}.profile-trend-value{text-align:right;color:#1e2a6b;font-size:13px;font-variant-numeric:tabular-nums}.profile-history{padding:0;overflow:hidden}.profile-history .profile-section-heading{padding:20px 20px 4px}.profile-history-table{min-width:1120px}.profile-name-link{display:block!important;width:auto!important;margin:0!important;padding:0!important;background:transparent!important;color:#0f172a!important;border:0!important;border-radius:0!important;font:inherit!important;font-weight:800!important;text-align:left}.profile-name-link:hover,.profile-name-link:focus-visible{color:#0b75d7!important;text-decoration:underline}.profile-name-link:focus-visible{outline:2px solid #2783de;outline-offset:3px}.workspace button:focus-visible,.workspace input:focus-visible,.workspace select:focus-visible{outline:3px solid #2783de55;outline-offset:2px}
@media (max-width:1100px){.profile-kpi-grid{grid-template-columns:repeat(3,1fr)}.qtd-profile-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:820px){.profile-layout{grid-template-columns:1fr}.profile-directory{position:static}.profile-directory .partner-list{max-height:300px}.profile-kpi-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.profile-hero{align-items:flex-start;padding:20px;flex-direction:column}.profile-name-row h2{font-size:21px}.profile-kpi-grid,.qtd-profile-grid{grid-template-columns:1fr}.profile-section-heading{align-items:flex-start;flex-direction:column}.profile-trend-row{grid-template-columns:90px minmax(50px,1fr) 82px;gap:8px}.profile-trend-label,.profile-trend-value{font-size:12px}}

/* Phase 4 — historical and quarterly analytics */
.analytics-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin:8px 0 20px}.analytics-heading h2{font-size:28px!important;letter-spacing:-.025em;color:#1e2a6b}.analytics-pane,.analytics-table-pane{margin-bottom:16px;border:1px solid #e6eaf0;box-shadow:0 1px 2px #0f172a0d}.analytics-table-pane{padding:0;overflow:hidden}.analytics-section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;padding:20px 22px 14px}.analytics-section-heading h3{margin:0!important;color:#1e2a6b}.historical-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.quarterly-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}.historical-chart{display:flex;align-items:stretch;gap:12px;min-height:260px;padding:10px 4px 4px;overflow-x:auto}.historical-column{display:grid;grid-template-rows:28px 180px 38px;flex:1 0 74px;min-width:74px;align-items:end;text-align:center}.historical-column-value{color:#1e2a6b;font-size:11px;font-variant-numeric:tabular-nums}.historical-column-space{display:flex;height:170px;align-items:flex-end;justify-content:center;border-bottom:1px solid #cbd5e1;background:repeating-linear-gradient(to top,transparent 0,transparent 41px,#eef2f8 42px)}.historical-column-bar{display:block;width:min(42px,62%);min-height:3px;background:#8b6ccf;border-radius:4px 4px 0 0}.historical-column-label{align-self:start;padding-top:8px;color:#64748b;font-size:11px;line-height:1.3;white-space:pre-line}.historical-table{min-width:940px}.quarterly-filters{grid-template-columns:minmax(220px,1.5fr) repeat(2,minmax(150px,.7fr)) minmax(180px,.8fr)}.quarterly-table{min-width:1320px}.quarter-progress{display:grid;grid-template-columns:minmax(90px,1fr) 42px;gap:5px 8px;align-items:center;min-width:150px}.quarter-progress-figures{grid-column:1/-1;color:#334155;font-size:12px;font-weight:700;white-space:nowrap}.quarter-progress-track{height:8px;overflow:hidden;background:#eef2f8;border-radius:999px}.quarter-progress-bar{display:block;height:100%;border-radius:inherit;background:#d5803b}.quarter-progress-bar.met{background:#46a171}.quarter-progress-bar.on-track{background:#2783de}.quarter-progress-bar.at-risk{background:#d5803b}.quarter-progress-percent{text-align:right;color:#64748b;font-size:11px;font-weight:700}.quarterly-table th button{white-space:nowrap}.quarterly-table .improvement-cell{min-width:260px}.quarterly-table-pane .empty-state{border:0;border-radius:0}
@media (max-width:1100px){.historical-kpis,.quarterly-kpis{grid-template-columns:repeat(3,1fr)}}
@media (max-width:760px){.analytics-heading,.analytics-section-heading{align-items:stretch;flex-direction:column}.historical-kpis,.quarterly-kpis{grid-template-columns:repeat(2,1fr)}.historical-chart{margin-right:-8px}.quarterly-filters{grid-template-columns:1fr}}
@media (max-width:420px){.historical-kpis,.quarterly-kpis{grid-template-columns:1fr}.historical-column{flex-basis:68px;min-width:68px}}


/* Phase 5 — partner dashboard */
.partner-body{background:#edf3fb;color:#0f172a}.partner-login-shell{width:min(1040px,calc(100% - 40px));margin:40px auto}.partner-login-card{display:grid;grid-template-columns:1.05fr .95fr;overflow:hidden;background:#fff;border:1px solid #dfe7f1;border-radius:22px;box-shadow:0 24px 64px #10224d1f}.partner-login-brand{display:flex;min-height:440px;box-sizing:border-box;flex-direction:column;justify-content:flex-end;padding:52px;background:linear-gradient(145deg,#0b1f52 0%,#153b9f 56%,#2f73ed 100%);color:#fff}.partner-login-brand .eyebrow{color:#bfdbfe}.partner-login-brand h1{margin:10px 0 14px;font-size:46px;letter-spacing:-.045em}.partner-login-brand p:last-child{max-width:440px;margin:0;color:#dbeafe;font-size:17px;line-height:1.55}.partner-login-form{align-self:center;padding:48px}.partner-login-form h2{margin:0;color:#1e2a6b;font-size:25px}.partner-login-form .muted{margin:8px 0 22px}.partner-login-form label{margin-top:16px}.partner-login-form button{margin-top:22px;background:#0b75d7}.partner-help{margin:20px 0 0;color:#64748b;font-size:12px;line-height:1.5}.partner-login-shell>.footer{margin-top:18px}
body.partner-portal-open{display:block;overflow-x:hidden;background:#f3f7fc}.partner-portal{box-sizing:border-box;width:min(1440px,calc(100% - 64px));margin:30px auto 56px}.partner-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}.partner-header h1{margin:5px 0 0;color:#1e2a6b;font-size:40px;letter-spacing:-.04em}.partner-welcome{margin:7px 0 0;color:#64748b}.partner-sign-out,.partner-account-signout{width:auto!important;margin:0!important;padding:11px 16px!important;background:#fff!important;color:#334155!important;border:1px solid #ccd8e6!important}.partner-tabs{display:flex;gap:8px;max-width:100%;margin-bottom:22px;overflow-x:auto;padding:2px 0 8px}.partner-tab{width:auto!important;min-height:44px;margin:0!important;padding:11px 16px!important;white-space:nowrap;background:#fff!important;color:#1e293b!important;border:1px solid #ccd8e6!important}.partner-tab[aria-selected="true"]{background:#0b75d7!important;color:#fff!important;border-color:#0b75d7!important}.partner-dashboard-message{margin-bottom:16px}.partner-loading{display:flex;min-height:220px;align-items:center;justify-content:center;gap:12px;padding:28px;background:#fff;border:1px solid #e0e7f0;border-radius:16px;color:#64748b}.partner-panel{min-width:0}.partner-overview-heading,.partner-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:4px 0 18px}.partner-overview-heading h2,.partner-section-heading h2{margin:0;color:#1e2a6b;font-size:28px;letter-spacing:-.03em}.partner-overview-heading .muted,.partner-section-heading .muted{margin:5px 0 0}.partner-overview-heading>.tier-badge{min-height:30px;padding:3px 12px}.partner-summary-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:16px}.partner-summary-card{display:flex;min-height:118px;box-sizing:border-box;flex-direction:column;padding:18px;background:#fff;border:1px solid #e0e7f0;border-radius:14px;box-shadow:0 1px 2px #0f172a0d}.partner-summary-label{color:#64748b;font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.partner-summary-value{margin-top:12px;color:#1e2a6b;font-size:23px;letter-spacing:-.03em}.partner-summary-note{margin-top:auto;padding-top:10px;color:#7d7a75;font-size:12px;line-height:1.35}.partner-overview-grid{display:grid;grid-template-columns:minmax(260px,.65fr) minmax(0,1.35fr);gap:16px}.partner-feature-card,.partner-account-card,.partner-leaderboard-card,.partner-table-card{padding:22px;background:#fff;border:1px solid #e0e7f0;border-radius:16px;box-shadow:0 1px 2px #0f172a0d}.partner-rank-card{overflow:hidden;background:linear-gradient(145deg,#0b1f52 0%,#153b9f 56%,#2f73ed 100%);color:#fff;border:0}.partner-rank-card .section-kicker{color:#bfdbfe}.partner-rank-line{display:flex;align-items:flex-end;gap:14px;margin:20px 0 12px}.partner-rank-line strong{font-size:58px;line-height:.9;letter-spacing:-.06em}.partner-rank-line span{color:#dbeafe;font-weight:700}.partner-rank-card p:not(.section-kicker){color:#dbeafe;line-height:1.55}.partner-inline-action{width:auto!important;margin:16px 0 0!important;padding:10px 13px!important;background:#ffffff1c!important;color:#fff!important;border:1px solid #ffffff4d!important}.partner-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.partner-card-heading h3{margin:0;color:#1e2a6b}.partner-progress-list{display:flex;flex-direction:column;gap:15px;margin-top:18px}.partner-progress-item{display:flex;flex-direction:column;gap:7px}.partner-progress-top,.partner-progress-line{display:flex;align-items:center;justify-content:space-between;gap:12px}.partner-progress-top{color:#334155;font-size:13px}.partner-progress-line{font-size:12px}.partner-progress-track{display:block;flex:1;height:9px;overflow:hidden;background:#edf2f7;border-radius:999px}.partner-progress-fill{display:block;height:100%;background:#2783de;border-radius:inherit}.partner-progress-fill.complete{background:#46a171}.partner-progress-percent{width:42px;text-align:right;color:#64748b;font-weight:700}.partner-progress-unavailable{margin:0;padding:14px;background:#f5f8fc;border-radius:9px;color:#475569;line-height:1.5}.partner-guidance{margin-top:18px;padding:14px 16px;background:#f5f8fc;border-radius:10px;color:#334155}.partner-guidance p{margin:5px 0 0;line-height:1.5}.partner-table-card{padding:0;overflow:hidden}.partner-history-table{width:100%;min-width:1040px;border-collapse:collapse;font-size:13px}.partner-history-table th{padding:12px 14px;background:#f8fafc;border-bottom:1px solid #dfe5ec;color:#64748b;text-align:left;font-size:11px;letter-spacing:.05em;text-transform:uppercase}.partner-history-table td{padding:14px;border-bottom:1px solid #edf0f4}.partner-history-table .numeric{text-align:right;font-variant-numeric:tabular-nums}.partner-leaderboard-card{max-width:860px;margin:0 auto;padding:0;overflow:hidden}.partner-leaderboard-list{display:flex;flex-direction:column}.partner-leaderboard-row{display:grid;grid-template-columns:70px minmax(150px,1fr) 130px;align-items:center;gap:12px;padding:15px 20px;border-bottom:1px solid #edf0f4}.partner-leaderboard-row.is-own{background:#eaf4ff;border-left:4px solid #0b75d7}.partner-leaderboard-rank{color:#1e2a6b;font-size:17px;font-weight:800}.partner-leaderboard-name{font-weight:750}.partner-leaderboard-cohort{color:#64748b;font-size:12px}.partner-leaderboard-payout{text-align:right;color:#1e2a6b}.partner-leaderboard-empty{padding:28px;text-align:center;color:#64748b}.partner-privacy-note{margin:0;padding:14px 20px;background:#f8fafc;color:#64748b;font-size:12px;line-height:1.5}.partner-account-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.partner-account-card h3{margin:0 0 16px;color:#1e2a6b}.partner-account-card p{color:#475569;line-height:1.55}.partner-account-card dl{margin:0}.partner-account-card dl>div{display:flex;justify-content:space-between;gap:20px;padding:13px 0;border-bottom:1px solid #edf0f4}.partner-account-card dt{color:#64748b}.partner-account-card dd{margin:0;text-align:right;font-weight:700;overflow-wrap:anywhere}.partner-account-signout{margin-top:8px!important}.partner-portal button:focus-visible,.partner-portal input:focus-visible{outline:3px solid #2783de55;outline-offset:2px}
@media(max-width:1050px){.partner-summary-grid{grid-template-columns:repeat(3,1fr)}.partner-overview-grid{grid-template-columns:1fr}}
@media(max-width:760px){.partner-login-card{grid-template-columns:1fr}.partner-login-brand{min-height:260px;padding:34px}.partner-login-brand h1{font-size:36px}.partner-login-form{padding:34px}.partner-portal{width:min(100% - 32px,1440px);margin-top:20px}.partner-header,.partner-overview-heading,.partner-section-heading{align-items:flex-start;flex-direction:column}.partner-summary-grid{grid-template-columns:repeat(2,1fr)}.partner-account-grid{grid-template-columns:1fr}.partner-leaderboard-row{grid-template-columns:54px minmax(100px,1fr) 105px}.partner-leaderboard-cohort{display:none}}
@media(max-width:460px){.partner-login-shell{width:calc(100% - 24px);margin:12px auto}.partner-login-brand,.partner-login-form{padding:26px}.partner-summary-grid{grid-template-columns:1fr}.partner-summary-card{min-height:105px}.partner-header h1{font-size:33px}.partner-rank-line strong{font-size:48px}.partner-leaderboard-row{grid-template-columns:48px minmax(90px,1fr) 92px;padding:14px 12px}.partner-leaderboard-payout{font-size:12px}.partner-account-card dl>div{align-items:flex-start;flex-direction:column;gap:6px}.partner-account-card dd{text-align:left}}


/* Phase 6 — secure administration and premium motion */
#panel-access{min-width:0}.admin-hero{position:relative;display:flex;align-items:center;justify-content:space-between;gap:28px;overflow:hidden;margin:6px 0 18px;padding:30px 32px;border-radius:20px;background:linear-gradient(125deg,#07183f 0%,#143a9a 52%,#1f75e8 100%);box-shadow:0 18px 45px #153b8f2b;color:#fff;isolation:isolate}.admin-hero::before{content:"";position:absolute;z-index:-1;width:420px;height:420px;right:-120px;top:-220px;border-radius:50%;background:radial-gradient(circle,#8bc5ff70 0%,#5a9dff22 45%,transparent 70%);animation:adminGlow 7s ease-in-out infinite alternate}.admin-hero::after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(105deg,transparent 25%,#ffffff12 45%,transparent 65%);transform:translateX(-110%);animation:adminSheen 8s ease-in-out infinite}.admin-hero .section-kicker{color:#bfdbfe}.admin-hero h2{margin:0!important;color:#fff;font-size:29px!important;letter-spacing:-.03em}.admin-hero-copy>p:last-child{max-width:680px;margin:8px 0 0;color:#dbeafe;line-height:1.55}.admin-security-mark{display:flex;flex:0 0 auto;align-items:center;gap:13px;padding:12px 15px;border:1px solid #ffffff38;border-radius:14px;background:#ffffff16;backdrop-filter:blur(10px)}.admin-security-mark div{display:flex;flex-direction:column;gap:3px}.admin-security-mark strong{font-size:13px}.admin-security-mark span:last-child{color:#dbeafe;font-size:11px}.admin-security-pulse{position:relative;width:11px;height:11px;border-radius:50%;background:#6ee7b7;box-shadow:0 0 0 6px #6ee7b71f}.admin-security-pulse::after{content:"";position:absolute;inset:-5px;border:1px solid #6ee7b7;border-radius:50%;animation:securityPulse 2.2s ease-out infinite}
.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.admin-card{position:relative;min-width:0;padding:22px;background:#fff;border:1px solid #e0e7f0;border-radius:16px;box-shadow:0 2px 5px #0f172a0a;transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease;animation:adminCardIn .48s cubic-bezier(.2,.8,.2,1) both}.admin-card:nth-child(2){animation-delay:.06s}.admin-card:nth-child(3){animation-delay:.12s}.admin-card:nth-child(4){animation-delay:.18s}.admin-card:hover{transform:translateY(-2px);border-color:#cbdaf0;box-shadow:0 14px 36px #173b7f14}.admin-provision-card{grid-column:1/-1;padding:26px;background:linear-gradient(180deg,#fff,#fbfdff)}.admin-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.admin-card-heading h3{margin:0!important;color:#1e2a6b;font-size:20px!important}.admin-card-heading .muted{max-width:720px}.admin-step-badge{display:inline-flex;min-height:28px;align-items:center;padding:2px 10px;border-radius:999px;background:#e7f2fc;color:#1767a8;font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.provision-form{display:grid;grid-template-columns:minmax(240px,1.2fr) minmax(240px,1fr) auto;gap:12px;align-items:end;margin-top:20px}.provision-form label{margin:0}.provision-form select,.provision-form input{min-height:44px}.provision-form button{min-height:44px;margin:0;white-space:nowrap;box-shadow:0 8px 18px #0b75d72b;transition:transform .18s ease,box-shadow .18s ease}.provision-form button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 24px #0b75d73d}.provision-account-summary{display:flex;align-items:center;gap:12px;margin-top:14px;padding:12px 14px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc;animation:adminReveal .28s ease both}.provision-account-summary>div{display:flex;min-width:0;flex-direction:column;gap:3px}.provision-account-summary>div span{color:#64748b;font-size:12px}.account-state{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;min-height:24px;padding:2px 9px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.account-active{background:#dff4e8;color:#17633f}.account-invited{background:#e5f2fc;color:#1767a8}.account-not-provisioned{background:#f0efed;color:#64748b}.provision-result{display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px 14px;margin-top:14px;padding:18px;border:1px solid #bfe3d0;border-radius:14px;background:linear-gradient(135deg,#f0fbf5,#f8fcff);animation:provisionSuccess .46s cubic-bezier(.2,.9,.2,1) both}.provision-success-icon{display:flex;grid-row:1/3;width:40px;height:40px;align-items:center;justify-content:center;border-radius:50%;background:#2f9d68;color:#fff;font-size:20px;font-weight:900;box-shadow:0 0 0 7px #2f9d6814}.provision-result-copy h4{margin:0;color:#155d3b;font-size:17px}.provision-result-copy p{margin:4px 0 0;color:#47665a;font-size:12px;line-height:1.45}.provision-result label{grid-column:2;margin:8px 0 0}.copy-field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.copy-field input{min-width:0;margin-top:6px;background:#fff;color:#334155;font-size:12px}.workspace .copy-field button{min-height:42px;margin-top:6px}.workspace .copy-field button.copied{background:#e8f1ec;color:#24714a;border-color:#bfe3d0;animation:copyPop .25s ease}.admin-safety-strip{display:flex;align-items:flex-start;gap:10px;margin-top:16px;padding:12px 14px;border-radius:11px;background:#f5f8fc;color:#475569}.admin-safety-strip p{margin:0;font-size:12px;line-height:1.5}.admin-list{margin-top:14px;max-height:260px;overflow:auto}.admin-card .access-row:last-child{border-bottom:0}.admin-card>.notice{margin-top:14px}.admin-card #reset-link-label{margin-top:14px}
.workspace button,.workspace .tab,.partner-portal button{transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease,border-color .18s ease,color .18s ease}.workspace button:hover:not(:disabled),.partner-portal button:hover:not(:disabled){transform:translateY(-1px)}.workspace button:active:not(:disabled),.partner-portal button:active:not(:disabled){transform:translateY(0) scale(.985)}.kpi-card,.profile-kpi,.partner-summary-card{transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.kpi-card:hover,.profile-kpi:hover,.partner-summary-card:hover{transform:translateY(-2px);border-color:#cfdbeb;box-shadow:0 12px 28px #173b7f12}.workspace .tab[aria-selected="true"],.partner-tab[aria-selected="true"]{box-shadow:0 8px 20px #0b75d727}.profile-trend-bar,.historical-column-bar,.quarter-progress-bar,.partner-progress-fill{transform-origin:left;animation:barGrow .65s cubic-bezier(.2,.8,.2,1) both}
@keyframes adminGlow{to{transform:translate(-35px,35px) scale(1.12);opacity:.8}}@keyframes adminSheen{0%,62%{transform:translateX(-110%)}82%,100%{transform:translateX(110%)}}@keyframes securityPulse{0%{transform:scale(.6);opacity:.9}100%{transform:scale(1.45);opacity:0}}@keyframes adminCardIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes adminReveal{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}@keyframes provisionSuccess{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}@keyframes copyPop{50%{transform:scale(1.04)}}@keyframes barGrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(max-width:900px){.admin-hero{align-items:flex-start;flex-direction:column}.admin-security-mark{width:100%;box-sizing:border-box}.provision-form{grid-template-columns:1fr 1fr}.provision-form button{grid-column:1/-1}.admin-grid{grid-template-columns:1fr}.admin-provision-card{grid-column:auto}}
@media(max-width:600px){.admin-hero{padding:24px}.admin-hero h2{font-size:25px!important}.admin-card,.admin-provision-card{padding:18px}.provision-form{grid-template-columns:1fr}.provision-form button{grid-column:auto}.provision-result{grid-template-columns:1fr}.provision-success-icon{grid-row:auto}.provision-result label{grid-column:auto}.copy-field{grid-template-columns:1fr}.workspace .copy-field button{width:100%;margin-top:0}.admin-card-heading{flex-direction:column}}
@media(prefers-reduced-motion:reduce){.admin-hero::before,.admin-hero::after,.admin-security-pulse::after,.admin-card,.provision-account-summary,.provision-result,.profile-trend-bar,.historical-column-bar,.quarter-progress-bar,.partner-progress-fill{animation:none!important}.admin-card,.workspace button,.workspace .tab,.partner-portal button,.kpi-card,.profile-kpi,.partner-summary-card{transition:none!important}.admin-card:hover,.workspace button:hover,.partner-portal button:hover,.kpi-card:hover,.profile-kpi:hover,.partner-summary-card:hover{transform:none!important}}
/* Phase 6: private invitation handling and accessible account states. */
.invitation-target { display: block; margin: 8px 0; overflow-wrap: anywhere; color: var(--text, #202938); font-size: 15px; }
.account-blocked { color: #9a312c; background: #fff0ee; border-color: #eab7b0; }
.compact-button { min-height: 44px; margin-top: 8px; font-size: 14px; padding: 8px 12px; }
.provision-result:focus-visible { outline: 3px solid #2783de; outline-offset: 4px; }
.provision-result .secondary { margin-top: 16px; }
#provision-partner-form[aria-busy="true"] { opacity: .85; }
#provision-partner-form[aria-busy="true"] button { cursor: progress; }
@media (max-width: 600px) { .invitation-target { font-size: 14px; } .provision-account { flex-wrap: wrap; } }
#clear-invitation-links { grid-column: 2; justify-self: start; width: auto; min-height: 44px; white-space: nowrap; }
.provision-result-copy p { font-size: 14px; line-height: 1.5; max-width: 75ch; }
.provision-account-summary > div span { font-size: 14px; }
.provision-account-summary .compact-button { margin-top: 0; margin-left: auto; }
.admin-hero::before { inset: 0; width: auto; height: auto; border-radius: inherit; background: radial-gradient(circle at 95% 5%, #8bc5ff55, transparent 38%); animation: adminAura 7s ease-in-out infinite alternate; }
.admin-hero::after { transform: none; background-size: 200% 100%; animation: adminLight 8s ease-in-out infinite alternate; }
@keyframes adminAura { from { opacity: .65; } to { opacity: 1; } }
@keyframes adminLight { from { background-position: 100% 0; } to { background-position: 0 0; } }
@media (max-width: 600px) {
  #clear-invitation-links { grid-column: 1; }
  .provision-account-summary { flex-wrap: wrap; }
  .provision-account-summary .compact-button { margin-left: 0; }
}

/* Staff login only: keep the partner route and authenticated workspace unchanged. */
.staff-login-shell { width: min(520px, calc(100% - 40px)); padding: 32px 0; }
.staff-login-shell .staff-login-card { box-sizing: border-box; width: 100%; padding: 40px; border: 1px solid #e3e9f2; }
.staff-login-card .eyebrow { margin: 0 0 12px; font-size: 14px; line-height: 1.5; letter-spacing: .06em; }
.staff-login-card h1 { margin: 0 0 16px; font-size: 34px; line-height: 1.2; color: #202b6c; letter-spacing: -.025em; text-wrap: balance; }
.staff-login-card .muted { margin: 0; font-size: 16px; line-height: 1.6; }
.staff-login-card #google-sign-in { min-height: 48px; margin-top: 32px; }
.staff-login-footer { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px 12px; margin-top: 20px; color: #52637d; font-size: 14px; line-height: 1.5; text-align: center; }
.staff-login-footer a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 4px; color: #2148d8; font-weight: 600; text-decoration: none; }
.staff-login-footer a:hover { text-decoration: underline; text-underline-offset: 3px; }
.staff-login-footer a:focus-visible, .staff-login-card button:focus-visible { outline: 3px solid #2148d8; outline-offset: 4px; }
@media (max-width: 540px) {
  .staff-login-shell { width: calc(100% - 32px); padding: 24px 0; }
  .staff-login-shell .staff-login-card { padding: 28px 24px; }
  .staff-login-card h1 { font-size: 30px; }
}

.staff-login-card .notice { font-size: 14px; line-height: 1.5; }

/* Presentation only: status labels read in Title Case without changing stored values. */
.status-badge { text-transform: capitalize; }

/* Partnership Hub identity: shared brand mark and title lockups. Presentation only. */
.brand-mark { display: inline-grid; place-items: center; flex: 0 0 auto; box-sizing: border-box; color: #fff; }
.brand-mark svg { display: block; width: 58%; height: 58%; }
.brand-accent { color: #2f62e0; }
/* Staff header wordmark reads in Title Case; this overrides the uppercase heading in the staff theme. */
.workspace .workspace-header .brand-lockup h1 { text-transform: none; }
.staff-login-shell .staff-login-card { position: relative; overflow: hidden; padding-top: 44px; }
.staff-login-card::before { content: ""; position: absolute; inset: 0 0 auto; height: 4px; background: linear-gradient(90deg, #0b1f52 0%, #153b9f 56%, #2f73ed 100%); }
.staff-login-card .brand-mark { width: 56px; height: 56px; margin: 0 0 22px; border-radius: 16px; background: linear-gradient(145deg, #3f7ff0 0%, #2a58c8 55%, #1f3c8c 100%); box-shadow: inset 0 1px 0 #ffffff40, 0 12px 24px -10px #2148d8a6; }
.staff-login-card .eyebrow { margin-bottom: 10px; color: #2d5bd6; font-size: 13px; letter-spacing: .14em; }
.staff-login-card h1 { margin: 0 0 16px; color: #172358; font-size: 46px; line-height: 1.06; font-weight: 800; letter-spacing: -.035em; }
.partner-login-brand .brand-mark { align-self: flex-start; width: 60px; height: 60px; margin: 0 0 26px; border: 1px solid #ffffff4d; border-radius: 17px; background: linear-gradient(145deg, #ffffff3d 0%, #ffffff12 100%); box-shadow: inset 0 1px 0 #ffffff4d, 0 14px 28px -12px #06143a99; }
.partner-login-brand .eyebrow { letter-spacing: .16em; }
.partner-login-brand h1 { margin: 12px 0 16px; font-size: 52px; line-height: 1.02; font-weight: 800; letter-spacing: -.04em; text-wrap: balance; }
.partner-login-brand .brand-accent { color: #a9cbff; }
.partner-header .partner-brand { display: flex; align-items: center; gap: 18px; min-width: 0; }
.partner-header .brand-mark { width: 64px; height: 64px; border-radius: 18px; background: linear-gradient(145deg, #3f7ff0 0%, #2a58c8 55%, #1f3c8c 100%); box-shadow: inset 0 1px 0 #ffffff40, 0 14px 26px -12px #1e3a8aa6; }
.partner-header h1 { margin: 4px 0 0; color: #172358; font-size: 48px; line-height: 1.04; font-weight: 800; letter-spacing: -.035em; }
@media (max-width: 760px) {
  .partner-login-brand h1 { font-size: 42px; }
  .partner-header .brand-mark { width: 56px; height: 56px; border-radius: 16px; }
  .partner-header h1 { font-size: 40px; }
}
@media (max-width: 540px) {
  .staff-login-shell .staff-login-card { padding-top: 32px; }
  .staff-login-card .brand-mark { width: 50px; height: 50px; margin-bottom: 18px; border-radius: 14px; }
  .staff-login-card h1 { font-size: 38px; }
}
@media (max-width: 460px) {
  .partner-header .partner-brand { flex-direction: column; align-items: flex-start; gap: 14px; }
  .partner-header .brand-mark { width: 50px; height: 50px; border-radius: 14px; }
  .partner-header h1 { font-size: 36px; }
  .partner-login-brand h1 { font-size: 38px; }
  .partner-login-brand .brand-mark { width: 52px; height: 52px; margin-bottom: 20px; border-radius: 15px; }
}
/* Partner leaderboard month selector and most-recent/previous month banner. */
.partner-portal .partner-section-heading .partner-month-select{display:flex;flex-direction:column;gap:6px;margin:0;color:#475569;font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.partner-portal .partner-month-select select{min-width:220px;min-height:44px;margin:0;padding:10px 12px;border:1px solid #ccd8e6;border-radius:10px;background:#fff;color:#1e2a6b;font:inherit;font-size:15px;font-weight:700;letter-spacing:0;text-transform:none;cursor:pointer}
.partner-portal .partner-month-select select:disabled{cursor:default;opacity:1;background:#f8fafc}
.partner-month-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;max-width:860px;box-sizing:border-box;margin:0 auto 14px;padding:12px 16px;border:1px solid #bfe3d0;border-left:4px solid #2f9d68;border-radius:12px;background:#f0fbf5;color:#47665a;font-size:13px;line-height:1.45}
.partner-month-banner strong{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;background:#2f9d68;color:#fff;font-size:11px;letter-spacing:.05em;text-transform:uppercase}
.partner-month-banner.is-previous{border-color:#ccd8e6;border-left-color:#64748b;background:#f5f8fc;color:#475569}
.partner-month-banner.is-previous strong{background:#64748b}
@media(max-width:760px){.partner-portal .partner-section-heading{flex-direction:column;align-items:stretch}.partner-portal .partner-month-select select{width:100%;min-width:0}}

/* Partner Engagement labels (uppercase kept out of the staff viewport layer). */
.workspace .engagement-card-label,.workspace .engagement-table th{text-transform:uppercase}

/* First-day partner view: shown only while a partner has no published periods (see showFirstDay in partner.js). */
.partner-first-day-hero{padding:44px 48px;border-radius:22px;background:radial-gradient(circle at 100% 0,#ffffff29 0,#ffffff00 300px),linear-gradient(135deg,#0b1f52 0%,#153b9f 58%,#2f73ed 100%);color:#fff;box-shadow:0 24px 56px -28px #10224d80}
.partner-first-day-status{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border:1px solid #ffffff40;border-radius:999px;background:#ffffff1a;color:#e0ecff;font-size:13px;font-weight:700}
.partner-first-day-dot{width:8px;height:8px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 4px #4ade8033}
.partner-first-day-kicker{margin:22px 0 6px;color:#bfdbfe;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.partner-first-day-hero h2{margin:0 0 10px;color:#fff;font-size:40px;line-height:1.05;font-weight:800;letter-spacing:-.03em}
.partner-first-day-lead{max-width:620px;margin:0;color:#dbeafe;font-size:17px;line-height:1.6}
.partner-first-day-heading{margin:34px 0 14px;color:#1e2a6b;font-size:19px}
.partner-first-day-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.partner-first-day-card,.partner-panel-empty{box-sizing:border-box;background:#fff;border:1px solid #dfe7f1;border-radius:18px;box-shadow:0 10px 30px -22px #10224d55}
.partner-first-day-card{padding:24px}
.partner-first-day-icon,.partner-panel-empty-icon{display:grid;place-items:center;width:44px;height:44px;margin-bottom:16px;border-radius:12px;background:#eaf1ff;color:#2f62e0}
.partner-first-day-icon svg,.partner-panel-empty-icon svg{width:22px;height:22px}
.partner-first-day-card h4{margin:0 0 6px;color:#1e2a6b;font-size:16px}
.partner-first-day-card p{margin:0;color:#64748b;font-size:14px;line-height:1.55;text-wrap:pretty}
.partner-first-day-help{margin:22px 0 0;color:#64748b;font-size:13px}
.partner-panel-empty{display:flex;flex-direction:column;align-items:center;padding:52px 28px;text-align:center}
.partner-panel-empty h3{margin:0 0 8px;color:#1e2a6b;font-size:20px}
.partner-panel-empty p{max-width:520px;margin:0;color:#64748b;font-size:15px;line-height:1.55;text-wrap:balance}
@media(max-width:760px){.partner-first-day-hero{padding:30px 24px}.partner-first-day-hero h2{font-size:32px}.partner-first-day-grid{grid-template-columns:1fr;gap:12px}.partner-first-day-card{display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:16px;padding:20px}.partner-first-day-icon{grid-row:span 2;margin-bottom:0}.partner-panel-empty{padding:40px 22px}}
/* Ambassador history without revenue share (see renderHistory in partner.js). */
.hide-revenue-share .col-revenue-share{display:none}

/* Partner sign-in with an emailed verification code. Same card, colours and fonts as before. */
.partner-login-form [hidden] { display: none !important; }
.partner-login-form h2 { margin-top: 0; }
.partner-login-form .login-assurance { display: flex; align-items: center; gap: 8px; margin: 18px 0 0; color: #475569; font-size: 13px; line-height: 1.4; }
.partner-login-form .login-assurance svg { flex: 0 0 18px; width: 18px; height: 18px; color: #0b75d7; }
.partner-login-form .login-link { display: inline; width: auto; margin: 0; padding: 0; border: 0; background: none; color: #0b75d7; font: inherit; font-weight: 700; text-decoration: none; cursor: pointer; }
.partner-login-form .login-link:hover { text-decoration: underline; }
.partner-login-form .login-link:focus-visible { outline: 3px solid #2783de55; outline-offset: 3px; border-radius: 4px; }
.partner-login-form #change-email { display: inline-block; margin: 0 0 18px; font-size: 14px; }
.partner-login-form .code-field { margin: 0; padding: 0; border: 0; min-width: 0; width: 100%; }
.partner-login-form, .partner-login-form section { min-width: 0; }
.partner-login-form .code-field legend { padding: 0; margin: 0 0 8px; color: #334155; font-size: 13px; font-weight: 700; }
.partner-login-form .code-boxes { display: flex; align-items: center; gap: 8px; }
.partner-login-form .code-boxes .code-gap { flex: 0 0 10px; }
.partner-login-form .code-boxes input { flex: 1 1 0; min-width: 0; width: 0; height: 56px; margin: 0; padding: 0; border: 1px solid #94a3b8; border-radius: 10px; background: #fff; color: #1e2a6b; font-size: 26px; font-weight: 800; text-align: center; caret-color: #0b75d7; font-variant-numeric: tabular-nums; }
.partner-login-form .code-boxes input:focus { border-color: #0b75d7; outline: 3px solid #2783de40; outline-offset: 0; }
.partner-login-form .code-boxes input:disabled { background: #f1f5f9; opacity: .8; }
.partner-login-form .keep-signed-in { display: flex; align-items: center; gap: 10px; margin: 18px 0 0; font-size: 14px; font-weight: 600; color: #334155; cursor: pointer; }
.partner-login-form .keep-signed-in input { flex: 0 0 18px; width: 18px; height: 18px; margin: 0; padding: 0; accent-color: #0b75d7; }
.partner-login-form .resend-line { margin: 18px 0 0; color: #64748b; font-size: 13px; line-height: 1.5; }
.partner-login-form #code-sent-text strong { color: #1e2a6b; overflow-wrap: anywhere; }
.partner-login-form .notice.success { background: #e7f6ee; color: #14532d; }
.partner-login-form .partner-help { margin-top: 24px; }
@media (max-width: 420px) { .partner-login-form .code-boxes { gap: 6px; } .partner-login-form .code-boxes .code-gap { flex-basis: 6px; } .partner-login-form .code-boxes input { height: 50px; font-size: 22px; border-radius: 9px; } }
@media(max-width:560px){.partner-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;overflow:visible;padding:2px 0 8px}.partner-tab{min-width:0;min-height:48px;padding:6px 4px!important;font-size:13px!important;line-height:1.2;white-space:normal;text-align:center;overflow-wrap:anywhere}}
@media(max-width:400px){.partner-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.partner-tab{min-height:44px}}
@media(max-width:560px){.partner-history-table{width:max-content;min-width:0}.partner-history-table th:nth-child(2),.partner-history-table td:nth-child(2),.partner-history-table .col-revenue-share{display:none}.partner-history-table th:first-child,.partner-history-table td:first-child{position:sticky;left:0;z-index:1;background:#fff;box-shadow:1px 0 0 #e0e7f0}.partner-history-table th,.partner-history-table td{padding:10px 6px;font-size:13px}.partner-history-table th{font-size:10px;letter-spacing:.03em;white-space:normal;line-height:1.25;white-space:nowrap}.partner-history-table th:first-child,.partner-history-table td:first-child{min-width:64px;padding-left:12px}#partner-history-table::after{content:"Swipe sideways to see every column.";display:block;padding:10px 14px;border-top:1px solid #e0e7f0;color:#64748b;font-size:12px;background:#f8fafc}}
@media(max-width:460px){.partner-login-brand{min-height:0;padding:20px 22px;gap:8px}.partner-login-brand h1{font-size:30px;margin:2px 0}.partner-login-brand p:not(.eyebrow){font-size:14px;margin:0}.partner-login-brand .brand-mark{width:40px;height:40px;margin-bottom:2px}.partner-login-form{padding:20px 22px 24px}}
/* Wide screens: the partner app grows to 1440px, the Position card keeps View Leaderboard at its foot (a single row on tablets),
   tier goals sit side by side once their card has room, and the leaderboard uses the full width. */
.partner-rank-card{display:flex;flex-direction:column;background:radial-gradient(circle at 100% 0,#ffffff1f 0,#ffffff00 320px),linear-gradient(145deg,#0b1f52 0%,#153b9f 56%,#2f73ed 100%)}
.partner-rank-card .partner-rank-line{margin-top:15px}
.partner-rank-card>p:not(.section-kicker){margin:4px 0 32px}
.partner-rank-card .partner-inline-action{align-self:flex-start;margin:auto 0 0!important}
.partner-overview-grid>.partner-feature-card:not(.partner-rank-card){container:partner-tier/inline-size}
@media(max-width:1180px){.partner-overview-grid{grid-template-columns:1fr}}
@media(min-width:761px) and (max-width:1180px){.partner-rank-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:32px}.partner-rank-card .section-kicker{grid-column:1/-1}.partner-rank-card .partner-rank-line{margin:12px 0 0}.partner-rank-card>p:not(.section-kicker){max-width:560px;margin:12px 0 0}.partner-rank-card .partner-inline-action{align-self:center;margin:12px 0 0!important}}
.partner-leaderboard-card,.partner-month-banner{max-width:none}
@container partner-tier (min-width:690px){.partner-overview-grid #tier-progress{flex-direction:row;gap:28px;margin-top:20px}.partner-overview-grid #tier-progress>*{flex:1 1 0;min-width:0}.partner-overview-grid #partner-guidance{margin-top:22px}}

/* Approved referral action: present for every partner profile, independent of email. */
.partner-header-actions{display:flex;align-items:flex-start;justify-content:flex-end;gap:14px}
.partner-referral-group{display:flex;flex-direction:column;align-items:flex-end;max-width:400px}
.partner-referral-action{display:inline-flex;align-items:center;justify-content:center;gap:12px;box-sizing:border-box;min-height:56px;margin:0;padding:15px 22px;border:1px solid #125fbc;border-radius:12px;background:linear-gradient(135deg,#0b75d7,#135ac4);color:#fff;font-size:16px;line-height:1.25;font-weight:750;white-space:nowrap;cursor:pointer;text-decoration:none;box-shadow:inset 0 1px 0 #ffffff25,0 6px 16px -7px #135ac46b}
.partner-referral-action svg{width:20px;height:20px;flex:0 0 auto}.partner-referral-action .partner-referral-external{width:17px;height:17px;opacity:.9}
.partner-referral-action:hover:not([aria-disabled="true"]){filter:brightness(.97)}
.partner-referral-action:focus-visible{outline:3px solid #172358;outline-offset:4px}
.partner-referral-action[aria-disabled="true"]{background:#e2e8f0;color:#475569;border-color:#cbd5e1;box-shadow:none;cursor:not-allowed;white-space:normal}
.partner-referral-note{max-width:400px;margin:9px 0 0;font-size:14px;line-height:1.4;color:#52657d;text-align:right}
.partner-header-actions .partner-sign-out{min-height:56px}
@media(max-width:1100px) and (min-width:761px){.partner-header-actions{flex-direction:column;align-items:flex-end;gap:12px}.partner-header-actions .partner-sign-out{min-height:44px}}
@media(max-width:760px){.partner-header-actions{width:100%;flex-wrap:wrap;justify-content:flex-start;gap:14px}.partner-referral-group{width:100%;max-width:none;align-items:stretch}.partner-referral-action{width:100%;min-height:54px}.partner-referral-note{max-width:none;text-align:center}.partner-header-actions .partner-sign-out{min-height:44px}}

/* Purposeful read-only drill-downs. Static figures retain their information-only styling. */
.hub-detail-dialog{box-sizing:border-box;width:min(900px,calc(100vw - 32px));max-height:86vh;padding:0;border:1px solid #d9e3f2;border-radius:16px;color:#172b4d;background:#fff;box-shadow:0 24px 64px #0b1f5240;overflow:auto}
.hub-detail-dialog::backdrop{background:#0b1f5266}
.hub-detail-panel{padding:28px}
.hub-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}
.hub-detail-header .section-kicker{margin:0;font-size:14px;line-height:1.5;color:#52647d;letter-spacing:.07em}
.hub-detail-header h2{margin:4px 0 0;color:#182b55;font-size:26px;line-height:1.25;overflow-wrap:anywhere}
.hub-detail-dialog button.hub-detail-close{flex:none;width:auto;min-width:68px;min-height:44px;margin:0;padding:10px 16px;border:1px solid #c4d1e2;border-radius:8px;background:#fff;color:#344763;font-size:14px;line-height:1.5;box-shadow:none}
.hub-detail-description{margin:16px 0 0;color:#52647d;font-size:16px;line-height:1.5}
.hub-detail-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;margin:24px 0 16px}
.hub-detail-toolbar label{display:grid;gap:8px;flex:1 1 240px;max-width:440px;margin:0;color:#344763;font-size:14px;font-weight:600}
.hub-detail-toolbar input{box-sizing:border-box;width:100%;min-height:44px;margin:0;padding:10px 12px;border:1px solid #c4d1e2;border-radius:8px;color:#172b4d;background:#fff;font:inherit;font-size:16px}
.hub-detail-toolbar p{margin:0 0 10px;color:#52647d;font-size:14px;line-height:1.5}
.hub-detail-table-wrap{max-width:100%;max-height:min(48vh,520px);overflow:auto;border:1px solid #e0e7f0;border-radius:10px}
.hub-detail-table-hint{display:none;margin:0 0 8px;color:#52647d;font-size:14px;line-height:1.5}
.hub-detail-table-wrap.is-wide .hub-detail-table{min-width:760px}
.hub-detail-table-wrap.is-wide th{white-space:nowrap}
.hub-detail-table-wrap.is-wide th:first-child,.hub-detail-table-wrap.is-wide td:first-child{min-width:180px}
.hub-detail-table{width:100%;border-collapse:collapse;font-size:16px;line-height:1.5}
.hub-detail-table th:first-child,.hub-detail-table td:first-child{min-width:112px}
.hub-detail-table th{padding:14px 16px;color:#52647d;background:#f3f6fb;font-size:14px;font-weight:650;text-align:left;white-space:nowrap}
.hub-detail-table td{padding:14px 16px;color:#172b4d;border-top:1px solid #e6ecf5;vertical-align:top;overflow-wrap:anywhere}
.hub-detail-table th.numeric,.hub-detail-table td.numeric{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.hub-detail-table .tier-badge{font-size:14px;line-height:1.4;white-space:nowrap}
.hub-detail-empty{display:grid;gap:8px;padding:32px 20px;text-align:center;border:1px solid #e0e7f0;border-radius:10px;background:#f6f8fc;color:#52647d;font-size:16px;line-height:1.5}
.hub-detail-empty strong{color:#172b4d;font-size:18px}
.hub-detail-privacy{margin:20px 0 0;color:#52647d;font-size:14px;line-height:1.5}
.hub-detail-dialog :focus-visible{outline:3px solid #0968cf;outline-offset:3px}
button.partner-summary-card.is-action{width:100%;margin:0;color:inherit;font:inherit;font-weight:inherit;text-align:left;background:#fff;cursor:pointer}
button.partner-summary-card.is-action:hover:not(:disabled){background:#f8fbff;border-color:#7eabeb;transform:none;box-shadow:0 3px 10px #173b7f12}
.partner-card-action{display:flex;align-items:center;gap:8px;margin-top:12px;color:#075dbb;font-size:14px;font-weight:650;line-height:1.4}
.partner-card-action::after,.hub-action-label::after{content:"→";font-size:18px;line-height:1}
.partner-summary-card.is-action:hover .partner-card-action{text-decoration:underline;text-underline-offset:3px}
.partner-summary-card.is-action:focus-visible{outline:3px solid #0968cf;outline-offset:3px}
.partner-portal button.partner-period-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin:0;padding:4px 0;color:#075dbb;background:transparent;border:0;border-radius:4px;box-shadow:none;font:inherit;font-weight:650;text-align:left;cursor:pointer}
.partner-period-link::after{content:"↗";font-size:16px}
.partner-portal button.partner-period-link:hover{background:transparent;text-decoration:underline;text-underline-offset:3px;transform:none;box-shadow:none}
.workspace button.hub-action-card.kpi-card-action .kpi-action{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:14px;line-height:1.4}
.workspace button.hub-tier-action{display:flex;align-items:center;gap:12px;min-height:44px;margin:0;color:#172b4d;font:inherit;font-weight:600;background:#f7f9fc!important;border:1px solid #d6e1f1;cursor:pointer;box-shadow:none}
.workspace button.hub-tier-action::after{content:"→";margin-left:4px;color:#075dbb}
.workspace button.hub-tier-action:hover{border-color:#7eabeb;background:#edf4ff!important;transform:none}
.workspace button.tier-members-action{display:block;min-height:44px;width:100%;margin:0;padding:4px 0;border:0;border-radius:4px;background:transparent!important;box-shadow:none;color:#2648c9;font:inherit;font-weight:650;text-align:left;cursor:pointer}
.workspace button.tier-members-action::after{content:" →"}
.workspace button.tier-members-action:hover{background:transparent!important;text-decoration:underline;text-underline-offset:3px}
.workspace .signin-counts button.signin-count-action{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;min-height:112px;margin:0;padding:16px;border:1px solid #dbe5f3;border-radius:12px;background:#f5f8fc!important;color:#475569;text-align:left;font:inherit;box-shadow:none;cursor:pointer}
.workspace .signin-counts button.signin-count-action strong{font-size:26px;color:#1e2a6b}
.workspace .signin-counts button.signin-count-action span{font-size:14px;line-height:1.5}
.workspace .signin-counts button.signin-count-action .hub-action-label{display:flex;align-items:center;gap:8px;color:#075dbb;font-size:14px;font-weight:650}
.workspace .signin-counts button.signin-count-action:hover:not(:disabled){border-color:#7eabeb;background:#edf4ff!important;transform:none}
.workspace .signin-counts button.signin-count-action:disabled{cursor:default;opacity:.6}

/* Recorded coverage and assessment context: small explicit actions, not clickable headings. */
.partner-reporting-line{display:flex;flex-wrap:wrap;align-items:center;column-gap:20px;row-gap:0;margin-top:5px}
.partner-reporting-line .muted{margin:0}
.partner-portal button.partner-coverage-action{display:inline-flex;align-items:center;gap:8px;width:auto!important;min-height:44px;margin:0!important;padding:8px 0!important;border:0;border-radius:4px;background:transparent!important;color:#075dbb!important;font:inherit;font-size:14px;font-weight:650;line-height:1.5;text-align:left;box-shadow:none;cursor:pointer}
.partner-coverage-action::after{content:"→";font-size:18px;line-height:1}
.partner-portal button.partner-coverage-action:hover{background:transparent!important;transform:none;box-shadow:none;text-decoration:underline;text-underline-offset:3px}
.workspace button.hub-inline-detail{display:inline-flex;align-items:center;gap:8px;width:auto;min-height:44px;margin:0;padding:6px 8px;border:1px solid transparent;border-radius:8px;background:transparent!important;color:#172b4d;font:inherit;font-size:14px;font-weight:600;line-height:1.5;text-align:left;box-shadow:none;cursor:pointer}
.workspace button.hub-inline-detail .hub-inline-arrow{flex:none;color:#075dbb;font-size:18px;line-height:1}
.workspace button.hub-status-action .status-badge{font-size:14px}
.workspace button.hub-inline-detail:hover{background:#edf4ff!important;border-color:#c4d7f0;transform:none;box-shadow:none}
.partner-portal button.partner-coverage-action:focus-visible,.workspace button.hub-inline-detail:focus-visible{outline:3px solid #0968cf;outline-offset:3px}
.workspace .signin-counts>div{padding:16px}
.workspace .signin-counts>div span{font-size:14px}
.workspace #leaderboard-table button.leaderboard-name-action{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin:0;padding:4px 0;border:0;border-radius:4px;background:transparent!important;box-shadow:none;color:#264b80!important;font:inherit;font-weight:650;text-align:left;white-space:normal;overflow-wrap:anywhere;cursor:pointer}
.workspace #leaderboard-table button.leaderboard-name-action::after{content:"↗";flex:none;font-size:16px}
.workspace #leaderboard-table button.leaderboard-name-action:hover{background:transparent!important;text-decoration:underline;text-underline-offset:3px;transform:none}
.workspace .profile-history button.profile-period-action{min-height:44px;margin:0;padding:4px 0;font:inherit;font-weight:650;text-align:left}
.workspace .profile-history button.profile-period-action::after{content:" ↗"}
.hub-detail-table thead th{position:sticky;top:0;z-index:1}
@media(max-width:600px){.hub-detail-panel{padding:20px 16px}.hub-detail-header{gap:16px}.hub-detail-header h2{font-size:22px}.hub-detail-toolbar{margin-top:20px}.hub-detail-toolbar label{max-width:none}.hub-detail-table-hint{display:block}.hub-detail-table-wrap{max-height:36vh}.hub-detail-table th,.hub-detail-table td{padding:12px}.hub-detail-table{font-size:14px}.hub-detail-dialog{max-height:90vh}.hub-detail-privacy{margin-top:16px}}
#account-partner-id{text-transform:capitalize}
/* Compact name lists (a partner's own leads and live accounts): a narrower, centred card sized to its content. */
.hub-detail-dialog.is-compact{width:min(620px,calc(100vw - 32px))}
.hub-detail-dialog.is-compact .hub-detail-toolbar{flex-wrap:nowrap;align-items:flex-end}
.hub-detail-dialog.is-compact .hub-detail-toolbar label{max-width:none}
.hub-detail-dialog.is-compact .hub-detail-toolbar p{flex:none;margin:0 0 6px;padding:6px 12px;border-radius:999px;background:#eef3fb;color:#344763;font-weight:600;white-space:nowrap}
.hub-detail-dialog.is-compact .hub-detail-table th.index-cell,.hub-detail-dialog.is-compact .hub-detail-table td.index-cell{width:1%;min-width:0;padding-right:4px;color:#8494aa;font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap}
.hub-detail-dialog.is-compact .hub-detail-table td:not(.index-cell):not(.numeric){font-weight:550}
.hub-detail-dialog.is-compact .hub-detail-table td.numeric{color:#52647d}
.hub-detail-dialog.is-compact .hub-detail-table tbody tr:hover td{background:#f8fbff}
.partner-portal button.partner-count-link{display:inline-flex;align-items:center;justify-content:flex-end;gap:6px;min-height:44px;margin:0;padding:4px 0;color:#075dbb;background:transparent;border:0;border-radius:4px;box-shadow:none;font:inherit;font-weight:650;font-variant-numeric:tabular-nums;cursor:pointer}
.partner-count-link::after{content:"↗";font-size:14px}
.partner-portal button.partner-count-link:hover{background:transparent;text-decoration:underline;text-underline-offset:3px;transform:none;box-shadow:none}
.partner-portal button.partner-count-link:focus-visible{outline:3px solid #0968cf;outline-offset:3px}
@media(max-width:600px){.hub-detail-dialog.is-compact .hub-detail-toolbar{flex-wrap:wrap}}

/* Commission by restaurant (rev share): the view switch, the restaurant table and its total line. Shared by the partner
 * app, the staff partner preview and the Operations Console (all use the same detail dialog). */
.hub-detail-tabs{display:inline-flex;gap:2px;margin:20px 0 0;padding:3px;border:1px solid #e0e7f0;border-radius:10px;background:#f1f4f9}
.hub-detail-tabs[hidden]{display:none}
.hub-detail-dialog .hub-detail-tabs button{flex:none;width:auto;min-width:0;min-height:36px;margin:0;padding:6px 18px;border:0;border-radius:8px;background:transparent;color:#52647d;font:inherit;font-size:14px;font-weight:650;line-height:1.4;white-space:nowrap;box-shadow:none;transform:none;cursor:pointer}
.hub-detail-dialog .hub-detail-tabs button:hover:not(.is-active){background:transparent;color:#182b55;box-shadow:none;transform:none}
.hub-detail-dialog .hub-detail-tabs button:not(.is-active){background-color:transparent!important}
.hub-detail-dialog .hub-detail-tabs button.is-active{background-color:#fff!important}
.hub-detail-dialog .hub-detail-tabs button.is-active{background:#fff;color:#182b55;box-shadow:0 1px 2px #0b1f5224,0 0 0 1px #0b1f520f;cursor:default}
.hub-detail-dialog .hub-detail-tabs button:focus-visible{outline:3px solid #0968cf;outline-offset:2px}
.hub-detail-tabs:not([hidden]) + .hub-detail-toolbar{margin-top:16px}
.hub-detail-toolbar:has(> [hidden]:first-child):has(> p[hidden]:last-child){margin:0 0 16px}
.hub-detail-dialog .hub-detail-table td{overflow-wrap:break-word;word-break:normal;hyphens:none}
.hub-detail-dialog .hub-detail-header h2{overflow-wrap:break-word}
.hub-detail-table th.muted-cell,.hub-detail-table td.muted-cell{width:1%;white-space:nowrap}
.hub-detail-dialog.is-compact .hub-detail-table td.muted-cell:not(.numeric),.hub-detail-table td.muted-cell{color:#52647d;font-weight:450}
.hub-cell-sub{display:none}
.hub-detail-dialog:has(.hub-detail-tabs:not([hidden])){margin-top:max(24px,8vh);margin-bottom:auto}
.hub-detail-dialog.is-compact .hub-detail-table td.numeric{color:#172b4d}
.hub-detail-table tfoot td{position:sticky;bottom:0;padding:12px 16px;border-top:1px solid #d3dceb;background:#f7f9fc;color:#182b55;font-weight:650}
.hub-detail-table tfoot td.numeric{font-weight:700}
.hub-detail-table tfoot[hidden]{display:none}
#hub-detail-body tr.is-link{cursor:pointer}
#hub-detail-body tr.is-link:hover td{background:#f5f9ff}
#hub-detail-body tr.is-link:focus-visible{outline:3px solid #0968cf;outline-offset:-3px}
#hub-detail-body:has(tr.is-link) td:last-child,.hub-detail-table-wrap:has(tr.is-link) thead th:last-child{padding-right:36px}
#hub-detail-body:has(tr.is-link) td:last-child{position:relative}
#hub-detail-body tr.is-link td:last-child::after{content:"";position:absolute;top:50%;right:16px;width:7px;height:7px;margin-top:-4px;border-top:2px solid #8a9ab0;border-right:2px solid #8a9ab0;transform:rotate(45deg)}
#hub-detail-body tr.is-link:hover td:last-child::after{border-color:#0968cf}
.partner-retry{width:auto!important;min-width:180px}
@media(max-width:600px){.hub-detail-table th.muted-cell,.hub-detail-table td.muted-cell{display:none}.hub-cell-sub{display:block;margin-top:2px;color:#52647d;font-size:13px;font-weight:450;line-height:1.4}.hub-detail-dialog:has(.hub-detail-tabs:not([hidden])){margin-top:auto;margin-bottom:0}.hub-detail-dialog:has(.hub-detail-tabs:not([hidden])) .hub-detail-table-wrap{max-height:50vh}.hub-detail-tabs{display:flex;width:100%;box-sizing:border-box;margin-top:16px}.hub-detail-dialog .hub-detail-tabs button{flex:1 1 0;min-height:40px;padding:6px 8px}.hub-detail-table tfoot td{padding:12px}#hub-detail-body:has(tr.is-link) td:last-child,.hub-detail-table-wrap:has(tr.is-link) thead th:last-child{padding-right:30px}#hub-detail-body tr.is-link td:last-child::after{right:12px}}

/* Partner app: month status, latest leads and help (every screen size; the same content on phones and wider screens). */
.status-badge.status-final{background:#e8f1ec;color:#24714a}
.status-badge.status-in-progress{background:#fff4d6;color:#7a5a00}
/* Provisional figures (daily revenue share): ONE calm status pill per month (it replaces "In progress") and one footnote; no badges on cards. */
.partner-portal button.partner-provisional-pill{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;width:auto!important;min-height:30px;margin:0!important;padding:3px 12px!important;border:1px solid #c9d6ea!important;border-radius:999px!important;background:#f4f7fc!important;color:#2b3f66!important;box-shadow:none!important;font-size:11px;font-weight:800;letter-spacing:.03em;line-height:1;cursor:pointer}
.partner-portal button.partner-provisional-pill svg{width:14px;height:14px;flex:none;color:#5b6f94}
.partner-portal button.partner-provisional-pill:hover:not(:disabled){background:#eaf0f9!important;transform:none}
.partner-portal button.partner-provisional-pill:focus-visible{outline:3px solid #2783de55;outline-offset:2px}
.partner-portal button.partner-provisional-pill[hidden]{display:none}
.partner-provisional-extra{flex-basis:100%;color:#64748b;font-size:12px;font-weight:600;line-height:1.35;text-align:right}
.partner-provisional-extra[hidden]{display:none}
.status-badge.status-provisional{background:#f4f7fc;color:#2b3f66;box-shadow:inset 0 0 0 1px #c9d6ea}
.partner-provisional-note{margin:-4px 2px 16px;color:#64748b;font-size:12.5px;line-height:1.5}
.partner-provisional-note:focus{outline:none;color:#334155}
.partner-provisional-note[hidden]{display:none}
#partner-history-provisional-note{margin:12px 2px 0}
.partner-summary-value.is-pending{color:#64748b;font-size:15px;font-weight:650;letter-spacing:0;line-height:1.35}
.partner-summary-suffix{margin-left:2px;color:#64748b;font-size:12px;font-weight:600;letter-spacing:0}
.partner-progress-hint{color:#7d8597;font-size:12px}
.partner-history-table td.is-pending{color:#64748b;font-size:12px;white-space:normal}
.partner-month-stat strong.is-pending{color:#64748b;font-size:12.5px;font-weight:650;line-height:1.35}
.partner-overview-badges{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}
.partner-overview-badges>.tier-badge,.partner-overview-badges>.status-badge{min-height:30px;padding:3px 12px}
.partner-history-table td:first-child .status-badge{display:flex;width:max-content;margin-top:2px}
.partner-overview-extra{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);gap:16px;margin-top:16px}
.partner-overview-extra>.partner-latest-leads[hidden]+.partner-help-card{grid-column:1/-1}
.partner-latest-list{display:flex;flex-direction:column;margin:12px 0 0;padding:0;list-style:none}
.partner-latest-item{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:11px 0;border-top:1px solid #edf0f4}
.partner-latest-item:first-child{border-top:0}
.partner-latest-name{min-width:0;color:#1e2a6b;font-weight:650;overflow-wrap:anywhere}
.partner-latest-date{flex:none;color:#64748b;font-size:13px;font-variant-numeric:tabular-nums}
.partner-portal button.partner-see-all,.partner-portal button.partner-read-more{display:inline-flex;align-items:center;gap:6px;width:auto;min-height:40px;margin:0;padding:6px 0;border:0;border-radius:4px;background:transparent;box-shadow:none;color:#075dbb;font:inherit;font-size:14px;font-weight:700;cursor:pointer;white-space:nowrap}
.partner-portal button.partner-see-all::after{content:"→";font-size:16px}
.partner-portal button.partner-see-all:hover,.partner-portal button.partner-read-more:hover{background:transparent;text-decoration:underline;text-underline-offset:3px;transform:none}
.partner-help-card{display:flex;align-items:center;gap:16px}
.partner-help-icon{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:12px;background:#eaf1ff;color:#2f62e0}
.partner-help-icon svg{width:22px;height:22px}
.partner-help-card h3{margin:0;color:#1e2a6b;font-size:16px}
.partner-help-card p{margin:4px 0 0;color:#475569;font-size:14px;line-height:1.5}
.partner-portal button.partner-read-more,.partner-history-cards{display:none}
@media(max-width:1050px){.partner-overview-extra{grid-template-columns:1fr}}

/* Partner app on phones (600px wide or less). Layout only: every figure, label and rule is the same as on wider screens. */
@media(max-width:600px){
  .partner-portal{width:calc(100% - 32px);margin:12px auto 32px}
  .partner-portal .partner-header{position:relative;align-items:stretch;gap:12px;margin-bottom:10px}
  .partner-portal .partner-header .partner-brand{flex-direction:row;align-items:center;gap:12px;padding-right:88px}
  .partner-portal .partner-header .brand-mark{width:42px;height:42px;border-radius:12px}
  .partner-portal .partner-header .partner-brand>div{min-width:0}
  .partner-portal .partner-header .eyebrow{overflow:hidden;font-size:9.5px;letter-spacing:.08em;white-space:nowrap;text-overflow:ellipsis}
  .partner-portal .partner-header h1{margin:1px 0 0;font-size:24px;letter-spacing:-.03em}
  .partner-portal .partner-welcome{margin:2px 0 0;font-size:13px}
  .partner-portal .partner-header-actions{gap:0}
  .partner-portal .partner-header-actions .partner-sign-out{position:absolute;top:0;right:0;min-height:36px;padding:6px 12px!important;font-size:13px;border-radius:10px}
  .partner-portal .partner-referral-action{min-height:50px;padding:12px 16px;font-size:15px}
  .partner-portal .partner-referral-note{margin-top:6px;font-size:12.5px}
  .partner-portal .partner-tabs{position:sticky;top:0;z-index:30;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:0 -16px 14px;padding:8px 16px;overflow:visible;background:#f3f7fcf2;border-bottom:1px solid #e0e7f0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
  .partner-portal .partner-tab{min-width:0;min-height:40px!important;padding:6px 2px!important;border:0!important;border-radius:999px!important;background:transparent!important;color:#334155!important;font-size:13px!important;line-height:1.2;white-space:nowrap;text-align:center;justify-content:center}
  .partner-portal .partner-tab[aria-selected="true"]{background:#1e2a6b!important;color:#fff!important}
  .partner-portal .partner-overview-heading{flex-direction:row;align-items:flex-start;gap:12px;margin:2px 0 12px}
  .partner-portal .partner-overview-heading h2,.partner-portal .partner-section-heading h2{font-size:22px}
  .partner-portal .partner-overview-heading>div:first-child{min-width:0}
  .partner-portal button.partner-coverage-action{justify-content:flex-start;text-align:left}
  .partner-portal .partner-overview-badges{flex-direction:column;align-items:flex-end;gap:6px}
  .partner-portal .partner-provisional-extra{flex-basis:auto;max-width:150px;font-size:11.5px}
  .partner-portal .partner-summary-value.is-pending{font-size:15px}
  .partner-portal .partner-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px}
  .partner-portal .partner-summary-card{min-height:0;padding:13px;border-radius:14px}
  .partner-portal .partner-summary-value{margin-top:6px;font-size:20px}
  .partner-portal .partner-summary-note{margin-top:2px;padding-top:0;font-size:12px}
  .partner-portal .partner-card-action{display:block;margin-top:auto;padding-top:10px;font-size:13px;line-height:1.3}
  .partner-portal .partner-card-action::after{display:inline;margin-left:6px;font-size:15px}
  .partner-portal .partner-summary-card:first-child{grid-column:1/-1;padding:16px;border:0;background:linear-gradient(145deg,#0b1f52 0%,#153b9f 56%,#2f73ed 100%)!important;box-shadow:0 12px 24px -12px #0b1f52b3}
  .partner-portal .partner-summary-card:first-child .partner-summary-label{color:#c7d7ff}
  .partner-portal .partner-summary-card:first-child .partner-summary-value{font-size:32px;color:#fff}
  .partner-portal .partner-summary-card:first-child .partner-summary-note,.partner-portal .partner-summary-card:first-child .partner-summary-value.is-pending,.partner-portal .partner-summary-card:first-child .partner-summary-suffix{color:#dbe6ff}
  .partner-portal .partner-summary-card:first-child .partner-card-action{color:#fff}
  .partner-portal .partner-summary-card:last-child:nth-child(even){grid-column:1/-1}
  .partner-portal .partner-overview-grid,.partner-portal .partner-overview-extra{grid-template-columns:1fr;gap:12px}
  .partner-portal .partner-overview-extra{margin-top:12px}
  .partner-portal .partner-feature-card,.partner-portal .partner-account-card{padding:16px;border-radius:14px}
  .partner-portal .partner-rank-line{margin:12px 0 8px}
  .partner-portal .partner-rank-line strong{font-size:44px}
  .partner-portal .partner-rank-card>p:not(.section-kicker){margin:4px 0 16px}
  .partner-portal .partner-guidance p,.partner-portal .partner-guidance ul{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
  .partner-portal .partner-guidance.is-expanded p,.partner-portal .partner-guidance.is-expanded ul{display:block}
  .partner-portal button.partner-read-more{display:inline-flex;min-height:36px;margin-top:2px;font-size:13px}
  .partner-portal #partner-history-table{display:none}
  .partner-portal .partner-history-cards{display:grid;gap:10px}
  .partner-portal .partner-month-card{padding:14px;background:#fff;border:1px solid #e0e7f0;border-radius:14px}
  .partner-portal .partner-month-card-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
  .partner-portal .partner-month-card-badges{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}
  .partner-portal button.partner-month-card-title{display:inline-flex;align-items:center;gap:6px;width:auto;min-height:40px;margin:0;padding:0;border:0;background:transparent;box-shadow:none;color:#1e2a6b;font:inherit;font-size:16px;font-weight:800;text-align:left;cursor:pointer}
  .partner-portal button.partner-month-card-title::after{content:"↗";color:#075dbb;font-size:14px}
  .partner-portal .partner-month-card-title{color:#1e2a6b;font-size:16px;font-weight:800}
  .partner-portal .partner-month-card-pay{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:6px 0 12px}
  .partner-portal .partner-month-card-pay span{color:#64748b;font-size:12.5px}
  .partner-portal .partner-month-card-pay strong{color:#1e2a6b;font-size:22px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
  .partner-portal .partner-month-card-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .partner-portal .partner-month-stat{display:flex;flex-direction:column;align-items:flex-start;gap:2px;box-sizing:border-box;width:100%;min-width:0;min-height:58px;margin:0;padding:9px 8px;border:0;border-radius:10px;background:#f5f8fc;box-shadow:none;color:inherit;font:inherit;text-align:left}
  .partner-portal button.partner-month-stat{cursor:pointer}
  .partner-portal .partner-month-stat small{color:#64748b;font-size:11px;font-weight:650;line-height:1.3}
  .partner-portal .partner-month-stat strong{color:#1e2a6b;font-size:clamp(13px,3.9vw,15px);font-variant-numeric:tabular-nums;white-space:nowrap}
  .partner-portal .partner-month-stat.is-link strong{color:#075dbb}
  .partner-portal .partner-month-stat.is-link strong::after{content:" ›"}
  .partner-portal .partner-leaderboard-card{border-radius:14px}
  .partner-portal .partner-account-grid{grid-template-columns:1fr;gap:12px}
  .partner-portal .hub-detail-dialog{width:100%;max-width:100%;max-height:88vh;margin:auto 0 0;border:0;border-radius:20px 20px 0 0;animation:partner-sheet-up .22s ease-out}
  .partner-portal .hub-detail-panel{padding:8px 16px calc(20px + env(safe-area-inset-bottom,0px))}
  .partner-portal .hub-detail-panel::before{content:"";display:block;width:42px;height:5px;margin:2px auto 12px;border-radius:9px;background:#cbd5e1}
  .partner-portal .hub-detail-header h2{font-size:21px}
}
@keyframes partner-sheet-up{from{transform:translateY(100%)}to{transform:none}}
@media(max-width:600px) and (prefers-reduced-motion:reduce){.partner-portal .hub-detail-dialog{animation:none}}
@media(max-width:360px){.partner-portal .partner-header h1{font-size:21px}.partner-portal .partner-header .partner-brand{padding-right:84px}}

/* Partner app: quarter switcher and past-quarter reviews in the Tier Progress card (same content on every screen size). */
.partner-quarter-title{display:flex;align-items:center;flex-wrap:wrap;gap:10px 12px}
.partner-quarter-switch{display:inline-flex;gap:4px;padding:4px;border:1px solid #dbe5f3;border-radius:999px;background:#f5f8fc}
.partner-portal button.partner-quarter-option{width:auto;min-height:32px;margin:0;padding:5px 12px;border:0;border-radius:999px;background:transparent;box-shadow:none;color:#334155;font:inherit;font-size:13px;font-weight:700;white-space:nowrap;cursor:pointer}
.partner-portal button.partner-quarter-option[aria-pressed="true"]{background:linear-gradient(145deg,#0b1f52 0%,#153b9f 56%,#2f73ed 100%);color:#fff}
.partner-portal button.partner-quarter-option:hover{transform:none}
.partner-quarter-months{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.partner-quarter-month{padding:5px 10px;border-radius:8px;font-size:12px;font-weight:700}
.partner-quarter-month.is-in{background:#e8f1ec;color:#24714a}
.partner-quarter-month.is-before,.partner-quarter-month.is-gap{background:#f1f3f6;color:#94a3b8;text-decoration:line-through}
.partner-progress-verdict{font-size:12px;font-weight:700}
.partner-progress-verdict.is-good{color:#24714a}.partner-progress-verdict.is-warn{color:#9a4f18}.partner-progress-verdict.is-neutral{color:#64748b}
.partner-guidance.is-review>strong{display:block;margin-bottom:4px}
.partner-guidance.is-review p.partner-review-text{margin:10px 0 0}
.partner-review-label{display:block;margin-bottom:2px;color:#64748b;font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.partner-quarter-note{margin:14px 0 0;padding:12px 14px;border:1px solid #e3eaf5;border-radius:10px;background:#fff;color:#475569;font-size:13px;line-height:1.5}
@media(max-width:600px){.partner-portal .partner-guidance.is-review p{display:block;overflow:visible}.partner-portal .partner-quarter-switch{margin-top:2px}}
.partner-referral-action[data-state="loading"]{visibility:hidden}
.partner-referral-action[data-state="unavailable"]{display:none}
.partner-month-stat strong.is-pending{white-space:normal;overflow-wrap:anywhere}
@media(max-width:760px){.partner-portal .partner-summary-card:first-child .partner-summary-value.is-pending{font-size:18px;letter-spacing:0;line-height:1.3}}
.partner-loading:has(.partner-retry){flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:14px}
.partner-retry-text{margin:0;max-width:30ch}
.partner-retry{width:auto!important;min-width:180px;min-height:44px;padding:0 22px;border:0;border-radius:10px;background:#1d4ed8;color:#fff;font-weight:650;cursor:pointer}
.partner-retry:focus-visible{outline:3px solid #93c5fd;outline-offset:2px}
.partner-skeleton{display:grid;gap:12px;align-content:start;justify-content:stretch;padding:24px;min-height:320px}
.partner-skeleton .sk{display:block;background:#e8eef6;border-radius:8px;animation:skPulse 1.4s ease-in-out infinite}
.partner-skeleton .sk-kicker{width:120px;height:12px}.partner-skeleton .sk-title{width:220px;height:28px}.partner-skeleton .sk-line{width:160px;height:14px;margin-bottom:8px}
.partner-skeleton .sk-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.partner-skeleton .sk-card{height:120px;border-radius:14px}
@keyframes skPulse{0%,100%{opacity:1}50%{opacity:.55}}
@media(prefers-reduced-motion:reduce){.partner-skeleton .sk{animation:none}}
.partner-refreshed{display:flex;flex-wrap:nowrap;align-items:center;gap:10px;margin:6px 0 2px;color:#64748b;font-size:13px;white-space:nowrap;width:auto}
.partner-refreshed>span{flex:none}
@media(max-width:600px){.partner-portal .partner-tab{min-height:44px!important}.partner-account-signout,.partner-see-all{min-height:44px}}
.partner-help-body p{margin:6px 0 0}
.partner-contact{position:relative;display:inline-block;margin-top:14px}
.partner-contact-button{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 18px;border:1px solid #c9dbf3;border-radius:12px;background:#fff;color:#1d4ed8;font-weight:650;font-size:14px;cursor:pointer;box-shadow:0 1px 2px rgba(15,42,92,.06)}
.partner-contact-button svg{width:18px;height:18px}
.partner-contact-button:hover{background:#f5f9ff;border-color:#a9c6ee}
.partner-contact-button:focus-visible,.partner-contact-menu a:focus-visible,.partner-contact-copy:focus-visible{outline:3px solid #93c5fd;outline-offset:2px}
.partner-contact-menu{position:absolute;left:0;bottom:calc(100% + 8px);z-index:20;min-width:220px;padding:8px;background:#fff;border:1px solid #e3eaf4;border-radius:14px;box-shadow:0 14px 34px rgba(15,42,92,.16)}
.partner-contact-menu-title{margin:2px 8px 6px!important;color:#64748b;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.partner-contact-menu a,.partner-contact-copy{display:flex;align-items:center;width:100%;min-height:40px;padding:0 10px;border:0;border-radius:9px;background:none;color:#0f2a5c;font:inherit;font-size:14px;font-weight:600;text-decoration:none;text-align:left;cursor:pointer;box-sizing:border-box}
.partner-contact-menu a:hover,.partner-contact-copy:hover{background:#f2f7ff}
.partner-contact-copy{border-top:1px solid #eef2f7;border-radius:0 0 9px 9px;margin-top:4px;color:#475569}
@media(max-width:600px){.partner-contact,.partner-contact-button{width:100%;justify-content:center}.partner-contact-menu{left:0;right:0;min-width:0}.partner-contact-menu a,.partner-contact-copy{min-height:44px}}
.partner-welcome-name{font-weight:700;color:#0f2a5c;letter-spacing:-.005em}
@media(max-width:380px){.partner-portal .partner-header .eyebrow{letter-spacing:.03em;overflow:visible;text-overflow:clip}}
/* Commission breakdown on phones: tighter rows and spacing so more restaurants fit on screen; text sizes unchanged
 * where it matters (names 14px, figures 14px), only the paddings and the small print shrink. */
@media(max-width:600px){.hub-detail-dialog:has(.hub-detail-tabs:not([hidden])) .hub-detail-panel{padding-top:16px}.hub-detail-dialog:has(.hub-detail-tabs:not([hidden])) .hub-detail-header h2{font-size:20px}.hub-detail-dialog:has(.hub-detail-tabs:not([hidden])) .hub-detail-description{margin-top:8px;font-size:15px}.hub-detail-dialog:has(.hub-detail-tabs:not([hidden])) .hub-detail-tabs{margin-top:12px}.hub-detail-dialog:has(.hub-detail-tabs:not([hidden])) .hub-detail-tabs button{min-height:36px}.hub-detail-dialog:has(.hub-detail-tabs:not([hidden])) .hub-detail-tabs:not([hidden]) + .hub-detail-toolbar{margin-top:12px}.hub-detail-dialog:has(.hub-detail-tabs:not([hidden])) .hub-detail-toolbar:has(> [hidden]:first-child):has(> p[hidden]:last-child){display:none}.hub-detail-dialog:has(.hub-detail-tabs:not([hidden])) .hub-detail-tabs{margin-bottom:12px}.hub-detail-dialog:has(.hub-detail-tabs:not([hidden])) .hub-detail-table th{padding:8px 12px;font-size:13px}.hub-detail-dialog:has(.hub-detail-tabs:not([hidden])) .hub-detail-table td{padding:9px 12px}.hub-detail-dialog:has(.hub-detail-tabs:not([hidden])) .hub-cell-sub{margin-top:0;font-size:12.5px;line-height:1.35}.hub-detail-dialog:has(.hub-detail-tabs:not([hidden])) .hub-detail-table tfoot td{padding:10px 12px}.hub-detail-dialog:has(.hub-detail-tabs:not([hidden])) .hub-detail-privacy{margin-top:12px;font-size:13px;line-height:1.45}}
.partner-quarter-name{font-weight:650;color:#1f3558}
/* "Your Position" trend against the previous month, on the dark rank card: a small glass pill, mint when up,
 * soft white otherwise (never alarming red). */
.partner-rank-card>p.partner-rank-trend{display:inline-flex;align-self:flex-start;justify-self:start;grid-column:1/-1;align-items:center;gap:6px;width:auto;max-width:100%;margin:10px 0 18px;padding:4px 12px;border:1px solid #ffffff2e;border-radius:999px;background:#ffffff1a;color:#e6eeff;font-size:14px;font-weight:650;line-height:1.45}
.partner-rank-card>p.partner-rank-trend[hidden]{display:none}
.partner-rank-card>p.partner-rank-trend.is-up{border-color:#6ee7b74d;background:#10b98133;color:#d1fae5}
.partner-rank-trend-icon{font-size:10px;line-height:1}
.partner-rank-card>p:not(.section-kicker) strong{color:#fff;font-weight:700}
/* Sign-in information note (a staff session on this browser): calm blue with an info mark, never the red error look. */
.partner-login-form .notice.is-info{position:relative;padding:12px 14px 12px 40px;border:1px solid #cddcf6;background:#f1f6ff;color:#1e3a6e;font-size:13.5px;line-height:1.5}
.partner-login-form .notice.is-info::before{content:"i";position:absolute;left:14px;top:13px;display:grid;place-items:center;width:17px;height:17px;border-radius:50%;background:#2f6fe0;color:#fff;font:700 11px/1 Georgia,serif}

/* Uniformity pass (owner review, Oct 2026). 6: the Ranking month picker styled like the rest of the hub. */
.partner-portal .partner-month-select select{-webkit-appearance:none;appearance:none;padding-right:44px;border:1px solid #c9dbf3;border-radius:12px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%231e2a6b' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 8 5 5 5-5'/%3E%3C/svg%3E") no-repeat right 14px center/16px;box-shadow:0 1px 2px rgba(15,42,92,.06)}
.partner-portal .partner-month-select select:focus-visible{outline:3px solid #93c5fd;outline-offset:2px}
/* 5: the Ranking banner badge in the hub's soft pill style. */
.partner-month-banner strong{padding:3px 10px;border:1px solid #bfe3d0;background:#e7f6ee;color:#14532d;font-size:12px;font-weight:700;letter-spacing:0;text-transform:none}
.partner-month-banner.is-previous strong{border-color:#d7dfea;background:#eef2f7;color:#475569}
/* 8: "Pending" pill in history tables and cards, with one footnote. */
.pending-pill{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;background:#eef2f7;color:#52647d;font-size:11.5px;font-weight:700;line-height:1.5;white-space:nowrap}
.partner-month-stat .pending-pill{margin-top:4px}
.partner-history-pending-note{margin:12px 0 0;color:#64748b;font-size:13px;line-height:1.5}
/* 9: desktop history table — months never wrap; "This Month | Quarter-to-Date" group headings. */
.partner-history-table td:first-child,.partner-history-table .partner-period-link{white-space:nowrap}
.partner-history-table .partner-history-groups th{padding:10px 14px 6px;background:#fff;border-bottom:0;color:#8a97ab;font-size:10.5px;letter-spacing:.08em;text-align:center}
.partner-history-table .partner-history-groups th.group{border-bottom:2px solid #dfe5ec;color:#52647d}
.partner-history-table .partner-history-groups th.blank{border-bottom:0}
/* 11: "Your Position" card sized to its content; the button sits under the text. */

/* 10: "Next Step" as short lines. */
.partner-guidance-list{margin:8px 0 0;padding:0 0 0 18px;line-height:1.5}
.partner-guidance-list li{margin:0 0 6px}
.partner-guidance-list li:last-child{margin-bottom:0}
.partner-guidance-list strong{color:#0f2a5c;font-weight:700}
/* 2: Account page — the same "Email the Partnership team" button as Overview, next to Sign Out. */
.partner-account-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:6px}
.partner-account-actions .partner-contact{margin-top:0}
.partner-portal .partner-account-actions .partner-account-signout{width:auto;margin:0}
@media(max-width:600px){.partner-account-actions{flex-direction:column;align-items:stretch}.partner-portal .partner-account-actions .partner-account-signout{width:100%}}

.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* 13 (owner review, Oct 2026): on phones the Overview / History / Ranking / Account tabs become a fixed bottom bar with
 * icons, where thumbs are, and stay visible while scrolling. Desktop keeps the top pills. Pop-ups (native <dialog>) sit above it. */
@media(max-width:600px){
  .partner-portal .partner-tabs{position:fixed;top:auto;bottom:0;left:0;right:0;z-index:40;margin:0;padding:6px 8px calc(6px + env(safe-area-inset-bottom));gap:4px;background:#fffffff5;border-top:1px solid #e0e7f0;border-bottom:0;box-shadow:0 -8px 24px rgba(15,42,92,.08)}
  .partner-portal .partner-tab{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:54px!important;padding:6px 2px!important;border-radius:12px!important;color:#64748b!important;font-size:11px!important;font-weight:700;letter-spacing:.01em;line-height:1.1}
  .partner-portal .partner-tab::before{content:"";display:block;width:22px;height:22px;background:currentColor;-webkit-mask:var(--tab-icon) center/contain no-repeat;mask:var(--tab-icon) center/contain no-repeat}
  .partner-portal .partner-tab[aria-selected="true"]{background:#e8f1fd!important;color:#0b5fcc!important}
  .partner-portal .partner-tab[data-panel="overview"]{--tab-icon:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Crect%20x='3'%20y='3'%20width='7'%20height='7'%20rx='1.5'/%3E%3Crect%20x='14'%20y='3'%20width='7'%20height='7'%20rx='1.5'/%3E%3Crect%20x='3'%20y='14'%20width='7'%20height='7'%20rx='1.5'/%3E%3Crect%20x='14'%20y='14'%20width='7'%20height='7'%20rx='1.5'/%3E%3C/svg%3E")}
  .partner-portal .partner-tab[data-panel="history"]{--tab-icon:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Ccircle%20cx='12'%20cy='12'%20r='9'/%3E%3Cpath%20d='M12%207v5l3%202'/%3E%3C/svg%3E")}
  .partner-portal .partner-tab[data-panel="leaderboard"]{--tab-icon:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M8%2021h8M12%2017v4M7%204h10v4a5%205%200%200%201-10%200V4zM7%206H4a3%203%200%200%200%203%203M17%206h3a3%203%200%200%201-3%203'/%3E%3C/svg%3E")}
  .partner-portal .partner-tab[data-panel="account"]{--tab-icon:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Ccircle%20cx='12'%20cy='8'%20r='4'/%3E%3Cpath%20d='M4%2021a8%208%200%200%201%2016%200'/%3E%3C/svg%3E")}
  .partner-portal{padding-bottom:calc(78px + env(safe-area-inset-bottom))}
}

/* History: the quarter's running totals sit in their own shaded block with a divider, labels spelled out (owner choice, Oct 2026). */
.partner-history-table th.qtd,.partner-history-table td.qtd{background:#f3f7fd}
.partner-history-table th.qtd-first,.partner-history-table td.qtd-first{border-left:2px solid #c9d8ef}
.partner-history-table .partner-history-groups th.group{color:#0f2a5c;font-size:12px;letter-spacing:.06em}
.partner-history-table .partner-history-groups th.group.qtd{background:#e8f0fc}

/* Phone History cards: "Quarter so far" strip (running totals), matching the desktop table's shaded quarter block. */
.partner-month-card-quarter{margin-top:10px;padding:10px 12px;border-left:3px solid #c9d8ef;border-radius:10px;background:#f3f7fd}
.partner-month-card-quarter-title{display:block;margin-bottom:6px;color:#0f2a5c;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.partner-month-card-quarter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.partner-month-card-quarter-grid small{display:block;color:#64748b;font-size:11.5px}
.partner-month-card-quarter-grid strong{display:block;color:#0f2a5c;font-size:14px;font-variant-numeric:tabular-nums}
/* Wide screens (large monitors, or zoomed out): the LAYOUT widens to use the sides — text stays at normal size, so
 * zooming out never makes text bigger (owner decision, Oct 2026; replaces whole-page scaling). Partner app and
 * Operations Console alike. Below 1600px (phones, tablets, laptops at normal zoom) nothing changes. */
@media(min-width:1600px){
  .partner-portal{width:min(2000px,calc(100% - 96px))}
  .workspace{width:min(2000px,calc(100% - 96px))}
  .partner-guidance-list,.partner-guidance p{max-width:1180px}
}
@media(min-width:2200px){body{zoom:1.06}}

/* Your Position card: "Top partners this month" (top 3 + own row) fills the card to the height of Tier Progress, so there is
 * no empty slot under it on desktop (owner choice A, Oct 2026). Same "Partner N" naming as the Ranking tab. */
.partner-top-partners{margin:14px 0 18px;padding-top:12px;border-top:1px solid #ffffff2e}
.partner-top-partners[hidden]{display:none}
.partner-top-partners-title{margin:0 0 6px!important;color:#a9c4ff!important;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;line-height:1.4!important}
.partner-top-partner{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;color:#e6eeff;font-size:14px;font-weight:600}
.partner-top-partner b{color:#fff;font-weight:800}
.partner-top-partner strong{color:#fff;font-weight:700;font-variant-numeric:tabular-nums}
.partner-top-partner.is-own{background:#ffffff1f;color:#fff}
@media(min-width:761px) and (max-width:1180px){.partner-rank-card .partner-top-partners{grid-column:1/-1;margin:14px 0 4px}.partner-rank-card .partner-top-partners-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px}}
@media(max-width:600px){.partner-top-partners{margin:12px 0 14px}.partner-top-partner{padding:8px 10px;font-size:13.5px}}

/* Latest Leads and Need Help cards (owner request, Oct 2026): referral rows with an initials mark and a date pill, a
 * "Submit your next referral" action that fills the card's height, and a tinted help card with the address shown. */
.partner-latest-leads{display:flex;flex-direction:column}
.partner-latest-leads .partner-latest-list{flex:1 1 auto;margin:10px 0 0;padding:0;list-style:none}
.partner-latest-leads .partner-latest-item{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:12px;padding:11px 0;border-top:1px solid #edf0f4}
.partner-latest-leads .partner-latest-item:first-child{border-top:0}
.partner-latest-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:linear-gradient(145deg,#e8f0fc,#d6e4fb);color:#1e3a8a;font-size:12px;font-weight:800;letter-spacing:.02em}
.partner-latest-leads .partner-latest-name{min-width:0;overflow-wrap:anywhere;color:#0f2a5c;font-weight:650}
.partner-latest-leads .partner-latest-date{padding:4px 10px;border-radius:999px;background:#f3f6fb;color:#52647d;font-size:12.5px;font-weight:600;white-space:nowrap}
.partner-portal button.partner-latest-cta{display:inline-flex;align-items:center;gap:10px;width:auto;min-height:44px;margin:14px 0 0;padding:0 16px 0 10px;border:1px dashed #b9cdee;border-radius:12px;background:#f7faff;color:#1d4ed8;font-size:14px;font-weight:700;box-shadow:none;cursor:pointer;align-self:flex-start}
.partner-portal button.partner-latest-cta:hover{background:#eef4ff;border-color:#8fb1ea;transform:none;box-shadow:none}
.partner-latest-cta-plus{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:#1d4ed8;color:#fff;font-size:18px;font-weight:700;line-height:1}
.partner-help-card{align-items:flex-start;background:linear-gradient(160deg,#f4f8ff 0%,#ffffff 60%);border-color:#dbe6f8}
.partner-help-icon{width:48px;height:48px;border-radius:14px;background:linear-gradient(145deg,#0b1f52,#2f73ed);color:#fff;box-shadow:0 6px 16px rgba(29,78,216,.22)}
.partner-help-icon svg{width:24px;height:24px}
.partner-help-card h3{font-size:17px}
.partner-help-address{margin:10px 0 0!important;color:#64748b!important;font-size:12.5px!important;font-variant-ligatures:none}
@media(max-width:600px){.partner-portal button.partner-latest-cta{width:100%;justify-content:center;padding:0 14px}.partner-latest-leads .partner-latest-date{font-size:12px}}
/* Need help? card: icon on top, then title, text and button, stacked and centred vertically as one block, so the card
 * looks balanced next to a taller Latest Leads card. */
.partner-help-card{flex-direction:column;align-items:flex-start;justify-content:center;gap:14px}
.partner-help-card .partner-contact{margin-top:14px}

/* App header: the official Flipdish logo leads the brand line ("[flipdish] · Partnership Hub"), above "Partner Portal". */
.partner-header .partner-brand-line{display:inline-flex;align-items:center;gap:10px}
.partner-header .partner-header-logo{display:block;width:auto;height:38px;margin:-8px -6px -8px -7px}
.partner-header .partner-brand-line span{padding-left:10px;border-left:1px solid #c9d8ef}
@media(max-width:600px){.partner-header .partner-header-logo{height:32px;margin:-7px -5px -7px -6px}}
