/* COYNTOSS · House and governor overview pages.
   Same editorial system as the Senate and Analysis pages: serif heads,
sentence-case kickers,
hairline rules,
no boxed cards or pill badges. */

.forecast-page--house,
.forecast-page--governor,
.forecast-page--senate { padding-bottom: 72px; }/* Masthead. */
.forecast-page--house .page-hero,
.forecast-page--governor .page-hero,
.forecast-page--senate .page-hero { padding: 40px 0 6px; border-bottom: 0; }.forecast-page--house .page-hero .eyebrow,
.forecast-page--governor .page-hero .eyebrow,
.forecast-page--senate .page-hero .eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--ink-soft);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .01em;
}.forecast-page--house .page-hero h1,
.forecast-page--governor .page-hero h1,
.forecast-page--senate .page-hero h1 { max-width: 900px; margin-top: 10px; font-size: clamp(2.2rem, 4.6vw, 3.4rem); line-height: 1.05; }
.forecast-page--house .page-hero .lede { margin-top: 14px; }.forecast-page--house .page-hero .updated,
.forecast-page--governor .page-hero .updated,
.forecast-page--senate .page-hero .updated { margin-top: 14px; color: var(--muted); font-size: 13px; }
.status-badge--experimental {
  padding: 2px 8px;
  border: 1px solid var(--amber);
  border-radius: 2px;
  background: transparent;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}/* Section heads: sentence-case kicker over a serif headline. */
.forecast-page--house .eyebrow,
.forecast-page--governor .eyebrow,
.forecast-page--senate .eyebrow { text-transform: none; }.forecast-page--house .panel-header .eyebrow,
.forecast-page--governor .panel-header .eyebrow,
.forecast-page--senate .panel-header .eyebrow,
.forecast-page--house .section-heading .eyebrow,
.forecast-page--house .house-methodology > .eyebrow {
  display: block;
  color: var(--ink-soft);
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .01em;
  text-transform: lowercase;
}.forecast-page--house .panel-header .eyebrow::first-letter,
.forecast-page--governor .panel-header .eyebrow::first-letter,
.forecast-page--senate .panel-header .eyebrow::first-letter,
.forecast-page--house .section-heading .eyebrow::first-letter,
.forecast-page--house .house-methodology > .eyebrow::first-letter { text-transform: uppercase; }.forecast-page--house .panel,
.forecast-page--governor .panel,
.forecast-page--senate .panel,
.forecast-page--house .content-section { margin-top: 56px; border-top: 0; border-bottom: 0; }.forecast-page--house .panel-header h2,
.forecast-page--governor .panel-header h2,
.forecast-page--senate .panel-header h2,
.forecast-page--house .section-heading h2,
.forecast-page--house .house-methodology h2 { font-family: var(--serif) !important; font-size: clamp(1.4rem, 2.2vw, 1.85rem); }.forecast-page--house .panel-note,
.forecast-page--governor .panel-note,
.forecast-page--senate .panel-note,
.forecast-page--house .section-note { color: var(--ink-soft); font-family: var(--serif) !important; font-size: 1rem; }.forecast-page--house .latest,
.forecast-page--governor .latest,
.forecast-page--senate .latest { color: var(--muted); font-size: 12px; text-align: right; }.forecast-page--house .latest strong,
.forecast-page--governor .latest strong,
.forecast-page--senate .latest strong { color: var(--ink); font-size: 14px; }/* Disclosure sits between the headline and the numbers. */
.forecast-page--house .model-disclosure,
.forecast-page--governor .model-disclosure,
.forecast-page--senate .model-disclosure { margin-top: 22px; }/* Governor outlook: four figures on hairlines,
no tiles. */
.forecast-page--governor .governor-seat-panel { margin-top: 28px; padding-top: 0; border-top: 0; }.forecast-page--governor .governor-simulation-status,
.forecast-page--senate .governor-simulation-status { margin: 0 0 4px; padding: 0; border: 0; background: none; color: var(--muted); font-size: 12.5px; }.forecast-page--governor .governor-outlook-grid,
.forecast-page--senate .governor-outlook-grid { border-top: 0; border-bottom: 1px solid var(--rule); }.forecast-page--governor .governor-outlook-grid .stat-card,
.forecast-page--senate .governor-outlook-grid .stat-card { background: none; }.forecast-page--governor .governor-outlook-grid .stat-card > strong,
.forecast-page--senate .governor-outlook-grid .stat-card > strong { font-family: var(--serif); font-weight: 700; }.forecast-page--governor .governor-outlook-grid .stat-card > span,
.forecast-page--senate .governor-outlook-grid .stat-card > span { color: var(--muted); font-size: 12.5px; font-weight: 400; }.forecast-page--governor .governor-seat-totals,
.forecast-page--senate .governor-seat-totals { margin-top: 18px; }.forecast-page--governor .governor-seat-bar,
.forecast-page--senate .governor-seat-bar { height: 26px; border: 0; background: var(--rule); }/* Rating badges become colored text. */
.forecast-page--house .rating-badge,
.forecast-page--governor .rating-badge,
.forecast-page--senate .rating-badge {
  padding: 0;
  border: 0;
  background: none !important;
  font-size: 13px;
  font-weight: 700 !important;
  letter-spacing: 0;
  text-transform: none;
}/* Tables: hairlines,
sentence-case headers,
no grey bands. */
.forecast-page--house table thead th,
.forecast-page--governor table thead th,
.forecast-page--senate table thead th {
  padding: 10px 12px 8px 0;
  border-bottom: 1px solid var(--rule);
  background: none !important;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
}.forecast-page--house table tbody th,
.forecast-page--house table tbody td,
.forecast-page--governor table tbody th,
.forecast-page--senate table tbody th,
.forecast-page--governor table tbody td,
.forecast-page--senate table tbody td { padding: 11px 12px 11px 0; background: none; font-size: 13.5px; }.forecast-page--house .table-wrap,
.forecast-page--governor .table-wrap,
.forecast-page--senate .table-wrap { border-top: 0; }.forecast-page--governor .race-board tbody tr:hover,
.forecast-page--senate .race-board tbody tr:hover,
.forecast-page--governor .poll-table tbody tr:hover,
.forecast-page--senate .poll-table tbody tr:hover,
.forecast-page--house .house-close-table tbody tr:hover { background: rgba(255, 255, 255, .03); }

