/* The report uses physical units and scoped typography, never viewport breakpoints. */
#projectPrintRoot { display: none; }

@media print {
  @page { size: A4 landscape; margin: 10mm; }

  html, body {
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: #fff !important;
  }
  body > :not(#projectPrintRoot) { display: none !important; }
  body::before, body::after { display: none !important; }

  #projectPrintRoot {
    display: block !important;
    width: 277mm;
    margin: 0;
    padding: 0;
    color: #172c25;
    background: #fff;
    font: 400 8.4pt/1.28 "Inter", Arial, sans-serif;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  #projectPrintRoot *, #projectPrintRoot *::before, #projectPrintRoot *::after {
    box-sizing: border-box;
    animation: none !important;
    transition: none !important;
    box-shadow: none;
    text-shadow: none;
    letter-spacing: normal;
  }
  #projectPrintRoot h1, #projectPrintRoot h2, #projectPrintRoot h3,
  #projectPrintRoot p, #projectPrintRoot figure, #projectPrintRoot dl,
  #projectPrintRoot dt, #projectPrintRoot dd, #projectPrintRoot ul {
    margin: 0;
    padding: 0;
    color: inherit;
  }
  #projectPrintRoot .pr-page {
    display: flex;
    flex-direction: column;
    gap: 1.05mm;
    width: 277mm;
    height: 189.5mm;
    margin: 0;
    padding: 0;
    border: 0;
    background: #fff;
    break-inside: avoid;
    page-break-inside: avoid;
    overflow: visible;
  }
  #projectPrintRoot .pr-information {
    break-after: page;
    page-break-after: always;
  }
  #projectPrintRoot .pr-photographs {
    break-after: auto;
    page-break-after: auto;
  }
  #projectPrintRoot .pr-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 7mm;
    padding-bottom: 2mm;
    border-bottom: .8mm solid #16734c;
    flex: 0 0 auto;
  }
  #projectPrintRoot .pr-eyebrow {
    margin-bottom: 1mm;
    color: #16734c;
    font: 700 8pt/1.2 "Inter", Arial, sans-serif;
    letter-spacing: 1.5pt;
    text-transform: uppercase;
  }
  #projectPrintRoot h1 {
    font: 600 21pt/1.08 "Fraunces", Georgia, serif;
    color: #142d24;
    max-width: 211mm;
  }
  #projectPrintRoot .pr-header-meta {
    display: flex;
    flex: 0 0 59mm;
    flex-direction: column;
    align-items: flex-end;
    gap: .7mm;
    text-align: right;
    font-size: 7.5pt;
    line-height: 1.25;
    color: #40554b;
  }
  #projectPrintRoot .pr-header-meta strong { font-size: 9pt; color: #182d24; }
  #projectPrintRoot .pr-status {
    padding: .7mm 2mm;
    border: .25mm solid #afd7be;
    border-radius: 1.2mm;
    color: #12633e;
    background: #edf7f0;
    font-size: 8pt;
    font-weight: 700;
  }
  #projectPrintRoot .pr-summary { font: 500 8.4pt/1.3 "Inter", Arial, sans-serif; color: #334d40; }
  #projectPrintRoot .pr-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 3mm; }
  #projectPrintRoot .pr-kpi {
    display: flex;
    flex-direction: column;
    gap: .45mm;
    min-height: 15.5mm;
    padding: 1.4mm 2.5mm;
    border: .25mm solid #cdded3;
    border-top: .65mm solid #16734c;
    background: #f3f8f4;
    border-radius: 1mm;
  }
  #projectPrintRoot .pr-label { font-size: 6.8pt; font-weight: 700; color: #40574a; text-transform: uppercase; }
  #projectPrintRoot .pr-kpi > strong { font: 600 15pt/1.05 "Fraunces", Georgia, serif; color: #155e3e; }
  #projectPrintRoot .pr-kpi-note { font-size: 6.5pt; color: #52685b; }
  #projectPrintRoot h2 {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 5mm;
    margin: 0 0 1mm;
    font: 600 10.5pt/1.15 "Fraunces", Georgia, serif;
    color: #153d2b;
  }
  #projectPrintRoot h2 > span { color: #52685b; font: 500 6.5pt/1.2 "Inter", Arial, sans-serif; }
  #projectPrintRoot .pr-facts {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3mm;
    padding: 1.3mm 0;
    border-top: .2mm solid #d5e1d8;
    border-bottom: .2mm solid #d5e1d8;
  }
  #projectPrintRoot .pr-contractors {
    grid-column: 1 / -1;
    color: #40584b;
    font-size: 6.8pt;
    line-height: 1.25;
  }
  #projectPrintRoot .pr-contractors strong { color: #193d2b; }
  #projectPrintRoot .pr-fact-main,
  #projectPrintRoot .pr-payment-grid {
    display: grid;
    grid-template-columns: .8fr 2.2fr;
    gap: 1.6mm 3mm;
    align-items: start;
  }
  #projectPrintRoot .pr-payment-grid { grid-template-columns: 1fr 1fr; }
  #projectPrintRoot .pr-detail { display: flex; flex-direction: column; gap: .45mm; min-width: 0; }
  #projectPrintRoot .pr-detail > strong { color: #193d2b; font-size: 8pt; line-height: 1.2; font-weight: 650; }
  #projectPrintRoot .pr-breakdown {
    grid-column: 1 / -1;
    margin-top: -.4mm;
    color: #536b5e;
    font-size: 6.4pt;
    line-height: 1.15;
  }
  #projectPrintRoot .pr-package-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 3mm; }
  #projectPrintRoot .pr-package {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 3mm;
    padding: 1.2mm 2.2mm;
    border: .25mm solid #cfded4;
    border-left: .7mm solid #16734c;
    background: #f5f9f6;
  }
  #projectPrintRoot .pr-package div { display: flex; align-items: baseline; gap: 2mm; }
  #projectPrintRoot .pr-package strong { color: #173c29; font-size: 8.5pt; }
  #projectPrintRoot .pr-package span { color: #50685a; font-size: 6.8pt; }
  #projectPrintRoot .pr-package b { color: #12633e; font: 700 10pt/1 "Fraunces", Georgia, serif; }
  #projectPrintRoot .pr-schedule-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3mm; }
  #projectPrintRoot .pr-schedule {
    min-width: 0;
    padding: 1.4mm 2.2mm;
    border: .25mm solid #ceded3;
    background: #fff;
  }
  #projectPrintRoot .pr-schedule-title { display: flex; align-items: baseline; justify-content: space-between; gap: 2mm; }
  #projectPrintRoot .pr-schedule-title h3 { color: #174a31; font-size: 8.5pt; }
  #projectPrintRoot .pr-schedule-title strong { color: #274c38; font-size: 7.2pt; white-space: nowrap; }
  #projectPrintRoot .pr-schedule-dates { margin: .45mm 0 !important; color: #16734c !important; font-size: 6.8pt; font-weight: 700; }
  #projectPrintRoot .pr-schedule > p:last-child { color: #40584b; font-size: 6.7pt; line-height: 1.22; }
  #projectPrintRoot .pr-phase-table {
    width: 100%;
    min-width: 0;
    border-collapse: collapse;
    table-layout: fixed;
    font: 500 6.45pt/1.1 "Inter", Arial, sans-serif;
  }
  #projectPrintRoot .pr-package-col { width: 19%; }
  #projectPrintRoot .pr-phase-col { width: 18%; }
  #projectPrintRoot .pr-length-col { width: 20%; }
  #projectPrintRoot .pr-progress-col { width: 18%; }
  #projectPrintRoot .pr-status-col { width: 25%; }
  #projectPrintRoot .pr-phase-table th, #projectPrintRoot .pr-phase-table td {
    padding: .48mm 1.5mm;
    border-bottom: .2mm solid #d6e2d9;
    background: transparent;
    color: #213b2d;
    font-size: inherit;
    line-height: inherit;
    text-align: left;
    vertical-align: top;
    white-space: normal;
  }
  #projectPrintRoot .pr-phase-table thead th { background: #e9f3ec; font-size: 6.7pt; font-weight: 700; color: #21553b; }
  #projectPrintRoot .pr-phase-table tbody th { font-weight: 700; }
  #projectPrintRoot .pr-phase-table tbody tr:nth-child(even) td,
  #projectPrintRoot .pr-phase-table tbody tr:nth-child(even) th { background: #f8faf8; }
  #projectPrintRoot .pr-progress-value { color: #12633e; font-weight: 750; }
  #projectPrintRoot .pr-activity-section { break-inside: avoid; page-break-inside: avoid; }
  #projectPrintRoot .pr-activity-table {
    width: 100%;
    min-width: 0;
    border-collapse: collapse;
    table-layout: fixed;
    font: 500 6.15pt/1.1 "Inter", Arial, sans-serif;
  }
  #projectPrintRoot .pr-activity-col { width: 25%; }
  #projectPrintRoot .pr-target-col { width: 8%; }
  #projectPrintRoot .pr-completed-col { width: 12%; }
  #projectPrintRoot .pr-percent-col { width: 10.33%; }
  #projectPrintRoot .pr-activity-table th,
  #projectPrintRoot .pr-activity-table td {
    padding: .46mm .9mm;
    border: .2mm solid #d6e2d9;
    color: #213b2d;
    text-align: center;
    vertical-align: middle;
  }
  #projectPrintRoot .pr-activity-table thead th {
    background: #e9f3ec;
    color: #21553b;
    font-size: 5.8pt;
    font-weight: 700;
  }
  #projectPrintRoot .pr-activity-table thead tr:first-child th { border-bottom-color: #b8d0c0; }
  #projectPrintRoot .pr-activity-table thead th > strong,
  #projectPrintRoot .pr-activity-table thead th > span { display: block; }
  #projectPrintRoot .pr-activity-table thead th > strong { font-size: 6.55pt; }
  #projectPrintRoot .pr-activity-table thead th > span {
    margin-top: .25mm;
    color: #426251;
    font-size: 5.05pt;
    line-height: 1.08;
  }
  #projectPrintRoot .pr-activity-table tbody th {
    padding-left: 1.3mm;
    background: #f8faf8;
    color: #203d2d;
    font-weight: 650;
    text-align: left;
  }
  #projectPrintRoot .pr-activity-table tbody tr:nth-child(even) td { background: #fbfcfb; }
  #projectPrintRoot .pr-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: nowrap;
    gap: 4mm;
    width: 100%;
    max-width: none;
    margin: auto 0 0;
    padding: 1.7mm 0 0;
    border-top: .3mm solid #8eae99;
    color: #506b5b;
    font: 400 7.5pt/1.2 "Inter", Arial, sans-serif;
    flex: 0 0 auto;
  }
  #projectPrintRoot .pr-footer strong { color: #204a33; font-size: 8pt; }
  #projectPrintRoot .pr-photo-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 10mm;
    padding-bottom: 2.5mm;
    border-bottom: .75mm solid #16734c;
  }
  #projectPrintRoot .pr-photo-header h2 { margin: 0; font-size: 19pt; }
  #projectPrintRoot .pr-photo-header > span { color: #40594a; font-size: 9pt; }
  #projectPrintRoot .pr-photo-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: 3.5mm;
    flex: 1;
    min-height: 0;
    padding: 1mm 0;
  }
  #projectPrintRoot .pr-photo {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    padding: 1.5mm;
    border: .25mm solid #cddad2;
    border-radius: 1mm;
    break-inside: avoid;
    page-break-inside: avoid;
  }
  #projectPrintRoot .pr-photo-frame { flex: 1; min-height: 0; background: #f4f6f4; }
  #projectPrintRoot .pr-photo img { display: block; width: 100%; height: 100%; max-width: none; max-height: none; object-fit: contain; border: 0; border-radius: 0; }
  #projectPrintRoot .pr-photo figcaption { display: flex; align-items: baseline; justify-content: space-between; gap: 3mm; padding: 1.8mm .5mm .3mm; font-size: 8pt; line-height: 1.3; color: #244331; }
  #projectPrintRoot .pr-photo figcaption strong { font-weight: 600; }
  #projectPrintRoot .pr-photo figcaption time { flex: 0 0 auto; color: #526b5a; font-size: 7.5pt; }
  #projectPrintRoot .pr-photo-empty { display: grid; place-items: center; border: .25mm dashed #d0ddd3; color: #667e6f; background: #fafcfb; font-size: 8pt; }
}
