/* The printed report. The same rules lay out the off-screen measuring sheet
   and the printed sheets, so what is measured is what prints. No colour
   carries meaning on its own: PASS and FAIL are words with a symbol, and
   every box has a black border, so the report reads in black and white. */

#print-root { display: none; }
.rp-measure { position: absolute; left: -30000px; top: 0; visibility: hidden; }

@media print {
  html, body { background: #ffffff !important; margin: 0 !important; padding: 0 !important; }
  body > *:not(#print-root) { display: none !important; }
  #print-root { display: block; }
  .rp-none { font: 14px/1.5 -apple-system, "Segoe UI", Helvetica, Arial, sans-serif; padding: 1in; }
}

.rp-sheet {
  box-sizing: border-box; background: #ffffff; color: #000000; overflow: hidden;
  display: flex; flex-direction: column; break-after: page; page-break-after: always;
  font: 10.5px/1.45 -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
  overflow-wrap: anywhere;
}
.rp-sheet:last-child { break-after: auto; page-break-after: auto; }
.rp-letter { width: 8.5in; height: calc(11in - 2px); padding: 0.55in 0.6in 0.3in; }
.rp-a4 { width: 210mm; height: calc(297mm - 2px); padding: 14mm 15mm 8mm; }

.rp-content { flex: 1 1 auto; min-height: 0; overflow: hidden; }
.rp-foot { flex: none; height: 0.42in; border-top: 1px solid #000000; padding-top: 5px; box-sizing: border-box; }
.rp-foot-row { display: flex; justify-content: space-between; gap: 16px; font-size: 9px; line-height: 1.35; color: #000000; }
.rp-pageno { white-space: nowrap; }

/* Every block contains its own margins, so heights add up exactly. */
.rp-block { display: flow-root; margin: 0; }

.rp-top { display: flex; justify-content: space-between; align-items: center; border-top: 4px solid #000000; padding-top: 8px; }
.rp-top p { margin: 0; }
.rp-mark { font: 700 18px Georgia, serif; letter-spacing: .02em; margin-right: 10px; }
.rp-type { font-size: 13px; }
.rp-tagbox { border: 1.5px solid #000000; padding: 3px 9px; font-size: 10.5px; font-weight: 700; letter-spacing: .06em; }
.rp-h1 { font: 700 22px/1.2 Georgia, serif; padding-top: 12px; }
.rp-meta { font-size: 11px; padding: 3px 0 4px; }

.rp-h2 { font: 700 15px/1.3 Georgia, serif; border-bottom: 1.5px solid #000000; padding: 14px 0 3px; margin-bottom: 6px; }
.rp-h3 { font-size: 11.5px; font-weight: 700; padding: 8px 0 2px; }
.rp-p { padding: 2px 0 4px; }
.rp-small { font-size: 9.5px; }
.rp-strong { font-weight: 700; }
.rp-mono, .rp-mono.rp-text { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 9.5px; }

.rp-row { display: grid; grid-template-columns: 1.6in 1fr; gap: 10px; padding: 4px 0; border-bottom: 1px solid #999999; }
.rp-label { font-weight: 700; }
.rp-text { white-space: pre-wrap; }

.rp-verdict, .rp-anchor { display: flex; gap: 12px; align-items: flex-start; border: 2px solid #000000; padding: 8px 12px; margin: 4px 0 6px; }
.rp-dashed { border-style: dashed; }
.rp-verdict p, .rp-anchor p { margin: 0; }
.rp-badge { font-size: 13px; font-weight: 700; white-space: nowrap; border: 1.5px solid #000000; padding: 1px 7px; }
.rp-verdict-text { flex: 1; min-width: 0; font-size: 11px; }
.rp-pass .rp-badge { border-width: 2px; }
.rp-fail .rp-badge { border: 4px double #000000; }

.rp-find-head { display: grid; grid-template-columns: 0.6in 1fr; gap: 8px; padding-top: 5px; }
.rp-find-head .rp-text { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 9.5px; }
.rp-code { font-family: ui-monospace, Menlo, Consolas, monospace; font-weight: 700; }
.rp-find-msg { padding: 1px 0 5px 0.68in; border-bottom: 1px solid #cccccc; }
.rp-find-msg .rp-text { white-space: pre-wrap; }

.rp-pre .rp-text, .rp-lt {
  font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 9.5px; line-height: 1.4;
  white-space: pre-wrap; overflow-wrap: anywhere; word-break: break-all; tab-size: 8;
}
.rp-pre { padding: 2px 0; }
.rp-numbered { display: grid; grid-template-columns: 0.3in 1fr; }

.rp-line { display: grid; grid-template-columns: 0.42in 1fr; gap: 10px; }
.rp-ln { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 8.5px; line-height: 1.55; text-align: right; color: #444444; white-space: pre; user-select: none; }
.rp-lt { min-height: 1.4em; }

.rp-reading { display: grid; grid-template-columns: 1in 1fr 1.1in; gap: 8px; padding: 4px 0; border-bottom: 1px solid #999999; }
.rp-ids { white-space: pre; }
.rp-request { border: 1px solid #000000; padding: 8px 10px; font-size: 12px; }
.rp-request .rp-text { white-space: pre-wrap; }

.rp-li { display: grid; grid-template-columns: 0.2in 1fr; padding: 2px 0; font-size: 11px; }

.rp-note { display: grid; grid-template-columns: 1fr; padding: 4px 0; border-bottom: 1px solid #999999; }
.rp-note-label { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 9.5px; }
.rp-nowrap { white-space: nowrap; }
