/* TLDR Money — the printed report.
 *
 * The site's first print stylesheet. Loaded with media="print" so it costs a
 * screen reader nothing and never touches the on-screen layout.
 *
 * What this is: the "Download the report" button calls window.print(), and this
 * turns the planner page into a designed four-to-six page document — cover
 * block, the number, the readiness ladder, the year-by-year table, the
 * assumptions, the ledger. Everything that is interactive, navigational or
 * promotional is removed.
 *
 * What this is not: a generated PDF file. Two consequences worth being straight
 * about, both stated on the page next to the button:
 *
 *   1. Browsers add their own header and footer — the page URL, the date, the
 *      page numbers. There is no CSS that suppresses them; only the reader can,
 *      by unticking "Headers and footers" in the print dialog. We cannot do it
 *      for them and do not pretend to.
 *   2. Background colours print only if the reader leaves "Background graphics"
 *      ticked. So nothing here depends on a background to be legible: every
 *      panel that is a colour block on screen becomes a ruled box in print, and
 *      the type carries the hierarchy on its own.
 */

@page {
  size: A4;
  margin: 16mm 14mm 18mm;
}

/* ---- strip everything that is not the report ---- */

.site-header, .site-footer, #site-header-mount, #site-footer-mount,
#legal-footer-mount, .crumbs, .cta-panel, .cluster, .lab__actions,
.lab__add, .lab__x, .lab__tabs, .lab__basis, .faq, .page-foot,
[data-wa], [data-copy], [data-print] {
  display: none !important;
}

/* Inputs still have to be readable — the report is a record of what was typed,
   so the fields print as values rather than as empty boxes. */
.lab__input, .lab__row {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
}
.lab__input input, .lab__input select, .lab__row input, .lab__row select {
  border: 0 !important;
  background: transparent !important;
  padding: 0 !important;
  font-size: 10.5pt !important;
  font-weight: 700 !important;
  color: #000 !important;
  -webkit-appearance: none;
  appearance: none;
}
.lab__field label, .lab__field .lab__label, .lab__rowlabel {
  min-height: 0 !important;
  margin: 0 !important;
  display: block !important;
  font-size: 9pt !important;
  color: #555 !important;
}
.lab__hint { margin: 0 0 1mm !important; font-size: 8pt !important; }

.lab__seg button, .lab__check input { display: none !important; }
/* A segmented control has no meaning on paper; the chosen option is the value. */
.lab__seg button[aria-pressed="true"] {
  display: inline !important;
  border: 0 !important;
  background: transparent !important;
  padding: 0 !important;
  font-size: 10.5pt !important;
  font-weight: 700 !important;
  color: #000 !important;
}
.lab__check { font-size: 9.5pt !important; }

/* ---- page setup ---- */

html, body {
  background: #fff !important;
  color: #000 !important;
  font-size: 10.5pt;
  line-height: 1.45;
}
.wrap, .wrap--wide { max-width: none !important; padding: 0 !important; }

