/* Self-hosted web fonts (2026-09-03). These are Google Fonts' own variable
 * woff2 slices for Source Serif 4 (opsz 8..60, wght 400..700) and Inter
 * (wght 400..700), latin + latin-ext, served from /static/fonts with a
 * content hash in the filename so they cache for a year. Until now the
 * stylesheet came from fonts.googleapis.com, which the site's own CSP
 * (style-src 'self') blocked -- every visitor saw the fallback stack. */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/static/fonts/source-serif-4-var-latin.6a682eb0.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/static/fonts/source-serif-4-var-latin-ext.8c3174ba.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/static/fonts/inter-var-latin.65850a37.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/static/fonts/inter-var-latin-ext.01ba6c2a.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Civic Clarity — design system for the Pulse prototype.
   Tokens sourced from ref/DESIGN.md. Scoped under [data-cc] so it can live
   alongside the existing static/theme.css without colliding. */

[data-cc] {
  --cc-bg: #f4f3ef;
  --cc-paper: #fffefa;
  --cc-surface: #ffffff;
  --cc-text: #171714;
  --cc-text-body: #373733;
  --cc-text-muted: #6b6962;
  --cc-text-faint: #6f6c64;
  --cc-border: #e3e0d8;
  --cc-border-strong: #d2cec3;

  --cc-accent: #7f6620;
  --cc-accent-hover: #6f5a1e;
  --cc-accent-on: #ffffff;
  --cc-accent-soft-bg: #f7de98;
  --cc-accent-soft-text: #6f5d24;

  --cc-good-bg: #e4f2e8;
  --cc-good-text: #1e6b3a;
  --cc-warn-bg: #fdf0d5;
  --cc-warn-text: #92600a;
  --cc-bad-bg: #ffdad6;
  --cc-bad-text: #93000a;
  --cc-neutral-bg: #eceae4;
  --cc-neutral-text: #444748;

  /* Solid, white-text-on-top badge fills (darker/more saturated than the
     .cc-chart-key dot swatches, which never carry text and don't need the
     same contrast headroom). */
  --cc-badge-slate: #29343b;
  --cc-badge-blue: #5c7a89;
  --cc-badge-sage: #6f8161;

  --cc-serif: 'Source Serif 4', Georgia, 'Times New Roman', serif;
  --cc-sans: 'Inter', system-ui, -apple-system, sans-serif;

  --cc-radius-sm: 0.125rem;
  --cc-radius: 0.25rem;
  --cc-radius-md: 0.375rem;
  --cc-radius-lg: 0.5rem;
  --cc-radius-full: 9999px;

  --cc-unit: 8px;
  --cc-gutter: 24px;
  --cc-max: 1200px;
  --cc-page-title-size: clamp(2.2rem, 3.8vw, 3.25rem);

  --cc-shadow:
    0 0 0 1px rgba(40,35,22,0.025),
    0 2px 5px rgba(40,35,22,0.055),
    0 14px 32px rgba(40,35,22,0.065);

  background: var(--cc-bg);
  color: var(--cc-text);
  font-family: var(--cc-sans);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

[data-cc] * { box-sizing: border-box; }
[data-cc] a { color: inherit; text-decoration: none; }
/* The [hidden] attribute must always win over any display-setting class
   (e.g. .cc-card sets display:flex, which as an author-stylesheet class
   otherwise outranks the UA stylesheet's [hidden]{display:none} rule). */
[data-cc] [hidden] { display: none !important; }
[data-cc] .cc-container { max-width: var(--cc-max); margin: 0 auto; padding: 0 var(--cc-gutter); }

[data-cc] h1, [data-cc] h2, [data-cc] h3 {
  font-family: var(--cc-serif);
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--cc-text);
  margin: 0;
}

/* ── Header / primary nav ─────────────────────────────────────────────── */

.cc-header {
  position: sticky;
  top: 0;
  z-index: 40;
  background: rgba(244, 243, 239, 0.92);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--cc-border);
}

.cc-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 60px;
  gap: 24px;
}

.cc-brand {
  font-family: var(--cc-serif);
  font-weight: 700;
  font-size: 1.05rem;
  letter-spacing: -0.01em;
  white-space: nowrap;
}

.cc-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 28px;
  flex: 1;
  margin-left: auto;
}

.cc-nav-item {
  position: relative;
}

.cc-nav-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: var(--cc-sans);
  font-size: 0.86rem;
  font-weight: 500;
  color: var(--cc-text-muted);
  padding: 20px 0;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  background: none;
  border-top: none;
  border-left: none;
  border-right: none;
}

.cc-nav-link:hover,
.cc-nav-item.open .cc-nav-link {
  color: var(--cc-text);
}

.cc-nav-link[aria-current="page"],
.cc-nav-item.active .cc-nav-link {
  color: var(--cc-text);
  border-bottom-color: var(--cc-accent);
}

.cc-nav-caret {
  width: 9px;
  height: 9px;
  transition: transform 0.15s ease;
}
.cc-nav-item.open .cc-nav-caret { transform: rotate(180deg); }

.cc-dropdown {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  min-width: 220px;
  background: var(--cc-surface);
  border: 1px solid var(--cc-border);
  border-radius: var(--cc-radius-md);
  box-shadow: var(--cc-shadow), 0 12px 24px rgba(17,17,17,0.08);
  padding: 6px;
  display: none;
  margin-top: 4px;
}
.cc-nav-item.open .cc-dropdown { display: block; }

.cc-dropdown a {
  display: block;
  padding: 9px 12px;
  border-radius: var(--cc-radius);
  font-size: 0.86rem;
  color: var(--cc-text);
}
.cc-dropdown a:hover { background: var(--cc-bg); }

.cc-header-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.cc-search-btn {
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--cc-radius-full);
  border: 1px solid var(--cc-border);
  background: var(--cc-surface);
  color: var(--cc-text-muted);
  cursor: pointer;
}
.cc-search-btn:hover { color: var(--cc-text); border-color: var(--cc-border-strong); }

[data-cc] .cc-notify-link {
  display: inline-flex;
  align-items: center;
  height: 34px;
  padding: 0 14px;
  border-radius: var(--cc-radius-full);
  background: var(--cc-accent);
  color: var(--cc-accent-on);
  font-size: 0.82rem;
  font-weight: 500;
  white-space: nowrap;
}
[data-cc] .cc-notify-link:hover { background: var(--cc-accent-hover); text-decoration: none; }

.cc-admin-link {
  display: inline-flex;
  align-items: center;
  height: 34px;
  padding: 0 14px;
  border-radius: var(--cc-radius-full);
  border: 1px solid var(--cc-accent);
  color: var(--cc-accent);
  font-size: 0.82rem;
  font-weight: 500;
  white-space: nowrap;
}
.cc-admin-link:hover { background: var(--cc-accent); color: #fff; text-decoration: none; }

.cc-menu-btn {
  display: none;
  width: 34px;
  height: 34px;
  align-items: center;
  justify-content: center;
  border-radius: var(--cc-radius);
  border: 1px solid var(--cc-border);
  background: var(--cc-surface);
  cursor: pointer;
}

/* ── Mobile menu ───────────────────────────────────────────────────────── */

.cc-mobile-menu {
  display: none;
  border-top: 1px solid var(--cc-border);
  background: var(--cc-surface);
}
.cc-mobile-menu.open { display: block; }

.cc-mobile-row summary,
.cc-mobile-row > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px var(--cc-gutter);
  font-size: 0.92rem;
  font-weight: 500;
  border-bottom: 1px solid var(--cc-border);
  cursor: pointer;
  list-style: none;
}
.cc-mobile-row summary::-webkit-details-marker { display: none; }
.cc-mobile-row .cc-sub a {
  display: block;
  padding: 11px var(--cc-gutter) 11px calc(var(--cc-gutter) + 14px);
  font-size: 0.86rem;
  color: var(--cc-text-muted);
  border-bottom: 1px solid var(--cc-border);
}

@media (max-width: 860px) {
  .cc-nav { display: none; }
  .cc-menu-btn { display: inline-flex; }
}

/* ── Footer ────────────────────────────────────────────────────────────── */

.cc-footer {
  border-top: 1px solid var(--cc-border);
  margin-top: 72px;
  padding: 40px 0 32px;
}

.cc-footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  justify-content: center;
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--cc-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 18px;
}
.cc-footer-links a:hover { color: var(--cc-text); }

.cc-footer-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-bottom: 20px;
}

.cc-pill-toggle {
  display: inline-flex;
  border: 1px solid var(--cc-border);
  border-radius: var(--cc-radius-full);
  overflow: hidden;
}
.cc-pill-toggle button {
  border: none;
  background: var(--cc-surface);
  color: var(--cc-text-muted);
  font-family: var(--cc-sans);
  font-size: 0.74rem;
  font-weight: 600;
  padding: 6px 14px;
  cursor: pointer;
}
.cc-pill-toggle button.is-active { background: var(--cc-text); color: #fff; }

.cc-footer-bottom {
  text-align: center;
  font-size: 0.74rem;
  color: var(--cc-text-faint);
}

/* ── Cards ─────────────────────────────────────────────────────────────── */

.cc-card {
  background: var(--cc-paper);
  border: 1px solid var(--cc-border);
  border-radius: var(--cc-radius-lg);
  box-shadow: var(--cc-shadow);
  padding: 36px 36px 28px;
  display: flex;
  flex-direction: column;
}

.cc-card-eyebrow {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--cc-sans);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--cc-accent);
  margin-bottom: 14px;
}
.cc-card-eyebrow .cc-count {
  font-weight: 500;
  color: var(--cc-text-faint);
  text-transform: none;
  letter-spacing: normal;
}

.cc-card-headline {
  font-family: var(--cc-serif);
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.3;
  margin-bottom: 8px;
}
a.cc-card-headline:hover { text-decoration: underline; }

.cc-card-caption {
  font-size: 0.92rem;
  color: var(--cc-text-body);
  line-height: 1.65;
  margin-bottom: 16px;
}

.cc-section-title {
  font-size: clamp(1.55rem, 3vw, 2rem);
  line-height: 1.25;
  margin-bottom: 12px;
}

.cc-section-intro {
  max-width: 680px;
  margin: -2px 0 24px;
  color: var(--cc-text-muted);
  font-size: 0.92rem;
}

.cc-meeting-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  margin-top: 10px;
}

.cc-stat-strip {
  display: flex;
  gap: 32px;
  font-size: 0.82rem;
  color: var(--cc-text-muted);
  margin-bottom: 28px;
}

/* Part-to-whole charts: inline SVG geometry with exact values retained in
   accessible labels and a visible legend. */
