/*
  STAGE125 PRINT/PDF PUBLICATION LAYER
  Screen firewall: this file is linked with media="print" only.
  Target: US Letter, Chromium/Firefox print-to-PDF and office printers.
*/
@page {
  size: Letter portrait;
  margin: 0.48in 0.48in 0.58in;
}

@media print {
  :root {
    --print-ink: #102f45;
    --print-muted: #5b6d78;
    --print-line: #c9d4da;
    --print-cyan: #008ca8;
    --print-gold: #9a6a09;
    --print-soft: #f4f8fa;
    --print-warm: #fff8e9;
  }

  * { box-sizing: border-box !important; }
  html, body {
    background: #fff !important;
    color: var(--print-ink) !important;
    font-size: 9.2pt !important;
    line-height: 1.36 !important;
    print-color-adjust: exact !important;
    -webkit-print-color-adjust: exact !important;
  }
  body { margin: 0 !important; }

  /* Interaction/navigation does not belong in a paper report. */
  .topnav, .top-actions120, .read-progress120, .story-map120,
  .story-toggle120, .lang-toggle, .hero-orb,
  button:not(.print-keep), .recalc120, #recalc120,
  [aria-hidden="true"].read-progress120 { display: none !important; }

  .topbar, .topbar120 {
    position: static !important;
    min-height: 0 !important;
    height: auto !important;
    padding: 0 0 9pt !important;
    margin: 0 0 12pt !important;
    background: #fff !important;
    color: var(--print-ink) !important;
    border: 0 !important;
    border-bottom: .8pt solid var(--print-line) !important;
    box-shadow: none !important;
  }
  .brand { color: var(--print-ink) !important; text-decoration: none !important; }
  .brand-mark { background: none !important; border: 1pt solid var(--print-ink) !important; color: var(--print-ink) !important; }

  main, section, .chapter, .hero, .chapter-dark, .chapter-light,
  .chapter-control121, .chapter-obbb121, .timeline-control121 {
    background: #fff !important;
    color: var(--print-ink) !important;
    box-shadow: none !important;
  }
  main { width: 100% !important; max-width: none !important; }

  /* Cover page */
  .hero {
    min-height: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    break-after: page !important;
  }
  .hero-inner {
    width: 100% !important;
    max-width: none !important;
    display: grid !important;
    grid-template-columns: 1.55fr .82fr !important;
    gap: .26in !important;
    align-items: center !important;
    padding: .12in 0 .08in !important;
  }
  .hero-copy { max-width: none !important; }
  .eyebrow, .overline, .mini-label107, .kicker, .subhead107, .subhead111 {
    color: var(--print-cyan) !important;
    letter-spacing: .10em !important;
  }
  .hero-title108, .hero h1 {
    color: var(--print-ink) !important;
    font-size: 43pt !important;
    line-height: .88 !important;
    margin: 8pt 0 11pt !important;
    text-shadow: none !important;
  }
  .hero-deck { font-size: 12pt !important; line-height: 1.4 !important; color: #213f52 !important; }
  .mission {
    margin-top: 14pt !important;
    padding-top: 10pt !important;
    border-top: .8pt solid var(--print-line) !important;
    display: grid !important;
    grid-template-columns: 1fr 4fr !important;
    gap: 10pt !important;
  }
  .mission p { font-size: 12pt !important; margin: 0 !important; color: var(--print-ink) !important; }
  .hero-evidence { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 8pt !important; }
  .hero-stat {
    min-height: 0 !important;
    padding: 13pt 11pt !important;
    background: #fff !important;
    border: .8pt solid var(--print-line) !important;
    border-radius: 9pt !important;
    color: var(--print-ink) !important;
    break-inside: avoid !important;
  }
  .hero-stat b { font-size: 22pt !important; color: var(--print-ink) !important; }
  .hero-stat span { color: var(--print-muted) !important; }
  .hero-stat.accent { border-color: var(--print-cyan) !important; }
  .hero-note {
    width: 100% !important;
    max-width: none !important;
    margin: 13pt 0 0 !important;
    padding: 11pt 13pt !important;
    background: var(--print-soft) !important;
    border-left: 3pt solid var(--print-cyan) !important;
    color: var(--print-ink) !important;
  }

  /* Global story rhythm. */
  .chapter {
    width: 100% !important;
    max-width: none !important;
    padding: 10pt 0 5pt !important;
    margin: 0 !important;
  }
  .chapter-head {
    display: grid !important;
    grid-template-columns: 34pt 1fr !important;
    gap: 11pt !important;
    margin: 0 0 11pt !important;
    break-after: avoid !important;
  }
  .chapter-no {
    width: 30pt !important;
    height: 30pt !important;
    min-width: 30pt !important;
    display: grid !important;
    place-items: center !important;
    border: .8pt solid #9dafb9 !important;
    border-radius: 50% !important;
    color: #607782 !important;
    font-size: 8pt !important;
  }
  .chapter-head h2 {
    color: var(--print-ink) !important;
    font-size: 24pt !important;
    line-height: .98 !important;
    margin: 3pt 0 7pt !important;
    text-wrap: balance !important;
  }
  .chapter-head p { color: #405b6b !important; max-width: 6.5in !important; }
  h3, h4 { break-after: avoid !important; color: var(--print-ink) !important; }
  p { orphans: 3 !important; widows: 3 !important; }

  /* Start only major narrative movements on a clean page. */
  #home-origin118, #bills, #rates, #decisions, #recovered-context,
  #money, #storm-recovery, #public-money, #influence, #current-watch,
  #psc-deep-archive, #reconciliation, #future-costs, #data-center-question,
  #consumer-rights, #who-can-say-no121, #large-load-law,
  #energy-control-timeline121, #known, #evidence, #research-disclaimer {
    break-before: page !important;
  }

  /* Generic cards/grids: 2 columns in print, never 3/4/5 across. */
  .upgrade118, .decision-grid, .hearing-grid111, .watch-grid111,
  .storm-truth109, .public-money-grid110, .county-vote-grid107,
  .power-map121, .obbb-cards121, .timeline121, .evidence-grid,
  .rights-grid117, .solar-grid118, .solar-risk120, .tax-grid118,
  .rate-grid107, .record-grid107, .known-grid, .insight-grid,
  .trueup-grid114, .future-grid115, .law-grid117 {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    gap: 8pt !important;
  }
  .obbb-bridge121 { grid-template-columns: 1fr 1fr !important; gap: 8pt !important; }

  article, .hero-stat, .decision-card, .rate-card107, .watch-card111,
  .storm-doc109, .public-money-card110, .county-vote-card107,
  .psc-record112, .evidence-why119, .guard111, .caution107,
  .storm-truth109 > *, .power-map121 > *, .obbb-cards121 > *,
  .timeline121 > *, .upgrade118 > *, .insight, .record-card107,
  .known, .partial, .verified, .open {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  /* Flatten dark surfaces for toner-friendly reporting. */
  .chapter-dark, .chapter-obbb121,
  .storm-truth109 > *, .power-rule121, .obbb-cards121 article,
  .psc121, .dark, .formula110, .double-recovery110,
  .hero-stat, .rate-card107, .watch-card111 {
    background: #fff !important;
    color: var(--print-ink) !important;
    box-shadow: none !important;
  }
  .chapter-dark *, .chapter-obbb121 *, .psc121 *, .dark * {
    color: inherit !important;
  }
  .chapter-dark a, .chapter-obbb121 a, .psc121 a { color: var(--print-cyan) !important; }

  /* Cards keep hierarchy with borders, not ink-heavy fills. */
  article, .decision-card, .rate-card107, .watch-card111, .storm-doc109,
  .public-money-card110, .county-vote-card107, .psc-record112,
  .evidence-why119, .guard111, .caution107, .known, .partial, .verified, .open,
  .solar-risk120 > *, .tax-grid118 > *, .rights-grid117 > * {
    border: .7pt solid var(--print-line) !important;
    border-radius: 8pt !important;
    padding: 10pt !important;
    box-shadow: none !important;
  }
  .caution107, .partial, .open, .evidence-why119, .power-rule121 {
    background: var(--print-warm) !important;
    border-color: #dec98d !important;
  }

  /* Tables: print as real tables, repeat headers, never horizontal scroll. */
  .table-scroll, .annual-table-shell, .tariff-shell {
    overflow: visible !important;
    width: 100% !important;
    max-width: none !important;
    box-shadow: none !important;
  }
  table {
    width: 100% !important;
    max-width: 100% !important;
    border-collapse: collapse !important;
    table-layout: auto !important;
    font-size: 7.2pt !important;
    color: var(--print-ink) !important;
    background: #fff !important;
  }
  thead { display: table-header-group !important; }
  tfoot { display: table-footer-group !important; }
  tr { break-inside: avoid !important; page-break-inside: avoid !important; }
  th, td {
    padding: 5pt 4pt !important;
    border-bottom: .5pt solid #d5dde1 !important;
    vertical-align: top !important;
    background: #fff !important;
    color: var(--print-ink) !important;
    overflow-wrap: anywhere !important;
  }
  th { font-weight: 800 !important; border-bottom: 1pt solid #8da2ad !important; }
  .tariff-table { font-size: 6.35pt !important; }
  .tariff-table th, .tariff-table td { padding: 4pt 2.5pt !important; }
  .tariff-table .p4 { background: #fff8e9 !important; color: #7d4c00 !important; }
  .tariff-badge { background: #fff !important; border: .7pt solid var(--print-line) !important; color: var(--print-ink) !important; }

  /* Charts and diagrams. */
  svg, canvas, img { max-width: 100% !important; height: auto !important; break-inside: avoid !important; }
  .chart-card { break-inside: avoid !important; box-shadow: none !important; border: .7pt solid var(--print-line) !important; }
  .chart-card svg { height: 2.25in !important; }
  .trendChart { overflow: visible !important; }

  /* Process/equation bands should wrap rather than overflow. */
  .process-line111, .formula110, .double-recovery110, .flow112,
  .storm-flow109, .vote-contrast117, .customer-bill-stack118 {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 5pt !important;
    background: #fff !important;
    color: var(--print-ink) !important;
    border: .7pt solid var(--print-line) !important;
    padding: 8pt !important;
    break-inside: avoid !important;
  }

  /* Solar scenario: preserve values/results, remove app-like chrome. */
  input, select, textarea {
    appearance: none !important;
    -webkit-appearance: none !important;
    border: .7pt solid #aab9c1 !important;
    background: #fff !important;
    color: #111 !important;
    font: inherit !important;
    padding: 3pt !important;
  }
  .solar-scenario120, .solar-model118 { box-shadow: none !important; border: .7pt solid var(--print-line) !important; break-inside: auto !important; }

  /* Links remain clickable in PDF; keep labels compact instead of printing giant URLs. */
  a { color: #007a91 !important; text-decoration: underline !important; text-decoration-thickness: .5pt !important; text-underline-offset: 1pt !important; }
  a[href^="#"] { text-decoration: none !important; color: inherit !important; }

  /* Remove web-only animation/visual side effects. */
  *, *::before, *::after {
    animation: none !important;
    transition: none !important;
    text-shadow: none !important;
    filter: none !important;
  }

  /* Avoid accidental blank trailing page. */
  footer, #research-disclaimer { break-after: auto !important; }
}
