/* ==========================================================================
   Print. The full report is meant to be saved as a PDF from the browser,
   which is why there is no PDF library anywhere in this project.
   ========================================================================== */

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

* {
  background: transparent !important;
  color: #000 !important;
  box-shadow: none !important;
}

html, body {
  background: #fff !important;
  font-size: 10.5pt;
  line-height: 1.5;
  font-family: Georgia, "Times New Roman", serif;
}

/* Anything interactive or navigational has no business on paper. */
.masthead, .foot, .skip, .themetoggle, .navtoggle, .mainnav,
.btnrow, .btn, .noprint, .unlock, .copybox, .progress, #lrs-working,
form, .crumbs, .faq summary::before {
  display: none !important;
}

.wrap, .wrap--read { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }

h1 { font-size: 22pt; margin: 0 0 6pt; letter-spacing: 0; }
h2 {
  font-size: 14pt; margin: 18pt 0 6pt; padding-top: 6pt;
  border-top: 0.5pt solid #999 !important;
  break-after: avoid; page-break-after: avoid;
}
h3 { font-size: 11.5pt; margin: 12pt 0 4pt; break-after: avoid; page-break-after: avoid; }
p  { margin: 0 0 7pt; orphans: 3; widows: 3; }

.standfirst {
  font-size: 12pt; font-style: italic; border-bottom: 0.5pt solid #999 !important;
  padding-bottom: 8pt; margin-bottom: 12pt;
}
.eyebrow { font-size: 8pt; letter-spacing: .12em; margin-bottom: 3pt; }

table { width: 100%; border-collapse: collapse; margin: 10pt 0; font-size: 9.5pt; break-inside: avoid; }
th {
  text-align: left; padding: 4pt 6pt; font-size: 7.5pt; text-transform: uppercase;
  letter-spacing: .05em; border-bottom: 0.75pt solid #000 !important;
}
td { padding: 4pt 6pt; border-bottom: 0.25pt solid #bbb !important; vertical-align: top; }

ol, ul { padding-left: 14pt; margin: 0 0 8pt; }
li { margin-bottom: 4pt; break-inside: avoid; }

/* Report specifics */
.rcheck {
  break-inside: avoid; page-break-inside: avoid;
  padding: 6pt 0; border-bottom: 0.25pt solid #bbb !important;
}
.rcheck__meta { font-size: 7.5pt; letter-spacing: .05em; margin-bottom: 2pt; }
.rcheck__q { font-weight: 700; margin-bottom: 2pt; }
.rcheck__found, .rcheck__fix { font-size: 9.5pt; margin: 0 0 2pt; }

.finding { break-inside: avoid; border-left: 1.5pt solid #000 !important; padding-left: 8pt; margin-bottom: 9pt; }
.vrow { break-inside: avoid; padding: 5pt 0; border-bottom: 0.25pt solid #bbb !important; }

/* Pills and badges lose their colour on paper, so give them an outline. */
.pill {
  border: 0.5pt solid #666 !important; padding: 1pt 4pt; border-radius: 8pt;
  font-size: 7.5pt; font-weight: 700;
}

.card, .result__top, .callout, .defbox {
  border: 0.5pt solid #999 !important; border-radius: 0;
  padding: 8pt 10pt; margin: 8pt 0; break-inside: avoid;
}

/* Score ring: the number carries it, the arc does not print usefully. */
.ring svg { display: none !important; }
.ring { width: auto !important; height: auto !important; }
.ring__mid { position: static !important; display: block !important; text-align: left !important; }
.ring__num { font-size: 30pt; font-weight: 700; }
.ring__den { font-size: 8pt; }

/* Bars become a printed number plus a rule, since fills do not render. */
.dimrow { display: flex; gap: 8pt; padding: 3pt 0; break-inside: avoid; }
.dimrow__label { flex: 0 0 45%; }
.dimrow__track { flex: 1; border-bottom: 0.5pt dotted #999 !important; height: auto; align-self: flex-end; }
.dimrow__fill { display: none !important; }
.dimrow__val { flex: 0 0 auto; font-weight: 700; }

/* Show where a link actually goes, since nobody can click paper. */
.prose a[href^="http"]::after,
.report a[href^="http"]::after {
  content: " (" attr(href) ")";
  font-size: 8pt; word-break: break-all;
}

.faq details { break-inside: avoid; }
.faq details p { display: block !important; }
.faq summary { font-weight: 700; }
