/* ==========================================================
   SHIPMENT FILE — PRINT STYLESHEET
   Designed as a printed dossier, not a webpage exported to
   PDF. Monochrome ink, editorial type hierarchy (serif heads,
   sans body, mono data), rules instead of boxes, generous
   margins. Applies only to the .report-doc — the on-screen
   app keeps its own visual language.

   Known limitation, by design: browser print engines (incl.
   Chrome "Print to PDF") do not implement CSS running headers/
   footers or automatic page numbers (the Paged Media @top-center
   / @bottom-center spec is unsupported). So this design uses a
   strong masthead to open the document and a colophon to close
   it, rather than promising per-page numbering that won't render.
   ========================================================== */

@page {
  margin: 1in 0.9in;
}

/* ---------- Base reset ---------- */
body {
  background: #fff !important;
  color: #1a1a1a !important;
  font-family: 'Inter', -apple-system, 'Segoe UI', sans-serif;
  font-size: 10.5pt;
  line-height: 1.65;
}
body::before { display: none !important; } /* kill the screen dot-grid texture */

.site-header, .no-print, .draft-banner { display: none !important; }

.report-doc {
  background: #fff !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  max-width: none !important;
  counter-reset: section;
}
.report-wrap { padding: 0 !important; max-width: none !important; }

