/* =========================================================================
   print.css — sane A4 output: no clipped charts, no orphaned headings,
   no background wash. Loaded after base.css.
   ------------------------------------------------------------------------- */
@media print {
  @page { size: A4; margin: 16mm 14mm 18mm; }
  body { background: #fff; color: #000; font-size: 9pt; line-height: 1.45; }
  .masthead, .readahead, .fleet-controls, .topnav, .skip, #read-progress { display: none !important; }
  .cover { background: none; padding-top: 0; }
  .section { page-break-inside: auto; break-inside: auto; }
  h2, h3, h4 { page-break-after: avoid; break-after: avoid; }
  figure, .chart-card, .stat, .profile, table, .smallmultiples { break-inside: avoid; break-after: auto; }
  .section:first-of-type { border-top: 0; }
  .masthead { position: static; }
  a { color: #000; text-decoration: none !important; }
  .chart svg, #route-map, .profile svg, .brand-mark { max-height: 210mm; }
  .card, .chart-card, .stat, .profile, .fleet-table-shell, .table-shell, .map-frame, .sust-layout > * {
    border-color: #999;
  }
  /* Keep chart values visible; avoid ink-washing the light fills. */
  .chart-val, .stat .value, .route-detail .rgrid .v, .sm .sm-value { color: #000; }
  .band-legend, .lgd { color: #000; }
  thead th { position: relative; } /* sticky header not meaningful in print; keep visible */
  .sr-only { position: static; width: auto; height: auto; overflow: visible; clip: auto; white-space: normal; }
  /* Reveal the data tables as the printed record of each chart. */
  .table-shell table.data, .sr-only table { }
  .foot { border-top: 1px solid #999; }
}
