/* Dashboard-first layout for Analytics and Opportunities, plus the shared
   interactive charts (ring, gauge, columns). Uses design-system colour tokens
   so light and dark themes both work. */
:root,body{
  --dash-positive:#1f8a52;--dash-warn:#d98a12;--dash-risk:#d0505a;--dash-calm:#4f7fe0;--dash-muted:#9aa5ba;--dash-accent:var(--color-accent,#3047c9);
  --dash-series-0:#3047c9;--dash-series-1:#4f9de8;--dash-series-2:#2fae8f;--dash-series-3:#e0a43a;--dash-series-4:#c45fb0;--dash-series-5:#7c8aa6;
}
body.dark-mode{--dash-positive:#4cc584;--dash-warn:#f0b54b;--dash-risk:#f07c84;--dash-calm:#7ea6ff;--dash-muted:#6f7b94;--dash-series-0:#8c9dff;--dash-series-1:#6cb7ff;--dash-series-2:#4fd1b0;--dash-series-3:#f3c160;--dash-series-4:#e08bd0;--dash-series-5:#9aa6c0}

/* Analytics page: cards on the page background instead of one long report sheet */
.analytics-report-shell.analytics-dashboard{gap:18px;overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none}
.analytics-dashboard .dashboard-meta{display:flex;flex-wrap:wrap;justify-items:start;gap:6px 16px;margin:0;color:var(--color-text-muted,#667085);font-size:12px;text-align:left}
.analytics-dashboard .dash-band{display:grid;gap:14px;padding:0;border:0}
.analytics-dashboard .dash-band-head{display:flex;align-items:end;justify-content:space-between;gap:18px}
.analytics-dashboard .dash-band-head .eyebrow{margin:0 0 4px}
.analytics-dashboard .dash-band-head h2{margin:0;color:var(--color-text-primary,#17213a);font-size:20px;letter-spacing:-.02em}
.analytics-dashboard .dash-band-head>p{max-width:420px;margin:0;color:var(--color-text-muted,#667085);font-size:13px;line-height:1.5;text-align:right}

/* KPI tiles */
#analytics .analytics-dashboard .dash-tiles{display:grid;grid-template-columns:1.35fr repeat(4,minmax(0,1fr));gap:12px;border:0}
.analytics-report-shell.analytics-dashboard .analytics-card.dash-tile{display:flex;flex-direction:column;justify-content:space-between;gap:12px;min-width:0;padding:18px!important;border:1px solid var(--color-border,#d8deea)!important;border-radius:16px!important;background:var(--color-surface,#fff)!important;transition:border-color .15s ease,box-shadow .15s ease}
.analytics-report-shell.analytics-dashboard .analytics-card.dash-tile:hover{border-color:var(--color-border-strong,#aeb8cc)!important;box-shadow:0 10px 26px -20px #17213a66!important}
.dash-tile-body{position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.dash-tile-body.tone-positive{padding-left:12px}
.dash-tile-body.tone-positive::before{content:"";position:absolute;left:0;top:2px;bottom:2px;width:4px;border-radius:4px;background:var(--dash-positive)}
.dash-tile .analytics-label{margin:0;color:var(--color-text-muted,#667085);font-size:11px;font-weight:750;letter-spacing:.06em;text-transform:uppercase}
.dash-tile .analytics-headline{display:block;margin:8px 0 6px;color:var(--color-text-primary,#17213a);font-size:clamp(26px,2.6vw,36px);line-height:1;letter-spacing:-.04em}
.dash-tile .analytics-headline small{font-size:15px;font-weight:600;letter-spacing:0;color:var(--color-text-muted,#667085)}
.dash-tile p{margin:0 0 4px;color:var(--color-text-muted,#667085);font-size:12px;line-height:1.5}
.dash-tile .dash-tile-value{color:var(--color-text-primary,#17213a);font-weight:700;font-size:13px}
.dash-tile-visual{flex:0 0 auto}
.dash-tile-mini{margin-top:10px}
.dash-tile-mini .report-bar-heading{font-size:12px}
.dash-tile-mini .report-bar-track{height:5px}
.dash-tile-action{align-self:flex-start}
.analytics-dashboard .analytics-drill{padding:0;border:0;background:transparent;color:var(--color-accent,#3047c9);font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.analytics-dashboard .analytics-drill:hover{text-decoration:underline;text-underline-offset:3px}

/* Panels */
.analytics-dashboard .dash-panel,.analytics-dashboard .report-management-brief{min-width:0;padding:22px!important;border:1px solid var(--color-border,#d8deea)!important;border-radius:16px;background:var(--color-surface,#fff)}
.analytics-dashboard .report-management-brief{gap:16px}
.analytics-dashboard .dash-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.analytics-dashboard .dash-grid .report-panel{grid-column:auto;padding:22px}
.analytics-dashboard .dash-grid .report-panel:nth-child(odd),.analytics-dashboard .dash-grid .report-panel:nth-child(even){padding:22px;border-right:1px solid var(--color-border,#d8deea)}
.analytics-dashboard .report-panel h3{margin:0 0 4px;font-size:16px}
.analytics-dashboard .report-panel>p{margin:0 0 16px}
.analytics-dashboard .dash-big-figure{display:flex;align-items:baseline;gap:12px;margin:6px 0 12px}
.analytics-dashboard .dash-big-figure strong{color:var(--color-text-primary,#17213a);font-size:44px;line-height:1;letter-spacing:-.04em}
.analytics-dashboard .dash-big-figure span{color:var(--color-text-secondary,#46536a);font-weight:700}
.analytics-dashboard .dash-contact-split{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:4px 0 4px}
.analytics-dashboard .dash-contact-split>div{display:grid;gap:3px;padding:12px;border-radius:12px;background:var(--color-surface-muted,#f2f4f8)}
.analytics-dashboard .dash-contact-split span{color:var(--color-text-muted,#667085);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.analytics-dashboard .dash-contact-split strong{color:var(--color-text-primary,#17213a);font-size:20px}
.analytics-dashboard .dash-contact-split small{color:var(--color-text-muted,#667085);font-size:11px}

/* Management brief as priority cards */
.analytics-dashboard .management-brief-grid{gap:12px;border:0}
.analytics-dashboard .management-brief-item,.analytics-dashboard .management-brief-item:not(:first-child){display:flex;flex-direction:column;padding:16px;border:1px solid var(--color-border,#d8deea);border-radius:12px;background:var(--color-surface-muted,#f7f8fb)}
.analytics-dashboard .management-brief-item>p:not(.management-brief-slot){min-height:0;flex:1}
.analytics-dashboard .management-brief-item .analytics-drill{margin-top:10px;align-self:flex-start}

/* Period stats */
.analytics-dashboard .report-kpi-strip.dash-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;border:0}
.analytics-dashboard .dash-stats>.dash-stat,.analytics-dashboard .dash-stats>.dash-stat:not(:first-child){padding:16px 18px;border:1px solid var(--color-border,#d8deea);border-radius:14px;background:var(--color-surface,#fff)}
.analytics-dashboard .dash-stat.tone-positive{border-top:3px solid var(--dash-positive)}
.analytics-dashboard .dash-stat.tone-muted{border-top:3px solid var(--dash-muted)}
.analytics-dashboard #analyticsOverview{gap:14px}
.analytics-dashboard #analyticsOutcomeCard .analytics-inline-stats{margin:14px 0 6px}

/* Handling section */
.analytics-dashboard #analyticsManagedSection .report-kpi-strip{gap:12px;border:0}
.analytics-dashboard #analyticsManagedSection .report-kpi-strip>article,.analytics-dashboard #analyticsManagedSection .report-kpi-strip>article:not(:first-child){padding:16px 18px;border:1px solid var(--color-border,#d8deea);border-radius:14px;background:var(--color-surface,#fff)}
.analytics-dashboard #analyticsManagedSection .report-grid{gap:12px;margin-top:12px;border:0}
.analytics-dashboard #analyticsManagedSection .report-panel,.analytics-dashboard #analyticsManagedSection .report-panel:nth-child(odd),.analytics-dashboard #analyticsManagedSection .report-panel:nth-child(even){padding:20px;border:1px solid var(--color-border,#d8deea);border-radius:14px;background:var(--color-surface,#fff)}
.analytics-dashboard .report-methodology{border-radius:14px}

/* Clickable bar rows */
button.report-bar-row{width:100%;padding:8px 10px;margin:0 -10px;width:calc(100% + 20px);border:0;border-radius:10px;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}
button.report-bar-row:hover,button.report-bar-row:focus-visible{background:var(--color-surface-muted,#f2f4f8)}
button.report-bar-row:focus-visible,.report-donut-key:focus-visible,.report-column:focus-visible{outline:2px solid var(--color-focus,#244bbb);outline-offset:2px}

/* Ring chart */
.report-donut{display:grid;grid-template-columns:minmax(150px,200px) minmax(0,1fr);align-items:center;gap:22px}
.report-donut-figure{position:relative;aspect-ratio:1}
.report-donut-figure svg{display:block;width:100%;height:100%}
.report-donut-track{fill:none;stroke:var(--color-surface-muted,#eef1f6);stroke-width:16}
.report-donut-slice{fill:none;stroke-width:16;stroke-linecap:butt;transition:opacity .15s ease,stroke-width .15s ease;cursor:pointer}
.report-donut.is-focused .report-donut-slice:not(.is-active){opacity:.28}
.report-donut-slice.is-active{stroke-width:19}
.report-donut-centre{position:absolute;inset:22%;display:grid;place-content:center;gap:2px;text-align:center}
.report-donut-centre strong{color:var(--color-text-primary,#17213a);font-size:clamp(15px,1.8vw,22px);line-height:1.1;letter-spacing:-.02em;word-break:break-word}
.report-donut-centre span{color:var(--color-text-muted,#667085);font-size:11px;line-height:1.3}
.report-donut-legend{display:grid;gap:4px;min-width:0}
.report-donut-key{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:4px 10px;width:100%;padding:8px 10px;border:0;border-radius:10px;background:transparent;color:var(--color-text-secondary,#46536a);font:inherit;font-size:13px;text-align:left}
button.report-donut-key{cursor:pointer}
.report-donut-key.is-active,button.report-donut-key:hover{background:var(--color-surface-muted,#f2f4f8)}
.report-donut-key i{width:10px;height:10px;border-radius:3px;background:var(--dash-accent)}
.report-donut-key strong{color:var(--color-text-primary,#17213a);font-size:13px;white-space:nowrap}
.report-donut-key small{grid-column:2/-1;color:var(--color-text-muted,#667085);font-size:11px}
button.report-donut-key small::after{content:" · View";color:var(--color-accent,#3047c9);font-weight:700}

/* Tones shared by ring slices, legend keys and columns */
.tone-positive{--tone:var(--dash-positive)}.tone-warn{--tone:var(--dash-warn)}.tone-risk{--tone:var(--dash-risk)}.tone-calm{--tone:var(--dash-calm)}.tone-muted{--tone:var(--dash-muted)}
.tone-series-0{--tone:var(--dash-series-0)}.tone-series-1{--tone:var(--dash-series-1)}.tone-series-2{--tone:var(--dash-series-2)}.tone-series-3{--tone:var(--dash-series-3)}.tone-series-4{--tone:var(--dash-series-4)}.tone-series-5{--tone:var(--dash-series-5)}
.report-donut-slice[class*="tone-"]{stroke:var(--tone)}
.report-donut-key[class*="tone-"] i{background:var(--tone)}

/* Gauge */
.report-gauge{position:relative;display:grid;place-items:center;width:76px;height:76px}
.report-gauge svg{position:absolute;inset:0;width:100%;height:100%}
.report-gauge-track{fill:none;stroke:var(--color-surface-muted,#eef1f6);stroke-width:7}
.report-gauge-fill{fill:none;stroke:var(--dash-accent);stroke-width:7;stroke-linecap:round}
.report-gauge.tone-positive .report-gauge-fill{stroke:var(--dash-positive)}
.report-gauge.tone-warn .report-gauge-fill{stroke:var(--dash-warn)}
.report-gauge.tone-risk .report-gauge-fill{stroke:var(--dash-risk)}
.report-gauge strong{position:relative;color:var(--color-text-primary,#17213a);font-size:16px}

/* Columns */
.report-columns{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);align-items:end;gap:12px;height:190px;padding-top:6px}
.report-column{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:8px;height:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:center}
.report-column-track{position:relative;display:flex;align-items:flex-end;justify-content:center;height:100%;border-bottom:1px solid var(--color-border,#d8deea)}
.report-column-bar{position:relative;display:block;width:min(56px,80%);height:var(--report-column-size);border-radius:8px 8px 2px 2px;background:var(--tone,var(--dash-accent));transition:filter .15s ease}
.report-column:hover .report-column-bar{filter:brightness(1.08)}
.report-column-bar b{position:absolute;left:50%;bottom:calc(100% + 4px);transform:translateX(-50%);color:var(--color-text-primary,#17213a);font-size:13px}
.report-column small{color:var(--color-text-muted,#667085);font-size:11px;line-height:1.3}

/* Opportunities dashboard */

@media(max-width:1180px){#analytics .analytics-dashboard .dash-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.analytics-dashboard .dash-grid{grid-template-columns:1fr}.analytics-dashboard .report-kpi-strip.dash-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-dashboard .dash-band-head{align-items:start;flex-direction:column}.analytics-dashboard .dash-band-head>p{text-align:left}}
@media(max-width:640px){#analytics .analytics-dashboard .dash-tiles{grid-template-columns:1fr 1fr}.analytics-dashboard .dash-tiles>.analytics-card-primary{grid-column:1/-1}.report-donut{grid-template-columns:1fr;justify-items:center}.report-donut-figure{width:min(220px,70vw)}.report-donut-legend{width:100%}.analytics-dashboard .dash-contact-split{grid-template-columns:1fr}}
@media(max-width:420px){#analytics .analytics-dashboard .dash-tiles,.analytics-dashboard .report-kpi-strip.dash-stats{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.report-donut-slice,.report-column-bar,.dash-tile{transition:none}}
@media print{.analytics-dashboard .dash-panel,.analytics-dashboard .dash-tile{break-inside:avoid}}

.report-percentile{padding-inline:28px}
#analytics .analytics-dashboard .dash-tiles>.analytics-card{grid-column:auto}
@media(max-width:640px){#analytics .analytics-dashboard .dash-tiles>.analytics-card-primary{grid-column:1/-1}}
#analytics .analytics-dashboard .dash-tile .analytics-headline{color:var(--color-text-primary,#17213a)}
#analytics .analytics-dashboard .dash-tile .analytics-label{color:var(--color-text-muted,#667085)}