/* Strip every screen "card" convention globally within the doc */
.report-doc .exec-summary,
.report-doc .rec-card,
.report-doc .handoff-disclaimer,
.report-doc .report-section {
  border: none;
  background: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

/* ---------- Masthead ---------- */
.report-letterhead {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  font-family: 'Inter', sans-serif;
  font-size: 8pt;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #666 !important;
  border: none;
  border-bottom: none;
  padding-bottom: 0;
  margin-bottom: 22pt;
}
.report-letterhead strong { color: #333 !important; font-weight: 700; }

.report-title-block {
  margin-bottom: 6pt;
  padding-bottom: 22pt;
  border-bottom: 1.25pt solid #111;
}
.report-title-block .eyebrow {
  display: block;
  border: none;
  background: none;
  padding: 0;
  font-family: 'Inter', sans-serif;
  font-size: 9pt;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: #666 !important;
  margin-bottom: 10pt;
}
.report-title-block h1 {
  font-family: Georgia, 'Iowan Old Style', 'Palatino Linotype', 'Book Antiqua', serif;
  font-weight: 400;
  font-size: 27pt;
  letter-spacing: -0.01em;
  color: #111 !important;
  margin: 0 0 10pt;
}
.report-route {
  font-size: 10.5pt;
  color: #555 !important;
}

/* ---------- Section rhythm ---------- */
.report-section {
  counter-increment: section;
  page-break-inside: avoid;
  margin: 0 0 26pt;
  padding: 0 !important;
}
.report-section h2 {
  display: flex;
  align-items: baseline;
  gap: 10pt;
  font-family: Georgia, 'Iowan Old Style', 'Palatino Linotype', 'Book Antiqua', serif;
  font-weight: 600;
  font-size: 13.5pt;
  text-transform: none;
  letter-spacing: 0;
  color: #111 !important;
  margin: 0 0 14pt;
  padding-bottom: 7pt;
  border-bottom: 0.75pt solid #ccc;
  page-break-after: avoid;
}
.report-section h2::before {
  content: counter(section, decimal-leading-zero);
  font-family: 'IBM Plex Mono', monospace;
  font-weight: 500;
  font-size: 10pt;
  color: #999 !important;
  flex-shrink: 0;
}
.section-intro { font-size: 10pt; color: #444 !important; margin-bottom: 12pt; }
.note { font-size: 9pt; color: #666 !important; font-style: italic; }
.all-clear { font-size: 10.5pt; color: #333 !important; font-style: italic; }

/* ---------- Executive summary: the verdict, set as a headline ---------- */
.exec-summary { margin-bottom: 30pt; padding: 0; }
.exec-summary-top { margin-bottom: 16pt; }

.exec-summary .badge {
  display: block;
  background: none !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  font-family: Georgia, 'Iowan Old Style', 'Palatino Linotype', 'Book Antiqua', serif;
  font-weight: 700;
  font-size: 19pt;
  text-transform: none;
  letter-spacing: 0;
  color: #111 !important;
}
.exec-summary .badge .dot { display: none; } /* status conveyed by the word itself, not a color dot */
.exec-summary-desc { font-size: 10.5pt; color: #444 !important; margin-top: 6pt; max-width: 5.5in; }

.exec-stat-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16pt;
  padding: 12pt 0;
  border-top: 0.75pt solid #111;
  border-bottom: 0.75pt solid #111;
  margin-bottom: 18pt;
}
.exec-stat-row .label { font-size: 8pt; text-transform: uppercase; letter-spacing: 0.05em; color: #777 !important; }
.exec-stat-row .value { font-family: 'IBM Plex Mono', monospace; font-size: 12.5pt; font-weight: 600; color: #111 !important; }

.exec-callout { margin-top: 14pt; padding-left: 14pt; border-left: 1.5pt solid #ccc; }
.exec-callout .callout-label {
  font-family: 'Inter', sans-serif;
  font-size: 8pt;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #888 !important;
  margin-bottom: 3pt;
}
.exec-callout p { font-size: 10.5pt; color: #222 !important; font-style: italic; }

/* ---------- Fact grids (Shipment Overview, Handoff) ---------- */
.report-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16pt;
  padding: 10pt 0;
  border-top: 0.5pt solid #ddd;
}
.report-grid .label { display: block; font-size: 8pt; text-transform: uppercase; letter-spacing: 0.04em; color: #888 !important; margin-bottom: 3pt; }
.report-grid .value { display: block; font-family: 'IBM Plex Mono', monospace; font-size: 10.5pt; font-weight: 600; color: #111 !important; }

/* ---------- Lists ---------- */
.report-list { margin: 0; padding-left: 16pt; font-size: 10pt; color: #333 !important; line-height: 1.75; }
.report-list.checklist { list-style: none; padding-left: 0; }
.report-list.checklist li { padding-left: 16pt; position: relative; }
.report-list.checklist li::before {
  content: "";
  position: absolute; left: 0; top: 5pt;
  width: 6pt; height: 6pt;
  border: 0.75pt solid #999;
}

/* ---------- Recommendation entries — run-in editorial style, not cards ---------- */
.rec-card { padding: 0 !important; margin: 0 0 18pt; page-break-inside: avoid; }
.rec-card-header { display: block; margin-bottom: 5pt; }
.rec-category {
  display: block;
  background: none !important;
  color: #888 !important;
  padding: 0 !important;
  font-family: 'Inter', sans-serif;
  font-size: 8pt;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 3pt;
}
.rec-card-header h3 {
  font-family: Georgia, 'Iowan Old Style', 'Palatino Linotype', 'Book Antiqua', serif;
  font-weight: 600;
  font-size: 12pt;
  color: #111 !important;
}
.rec-details { display: block; margin: 0; }
.rec-details dt {
  display: block;
  font-family: 'Inter', sans-serif;
  font-size: 8.5pt;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: #999 !important;
  margin-top: 7pt;
}
.rec-details dt:first-child { margin-top: 0; }
.rec-details dd { margin: 1pt 0 0; font-size: 10pt; color: #333 !important; }

/* ---------- Tables ---------- */
.report-table { width: 100%; border-collapse: collapse; }
.report-table thead tr { border-top: 1.25pt solid #111; border-bottom: 0.75pt solid #111; }
.report-table th {
  background: none !important;
  font-family: 'Inter', sans-serif;
  font-size: 8pt;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #666 !important;
  padding: 7pt 12pt 7pt 0;
  text-align: left;
}
.report-table td {
  padding: 8pt 12pt 8pt 0;
  border-bottom: 0.5pt solid #ddd !important;
  font-size: 10pt;
  color: #333 !important;
}
.report-table tbody tr:last-child td { border-bottom: 1pt solid #111 !important; }
.report-table td:first-child { color: #111 !important; font-weight: 600; }
.report-table .muted { color: #888 !important; font-style: italic; }

.impact {
  background: none !important;
  padding: 0 !important;
  border-radius: 0;
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  font-size: 9pt;
  text-transform: uppercase;
  color: #111 !important;
}
.impact-high::before { content: "● "; }
.impact-medium::before { content: "◐ "; }
.impact-low::before { content: "○ "; }

.resolved-yes, .resolved-no { color: #222 !important; font-weight: 600; font-size: 9.5pt; }
.resolved-no { font-style: italic; }

/* ---------- Broker Handoff ---------- */
.handoff-disclaimer {
  border: none !important;
  border-top: 0.75pt solid #111 !important;
  border-bottom: 0.75pt solid #111 !important;
  background: none !important;
  padding: 9pt 0 !important;
  font-size: 9pt;
  font-style: italic;
  color: #555 !important;
  margin-bottom: 18pt;
}
.handoff-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 24pt; margin-bottom: 20pt; }
.handoff-col h3, .handoff-subhead {
  font-family: 'Inter', sans-serif;
  font-size: 8.5pt;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #888 !important;
  border-bottom: 0.5pt solid #ddd;
  padding-bottom: 5pt;
  margin-bottom: 10pt;
}
.handoff-facts { margin: 0; display: grid; grid-template-columns: 100pt 1fr; gap: 7pt 10pt; }
.handoff-facts dt { font-size: 9pt; color: #888 !important; }
.handoff-facts dd { margin: 0; font-size: 10pt; color: #111 !important; }
.handoff-columns, .handoff-disclaimer { page-break-inside: avoid; }

/* ---------- Colophon (closing block, not a repeating footer) ---------- */
.report-footer {
  display: block;
  text-align: center;
  margin-top: 44pt;
  padding-top: 16pt;
  border-top: 0.75pt solid #111;
  font-family: 'Inter', sans-serif;
  font-size: 8pt;
  letter-spacing: 0.04em;
  color: #888 !important;
}
.report-footer span { display: block; margin-bottom: 4pt; }
.report-footer span:first-child {
  text-transform: uppercase;
  font-weight: 700;
  color: #444 !important;
  letter-spacing: 0.08em;
}