.cc-composition { margin: 0 0 28px; }
.cc-composition figcaption {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 10px;
  font-size: 0.8rem;
  color: var(--cc-text-muted);
}
.cc-composition figcaption strong {
  color: var(--cc-text);
  font-size: 0.9rem;
}
.cc-donut-layout {
  display: flex;
  align-items: center;
  gap: clamp(28px, 5vw, 64px);
}
.cc-donut-visual {
  position: relative;
  flex: 0 0 210px;
  width: 210px;
  height: 210px;
}
.cc-donut-visual svg { display: block; width: 100%; height: 100%; transform: rotate(-90deg); }
.cc-donut-track,
.cc-donut-segment { fill: none; stroke-width: 18; }
.cc-donut-track { stroke: var(--cc-border); }
.cc-donut-segment { transition: opacity 0.15s ease; }
.cc-donut-segment.slate { stroke: #29343b; }
.cc-donut-segment.gold { stroke: #a58b3d; }
.cc-donut-segment.blue { stroke: #718b99; }
.cc-donut-segment.sage { stroke: #9aa58f; }
.cc-donut-segment.gray { stroke: #d3d2ca; }
.cc-chart-key.slate { background: #29343b; }
.cc-chart-key.gold { background: #a58b3d; }
.cc-chart-key.blue { background: #718b99; }
.cc-chart-key.sage { background: #9aa58f; }
.cc-chart-key.gray { background: #d3d2ca; }
.cc-donut-center {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  line-height: 1.15;
  pointer-events: none;
}
.cc-donut-center strong { font-family: var(--cc-serif); font-size: 1.45rem; }
.cc-donut-center span {
  margin-top: 5px;
  color: var(--cc-text-muted);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.cc-chart-legend {
  display: grid;
  grid-template-columns: repeat(2, minmax(150px, 1fr));
  flex: 1;
  gap: 14px 28px;
  padding: 0;
  margin: 12px 0 0;
  list-style: none;
}
.cc-chart-legend li {
  display: grid;
  grid-template-columns: 9px minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px;
  font-size: 0.76rem;
  color: var(--cc-text-muted);
}
.cc-chart-legend strong { color: var(--cc-text); font-weight: 600; }
.cc-chart-key { width: 9px; height: 9px; border-radius: 2px; }
.cc-chart-note { margin: 12px 0 0; font-size: 0.82rem; color: var(--cc-text-body); }
.cc-composition-compact { margin-bottom: 20px; }
.cc-composition-compact .cc-donut-layout { gap: 20px; }
.cc-composition-compact .cc-donut-visual { flex-basis: 132px; width: 132px; height: 132px; }
.cc-composition-compact .cc-donut-track,
.cc-composition-compact .cc-donut-segment { stroke-width: 16; }
.cc-composition-compact .cc-chart-legend { grid-template-columns: 1fr; gap: 8px; }
.cc-composition-compact .cc-donut-center strong { font-size: 1.25rem; }

.cc-related-analysis {
  margin: -4px 0 20px;
  font-size: 0.82rem;
  color: var(--cc-text-muted);
}
.cc-related-analysis span {
  margin-right: 6px;
  color: var(--cc-text-faint);
}
.cc-related-analysis a {
  color: var(--cc-accent);
  font-weight: 600;
}
.cc-related-analysis a:hover { color: var(--cc-accent-hover); text-decoration: underline; }

/* Unboxed section — demoted from a card: no surface/border/shadow, just a
   top rule, per the "one lead card, rest are sections" structural fix. */
.cc-section {
  border-top: 1px solid var(--cc-border);
  padding: 32px 0 8px;
}
.cc-section .cc-card-eyebrow { margin-bottom: 18px; }

.cc-card-footer {
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid var(--cc-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.cc-card-meta {
  font-size: 0.76rem;
  color: var(--cc-text-faint);
}

.cc-card-cta {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--cc-accent);
  white-space: nowrap;
}
.cc-card-cta:hover { color: var(--cc-accent-hover); text-decoration: underline; }

.cc-empty {
  font-size: 0.9rem;
  color: var(--cc-text-muted);
  line-height: 1.6;
  font-style: italic;
}

/* ── List rows (used inside cards) ────────────────────────────────────── */

.cc-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px solid var(--cc-border);
}
.cc-row:last-child { border-bottom: none; }

.cc-row-chip {
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

.cc-row-body { flex: 1; min-width: 0; }
.cc-row-title {
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--cc-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cc-row-sub {
  font-size: 0.78rem;
  color: var(--cc-text-muted);
}

.cc-row-value {
  flex-shrink: 0;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--cc-text-muted);
  text-align: right;
}

.cc-row-chevron { flex-shrink: 0; color: var(--cc-text-faint); }

/* ── Status chips ──────────────────────────────────────────────────────── */

.cc-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.72rem;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: var(--cc-radius-full);
}
.cc-chip.good { background: var(--cc-good-bg); color: var(--cc-good-text); }
.cc-chip.warn { background: var(--cc-warn-bg); color: var(--cc-warn-text); }
.cc-chip.bad { background: var(--cc-bad-bg); color: var(--cc-bad-text); }
.cc-chip.neutral { background: var(--cc-neutral-bg); color: var(--cc-neutral-text); }

/* ── Buttons ───────────────────────────────────────────────────────────── */

.cc-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-family: var(--cc-sans);
  font-size: 0.84rem;
  font-weight: 600;
  padding: 10px 18px;
  border-radius: var(--cc-radius);
  cursor: pointer;
  min-height: 40px;
  border: 1px solid transparent;
}
[data-cc] .cc-btn-primary { background: var(--cc-accent); color: var(--cc-accent-on); }
[data-cc] .cc-btn-primary:hover { background: var(--cc-accent-hover); }
.cc-btn-ghost { background: transparent; border-color: var(--cc-text); color: var(--cc-text); }
.cc-btn-ghost:hover { background: var(--cc-text); color: #fff; }

/* ── Breadcrumb ────────────────────────────────────────────────────────── */

.cc-breadcrumb {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.78rem;
  color: var(--cc-text-faint);
  margin-bottom: 18px;
}
.cc-breadcrumb a:hover { color: var(--cc-text); }

/* ── Hero ──────────────────────────────────────────────────────────────── */

.cc-hero { padding: 48px 0 36px; }
.cc-hero-eyebrow {
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--cc-accent);
  margin-bottom: 10px;
}
.cc-hero h1 {
  font-size: clamp(2rem, 4.5vw, 2.75rem);
  margin-bottom: 12px;
}
.cc-hero p {
  font-size: 1.05rem;
  color: var(--cc-text-muted);
  max-width: 640px;
  line-height: 1.6;
}

.cc-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px;
  padding-bottom: 72px;
}
.cc-grid .cc-span-2 { grid-column: span 2; }

@media (max-width: 1024px) {
  .cc-card { padding: 24px 24px 20px; }
  .cc-meeting-grid { grid-template-columns: 1fr; gap: 24px; }
  .cc-chart-legend { grid-template-columns: repeat(2, minmax(130px, 1fr)); }
}

@media (max-width: 900px) {
  .cc-pulse-projects .cc-composition-compact .cc-chart-legend { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .cc-grid { grid-template-columns: 1fr; gap: 24px; }
  .cc-grid .cc-span-2 { grid-column: span 1; }
  .cc-hero { padding: 32px 0 28px; }
  .cc-card { padding: 20px 20px 18px; }
  .cc-meeting-grid { grid-template-columns: 1fr; gap: 24px; }
  .cc-stat-strip { gap: 20px; }
  .cc-composition figcaption { display: block; }
  .cc-composition figcaption span { display: block; margin-top: 2px; }
  .cc-donut-layout { align-items: flex-start; gap: 20px; }
  .cc-donut-visual { flex-basis: 144px; width: 144px; height: 144px; }
  .cc-chart-legend,
  .cc-composition-compact .cc-chart-legend,
  .cc-pulse-projects .cc-composition-compact .cc-chart-legend { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 520px) {
  .cc-donut-layout { display: block; }
  .cc-donut-visual,
  .cc-composition-compact .cc-donut-visual { margin: 0 auto 18px; }
}

/* ── Pulse dashboard ────────────────────────────────────────────────────
   Equal-width, independently packed stacks keep mixed-height widgets
   compact while allowing cards to move freely between columns. */
[data-cc] .cc-container.cc-hero {
  padding: 104px var(--cc-gutter) 72px;
}
.cc-hero-eyebrow { margin-bottom: 14px; }
.cc-hero h1 {
  max-width: 760px;
  font-size: var(--cc-page-title-size);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.035em;
  margin-bottom: 20px;
}
.cc-hero > p:not(.cc-hero-meta) {
  max-width: 720px;
  color: var(--cc-text-body);
  font-size: clamp(1.05rem, 2vw, 1.25rem);
  line-height: 1.5;
}
.cc-hero .cc-hero-meta {
  margin-top: 16px;
  color: var(--cc-text-faint);
  font-size: 0.78rem;
}

.cc-pulse-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: none;
  grid-template-areas: none;
  grid-auto-rows: auto;
  gap: 32px;
  align-items: start;
}
[data-cc] .cc-container.cc-pulse-grid {
  margin-top: 48px;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.cc-pulse-column {
  display: flex;
  min-width: 0;
  min-height: 96px;
  flex-direction: column;
  gap: 32px;
}
.cc-pulse-grid .cc-card {
  position: relative;
  padding: 34px 36px 28px;
  border-color: rgba(210, 206, 195, 0.8);
  border-radius: var(--cc-radius-lg);
  background: var(--cc-paper);
  box-shadow: var(--cc-shadow);
}
.cc-pulse-drag-handle {
  position: absolute;
  top: 18px;
  right: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 0;
  border-radius: 6px;
  color: var(--cc-text-muted);
  background: transparent;
  opacity: .22;
  cursor: grab;
  transition: opacity .16s ease, background-color .16s ease;
}
.cc-pulse-drag-handle svg { fill: currentColor; }
.cc-pulse-grid .cc-card:hover .cc-pulse-drag-handle,
.cc-pulse-drag-handle:focus-visible { opacity: 1; }
.cc-pulse-drag-handle:hover { background: var(--cc-accent-soft-bg); }
.cc-pulse-drag-handle:focus-visible {
  outline: 2px solid var(--cc-accent);
  outline-offset: 2px;
}
.cc-pulse-card-dragging {
  opacity: .45;
}
.cc-pulse-card-dragging .cc-pulse-drag-handle { cursor: grabbing; }
.cc-pulse-drop-before::before,
.cc-pulse-drop-after::after {
  position: absolute;
  right: 0;
  left: 0;
  z-index: 2;
  height: 3px;
  border-radius: 999px;
  background: var(--cc-accent);
  content: '';
  pointer-events: none;
}
.cc-pulse-drop-before::before { top: -18px; }
.cc-pulse-drop-after::after { bottom: -18px; }
.cc-pulse-intro { min-height: 0; }
.cc-pulse-intro h1 {
  max-width: 660px;
  font-size: var(--cc-page-title-size);
  font-weight: 700;
  line-height: 1.04;
  letter-spacing: -0.04em;
}
.cc-pulse-intro > p:not(.cc-pulse-updated) {
  max-width: 620px;
  margin: 18px 0 0;
  color: var(--cc-text-body);
  font-size: 1rem;
  line-height: 1.55;
}
.cc-pulse-updated { margin: 18px 0 0; color: var(--cc-text-faint); font-size: 0.74rem; }
.cc-pulse-caption { margin: 14px 0 0; color: var(--cc-text-faint); font-size: 0.74rem; line-height: 1.5; }
.cc-pulse-welcome-copy { display: none; }
.cc-pulse-welcome-button { font: inherit; }

.cc-pulse-first-visit .cc-pulse-column-left > :not(.cc-pulse-intro),
.cc-pulse-first-visit .cc-pulse-column-right { display: none; }
.cc-pulse-first-visit .cc-pulse-welcome-copy { display: block; max-width: 620px; margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--cc-border); }
.cc-pulse-first-visit .cc-pulse-welcome-copy p { margin: 0; color: var(--cc-text-body); font-size: .9rem; line-height: 1.65; }
.cc-pulse-first-visit .cc-pulse-welcome-button { display: inline-flex; align-items: center; justify-content: center; margin-top: 24px; padding: 11px 17px; border: 0; border-radius: var(--cc-radius); color: var(--cc-accent-on); background: var(--cc-text); font-size: .82rem; font-weight: 600; cursor: pointer; }
.cc-pulse-first-visit .cc-pulse-welcome-button:hover { background: var(--cc-accent-hover); }
.cc-pulse-first-visit .cc-pulse-welcome-button:focus-visible { outline: 3px solid var(--cc-accent-soft-bg); outline-offset: 3px; }
.cc-pulse-first-visit .cc-pulse-welcome-copy > span { margin-left: 12px; color: var(--cc-text-faint); font-size: .7rem; }

@keyframes cc-pulse-widget-in {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}
.cc-pulse-revealing .cc-pulse-grid .cc-card:not(.cc-pulse-intro) { animation: cc-pulse-widget-in .5s ease both; }
.cc-pulse-revealing .cc-pulse-column > .cc-card:nth-child(2) { animation-delay: .05s; }
.cc-pulse-revealing .cc-pulse-column > .cc-card:nth-child(3) { animation-delay: .1s; }
.cc-pulse-revealing .cc-pulse-column > .cc-card:nth-child(4) { animation-delay: .15s; }

@media (prefers-reduced-motion: reduce) {
  .cc-pulse-revealing .cc-pulse-grid .cc-card:not(.cc-pulse-intro) { animation: none; }
  .cc-pulse-drag-handle { transition: none; }
}
.cc-pulse-grid .cc-card-eyebrow {
  margin-bottom: 12px;
  font-size: 0.72rem;
  letter-spacing: 0.09em;
}
.cc-pulse-grid .cc-section-title {
  font-size: clamp(1.65rem, 2.6vw, 2.15rem);
  font-weight: 600;
  line-height: 1.14;
  letter-spacing: -0.025em;
  margin-bottom: 14px;
}
.cc-pulse-grid .cc-section-title a { display: block; }
.cc-pulse-grid .cc-section-title a:hover { text-decoration: underline; }
.cc-pulse-grid .cc-card-caption {
  color: var(--cc-text-body);
  font-size: 0.9rem;
  line-height: 1.6;
  margin-bottom: 22px;
}
.cc-pulse-grid .cc-section-intro {
  margin: -2px 0 20px;
  font-size: 0.9rem;
  line-height: 1.55;
}
.cc-pulse-money .cc-composition { margin-bottom: 18px; }
.cc-pulse-money .cc-composition figcaption {
  display: block;
  margin-bottom: 14px;
}
.cc-pulse-money .cc-composition figcaption span {
  display: block;
  margin-top: 2px;
}
.cc-pulse-money .cc-donut-layout { gap: 20px; }
.cc-pulse-money .cc-donut-visual {
  flex-basis: 138px;
  width: 138px;
  height: 138px;
}
.cc-pulse-money .cc-chart-legend {
  grid-template-columns: 1fr;
  gap: 8px;
  margin: 0;
}
.cc-pulse-money .cc-chart-note { margin-top: 14px; }
.cc-pulse-projects .cc-composition-compact { margin: 2px 0 18px; }
.cc-pulse-projects .cc-composition-compact .cc-donut-visual {
  flex-basis: 138px;
  width: 138px;
  height: 138px;
}
.cc-pulse-projects .cc-row { padding: 12px 0; }
.cc-pulse-projects .cc-row-value { font-size: 0.74rem; }

.cc-pulse-grid .cc-card-footer {
  padding-top: 18px;
  margin-top: auto;
  border-top: 1px solid var(--cc-border);
}
.cc-pulse-grid .cc-card-cta {
  color: var(--cc-text);
  font-size: 0.8rem;
}

.cc-pulse-meetings { padding-bottom: 30px !important; }
.cc-pulse-permit-search { margin: 0 0 20px; }
.cc-pulse-big-number {
  display: block;
  margin-bottom: 5px;
  font-size: clamp(2.6rem, 5vw, 3.7rem);
  font-weight: 700;
  line-height: 0.95;
  letter-spacing: -0.04em;
}
.cc-pulse-supporting {
  max-width: 520px;
  margin: 0 0 28px;
  color: var(--cc-text-muted);
  font-size: 0.9rem;
  line-height: 1.6;
}
.cc-meeting-summary {
  max-width: 760px;
  margin: 0 0 26px;
  color: var(--cc-text-body);
  font-size: 1rem;
  line-height: 1.65;
}

@media (max-width: 980px) {
  .cc-pulse-grid {
    grid-template-columns: 1fr;
    display: flex;
    flex-direction: column;
  }
  .cc-pulse-money .cc-chart-legend { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cc-pulse-projects .cc-composition-compact .cc-chart-legend { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  [data-cc] .cc-container.cc-hero { padding: 60px var(--cc-gutter) 48px; }
  .cc-pulse-grid { gap: 20px; }
  [data-cc] .cc-container.cc-pulse-grid { margin-top: 28px; }
  .cc-pulse-grid .cc-card { padding: 26px 22px 22px; }
}

@media (max-width: 520px) {
  .cc-pulse-money .cc-chart-legend,
  .cc-pulse-projects .cc-composition-compact .cc-chart-legend { grid-template-columns: 1fr; }
}

/* ── Budget Story / editorial template ───────────────────────────────── */
.cc-budget-story { padding-bottom: 88px; }
.cc-reading-column,
.cc-reading-wide {
  width: calc(100% - (2 * var(--cc-gutter)));
  margin-right: auto;
  margin-left: auto;
}
.cc-reading-column { max-width: 720px; }
.cc-reading-wide { max-width: 900px; }

.cc-budget-story .cc-reading-column,
.cc-budget-story .cc-reading-wide { max-width: var(--cc-max); }

.cc-budget-hero { padding: 64px 0 56px; }
.cc-budget-hero h1 {
  max-width: 900px;
  font-size: var(--cc-page-title-size);
  font-weight: 700;
  line-height: 1.02;
  letter-spacing: -0.045em;
}
.cc-budget-deck {
  margin: 26px 0 0;
  max-width: 780px;
  color: var(--cc-text-body);
  font-family: var(--cc-serif);
  font-size: clamp(1.25rem, 2.6vw, 1.6rem);
  line-height: 1.55;
}
.cc-budget-byline {
  margin: 24px 0 0;
  color: var(--cc-text-faint);
  font-size: 0.76rem;
  line-height: 1.6;
}
.cc-budget-byline a { text-decoration: underline; text-underline-offset: 2px; }

.cc-budget-chapter {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  align-items: center;
  column-gap: clamp(48px, 7vw, 88px);
  row-gap: 28px;
  border-bottom: 1px solid var(--cc-border);
  scroll-margin-top: 120px;
}
[data-cc] .cc-budget-chapter.cc-container {
  padding: 88px var(--cc-gutter);
}
.cc-budget-chapter > .cc-reading-column,
.cc-budget-chapter > .cc-reading-wide {
  width: 100%;
  margin: 0;
}
.cc-chapter-number {
  margin-bottom: 18px;
  color: var(--cc-accent);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.cc-chapter-more {
  grid-column: 1 / -1;
}
.cc-chapter-more a {
  color: var(--cc-text-muted);
  font-size: 0.78rem;
  font-weight: 600;
}
.cc-chapter-more a:hover { color: var(--cc-accent); text-decoration: underline; }
.cc-budget-chapter h2,
.cc-budget-end h2 {
  max-width: 680px;
  font-size: clamp(2rem, 4.3vw, 2.8rem);
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: -0.035em;
}
.cc-chapter-lede {
  margin: 28px 0 0;
  color: var(--cc-text-body);
  font-family: var(--cc-serif);
  font-size: 1.16rem;
  line-height: 1.75;
}
.cc-budget-pullout {
  display: flex;
  align-items: baseline;
  gap: 16px;
  margin: 42px 0 0;
}
.cc-budget-pullout strong {
  font-family: var(--cc-serif);
  font-size: clamp(2.6rem, 6vw, 3.7rem);
  line-height: 1;
  letter-spacing: -0.04em;
}
.cc-budget-pullout span { max-width: 210px; color: var(--cc-text-muted); font-size: 0.84rem; line-height: 1.4; }

.cc-budget-figure {
  margin-top: 0;
  padding: 34px 38px;
  border: 1px solid var(--cc-border);
  border-radius: var(--cc-radius-lg);
  background: var(--cc-paper);
  box-shadow: var(--cc-shadow);
}
.cc-figure-heading {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  margin-bottom: 28px;
}
.cc-figure-heading h3 { font-family: var(--cc-sans); font-size: 0.9rem; font-weight: 700; }
.cc-figure-heading span { color: var(--cc-text-faint); font-size: 0.72rem; }
.cc-figure-note { margin: 16px 0 0; color: var(--cc-text-muted); font-size: 0.76rem; line-height: 1.55; }

.cc-gap-chart { display: block; width: 100%; height: auto; overflow: visible; }
.cc-gap-chart .cc-gap-zero { stroke: var(--cc-border-strong); stroke-width: 1; stroke-dasharray: 4 5; }
.cc-gap-chart polyline { fill: none; stroke: var(--cc-accent); stroke-width: 4; stroke-linejoin: round; stroke-linecap: round; }
.cc-gap-chart circle { fill: var(--cc-paper); stroke: var(--cc-accent); stroke-width: 3; }
.cc-gap-chart text { fill: var(--cc-text-faint); font: 11px var(--cc-sans); }

.cc-budget-donut { margin: 0; }
.cc-budget-donut .cc-donut-layout { justify-content: center; gap: clamp(42px, 8vw, 96px); }
.cc-budget-donut .cc-donut-visual { flex-basis: 230px; width: 230px; height: 230px; }
.cc-budget-donut .cc-chart-legend {
  grid-template-columns: minmax(0, 1fr);
  grid-auto-rows: auto;
  gap: 12px;
  max-width: 330px;
  margin: 0;
}
.cc-budget-donut .cc-chart-legend li {
  grid-template-columns: 9px minmax(0, 1fr) 52px;
  align-items: start;
  min-height: 0;
  font-size: 0.8rem;
  line-height: 1.45;
}
.cc-budget-donut .cc-chart-key { margin-top: 0.28em; }
.cc-budget-donut .cc-chart-legend strong {
  line-height: 1.45;
  text-align: right;
}

.cc-budget-verdict {
  margin-top: 44px;
  padding: 34px 36px;
  background: var(--cc-paper);
  border-left: 4px solid var(--cc-accent);
  box-shadow: var(--cc-shadow);
}
.cc-budget-verdict > strong {
  display: block;
  font-family: var(--cc-serif);
  font-size: clamp(3rem, 7vw, 4.5rem);
  line-height: 0.95;
  letter-spacing: -0.05em;
}
.cc-budget-verdict > span { color: var(--cc-text-muted); font-size: 0.85rem; }
.cc-budget-verdict p { margin: 20px 0 0; font-size: 0.88rem; font-weight: 600; }

.cc-supporting-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  margin: 34px 0 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--cc-border);
  border-radius: var(--cc-radius);
  background: var(--cc-border);
}
.cc-supporting-facts div { padding: 18px 20px; background: var(--cc-paper); }
.cc-supporting-facts dt {
  color: var(--cc-text-muted);
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.cc-supporting-facts dd {
  margin: 5px 0 0;
  font-family: var(--cc-serif);
  font-size: 1.55rem;
  font-weight: 600;
}
.cc-budget-context {
  margin: 30px 0 0;
  padding-top: 24px;
  border-top: 1px solid var(--cc-border);
  color: var(--cc-text-muted);
  font-size: 0.86rem;
  line-height: 1.65;
}
.cc-budget-context strong { color: var(--cc-text); }

.cc-reserve-copy,
.cc-reserve-detail { min-width: 0; }
.cc-reserve-detail .cc-budget-verdict { margin-top: 0; }

.cc-budget-end {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 56px;
}
[data-cc] .cc-budget-end.cc-container { padding: 104px var(--cc-gutter) 16px; }
.cc-budget-end p {
  margin: 24px 0 28px;
  color: var(--cc-text-body);
  font-family: var(--cc-serif);
  font-size: 1.08rem;
  line-height: 1.7;
}
.cc-budget-end-action { padding-bottom: 4px; }

@media (max-width: 980px) {
  .cc-budget-chapter {
    grid-template-columns: 1fr;
    column-gap: 0;
    row-gap: 32px;
  }
  [data-cc] .cc-budget-chapter.cc-container { max-width: 760px; }
  .cc-budget-end { grid-template-columns: 1fr; align-items: start; gap: 8px; max-width: 760px !important; }
}

@media (max-width: 760px) {
  .cc-budget-hero { padding: 48px 0 42px; }
  [data-cc] .cc-budget-chapter.cc-container { padding: 64px var(--cc-gutter); }
  .cc-budget-figure { padding: 26px 22px; }
  .cc-budget-donut .cc-donut-layout { gap: 28px; }
  .cc-budget-donut .cc-donut-visual { flex-basis: 176px; width: 176px; height: 176px; }
  .cc-budget-donut .cc-chart-legend { grid-template-columns: 1fr; min-width: 180px; }
  [data-cc] .cc-budget-end.cc-container { padding-top: 72px; }
}

@media (max-width: 560px) {
  .cc-budget-pullout { display: block; }
  .cc-budget-pullout span { display: block; margin-top: 10px; }
  .cc-budget-donut .cc-donut-layout { display: block; }
  .cc-budget-donut .cc-donut-visual { margin: 0 auto 28px; }
  .cc-budget-donut .cc-chart-legend { max-width: none; min-width: 0; }
  .cc-figure-heading { display: block; }
  .cc-figure-heading span { display: block; margin-top: 4px; }
}

/* ── Permits / explorer template ─────────────────────────────────────── */
.cc-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.cc-permits-page { padding-bottom: 88px; }
[data-cc] .cc-permits-hero.cc-container { padding: 64px var(--cc-gutter) 56px; }
.cc-permits-lead { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(360px, .9fr); gap: 40px; align-items: start; }
.cc-permits-hero h1 {
  max-width: 620px;
  font-size: var(--cc-page-title-size);
  font-weight: 700;
  line-height: 1.04;
  letter-spacing: -0.04em;
}
.cc-permits-hero > div > p:not(.cc-permits-updated) {
  max-width: 560px;
  margin: 22px 0 0;
  color: var(--cc-text-body);
  font-size: 1.08rem;
}
.cc-permits-updated { margin: 20px 0 0; color: var(--cc-text-faint); font-size: 0.76rem; }
.cc-permits-updated a { text-decoration: underline; }

.cc-permit-search-card { padding: 30px 32px 26px; }
.cc-permits-overview h2,
.cc-permit-volume h2 {
  font-size: clamp(1.65rem, 3.2vw, 2.35rem);
  line-height: 1.15;
  letter-spacing: -0.025em;
}
.cc-permit-search-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  margin-top: 4px;
}
.cc-permit-search-form input,
.cc-permit-search-form button {
  min-height: 46px;
  border: 1px solid var(--cc-border-strong);
  border-radius: var(--cc-radius);
  font: 0.88rem var(--cc-sans);
}
.cc-permit-search-form input { padding: 10px 14px; background: var(--cc-surface); color: var(--cc-text-muted); }
.cc-permit-search-form button { padding: 10px 20px; background: var(--cc-accent); color: white; font-weight: 600; }
.cc-permit-search-form :disabled { cursor: not-allowed; opacity: 0.58; }
.cc-permit-search-form span { grid-column: 1 / -1; color: var(--cc-text-faint); font-size: 0.7rem; }

.cc-permits-overview {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px;
  padding-top: 72px !important;
}
.cc-permits-overview > .cc-card { padding: 32px 34px 30px; }
.cc-permits-overview h2 { margin-bottom: 10px; }
.cc-permits-overview article > p { margin: 0 0 28px; color: var(--cc-text-muted); font-size: 0.86rem; line-height: 1.55; }
.cc-permit-bars { display: grid; gap: 16px; margin: 0; padding: 0; list-style: none; }
.cc-permit-bar-row > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: end;
  margin-bottom: 6px;
}
.cc-permit-bar-row span { min-width: 0; color: var(--cc-text-muted); font-size: 0.73rem; line-height: 1.35; }
.cc-permit-bar-row strong { font-size: 0.76rem; }
.cc-permit-bar-track { display: block; height: 7px; overflow: hidden; border-radius: var(--cc-radius-full); background: var(--cc-border); }
.cc-permit-bar-track > span { display: block; height: 100%; border-radius: inherit; background: var(--cc-accent); }
.cc-permit-active .cc-permit-bar-track > span { background: #718b99; }

/* Real address/permit-number search results — server-rendered when ?address= is present. */
[data-cc] .cc-container.cc-permit-results { padding-top: 48px !important; padding-bottom: 8px !important; }
.cc-permit-results h2 { font-size: clamp(1.4rem, 2.4vw, 1.9rem); margin-bottom: 20px; }
.cc-permit-result-list { display: grid; gap: 16px; margin: 0; padding: 0; list-style: none; }
.cc-permit-result-row { padding: 24px 26px; }
.cc-permit-result-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.cc-permit-result-number { font-size: 0.76rem; color: var(--cc-text-faint); }
.cc-permit-result-row h3 { font-size: 1.1rem; margin-bottom: 4px; }
.cc-permit-result-address { color: var(--cc-text-body); font-size: 0.86rem; margin-bottom: 6px; }
.cc-permit-result-row p { font-size: 0.84rem; color: var(--cc-text-muted); margin: 0 0 6px; }
.cc-permit-result-meta { font-size: 0.72rem !important; color: var(--cc-text-faint) !important; }
.cc-permit-result-row a { color: var(--cc-accent); font-size: 0.8rem; font-weight: 600; }
.cc-permit-result-row a:hover { color: var(--cc-accent-hover); text-decoration: underline; }

.cc-permit-volume {
  display: grid;
  grid-template-columns: minmax(280px, 0.7fr) minmax(0, 1.3fr);
  align-items: center;
  gap: 56px;
  padding-top: 72px !important;
}
.cc-permit-volume-copy p { margin: 18px 0 0; color: var(--cc-text-muted); font-size: 0.9rem; line-height: 1.65; }
.cc-permit-volume-chart { padding: 24px 28px 20px; }
.cc-permit-line-chart { display: block; width: 100%; height: auto; }
.cc-permit-line-chart polygon { fill: rgba(138, 113, 38, 0.12); }
.cc-permit-line-chart polyline { fill: none; stroke: var(--cc-accent); stroke-width: 3; stroke-linejoin: round; stroke-linecap: round; }
.cc-permit-line-chart circle { fill: var(--cc-paper); stroke: var(--cc-accent); stroke-width: 2; }
.cc-permit-line-chart text { fill: var(--cc-text-faint); font: 10px var(--cc-sans); }

@media (max-width: 900px) {
  .cc-permits-lead,
  .cc-permits-overview,
  .cc-permit-volume { grid-template-columns: 1fr; }
  .cc-permits-lead { gap: 32px; }
  .cc-permit-volume { gap: 28px; }
}

@media (max-width: 600px) {
  [data-cc] .cc-permits-hero.cc-container { padding-top: 48px; padding-bottom: 40px; }
  .cc-permit-search-card { padding: 26px 24px 22px; }
  .cc-permits-overview { gap: 20px; padding-top: 48px !important; }
  .cc-permits-overview > .cc-card { padding: 26px 22px 24px; }
  .cc-permit-search-form { grid-template-columns: 1fr; }
  .cc-permit-search-form span { grid-column: 1; }
  .cc-permit-volume { padding-top: 48px !important; }
  .cc-permit-volume-chart { padding: 18px 14px; overflow-x: auto; }
  .cc-permit-line-chart { min-width: 620px; }
}

/* ── Meetings ───────────────────────────────────────────────────────── */
.cc-meetings-page { padding-top: 64px; padding-bottom: 88px; }
.cc-meetings-lead { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(360px, .9fr); gap: 40px; align-items: start; }
.cc-meetings-hero h1 { max-width: 650px; font-size: var(--cc-page-title-size); line-height: 1.04; letter-spacing: -.04em; }
.cc-meetings-hero > div > p:not(.cc-meetings-updated) { max-width: 590px; margin: 22px 0 0; color: var(--cc-text-body); font-size: 1.08rem; }
.cc-meetings-updated { margin: 20px 0 0; color: var(--cc-text-faint); font-size: .76rem; }
.cc-meetings-updated a { text-decoration: underline; }
.cc-meetings-widget-card { padding: 30px 32px 28px; }
.cc-meetings-widget-card h2 { margin: 8px 0 10px; font-size: clamp(1.65rem, 3.2vw, 2.35rem); line-height: 1.15; }
.cc-meetings-widget-card h2 strong { color: var(--cc-accent); }
.cc-meetings-widget-card > p { margin: 0; color: var(--cc-text-muted); font-size: .86rem; }
.cc-meetings-next { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--cc-border); }
.cc-meetings-next span { display: block; color: var(--cc-text-faint); font-size: .7rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; }
.cc-meetings-next strong { display: block; margin-top: 5px; font-family: var(--cc-serif); font-size: 1.35rem; }
.cc-meetings-next p { margin: 3px 0 0; color: var(--cc-text-muted); font-size: .8rem; }
[data-cc] .cc-container.cc-meetings-section { margin-top: 72px; padding-top: 32px; padding-bottom: 8px; }
.cc-meetings-table-wrap { margin: 0; }
.cc-meetings-table-wrap table { min-width: 760px; font-size: .78rem; }
.cc-meetings-table-wrap th, .cc-meetings-table-wrap td { padding: 14px 16px; vertical-align: middle; }
.cc-meetings-table-wrap thead th { color: var(--cc-text-muted); font-size: .68rem; text-transform: uppercase; letter-spacing: .05em; }
.cc-meetings-table-wrap tbody th { width: 38%; font-size: .82rem; }
.cc-meetings-table-wrap tbody td:first-child { width: 28%; color: var(--cc-text-muted); }
.cc-meetings-table-wrap .cc-chip { margin-left: 7px; vertical-align: middle; }
/* Rows with a record link into our own /meetings/<id> page (recap, votes,
   transcript) -- the body name and a leading "Recap →" both go there; the
   city's PDFs stay as the outbound links beside it. */
[data-cc] .cc-meetings-table-wrap .cc-meeting-row-link { color: inherit; border-bottom: 1px solid var(--cc-border-strong); }
[data-cc] .cc-meetings-table-wrap .cc-meeting-row-link:hover { color: var(--cc-accent); border-bottom-color: var(--cc-accent); }
[data-cc] .cc-meeting-links .cc-meeting-detail-link { color: var(--cc-accent); font-weight: 600; }
[data-cc] .cc-meeting-links .cc-meeting-detail-link:hover { text-decoration: underline; }
.cc-meeting-links { display: flex; gap: 8px 16px; flex-wrap: wrap; }
.cc-meeting-links a { color: var(--cc-accent); font-weight: 600; white-space: nowrap; }
.cc-meeting-links a:hover { text-decoration: underline; }
.cc-meeting-empty { color: var(--cc-text-faint); font-style: italic; }
.cc-meeting-recap { display: grid; grid-template-columns: minmax(280px, .85fr) minmax(0, 1.15fr); gap: 64px; align-items: start; }
.cc-meeting-recap h2 { margin-top: 10px; font-size: clamp(1.8rem, 3.1vw, 2.7rem); line-height: 1.1; }
.cc-meeting-recap p { margin: 3px 0 18px; color: var(--cc-text-body); font-size: .94rem; line-height: 1.7; }
.cc-meetings-note { max-width: 780px; margin: 18px 0 0; color: var(--cc-text-muted); font-size: .78rem; line-height: 1.55; }
.cc-meeting-body-bars { columns: 2; column-gap: 56px; }
.cc-meeting-body-bars .cc-permit-bars { display: block; }
.cc-meeting-body-bars .cc-permit-bar-row { break-inside: avoid; margin-bottom: 16px; }

@media (max-width: 900px) {
  .cc-meetings-lead, .cc-meeting-recap { grid-template-columns: 1fr; }
  .cc-meetings-lead { gap: 32px; }
  .cc-meeting-recap { gap: 20px; }
}

@media (max-width: 640px) {
  .cc-meetings-page { padding-top: 48px; }
  .cc-meetings-widget-card { padding: 26px 24px 24px; }
  [data-cc] .cc-container.cc-meetings-section { margin-top: 48px; padding-top: 24px; }
  .cc-meeting-body-bars { columns: 1; }
}

/* ── Council members ─────────────────────────────────────────────────── */
.cc-council-page { padding-top: 64px; }
.cc-council-lead { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(340px, 0.95fr); gap: 28px; align-items: start; }
.cc-council-latest { padding: 38px 40px; }
.cc-council-intro h1 { max-width: 650px; font-size: var(--cc-page-title-size); line-height: .98; margin: 16px 0 24px; }
.cc-council-intro > p { max-width: 620px; margin: 0; color: var(--cc-text-body); font-size: 1.08rem; }
.cc-council-meta { margin-top: 28px; color: var(--cc-text-faint); font-size: .78rem; }
.cc-council-meta a { color: var(--cc-text-muted); text-decoration: underline; text-underline-offset: 3px; }
.cc-council-latest { border-top: 4px solid var(--cc-accent); }
.cc-council-latest h2 { font-size: clamp(1.55rem, 2.4vw, 2.25rem); line-height: 1.16; margin: 18px 0 34px; }
.cc-latest-result { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; padding-top: 18px; border-top: 1px solid var(--cc-border); }
.cc-latest-result strong { font-family: var(--cc-serif); font-size: 1.35rem; }
.cc-latest-result span { color: var(--cc-text-muted); font-size: .84rem; text-align: right; }
[data-cc] .cc-container.cc-council-roster,
[data-cc] .cc-container.cc-council-splits { margin-top: 84px; }
.cc-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 40px; margin-bottom: 28px; }
.cc-section-heading h2 { font-size: clamp(2rem, 3.1vw, 3rem); line-height: 1.08; margin-top: 10px; }
.cc-section-heading > p { max-width: 440px; margin: 0 0 4px; color: var(--cc-text-muted); font-size: .9rem; }
.cc-member-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; align-items: start; }
.cc-member-card { padding: 26px; }
.cc-member-role { color: var(--cc-accent); font-size: .72rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.cc-member-card h3 { font-size: 1.65rem; line-height: 1.1; margin-top: 9px; }
.cc-member-term { margin: 5px 0 22px; color: var(--cc-text-muted); font-size: .82rem; }
.cc-member-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; padding: 17px 0; border-top: 1px solid var(--cc-border); border-bottom: 1px solid var(--cc-border); }
.cc-member-stats div + div { border-left: 1px solid var(--cc-border); padding-left: 12px; }
.cc-member-stats dt { color: var(--cc-text-faint); font-size: .62rem; line-height: 1.2; letter-spacing: .05em; text-transform: uppercase; }
.cc-member-stats dd { margin: 5px 0 0; font-family: var(--cc-serif); font-size: 1.2rem; font-weight: 600; }
.cc-member-contact { display: inline-block; margin-top: 17px; font-size: .8rem; font-weight: 600; }
.cc-member-contact:hover { color: var(--cc-accent-hover); }
.cc-split-list { border-top: 1px solid var(--cc-border-strong); }
.cc-split-row { display: grid; grid-template-columns: 120px minmax(0, 1fr) 190px; gap: 26px; align-items: start; padding: 22px 0; border-bottom: 1px solid var(--cc-border); }
.cc-split-row time { color: var(--cc-text-muted); font-size: .78rem; }
.cc-split-row h3 { font-family: var(--cc-sans); font-size: .96rem; line-height: 1.45; letter-spacing: 0; }
.cc-split-outcome { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; text-align: right; }
.cc-split-outcome strong { font-size: .82rem; }
.cc-split-outcome span { color: var(--cc-text-muted); font-size: .74rem; }
.cc-council-note { max-width: 650px; margin: 18px 0 0; color: var(--cc-text-faint); font-size: .74rem; }

@media (max-width: 960px) {
  .cc-council-lead { grid-template-columns: 1fr .8fr; }
  .cc-council-latest { padding: 30px; }
  .cc-member-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  .cc-council-page { padding-top: 48px; }
  .cc-council-lead { grid-template-columns: 1fr; }
  [data-cc] .cc-container.cc-council-roster,
  [data-cc] .cc-container.cc-council-splits { margin-top: 56px; }
  .cc-section-heading { display: block; }
  .cc-section-heading > p { margin-top: 12px; }
  .cc-member-grid { grid-template-columns: 1fr; }
  .cc-split-row { grid-template-columns: 1fr; gap: 7px; }
  .cc-split-outcome { align-items: flex-start; text-align: left; }
}

@media (max-width: 440px) {
  .cc-council-latest { padding: 24px; }
  .cc-latest-result { display: block; }
  .cc-latest-result span { display: block; margin-top: 5px; text-align: left; }
}

/* ── Project tracker ─────────────────────────────────────────────────── */
.cc-tracker-page { padding-top: 64px; padding-bottom: 24px; }
.cc-tracker-lead { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr); gap: 28px; align-items: start; }
.cc-stage-summary { padding: 38px 40px; }
.cc-breadcrumb { display: flex; gap: 8px; color: var(--cc-text-faint); font-size: .74rem; }
.cc-breadcrumb a { color: var(--cc-text-muted); }
.cc-breadcrumb a:hover { color: var(--cc-text); }
.cc-tracker-intro h1 { font-size: var(--cc-page-title-size); line-height: .98; margin: 18px 0 24px; }
.cc-tracker-intro > p { max-width: 650px; margin: 0; color: var(--cc-text-body); font-size: 1.08rem; }
.cc-stage-summary { border-top: 4px solid var(--cc-accent); }
.cc-stage-summary h2 { font-size: clamp(1.55rem, 2.5vw, 2.3rem); line-height: 1.12; margin: 16px 0 30px; }
.cc-stage-summary h2 a { display: block; }
.cc-stage-summary h2 a:hover { color: var(--cc-accent-hover); }
.cc-stage-summary h2 strong { font-size: 1.5em; }
.cc-stage-strip { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--cc-border); }
.cc-stage-strip li { padding: 16px 10px 0; border-top: 5px solid var(--cc-border); }
.cc-stage-strip a { display: block; }
.cc-stage-strip a:hover span, .cc-stage-strip a:hover strong { color: var(--cc-accent-hover); }
.cc-stage-strip li:first-child { padding-left: 0; }
.cc-stage-strip li.promised { border-color: #d3d1ca; }
.cc-stage-strip li.active { border-color: #ad9130; }
.cc-stage-strip li.ending { border-color: #9aa58e; }
.cc-stage-strip li.stalled { border-color: #b3550c; }
.cc-stage-strip li.done { border-color: #29363d; }
.cc-stage-strip span { display: block; color: var(--cc-text-muted); font-size: .68rem; }
.cc-stage-strip strong { display: block; margin-top: 2px; font-family: var(--cc-serif); font-size: 1.35rem; }
.cc-tracker-stages { margin-top: 84px; }
[data-cc] .cc-container.cc-tracker-stage { margin-top: 84px; }
[data-cc] .cc-container.cc-tracker-stage:first-child { margin-top: 0; }
.cc-tracker-stage { scroll-margin-top: 84px; }
.cc-tracker-stage-heading { display: flex; align-items: end; justify-content: space-between; gap: 40px; padding-bottom: 24px; border-bottom: 1px solid var(--cc-border-strong); }
.cc-tracker-stage-heading h2 { margin-top: 8px; font-size: clamp(2rem, 3.2vw, 3rem); line-height: 1; }
.cc-tracker-stage-heading > p { max-width: 470px; margin: 0 0 2px; color: var(--cc-text-muted); font-size: .88rem; }
.cc-project-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; align-items: start; padding-top: 24px; }
.cc-project-card { padding: 28px; }
.cc-project-card-top { display: flex; align-items: start; justify-content: space-between; gap: 20px; }
.cc-project-category { color: var(--cc-accent); font-size: .68rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.cc-project-keydate { text-align: right; }
.cc-project-keydate span { display: block; color: var(--cc-text-faint); font-size: .61rem; letter-spacing: .05em; text-transform: uppercase; }
.cc-project-keydate strong { display: block; margin-top: 1px; font-size: .75rem; }
.cc-project-card h3 { margin-top: 12px; font-size: 1.65rem; line-height: 1.12; }
.cc-project-card > p { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; margin: 12px 0 22px; color: var(--cc-text-muted); font-size: .84rem; line-height: 1.55; }
.cc-project-milestone { display: grid; grid-template-columns: 14px minmax(0, 1fr); gap: 11px; padding-top: 18px; border-top: 1px solid var(--cc-border); }
.cc-milestone-dot { width: 10px; height: 10px; margin-top: 5px; border-radius: 50%; background: var(--cc-border-strong); }
.cc-milestone-dot.done { background: #29363d; }
.cc-stage-done .cc-milestone-dot.recorded { background: #29363d; }
.cc-milestone-dot.future { background: var(--cc-accent); box-shadow: 0 0 0 3px rgba(138,113,38,.12); }
.cc-milestone-label { margin-bottom: 3px; color: var(--cc-text-faint); font-size: .64rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; }
.cc-project-milestone strong { display: block; font-size: .82rem; line-height: 1.4; }
.cc-project-milestone a { display: inline-block; margin-top: 8px; color: var(--cc-text-muted); font-size: .71rem; }
.cc-project-milestone a:hover { color: var(--cc-text); }
.cc-project-card-link { margin-top: 20px; padding-top: 17px; border-top: 1px solid var(--cc-border); }
.cc-project-card-link a { font-size: .78rem; font-weight: 600; }
.cc-project-card-link a:hover { color: var(--cc-accent-hover); }
.cc-project-timeline { margin: 0; padding: 4px 0 0; list-style: none; }
.cc-project-timeline li { position: relative; display: grid; grid-template-columns: 16px minmax(0, 1fr); gap: 12px; padding: 0 0 25px; }
.cc-project-timeline li:not(:last-child)::before { content: ""; position: absolute; top: 13px; bottom: -2px; left: 5px; width: 1px; background: var(--cc-border-strong); }
.cc-timeline-marker { position: relative; z-index: 1; width: 11px; height: 11px; margin-top: 3px; border: 2px solid var(--cc-paper); border-radius: 50%; background: #29363d; box-shadow: 0 0 0 1px #29363d; }
.cc-project-timeline li.future .cc-timeline-marker { background: var(--cc-paper); box-shadow: 0 0 0 1px var(--cc-accent); }
.cc-timeline-entry time { display: block; color: var(--cc-text-faint); font-size: .65rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.cc-timeline-entry h4 { margin: 3px 0 5px; font-family: var(--cc-sans); font-size: .83rem; line-height: 1.4; letter-spacing: 0; }
.cc-timeline-entry p { margin: 0; color: var(--cc-text-muted); font-size: .75rem; line-height: 1.55; }
.cc-timeline-entry a { display: inline-block; margin-top: 7px; color: var(--cc-text-muted); font-size: .7rem; text-decoration: underline; text-underline-offset: 2px; }

/* ── Project detail ──────────────────────────────────────────────────── */
.cc-project-detail-page { padding-top: 56px; padding-bottom: 24px; }
.cc-project-detail-lead { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr); gap: 28px; align-items: start; }
.cc-project-detail-intro, .cc-project-detail-status { padding: 38px 40px; }
.cc-project-detail-labels { display: flex; align-items: center; gap: 10px; margin-top: 28px; color: var(--cc-accent); font-size: .7rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.cc-status-pill { padding: 3px 8px; border-radius: var(--cc-radius-full); color: var(--cc-neutral-text); background: var(--cc-neutral-bg); font-size: .62rem; }
.cc-status-pill.active { color: var(--cc-accent-soft-text); background: var(--cc-accent-soft-bg); }
.cc-status-pill.ending { color: #43523d; background: #e5ebdf; }
.cc-status-pill.stalled { color: var(--cc-warn-text); background: var(--cc-warn-bg); }
.cc-status-pill.done { color: #fff; background: #29363d; }
.cc-project-detail-intro h1 { font-size: var(--cc-page-title-size); line-height: 1; margin: 14px 0 22px; }
.cc-project-detail-intro > p { margin: 0; color: var(--cc-text-body); font-size: 1rem; line-height: 1.7; }
.cc-project-back { display: inline-block; margin-top: 28px; color: var(--cc-text-muted); font-size: .76rem; }
.cc-project-back:hover { color: var(--cc-text); }
.cc-project-detail-status { border-top: 4px solid var(--cc-accent); }
.cc-detail-milestone-label { margin-top: 17px; color: var(--cc-text-faint); font-size: .68rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.cc-project-detail-status h2 { margin-top: 7px; font-size: clamp(1.45rem, 2.4vw, 2rem); line-height: 1.18; }
.cc-project-detail-status > p { margin: 12px 0 0; color: var(--cc-text-muted); font-size: .82rem; line-height: 1.6; }
.cc-project-detail-dates { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 28px 0 0; padding-top: 20px; border-top: 1px solid var(--cc-border); }
.cc-project-detail-dates div { padding: 8px 14px 8px 0; }
.cc-project-detail-dates div:nth-child(even) { padding-left: 14px; border-left: 1px solid var(--cc-border); }
.cc-project-detail-dates dt { color: var(--cc-text-faint); font-size: .62rem; letter-spacing: .05em; text-transform: uppercase; }
.cc-project-detail-dates dd { margin: 3px 0 0; font-family: var(--cc-serif); font-size: 1rem; font-weight: 600; }
[data-cc] .cc-container.cc-project-history { margin-top: 84px; }
.cc-project-history-card { max-width: 900px; margin-top: 24px; padding: 36px 40px 12px; }
.cc-project-history-card .cc-project-timeline li { grid-template-columns: 18px minmax(0, 1fr); gap: 16px; padding-bottom: 34px; }
.cc-project-history-card .cc-timeline-entry h4 { font-size: 1rem; }
.cc-project-history-card .cc-timeline-entry p { max-width: 760px; font-size: .82rem; }

@media (max-width: 900px) {
  .cc-project-detail-lead { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .cc-project-detail-page { padding-top: 28px; }
  .cc-project-detail-intro, .cc-project-detail-status { padding: 28px 24px; }
  [data-cc] .cc-container.cc-project-history { margin-top: 56px; }
  .cc-project-history-card { padding: 28px 24px 6px; }
}

/* ── Search & Records ────────────────────────────────────────────────── */
.cc-documents-page { padding-top: 64px; padding-bottom: 24px; }
.cc-documents-lead { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr); gap: 28px; align-items: start; }
.cc-library-snapshot { padding: 38px 40px; }
.cc-documents-intro h1 { font-size: var(--cc-page-title-size); line-height: 1; margin: 20px 0 22px; }
.cc-documents-intro > p { max-width: 650px; margin: 0; color: var(--cc-text-body); font-size: 1.04rem; line-height: 1.7; }
.cc-documents-meta { margin-top: 28px; color: var(--cc-text-faint); font-size: .76rem; }
.cc-documents-meta a { text-decoration: underline; text-underline-offset: 3px; }
.cc-library-snapshot { border-top: 4px solid var(--cc-accent); }
.cc-library-snapshot h2 { margin: 16px 0 12px; font-size: clamp(1.5rem, 2.5vw, 2.2rem); line-height: 1.15; }
.cc-library-snapshot h2 strong { font-size: 1.35em; }
.cc-library-snapshot > p { margin: 0; color: var(--cc-text-muted); font-size: .82rem; }
.cc-library-jumps { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--cc-border); }
.cc-library-jumps a { padding: 5px 9px; border-radius: var(--cc-radius-full); color: var(--cc-text-muted); background: var(--cc-neutral-bg); font-size: .67rem; }
.cc-library-jumps a:hover { color: var(--cc-text); background: var(--cc-border); }
[data-cc] .cc-container.cc-record-tools,
[data-cc] .cc-container.cc-record-library { margin-top: 84px; }
.cc-record-tool-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.cc-record-tool { padding: 28px; }
.cc-record-tool h3 { font-size: 1.45rem; }
.cc-record-tool > p { min-height: 45px; margin: 8px 0 18px; color: var(--cc-text-muted); font-size: .8rem; line-height: 1.5; }
.cc-record-tool > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
.cc-record-tool input { min-width: 0; padding: 11px 13px; border: 1px solid var(--cc-border-strong); border-right: 0; border-radius: var(--cc-radius) 0 0 var(--cc-radius); color: var(--cc-text-faint); background: var(--cc-bg); font: inherit; font-size: .8rem; }
.cc-record-tool button { padding: 0 16px; border: 1px solid var(--cc-border-strong); border-radius: 0 var(--cc-radius) var(--cc-radius) 0; color: var(--cc-text-faint); background: var(--cc-neutral-bg); font: inherit; font-size: .78rem; }
.cc-record-tool input:disabled, .cc-record-tool button:disabled { cursor: not-allowed; opacity: .8; }
.cc-record-tool > span { display: block; margin-top: 8px; color: var(--cc-text-faint); font-size: .66rem; }
/* Real search + ask UI — wired to /api/search and /api/ask (civic-clarity-search.js). */
.cc-record-search-card { padding: 30px 32px 26px; }
.cc-record-search-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; margin-top: 4px; }
.cc-record-search-row input { min-width: 0; padding: 11px 14px; border: 1px solid var(--cc-border-strong); border-radius: var(--cc-radius); color: var(--cc-text); background: var(--cc-surface); font: inherit; font-size: .88rem; }
.cc-record-search-row button { padding: 0 20px; border: 0; border-radius: var(--cc-radius); color: white; background: var(--cc-accent); font: inherit; font-size: .84rem; font-weight: 600; cursor: pointer; }
.cc-record-search-row button:hover { background: var(--cc-accent-hover); }
.cc-record-search-row button:disabled { opacity: .6; cursor: not-allowed; }
.cc-record-scope-toggle { display: inline-flex; gap: 4px; margin-top: 14px; }
.cc-scope-btn { padding: 5px 12px; border: 1px solid var(--cc-border); border-radius: var(--cc-radius-full); color: var(--cc-text-muted); background: transparent; font-size: .74rem; font-weight: 600; cursor: pointer; }
.cc-scope-btn.is-active { color: var(--cc-accent-on); background: var(--cc-text); border-color: var(--cc-text); }
.cc-ask-card { margin-top: 20px; padding: 26px 28px; background: var(--cc-paper); border: 1px solid var(--cc-border); border-radius: var(--cc-radius-lg); box-shadow: var(--cc-shadow); }
.cc-ask-answer-text { color: var(--cc-text-body); font-size: .95rem; line-height: 1.7; }
.cc-ask-answer-text sup { color: var(--cc-accent); font-weight: 700; }
.cc-ask-sources { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--cc-border); }
.cc-ask-sources-label { margin: 0 0 10px; color: var(--cc-text-faint); font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.cc-ask-source-row { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 8px; padding: 8px 0; font-size: .78rem; }
.cc-ask-source-n { color: var(--cc-accent); font-weight: 700; }
.cc-ask-source-title { font-weight: 600; }
.cc-ask-source-excerpt { margin-top: 3px; color: var(--cc-text-muted); font-size: .74rem; line-height: 1.55; }
.cc-ask-disclaimer { margin-top: 16px; color: var(--cc-text-faint); font-size: .7rem; }
.cc-results-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 24px 0 16px; font-size: .82rem; color: var(--cc-text-muted); }
.cc-results-head button { border: 0; background: none; color: var(--cc-accent); font: inherit; font-size: .78rem; font-weight: 600; cursor: pointer; }
.cc-search-result { padding: 22px 24px; margin-bottom: 14px; }
.cc-result-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.cc-result-title { font-family: var(--cc-serif); font-size: 1.02rem; }
.cc-result-cat { margin-right: 8px; padding: 2px 7px; border-radius: var(--cc-radius-full); background: var(--cc-neutral-bg); color: var(--cc-neutral-text); font-size: .62rem; font-weight: 700; text-transform: uppercase; }
.cc-result-score { flex: none; color: var(--cc-text-faint); font-size: .68rem; }
.cc-result-snippet { margin: 8px 0 0; color: var(--cc-text-muted); font-size: .82rem; line-height: 1.6; }
.cc-result-actions { margin-top: 12px; }

.cc-record-group { scroll-margin-top: 84px; }
.cc-record-group + .cc-record-group { margin-top: 64px; }
.cc-record-group-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; margin-bottom: 14px; }
.cc-record-group-heading h3 { font-size: 1.55rem; }
.cc-record-group-heading span { color: var(--cc-text-faint); font-size: .72rem; }
.cc-record-collection { border-top: 1px solid var(--cc-border-strong); }
.cc-record-collection:last-child { border-bottom: 1px solid var(--cc-border-strong); }
.cc-record-collection > summary { display: grid; grid-template-columns: minmax(0, 1fr) 130px; gap: 34px; align-items: start; padding: 22px 0; cursor: pointer; list-style: none; }
.cc-record-collection > summary::-webkit-details-marker { display: none; }
.cc-record-collection > summary h3 { font-family: var(--cc-sans); font-size: 1rem; letter-spacing: 0; }
.cc-record-collection > summary p { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; max-width: 820px; margin: 6px 0 0; color: var(--cc-text-muted); font-size: .76rem; line-height: 1.5; }
.cc-record-collection > summary > span { display: flex; justify-content: flex-end; gap: 5px; color: var(--cc-text-muted); font-size: .7rem; text-align: right; }
.cc-record-collection > summary > span strong { color: var(--cc-text); }
.cc-record-collection > summary b { display: inline-block; margin-left: 8px; color: var(--cc-accent); font-size: 1rem; transition: transform .15s ease; }
.cc-record-collection[open] > summary b { transform: rotate(45deg); }
.cc-collection-documents { padding: 0 0 22px 26px; border-left: 2px solid var(--cc-accent); }
.cc-document-row { padding: 22px 24px; background: rgba(255,254,250,.72); border-top: 1px solid var(--cc-border); }
.cc-document-row:last-child { border-bottom: 1px solid var(--cc-border); }
.cc-document-row-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; }
.cc-document-row-heading h4 { margin: 0; font-family: var(--cc-serif); font-size: 1.08rem; }
.cc-document-row-heading a { flex: none; font-size: .72rem; font-weight: 600; }
.cc-document-row-heading a:hover { color: var(--cc-accent-hover); }
.cc-document-description, .cc-document-summary { margin: 10px 0 0; color: var(--cc-text-muted); font-size: .76rem; line-height: 1.6; }
.cc-document-summary span { display: block; margin-bottom: 2px; color: var(--cc-text-faint); font-size: .6rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.cc-document-topics { display: flex; flex-wrap: wrap; gap: 6px; margin: 14px 0 0; padding: 0; list-style: none; }
.cc-document-topics li { padding: 3px 7px; border: 1px solid var(--cc-border); border-radius: var(--cc-radius-full); color: var(--cc-text-muted); font-size: .62rem; }

@media (max-width: 900px) {
  .cc-documents-lead, .cc-record-tool-grid { grid-template-columns: 1fr; }
  .cc-record-tool > p { min-height: 0; }
}

@media (max-width: 720px) {
  .cc-documents-page { padding-top: 48px; }
  .cc-library-snapshot { padding: 28px 24px; }
  [data-cc] .cc-container.cc-record-tools,
  [data-cc] .cc-container.cc-record-library { margin-top: 56px; }
  .cc-record-collection > summary { grid-template-columns: 1fr; gap: 10px; }
  .cc-record-collection > summary > span { justify-content: flex-start; text-align: left; }
  .cc-collection-documents { padding-left: 12px; }
  .cc-document-row { padding: 20px 16px; }
  .cc-document-row-heading { display: block; }
  .cc-document-row-heading a { display: inline-block; margin-top: 8px; }
}

/* ── Deep Dives index and articles ───────────────────────────────────── */
.cc-dives-page, .cc-dive-article { padding-top: 64px; padding-bottom: 24px; }
.cc-dives-lead, .cc-dive-article-lead { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr); gap: 28px; align-items: start; }
.cc-dives-snapshot, .cc-dive-contents { padding: 38px 40px; }
.cc-dives-intro h1, .cc-dive-article-intro h1 { font-size: var(--cc-page-title-size); line-height: 1; margin: 20px 0 22px; }
.cc-dives-intro > p { max-width: 650px; margin: 0; color: var(--cc-text-body); font-size: 1.04rem; line-height: 1.7; }
.cc-dives-meta { margin-top: 28px; color: var(--cc-text-faint); font-size: .76rem; }
.cc-dives-meta a { text-decoration: underline; text-underline-offset: 3px; }
.cc-dives-snapshot, .cc-dive-contents { border-top: 4px solid var(--cc-accent); }
.cc-dives-snapshot h2 { margin: 16px 0 24px; font-size: clamp(1.6rem, 2.7vw, 2.3rem); }
.cc-dives-snapshot h2 strong { font-size: 1.45em; }
.cc-dives-snapshot dl { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0; padding-top: 20px; border-top: 1px solid var(--cc-border); }
.cc-dives-snapshot dl div + div { padding-left: 14px; border-left: 1px solid var(--cc-border); }
.cc-dives-snapshot dt { color: var(--cc-text-faint); font-size: .62rem; letter-spacing: .05em; text-transform: uppercase; }
.cc-dives-snapshot dd { margin: 3px 0 0; font-family: var(--cc-serif); font-size: 1.25rem; font-weight: 600; }
[data-cc] .cc-container.cc-dives-library { margin-top: 84px; }
.cc-dives-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; align-items: start; }
.cc-dive-card { padding: 30px; }
.cc-dive-card.featured { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); column-gap: 42px; }
.cc-dive-card.featured .cc-card-eyebrow, .cc-dive-card.featured h2 { grid-column: 1; }
.cc-dive-card.featured .cc-dive-card-deck, .cc-dive-card.featured > p, .cc-dive-card.featured > a { grid-column: 2; }
.cc-dive-card h2 { margin-top: 12px; font-size: clamp(1.55rem, 2.5vw, 2.2rem); line-height: 1.12; }
.cc-dive-card-deck { margin: 12px 0 0; color: var(--cc-text-body); font-family: var(--cc-serif); font-size: 1rem; line-height: 1.5; }
.cc-dive-card > p:not(.cc-dive-card-deck) { margin: 14px 0 0; color: var(--cc-text-muted); font-size: .8rem; line-height: 1.6; }
.cc-dive-card > a { align-self: end; display: block; margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--cc-border); font-size: .78rem; font-weight: 600; }
.cc-dive-card > a:hover { color: var(--cc-accent-hover); }
.cc-dive-article-intro .cc-card-eyebrow { margin-top: 28px; }
.cc-dive-deck { margin: 0; color: var(--cc-text-body); font-family: var(--cc-serif); font-size: 1.25rem; line-height: 1.5; }
.cc-dive-description { margin: 20px 0 0; color: var(--cc-text-muted); font-size: .86rem; line-height: 1.7; }
.cc-dive-article-links { display: flex; justify-content: space-between; gap: 20px; margin-top: 28px; padding-top: 18px; border-top: 1px solid var(--cc-border); color: var(--cc-text-muted); font-size: .72rem; }
.cc-dive-method { margin-top: 22px; padding: 14px 16px; background: var(--cc-bg); border: 1px solid var(--cc-border); }
.cc-dive-method summary { font-size: .72rem; font-weight: 600; cursor: pointer; }
.cc-dive-method p { margin: 12px 0 0; color: var(--cc-text-muted); font-size: .74rem; line-height: 1.6; }
.cc-dive-contents h2 { margin: 15px 0 20px; font-size: 1.55rem; line-height: 1.15; }
.cc-dive-contents ol { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--cc-border); }
.cc-dive-contents li { border-bottom: 1px solid var(--cc-border); }
.cc-dive-contents a { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 8px; padding: 10px 0; font-size: .72rem; line-height: 1.35; }
.cc-dive-contents a:hover { color: var(--cc-accent-hover); }
.cc-dive-contents a span { color: var(--cc-text-faint); font-family: var(--cc-serif); }
.cc-dive-story { margin-top: 84px; }
[data-cc] .cc-container.cc-dive-chapter { max-width: 920px; margin-top: 96px; scroll-margin-top: 84px; }
[data-cc] .cc-container.cc-dive-chapter:first-child { margin-top: 0; }
.cc-dive-chapter-heading { padding-left: 28px; border-left: 3px solid var(--cc-border-strong); }
.cc-dive-chapter.theme-warning .cc-dive-chapter-heading { border-color: var(--cc-accent); }
.cc-dive-chapter h2 { margin-top: 10px; font-size: clamp(2rem, 4vw, 2.85rem); line-height: 1.08; }
.cc-dive-chapter-subtitle { margin: 10px 0 0; color: var(--cc-text-body); font-family: var(--cc-serif); font-size: 1.08rem; }
.cc-dive-chapter-summary { margin: 20px 0 0; color: var(--cc-text-muted); font-size: .88rem; line-height: 1.75; }
.cc-dive-events { margin-top: 38px; }
.cc-dive-event { position: relative; padding: 30px 0 34px 30px; border-top: 1px solid var(--cc-border); }
.cc-dive-event::before { content: ""; position: absolute; top: 36px; left: 0; width: 9px; height: 9px; border-radius: 50%; background: var(--cc-border-strong); }
.cc-dive-event.key::before { background: var(--cc-accent); }
.cc-dive-event.warning::before, .cc-dive-event.danger::before { background: var(--cc-bad-text); }
.cc-dive-event-date { color: var(--cc-text-faint); font-size: .68rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; }
.cc-dive-event h3 { margin-top: 5px; font-size: 1.45rem; line-height: 1.2; }
.cc-dive-event-body { margin-top: 14px; color: var(--cc-text-body); font-family: var(--cc-serif); font-size: .96rem; line-height: 1.75; }
.cc-dive-event-body p { margin: 0 0 15px; }
.cc-dive-table-wrap { overflow-x: auto; margin: 20px 0; border: 1px solid var(--cc-border); }
.cc-dive-table-wrap table { width: 100%; min-width: 600px; border-collapse: collapse; font-family: var(--cc-sans); font-size: .7rem; }
.cc-dive-table-wrap th, .cc-dive-table-wrap td { padding: 9px 11px; border-bottom: 1px solid var(--cc-border); text-align: left; vertical-align: top; }
.cc-dive-table-wrap th { background: var(--cc-neutral-bg); font-weight: 700; }
.cc-inline-citations { margin-left: 4px; font-family: var(--cc-sans); font-size: .68rem; }
.cc-inline-citations a { color: var(--cc-accent-hover); text-decoration: underline; text-underline-offset: 2px; }
.cc-dive-stats { display: flex; flex-wrap: wrap; gap: 7px; margin: 18px 0 0; padding: 0; list-style: none; }
.cc-dive-stats li { padding: 6px 9px; border: 1px solid var(--cc-border); border-radius: var(--cc-radius); color: var(--cc-text-muted); background: var(--cc-paper); font-size: .66rem; }
.cc-dive-stats li.warning { color: var(--cc-warn-text); background: var(--cc-warn-bg); }
.cc-dive-stats li.danger { color: var(--cc-bad-text); background: var(--cc-bad-bg); }
[data-cc] .cc-container.cc-dive-references { max-width: 920px; margin-top: 104px; }
.cc-reference-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--cc-border-strong); }
.cc-reference-list > li { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 12px; padding: 20px 0; border-bottom: 1px solid var(--cc-border); scroll-margin-top: 84px; }
.cc-reference-list > li > span { color: var(--cc-accent); font-family: var(--cc-serif); font-weight: 600; }
.cc-reference-list h3 { font-family: var(--cc-sans); font-size: .8rem; letter-spacing: 0; }
.cc-reference-list time { display: block; margin-top: 2px; color: var(--cc-text-faint); font-size: .65rem; }
.cc-reference-list blockquote { margin: 9px 0 0; color: var(--cc-text-muted); font-family: var(--cc-serif); font-size: .78rem; line-height: 1.55; }

@media (max-width: 900px) {
  .cc-dives-lead, .cc-dive-article-lead { grid-template-columns: 1fr; }
  .cc-dive-card.featured { display: block; }
}

@media (max-width: 720px) {
  .cc-dives-page, .cc-dive-article { padding-top: 48px; }
  .cc-dives-snapshot, .cc-dive-contents { padding: 28px 24px; }
  [data-cc] .cc-container.cc-dives-library { margin-top: 56px; }
  .cc-dives-grid { grid-template-columns: 1fr; }
  .cc-dive-story { margin-top: 56px; }
  [data-cc] .cc-container.cc-dive-chapter { margin-top: 68px; }
  .cc-dive-chapter-heading { padding-left: 18px; }
  .cc-dive-event { padding-left: 22px; }
  [data-cc] .cc-container.cc-dive-references { margin-top: 72px; }
}

/* ── About ───────────────────────────────────────────────────────────── */
.cc-about-page { padding-top: 64px; padding-bottom: 24px; }
.cc-about-lead { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr); gap: 28px; align-items: start; }
.cc-about-example { padding: 38px 40px; }
.cc-about-intro h1 { font-size: var(--cc-page-title-size); line-height: 1; margin: 18px 0 22px; }
.cc-about-intro > p { max-width: 650px; margin: 0; color: var(--cc-text-body); font-size: 1.04rem; line-height: 1.7; }
.cc-about-meta { margin-top: 28px; color: var(--cc-text-faint); font-size: .76rem; }
.cc-about-meta a { text-decoration: underline; text-underline-offset: 3px; }
.cc-about-example { border-top: 4px solid var(--cc-accent); }
.cc-about-example h2 { margin: 14px 0 24px; font-size: clamp(1.5rem, 2.5vw, 2.15rem); line-height: 1.15; }
.cc-about-example > div:not(.cc-card-eyebrow) { padding-top: 14px; border-top: 1px solid var(--cc-border); }
.cc-about-example > div span { display: block; color: var(--cc-text-faint); font-size: .62rem; letter-spacing: .06em; text-transform: uppercase; }
.cc-about-example > div strong { display: block; margin-top: 3px; font-family: var(--cc-serif); font-size: .98rem; line-height: 1.45; }
.cc-about-example > p { margin: 8px 0 18px; color: var(--cc-text-muted); font-size: .75rem; line-height: 1.55; }
.cc-about-example > p:last-child { margin-bottom: 0; }
[data-cc] .cc-container.cc-about-capabilities,
[data-cc] .cc-container.cc-about-method,
[data-cc] .cc-container.cc-about-data { margin-top: 84px; }
.cc-about-cap-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; align-items: start; }
.cc-about-cap-grid > .cc-card { padding: 26px; }
.cc-about-cap-grid h3 { font-size: 1.35rem; }
.cc-about-cap-grid p { margin: 10px 0 0; color: var(--cc-text-muted); font-size: .79rem; line-height: 1.6; }
.cc-about-cap-grid strong { color: var(--cc-text-body); font-weight: 600; }
.cc-about-method, .cc-about-data { display: grid; grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr); gap: 64px; align-items: start; padding-top: 56px !important; border-top: 1px solid var(--cc-border-strong); }
.cc-about-method h2, .cc-about-data h2 { margin-top: 10px; font-size: clamp(2rem, 3.2vw, 2.8rem); line-height: 1.08; }
.cc-about-prose { max-width: 700px; }
.cc-about-prose p { margin: 0 0 20px; color: var(--cc-text-body); font-family: var(--cc-serif); font-size: 1rem; line-height: 1.8; }
.cc-about-prose p:last-child { margin-bottom: 0; }
.cc-about-data-card { padding: 30px 34px; border-left: 3px solid var(--cc-accent); }
.cc-about-data-card p { margin: 0 0 18px; color: var(--cc-text-body); font-size: .86rem; line-height: 1.7; }
.cc-about-data-card p:last-child { margin-bottom: 0; }
.cc-about-source-line { padding-top: 17px; border-top: 1px solid var(--cc-border); color: var(--cc-text-faint) !important; font-size: .7rem !important; }

@media (max-width: 900px) {
  .cc-about-lead { grid-template-columns: 1fr; }
  .cc-about-cap-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cc-about-method, .cc-about-data { grid-template-columns: 1fr; gap: 28px; }
}

@media (max-width: 720px) {
  .cc-about-page { padding-top: 48px; }
  .cc-about-example { padding: 28px 24px; }
  [data-cc] .cc-container.cc-about-capabilities,
  [data-cc] .cc-container.cc-about-method,
  [data-cc] .cc-container.cc-about-data { margin-top: 56px; }
  .cc-about-method, .cc-about-data { padding-top: 40px !important; }
  .cc-about-cap-grid { grid-template-columns: 1fr; }
  .cc-about-data-card { padding: 26px 22px; }
}

@media (max-width: 900px) {
  .cc-tracker-lead { grid-template-columns: 1fr; }
  .cc-project-grid { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .cc-tracker-page { padding-top: 48px; }
  .cc-stage-summary { padding: 28px 24px; }
  .cc-tracker-stages { margin-top: 56px; }
  [data-cc] .cc-container.cc-tracker-stage { margin-top: 56px; }
  .cc-tracker-stage-heading { display: block; }
  .cc-tracker-stage-heading > p { margin-top: 12px; }
}

@media (max-width: 460px) {
  .cc-stage-strip { grid-template-columns: repeat(2, 1fr); row-gap: 14px; }
  .cc-project-card { padding: 24px 22px; }
}

/* ── Budget Explorer ─────────────────────────────────────────────────── */
.cc-explore-page { padding-top: 64px; padding-bottom: 24px; }

.cc-explore-lead { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr); gap: 28px; align-items: start; }
.cc-explore-lead h1 { font-size: var(--cc-page-title-size); line-height: 1.04; letter-spacing: -0.035em; }
.cc-explore-lead > div > p { max-width: 620px; margin-top: 18px; color: var(--cc-text-body); font-size: 1.04rem; line-height: 1.65; }
.cc-explore-lead > div > p a { color: var(--cc-accent); font-weight: 600; }
.cc-explore-lead > div > p a:hover { color: var(--cc-accent-hover); text-decoration: underline; }
.cc-explore-howto { padding: 30px 32px; border-left: 3px solid var(--cc-accent); }
.cc-explore-howto p:not(.cc-card-eyebrow) { margin: 0; color: var(--cc-text-body); font-size: .88rem; line-height: 1.65; }

/* Index grid — every section previewed up front, nothing hidden behind a
   dropdown. Two wide cards (Finance Decoder, All-Funds) reflect that those
   two are the broadest reports; the rest share a 3-up grid. */
[data-cc] .cc-container.cc-explore-index { margin-top: 56px; padding-bottom: 8px; }
.cc-explore-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.cc-explore-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 22px 24px;
  background: var(--cc-paper);
  border: 1px solid var(--cc-border);
  border-radius: var(--cc-radius-lg);
  box-shadow: var(--cc-shadow);
  transition: border-color .15s ease, transform .15s ease;
}
.cc-explore-card:hover { border-color: var(--cc-border-strong); transform: translateY(-2px); }
.cc-explore-card-wide { grid-column: span 3; flex-direction: row; align-items: center; justify-content: space-between; gap: 24px; }
.cc-explore-card-wide .cc-explore-card-desc { max-width: 480px; }
.cc-explore-card-title { font-family: var(--cc-serif); font-size: 1.15rem; font-weight: 600; color: var(--cc-text); }
.cc-explore-card-desc { color: var(--cc-text-muted); font-size: .82rem; line-height: 1.5; }
.cc-explore-card-stat { margin-top: auto; padding-top: 10px; border-top: 1px solid var(--cc-border); color: var(--cc-accent); font-size: .8rem; font-weight: 600; }
.cc-explore-card-wide .cc-explore-card-stat { margin-top: 0; padding-top: 0; border-top: none; flex-shrink: 0; }
.cc-explore-card-stat span { margin-left: 2px; }

/* Full sections below the index — one per topic, all real, all visible.
   Spacing must be set on the [data-cc] .cc-container.X selector, not plain
   .cc-section — .cc-container's own padding shorthand (0 var(--cc-gutter))
   otherwise wins on specificity and zeroes out the vertical padding. */
.cc-explore-section { scroll-margin-top: 84px; }
[data-cc] .cc-container.cc-explore-section { margin-top: 84px; padding-top: 32px; padding-bottom: 8px; }
.cc-explore-section:first-of-type { margin-top: 0; }
.cc-explore-section .cc-section-heading { align-items: baseline; }
.cc-explore-top { font-size: .74rem; color: var(--cc-text-faint); font-weight: 600; white-space: nowrap; }
.cc-explore-top:hover { color: var(--cc-accent); }
.cc-explore-section-lede { max-width: 900px; margin: 0 0 24px; color: var(--cc-text-body); font-size: .95rem; line-height: 1.7; }
.cc-explore-subhead { margin: 0 0 12px; font-size: .78rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: var(--cc-text-muted); }
.cc-explore-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; align-items: start; margin-bottom: 8px; }

.cc-explore-decoder-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 24px; }
.cc-explore-decoder-card { padding: 18px 20px; background: var(--cc-paper); border: 1px solid var(--cc-border); border-radius: var(--cc-radius); }
.cc-explore-decoder-title { margin: 0; font-size: .82rem; font-weight: 600; color: var(--cc-text); }
.cc-explore-decoder-val { margin: 6px 0; font-family: var(--cc-serif); font-size: 1.3rem; color: var(--cc-accent); }
.cc-explore-decoder-def { margin: 0; color: var(--cc-text-muted); font-size: .76rem; line-height: 1.55; }

@media (max-width: 1024px) {
  .cc-explore-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cc-explore-card-wide { grid-column: span 2; }
}

@media (max-width: 900px) {
  .cc-explore-lead { grid-template-columns: 1fr; }
  .cc-explore-cols { grid-template-columns: 1fr; gap: 24px; }
  .cc-explore-decoder-grid { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .cc-explore-page { padding-top: 48px; }
  .cc-explore-grid { grid-template-columns: 1fr; }
  .cc-explore-card-wide { grid-column: span 1; flex-direction: column; align-items: flex-start; }
  .cc-explore-card-wide .cc-explore-card-stat { padding-top: 10px; border-top: 1px solid var(--cc-border); }
  .cc-explore-howto { padding: 24px 22px; }
  [data-cc] .cc-container.cc-explore-section { margin-top: 56px; padding-top: 24px; }
}

/* ── Simple forms (Feedback, Connect step markers, Manage Subscription) ──────── */
[data-cc] .cc-field { margin-bottom: 18px; }
[data-cc] .cc-field-label { display: block; margin-bottom: 8px; color: var(--cc-text-muted); font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
[data-cc] .cc-field textarea,
[data-cc] .cc-field input[type="text"],
[data-cc] .cc-field input[type="email"],
[data-cc] .cc-field input[type="search"] {
  width: 100%; padding: 11px 14px; border: 1px solid var(--cc-border-strong); border-radius: var(--cc-radius);
  color: var(--cc-text); background: var(--cc-surface); font: inherit; font-size: .92rem;
}
[data-cc] .cc-field textarea { min-height: 130px; resize: vertical; }
[data-cc] .cc-field textarea:focus, [data-cc] .cc-field input:focus { outline: 2px solid var(--cc-accent-soft-bg); outline-offset: 1px; border-color: var(--cc-accent); }
[data-cc] .cc-field-status { margin-top: 14px; font-size: .85rem; }
[data-cc] .cc-field-status.ok { color: var(--cc-good-text); }
[data-cc] .cc-field-status.err { color: var(--cc-bad-text); }
[data-cc] .cc-field-checkbox-row { display: flex; align-items: flex-start; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--cc-border); }
[data-cc] .cc-field-checkbox-row:last-child { border-bottom: none; }
[data-cc] .cc-field-checkbox-row input[type="checkbox"] { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--cc-accent); flex-shrink: 0; cursor: pointer; }
[data-cc] .cc-field-checkbox-info { flex: 1; cursor: pointer; }
[data-cc] .cc-field-checkbox-name { font-size: .92rem; font-weight: 600; }
[data-cc] .cc-field-checkbox-desc { margin-top: 2px; color: var(--cc-text-muted); font-size: .8rem; line-height: 1.5; }
[data-cc] .cc-manage-lang-toggle { display: flex; gap: 8px; }
[data-cc] .cc-manage-lang-toggle button { flex: 1; padding: 9px 12px; border: 1px solid var(--cc-border-strong); border-radius: var(--cc-radius); background: transparent; color: var(--cc-text-muted); font: inherit; font-size: .85rem; font-weight: 600; cursor: pointer; text-align: center; }
[data-cc] .cc-manage-lang-toggle button.is-active { background: var(--cc-accent-soft-bg); border-color: var(--cc-accent); color: var(--cc-accent-soft-text); }
[data-cc] .cc-link-button { background: none; border: none; padding: 0; color: var(--cc-text-muted); font: inherit; font-size: .82rem; text-decoration: underline; cursor: pointer; }
[data-cc] .cc-link-button:hover { color: var(--cc-text); }

/* ── Feedback page ────────────────────────────────────────────────────────── */
[data-cc] .cc-feedback-lead { padding-top: 48px; padding-bottom: 64px; }
[data-cc] .cc-feedback-card { margin-top: 24px; }
[data-cc] .cc-feedback-success { margin-top: 24px; text-align: center; }

/* ── Ask page ─────────────────────────────────────────────────────────────── */
[data-cc] .cc-ask-lead { padding-top: 48px; padding-bottom: 64px; }
[data-cc] .cc-ask-form { margin-top: 24px; }
[data-cc] .cc-ask-examples { margin-top: 12px; color: var(--cc-text-muted); font-size: .82rem; line-height: 1.8; }
[data-cc] .cc-ask-examples a { color: var(--cc-text-muted); border-bottom: 1px dotted var(--cc-border-strong); }
[data-cc] .cc-ask-examples a:hover { color: var(--cc-accent); }

/* ── Connect page (MCP integration guide) ────────────────────────────────────── */
[data-cc] .cc-connect-lead { padding-top: 48px; padding-bottom: 40px; }
[data-cc] .cc-connect-badges { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
[data-cc] .cc-connect-badge { padding: 4px 12px; border: 1px solid var(--cc-border); border-radius: var(--cc-radius-full); color: var(--cc-text-muted); font-size: .74rem; font-weight: 600; }
[data-cc] .cc-connect-steps { display: flex; flex-direction: column; gap: 48px; padding-bottom: 64px; max-width: 720px; }
[data-cc] .cc-connect-step { border-top: 1px solid var(--cc-border); padding-top: 36px; }
[data-cc] .cc-connect-step-label { margin-bottom: 12px; color: var(--cc-accent); font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
[data-cc] .cc-connect-step h2 { margin-bottom: 16px; }
[data-cc] .cc-connect-step p { margin-bottom: 14px; color: var(--cc-text-body); line-height: 1.7; }
[data-cc] .cc-tab-bar { display: inline-flex; gap: 4px; margin-bottom: 18px; padding: 4px; border: 1px solid var(--cc-border); border-radius: var(--cc-radius-md); background: var(--cc-surface); }
[data-cc] .cc-tab-btn { padding: 7px 16px; border: 1px solid transparent; border-radius: var(--cc-radius); background: transparent; color: var(--cc-text-muted); font: inherit; font-size: .8rem; font-weight: 600; cursor: pointer; white-space: nowrap; }
[data-cc] .cc-tab-btn:hover { color: var(--cc-text); }
[data-cc] .cc-tab-btn.is-active { background: var(--cc-bg); border-color: var(--cc-border); color: var(--cc-accent); }
[data-cc] .cc-tab-panel { display: none; }
[data-cc] .cc-tab-panel.is-active { display: block; }
[data-cc] .cc-connect-instr-list { list-style: none; display: flex; flex-direction: column; gap: 14px; }
[data-cc] .cc-connect-instr-list li { display: flex; gap: 12px; align-items: flex-start; font-size: .9rem; color: var(--cc-text-body); line-height: 1.6; }
[data-cc] .cc-connect-instr-num { flex-shrink: 0; margin-top: 1px; padding: 2px 7px; border-radius: var(--cc-radius-sm); background: var(--cc-accent-soft-bg); color: var(--cc-accent-soft-text); font-size: .68rem; font-weight: 700; letter-spacing: .04em; }
[data-cc] .cc-connect-instr-list code { padding: 1px 6px; border: 1px solid var(--cc-border); border-radius: var(--cc-radius-sm); background: var(--cc-bg); font-family: monospace; font-size: .82rem; }
[data-cc] .cc-code-block { margin: 16px 0; border: 1px solid var(--cc-border); border-radius: var(--cc-radius); background: var(--cc-surface); overflow: hidden; }
[data-cc] .cc-code-block-head { display: flex; align-items: center; justify-content: space-between; padding: 9px 14px; border-bottom: 1px solid var(--cc-border); color: var(--cc-text-faint); font-size: .68rem; letter-spacing: .04em; }
[data-cc] .cc-code-copy { padding: 3px 10px; border: 1px solid var(--cc-border); border-radius: var(--cc-radius-sm); background: none; color: var(--cc-text-faint); font-size: .68rem; cursor: pointer; }
[data-cc] .cc-code-copy:hover { border-color: var(--cc-accent); color: var(--cc-accent); }
[data-cc] .cc-code-copy.is-copied { border-color: var(--cc-good-text); color: var(--cc-good-text); }
[data-cc] .cc-code-block pre { margin: 0; padding: 16px 18px; overflow-x: auto; font-family: monospace; font-size: .82rem; line-height: 1.7; color: var(--cc-text); }
[data-cc] .cc-callout { margin-top: 16px; padding: 12px 16px; border: 1px solid var(--cc-border); border-left: 3px solid var(--cc-accent); border-radius: 0 var(--cc-radius) var(--cc-radius) 0; background: var(--cc-surface); color: var(--cc-text-body); font-size: .85rem; line-height: 1.6; }
[data-cc] .cc-connect-prompt-demo { margin-top: 16px; padding: 18px 20px; border: 1px solid var(--cc-border); border-radius: var(--cc-radius); background: var(--cc-surface); }
[data-cc] .cc-connect-prompt-label { margin-bottom: 10px; color: var(--cc-text-faint); font-size: .66rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
[data-cc] .cc-connect-prompt-bubble { display: flex; gap: 10px; align-items: flex-start; }
[data-cc] .cc-connect-prompt-avatar { flex-shrink: 0; padding: 4px 8px; border: 1px solid var(--cc-accent); border-radius: var(--cc-radius-sm); background: var(--cc-accent-soft-bg); color: var(--cc-accent-soft-text); font-size: .72rem; font-weight: 700; }
[data-cc] .cc-connect-prompt-bubble p { margin: 0; color: var(--cc-text); font-style: italic; }
[data-cc] .cc-connect-tools { display: flex; flex-direction: column; gap: 10px; margin-top: 16px; }
[data-cc] .cc-connect-tool { display: flex; gap: 16px; padding: 16px 18px; border: 1px solid var(--cc-border); border-radius: var(--cc-radius); background: var(--cc-surface); }
[data-cc] .cc-connect-tool-name { flex-shrink: 0; min-width: 150px; padding-top: 1px; color: var(--cc-accent); font-family: monospace; font-size: .8rem; }
[data-cc] .cc-connect-tool-desc { color: var(--cc-text-body); font-size: .86rem; line-height: 1.6; }
[data-cc] .cc-connect-footnote { display: flex; flex-wrap: wrap; gap: 6px 20px; padding: 20px 0 0; border-top: 1px solid var(--cc-border); color: var(--cc-text-faint); font-size: .74rem; }
@media (max-width: 640px) {
  [data-cc] .cc-connect-tool { flex-direction: column; gap: 4px; }
  [data-cc] .cc-tab-bar { flex-wrap: wrap; width: 100%; }
  [data-cc] .cc-tab-btn { flex: 1; text-align: center; }
}

/* ── Manage Subscription page ────────────────────────────────────────────────── */
[data-cc] .cc-manage-lead { padding-top: 48px; padding-bottom: 64px; }
/* The markup asks for .cc-reading-column (720px), but `[data-cc] .cc-container`
   (max-width: var(--cc-max)) outranks the bare `.cc-reading-column` rule by
   specificity, so these forms were rendering at the full 1200px. Scoped here
   rather than fixed globally -- the same combo appears on ask/feedback/connect/
   privacy/meeting-detail/campaign-finance and narrowing those is a separate
   design call. Forms read best a touch narrower than prose, hence 640px. */
[data-cc] .cc-manage-page .cc-reading-column { max-width: 640px; }

/* On/off switch (account page's master notifications toggle). A real
   checkbox underneath -- keyboard/screen-reader behaviour comes for free. */
[data-cc] .cc-switch { position: relative; display: inline-flex; align-items: center; gap: 12px; cursor: pointer; }
[data-cc] .cc-switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
[data-cc] .cc-switch-track { position: relative; flex-shrink: 0; width: 42px; height: 24px; border-radius: 999px; background: var(--cc-border-strong); transition: background .15s; }
[data-cc] .cc-switch-track::after { content: ""; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, .25); transition: transform .15s; }
[data-cc] .cc-switch input:checked + .cc-switch-track { background: var(--cc-accent); }
[data-cc] .cc-switch input:checked + .cc-switch-track::after { transform: translateX(18px); }
[data-cc] .cc-switch input:focus-visible + .cc-switch-track { outline: 2px solid var(--cc-accent-soft-bg); outline-offset: 2px; }
[data-cc] .cc-switch-text { font-size: .92rem; }
[data-cc] .cc-manage-page .is-paused { opacity: .45; pointer-events: none; }
[data-cc] .cc-manage-section { display: none; }
[data-cc] .cc-manage-section.is-active { display: block; }
[data-cc] .cc-manage-note { margin-top: 16px; color: var(--cc-text-muted); font-size: .82rem; line-height: 1.6; }
[data-cc] .cc-manage-subhead { margin-bottom: 20px; color: var(--cc-text-muted); font-size: .88rem; }
[data-cc] .cc-manage-subhead strong { color: var(--cc-text); }
[data-cc] .cc-manage-unsub-row { margin-top: 20px; text-align: center; }

/* ── Quick-subscribe widget (meetings list + meeting detail pages) ───────────── */
[data-cc] .cc-subscribe-widget { margin-top: 24px; }
[data-cc] .cc-subscribe-title { margin-bottom: 6px; }
[data-cc] .cc-subscribe-blurb { margin-bottom: 16px; color: var(--cc-text-muted); font-size: .85rem; line-height: 1.6; }
[data-cc] .cc-subscribe-form { display: flex; gap: 10px; }
[data-cc] .cc-subscribe-form input[type="email"] {
  flex: 1; min-width: 0; padding: 11px 14px; border: 1px solid var(--cc-border-strong); border-radius: var(--cc-radius);
  color: var(--cc-text); background: var(--cc-surface); font: inherit; font-size: .92rem;
}
[data-cc] .cc-subscribe-form input[type="email"]:focus { outline: 2px solid var(--cc-accent-soft-bg); outline-offset: 1px; border-color: var(--cc-accent); }
[data-cc] .cc-subscribe-widget .cc-manage-note { margin-top: 12px; }
[data-cc] .cc-meetings-subscribe-section .cc-subscribe-widget { margin-top: 0; }
@media (max-width: 480px) {
  [data-cc] .cc-subscribe-form { flex-direction: column; }
}

/* ── Campaign Finance page ────────────────────────────────────────────────────── */
[data-cc] .cc-cf-lead { padding-top: 48px; padding-bottom: 32px; }
[data-cc] .cc-cf-body { max-width: var(--cc-max); padding-bottom: 64px; }
[data-cc] .cc-num { text-align: right; font-variant-numeric: tabular-nums; }
[data-cc] .cc-cf-filer-row { cursor: pointer; }
[data-cc] .cc-cf-filer-row:hover td { background: var(--cc-neutral-bg); }
[data-cc] .cc-cf-filer-name { font-weight: 600; }
[data-cc] .cc-cf-filer-office { margin-top: 2px; color: var(--cc-text-muted); font-size: .68rem; }
[data-cc] .cc-cf-detail { margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--cc-border); }
[data-cc] .cc-cf-detail h2 { margin-bottom: 4px; }
[data-cc] .cc-cf-detail-sub { margin-bottom: 18px; color: var(--cc-text-muted); font-size: .85rem; }
[data-cc] .cc-cf-item-sub { margin-top: 3px; color: var(--cc-text-muted); font-size: .68rem; }
[data-cc] .cc-cf-src { color: var(--cc-accent); font-size: .68rem; }

/* ── Meeting detail page (/meetings/<id>) ────────────────────────────────────── */
[data-cc] .cc-meeting-detail-lead { padding-top: 40px; padding-bottom: 64px; max-width: 760px; }
[data-cc] .cc-meeting-detail-head { margin-bottom: 32px; }
[data-cc] .cc-meeting-detail-head h1 { margin: 4px 0 4px; }
[data-cc] .cc-meeting-detail-date { color: var(--cc-text-muted); font-size: .92rem; margin-bottom: 14px; }
[data-cc] .cc-meeting-cancelled-notice { border-left-color: var(--cc-bad-text); color: var(--cc-bad-text); }
[data-cc] .cc-meeting-badges { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0; }
[data-cc] .cc-meeting-badge { padding: 3px 10px; border: 1px solid var(--cc-accent); border-radius: var(--cc-radius); color: var(--cc-accent); font-size: .72rem; }
[data-cc] .cc-meeting-print-btn { margin: 8px 0 18px; }
[data-cc] .cc-meeting-richness { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 10px; }
[data-cc] .cc-meeting-rich-item { display: flex; align-items: center; gap: 5px; color: var(--cc-text-faint); font-size: .72rem; }
[data-cc] .cc-meeting-rich-item.has { color: var(--cc-text-muted); }
[data-cc] .cc-meeting-rich-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--cc-border-strong); flex-shrink: 0; }
[data-cc] .cc-meeting-rich-item.has .cc-meeting-rich-dot { background: var(--cc-accent); }
[data-cc] .cc-meeting-empty { color: var(--cc-text-muted); }
[data-cc] .cc-meeting-summary { margin-bottom: 28px; }
[data-cc] .cc-meeting-summary-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
[data-cc] .cc-meeting-summary-badge { padding: 2px 8px; border-radius: var(--cc-radius-full); background: var(--cc-accent-soft-bg); color: var(--cc-accent-soft-text); font-size: .64rem; font-weight: 700; }
[data-cc] .cc-meeting-summary-body { color: var(--cc-text-body); font-size: .92rem; line-height: 1.75; }
[data-cc] .cc-meeting-summary-h2 { margin: 18px 0 8px; font-size: 1.1rem; }
[data-cc] .cc-meeting-summary-h3 { margin: 14px 0 6px; font-size: .96rem; }
[data-cc] .cc-meeting-summary-hr { margin: 16px 0; border: none; border-top: 1px solid var(--cc-border); }
[data-cc] .cc-meeting-summary-bullet { position: relative; margin: 4px 0; padding-left: 16px; }
[data-cc] .cc-meeting-summary-bullet::before { content: '\2013'; position: absolute; left: 0; color: var(--cc-text-faint); }
[data-cc] .cc-meeting-summary-p { margin: 8px 0; }
[data-cc] .cc-meeting-summary-disclaimer { margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--cc-border); color: var(--cc-text-faint); font-size: .72rem; }
[data-cc] .cc-meeting-detail-section { margin-bottom: 32px; }
[data-cc] .cc-meeting-detail-section h2 { margin-bottom: 14px; padding-bottom: 8px; border-bottom: 1px solid var(--cc-border); font-size: 1.1rem; }
[data-cc] .cc-meeting-highlight { margin-bottom: 14px; color: var(--cc-text-body); font-size: .9rem; line-height: 1.65; }
[data-cc] .cc-meeting-highlight-label { margin-bottom: 3px; color: var(--cc-text); font-weight: 600; font-size: .86rem; }
[data-cc] .cc-meeting-agenda-group { margin-bottom: 22px; }
[data-cc] .cc-meeting-agenda-group-title { padding-bottom: 6px; margin-bottom: 10px; border-bottom: 1px solid var(--cc-accent-soft-bg); color: var(--cc-accent); font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
[data-cc] .cc-meeting-agenda-group-toggle { display: flex; align-items: center; justify-content: space-between; }
[data-cc] .cc-meeting-agenda-group-body { display: none; }
[data-cc] .cc-meeting-agenda-group-body.is-open { display: block; }
[data-cc] .cc-meeting-agenda-item { padding: 12px 0; border-bottom: 1px solid var(--cc-border); }
[data-cc] .cc-meeting-agenda-item:last-child { border-bottom: none; }
[data-cc] .cc-meeting-ai-header { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; margin-bottom: 5px; }
[data-cc] .cc-meeting-ai-num { color: var(--cc-text-faint); font-size: .72rem; }
[data-cc] .cc-meeting-ai-type-badge { padding: 1px 7px; border-radius: var(--cc-radius-sm); color: var(--cc-accent-on); font-size: .66rem; font-weight: 700; white-space: nowrap; }
[data-cc] .cc-meeting-ai-type-badge.slate { background: var(--cc-badge-slate); }
[data-cc] .cc-meeting-ai-type-badge.gold { background: var(--cc-accent); }
[data-cc] .cc-meeting-ai-type-badge.blue { background: var(--cc-badge-blue); }
[data-cc] .cc-meeting-ai-type-badge.sage { background: var(--cc-badge-sage); }
[data-cc] .cc-meeting-ai-type-badge.bad { background: var(--cc-bad-text); }
[data-cc] .cc-meeting-ai-type-badge.neutral { background: var(--cc-text-faint); }
[data-cc] .cc-meeting-ai-title { font-weight: 600; font-size: .9rem; }
[data-cc] .cc-meeting-ai-desc { margin-top: 4px; color: var(--cc-text-body); font-size: .86rem; line-height: 1.6; }
[data-cc] .cc-meeting-ai-discussion { margin-top: 8px; padding: 10px 12px; border-radius: var(--cc-radius); background: var(--cc-neutral-bg); font-size: .84rem; line-height: 1.6; }
[data-cc] .cc-meeting-ai-discussion-label { margin-bottom: 3px; color: var(--cc-text-faint); font-size: .66rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
[data-cc] .cc-meeting-votes { margin-top: 8px; }
[data-cc] .cc-meeting-vote-unanimous { display: flex; align-items: center; gap: 12px; }
[data-cc] .cc-meeting-vote-tally { color: var(--cc-text-muted); font-size: .78rem; }
[data-cc] .cc-meeting-vote-roll { display: flex; flex-direction: column; gap: 3px; margin-top: 6px; }
[data-cc] .cc-meeting-vote-row { display: flex; justify-content: space-between; gap: 10px; font-size: .78rem; }
[data-cc] .cc-meeting-vote-val { font-weight: 700; }
[data-cc] .cc-meeting-vote-val.aye { color: var(--cc-good-text); }
[data-cc] .cc-meeting-vote-val.noe { color: var(--cc-bad-text); }
[data-cc] .cc-meeting-vote-val.absent { color: var(--cc-text-faint); }
[data-cc] .cc-meeting-tc-toggle { padding: 2px 9px; border: 1px solid var(--cc-border-strong); border-radius: var(--cc-radius-full); background: none; color: var(--cc-text-muted); font: inherit; font-size: .68rem; cursor: pointer; }
[data-cc] .cc-meeting-tc-toggle:hover { color: var(--cc-accent); border-color: var(--cc-accent); }
[data-cc] .cc-meeting-attachments { margin-top: 8px; display: flex; flex-direction: column; gap: 6px; }
[data-cc] .cc-meeting-attachment-row a { color: var(--cc-accent); font-size: .8rem; }
[data-cc] .cc-meeting-attachment-summary { margin-top: 2px; color: var(--cc-text-muted); font-size: .76rem; }
[data-cc] .cc-meeting-unlinked-item { margin-bottom: 16px; padding-bottom: 14px; border-bottom: 1px solid var(--cc-border); }
[data-cc] .cc-meeting-unlinked-title { margin-bottom: 6px; font-weight: 600; font-size: .88rem; }
[data-cc] .cc-meeting-transcript-count { margin-bottom: 14px; color: var(--cc-text-muted); font-size: .82rem; }
[data-cc] .cc-meeting-transcript-cards { display: flex; flex-direction: column; gap: 10px; }
[data-cc] .cc-meeting-tc-clamp { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; color: var(--cc-text-body); font-size: .84rem; line-height: 1.6; }
[data-cc] .cc-meeting-tc-open { color: var(--cc-text-body); font-size: .84rem; line-height: 1.6; }
[data-cc] .cc-meeting-tc-footer { margin-top: 10px; }

/* ── Meeting archive navigation (by year / by public body) ─────────────── */
.cc-meeting-archive-nav { margin-top: 24px; }
.cc-meeting-archive-nav h3 { font-family: var(--cc-sans); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--cc-text-muted); margin: 18px 0 8px; }
.cc-meeting-archive-links { display: flex; flex-wrap: wrap; gap: 8px; }
.cc-meeting-archive-links a { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border: 1px solid var(--cc-border); border-radius: 999px; background: var(--cc-surface); color: var(--cc-text); text-decoration: none; font-family: var(--cc-sans); font-size: 14px; }
.cc-meeting-archive-links a span { color: var(--cc-text-muted); font-variant-numeric: tabular-nums; }
.cc-meeting-archive-links a:hover, .cc-meeting-archive-links a:focus-visible { border-color: var(--cc-border-strong); color: var(--cc-accent); }
.cc-meeting-archive-links a[aria-current="page"] { border-color: var(--cc-accent); background: var(--cc-accent-soft-bg); color: var(--cc-accent-soft-text); }
