/* HMG Tools · printed documents (keep identical across every HMG Tools app).
   Used by the on-screen preview (.paper) and by print (#print-root). White page,
   black type, HMG red accents, chrome mark in the header and footer.
   Each app sets its own @page size in its app.css. */
.doc { font: 9.5pt/1.42 Arial, Helvetica, sans-serif; color: #000; }
.doc .d-top { display: grid; grid-template-columns: auto 1fr auto; gap: 16px; align-items: center; }
.doc .d-logo { height: 38px; width: auto; }
.doc .d-title small { display: block; font: 600 7pt/1.2 var(--label); letter-spacing: 1.4px; text-transform: uppercase; color: #8b0000; }
.doc .d-title h1 { margin: 2px 0 0; font: 400 18pt/1 var(--display); letter-spacing: .6px; text-transform: uppercase; color: #000; }
.doc .d-title p { margin: 3px 0 0; font-size: 8.5pt; color: #555; }
.doc .d-stamp { text-align: right; border: 1.5pt solid #000; padding: 5px 10px; }
.doc .d-stamp span { display: block; font: 600 6.5pt var(--label); letter-spacing: 1.2px; text-transform: uppercase; color: #555; }
.doc .d-stamp b { font-size: 11pt; }
.doc .d-rule { height: 4px; margin: 10px 0 12px; background: linear-gradient(90deg, #ed1c24, #8b0000 70%, #000); }
.doc .d-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px 14px; margin-bottom: 10px; }
.doc .d-field span { display: block; font: 600 6.5pt var(--label); letter-spacing: 1.2px; text-transform: uppercase; color: #666; }
.doc .d-field b { display: block; font-weight: bold; font-size: 9.5pt; min-height: 15px; border-bottom: .75pt solid #bbb; padding-bottom: 2px; word-break: break-word; }
.doc .d-notes { border: .75pt solid #999; border-left: 3pt solid #ed1c24; padding: 6px 10px 8px; margin-bottom: 10px; }
.doc .d-notes > span { display: block; font: 600 6.5pt var(--label); letter-spacing: 1.2px; text-transform: uppercase; color: #666; margin-bottom: 3px; }
.doc .d-line { display: block; height: 16px; border-bottom: .75pt solid #ccc; }
.doc .d-summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 4px 0 6px; }
.doc .d-sum { border: .75pt solid #ccc; border-top: 3pt solid #000; padding: 6px 10px; }
.doc .d-sum b { display: block; font: 400 20pt/1 var(--display); }
.doc .d-sum span { display: block; font: 600 7.5pt var(--label); letter-spacing: 1px; text-transform: uppercase; }
.doc .d-sum small { color: #666; font-size: 7.5pt; }
.doc .d-sum.s-rebuild { border-top-color: #d0101a; } .doc .d-sum.s-rebuild b { color: #b00; }
.doc .d-sum.s-check { border-top-color: #e09a00; } .doc .d-sum.s-check b { color: #8a6100; }
.doc .d-sum.s-info { border-top-color: #2a78d0; } .doc .d-sum.s-info b { color: #1f5fa8; }
.doc .d-key { font-size: 7.5pt; color: #555; margin: 0 0 8px; }
.doc .d-sev { font: 400 13pt var(--display); letter-spacing: .6px; text-transform: uppercase; margin: 14px 0 4px; padding: 3px 8px; color: #fff; background: #000; }
.doc .d-sev small { font: 600 9pt var(--label); opacity: .8; margin-left: 4px; }
.doc .d-sev.s-rebuild { background: #b3121a; } .doc .d-sev.s-check { background: #9a6a00; } .doc .d-sev.s-info { background: #1f5fa8; }
.doc .d-sec { break-inside: avoid; page-break-inside: avoid; border-bottom: .75pt solid #ddd; padding: 6px 0 8px; }
.doc .d-sec h3 { font-size: 10.5pt; margin: 0 0 3px; display: flex; align-items: center; gap: 6px; }
.doc .d-sec h3 small { color: #666; font-weight: normal; }
.doc .d-sec p { margin: 1px 0; font-size: 8.5pt; }
.doc .d-sec p b { font: 600 6.5pt var(--label); letter-spacing: 1px; text-transform: uppercase; color: #666; margin-right: 4px; }
.doc .d-pill { font: 600 6.5pt var(--label); letter-spacing: 1px; text-transform: uppercase; padding: 1px 6px; border-radius: 8px; color: #fff; }
.doc .d-pill.s-rebuild { background: #b3121a; } .doc .d-pill.s-check { background: #9a6a00; } .doc .d-pill.s-info { background: #1f5fa8; }
.doc .d-table { width: 100%; border-collapse: collapse; margin-top: 5px; }
.doc .d-table th { text-align: left; font: 600 6.5pt var(--label); letter-spacing: 1px; text-transform: uppercase; color: #444; border-bottom: 1pt solid #000; padding: 2px 5px; }
.doc .d-table td { border-bottom: .5pt solid #ddd; padding: 3px 5px; font-size: 8.5pt; vertical-align: top; }
.doc .d-table .d-tc { font-family: Menlo, Consolas, monospace; font-size: 8pt; white-space: nowrap; }
.doc .d-table .d-clip { font-weight: bold; }
.doc .d-table .d-note { width: 32%; border-left: .5pt solid #ddd; background: #fafafa; font-style: italic; }
.doc .d-clean { font-size: 12pt; padding: 16px; border: 1pt solid #1f6e46; color: #1f6e46; }
.doc .d-sign { display: grid; grid-template-columns: 1fr 0.6fr 1.4fr; gap: 20px; margin: 26px 0 8px; break-inside: avoid; }
.doc .d-sign i { display: block; height: 22px; border-bottom: 1pt solid #000; }
.doc .d-sign span { font: 600 6.5pt var(--label); letter-spacing: 1.2px; text-transform: uppercase; color: #666; }
.doc .d-foot { display: flex; align-items: center; gap: 7px; justify-content: center; margin-top: 18px; padding-top: 8px; border-top: .75pt solid #ccc; font: 600 7pt var(--label); letter-spacing: 1.2px; text-transform: uppercase; color: #555; }
.doc .d-foot img { height: 13px; }
.doc .d-foot b { font: 400 10pt var(--display); letter-spacing: .6px; color: #000; }
.doc .d-foot em { font-style: normal; color: #888; font-family: var(--body); letter-spacing: .3px; text-transform: none; font-weight: normal; }

.doc .d-plain { grid-template-columns: 1fr auto; }
.doc .d-grid-1 { grid-template-columns: 1fr; }
.doc .d-sub { color: #555; font-size: 7.5pt; font-weight: normal; }
.doc .d-it { font-style: italic; }
.doc .d-pro { font: 700 7pt Arial, sans-serif; padding: 0 3px; border: .5pt solid #999; border-radius: 2px; }
.doc .d-summary-cues .d-sum b { font-size: 16pt; }
.doc-cues .d-table td { font-size: 8.5pt; }
.doc-cues .d-table tr { break-inside: avoid; page-break-inside: avoid; }

.print-root { display: none; }
@media print {
  html, body { background: #fff !important; color: #000; }
  .app, .drop-overlay, .toast, .scrim, .drawer, .modal { display: none !important; }
  .print-root { display: block; }
  .doc { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