/* House closest-districts "View" buttons read as links. */
.forecast-page--house .house-row-button {
  min-height: 0;
  padding: 0;
  border: 0;
  background: none;
  color: var(--ink);
  font-size: 13px;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.forecast-page--house .house-row-button:hover { color: var(--blue); }

/* Map toolbar and detail rail. */
.forecast-page--house .house-map-toolbar { padding: 10px 0; border-bottom: 1px solid var(--rule); }
.forecast-page--house .house-select-label select,
.forecast-page--house .house-control-button { border-radius: 2px; background: transparent; }
.forecast-page--house .house-map-detail { background: none; }/* Secondary buttons become text links. */
.forecast-page--governor .panel-footer .button-secondary {
  min-height: 0;
  padding: 0;
  border: 0;
  background: none;
  font-size: 14px;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 4px;
}/* Methodology: readable prose,
limitation kept visible. */
.forecast-page--governor .method-summary ol { max-width: 760px; padding-left: 20px; font-family: var(--serif); font-size: 1.02rem; line-height: 1.6; }.forecast-page--governor .method-summary li + li,
.forecast-page--senate .method-summary li + li { margin-top: 6px; }.forecast-page--governor .methodology-limit,
.forecast-page--senate .methodology-limit,
.forecast-page--house .methodology-limit { max-width: 760px; font-size: 13px; }
.forecast-page--house .house-methodology .method-summary { max-width: 760px; color: var(--ink-soft); font-family: var(--serif) !important; font-size: 1.02rem; line-height: 1.6; }

@media (max-width: 640px) {.forecast-page--house .page-hero,
.forecast-page--governor .page-hero,
.forecast-page--senate .page-hero { padding-top: 26px; }.forecast-page--house .panel,
.forecast-page--governor .panel,
.forecast-page--senate .panel,
.forecast-page--house .content-section { margin-top: 40px; }
  .model-disclosure { padding: 14px 14px 14px 16px; }
}

/* Senate overview page. */
.forecast-page--senate .page-hero .eyebrow { display: block; }
.forecast-page--senate .fh-home { margin-top: 56px; }
.forecast-page--senate .senate-board .fh-tablebar { padding-top: 0; }
.forecast-page--senate .senate-board__table { width: 100%; min-width: 820px; table-layout: auto; }
.forecast-page--senate .senate-board__table thead th .fh-sort { color: var(--muted); }
.forecast-page--senate .senate-board__table thead th.fh-num { text-align: right; }
.forecast-page--senate .senate-board__table thead th.fh-num .fh-sort { flex-direction: row-reverse; }
.forecast-page--senate .senate-board__table th:nth-child(n), .forecast-page--senate .senate-board__table td:nth-child(n) { width: auto; }
.forecast-page--senate .senate-board__table td.fh-num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.forecast-page--senate .srb-state a { color: var(--ink); font-weight: 700; text-decoration: none; }
.forecast-page--senate .srb-state a:hover { text-decoration: underline; text-underline-offset: 3px; }
.forecast-page--senate .srb-state small { display: block; color: var(--muted); font-size: 11.5px; font-weight: 400; }
.forecast-page--senate .srb-margin { font-weight: 700; }
.forecast-page--senate .srb-rating { font-weight: 600; white-space: nowrap; }
.forecast-page--senate .srb-win { min-width: 220px; }
.forecast-page--senate .srb-sub { color: var(--ink-soft); font-size: 13px; }
.forecast-page--senate .senate-board__note { margin-top: 10px; color: var(--muted); font-family: var(--sans) !important; font-size: 12.5px; }
.forecast-page--senate .srp-date { color: var(--muted); white-space: nowrap; }
.forecast-page--senate .srp-race a { color: var(--ink); font-weight: 700; text-decoration: none; }
.forecast-page--senate .srp-pollster small { display: block; color: var(--muted); font-size: 11.5px; }
.forecast-page--senate .srp-result { line-height: 1.6; }
.forecast-page--senate .srp-cand { display: inline-block; margin-right: 14px; white-space: nowrap; }
.forecast-page--senate .srp-cand b { font-size: 11px; }
.forecast-page--senate .srp-note { color: var(--muted); font-size: 12.5px; }
.forecast-page--senate .panel-footer { padding: 14px 0 0; justify-content: flex-start; }
.senate-more { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 56px; border-top: 0; }
.senate-more__item { display: grid; gap: 4px; padding: 16px 20px 18px; border-left: 1px solid var(--rule); color: var(--ink); text-decoration: none; font-family: var(--sans); }
.senate-more__item:first-child { padding-left: 0; border-left: 0; }
.senate-more__item:hover strong { text-decoration: underline; text-underline-offset: 4px; }
.senate-more__kicker { color: var(--muted); font-size: 12px; font-weight: 700; }
.senate-more__item strong { font-family: var(--serif); font-size: 1.2rem; }
.senate-more__item span:last-child { color: var(--ink-soft); font-size: 13px; }
@media (max-width: 760px) {
  .senate-more { grid-template-columns: 1fr; }
  .senate-more__item { padding-left: 0; border-left: 0; border-top: 1px solid var(--rule); }
  .forecast-page--senate .senate-board__table { min-width: 0; }
  .forecast-page--senate .senate-board__table th:nth-child(n+5), .forecast-page--senate .senate-board__table td:nth-child(n+5) { display: none; }
  .forecast-page--senate .srb-win { min-width: 140px; }
  .forecast-page--senate .srb-state small { display: none; }
}

/* ===== Office dashboards: page layout now lives in theme.css (v8 editorial grid). ===== */
/* The tile cartogram repeats the map; the map and board already cover every state. */
.forecast-page--governor > #governor-tiles { display: none !important; }
/* Closest-races table in the narrow column: arrow instead of a wrapped link label. */
.forecast-page--governor .governor-race-board-panel td:last-child a { font-size: 0; }
.forecast-page--governor .governor-race-board-panel td:last-child a::after { content: "\2192"; font-size: 16px; }
.forecast-page--governor .governor-race-board-panel th:last-child { font-size: 0; }
main.forecast-page--house > [hidden] { display: none !important; }
