/* KinoScope Budgets – print styles, design v2 "editorial".
   Letter. Charcoal masthead band, heavy editorial rules, grand total as a charcoal block.
   Summary page 1, breakdown page 2+. v1 preserved at app/v1-design-backup/. */

#print-root { display: none; }

@page {
  size: letter;
  margin: 0.42in 0.55in 0.5in;
}

@media print {
  body.printing #app,
  body.printing .topbar,
  body.printing .hero,
  body.printing .totalbar,
  body.printing #login,
  body.printing dialog { display: none !important; }

  body.printing { background: #ffffff; }

  body.printing #print-root {
    display: block;
    font-family: 'Archivo', -apple-system, sans-serif;
    color: #1a1a1b;
    font-size: 10pt;
    line-height: 1.4;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .page--break { page-break-before: always; }

  /* ---------- masthead band ---------- */

  .pband {
    background: #161617;
    color: #ffffff;
    border-radius: 4pt;
    overflow: hidden;
    margin-bottom: 16pt;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  .pbrandbar {
    height: 4px;
    background: linear-gradient(90deg, #00b0c1 0 11%, #161617 11% 12.4%, #d4001b 12.4% 100%);
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  .pband__inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 24pt;
    padding: 15pt 18pt 13pt;
  }
  .pband img { height: 20pt; margin-top: 2pt; }
  .pheadr { text-align: right; min-width: 0; }
  .pkicker {
    font-size: 7pt;
    font-weight: 700;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: #d4001b;
  }
  .pband .pkicker { color: #ff4b60; }
  .pclient {
    font-size: 8.5pt;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #c2c2c6;
    margin-top: 5pt;
  }
  .ptitle {
    font-size: 15.5pt;
    font-weight: 800;
    letter-spacing: -0.018em;
    line-height: 1.12;
    margin-top: 3pt;
  }
  .pmeta { font-size: 7.5pt; letter-spacing: 0.06em; color: #9a9aa0; margin-top: 4pt; }

  .pband--slim .pband__inner { padding: 9pt 16pt 8pt; align-items: center; }
  .pband--slim img { height: 13pt; margin-bottom: 0; }
  .pband--slim .ptitle { font-size: 10pt; margin-top: 1pt; }
  .pband--slim .pmeta { display: none; }

  /* ---------- parties – editorial columns with heavy top rules ---------- */

  .pparties { display: flex; gap: 28pt; margin-bottom: 16pt; }
  .pp { flex: 1; border-top: 2pt solid #161617; padding-top: 7pt; }
  .pp--producer { border-top-color: #00b0c1; }
  .pp--producer .pkicker { color: #00b0c1; }
  .pp--client { border-top-color: #d4001b; }
  .pp .pkicker { margin-bottom: 5pt; }
  .pcompany { font-weight: 800; font-size: 10.5pt; letter-spacing: -0.005em; }
  .paddr { font-size: 8.5pt; color: #55555a; line-height: 1.45; }
  .pcontact { font-size: 8.5pt; margin-top: 2pt; }
  .pcontact span {
    font-size: 6.5pt;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #8a8a90;
    margin-right: 4pt;
  }

  .psecthead {
    font-size: 9pt;
    font-weight: 800;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    border-top: 2pt solid #161617;
    padding-top: 8pt;
    margin: 2pt 0 6pt;
  }

  /* ---------- summary table ---------- */

  .ptable { width: 100%; border-collapse: collapse; margin-bottom: 4pt; }
  .ptable td, .ptable th { padding: 5.5pt 6pt 5.5pt 0; border-bottom: 0.5pt solid #e5e3df; vertical-align: baseline; }
  .ptable .pnum { width: 24pt; font-weight: 800; color: #d4001b; font-size: 8pt; letter-spacing: 0.04em; }
  .ptable td.pnum + td { font-weight: 600; font-size: 10pt; letter-spacing: 0.01em; }
  .pmoney { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; font-weight: 700; font-size: 10.5pt; }
  .ptot td { border-bottom: none; padding: 4pt 6pt 2pt 0; }
  .ptot td:first-child {
    text-align: right;
    font-size: 7.5pt;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #8a8a90;
  }
  .ptot .pmoney { font-size: 10pt; }
  .psub td { border-top: 1pt solid #161617; padding-top: 6pt; }

  /* ---------- grand total block ---------- */

  .pgrandblock {
    background: #161617;
    color: #ffffff;
    border-radius: 4pt;
    padding: 13pt 16pt;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20pt;
    margin: 8pt 0 16pt;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  .pgb__label {
    font-size: 8pt;
    font-weight: 700;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: #9a9aa0;
  }
  .pgb__right { text-align: right; }
  .pgb__num {
    font-size: 21pt;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1;
    font-variant-numeric: tabular-nums;
  }
  .pgb__fx { margin-top: 4pt; font-size: 10pt; font-weight: 700; color: #00b0c1; font-variant-numeric: tabular-nums; }
  .pgb__fx span { font-weight: 400; font-size: 7pt; color: #9a9aa0; margin-left: 5pt; letter-spacing: 0.04em; }

  /* ---------- text blocks – two-column editorial footer matter ---------- */

  .pblocks {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10pt 22pt;
    align-items: start;
  }
  .pblk { break-inside: avoid; border-top: 0.75pt solid #c3c2bd; padding-top: 6pt; }
  .pblk .pkicker { margin-bottom: 3pt; }
  .pblktext { font-size: 8pt; line-height: 1.55; color: #44444a; }

  .pfoot {
    margin-top: 8pt;
    padding-top: 6pt;
    border-top: 0.5pt solid #c3c2bd;
    font-size: 6.5pt;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #9a9aa0;
  }

  /* ---------- breakdown ---------- */

  .psection { break-inside: avoid; margin-bottom: 13pt; }
  .pshead {
    font-size: 9.5pt;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    border-top: 2pt solid #00b0c1;
    padding-top: 6pt;
    margin-bottom: 4pt;
  }
  .pshead .pnum { color: #d4001b; margin-right: 5pt; font-size: 8pt; }
  .plines { margin-bottom: 2pt; }
  .plines .pth th {
    font-size: 6.5pt;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #8a8a90;
    text-align: left;
    border-bottom: 0.75pt solid #c3c2bd;
    padding: 3pt 6pt 3pt 0;
  }
  .plines .pth th.pmoney { text-align: right; }
  .plines td { font-size: 9pt; padding: 3.5pt 6pt 3.5pt 0; border-bottom: 0.5pt solid #eceae6; font-weight: 400; }
  .plines td:first-child { font-weight: 500; }
  .plines td.pmoney { font-weight: 700; font-size: 9pt; }
  .plines td.pmoney:not(:last-child) { font-weight: 400; color: #55555a; }
  .plines .psub td { border-top: 1pt solid #161617; border-bottom: none; padding-top: 5pt; }
  .plines .psub td.pmoney { font-size: 9.5pt; font-weight: 800; }
}
