/* Print-only workbook. The PDF builder adds the page footer separately. */
.pd-print-workbook { display: none; }

@media print {
  @page { size: A4 portrait; margin: 12mm 16mm 26mm; }

  html, body { background: #FFFFFF !important; }
  body > .pd-defs,
  body > #progress,
  body > .pd-skip,
  body > .header,
  body > .pd-toc,
  body > main,
  body > .footer { display: none !important; }

  .pd-print-workbook {
    display: block !important;
    color: #0F2440;
    background: #FFFFFF;
    font-family: Vazirmatn, sans-serif;
    font-size: 10pt;
    font-weight: 500;
    line-height: 1.8;
  }

  .pw-page {
    box-sizing: border-box;
    min-height: 258mm;
    break-after: page;
    page-break-after: always;
  }

  .pw-page:last-child {
    break-after: auto;
    page-break-after: auto;
  }

  .pw-kicker {
    margin: 0 0 4mm;
    color: #6B7280;
    font-size: 8.5pt;
    font-weight: 600;
  }

  .pw-page h1,
  .pw-page h2,
  .pw-page h3,
  .pw-page p { margin-top: 0; }

  .pw-page h1,
  .pw-page h2 {
    color: #1A365D;
    font-family: Vazirmatn, sans-serif;
    font-weight: 700;
    line-height: 1.2;
  }

  .pw-page h1 { margin-bottom: 3mm; font-size: 25pt; }
  .pw-page h2 { margin-bottom: 2.5mm; font-size: 20pt; }
  .pw-page h3 { margin-bottom: 3mm; color: #1A365D; font-size: 12pt; font-weight: 700; }
  .pw-intro { max-width: 130mm; margin-bottom: 3mm; font-size: 10pt; }
  .pw-disclosure { margin-bottom: 3mm; color: #6B7280; font-size: 8.5pt; }
  .pw-rule { height: 1px; margin: 5mm 0; border: 0; background: #E5E7EB; }

  .pw-figure {
    margin: 0;
    padding: 3.5mm;
    border: 1px solid #E5E7EB;
    background: #F9F8F4;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .pw-figure-title {
    margin-bottom: 1mm !important;
    color: #1A365D;
    direction: ltr;
    font-family: Vazirmatn, sans-serif;
    font-size: 13pt;
    font-weight: 700;
    text-align: left;
  }

  .pw-figure-copy,
  .pw-caption {
    margin-bottom: 2.5mm !important;
    color: #374151;
    font-size: 8.5pt;
  }

  .pw-caption { margin: 2.5mm 0 0 !important; }
  .pw-map { margin: 0; padding: 0; list-style: none; direction: ltr; }

  .pw-shared,
  .pw-branches,
  .pw-final {
    display: grid;
    gap: 7mm;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .pw-shared { grid-template-columns: minmax(0, 1fr); margin: 0 auto; max-width: 118mm; }
  .pw-branches { grid-template-columns: repeat(2, 1fr); margin: 0 auto; max-width: 118mm; }
  .pw-final { grid-template-columns: minmax(0, 1fr); margin: 0 auto; max-width: 74mm; }

  .pw-stage {
    position: relative;
    box-sizing: border-box;
    min-height: 14mm;
    padding: 2.5mm 3mm;
    border: 1px solid #E5E7EB;
    background: #FFFFFF;
    color: #0F2440;
    font-size: 8.6pt;
    font-weight: 600;
    line-height: 1.45;
    text-align: left;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .pw-stage b {
    display: inline-grid;
    width: 5.5mm;
    height: 5.5mm;
    margin-right: 2mm;
    place-items: center;
    background: #1A365D;
    color: #FFFFFF;
    font-size: 7.5pt;
    font-weight: 700;
    line-height: 1;
  }

  .pw-shared .pw-stage:not(:last-child)::before {
    position: absolute;
    z-index: 2;
    top: calc(100% + 1px);
    left: 50%;
    width: 1px;
    height: 7mm;
    background: #1A365D;
    content: "";
  }

  .pw-shared .pw-stage:not(:last-child)::after {
    position: absolute;
    z-index: 2;
    top: calc(100% + 6mm);
    left: calc(50% - 1.4mm);
    width: 0;
    height: 0;
    border-top: 2.3mm solid #1A365D;
    border-right: 1.5mm solid transparent;
    border-left: 1.5mm solid transparent;
    content: "";
  }

  .pw-fork,
  .pw-merge {
    position: relative;
    width: 118mm;
    height: 8mm;
    margin: 0 auto;
    direction: ltr;
  }

  .pw-fork::before,
  .pw-merge::before {
    position: absolute;
    left: 50%;
    width: 1px;
    height: 3mm;
    background: #1A365D;
    content: "";
  }

  .pw-fork::before { top: 0; }
  .pw-merge::before { top: 3mm; height: 4mm; }

  .pw-fork::after,
  .pw-merge::after {
    position: absolute;
    top: 3mm;
    left: 25%;
    width: 50%;
    height: 1px;
    background: #1A365D;
    content: "";
  }

  .pw-fork i {
    position: absolute;
    top: 3mm;
    width: 1px;
    height: 4mm;
    background: #1A365D;
  }

  .pw-fork i:nth-of-type(1) { left: 25%; }
  .pw-fork i:nth-of-type(2) { left: 75%; }

  .pw-fork i::after {
    position: absolute;
    top: 2.5mm;
    left: -1.4mm;
    width: 0;
    height: 0;
    border-top: 1.6mm solid #1A365D;
    border-right: 1.4mm solid transparent;
    border-left: 1.4mm solid transparent;
    content: "";
  }

  .pw-fork span { display: none; }

  .pw-merge::after { top: 3mm; }
  .pw-merge i {
    position: absolute;
    top: 0;
    width: 1px;
    height: 3mm;
    background: #1A365D;
  }
  .pw-merge i::after {
    position: absolute;
    top: 2mm;
    left: -1.4mm;
    width: 0;
    height: 0;
    border-top: 1.6mm solid #1A365D;
    border-right: 1.4mm solid transparent;
    border-left: 1.4mm solid transparent;
    content: "";
  }
  .pw-merge i:nth-of-type(1) { left: 25%; }
  .pw-merge i:nth-of-type(2) { left: 75%; }
  .pw-merge span {
    position: absolute;
    top: 6mm;
    left: 50%;
    width: 0;
    height: 0;
    border-top: 1.6mm solid #1A365D;
    border-right: 1.4mm solid transparent;
    border-left: 1.4mm solid transparent;
    transform: translateX(-50%);
  }

  .pw-compact { padding: 2.5mm; }
  .pw-compact .pw-figure-title { font-size: 10.5pt; }
  .pw-compact .pw-figure-copy,
  .pw-compact .pw-caption { margin-bottom: 1.5mm !important; font-size: 7.2pt; }
  .pw-compact .pw-stage { min-height: 10mm; padding: 1.5mm 2.5mm; font-size: 7.1pt; line-height: 1.25; }
  .pw-compact .pw-stage b { width: 4.6mm; height: 4.6mm; margin-right: 1.3mm; font-size: 6.5pt; }
  .pw-compact .pw-shared,
  .pw-compact .pw-branches { gap: 2mm; }
  .pw-compact .pw-shared .pw-stage:not(:last-child)::before { height: 2mm; }
  .pw-compact .pw-shared .pw-stage:not(:last-child)::after { top: calc(100% + 1mm); left: calc(50% - 1.4mm); }
  .pw-compact .pw-fork,
  .pw-compact .pw-merge { height: 5mm; }
  .pw-compact .pw-fork::before { height: 2mm; }
  .pw-compact .pw-fork::after { top: 2mm; }
  .pw-compact .pw-fork i { top: 2mm; height: 2mm; }
  .pw-compact .pw-fork i::after { top: 0.5mm; }
  .pw-compact .pw-merge::before { top: 2mm; height: 2mm; }
  .pw-compact .pw-merge::after { top: 0; }
  .pw-compact .pw-merge i { top: 0; }
  .pw-compact .pw-merge span { top: 3mm; }

  .pw-workflow {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2mm;
    margin: 3mm 0 0;
    padding: 0;
    list-style: none;
  }

  .pw-workflow li { padding: 2mm; border-top: 2px solid #1A365D; background: #F9F8F4; font-size: 8.5pt; line-height: 1.55; }
  .pw-workflow b { display: block; margin-bottom: 0; color: #1A365D; font-size: 8.5pt; }

  .pw-response-lead { margin-bottom: 2mm; font-size: 9pt; }
  .pw-fields { display: grid; gap: 2mm; }
  .pw-field { break-inside: avoid; page-break-inside: avoid; }
  .pw-label { display: block; margin-bottom: 1mm; color: #1A365D; font-size: 9pt; font-weight: 700; }
  .pw-lines {
    border: 1px solid #E5E7EB;
    background: #FFFFFF;
  }
  .pw-lines--overview { height: 10mm; }
  .pw-lines--plan { height: 11mm; }
  .pw-lines--draft { height: 27mm; }
  .pw-lines--evidence { height: 10mm; }
  .pw-lines--revision { height: 110mm; }

  .pw-key-box,
  .pw-note-box {
    box-sizing: border-box;
    margin-top: 5mm;
    padding: 5mm;
    border: 1px solid #E5E7EB;
    background: #F9F8F4;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .pw-model {
    margin: 0 0 4mm;
    padding: 3.5mm;
    border-right: 2px solid #1A365D;
    background: #FFFFFF;
    color: #0F2440;
    direction: ltr;
    font-size: 10pt;
    font-weight: 600;
    line-height: 1.65;
    text-align: left;
  }

  .pw-checklist { margin: 0; padding-right: 5mm; }
  .pw-checklist li { margin: 1.5mm 0; }
  .pw-note-box { margin-top: 5mm; background: #FFFFFF; }
  .pw-note-box p:last-child { margin-bottom: 0; }
  .pw-revision-lead { margin-bottom: 4mm; font-size: 10.5pt; }
  .pw-small { color: #6B7280; font-size: 8.5pt; }
}
