/* Print stylesheet: reports and printable records. The browser's "Save as PDF" is the PDF. */
@page { margin: 16mm; }
/* The monthly maintenance report (and its archived copy) has wide tables: it prints in landscape. The whole body is
   on the named page, so the letterhead and the demonstration label share the landscape sheets (no portrait sheet
   holding only one of them); the footer's disclaimers print inside "How to read this" instead (print_footer.html). A table row never splits; the building table's card keeps reports.css's
   break-inside: avoid, so the table and its model-estimate caveat print together. */
@page report { size: landscape; margin: 12mm; }
body.print-report { page: report; }
.print-report .report-table tr { break-inside: avoid; }
body { background: #fff; color: #000; font-size: 11pt; }
.sidebar, .appbar, .topbar, .nav, .session, .skip-link, .flashes, .button, .inline-form, form, .pagination { display: none !important; }
/* The application shell is a grid with the sidebar; on paper the page is one column. Text keeps Sora, as the website's
   paper document does; labels, table headings and tags keep Arial through --font-label. */
.shell { display: block !important; }
/* The website's paper letterhead (components/site/LegalDocument.tsx, util.module.css .letterhead): the dark wordmark
   ("Dry" in Dark Blue, "vera" in Dark Green) above a hairline, on the first sheet of every printout. */
.print-letterhead { display: flex !important; align-items: center; margin: 0 0 10pt; padding-bottom: 8pt; border-bottom: 1px solid #000; }
.print-letterhead img { height: 40px; width: auto; }
/* A demo organization's printout keeps its label: demonstration data is never shown as real (SPEC §6.13). */
.banner-demo { display: block !important; background: none !important; color: #000 !important; border: 1px dashed #000 !important; margin: 0 0 8pt; padding: 4pt 6pt; }
.footer { background: none; color: #000; border-top: 1px solid #000; padding: 8pt 0; font-size: 9pt; }
.page { max-width: none; padding: 0; }
.card, .room-card { box-shadow: none; border: 1px solid #000; break-inside: avoid; }
a, a.place { color: #000; text-decoration: none; }
a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 9pt; }
.pill { border: 1px solid #000; background: none !important; color: #000; }
.pill-amber .pill-mark, .pill-amber_strong .pill-mark { background: #000; }
/* Tables print in full: no scroll boxes (they cannot scroll on paper), cells wrap. */
.table { display: table !important; width: 100% !important; white-space: normal !important; overflow: visible !important; font-size: 8.5pt; }
.table-wrap { overflow: visible !important; }
.table th, .table td { padding: 3pt 4pt; }
.table *, .report-table th[scope="row"] { white-space: normal !important; }
.hash, .note, td { overflow-wrap: anywhere; }
.table th { background: none; }
h1, h2, h3 { color: #000; break-after: avoid; }
.print-only { display: block; }
.no-print { display: none !important; }
/* The printouts (the case record and the monthly report): the footer's disclaimers print at the end of "How to read
   this" (partials/print_footer.html), which never splits, so no sheet holds them alone. The page footer itself is not
   printed there: it follows <main> inside the flex column .shell-main, where break-before: avoid is not honoured.
   (The report's "How to read this" keeps reports.css's break-inside: avoid.) */
.print-record .footer, .print-report .footer { display: none !important; }
.print-record .guardrails { break-inside: avoid; border: 1px solid #000; background: none; box-shadow: none; }
.print-footer { margin-top: 8pt; padding-top: 6pt; border-top: 1px solid #000; font: 9pt/1.4 var(--font-label); letter-spacing: 0.04em; }
.print-footer p { margin: 0 0 2pt; }