h1, h2, h3, .lab__big, .lab__stat .v, .lab__readyhead {
  font-family: 'Fraunces', Georgia, serif;
  color: #000 !important;
  break-after: avoid;
  page-break-after: avoid;
}
a { color: #000 !important; text-decoration: none; }
/* A printed link is dead unless its address is on the page. Only in the prose,
   though — spelling out every URL in a table would wreck the columns. */
.lab__prose a::after { content: " (" attr(href) ")"; font-size: 8.5pt; color: #444; }

/* ---- the cover block ---- */

.lab__printonly { display: block !important; }

.lab__cover {
  border-bottom: 2.5pt solid #0A3634;
  padding-bottom: 10mm;
  margin-bottom: 8mm;
}
.lab__cover .wordmark {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 15pt; font-weight: 800; letter-spacing: -.02em;
}
.lab__cover .wordmark .money { letter-spacing: .16em; font-size: 10pt; }
/* A <p>, not an <h1>. The page already has its one heading, and a cover block
   that is invisible on screen must not add a second one for a crawler to find. */
.lab__cover .lab__covertitle {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 24pt; font-weight: 800; line-height: 1.1;
  margin: 6mm 0 3mm; letter-spacing: -.02em;
}
.lab__cover .lab__coversub { font-size: 10pt; color: #333 !important; margin: 0; }
.lab__cover .lab__covermeta {
  font-size: 9pt; color: #555 !important; margin: 4mm 0 0;
  border-top: .5pt solid #bbb; padding-top: 3mm;
}

/* ---- panels become ruled boxes, not colour blocks ---- */

.lab__card, .lab__stat, .lab__headline, .lab__ready, .lab__verdict, .lab__nojs {
  background: #fff !important;
  color: #000 !important;
  border: .75pt solid #999 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 5mm 6mm !important;
  margin: 0 0 5mm !important;
  break-inside: avoid;
  page-break-inside: avoid;
}
.lab__card--excluded { border-left: 2.5pt solid #0A3634 !important; }
.lab__headline { border: 1.5pt solid #0A3634 !important; }
.lab__k, .lab__stat .k { color: #555 !important; font-size: 8pt; letter-spacing: .08em; }
.lab__big { font-size: 30pt; margin: 2mm 0 0; }
.lab__sub, .lab__stat .s, .lab__cardnote, .lab__caption, .lab__readydetail,
.lab__readynum, .lab__actionnote, .lab__pct, .lab__note, .lab__hint {
  color: #333 !important;
}
.lab__stats { gap: 4mm; }
.lab__stat .v { font-size: 15pt; }

/* Progress and funding bars: solid outlines with a hatch-free fill, so they
   still read when background graphics are switched off. */
.lab__prog, .lab__readybar {
  border: .5pt solid #666 !important;
  background: #fff !important;
  height: 3mm !important;
  border-radius: 0 !important;
}
.lab__prog span, .lab__readybar span {
  background: #0A3634 !important;
  border-radius: 0 !important;
}
.lab__progrow, .lab__progrow b { color: #000 !important; }

.lab__ready { padding: 3mm 4mm !important; margin: 0 0 2.5mm !important; }
.lab__readystep { border: .5pt solid #666 !important; background: #fff !important; color: #000 !important; }
.lab__ready.is-gap { border-left: 2pt solid #C65D3C !important; }
.lab__ready.is-ok { border-left: 2pt solid #0A3634 !important; }

/* ---- charts ---- */

.lab__chart { max-height: 62mm; break-inside: avoid; page-break-inside: avoid; }
.lab__band { fill: #ddd !important; opacity: 1 !important; }
.lab__p50 { stroke: #666 !important; }
.lab__det { stroke: #C65D3C !important; stroke-width: 2 !important; }
.lab__mark { stroke: #999 !important; }
.lab__axis, .lab__marktext { fill: #444 !important; }
.lab__mix { border: .5pt solid #666; height: 4mm; border-radius: 0; }
.lab__mixbar--1 { background: #C65D3C !important; }
.lab__mixbar--2 { background: #0A3634 !important; }
.lab__mixbar--3 { background: #8FA98C !important; }
.lab__mixbar--4 { background: #E8B29B !important; }
.lab__mixbar--5 { background: #C4D5D0 !important; }
.lab__dot { border: .5pt solid #666; }
.lab__bars { height: 34mm; }
.lab__barfill { background: #E8B29B !important; border-top: 1pt solid #C65D3C !important; }
.lab__bartip { display: none !important; }

/* ---- tables ---- */

.lab__scroll, .lab__yearsbox {
  overflow: visible !important;
  max-height: none !important;
  border: 0 !important;
  border-radius: 0 !important;
}
.lab table { min-width: 0 !important; font-size: 8.5pt; width: 100%; }
.lab th, .lab td { padding: 1.4mm 2mm; border-bottom: .4pt solid #ccc; }
.lab thead { display: table-header-group; }
.lab thead th { color: #000 !important; border-bottom: .75pt solid #666; font-size: 7.5pt; }
.lab tbody tr { break-inside: avoid; page-break-inside: avoid; }
.lab tbody tr.is-on { background: #f2f2f2 !important; }
.lab__years tbody tr.is-retired { background: #fafafa !important; }
.lab__years tbody tr.is-broke { background: #fff !important; border-left: 1.5pt solid #C65D3C; }
.lab__sens tbody td { background: #fff !important; border: .4pt solid #ccc; }
.lab__sens tbody td.is-base { outline: 1.25pt solid #C65D3C !important; font-weight: 800; }
.lab__why { font-size: 8pt; }

.lab__ledgerrow { font-size: 9pt; padding: 1.4mm 0; border-bottom: .4pt solid #ccc; }

/* ---- page breaks ---- */

.lab__break { break-before: page; page-break-before: always; }
.lab__section > h2 {
  font-size: 13pt;
  margin: 0 0 3mm;
  padding-bottom: 1.5mm;
  border-bottom: .75pt solid #0A3634;
}
.lab__section { margin: 0 0 6mm; break-inside: auto; }

/* The disclaimer is the one thing that must survive to the last page. */
.disclaimer, .updated {
  font-size: 8pt !important;
  color: #444 !important;
  border-top: .5pt solid #999;
  padding-top: 3mm;
  margin-top: 5mm;
  break-inside: avoid;
}
