﻿:root {
  color: #161616;
  background: #f4f5f3;
  --line: #d7d9d5;
  --surface: #ffffff;
  --muted: #666b67;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-synthesis: none;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  min-width: 320px;
  min-height: 100vh;
}

button,
a {
  font: inherit;
}

.topbar {
  min-height: 64px;
  padding: 0 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  background: #161616;
  color: #ffffff;
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: inherit;
  text-decoration: none;
  font-weight: 700;
}

.brand-mark {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border: 1px solid #ffffff;
  font-size: 14px;
}

.contract-link {
  color: #d8ded8;
  font-size: 14px;
}

.admin-nav,
.health-nav {
  display: flex;
  align-items: center;
  gap: 22px;
}

.admin-nav a,
.health-nav a {
  color: #d8ded8;
  font-size: 14px;
  text-decoration: none;
}

.admin-nav a[aria-current="page"] {
  color: #ffffff;
  text-decoration: underline;
  text-underline-offset: 6px;
}

main {
  width: min(1120px, calc(100% - 48px));
  margin: 0 auto;
  padding: 48px 0 72px;
}

.health-screen { width: 100%; }

.page-heading,
.section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
}

.page-heading {
  padding-bottom: 32px;
  border-bottom: 1px solid #cacdc8;
}

.eyebrow {
  margin: 0 0 8px;
  color: #536158;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}

h1,
h2,
p {
  margin-top: 0;
}

h1 {
  margin-bottom: 10px;
  font-size: clamp(30px, 4vw, 44px);
  line-height: 1.08;
  letter-spacing: 0;
}

h2 {
  margin-bottom: 0;
  font-size: 20px;
  letter-spacing: 0;
}

.timestamp,
.tenant {
  margin-bottom: 0;
  color: #626a64;
  font-size: 13px;
}

.refresh-button {
  min-height: 42px;
  padding: 0 18px;
  border: 1px solid #161616;
  border-radius: 4px;
  background: #ffffff;
  color: #161616;
  cursor: pointer;
  font-weight: 650;
}

a.refresh-button {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}

.refresh-button:hover {
  background: #e9ece8;
}

.refresh-button:disabled {
  cursor: wait;
  opacity: 0.55;
}

.error-message {
  margin: 24px 0 0;
  padding: 14px 16px;
  border-left: 4px solid #a62d2d;
  background: #fff0f0;
  color: #761e1e;
}

.success-message {
  padding: 14px 16px;
  border-left: 4px solid #23745a;
  background: #edf8f2;
  color: #18533f;
}

.loading-state {
  width: 36px;
  height: 36px;
  margin: 90px auto;
  border: 3px solid #c7cbc7;
  border-top-color: #161616;
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}

@keyframes spin { to { transform: rotate(360deg); } }

main > section:not(.page-heading) {
  padding-top: 36px;
}

.section-heading {
  margin-bottom: 16px;
}

.metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.metric {
  min-height: 132px;
  padding: 20px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  border: 1px solid #d1d4cf;
  border-top: 4px solid #555c57;
  border-radius: 6px;
  background: #ffffff;
}

.metric-sick {
  border-top-color: #b93636;
}

.metric-good {
  border-top-color: #23745a;
}

.metric span,
.domain-row span {
  color: #59615b;
  font-size: 14px;
}

.metric strong {
  font-size: 36px;
  line-height: 1;
}

.domain-section {
  margin-top: 16px;
  border-top: 1px solid #cacdc8;
}

.domain-grid {
  border-top: 1px solid #d1d4cf;
}

.domain-row {
  min-height: 58px;
  padding: 0 4px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #d1d4cf;
}

.domain-row strong {
  font-size: 20px;
}

.filter-panel {
  margin-top: 28px;
  padding: 20px;
  display: grid;
  grid-template-columns: minmax(320px, 1.5fr) minmax(220px, 1fr) minmax(170px, 0.6fr) auto;
  align-items: end;
  gap: 16px;
  border: 1px solid #d1d4cf;
  border-radius: 6px;
  background: #ffffff;
}

.filter-panel > * {
  min-width: 0;
}

.filter-panel label,
.date-fields label {
  display: grid;
  gap: 7px;
}

.filter-panel input,
.filter-panel select,
.action-row select {
  width: 100%;
  min-height: 42px;
  padding: 8px 10px;
  border: 1px solid #aeb4af;
  border-radius: 4px;
  background: #ffffff;
  color: #161616;
}

.field-label {
  color: #4e5851;
  font-size: 13px;
  font-weight: 700;
}

.window-control { display: grid; gap: 10px; }
.segmented-control { display: grid; grid-template-columns: repeat(3, 1fr); }
.segmented-control button {
  min-height: 38px;
  border: 1px solid #aeb4af;
  border-right-width: 0;
  background: #ffffff;
  cursor: pointer;
}
.segmented-control button:first-child { border-radius: 4px 0 0 4px; }
.segmented-control button:last-child { border-right-width: 1px; border-radius: 0 4px 4px 0; }
.segmented-control button.active { background: #161616; color: #ffffff; }
.range-field { grid-template-columns: 150px 1fr; align-items: center; }
.range-field span { display: grid; }
.range-field small { color: #69716b; }
.date-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }

.primary-button {
  min-height: 42px;
  padding: 0 18px;
  border: 1px solid #161616;
  border-radius: 4px;
  background: #161616;
  color: #ffffff;
  cursor: pointer;
  font-weight: 700;
}
.primary-button:disabled { opacity: 0.45; cursor: not-allowed; }

.section-block {
  margin-top: 32px;
  padding-top: 28px;
  border-top: 1px solid #cacdc8;
}
.engagement-metrics { margin-top: 18px; }
.engagement-card { min-height: 118px; }
.engagement-card strong { font-size: 24px; line-height: 1.15; }
.help {
  width: 20px; height: 20px; padding: 0; border: 1px solid #879087; border-radius: 50%;
  background: transparent; color: #4f5a52; cursor: help; font-size: 12px; font-weight: 800;
}
.class-badge { padding: 7px 10px; border-left: 4px solid #777; background: #ffffff; font-weight: 750; text-transform: capitalize; cursor: help; }
.class-badge span { display: inline-grid; width: 18px; height: 18px; margin-left: 5px; place-items: center; border: 1px solid currentColor; border-radius: 50%; font-size: 11px; }
.class-badge:focus-visible { outline: 3px solid #2e6f95; outline-offset: 3px; }
.class-promising { border-color: #27708d; }.class-loyal { border-color: #28745f; }.class-champion { border-color: #b47b16; }.class-at-risk { border-color: #b44e3a; }.class-lost { border-color: #6a7075; }
.method-note { padding: 14px 16px; background: #e9eeea; color: #37433b; line-height: 1.55; }
.intervention-note { margin: 16px 0 0; padding: 14px 16px; border-left: 4px solid #b44e3a; background: #f4e9e5; color: #4b332b; line-height: 1.5; }
.empty-state { margin-top: 32px; padding: 28px; border: 1px solid #d1d4cf; background: #ffffff; }
.updating-state { min-height: 190px; margin-top: 28px; display: grid; place-items: center; align-content: center; gap: 10px; border: 1px solid #d1d4cf; background: #ffffff; text-align: center; }
.updating-state span { width: 34px; height: 34px; border: 3px solid #d7ddd8; border-top-color: #28745f; border-radius: 50%; animation: engagement-spin .8s linear infinite; }
.updating-state small { color: #626a64; }
@keyframes engagement-spin { to { transform: rotate(360deg); } }
.empty-copy, .chart-caption { color: #626a64; font-size: 13px; line-height: 1.5; }

.report-table { display: grid; gap: 8px; margin-bottom: 14px; }
.report-table article { padding: 15px 16px; display: grid; grid-template-columns: 1fr auto; gap: 6px 18px; border: 1px solid #d1d4cf; background: #ffffff; }
.report-table article div { display: grid; gap: 3px; }
.report-table article span, .report-table article p { color: #626a64; font-size: 13px; }
.report-table article p { grid-column: 1 / -1; margin: 0; }

.bar-list { display: grid; gap: 14px; }
.bar-row { display: grid; grid-template-columns: minmax(150px, 1fr) minmax(180px, 2fr) 72px; gap: 14px; align-items: center; }
.bar-row div { display: grid; }.bar-row small { color: #626a64; }
.bar-row > span { height: 9px; overflow: hidden; background: #dfe3df; }
.bar-row > span i { display: block; height: 100%; }
.bar-row > b { text-align: right; }
.chart-panel .bar-row { grid-template-columns: minmax(105px, 1fr) minmax(72px, 1.4fr) 58px; gap: 8px; }

.population-columns { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.population-columns > div { padding: 18px; border: 1px solid #d1d4cf; background: #ffffff; }
.population-columns h3 { margin-top: 0; font-size: 15px; }
.population-columns p { display: flex; justify-content: space-between; gap: 12px; padding-top: 10px; border-top: 1px solid #e0e3df; font-size: 13px; }
.population-columns p > span { display: grid; gap: 3px; }
.population-columns p small { color: #626a64; font-size: 11px; }

.action-row { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.action-row select { width: auto; }
.dashboard-kpis { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; }
.dashboard-kpis article { min-height: 112px; padding: 16px; display: grid; align-content: space-between; border: 1px solid #d1d4cf; border-top: 4px solid #28745f; background: #ffffff; }
.dashboard-kpis span, .dashboard-kpis small { color: #626a64; font-size: 12px; }
.dashboard-kpis strong { font-size: 24px; }
.dashboard-band { margin-top: 34px; }
.dashboard-band-heading { max-width: 760px; margin-bottom: 12px; }
.dashboard-band-heading h2 { margin: 3px 0 0; font-size: 22px; }
.dashboard-band .dashboard-grid { margin-top: 0; }
.dashboard-grid { margin-top: 18px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 480px), 1fr)); gap: 14px; }
.chart-panel { min-width: 0; padding: 20px; border: 1px solid #d1d4cf; background: #ffffff; }
.chart-wide { grid-column: 1 / -1; }
.chart-heading h2 { margin: 0 0 18px; font-size: 18px; }
.chart-panel svg { width: 100%; height: auto; overflow: visible; }
.chart-panel svg line { stroke: #bdc3be; stroke-width: 1; }
.chart-panel svg polyline { fill: none; stroke: #23745a; stroke-width: 3; }
.chart-panel svg circle { fill: #ffffff; stroke: #23745a; stroke-width: 3; }
.chart-panel svg text { fill: #626a64; font-size: 11px; }
.combination-chart circle { fill: #eef0ed; stroke: #a8aea9; stroke-width: 1.5; }
.combination-chart circle.selected { fill: #171a18; stroke: #171a18; }
.combination-chart .combination-link { stroke: #171a18; stroke-width: 3; }
.combination-chart rect { fill: #27708d; }
.combination-chart .combination-headings text { font-weight: 700; fill: #343a36; }
.ternary-chart > polygon { fill: #f7f8f6; stroke: #747c76; stroke-width: 1.5; }
.ternary-chart > path { fill: none; stroke: #d7dbd7; stroke-width: 1; }
.ternary-chart circle { fill: var(--point-color); stroke: #fff; stroke-width: 1.25; opacity: .76; cursor: pointer; transition: opacity 120ms ease, stroke-width 120ms ease; }
.ternary-chart circle:hover { opacity: 1; stroke: #171a18; stroke-width: 2.5; }
.clear-zip { white-space: nowrap; }
.funnel { display: grid; justify-items: center; gap: 7px; }
.funnel div { min-height: 45px; padding: 0 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; background: #dce9e2; }
.heatmap { display: grid; grid-template-columns: 42px repeat(24, 1fr); gap: 3px; align-items: center; overflow-x: auto; }
.heatmap b { font-size: 10px; white-space: nowrap; }.heatmap strong { font-size: 11px; }
.heatmap span { min-width: 14px; aspect-ratio: 1; background: color-mix(in srgb, #26745d calc(var(--heat) * 100%), #edf0ed); }
.matrix { display: grid; grid-template-columns: 75px repeat(5, minmax(38px,1fr)); gap: 3px; align-items: center; }
.matrix b { font-size: 10px; overflow-wrap: anywhere; text-align: center; }.matrix strong { font-size: 11px; }
.matrix span:not(:first-child) { min-height: 42px; display: grid; place-items: center; background: #e7ede9; }
.score-table { overflow-x: auto; }.score-table > div { min-width: 790px; display: grid; grid-template-columns: 1.2fr repeat(6, 1fr); gap: 8px; padding: 10px 0; border-bottom: 1px solid #dfe3df; font-size: 13px; }
.donut-layout { display: grid; grid-template-columns: minmax(150px, 0.8fr) 1.2fr; gap: 24px; align-items: center; }
.class-donut { width: min(100%, 190px); aspect-ratio: 1; margin: auto; border-radius: 50%; display: grid; place-items: center; position: relative; }
.class-donut::before { content: ""; position: absolute; inset: 24%; border-radius: 50%; background: #fff; }
.class-donut div { z-index: 1; display: grid; text-align: center; }
.class-donut div strong { font-size: 25px; }.class-donut div span { color: #626a64; font-size: 12px; }
.donut-legend { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.donut-legend li { display: grid; grid-template-columns: 10px 1fr auto; gap: 8px; align-items: center; font-size: 13px; }
.donut-legend i, .scatter-legend i { width: 9px; height: 9px; border-radius: 50%; background: var(--class-color); }
.outlook-scatter circle { stroke: #fff !important; stroke-width: 2 !important; opacity: .88; }
.scatter-legend { display: flex; flex-wrap: wrap; gap: 12px; color: #626a64; font-size: 12px; }
.scatter-legend span { display: flex; align-items: center; gap: 5px; }
.chart-legend { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 8px; color: #626a64; font-size: 12px; }
.chart-legend span { display: flex; align-items: center; gap: 6px; }
.chart-legend i { width: 18px; height: 4px; display: inline-block; background: #27708d; }
.source-chart rect { stroke: #fff; stroke-width: 1; }
.source-chart .source-direct, .chart-legend .source-direct { fill: #28745f; background: #28745f; }
.source-chart .source-prompted, .chart-legend .source-prompted { fill: #b47b16; background: #b47b16; }
.histogram, .risk-density { min-height: 230px; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(52px, 1fr); gap: 8px; align-items: end; overflow-x: auto; border-bottom: 1px solid #9da49f; padding: 24px 4px 0; }
.histogram > div, .risk-density > div { height: 210px; min-width: 52px; display: grid; grid-template-rows: 1fr auto auto; gap: 5px; align-items: end; text-align: center; }
.histogram span, .risk-density span { min-height: 3px; display: flex; align-items: flex-start; justify-content: center; background: #27708d; border: 1px solid #1f5a70; }
.histogram b, .risk-density b { margin-top: -21px; font-size: 11px; color: #313632; }
.histogram small, .risk-density small { font-size: 10px; white-space: nowrap; }
.histogram em, .risk-density em { min-height: 28px; font-size: 10px; color: #626a64; font-style: normal; }
.risk-density span { background: color-mix(in srgb, #b44e3a calc(var(--risk) * 100%), #d8e6df); border-color: #8d9690; }
.channel-bars, .flow-list, .rank-bars { display: grid; gap: 14px; }
.channel-bars article { display: grid; grid-template-columns: minmax(150px, 1.2fr) minmax(120px, 2fr) auto; gap: 12px; align-items: center; }
.channel-bars article div { display: grid; gap: 2px; }.channel-bars article div span, .channel-bars small { color: #626a64; font-size: 11px; }
.channel-bars article > span, .rank-bars i { height: 10px; background: #e5e9e6; overflow: hidden; }
.channel-bars article > span i { display: block; height: 100%; background: #28745f; }
.dual-line .line-first { stroke: #27708d; }.dual-line .line-second { stroke: #b47b16; stroke-dasharray: 7 4; }
.dual-line .point-first { stroke: #27708d; }.dual-line .point-second { stroke: #b47b16; }
.chart-legend .line-first { background: #27708d; }.chart-legend .line-second { background: #b47b16; }
.time-bars rect { fill: #27708d; stroke: #1f5a70; stroke-width: 1; }
.grouped-time-bars .bar-first { fill: #27708d; }.grouped-time-bars .bar-second { fill: #b47b16; }
.flow-list > div { display: grid; grid-template-columns: 82px minmax(80px, 1fr) 82px auto; gap: 8px; align-items: center; }
.flow-list > div > span { padding: 5px 6px; border: 1px solid #c9ceca; font-size: 11px; text-align: center; }
.flow-list i { height: 12px; background: #edf0ed; overflow: hidden; }.flow-list i b { display: block; height: 100%; background: #27708d; }
.flow-list small { grid-column: 2 / 5; color: #626a64; font-size: 10px; }
.rank-bars > div { display: grid; grid-template-columns: 24px minmax(130px, 1.2fr) minmax(100px, 2fr) auto; gap: 9px; align-items: center; }
.rank-bars span { display: grid; }.rank-bars span small { color: #626a64; font-size: 10px; }
.rank-bars i em { display: block; height: 100%; background: #27708d; }
.parameter-matrix { display: grid; grid-template-columns: 84px repeat(10, minmax(68px, 1fr)); gap: 3px; overflow-x: auto; align-items: stretch; }
.parameter-matrix b { min-width: 68px; font-size: 9px; overflow-wrap: anywhere; text-align: center; }
.parameter-matrix strong { font-size: 11px; padding: 10px 4px; }
.parameter-matrix span { min-height: 42px; display: grid; place-items: center; background: color-mix(in srgb, #27708d calc(var(--heat) * 100%), #edf0ed); color: #171717; font-size: 10px; }
.radar-layout { display: grid; grid-template-columns: minmax(260px, 380px) minmax(220px, 1fr); gap: 28px; align-items: center; }
.account-radar polygon { fill: none; stroke: #c8cfca; }.account-radar .radar-shape { fill: rgba(39,112,141,.2); stroke: #27708d; stroke-width: 3; }
.radar-facts { display: grid; }.radar-facts p { display: flex; justify-content: space-between; gap: 20px; padding: 10px 0; margin: 0; border-bottom: 1px solid #dfe3df; }

.page-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.chart-heading h2 { margin-bottom: 5px; }
.chart-heading > p:last-child:not(.eyebrow) { margin: 0 0 16px; color: #626a64; font-size: 12px; }
.origin-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.origin-summary article { min-height: 120px; padding: 18px; display: grid; align-content: space-between; border: 1px solid #d1d4cf; background: #fff; }
.origin-summary span,.origin-summary small { color: #626a64; font-size: 12px; }.origin-summary strong { font-size: 26px; }
.email-breakdown { display: grid; gap: 12px; }
.email-breakdown article { padding: 18px; display: grid; grid-template-columns: minmax(190px,.8fr) minmax(0,2fr); gap: 24px; border: 1px solid #d1d4cf; background: #fff; }
.email-breakdown article > div { display: grid; gap: 5px; align-content: start; }.email-breakdown small { color: #626a64; }
.email-breakdown dl { margin: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.email-breakdown dl div { padding-left: 12px; border-left: 2px solid #cbd1cc; }.email-breakdown dt { color: #626a64; font-size: 11px; }.email-breakdown dd { margin: 5px 0 0; font-weight: 750; }

.area-line-chart polygon { fill: rgba(39,112,141,.14); stroke: none; }.area-line-chart polyline { stroke: #27708d !important; }.area-line-chart circle { stroke: #27708d !important; }
.compact-comparison { padding-bottom: 16px; }
.month-comparison { display: grid; grid-template-columns: repeat(auto-fit,minmax(230px,1fr)); gap: 12px; }
.month-comparison article { min-height: 142px; padding: 18px; display: grid; grid-template-columns: 1fr auto; gap: 6px 18px; align-items: end; border: 1px solid #d6dbd7; background: #fafbfa; }
.month-comparison article div { display: grid; gap: 3px; }.month-comparison article small,.month-comparison article span { color: #626a64; font-size: 11px; }
.month-comparison article > b { font-size: 28px; }.month-comparison article > i { grid-column: 1 / -1; height: 8px; overflow: hidden; background: #e1e6e2; }.month-comparison article > i em { display: block; height: 100%; background: #27708d; }
.origin-months { display: grid; gap: 10px; }
.origin-months article { padding: 14px 0; display: grid; grid-template-columns: 76px 1fr; gap: 14px; align-items: center; border-bottom: 1px solid #dfe3df; }
.origin-months article:last-child { border-bottom: 0; }.origin-months dl { margin: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.origin-months dl div { padding-left: 10px; border-left: 2px solid #d4d9d5; }.origin-months dt { color: #626a64; font-size: 10px; }.origin-months dd { margin: 3px 0 0; font-size: 15px; font-weight: 750; }
.linkage-months article { grid-template-areas: "month bar" ". statistics"; grid-template-columns: 76px minmax(0,1fr); align-items: center; }
.linkage-months article > strong { grid-area: month; }
.linkage-months article > .nonhuman-share { grid-area: bar; width: 100%; }
.linkage-months article > dl { grid-area: statistics; grid-template-columns: repeat(3,minmax(96px,1fr)); width: 100%; }
.source-composition { display: grid; gap: 14px; }
.source-composition > div { display: grid; grid-template-columns: 65px minmax(100px,1fr) auto; gap: 10px; align-items: center; }
.source-composition > div > span { height: 24px; display: flex; overflow: hidden; border: 1px solid #aab1ab; }
.source-composition i { display: block; height: 100%; min-width: 0; }.source-composition .source-direct { background: #28745f; }.source-composition .source-prompted { background: #b47b16; }
.source-composition small { color: #626a64; font-size: 11px; }
.email-funnels { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; }
.email-funnels article { min-width: 0; padding: 18px; border: 1px solid #d8dcd8; }.email-funnels h3 { margin: 0 0 14px; text-transform: capitalize; }
.funnel-steps { display: grid; justify-items: center; gap: 5px; }
.funnel-steps > div { width: var(--funnel-width,100%); min-height: 58px; padding: 9px 12px; display: grid; place-items: center; align-content: center; clip-path: polygon(7% 0,93% 0,100% 100%,0 100%); background: #dce9e2; border: 1px solid #94a69c; text-align: center; }
.funnel-steps > div:nth-child(2) { background: #dce5ec; }.funnel-steps > div:nth-child(3) { background: #e8dfcc; }
.funnel-steps span,.email-funnels p { color: #626a64; font-size: 11px; }.email-funnels p { margin-bottom: 0; }
.email-conversions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.email-conversions article { padding: 18px; display: grid; gap: 16px; border: 1px solid #d4d9d5; background: #fafbfa; }
.email-conversion-heading { display: flex; justify-content: space-between; align-items: start; gap: 16px; }.email-conversion-heading h3 { margin: 0 0 3px; text-transform: capitalize; }.email-conversion-heading span,.email-conversions p { color: #626a64; font-size: 11px; }.email-conversion-heading > strong { font-size: 25px; }
.conversion-row { display: grid; grid-template-columns: minmax(105px,.7fr) minmax(100px,1fr) auto; gap: 12px; align-items: center; font-size: 12px; }.conversion-row > i { height: 10px; overflow: hidden; background: #e0e5e1; }.conversion-row > i b { display: block; height: 100%; background: #28745f; }.conversion-row > strong { white-space: nowrap; }
.stable-pattern > div:not(.chart-heading) { min-height: 150px; display: grid; place-items: center; align-content: center; text-align: center; }.stable-pattern > div > strong { font-size: 34px; }.stable-pattern > div > span { color: #626a64; }.stable-pattern > div > p { max-width: 560px; margin: 16px auto 0; }
.response-summary > div:not(.chart-heading) { display: grid; grid-template-columns: 1fr minmax(70px,160px) 1fr; gap: 18px; align-items: center; }.response-summary article { padding: 18px; display: grid; gap: 5px; border: 1px solid #d6dbd7; background: #fafbfa; }.response-summary article span,.response-summary article small { color: #626a64; }.response-summary article strong { font-size: 28px; }.response-summary > div > i { height: 2px; position: relative; background: #aeb6b0; }.response-summary > div > i::before,.response-summary > div > i::after { content: ""; position: absolute; top: -5px; width: 12px; height: 12px; border-radius: 50%; background: #27708d; }.response-summary > div > i::before { left: 0; }.response-summary > div > i::after { right: 0; background: #b47b16; }
.email-journey{display:grid;gap:16px}.email-journey article{padding:16px;border:1px solid var(--line);background:var(--surface)}.email-journey header{display:flex;justify-content:space-between;gap:16px;margin-bottom:18px}.email-journey header span{color:var(--muted)}.journey-track{display:grid;grid-template-columns:auto 1fr auto 1fr auto;align-items:center;gap:10px}.journey-track>i{height:2px;background:var(--line)}.journey-node{display:grid;gap:3px;text-align:center}.journey-node::before{content:"";width:13px;height:13px;border-radius:50%;margin:0 auto 6px;background:#555}.journey-node.opened::before{background:#27708d}.journey-node.acted::before{background:#b47b16}.journey-node small{color:var(--muted)}.email-journey dl{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0 0}.email-journey dl div{padding:10px;background:var(--surface-quiet)}.email-journey dt{font-size:.75rem;color:var(--muted)}.email-journey dd{margin:4px 0 0;font-weight:700}
.dumbbell-chart line:not(:last-of-type) { stroke: #8b928d; stroke-width: 3; }.dumbbell-chart .point-first { fill: #fff; stroke: #27708d; }.dumbbell-chart .point-second { fill: #b47b16; stroke: #8a5d0d; }
.sankey-chart path { fill: none; stroke: var(--flow-color); opacity: .28; }.sankey-chart path:hover { opacity: .75; }
.sankey-chart rect { fill: color-mix(in srgb,var(--class-color) 20%,#fff); stroke: var(--class-color); }.sankey-chart text { fill: #222 !important; font-weight: 650; }
.parameter-bubbles { position: relative; min-height: 360px; overflow: hidden; border: 1px solid #e0e3df; background: #f8f9f8; }
.parameter-bubbles button { position: absolute; left: var(--x); top: var(--y); width: var(--size); height: var(--size); transform: translate(-50%,-50%); padding: 7px; display: grid; place-items: center; align-content: center; overflow: hidden; border: 2px solid #27708d; border-radius: 50%; background: #dce9ef; color: #1d3945; cursor: help; text-align: center; }
.parameter-bubbles button:nth-child(3n+2) { border-color: #28745f; background: #dce9e2; color: #20483a; }.parameter-bubbles button:nth-child(3n) { border-color: #a06d13; background: #eee4ce; color: #5f430f; }
.parameter-bubbles strong { font-size: 10px; line-height: 1.05; }.parameter-bubbles span { font-size: 10px; font-weight: 800; }
.parameter-dots { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px 30px; }.parameter-dots > div { display: grid; grid-template-columns: 22px minmax(125px,1fr) minmax(100px,1.5fr) auto; gap: 10px; align-items: center; }.parameter-dots > div > b { color: #69716b; }.parameter-dots span { display: grid; }.parameter-dots span small { color: #626a64; font-size: 10px; }.parameter-dots i { height: 2px; background: #cbd1cc; }.parameter-dots i em { display: block; height: 100%; position: relative; background: #27708d; }.parameter-dots i em::after { content: ""; position: absolute; right: -5px; top: -4px; width: 10px; height: 10px; border-radius: 50%; background: #27708d; }
.parameter-matrix-wrap,.score-profile-table { overflow-x: auto; }
table.parameter-matrix,.score-profile-table table { width: 100%; min-width: 820px; border-collapse: separate; border-spacing: 3px; }
table.parameter-matrix { display: table; grid-template-columns: none; }
table.parameter-matrix thead { display: table-header-group; } table.parameter-matrix tbody { display: table-row-group; } table.parameter-matrix tr { display: table-row; }
table.parameter-matrix th,.score-profile-table th { padding: 9px 7px; font-size: 11px; text-align: center; }
table.parameter-matrix th { min-width: 88px; line-height: 1.2; overflow-wrap: normal; }
table.parameter-matrix th:first-child,.score-profile-table th:first-child { text-align: left; }
table.parameter-matrix td { min-width: 78px; height: 46px; background: color-mix(in srgb,#27708d calc(var(--heat) * 78%),#edf0ed); color: #152129; font-size: 10px; font-weight: 700; text-align: center; }
.score-profile-table th,.score-profile-table td { border-bottom: 1px solid #dce1dd; }.score-profile-table tbody th { white-space: nowrap; }.score-profile-table tbody th i { width: 9px; height: 9px; margin-right: 7px; display: inline-block; border-radius: 50%; }.score-profile-table td { min-width: 95px; padding: 14px 10px; background: color-mix(in srgb,#28745f calc(var(--score) * 68%),#f1f4f2); text-align: center; font-weight: 750; }
.lollipop-chart line { stroke: #aeb5af !important; }.lollipop-chart circle { fill: #27708d !important; stroke: #fff !important; }.lollipop-chart text { fill: #333 !important; }
.parallel-chart line { stroke: #d2d6d2 !important; }.parallel-chart polyline { fill: none; stroke: var(--class-color) !important; stroke-width: 3; opacity: .7; }.parallel-chart polyline:hover { stroke-width: 5; opacity: 1; }.parallel-chart circle { fill: var(--class-color) !important; stroke: #fff !important; }
.risk-scatter .risk-zone { stroke: none; }.risk-scatter .active-zone { fill: #eef5f1; }.risk-scatter .lost-zone { fill: #f3e8e5; }.risk-scatter .threshold { stroke: #7e3428 !important; stroke-width: 2 !important; stroke-dasharray: 6 4; }.risk-scatter circle { fill: var(--class-color) !important; stroke: #fff !important; stroke-width: 1.5 !important; opacity: .72; }
.risk-scatter circle + text { fill: #fff !important; font-size: 9px; font-weight: 800; pointer-events: none; }

.trend-area { fill: url(#trendFill); stroke: none; }
.trend-line { fill: none; stroke: #23745a; stroke-width: 3; stroke-linecap: round; }
.area-line-chart .last-value { fill: #23745a !important; font-size: 13px !important; font-weight: 800; }

.source-stack-chart .stack-direct { fill: #009e73; opacity: .84; stroke: none; }
.source-stack-chart .stack-prompted { fill: #e69f00; opacity: .9; stroke: none; }
.source-stack-chart .stack-outline { fill: none; stroke: #006747; stroke-width: 2; }
.source-stack-chart circle { fill: #fff; stroke: #006747; stroke-width: 2; }
.source-line-chart path { fill: none; stroke-width: 3; }
.source-line-chart path.source-direct,.source-line-chart circle.source-direct { stroke: #28745f; }
.source-line-chart path.source-prompted,.source-line-chart circle.source-prompted { stroke: #b47b16; }
.source-line-chart path.source-unknown,.source-line-chart circle.source-unknown { stroke: #6a7075; }
.source-line-chart circle { fill: #fff; }
.chart-legend .source-direct { background: #009e73; }
.chart-legend .source-prompted { background: #e69f00; }

.chord-chart .chord-ribbon { fill: var(--flow-color); opacity: .48; stroke: #fff; stroke-width: .6; transition: opacity .15s; }
.chord-chart .chord-ribbon:hover { opacity: .88; }
.chord-chart:hover .chord-ribbon:not(:hover) { opacity: .16; }
.chord-chart .chord-arc { fill: none; stroke: var(--class-color); stroke-width: 15; stroke-linecap: butt; }
.chord-chart .chord-label { fill: #313632 !important; font-size: 13px !important; font-weight: 800; text-transform: capitalize; }
.chord-plot { position: relative; max-width: 900px; margin: 0 auto; }
.chord-ribbon,.chord-arc { cursor: pointer; outline: none; }
.chord-ribbon.is-active,.chord-ribbon.is-pinned { opacity: .92 !important; stroke: #202522; stroke-width: 1.4; }
.chord-ribbon.is-dimmed,.chord-arc.is-dimmed { opacity: .07 !important; }
.chord-arc.is-active { stroke-width: 20; }
.chord-destination { fill: var(--destination-color); stroke: #fff !important; stroke-width: 1.5 !important; pointer-events: none; }
.chord-tooltip { min-height: 58px; margin: -8px auto 10px; padding: 11px 14px; display: grid; gap: 3px; border-left: 4px solid #28745f; background: #f6f8f6; }
.chord-tooltip span { color: #626a64; font-size: 12px; }
.chord-layout { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(260px, .8fr); gap: 24px; align-items: center; }
.chord-total { fill: #202522 !important; font-size: 25px !important; font-weight: 800; }
.chord-total-label { fill: #626a64 !important; font-size: 10px !important; text-transform: uppercase; }
.flow-ranking { display: grid; gap: 9px; }
.flow-ranking h3 { margin: 0 0 6px; font-size: 15px; }
.flow-ranking article { padding: 11px 0; display: grid; grid-template-columns: 22px 1fr auto; gap: 10px; align-items: center; border-bottom: 1px solid #dce1dd; }
.flow-ranking article > b { color: #737b75; }
.flow-ranking article div { display: grid; gap: 2px; }
.flow-ranking article small { color: #626a64; font-size: 10px; }
.flow-ranking article > span { font-weight: 800; }

.clock-chart .clock-ring { fill: none; stroke: #e3e7e3; stroke-width: 1; }
.clock-chart { width: min(100%, 520px) !important; margin: 0 auto; display: block; }
.clock-chart .clock-sector { fill: #27708d; opacity: .75; stroke: #fff; stroke-width: 1; transition: opacity .15s; }
.clock-chart .clock-sector:hover { opacity: 1; }
.clock-chart .clock-sector.is-peak { fill: #b47b16; opacity: .95; }
.clock-chart .clock-hour { fill: #626a64 !important; font-size: 11px !important; font-weight: 700; }
.clock-chart .clock-center-value { fill: #313632 !important; font-size: 19px !important; font-weight: 800; }
.clock-chart .clock-center-label { fill: #626a64 !important; font-size: 10px !important; letter-spacing: .08em; text-transform: uppercase; }

.calendar-scroll { max-width: 100%; padding: 8px 0 4px; overflow-x: auto; }
.calendar-heatmap { max-width: none; margin: 0 auto; display: block; }
.calendar-heatmap rect { fill: color-mix(in srgb, #26745d calc(var(--heat) * 100%), #eef1ee); stroke: rgba(24, 34, 29, .06); }
.calendar-heatmap rect:hover { stroke: #26745d; stroke-width: 1.4; }
.calendar-heatmap text { fill: #626a64; font-size: 10px; }
.calendar-legend { align-items: center; }
.calendar-legend i { width: 13px; height: 13px; border-radius: 3px; background: color-mix(in srgb, #26745d calc(var(--heat) * 100%), #eef1ee); border: 1px solid rgba(24, 34, 29, .08); }
.calendar-volume-legend { margin-top: 10px; display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; color: #626a64; font-size: 11px; }
.calendar-volume-legend span { display: flex; align-items: center; gap: 5px; }
.calendar-volume-legend i { width: 14px; height: 14px; display: inline-block; background: color-mix(in srgb,#26745d calc(var(--heat) * 100%),#eef1ee); border: 1px solid #d3d8d4; }
.calendar-reading-guide { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 14px 0 2px; padding: 10px 12px; border-left: 3px solid #26745d; background: #f3f6f3; color: #626a64; font-size: 11px; }
.calendar-reading-guide span { display: flex; gap: 5px; }
.calendar-reading-guide b { color: #313632; }
.calendar-summary { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 8px; }
.calendar-summary article { min-height: 70px; padding: 11px; display: grid; align-content: space-between; border: 1px solid #dce1dd; background: #fafbfa; }
.calendar-summary span { color: #626a64; font-size: 10px; }
.calendar-summary strong { font-size: 14px; }

.parameter-bar-chart rect { fill: #27708d; stroke: #1f5a70; stroke-width: 1; }
.parameter-bar-chart .bar-value { fill: #ffffff !important; font-weight: 800; }
.parameter-bar-chart .bar-accounts { fill: #626a64 !important; font-size: 10px !important; }

.deviation-density { display: grid; grid-template-columns: 86px repeat(var(--band-count),minmax(62px,1fr)); gap: 4px; align-items: stretch; overflow-x: auto; }
.deviation-density > b,.deviation-density > strong { padding: 7px 4px; font-size: 10px; text-align: center; }
.deviation-density > strong { display: grid; place-items: center; text-align: right; }
.deviation-density > span { min-width: 62px; min-height: 54px; display: grid; place-items: center; background: color-mix(in srgb,#27708d calc(var(--heat) * 78%),#edf0ed); border: 1px solid #d5dad6; }
.deviation-density em { font-size: 10px; font-style: normal; font-weight: 750; }
.density-corner { padding: 7px 4px; color: #626a64; font-size: 10px; font-weight: 700; }
.deviation-ridgeline .density-grid { stroke: #e1e5e1 !important; }
.deviation-density-area { fill: #d6e8e1; stroke: none; }
.deviation-density-line { fill: none; stroke: #247058; stroke-width: 2.6; }
.deviation-median { stroke: #a76e0c !important; stroke-width: 2.4 !important; }
.deviation-observation { fill: #fff !important; stroke: #247058 !important; stroke-width: 1.5 !important; opacity: 0; transition: opacity .15s; }
.deviation-ridgeline g:hover .deviation-observation { opacity: 1; }
.deviation-ridgeline .density-week { fill: #313632 !important; font-size: 10px !important; font-weight: 750; }
.deviation-ridgeline .density-sample { fill: #707771 !important; font-size: 9px !important; }
.deviation-ridgeline .density-median-label { fill: #7b5108 !important; font-size: 8px !important; font-weight: 750; }
.density-line-key { height: 3px !important; background: #247058 !important; }
.density-median-key { width: 3px !important; height: 13px !important; background: #a76e0c !important; }
.deviation-reading-guide{display:flex;flex-wrap:wrap;gap:8px 18px;margin:14px 0 4px;padding:10px 12px;border-left:3px solid #247058;background:#f3f6f3;color:#626a64;font-size:11px}.deviation-reading-guide span{display:flex;gap:5px}.deviation-reading-guide b{color:#313632}

.violin-chart .violin-grid,.score-dot-plot .profile-grid { stroke: #e1e5e1 !important; }
.violin-shape { fill: color-mix(in srgb,var(--class-color) 31%,#fff); stroke: var(--class-color); stroke-width: 1.8; }
.violin-iqr { stroke: #202522 !important; stroke-width: 5 !important; stroke-linecap: round; }
.violin-median { fill: #fff !important; stroke: #202522 !important; stroke-width: 2.2 !important; }
.violin-bin { fill: var(--class-color) !important; stroke: #fff !important; stroke-width: 1 !important; opacity: 0; }
.violin-chart g:hover .violin-bin { opacity: .75; }
.violin-name { fill: #313632 !important; font-weight: 800; text-transform: capitalize; }
.violin-count { fill: #707771 !important; font-size: 9px !important; }
.violin-density-key { height: 10px !important; background: #b9d7cc !important; border: 1px solid #247058; }
.violin-iqr-key { height: 5px !important; background: #202522 !important; }
.violin-median-key { width: 10px !important; height: 10px !important; border-radius: 50%; background: #fff !important; border: 2px solid #202522; }

.score-dot-plot .profile-track { stroke: #aeb5af !important; stroke-width: 1.5 !important; }
.score-dot-plot .profile-dot { fill: var(--class-color) !important; stroke: #fff !important; stroke-width: 1.5 !important; }
.score-dot-plot .profile-dot:hover { stroke: #202522 !important; stroke-width: 2.5 !important; }
.score-dot-plot .profile-metric { fill: #313632 !important; font-weight: 750; }

.ridge-chart .ridge-grid { stroke: #e0e4e0 !important; }
.ridge-chart .ridge-area { fill: color-mix(in srgb,var(--class-color) 30%,#fff); stroke: none; }
.ridge-chart .ridge-line { fill: none; stroke: var(--class-color); stroke-width: 2.5; }
.ridge-chart .ridge-median { stroke: #202522 !important; stroke-width: 2 !important; }
.ridge-chart .ridge-name { fill: #313632 !important; font-weight: 800; text-transform: capitalize; }
.ridge-chart .ridge-count,.ridge-chart .ridge-median-label { fill: #626a64 !important; font-size: 9px !important; }

.strength-inactivity-grid { display: grid; grid-template-columns: 105px repeat(5,minmax(70px,1fr)); gap: 4px; overflow-x: auto; }
.strength-inactivity-grid > b,.strength-inactivity-grid > strong { padding: 8px 5px; display: grid; place-items: center; font-size: 10px; text-align: center; }
.strength-inactivity-grid > span { min-height: 64px; display: grid; place-items: center; background: color-mix(in srgb,#27708d calc(var(--heat) * 80%),#edf0ed); border: 1px solid #d3d9d4; font-size: 13px; font-weight: 800; }

.box-plot .box-grid { stroke: #e3e7e3 !important; }
.box-plot .box-name { fill: #313632 !important; font-size: 12px !important; font-weight: 700; text-transform: capitalize; }
.box-plot .box-whisker { stroke: #9da49f !important; stroke-width: 1.6 !important; }
.box-plot .box-cap { stroke: #9da49f !important; stroke-width: 1.6 !important; }
.box-plot .box-iqr { fill: color-mix(in srgb, var(--class-color) 34%, #ffffff); stroke: var(--class-color); stroke-width: 1.6; }
.box-plot .box-median { stroke: #313632 !important; stroke-width: 2.4 !important; }
.box-plot .box-dot { fill: var(--class-color) !important; stroke: none !important; opacity: .55; }

.risk-density-chart rect { fill: #27708d; opacity: .78; }.risk-density-chart rect:hover { opacity: 1; }
.risk-density-chart .risk-line { fill: none; stroke: #b44e3a; stroke-width: 2.5; }
.risk-density-chart .risk-point { fill: #b44e3a !important; stroke: #fff !important; stroke-width: 2 !important; }
.chart-legend .legend-bar { width: 12px; height: 12px; border-radius: 2px; background: #27708d; border: 0; }
.chart-legend .legend-risk { background: #b44e3a; }
.class-change-histogram span { background: #b47b16; border-color: #8c5f10; }

@media (max-width: 1000px) {
  .filter-panel {
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  }
  
  .chord-layout { grid-template-columns: 1fr; }
  .calendar-summary { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

@media (max-width: 760px) {
  .topbar {
    padding: 0 20px;
  }

  main {
    width: min(100% - 32px, 1120px);
    padding-top: 32px;
  }

  .page-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .metric-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .calendar-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }

  .admin-nav a:not([aria-current="page"]):not(.contract-link) { display: none; }
  .filter-panel { grid-template-columns: 1fr; }
  .population-columns, .dashboard-kpis { grid-template-columns: 1fr 1fr; }
  .dashboard-grid { grid-template-columns: 1fr; }
  .chart-wide { grid-column: auto; }
  .donut-layout, .radar-layout { grid-template-columns: 1fr; }
  .origin-summary,.email-funnels,.email-conversions { grid-template-columns: 1fr; }.email-breakdown article { grid-template-columns: 1fr; }.email-breakdown dl { grid-template-columns: 1fr; }
  .channel-bars article { grid-template-columns: 1fr auto; }
  .channel-bars article > span { grid-column: 1 / -1; }
  .flow-list > div { grid-template-columns: 70px minmax(55px, 1fr) 70px auto; }
  .rank-bars > div { grid-template-columns: 20px minmax(100px, 1fr) auto; }
  .rank-bars i { grid-column: 2 / 4; }
  .conversion-row { grid-template-columns: 1fr auto; }.conversion-row > i { grid-column: 1 / -1; grid-row: 2; }
  .parameter-dots { grid-template-columns: 1fr; }.response-summary > div:not(.chart-heading) { grid-template-columns: 1fr; }.response-summary > div > i { width: 2px; height: 54px; justify-self: center; }.response-summary > div > i::before { left: -5px; top: 0; }.response-summary > div > i::after { right: auto; left: -5px; top: auto; bottom: 0; }
}

@media (max-width: 430px) {
  .contract-link {
    display: none;
  }

  .metric-grid {
    grid-template-columns: 1fr;
  }

  .population-columns, .dashboard-kpis { grid-template-columns: 1fr; }
  .bar-row { grid-template-columns: 1fr 62px; }
  .bar-row > span { grid-column: 1 / -1; grid-row: 2; }
  .bar-row > b { grid-column: 2; grid-row: 1; }
  .date-fields { grid-template-columns: 1fr; }
  .page-actions { width: 100%; }.page-actions a { flex: 1; text-align: center; }.source-composition > div { grid-template-columns: 55px minmax(80px,1fr); }.source-composition small { grid-column: 2; }.parameter-bubbles { min-height: 420px; }
  .origin-months article { grid-template-columns: 1fr; }.origin-months dl { grid-template-columns: 1fr 1fr; }.origin-months dl div:last-child { grid-column: 1 / -1; }
  .linkage-months article { grid-template-areas: "month" "bar" "statistics"; grid-template-columns: minmax(0,1fr); }
  .linkage-months article > dl { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .linkage-months article > dl div:last-child { grid-column: auto; }
  .parameter-dots > div { grid-template-columns: 20px 1fr auto; }.parameter-dots i { grid-column: 2 / 4; }

  .section-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 6px;
  }
}
/* Stakeholder-first engagement chart variants */
.source-flow{display:grid;gap:18px}.source-flow article{display:grid;grid-template-columns:150px 38px 1fr;align-items:center;gap:14px}.source-total{display:grid;padding:14px;border:1px solid var(--line);background:var(--surface)}.source-total strong{font-size:1.45rem}.source-total small,.source-split small{color:var(--muted)}.source-flow article>i{height:2px;background:var(--line);position:relative}.source-flow article>i:after{content:"";position:absolute;right:-1px;top:-4px;border-left:7px solid var(--line);border-top:5px solid transparent;border-bottom:5px solid transparent}.source-split{display:flex;min-width:0;height:66px}.source-split span{flex:var(--share);min-width:90px;padding:10px 12px;display:grid;align-content:center;border:1px solid #00875f;background:#d9f2e9}.source-split span+span{border-color:#b97f00;background:#fff0c9}.source-split b{font-size:.78rem}.source-split strong{font-size:1.05rem}
.source-flow-three .source-split span{flex:1}.source-flow-three .source-split span:nth-child(3){border-color:#7e8580;background:#eceeec}
.quality-strip{display:flex;min-height:72px;border:1px solid var(--line);overflow:hidden}.quality-band{flex:var(--share);min-width:2px;display:grid;place-items:center;border-right:1px solid rgba(255,255,255,.7)}.quality-band b{font-size:.8rem}.quality-0,.quality-0+i{background:#c75d32}.quality-1,.quality-1+i{background:#e69f00}.quality-2,.quality-2+i{background:#56b4e9}.quality-3,.quality-3+i{background:#009e73}.quality-4,.quality-4+i{background:#006747}.quality-axis{display:flex;justify-content:space-between;color:var(--muted);font-size:.75rem;margin-top:7px}.quality-legend{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:18px}.quality-legend span{display:grid;grid-template-columns:12px auto;column-gap:7px;align-items:center}.quality-legend i{width:12px;height:12px;grid-row:1/3}.quality-legend small{color:var(--muted)}
.participation-chart line,.participation-chart polyline,.pareto-chart line,.class-pulse-chart line,.interval-chart line{stroke:var(--line);fill:none}.participation-active{fill:#28745f}.participation-inactive{fill:#d9d9d5}.participation-frequency{stroke:#9b572e!important;stroke-width:3}.participation-frequency-point{fill:#fff;stroke:#9b572e;stroke-width:3}.participation-label,.participation-inactive-label,.participation-frequency-label{font-size:10px;font-weight:700}.participation-inactive-label{fill:#4f5551}.participation-frequency-label{fill:#7f421f}.participation-active-key{background:#28745f!important}.participation-inactive-key{background:#d9d9d5!important}.participation-frequency-key{background:#9b572e!important;border-radius:50%}
.participation-rows{display:grid;gap:16px}.participation-rows article{display:grid;grid-template-columns:130px minmax(260px,1fr) 230px;gap:16px;align-items:center}.participation-rows header{display:grid;gap:3px}.participation-rows header span{font-size:.78rem;color:var(--muted)}.participation-track{display:flex;height:42px;border:1px solid var(--line);overflow:hidden}.participation-track span{display:flex;align-items:center;justify-content:center;gap:5px;min-width:0;overflow:hidden;white-space:nowrap;font-size:.78rem}.participation-track .active{background:#28745f;color:#fff}.participation-track .inactive{background:#e5e6e3;color:#414743}.participation-rows dl{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}.participation-rows dl div{padding-left:10px;border-left:2px solid var(--line)}.participation-rows dt{font-size:.7rem;color:var(--muted)}.participation-rows dd{margin:3px 0 0;font-weight:700}
.pareto-chart rect{fill:#377f90}.pareto-line{stroke:#9b572e!important;stroke-width:3;fill:none}.pareto-point{fill:#fff;stroke:#9b572e;stroke-width:3}.pareto-label{font-size:10px}.pareto-chart .bar-value{font-size:10px;font-weight:700}
.chart-scroll{max-width:100%;overflow-x:auto}.parameter-rank-chart line{stroke:var(--line)}.parameter-rank-chart rect{fill:#377f90}.parameter-rank-chart .parameter-name{font-size:10px;font-weight:700}.parameter-rank-chart .parameter-value{font-size:10px;font-weight:700;fill:var(--ink)}.parameter-rank-chart .parameter-cumulative{font-size:9px;fill:var(--muted)}
.class-field-small-multiples{display:grid;gap:12px}.class-field-small-multiples article{display:grid;grid-template-columns:90px 1fr 165px;gap:12px;align-items:center}.class-field-small-multiples article>div{display:flex;height:30px;border:1px solid var(--line);overflow:hidden}.field-segment{flex:var(--share);min-width:0}.field-0{background:#236f5b}.field-1{background:#3f8795}.field-2{background:#6d7fa5}.field-3{background:#9a6e88}.field-4{background:#be7655}.field-5{background:#c49a45}.field-6{background:#769354}.field-7{background:#567b73}.field-8{background:#8a8375}.field-9{background:#555}.class-field-small-multiples small{color:var(--muted)}.field-mix-legend{display:flex;flex-wrap:wrap;gap:9px 16px;margin-top:18px}.field-mix-legend span{display:flex;align-items:center;gap:6px;font-size:.76rem}.field-mix-legend i{width:11px;height:11px}
.domain-field-panels{display:grid;gap:22px;min-width:0;max-width:100%}.domain-field-panel{min-width:0;max-width:100%}.domain-field-panel h3{margin:0 0 10px}.domain-field-grid{display:grid;width:100%;max-width:100%;grid-template-columns:90px repeat(var(--field-count),minmax(74px,1fr));gap:3px;overflow-x:auto}.domain-field-grid>b{font-size:.68rem;line-height:1.15;min-height:36px;display:flex;align-items:end}.domain-field-grid>strong{align-self:center;font-size:.78rem}.domain-field-grid>strong small{display:block;font-size:.58rem;color:var(--muted);font-weight:400}.domain-field-cell{height:38px;background:color-mix(in srgb,#27708d calc(18% + 72% * var(--intensity)),#f2f4f2);display:flex;align-items:center;justify-content:center;border:1px solid color-mix(in srgb,#27708d 28%,var(--line))}.domain-field-cell i{font-style:normal;font-size:.67rem;font-weight:700;color:#182b31}.domain-field-cell.no-period-data{background:repeating-linear-gradient(135deg,#f3f4f2,#f3f4f2 6px,#e5e7e4 6px,#e5e7e4 12px)}.domain-field-cell.no-period-data i{color:var(--muted)}
.interval-grid{stroke:var(--line)!important}.interval-threshold{stroke:#9b572e!important;stroke-width:2;stroke-dasharray:5 5}.interval-iqr{stroke:var(--class-color)!important;stroke-width:12;stroke-linecap:round}.interval-median{fill:#fff;stroke:var(--class-color);stroke-width:4}.interval-name,.interval-value{font-weight:700}.interval-count{fill:var(--muted);font-size:10px}.interval-range-key{background:#497e70!important;width:22px!important;height:5px!important}.interval-dot-key{background:#fff!important;border:3px solid #497e70;border-radius:50%}.interval-threshold-key{background:transparent!important;border-left:2px dashed #9b572e}
.interval-threshold-label{fill:#7f421f;font-size:9px;font-weight:700}.interval-action{fill:var(--ink);font-size:10px;font-weight:700}
.qualification-band{fill:color-mix(in srgb,var(--class-color) 12%,transparent)}.qualification-threshold{stroke:#202523!important;stroke-width:2;stroke-dasharray:5 4}.qualification-result{font-size:11px;font-weight:800;fill:var(--ink)}.qualification-delta{font-size:9px;fill:var(--muted)}
.nonhuman-rank-chart line,.omission-rank-chart line{stroke:var(--line);stroke-width:1}.nonhuman-rank-chart .class-marker{fill:var(--class-color);stroke:#fff;stroke-width:1.5}.nonhuman-rank-chart .account-label{font-size:10px;font-weight:700;fill:var(--ink)}.nonhuman-track,.omission-track{fill:#eceeeb}.animal-segment{fill:#0072b2}.environment-segment{fill:#e69f00}.people-segment{fill:#c8ccc8}.rank-value,.omission-value{font-size:10px;font-weight:800;fill:var(--ink)}.rank-volume,.omission-count,.field-domain{font-size:8.5px;fill:var(--muted)}.animal-key{background:#0072b2!important}.environment-key{background:#e69f00!important}.people-key{background:#c8ccc8!important;border:1px solid #909690}.omission-rank-chart .field-label{font-size:10px;font-weight:700;fill:var(--ink)}.omission-bar{fill:var(--domain-color)}
.parameter-domain-panels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.parameter-domain-panels article{padding:14px;border-top:4px solid var(--domain-color);background:var(--surface-quiet)}.parameter-domain-panels h3{margin:0 0 14px}.domain-rank-row{display:grid;grid-template-columns:minmax(110px,1fr) minmax(80px,1.2fr) auto;gap:4px 9px;align-items:center;margin:9px 0}.domain-rank-row span{font-size:.73rem;overflow-wrap:anywhere}.domain-rank-row>i{height:10px;background:#e2e5e2}.domain-rank-row>i b{display:block;height:100%;background:var(--domain-color)}.domain-rank-row strong{font-size:.75rem}.domain-rank-row small{grid-column:2/4;color:var(--muted);font-size:.65rem}
.score-unavailable{background:repeating-linear-gradient(135deg,#f0f1ef,#f0f1ef 6px,#e2e4e1 6px,#e2e4e1 12px)!important;color:var(--muted)!important}.inactivity-clock{display:grid;gap:18px}.inactivity-scale{position:relative;height:50px;margin-left:145px;border-bottom:2px solid var(--line)}.inactivity-scale>span,.inactivity-scale>i{position:absolute;bottom:7px;font-size:.7rem;font-style:normal}.inactivity-scale>span{left:0}.inactivity-scale>.risk-boundary{left:23.5%;color:#9b572e}.inactivity-scale>.lost-boundary{left:94%;transform:translateX(-100%);color:#8a3e3e}.inactivity-clock article{display:grid;grid-template-columns:130px 1fr 360px;gap:15px;align-items:center}.inactivity-clock header{display:grid}.inactivity-clock header span{font-size:.72rem;color:var(--muted)}.inactivity-track{position:relative;height:12px;background:linear-gradient(to right,#dcebe5 0 23.5%,#f3e4c9 23.5% 94%,#ead4d4 94% 100%);border:1px solid var(--line)}.inactivity-track>i{position:absolute;top:50%;width:14px;height:14px;border-radius:50%;background:#fff;border:4px solid var(--class-color);transform:translate(-50%,-50%)}.inactivity-clock dl{display:grid;grid-template-columns:95px 92px 1fr;gap:8px;margin:0}.inactivity-clock dl div{border-left:2px solid var(--line);padding-left:8px}.inactivity-clock dt{font-size:.65rem;color:var(--muted)}.inactivity-clock dd{margin:3px 0 0;font-size:.74rem;font-weight:700}.inactivity-clock dd.risk{color:#9b572e}.inactivity-clock dd.lost{color:#8a3e3e}.inactivity-clock dd.active{color:#28745f}
.score-heatmap{display:grid;grid-template-columns:120px repeat(5,minmax(78px,1fr));gap:5px;align-items:stretch}.score-heatmap>strong{font-size:.75rem;text-align:center;padding:8px 4px}.score-heatmap>b{display:grid;align-content:center}.score-heatmap>b small{font-weight:400;color:var(--muted)}.score-heatmap>span{display:grid;place-items:center;min-height:54px;background:color-mix(in srgb,#216f5b calc(var(--heat)*100%),#edf0ed);color:color-mix(in srgb,#fff calc(var(--heat)*100%),#202523);font-weight:750;border:1px solid var(--line)}
.pulse-stem{stroke:#397c6b!important;stroke-width:4}.pulse-dot{fill:#fff;stroke:#397c6b;stroke-width:4}.pulse-value{font-weight:700}.class-pulse-chart>line:not(.pulse-stem){stroke:var(--line)}
.domain-field-cell i{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.45)}.domain-field-cell.no-period-data i{color:var(--muted);text-shadow:none}
.nonhuman-summary{display:grid;gap:20px}.nonhuman-share{height:72px;display:flex;overflow:hidden;border:1px solid var(--line);background:#eceeeb}.nonhuman-share>span{min-width:0;display:flex;flex-direction:column;justify-content:center;padding:10px 16px}.nonhuman-share b{font-size:1.3rem}.nonhuman-share small{font-size:.75rem}.nonhuman-breakdown{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.nonhuman-breakdown article{display:grid;grid-template-columns:12px 1fr auto;gap:4px 8px;align-items:center;border-top:1px solid var(--line);padding-top:12px}.nonhuman-breakdown article i{width:10px;height:10px}.nonhuman-breakdown article span{font-weight:700}.nonhuman-breakdown article small{grid-column:2/4;color:var(--muted)}.animal-focus{background:#009e73}.environment-focus{background:#e69f00}.balanced-focus{background:#7b61a8}.people-focus{background:#c8ccc8}
.nonhuman-headline{display:flex;align-items:baseline;gap:10px}.nonhuman-headline strong{font-size:1.45rem}.nonhuman-headline span{color:var(--muted);font-size:.8rem}.nonhuman-share{height:28px}.nonhuman-share>span{padding:0}

@media(max-width:720px){html,body{max-width:100%;overflow-x:hidden}.source-flow article{grid-template-columns:1fr}.source-flow article>i{display:none}.source-split{height:auto}.class-field-small-multiples article{grid-template-columns:78px 1fr}.class-field-small-multiples article>small{grid-column:2}.score-heatmap{grid-template-columns:88px repeat(5,minmax(64px,1fr));overflow-x:auto}.quality-legend{display:grid;grid-template-columns:1fr 1fr}}
@media(max-width:720px){.participation-rows article{grid-template-columns:1fr}.participation-rows dl{grid-template-columns:1fr 1fr}.email-journey dl{grid-template-columns:1fr}.journey-node b{font-size:.72rem}.journey-node small{font-size:.68rem}}
@media(max-width:720px){.inactivity-scale{margin-left:0}.inactivity-clock article{grid-template-columns:1fr}.inactivity-clock dl{grid-template-columns:1fr}.parameter-rank-chart,.combination-chart,.nonhuman-rank-chart,.omission-rank-chart{min-width:760px}.chart-panel:has(.parameter-rank-chart),.chart-panel:has(.combination-chart),.chart-panel:has(.nonhuman-rank-chart),.chart-panel:has(.omission-rank-chart){overflow:hidden}.chart-scroll{overflow-x:auto}}
@media(max-width:900px){.parameter-domain-panels{grid-template-columns:1fr}}
@media(max-width:720px){.nonhuman-breakdown{grid-template-columns:1fr}.nonhuman-headline{display:grid;gap:2px}.nonhuman-share{height:28px;min-height:28px}.nonhuman-share>span{padding:0}}

.health-shell{max-width:1240px;margin:auto;padding:36px 24px 80px}.health-hero{display:grid;grid-template-columns:1fr minmax(260px,360px);gap:24px;align-items:end;margin-bottom:24px}.health-hero h1{font-size:clamp(2rem,5vw,4rem);margin:.15em 0}.health-hero>p{grid-column:1;max-width:720px;color:var(--muted)}.tenant-scope{grid-column:2;grid-row:1/4;display:grid;gap:7px;padding:18px;border-left:4px solid var(--green);background:#e4f0ec}.tenant-scope code{overflow-wrap:anywhere}.tenant-scope small{color:var(--muted)}
.health-filters{padding:20px;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);margin-bottom:18px}.filter-heading{display:flex;justify-content:space-between;align-items:end}.filter-heading h2{margin:4px 0 14px}.filter-grid{display:grid;grid-template-columns:repeat(5,minmax(145px,1fr));gap:12px}.filter-grid label{display:grid;gap:6px;font-size:.75rem;font-weight:700}.filter-grid input,.filter-grid select{min-width:0;height:42px;border:1px solid #9aa5a0;background:#fff;padding:0 10px}.filter-actions{display:flex;justify-content:end;gap:8px;margin-top:14px}.health-index{position:sticky;top:0;z-index:4;display:flex;gap:8px;flex-wrap:wrap;padding:10px;background:#111714}.health-index a{color:#fff;padding:8px 12px;text-decoration:none}.health-index a:hover,.health-index a:focus-visible{background:#dceee8;color:#12231d}.health-result{padding:12px 0;color:var(--muted)}
.health-section{scroll-margin-top:72px;padding:30px 0;border-top:1px solid var(--line)}.health-section>h2{font-size:2rem}.health-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px}.health-kpis article,.health-card{background:#fff;border:1px solid var(--line);padding:20px;box-shadow:var(--shadow)}.health-kpis article{border-top:4px solid var(--green);display:grid;gap:10px}.health-kpis strong{font-size:2rem}.health-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.health-card h3{margin-top:0}.health-bars{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:10px}.health-bars li{display:grid;grid-template-columns:minmax(125px,1fr) minmax(80px,2fr) auto;gap:10px;align-items:center}.health-bars i{height:12px;background:#e5ebe8}.health-bars i::before{content:"";display:block;width:var(--bar);height:100%;background:#19745e}.health-bars strong{font-variant-numeric:tabular-nums}.health-lifecycle{display:grid;gap:10px}.health-lifecycle div{display:grid;grid-template-columns:7rem repeat(3,1fr);gap:8px;padding:8px 0;border-bottom:1px solid var(--line)}.health-lifecycle span{color:var(--muted)}
@media(max-width:900px){.health-hero{grid-template-columns:1fr}.tenant-scope{grid-column:1;grid-row:auto}.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.health-grid{grid-template-columns:1fr}}
@media(max-width:520px){.health-shell{padding:24px 14px 60px}.filter-grid,.health-kpis{grid-template-columns:1fr}.filter-actions{justify-content:stretch}.filter-actions button{flex:1}.health-bars li{grid-template-columns:110px 1fr auto}.health-lifecycle div{grid-template-columns:1fr 1fr}}

/* Phase 4 uses the approved review-gallery layout; data still comes from the live API. */
.phase4-shell{max-width:1380px;margin:auto;padding-bottom:60px}.phase4-hero{padding:64px 28px 34px;display:flex;justify-content:space-between;gap:40px;align-items:end}.phase4-hero h1{font-size:clamp(34px,5vw,62px);line-height:1.02;letter-spacing:-.045em;margin:0}.phase4-hero .lede{max-width:760px;color:var(--muted);font-size:18px}.phase4-nav{display:flex;gap:22px;padding:0 28px;background:#131715}.phase4-nav a{padding:14px 0;color:#ccd1ce;text-decoration:none;font-size:13px}.phase4-nav a:hover,.phase4-nav a:focus-visible{color:#fff}.dashboard-section{padding:36px 28px 22px;border-top:1px solid var(--line)}.dashboard-section>header{display:flex;gap:18px;align-items:flex-start;margin-bottom:22px}.section-no{font:800 12px/1 monospace;color:var(--green);border:1px solid var(--green);padding:7px;margin:3px 0 0}.dashboard-section h2{font-size:28px;letter-spacing:-.025em;margin:0}.dashboard-section header p:last-child{color:var(--muted);margin:4px 0 0}.kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}.kpi{--tone:var(--green);background:#fff;border-top:5px solid var(--tone);box-shadow:var(--shadow);padding:18px;min-height:132px}.kpi.green{--tone:var(--green)}.kpi.blue{--tone:#36769a}.kpi.purple{--tone:#7a6aa2}.kpi small{display:block;color:var(--muted);min-height:34px;font-weight:700}.kpi strong{display:block;font-size:32px;letter-spacing:-.04em;margin:8px 0 2px}.kpi em{font-style:normal;color:var(--tone);font-size:12px;font-weight:700}.chart-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px}.card{grid-column:span 4;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);padding:20px;min-height:260px;display:flex;flex-direction:column}.card.wide{grid-column:span 8}.card.full{grid-column:span 12}.card h3{font-size:18px;line-height:1.2;margin:0}.card p{color:var(--muted)}.health-bars{list-style:none;padding:0;margin:auto 0;display:grid;gap:10px;width:100%}.health-bars li{display:grid;grid-template-columns:minmax(125px,1fr) minmax(80px,2fr) auto;gap:10px;align-items:center}.health-bars i{height:12px;background:#e5ebe8}.health-bars i::before{content:"";display:block;width:var(--bar);height:100%;background:#207a64}.health-lifecycle{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;align-content:center}.health-lifecycle div{display:grid;gap:8px;border-left:1px solid var(--line);padding-left:9px}.health-lifecycle span{font-size:11px;color:var(--muted)}
@media(max-width:900px){.phase4-hero{align-items:start;flex-direction:column}.chart-grid .card,.chart-grid .card.wide{grid-column:span 6}.health-lifecycle{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){.phase4-hero,.dashboard-section{padding-left:16px;padding-right:16px}.phase4-nav{overflow-x:auto;padding:0 16px}.chart-grid .card,.chart-grid .card.wide,.chart-grid .card.full{grid-column:span 12}.kpi-grid{grid-template-columns:1fr}.health-lifecycle{grid-template-columns:repeat(2,minmax(0,1fr))}}
.card>header{display:flex;gap:12px;justify-content:space-between;align-items:start}.card>header p{margin:4px 0 0;font-size:12px}.health-status{flex:0 0 auto;padding:5px 8px;border-radius:99px;background:#dceee8;color:#126149;font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.chart{min-height:0;display:flex;flex:1;align-items:center}.health-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%}.health-choices article{padding:16px;background:#eef3f1;display:grid;gap:4px}.health-choices strong{font-size:26px}.health-choices em{font-style:normal;color:var(--muted)}.health-coverage{width:100%}.cover-strip{height:48px;display:flex;overflow:hidden;margin-bottom:16px}.cover-strip span{display:grid;place-items:center;color:#fff;font-size:12px;font-weight:800}.cover-strip .b0,.health-coverage .b0{background:#207a64}.cover-strip .b1,.health-coverage .b1{background:#6aa594}.cover-strip .b2,.health-coverage .b2{background:#d88c1d}.cover-strip .b3,.health-coverage .b3{background:#98a39e}.health-coverage article{display:grid;grid-template-columns:12px 1fr;gap:8px;margin:9px 0}.health-coverage article>i{width:12px;height:12px;grid-row:1/3}.health-coverage small{color:var(--muted)}.trend{width:100%;display:block}.trend line{stroke:#dce4e0}.trend polyline{fill:none;stroke:#207a64;stroke-width:3}.trend circle{fill:#fff;stroke:#207a64;stroke-width:3;cursor:help}.trend text{fill:#5f6863;font-size:10px}.caption{margin:10px 0 0;font-size:12px}.empty-result{align-self:center}.health-tooltip{position:fixed;z-index:20;max-width:260px;padding:8px 10px;pointer-events:none;opacity:0;transform:translate(-50%,-100%);background:#14201b;color:#fff;box-shadow:0 8px 24px rgba(0,0,0,.22);font-size:12px;transition:opacity .12s}.health-tooltip.show{opacity:1}
