/* Complete print override. Keep after style.css. */
@media print {
  @page {
    margin: 10mm 12mm;
    size: letter portrait;
  }

  html,
  body {
    --primary: #0f766e;
    --text-main: #0f172a;
    --text-secondary: #334155;
    --text-muted: #475569;
    --border: #cbd5e1;
    --border-strong: #94a3b8;
    --surface: #fff;
    --surface-muted: #f8fafc;
    background: #fff !important;
    color: #0f172a !important;
    font: 10.5pt/1.35 Arial, Helvetica, sans-serif;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
  }

  *, *::before, *::after {
    box-sizing: border-box;
    box-shadow: none !important;
    text-shadow: none !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .no-print, nav, button, .app-header, .header-controls,
  .modal-backdrop, .dashboard-actions, .safety-disclaimer,
  #tourBackdrop, #tourTopBar, #tourCallout,
  body > :not(.app-shell),
  .app-shell > :not(main),
  main > :not(#reportView),
  #reportView > :not(#summaryCard),
  #summaryCard > :not(#reportOutput),
  #reportOutput > :not(#physicianBriefContainer) {
    display: none !important;
  }

  html, body, .app-shell, main.container,
  #reportView, #summaryCard, #reportOutput, #physicianBriefContainer {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
  }

  .app-shell, main.container, #reportView, #summaryCard, #reportOutput {
    display: block !important;
    position: static !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #fff !important;
    overflow: visible !important;
  }

  #physicianBriefContainer {
    --primary: #0f766e;
    --text-main: #0f172a;
    --text-secondary: #334155;
    --text-muted: #475569;
    --border: #cbd5e1;
    --border-strong: #94a3b8;
    display: flex !important;
    flex-direction: column;
    gap: 2.5mm;
    /* Letter's 259.4mm printable height, with a rounding allowance. */
    min-height: 259mm;
    height: auto !important;
    padding: 0 !important;
    color: #0f172a !important;
    background: #fff !important;
    font: 10.5pt/1.35 Arial, Helvetica, sans-serif;
    overflow: visible !important;
  }

  #physicianBriefContainer > * { flex: 0 0 auto; min-width: 0; }

  #physicianBriefContainer .brief-header {
    display: block;
    border-top: 3mm solid #0f766e;
    border-bottom: 1px solid #cbd5e1;
    padding: 3mm 0;
  }

  #physicianBriefContainer .brief-header h4 {
    margin: 0;
    font-size: 14pt;
    line-height: 1.15;
    letter-spacing: 0.025em;
    color: #0f172a;
  }

  #physicianBriefContainer .brief-period {
    margin: 2mm 0 0;
    color: #475569;
    font-size: 9pt;
    font-weight: 400;
  }

  #physicianBriefContainer .brief-metadata-grid,
  #physicianBriefContainer .brief-metrics-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 2.5mm;
  }

  #physicianBriefContainer .brief-metadata-grid > div,
  #physicianBriefContainer .brief-metric,
  #physicianBriefContainer .brief-key-card,
  #physicianBriefContainer .brief-hpi-card,
  #physicianBriefContainer .brief-summary-card {
    border: 1px solid #cbd5e1 !important;
    border-radius: 2mm;
    background: #f8fafc !important;
    color: #0f172a !important;
    padding: 2.5mm !important;
  }

  #physicianBriefContainer .brief-metadata-grid span,
  #physicianBriefContainer .brief-metric > span {
    color: #475569;
    font-size: 7.5pt;
    line-height: 1.25;
    letter-spacing: 0.05em;
  }

  #physicianBriefContainer .brief-metadata-grid strong {
    margin-top: 1.5mm;
    color: #0f172a;
    font-size: 8.5pt;
    line-height: 1.3;
    overflow-wrap: anywhere;
  }

  #physicianBriefContainer .brief-metric strong {
    margin-top: 2mm;
    color: #0f172a;
    font-size: 12pt;
    line-height: 1.2;
    overflow-wrap: anywhere;
  }

  #physicianBriefContainer .brief-metric small {
    margin-top: 1mm;
    color: #475569;
    font-size: 8pt;
  }

  #physicianBriefContainer .brief-key-card,
  #physicianBriefContainer .brief-hpi-card {
    border-left: 1mm solid #0f766e !important;
  }

  #physicianBriefContainer .brief-card-heading {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 2mm;
    margin-bottom: 2mm;
  }

  #physicianBriefContainer .brief-section-title {
    margin: 0 0 2mm;
    color: #0f766e !important;
    font-size: 8pt;
    line-height: 1.25;
    letter-spacing: 0.06em;
  }

  #physicianBriefContainer .brief-card-heading .brief-section-title { margin: 0; }

  #physicianBriefContainer .temporal-pattern-tag {
    border: 1px solid #99c5c0;
    background: #eaf5f3;
    color: #115e59;
    padding: 1mm 2mm;
    font-size: 8pt;
    line-height: 1.25;
    white-space: normal;
  }

  #physicianBriefContainer .brief-hpi-card h5 {
    margin: 0 0 2mm;
    color: #0f172a;
    font: 700 12pt/1.25 Arial, Helvetica, sans-serif;
  }

  #physicianBriefContainer .brief-hpi-card p:not(.brief-section-title),
  #physicianBriefContainer .brief-summary-card p {
    margin: 0;
    color: #1e293b;
    font-size: 10.5pt;
    line-height: 1.35;
  }

  #physicianBriefContainer .brief-hpi-card p + p { margin-top: 2mm; }

  #physicianBriefContainer .brief-episodes {
    border: 0;
    border-top: 1px solid #94a3b8;
    border-radius: 0;
    padding: 3mm 0 0;
    background: #fff;
  }

  #physicianBriefContainer .brief-table-wrap { overflow: visible; }

  #physicianBriefContainer table {
    width: 100%;
    min-width: 0;
    border-collapse: collapse;
    table-layout: fixed;
    color: #1e293b;
    font-size: 8.5pt;
    line-height: 1.3;
  }

  #physicianBriefContainer th,
  #physicianBriefContainer td {
    border: 1px solid #cbd5e1;
    padding: 6px 10px;
    vertical-align: top;
    overflow-wrap: anywhere;
    word-break: normal;
    min-width: 0;
    white-space: normal;
  }

  #physicianBriefContainer th {
    background: #eaf0f5;
    color: #334155;
    font-size: 7.5pt;
    letter-spacing: 0.02em;
  }

  #physicianBriefContainer td { background: #fff; }
  #physicianBriefContainer tbody tr:nth-child(even) td { background: #f8fafc; }
  #physicianBriefContainer thead { display: table-header-group; }
  #physicianBriefContainer .brief-episode-table td:first-child span {
    color: #475569;
    font-size: 8pt;
  }

  #physicianBriefContainer .severity-pill {
    min-width: 0;
    padding: 1mm 1.5mm;
    border: 1px solid #cbd5e1;
    background: #f1f5f9;
    color: #0f172a;
    font-size: 7.5pt;
    line-height: 1.25;
    white-space: normal;
  }

  #physicianBriefContainer .brief-signoff {
    display: none !important;
  }

  #physicianBriefContainer .brief-print-signoff[hidden] {
    display: block !important;
    margin-top: auto;
    padding-top: 3mm;
    border-top: 1px solid #94a3b8;
    color: #111827 !important;
    opacity: 1 !important;
    -webkit-text-fill-color: #111827 !important;
    font-size: 9pt;
    font-weight: 400;
  }

  #physicianBriefContainer .brief-print-signoff * {
    color: #111827 !important;
    opacity: 1 !important;
    -webkit-text-fill-color: #111827 !important;
  }

  #physicianBriefContainer .brief-notes-lines {
    height: 12mm;
    margin: 1mm 0 3mm;
    border: 0;
    background: repeating-linear-gradient(to bottom, transparent 0, transparent calc(6mm - 1px), #94a3b8 calc(6mm - 1px), #94a3b8 6mm);
  }

  #physicianBriefContainer .brief-signature-row {
    display: flex;
    flex-wrap: nowrap;
    align-items: baseline;
    gap: 2mm;
  }

  #physicianBriefContainer .brief-writing-line {
    display: inline-block;
    flex: 1;
    min-height: 5mm;
    border-bottom: 1px solid #64748b;
  }

  #physicianBriefContainer .brief-date-line { flex: 0 0 30mm; }

  #physicianBriefContainer .brief-header,
  #physicianBriefContainer .brief-metadata-grid,
  #physicianBriefContainer .brief-metrics-grid,
  #physicianBriefContainer tr,
  #physicianBriefContainer .brief-print-signoff {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  /* Long histories can paginate; never truncate or scale away clinical text. */
  #physicianBriefContainer .brief-episodes,
  #physicianBriefContainer table { break-inside: auto; }
  #physicianBriefContainer h4,
  #physicianBriefContainer h5,
  #physicianBriefContainer .brief-section-title { break-after: avoid; }
  #physicianBriefContainer p { orphans: 2; widows: 2; }
}
