/* A4 print layout: one page with a cover line, the map in black and white, the counts,
   what is and is not covered, and a footer with the disclaimer and version stamp.
   Frameworks stay distinguishable without colour through hub shapes and line styles. */
@page {
  size: A4;
  margin: 18mm 16mm;
  @bottom-right { content: 'Page ' counter(page); font: 9pt 'IBM Plex Mono', monospace; color: #555; }
}

@media print {
  :root, :root[data-theme="dark"] {
    --paper: #fff; --raised: #f2f2f2; --ink: #000; --muted: #444; --rule: #bbb; --rule-strong: #000;
    --accent: #000; --nis2: #000; --gdpr: #000; --iso: #000; --nist: #000;
    color-scheme: light;
  }
  html, body { font-size: 10pt; background: #fff; }
  * { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  *, *::before, *::after { animation: none !important; transition: none !important; }

  .ov-header, .ov-toolbar, .ov-skip, overlap-panel, overlap-share, .ov-toast, overlap-strip,
  overlap-next, .ov-checklist-block, .ov-no-print, .ov-footer nav, .ov-mapfig figcaption { display: none !important; }
  .ov-print-only { display: block !important; }

  .ov-wrap { max-width: none; padding: 0; }
  .ov-mappage { gap: 6mm; padding-top: 0; }
  .ov-maphead { display: block; }
  .ov-maphead .ov-h1 { font-size: 18pt; }
  .ov-maphead .ov-body, .ov-maphead .ov-eyebrow, .ov-mapfig .ov-disclaimer { display: none; }
  .ov-mappage .ov-h-sub { font-size: 14pt; }
  .ov-mapstack { gap: 6mm !important; display: block !important; }
  .ov-mapgrid { display: block; }
  .ov-mapfig { max-width: 92mm; margin: 0 auto; }
  .ov-map .ov-label { display: inline !important; }
  .ov-line.is-on { opacity: 1; }
  .ov-lowergrid { display: block; }

  .ov-table { min-width: 0; font-size: 8.5pt; line-height: 1.35; }
  .ov-table .ov-mono-sm { font-size: 8pt; }
  .ov-table th, .ov-table td { padding: 4px 8px 4px 0; }
  .ov-table tr, .ov-check, .ov-print-row { break-inside: avoid; }
  .ov-table-wrap { overflow: visible; }

  .ov-footer { margin-top: 6mm; }
  .ov-footer-in { display: block; padding: 4mm 0 0; }
  .ov-footer-disclaimer { font-size: 10pt; }
  .ov-footer-main .ov-small { display: none; }
  .ov-stamp { font-size: 8pt; margin-top: 3mm; padding-top: 2mm; }
  a { text-decoration: none; }
}
