/* ========== HAP 340B DASHBOARD — Design Mark X ========== */
/* Visual discipline: simplicity, restraint, clarity (internal design bar; not user-facing copy). */
/* Edit state-data.js to update dates and state law data. See DATA-UPDATE.md */
/* Scroll perf (multi-pass): passive+rAF nav, cached anchors, scroll (not fixed) bg paint, batched IO; scrollbar-gutter reduces layout shift. */

html {
  scroll-behavior: smooth;
  scrollbar-gutter: stable;
  -webkit-text-size-adjust: 100%;
}
html.dmx-perf .policy-timeline-card,
html.dmx-perf .timeline-item {
  transform: translate3d(0, 0, 0);
}

:root {
 --hap-sidebar-w: 210px;
 --hap-blue: #003087;
 --hap-blue-mid: #0057a8;
 --hap-blue-light: #e8eef7;
 --hap-blue-ultra: #f0f4fc;
 --hap-gold: #c8922a;
 --hap-gold-light: #fdf6e8;
 --hap-green: #1a7a3c;
 --hap-green-light: #edf7f1;
 --hap-red: #c0392b;
 --hap-red-light: #fdf0ee;
 --hap-purple: #5b21b6;
 --hap-purple-light: #f5f0ff;
 --hap-gray-dark: #1a1a2e;
 --hap-gray-mid: #4a4a6a;
 --hap-gray-light: #f5f6fa;
 --hap-border: #d0d8e8;
 --hap-border-light: #e8eef7;
 --font-serif: Georgia, "Times New Roman", serif;
 --font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
 --card-pad: 24px;
 --card-pad-sm: 16px;
 --card-radius: 8px;
 --card-radius-sm: 6px;
 --card-border: 1px solid var(--hap-border);
 --card-shadow: 0 2px 8px rgba(0, 48, 135, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
 --card-shadow-hover: 0 8px 28px rgba(0, 48, 135, 0.13), 0 3px 8px rgba(0, 0, 0, 0.07);
 --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
 --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
 --transition-card: box-shadow 0.22s var(--ease-out), transform 0.18s var(--ease-out);
 /* Brand — unified with hap-design-tokens.css (--hap-brand-primary) */
 --primary: var(--hap-brand-primary, #0072bc);
 --primary-hover: var(--hap-brand-primary-hover, #005a94);
 --primary-muted: rgba(0, 114, 188, 0.06);
 --primary-border: rgba(0, 114, 188, 0.12);
 --accent: #fbb040;
 --accent-hover: #e29a2a;
 --accent-muted: rgba(251, 176, 64, 0.08);
 --accent-border: rgba(251, 176, 64, 0.2);

 /* Neutral ramp — cool grays for surfaces and secondary text */
 --neutral-0: #ffffff;
 --neutral-50: #fafafa;
 --neutral-100: #f5f5f7;
 --neutral-200: #e8e8ed;
 --neutral-300: #d2d2d7;
 --neutral-400: #86868b;
 --neutral-500: #6e6e73;
 --neutral-600: #424245;
 --neutral-700: #1d1d1f;
 --neutral-800: #111111;
 --neutral-900: #000000;

 /* Semantic */
 --bg: #fafafa;
 --bg-card: #ffffff;
 --border: rgba(0, 0, 0, 0.06);
 --border-hover: rgba(0, 0, 0, 0.1);
 --text: #1d1d1f;
 --text-secondary: #424245;
 --text-muted: #86868b;

 /* Typography — suite stack (Inter first when installed; see hap-design-tokens.css) */
 --font-sans: var(--hap-font-sans, Tahoma, "Segoe UI", "Helvetica Neue", Arial, sans-serif);
 --font-mono: ui-monospace, "SFMono-Regular", "SF Mono", Menlo, Consolas, monospace;
 --text-xs: 0.6875rem;
 --text-2xs: 0.625rem;
 --text-sm: 0.9375rem;
 --text-base: 1rem;
 --text-lg: 1.0625rem;
 --text-xl: 1.125rem;
 --text-2xl: 1.25rem;
 --text-3xl: 1.5rem;
 --text-4xl: 2rem;
 --text-5xl: 2.5rem;
 --text-hero: clamp(2.25rem, 5vw, 3.5rem);
 --leading-tight: 1.2;
 --leading-snug: 1.35;
 --leading-normal: 1.47;
 --leading-relaxed: 1.6;
 --tracking-tight: -0.02em;
 --tracking-normal: 0;
 --tracking-wide: 0.04em;
 --tracking-wider: 0.08em;

 /* Spacing — 8pt grid */
 --space-1: 0.25rem;
 --space-2: 0.5rem;
 --space-3: 0.75rem;
 --space-4: 1rem;
 --space-5: 1.25rem;
 --space-6: 1.5rem;
 --space-8: 2rem;
 --space-10: 2.5rem;
 --space-12: 3rem;
 --space-16: 4rem;

 /* Radius — consistent */
 --radius-sm: 8px;
 --radius: 12px;
 --radius-lg: 16px;
 --radius-xl: 20px;

 /* Shadows — Apple: soft, single light source */
 --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.04);
 --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.04);
 --shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
 --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.06);
 --shadow-xl: 0 12px 32px rgba(0, 0, 0, 0.08);

 /* Motion */
 --ease: cubic-bezier(0.25, 0.1, 0.25, 1);
 --ease-smooth: cubic-bezier(0.4, 0, 0.2, 1);
--ease-out: cubic-bezier(0.22, 1, 0.36, 1);

 /* Content alignment — single source of truth (avoid duplicate max-width rules later in file) */
 --content-max: 980px;
 --dashboard-inner-max: 1200px;
 --map-protection: #0956a8;
 --map-protection-hover: #084888;
 --map-no-protection: #e8e8ed;
 --map-no-protection-hover: #d2d2d7;
 --map-selected: #fbb040;

 /* Data viz — topic + performance (Oliver Wyman–style consistency across charts & callouts)
    Topics: finance = green, insurance/market = brand blue, policy/law = cyan slate.
    Performance: cool = favorable / profit, warm = loss / headwind, neutral = mixed. */
 --chart-topic-finance: #00a9a4;
 --chart-topic-insurance: #0072bc;
 --chart-topic-policy: #00aeef;
 --chart-perf-positive: #00a9a4;
 --chart-perf-negative: var(--hap-sentiment-negative, #fbb040);
 --chart-perf-neutral: #64748b;
 /* Operations / utilization — distinct from insurance blue */
 --chart-topic-operations: #6a1b9a;
 /* Design Mark X — semantic aliases (same as topic tokens; use in new components) */
 --color-finance: var(--chart-topic-finance);
 --color-insurance: var(--chart-topic-insurance);
 --color-operations: var(--chart-topic-operations);
 --color-policy: var(--chart-topic-policy);
 --color-positive: var(--chart-perf-positive);
 --color-negative: var(--chart-perf-negative);
 /* Shared with PA OW report (OW_report_dashboard.html .pa-dashboard) */
 --hap-ow-page-bg: #eef6fc;
 --hap-ow-page-gradient: linear-gradient(165deg, #e8f2fa 0%, #eef6fc 35%, #f0f7fd 70%, #e8f2fa 100%);
 --hap-ow-blue: var(--hap-brand-primary, #0072bc);
 --hap-ow-soft: #8ed8f8;
 --ow-band-a: rgba(255, 255, 255, 0.78);
 --ow-band-b: rgba(237, 246, 252, 0.92);
 /* HAP Position flagship — brand-forward band (full-width under Overview) */
 --ow-band-hap: linear-gradient(165deg, rgba(11, 103, 194, 0.1) 0%, rgba(11, 103, 194, 0.04) 45%, rgba(255, 255, 255, 0.55) 100%);

 /* Print */
 --print-border: #d2d2d7;
 --print-muted: #86868b;

 /* Sticky chrome: set by 340b.js from .dashboard-header offsetHeight (fallback for first paint; suite header + nav row) */
 --dashboard-header-offset: 6.25rem;
 /* Responsive tiers (screen): ≤430px phones, 431–768px large phone/small tablet, 769–900px tablet, 901px+ desktop. Prefer 100dvw after 100vw for iOS safe width. */
}

/*
  CODE MAP (approximate line — search for section comments below):
  - :root variables, base reset (1–118)
  - Header (120), mobile nav (135), utility toolbar (144)
  - KPI strip (174), PA metrics (182), key findings (198)
  - Main grid, below-fold (215–230), card icons (232)
  - Intro (245), map hero (273), compact cards (307), stat blocks (328)
  - Community benefit (341), PA Impact (360), Policy Simulator (382)
  - Map, domino, state filter, scroll reveal, state lists, trends (561–710)
  - About Data, validation, policy insights, count-up, methodology (714–890)
  - Footer CTA (890)
  - Print/PDF block (896+)
  - 340b-BASIC overrides (980+)
  See DATA-UPDATE.md for data; NOVICE-MAINTAINER.md for what to edit.
*/

* { box-sizing: border-box; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: var(--text-base);
  line-height: var(--leading-normal);
  color: var(--text);
  background: var(--hap-ow-page-bg);
  background-image: var(--hap-ow-page-gradient);
  /* scroll (not fixed): fixed-attachment backgrounds repaint every frame and cause scroll jank */
  background-attachment: scroll;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
  -webkit-tap-highlight-color: transparent;
}

/* 340B only: cool neutral page field + calmer wash (OW/index use .pa-dashboard, not .dashboard) */
/* 340B dashboard body — SINGLE overflow clip for the entire page. No other element should set overflow-x. */
body:has(> .dashboard) {
  background-color: var(--hap-ui-page-wash, var(--hap-surface-page, #f5f5f7));
  background-image: none;
  font-family: var(--hap-ui-font-sans, var(--hap-font-sans));
  color: var(--text, var(--hap-text-primary));
  width: 100%;
  max-width: 100vw;
  overflow-x: clip;
}
/* Document root: width-only cap — no overflow-x here (body:has(.dashboard) handles it). */
html:has(.dashboard) {
  max-width: 100vw;
  box-sizing: border-box;
}
/* Mobile-first: reduce double-tap delay on primary interactive surfaces */
.dashboard .utility-btn,
.dashboard .dashboard-nav--suite a,
.dashboard .hap-sidebar-nav a,
.dashboard .state-chip,
.dashboard .impact-scenario-btn {
  touch-action: manipulation;
}
.dashboard {
  width: 100%;
  min-width: 0;
  /* Dashboard density knobs — staircase: desktop generous → tablet moderate → phone compact */
  --dash-grid-gap: var(--space-4);
  --dash-section-y: var(--space-8);
  --dash-card-pad: var(--space-6);
  --dash-main-pad-y-end: var(--space-8);
  --hap-spring-hover: cubic-bezier(0.34, 1.45, 0.64, 1);
  --hap-leading-relaxed: var(--hap-leading-dek, 1.52);
  /* HIG-like shell: system UI + one display stack (replaces Montserrat inside .dashboard via --hap-font-display) */
  --hap-font-sans: var(--hap-ui-font-sans);
  --font-sans: var(--hap-ui-font-sans);
  --hap-font-display: var(--hap-ui-font-sans);
  --radius: var(--hap-ui-card-radius, 14px);
  --radius-lg: var(--hap-ui-card-radius-lg, 18px);
  --card-radius: var(--hap-ui-card-radius, 14px);
  font-family: var(--hap-ui-font-sans, var(--font-sans));
  min-height: 100vh;
  min-height: 100dvh;
  max-width: 100%;
  position: relative;
  isolation: isolate;
  /* visible: overflow-x clip breaks position:sticky for the left nav in some browsers */
  overflow-x: visible;
  overflow-y: visible;
  display: flex;
  flex-direction: column;
}
/* Light page wash — HAP blue hint on neutral field (340B executive polish; not full OW saturation) */
.dashboard::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  min-height: 100%;
  background:
    radial-gradient(ellipse 90% 55% at 50% -25%, rgba(0, 114, 188, 0.09), transparent 52%),
    radial-gradient(ellipse 55% 40% at 100% 45%, rgba(0, 114, 188, 0.045), transparent 50%),
    radial-gradient(ellipse 45% 28% at 0% 85%, rgba(251, 176, 64, 0.04), transparent 55%),
    linear-gradient(
      165deg,
      var(--hap-surface-page, #f5f5f7) 0%,
      var(--hap-bg-subtle, #f5f5f7) 42%,
      var(--hap-surface-page, #f5f5f7) 100%
    );
  pointer-events: none;
  z-index: 0;
}
.dashboard [id] {
  scroll-margin-top: calc(var(--dashboard-header-offset, 6.25rem) + 0.75rem);
  scroll-margin-bottom: 2rem;
}
.dashboard a { color: var(--primary); text-decoration: none; }
.dashboard a:hover { text-decoration: underline; }
.dashboard a:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; border-radius: 4px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
.print-only { display: none; }
.print-map-fallback { display: none; }

.dashboard-inner {
  max-width: var(--dashboard-inner-max, 1200px);
  margin: 0 auto;
  min-width: 0;
  /* padding: top right bottom left — match physical safe-area sides (was swapped; caused right-edge clipping on notched iPhones) */
  padding: 0 max(var(--space-6), env(safe-area-inset-right, 0px)) 0 max(var(--space-6), env(safe-area-inset-left, 0px));
  position: relative;
  z-index: 1;
  box-sizing: border-box;
}

/* ========== HAP shell: left sticky nav (matches OW_report_dashboard.html pattern) ========== */
.hap-body {
  display: flex;
  align-items: stretch;
  flex: 1 1 auto;
  gap: 0;
  position: relative;
  z-index: 1;
  min-height: 0;
  min-width: 0;
}
/* Footer is a .dashboard sibling after .hap-body; same z-index as .hap-body made it paint over the fixed left rail. */
.dashboard > .site-footer {
  z-index: 0;
}
.hap-page-content {
  flex: 1;
  min-width: 0;
  width: 100%;
  max-width: 100%;
}
/* Desktop: fixed left rail so nav stays visible for the entire page scroll (sticky scrolls away at the
   bottom when the flex row ends). Mobile (≤900px): sidebar hidden — use suite header nav only. */
@media (min-width: 901px) {
  .hap-body > .hap-page-content {
    margin-left: var(--hap-sidebar-w);
    width: calc(100% - var(--hap-sidebar-w));
    box-sizing: border-box;
  }
  .hap-sidebar--340b {
    position: fixed;
    left: 0;
    top: var(--dashboard-header-offset, 6.25rem);
    width: var(--hap-sidebar-w);
    height: calc(100vh - var(--dashboard-header-offset, 6.25rem));
    max-height: calc(100vh - var(--dashboard-header-offset, 6.25rem));
    padding-bottom: calc(var(--space-8) + env(safe-area-inset-bottom, 0));
    z-index: 40;
  }
}
.hap-sidebar--340b {
  flex-shrink: 0;
  width: var(--hap-sidebar-w);
  overflow-y: auto;
  padding: var(--space-4) 0 var(--space-8);
  /* Cool neutral rail with faint HAP tint (was solid #ddeef8) */
  background: linear-gradient(
    180deg,
    var(--hap-surface-subtle, #ebebef) 0%,
    rgba(0, 114, 188, 0.06) 100%
  );
  border-right: 1px solid var(--hap-separator, rgba(60, 60, 67, 0.12));
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  box-sizing: border-box;
  overscroll-behavior: contain;
}
.hap-sidebar-nav {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  padding: 0 0.65rem;
}
.hap-sidebar-nav a {
  display: block;
  padding: 0.5rem 0.85rem;
  border-radius: 7px;
  font-size: 0.8rem;
  font-weight: 600;
  color: #3a5a7a;
  text-decoration: none;
  border: 1px solid transparent;
  transition: color 0.18s, background 0.18s;
}
.hap-sidebar-nav a:hover {
  color: #003087;
  background: rgba(0, 48, 135, 0.08);
  border-color: rgba(0, 48, 135, 0.15);
  text-decoration: none;
}
.hap-sidebar-nav a.active {
  color: #003087;
  background: rgba(0, 48, 135, 0.12);
  border-color: rgba(0, 48, 135, 0.22);
  font-weight: 700;
}
.hap-sidebar-divider {
  height: 1px;
  background: rgba(0, 82, 155, 0.15);
  margin: 0.75rem 0.65rem;
}
.hap-sidebar-label {
  display: block;
  padding: 0.35rem 0.85rem 0.1rem;
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #64748b;
}
.hap-sidebar-nav a.hap-cross-link--current {
  border-color: rgba(0, 48, 135, 0.35);
  background: rgba(0, 48, 135, 0.12);
  font-weight: 700;
}
.kpi-strip > .kpi-strip-intro.section-insight,
.kpi-strip > .kpi-strip-intro--dek {
  grid-column: 1 / -1;
  margin-bottom: var(--space-2);
}
.kpi-strip > .kpi-strip-intro--dek {
  grid-column: 1 / -1;
  margin: 0 0 var(--space-3);
  font-size: var(--text-sm);
  color: var(--text-secondary);
  line-height: 1.45;
  max-width: 48rem;
}
.map-hero-card .map-reading-note {
  margin: var(--space-2) 0 0;
  font-size: var(--text-sm);
  color: var(--text-secondary);
  line-height: 1.45;
  max-width: 42rem;
}
.legal-trends-anchor .legal-trends-dek {
  margin: 0 0 var(--space-3);
  font-size: var(--text-sm);
  color: var(--text-secondary);
  line-height: 1.45;
  max-width: 48rem;
}
.hap-sidebar-nav a.hap-cross-link {
  color: #0072bc;
  background: rgba(0, 114, 188, 0.08);
  border-color: rgba(0, 114, 188, 0.2);
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
/* Stacked label + short description (Related reports & tools) */
.hap-sidebar-nav a.hap-cross-link.hap-cross-link--stack {
  flex-direction: column;
  align-items: flex-start;
  gap: 0.2rem;
  padding-top: 0.45rem;
  padding-bottom: 0.45rem;
}
.hap-cross-link-title {
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.25;
}
.hap-cross-link-desc {
  font-size: 0.58rem;
  font-weight: 500;
  line-height: 1.3;
  color: #5a7189;
  letter-spacing: 0.01em;
}
.hap-sidebar-nav a.hap-cross-link--current .hap-cross-link-desc {
  color: #3d556d;
}
.hap-sidebar-nav a.hap-cross-link:hover .hap-cross-link-desc {
  color: #005a94;
}
.hap-sidebar-nav a.hap-cross-link:hover {
  background: rgba(0, 114, 188, 0.15);
  border-color: rgba(0, 114, 188, 0.35);
  color: #005a94;
}
.hap-sidebar-nav a.hap-cross-link svg {
  width: 13px;
  height: 13px;
  flex-shrink: 0;
}
/* ==========================================================================
   MOBILE LAYOUT (≤900px) — single source of truth for small-screen shell.
   Design: Jony Ive-inspired — generous margins, centered column, no double
   padding, every block fills its column, maps are the hero.
   
   Padding strategy: .dashboard-inner is the ONLY horizontal padding layer.
   main/grid/cards inherit that column and add NO side padding of their own.
   ========================================================================== */
@media (max-width: 900px) {
  .hap-body { flex-direction: column; }
  .hap-body > .hap-page-content {
    margin-left: 0;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
  .hap-sidebar--340b { display: none !important; }

  /* --- Single padding layer: .dashboard-inner --- */
  .dashboard-inner {
    max-width: 100%;
    width: 100%;
    padding-left: max(1rem, env(safe-area-inset-left, 0px));
    padding-right: max(1rem, env(safe-area-inset-right, 0px));
    box-sizing: border-box;
  }

  /* main: NO horizontal padding — .dashboard-inner handles it */
  .dashboard main {
    max-width: 100%;
    min-width: 0;
    padding-left: 0;
    padding-right: 0;
    box-sizing: border-box;
    overflow-wrap: break-word;
  }
  .dashboard #pdf-capture-root {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }
  .dashboard .dashboard-grid {
    min-width: 0;
    width: 100%;
    max-width: 100%;
  }
  .dashboard .dashboard-grid > * {
    min-width: 0;
    max-width: 100%;
  }

  /* Header: match the inner padding rhythm */
  .dashboard-header--suite .hap-header,
  .dashboard-header--suite .dashboard-nav--suite {
    padding-left: max(1rem, env(safe-area-inset-left, 0px));
    padding-right: max(1rem, env(safe-area-inset-right, 0px));
  }

  /* Maps: fill the content column edge-to-edge */
  .map-hero-inner {
    max-width: 100%;
    width: 100%;
    box-sizing: border-box;
  }
  .map-hero-card {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
  .map-container {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
  .map-wrap,
  .dashboard .us-map-wrap,
  #us-map {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }
  .pa-district-map-stage,
  .pa-district-svg {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }

  /* Supporting shells: fill the column, not viewport-width calc */
  .supporting-shell {
    max-width: 100%;
    width: 100%;
    box-sizing: border-box;
  }

  /* Footer: outside .dashboard-inner, so it needs its own inset to align */
  .dashboard > .site-footer {
    width: 100%;
    max-width: 100%;
    padding-left: max(1rem, env(safe-area-inset-left, 0px));
    padding-right: max(1rem, env(safe-area-inset-right, 0px));
    box-sizing: border-box;
  }
}
/* Header — suite-aligned with OW_report_dashboard.html (.hap-header + second-row nav) */
.dashboard-header--suite {
  flex-shrink: 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  z-index: 300;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  padding: 0;
  padding-top: env(safe-area-inset-top, 0);
  background: #e8f2fa;
  border-bottom: 1px solid #c8d8e8;
  box-shadow: 0 1px 6px rgba(0, 114, 188, 0.1);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
.dashboard-header--suite .hap-header {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.65rem 1.5rem 0.65rem calc(var(--hap-sidebar-w) + 1.5rem);
  background: #e8f2fa;
  border-bottom: 1px solid rgba(200, 216, 232, 0.6);
  margin: 0;
}
.dashboard-header--suite .hap-header-logo {
  width: 40px;
  height: 40px;
  object-fit: contain;
  border-radius: 6px;
  flex-shrink: 0;
  box-shadow: none;
}
.dashboard-header--suite .hap-header-text { flex: 1; min-width: 0; }
.dashboard-header--suite .hap-header-utility {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.dashboard-header--suite .hap-header-utility a {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0.3rem 0.6rem;
  border-radius: 999px;
  border: 1px solid rgba(0, 114, 188, 0.18);
  background: rgba(255, 255, 255, 0.84);
  color: #1f4e78;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-decoration: none;
}
.dashboard-header--suite .hap-header-utility a:hover {
  background: rgba(142, 216, 248, 0.25);
  color: #005a94;
  text-decoration: none;
}
.dashboard-header--suite .hap-header-org {
  margin: 0;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #5a7a99;
  font-family: var(--hap-font-display);
}
.dashboard-header--suite .hap-header-title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
  color: #003087;
  letter-spacing: -0.02em;
  line-height: 1.15;
  font-family: var(--hap-font-display);
}
.dashboard-header--suite .hap-header-badge {
  display: inline-flex;
  align-items: center;
  margin-top: 0.2rem;
  padding: 0.15rem 0.5rem;
  background: rgba(0, 48, 135, 0.1);
  border: 1px solid rgba(0, 48, 135, 0.2);
  color: #003087;
  font-size: 0.55rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border-radius: 4px;
}
.dashboard-header--suite .dashboard-nav--suite {
  display: flex;
  gap: 0.25rem;
  flex-wrap: wrap;
  align-items: center;
  padding: 0.35rem 1rem 0.45rem calc(var(--hap-sidebar-w) + 1.5rem);
  background: rgba(255, 255, 255, 0.88);
  border-bottom: 1px solid #c8d8e8;
  margin: 0;
}
.dashboard-header--suite .dashboard-nav--suite a {
  font-size: 0.78rem;
  font-weight: 600;
  padding: 0.5rem 0.75rem;
  border-radius: 999px;
  color: #3a5a7a;
  font-family: var(--hap-font-display);
  transition: color 0.18s, background 0.18s;
}
.dashboard-header--suite .dashboard-nav--suite a:hover {
  color: #003087;
  background: rgba(0, 48, 135, 0.08);
  text-decoration: none;
}
.dashboard-header--suite .dashboard-nav--suite a.active {
  color: #003087;
  background: rgba(0, 48, 135, 0.12);
  font-weight: 700;
}
.dashboard-header--suite .dashboard-nav--suite a:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 2px;
}
@media (max-width: 900px) {
  .dashboard-header--suite .hap-header,
  .dashboard-header--suite .dashboard-nav--suite {
    padding-left: 0.8rem;
    padding-right: 0.8rem;
  }
  .dashboard-header--suite .hap-header { gap: 0.65rem; }
  .dashboard-header--suite .hap-header-utility { display: none; }
  .dashboard-header--suite .hap-header-title { font-size: 0.92rem; }
}
@media (max-width: 768px) {
  .dashboard-header--suite .dashboard-nav--suite {
    overflow-x: auto;
    overflow-y: hidden;
    flex-wrap: nowrap;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    gap: 0.2rem;
    padding-bottom: 0.35rem;
  }
  .dashboard-header--suite .dashboard-nav--suite::-webkit-scrollbar { display: none; }
  .dashboard-header--suite .dashboard-nav--suite a {
    flex-shrink: 0;
    white-space: nowrap;
    font-size: 0.72rem;
    padding: 0.45rem 0.6rem;
  }
}
@media (max-width: 480px) {
  .dashboard-header--suite .hap-header-badge { display: none; }
  .dashboard-header--suite .hap-header-title { font-size: 0.82rem; }
}

/* Executive summary (briefing layer) — scannable cards + CTA */
.executive-summary-layer {
  padding: var(--space-6) 0 var(--space-4);
  margin-bottom: 0;
}
.executive-summary--flagship {
  border-radius: var(--radius-lg);
  border: 1px solid rgba(0, 114, 188, 0.12);
  box-shadow: var(--hap-shadow-sm, var(--shadow-sm));
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, var(--hap-bg-subtle, var(--neutral-100)) 100%);
}
.executive-summary-heading {
  margin: 0 0 var(--space-2);
  font-size: var(--hap-type-h2, var(--text-xl));
  font-weight: 700;
  color: var(--hap-brand-deep, #003087);
  letter-spacing: var(--tracking-tight);
}
.executive-summary-dek {
  margin: 0 0 var(--space-5);
  font-size: var(--text-sm);
  color: var(--text-secondary);
  max-width: 52ch;
  line-height: 1.5;
}
.exec-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
  margin: 0 0 var(--space-5);
}
@media (max-width: 700px) {
  .exec-summary-grid { grid-template-columns: 1fr; }
}
.exec-summary-card {
  margin: 0;
  padding: var(--space-4);
  border-radius: var(--radius);
  background: var(--bg-card);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-xs);
  transition: box-shadow 0.2s var(--ease), border-color 0.2s var(--ease), transform 0.2s var(--ease);
}
.exec-summary-card:hover {
  box-shadow: var(--shadow-md);
  border-color: rgba(0, 114, 188, 0.18);
  transform: translateY(-1px);
}
@media (prefers-reduced-motion: reduce) {
  .exec-summary-card:hover { transform: none; }
}
.exec-summary-card--priority { border-top: 3px solid var(--hap-topic-policy, var(--chart-topic-policy)); }
.exec-summary-card--landscape { border-top: 3px solid var(--hap-topic-access, var(--primary)); }
.exec-summary-card--scale { border-top: 3px solid var(--hap-topic-finance, #0f766e); }
.exec-summary-card--pa { border-top: 3px solid var(--hap-accent-warm, #f59e0b); }
.exec-summary-card__title {
  margin: 0 0 var(--space-2);
  font-size: var(--text-base);
  font-weight: 700;
  letter-spacing: var(--tracking-tight);
  text-transform: none;
  color: var(--text);
  line-height: var(--leading-snug, 1.25);
}
.exec-summary-card__lead {
  margin: 0 0 var(--space-3);
  font-size: var(--text-base);
  color: var(--text);
  line-height: 1.45;
}
.exec-summary-card__impact {
  margin: 0;
  font-size: var(--text-sm);
  color: var(--text-muted);
  line-height: 1.45;
  padding-top: var(--space-3);
  border-top: 1px solid var(--border);
}
.exec-summary-card__impact-kicker {
  font-weight: 700;
  color: var(--text-secondary);
}
.exec-summary-landscape {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  margin: 0 0 var(--space-3);
  align-items: flex-end;
}
.exec-summary-stat {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 5.5rem;
}
.exec-summary-stat--muted .exec-summary-stat__value { color: var(--text-muted); }
.exec-summary-stat__value {
  font-family: var(--font-mono);
  font-size: clamp(1.75rem, 1.2rem + 2vw, 2.35rem);
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  color: var(--primary);
}
.exec-summary-stat__label {
  font-size: var(--text-xs);
  font-weight: 600;
  color: var(--text-secondary);
  max-width: 12rem;
  line-height: 1.25;
}
.exec-summary-head {
  margin-bottom: var(--space-4);
}
.executive-summary-heading--display {
  font-size: clamp(1.65rem, 1.1rem + 2.2vw, 2.1rem);
  font-weight: 800;
  font-family: var(--hap-font-display);
  letter-spacing: -0.03em;
}
.executive-summary--mark11 .executive-summary-dek {
  max-width: 58ch;
  font-size: var(--text-base);
  font-weight: 500;
  color: var(--text-secondary);
}
/* Full-width executive scan — wraps mega KPI grid (AHA-style hero banner) */
.hero-kpi-banner {
  margin: 0 0 var(--space-8);
  padding: var(--space-4) var(--space-4) var(--space-5);
  border-radius: var(--radius-lg);
  background: linear-gradient(165deg, var(--bg-card) 0%, rgba(11, 103, 194, 0.045) 55%, var(--bg-card) 100%);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-md);
  box-decoration-break: clone;
}
@media (max-width: 520px) {
  .hero-kpi-banner {
    padding: var(--space-4) var(--space-4) var(--space-5);
    margin-bottom: var(--space-6);
  }
}
.hero-kpi-banner .exec-summary-mega-strip {
  margin-bottom: 0;
}
.exec-summary-mega-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-4);
  margin: 0 0 var(--space-5);
}
@media (max-width: 1100px) {
  .exec-summary-mega-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  .exec-summary-mega-strip { grid-template-columns: 1fr; }
}
.exec-summary-mega {
  margin: 0;
  padding: var(--space-4);
  border-radius: var(--radius-lg);
  background: var(--bg-card);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: visible;
  min-height: 100%;
  transition: box-shadow 0.2s var(--ease), border-color 0.2s var(--ease), transform 0.2s var(--ease);
}
@media (prefers-reduced-motion: reduce) {
  .exec-summary-mega { transition: none; }
}
.exec-summary-mega:hover {
  box-shadow: var(--shadow-md);
  border-color: rgba(0, 114, 188, 0.2);
  transform: translateY(-2px);
}
@media (prefers-reduced-motion: reduce) {
  .exec-summary-mega:hover { transform: none; }
}
.exec-summary-mega--finance { border-top: 4px solid var(--hap-topic-finance, #0f766e); }
.exec-summary-mega--policy { border-top: 4px solid var(--hap-topic-policy, var(--chart-topic-policy)); }
.exec-summary-mega--market { border-top: 4px solid var(--hap-topic-access, var(--primary)); }
.exec-summary-mega--pa { border-top: 4px solid var(--hap-accent-warm, #f59e0b); }
.exec-summary-mega__eyebrow {
  margin: 0 0 var(--space-2);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-muted);
  font-family: var(--hap-font-display);
}
.exec-summary-mega__value {
  margin: 0;
  font-family: var(--font-mono);
  font-size: clamp(2.4rem, 4vw + 1rem, 4.25rem);
  font-weight: 800;
  line-height: 0.95;
  letter-spacing: -0.04em;
  font-variant-numeric: tabular-nums;
  color: var(--hap-brand-deep, #003087);
  white-space: nowrap;
  display: inline-block;
  padding-right: 0.08em;
}
.exec-summary-mega__value--accent { color: var(--primary); }
.exec-summary-mega__value--muted { color: var(--text-muted); }
.exec-summary-mega__unit {
  margin: 0.2rem 0 0;
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--text-secondary);
}
.exec-summary-mega__split {
  display: flex;
  gap: var(--space-4);
  align-items: flex-end;
  margin: var(--space-2) 0 var(--space-1);
}
.exec-summary-mega__split-cell {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

/* Executive mega strip (hero KPIs) — row redesign for alignment and readability */
.hero-kpi-banner .exec-summary-mega-strip {
  grid-template-columns: 1fr;
  gap: clamp(0.75rem, 1.6vw, 1rem);
  margin-bottom: var(--space-6);
}

.hero-kpi-banner .exec-summary-mega {
  display: grid;
  /* Same value column as Key metrics (Mark XI) */
  grid-template-columns: minmax(160px, 230px) minmax(0, 1fr);
  column-gap: clamp(0.9rem, 2vw, 1.25rem);
  align-items: start;
  padding: clamp(1rem, 2vw, 1.25rem);
}

.hero-kpi-banner .exec-summary-mega__eyebrow {
  grid-column: 2;
  grid-row: 1;
  margin-bottom: 0.25rem;
}

.hero-kpi-banner .exec-summary-mega__value,
.hero-kpi-banner .exec-summary-mega__split {
  grid-column: 1;
  grid-row: 1 / span 4;
  align-self: center;
  justify-self: center;
  margin: 0;
  width: 100%;
  text-align: center;
}

/* Match Key metrics strip: BAN typography + centered in the left cell */
.hero-kpi-banner .exec-summary-mega__value {
  display: block;
  font-family: var(--font-mono);
  font-size: clamp(2rem, 4.1vw, 2.65rem);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
  padding-right: 0;
  white-space: nowrap;
}

.hero-kpi-banner .exec-summary-mega--finance .exec-summary-mega__value {
  color: var(--chart-topic-finance);
}

.hero-kpi-banner .exec-summary-mega--pa .exec-summary-mega__value {
  color: var(--primary);
  font-weight: 800;
}

.hero-kpi-banner .exec-summary-mega--market .exec-summary-mega__value {
  color: var(--chart-topic-insurance);
  font-weight: 700;
}

.hero-kpi-banner .exec-summary-mega--policy .exec-summary-mega__value--accent {
  color: var(--chart-topic-policy);
  font-weight: 700;
}

.hero-kpi-banner .exec-summary-mega--policy .exec-summary-mega__value--muted {
  color: var(--text-muted);
  font-weight: 700;
}

.hero-kpi-banner .exec-summary-mega__unit {
  grid-column: 2;
  grid-row: 2;
  margin-top: 0.1rem;
}

.hero-kpi-banner .exec-summary-mega__impact {
  grid-column: 2;
  grid-row: 3;
  margin-top: 0.55rem;
}

.hero-kpi-banner .exec-summary-mega .stat-verified {
  grid-column: 2;
  grid-row: 4;
  margin-top: 0.4rem;
}

/* 2-up policy split: centered pair in the same left column as Key metrics */
.hero-kpi-banner .exec-summary-mega__split {
  gap: clamp(0.65rem, 2vw, 1rem);
  align-items: stretch;
  justify-content: center;
}

.hero-kpi-banner .exec-summary-mega__split-cell {
  align-items: center;
  text-align: center;
  flex: 1;
  min-width: 0;
}

.hero-kpi-banner .exec-summary-mega__split .exec-summary-mega__value {
  font-size: clamp(1.65rem, 3.2vw, 2.35rem);
  line-height: 1;
  white-space: nowrap;
}

.hero-kpi-banner .exec-summary-mega__split-label {
  font-size: 0.8rem;
  color: var(--text-secondary);
  font-weight: 650;
}

@media (max-width: 720px) {
  .hero-kpi-banner .exec-summary-mega {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
  }

  .hero-kpi-banner .exec-summary-mega__value,
  .hero-kpi-banner .exec-summary-mega__split {
    align-self: center;
    width: 100%;
    max-width: 22rem;
  }
}
.exec-summary-mega__split .exec-summary-mega__value {
  font-size: clamp(2rem, 3.5vw + 0.75rem, 3.25rem);
}
.exec-summary-mega__split-label {
  font-size: var(--text-xs);
  font-weight: 600;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.exec-summary-mega__impact {
  margin: auto 0 0;
  padding-top: var(--space-3);
  border-top: 1px solid var(--border);
  font-size: var(--text-sm);
  color: var(--text-muted);
  line-height: 1.45;
}
.exec-summary-sparkline-wrap {
  margin: 0.35rem 0 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.25rem;
  color: var(--hap-brand-primary, #0072bc);
}
.exec-summary-sparkline-svg {
  display: block;
  flex-shrink: 0;
}
.exec-summary-sparkline-label {
  margin: 0;
  font-size: var(--text-xs);
  color: var(--text-muted);
  line-height: 1.25;
}
.exec-summary-mega-trend-note {
  margin: var(--space-3) 0 0;
  font-size: var(--text-sm);
  color: var(--text-muted);
  line-height: 1.45;
}
.kpi-value-with-info {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 0.35rem;
  flex-wrap: nowrap;
  min-width: 0;
}
.kpi-value-with-info .kpi-value {
  margin: 0;
  min-width: 0;
  flex: 1 1 auto;
  overflow-wrap: anywhere;
}
.kpi-pa-tooltip-host {
  position: relative;
  flex-shrink: 0;
  align-self: center;
}
.kpi-pa-info-btn {
  min-width: 44px;
  min-height: 44px;
  padding: 0 0.35rem;
  margin: 0;
  border: none;
  background: transparent;
  color: var(--hap-brand-primary, #0072bc);
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
  border-radius: var(--radius-sm);
}
.kpi-pa-info-btn:focus-visible {
  outline: 2px solid var(--hap-brand-primary, #0072bc);
  outline-offset: 2px;
}
.kpi-pa-tooltip-panel {
  position: absolute;
  z-index: 50;
  left: 0;
  top: calc(100% + 6px);
  width: min(300px, calc(100dvw - 1.5rem));
  width: min(300px, calc(100svw - 1.5rem));
  max-height: 70vh;
  overflow-y: auto;
  padding: var(--space-3);
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-md);
  font-size: var(--text-sm);
  line-height: 1.45;
  color: var(--text-secondary);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.15s var(--ease);
}
.kpi-pa-tooltip-panel__text {
  margin: 0;
}
.kpi-pa-tooltip-panel__inner {
  display: block;
}
.kpi-pa-tooltip-panel__inner p {
  margin: 0 0 var(--space-2);
}
.kpi-pa-tooltip-panel__inner p:last-child {
  margin-bottom: 0;
}
.kpi-pa-tooltip-panel__lead {
  font-weight: 800;
  color: var(--text);
  margin-bottom: var(--space-2) !important;
}
.kpi-pa-tooltip-panel__contacts {
  font-size: var(--text-xs);
}
@media (hover: hover) and (pointer: fine) {
  .kpi-pa-tooltip-host:hover .kpi-pa-tooltip-panel,
  .kpi-pa-tooltip-host:focus-within .kpi-pa-tooltip-panel {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
}
.kpi-pa-tooltip-host.is-open .kpi-pa-tooltip-panel {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.impact-simulator-methodology {
  margin-bottom: var(--space-5);
  padding: var(--space-4) var(--space-5);
  border: 1px solid var(--hap-topic-policy-border);
  border-radius: var(--radius-md);
  background: var(--hap-topic-policy-soft);
}
.impact-simulator-methodology summary {
  font-weight: 600;
  font-size: var(--text-sm);
  color: var(--text);
  cursor: pointer;
  list-style-position: outside;
}
.impact-simulator-methodology__body {
  margin-top: var(--space-3);
  font-size: var(--text-sm);
  line-height: 1.5;
  color: var(--text-secondary);
}
.impact-simulator-methodology__body ul {
  margin: 0.5rem 0 0;
  padding-left: 1.25rem;
}
.impact-simulator-methodology__body strong {
  color: var(--text);
}

@media print {
  .impact-simulator-methodology:not([open]) {
    display: none !important;
  }

  .kpi-pa-tooltip-panel,
  .kpi-pa-info-btn {
    display: none !important;
  }

  /* Map / clone SVG height cap (full print rules also in main @media print block below) */
  body.print-ready .print-map-fallback svg,
  body.print-ready .print-map-fallback img {
    max-height: 11cm !important;
  }
}
.exec-summary-subgrid {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  margin-bottom: var(--space-5);
}
.exec-summary-section-title {
  margin: var(--space-2) 0 0;
  font-size: var(--text-lg);
  font-weight: 800;
  color: var(--hap-brand-deep, #003087);
  font-family: var(--hap-font-display);
  letter-spacing: -0.02em;
  padding-bottom: var(--space-2);
  border-bottom: 2px solid rgba(0, 114, 188, 0.15);
}
.exec-summary-pair {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
}
@media (max-width: 700px) {
  .exec-summary-pair { grid-template-columns: 1fr; }
}
.hap-cta-strip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-4);
  border-radius: var(--radius);
  background: rgba(0, 114, 188, 0.06);
  border: 1px solid rgba(0, 114, 188, 0.12);
}
.hap-cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--hap-tap-min, 44px);
  padding: 0.65rem 1.25rem;
  font-size: var(--text-sm);
  font-weight: 600;
  border-radius: var(--radius-pill, 999px);
  text-decoration: none;
  transition: background 0.2s var(--ease), color 0.2s var(--ease), box-shadow 0.2s var(--ease), border-color 0.2s var(--ease);
}
.hap-cta-btn:focus-visible {
  outline: 2px solid var(--hap-brand-primary, var(--primary));
  outline-offset: 2px;
}
.hap-cta-btn--primary {
  background: linear-gradient(135deg, var(--hap-brand-primary, var(--primary)) 0%, #0088e0 100%);
  color: #fff !important;
  border: 1px solid transparent;
  box-shadow: var(--hap-shadow-brand, var(--shadow-sm));
}
.hap-cta-btn--primary:hover {
  filter: brightness(1.03);
  text-decoration: none;
}
.hap-cta-btn--secondary {
  background: var(--bg-card);
  color: var(--primary) !important;
  border: 1px solid rgba(0, 114, 188, 0.28);
}
.hap-cta-btn--secondary:hover {
  background: var(--neutral-100);
  text-decoration: none;
}

/* Decision badges (non-data labels only) */
.decision-badge {
  display: inline-block;
  margin-left: var(--space-2);
  padding: 0.12rem 0.45rem;
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border-radius: 4px;
  vertical-align: middle;
}
.decision-badge--watch {
  background: rgba(245, 158, 11, 0.18);
  color: #9a3412;
  border: 1px solid rgba(234, 88, 12, 0.35);
}

.kpi-scope-footnote {
  margin: var(--space-4) 0 0;
  font-size: var(--text-xs);
  color: var(--text-muted);
  max-width: 56ch;
  line-height: 1.45;
}
.policy-timeline-why-now {
  margin: var(--space-3) 0 var(--space-4);
  font-size: var(--text-sm);
  color: var(--text-secondary);
  max-width: 62ch;
  line-height: 1.5;
}

.kpi-card--primary {
  box-shadow: var(--shadow-md);
  border-color: rgba(0, 114, 188, 0.22);
}
.kpi-card--support {
  padding: var(--space-5);
}
.kpi-card--support .kpi-value {
  font-size: clamp(1.25rem, 1rem + 1vw, 1.65rem);
}
.kpi-card--primary .kpi-value {
  font-size: clamp(1.45rem, 1.1rem + 1.2vw, 1.95rem);
}

/* Utility toolbar */
.utility-toolbar { display: grid; justify-items: start; gap: var(--space-2); padding: var(--space-5) 0 var(--space-3); }
.utility-toolbar-text { margin: 0; font-size: var(--text-xs); font-weight: 600; letter-spacing: var(--tracking-wide); text-transform: uppercase; color: var(--text-muted); }
.utility-toolbar-actions { display: flex; align-items: center; gap: var(--space-2); flex-wrap: wrap; justify-content: flex-start; }
.utility-btn { font-family: inherit; font-size: var(--text-sm); font-weight: 500; min-height: 44px; padding: var(--space-3) var(--space-4); border-radius: var(--radius); border: 1px solid var(--border); background: var(--bg-card); color: var(--primary); cursor: pointer; transition: border-color 0.2s var(--ease), background 0.2s var(--ease), filter 0.2s var(--ease), box-shadow 0.2s var(--ease); }
.utility-btn:hover { background: var(--neutral-100); text-decoration: none; }
.utility-btn:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.utility-btn:active { transform: scale(0.98); }
/* Primary toolbar action — one per page (Print / PDF) */
.utility-btn--primary {
  background: linear-gradient(135deg, var(--hap-brand-primary, var(--primary)) 0%, #0088e0 100%);
  color: #fff !important;
  border-color: transparent;
  font-weight: 600;
  box-shadow: var(--hap-shadow-brand, var(--shadow-sm));
}
.utility-btn--primary:hover {
  background: linear-gradient(135deg, var(--hap-brand-primary-hover, var(--primary-hover)) 0%, var(--hap-brand-primary, var(--primary)) 100%);
  color: #fff !important;
  filter: brightness(1.03);
}
.utility-btn--small { min-height: 36px; padding: 0.4rem 0.75rem; font-size: var(--text-xs); }
/* Share drawer (utility toolbar) */
.utility-share-wrap {
  position: relative;
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
}
.share-drawer {
  position: absolute;
  left: 0;
  top: calc(100% + 4px);
  z-index: 60;
  min-width: 0;
  max-width: min(280px, calc(100dvw - 2rem));
  max-width: min(280px, calc(100svw - 2rem));
  width: min(280px, calc(100dvw - 2rem));
  width: min(280px, calc(100svw - 2rem));
  box-sizing: border-box;
  padding: var(--space-3);
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--bg-card);
  box-shadow: var(--shadow-md, 0 8px 24px rgba(0, 0, 0, 0.12));
}
.share-drawer:not([hidden]) {
  animation: hap-share-drawer-in 0.15s ease;
}
@keyframes hap-share-drawer-in {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .share-drawer:not([hidden]) { animation: none; }
}
.share-drawer__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}
.share-drawer__action {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--neutral-100, var(--bg-card));
  color: var(--primary);
  font-family: inherit;
  font-size: var(--text-sm);
  font-weight: 600;
  text-decoration: none;
  width: 100%;
  box-sizing: border-box;
  justify-content: flex-start;
  transition: background 0.2s var(--ease), border-color 0.2s var(--ease);
}
.share-drawer__action:hover {
  background: var(--neutral-200, var(--neutral-100));
}
.share-drawer__action:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 2px;
}
.share-drawer__action--btn {
  cursor: pointer;
  text-align: left;
}
.utility-status { min-height: 1.25rem; margin: 0; font-size: var(--text-xs); font-weight: 600; color: var(--primary); }
.noscript-card { margin: 0 0 var(--space-4); padding: var(--space-4); border: 1px solid var(--accent-border); border-radius: var(--radius); background: var(--accent-muted); color: var(--text); font-size: var(--text-sm); }
.print-report-header { margin: 0 0 var(--space-5); padding: var(--space-4) 0; border-bottom: 1px solid var(--border); }
.print-report-brand { display: flex; align-items: center; gap: var(--space-3); margin-bottom: var(--space-3); }
.print-report-logo { border-radius: 12px; object-fit: contain; }
.print-report-brand-copy { min-width: 0; }
.print-report-org { margin: 0 0 var(--space-1); font-size: var(--text-xs); font-weight: 700; letter-spacing: var(--tracking-wide); text-transform: uppercase; color: var(--text-muted); }
.print-report-kicker { margin: 0 0 var(--space-1); font-size: var(--text-xs); font-weight: 700; letter-spacing: var(--tracking-wider); text-transform: uppercase; color: var(--text-muted); }
.print-report-header h2 { margin: 0; font-size: var(--text-2xl); color: var(--text); }
.print-report-meta { margin: var(--space-1) 0 0; font-size: var(--text-sm); color: var(--text-secondary); }
.print-intro-snapshot { margin: 0 0 var(--space-5); }
.print-sources { margin-top: var(--space-4); padding-top: var(--space-4); border-top: 1px solid var(--border); }
.print-sources h3 { margin: 0 0 var(--space-2); font-size: var(--text-base); color: var(--text); }
.print-sources p { margin: 0 0 var(--space-2); font-size: var(--text-sm); color: var(--text-secondary); }
.print-state-summary-header h3 { margin: 0; font-size: var(--text-base); color: var(--text); }
.print-state-summary-note { margin: var(--space-1) 0 0; font-size: var(--text-xs); color: var(--text-muted); }
.print-state-summary-grid { display: grid; gap: var(--space-3); margin-top: var(--space-3); }
.print-state-summary-card { padding: var(--space-3); border: 1px solid var(--border); border-radius: var(--radius); background: #fff; }
.print-state-summary-kicker { margin: 0 0 var(--space-1); font-size: var(--text-xs); font-weight: 700; letter-spacing: var(--tracking-wide); text-transform: uppercase; color: var(--text-muted); }
.print-state-summary-count { margin: 0 0 var(--space-2); font-size: var(--text-sm); font-weight: 700; color: var(--text); }
.print-state-summary-list { margin: 0; font-size: 0.75rem; line-height: 1.45; color: var(--text-secondary); }
/* Key metrics — briefing banner (neutral info; dismiss persists in localStorage) */
.kpi-briefing-banner {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: var(--space-3) var(--space-4);
  align-items: flex-start;
  padding: var(--space-4) var(--space-5);
  margin: 0 0 var(--space-6);
  border-radius: var(--radius);
  border: 1px solid rgba(15, 23, 42, 0.14);
  background: linear-gradient(165deg, rgba(241, 245, 249, 0.95) 0%, rgba(248, 250, 252, 0.98) 100%);
  box-shadow: var(--shadow-xs);
}
.kpi-briefing-banner__inner {
  min-width: 0;
}
.kpi-briefing-banner__title {
  margin: 0 0 var(--space-2);
  font-size: var(--text-sm);
  font-weight: 700;
  color: var(--text);
  line-height: var(--leading-snug);
}
.kpi-briefing-banner__icon {
  margin-right: 0.35rem;
}
.kpi-briefing-banner__text {
  margin: 0;
  font-size: var(--text-sm);
  color: var(--text-secondary);
  line-height: var(--leading-relaxed);
  max-width: 72ch;
}
.kpi-briefing-banner__dismiss {
  flex-shrink: 0;
  min-height: 44px;
  min-width: 5.5rem;
  padding: var(--space-2) var(--space-3);
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--text-secondary);
  background: rgba(255, 255, 255, 0.85);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: background 0.15s var(--ease), border-color 0.15s var(--ease);
}
.kpi-briefing-banner__dismiss:hover {
  background: var(--bg-card);
  border-color: rgba(15, 23, 42, 0.2);
  color: var(--text);
}
.kpi-briefing-banner__dismiss:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 2px;
}
@media (max-width: 520px) {
  .kpi-briefing-banner {
    grid-template-columns: 1fr;
  }
  .kpi-briefing-banner__dismiss {
    justify-self: start;
  }
}
/* Shown only in browser print / Save as PDF — not on screen (avoids duplicate with live banner) */
.kpi-briefing-banner-print {
  display: none;
}

/* KPI Strip — flat cards, tabular numbers; Mark XI uses inner .kpi-strip-grid */
.kpi-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-6);
  padding: var(--space-12) 0;
  margin: var(--space-8) 0;
  border-bottom: 1px solid var(--border);
  background: var(--bg-card);
  border-top: 1px solid rgba(11, 103, 194, 0.16);
  border-bottom: 1px solid rgba(11, 103, 194, 0.18);
  border-radius: 14px;
  padding: var(--space-16) var(--space-4) var(--space-10);
}
.kpi-strip.kpi-strip--mark11 {
  display: block;
  padding: var(--space-6) var(--space-5) var(--space-7);
}
.kpi-strip-head {
  text-align: center;
  max-width: 40rem;
  margin: 0 auto var(--space-6);
}
.kpi-strip-heading {
  margin: 0 0 var(--space-2);
  font-size: clamp(1.35rem, 1rem + 1.5vw, 1.85rem);
  font-weight: 800;
  color: var(--hap-brand-deep, #003087);
  font-family: var(--hap-font-display);
  letter-spacing: -0.02em;
}
.kpi-strip-subline {
  margin: 0;
  font-size: var(--text-sm);
  color: var(--text-secondary);
  line-height: 1.5;
}
.kpi-strip-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-6);
  margin-top: var(--space-2);
}
.kpi-strip-grid > .kpi-card {
  min-width: 0;
  overflow: visible;
}
.kpi-strip-grid > .kpi-card .kpi-value {
  display: inline-block;
  padding-right: 0.08em; /* prevents last glyph clipping at card edge */
  white-space: nowrap;
}
@media (max-width: 900px) {
  .kpi-strip-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
}
@media (max-width: 480px) {
  .kpi-strip-grid { grid-template-columns: 1fr; }
}
.kpi-value--mega {
  font-size: clamp(2.85rem, 6vw, 4rem) !important;
  font-weight: 800 !important;
}
.kpi-impact {
  margin: var(--space-3) 0 0;
  padding-top: var(--space-3);
  border-top: 1px solid var(--border);
  font-size: var(--text-sm);
  color: var(--text-muted);
  line-height: 1.45;
  font-weight: 500;
}
.data-freshness { font-size: var(--text-xs); color: var(--text-muted); grid-column: 1 / -1; margin: var(--space-4) 0 0; }
.kpi-strip .kpi-card { min-height: 0; background: var(--bg-card); border: 1px solid var(--border); }
.kpi-card--market .kpi-value,
.kpi-card--oversight .kpi-value,
.kpi-card--pa .kpi-value { color: var(--primary); }
.kpi-card--pa { border-left: 3px solid var(--primary); }
.kpi-card--pa .kpi-value { color: var(--primary); font-weight: 600; }
.kpi-card--pa .kpi-label { color: var(--primary); }
@media (max-width: 900px) {
  .kpi-strip:not(.kpi-strip--mark11) { grid-template-columns: repeat(2, 1fr); gap: var(--space-4); padding: var(--space-8) 0; }
}
@media (max-width: 480px) {
  .kpi-strip:not(.kpi-strip--mark11) { grid-template-columns: 1fr; gap: var(--space-4); padding: var(--space-6) 0; }
}
.kpi-card { padding: var(--space-6); border-radius: var(--radius); background: var(--bg-card); border: 1px solid var(--border); box-shadow: var(--shadow-xs); transition: box-shadow 0.2s var(--ease), border-color 0.2s var(--ease), transform 0.2s var(--ease); }
.kpi-card:hover { box-shadow: var(--shadow-md); border-color: rgba(0, 114, 188, 0.22); transform: translateY(-1px); }
.kpi-card:focus-within { box-shadow: var(--shadow-md); border-color: rgba(0, 114, 188, 0.28); outline: none; }
.metric-impact {
  margin: var(--space-3) 0 0;
  font-size: var(--text-xs);
  color: var(--text-secondary);
  line-height: 1.45;
  max-width: 42ch;
}
.key-finding-benchmark {
  margin: var(--space-2) 0 0;
  font-size: var(--text-xs);
  color: var(--text-muted);
  line-height: 1.4;
}
.section-segue {
  margin: 0 0 var(--space-4);
  padding: var(--space-2) 0 var(--space-2) var(--space-3);
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-muted);
  border-left: 3px solid rgba(0, 114, 188, 0.35);
  max-width: 52ch;
}
.decision-badge--risk {
  background: rgba(185, 28, 28, 0.12);
  color: #991b1b;
  border: 1px solid rgba(185, 28, 28, 0.28);
}
.decision-badge--opportunity {
  background: rgba(22, 101, 52, 0.12);
  color: #166534;
  border: 1px solid rgba(22, 101, 52, 0.25);
}
.kpi-label { font-size: 0.78rem; font-weight: 600; letter-spacing: 0.02em; text-transform: none; color: var(--text-secondary); margin: 0 0 var(--space-1); }
.kpi-value { font-family: var(--font-mono); font-size: clamp(2.15rem, 4.2vw, 2.85rem); font-weight: 750; line-height: 1.02; letter-spacing: -0.015em; color: var(--text); font-variant-numeric: tabular-nums; }
/* BANs — Big Accent Numbers for hero stats */
.kpi-value.ban-stat,
.big-stat-value.ban-stat,
.stat-value.ban-stat {
  font-size: clamp(2.65rem, 5.5vw, 3.5rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1;
}

/* BANs in running copy — big accent numbers, topic-colored */
.ban-inline {
  display: inline-block;
  font-family: var(--font-mono);
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.03em;
  line-height: 1.15;
  font-size: clamp(1.3rem, 2.6vw, 1.7rem);
  vertical-align: baseline;
}
.ban-inline--finance { color: var(--chart-topic-finance); }
.ban-inline--insurance { color: var(--chart-topic-insurance); }
.ban-inline--policy { color: var(--chart-topic-policy); }
.ban-inline--operations { color: var(--chart-topic-operations); }

/* Executive insight layer — “what / why” under section heads */
.section-insight {
  margin: 0 0 var(--space-4);
  padding: var(--space-4);
  border-radius: var(--radius);
  border: 1px solid rgba(11, 103, 194, 0.1);
  background: rgba(255, 255, 255, 0.65);
  box-shadow: var(--shadow-xs);
}
.section-insight:last-child { margin-bottom: 0; }
.section-insight-label {
  margin: 0 0 var(--space-1);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.section-insight-text {
  margin: 0 0 var(--space-3);
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
  color: var(--text-secondary);
}
.section-insight-text:last-child { margin-bottom: 0; }
.map-hero-card .section-insight { margin-top: var(--space-2); }

/* Optional benchmark / context line under KPI strip */
.data-benchmark {
  grid-column: 1 / -1;
  margin: var(--space-2) 0 0;
  padding: var(--space-3) var(--space-4);
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
  color: var(--text-secondary);
  border-radius: var(--radius-sm);
  background: rgba(11, 103, 194, 0.04);
  border: 1px dashed rgba(11, 103, 194, 0.15);
}
.data-benchmark strong { color: var(--text); }

/* In-chart help: native title + button for screen readers */
.metric-help {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.1rem;
  height: 1.1rem;
  margin-left: 0.25rem;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--neutral-100);
  color: var(--text-muted);
  font-size: 0.65rem;
  font-weight: 700;
  line-height: 1;
  cursor: help;
  vertical-align: 0.15em;
}
.metric-help:hover { border-color: var(--primary); color: var(--primary); }

.methodology-lede {
  margin: 0 0 var(--space-4);
  max-width: 65ch;
  color: var(--text-secondary);
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
}

/* Data stewardship (methodology transparency) */
.data-stewardship-callout {
  margin: 0 0 var(--space-4);
  padding: var(--space-4);
  border-radius: var(--radius);
  background: var(--neutral-50, rgba(241, 245, 249, 0.9));
  border: 1px solid var(--border);
  border-left: 3px solid var(--hap-brand-primary, var(--primary));
}

.data-stewardship-subject {
  font-style: italic;
}

.methodology-section-wrap {
  display: block;
}

.methodology-crosslink {
  margin: var(--space-3) 0 0;
  font-size: var(--text-sm);
  color: var(--text-secondary);
  font-weight: 600;
  line-height: 1.45;
}
.methodology-crosslink a {
  color: var(--primary);
  font-weight: 700;
  text-underline-offset: 2px;
}

.methodology-section-wrap--canon {
  margin-top: var(--space-2);
}

.methodology-canon {
  margin-top: var(--space-3);
  padding: var(--space-4);
  border-radius: var(--radius-lg, 12px);
  border: 1px solid rgba(0, 114, 188, 0.12);
  background: linear-gradient(180deg, rgba(142, 216, 248, 0.08) 0%, #fff 38%);
}

.methodology-stewardship-callout {
  margin-bottom: var(--space-4) !important;
}

.methodology-sources-block,
.methodology-verification-block,
.methodology-limitations-block,
.methodology-supplement-block {
  margin: 0 0 var(--space-3);
  font-size: var(--text-sm);
  line-height: 1.5;
  color: var(--text-secondary);
  font-weight: 500;
}

.methodology-sources-block:last-child,
.methodology-verification-block:last-child,
.methodology-limitations-block:last-child,
.methodology-supplement-block:last-child {
  margin-bottom: 0;
}

.methodology-sources-block strong,
.methodology-verification-block strong,
.methodology-limitations-block strong {
  color: var(--text);
  font-weight: 700;
}

.methodology-supplement-block {
  font-size: 0.8125rem;
  color: var(--text-muted);
  padding-top: var(--space-2);
  border-top: 1px solid var(--border);
}

.methodology-supplement-block a {
  font-weight: 700;
  color: var(--primary);
  text-underline-offset: 2px;
}

.print-sources-title {
  margin: 0 0 var(--space-2);
  font-size: 1rem;
  font-weight: 700;
  color: var(--text);
}

.print-methodology-block {
  margin: 0 0 0.45rem;
  font-size: 0.82rem;
  line-height: 1.45;
  color: var(--text-secondary);
}

.print-methodology-block:last-child {
  margin-bottom: 0;
}

.print-methodology-block strong {
  color: var(--text);
  font-weight: 700;
}

.data-stewardship-title {
  margin: 0 0 var(--space-2);
  font-size: var(--text-sm);
  font-weight: 800;
  color: var(--text);
}

.data-stewardship-owner {
  margin: 0 0 var(--space-3);
  font-size: var(--text-sm);
  color: var(--text-secondary);
  font-weight: 700;
  line-height: var(--leading-relaxed);
}

.data-stewardship-subhead {
  margin: 0 0 var(--space-2);
  font-size: var(--text-sm);
  font-weight: 800;
  color: var(--text-secondary);
}

.data-stewardship-list {
  margin: 0;
  padding-left: var(--space-5);
  font-size: var(--text-sm);
  color: var(--text-secondary);
  line-height: var(--leading-relaxed);
}

.data-stewardship-list li {
  margin: 0.35rem 0;
}

.data-stewardship-contact {
  margin: var(--space-3) 0 0;
  font-size: var(--text-sm);
  color: var(--text-secondary);
  line-height: var(--leading-relaxed);
}

.data-stewardship-contact a {
  color: var(--hap-brand-primary, var(--primary));
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Verified stamp on headline stat cards */
.stat-verified {
  margin: 0;
  padding-top: var(--space-2);
  font-size: var(--text-2xs);
  color: var(--text-muted);
  font-style: normal;
  line-height: 1.4;
}

/* Policy context — v2: horizontal card scroller + SVG (4 milestones); accordion; IO active state */
.policy-timeline-card {
  overflow: visible;
}
.policy-timeline-kicker {
  margin: 0 0 var(--space-5);
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
  color: #64748b;
  text-align: center;
  max-width: 42rem;
  margin-left: auto;
  margin-right: auto;
}
.policy-timeline--v2 {
  position: relative;
  margin: var(--space-4) 0 0;
  padding: 1rem 1.1rem 1.15rem;
  border-radius: 14px;
  border: 1px solid rgba(0, 114, 188, 0.12);
  background: #f0f8fc;
  box-shadow: 0 4px 16px rgba(0, 114, 188, 0.06);
}
@supports (backdrop-filter: blur(1px)) {
  .policy-timeline--v2 {
    background: linear-gradient(165deg, rgba(255, 255, 255, 0.6) 0%, rgba(142, 216, 248, 0.12) 50%, rgba(0, 114, 188, 0.06) 100%);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7), 0 4px 16px rgba(0, 114, 188, 0.08);
  }
}
.policy-timeline-progress-bar {
  height: 4px;
  border-radius: 999px;
  background: rgba(11, 103, 194, 0.1);
  margin-bottom: var(--space-3);
  overflow: hidden;
}
.policy-timeline-progress-fill {
  --ptl-p: 0;
  height: 100%;
  width: 100%;
  transform-origin: left center;
  transform: scaleX(var(--ptl-p, 0));
  border-radius: inherit;
  background: linear-gradient(90deg, var(--primary), var(--chart-topic-insurance));
  transition: transform 0.6s var(--ease-smooth);
}
.policy-timeline-svg-wrap {
  display: block;
  width: 100%;
  height: 88px;
  margin-bottom: var(--space-4);
}
.policy-timeline-svg-wrap svg {
  display: block;
  width: 100%;
  height: 88px;
}
.policy-timeline-line-base {
  fill: none;
  stroke: rgba(69, 90, 100, 0.14);
  stroke-width: 5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.policy-timeline-line-anim {
  fill: none;
  stroke: url(#ptl-line-gradient-340b);
  stroke-width: 5;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: stroke-dashoffset 2.65s cubic-bezier(0.33, 1, 0.68, 1);
}
.policy-timeline-node-outer {
  transform-origin: center;
  transform-box: fill-box;
  opacity: 0;
  transform: scale(0.5);
  transition: opacity 0.55s var(--ease-smooth), transform 0.55s var(--ease-smooth);
}
.policy-timeline-node-inner {
  opacity: 0;
  transform-origin: center;
  transform-box: fill-box;
  transform: scale(0.3);
  transition: opacity 0.4s var(--ease-smooth), transform 0.4s var(--ease-smooth);
}
.policy-timeline-card.ptl-inview .policy-timeline-node-outer {
  opacity: 1;
  transform: scale(1);
}
.policy-timeline-card.ptl-inview .policy-timeline-node-inner {
  opacity: 1;
  transform: scale(1);
}
.policy-timeline-card.ptl-inview .policy-timeline-node-g--1 .policy-timeline-node-outer { transition-delay: 0.35s; }
.policy-timeline-card.ptl-inview .policy-timeline-node-g--1 .policy-timeline-node-inner { transition-delay: 0.45s; }
.policy-timeline-card.ptl-inview .policy-timeline-node-g--2 .policy-timeline-node-outer { transition-delay: 0.65s; }
.policy-timeline-card.ptl-inview .policy-timeline-node-g--2 .policy-timeline-node-inner { transition-delay: 0.75s; }
.policy-timeline-card.ptl-inview .policy-timeline-node-g--3 .policy-timeline-node-outer { transition-delay: 0.95s; }
.policy-timeline-card.ptl-inview .policy-timeline-node-g--3 .policy-timeline-node-inner { transition-delay: 1.05s; }
.policy-timeline-card.ptl-inview .policy-timeline-node-g--4 .policy-timeline-node-outer { transition-delay: 1.25s; }
.policy-timeline-card.ptl-inview .policy-timeline-node-g--4 .policy-timeline-node-inner { transition-delay: 1.35s; }
@media (prefers-reduced-motion: reduce) {
  .policy-timeline-line-anim { transition: none; }
  .policy-timeline-node-outer,
  .policy-timeline-node-inner { transition: none !important; opacity: 1 !important; transform: none !important; }
}
.policy-timeline-svg .policy-timeline-node-g {
  cursor: pointer;
  transition: transform 0.35s var(--ease-smooth), filter 0.35s var(--ease-smooth);
  transform-origin: center;
  transform-box: fill-box;
}
.policy-timeline-card.ptl-inview .policy-timeline-line-anim {
  animation: ptl-line-glow 4.5s ease-in-out infinite;
}
@keyframes ptl-line-glow {
  0%, 100% { filter: drop-shadow(0 0 2px rgba(11, 103, 194, 0.28)); stroke-opacity: 1; }
  50% { filter: drop-shadow(0 0 14px rgba(21, 101, 192, 0.45)); stroke-opacity: 0.92; }
}
@media (prefers-reduced-motion: reduce) {
  .policy-timeline-card.ptl-inview .policy-timeline-line-anim { animation: none !important; }
}

/* Milestone row: 4-up grid on wide screens (fits under SVG — no horizontal scroll); stack on smaller screens */
.policy-timeline-track {
  display: flex;
  flex-direction: row;
  gap: var(--space-3);
  overflow-x: auto;
  overflow-y: visible;
  padding: var(--space-2) var(--space-1) var(--space-4);
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}
@media (min-width: 1025px) {
  .policy-timeline-track {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.5rem;
    overflow-x: visible;
    overflow-y: visible;
    padding: 0.35rem 0 0;
    scroll-snap-type: none;
  }
}
.timeline-item:nth-child(1) {
  --tl-i: 0;
}
.timeline-item:nth-child(2) {
  --tl-i: 1;
}
.timeline-item:nth-child(3) {
  --tl-i: 2;
}
.timeline-item:nth-child(4) {
  --tl-i: 3;
}
@keyframes timeline-active-glow {
  0%,
  100% {
    box-shadow:
      0 4px 14px rgba(0, 114, 188, 0.1),
      0 1px 3px rgba(0, 114, 188, 0.08);
  }
  50% {
    box-shadow:
      0 6px 18px rgba(0, 114, 188, 0.14),
      0 2px 6px rgba(0, 114, 188, 0.1);
  }
}
.timeline-item {
  flex: 0 0 min(280px, 88vw);
  scroll-snap-align: start;
  position: relative;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(0, 114, 188, 0.1);
  border-radius: var(--radius);
  box-shadow: 0 2px 8px rgba(0, 114, 188, 0.04);
  padding: 0.55rem 0.6rem 0.65rem;
  transform: translate3d(0, 0, 0);
  transition:
    transform 0.35s var(--ease-smooth) calc(var(--tl-i, 0) * 40ms),
    box-shadow 0.35s var(--ease-smooth) calc(var(--tl-i, 0) * 40ms),
    border-color 0.25s var(--ease);
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 0;
}
@supports (backdrop-filter: blur(1px)) {
  .timeline-item {
    background: rgba(255, 255, 255, 0.72);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 2px 8px rgba(0, 114, 188, 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.8);
  }
}
/* Avoid permanent will-change layers on many tiles (hurts scroll compositing) */
.timeline-item:hover,
.timeline-item.is-active {
  will-change: transform, box-shadow;
}
.timeline-item::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--hap-ow-blue), var(--hap-ow-soft));
  opacity: 0;
  transition: opacity 0.25s var(--ease);
  pointer-events: none;
}
@media (min-width: 1025px) {
  .timeline-item {
    flex: initial;
    width: auto;
    scroll-snap-align: unset;
  }
}
.timeline-item:hover {
  transform: translate3d(0, -3px, 0);
  border-color: rgba(0, 114, 188, 0.35);
  box-shadow: 0 12px 28px rgba(0, 114, 188, 0.15), inset 0 1px 0 rgba(255, 255, 255, 1);
}
.timeline-item:hover::before {
  opacity: 1;
}
.timeline-item.is-active {
  border-color: rgba(0, 114, 188, 0.35);
  box-shadow:
    0 4px 14px rgba(0, 114, 188, 0.1),
    0 1px 3px rgba(0, 114, 188, 0.08);
}
.timeline-item.is-active:not(:hover) {
  animation: timeline-active-glow 3.5s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
  .timeline-item.is-active:not(:hover) {
    animation: none;
  }
}
.policy-timeline-card[data-ptl-hover="1"] .policy-timeline-node-g--1,
.policy-timeline-card[data-ptl-hover="2"] .policy-timeline-node-g--2,
.policy-timeline-card[data-ptl-hover="3"] .policy-timeline-node-g--3,
.policy-timeline-card[data-ptl-hover="4"] .policy-timeline-node-g--4 {
  transform: scale(1.14);
  filter: drop-shadow(0 4px 12px rgba(11, 103, 194, 0.35));
}
.policy-timeline-card[data-ptl-hover="1"] .timeline-item[data-timeline-index="1"],
.policy-timeline-card[data-ptl-hover="2"] .timeline-item[data-timeline-index="2"],
.policy-timeline-card[data-ptl-hover="3"] .timeline-item[data-timeline-index="3"],
.policy-timeline-card[data-ptl-hover="4"] .timeline-item[data-timeline-index="4"] {
  transform: translate3d(0, -3px, 0);
  border-color: rgba(0, 114, 188, 0.35);
  box-shadow: 0 12px 28px rgba(0, 114, 188, 0.15), inset 0 1px 0 rgba(255, 255, 255, 1);
}
.policy-timeline-card[data-ptl-hover="1"] .timeline-item[data-timeline-index="1"]::before,
.policy-timeline-card[data-ptl-hover="2"] .timeline-item[data-timeline-index="2"]::before,
.policy-timeline-card[data-ptl-hover="3"] .timeline-item[data-timeline-index="3"]::before,
.policy-timeline-card[data-ptl-hover="4"] .timeline-item[data-timeline-index="4"]::before {
  opacity: 1;
}
.timeline-item__header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
  width: 100%;
  padding: 0;
  margin: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  text-align: left;
  font: inherit;
  color: inherit;
}
.timeline-item__title {
  flex: 1 1 auto;
  font-size: clamp(0.68rem, 0.9vw, 0.82rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--text);
  line-height: 1.22;
  min-width: 0;
  word-break: break-word;
}
.timeline-item__date {
  flex-shrink: 0;
  font-family: var(--font-sans);
  font-variant-numeric: tabular-nums;
  font-size: clamp(0.62rem, 0.85vw, 0.74rem);
  font-weight: 800;
  letter-spacing: 0.02em;
  text-transform: none;
  color: var(--text);
  background: rgba(255, 255, 255, 0.9);
  padding: 0.22rem 0.5rem;
  border-radius: 10px;
  border: 1px solid rgba(15, 23, 42, 0.14);
  box-shadow: none;
}
.timeline-item:nth-child(2) .timeline-item__date {
  border-color: rgba(69, 90, 100, 0.25);
}
.timeline-item:nth-child(3) .timeline-item__date {
  border-color: rgba(74, 20, 140, 0.22);
}
.timeline-item:nth-child(4) .timeline-item__date {
  border-color: rgba(13, 71, 161, 0.25);
}

.timeline-item__header {
  gap: 0.65rem;
}

.timeline-item__header[aria-expanded="true"] .timeline-item__date {
  border-color: rgba(11, 103, 194, 0.38);
  background: rgba(11, 103, 194, 0.08);
}
.timeline-item__chev {
  width: 0.5rem;
  height: 0.5rem;
  border-right: 2px solid var(--text-muted);
  border-bottom: 2px solid var(--text-muted);
  transform: rotate(45deg);
  transition: transform 0.3s var(--ease-smooth);
  flex-shrink: 0;
}
.timeline-item__header[aria-expanded="true"] .timeline-item__chev {
  transform: rotate(225deg);
  margin-top: 0.2rem;
}
.timeline-item__lede {
  margin: 0;
  font-size: clamp(0.68rem, 0.9vw, 0.82rem);
  line-height: 1.35;
  color: var(--text);
  font-weight: 600;
}
.timeline-item__impact {
  margin: 0.4rem 0 0;
  font-size: clamp(0.6rem, 0.82vw, 0.74rem);
  line-height: 1.4;
  color: var(--text-muted);
  font-weight: 500;
}
.timeline-item__impact-kicker {
  font-weight: 700;
  color: var(--text-secondary);
}
.timeline-item__panel {
  margin: 0;
  padding-top: var(--space-2);
  border-top: 1px solid var(--border);
}
.timeline-item__panel[hidden] {
  display: none !important;
}
.timeline-item__detail {
  margin: 0;
  font-size: clamp(0.62rem, 0.9vw, 0.74rem);
  line-height: 1.45;
  color: var(--text-secondary);
}
#policy-milestones.scroll-reveal {
  transition: opacity 1.1s var(--ease-smooth), transform 1.1s var(--ease-smooth);
}
@media (max-width: 1024px) {
  .policy-timeline-svg-wrap {
    display: none;
  }
  .policy-timeline-progress-bar {
    margin-bottom: var(--space-2);
  }
  .policy-timeline--v2 {
    padding: 0.85rem 0.9rem 1rem;
  }
  .policy-timeline-track {
    flex-direction: column;
    overflow-x: visible;
    scroll-snap-type: none;
    padding-left: var(--space-3);
    border-left: 3px solid rgba(0, 114, 188, 0.2);
  }
  .timeline-item {
    flex: none;
    width: 100%;
    scroll-snap-align: unset;
    padding: 0.75rem 0.85rem 0.85rem;
    gap: 0.45rem;
  }
  .timeline-item__title {
    font-size: clamp(0.78rem, 2.4vw, 0.95rem);
  }
  .timeline-item__date {
    font-size: clamp(0.6875rem, 1.8vw, 0.82rem);
    padding: 0.26rem 0.45rem;
  }
  .timeline-item__lede {
    font-size: clamp(0.72rem, 2vw, 0.88rem);
  }
  .timeline-item__detail {
    font-size: clamp(0.6875rem, 1.9vw, 0.82rem);
  }
}

/* Advanced-only blocks (simulators, optional policy context) */
.dashboard-advanced-only { display: block; }
.basic-dashboard .dashboard-advanced-only { display: none !important; }

/* OW-style section bands — very light backgrounds alternate to separate major blocks */
.ow-section {
  padding: var(--space-3) clamp(var(--space-3), 2.3vw, var(--space-5));
  margin-bottom: var(--space-3);
  border-radius: var(--radius-lg);
  border: 1px solid var(--hap-border-default, rgba(11, 103, 194, 0.06));
  background: var(--ow-band-a);
  box-shadow: var(--hap-shadow-xs, 0 1px 2px rgba(0, 0, 0, 0.04));
}
.ow-section--band-a { background: var(--ow-band-a); }
.ow-section--band-b { background: var(--ow-band-b); }
.ow-section--band-hap {
  background: var(--ow-band-hap);
  border-top: 1px solid rgba(11, 103, 194, 0.14);
  border-bottom: 1px solid rgba(11, 103, 194, 0.1);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.55);
}
/* Merge with legacy strip styles so band tints win over flat neutrals */
.key-findings-strip.ow-section {
  background: var(--ow-band-b);
  border-color: rgba(11, 103, 194, 0.1);
}
.exec-takeaway.ow-section {
  background: var(--ow-band-a);
}
.intro-section.ow-section { margin-bottom: var(--space-2); }
.map-hero-section.ow-section { margin-top: var(--space-3); margin-bottom: var(--space-4); }
.kpi-strip.ow-section { margin-top: var(--space-2); }
/* Full cards that are also section bands: keep a single padding rhythm */
.card.ow-section {
  padding: var(--space-5);
  margin-bottom: var(--space-5);
}
.pa-impact-mode-section.ow-section,
.impact-simulator-section.ow-section {
  margin-top: var(--space-4);
}

/* 340B executive surfaces: cool neutrals replace OW “glass blue” bands (HAP flagship band unchanged) */
.dashboard .ow-section:not(.ow-section--band-hap) {
  background: var(--hap-surface-raised, #fff);
  border-color: var(--hap-separator, rgba(60, 60, 67, 0.12));
  box-shadow: var(--hap-shadow-xs, 0 1px 2px rgba(0, 0, 0, 0.04));
}
.dashboard .ow-section--band-a {
  background: var(--hap-surface-raised, #fff);
}
.dashboard .ow-section--band-b {
  background: var(--hap-surface-subtle, #ebebef);
}
.dashboard .key-findings-strip.ow-section {
  background: var(--hap-surface-subtle, #ebebef);
  border-color: var(--hap-separator, rgba(60, 60, 67, 0.12));
}
.dashboard .exec-takeaway.ow-section {
  background: var(--hap-surface-raised, #fff);
}

/* Performance semantics on stat tiles */
.stat-value.stat--perf-negative,
.stat-value.ban-stat.stat--perf-negative {
  color: var(--chart-perf-negative);
}
.kpi-card--market .kpi-value { color: var(--chart-topic-insurance); }
.kpi-card--benefit .kpi-value { color: var(--chart-topic-finance); }
.kpi-card--oversight .kpi-value { color: var(--chart-topic-policy); }
.kpi-card--pa .kpi-value { color: var(--primary); }
@media (min-width: 768px) { .kpi-value { font-size: clamp(2rem, 4vw, 2.5rem); } }
.kpi-value.primary { color: var(--primary); }
.kpi-card:has(.kpi-value.primary) { border-left: 3px solid var(--primary); }
.kpi-number { font-size: var(--text-2xl); font-weight: 600; font-variant-numeric: tabular-nums; }
.kpi-desc { font-size: 0.875rem; color: var(--text-secondary); margin-top: 0.35rem; line-height: 1.25; max-width: 14em; font-weight: 500; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.kpi-meaning { font-size: 0.8125rem; color: var(--text-muted); margin-top: 0.4rem; line-height: 1.35; max-width: 16em; font-weight: 500; }
.kpi-label { color: var(--text-secondary); }

/* Key findings — BAN stat cards */
.key-findings-strip { grid-column: 1 / -1; margin-bottom: var(--dash-section-y, var(--space-6)); padding: var(--space-4) var(--space-4); background: var(--hap-surface-subtle, #ebebef); border: 1px solid var(--hap-separator, rgba(60, 60, 67, 0.12)); border-radius: var(--radius-lg); box-shadow: var(--hap-shadow-xs, var(--shadow-xs)); }
.key-findings-heading { display: flex; align-items: center; gap: var(--space-3); margin-bottom: var(--space-4); flex-wrap: wrap; }
.key-findings-heading-text { flex: 1; min-width: 0; }
.key-findings-eyebrow { margin: 0 0 0.2rem; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; color: var(--text-muted); }
.key-findings-icon { display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; flex-shrink: 0; color: var(--primary); margin-top: 0.15rem; }
.key-findings-icon svg { width: 22px; height: 22px; }
.key-findings-title { margin: 0; font-size: var(--hap-type-h2, clamp(1.15rem, 2.5vw, 1.35rem)); font-weight: 700; letter-spacing: var(--tracking-tight); color: var(--text); line-height: var(--hap-leading-tight, var(--leading-tight)); }
.key-findings-subline { margin: 0.25rem 0 0; font-size: var(--text-sm); color: var(--hap-label-secondary, var(--text-secondary)); font-weight: 500; max-width: 34rem; line-height: var(--hap-leading-dek, 1.52); }
.key-findings-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-3); align-items: stretch; }
@media (max-width: 1100px) {
  .key-findings-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .key-findings-grid { grid-template-columns: 1fr; }
}
.key-finding-card {
  background: var(--hap-surface-raised, #fff);
  border: 1px solid var(--hap-separator, rgba(60, 60, 67, 0.12));
  border-radius: var(--radius, 12px);
  padding: var(--space-4);
  box-shadow: var(--hap-shadow-xs, 0 1px 2px rgba(0, 0, 0, 0.04));
  transition: border-color 0.2s var(--ease), box-shadow 0.2s var(--ease);
  min-height: 0;
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: visible;
}
.key-finding-card:hover {
  box-shadow: var(--hap-shadow-xs, 0 1px 2px rgba(0, 0, 0, 0.04));
  border-color: rgba(0, 114, 188, 0.22);
  transform: none;
}
.key-finding-card.hap-card-interactive:hover {
  transform: translateY(-2px);
  box-shadow: var(--hap-shadow-sm, 0 2px 8px rgba(0, 0, 0, 0.05));
  border-color: rgba(0, 114, 188, 0.28);
}
.key-finding-card:focus-within {
  box-shadow: var(--hap-shadow-xs, 0 1px 2px rgba(0, 0, 0, 0.04));
  border-color: rgba(0, 114, 188, 0.35);
  outline: none;
}
@media (prefers-reduced-motion: reduce) {
  .kpi-card:hover,
  .key-finding-card:hover { transform: none; }
}
.key-finding-card--policy { border-top: 3px solid var(--chart-topic-policy); }
.key-finding-card--finance { border-top: 3px solid var(--chart-topic-finance); }
.key-finding-card--pa { border-top: 3px solid var(--primary); }
.key-finding-card--market { border-top: 3px solid var(--chart-topic-insurance); }
.key-finding-label {
  margin: 0 0 var(--space-2);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--hap-label-tertiary, #64748b);
  line-height: 1.3;
  display: block;
}
.key-findings-grid > .key-finding-card > .key-finding-label {
  min-height: calc(0.7rem * 1.3 * 3);
  display: flex;
  align-items: flex-end;
}
.key-finding-label .decision-badge { text-transform: uppercase; letter-spacing: 0.04em; }
.key-finding-value.ban-stat { font-size: clamp(2.2rem, 4.5vw, 3rem); font-weight: 800; letter-spacing: -0.03em; line-height: 0.95; margin: 0; white-space: nowrap; }
@media (max-width: 900px) {
  .key-finding-value.ban-stat {
    white-space: normal;
    overflow-wrap: anywhere;
  }
}
.ban-stat--policy { color: var(--chart-topic-policy); }
.ban-stat--policy-muted { color: #64748b; }
.ban-stat--finance { color: var(--chart-topic-finance); }
.ban-stat--pa { color: var(--primary); }
.ban-stat--market { color: var(--chart-topic-insurance); }
.key-finding-meta { margin: 0.2rem 0 0; font-size: var(--text-xs); font-weight: 600; color: var(--text-muted); }
.key-finding-caption { margin: 0.25rem 0 0; font-size: 0.78rem; font-weight: 700; color: var(--text-secondary); line-height: 1.2; text-transform: uppercase; letter-spacing: 0.02em; }
.key-finding-split { display: flex; align-items: flex-start; justify-content: center; gap: var(--space-2); margin: var(--space-1) 0 var(--space-2); }
.key-finding-split-cell { flex: 1; min-width: 0; text-align: center; display: flex; flex-direction: column; align-items: center; }
.key-finding-split-divider { width: 1px; background: linear-gradient(180deg, transparent, var(--border), transparent); flex-shrink: 0; align-self: stretch; }
.key-finding-split .key-finding-value { font-size: clamp(1.95rem, 3.8vw, 2.55rem); line-height: 1; }
.key-finding-impact {
  margin: auto 0 0;
  padding-top: var(--space-2);
  font-size: 0.82rem;
  color: var(--hap-label-secondary, #424245);
  font-weight: 500;
  line-height: 1.35;
  border-top: 1px solid var(--hap-separator, rgba(60, 60, 67, 0.12));
}
.key-finding-source {
  margin: var(--space-2) 0 0;
  padding-top: var(--space-2);
  font-size: 0.72rem;
  line-height: 1.4;
  color: var(--text-muted, #5b6470);
  font-weight: 600;
  border-top: 1px dashed rgba(0, 114, 188, 0.18);
}
.key-finding-benchmark { display: none; }

/* Link from key findings to full provenance table */
.hap-sources-strip {
  margin: var(--space-4) 0 0;
  padding: var(--space-3) var(--space-4);
  max-width: 72ch;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: var(--text-secondary);
  font-weight: 500;
  background: rgba(0, 114, 188, 0.06);
  border: 1px solid rgba(0, 114, 188, 0.12);
  border-radius: var(--radius-lg, 12px);
}
.hap-sources-strip__link {
  font-weight: 700;
  color: var(--primary, #0072bc);
  text-underline-offset: 2px;
}
.hap-sources-strip__link:hover { color: var(--hap-brand-accent, #00aeef); }
.hap-sources-strip code {
  font-size: 0.88em;
  font-family: ui-monospace, "Cascadia Code", monospace;
  background: rgba(0, 114, 188, 0.08);
  padding: 0.1em 0.3em;
  border-radius: 4px;
}

/* Stat provenance band — executive / Strategic Analytics traceability */
.hap-stat-provenance__head { margin: 0 0 var(--space-5); max-width: 72ch; }
.hap-stat-provenance__eyebrow {
  margin: 0 0 0.25rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.hap-stat-provenance__title {
  margin: 0 0 var(--space-2);
  font-size: var(--hap-type-h2, clamp(1.15rem, 2.5vw, 1.35rem));
  font-weight: 700;
  letter-spacing: var(--tracking-tight);
  color: var(--text);
  line-height: var(--hap-leading-tight, var(--leading-tight));
}
.hap-stat-provenance__dek {
  margin: 0;
  font-size: var(--text-sm);
  color: var(--text-secondary);
  line-height: 1.45;
  font-weight: 500;
}
.hap-provenance-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg, 12px);
  background: var(--bg-card, #fff);
  box-shadow: var(--shadow-xs, 0 1px 2px rgba(0, 48, 135, 0.06));
}
.hap-provenance-table {
  width: 100%;
  min-width: 36rem;
  border-collapse: collapse;
  font-size: var(--text-sm);
  font-variant-numeric: tabular-nums;
}
.hap-provenance-table th,
.hap-provenance-table td {
  padding: var(--space-3) var(--space-4);
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid var(--border);
}
.hap-provenance-table th {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-muted);
  background: rgba(142, 216, 248, 0.14);
}
.hap-provenance-table tbody tr:last-child td,
.hap-provenance-table tbody tr:last-child th {
  border-bottom: none;
}
.hap-provenance-table a { color: var(--primary, #0072bc); font-weight: 600; text-underline-offset: 2px; }
.hap-provenance-table a:hover { color: var(--hap-brand-accent, #00aeef); }
.hap-provenance-table code {
  font-size: 0.85em;
  font-family: ui-monospace, "Cascadia Code", monospace;
  background: rgba(0, 114, 188, 0.06);
  padding: 0.12em 0.35em;
  border-radius: 4px;
}
.hap-stat-provenance__note {
  margin: var(--space-4) 0 0;
  font-size: var(--text-sm);
  color: var(--text-secondary);
  line-height: 1.45;
  font-weight: 500;
  max-width: 68ch;
}

/* Data sources — compact panel nested under methodology (expand for full table) */
.hap-data-sources-compact {
  margin-top: var(--space-3);
  scroll-margin-top: calc(var(--dashboard-header-offset, 96px) + 10px);
}
.hap-data-sources-compact__panel {
  border: 1px solid var(--border);
  border-radius: var(--radius-lg, 12px);
  background: var(--bg-card, #fff);
  box-shadow: var(--shadow-xs, 0 1px 2px rgba(0, 48, 135, 0.05));
}
.hap-data-sources-compact__summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.65rem;
  padding: var(--space-2) var(--space-3);
  min-height: 44px;
  font-size: var(--text-sm);
  color: var(--text);
}
.hap-data-sources-compact__summary::-webkit-details-marker { display: none; }
.hap-data-sources-compact__panel[open] > .hap-data-sources-compact__summary {
  border-bottom: 1px solid var(--border);
  background: rgba(142, 216, 248, 0.08);
}
.hap-data-sources-compact__summary-title { font-weight: 700; color: var(--text); }
.hap-data-sources-compact__summary-hint {
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--text-muted);
}
.hap-data-sources-compact__body { padding: var(--space-2) var(--space-3) var(--space-3); }
.hap-data-sources-compact__lede {
  margin: 0 0 var(--space-2);
  font-size: 0.8125rem;
  line-height: 1.4;
  color: var(--text-secondary);
  font-weight: 500;
}
.hap-provenance-table-wrap--compact {
  margin: 0;
  border-radius: var(--radius-md, 8px);
  box-shadow: none;
  border-color: rgba(0, 114, 188, 0.12);
}
.hap-provenance-table--compact {
  min-width: 0;
  font-size: 0.78rem;
}
.hap-provenance-table--compact th,
.hap-provenance-table--compact td {
  padding: var(--space-2) var(--space-2);
  vertical-align: top;
}
.hap-provenance-table--compact th {
  font-size: 0.65rem;
}

@media (max-width: 768px) {
  .hap-provenance-table { min-width: 0; font-size: 0.8125rem; }
  .hap-provenance-table th,
  .hap-provenance-table td { padding: var(--space-2) var(--space-3); }
  .hap-provenance-table--compact th,
  .hap-provenance-table--compact td { padding: 0.45rem 0.5rem; }
}
@media print {
  .hap-provenance-table-wrap {
    overflow: visible;
    box-shadow: none;
    border-color: #ccc;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  .hap-provenance-table th { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
.glossary-strip { margin-top: var(--space-5); padding-top: var(--space-4); border-top: 1px solid var(--border); }
.glossary-strip-title { margin: 0 0 var(--space-2); font-size: var(--text-xs); font-weight: 600; letter-spacing: var(--tracking-wider); text-transform: uppercase; color: var(--text-muted); }
.glossary-dl { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: var(--space-2) var(--space-4); font-size: var(--text-sm); color: var(--text-secondary); line-height: var(--leading-relaxed); }
.glossary-dl dt { margin: 0; font-weight: 700; color: var(--text); }
.glossary-dl dd { margin: 0; }
.stat-impact { font-size: var(--text-sm); color: var(--text-muted); margin-top: var(--space-2); line-height: var(--leading-relaxed); font-weight: 500; }

.exec-takeaway {
  padding: var(--space-4);
  background: var(--neutral-100);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  font-size: 1.08rem;
  line-height: 1.5;
  margin-bottom: var(--space-8);
}
.exec-takeaway strong { color: var(--primary); font-weight: 700; }
.exec-takeaway--closing {
  margin-top: var(--space-6);
  margin-bottom: 0;
  border-left: 4px solid var(--hap-brand-primary, var(--primary));
  background: linear-gradient(90deg, rgba(0, 114, 188, 0.08) 0%, var(--neutral-100) 48%);
}

/* Main grid — aligned content width with map */
/* Desktop: centered column with side breathing room. Mobile: side padding is ZERO (handled by .dashboard-inner). */
.dashboard main { padding: var(--space-6) 0 var(--dash-main-pad-y-end, var(--space-10)); max-width: var(--content-max); margin-left: auto; margin-right: auto; }
@media (min-width: 901px) {
  .dashboard main { padding-left: var(--space-6); padding-right: var(--space-6); }
}
.dashboard .dashboard-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: var(--dash-grid-gap, var(--space-3)); align-items: start; }
@media (max-width: 768px) {
  .dashboard .dashboard-grid { grid-template-columns: 1fr; }
}
.nav-section-block {
  position: relative;
  border-top: 1px solid var(--hap-separator, rgba(0, 48, 135, 0.12));
  padding-top: var(--space-3);
  margin-top: var(--space-5);
}
.nav-section-block::before {
  content: attr(data-nav-label);
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-bottom: var(--space-3);
  padding: 0.24rem 0.6rem;
  border-radius: 999px;
  border: 1px solid rgba(0, 48, 135, 0.18);
  background: rgba(0, 48, 135, 0.06);
  color: var(--hap-brand-deep, #003087);
  font-family: var(--hap-font-display);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.policy-anchor-banner {
  grid-column: 1 / -1;
  padding: var(--space-4) var(--space-5) var(--space-2);
}
.policy-anchor-title {
  margin: 0 0 var(--space-1);
  font-size: clamp(1.3rem, 1.05rem + 1vw, 1.8rem);
  color: var(--text);
  letter-spacing: var(--tracking-tight);
}
.policy-anchor-subtitle {
  margin: 0;
  max-width: 62ch;
  font-size: var(--text-sm);
  color: var(--text-secondary);
}
@media (max-width: 768px) {
  .nav-section-block {
    margin-top: var(--space-5);
    padding-top: var(--space-3);
  }
  .nav-section-block::before {
    font-size: 0.65rem;
    letter-spacing: 0.05em;
  }
  .policy-anchor-banner {
    padding-left: var(--space-3);
    padding-right: var(--space-3);
  }
}
@media print {
  .nav-section-block::before {
    display: none !important;
  }
  .policy-anchor-banner {
    padding: 0;
    border: 0;
    margin-top: 0;
  }
}
.supporting-section, #community-benefit { content-visibility: auto; contain-intrinsic-size: auto 300px; }
/* Below-fold sections: defer layout/paint until near viewport (print overrides in print block) */
.kpi-strip, #access, #pa-safeguards, .pa-impact-mode-section, .impact-simulator-section, .counterarguments-wrap, .methodology-wrap, .site-footer { content-visibility: auto; contain-intrinsic-size: auto 200px; }
.card {
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid rgba(0, 114, 188, 0.09);
  padding: var(--space-6);
  box-shadow: 0 4px 20px rgba(0, 114, 188, 0.05);
  position: relative;
  align-self: start;
  transition: box-shadow 0.2s var(--ease), border-color 0.2s var(--ease);
}
.card:hover { box-shadow: var(--shadow-sm); border-color: var(--border-hover); }
.card-heading { display: flex; align-items: flex-start; justify-content: flex-start; flex-direction: row; gap: var(--space-4); margin-bottom: var(--space-4); }
.card-heading-text { flex: 1; min-width: 0; }
.card-subtitle { font-size: var(--text-sm); color: var(--text-secondary); margin: var(--space-1) 0 0; font-weight: 500; }
.card-title { font-size: var(--text-xs); font-weight: 600; letter-spacing: var(--tracking-wider); text-transform: uppercase; color: var(--text-muted); margin: 0 0 var(--space-1); }
.card h2 { font-size: var(--text-lg); font-weight: 600; color: var(--text); margin: 0 0 var(--space-2); letter-spacing: var(--tracking-tight); line-height: var(--leading-tight); }
.card p, .card li { font-size: var(--text-base); line-height: var(--leading-relaxed); color: var(--text-secondary); margin: 0 0 var(--space-2); }
.card > *:last-child { margin-bottom: 0; }
.card ul { margin: var(--space-2) 0 0; padding-left: var(--space-5); }

/* Card icons — left-aligned */
.card-icon { order: -1; flex-shrink: 0; width: 48px; height: 48px; border-radius: var(--radius); display: flex; align-items: center; justify-content: center; transition: transform 0.2s var(--ease); }
.card:hover .card-icon { transform: none; }
.card-icon svg { width: 24px; height: 24px; }
.card-icon--pill { background: var(--primary-muted); }
.card-icon--pill svg { stroke: var(--primary); fill: none; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.card-icon--shield { background: var(--accent-muted); }
.card-icon--shield svg { stroke: var(--accent); fill: var(--accent); fill-opacity: 0.2; stroke-width: 1.5; stroke-linejoin: round; }
.card-icon--map, .card-icon--people, .card-icon--rx, .card-icon--check { background: var(--primary-muted); }
.card-icon--map svg, .card-icon--people svg, .card-icon--rx svg, .card-icon--check svg { stroke: var(--primary); fill: none; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.card-icon--scale, .card-icon--heart { background: var(--accent-muted); }
.card-icon--scale svg, .card-icon--heart svg { stroke: var(--accent); fill: var(--accent); fill-opacity: 0.15; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }

/* ========== Dashboard icon system: shared SVG gradients (hap-igrad-* in HTML) + glass tiles ========== */
.hap-icon-defs {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
  clip-path: inset(50%);
}

.dashboard .card-icon {
  background: linear-gradient(165deg, rgba(255, 255, 255, 0.94) 0%, rgba(255, 255, 255, 0.52) 100%);
  border: 1px solid rgba(255, 255, 255, 0.9);
  box-shadow:
    0 2px 14px rgba(0, 114, 188, 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.98),
    inset 0 -2px 8px rgba(0, 114, 188, 0.05);
  backdrop-filter: blur(14px) saturate(170%);
  -webkit-backdrop-filter: blur(14px) saturate(170%);
}

.dashboard .card-icon svg {
  overflow: visible;
}

.dashboard .card-icon--pill {
  background: linear-gradient(165deg, rgba(0, 114, 188, 0.12) 0%, rgba(255, 255, 255, 0.76) 100%);
}

.dashboard .card-icon--pill svg rect {
  stroke: url(#hap-igrad-access);
  fill: rgba(255, 255, 255, 0.38);
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.dashboard .card-icon--shield {
  background: linear-gradient(165deg, rgba(0, 114, 188, 0.1) 0%, rgba(255, 255, 255, 0.78) 100%);
}

.dashboard .card-icon--shield svg path {
  fill: url(#hap-igrad-access);
  fill-opacity: 0.22;
  stroke: url(#hap-igrad-access);
  stroke-width: 1.45;
  stroke-linejoin: round;
}

.dashboard .card-icon--map,
.dashboard .card-icon--people,
.dashboard .card-icon--rx {
  background: linear-gradient(165deg, rgba(0, 114, 188, 0.08) 0%, rgba(255, 255, 255, 0.8) 100%);
}

.dashboard .card-icon--map svg path {
  stroke: url(#hap-igrad-access);
  fill: url(#hap-igrad-access);
  fill-opacity: 0.14;
  stroke-width: 1.5;
  stroke-linejoin: round;
}

.dashboard .card-icon--map svg circle {
  stroke: url(#hap-igrad-access);
  fill: url(#hap-igrad-access);
  fill-opacity: 0.38;
  stroke-width: 1.2;
}

.dashboard .card-icon--people svg path,
.dashboard .card-icon--people svg circle,
.dashboard .card-icon--rx svg path {
  stroke: url(#hap-igrad-access);
  fill: none;
  stroke-width: 1.55;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.dashboard .card-icon--scale {
  background: linear-gradient(165deg, rgba(0, 174, 239, 0.1) 0%, rgba(255, 255, 255, 0.78) 100%);
}

.dashboard .card-icon--scale svg path {
  stroke: url(#hap-igrad-policy);
  fill: url(#hap-igrad-policy);
  fill-opacity: 0.12;
  stroke-width: 1.45;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.dashboard .card-icon--heart {
  background: linear-gradient(165deg, rgba(251, 113, 133, 0.12) 0%, rgba(255, 255, 255, 0.8) 100%);
}

.dashboard .card-icon--heart svg path {
  fill: url(#hap-igrad-benefit);
  stroke: url(#hap-igrad-benefit);
  stroke-width: 1.15;
  fill-opacity: 0.94;
  stroke-linejoin: round;
}

.dashboard .card-icon--check {
  background: linear-gradient(165deg, rgba(0, 169, 164, 0.1) 0%, rgba(255, 255, 255, 0.8) 100%);
}

.dashboard .card-icon--check svg path,
.dashboard .card-icon--check svg circle {
  stroke: url(#hap-igrad-finance);
  fill: none;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

#duplicate-discount-national .card-icon--check svg path,
#duplicate-discount-national .card-icon--check svg circle {
  stroke: url(#hap-igrad-policy);
}

.dashboard .hap-ask-item-icon {
  border: 1px solid rgba(255, 255, 255, 0.88);
  box-shadow:
    0 2px 12px rgba(0, 114, 188, 0.09),
    inset 0 1px 0 rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(12px) saturate(175%);
  -webkit-backdrop-filter: blur(12px) saturate(175%);
}

.dashboard .hap-ask-item-icon svg {
  stroke: none;
}

.dashboard .hap-ask-item-icon svg :is(path, circle, line, polyline, rect) {
  fill: none;
  stroke-width: 1.85;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.dashboard .hap-ask-item--policy .hap-ask-item-icon svg :is(path, circle, line, polyline, rect) {
  stroke: url(#hap-igrad-policy);
}

.dashboard .hap-ask-item--partnership .hap-ask-item-icon svg :is(path, circle, line, polyline, rect) {
  stroke: url(#hap-igrad-access);
}

.dashboard .hap-ask-item--access .hap-ask-item-icon svg :is(path, circle, line, polyline, rect) {
  stroke: url(#hap-igrad-risk);
}

.dashboard .key-findings-icon {
  color: transparent;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: linear-gradient(165deg, rgba(255, 255, 255, 0.93) 0%, rgba(255, 255, 255, 0.5) 100%);
  border: 1px solid rgba(255, 255, 255, 0.88);
  box-shadow:
    0 2px 12px rgba(0, 114, 188, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(12px) saturate(170%);
  -webkit-backdrop-filter: blur(12px) saturate(170%);
}

.dashboard .key-findings-icon svg {
  width: 20px;
  height: 20px;
}

.dashboard .key-findings-icon svg :is(circle, path) {
  stroke: url(#hap-igrad-access);
  fill: none;
  stroke-width: 1.85;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.dashboard .trends-icon {
  border: 1px solid rgba(255, 255, 255, 0.88);
  box-shadow:
    0 2px 12px rgba(0, 114, 188, 0.07),
    inset 0 1px 0 rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(12px) saturate(170%);
  -webkit-backdrop-filter: blur(12px) saturate(170%);
  background: linear-gradient(165deg, rgba(255, 255, 255, 0.92) 0%, rgba(255, 255, 255, 0.48) 100%);
}

.dashboard .trends-icon svg :is(path, circle) {
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
}

.dashboard .trends-card--policy .trends-icon svg path {
  stroke: url(#hap-igrad-policy);
}

.dashboard .trends-card--impact .trends-icon svg path {
  stroke: url(#hap-igrad-finance);
}

.dashboard .trends-card--neutral .trends-icon svg :is(path, circle) {
  stroke: url(#hap-igrad-neutral);
}

.dashboard .benefit-item-icon {
  background: linear-gradient(165deg, rgba(255, 255, 255, 0.93) 0%, rgba(255, 255, 255, 0.48) 100%);
  border: 1px solid rgba(255, 255, 255, 0.88);
  box-shadow:
    0 2px 12px rgba(0, 114, 188, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.97),
    inset 0 -2px 6px rgba(0, 114, 188, 0.05);
  backdrop-filter: blur(12px) saturate(175%);
  -webkit-backdrop-filter: blur(12px) saturate(175%);
}

.dashboard .benefit-item-icon svg {
  stroke: none;
}

.dashboard .benefit-item-icon--dollar svg circle {
  stroke: url(#hap-igrad-finance);
  stroke-width: 1.65;
  fill: rgba(255, 255, 255, 0.32);
}

.dashboard .benefit-item-icon--dollar svg text {
  fill: url(#hap-igrad-finance);
  stroke: none;
  font-weight: 750;
}

.dashboard .benefit-item-icon--rx-price svg :is(rect, path) {
  stroke: url(#hap-igrad-access);
  stroke-linecap: round;
  stroke-linejoin: round;
}

.dashboard .benefit-item-icon--rx-price svg rect {
  stroke-width: 1.6;
  fill: rgba(0, 114, 188, 0.06);
}

.dashboard .benefit-item-icon--rx-price svg path {
  stroke-width: 1.55;
}

.dashboard .benefit-item-icon--bus svg :is(path, rect) {
  stroke: url(#hap-igrad-access);
  stroke-linecap: round;
  stroke-linejoin: round;
}

.dashboard .benefit-item-icon--bus svg path {
  stroke-width: 1.65;
}

.dashboard .benefit-item-icon--bus svg rect {
  stroke-width: 1.45;
  fill: none;
}

.dashboard .benefit-item-icon--bus svg circle {
  fill: url(#hap-igrad-access);
  stroke: none;
}

.dashboard .benefit-item-icon--dental svg path {
  stroke: url(#hap-igrad-finance);
  stroke-width: 1.4;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: rgba(0, 169, 164, 0.1);
}

.dashboard .policy-myth-fact-icon svg {
  display: block;
  flex-shrink: 0;
}

.dashboard .policy-myth-fact-item--myth .policy-myth-fact-icon path:nth-of-type(1) {
  stroke: url(#hap-igrad-risk);
  fill: none;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.dashboard .policy-myth-fact-item--myth .policy-myth-fact-icon path:nth-of-type(2) {
  stroke: url(#hap-igrad-risk);
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
}

.dashboard .policy-myth-fact-item--fact .policy-myth-fact-icon circle {
  stroke: url(#hap-igrad-finance);
  fill: none;
  stroke-width: 1.5;
}

.dashboard .policy-myth-fact-item--fact .policy-myth-fact-icon path {
  stroke: url(#hap-igrad-finance);
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Community benefit: large tiles — keep scan size; override green tile + svg currentColor so gradients apply */
.dashboard #community-benefit .benefit-item-icon {
  background: linear-gradient(165deg, rgba(255, 255, 255, 0.94) 0%, rgba(240, 249, 255, 0.52) 100%) !important;
  border: 1px solid rgba(255, 255, 255, 0.88);
  box-shadow:
    0 4px 22px rgba(0, 114, 188, 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.97),
    inset 0 -2px 10px rgba(0, 114, 188, 0.05);
  backdrop-filter: blur(16px) saturate(175%);
  -webkit-backdrop-filter: blur(16px) saturate(175%);
  color: transparent;
}

.dashboard #community-benefit .benefit-item-icon svg {
  stroke: none !important;
  color: transparent !important;
}

@media (prefers-reduced-transparency: reduce) {
  .dashboard .card-icon,
  .dashboard .hap-ask-item-icon,
  .dashboard .key-findings-icon,
  .dashboard .trends-icon,
  .dashboard .benefit-item-icon,
  .dashboard #community-benefit .benefit-item-icon {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
}

/* Intro — Overview full width, then HAP Position featured row (stacked) */
.intro-section { grid-column: 1 / -1; margin-bottom: var(--space-2); }
.intro-section-stack { display: flex; flex-direction: column; gap: var(--space-5); width: 100%; }
.intro-section-stack .intro-overview-card { width: 100%; min-height: 0; }
.intro-section-stack .intro-overview-card { display: block; }
.intro-section-stack .intro-overview-card .stat-block,
.intro-section-stack .intro-overview-card .glossary-strip { margin-top: var(--space-4); }
/* Intro overview stats: single-stat blocks should be centered, not left-anchored. */
.intro-section-stack .intro-overview-card .stat-block {
  grid-template-columns: 1fr;
  justify-items: center;
}
.intro-section-stack .intro-overview-card .stat {
  display: flex;
  flex-direction: column;
  align-items: center;
}
/* HAP Position — full-width flagship (separate section from Overview) */
.hap-position-flagship {
  grid-column: 1 / -1;
  margin: var(--space-4) 0 var(--space-6);
  padding: var(--space-6) var(--space-4);
  border-radius: var(--radius-lg);
  position: relative;
  overflow: hidden;
}
.hap-position-flagship::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 5px;
  border-radius: var(--radius-lg) 0 0 var(--radius-lg);
  background: linear-gradient(180deg, var(--primary) 0%, var(--accent) 100%);
  pointer-events: none;
  z-index: 0;
}
.hap-position-flagship-card {
  position: relative;
  z-index: 1;
  border-left-width: 0;
  background: linear-gradient(165deg, rgba(255, 255, 255, 0.97) 0%, rgba(255, 255, 255, 0.88) 100%);
  box-shadow: var(--shadow-lg), 0 0 0 1px rgba(11, 103, 194, 0.06);
}
@media (max-width: 640px) {
  .hap-position-flagship {
    padding: var(--space-6) var(--space-4);
    margin: var(--space-2) 0 var(--space-6);
  }
}
.hap-position-lawmaker-label {
  margin: 0 0 var(--space-2);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  color: var(--primary);
}
.card-heading--hap-featured .hap-position-lawmaker-label + h2 {
  margin-top: 0;
}

/* HAP Position — featured executive row */
.card-hap--featured {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-lg);
  border: 1px solid rgba(0, 114, 188, 0.12);
  border-left: 4px solid var(--accent);
  background: linear-gradient(165deg, var(--bg-card) 0%, rgba(245, 158, 11, 0.06) 45%, var(--bg-card) 100%);
  box-shadow: var(--shadow-sm);
  padding: var(--space-5);
}
.card-hap--featured::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 90% 80% at 100% 0%, rgba(0, 114, 188, 0.06), transparent 55%);
  pointer-events: none;
  z-index: 0;
}
.hap-position-featured-inner { position: relative; z-index: 1; }
/* HAPAC — reference line only (not campaign UI; muted, not HAPAC brand blue) */
.hap-hapac-note__rule {
  border: none;
  border-top: 1px solid var(--border);
  margin: var(--space-5) 0 var(--space-3);
  opacity: 0.9;
}
.hap-hapac-note {
  margin: 0 0 var(--space-4);
  font-size: var(--text-xs);
  line-height: 1.45;
  color: var(--text-muted);
  font-weight: 400;
}
.hap-hapac-note a {
  color: var(--text-muted);
  text-decoration: underline;
  text-underline-offset: 2px;
  font-weight: inherit;
}
.hap-hapac-note a:hover {
  color: var(--text-secondary);
}
.hap-asks-sources {
  margin: var(--space-3) 0 0;
  padding-top: var(--space-4);
  border-top: 1px solid var(--border);
  font-size: var(--text-sm);
  color: var(--text-secondary);
  line-height: var(--leading-snug);
}
.hap-asks-sources a {
  font-weight: 700;
  color: var(--primary);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.hap-asks-sources a:hover { color: var(--accent-hover, var(--accent)); }
.card-heading--hap-featured {
  align-items: flex-start;
  gap: var(--space-4);
  margin-bottom: var(--space-3);
}
.card-heading--hap-featured .card-heading-text { flex: 1; min-width: 0; }
.hap-position-kicker {
  margin: var(--space-2) 0 0;
  font-size: var(--text-base);
  font-weight: 500;
  line-height: var(--leading-relaxed);
  color: var(--text-secondary);
  max-width: 65ch;
}
.hap-position-lead {
  margin: 0 0 var(--space-4);
  font-size: var(--text-base);
  line-height: var(--leading-relaxed);
  color: var(--text);
  max-width: 70ch;
}
.hap-asks-heading {
  margin: 0 0 var(--space-1);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  color: var(--text-muted);
}
.hap-asks-subline {
  margin: 0 0 var(--space-4);
  font-size: var(--text-sm);
  color: var(--text-secondary);
  font-weight: 500;
  line-height: var(--leading-relaxed);
  max-width: 52rem;
}
.hap-ask-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--space-3);
}
@media (min-width: 900px) {
  .hap-ask-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-4);
  }
}
.hap-ask-item {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-4);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.55);
  border: 1px solid var(--border);
  border-left: 3px solid var(--primary);
  box-shadow: var(--shadow-xs);
  transition: border-color 0.2s var(--ease), box-shadow 0.2s var(--ease), transform 0.2s var(--ease), background 0.2s var(--ease);
}
.hap-ask-item--policy { border-left-color: var(--chart-topic-policy); }
.hap-ask-item--partnership { border-left-color: var(--primary); }
.hap-ask-item--access { border-left-color: var(--accent); }
.hap-ask-item:hover {
  border-color: rgba(0, 114, 188, 0.22);
  box-shadow: var(--shadow-sm);
  transform: translateY(-2px);
  background: rgba(255, 255, 255, 0.85);
}
@media (prefers-reduced-motion: reduce) {
  .hap-ask-item:hover { transform: none; }
}
.hap-ask-item:focus-within {
  outline: 2px solid var(--primary);
  outline-offset: 2px;
}
.hap-ask-item-icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-sm);
  background: rgba(0, 114, 188, 0.08);
  color: var(--primary);
}
.hap-ask-item--policy .hap-ask-item-icon { background: rgba(11, 103, 194, 0.1); color: var(--chart-topic-policy, #0b67c2); }
.hap-ask-item--partnership .hap-ask-item-icon { background: rgba(0, 114, 188, 0.1); color: var(--primary, #0072bc); }
.hap-ask-item--access .hap-ask-item-icon { background: rgba(245, 158, 11, 0.12); color: var(--accent-hover, #b45309); }
.hap-ask-item-icon svg {
  width: 20px;
  height: 20px;
  display: block;
  stroke: currentColor;
  fill: none;
  stroke-width: 2;
}
.hap-ask-item-body { flex: 1; min-width: 0; }
.hap-ask-item-label {
  margin: 0 0 0.35rem;
  font-size: var(--text-base);
  font-weight: 650;
  letter-spacing: var(--tracking-tight);
  color: var(--text);
  line-height: var(--leading-snug);
}
.hap-ask-item-impact {
  margin: 0;
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
  color: var(--text-secondary);
}
.executive-proof-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); margin-bottom: var(--space-3); margin-top: var(--space-1); }
.executive-proof-head { grid-column: 1 / -1; margin: 0; padding: var(--space-2) 0 var(--space-1); }
.executive-proof-eyebrow { margin: 0 0 0.3rem; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-muted); }
.executive-proof-heading { margin: 0 0 var(--space-2); font-size: clamp(1.15rem, 2.2vw, 1.45rem); line-height: 1.2; color: var(--text); }
.executive-proof-dek { margin: 0; max-width: 62ch; font-size: var(--text-sm); color: var(--hap-label-secondary, var(--text-secondary)); line-height: var(--hap-leading-dek, 1.52); }
.executive-proof-card { padding: var(--space-4); border-radius: var(--radius); border: 1px solid var(--border); background: var(--bg-card); box-shadow: var(--shadow-xs); transition: border-color 0.2s var(--ease), box-shadow 0.2s var(--ease); }
.executive-proof-card:hover { border-color: var(--border-hover); box-shadow: var(--shadow-sm); }
.executive-proof-card--accent { border-left: 3px solid var(--accent); }
.executive-proof-label { margin: 0 0 var(--space-2); font-size: var(--text-xs); font-weight: 600; letter-spacing: var(--tracking-wider); text-transform: uppercase; color: var(--text-muted); }
.executive-proof-value { margin: 0 0 var(--space-2); font-size: var(--text-base); font-weight: 600; line-height: var(--leading-tight); letter-spacing: var(--tracking-tight); color: var(--text); }
.executive-proof-note { margin: 0; font-size: var(--text-sm); line-height: var(--leading-normal); color: var(--text-secondary); }
.executive-proof-source {
  margin: var(--space-3) 0 0;
  padding-top: var(--space-2);
  font-size: 0.72rem;
  line-height: 1.4;
  color: var(--text-muted);
  font-weight: 600;
  border-top: 1px dashed rgba(0, 114, 188, 0.15);
}
.executive-proof-card--accent .executive-proof-label { color: var(--text-muted); }
.executive-proof-card--accent .executive-proof-value { color: var(--text); }
.span-4 { grid-column: span 4; }
.span-6 { grid-column: span 6; }
.span-6.card { align-self: stretch; }
.span-8 { grid-column: span 8; }
.span-12 { grid-column: span 12; }
@media (max-width: 900px) {
 .span-4, .span-6, .span-8 { grid-column: span 12; }
 .executive-proof-strip { grid-template-columns: 1fr; }
}

/* Map hero — Apple: white container, hairline border */
.map-hero-section { margin: var(--dash-section-y, var(--space-6)) 0 var(--dash-section-y, var(--space-6)); }
.map-hero-inner { max-width: var(--content-max); margin: 0 auto; }
@media (max-width: 900px) {
  .map-hero-inner {
    max-width: 100%;
    width: 100%;
    box-sizing: border-box;
  }
}
.map-hero-card { padding: var(--dash-card-pad, var(--space-5)); border-radius: var(--radius); background: var(--bg-card); border: 1px solid var(--border); box-shadow: var(--hap-shadow-xs, var(--shadow-xs)); transition: box-shadow 0.2s var(--ease); }
.us-map-wrap { border-radius: var(--radius); border: 1px solid var(--border); background: var(--neutral-100); }
.map-hero-card:focus-within { box-shadow: var(--shadow-sm); }
.map-hero-title { font-size: var(--text-sm); font-weight: 600; letter-spacing: var(--tracking-wider); text-transform: uppercase; color: var(--primary); margin: 0 0 var(--space-1); }
.map-hero-headline { font-size: clamp(1.25rem, 3vw, 1.5rem); font-weight: 700; color: var(--text); margin: 0 0 var(--space-2); letter-spacing: var(--tracking-tight); line-height: var(--leading-tight); }
.map-hero-sub { font-size: var(--text-base); color: var(--hap-label-secondary, var(--text-secondary)); margin: 0 0 var(--space-3); line-height: var(--hap-leading-dek, 1.52); max-width: 42rem; }
.map-how-to-use { font-size: var(--text-sm); color: var(--text-muted); margin: 0 0 var(--space-5); line-height: var(--leading-relaxed); font-weight: 500; max-width: 40em; }
.methodology-at-a-glance { margin-bottom: var(--space-4); padding: var(--space-3) var(--space-4); background: var(--bg-card); border-radius: var(--radius-sm); border: 1px solid var(--border); }
.methodology-at-a-glance-title { margin: 0 0 var(--space-2); font-size: var(--text-xs); font-weight: 700; letter-spacing: var(--tracking-wider); text-transform: uppercase; color: var(--text-muted); }
.methodology-at-a-glance-list { margin: 0; padding-left: var(--space-5); font-size: var(--text-sm); }
.methodology-at-a-glance-list li + li { margin-top: 0.35rem; }
.map-hero-title + .map-hero-headline { margin-top: 0; }
.selection-summary { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); padding: var(--space-4); margin: 0 0 var(--space-4); border-radius: var(--radius); border: 1px solid var(--border); background: var(--neutral-100); }
.selection-summary-copy { min-width: 0; }
.selection-summary-label { margin: 0 0 var(--space-1); font-size: var(--text-xs); font-weight: 700; letter-spacing: var(--tracking-wider); text-transform: uppercase; color: var(--text-muted); }
.selection-summary-title { margin: 0; font-size: var(--text-lg); font-weight: 650; color: var(--text); }
.selection-summary-text { margin: var(--space-1) 0 0; font-size: var(--text-sm); color: var(--text-secondary); }
.selection-clear { flex-shrink: 0; min-height: 44px; padding: 0.72rem 0.95rem; border: 1px solid rgba(255,255,255,0.9); border-radius: 999px; background: rgba(255,255,255,0.92); color: var(--primary); font: inherit; font-size: var(--text-sm); font-weight: 600; cursor: pointer; box-shadow: var(--shadow-xs); }
.selection-clear:hover { background: rgba(255,255,255,1); }
.selection-clear:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
@media (max-width: 700px) {
 .selection-summary { flex-direction: column; align-items: stretch; }
 .selection-clear { width: 100%; justify-content: center; }
}
.supporting-section { grid-column: 1 / -1; display: flex; flex-direction: column; align-items: center; margin-top: var(--space-6); }
.section-subhead--supporting { margin: 0 0 var(--space-4); font-size: var(--text-sm); font-weight: 700; letter-spacing: var(--tracking-wider); text-transform: uppercase; color: var(--text-muted); text-align: center; }
.supporting-cards-row { display: flex; flex-wrap: nowrap; justify-content: center; gap: var(--space-4); width: 100%; max-width: var(--content-max); align-items: stretch; }
.supporting-cards-row .card--compact { flex: 1; min-width: 0; max-width: 360px; }
@media (max-width: 900px) {
 .supporting-cards-row { flex-wrap: wrap; justify-content: center; }
 .supporting-cards-row .card--compact { max-width: none; flex: 1 1 280px; }
}
@media (max-width: 640px) {
 .supporting-cards-row { flex-direction: column; align-items: center; }
 .supporting-cards-row .card--compact { flex: 1 1 auto; width: 100%; max-width: 400px; }
}
/* Compact cards */
.card--compact { padding: var(--space-5); border-radius: var(--radius); background: var(--bg-card); border: 1px solid var(--border); box-shadow: var(--shadow-xs); transition: box-shadow 0.2s var(--ease), border-color 0.2s var(--ease); }
.card--compact:hover { box-shadow: var(--shadow-sm); border-color: var(--border-hover); }
.card--compact .card-heading { margin-bottom: var(--space-3); gap: var(--space-3); }
.card--compact .card-icon { width: 40px; height: 40px; border-radius: var(--radius-sm); }
.card--compact .card-icon svg { width: 20px; height: 20px; }
.card--compact .card-title { color: var(--text-muted); }
.card--compact h2 { font-size: var(--text-lg); margin: 0 0 var(--space-2); }
.card--compact p, .card--compact li { font-size: var(--text-sm); margin: 0 0 var(--space-1); }
.card--compact ul { margin: var(--space-2) 0 0; padding-left: var(--space-4); }
.card--compact .stat-block { margin-top: var(--space-3); gap: var(--space-2); grid-template-columns: 1fr 1fr; display: grid; }
.card--compact .stat { padding: var(--space-3); border-radius: var(--radius-sm); background: var(--neutral-50); border: 1px solid var(--border); }
.card--compact .stat-label { font-size: 0.625rem; }
.card--compact .stat-value { font-size: var(--text-2xl); }
.card--compact .stat-value.ban-stat {
  font-size: clamp(1.85rem, 3.6vw, 2.4rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.05;
}
#oversight .stat-value.ban-stat { color: var(--chart-topic-policy); }
#pa-impact .stat-value.ban-stat.stat--perf-negative { color: var(--chart-perf-negative); }
.card--compact .stat-desc { font-size: var(--text-xs); }

/* Pennsylvania operating stakes: row-based stat layout for cleaner scanability */
#pa-impact .stat-block.stat-block--rows {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-2);
  margin-top: var(--space-3);
}
#pa-impact .stat-block.stat-block--rows .stat.stat--row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  padding: var(--space-3) var(--space-4);
  text-align: left;
}
#pa-impact .stat-block.stat-block--rows .stat-label {
  margin: 0;
  font-size: var(--text-sm);
  letter-spacing: var(--tracking-normal);
  text-transform: none;
  color: var(--text-secondary);
  font-weight: 700;
}
#pa-impact .stat-block.stat-block--rows .stat-value {
  margin: 0;
  white-space: nowrap;
  line-height: 1;
}
@media (max-width: 520px) {
  #pa-impact .stat-block.stat-block--rows .stat.stat--row {
    padding: var(--space-3);
    gap: var(--space-2);
  }
  #pa-impact .stat-block.stat-block--rows .stat-label {
    font-size: var(--text-xs);
  }
}

/* Why this matters — executive redesign */
.supporting-section--executive {
  margin-top: var(--space-8);
  align-items: stretch;
}
.supporting-shell {
  width: 100%;
  max-width: min(1360px, 100%);
  margin: 0 auto;
  padding: clamp(1.25rem, 2vw, 2rem);
  border-radius: calc(var(--radius) + 6px);
  border: 1px solid var(--border);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(246, 250, 255, 0.96) 100%);
  box-shadow: var(--shadow-xs);
}
.supporting-section--executive .section-subhead--supporting {
  margin-bottom: clamp(1rem, 2vw, 1.5rem);
  text-align: left;
}
.supporting-executive-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(0.9rem, 1.8vw, 1.35rem);
  align-items: stretch;
}
.supporting-panel {
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid var(--border);
  border-radius: calc(var(--radius) + 2px);
  padding: clamp(1rem, 2vw, 1.45rem);
  box-shadow: var(--shadow-xs);
}
.supporting-panel h2 {
  margin: 0 0 var(--space-2);
  font-size: clamp(1.2rem, 2.2vw, 1.65rem);
  letter-spacing: -0.02em;
  line-height: 1.15;
}
.supporting-kicker {
  margin: 0 0 0.45rem;
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  color: var(--text-muted);
}
.supporting-panel-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-3);
  margin-bottom: var(--space-2);
}
.supporting-meta {
  margin: 0;
  font-size: var(--text-xs);
  font-weight: 700;
  color: var(--text-muted);
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
}
.supporting-lead {
  margin: 0 0 var(--space-3);
  color: var(--text-secondary);
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
}
.supporting-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.6rem;
}
.supporting-list li {
  margin: 0;
  padding: 0.75rem 0.85rem;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  background: var(--neutral-50);
  font-size: var(--text-sm);
  line-height: var(--leading-snug);
}

.supporting-panel--oversight {
  grid-column: 2;
  grid-row: 1 / span 2;
  display: flex;
  flex-direction: column;
}
.oversight-hero {
  margin-top: 0.3rem;
  padding: clamp(0.95rem, 2vw, 1.35rem);
  border-radius: var(--radius-sm);
  border: 1px solid rgba(11, 103, 194, 0.22);
  background: linear-gradient(145deg, rgba(11, 103, 194, 0.07), rgba(96, 165, 250, 0.08));
}
.oversight-ratio {
  margin: 0;
  font-size: clamp(3.5rem, 8vw, 6.4rem);
  line-height: 0.92;
  font-weight: 850;
  letter-spacing: -0.04em;
  color: var(--chart-topic-policy);
}
.oversight-ratio-copy {
  margin: 0.4rem 0 0;
  font-size: var(--text-sm);
  color: var(--text-secondary);
}
.oversight-split {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem;
  margin-top: 0.8rem;
}
.oversight-stat {
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--neutral-50);
  padding: 0.85rem 0.9rem;
}
.oversight-label {
  margin: 0 0 0.35rem;
  font-size: 0.69rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: var(--tracking-wider);
  color: var(--text-muted);
}
.oversight-value {
  margin: 0;
  font-size: clamp(2.2rem, 4.4vw, 3.3rem);
  line-height: 1;
  color: var(--chart-topic-policy);
  font-weight: 800;
  letter-spacing: -0.03em;
}
.supporting-section--executive .supporting-parity-note {
  margin: 0.85rem 0 0;
  font-size: var(--text-xs);
  color: var(--text-secondary);
  line-height: var(--leading-relaxed);
}

.pa-primary {
  border: 1px solid var(--border);
  background: var(--neutral-50);
  border-radius: var(--radius-sm);
  padding: 0.9rem 1rem;
}
.pa-primary-value {
  margin: 0;
  display: flex;
  align-items: baseline;
  gap: 0.55rem;
  line-height: 1;
}
.pa-primary-value .ban-stat {
  font-size: clamp(3rem, 7vw, 5.1rem);
  letter-spacing: -0.04em;
  font-weight: 850;
  color: var(--primary);
}
.pa-primary-unit {
  font-size: clamp(0.95rem, 2vw, 1.2rem);
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--text);
}
.pa-primary-sub {
  margin: 0.45rem 0 0;
  font-size: var(--text-sm);
  color: var(--text-secondary);
}
.pa-metrics {
  margin-top: 0.75rem;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.7rem;
}
.pa-metric {
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: #fff;
  padding: 0.8rem 0.75rem;
  text-align: left;
}
.pa-metric-value {
  margin: 0;
  font-size: clamp(2rem, 4.4vw, 3rem);
  line-height: 1;
  letter-spacing: -0.03em;
  font-weight: 800;
  color: var(--chart-topic-finance, #0f766e);
}
.pa-metric-value.stat--perf-negative {
  color: var(--chart-perf-negative);
}
.pa-metric-label {
  margin: 0.3rem 0 0;
  font-size: var(--text-xs);
  color: var(--text-secondary);
  font-weight: 700;
  line-height: var(--leading-snug);
}
.pa-stakes-source {
  margin: var(--space-4) 0 0;
  padding-top: var(--space-3);
  font-size: 0.72rem;
  line-height: 1.4;
  color: var(--text-muted);
  font-weight: 600;
  border-top: 1px dashed rgba(0, 114, 188, 0.15);
}
.pa-stakes-source a {
  color: var(--primary);
  font-weight: 700;
  text-underline-offset: 2px;
}

@media (max-width: 1150px) {
  .supporting-shell {
    max-width: min(1220px, 100%);
    padding: 1rem;
  }
  .supporting-executive-grid {
    grid-template-columns: 1fr;
  }
  .supporting-panel--oversight {
    grid-column: auto;
    grid-row: auto;
  }
}
@media (max-width: 680px) {
  .supporting-shell {
    max-width: 100%;
    padding: 0.8rem;
  }
  .supporting-panel {
    padding: 0.85rem;
  }
  .oversight-split,
  .pa-metrics {
    grid-template-columns: 1fr;
  }
}

/* HAP Position — accent (featured variant uses .card-hap--featured) */
.card-hap:not(.card-hap--featured) { border-left: 3px solid var(--accent); }

/* Stat blocks */
.stat-block { display: grid; grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)); gap: var(--space-4); margin-top: var(--space-4); }
.stat { text-align: center; padding: var(--space-4); border-radius: var(--radius-sm); background: var(--neutral-100); border: 1px solid var(--border); }
.stat-block .stat { min-width: 0; }
.stat-label { font-size: var(--text-xs); font-weight: 600; letter-spacing: var(--tracking-wider); text-transform: uppercase; color: var(--text-muted); margin: 0 0 var(--space-2); }
.stat-value { font-family: var(--font-mono); font-size: var(--text-3xl); font-weight: 600; color: var(--text); font-variant-numeric: tabular-nums; }
.stat-value.blue { color: var(--primary); }
.stat-desc { font-size: var(--text-sm); color: var(--text-secondary); margin-top: var(--space-1); line-height: var(--leading-snug); }

/* Split label for paired stats (used in the federal oversight intro block) */
.stat-split-top-label {
  grid-column: 1 / -1;
  text-align: center;
  text-transform: none;
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: var(--tracking-wide);
  color: var(--text-secondary);
  margin: 0 0 var(--space-1);
}
.big-stat { padding: var(--space-5); border-radius: var(--radius); background: var(--neutral-100); border: 1px solid var(--border); margin-top: var(--space-4); }
.big-stat-label { font-size: var(--text-xs); font-weight: 600; letter-spacing: var(--tracking-wider); text-transform: uppercase; color: var(--text-muted); margin: 0 0 var(--space-2); }
.big-stat-value { font-family: var(--font-mono); font-size: var(--text-4xl); font-weight: 600; color: var(--text); letter-spacing: var(--tracking-tight); font-variant-numeric: tabular-nums; }
.big-stat-desc { font-size: var(--text-base); color: var(--text-secondary); margin-top: var(--space-2); }

/* Community benefit */
.community-impact-lead { margin: 0 0 var(--space-4); font-size: var(--text-base); color: var(--text-secondary); line-height: var(--leading-relaxed); max-width: 52em; }
.community-benefit-source-line {
  margin: 0 0 var(--space-4);
  font-size: 0.72rem;
  line-height: 1.4;
  color: var(--text-muted);
  font-weight: 600;
  max-width: 62ch;
}
.community-benefit-hero-source {
  margin: var(--space-3) 0 0;
  font-size: 0.72rem;
  line-height: 1.4;
  color: var(--text-muted);
  font-weight: 600;
  text-align: center;
}
#community-benefit { padding: var(--space-5); }
#community-benefit:hover { box-shadow: var(--shadow-sm); }
.benefit-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-3); margin-top: var(--space-4); margin-bottom: var(--space-4); }
.benefit-grid .benefit-item { align-self: start; }
/* Community benefit: full copy + large icons (stacked layout) */
.benefit-grid--community {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(0.65rem, 2vw, var(--space-4));
  align-items: stretch;
}
@media (max-width: 900px) { .benefit-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .benefit-grid { grid-template-columns: 1fr; } }
.benefit-item { display: flex; align-items: flex-start; gap: var(--space-3); padding: var(--space-4); border-radius: var(--radius); background: var(--bg-card); border: 1px solid var(--border); transition: border-color 0.2s var(--ease), box-shadow 0.2s var(--ease), transform 0.2s var(--ease); }
.benefit-item:hover { border-color: var(--border-hover); box-shadow: var(--shadow-xs); }
.benefit-item-icon { flex-shrink: 0; width: 44px; height: 44px; border-radius: var(--radius-sm); background: var(--accent-muted); display: flex; align-items: center; justify-content: center; }
.benefit-item-icon svg { width: 22px; height: 22px; stroke: var(--accent); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; fill: none; }
.benefit-item-text { font-size: var(--text-sm); font-weight: 500; color: var(--text); line-height: var(--leading-snug); margin: 0; }
.benefit-item-text strong { color: var(--accent-hover); }
.community-benefit-hero { text-align: center; padding: var(--dash-card-pad, var(--space-5)); border-radius: var(--radius); background: var(--hap-surface-subtle, var(--neutral-100)); border: 1px solid var(--hap-separator, var(--border)); margin-top: var(--space-3); transition: box-shadow 0.2s var(--ease); }
.community-benefit-hero:hover { box-shadow: var(--hap-shadow-sm, var(--shadow-sm)); }
.community-benefit-hero .big-stat-label { margin-bottom: var(--space-2); }
.community-benefit-hero .big-stat-value { font-size: var(--text-hero); font-weight: 600; color: var(--text); }
.community-benefit-hero .big-stat-desc { font-size: var(--text-base); margin-top: var(--space-2); color: var(--text-secondary); }

/* Patient story callout (print-visible) */
.patient-story-callout {
  margin: 0 0 var(--space-3);
  padding: var(--space-4);
  border-radius: var(--radius);
  background: #fff3e0; /* soft warm amber/cream */
  border: 1px solid rgba(214, 160, 71, 0.35);
  position: relative;
  text-align: left;
  break-inside: avoid;
  page-break-inside: avoid;
}
.patient-story-callout .story-label,
.patient-story-callout .story-eyebrow {
  display: inline-block;
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  color: var(--text-muted);
  margin: 0 0 var(--space-2);
}
.patient-story-callout blockquote {
  margin: 0;
  padding-left: 2.5rem;
  color: var(--text);
  font-size: var(--text-base);
  line-height: var(--leading-relaxed);
  position: relative;
  font-weight: 500;
}
.patient-story-callout blockquote::before {
  content: "“";
  position: absolute;
  left: 0;
  top: -0.55rem;
  font-size: 3.25rem;
  line-height: 1;
  color: var(--hap-brand-primary, var(--primary));
  font-weight: 800;
}
.patient-story-callout cite {
  display: block;
  margin-top: var(--space-2);
  font-size: var(--text-xs);
  color: var(--text-muted);
  font-variant: small-caps;
  font-style: normal;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  line-height: 1.3;
  font-weight: 700;
}
.patient-story-callout .story-note,
.patient-story-callout .story-cta {
  margin: var(--space-2) 0 0;
  font-size: var(--text-xs);
  color: var(--text-secondary);
  line-height: 1.45;
}
.patient-story-callout .story-note a,
.patient-story-callout .story-cta a {
  color: var(--primary);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Footer contact lines (print-visible) */
.footer-contact-lines {
  width: 100%;
  max-width: 52rem;
  margin: 0 auto var(--space-5);
  color: var(--text-muted);
  font-size: var(--text-sm);
  line-height: 1.45;
}
.footer-contact-lines p {
  margin: 0.35rem 0;
}
.footer-contact-lines a {
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Pennsylvania Impact Mode */
.pa-impact-mode-section { margin-top: var(--space-8); }
.pa-impact-mode-card { padding: var(--space-6); }
.pa-impact-header { margin-bottom: var(--space-5); }
.pa-impact-title,
.pa-impact-eyebrow { font-size: var(--text-xs); font-weight: 700; letter-spacing: var(--tracking-wider); text-transform: uppercase; color: var(--accent-hover); margin: 0 0 var(--space-1); }
.pa-impact-headline { font-size: var(--text-xl); font-weight: 600; color: var(--text); margin: 0 0 var(--space-2); letter-spacing: var(--tracking-tight); line-height: var(--leading-tight); }
.pa-impact-sub { font-size: var(--text-base); color: var(--text-secondary); margin: 0; line-height: var(--leading-relaxed); }
.pa-impact-buttons { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-bottom: var(--space-5); }
.pa-impact-btn { font-family: inherit; font-size: var(--text-sm); font-weight: 600; min-height: 44px; padding: 0.68rem 1rem; border: 1px solid var(--border); background: rgba(255,255,255,0.82); color: var(--text-secondary); border-radius: 999px; cursor: pointer; transition: background 0.2s var(--ease), color 0.2s var(--ease), border-color 0.2s var(--ease); }
.pa-impact-btn:hover { background: rgba(255,255,255,0.96); color: var(--accent-hover); border-color: var(--accent-border); box-shadow: var(--shadow-xs); }
.pa-impact-btn.active { background: var(--accent-muted); color: var(--accent-hover); border-color: var(--accent-border); box-shadow: var(--shadow-sm); }
.pa-impact-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.pa-impact-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-4); margin-bottom: var(--space-4); }
.pa-impact-card { padding: var(--space-5); border-radius: var(--radius); background: var(--bg-card); border: 1px solid var(--border); box-shadow: var(--shadow-xs); transition: transform 0.2s var(--ease), box-shadow 0.2s var(--ease), border-color 0.2s var(--ease); }
.pa-impact-card:hover { box-shadow: var(--shadow-sm); border-color: var(--border-hover); }
.pa-impact-label { font-size: var(--text-xs); font-weight: 600; letter-spacing: var(--tracking-wider); text-transform: uppercase; color: var(--text-muted); margin: 0 0 var(--space-2); }
.pa-impact-value { font-family: var(--font-mono); font-size: clamp(1.25rem, 3vw, 2rem); font-weight: 700; color: var(--accent-hover); margin: 0 0 var(--space-1); }
.pa-impact-note { font-size: var(--text-sm); color: var(--text-secondary); margin: 0; line-height: var(--leading-snug); }
.pa-impact-results .pa-impact-narrative { font-size: var(--text-base); color: var(--text-secondary); line-height: var(--leading-relaxed); margin: var(--space-4) 0 0; padding: var(--space-4); border-radius: var(--radius); background: var(--neutral-50); border: 1px solid var(--border); }

/* PA Impact Mode — lawmaker flagship shell */
.pa-impact-mode-section--flagship.pa-impact-mode-section {
  margin-top: var(--space-8);
  padding: clamp(1.25rem, 2.5vw, 1.75rem) clamp(1rem, 2vw, 1.5rem) clamp(1.1rem, 2vw, 1.5rem);
  border-radius: var(--radius-lg, 14px);
  border: 1px solid rgba(0, 114, 188, 0.22);
  background: linear-gradient(165deg, rgba(0, 114, 188, 0.1) 0%, rgba(142, 216, 248, 0.14) 32%, #fff 72%);
  box-shadow: 0 10px 36px rgba(0, 48, 135, 0.1), 0 0 0 1px rgba(255, 255, 255, 0.55) inset;
}

.pa-impact-mode-card--flagship.card.pa-impact-mode-card {
  border: none;
  box-shadow: none;
  background: transparent;
  padding: 0;
}

.pa-impact-stakes {
  margin: var(--space-5) 0 0;
  padding: var(--space-4) var(--space-4);
  border-radius: var(--radius, 12px);
  border: 1px solid rgba(251, 176, 64, 0.42);
  background: linear-gradient(95deg, rgba(251, 176, 64, 0.14) 0%, rgba(255, 255, 255, 0.94) 52%);
  border-left: 4px solid var(--hap-brand-accent, #fbb040);
}

.pa-impact-stakes-list {
  margin: 0;
  padding-left: 1.2rem;
  list-style: disc;
}

.pa-impact-stakes-item {
  margin: 0.4rem 0;
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--text);
  line-height: 1.45;
}

.pa-impact-scenario-ribbon {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.45rem 0.75rem;
  margin: 0 0 var(--space-4);
  padding: 0.55rem 0.9rem;
  border-radius: 10px;
  background: rgba(0, 48, 135, 0.07);
  border: 1px solid rgba(0, 114, 188, 0.2);
}

.pa-impact-scenario-ribbon__eyebrow {
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--text-muted);
}

.pa-impact-scenario-ribbon__name {
  font-weight: 800;
  font-size: clamp(1rem, 2.2vw, 1.15rem);
  color: var(--hap-brand-deep, #003087);
  letter-spacing: -0.02em;
}

.pa-impact-narrative-block {
  margin-top: var(--space-5);
  padding: var(--space-5) var(--space-5);
  border-radius: var(--radius-lg, 12px);
  border: 1px solid var(--border);
  background: rgba(255, 255, 255, 0.88);
}

.pa-impact-narrative-lead {
  margin: 0 0 var(--space-2);
  font-size: clamp(1.12rem, 2.5vw, 1.42rem);
  font-weight: 800;
  line-height: 1.22;
  color: var(--text);
  letter-spacing: -0.02em;
}

.pa-impact-narrative-detail {
  margin: 0;
  font-size: var(--text-base);
  line-height: 1.52;
  color: var(--text-secondary);
  font-weight: 500;
}

.pa-impact-narrative--plain {
  margin: 0;
  font-size: var(--text-base);
  line-height: var(--leading-relaxed);
  color: var(--text-secondary);
}

@media (max-width: 900px) { .pa-impact-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 500px) { .pa-impact-grid { grid-template-columns: 1fr; } .pa-impact-buttons { flex-direction: column; } }

/* PA Legislative District Map + ZIP lookup (under PA Impact Mode) */
.pa-district-section {
  margin-top: var(--space-6);
  padding-top: var(--space-6);
  border-top: 1px solid var(--border);
}

.pa-district-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-4);
  margin-bottom: var(--space-4);
}
.pa-district-subhead {
  margin: var(--space-2) 0 0;
  font-size: var(--text-sm);
  color: var(--text-secondary);
  line-height: 1.45;
  max-width: 54rem;
}
.pa-district-controls {
  display: inline-flex;
  gap: var(--space-2);
  flex-wrap: wrap;
}
.pa-district-toggle {
  min-height: 44px;
  padding: 0.45rem 0.8rem;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,0.82);
  color: var(--text-secondary);
  font-weight: 800;
  font-size: var(--text-sm);
  cursor: pointer;
  transition: background 0.2s var(--ease), border-color 0.2s var(--ease), color 0.2s var(--ease), box-shadow 0.2s var(--ease);
}
.pa-district-toggle:hover { background: rgba(255,255,255,0.96); border-color: var(--border-hover); box-shadow: var(--shadow-xs); }
.pa-district-toggle:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.pa-district-toggle.is-active {
  background: rgba(11, 103, 194, 0.08);
  border-color: rgba(11, 103, 194, 0.25);
  color: var(--text);
}

.pa-district-layout {
  display: grid;
  grid-template-columns: 1.35fr 0.65fr;
  gap: var(--space-4);
  align-items: start;
}
@media (max-width: 900px) {
  .pa-district-head { flex-direction: column; align-items: flex-start; }
  .pa-district-layout { grid-template-columns: 1fr; gap: var(--space-6); }
}

.pa-district-map-hint {
  margin: 0 0 var(--space-3);
  padding: var(--space-3) var(--space-4);
  font-size: var(--text-sm);
  line-height: 1.45;
  color: var(--text-secondary);
  font-weight: 500;
  border-radius: var(--radius, 10px);
  border: 1px solid rgba(0, 114, 188, 0.14);
  background: linear-gradient(100deg, rgba(142, 216, 248, 0.2) 0%, rgba(255, 255, 255, 0.92) 55%);
}
.pa-district-map-hint strong {
  color: var(--hap-brand-deep, #003087);
  font-weight: 800;
}

.pa-district-legend {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  align-items: center;
  margin: 0 0 var(--space-3);
  font-size: var(--text-xs);
  color: var(--text-muted);
  font-weight: 700;
}
.pa-district-legend__item { display: inline-flex; align-items: center; gap: 0.4rem; }

.pa-district-legend--interactive {
  gap: 0.45rem;
  align-items: stretch;
}

.pa-district-legend__chip {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 44px;
  padding: 0.35rem 0.75rem 0.35rem 0.55rem;
  border-radius: 999px;
  border: 1.5px solid var(--border);
  background: rgba(255, 255, 255, 0.9);
  color: var(--text-secondary);
  font-family: inherit;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  cursor: pointer;
  transition: transform 0.18s var(--ease), box-shadow 0.18s var(--ease), border-color 0.18s var(--ease), background 0.18s var(--ease), color 0.18s var(--ease);
}

.pa-district-legend__chip:hover {
  transform: translateY(-1px);
  border-color: rgba(0, 114, 188, 0.35);
  box-shadow: 0 6px 18px rgba(0, 48, 135, 0.12);
  color: var(--text);
}

.pa-district-legend__chip:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 2px;
}

.pa-district-legend__chip.is-active {
  border-color: rgba(0, 114, 188, 0.45);
  background: rgba(0, 114, 188, 0.1);
  color: var(--hap-brand-deep, #003087);
  box-shadow: 0 2px 10px rgba(0, 114, 188, 0.12);
}

.pa-district-swatch {
  width: 14px;
  height: 14px;
  border-radius: 4px;
  border: 1px solid rgba(15, 23, 42, 0.16);
  flex-shrink: 0;
}
.pa-district-legend__chip .pa-district-swatch {
  width: 16px;
  height: 16px;
  border-radius: 5px;
}
.pa-district-swatch--all {
  background: linear-gradient(135deg, var(--hap-brand-deep, #003087) 0%, var(--hap-brand-primary, #0072bc) 40%, rgba(148, 163, 184, 0.45) 100%);
}
.pa-district-swatch--hi { background: var(--hap-brand-deep, #003087); }
.pa-district-swatch--mid { background: var(--hap-brand-primary, #0072bc); }
.pa-district-swatch--zero { background: rgba(148, 163, 184, 0.35); }
.pa-district-swatch--unknown { background: repeating-linear-gradient(45deg, rgba(148, 163, 184, 0.22), rgba(148, 163, 184, 0.22) 4px, rgba(148, 163, 184, 0.1) 4px, rgba(148, 163, 184, 0.1) 8px); }

.pa-district-map-stage {
  position: relative;
  width: 100%;
}

.pa-district-map-tooltip {
  position: fixed;
  z-index: 80;
  max-width: min(320px, calc(100dvw - 1rem));
  max-width: min(320px, calc(100svw - 1rem));
  padding: 0.45rem 0.65rem;
  border-radius: 10px;
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--hap-brand-deep, #003087);
  background: rgba(255, 255, 255, 0.97);
  border: 1px solid rgba(0, 114, 188, 0.22);
  box-shadow: 0 10px 32px rgba(0, 48, 135, 0.18), 0 0 0 1px rgba(255, 255, 255, 0.6) inset;
  pointer-events: none;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}

.pa-district-heading {
  margin: 0 0 var(--space-4);
  font-size: var(--text-lg);
  font-weight: 800;
  color: var(--text);
  letter-spacing: var(--tracking-tight);
}

.pa-district-map-wrap {
  width: 100%;
  min-height: 320px;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--bg-card);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-6) var(--space-5);
  text-align: center;
}

.pa-district-map-wrap--interactive {
  min-height: min(52vh, 520px);
  padding: var(--space-4) var(--space-3);
  background: linear-gradient(165deg, rgba(237, 246, 253, 0.9) 0%, #fff 55%);
  border: 1px solid rgba(0, 114, 188, 0.18);
  box-shadow: 0 12px 40px rgba(0, 48, 135, 0.08), 0 0 0 1px rgba(255, 255, 255, 0.5) inset;
  transition: box-shadow 0.25s var(--ease), border-color 0.25s var(--ease);
}

.pa-district-map-wrap--interactive:hover {
  border-color: rgba(0, 114, 188, 0.28);
  box-shadow: 0 16px 48px rgba(0, 48, 135, 0.11), 0 0 0 1px rgba(255, 255, 255, 0.55) inset;
}

@media (max-width: 600px) {
  .pa-district-map-wrap--interactive {
    /* Taller than 58vw alone — short maps felt broken on common phone widths */
    min-height: max(240px, min(72vw, 440px));
    padding: var(--space-3) var(--space-2);
  }
  .pa-district-legend--interactive {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.4rem;
    align-items: stretch;
    width: 100%;
  }
  .pa-district-legend__chip {
    min-height: 44px;
    font-size: 0.6875rem;
    padding: 0.28rem 0.55rem 0.28rem 0.45rem;
    justify-content: flex-start;
  }
  .pa-district-swatch {
    width: 12px;
    height: 12px;
  }
  .pa-district-legend__chip .pa-district-swatch {
    width: 12px;
    height: 12px;
  }
}

.pa-district-svg {
  width: 100%;
  height: auto;
  display: block;
  max-width: 100%;
  shape-rendering: geometricPrecision;
}
.pa-district-shape {
  stroke: rgba(255, 255, 255, 0.95);
  stroke-width: 1;
  cursor: pointer;
  transition: filter 0.16s var(--ease), stroke-width 0.16s var(--ease), opacity 0.2s var(--ease);
  transform-origin: center;
}
.pa-district-shape:focus { outline: none; }
.pa-district-shape:focus-visible { outline: none; filter: drop-shadow(0 0 3px rgba(11, 103, 194, 0.35)); }
.pa-district-shape:hover { filter: drop-shadow(0 2px 6px rgba(15, 23, 42, 0.18)); }
.pa-district-shape--hover {
  filter: drop-shadow(0 4px 14px rgba(0, 174, 239, 0.45)) brightness(1.06);
  stroke-width: 1.6;
}
.pa-district-shape--dimmed:not(.pa-district-shape--selected) {
  opacity: 0.22;
}
.pa-district-shape--selected {
  stroke: #f59e0b;
  stroke-width: 2.4;
  filter: drop-shadow(0 0 4px rgba(245, 158, 11, 0.45));
  opacity: 1 !important;
}
.pa-district-shape--pulse {
  animation: pa-district-select-pulse 0.7s var(--ease-out, ease-out) 1;
}
@keyframes pa-district-select-pulse {
  0% { filter: drop-shadow(0 0 0 transparent); }
  35% { filter: drop-shadow(0 0 18px rgba(0, 174, 239, 0.75)); }
  100% { filter: drop-shadow(0 0 4px rgba(245, 158, 11, 0.45)); }
}

.pa-district-shape--hi { fill: var(--hap-brand-deep, #003087); }
.pa-district-shape--mid { fill: var(--hap-brand-primary, #0072bc); }
.pa-district-shape--zero { fill: rgba(148, 163, 184, 0.35); }
/* Stronger than 0.18 so district boundaries read when hospital counts are pending or data failed to load */
.pa-district-shape--unknown { fill: rgba(148, 163, 184, 0.38); }

.pa-district-hospital-dot {
  pointer-events: auto;
  cursor: pointer;
  fill: rgba(245, 158, 11, 0.96);
  stroke: rgba(15, 23, 42, 0.95);
  stroke-width: 1.2;
  transition: transform 0.18s var(--ease), filter 0.18s var(--ease);
  transform-origin: center;
  transform-box: fill-box;
}
.pa-district-hospital-dot--senate {
  fill: rgba(251, 191, 36, 0.95);
}
.pa-district-hospital-dot:hover {
  filter: drop-shadow(0 0 4px rgba(245, 158, 11, 0.75));
  transform: scale(1.35);
}
.pa-district-hospital-dot:focus,
.pa-district-hospital-dot:focus-visible {
  outline: none;
  filter: drop-shadow(0 0 4px rgba(245, 158, 11, 0.9));
  transform: scale(1.35);
}
@media (prefers-reduced-motion: reduce) {
  .pa-district-hospital-dot {
    transition: none !important;
  }
  .pa-district-shape--pulse {
    animation: none !important;
  }
  .pa-district-legend__chip:hover {
    transform: none;
  }
}

@media print {
  .pa-district-map-tooltip,
  .pa-district-map-hint {
    display: none !important;
  }
  .pa-district-shape--dimmed:not(.pa-district-shape--selected) {
    opacity: 1 !important;
  }
}

.pa-district-detail__note {
  margin: var(--space-3) 0 0;
  font-size: var(--text-xs);
  color: var(--text-muted);
  line-height: 1.45;
}

.pa-district-map-fallback {
  max-width: 52rem;
  font-size: var(--text-sm);
  color: var(--text-secondary);
  line-height: var(--leading-relaxed);
}

.pa-district-map-title {
  margin: 0 0 var(--space-3);
  font-weight: 900;
  color: var(--text);
}

.pa-district-map-fallback-text { margin: 0; }

.pa-district-map-wrap--coming-soon {
  justify-content: flex-start;
  text-align: left;
}

.pa-district-coming-soon-list {
  margin: 0.35rem 0 0.65rem 1rem;
  padding: 0;
  color: var(--text-secondary);
  line-height: 1.45;
}

.pa-district-coming-soon-list li {
  margin: 0.2rem 0;
}

.pa-district-priority-table-wrap {
  margin-top: var(--space-4);
}

.pa-district-priority-title {
  margin: 0 0 var(--space-2);
  font-size: var(--text-base);
  font-weight: 800;
  color: var(--text);
}

.pa-district-priority-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.pa-district-detail {
  border: 1px solid rgba(0, 114, 188, 0.14);
  border-radius: var(--radius-lg, 12px);
  background: linear-gradient(180deg, #fff 0%, rgba(237, 246, 253, 0.5) 100%);
  box-shadow: 0 10px 28px rgba(0, 48, 135, 0.08);
  padding: var(--space-4);
  min-height: 320px;
}
.pa-district-detail__kicker {
  margin: 0 0 var(--space-2);
  font-size: var(--text-xs);
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.pa-district-detail__title {
  margin: 0 0 var(--space-2);
  font-size: var(--text-base);
  font-weight: 900;
  color: var(--text);
}
.pa-district-detail__text {
  margin: 0;
  font-size: var(--text-sm);
  color: var(--text-secondary);
  line-height: 1.45;
}
.pa-district-detail__dl {
  margin: var(--space-3) 0 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-2);
  font-size: var(--text-sm);
}
.pa-district-detail__dl dt { font-weight: 900; color: var(--text); }
.pa-district-detail__dl dd { margin: 0; color: var(--text-secondary); line-height: 1.45; }

.pa-district-map-note {
  margin: var(--space-3) 0 var(--space-6);
  font-size: var(--text-xs);
  color: var(--text-muted);
  font-style: normal;
  line-height: 1.55;
}

.pa-district-lookup-form {
  margin-top: var(--space-6);
}

.pa-district-zip-label {
  display: block;
  margin: 0 0 var(--space-3);
  font-size: var(--text-sm);
  font-weight: 800;
  color: var(--text);
}

.pa-district-zip-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3);
}

.pa-district-zip-input {
  flex: 1 1 220px;
  min-height: 44px;
  padding: 0.65rem 0.9rem;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  background: rgba(255, 255, 255, 0.9);
  font: inherit;
  color: var(--text);
}

.pa-district-zip-input:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 2px;
}

.pa-district-lookup-btn {
  font-family: inherit;
  font-size: var(--text-sm);
  font-weight: 700;
  min-height: 44px;
  padding: 0.68rem 1rem;
  border: 1px solid var(--border);
  background: rgba(255,255,255,0.82);
  color: var(--text-secondary);
  border-radius: 999px;
  cursor: pointer;
  transition: background 0.2s var(--ease), color 0.2s var(--ease), border-color 0.2s var(--ease), box-shadow 0.2s var(--ease);
}

.pa-district-lookup-btn:hover {
  background: rgba(255,255,255,0.96);
  color: var(--accent-hover);
  border-color: var(--border-hover);
  box-shadow: var(--shadow-xs);
}

.pa-district-lookup-btn:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.pa-district-lookup-status {
  margin: var(--space-2) 0 0;
  font-size: var(--text-sm);
  color: var(--text-muted);
}

.pa-district-lookup-status.is-error {
  color: var(--hap-topic-risk, #ea580c);
  font-weight: 700;
}

.pa-district-lookup-note {
  margin: var(--space-3) 0 0;
  font-size: var(--text-sm);
  color: var(--text-secondary);
  font-style: italic;
}

.pa-district-senate-details {
  margin-top: var(--space-6);
}

.pa-district-senate-details > summary {
  cursor: pointer;
  font-size: var(--text-sm);
  font-weight: 900;
  color: var(--text);
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--neutral-50);
  box-shadow: var(--shadow-xs);
}

.pa-district-senate-details[open] > summary {
  border-color: var(--border-hover);
}

.pa-district-senate-table-wrap {
  margin-top: var(--space-4);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--bg-card);
}

.pa-district-senate-table {
  width: 100%;
  min-width: 620px;
  border-collapse: collapse;
  font-size: var(--text-sm);
}

.pa-district-senate-table th,
.pa-district-senate-table td {
  padding: var(--space-2) var(--space-3);
  text-align: left;
  border-bottom: 1px solid var(--border);
  vertical-align: top;
}

.pa-district-senate-table th {
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-muted);
  background: var(--neutral-100);
}

.pa-district-senate-note {
  margin: var(--space-4) 0 0;
  font-size: var(--text-sm);
  color: var(--text-muted);
}

/* Policy Impact Simulator — advocacy tool, stands out */
.impact-simulator-section {
  margin-top: var(--space-12);
}
.impact-simulator-card {
  padding: clamp(var(--space-8), 2vw + var(--space-6), var(--space-10));
  border: 1px solid var(--impact-border);
  background: linear-gradient(165deg, #ffffff 0%, #f7fbff 55%, #eef5ff 100%);
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.12);
  border-radius: calc(var(--radius) + 2px);
  position: relative;
  overflow: hidden;
  transition: box-shadow 0.25s var(--ease), border-color 0.25s var(--ease), transform 0.25s var(--ease);
}
.impact-simulator-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 22px 36px rgba(15, 23, 42, 0.14);
}
.impact-simulator-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 5px;
  background: var(--impact-accent);
}

/* Scenario theming: protect (blue/gold), mix (neutral), remove (dire red) */
#policy-impact-simulator-root {
  --impact-accent: var(--hap-brand-primary, #0b67c2);
  --impact-tint: rgba(11, 103, 194, 0.11);
  --impact-border: rgba(11, 103, 194, 0.36);
  --impact-glow: rgba(11, 103, 194, 0.2);
  --impact-highlight: #f4f9ff;
  --impact-emphasis: #0b67c2;
}
#policy-impact-simulator-root[data-impact-scenario="protect"] {
  --impact-accent: var(--hap-brand-primary, #0b67c2);
  --impact-tint: rgba(11, 103, 194, 0.11);
  --impact-border: rgba(11, 103, 194, 0.36);
  --impact-glow: rgba(11, 103, 194, 0.2);
  --impact-highlight: #f4f9ff;
  --impact-emphasis: #0b67c2;
}
#policy-impact-simulator-root[data-impact-scenario="mix"] {
  --impact-accent: #4b5563;
  --impact-tint: rgba(75, 85, 99, 0.09);
  --impact-border: rgba(75, 85, 99, 0.28);
  --impact-glow: rgba(75, 85, 99, 0.18);
  --impact-highlight: #fbfbfc;
  --impact-emphasis: #364152;
}
#policy-impact-simulator-root[data-impact-scenario="remove"] {
  --impact-accent: #b42318;
  --impact-tint: rgba(180, 35, 24, 0.14);
  --impact-border: rgba(180, 35, 24, 0.45);
  --impact-glow: rgba(180, 35, 24, 0.28);
  --impact-highlight: #fff5f4;
  --impact-emphasis: #9f1b12;
}
#policy-impact-simulator-root[data-impact-scenario="remove"] .impact-simulator-card {
  background: linear-gradient(155deg, #fff7f6 0%, #fff0ee 100%);
}
#policy-impact-simulator-root[data-impact-scenario="remove"] .impact-simulator-card::after {
  content: "Emergency impact profile";
  position: absolute;
  top: 0.7rem;
  right: 0.85rem;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #7a2018;
  background: rgba(180, 35, 24, 0.14);
  border: 1px solid rgba(180, 35, 24, 0.32);
  border-radius: 999px;
  padding: 0.2rem 0.55rem;
}

/* BASIC / static: single kicker line (advanced page builds header via impact-ui.js) */
.impact-simulator-badge,
.impact-simulator-title {
  color: var(--text);
}
.impact-simulator-badge {
  display: inline-block;
  font-size: var(--text-2xs);
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: var(--space-1) var(--space-3);
  border-radius: 999px;
  margin: 0 0 var(--space-2);
  background: var(--hap-topic-policy-soft);
  border: 1px solid var(--hap-topic-policy-border);
  color: var(--hap-topic-policy);
}
.impact-simulator-title {
  display: block;
  font-size: var(--text-lg);
  font-weight: 800;
  letter-spacing: var(--tracking-tight);
  text-transform: none;
  margin: 0 0 var(--space-4);
  padding: 0;
  border-radius: 0;
  background: none;
  color: var(--text);
}
.impact-simulator-header {
  margin: 0 0 var(--space-6);
  text-align: left;
  max-width: 48rem;
}
.impact-simulator-kicker {
  margin: 0 0 var(--space-2);
  font-size: var(--text-2xs);
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.impact-simulator-headline {
  font-size: clamp(1.35rem, 2.8vw, 2rem);
  font-weight: 800;
  color: var(--text);
  margin: 0 0 var(--space-3);
  letter-spacing: var(--tracking-tight);
  line-height: 1.2;
  max-width: 22em;
  text-wrap: balance;
}
.impact-simulator-lead {
  font-size: var(--text-base);
  color: var(--text-secondary);
  margin: 0 0 var(--space-3);
  line-height: 1.55;
  max-width: 40rem;
}
.impact-simulator-disclosure {
  margin: 0;
  padding: var(--space-3) var(--space-4);
  font-size: var(--text-sm);
  line-height: 1.45;
  color: var(--text-secondary);
  border-left: 4px solid var(--hap-topic-policy);
  background: var(--hap-topic-policy-soft);
  border-radius: 0 var(--radius) var(--radius) 0;
}

.impact-simulator-toolbar {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  margin-bottom: var(--space-6);
}
.impact-simulator-toolbar-label {
  margin: 0;
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.impact-simulator-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  justify-content: stretch;
}
.impact-simulator-buttons--segmented {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: 100%;
  gap: var(--space-2);
}
.impact-scenario-btn {
  font-family: inherit;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 0.2rem;
  text-align: left;
  font-size: var(--text-sm);
  font-weight: 700;
  min-height: 3.5rem;
  padding: 0.75rem 1rem;
  border: 2px solid var(--border);
  background: rgba(255, 255, 255, 0.96);
  color: var(--text);
  border-radius: var(--radius);
  cursor: pointer;
  transition: border-color 0.2s var(--ease), box-shadow 0.2s var(--ease), background 0.2s var(--ease), color 0.2s var(--ease), transform 0.2s var(--ease);
  box-shadow: var(--shadow-xs);
}
.impact-scenario-btn__label {
  display: block;
  font-weight: 800;
  line-height: 1.25;
}
.impact-scenario-btn__hint {
  display: block;
  font-size: var(--text-2xs);
  font-weight: 600;
  color: var(--text-muted);
  line-height: 1.3;
}
.impact-scenario-btn.active .impact-scenario-btn__hint {
  color: rgba(255, 255, 255, 0.88);
}
.impact-scenario-btn:hover {
  background: #ffffff;
  color: var(--impact-emphasis);
  border-color: var(--impact-accent);
  transform: translateY(-1px);
  box-shadow: var(--shadow-sm);
}
.impact-scenario-btn.active {
  background: var(--impact-accent);
  color: #fff;
  border-color: var(--impact-accent);
  box-shadow: var(--shadow-sm);
  transform: translateY(-1px);
}
#policy-impact-simulator-root[data-impact-scenario="protect"] .impact-scenario-btn--protect.active {
  background: linear-gradient(120deg, #0b67c2 0%, #0d7edb 72%, #f5b942 160%);
  border-color: #0b67c2;
}
/* Legacy class (rollback) kept for backward compatibility; treat as remove protections */
.impact-scenario-btn--rollback.active {
  background: #b42318;
  border-color: #b42318;
  color: #fff;
  box-shadow: var(--shadow-sm);
}
.impact-scenario-btn:focus-visible { outline: 2px solid var(--impact-accent); outline-offset: 2px; }

.impact-simulator-results .impact-result-value { color: var(--impact-accent); }
.impact-simulator-results .impact-narrative {
  border-left-color: var(--impact-accent);
  background: var(--impact-tint);
  border: 1px solid var(--impact-border);
}
.impact-simulator-results .impact-takeaway {
  border-color: var(--impact-border);
  background: var(--impact-tint);
  color: var(--text);
}

.impact-scenario-signal {
  display: flex;
  align-items: stretch;
  gap: var(--space-4);
  margin: 0 0 var(--space-4);
  padding: var(--space-4) var(--space-5);
  border-radius: var(--radius-lg);
  border: 1px solid var(--impact-border);
  background: linear-gradient(130deg, var(--impact-highlight) 0%, #ffffff 100%);
  box-shadow: 0 8px 18px var(--impact-glow);
}
.impact-scenario-signal-accent {
  width: 4px;
  min-width: 4px;
  align-self: stretch;
  border-radius: 2px;
  background: var(--impact-accent);
}
.impact-scenario-signal-title {
  margin: 0 0 var(--space-1);
  font-size: var(--text-base);
  font-weight: 800;
  color: var(--impact-emphasis);
}
.impact-scenario-signal-detail {
  margin: 0;
  color: var(--text-secondary);
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
}

.impact-takeaway {
  font-size: var(--text-base);
  font-weight: 600;
  color: var(--text);
  margin: 0 0 var(--space-4);
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius);
  text-align: center;
  background: var(--neutral-50);
  border: 1px solid var(--border);
}

.impact-results-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-5);
  margin-bottom: var(--space-5);
}
.impact-result-card {
  padding: var(--space-6);
  border-radius: var(--radius);
  background: var(--bg-card);
  border: 1px solid var(--impact-border);
  box-shadow: var(--shadow-xs);
  transition: box-shadow 0.2s var(--ease), transform 0.2s var(--ease);
}
.impact-result-card:hover {
  box-shadow: var(--shadow-sm);
  transform: translateY(-2px);
}
#policy-impact-simulator-root[data-impact-scenario="protect"] .impact-result-card {
  border-color: rgba(11, 103, 194, 0.24);
  background: linear-gradient(165deg, #ffffff 0%, #f7fbff 100%);
}
#policy-impact-simulator-root[data-impact-scenario="mix"] .impact-result-card {
  border-color: rgba(75, 85, 99, 0.22);
  background: linear-gradient(165deg, #ffffff 0%, #fafbfc 100%);
}
#policy-impact-simulator-root[data-impact-scenario="remove"] .impact-result-card {
  border-left: 4px solid #b42318;
  border-color: rgba(180, 35, 24, 0.38);
  background: linear-gradient(165deg, #ffffff 0%, #fff5f4 100%);
  animation: impactDirePulse 1.2s ease-in-out 2;
}
#policy-impact-simulator-root[data-impact-scenario="remove"] .impact-takeaway {
  font-weight: 800;
}

.impact-result-label {
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  color: var(--text-muted);
  margin: 0 0 var(--space-2);
}
/* Value-first cards: dominant number, then label, then note */
.impact-result-card .impact-result-value:first-child {
  margin: 0 0 0.35rem;
}
.impact-result-card .impact-result-value:first-child + .impact-result-label {
  margin-top: 0;
}
.impact-result-value {
  font-family: var(--font-mono);
  font-size: clamp(2rem, 5vw, 3rem);
  font-weight: 800;
  color: var(--primary);
  margin: 0 0 var(--space-2);
  letter-spacing: var(--tracking-tight);
  line-height: 1;
}
.impact-result-unit, .impact-result-note {
  font-size: var(--text-sm);
  color: var(--text-secondary);
  margin: 0;
  line-height: var(--leading-snug);
}
.impact-narrative {
  font-size: var(--text-base);
  color: var(--text-secondary);
  line-height: var(--leading-relaxed);
  margin: 0;
  padding: var(--space-5) var(--space-6);
  border-radius: var(--radius-lg);
  background: var(--neutral-50);
  border-left: 4px solid var(--primary);
}

@keyframes impactDirePulse {
  0% { box-shadow: 0 0 0 0 rgba(180, 35, 24, 0.28); }
  70% { box-shadow: 0 0 0 8px rgba(180, 35, 24, 0); }
  100% { box-shadow: 0 0 0 0 rgba(180, 35, 24, 0); }
}

@media (prefers-reduced-motion: reduce) {
  .impact-result-card,
  .impact-simulator-card,
  .impact-scenario-btn {
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }
}
@media (max-width: 700px) {
  .impact-results-grid { grid-template-columns: 1fr; }
  .impact-simulator-buttons:not(.impact-simulator-buttons--segmented) { flex-direction: column; }
  .impact-simulator-buttons--segmented {
    grid-template-columns: 1fr;
  }
  .impact-simulator-card { padding: var(--space-5); }
  .impact-scenario-signal { padding: var(--space-3) var(--space-4); }
}

/* Map — animation and SVG-safe colors. DO NOT add overflow:hidden on .map-wrap or .us-map-wrap (print/PDF rely on visible content). */
.map-wrap { margin: 0; padding: 0; border-radius: var(--radius); opacity: 0; transform: translateY(6px); transition: opacity 0.6s var(--ease-smooth), transform 0.5s var(--ease-smooth); min-height: 0; position: relative; align-self: start; }
.map-loading-skeleton { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: var(--neutral-50); border-radius: var(--radius); min-height: 320px; z-index: 1; }
.map-loading-skeleton.hidden { display: none; opacity: 0; pointer-events: none; transition: opacity 0.3s var(--ease); }
.map-loading-text { font-size: var(--text-sm); color: var(--text-muted); font-weight: 500; }
.map-wrap.visible { opacity: 1; transform: none; }
.dashboard .us-map-wrap svg {
  width: 100%;
  height: auto;
  display: block;
  max-width: 100%;
  overflow: visible;
  shape-rendering: geometricPrecision;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}
.dashboard .us-map-wrap .state { fill: var(--map-no-protection); stroke: rgba(255,255,255,0.9); stroke-width: 1; cursor: pointer; transition: fill 0.2s var(--ease), stroke 0.2s var(--ease), transform 0.2s var(--ease); transform-origin: center; }
.dashboard .us-map-wrap .state-abbr-label {
  fill: #0f172a;
  font-weight: 700;
  letter-spacing: 0.01em;
  paint-order: stroke;
  stroke: rgba(255, 255, 255, 0.95);
  stroke-width: 2px;
  pointer-events: none;
  user-select: none;
}
.dashboard .us-map-wrap .state-abbr-label--selected {
  fill: var(--hap-brand-deep, #003087);
}
.dashboard .us-map-wrap .state.protection { fill: var(--map-protection); }
.dashboard .us-map-wrap .state.protection:hover { fill: var(--map-protection-hover); transform: scale(1.02); }
.dashboard .us-map-wrap .state.no-protection:hover { fill: var(--map-no-protection-hover); transform: scale(1.02); }
.dashboard .us-map-wrap .state.selected { stroke: var(--map-selected); stroke-width: 2.5; stroke-opacity: 1; }
#us-map path[data-state]:focus-visible {
  outline: 3px solid var(--hap-brand-primary, var(--primary));
  outline-offset: 1px;
}
.dashboard .us-map-wrap .state:hover { stroke: var(--primary); stroke-width: 1.5; }
.dashboard .us-map-wrap .state:focus { outline: none; }
.dashboard .us-map-wrap .state:focus-visible { stroke: var(--primary); stroke-width: 2.5; stroke-opacity: 1; filter: drop-shadow(0 0 3px var(--primary)); }
/* Domino: states animate west-to-east (left-to-right) when map becomes visible. */
.dashboard .us-map-wrap .state.state-domino { opacity: 0; transform: translateX(-12px); }
.dashboard .us-map-wrap.map-visible .state.state-domino { animation: dominoIn 0.75s var(--ease-smooth) forwards; }
@keyframes dominoIn { to { opacity: 1; transform: translateX(0); } }
@media (prefers-reduced-motion: reduce) {
 .map-wrap { opacity: 1; transform: none; transition: none; }
 .dashboard .us-map-wrap .state.state-domino { opacity: 1; transform: none; animation: none; }
 .dashboard .us-map-wrap .state:hover { transform: none; }
}
.map-container { display: grid; gap: var(--space-4); position: relative; align-items: start; }
@media (min-width: 700px) { .map-container { grid-template-columns: 1fr 260px; } }
.map-hero-section .map-container { min-height: 0; }
.map-hero-section .map-container > * { min-width: 0; }
.map-legend-compact {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.35rem 0.5rem;
  margin: var(--space-2) 0 0;
  padding: 0.35rem 0.65rem;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--text-muted);
  line-height: 1.35;
  background: rgba(255, 255, 255, 0.65);
  border: 1px solid rgba(0, 114, 188, 0.1);
  border-radius: 999px;
  max-width: 100%;
}
.map-legend-compact-item { display: inline-flex; align-items: center; gap: 0.35rem; }
.map-legend-compact-sep { color: var(--border); padding: 0 0.1rem; user-select: none; }
.map-legend-compact .map-legend-swatch { width: 10px; height: 10px; border-radius: 3px; }
.map-legend-swatch { width: 12px; height: 12px; border-radius: 6px; flex-shrink: 0; border: 1px solid var(--border); }

/* US map hero — legend: on phones the pill reads as a huge “key”; tier down size and let text wrap without full-width bar feel */
@media (max-width: 700px) {
  .map-legend-compact {
    justify-content: center;
    gap: 0.2rem 0.4rem;
    margin-top: var(--space-2);
    padding: 0.3rem 0.55rem;
    font-size: var(--text-xs, 0.6875rem);
    line-height: 1.3;
    border-radius: var(--radius-sm);
    max-width: 100%;
  }
  .map-legend-compact-sep { font-size: 0.5rem; opacity: 0.35; }
  .map-legend-compact .map-legend-swatch {
    width: 8px;
    height: 8px;
    flex-shrink: 0;
  }
}
@media (max-width: 430px) {
  .map-legend-compact {
    padding: 0.25rem 0.45rem;
    font-size: 0.625rem;
    gap: 0.15rem 0.3rem;
  }
  .map-legend-compact-sep { display: none; }
}
.map-legend-swatch.protection { background: var(--map-protection); border-color: var(--map-protection-hover); }
.map-legend-swatch.no-protection { background: var(--map-no-protection); border-color: var(--neutral-300); }
.state-detail-panel { padding: var(--space-5); border-radius: var(--radius); background: var(--bg-card); border: 1px solid var(--border); min-height: 5rem; font-size: var(--text-sm); transition: border-color 0.2s var(--ease); box-shadow: var(--shadow-xs); }
.state-detail-panel:not(.empty) { border-color: var(--primary-border); }
.state-detail-panel.empty { color: var(--text-muted); text-align: center; display: flex; align-items: center; justify-content: center; }
.state-detail-panel h4 { margin: 0 0 var(--space-2); color: var(--primary); font-size: var(--text-lg); font-weight: 600; }
.state-detail-summary { margin: 0 0 var(--space-3); font-size: var(--text-sm); color: var(--text); line-height: var(--leading-relaxed); }
.state-detail-panel .badge { display: inline-block; padding: var(--space-1) var(--space-2); border-radius: var(--radius-sm); font-size: var(--text-xs); font-weight: 600; margin-right: var(--space-2); margin-bottom: var(--space-1); }
.state-detail-panel .badge.yes { background: var(--primary-muted); color: var(--primary); }
.state-detail-panel .badge.no { background: var(--neutral-100); color: var(--text-muted); }
.state-detail-grid { display: grid; grid-template-columns: auto 1fr; gap: var(--space-2) var(--space-3); margin: 0; }
.state-detail-grid dt { font-size: var(--text-xs); font-weight: 700; letter-spacing: var(--tracking-wider); text-transform: uppercase; color: var(--text-muted); }
.state-detail-grid dd { margin: 0; color: var(--text-secondary); }
.state-detail-fiscal {
  margin: var(--space-4) 0 0;
  padding-top: var(--space-3);
  border-top: 1px solid var(--border);
}
.state-detail-fiscal-heading {
  margin: 0 0 var(--space-2);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  color: var(--text-muted);
}
.state-detail-fiscal-body {
  margin: 0 0 var(--space-2);
  font-size: var(--text-sm);
  color: var(--text-secondary);
  line-height: var(--leading-relaxed);
}
.state-detail-fiscal-disclaimer {
  margin: 0;
  font-size: var(--text-xs);
  line-height: var(--leading-relaxed);
  color: var(--text-muted);
}
.state-detail-impact { margin: var(--space-3) 0 0; padding-top: var(--space-3); border-top: 1px solid var(--border); font-size: var(--text-xs); line-height: var(--leading-relaxed); color: var(--text-muted); }

/* State filter */
.state-filter-bar { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-bottom: var(--space-4); align-items: center; justify-content: center; }
.state-filter-toggles { display: flex; gap: var(--space-1); flex-wrap: wrap; }
@media (max-width: 500px) { .state-filter-bar { flex-direction: column; align-items: stretch; } }
.state-filter-status { margin: 0 0 var(--space-3); font-size: var(--text-xs); color: var(--text-muted); }
.state-no-results { margin: 0; padding: var(--space-3) var(--space-4); border: 1px dashed var(--border); border-radius: var(--radius-sm); color: var(--text-muted); font-size: var(--text-sm); background: var(--neutral-50); }
.state-filter-btn { font-family: inherit; font-size: var(--text-sm); min-height: 44px; padding: var(--space-2) var(--space-4); border: 1px solid var(--border); background: var(--bg-card); color: var(--text-secondary); border-radius: var(--radius); cursor: pointer; transition: border-color 0.2s var(--ease), background 0.2s var(--ease); }
.state-filter-btn:hover { background: var(--neutral-100); color: var(--primary); border-color: var(--border-hover); }
.state-filter-btn.active { background: var(--primary-muted); color: var(--primary); border-color: var(--primary-border); font-weight: 600; }

/* State filter dropdown (Wave 3) — keeps select in sync with filter buttons */
.state-filter-dropdown-label { font-size: var(--text-sm); color: var(--text-secondary); margin-right: var(--space-2); }
.state-filter-select { font-family: inherit; font-size: var(--text-sm); min-height: 44px; padding: 0.5rem 2rem 0.5rem 0.75rem; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--neutral-0); color: var(--text); cursor: pointer; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23475569' d='M6 8L2 4h8z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 0.75rem center; }
.state-filter-select:hover { border-color: var(--primary-border); }
.state-filter-select:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }

/* Map error & retry */
.map-error-wrap { display: flex; align-items: center; justify-content: center; gap: var(--space-2); flex-wrap: wrap; padding: var(--space-5); }
.map-error-msg { padding: var(--space-6); text-align: center; color: var(--text-muted); font-size: var(--text-base); }
.map-retry-btn { margin-left: var(--space-2); padding: var(--space-2) var(--space-4); background: var(--primary); color: #fff; border: none; border-radius: var(--radius-sm); font-weight: 600; cursor: pointer; font-size: var(--text-sm); }
.map-retry-btn:hover { background: var(--primary-hover); }
.map-fallback { margin: 0 var(--space-4) var(--space-4); padding: var(--space-4); border: 1px solid var(--border); border-radius: var(--radius); background: var(--neutral-50); max-height: 16rem; overflow: auto; }
.map-fallback-title { margin: 0 0 var(--space-2); font-size: var(--text-sm); color: var(--primary); }
.map-fallback-list { margin: 0; padding-left: var(--space-5); font-size: var(--text-sm); color: var(--text-secondary); }
.map-fallback-item + .map-fallback-item { margin-top: var(--space-1); }

/* Static map fallback — pre-colored 50-state grid */
#map-static-fallback {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--neutral-100);
  padding: var(--space-4);
  min-height: 320px;
}
.map-static-fallback__grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.35rem 0.35rem;
  align-items: center;
}
@media (max-width: 520px) {
  .map-static-fallback__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.3rem;
  }
}
@media (max-width: 400px) {
  .map-static-fallback__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.28rem;
  }
  .map-static-fallback__state {
    font-size: 0.65rem;
    padding: 0.32rem 0.15rem;
  }
}
.map-static-fallback__state {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-weight: 800;
  letter-spacing: 0.03em;
  text-align: center;
  border-radius: 10px;
  padding: 0.42rem 0;
  border: 1px solid rgba(0,0,0,0.06);
  user-select: none;
}
.map-static-fallback__state--yes {
  background: var(--hap-brand-deep, #003087);
  color: #fff;
  border-color: rgba(0,48,135,0.45);
}
.map-static-fallback__state--no {
  background: var(--neutral-100, #e5e7eb);
  color: #334155;
  border-color: rgba(15,23,42,0.08);
}
.map-static-fallback__note {
  margin: var(--space-3) 0 0;
  font-size: var(--text-xs);
  color: var(--text-muted);
  line-height: 1.45;
}

/* Scroll reveal: visible by default if JS off; with JS, hidden until .revealed / .is-visible (print forces both). */
.scroll-reveal { opacity: 1; transform: none; transition: opacity 0.55s ease-out, transform 0.55s ease-out; }
body.scroll-reveal-js .scroll-reveal:not(.revealed):not(.is-visible) { opacity: 0; transform: translateY(20px); }
body.scroll-reveal-js .scroll-reveal.revealed,
body.scroll-reveal-js .scroll-reveal.is-visible { opacity: 1; transform: none; }
body.scroll-reveal-js .utility-toolbar,
body.scroll-reveal-js .kpi-strip,
body.scroll-reveal-js .pa-operating-stakes-hero,
body.scroll-reveal-js #community-benefit { opacity: 1 !important; transform: none !important; }
@media (prefers-reduced-motion: reduce) { .scroll-reveal { opacity: 1; transform: none; transition: none; } .scroll-reveal.revealed { opacity: 1; } }

/* State lists */
.state-lists-wrap { display: grid; gap: var(--space-3); margin-top: var(--space-3); }
@media (min-width: 500px) { .state-lists-wrap { grid-template-columns: 1fr 1fr; } }
.state-list-block { padding: var(--space-3); border-radius: var(--radius-lg); box-shadow: var(--shadow-xs); }
.state-list-block.protection { background: var(--neutral-100); border: 1px solid var(--border); }
.state-list-block.no-protection { background: var(--neutral-100); border: 1px solid var(--border); }
.state-list-block h3 { font-size: 0.78rem; margin: 0 0 var(--space-2); font-weight: 600; line-height: var(--leading-snug); letter-spacing: var(--tracking-wide); text-transform: uppercase; }
.state-list-block.protection h3 { color: var(--primary); }
.state-list-block.no-protection h3 { color: var(--text-muted); }
/* State chips: grid with compact cell size for abbrevs (e.g. PA, NY). */
.state-list-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(64px, 1fr)); gap: 0.28rem 0.4rem; font-size: var(--text-xs); }
.state-chip { padding: 0.62rem 0.5rem; border-radius: 14px; border: 0; background: rgba(255,255,255,0.66); appearance: none; font: inherit; cursor: pointer; transition: background 0.2s var(--ease), transform 0.15s var(--ease), box-shadow 0.2s var(--ease), color 0.2s var(--ease); color: var(--text-secondary); text-align: center; box-shadow: inset 0 0 0 1px rgba(255,255,255,0.8); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; }
.state-chip:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.state-list-block.protection .state-chip { color: var(--primary); }
.state-list-block.protection .state-chip:hover { background: rgba(11,103,194,0.14); }
.state-list-block.no-protection .state-chip:hover { background: rgba(226,232,240,0.88); }
.state-chip.selected { background: rgba(11,103,194,0.18) !important; font-weight: 700; box-shadow: 0 0 0 2px rgba(11,103,194,0.22); }
.state-list-block.no-protection .state-chip.selected { background: rgba(203,213,225,0.9) !important; color: var(--text); }
.state-chip { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 0; }
.state-chip:active { transform: scale(0.96); }

/* Ranked state table (Wave 3) — states with protection by year enacted */
.ranked-state-table-wrap { overflow: hidden; border-radius: var(--radius); border: 1px solid var(--border); background: var(--bg-card); }
.ranked-state-table-desc { font-size: var(--text-sm); color: var(--text-secondary); margin: 0 0 var(--space-3); }
.table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.ranked-state-table { width: 100%; border-collapse: collapse; font-size: var(--text-sm); }
.ranked-state-table th { text-align: left; padding: var(--space-2) var(--space-3); font-weight: 600; color: var(--text-secondary); border-bottom: 1px solid var(--border); background: var(--neutral-50); }
.ranked-state-table td { padding: var(--space-2) var(--space-3); border-bottom: 1px solid var(--border); color: var(--text); }
.ranked-state-table tbody tr:hover { background: var(--primary-muted); }
.ranked-state-table tbody tr:last-child td { border-bottom: 0; }
/* Sortable column headers (next-level CEO dashboard) */
.ranked-th[data-sort] { cursor: pointer; user-select: none; white-space: nowrap; }
.ranked-th[data-sort]:hover { color: var(--primary); }
.ranked-th-indicator { opacity: 0.4; font-size: 0.65em; margin-left: 0.25rem; }
.ranked-th[aria-sort="ascending"] .ranked-th-indicator::after { content: " ▲"; }
.ranked-th[aria-sort="descending"] .ranked-th-indicator::after { content: " ▼"; }

.map-tooltip {
  position: fixed;
  z-index: 99999;
  padding: var(--space-3);
  background: #1a1d21;
  color: #fff;
  font-size: var(--text-sm);
  font-weight: 600;
  border-radius: var(--radius-sm);
  pointer-events: none;
  opacity: 0;
  white-space: normal;
  max-width: min(22rem, calc(100dvw - 1.5rem));
  max-width: min(22rem, calc(100svw - 1.5rem));
  line-height: var(--leading-snug);
  box-shadow: var(--shadow-lg);
  transition: opacity 0.15s var(--ease);
}
.map-tooltip.visible { opacity: 1; }
.map-tooltip strong { display: block; margin-bottom: 0.2rem; font-weight: 700; }
.map-tooltip .map-tooltip-line {
  margin-top: 0.25rem;
  font-size: var(--text-xs);
  font-weight: 500;
  color: rgba(255, 255, 255, 0.92);
}
.state-list-tooltip { position: fixed; z-index: 99999; padding: var(--space-3); background: #1a1d21; color: #fff; font-size: var(--text-sm); font-weight: 500; border-radius: var(--radius-sm); pointer-events: none; opacity: 0; box-shadow: var(--shadow-lg); transition: opacity 0.15s var(--ease); max-width: 300px; white-space: normal; }
.state-list-tooltip.visible { opacity: 1; }
.state-list-tooltip .badge { padding: 0.1rem 0.35rem; border-radius: 4px; font-size: 0.7rem; margin: 0.1rem 0.2rem 0.1rem 0; }
/* Hide floating tooltips on touch devices; chips/districts use native title attribute instead. */
@media (hover: none) {
 .map-tooltip,
 .state-list-tooltip,
 .pa-district-map-tooltip { display: none !important; }
 .pa-district-shape:hover { filter: none; }
}

/* Trends */
.trends-grid { display: grid; gap: var(--space-3); margin-top: var(--space-4); }
@media (min-width: 500px) { .trends-grid { grid-template-columns: repeat(3, 1fr); } }
.trends-card { padding: var(--space-4); border-radius: var(--radius); background: var(--neutral-100); border: 1px solid var(--border); display: flex; gap: var(--space-4); align-items: flex-start; transition: border-color 0.2s var(--ease); min-height: 0; }
.trends-card:hover { border-color: var(--border-hover); }
.trends-card h4 { margin: 0 0 var(--space-1); font-size: var(--text-base); font-weight: 600; color: var(--primary); }
.trends-card p { margin: 0; font-size: var(--text-sm); color: var(--text-secondary); line-height: var(--leading-relaxed); }
.trends-icon { width: 40px; height: 40px; border-radius: var(--radius-sm); background: var(--primary-muted); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.trends-icon svg { width: 20px; height: 20px; stroke: var(--primary); stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; fill: none; }

/* Adoptions by year chart (next-level): bar chart from policy-insights */
.adoptions-chart-wrap { margin-top: var(--space-6); }
.adoptions-chart-desc { font-size: var(--text-sm); color: var(--text-secondary); margin: 0 0 var(--space-3); }
.adoptions-chart { display: flex; align-items: flex-end; gap: var(--space-2); min-height: 120px; padding: var(--space-4) 0; }
.adoptions-chart-bar {
  flex: 1;
  min-width: 24px;
  max-width: 48px;
  background: linear-gradient(180deg, var(--chart-topic-insurance), color-mix(in srgb, var(--chart-topic-insurance) 85%, white));
  border-radius: var(--radius-sm) var(--radius-sm) 0 0;
  transition: opacity 0.2s var(--ease);
}
@supports not (background: color-mix(in srgb, red, blue)) {
  .adoptions-chart-bar { background: var(--chart-topic-insurance); }
}
.adoptions-chart-bar:hover { opacity: 0.9; }
.adoptions-chart-bar[title] { cursor: help; }
.adoptions-chart-bar-label { font-size: var(--text-2xs); text-align: center; margin-top: var(--space-1); color: var(--text-muted); }
.adoptions-chart-inner { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--space-2); }
.section-subhead { font-size: var(--text-sm); font-weight: 600; color: var(--text); margin: var(--space-6) 0 var(--space-3); letter-spacing: var(--tracking-tight); }
.section-subhead:first-child { margin-top: 0; }
.section-subhead--supporting { margin-top: var(--space-7); }
.sources { font-size: var(--text-xs); color: var(--text-muted); margin-top: var(--space-4); font-style: italic; }
.sources-cluster {
  margin-top: var(--space-4);
  padding: var(--space-4);
  border-radius: var(--radius, 10px);
  border: 1px solid var(--border);
  background: rgba(255, 255, 255, 0.92);
}
.sources-cluster .sources {
  margin-top: 0;
  font-style: normal;
  font-size: var(--text-sm);
  color: var(--text-secondary);
  line-height: 1.45;
  font-weight: 500;
}
.sources-cluster .sources--limitations {
  margin-top: var(--space-2);
  padding-top: var(--space-2);
  border-top: 1px dashed rgba(0, 114, 188, 0.15);
  font-size: var(--text-sm);
  color: var(--text-muted);
}
.sources-cluster .sources strong {
  color: var(--text);
  font-weight: 700;
}

/* 340b-BASIC.html: static state list paragraphs */
.basic-state-list { margin: 0 0 var(--space-4); font-size: var(--text-sm); color: var(--text-secondary); line-height: 1.5; }

/* About Data panel: data provenance, version, methodology (Wave 1 architecture) */
.about-data-panel {
  margin-top: var(--space-4);
  padding: var(--space-4);
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}
.about-data-heading {
  margin: 0 0 var(--space-3);
  font-size: var(--text-sm);
  font-weight: 700;
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--text-muted);
}
.about-data-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: var(--space-3);
  margin-bottom: var(--space-3);
}
.about-data-item {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}
.about-data-label {
  font-size: var(--text-xs);
  font-weight: 600;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.about-data-value {
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--text);
}
.about-data-methodology,
.about-data-sources {
  margin: 0 0 var(--space-2);
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
  color: var(--text-secondary);
}
.about-data-sources { margin-bottom: 0; }
.about-data-download { margin-top: var(--space-3); padding-top: var(--space-2); border-top: 1px solid var(--border); display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.about-data-download-label { font-size: var(--text-sm); font-weight: 600; color: var(--text-secondary); margin-right: var(--space-1); }

/* Data validation banner: shown when analytics/validate-data.js finds issues */
.data-validation-banner {
  padding: var(--space-2) var(--space-4);
  font-size: var(--text-sm);
  font-weight: 500;
}
.data-validation-banner--warn {
  background: #fef3c7;
  border: 1px solid #f59e0b;
  color: #92400e;
}

/* Policy insights strip (Wave 2): national benchmark and adoption summary */
.policy-insights-strip {
  margin-bottom: var(--space-4);
  padding: var(--space-4) var(--space-5);
  background: var(--bg-card);
  border: 1px solid var(--primary-border);
  border-radius: var(--radius);
}
.policy-insights-heading {
  margin: 0 0 var(--space-2);
  font-size: var(--text-sm);
  font-weight: 700;
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--text-muted);
}
.policy-insights-summary {
  margin: 0 0 var(--space-3);
  font-size: var(--text-base);
  line-height: var(--leading-relaxed);
  color: var(--text-secondary);
}
.policy-insights-metrics {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--space-4);
}
.policy-insights-metric {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
}
.policy-insights-value {
  font-size: clamp(1.75rem, 3.5vw, 2.35rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.05;
  color: var(--chart-topic-policy);
  font-variant-numeric: tabular-nums;
}
.policy-insights-label {
  font-size: var(--text-sm);
  color: var(--text-muted);
}

footer { padding: var(--space-12) var(--space-6); text-align: center; color: var(--text-muted); font-size: var(--text-sm); border-top: 1px solid var(--border); background: var(--bg-card); position: relative; z-index: 1; }
footer a { color: inherit; }
footer a:hover { color: var(--primary); }
.footer-org { margin: var(--space-4) 0 0; display: flex; align-items: center; justify-content: center; gap: var(--space-3); flex-wrap: wrap; }
.footer-design { margin: var(--space-2) 0 0; font-size: var(--text-xs); opacity: 0.85; }

/* Full dashboard footer: centered column (links, logo, org name, design line) */
.site-footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  width: 100%;
  box-sizing: border-box;
}
.site-footer .footer-org {
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: var(--space-3);
}
.site-footer .footer-org strong {
  display: block;
  max-width: 36rem;
  line-height: var(--leading-snug, 1.35);
}
.site-footer .footer-design {
  width: 100%;
  max-width: 40rem;
  margin-left: auto;
  margin-right: auto;
}
.footer-logo { display: inline-block; vertical-align: middle; object-fit: contain; }
.back-link { display: inline-block; padding: var(--space-3) var(--space-6); background: var(--primary); color: #fff !important; font-weight: 600; font-size: var(--text-sm); border-radius: 999px; transition: background 0.2s var(--ease), transform 0.2s var(--ease); }
.back-link:hover { background: var(--primary-hover); text-decoration: none !important; transform: translateY(-1px); }
.back-link:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.skip-link { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); clip-path: inset(100%); z-index: 101; padding: var(--space-2) var(--space-4); background: var(--primary); color: #fff; font-size: var(--text-sm); font-weight: 600; border-radius: var(--radius-sm); }
.skip-link:focus, .skip-link:focus-visible { left: var(--space-4); top: var(--space-4); width: auto; height: auto; overflow: visible; clip: auto; clip-path: none; outline: 2px solid var(--primary); outline-offset: 2px; }
.skip-map-link { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); clip-path: inset(100%); z-index: 10; display: inline-block; padding: var(--space-2) var(--space-4); background: var(--primary); color: #fff; font-size: var(--text-sm); font-weight: 600; border-radius: var(--radius-sm); }
.skip-map-link:focus, .skip-map-link:focus-visible { left: var(--space-4); top: auto; width: auto; height: auto; overflow: visible; clip: auto; clip-path: none; outline: 2px solid var(--primary); outline-offset: 2px; }

/* Count-up: JS animates values from 0 to target when elements scroll into view. */
.count-up { font-variant-numeric: tabular-nums; }
[data-count-up] { contain: layout style; }

@media (max-width: 900px) and (min-width: 641px) {
 .map-hero-headline { font-size: var(--text-xl); }
 .kpi-strip { gap: var(--space-3); }
}
@media (max-width: 768px) {
  .dashboard-header--suite .hap-header-title { font-size: 0.88rem; }
  .dashboard-header--suite .dashboard-nav--suite a { font-size: 0.7rem; padding: 0.4rem 0.55rem; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
  /* Graduated: ≤480px sizing placed AFTER the ≤768px rule so cascade is correct */
  .utility-toolbar { justify-items: stretch; }
  .utility-toolbar-actions { justify-content: flex-start; }
  /* main: zero horizontal padding (dashboard-inner is the single inset layer). Bottom padding for safe-area. */
  .dashboard main {
    padding-left: 0;
    padding-right: 0;
    padding-bottom: max(var(--dash-main-pad-y-end, var(--space-10)), env(safe-area-inset-bottom, 0px));
  }
  .dashboard {
    --dash-section-y: var(--space-6);
    --dash-card-pad: var(--space-5);
    --dash-grid-gap: var(--space-4);
  }
 .kpi-value { font-size: var(--text-3xl); }
 .kpi-desc { font-size: var(--text-sm); }
 .big-stat-value { font-size: var(--text-4xl); }
 .community-benefit-hero .big-stat-value { font-size: var(--text-4xl); }
 .card { padding: var(--space-5); }
 .card h2 { font-size: var(--text-lg); }
 .card p, .card li { font-size: var(--text-sm); line-height: 1.55; max-width: 65ch; }
 .stat-value { font-size: var(--text-2xl); }
 .map-container { grid-template-columns: 1fr; gap: var(--space-4); }
 /* DOM order: map first, detail panel second — do not reorder (was order:-1 and hid map below fold). */
 .state-detail-panel { padding: var(--space-4); }
 .state-list-grid { grid-template-columns: repeat(auto-fit, minmax(60px, 1fr)); }

  /* Stat card grid — stack to single column on mobile */
  .stat-cards-grid { grid-template-columns: 1fr; }

  /* Map containers fill the column; min-height keeps map from collapsing during load */
  #map-interactive,
  #map-static-fallback {
    width: 100%;
    min-height: 280px;
  }

  .executive-summary-layer {
    padding: var(--space-5) 0 var(--space-3);
  }

  /* Accordion/collapsible sections — ensure tap targets are at least 44px tall */
  details > summary,
  [class*="accordion"] > button,
  [class*="collapsible"] > button {
    min-height: 44px;
    display: flex;
    align-items: center;
  }
}
@media (max-width: 480px) {
 .dashboard-header--suite .hap-header-title { font-size: 0.82rem; }
 .kpi-value { font-size: var(--text-2xl); }
 .card-icon { width: 40px; height: 40px; }
 .card-icon svg { width: 20px; height: 20px; }
 .kpi-card:hover, .card:hover, .card--compact:hover, .benefit-item:hover { transform: none; }
 .back-link:hover { transform: none; }
 .utility-toolbar-actions { flex-direction: column; align-items: stretch; }
 .utility-toolbar-actions .utility-btn,
 .utility-toolbar-actions .utility-share-wrap { width: 100%; }
 .utility-share-wrap { align-items: stretch; }
 .share-drawer {
   left: 0;
   right: 0;
   width: 100%;
   min-width: 0;
   max-width: none;
   box-sizing: border-box;
 }
 .key-finding-value.ban-stat { white-space: normal; }
}
@media (prefers-reduced-motion: reduce) {
 .back-link:hover { transform: none; }
 .utility-btn:active, .state-chip:active { transform: none; }
}
/* Duplicate discount — national myth vs. fact (informational, not brand-blue advocacy) */
.policy-myth-callout {
  border: 1px solid rgba(15, 23, 42, 0.12);
  background: linear-gradient(165deg, rgba(248, 250, 252, 0.98) 0%, rgba(241, 245, 249, 0.92) 55%, rgba(248, 250, 252, 0.98) 100%);
  box-shadow: var(--shadow-xs);
}
.policy-myth-callout__header {
  margin-bottom: var(--space-4);
  padding-bottom: var(--space-3);
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
  text-align: left;
}
.policy-myth-callout__eyebrow {
  margin: 0 0 var(--space-2);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  color: var(--text-muted);
}
.policy-myth-callout__title {
  margin: 0;
  font-size: clamp(1.1rem, 1rem + 1vw, 1.35rem);
  font-weight: 700;
  color: var(--text);
  letter-spacing: -0.02em;
  line-height: var(--leading-snug);
  font-family: var(--hap-font-display);
}
.policy-myth-callout__body p {
  margin: 0 0 var(--space-3);
  font-size: var(--text-sm);
  color: var(--text-secondary);
  line-height: var(--leading-relaxed);
  max-width: 75ch;
}
.policy-myth-callout__body p:last-child {
  margin-bottom: 0;
}

/* Policy triad: duplicate discounts + access + PA safeguards (less cramped) */
.policy-triad {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(0.85rem, 1.8vw, 1.15rem);
  align-items: stretch;
}

@media (max-width: 980px) {
  .policy-triad {
    grid-template-columns: 1fr;
  }
}

.policy-triad-card {
  padding: clamp(0.85rem, 1.8vw, 1.05rem);
  border-radius: 14px;
  min-height: 0;
}

#duplicate-discount-national {
  grid-column: 1 / -1;
}

/* Access to care: full-width featured band (was cramped in a 50/50 row beside PA safeguards) */
#access {
  grid-column: 1 / -1;
}

#pa-safeguards {
  grid-column: 1 / -1;
}

.policy-triad-card--access-feature {
  position: relative;
  overflow: hidden;
  padding: clamp(1.1rem, 2.1vw, 1.5rem);
  border-radius: 18px;
  border: 1px solid rgba(0, 114, 188, 0.2);
  background: linear-gradient(
    165deg,
    rgba(255, 255, 255, 0.99) 0%,
    rgba(236, 246, 255, 0.95) 40%,
    rgba(255, 255, 255, 0.98) 100%
  );
  box-shadow: 0 16px 42px rgba(0, 114, 188, 0.1), 0 1px 0 rgba(255, 255, 255, 0.9) inset;
  border-top: 5px solid var(--hap-topic-access, var(--chart-topic-insurance));
}

.policy-triad-card--access-feature::before {
  content: "";
  position: absolute;
  inset: -25% auto auto -20%;
  width: 320px;
  height: 320px;
  border-radius: 999px;
  background: radial-gradient(circle at center, rgba(0, 114, 188, 0.2) 0%, rgba(0, 114, 188, 0) 68%);
  pointer-events: none;
  animation: access-glow-drift 8s ease-in-out infinite;
}

@keyframes access-glow-drift {
  0%,
  100% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(18px, 10px) scale(1.04); }
}

.policy-triad-card__head--access-feature {
  margin-bottom: 0.85rem;
  padding-bottom: 0.75rem;
  position: relative;
  z-index: 1;
}

.policy-triad-card--access-feature .policy-triad-title {
  font-size: clamp(1.2rem, 1.35vw, 1.45rem);
}

.policy-access-feature-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(1.05rem, 2vw, 1.4rem);
  align-items: start;
  position: relative;
  z-index: 1;
  max-width: 1080px;
  margin: 0 auto;
}

@media (min-width: 900px) {
  .policy-access-feature-body {
    grid-template-columns: minmax(340px, 0.95fr) minmax(0, 1.05fr);
    gap: 1rem;
  }
}

.policy-access-decision-strip {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
  padding: 0.75rem;
  border: 1px solid rgba(0, 48, 135, 0.24);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(230, 241, 255, 0.92) 100%);
}

.policy-access-decision-item {
  padding: 0.7rem 0.78rem;
  border-radius: 12px;
  border: 1px solid rgba(11, 103, 194, 0.18);
  background: rgba(255, 255, 255, 0.9);
}

.policy-access-decision-label {
  margin: 0 0 0.32rem;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--hap-brand-deep, #003087);
}

.policy-access-decision-text {
  margin: 0;
  font-size: 0.85rem;
  line-height: 1.35;
  color: var(--text-secondary);
}

.policy-access-feature-visual {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  min-width: 0;
}

.policy-access-map-figure {
  margin: 0;
  padding: 0;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid rgba(15, 23, 42, 0.1);
  background: rgba(255, 255, 255, 0.75);
  box-shadow: var(--shadow-sm);
}

.policy-triad-card--access-feature .policy-triad-access-graph {
  display: block;
  width: 100%;
  height: auto;
  min-height: 160px;
  max-height: 220px;
  object-fit: cover;
  border-radius: 0;
  border: none;
}

.policy-access-map-caption {
  margin: 0;
  padding: 0.55rem 0.75rem 0.65rem;
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--text-secondary);
  background: rgba(11, 103, 194, 0.06);
  border-top: 1px solid rgba(15, 23, 42, 0.06);
}

.policy-access-stat-callout {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 1.1rem 1rem;
  border-radius: 14px;
  border: 1px solid rgba(0, 114, 188, 0.24);
  background: linear-gradient(180deg, rgba(255, 255, 255, 1) 0%, rgba(226, 241, 255, 0.72) 100%);
  box-shadow: 0 12px 24px rgba(15, 23, 42, 0.1);
  min-height: 14rem;
}

.policy-access-stat-kicker {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--hap-brand-deep, #003087);
}

.policy-access-stat-value {
  margin: 0.15rem 0 0;
  font-family: var(--font-mono);
  font-size: clamp(3.8rem, 8vw, 6.25rem);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.04em;
  font-variant-numeric: tabular-nums;
  color: var(--primary);
  text-shadow: 0 10px 24px rgba(0, 114, 188, 0.2);
}

.policy-access-stat-label {
  margin: 0.35rem 0 0;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--text-secondary);
  max-width: 16ch;
  line-height: 1.25;
}

.policy-access-stat-context {
  margin: 0.45rem 0 0;
  font-size: 0.84rem;
  line-height: 1.4;
  color: var(--text-muted);
  max-width: 34ch;
}

.policy-access-source {
  margin: 0.45rem 0 0;
  font-size: 0.72rem;
  line-height: 1.35;
  color: var(--text-muted);
  max-width: 44ch;
}

.policy-access-signal-panel {
  border-radius: 12px;
  border: 1px solid rgba(30, 64, 175, 0.2);
  background: rgba(255, 255, 255, 0.9);
  padding: 0.7rem 0.85rem 0.8rem;
}

.policy-access-signal-head {
  margin: 0 0 0.45rem;
  font-size: 0.74rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 800;
  color: var(--hap-brand-deep, #003087);
}

.policy-access-signal-track {
  height: 0.66rem;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.08);
  overflow: hidden;
}

.policy-access-signal-fill {
  display: block;
  width: 42%;
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(
    90deg,
    var(--hap-topic-risk, var(--chart-perf-negative)) 0%,
    #f59e0b 100%
  );
  animation: none;
}

@keyframes access-signal-pulse {
  0%,
  100% { transform: scaleX(0.96); opacity: 0.86; }
  50% { transform: scaleX(1); opacity: 1; }
}

.policy-access-signal-caption {
  margin: 0.45rem 0 0;
  font-size: 0.8rem;
  line-height: 1.35;
  color: var(--text-muted);
}

.policy-access-pill-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.policy-access-pill {
  display: inline-flex;
  align-items: center;
  padding: 0.3rem 0.58rem;
  border-radius: 999px;
  font-size: 0.73rem;
  font-weight: 700;
  color: var(--hap-brand-deep, #003087);
  background: rgba(224, 239, 255, 0.88);
  border: 1px solid rgba(0, 114, 188, 0.24);
}

.policy-access-feature-main {
  display: flex;
  flex-direction: column;
  gap: clamp(0.85rem, 1.5vw, 1.1rem);
  min-width: 0;
}

.policy-access-module {
  width: 100%;
  align-self: stretch;
  border-radius: 14px;
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease, background-color 180ms ease;
}

.policy-access-module:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(15, 23, 42, 0.1);
}

.policy-triad-lede--access-feature {
  font-size: 1.02rem;
  color: var(--text);
  padding: 0.9rem 1rem;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(0, 114, 188, 0.18);
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.06);
}

.policy-access-messaging-head {
  margin: 0;
  padding: 0.9rem 1rem;
  border: 1px solid rgba(0, 48, 135, 0.22);
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.98) 0%,
    rgba(227, 238, 255, 0.9) 100%
  );
  box-shadow: 0 8px 20px rgba(0, 48, 135, 0.08);
}

.policy-access-messaging-kicker {
  margin: 0 0 0.28rem;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--hap-brand-deep, #003087);
}

.policy-access-messaging-title {
  margin: 0;
  font-size: clamp(1rem, 1vw + 0.74rem, 1.15rem);
  line-height: 1.28;
  letter-spacing: -0.01em;
  color: var(--text);
}

.policy-access-accordion {
  display: grid;
  gap: 0.85rem;
}

.policy-access-row {
  margin: 0;
  border-radius: 14px;
  border: 1px solid rgba(15, 23, 42, 0.12);
  background: rgba(255, 255, 255, 0.95);
  overflow: hidden;
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
  padding: 0.9rem 1rem;
}

.policy-access-row:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 22px rgba(15, 23, 42, 0.1);
  border-color: rgba(0, 114, 188, 0.3);
}

.policy-access-row--lifeline {
  border-left: 4px solid var(--hap-topic-finance, var(--chart-topic-finance));
}

.policy-access-row--risk {
  border-left: 4px solid var(--hap-topic-risk, var(--chart-perf-negative, var(--hap-sentiment-negative)));
}

.policy-access-row--action {
  border-left: 4px solid var(--hap-topic-policy, var(--chart-topic-policy));
  padding: clamp(1rem, 1.8vw, 1.2rem) clamp(1.1rem, 2.6vw, 1.75rem);
}

.policy-access-row--action .policy-access-row__headline {
  font-size: clamp(1.02rem, 1.25vw, 1.14rem);
  line-height: 1.35;
}

.policy-access-row--action .policy-access-row__text {
  font-size: clamp(0.95rem, 1.05vw, 1.01rem);
  line-height: 1.55;
  max-width: 78ch;
}

.policy-access-row__label {
  display: block;
  margin: 0;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-muted);
}

.policy-access-row__headline {
  display: block;
  margin: 0.22rem 0 0;
  font-size: 0.95rem;
  line-height: 1.3;
  color: var(--text);
}

.policy-access-row__text {
  margin: 0.45rem 0 0;
  font-size: 0.92rem;
  line-height: 1.45;
  color: var(--text-secondary);
}

.policy-access-row__impact {
  margin: 0.45rem 0 0;
  padding-top: 0.35rem;
  border-top: 1px dashed rgba(71, 85, 105, 0.28);
  font-size: 0.82rem;
  line-height: 1.38;
  color: var(--text-muted);
}

.policy-triad-services-panel {
  padding: 1rem 1rem 1.05rem;
  background: rgba(247, 251, 255, 0.95);
  border: 1px solid rgba(11, 103, 194, 0.2);
  box-shadow: 0 8px 18px rgba(0, 48, 135, 0.06);
}

.policy-triad-services-toggle {
  list-style: none;
  cursor: pointer;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--hap-brand-deep, #003087);
}

.policy-triad-services-toggle:focus-visible {
  outline: 2px solid rgba(0, 114, 188, 0.5);
  outline-offset: 2px;
  border-radius: 8px;
}

.policy-triad-services-toggle::-webkit-details-marker {
  display: none;
}

.policy-triad-services-toggle::before {
  content: "+ ";
}

.policy-triad-services-panel[open] .policy-triad-services-toggle::before {
  content: "\2212 ";
}

.policy-triad-card--access-feature .policy-triad-services-head {
  margin: 0 0 0.3rem;
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--hap-brand-deep, #003087);
}

.policy-triad-services-subhead {
  margin: 0 0 0.65rem;
  font-size: 0.84rem;
  line-height: 1.4;
  color: var(--text-muted);
}

.policy-triad-card--access-feature .policy-triad-services-grid {
  padding-left: 0;
  list-style: none;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem 0.65rem;
}

.policy-triad-card--access-feature .policy-triad-services-grid li {
  position: relative;
  padding: 0.5rem 0.6rem 0.5rem 1.35rem;
  margin: 0;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid rgba(11, 103, 194, 0.12);
  min-height: 2.4rem;
  display: flex;
  align-items: center;
  line-height: 1.3;
}

.policy-triad-card--access-feature .policy-triad-services-grid li::before {
  content: "";
  position: absolute;
  left: 0.55rem;
  top: calc(50% - 3px);
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: var(--chart-topic-insurance);
  opacity: 0.85;
}

.policy-triad-why--access-feature {
  grid-column: 1 / -1;
  margin-top: 0.25rem;
  width: 100%;
  max-width: none;
  padding: clamp(1.05rem, 1.9vw, 1.35rem) clamp(1.1rem, 2.6vw, 1.75rem);
  font-size: clamp(1.02rem, 1.25vw, 1.15rem);
  font-weight: 650;
  line-height: 1.5;
  border: 1px solid rgba(251, 176, 64, 0.72);
  background: linear-gradient(180deg, rgba(255, 247, 232, 0.98) 0%, rgba(251, 176, 64, 0.26) 100%);
  color: #5a2f00;
  box-shadow: 0 14px 26px rgba(152, 74, 0, 0.16);
}

.policy-triad-why__badge {
  display: inline-block;
  margin: 0 0 0.65rem;
  padding: 0.34rem 0.7rem;
  border-radius: 999px;
  font-size: 0.76rem;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #5a2f00;
  background: rgba(251, 176, 64, 0.35);
  border: 1px solid rgba(152, 74, 0, 0.24);
}

@media (max-width: 760px) {
  .policy-access-decision-strip {
    grid-template-columns: 1fr;
    gap: 0.5rem;
  }

  .policy-access-decision-item {
    padding: 0.65rem 0.72rem;
  }

  .policy-access-stat-callout {
    min-height: auto;
    padding: 0.85rem 0.8rem;
  }

  .policy-access-stat-value {
    font-size: clamp(3rem, 20vw, 4.2rem);
  }

  .policy-access-feature-main {
    gap: 0.85rem;
  }

  .policy-access-row__headline {
    font-size: 0.92rem;
  }

  .policy-triad-card--access-feature .policy-triad-services-grid {
    grid-template-columns: 1fr;
  }

  .policy-access-row {
    padding: 0.8rem 0.85rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .policy-access-module,
  .policy-access-module:hover {
    transition: none;
    transform: none;
    box-shadow: none;
  }

  .policy-access-row,
  .policy-access-row:hover {
    transition: none;
    transform: none;
  }

  .policy-triad-card--access-feature::before,
  .policy-access-signal-fill {
    animation: none;
  }
}
#duplicate-discount-national .policy-triad-headline,
#duplicate-discount-national .policy-triad-kicker,
#duplicate-discount-national .policy-triad-title {
  text-align: left;
}

.policy-triad-card__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.65rem;
  padding-bottom: 0.6rem;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

/* Global `.card-icon { order: -1 }` would flip headline/icon here and push the title block to the
   right under `space-between`. Keep policy triad titles left-anchored: headline first, icon last. */
.policy-triad-card__head .card-icon {
  order: 0;
}

.policy-triad-headline {
  min-width: 0;
  flex: 1;
  text-align: left;
}

.policy-triad-kicker {
  margin: 0 0 0.25rem;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  text-transform: none;
  color: var(--text-muted);
}

.policy-triad-title {
  margin: 0;
  font-size: clamp(1.05rem, 1.2vw, 1.2rem);
  font-weight: 800;
  line-height: 1.22;
  letter-spacing: -0.02em;
  color: var(--text);
}

.policy-triad-body {
  display: grid;
  gap: 0.55rem;
}

.policy-triad-lede {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.45;
  color: var(--text-secondary);
}

.policy-triad-bullets {
  margin: 0;
  padding-left: 1.1rem;
  color: var(--text-secondary);
  font-size: 0.95rem;
  line-height: 1.45;
}

.policy-triad-bullets li {
  margin: 0.18rem 0;
}

.policy-triad-why {
  margin: 0;
  padding: 0.6rem 0.75rem;
  border-radius: 12px;
  background: rgba(11, 103, 194, 0.06);
  border: 1px solid rgba(11, 103, 194, 0.14);
  color: var(--text);
  font-size: 0.92rem;
  line-height: 1.4;
  font-weight: 650;
}

.policy-triad-why--access {
  background: rgba(2, 132, 199, 0.06);
  border-color: rgba(2, 132, 199, 0.16);
}

.policy-triad-access-graph {
  width: 100%;
  height: 128px;
  object-fit: cover;
  border-radius: 12px;
  border: 1px solid rgba(15, 23, 42, 0.10);
  background: rgba(255, 255, 255, 0.65);
}

.policy-triad-services-head {
  margin: 0.35rem 0 0;
  font-size: 0.86rem;
  font-weight: 850;
  color: var(--text);
}

.policy-triad-services-grid {
  margin: 0;
  padding-left: 1.1rem;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.2rem 0.75rem;
  color: var(--text-secondary);
  font-size: 0.93rem;
  line-height: 1.45;
}

.policy-triad-services-grid li {
  margin: 0.12rem 0;
}

.policy-myth-fact-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.6rem;
}

.policy-myth-fact-item {
  margin: 0;
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.58rem 0.65rem;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: rgba(255, 255, 255, 0.7);
  color: var(--text-secondary);
  line-height: 1.4;
  font-size: 0.92rem;
}

.policy-myth-fact-item--myth {
  border-color: rgba(194, 65, 12, 0.28);
  background: rgba(254, 243, 199, 0.45);
}

.policy-myth-fact-item--fact {
  border-color: rgba(5, 150, 105, 0.3);
  background: rgba(220, 252, 231, 0.45);
}

.policy-myth-fact-icon {
  flex-shrink: 0;
  font-size: 0.95rem;
  line-height: 1.2;
}

@media (max-width: 760px) {
  .policy-myth-fact-row {
    grid-template-columns: 1fr;
  }

  .policy-triad-access-graph {
    height: 112px;
  }

  .policy-triad-services-grid {
    grid-template-columns: 1fr;
  }
}

.policy-triad-footnote {
  border-top: 1px dashed rgba(15, 23, 42, 0.18);
  padding-top: 0.6rem;
}

.policy-triad-footnote > summary {
  cursor: pointer;
  font-weight: 800;
  color: var(--text);
  font-size: 0.9rem;
}

.policy-triad-footnote > summary::-webkit-details-marker {
  display: none;
}

.policy-triad-footnote > summary::after {
  content: "▾";
  margin-left: 0.4rem;
  color: var(--text-muted);
}

.policy-triad-footnote[open] > summary::after {
  content: "▴";
}

.policy-triad-footnote .pa-safeguards-footnote {
  margin: 0.55rem 0 0;
  font-size: 0.82rem;
  line-height: 1.45;
  color: var(--text-muted);
}

/* Counterarguments — briefing prep (neutral, not advocacy positioning) */
.counterarguments-section {
  margin: var(--space-8) 0 var(--space-5);
  clear: both;
}
.counterarguments-wrap {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--neutral-100, #f3f4f6);
  box-shadow: var(--shadow-xs);
}
.counterarguments-wrap > summary {
  list-style: none;
}
.counterarguments-wrap > summary::-webkit-details-marker {
  display: none;
}
.counterarguments-toggle {
  display: block;
  padding: var(--space-4) var(--space-5);
  font-size: var(--text-base);
  font-weight: 700;
  color: var(--text);
  cursor: pointer;
  min-height: 44px;
  line-height: var(--leading-snug);
}
.counterarguments-toggle:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 2px;
  border-radius: var(--radius-sm);
}
.counterarguments-toggle::after {
  content: "+";
  float: right;
  font-weight: 800;
  color: var(--text-muted);
  margin-left: var(--space-3);
}
.counterarguments-wrap[open] .counterarguments-toggle::after {
  content: "−";
}
.counterarguments-content {
  padding: 0 var(--space-5) var(--space-5);
  border-top: 1px solid var(--border);
  background: var(--bg-card);
  border-radius: 0 0 var(--radius) var(--radius);
}
.counterarguments-disclaimer {
  margin: var(--space-4) 0 var(--space-3);
  font-size: var(--text-sm);
  color: var(--text-secondary);
  max-width: 70ch;
  line-height: 1.5;
}
.counterarguments-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin-top: var(--space-2);
}
.counterarguments-table {
  width: 100%;
  min-width: 44rem;
  border-collapse: collapse;
  font-size: var(--text-sm);
  line-height: 1.45;
  color: var(--text);
}
.counterarguments-table th {
  text-align: left;
  font-weight: 700;
  padding: var(--space-3);
  background: rgba(15, 23, 42, 0.06);
  border: 1px solid var(--border);
  color: var(--text-secondary);
  text-transform: none;
  letter-spacing: normal;
}
.counterarguments-table td {
  padding: var(--space-4) var(--space-3);
  border: 1px solid var(--border);
  vertical-align: top;
  background: var(--bg-card);
}
.counterarguments-table tbody tr:nth-child(even) td {
  background: rgba(15, 23, 42, 0.02);
}
.counterarguments-table a {
  font-weight: 600;
}
@media (max-width: 900px) {
  .counterarguments-table {
    min-width: 0;
  }
  .counterarguments-table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
  .counterarguments-table tbody tr {
    display: block;
    margin-bottom: var(--space-4);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    overflow: hidden;
    background: var(--bg-card);
  }
  .counterarguments-table tbody td {
    display: block;
    border: 0;
    border-bottom: 1px solid var(--border);
    padding: var(--space-3);
  }
  .counterarguments-table tbody tr td:last-child {
    border-bottom: 0;
  }
  .counterarguments-table tbody td::before {
    content: attr(data-label);
    display: block;
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: var(--tracking-wide);
    text-transform: uppercase;
    color: var(--text-muted);
    margin-bottom: var(--space-2);
  }
}

/* Methodology / About this data */
.methodology-wrap { margin-top: var(--space-3); }
.methodology-wrap > summary { list-style: none; }
.methodology-wrap > summary::-webkit-details-marker { display: none; }
.methodology-toggle { display: inline-flex; align-items: center; gap: 0.4rem; font-size: var(--text-sm); color: var(--primary); background: none; border: none; cursor: pointer; padding: 0.7rem 0; min-height: 44px; font-weight: 500; text-decoration: underline; text-underline-offset: 2px; }
.methodology-toggle:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; border-radius: 4px; }
.methodology-toggle::after { content: "+"; font-weight: 700; text-decoration: none; }
.methodology-toggle:hover { color: var(--primary-hover); }
.methodology-wrap[open] .methodology-toggle { color: var(--primary-hover); font-weight: 600; }
.methodology-wrap[open] .methodology-toggle::after { content: "-"; }
.methodology-content { display: none; padding: var(--space-4); margin-top: var(--space-2); background: var(--neutral-50); border-radius: var(--radius); border: 1px solid var(--border); font-size: var(--text-sm); color: var(--text-secondary); line-height: var(--leading-relaxed); }
.methodology-wrap[open] .methodology-content,
.methodology-content.open { display: block; }
.methodology-content ul { margin: var(--space-2) 0 0; padding-left: var(--space-5); }
.source-links { margin: var(--space-2) 0 0; padding-left: var(--space-5); }
.source-links a { font-weight: 600; }
.source-links li + li { margin-top: 0.2rem; }
/* Footer — centered action row (340B + BASIC) */
.site-footer .footer-actions {
  width: 100%;
  max-width: 52rem;
  margin: 0 auto var(--space-5);
  display: flex;
  justify-content: center;
}
.footer-actions-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: var(--space-3);
}
.footer-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0.65rem 1.2rem;
  border-radius: 999px;
  font-size: var(--text-sm);
  font-weight: 600;
  text-decoration: none !important;
  transition: background 0.2s var(--ease), color 0.2s var(--ease), border-color 0.2s var(--ease), box-shadow 0.2s var(--ease), transform 0.2s var(--ease);
}
.footer-pill:focus-visible { outline: 2px solid var(--primary); outline-offset: 3px; }
.footer-pill--primary,
.footer-cta-primary {
  background: var(--primary);
  color: #fff !important;
  border: 1px solid transparent;
  box-shadow: var(--shadow-xs);
  border-radius: var(--radius-sm);
  padding: var(--space-3) var(--space-5);
}
.footer-pill--primary:hover,
.footer-cta-primary:hover { background: var(--primary-hover); text-decoration: none !important; }
.site-footer .footer-pill--primary.hap-btn-primary {
  box-shadow: var(--hap-shadow-brand, var(--shadow-xs));
}
.site-footer .footer-pill--primary.hap-btn-primary:hover {
  filter: brightness(1.04);
}
.footer-pill--outline {
  background: rgba(255, 255, 255, 0.96);
  color: var(--primary) !important;
  border: 1px solid rgba(11, 103, 194, 0.35);
  box-shadow: var(--shadow-xs);
}
.footer-pill--outline:hover {
  border-color: var(--primary);
  background: #fff;
  transform: translateY(-1px);
}
.footer-pill--ghost {
  background: transparent;
  color: var(--primary) !important;
  border: 1px solid transparent;
  font-weight: 600;
  text-decoration: underline !important;
  text-underline-offset: 3px;
}
.footer-pill--ghost:hover { color: var(--primary-hover) !important; }
@media (prefers-reduced-motion: reduce) {
  .footer-pill--outline:hover { transform: none; }
}
/* Legacy footer stack (if present) */
.footer-cta { margin-top: var(--space-4); display: flex; flex-direction: column; align-items: center; gap: var(--space-3); }
.footer-cta-primary:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.footer-cta-secondary { margin: 0; font-size: var(--text-sm); color: var(--text-secondary); }
.footer-cta-secondary a { color: var(--primary); font-weight: 600; text-decoration: underline; background: transparent; padding: 0; display: inline; min-height: auto; }
.footer-cta-secondary a:hover { color: var(--primary-hover); }
.footer-cta-secondary a:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; border-radius: 2px; }
/* ========== PRINT/PDF — FROM SCRATCH — REVISION 100 (minimal, no layout overrides) ==========
 Revisions 1–100: (1) No display:block or visibility overrides on grid/sections.
 (2) Hide chrome only. (3) Unhide content-visibility on .supporting-section and #community-benefit.
 (4) scroll-reveal and [data-count-up] visible. (5) Methodology display block when open.
 (6) Zero min-heights that cause blank pages. (7) Root and all containers overflow:visible so nothing clips.
 (8) Map unchanged: cloned fallback when body.print-ready. (9) Card print styling only. */
@media print {
 @page { margin: 0.6cm; size: letter; }

 html, body {
 -webkit-print-color-adjust: exact !important;
 print-color-adjust: exact !important;
 height: auto !important;
 min-height: 0 !important;
 overflow: visible !important;
 }
 html { font-size: 11px !important; }
 /* Legislative leave-behind: serif headings; UI/data stay sans */
 .dashboard h1,
 .dashboard h2,
 .dashboard h3,
 main .card h2,
 .hap-header-title,
 .key-findings-title,
 .executive-proof-heading,
 .map-hero-title {
   font-family: var(--hap-font-print-serif, Georgia, "Times New Roman", Times, serif) !important;
 }
 body { background: #fff !important; }
 .dashboard::before { display: none !important; }
 .hap-sidebar--340b { display: none !important; }
 .hap-body > .hap-page-content { margin-left: 0 !important; width: 100% !important; }
 .hap-body { display: block !important; }
 .dashboard, .dashboard-inner, main, .dashboard-grid,
 .dashboard-grid > * {
 overflow: visible !important;
 max-height: none !important;
 }
 .intro-section-stack,
 .supporting-cards-row,
 .executive-proof-strip,
 .map-hero-section,
 .map-hero-inner { overflow: visible !important; }

 .skip-link, .back-link, .utility-toolbar, .footer-cta, .hap-cta-strip, .site-footer,
 .state-filter-bar, .state-filter-status, .state-no-results,
 .map-tooltip, .state-list-tooltip, .noscript-card, .selection-clear,
 .print-only, .about-data-download { display: none !important; }

 /* Key metrics briefing: hide interactive banner in print; show print-only caveat */
 .kpi-briefing-banner { display: none !important; }
 .kpi-briefing-banner-print {
   display: block !important;
   margin: 0 0 var(--space-4) var(--space-4) !important;
   padding: var(--space-3) var(--space-4) !important;
   border: 1px solid var(--print-border, #cbd5e1) !important;
   border-radius: var(--radius) !important;
   background: #f8fafc !important;
   color: #334155 !important;
   break-inside: avoid;
   page-break-inside: avoid;
 }
 .kpi-briefing-banner-print__title {
   margin: 0 0 var(--space-2) !important;
   font-size: var(--text-sm) !important;
   font-weight: 700 !important;
   color: #0f172a !important;
 }
 .kpi-briefing-banner-print__text {
   margin: 0 !important;
   font-size: var(--text-xs) !important;
   line-height: 1.45 !important;
   color: #475569 !important;
 }

 main,
 main * {
 content-visibility: visible !important;
 contain-intrinsic-size: none !important;
 }
 .supporting-section,
 #community-benefit {
 content-visibility: visible !important;
 contain-intrinsic-size: none !important;
 }
 [data-count-up] { contain: none !important; }
 .scroll-reveal { opacity: 1 !important; transform: none !important; }
 .policy-timeline-line-anim {
   stroke-dashoffset: 0 !important;
   transition: none !important;
   animation: none !important;
   filter: none !important;
 }
 .policy-timeline-node-outer,
 .policy-timeline-node-inner {
   opacity: 1 !important;
   transform: none !important;
 }
 .policy-timeline-svg .policy-timeline-node-g {
   transform: none !important;
   filter: none !important;
 }
 .timeline-item {
   transform: none !important;
   box-shadow: none !important;
   background: var(--bg-card) !important;
   border: 1px solid var(--print-border) !important;
   animation: none !important;
 }
 .timeline-item::before {
   display: none !important;
 }
 .policy-timeline-progress-fill {
   --ptl-p: 1 !important;
 }

 .methodology-content,
 details[open] .methodology-content { display: block !important; }

 .intro-section .card { min-height: 0 !important; }
 .map-wrap,
 .us-map-wrap,
 .map-hero-section .map-container { min-height: 0 !important; }
 .map-loading-skeleton { display: none !important; }

 /* Map: unchanged (working). Show cloned fallback, hide live. */
 body.print-ready .us-map-wrap.map-wrap { display: none !important; }
 body.print-ready .print-map-fallback {
 display: block !important;
 visibility: visible !important;
 opacity: 1 !important;
 overflow: visible !important;
 width: 100% !important;
 min-height: 220px !important;
 margin-bottom: 0.25rem !important;
 }
 body.print-ready .print-map-fallback svg,
 body.print-ready .print-map-fallback img {
 display: block !important;
 visibility: visible !important;
 width: 100% !important;
 height: auto !important;
 max-height: 11cm !important;
 overflow: visible !important;
 -webkit-print-color-adjust: exact !important;
 print-color-adjust: exact !important;
 }

 /* Live map SVG (when print uses on-screen map instead of clone) */
 .us-map-wrap svg,
 .print-map-fallback svg {
 -webkit-print-color-adjust: exact !important;
 print-color-adjust: exact !important;
 overflow: visible !important;
 min-height: 200px !important;
 width: 7.25in !important;
 max-width: 100% !important;
 height: auto !important;
 }

 .card, .kpi-card, .map-hero-card, .selection-summary, .state-detail-panel {
 box-shadow: none !important;
 border: 1px solid var(--print-border) !important;
 background: #fff !important;
 }
 .kpi-value, .stat-value, .big-stat-value, .count-up { color: #111827 !important; }
 .kpi-card,
 .policy-triad-card,
 .timeline-item,
 .supporting-cards-row .card--compact,
 .pa-district-layout > * {
   break-inside: auto !important;
   page-break-inside: auto !important;
 }
 .kpi-card,
 .policy-triad-card,
 .timeline-item,
 .stat,
 .pa-impact-card {
   overflow-wrap: anywhere !important;
   word-break: normal !important;
 }
 a { color: #0066a1; }
}

/* ========== 340b-BASIC.html: professional layout + map (local scripts only) ========== */
@media (max-width: 900px) {
  .basic-dashboard .dashboard-header--suite .hap-header,
  .basic-dashboard .dashboard-header--suite .dashboard-nav--suite {
    padding-left: clamp(1rem, 4vw, 2rem);
    padding-right: clamp(1rem, 4vw, 2rem);
  }
}
.basic-dashboard-inner {
  padding-left: clamp(1rem, 4vw, 2rem) !important;
  padding-right: clamp(1rem, 4vw, 2rem) !important;
  padding-top: var(--space-5);
  padding-bottom: var(--space-8);
}
.basic-dashboard-nav {
  flex-wrap: wrap;
  gap: var(--space-3);
}
.basic-dashboard-nav a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.5rem;
  border-radius: 8px;
}
.basic-dashboard-nav a:hover {
  background: rgba(11, 103, 194, 0.06);
}
.basic-map-shell {
  margin-top: var(--space-4);
  margin-bottom: var(--space-6);
  padding: var(--space-5);
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--neutral-100);
}
.basic-map-wrap {
  overflow: visible !important;
  min-height: 280px;
  border-radius: var(--radius);
  background: var(--neutral-100);
  padding: var(--space-3);
}
.basic-map-canvas {
  min-height: 260px;
  width: 100%;
}
.basic-map-canvas svg {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
}
.basic-map-canvas .basic-state {
  cursor: pointer;
  transition: opacity 0.15s ease;
}
.basic-map-canvas .basic-state:hover {
  opacity: 0.92;
  filter: brightness(1.05);
}
.basic-map-tooltip {
  position: fixed;
  z-index: 200;
  pointer-events: none;
  padding: 0.35rem 0.6rem;
  font-size: var(--text-xs);
  font-weight: 600;
  background: rgba(17, 24, 39, 0.92);
  color: #fff;
  border-radius: 6px;
  opacity: 0;
  visibility: hidden;
  white-space: nowrap;
}
.basic-map-tooltip.basic-map-tooltip--visible {
  opacity: 1;
  visibility: visible;
}
.basic-state-detail {
  margin-top: var(--space-4);
  padding: var(--space-4);
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--neutral-100);
  font-size: var(--text-base);
  font-weight: 500;
  color: var(--text);
  line-height: 1.45;
}
.basic-map-fallback {
  padding: var(--space-4);
  color: var(--text-muted);
}
.basic-dashboard .site-footer {
  padding: var(--space-6) clamp(1rem, 4vw, 2rem);
  text-align: center;
  border-top: 1px solid var(--border);
  margin-top: var(--space-6);
}

/* ========== Mark VI Sprint — Iteration 1 (Section Identity Reset) ========== */
/* Page wash matches PA OW report (--hap-ow-page-gradient); .dashboard::before adds radial veils. */
/* Width: .dashboard-inner and .dashboard main use --dashboard-inner-max / --content-max only (see :root). */

/* readable executive micro-labels */
.card-title,
.kpi-label,
.executive-proof-label,
.selection-summary-label,
.stat-label,
.report-by {
  color: #4a4a4f;
  font-size: 0.78rem;
  letter-spacing: 0.02em;
  text-transform: none;
  font-weight: 600;
}
.key-findings-strip .key-findings-title {
  font-size: clamp(1.15rem, 2.5vw, 1.35rem);
  font-weight: 700;
  color: var(--text);
  letter-spacing: var(--tracking-tight);
}

/* section cards: one neutral visual grammar */
.card,
.kpi-card,
.executive-proof-card,
.map-hero-card,
.selection-summary,
.state-detail-panel,
.trends-card,
.pa-impact-card,
.impact-result-card {
  background: #fff;
  border: 1px solid #e5e5ea;
  border-radius: 14px;
  box-shadow: none;
}

/* one primary pre-map proof module, others de-emphasized */
.key-findings-strip {
  background: var(--neutral-100);
  border: 1px solid #cfe3fb;
  border-top: 2px solid var(--primary);
}
.exec-takeaway,
.executive-proof-strip .executive-proof-card {
  background: #fafafa;
  border: 1px solid #e8e8ed;
}
.executive-proof-card--accent {
  border-left: 2px solid var(--primary);
}

/* semantic section accents (class-based, not nth-child) */
.kpi-card--market,
.kpi-card--oversight,
.kpi-card--pa {
  border-top: 2px solid var(--primary);
}
.kpi-card--benefit {
  border-top: 2px solid var(--chart-topic-finance);
  border-left: 3px solid var(--chart-topic-finance);
  background: var(--bg-card);
  border-color: rgba(0, 169, 164, 0.24);
}
.kpi-card--benefit .kpi-label,
.kpi-card--benefit .kpi-desc { color: var(--text-secondary); }
.kpi-card--benefit .kpi-value { color: var(--chart-topic-finance); font-weight: 800; line-height: 1; font-size: clamp(2.3rem, 4.6vw, 3.1rem); }
.kpi-card--market .kpi-value { color: var(--chart-topic-insurance); font-weight: 700; }
.kpi-card--oversight .kpi-value { color: var(--chart-topic-policy); font-weight: 700; }
.kpi-card--pa .kpi-value { color: var(--primary); font-weight: 700; }

.card--identity-policy { border-left: 2px solid var(--primary); }
/* PA / geography — insurance (market) blue, not warm orange */
.card--identity-impact { border-left: 2px solid var(--chart-topic-insurance); }
.trends-card--policy { border-top: 3px solid var(--chart-topic-policy); }
.trends-card--impact { border-top: 3px solid var(--chart-perf-negative); }
.trends-card--neutral { border-top: 3px solid var(--chart-perf-neutral); }

/* Featured hybrid callout — neutral/balanced styling (not brand-blue advocacy) */
.trends-card--hybrid-featured {
  border-top: 3px solid rgba(15, 23, 42, 0.18);
  background: linear-gradient(165deg, rgba(248, 250, 252, 1) 0%, rgba(241, 245, 249, 1) 55%, rgba(248, 250, 252, 1) 100%);
  box-shadow: var(--shadow-sm);
  position: relative;
}

.trends-card--hybrid-featured::before {
  content: "";
  position: absolute;
  left: -1px;
  top: -1px;
  bottom: -1px;
  width: 6px;
  border-radius: var(--radius) 0 0 var(--radius);
  background: linear-gradient(180deg, rgba(15, 23, 42, 0.18) 0%, rgba(15, 23, 42, 0.08) 100%);
  pointer-events: none;
}

.trends-card--hybrid-featured h4 {
  color: var(--text);
}

.trends-hybrid-lede {
  margin-top: 0;
}

.trends-hybrid-bullets {
  margin: var(--space-3) 0 var(--space-3);
  padding-left: var(--space-5);
  color: var(--text-secondary);
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
}

.trends-hybrid-bullets li {
  margin: 0.25rem 0;
}

.trends-hybrid-states {
  margin: 0 0 var(--space-2);
  font-size: var(--text-sm);
  color: var(--text-secondary);
}

.trends-hybrid-cta {
  margin: 0;
  font-size: var(--text-sm);
  color: var(--text-secondary);
}

/* Community benefit — finance topic (green), consistent with KPI benefit card */
#community-benefit {
  border-top: 2px solid var(--chart-topic-finance);
  background: var(--bg-card);
  border-color: rgba(46, 125, 50, 0.22);
}
#community-benefit .card-title,
#community-benefit .big-stat-label,
#community-benefit .benefit-item-text strong {
  color: var(--chart-topic-finance);
}
.community-benefit-hero {
  background: rgba(46, 125, 50, 0.04);
  border-color: rgba(46, 125, 50, 0.2);
  box-shadow: var(--shadow-sm);
  padding: var(--space-12);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  max-width: 36rem;
  margin-left: auto;
  margin-right: auto;
}
.community-benefit-hero .big-stat-value { font-size: clamp(2.75rem, 5.8vw, 3.9rem); font-weight: 800; letter-spacing: -0.03em; line-height: 0.88; }
.community-benefit-hero .big-stat-value.ban-stat { color: var(--chart-topic-finance); }
.community-benefit-hero .big-stat-label {
  font-size: 0.8rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-weight: 700;
  text-align: center;
  width: 100%;
}
.community-benefit-hero .big-stat-desc {
  font-size: 0.95rem;
  line-height: 1.45;
  font-weight: 600;
  margin-top: var(--space-3);
  max-width: 28rem;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.policy-timeline-heading {
  margin: 0 0 var(--space-2);
  font-size: clamp(1.05rem, 2.2vw, 1.35rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--hap-ow-blue);
  text-align: center;
}

#community-benefit .benefit-grid--community .benefit-item {
  flex-direction: column;
  align-items: center;
  text-align: center;
  justify-content: flex-start;
  gap: var(--space-4);
  min-height: 0;
  padding: clamp(0.85rem, 2.5vw, 1.25rem) clamp(0.65rem, 1.5vw, 1rem);
}
#community-benefit .benefit-item { border-color: rgba(46, 125, 50, 0.18); background: var(--bg-card); }
#community-benefit .benefit-item-text {
  font-size: clamp(0.82rem, 1.45vw, 0.95rem);
  line-height: 1.42;
  font-weight: 500;
  display: block;
  overflow: visible;
  margin: 0;
  max-width: 22ch;
  hyphens: auto;
  -webkit-hyphens: auto;
}
#community-benefit .benefit-item-text strong { font-family: var(--font-mono); font-size: 1.12em; line-height: 1.15; font-weight: 900; font-variant-numeric: tabular-nums; }
#community-benefit .benefit-item-text strong.ban-inline--finance {
  color: var(--chart-topic-finance);
}
#community-benefit .benefit-item-icon {
  background: rgba(46, 125, 50, 0.1);
  width: clamp(5.5rem, 15.5vw, 6.8rem);
  height: clamp(5.5rem, 15.5vw, 6.8rem);
  flex-shrink: 0;
  border-radius: 14px;
  color: var(--chart-topic-finance);
}
#community-benefit .benefit-item-icon svg {
  width: clamp(2.95rem, 8.4vw, 3.7rem);
  height: clamp(2.95rem, 8.4vw, 3.7rem);
  stroke-width: 1.85;
  stroke: currentColor;
  flex-shrink: 0;
}
#community-benefit .benefit-item-icon--photo {
  padding: clamp(0.35rem, 1.2vw, 0.5rem);
  overflow: hidden;
}
#community-benefit .benefit-item-icon--photo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
}
/* Raster icons (Rx, tooth): tint to finance green to match SVG stroke icons in set */
#community-benefit .benefit-item-icon--dental img {
  filter: brightness(0) saturate(100%) invert(34%) sepia(58%) saturate(950%) hue-rotate(88deg) brightness(0.94) contrast(1.02);
}
#community-benefit .benefit-item-icon--dollar svg {
  width: clamp(2.95rem, 8.4vw, 3.7rem);
  height: clamp(2.95rem, 8.4vw, 3.7rem);
}

/* Mark VI sprint block — REMOVED duplicate .kpi-value and .big-stat-value font-size
   overrides that were silently killing the ≤480px graduated sizing at line 5676.
   Stat-card grid collapse and touch targets are already handled in the primary ≤768px block above. */

/* controls + focus visibility */
.state-filter-btn,
.utility-btn:not(.utility-btn--primary),
.selection-clear,
.impact-scenario-btn,
.pa-impact-btn {
  background: #fff;
  border: 1px solid #d2d2d7;
  border-radius: 10px;
  box-shadow: none;
}
/* After control reset: primary Print/PDF must stay HAP blue (was white-on-white invisible). */
.utility-btn.utility-btn--primary {
  background: linear-gradient(135deg, #0072bc 0%, #0088e0 100%);
  color: #fff !important;
  border-color: transparent;
  box-shadow: 0 4px 14px rgba(0, 114, 188, 0.25);
}
.utility-btn.utility-btn--primary:hover {
  background: linear-gradient(135deg, #005a94 0%, #0072bc 100%);
  color: #fff !important;
  filter: brightness(1.02);
}
.state-filter-btn.active,
.impact-scenario-btn.active,
.pa-impact-btn.active {
  background: #eef5ff;
  border-color: #b8d7fb;
  color: #0b67c2;
}
.state-filter-btn:focus-visible,
.impact-scenario-btn:focus-visible,
.pa-impact-btn:focus-visible,
.dashboard-nav a:focus-visible {
  outline: 3px solid var(--primary);
  outline-offset: 2px;
}

/* map status with non-color cues support */
/* contrast uplift for small supporting copy */
.state-filter-status,
.utility-toolbar-text,
.state-detail-panel.empty,
.state-detail-grid dt,
.kpi-label,
.kpi-desc {
  color: var(--text-secondary);
}

#state-detail-panel:focus,
#state-detail-panel:focus-visible {
  outline: 3px solid var(--primary);
  outline-offset: 2px;
}

.basic-map-canvas .basic-state:focus,
.basic-map-canvas .basic-state:focus-visible {
  outline: none;
  stroke: var(--primary);
  stroke-width: 2.2;
  filter: drop-shadow(0 0 0.3rem rgba(11, 103, 194, 0.35));
}

.card p,
.card li,
.map-hero-sub,
.pa-impact-sub,
.policy-insights-summary,
.impact-narrative,
.pa-impact-results .pa-impact-narrative {
  max-width: 68ch;
  line-height: 1.68;
}

footer {
  background: #fff;
  border-top: 1px solid #e5e5ea;
}
.footer-design {
  color: #6e6e73;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

/* ========== Mark VIII Presentation Pass — Executive Color Separation ========== */
:root {
  --mark8-blue-soft: #f2f7ff;
  --mark8-blue-border: #cfe0f6;
  --mark8-blue-strong: #0b67c2;
  --mark8-orange-soft: #fff5eb;
  --mark8-orange-border: #f1d2b6;
  --mark8-orange-strong: #c85f19;
}

/* Pre-map executive framing */
.key-findings-strip {
  background: var(--mark8-blue-soft);
  border-color: var(--mark8-blue-border);
  border-top: 3px solid var(--mark8-blue-strong);
}
.exec-takeaway {
  background: #f7faff;
  border-color: #d8e6fa;
  border-left: 3px solid var(--mark8-blue-strong);
}

/* KPI band reads as a distinct module */
.kpi-strip {
  background: #f7fbff;
  border-top: 2px solid #c8dcf7;
  border-bottom: 2px solid #c8dcf7;
}
.kpi-card--market,
.kpi-card--oversight,
.kpi-card--pa {
  background: #f7fbff;
  border-top: 3px solid var(--mark8-blue-strong);
}
.kpi-card--benefit {
  background: var(--mark8-orange-soft);
  border-color: var(--mark8-orange-border);
  border-top: 3px solid var(--mark8-orange-strong);
  border-left: 4px solid var(--mark8-orange-strong);
}

/* Map and policy areas carry a blue identity */
.map-hero-card,
.policy-insights-strip,
.card--identity-policy,
.trends-card--policy {
  background: #f8fbff;
  border-color: #d7e5f8;
}
.map-hero-card,
.policy-insights-strip {
  border-top: 2px solid #c5dbf5;
}

/* Community-benefit and impact surfaces carry an orange identity */
#community-benefit,
.community-benefit-hero,
.card--identity-impact,
.trends-card--impact {
  background: var(--mark8-orange-soft);
  border-color: var(--mark8-orange-border);
}
#community-benefit {
  border-top: 3px solid var(--mark8-orange-strong);
}
.community-benefit-hero {
  border: 1px solid #e9c6a7;
  box-shadow: 0 2px 10px rgba(200, 95, 25, 0.08);
}

/* Scenario modules get clear visual distinction */
.pa-impact-mode-card {
  background: #fff9f3;
  border: 1px solid #f0d5be;
  border-top: 2px solid #d57836;
}

/* ============================
   Hearing prep FAQ (printable)
   ============================ */
.hearing-prep-section {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--bg-card);
  box-shadow: var(--shadow-xs);
  padding: var(--space-6) var(--space-5);
  margin-top: var(--space-8);
}

.hearing-prep-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-4);
  margin-bottom: var(--space-4);
}

.hearing-prep-title {
  margin: 0;
  font-size: clamp(1.2rem, 1rem + 1.3vw, 1.45rem);
  font-weight: 800;
  color: var(--text);
  line-height: 1.15;
  letter-spacing: -0.02em;
  font-family: var(--hap-font-display);
}

.hearing-prep-print-btn {
  min-height: 44px;
  padding: var(--space-2) var(--space-4);
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--neutral-50);
  color: var(--primary);
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
}

.hearing-prep-print-btn:hover {
  background: var(--neutral-100);
}

.hearing-prep-print-btn:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 2px;
}

.hearing-prep-accordion {
  display: grid;
  gap: var(--space-3);
}

.hearing-prep-item {
  border: 1px solid var(--border);
  background: var(--neutral-100);
  border-radius: var(--radius);
  overflow: hidden;
}

.hearing-prep-summary {
  list-style: none;
  cursor: pointer;
  padding: var(--space-4) var(--space-5);
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-4);
  font-size: var(--text-base);
  font-weight: 800;
  color: var(--text);
}

.hearing-prep-summary::-webkit-details-marker {
  display: none;
}

.hearing-prep-summary::after {
  content: "+";
  font-weight: 900;
  color: var(--text-muted);
  flex-shrink: 0;
}

.hearing-prep-item[open] .hearing-prep-summary::after {
  content: "–";
}

.hearing-prep-answer {
  padding: 0 var(--space-5) var(--space-5) var(--space-5);
  border-top: 1px solid rgba(15, 23, 42, 0.08);
  color: var(--text-secondary);
  line-height: 1.6;
  font-size: var(--text-sm);
}

.hearing-prep-answer p {
  margin: var(--space-3) 0 0;
}

/* CEO quote pull block inside HAP position */
.hap-ceo-quote {
  margin: 0 0 var(--space-4);
  padding: var(--space-4) var(--space-4);
  border-left: 4px solid var(--primary);
  background: rgba(0, 114, 188, 0.06);
  border-radius: var(--radius-sm);
}

.hap-ceo-quote p {
  margin: 0;
  font-style: italic;
  color: var(--text);
  line-height: var(--leading-relaxed);
}

.hap-ceo-quote cite {
  display: block;
  margin-top: var(--space-2);
  font-size: var(--text-xs);
  color: var(--text-muted);
  font-weight: 700;
  text-transform: uppercase;
  font-variant: small-caps;
  font-style: normal;
  letter-spacing: var(--tracking-wide);
}

/* Pennsylvania legislative bill tracker */
.pa-bill-tracker-section {
  margin-bottom: var(--space-6);
}

.pa-bill-tracker-head {
  margin-bottom: var(--space-4);
}

.pa-bill-tracker-title {
  font-family: var(--hap-font-display, var(--font-display, inherit));
  font-size: var(--hap-type-h2, var(--text-2xl));
  font-weight: 800;
  color: var(--hap-text-primary, var(--text));
  margin: 0;
  letter-spacing: var(--tracking-tight, -0.02em);
}

.pa-bill-card-root {
  margin-bottom: var(--space-5);
}

.pa-bill-card {
  max-width: 42rem;
  padding: var(--space-5);
  border-radius: var(--radius-md, 12px);
  border: 1px solid var(--hap-border-default, rgba(0, 0, 0, 0.08));
  background: var(--hap-bg-card, #fff);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.pa-bill-card--empty {
  border-left: 4px solid var(--hap-topic-access, var(--primary));
}

.pa-bill-card-empty-text {
  margin: 0;
  font-size: var(--hap-type-body, 1rem);
  line-height: var(--leading-relaxed, 1.55);
  color: var(--hap-text-secondary, var(--text));
}

.pa-bill-card-mailto {
  font-weight: 700;
  color: var(--hap-brand-primary, var(--primary));
}

.pa-bill-card-number {
  margin: 0 0 var(--space-2);
  font-size: clamp(1.25rem, 1rem + 1vw, 1.65rem);
  font-weight: 800;
  color: var(--hap-text-primary, var(--text));
  letter-spacing: var(--tracking-tight, -0.02em);
}

.pa-bill-card-title {
  margin: 0 0 var(--space-4);
  font-size: var(--hap-type-h4, 1rem);
  font-weight: 600;
  color: var(--hap-text-secondary, var(--text-muted));
  line-height: var(--leading-snug, 1.35);
}

.pa-bill-card-position {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
  margin: 0 0 var(--space-4);
}

.pa-bill-card-position-label {
  font-size: var(--text-xs, 0.75rem);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--hap-text-muted, var(--text-muted));
}

.pa-bill-position-badge {
  display: inline-block;
  padding: 0.25rem 0.65rem;
  border-radius: 999px;
  font-size: var(--text-xs, 0.75rem);
  font-weight: 800;
  letter-spacing: 0.04em;
}

.pa-bill-position-badge--support {
  background: var(--hap-sentiment-positive-soft, rgba(13, 148, 136, 0.12));
  color: var(--hap-sentiment-positive, #0d9488);
  border: 1px solid rgba(13, 148, 136, 0.35);
}

.pa-bill-position-badge--oppose {
  background: rgba(220, 38, 38, 0.1);
  color: #b91c1c;
  border: 1px solid rgba(220, 38, 38, 0.35);
}

.pa-bill-position-badge--neutral {
  background: var(--hap-topic-neutral-soft, var(--hap-bg-subtle, #f5f5f7));
  color: var(--hap-text-muted, var(--text-muted));
  border: 1px solid var(--hap-border-default, rgba(0, 0, 0, 0.08));
}

.pa-bill-card-block {
  margin-bottom: var(--space-3);
  padding-bottom: var(--space-3);
  border-bottom: 1px solid var(--hap-border-default, rgba(0, 0, 0, 0.06));
}

.pa-bill-card-block:last-of-type {
  border-bottom: none;
  padding-bottom: 0;
}

.pa-bill-card-row {
  display: grid;
  grid-template-columns: minmax(7rem, 11rem) 1fr;
  gap: var(--space-2) var(--space-3);
  margin-top: var(--space-2);
  font-size: var(--text-sm, 0.9375rem);
  align-items: baseline;
}

.pa-bill-card-row--full {
  grid-template-columns: minmax(7rem, 11rem) 1fr;
}

.pa-bill-card-label {
  color: var(--hap-text-muted, var(--text-muted));
  font-weight: 600;
}

.pa-bill-card-value {
  color: var(--hap-text-primary, var(--text));
}

.pa-bill-card-countdown {
  display: inline;
  font-weight: 600;
  color: var(--hap-text-secondary, var(--text-muted));
}

.pa-bill-card-actions {
  margin: var(--space-4) 0 0;
}

.pa-bill-card-bill-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-weight: 700;
  color: var(--hap-brand-primary, var(--primary));
  text-decoration: underline;
  text-underline-offset: 2px;
}

.pa-bill-card-bill-link:hover {
  color: var(--hap-brand-primary-hover, var(--primary-dark, #005a94));
}

.pa-bill-committee-wrap {
  margin-top: var(--space-2);
  padding: var(--space-3);
  border-radius: var(--radius-md, 12px);
  border: 1px solid var(--hap-border-default, rgba(0, 0, 0, 0.08));
  background: var(--hap-bg-subtle, #f5f5f7);
}

.pa-bill-committee-summary {
  font-size: clamp(0.95rem, 1.6vw, 1.03rem);
  font-weight: 800;
  cursor: pointer;
  list-style: none;
  padding: var(--space-1) 0;
}

.pa-bill-committee-summary::-webkit-details-marker {
  display: none;
}

.pa-bill-committee-summary::after {
  content: "";
  display: inline-block;
  width: 0.5rem;
  height: 0.5rem;
  margin-left: var(--space-2);
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  vertical-align: 0.15em;
  transition: transform 0.2s ease;
}

.pa-bill-committee-wrap[open] .pa-bill-committee-summary::after {
  transform: rotate(-135deg);
  vertical-align: -0.05em;
}

@media (prefers-reduced-motion: reduce) {
  .pa-bill-committee-summary::after {
    transition: none;
  }
}

.pa-bill-committee-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
  margin-top: var(--space-2);
}

@media (max-width: 900px) {
  .pa-bill-committee-grid {
    grid-template-columns: 1fr;
  }
}

.pa-bill-committee-col-title {
  margin: 0 0 var(--space-2);
  font-size: clamp(0.88rem, 1.3vw, 0.95rem);
  font-weight: 800;
  color: var(--hap-text-primary, var(--text));
}

.pa-bill-committee-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: var(--radius-sm, 8px);
  border: 1px solid var(--hap-border-default, rgba(0, 0, 0, 0.08));
  background: var(--hap-bg-card, #fff);
}

.pa-bill-committee-table {
  width: 100%;
  min-width: 440px;
  border-collapse: collapse;
  font-size: 0.79rem;
}

.pa-bill-committee-table th,
.pa-bill-committee-table td {
  padding: 0.42rem 0.5rem;
  text-align: left;
  border-bottom: 1px solid var(--hap-border-default, rgba(0, 0, 0, 0.06));
  vertical-align: top;
  line-height: 1.28;
}

.pa-bill-committee-table th {
  font-size: 0.67rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--hap-text-muted, var(--text-muted));
  background: var(--hap-bg-subtle, #f5f5f7);
  white-space: nowrap;
}

.pa-bill-rel-badge {
  display: inline-block;
  padding: 0.08rem 0.35rem;
  border-radius: 4px;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.pa-bill-rel-badge--ally {
  background: var(--hap-sentiment-positive-soft, rgba(13, 148, 136, 0.12));
  color: var(--hap-topic-finance, #0f766e);
  border: 1px solid rgba(15, 118, 110, 0.28);
}

.pa-bill-rel-badge--persuadable {
  background: var(--hap-topic-risk-soft, var(--hap-accent-soft, rgba(245, 158, 11, 0.12)));
  color: #b45309;
  border: 1px solid var(--hap-topic-risk-border, rgba(245, 158, 11, 0.35));
}

.pa-bill-rel-badge--opposed {
  background: rgba(220, 38, 38, 0.1);
  color: #b91c1c;
  border: 1px solid rgba(220, 38, 38, 0.28);
}

.pa-bill-committee-note {
  margin: var(--space-4) 0 0;
  font-size: var(--text-sm, 0.875rem);
  color: var(--hap-text-muted, var(--text-muted));
  line-height: var(--leading-relaxed, 1.55);
}

.pa-bill-committee-note a {
  color: var(--hap-brand-primary, var(--primary));
  font-weight: 600;
}

.pa-bill-haptivate-wrap {
  margin-top: var(--space-4);
}

.pa-bill-haptivate-btn {
  display: block;
  width: 100%;
  text-align: center;
  background: var(--hap-brand-primary, var(--primary));
  color: #fff;
  text-decoration: none;
  font-weight: 900;
  padding: 0.85rem 1rem;
  border-radius: var(--radius-md, 12px);
  box-shadow: var(--shadow-xs);
}

.pa-bill-haptivate-btn:hover {
  background: var(--hap-brand-primary-hover, var(--primary-hover, #005a94));
}

.pa-bill-haptivate-btn:focus-visible {
  outline: 2px solid var(--hap-brand-primary, var(--primary));
  outline-offset: 2px;
}

.pa-bill-haptivate-note {
  margin: var(--space-2) 0 0;
  font-size: var(--text-sm, 0.875rem);
  color: var(--hap-text-muted, var(--text-muted));
  line-height: var(--leading-relaxed, 1.55);
}

@media print {
  .pa-bill-committee-summary::after {
    display: none;
  }

  .pa-bill-committee-wrap {
    border: 1px solid #ccc;
  }

  body.print-hearing-prep #hearing-prep-print-btn {
    display: none !important;
  }

  body.print-hearing-prep .dashboard-header,
  body.print-hearing-prep .hap-sidebar--340b,
  body.print-hearing-prep .site-footer,
  body.print-hearing-prep .utility-toolbar {
    display: none !important;
  }

  /* Hide everything in the main dashboard, then show only this FAQ */
  body.print-hearing-prep .dashboard-inner > * {
    display: none !important;
  }
  body.print-hearing-prep #hearing-prep {
    display: block !important;
  }
}

/* Federal delegation — PA Congress tracker */
.federal-delegation-section {
  margin-bottom: var(--space-6);
}

.federal-delegation-head {
  margin-bottom: var(--space-4);
}

.federal-delegation-eyebrow {
  margin: 0 0 var(--space-2);
  font-size: var(--text-xs, 0.75rem);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--hap-text-muted, var(--text-muted));
}

.federal-delegation-title {
  font-family: var(--hap-font-display, var(--font-display, inherit));
  font-size: var(--hap-type-h2, clamp(1.25rem, 1.05rem + 0.8vw, 1.65rem));
  font-weight: 800;
  color: var(--hap-text-primary, var(--text));
  margin: 0;
  line-height: var(--leading-snug, 1.3);
}

.federal-bill-banner-root {
  margin-bottom: var(--space-5);
}

.federal-bill-banner {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-4);
  border-radius: var(--radius-md, 12px);
  border: 1px solid var(--hap-border-default, rgba(0, 0, 0, 0.08));
  background: linear-gradient(135deg, var(--hap-bg-card, #fff) 0%, var(--hap-bg-subtle, #f5f5f7) 100%);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.federal-bill-banner--empty {
  margin: 0;
  padding: var(--space-3) var(--space-4);
  font-size: var(--text-sm, 0.9375rem);
  color: var(--hap-text-secondary, var(--text-muted));
  border-radius: var(--radius-md, 12px);
  border: 1px dashed var(--hap-border-default, rgba(0, 0, 0, 0.12));
  background: var(--hap-bg-subtle, #f5f5f7);
}

.federal-bill-banner__top {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--space-2) var(--space-4);
}

.federal-bill-banner__number {
  margin: 0;
  font-size: clamp(1.05rem, 0.9rem + 0.5vw, 1.25rem);
  font-weight: 800;
  color: var(--hap-text-primary, var(--text));
}

.federal-bill-banner__title {
  margin: 0;
  flex: 1 1 12rem;
  font-size: var(--text-sm, 0.9375rem);
  font-weight: 600;
  color: var(--hap-text-secondary, var(--text-muted));
}

.federal-bill-banner__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
  gap: var(--space-3);
}

.federal-bill-banner__cell {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.federal-bill-banner__label {
  font-size: var(--text-xs, 0.7rem);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--hap-text-muted, var(--text-muted));
}

.federal-bill-banner__value {
  font-size: var(--text-sm, 0.875rem);
  color: var(--hap-text-primary, var(--text));
  line-height: var(--leading-snug, 1.35);
}

.federal-bill-banner__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
}

.federal-bill-banner__contact {
  margin: 0;
  padding-top: var(--space-2);
  font-size: var(--text-sm, 0.875rem);
  color: var(--hap-text-muted, var(--text-muted));
  line-height: 1.45;
}

.federal-bill-banner__contact a {
  color: var(--hap-brand-primary, var(--primary));
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.federal-bill-banner__link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-weight: 700;
  color: var(--hap-brand-primary, var(--primary));
  text-decoration: underline;
  text-underline-offset: 2px;
}

.federal-delegation-table-block {
  margin-bottom: var(--space-5);
}

.federal-delegation-filter {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.6rem;
  margin-bottom: 0.55rem;
}

.federal-delegation-filter-label {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--hap-text-muted, var(--text-muted));
}

.federal-delegation-filter-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.federal-delegation-filter-btn {
  min-height: 34px;
  padding: 0.26rem 0.62rem;
  font-size: 0.79rem;
  font-weight: 600;
  border-radius: 999px;
  border: 1px solid var(--hap-border-default, rgba(0, 0, 0, 0.12));
  background: var(--hap-bg-card, #fff);
  color: var(--hap-text-primary, var(--text));
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.federal-delegation-filter-btn:hover {
  border-color: var(--hap-brand-primary, var(--primary));
  color: var(--hap-brand-primary, var(--primary));
}

.federal-delegation-filter-btn.is-active {
  background: var(--hap-brand-primary-muted, rgba(0, 114, 188, 0.1));
  border-color: var(--hap-brand-primary, var(--primary));
  color: var(--hap-brand-primary, var(--primary));
}

.federal-delegation-filter-btn:focus-visible {
  outline: 2px solid var(--hap-brand-primary, var(--primary));
  outline-offset: 2px;
}

.federal-delegation-table-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: 10px;
  border: 1px solid var(--hap-border-default, rgba(0, 0, 0, 0.08));
  background: var(--hap-bg-card, #fff);
}

.federal-delegation-table {
  width: 100%;
  min-width: 49rem;
  border-collapse: collapse;
  font-size: 0.82rem;
}

.federal-delegation-table th,
.federal-delegation-table td {
  padding: 0.42rem 0.5rem;
  text-align: left;
  border-bottom: 1px solid var(--hap-border-default, rgba(0, 0, 0, 0.06));
  vertical-align: middle;
  line-height: 1.32;
}

.federal-delegation-table th {
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--hap-text-muted, var(--text-muted));
  background: var(--hap-bg-subtle, #f5f5f7);
  white-space: nowrap;
}

.federal-delegation-table tbody tr:hover td {
  background: rgba(0, 114, 188, 0.04);
}

.federal-pos-badge {
  display: inline-block;
  padding: 0.14rem 0.42rem;
  border-radius: 4px;
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  white-space: nowrap;
}

/* Cosponsor = dark green; Supportive = light green; Unknown = gray; Opposed = red */
.federal-pos-badge--cosponsor {
  background: rgba(15, 118, 110, 0.18);
  color: var(--hap-topic-finance, #0f766e);
  border: 1px solid var(--hap-topic-finance-border, rgba(15, 118, 110, 0.35));
}

.federal-pos-badge--supportive {
  background: var(--hap-sentiment-positive-soft, rgba(13, 148, 136, 0.12));
  color: var(--hap-sentiment-positive, #0d9488);
  border: 1px solid rgba(13, 148, 136, 0.28);
}

.federal-pos-badge--unknown {
  background: var(--hap-topic-neutral-soft, var(--hap-bg-subtle, #f0f0f2));
  color: var(--hap-text-muted, #64748b);
  border: 1px solid var(--hap-border-default, rgba(0, 0, 0, 0.1));
}

.federal-pos-badge--opposed {
  background: rgba(220, 38, 38, 0.1);
  color: #b91c1c;
  border: 1px solid rgba(220, 38, 38, 0.3);
}

.federal-statute-callout {
  margin-top: var(--space-3);
  padding: 0.72rem 0.85rem;
  border-radius: 10px;
  border: 1px solid var(--hap-border-default, rgba(0, 0, 0, 0.08));
  background: var(--hap-topic-neutral-soft, var(--hap-bg-subtle, #f1f5f9));
}

.federal-statute-callout__title {
  margin: 0 0 0.35rem;
  font-size: 0.8rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--hap-text-secondary, var(--text-muted));
}

.federal-statute-callout__body {
  margin: 0 0 0.35rem;
  font-size: 0.84rem;
  line-height: 1.45;
  color: var(--hap-text-primary, var(--text));
}

.federal-statute-callout__cite {
  margin: 0;
  font-size: 0.72rem;
  color: var(--hap-text-muted, var(--text-muted));
  font-style: italic;
}

@media (max-width: 760px) {
  .federal-delegation-filter-btn {
    min-height: 44px;
    padding: 0.28rem 0.62rem;
    font-size: 0.76rem;
  }

  .federal-delegation-table {
    min-width: 46rem;
    font-size: 0.79rem;
  }

  .federal-delegation-table th,
  .federal-delegation-table td {
    padding: 0.38rem 0.45rem;
  }
}

@media print {
  .federal-delegation-filter-buttons {
    flex-wrap: wrap;
  }

  .federal-delegation-filter-btn:not(.is-active) {
    display: none;
  }
}

/* ============================
   Leave-behind export (2 pages)
   ============================ */
.leave-behind-preview {
  margin-top: var(--space-4);
  border: 1px solid rgba(15, 23, 42, 0.14);
  background: rgba(248, 250, 252, 0.98);
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius);
  box-shadow: var(--shadow-xs);
  width: 100%;
  max-width: 52rem;
}

/* Mobile: keep the export preview dialog readable and tappable */
@media (max-width: 520px) {
  .leave-behind-preview {
    padding: var(--space-3) var(--space-3);
    max-width: none;
    margin-left: 0;
    margin-right: 0;
  }
  .leave-behind-preview__actions {
    flex-direction: column;
    align-items: stretch;
  }
  .leave-behind-preview__ok,
  .leave-behind-preview__cancel {
    width: 100%;
  }
}

.leave-behind-preview__text {
  margin: 0 0 var(--space-3);
  color: var(--text-secondary);
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
}

.leave-behind-preview__ok {
  min-height: 44px;
  padding: var(--space-2) var(--space-4);
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--neutral-50);
  color: var(--primary);
  font-weight: 700;
  cursor: pointer;
}

.leave-behind-preview__ok:hover { background: var(--neutral-100); }
.leave-behind-preview__ok:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }

.leave-behind-preview__title {
  margin: 0 0 var(--space-2);
  font-weight: 900;
  font-size: var(--text-sm);
  color: var(--text);
  line-height: 1.35;
}

.leave-behind-preview__body {
  margin: 0 0 var(--space-3);
  color: var(--text-secondary);
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
}

.leave-behind-preview__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  align-items: center;
}

.leave-behind-preview__cancel {
  min-height: 44px;
  padding: var(--space-2) var(--space-4);
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: transparent;
  color: var(--text-secondary);
  font-weight: 700;
  cursor: pointer;
}

.leave-behind-preview__cancel:hover {
  background: rgba(0, 114, 188, 0.06);
}

.leave-behind-preview__cancel:focus-visible {
  outline: 2px solid var(--hap-brand-primary, var(--primary));
  outline-offset: 2px;
}

.leave-behind-sheet {
  display: none;
}

.leave-behind-page {
  padding: 0.25in 0.35in 0.2in;
}

.leave-behind-page-2 {
  page-break-before: always;
  break-before: page;
  display: flex;
  flex-direction: column;
}

.leave-behind-page-2 > .leave-behind-page2-title { order: 0; }
.leave-behind-page-2 .leave-behind-audit-asymmetry { order: 10; }
.leave-behind-page-2 .leave-behind-legal-trends { order: 20; }
.leave-behind-page-2 .leave-behind-pa-safeguards { order: 30; }
.leave-behind-page-2 .leave-behind-rebuttal { order: 40; }
.leave-behind-page-2 .leave-behind-sources-line { order: 50; }
.leave-behind-page-2 .leave-behind-prepared-by { order: 60; }

.leave-behind-page__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  margin-bottom: var(--space-4);
}

.leave-behind-logo {
  flex-shrink: 0;
}

.leave-behind-title {
  font-family: var(--hap-font-display);
  font-weight: 900;
  font-size: 1.05rem;
  letter-spacing: -0.02em;
  color: var(--text);
}

.leave-behind-stats-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
  margin: var(--space-4) 0 var(--space-4);
}

.leave-behind-stat-card {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--bg-card);
  padding: var(--space-3);
}

.leave-behind-stat-label {
  margin: 0 0 var(--space-2);
  font-size: var(--text-2xs);
  font-weight: 700;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wider);
}

.leave-behind-stat-value {
  margin: 0;
  font-family: var(--font-mono);
  font-size: 1.6rem;
  font-weight: 800;
  color: var(--text);
  line-height: 1.05;
}

.leave-behind-stat-impact {
  margin: var(--space-2) 0 0;
  font-size: var(--text-2xs);
  color: var(--text-secondary);
  line-height: 1.4;
}

.leave-behind-ask-group {
  margin: var(--space-4) 0 0;
}

.leave-behind-ask-grid {
  gap: var(--space-3);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* Tighter ask-card sizing for the leave-behind sheet */
.leave-behind-sheet .hap-ask-item {
  padding: var(--space-3);
  gap: var(--space-2);
  box-shadow: none;
  border-left-width: 3px;
}

.leave-behind-sheet .hap-ask-item-icon {
  width: 34px;
  height: 34px;
}

.leave-behind-sheet .hap-ask-item-icon svg { width: 18px; height: 18px; }
.leave-behind-sheet .hap-ask-item-label { font-size: var(--text-sm); }
.leave-behind-sheet .hap-ask-item-impact { font-size: var(--text-2xs); }

.leave-behind-contact-line {
  margin-top: var(--space-4);
  padding-top: var(--space-3);
  border-top: 1px solid var(--border);
  font-weight: 700;
  color: var(--text-secondary);
  font-size: var(--text-sm);
}

.leave-behind-page2-title {
  margin: 0 0 var(--space-4);
  font-family: var(--hap-font-display);
  font-weight: 900;
  font-size: 1.05rem;
  color: var(--text);
  letter-spacing: -0.02em;
}

.leave-behind-subhead {
  margin: 0 0 var(--space-3);
  font-size: var(--text-sm);
  font-weight: 900;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wider);
}

.leave-behind-audit-asymmetry {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--bg-card);
  padding: var(--space-4);
  margin-bottom: var(--space-4);
}

.leave-behind-audit-kicker {
  margin: 0 0 var(--space-2);
  font-size: var(--text-xs);
  font-weight: 700;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: var(--tracking-wider);
}

.leave-behind-audit-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-3);
}

.leave-behind-audit-cell { flex: 1; }
.leave-behind-audit-label { margin: 0 0 var(--space-1); font-size: var(--text-xs); color: var(--text-secondary); font-weight: 700; }
.leave-behind-audit-value { margin: 0; font-family: var(--font-mono); font-size: 1.8rem; font-weight: 900; }
.leave-behind-audit-vs { flex-shrink: 0; font-weight: 900; color: var(--text-secondary); padding: 0 0.15rem; }

.leave-behind-trends-stack {
  display: grid;
  gap: var(--space-3);
}

.leave-behind-trend-card {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--bg-card);
  padding: var(--space-3);
}

.leave-behind-trend-title {
  margin: 0 0 var(--space-2);
  font-weight: 900;
  color: var(--text);
  font-size: var(--text-sm);
}

.leave-behind-trend-body {
  margin: 0;
  color: var(--text-secondary);
  font-size: var(--text-sm);
  line-height: 1.45;
}

.leave-behind-table-wrap {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow-x: auto;
  overflow-y: visible;
  -webkit-overflow-scrolling: touch;
  background: var(--bg-card);
}

.leave-behind-table {
  width: 100%;
}

/* Make the rebuttal table fit on one page */
.leave-behind-sheet .counterarguments-table th,
.leave-behind-sheet .counterarguments-table td {
  padding: 0.25rem 0.35rem;
  font-size: 0.66rem;
  line-height: 1.35;
}

.leave-behind-sheet .counterarguments-table thead th {
  font-size: 0.66rem;
}

.leave-behind-pa-safeguards {
  margin-top: var(--space-4);
}

.leave-behind-pa-head {
  margin: 0 0 var(--space-3);
  font-weight: 900;
  color: var(--text);
}

.leave-behind-bullets {
  margin: 0;
  padding-left: 1.1rem;
  color: var(--text-secondary);
  line-height: 1.55;
  font-size: var(--text-sm);
}

.leave-behind-sources-line {
  margin: var(--space-4) 0 0;
  font-weight: 700;
  color: var(--text-secondary);
}

.leave-behind-prepared-by {
  margin-top: var(--space-2);
  padding-top: var(--space-3);
  border-top: 1px solid var(--border);
  font-weight: 700;
  color: var(--text-secondary);
}

@media print {
  /*
   * Legacy in-page leave-behind mode is deprecated.
   * Canonical export now routes through print.html for both fidelity and PDF parity.
   */
  body.leave-behind-mode #leave-behind-sheet {
    display: none !important;
  }
}

/* Mobile print: collapse leave-behind grids so nothing looks cramped */
@media print and (max-width: 520px) {
  body.leave-behind-mode .leave-behind-sheet { display: none !important; }
}

/* Key findings redesign: cleaner spacing and less crowding */
.key-findings-strip {
  padding: clamp(1rem, 2vw, 1.45rem);
}

.key-findings-strip .key-findings-heading {
  align-items: flex-start;
  margin-bottom: clamp(0.9rem, 1.8vw, 1.25rem);
}

.key-findings-strip .key-findings-subline {
  margin-top: 0.35rem;
  max-width: 40rem;
  color: var(--hap-label-secondary, #4f5d6f);
  line-height: var(--hap-leading-dek, 1.52);
}

.key-findings-strip .key-findings-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(0.9rem, 1.8vw, 1.2rem);
}

.key-findings-strip .key-finding-card {
  border-radius: 14px;
  padding: clamp(0.85rem, 1.5vw, 1.1rem);
  min-height: 0;
}

.key-findings-strip .key-finding-label {
  margin-bottom: 0.5rem;
  font-size: 0.8rem;
  letter-spacing: 0.01em;
  text-transform: none;
  color: #435366;
}

.key-findings-strip .key-finding-value.ban-stat {
  line-height: 1;
  font-size: clamp(2rem, 4vw, 2.7rem);
}

.key-findings-strip .key-finding-split {
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: flex-end;
  gap: 0.75rem;
  margin: 0 0 0.65rem;
}

/* Number-first cards: value leads; label follows as caption */
.key-findings-strip .key-findings-grid > .key-finding-card:nth-child(2) > .key-finding-value.ban-stat,
.key-findings-strip .key-findings-grid > .key-finding-card:nth-child(3) > .key-finding-value.ban-stat,
.key-findings-strip .key-findings-grid > .key-finding-card:nth-child(4) > .key-finding-value.ban-stat {
  margin: 0;
}

.key-findings-strip .key-finding-split-cell {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
}

/* Same size as other key-finding mega values so 21 / 29 / $7.95B share one visual row */
.key-findings-strip .key-finding-split .key-finding-value.ban-stat {
  font-size: clamp(2rem, 4vw, 2.7rem);
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.key-findings-strip .key-finding-caption {
  text-transform: none;
  letter-spacing: 0.01em;
  font-size: 0.8rem;
  margin-top: 0.2rem;
}

.key-findings-strip .key-finding-impact {
  margin-top: auto;
  padding-top: 0.6rem;
  font-size: 0.86rem;
  line-height: 1.4;
}

/* Strip grid was 2×2 at all widths — too tight on phones; nowrap BAN stats forced overflow */
@media (max-width: 900px) {
  .key-findings-strip .key-findings-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 640px) {
  .key-findings-strip .key-finding-split {
    flex-wrap: wrap;
    gap: 0.5rem;
  }
}

@keyframes keyFindingCardReveal {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  .key-findings-strip.scroll-reveal.revealed .key-finding-card,
  .key-findings-strip.scroll-reveal.is-visible .key-finding-card {
    animation: none !important;
  }
}

body.scroll-reveal-js .key-findings-strip.scroll-reveal.revealed .key-finding-card,
body.scroll-reveal-js .key-findings-strip.scroll-reveal.is-visible .key-finding-card {
  animation: keyFindingCardReveal 0.55s ease-out both;
}
body.scroll-reveal-js .key-findings-strip.scroll-reveal.revealed .key-finding-card:nth-child(1),
body.scroll-reveal-js .key-findings-strip.scroll-reveal.is-visible .key-finding-card:nth-child(1) { animation-delay: 0s; }
body.scroll-reveal-js .key-findings-strip.scroll-reveal.revealed .key-finding-card:nth-child(2),
body.scroll-reveal-js .key-findings-strip.scroll-reveal.is-visible .key-finding-card:nth-child(2) { animation-delay: 0.06s; }
body.scroll-reveal-js .key-findings-strip.scroll-reveal.revealed .key-finding-card:nth-child(3),
body.scroll-reveal-js .key-findings-strip.scroll-reveal.is-visible .key-finding-card:nth-child(3) { animation-delay: 0.12s; }
body.scroll-reveal-js .key-findings-strip.scroll-reveal.revealed .key-finding-card:nth-child(4),
body.scroll-reveal-js .key-findings-strip.scroll-reveal.is-visible .key-finding-card:nth-child(4) { animation-delay: 0.18s; }

@media (max-width: 900px) {
  .key-findings-strip .key-findings-grid {
    grid-template-columns: 1fr;
  }

  .key-findings-strip .key-finding-card {
    min-height: 0;
  }
}

/* KPI redesign: more breathing room, cleaner hierarchy */
.kpi-strip.kpi-strip--mark11 {
  padding: clamp(1rem, 2vw, 1.5rem);
  border-radius: 16px;
}

.kpi-strip.kpi-strip--mark11 .kpi-strip-head {
  margin-bottom: 0.75rem;
}

.kpi-strip.kpi-strip--mark11 .kpi-strip-subline {
  max-width: 54rem;
  color: #4f5d6f;
}

.kpi-strip.kpi-strip--mark11 .kpi-strip-intro {
  margin: 0 0 0.75rem;
  padding: 0.65rem 0.8rem;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.85);
  border: 1px solid #d9e6f5;
}

.kpi-strip.kpi-strip--mark11 .kpi-strip-intro--dek {
  margin: 0 0 0.75rem;
  padding: 0.65rem 0.8rem;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.85);
  border: 1px solid #d9e6f5;
  font-size: var(--text-sm);
  color: #4f5d6f;
  line-height: 1.45;
  max-width: 54rem;
}

.kpi-strip.kpi-strip--mark11 .kpi-strip-grid {
  /* Row layout: one KPI per row */
  grid-template-columns: 1fr;
  gap: clamp(0.85rem, 1.8vw, 1.15rem);
}

.kpi-strip.kpi-strip--mark11 .kpi-card {
  border-radius: 14px;
  padding: clamp(0.95rem, 1.8vw, 1.2rem);
  min-height: 0;
  box-shadow: none;
  display: grid;
  grid-template-columns: minmax(160px, 230px) minmax(0, 1fr);
  column-gap: clamp(0.85rem, 1.8vw, 1.25rem);
  align-items: start;
}

.kpi-strip.kpi-strip--mark11 .kpi-card:hover,
.kpi-strip.kpi-strip--mark11 .kpi-card:focus-within {
  transform: none;
  box-shadow: none;
}

.kpi-strip.kpi-strip--mark11 .kpi-label {
  margin-bottom: 0.4rem;
  font-size: 0.8rem;
  color: #435366;
  grid-column: 2;
  grid-row: 1;
}

.kpi-strip.kpi-strip--mark11 .kpi-value {
  font-size: clamp(2rem, 4.1vw, 2.65rem);
  line-height: 1;
  margin-bottom: 0.35rem;
  grid-column: 1;
  grid-row: 1 / span 4;
  align-self: center;
}

.kpi-strip.kpi-strip--mark11 .kpi-desc {
  margin-top: 0.15rem;
  max-width: none;
  font-size: 0.88rem;
  line-height: 1.35;
  -webkit-line-clamp: unset;
  overflow: visible;
  grid-column: 2;
  grid-row: 2;
}

.kpi-strip.kpi-strip--mark11 .kpi-impact {
  margin-top: auto;
  padding-top: 0.65rem;
  font-size: 0.85rem;
  line-height: 1.4;
  grid-column: 2;
  grid-row: 3;
}

.kpi-strip.kpi-strip--mark11 .kpi-value-with-info {
  align-items: baseline;
  gap: 0.4rem;
  grid-column: 1;
  grid-row: 1 / span 4;
  align-self: center;
}

/* KPI polish: align Oversight + Oversight gap cards */
.kpi-strip.kpi-strip--mark11 .kpi-card {
  display: flex;
  flex-direction: column;
}

.kpi-strip.kpi-strip--mark11 .kpi-card--oversight .kpi-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.kpi-strip.kpi-strip--mark11 .kpi-card--oversight .kpi-value {
  font-variant-numeric: tabular-nums;
}

/* Key metrics redesign consistency: center value column on all non-PA KPI cards */
.kpi-strip.kpi-strip--mark11 .kpi-card--market,
.kpi-strip.kpi-strip--mark11 .kpi-card--benefit,
.kpi-strip.kpi-strip--mark11 .kpi-card--oversight,
.kpi-strip.kpi-strip--mark11 .kpi-card--pa {
  display: grid;
}
.kpi-strip.kpi-strip--mark11 .kpi-card--market .kpi-value,
.kpi-strip.kpi-strip--mark11 .kpi-card--benefit .kpi-value,
.kpi-strip.kpi-strip--mark11 .kpi-card--oversight .kpi-value {
  margin: 0;
  align-self: center;
  justify-self: center;
  text-align: center;
  min-width: 4ch;
}

.kpi-strip.kpi-strip--mark11 .kpi-card--pa .kpi-value-with-info {
  align-self: center;
  justify-self: center;
  justify-content: center;
  text-align: center;
  min-width: 4ch;
}

.kpi-strip.kpi-strip--mark11 .kpi-card--oversight .kpi-desc {
  margin-top: 0.15rem;
}

.kpi-strip.kpi-strip--mark11 .kpi-card--oversight .kpi-impact {
  margin-top: auto;
}

.kpi-strip.kpi-strip--mark11 .kpi-card--oversight .stat-verified {
  margin-top: 0.4rem;
  font-size: 0.78rem;
  color: var(--text-muted);
  font-weight: 650;
  grid-column: 2;
  grid-row: 4;
}

.kpi-strip.kpi-strip--mark11 .kpi-scope-footnote,
.kpi-strip.kpi-strip--mark11 .data-freshness {
  margin-top: 0.8rem;
}

@media (max-width: 1100px) {
  .kpi-strip.kpi-strip--mark11 .kpi-strip-grid { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
  .kpi-strip.kpi-strip--mark11 .kpi-card {
    display: flex;
    flex-direction: column;
  }

  .kpi-strip.kpi-strip--mark11 .kpi-label,
  .kpi-strip.kpi-strip--mark11 .kpi-desc,
  .kpi-strip.kpi-strip--mark11 .kpi-impact {
    grid-column: auto;
    grid-row: auto;
  }

  .kpi-strip.kpi-strip--mark11 .kpi-value,
  .kpi-strip.kpi-strip--mark11 .kpi-value-with-info {
    grid-column: auto;
    grid-row: auto;
    align-self: flex-start;
  }
}

/* Legal landscape — scannable takeaway + tabbed detail (#legal-trends) */
.hap-legal-landscape {
  margin-top: var(--space-4);
  padding: var(--space-4) var(--space-4) var(--space-3);
  background: linear-gradient(180deg, rgba(142, 216, 248, 0.12) 0%, rgba(255, 255, 255, 0.96) 42%, #fff 100%);
  border: 1px solid rgba(0, 114, 188, 0.14);
  border-radius: var(--radius-lg, 12px);
  box-shadow: 0 1px 0 rgba(0, 48, 135, 0.05);
}

.hap-legal-landscape__header {
  margin: 0 0 var(--space-4);
  padding-bottom: var(--space-3);
  border-bottom: 1px solid rgba(0, 114, 188, 0.14);
}

.hap-legal-landscape__header--compact {
  margin-bottom: var(--space-3);
  padding-bottom: var(--space-2);
}

.hap-legal-landscape__eyebrow {
  margin: 0 0 0.35rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--hap-brand-deep, #003087);
}

.hap-legal-landscape__title {
  margin: 0 0 var(--space-2);
  font-size: clamp(1.02rem, 2vw, 1.22rem);
  font-weight: 700;
  letter-spacing: 0.01em;
  color: var(--text);
  line-height: 1.3;
  font-family: var(--hap-font-print-serif, Georgia, "Times New Roman", Times, serif);
}

.hap-legal-landscape__scope {
  margin: 0;
  font-size: 0.8125rem;
  color: var(--text-muted);
  line-height: 1.4;
  font-weight: 600;
  font-style: normal;
}

/* 5-second scan row */
.hap-legal-takeaway {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-3);
  margin: 0 0 var(--space-4);
}

.hap-legal-takeaway__item {
  margin: 0;
  padding: var(--space-3);
  background: var(--bg-card, #fff);
  border: 1px solid var(--border);
  border-radius: var(--radius-md, 10px);
  border-top: 3px solid var(--hap-topic-policy, #00aeef);
  box-shadow: var(--shadow-xs, 0 1px 2px rgba(0, 48, 135, 0.05));
}

.hap-legal-takeaway__item--courts { border-top-color: var(--hap-topic-policy, #00aeef); }
.hap-legal-takeaway__item--models { border-top-color: var(--hap-brand-primary, #0072bc); }
.hap-legal-takeaway__item--pa { border-top-color: var(--chart-topic-neutral, #64748b); }

.hap-legal-takeaway__label {
  margin: 0 0 0.2rem;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--hap-brand-deep, #003087);
}

.hap-legal-takeaway__kicker {
  margin: 0 0 0.35rem;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--text);
  line-height: 1.25;
}

.hap-legal-takeaway__text {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: var(--text-secondary);
  font-weight: 500;
}

/* Tabbed deeper read */
.hap-legal-tabs {
  margin: 0 0 var(--space-3);
}

.hap-legal-tabs__intro {
  margin: 0 0 var(--space-2);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-muted);
}

.hap-legal-tabs__list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-bottom: var(--space-3);
}

.hap-legal-tabs__tab {
  min-height: 44px;
  padding: 0.5rem 1rem;
  font-size: var(--text-sm);
  font-weight: 700;
  color: var(--primary, #0072bc);
  background: rgba(0, 114, 188, 0.06);
  border: 1px solid rgba(0, 114, 188, 0.22);
  border-radius: 999px;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.hap-legal-tabs__tab:hover {
  background: rgba(0, 114, 188, 0.12);
  border-color: rgba(0, 114, 188, 0.35);
}

.hap-legal-tabs__tab:focus-visible {
  outline: 2px solid var(--primary, #0072bc);
  outline-offset: 2px;
}

.hap-legal-tabs__tab[aria-selected="true"] {
  color: #fff;
  background: var(--hap-brand-primary, #0072bc);
  border-color: var(--hap-brand-primary, #0072bc);
}

.hap-legal-tabs__panel {
  margin: 0;
  padding: var(--space-3);
  font-size: var(--text-sm);
  line-height: 1.5;
  color: var(--text-secondary);
  font-weight: 500;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid var(--border);
  border-radius: var(--radius-md, 10px);
}

.hap-legal-tabs__panel p {
  margin: 0 0 var(--space-2);
}

.hap-legal-tabs__panel p:last-child {
  margin-bottom: 0;
}

.hap-legal-tabs__meta {
  margin-top: var(--space-2) !important;
  font-size: 0.8125rem;
  color: var(--text);
}

.hap-legal-more {
  margin-top: var(--space-2);
  border: 1px dashed rgba(0, 114, 188, 0.25);
  border-radius: var(--radius-md, 10px);
  background: rgba(0, 114, 188, 0.03);
}

.hap-legal-more__summary {
  list-style: none;
  cursor: pointer;
  padding: var(--space-2) var(--space-3);
  min-height: 44px;
  font-size: var(--text-sm);
  font-weight: 700;
  color: var(--primary, #0072bc);
}

.hap-legal-more__summary::-webkit-details-marker { display: none; }

.hap-legal-more__body {
  padding: 0 var(--space-3) var(--space-3);
}

.hap-legal-more__framing {
  margin: 0 0 var(--space-3);
  font-size: var(--text-sm);
  line-height: 1.45;
  color: var(--text);
  font-weight: 500;
}

.hap-legal-landscape__body {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.hap-legal-block {
  margin: 0;
  padding: var(--space-4) var(--space-4) var(--space-3);
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius, 10px);
  border-left: 4px solid var(--hap-topic-policy, #00aeef);
  box-shadow: var(--shadow-xs, 0 1px 2px rgba(0, 48, 135, 0.06));
}

.hap-legal-block--enactments {
  border-left-color: var(--hap-brand-primary, #0072bc);
}

.hap-legal-block--executive,
.hap-legal-block--commonwealth {
  border-left-color: var(--chart-topic-neutral, #64748b);
}

.hap-legal-block__heading {
  margin: 0 0 var(--space-3);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--hap-brand-deep, #003087);
  line-height: 1.35;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.55rem;
}

.hap-legal-block__roman {
  font-family: Georgia, "Times New Roman", Times, serif;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--text-muted);
  flex-shrink: 0;
}

.hap-legal-block__heading-text {
  text-transform: none;
  letter-spacing: 0.02em;
  font-size: 0.94rem;
  font-weight: 700;
  color: var(--text);
}

.hap-legal-block__lead {
  margin: 0 0 var(--space-2);
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--text);
  line-height: 1.45;
}

.hap-legal-block__detail,
.hap-legal-block__matters {
  margin: 0 0 var(--space-2);
  font-size: var(--text-sm);
  color: var(--text-secondary);
  line-height: 1.5;
}

.hap-legal-block__matters {
  font-size: 0.8125rem;
  color: var(--text-muted);
}

.hap-legal-block__detail:last-child,
.hap-legal-block__matters:last-child {
  margin-bottom: 0;
}

.hap-legal-cite {
  font-style: italic;
  font-weight: 600;
  color: var(--text);
}

.hap-legal-block__list {
  margin: var(--space-2) 0 var(--space-3);
  padding-left: 1.25rem;
  font-size: var(--text-sm);
  color: var(--text-secondary);
  line-height: 1.45;
}

.hap-legal-block__list li {
  margin: 0.28rem 0;
}

.hap-legal-block__jurisdictions {
  margin: 0;
  font-size: var(--text-sm);
  color: var(--text);
  font-weight: 500;
}

.hap-legal-block__term {
  font-weight: 700;
  color: var(--text-muted);
  margin-right: 0.35rem;
}

.hap-legal-landscape__row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
}

.hap-legal-briefing-note {
  margin-top: var(--space-4);
  padding: var(--space-4);
  background: rgba(0, 114, 188, 0.06);
  border: 1px solid rgba(0, 114, 188, 0.18);
  border-radius: var(--radius, 10px);
}

.hap-legal-briefing-note__label {
  margin: 0 0 var(--space-2);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--hap-brand-deep, #003087);
}

.hap-legal-briefing-note__text {
  margin: 0;
  font-size: var(--text-sm);
  line-height: 1.5;
  color: var(--text);
  font-weight: 500;
}

.hap-legal-footnotes.legal-trends-footnotes,
#legal-trends .legal-trends-footnotes {
  margin-top: var(--space-4);
  padding-top: var(--space-3);
  border-top: 1px solid var(--border);
}

.hap-legal-footnotes p,
#legal-trends .legal-trends-footnotes p {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.45;
  color: var(--text-muted);
}

.hap-legal-fn-ref {
  font-weight: 700;
  text-decoration: none;
  color: var(--primary);
}

.hap-legal-fn-ref:hover {
  text-decoration: underline;
}

@media (max-width: 800px) {
  .hap-legal-landscape {
    padding: var(--space-4) var(--space-3) var(--space-3);
  }

  .hap-legal-takeaway {
    grid-template-columns: 1fr;
  }

  .hap-legal-landscape__row {
    grid-template-columns: 1fr;
  }
}

@media print {
  .hap-legal-landscape {
    background: #fff;
    border-color: #ccc;
    box-shadow: none;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .hap-legal-tabs__list {
    display: none !important;
  }

  .hap-legal-tabs__panel {
    display: block !important;
    margin-bottom: var(--space-2);
    page-break-inside: avoid;
  }

  .hap-legal-tabs__panel[hidden] {
    display: block !important;
  }

  .hap-legal-briefing-note {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .hap-legal-more {
    border-style: solid;
  }

  .hap-legal-more[open] summary {
    list-style: none;
  }
}

/* Supporting section redesign: aligned, intentional, executive layout */
.supporting-section {
  align-items: stretch;
  margin-top: var(--space-7);
}

.section-subhead--supporting {
  margin: 0 0 var(--space-4);
  font-size: clamp(1rem, 1.9vw, 1.2rem);
  letter-spacing: 0.01em;
  text-transform: none;
  text-align: left;
  color: var(--text);
}

.supporting-cards-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(0.85rem, 1.7vw, 1.15rem);
  width: 100%;
  max-width: none;
  align-items: stretch;
}

.supporting-cards-row .card--compact {
  max-width: none;
  padding: clamp(0.95rem, 1.8vw, 1.2rem);
  border-radius: 14px;
  min-height: 0;
}

.supporting-cards-row .card--compact .card-heading {
  margin-bottom: 0.65rem;
}

.supporting-cards-row .card--compact p,
.supporting-cards-row .card--compact li {
  line-height: 1.4;
}

.supporting-cards-row .card--compact .stat-block {
  margin-top: 0.65rem;
}

.supporting-cards-row #oversight .stat-block.stat-split {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.supporting-cards-row #pa-impact .stat-block {
  grid-template-columns: 1fr;
}

/* PA operating stakes card: tighter alignment + less visual clutter */
.supporting-cards-row #pa-impact .pa-impact-lede {
  margin: 0 0 0.75rem;
  line-height: 1.35;
}

.supporting-cards-row #pa-impact .pa-impact-lede__sub {
  display: block;
  margin-top: 0.3rem;
  font-weight: 600;
  color: var(--text-secondary);
}

.supporting-cards-row #pa-impact .stat-block {
  margin-top: 0;
  gap: 0.75rem;
}

.supporting-cards-row #pa-impact .stat {
  background: rgba(255, 255, 255, 0.85);
  border-color: rgba(11, 103, 194, 0.14);
  padding: 0.8rem 0.9rem;
  min-width: 0;
  overflow: visible;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  text-align: left;
}

.supporting-cards-row #pa-impact .stat-label {
  font-size: 0.9rem;
  letter-spacing: 0.01em;
  text-transform: none;
  color: var(--text-secondary);
  margin: 0;
  font-weight: 700;
}

.supporting-cards-row #pa-impact .stat-value {
  font-size: clamp(1.8rem, 3.2vw, 2.3rem);
  line-height: 1;
  display: block;
  white-space: nowrap;
  overflow: visible;
  margin: 0;
  min-width: 3.1ch;
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.supporting-cards-row .stat {
  padding: 0.65rem 0.6rem;
}

.supporting-cards-row .stat-label {
  font-size: 0.68rem;
}

.supporting-cards-row .stat-value {
  font-size: clamp(1.6rem, 3vw, 2.1rem);
  line-height: 1;
}

.supporting-parity-note {
  margin-top: 0.55rem !important;
}

@media (max-width: 1080px) {
  .supporting-cards-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .supporting-cards-row #pa-impact {
    grid-column: 1 / -1;
  }
}

@media (max-width: 680px) {
  .section-subhead--supporting {
    text-align: left;
  }

  .supporting-cards-row {
    grid-template-columns: 1fr;
  }

  .supporting-cards-row #pa-impact {
    grid-column: auto;
  }
}

/* Community benefit tune-down: cleaner and less busy */
#community-benefit {
  padding: clamp(1rem, 2vw, 1.35rem);
}

#community-benefit .community-impact-lead {
  margin-bottom: 0.75rem;
  font-size: 0.95rem;
  line-height: 1.45;
  max-width: 46rem;
}

#community-benefit .benefit-grid--community {
  gap: 0.65rem;
  margin-top: 0.7rem;
  margin-bottom: 0.8rem;
}

#community-benefit .benefit-item {
  padding: 0.85rem 0.72rem;
  gap: 0.75rem;
  align-items: center;
}

/* Icon dimensions overridden at end of stylesheet (larger tiles for scan). */
#community-benefit .benefit-item-icon {
  width: 49px;
  height: 49px;
}

#community-benefit .benefit-item-icon svg {
  width: 25px;
  height: 25px;
}

#community-benefit .benefit-item-text {
  font-size: 0.88rem;
  line-height: 1.32;
}

#community-benefit .benefit-item-text strong.ban-inline--finance {
  font-size: 1.03em;
}

#community-benefit .community-benefit-hero {
  margin-top: 0.75rem;
  padding: clamp(0.95rem, 1.9vw, 1.2rem);
}

#community-benefit .patient-story-callout {
  margin-bottom: 0.55rem;
  padding: 0.62rem 0.72rem;
}

#community-benefit .patient-story-callout blockquote {
  font-size: 0.95rem;
  line-height: 1.38;
}

#community-benefit .patient-story-callout cite,
#community-benefit .patient-story-callout .story-cta {
  font-size: 0.8rem;
}

#community-benefit .community-benefit-hero .big-stat-value {
  font-size: clamp(2.35rem, 5vw, 3.15rem);
  line-height: 0.92;
}

#community-benefit .community-benefit-hero .big-stat-desc {
  margin-top: 0.4rem;
  font-size: 0.92rem;
}

/* PA Impact Mode differentiation by scenario */
#pa-impact-mode-root {
  --pa-mode-accent: #0b67c2;
  --pa-mode-tint: rgba(11, 103, 194, 0.08);
  --pa-mode-border: rgba(11, 103, 194, 0.28);
}

#pa-impact-mode-root[data-pa-scenario="expand"] {
  --pa-mode-accent: #1f8a43;
  --pa-mode-tint: rgba(31, 138, 67, 0.1);
  --pa-mode-border: rgba(31, 138, 67, 0.3);
}

#pa-impact-mode-root[data-pa-scenario="current"] {
  --pa-mode-accent: #0b67c2;
  --pa-mode-tint: rgba(11, 103, 194, 0.09);
  --pa-mode-border: rgba(11, 103, 194, 0.28);
}

#pa-impact-mode-root[data-pa-scenario="remove"] {
  --pa-mode-accent: #b42318;
  --pa-mode-tint: rgba(180, 35, 24, 0.12);
  --pa-mode-border: rgba(180, 35, 24, 0.35);
}

#pa-impact-mode-root .pa-impact-headline {
  color: var(--pa-mode-accent);
  font-size: clamp(1.32rem, 2.9vw, 1.88rem);
  font-weight: 800;
  line-height: 1.18;
  letter-spacing: -0.02em;
}

#pa-impact-mode-root .pa-impact-title,
#pa-impact-mode-root .pa-impact-eyebrow {
  font-size: 0.72rem;
  letter-spacing: 0.11em;
}

#pa-impact-mode-root .pa-impact-sub {
  border-left: 3px solid var(--pa-mode-accent);
  padding-left: 0.75rem;
  font-size: 1.02rem;
  font-weight: 500;
  line-height: 1.45;
}

#pa-impact-mode-root .pa-impact-btn {
  border-width: 1.5px;
}

#pa-impact-mode-root .pa-impact-btn--expand.active {
  background: rgba(31, 138, 67, 0.14);
  color: #1f6f39;
  border-color: rgba(31, 138, 67, 0.42);
}

#pa-impact-mode-root .pa-impact-btn--current.active {
  background: rgba(11, 103, 194, 0.14);
  color: #0b67c2;
  border-color: rgba(11, 103, 194, 0.42);
}

#pa-impact-mode-root .pa-impact-btn--remove.active {
  background: rgba(180, 35, 24, 0.16);
  color: #9d2016;
  border-color: rgba(180, 35, 24, 0.5);
}

#pa-impact-mode-root .pa-impact-buttons {
  display: flex;
  flex-wrap: wrap;
  padding: 0.4rem;
  gap: 0.4rem;
  border-radius: 999px;
  background: rgba(0, 48, 135, 0.07);
  border: 1px solid rgba(0, 114, 188, 0.16);
}

#pa-impact-mode-root .pa-impact-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 1 1 auto;
  min-width: min(168px, 100%);
  font-weight: 800;
  font-size: 0.9rem;
}

#pa-impact-mode-root .pa-impact-card {
  border-top: 4px solid var(--pa-mode-accent);
  background: linear-gradient(180deg, var(--pa-mode-tint) 0%, #fff 45%);
  border-color: var(--pa-mode-border);
}

#pa-impact-mode-root .pa-impact-value {
  color: var(--pa-mode-accent);
  font-size: clamp(1.45rem, 3.4vw, 2.35rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.05;
}

#pa-impact-mode-root .pa-impact-label {
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.05em;
}

#pa-impact-mode-root .pa-impact-results .pa-impact-narrative-block {
  background: linear-gradient(180deg, var(--pa-mode-tint) 0%, rgba(255, 255, 255, 0.92) 55%);
  border-color: var(--pa-mode-border);
  border-left: 5px solid var(--pa-mode-accent);
}

#pa-impact-mode-root .pa-impact-results .pa-impact-narrative-lead {
  color: var(--pa-mode-accent);
}

#pa-impact-mode-root[data-pa-scenario="remove"] .pa-impact-results .pa-impact-narrative-lead {
  color: #8f1c14;
}

#pa-impact-mode-root[data-pa-scenario="remove"] .pa-impact-value {
  color: #8f1c14;
  font-weight: 800;
}

/* ===== Executive advocacy system overrides (flagship pass) ===== */

.ban-stat {
  font-family: var(--font-ui);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--hap-blue);
  font-variant-numeric: tabular-nums;
}

.ban-stat--hero,
.key-finding-value.ban-stat,
.big-stat-value.ban-stat {
  font-size: clamp(36px, 5vw, 52px);
}

.ban-stat--large,
.pa-primary-value .ban-stat,
.oversight-ratio.ban-stat {
  font-size: clamp(40px, 6vw, 64px);
}

.ban-stat--medium,
.pa-metric-value.ban-stat,
.oversight-value.ban-stat,
.kpi-value.ban-stat {
  font-size: clamp(28px, 4vw, 40px);
}

.ban-stat--finance { color: var(--hap-blue); }
.ban-stat--pa { color: var(--hap-blue-mid); }
.ban-stat--market { color: var(--hap-blue); }
.ban-stat--policy { color: var(--hap-green); }
.stat--perf-negative { color: var(--hap-red) !important; }
.oversight-ratio.ban-stat { color: var(--hap-gold); }

.ban-stat.is-counting {
  background: linear-gradient(90deg, var(--hap-blue) 0%, var(--hap-blue-mid) 50%, var(--hap-blue) 100%);
  background-size: 200% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: stat-shimmer 1.2s var(--ease-out) forwards;
}

@keyframes stat-shimmer {
  0% { background-position: 200% center; }
  100% { background-position: 0% center; }
}

.supporting-panel,
.key-finding-card,
.kpi-card,
.card,
.intro-overview-card,
.pa-impact-mode-card,
.legal-card {
  background: #fff;
  border: var(--card-border);
  border-radius: var(--card-radius);
  box-shadow: var(--card-shadow);
  transition: box-shadow 0.2s ease, transform 0.15s ease;
}

.supporting-panel:hover,
.key-finding-card:hover,
.kpi-card:hover,
.legal-card:hover {
  box-shadow: 0 6px 20px rgba(0, 48, 135, 0.10), 0 2px 6px rgba(0, 0, 0, 0.06);
  transform: translateY(-1px);
}

.key-finding-card.hap-card-interactive:active,
.kpi-card:active {
  transform: translateY(0);
  box-shadow: var(--card-shadow);
  transition-duration: 0.08s;
}

.supporting-panel--pa,
.key-finding-card--finance,
.kpi-card--benefit { border-top: 4px solid var(--hap-blue); }
.supporting-panel--oversight,
.key-finding-card--market,
.kpi-card--oversight { border-top: 4px solid var(--hap-gold); }
.supporting-panel--providers,
.key-finding-card--policy,
.kpi-card--market { border-top: 4px solid var(--hap-green); }
.key-finding-card--pa,
.kpi-card--pa { border-top: 4px solid var(--hap-blue-mid); }
.kpi-card--oversight-gap { border-top: 4px solid var(--hap-red); }
.kpi-card--market { border-top: 4px solid var(--hap-green); }

.key-finding-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 60px;
  background: linear-gradient(180deg, rgba(0, 48, 135, 0.025) 0%, transparent 100%);
  pointer-events: none;
  border-radius: var(--card-radius) var(--card-radius) 0 0;
}

.card-title,
.supporting-kicker,
.map-hero-title,
.key-findings-label,
.kpi-label,
.legal-card__category,
.pa-district-head .pa-district-subhead {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--hap-gray-mid);
  margin-bottom: 4px;
  line-height: 1.3;
}

.card h2,
.supporting-panel h2,
.map-hero-headline,
.key-findings-title,
.legal-card__title,
.pa-district-heading {
  font-family: var(--font-serif);
  font-size: clamp(17px, 2.2vw, 22px);
  font-weight: 700;
  color: var(--hap-blue);
  line-height: 1.25;
  margin-bottom: 8px;
}

.card-subtitle,
.supporting-lead,
.map-hero-sub,
.kpi-strip-subline,
.pa-district-subhead,
.exec-summary-dek {
  font-size: 13px;
  color: var(--hap-gray-mid);
  line-height: 1.6;
  margin-bottom: 16px;
}

/* Key findings layout lives in “Key findings — BAN stat cards” + .key-findings-strip overrides (~7910).
   Do not re-define .key-finding-split / .key-finding-value here — later rules were overriding flex layout and misaligning 21 / 29 / $7.95B. */

.key-findings-strip.is-visible {
  animation: strip-enter 0.5s var(--ease-out) both;
}

@keyframes strip-enter {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}

.key-findings-strip.is-visible .key-finding-card {
  animation: strip-enter 0.45s var(--ease-out) both;
}
.key-findings-strip.is-visible .key-finding-card:nth-child(1) { animation-delay: 0.05s; }
.key-findings-strip.is-visible .key-finding-card:nth-child(2) { animation-delay: 0.12s; }
.key-findings-strip.is-visible .key-finding-card:nth-child(3) { animation-delay: 0.19s; }
.key-findings-strip.is-visible .key-finding-card:nth-child(4) { animation-delay: 0.26s; }

.supporting-panel--pa,
.supporting-panel--oversight {
  padding: var(--card-pad);
}

.pa-primary {
  padding: 16px 0 12px;
  border-bottom: 1px solid var(--hap-border);
  margin-bottom: 12px;
}

.pa-primary-value {
  display: flex;
  align-items: baseline;
  gap: 8px;
  line-height: 1;
}

.pa-primary-unit {
  font-size: 18px;
  font-weight: 700;
  color: var(--hap-gray-mid);
  text-transform: lowercase;
  letter-spacing: -0.01em;
}

.pa-primary-sub {
  font-size: 13px;
  color: var(--hap-gray-mid);
  margin-top: 4px;
}

.pa-metrics {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border: 1px solid var(--hap-border);
  border-radius: 6px;
  overflow: hidden;
}

.pa-metric {
  padding: 14px 10px;
  text-align: center;
  border-right: 1px solid var(--hap-border);
  position: relative;
}

.pa-metric:last-child { border-right: none; }
.pa-metric:nth-child(1) { background: var(--hap-blue-light); }
.pa-metric:nth-child(2) { background: var(--hap-red-light); }
.pa-metric:nth-child(3) { background: var(--hap-gold-light); }

.pa-metric-value {
  display: block;
  margin-bottom: 4px;
}

.pa-metric:nth-child(2) .pa-metric-value { color: var(--hap-red); }

.pa-metric-label {
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--hap-gray-mid);
  line-height: 1.3;
}

.pa-metric[data-tooltip] {
  cursor: help;
}

.pa-metric[data-tooltip]::after {
  content: attr(data-tooltip);
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  background: var(--hap-gray-dark);
  color: #fff;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.45;
  padding: 8px 12px;
  border-radius: 6px;
  width: 200px;
  text-align: center;
  text-transform: none;
  letter-spacing: 0;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.18s var(--ease-out), transform 0.18s var(--ease-out);
  transform: translateX(-50%) translateY(4px);
  z-index: 100;
  white-space: normal;
}

.pa-metric[data-tooltip]:hover::after {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

.oversight-hero {
  text-align: center;
  padding: 12px 0 8px;
}

.oversight-ratio {
  color: var(--hap-gold) !important;
  display: block;
  margin-bottom: 4px;
}

.oversight-ratio-copy {
  font-size: 12px;
  font-weight: 600;
  color: var(--hap-gray-mid);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  line-height: 1.4;
}

.oversight-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  border-radius: 6px;
  overflow: hidden;
  border: 1px solid var(--hap-border);
  margin: 10px 0;
}

.oversight-stat {
  padding: 12px;
  text-align: center;
  border-right: 1px solid var(--hap-border);
}

.oversight-stat:last-child {
  border-right: none;
  background: var(--hap-red-light);
}

.oversight-stat:first-child {
  background: var(--hap-blue-light);
}

.oversight-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--hap-gray-mid);
  margin-bottom: 4px;
}

.oversight-stat:last-child .oversight-value { color: var(--hap-red); }

.community-benefit-section,
article#community-benefit {
  padding: var(--card-pad);
}

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

.benefit-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 16px 12px;
  background: var(--hap-blue-light);
  border-radius: 6px;
  border: 1px solid var(--hap-border);
  gap: 8px;
  transition: box-shadow 0.2s ease, transform 0.15s ease;
  cursor: default;
}

.benefit-item:hover {
  box-shadow: 0 6px 20px rgba(0, 48, 135, 0.10), 0 2px 6px rgba(0, 0, 0, 0.06);
  transform: translateY(-1px);
}

.benefit-item-icon svg {
  width: 36px;
  height: 36px;
  stroke: var(--hap-blue);
}

.benefit-item-text {
  font-size: 12px;
  font-weight: 600;
  color: var(--hap-gray-dark);
  line-height: 1.4;
}

.community-benefit-hero {
  background: linear-gradient(180deg, #f5fbff 0%, #eef7ff 100%);
  border: 1px solid rgba(0, 114, 188, 0.16);
  border-radius: var(--card-radius);
  padding: 24px;
  text-align: center;
  color: var(--hap-gray-dark);
  margin-top: 16px;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

.big-stat-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #4b647d;
  margin-bottom: 8px;
}

.big-stat-value {
  color: #0072bc !important;
  display: block;
  margin: 8px 0;
}

.big-stat-desc {
  font-size: 13px;
  color: #355b7c;
  margin-top: 6px;
}

#community-benefit .patient-story-callout {
  background: #ffffff;
  border: 1px solid rgba(0, 114, 188, 0.14);
}

#community-benefit .patient-story-callout blockquote {
  color: #1f3347;
}

#community-benefit .patient-story-callout cite,
#community-benefit .patient-story-callout .story-cta {
  color: #4b647d;
}

.federal-delegation-filter-btn,
.pa-district-toggle,
[class*="map-filter-btn"],
[class*="filter-btn"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 7px 16px;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  border: 1.5px solid var(--hap-border);
  border-radius: 100px;
  background: #fff;
  color: var(--hap-gray-mid);
  cursor: pointer;
  transition: all 0.15s var(--ease-out);
  white-space: nowrap;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}

.federal-delegation-filter-btn:hover,
.pa-district-toggle:hover,
[class*="filter-btn"]:hover {
  border-color: var(--hap-blue);
  color: var(--hap-blue);
  background: var(--hap-blue-ultra);
}

.federal-delegation-filter-btn.is-active,
.pa-district-toggle.is-active,
[class*="filter-btn"].is-active,
.federal-delegation-filter-btn[aria-pressed="true"],
.pa-district-toggle[aria-pressed="true"] {
  background: var(--hap-blue);
  border-color: var(--hap-blue);
  color: #fff;
  box-shadow: 0 2px 8px rgba(0, 48, 135, 0.25);
}

.federal-delegation-filter-btn:active,
.pa-district-toggle:active {
  transform: scale(0.96);
  transition-duration: 0.08s;
}

.ow-section--band-a {
  background: #fafbfd;
}

.ow-section {
  border-top: 1px solid var(--hap-border);
}

.ow-section--band-b {
  background: #fff;
}

.ow-section:first-of-type {
  border-top: none;
}

@media (max-width: 768px) {
  .pa-metrics,
  .oversight-split {
    grid-template-columns: 1fr;
  }

  .pa-metric,
  .oversight-stat {
    border-right: none;
    border-bottom: 1px solid var(--hap-border);
  }

  .pa-metric:last-child,
  .oversight-stat:last-child {
    border-bottom: none;
  }

  /* Let .key-findings-grid / .benefit-grid follow their dedicated breakpoints (avoid 2-col squeeze 481–560px) */

  .supporting-executive-grid {
    grid-template-columns: 1fr;
  }

  :root {
    --card-pad: 16px;
    --card-radius: 8px;
  }
}

@media (max-width: 480px) {
  .key-findings-grid,
  .benefit-grid {
    grid-template-columns: 1fr;
  }
}

@media print {
  .pa-metric,
  .oversight-stat,
  .community-benefit-hero,
  .legal-card__ribbon,
  .legal-state-badge,
  .doc-header,
  .leave-behind-stat-card,
  .leave-behind-page__header {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .scroll-reveal {
    opacity: 1 !important;
    transform: none !important;
  }

  .supporting-panel:hover,
  .key-finding-card:hover,
  .pa-metric:hover {
    transform: none;
    box-shadow: var(--card-shadow);
  }

  .pa-metric[data-tooltip]::after {
    display: none;
  }
}

/* ========== HAP go-live branding refresh (Mar 2026) ========== */
:root {
  /* Canonical HAP palette from brand documents */
  --hap-brand-primary: #0072bc;
  --hap-brand-primary-hover: #005a94;
  --hap-accent-warm: #fbb040;
  --hap-brand-soft: #8ed8f8;
  --hap-complimentary-green: #3a8b7f;
  --hap-complimentary-slate: #6d8b8c;
  --hap-complimentary-mist: #d3d9d4;
  --hap-ink: #231f20;
  --hap-surface: var(--hap-surface-subtle, #ebebef);
}

/* Shells without .dashboard (e.g. print host) keep legacy Tahoma + cool wash */
body:not(:has(> .dashboard)) {
  font-family: Tahoma, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  color: var(--hap-ink);
  background: linear-gradient(180deg, #f8fbff 0%, #f3f9fe 45%, #f8fbff 100%);
}

/* 340B/BASIC: calmer chrome + HIG-like cards (scoped; page veil stays from earlier .dashboard::before) */
.dashboard .dashboard-header--suite {
  background: rgba(255, 255, 255, 0.92);
  border-bottom: 1px solid var(--hap-separator);
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.03);
}

.dashboard .dashboard-header--suite .hap-header {
  background: transparent;
  border-bottom: 1px solid var(--hap-separator);
}

.dashboard .dashboard-header--suite .hap-header-org {
  color: var(--hap-label-secondary, #424245);
}

.dashboard .dashboard-header--suite .hap-header-title {
  color: var(--hap-brand-deep, #003087);
  font-family: var(--hap-font-display);
}

.dashboard .dashboard-header--suite .hap-header-badge {
  background: rgba(0, 114, 188, 0.08);
  border: 1px solid rgba(0, 114, 188, 0.2);
  color: var(--hap-brand-primary);
}

.dashboard .dashboard-header--suite .dashboard-nav--suite {
  background: rgba(255, 255, 255, 0.88);
  border-bottom: 1px solid var(--hap-separator);
}

.dashboard .dashboard-header--suite .dashboard-nav--suite a {
  color: var(--hap-label-secondary, #424245);
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

.dashboard .dashboard-header--suite .dashboard-nav--suite a:hover {
  color: var(--hap-brand-primary);
  background: rgba(0, 114, 188, 0.08);
}

.dashboard .dashboard-header--suite .dashboard-nav--suite a.active {
  color: var(--hap-brand-deep, #003087);
  background: rgba(0, 114, 188, 0.1);
}

.dashboard .hap-sidebar {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(245, 245, 247, 0.96) 100%);
  border-right: 1px solid var(--hap-separator);
}

.dashboard .hap-sidebar-nav a {
  color: var(--hap-label-secondary, #424245);
}

.dashboard .hap-sidebar-nav a.active,
.dashboard .hap-sidebar-nav a[aria-current="page"] {
  color: var(--hap-brand-primary);
  background: rgba(0, 114, 188, 0.1);
}

.dashboard .card,
.dashboard .key-finding-card,
.dashboard .exec-summary-card,
.dashboard .policy-triad-card,
.dashboard .map-hero-card,
.dashboard .state-laws-list-card,
.dashboard .methodology-section-wrap,
.dashboard .counterarguments-card,
.dashboard .pa-bill-card-root > *,
.dashboard .federal-delegation-card {
  background: var(--hap-surface-raised, #fff);
  border: 1px solid var(--hap-separator);
  box-shadow: var(--hap-ui-card-shadow, var(--hap-shadow-sm));
}

/* Page tools: sit on the same visual plane as the page wash — not a floating white card */
.dashboard .utility-toolbar {
  background: transparent;
  border: none;
  box-shadow: none;
  border-radius: 0;
  padding-top: var(--space-4);
  padding-bottom: var(--space-4);
  margin-bottom: var(--space-2);
  border-bottom: 1px solid rgba(60, 60, 67, 0.08);
}

.dashboard .utility-toolbar-text {
  color: var(--hap-label-tertiary, var(--text-muted));
  letter-spacing: 0.06em;
}

.dashboard .utility-toolbar .utility-btn:not(.utility-btn--primary) {
  background: rgba(255, 255, 255, 0.45);
  border-color: rgba(60, 60, 67, 0.1);
}

.dashboard .utility-toolbar .utility-btn:not(.utility-btn--primary):hover {
  background: rgba(255, 255, 255, 0.78);
  border-color: rgba(0, 114, 188, 0.2);
}

.dashboard .card:hover,
.dashboard .key-finding-card:hover,
.dashboard .exec-summary-card:hover,
.dashboard .policy-triad-card:hover,
.dashboard .map-hero-card:hover {
  box-shadow: var(--hap-ui-card-shadow-hover, var(--hap-shadow-md));
}

.dashboard .ow-section--band-a {
  background: rgba(255, 255, 255, 0.78);
}

.dashboard .ow-section--band-b {
  background: var(--hap-surface-subtle, #ebebef);
}

.dashboard .ow-section--band-hap {
  background: var(--ow-band-hap);
}

.dashboard .utility-btn,
.dashboard .footer-pill {
  min-height: 44px;
}

.dashboard .utility-btn--primary,
.dashboard .hap-btn-primary,
.dashboard .footer-pill--primary {
  background: linear-gradient(135deg, #0072bc 0%, #1690d5 100%);
  border-color: rgba(0, 114, 188, 0.26);
}

.dashboard .utility-btn--primary:hover,
.dashboard .hap-btn-primary:hover,
.dashboard .footer-pill--primary:hover {
  filter: brightness(1.04);
}

.dashboard .site-footer {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  background: var(--hap-surface-subtle, #ebebef);
  border-top: 1px solid var(--hap-separator);
}
.dashboard .footer-address {
  margin: 0.45rem 0 0;
  color: var(--hap-label-secondary, #424245);
  font-size: 0.86rem;
}
.dashboard .footer-links {
  margin: 0.4rem 0 0;
  display: flex;
  gap: 0.45rem;
  flex-wrap: wrap;
  align-items: center;
  color: var(--hap-label-tertiary, #64748b);
  font-size: 0.82rem;
}
.dashboard .footer-links a {
  color: var(--hap-brand-primary);
}
.dashboard .go-live-checklist {
  margin-top: 0.7rem;
  padding: 0.75rem 0.9rem;
  border: 1px solid var(--hap-separator);
  border-radius: 10px;
  background: var(--hap-surface-raised, #fff);
}
.dashboard .go-live-checklist summary {
  cursor: pointer;
  font-weight: 700;
  color: var(--hap-label-primary, #1a1a1a);
}
.dashboard .go-live-checklist ul {
  margin: 0.55rem 0 0;
  padding-left: 1.1rem;
}
.dashboard .go-live-checklist li {
  margin: 0.25rem 0;
  color: var(--hap-label-secondary, #424245);
}

/* Community benefit: service icons scaled for scan at a glance (1.5× prior 66×33 lock). */
#community-benefit .benefit-item-icon {
  width: 99px !important;
  height: 99px !important;
}

#community-benefit .benefit-item-icon svg {
  width: 50px !important;
  height: 50px !important;
}

/* Raster icons fill the enlarged tile (object-fit from earlier rules). */
#community-benefit .benefit-item-icon--photo img,
#community-benefit .benefit-item-icon--dental img {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: contain !important;
}

/* ========== Small phones (iPhone / ≤430px) — tighter rhythm, same single-layer padding ========== */
@media (max-width: 430px) {
  .dashboard {
    --dash-section-y: var(--space-5);
    --dash-card-pad: var(--space-4);
    --dash-grid-gap: var(--space-3);
  }
  .dashboard-inner {
    padding-left: max(0.875rem, env(safe-area-inset-left, 0px));
    padding-right: max(0.875rem, env(safe-area-inset-right, 0px));
  }

  /* main: ZERO side padding (dashboard-inner is the only inset). Vertical only. */
  .dashboard main {
    padding-left: 0;
    padding-right: 0;
    padding-top: var(--space-4);
    padding-bottom: max(var(--dash-main-pad-y-end, var(--space-10)), calc(env(safe-area-inset-bottom, 0px) + 2.5rem));
  }

  .ow-section {
    margin-bottom: var(--space-3);
  }

  .utility-toolbar {
    padding-top: var(--space-3);
    padding-bottom: var(--space-2);
  }

  .utility-toolbar-actions {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }

  .utility-toolbar-actions > .utility-btn,
  .utility-toolbar-actions > .utility-share-wrap {
    width: 100%;
    max-width: none;
  }

  .utility-share-wrap {
    align-items: stretch;
  }

  .utility-share-wrap > .utility-btn {
    width: 100%;
    justify-content: center;
  }

  .share-drawer {
    left: 0;
    right: 0;
    width: auto;
    min-width: 0;
    box-sizing: border-box;
  }

  .map-hero-card {
    padding: var(--space-4) var(--space-3);
  }

  .map-hero-headline {
    font-size: clamp(1.08rem, 5.2vw, 1.28rem);
  }

  .map-how-to-use {
    font-size: var(--text-xs);
  }

  .card:not(.pa-impact-mode-card--flagship) {
    padding: var(--space-4);
  }

  .key-findings-strip {
    padding: var(--space-4);
  }

  .key-finding-card {
    padding: var(--space-3);
  }

  .key-finding-value.ban-stat {
    white-space: normal;
    overflow-wrap: anywhere;
    font-size: clamp(1.65rem, 8.5vw, 2.35rem);
    line-height: 1.05;
  }

  .key-finding-split .key-finding-value {
    white-space: normal;
    overflow-wrap: anywhere;
    font-size: clamp(1.45rem, 7vw, 2rem);
  }

  .exec-summary-mega__value,
  .hero-kpi-banner .exec-summary-mega__value {
    white-space: normal;
    overflow-wrap: anywhere;
    font-size: clamp(1.5rem, 7vw, 2.1rem);
  }

  .hero-kpi-banner .exec-summary-mega__split .exec-summary-mega__value {
    white-space: normal;
    overflow-wrap: anywhere;
    font-size: clamp(1.35rem, 6.2vw, 1.85rem);
  }

  .kpi-strip {
    padding: var(--space-8) var(--space-3) var(--space-6);
    border-radius: 12px;
  }

  .kpi-strip.kpi-strip--mark11 {
    padding: var(--space-4) var(--space-3) var(--space-5);
  }

  .kpi-card {
    padding: var(--space-4) var(--space-3);
  }

  #community-benefit {
    padding: var(--space-4) var(--space-3);
  }

  .community-benefit-hero {
    padding: var(--space-5) var(--space-3);
  }

  #community-benefit .benefit-item-icon {
    width: 72px !important;
    height: 72px !important;
  }

  #community-benefit .benefit-item-icon svg {
    width: 36px !important;
    height: 36px !important;
  }

  .benefit-item {
    padding: var(--space-3);
    gap: var(--space-2);
  }

  .pa-impact-mode-card:not(.pa-impact-mode-card--flagship) {
    padding: var(--space-4) var(--space-3);
  }

  .pa-impact-narrative-block,
  .pa-impact-stakes {
    padding: var(--space-4) var(--space-3);
  }

  .impact-simulator-card {
    padding: var(--space-4) var(--space-3);
  }

  .impact-narrative {
    padding: var(--space-4) var(--space-3);
  }

  .impact-result-card {
    padding: var(--space-4) var(--space-3);
  }

  .impact-simulator-headline {
    font-size: clamp(1.15rem, 5.5vw, 1.45rem);
  }

  .glossary-dl {
    grid-template-columns: 1fr;
  }

  .glossary-dl dt:not(:first-child) {
    margin-top: var(--space-3);
  }

  .site-footer {
    padding-bottom: max(var(--space-6), env(safe-area-inset-bottom, 0px));
  }

  .us-map-wrap {
    border-radius: var(--radius-sm);
  }

  .selection-summary {
    padding: var(--space-3);
  }

  .hero-kpi-banner {
    padding: var(--space-3) var(--space-3) var(--space-4);
  }

  .hap-position-flagship {
    padding: var(--space-5) var(--space-3);
  }

  .kpi-pa-tooltip-panel {
    left: auto;
    right: 0;
    width: min(300px, calc(100dvw - 1.5rem));
    width: min(300px, calc(100svw - 1.5rem));
  }

  .supporting-shell {
    max-width: 100%;
    padding: 0.75rem;
  }
}

/* ========== Executive advocacy refresh: PA hero, eyebrows, oversight pair, key findings, motion, maps ========== */
.hap-section-eyebrow {
  font-family: var(--hap-font-sans, Tahoma, sans-serif);
  font-size: var(--hap-type-eyebrow, 0.6875rem);
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--hap-text-muted, #64748b);
  margin: 0 0 var(--hap-space-2, 0.5rem);
  line-height: 1.35;
}

.hap-section-eyebrow--on-light {
  color: #4a5568;
}

.hap-section-eyebrow--hap-card {
  color: rgba(255, 255, 255, 0.88);
}

.ow-section--band-pa-hero {
  background: linear-gradient(180deg, var(--hap-ow-soft, #8ed8f8) 0%, rgba(142, 216, 248, 0.35) 100%);
  border-radius: var(--hap-radius-lg, 16px);
  padding: var(--hap-space-6, 1.5rem) var(--hap-space-5, 1.25rem);
  border: 1px solid rgba(0, 114, 188, 0.12);
  box-shadow: var(--hap-shadow-xs, 0 1px 2px rgba(0, 0, 0, 0.04));
}

/* Start here — plain 340B + patient voice (focus-group: cold visitors) */
.dashboard-welcome {
  display: flex;
  flex-direction: column;
  gap: var(--hap-space-5, 1.25rem);
  border-radius: var(--hap-radius-lg, 16px);
  padding: var(--hap-space-6, 1.5rem) var(--hap-space-5, 1.25rem);
  border: 1px solid var(--hap-border-default, rgba(0, 0, 0, 0.06));
}

.dashboard-welcome__head {
  max-width: 52rem;
}

.dashboard-welcome__title {
  font-family: var(--hap-font-sans, Tahoma, sans-serif);
  font-size: clamp(1.35rem, 1.1rem + 1.2vw, 1.75rem);
  font-weight: 800;
  line-height: 1.2;
  color: var(--hap-brand-deep, #003087);
  margin: 0 0 var(--hap-space-2, 0.5rem);
}

.dashboard-welcome__lead {
  font-size: var(--hap-type-body, 1rem);
  line-height: var(--hap-leading-body, 1.55);
  color: var(--hap-text-secondary, #424245);
  margin: 0;
  max-width: 65ch;
}

.dashboard-welcome__patient-quote {
  margin: 0;
  padding: var(--hap-space-4, 1rem) var(--hap-space-5, 1.25rem);
  border-left: 4px solid var(--hap-topic-access-border, rgba(0, 114, 188, 0.35));
  background: var(--hap-topic-access-muted, rgba(0, 114, 188, 0.06));
  border-radius: 0 var(--hap-radius-md, 12px) var(--hap-radius-md, 12px) 0;
}

.dashboard-welcome__patient-quote p {
  margin: 0 0 var(--hap-space-2, 0.5rem);
  font-size: var(--hap-type-body, 1rem);
  line-height: var(--hap-leading-body, 1.55);
  color: var(--hap-text, #1d1d1f);
}

.dashboard-welcome__patient-quote cite {
  font-size: var(--hap-type-small, 0.875rem);
  font-style: normal;
  color: var(--hap-text-muted, #64748b);
}

.dashboard-welcome__why {
  margin: 0;
  font-size: var(--hap-type-small, 0.875rem);
  line-height: 1.5;
  color: var(--hap-label-secondary, #424245);
  max-width: 65ch;
}

.dashboard-welcome__next {
  display: flex;
  flex-wrap: wrap;
  gap: var(--hap-space-3, 0.75rem);
  align-items: center;
}

.dashboard-welcome__next .footer-pill {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.pa-bill-committee-public-note {
  margin: 0 0 var(--hap-space-4, 1rem);
  font-size: var(--hap-type-small, 0.875rem);
  line-height: 1.5;
  color: var(--hap-text-muted, #64748b);
  max-width: 65ch;
}

.hap-independent-reviews {
  margin-top: var(--hap-space-5, 1.25rem);
  padding: var(--hap-space-4, 1rem);
  border-radius: var(--hap-radius-md, 12px);
  border: 1px solid var(--hap-border-default, rgba(0, 0, 0, 0.08));
  background: var(--hap-surface-subtle, #f8fafc);
}

.hap-independent-reviews__summary {
  font-weight: 600;
  color: var(--hap-brand-deep, #003087);
  cursor: pointer;
}

.hap-independent-reviews__body p {
  margin: var(--hap-space-3, 0.75rem) 0 0;
  font-size: var(--hap-type-small, 0.875rem);
  line-height: 1.55;
  color: var(--hap-text-secondary, #424245);
}

.hap-independent-reviews__list {
  margin: var(--hap-space-3, 0.75rem) 0 0;
  padding-left: 1.25rem;
  font-size: var(--hap-type-small, 0.875rem);
  line-height: 1.55;
  color: var(--hap-text-secondary, #424245);
}

.hap-independent-reviews__list a {
  color: var(--hap-brand-primary, #0072bc);
}

.dashboard-feedback-log {
  margin-top: var(--hap-space-4, 1rem);
  max-width: 52rem;
  margin-left: auto;
  margin-right: auto;
}

.dashboard-feedback-log__lede {
  margin: var(--hap-space-3, 0.75rem) 0 0;
  font-size: var(--hap-type-small, 0.875rem);
  line-height: 1.55;
  color: var(--hap-text-secondary, #424245);
}

.dashboard-feedback-log ul {
  margin: var(--hap-space-3, 0.75rem) 0 0;
  padding-left: 1.25rem;
  font-size: var(--hap-type-small, 0.875rem);
  line-height: 1.55;
  color: var(--hap-text-secondary, #424245);
}

.pa-operating-stakes-hero {
  display: flex;
  flex-direction: column;
  gap: var(--hap-space-5, 1.25rem);
}

.pa-stakes-hero-head {
  max-width: 52rem;
}

.pa-stakes-hero-title {
  font-family: var(--hap-font-sans, Tahoma, sans-serif);
  font-size: clamp(1.35rem, 1.1rem + 1.2vw, 1.85rem);
  font-weight: 800;
  line-height: 1.2;
  color: var(--hap-brand-deep, #003087);
  margin: 0 0 var(--hap-space-2, 0.5rem);
}

.pa-stakes-hero-dek {
  font-size: var(--hap-type-small, 0.875rem);
  color: var(--hap-label-secondary, var(--hap-text-secondary, #424245));
  line-height: var(--hap-leading-dek, 1.52);
  margin: 0;
  max-width: 44rem;
}

.supporting-panel--pa-hero {
  background: var(--hap-surface-raised, var(--hap-bg-card, #fff));
  border-radius: var(--hap-radius-md, 12px);
  padding: var(--hap-space-5, 1.25rem);
  box-shadow: var(--hap-shadow-xs, 0 1px 2px rgba(0, 0, 0, 0.04));
  border: 1px solid var(--hap-border-default, rgba(0, 0, 0, 0.06));
}

/* PA hero: icon left of headline numbers (72 + metric row) */
.supporting-panel--pa-hero .pa-primary {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  text-align: left;
}

.supporting-panel--pa-hero .pa-primary-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: clamp(0.65rem, 2.2vw, 1.15rem);
  width: 100%;
  justify-content: flex-start;
}

.supporting-panel--pa-hero .pa-primary-copy {
  flex: 1;
  min-width: 0;
  text-align: left;
}

.supporting-panel--pa-hero .pa-primary-value {
  justify-content: flex-start;
  flex-wrap: wrap;
  width: 100%;
  margin: 0;
}

.supporting-panel--pa-hero .pa-primary-sub {
  text-align: left;
  width: 100%;
  max-width: 28rem;
  margin: 0.35rem 0 0;
}

.supporting-section--executive-single .supporting-executive-grid--single {
  grid-template-columns: 1fr;
  max-width: 44rem;
}

.supporting-section--executive-single .section-subhead--supporting {
  font-size: clamp(1.2rem, 1rem + 0.6vw, 1.5rem);
  margin-top: 0.25rem;
}

.supporting-section-dek {
  font-size: var(--hap-type-small, 0.875rem);
  color: var(--hap-label-secondary, var(--hap-text-secondary, #424245));
  margin: 0 0 var(--hap-space-4, 1rem);
  line-height: var(--hap-leading-dek, 1.52);
  max-width: 40rem;
}

.supporting-list--compact {
  margin: 0;
  padding-left: 1.25rem;
}

/* —— Who depends on 340B: liquid-glass rows + gradient SVG icons (340B + BASIC) —— */
.supporting-panel--depend-340b {
  max-width: 44rem;
  padding: clamp(0.7rem, 1.35vw, 0.95rem) clamp(0.8rem, 1.5vw, 1.05rem);
  border-radius: calc(var(--hap-ui-card-radius-lg, 18px) + 2px);
  background: linear-gradient(
    155deg,
    rgba(255, 255, 255, 0.78) 0%,
    rgba(255, 255, 255, 0.42) 42%,
    rgba(245, 247, 250, 0.58) 100%
  );
  border: 1px solid rgba(255, 255, 255, 0.82);
  box-shadow:
    0 4px 28px rgba(0, 114, 188, 0.075),
    0 1px 3px rgba(0, 0, 0, 0.04),
    inset 0 1px 0 rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(26px) saturate(185%);
  -webkit-backdrop-filter: blur(26px) saturate(185%);
}

.supporting-section--executive-single .supporting-section-dek {
  margin-bottom: 0.6rem;
}

.depend-340b-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.depend-340b-row {
  display: flex;
  align-items: center;
  gap: 0.8rem 0.95rem;
  min-height: 3.1rem;
  padding: 0.45rem 0.6rem 0.45rem 0.45rem;
  border-radius: var(--hap-ui-card-radius, 14px);
  background: linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.62) 0%,
    rgba(255, 255, 255, 0.3) 100%
  );
  border: 1px solid rgba(255, 255, 255, 0.72);
  box-shadow:
    0 2px 14px rgba(0, 114, 188, 0.055),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  transition:
    transform var(--hap-duration-normal, 0.22s) var(--hap-ease-out, cubic-bezier(0, 0, 0.2, 1)),
    box-shadow var(--hap-duration-normal, 0.22s) var(--hap-ease-out, cubic-bezier(0, 0, 0.2, 1)),
    border-color var(--hap-duration-fast, 0.15s) ease;
}

@media (hover: hover) and (pointer: fine) {
  .depend-340b-row:hover {
    border-color: rgba(0, 114, 188, 0.24);
    box-shadow:
      0 8px 26px rgba(0, 114, 188, 0.09),
      inset 0 1px 0 rgba(255, 255, 255, 0.98);
    transform: translateY(-1px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .depend-340b-row {
    transition: none;
  }

  .depend-340b-row:hover {
    transform: none;
  }
}

@media (prefers-reduced-transparency: reduce) {
  .supporting-panel--depend-340b,
  .depend-340b-row {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .supporting-panel--depend-340b {
    background: var(--hap-surface-raised, #fff);
    border-color: var(--hap-separator);
  }

  .depend-340b-row {
    background: var(--hap-bg-card, #fff);
    border-color: var(--hap-separator);
  }
}

.depend-340b-glass-icon {
  flex-shrink: 0;
  width: 50px;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 13px;
  background: linear-gradient(
    165deg,
    rgba(255, 255, 255, 0.95) 0%,
    rgba(255, 255, 255, 0.5) 38%,
    rgba(236, 248, 255, 0.4) 100%
  );
  border: 1px solid rgba(255, 255, 255, 0.88);
  box-shadow:
    0 2px 10px rgba(0, 114, 188, 0.1),
    0 1px 2px rgba(0, 0, 0, 0.05),
    inset 0 1px 1px rgba(255, 255, 255, 0.98),
    inset 0 -2px 6px rgba(0, 114, 188, 0.06);
}

.depend-340b-glass-icon--spec {
  box-shadow:
    0 2px 12px rgba(0, 114, 188, 0.14),
    inset 0 1px 1px rgba(255, 255, 255, 0.98),
    inset 0 -2px 6px rgba(0, 114, 188, 0.07);
}

.depend-340b-glass-icon--rural {
  box-shadow:
    0 2px 12px rgba(0, 169, 164, 0.14),
    inset 0 1px 1px rgba(255, 255, 255, 0.98),
    inset 0 -2px 6px rgba(0, 169, 164, 0.08);
}

.depend-340b-glass-icon--fqhc {
  box-shadow:
    0 2px 12px rgba(0, 174, 239, 0.14),
    inset 0 1px 1px rgba(255, 255, 255, 0.98),
    inset 0 -2px 6px rgba(0, 114, 188, 0.07);
}

.depend-340b-svg {
  width: 27px;
  height: 27px;
  display: block;
}

.depend-340b-label {
  font-size: clamp(0.875rem, 0.8rem + 0.35vw, 0.9375rem);
  font-weight: 600;
  line-height: 1.33;
  color: var(--hap-label-primary, var(--text));
  letter-spacing: -0.018em;
}

.card .depend-340b-dek {
  margin: 0 0 0.6rem;
  font-size: var(--text-sm);
  color: var(--text-secondary);
  line-height: 1.5;
}

.card .depend-340b-list {
  margin-top: 0;
}

@media (max-width: 520px) {
  .depend-340b-row {
    padding: 0.4rem 0.5rem 0.4rem 0.4rem;
    gap: 0.65rem;
  }

  .depend-340b-glass-icon {
    width: 46px;
    height: 46px;
    border-radius: 12px;
  }

  .depend-340b-svg {
    width: 25px;
    height: 25px;
  }
}

@media print {
  .supporting-panel--depend-340b,
  .depend-340b-row {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    background: #fff !important;
    border: 1px solid var(--print-border, #d2d2d7) !important;
    box-shadow: none !important;
  }

  .depend-340b-glass-icon {
    box-shadow: none !important;
    border: 1px solid #e5e5ea !important;
    background: #fafafa !important;
  }

  .depend-340b-row {
    break-inside: avoid;
  }
}

.key-findings-dek {
  font-size: var(--hap-type-small, 0.875rem);
  color: #435366;
  line-height: 1.45;
  margin: 0.35rem 0 0;
  max-width: 44rem;
}

.key-findings-strip .key-finding-label--after {
  margin-top: 0.4rem;
  margin-bottom: 0.15rem;
  order: unset;
}

.key-findings-strip .key-finding-card--policy {
  border-top-color: var(--hap-brand-primary, #0072bc);
}

.ban-stat--accent-warm {
  color: var(--hap-accent-warm, #fbb040) !important;
}

.executive-proof-strip--oversight-audit.ow-section--band-b {
  background: rgba(0, 114, 188, 0.06);
  border-radius: var(--hap-radius-lg, 16px);
  padding: var(--hap-space-6, 1.5rem);
  border: 1px solid rgba(0, 114, 188, 0.1);
}

.executive-proof-strip--oversight-audit {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media (max-width: 900px) {
  .executive-proof-strip--oversight-audit {
    grid-template-columns: 1fr;
  }
}

.executive-proof-strip--oversight-audit > .executive-proof-card--audits {
  grid-column: 1 / -1;
}

.oversight-audit-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--hap-space-6, 1.5rem);
  align-items: end;
  margin-bottom: var(--hap-space-3, 0.75rem);
}

.oversight-audit-stat {
  text-align: center;
  padding: var(--hap-space-4, 1rem);
  background: var(--hap-bg-card, #fff);
  border-radius: var(--hap-radius-md, 12px);
  border: 1px solid rgba(0, 114, 188, 0.12);
}

.oversight-audit-value {
  font-family: var(--font-mono, ui-monospace, monospace);
  font-size: clamp(2.5rem, 6vw, 3.75rem);
  font-weight: 800;
  line-height: 1;
  margin: 0;
  color: var(--hap-brand-primary, #0072bc);
  font-variant-numeric: tabular-nums;
}

.oversight-audit-value--mfg {
  color: var(--hap-topic-finance, #00a9a4);
}

.oversight-audit-label {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--hap-text-secondary, #424245);
  margin: 0.5rem 0 0;
  line-height: 1.3;
}

.map-hero-dek {
  font-size: var(--hap-type-small, 0.875rem);
  color: var(--hap-label-secondary, #3d4f63);
  margin: 0.35rem 0 0.5rem;
  line-height: var(--hap-leading-dek, 1.52);
  max-width: 40rem;
}

.hap-card-interactive {
  transition: transform 0.35s var(--hap-spring-hover, cubic-bezier(0.34, 1.45, 0.64, 1)),
    box-shadow 0.3s ease,
    border-color 0.2s ease;
}

@media (hover: hover) and (pointer: fine) {
  .hap-card-interactive:hover {
    transform: translateY(-2px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .hap-card-interactive,
  .hap-card-interactive:hover {
    transition: border-color 0.2s ease;
    transform: none;
  }
}

#us-map svg,
.us-map-wrap svg,
.pa-district-svg,
#pa-district-map svg {
  overflow: visible;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

/* PA operating stakes — glass icons (gradients match metric number colors: primary / finance teal / hap-red) */
.pa-stakes-glass-icon {
  flex-shrink: 0;
  width: 50px;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 13px;
  background: linear-gradient(158deg, rgba(255, 255, 255, 0.98) 0%, rgba(255, 255, 255, 0.52) 42%, rgba(236, 248, 255, 0.4) 100%);
  border: 1px solid rgba(255, 255, 255, 0.92);
  box-shadow:
    0 3px 14px rgba(0, 114, 188, 0.11),
    0 1px 0 rgba(255, 255, 255, 0.65) inset,
    inset 0 2px 3px rgba(255, 255, 255, 1),
    inset 0 -3px 10px rgba(0, 114, 188, 0.07);
}

.pa-stakes-glass-icon--hospitals {
  box-shadow:
    0 4px 18px rgba(0, 114, 188, 0.16),
    0 1px 0 rgba(255, 255, 255, 0.7) inset,
    inset 0 2px 3px rgba(255, 255, 255, 1),
    inset 0 -3px 10px rgba(0, 114, 188, 0.08);
}

.pa-stakes-glass-icon--rural {
  box-shadow:
    0 4px 16px rgba(15, 118, 110, 0.14),
    0 1px 0 rgba(255, 255, 255, 0.7) inset,
    inset 0 2px 3px rgba(255, 255, 255, 1),
    inset 0 -3px 10px rgba(15, 118, 110, 0.08);
}

.pa-stakes-glass-icon--loss {
  box-shadow:
    0 4px 18px rgba(192, 57, 43, 0.2),
    0 1px 0 rgba(255, 255, 255, 0.72) inset,
    inset 0 2px 3px rgba(255, 255, 255, 1),
    inset 0 -3px 10px rgba(192, 57, 43, 0.1);
}

.pa-stakes-glass-icon--ld {
  box-shadow:
    0 4px 16px rgba(15, 118, 110, 0.14),
    0 1px 0 rgba(255, 255, 255, 0.7) inset,
    inset 0 2px 3px rgba(255, 255, 255, 1),
    inset 0 -3px 10px rgba(15, 118, 110, 0.07);
}

.pa-stakes-svg {
  width: 28px;
  height: 28px;
  display: block;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

.pa-stakes-svg--40 {
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.07));
}

.dashboard .pa-stakes-glass-icon--hospitals .pa-stakes-svg :is(rect, path) {
  stroke: url(#hap-igrad-access);
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.dashboard .pa-stakes-glass-icon--hospitals .pa-stakes-svg rect {
  fill: url(#hap-igrad-access);
  fill-opacity: 0.17;
}

.dashboard .pa-stakes-glass-icon--hospitals .pa-stakes-svg path {
  fill: none;
  stroke-width: 1.85;
}

.dashboard .pa-stakes-glass-icon--rural .pa-stakes-svg circle {
  stroke: url(#hap-igrad-finance);
  fill: url(#hap-igrad-finance);
  fill-opacity: 0.26;
  stroke-width: 1.5;
}

.dashboard .pa-stakes-glass-icon--rural .pa-stakes-svg path:nth-of-type(1) {
  stroke: url(#hap-igrad-finance);
  fill: url(#hap-igrad-finance);
  fill-opacity: 0.18;
  stroke-width: 1.5;
  stroke-linejoin: round;
}

.dashboard .pa-stakes-glass-icon--rural .pa-stakes-svg path:nth-of-type(2) {
  stroke: url(#hap-igrad-finance);
  fill: none;
  stroke-width: 1.75;
  stroke-linecap: round;
}

.dashboard .pa-stakes-glass-icon--loss .pa-stakes-svg rect {
  fill: url(#hap-igrad-pa-loss-red);
  fill-opacity: 0.4;
  stroke: url(#hap-igrad-pa-loss-red);
  stroke-width: 1.4;
}

.dashboard .pa-stakes-glass-icon--loss .pa-stakes-svg path {
  stroke: url(#hap-igrad-pa-loss-red);
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.dashboard .pa-stakes-glass-icon--ld .pa-stakes-svg circle {
  stroke: url(#hap-igrad-finance);
  fill: url(#hap-igrad-finance);
  fill-opacity: 0.3;
  stroke-width: 1.55;
}

.dashboard .pa-stakes-glass-icon--ld .pa-stakes-svg ellipse {
  stroke: url(#hap-igrad-finance);
  fill: url(#hap-igrad-finance);
  fill-opacity: 0.14;
  stroke-width: 1.55;
}

.dashboard .pa-stakes-glass-icon--ld .pa-stakes-svg path {
  stroke: url(#hap-igrad-finance);
  fill: none;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.supporting-panel--pa-hero .pa-primary-icon-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 0;
  flex-shrink: 0;
}

.supporting-panel--pa-hero .pa-stakes-glass-icon--hospitals {
  width: 68px;
  height: 68px;
  border-radius: 16px;
}

.supporting-panel--pa-hero .pa-stakes-glass-icon--hospitals .pa-stakes-svg {
  width: 40px;
  height: 40px;
}

.supporting-panel--pa-hero .pa-metrics--hero .pa-stakes-glass-icon {
  width: 60px;
  height: 60px;
  border-radius: 15px;
}

.supporting-panel--pa-hero .pa-metrics--hero .pa-stakes-svg {
  width: 36px;
  height: 36px;
}

.supporting-panel--pa-hero .pa-metrics--hero {
  margin-top: 0.85rem;
  gap: 0.65rem !important;
  border: none !important;
  border-radius: 0;
  overflow: visible;
  background: transparent;
}

.supporting-panel--pa-hero .pa-metrics--hero .pa-metric-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.6rem;
  width: 100%;
  justify-content: flex-start;
}

.supporting-panel--pa-hero .pa-metrics--hero .pa-metric-copy {
  flex: 1;
  min-width: 0;
  text-align: left;
}

.supporting-panel--pa-hero .pa-metrics--hero .pa-metric-copy .pa-metric-value {
  margin: 0;
}

.supporting-panel--pa-hero .pa-metrics--hero .pa-metric-copy .pa-metric-label {
  margin: 0.2rem 0 0;
  max-width: none;
}

.supporting-panel--pa-hero .pa-metrics--hero .pa-metric {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  text-align: left;
  gap: 0;
  padding: 0.75rem 0.65rem;
  border: 1px solid var(--hap-separator, rgba(60, 60, 67, 0.12)) !important;
  border-radius: var(--hap-radius-md, 12px);
  border-right: 1px solid var(--hap-separator, rgba(60, 60, 67, 0.12)) !important;
  background: linear-gradient(165deg, rgba(255, 255, 255, 0.94) 0%, rgba(248, 250, 252, 0.88) 100%) !important;
  box-shadow: var(--hap-shadow-xs, 0 1px 2px rgba(0, 0, 0, 0.04));
}

.supporting-panel--pa-hero .pa-metrics--hero .pa-metric:nth-child(1),
.supporting-panel--pa-hero .pa-metrics--hero .pa-metric:nth-child(2),
.supporting-panel--pa-hero .pa-metrics--hero .pa-metric:nth-child(3) {
  background: linear-gradient(165deg, rgba(255, 255, 255, 0.94) 0%, rgba(248, 250, 252, 0.88) 100%) !important;
}

.supporting-panel--pa-hero .pa-metrics--hero .pa-metric-label {
  max-width: 13rem;
}

@media (max-width: 768px) {
  .supporting-panel--pa-hero .pa-metrics--hero .pa-metric {
    border-right: none !important;
  }
}

.dashboard .stat-block--pa-stakes {
  gap: 0.65rem;
}

.dashboard .stat.stat--pa-stakes {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  text-align: left;
  gap: 0;
  padding-top: 0.65rem;
}

.dashboard .stat.stat--pa-stakes .pa-metric-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.55rem;
  width: 100%;
  justify-content: flex-start;
}

.dashboard .stat.stat--pa-stakes .pa-metric-copy {
  flex: 1;
  min-width: 0;
  text-align: left;
}

.dashboard .stat.stat--pa-stakes .pa-metric-copy .stat-value {
  margin: 0;
  display: block;
}

.dashboard .stat.stat--pa-stakes .pa-metric-copy .stat-label {
  margin: 0.2rem 0 0;
  text-align: left;
}

.dashboard .stat.stat--pa-stakes .pa-stakes-glass-icon {
  width: 52px;
  height: 52px;
  border-radius: 13px;
}

.dashboard .stat.stat--pa-stakes .pa-stakes-svg {
  width: 30px;
  height: 30px;
}

@media (prefers-reduced-transparency: reduce) {
  .pa-stakes-glass-icon {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    background: var(--hap-surface-raised, #fff);
  }
}

@media print {
  .pa-stakes-glass-icon {
    box-shadow: none !important;
    border: 1px solid #d2d2d7 !important;
    background: #fafafa !important;
  }
}

.pa-metrics--hero .pa-metric {
  animation: paMetricReveal 0.55s ease-out both;
}

body.scroll-reveal-js .pa-operating-stakes-hero.scroll-reveal.is-visible .pa-metrics--hero .pa-metric:nth-child(1),
body.scroll-reveal-js .pa-operating-stakes-hero.scroll-reveal.revealed .pa-metrics--hero .pa-metric:nth-child(1) {
  animation-delay: 0s;
}
body.scroll-reveal-js .pa-operating-stakes-hero.scroll-reveal.is-visible .pa-metrics--hero .pa-metric:nth-child(2),
body.scroll-reveal-js .pa-operating-stakes-hero.scroll-reveal.revealed .pa-metrics--hero .pa-metric:nth-child(2) {
  animation-delay: 0.06s;
}
body.scroll-reveal-js .pa-operating-stakes-hero.scroll-reveal.is-visible .pa-metrics--hero .pa-metric:nth-child(3),
body.scroll-reveal-js .pa-operating-stakes-hero.scroll-reveal.revealed .pa-metrics--hero .pa-metric:nth-child(3) {
  animation-delay: 0.12s;
}

@keyframes paMetricReveal {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .pa-metrics--hero .pa-metric {
    animation: none !important;
  }
}

@media (max-width: 640px) {
  .oversight-audit-pair {
    grid-template-columns: 1fr;
  }
}

/* Short viewports (landscape phone): keep map hero + utility strip from consuming the whole screen */
@media (max-height: 460px) and (orientation: landscape) {
  .dashboard .map-hero-section {
    margin-top: var(--space-3);
    margin-bottom: var(--space-3);
  }
  .dashboard .utility-toolbar {
    padding-top: var(--space-2);
    padding-bottom: var(--space-2);
  }
}
