/* © 2026 Lumira Studio (lumirastudio.com). All rights reserved. Not licensed for copying or reuse. */
/* The printed document, for every page that prints through js/sheet.js.
   Page boxes at paper size, the running head and foot, the banded tables, the
   weather strip, semantic colour. Load beside js/sheet.js; the page itself
   hides its own chrome at print. */

/* ============================================================
   THE DOCUMENT
   A4 landscape, 297 x 210mm, one .page per printed sheet. On screen the stack
   is scaled down to the column width; at print the scale comes off and each box
   maps one to one onto paper.
   ============================================================ */

.sheet-zoom{ overflow:hidden; margin-bottom:24px; }
/* Set from the record: A4 landscape 297x210, Letter landscape 279.4x215.9.
   The @page rule that has to match is written into #page-size at the same time,
   because @page cannot read a custom property. */
#sheet{ transform-origin:top left; width:var(--pgw,297mm); }

.page{
  width:var(--pgw,297mm); height:var(--pgh,210mm); box-sizing:border-box;
  padding:11mm 14mm; margin:0 0 7mm;
  background:#fff; color:#000;
  box-shadow:var(--lift);
  display:flex; flex-direction:column; overflow:hidden;
  font-size:8.6pt; line-height:1.34;
}
/* The running head. A double rule under it, heavy then hair, is the oldest
   device there is for "this is a document, not a printout", and the reference
   carries the same weight of line. */
.pg-head{
  flex:0 0 auto; text-align:center; position:relative;
  border-bottom:1.6pt solid var(--sheet-accent,#221f1b); padding-bottom:3.6mm; margin-bottom:.9mm;
}
.pg-head::after{
  content:""; position:absolute; left:0; right:0; bottom:-1.3mm;
  border-bottom:.4pt solid #999;
}
/* A fixed box, not a max: the page has to be the same height before and after
   the logo decodes, or pagination is measured against a header that then grows. */
.pg-head img{ height:9mm; width:auto; max-width:62mm; object-fit:contain; display:block; margin:0 auto 1.7mm; }
.pg-head .t{ font-size:13pt; font-weight:600; letter-spacing:.3em; text-transform:uppercase; color:#111; }
.pg-head .s{ font-size:8.4pt; letter-spacing:.04em; color:#3a3a3a; margin-top:2.1mm; }
.pg-head .s i{ font-style:normal; color:#9a9a9a; padding:0 .4em; }
/* The cover's logo strip: you, then a box per organisation. */
.pg-logos{ display:flex; align-items:center; justify-content:center; gap:7mm; margin-bottom:4.2mm; }
.pg-you{ display:flex; align-items:center; gap:3mm; padding-right:5mm; border-right:.5pt solid #bbb; }
.pg-you img{ height:9mm; width:auto; max-width:40mm; object-fit:contain; display:block; margin:0; }
.pg-you b{ font-size:12pt; font-weight:600; letter-spacing:-.02em; color:#111; }
.pg-org{ display:flex; flex-direction:column; align-items:center; justify-content:center; min-width:26mm; height:8.6mm; padding:0 3mm; border:.5pt dashed #bbb; border-radius:1mm; }
/* A box with a dashed edge says "a logo goes here". Once one is there, the edge goes. */
.pg-org.has-logo{ border-color:transparent; padding:0 1mm; }
.pg-org img{ height:8mm; width:auto; max-width:34mm; object-fit:contain; display:block; margin:0; }
.pg-org i{ font-style:normal; font-size:5.8pt; letter-spacing:.14em; text-transform:uppercase; color:#888; }
.pg-org b{ font-size:8pt; font-weight:600; color:#222; }
.pg-head.cover .t{ margin-top:.4mm; }
.pg-body{ flex:1 1 auto; overflow:hidden; padding-top:4.8mm; }
.pg-foot{
  flex:0 0 auto; display:flex; align-items:center; justify-content:space-between; gap:6mm;
  border-top:.5pt solid #bbb; padding-top:1.7mm; margin-top:2.2mm;
  font-size:6.6pt; letter-spacing:.05em; color:#777;
}
.pg-foot a{ color:inherit; text-decoration:none; }
.pg-foot img{ height:4.2mm; width:auto; max-width:34mm; object-fit:contain; display:block; }
.pg-foot .wm{ font-family:'Poppins',sans-serif; font-weight:600; font-size:7.4pt; letter-spacing:-.01em; color:#555; }
.pg-foot .wm i{ font-style:normal; color:#6ab8f7; }

.d-band{
  background:#f1efea; border:.5pt solid #dcd8d0; border-left:1.6pt solid var(--sheet-accent,#221f1b);
  padding:1.3mm 2.5mm; margin:0 0 2.3mm;
  font-size:7.2pt; letter-spacing:.17em; text-transform:uppercase; font-weight:600;
}
.d-gap{ height:3.6mm; }
.d-note{ font-size:8.4pt; }

table.d-tab{ width:100%; border-collapse:collapse; table-layout:fixed; margin-bottom:1mm; }
table.d-tab th{
  background:#f1efea; text-align:left; font-size:6.9pt; letter-spacing:.12em;
  text-transform:uppercase; font-weight:600; color:#333;
  padding:1.6mm 2mm; border-top:.5pt solid #b4b0a8; border-bottom:.8pt solid #999;
  border-right:.5pt solid #d6d2ca;
}
table.d-tab th:last-child{ border-right:0; }
table.d-tab th.c, table.d-tab td.c{ text-align:center; }
table.d-tab td{
  padding:1.5mm 2mm; border-bottom:.4pt solid #ddd; vertical-align:top;
  word-wrap:break-word; overflow-wrap:break-word;
}
table.d-tab tr:last-child td{ border-bottom:.8pt solid #999; }
table.d-tab td.n{ color:#888; font-size:7.4pt; }

/* The shot list document: a summary strip, location groups, spare rows. */
.d-strip{
  display:grid; grid-template-columns:1fr 2.2fr 1fr;
  border-top:.8pt solid #999; border-bottom:.8pt solid #999; margin-bottom:3.4mm;
}
.d-strip > div{ padding:2mm 2.5mm; border-left:.4pt solid #ddd; }
.d-strip > div:first-child{ border-left:0; padding-left:0; }
.d-strip .k{ display:block; font-size:6.5pt; letter-spacing:.14em; text-transform:uppercase; color:#666; }
.d-strip .v{ display:block; font-size:9.6pt; margin-top:.6mm; }
table.d-tab tr.grp td{
  background:#f6f4f0; font-size:6.8pt; letter-spacing:.16em; text-transform:uppercase;
  color:#444; padding:1.3mm 2mm; border-bottom:.4pt solid #ddd;
}
table.d-tab tr.spare td{ height:6.4mm; }
table.d-tab tr.spare td.n{ color:#bbb; }
.d-tick{ display:inline-block; width:3.2mm; height:3.2mm; border:.5pt solid #777; vertical-align:middle; }
.d-tick.on{ background:#333; }

.d-orgs{ display:grid; gap:3.5mm 4mm; margin-bottom:4.4mm; }
.d-org{ border-right:.5pt solid #ddd; padding-right:4mm; }
.d-org:last-child{ border-right:0; }
.d-org .lab{
  background:#f1efea; border-bottom:.5pt solid #d6d2ca;
  font-size:6.6pt; letter-spacing:.15em; text-transform:uppercase; color:#555;
  padding:1.1mm 2mm; margin-bottom:1.8mm;
}
.d-org img{ height:8mm; width:auto; max-width:100%; object-fit:contain; object-position:left; margin-bottom:1.5mm; display:block; }
.d-org .nm{ font-size:9.6pt; font-weight:600; line-height:1.25; color:#111; }
.d-org .ad{ font-size:7.3pt; color:#444; white-space:pre-line; margin-top:.8mm; }

.d-times{
  display:grid; border-top:.8pt solid #999; border-bottom:.8pt solid #999;
  margin-bottom:4.4mm;
}
.d-time{ padding:2mm 2.5mm; border-left:.4pt solid #ddd; }
.d-time:first-child{ border-left:0; padding-left:0; }
.d-time .k{ display:block; font-size:6.5pt; letter-spacing:.14em; text-transform:uppercase; color:#666; }
.d-time .v{ display:block; font-size:12pt; margin-top:.7mm; font-variant-numeric:tabular-nums; }
.d-time.big{ border-bottom:2.6pt solid var(--sheet-accent,#221f1b); margin-bottom:-.8pt; }
.d-time.big .v{ font-size:19pt; font-weight:600; letter-spacing:-.025em; line-height:1.1; }

.d-two{ display:grid; grid-template-columns:1fr 1fr; gap:0 9mm; align-items:start; }
.d-three{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:0 9mm; align-items:start; }
.d-four{ display:grid; grid-template-columns:1fr 1fr 1fr 1fr; gap:0 7mm; align-items:start; }

/* The composed cover: two columns, sections stacked in each. */
.d-cover{ display:grid; grid-template-columns:58fr 42fr; gap:0 7mm; align-items:start; }
.d-sec{ margin-bottom:2.2mm; }
.d-sec:last-child{ margin-bottom:0; }
.d-sec .d-band{ margin-bottom:1.4mm; }
.d-cover-wrap .d-times{ margin-bottom:3.4mm; }
.d-cover .d-wxh{ padding:1mm 0 .8mm; margin-top:1.8mm; }
.d-band-red{ background:#f7ece9; border-color:#e6cfc9; border-left-color:#a8402c; }
.d-glance{ width:100%; border-collapse:collapse; font-size:8.4pt; }
.d-glance td{ padding:.6mm 1.5mm .5mm 0; border-bottom:.4pt solid #e2e2e2; vertical-align:top; }
.d-glance td.tm{ width:24mm; font-size:7.2pt; letter-spacing:.04em; color:#555; font-variant-numeric:tabular-nums; white-space:nowrap; }
.d-glance tr:last-child td{ border-bottom:0; }
.d-glance td.more, .d-cover .more{ color:#777; font-size:7.6pt; }
.d-cover .d-loc{ gap:0 5mm; }
.d-cover .d-loc .d-cell{ margin-bottom:1.2mm; }
.d-cover .d-cell{ margin-bottom:2mm; }
.d-bullets{ margin:0; padding:0 0 0 3.5mm; font-size:8.5pt; }
.d-bullets li{ margin:0 0 1mm; padding-left:.5mm; }
.d-bullets li::marker{ color:#888; }
/* The on-the-day list: a table so it paginates, drawn as a list. */
table.d-list th{ border-right:0; }
table.d-list td{ border-bottom:0; padding:.5mm 2mm .35mm; }
table.d-list td.b{ width:4mm; padding-right:0; color:#666; }
table.d-list tr:last-child td{ border-bottom:0; padding-bottom:1.5mm; }
table.d-list tr.d-red td{ color:#a8402c; }
.d-cell{ margin-bottom:2.2mm; }
.d-cell .k{ display:block; font-size:6.5pt; letter-spacing:.14em; text-transform:uppercase; color:#666; margin-bottom:.6mm; }
.d-cell .v{ display:block; }

.d-wx{ display:flex; align-items:center; gap:3.5mm; }
.d-wxi{ width:10mm; height:10mm; flex:none; color:#222; }
.d-wxw{ font-size:8pt; color:#444; margin-top:.3mm; }
.d-wxh i{ display:block; height:4.6mm; margin:.6mm 0 .2mm; color:#333; }
.d-wxhi{ width:4.4mm; height:4.4mm; }
.d-wx .t{ font-size:17pt; font-weight:600; letter-spacing:-.025em; line-height:1.05; }
.d-wx .t span{ color:#888; font-weight:400; }
.d-wx .sun{ margin-left:auto; text-align:right; font-size:6.9pt; color:#666; line-height:1.5; }
.d-wxh{
  display:flex; gap:.5mm; margin-top:2.4mm; padding:1.4mm 0 1.2mm;
  border-top:.4pt solid #ddd; border-bottom:.4pt solid #ddd;
}
.d-wxh > div{ flex:1 1 0; text-align:center; }
.d-wxh em{ font-style:normal; display:block; font-size:6.3pt; color:#666; }
.d-wxh b{ display:block; font-weight:500; font-size:8pt; }
.d-wxh u{ display:block; text-decoration:none; font-size:6.3pt; color:#2b5f8a; }

/* The shooting schedule: a frame is a shot's picture, never an empty box (29 Sept 2026). 16:9
   at the width the column allows; the number is the shot's own. A move or a
   break is a banner across the page, the break in red. */
table.d-sched td.t{ font-variant-numeric:tabular-nums; white-space:nowrap; }
table.d-sched td.t i{ display:block; font-style:normal; color:#777; }
table.d-sched td.f{ padding-top:1.6mm; }
/* A time that cannot move. Ink, not colour: red on this document prohibits. */
.d-fixed{ display:block; margin-top:.8mm; font-size:5.8pt; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:#111; }
.d-frame{ width:27mm; height:15.2mm; border:.5pt solid #222; border-radius:.6mm; position:relative; margin:0 0 1.4mm; overflow:hidden; }
.d-frame img{ display:block; width:100%; height:100%; object-fit:cover; }
.d-frame span{ background:#fff; padding:0 .6mm; border-radius:.4mm; }
.d-frame:last-child{ margin-bottom:0; }
.d-frame span{ position:absolute; left:1.2mm; top:.6mm; font-size:6.4pt; color:#777; }
.d-what{ font-weight:500; }
.d-where{ font-size:7.4pt; color:#666; margin-top:.3mm; }
.d-shot{ font-size:7.8pt; color:#444; margin-top:.9mm; }
.d-shot b{ display:inline-block; min-width:4.5mm; font-weight:600; color:#222; }
table.d-sched td.d-needs{ font-size:6.9pt; letter-spacing:.06em; text-transform:uppercase; color:#444; line-height:1.55; }
table.d-tab tr.banner td{
  background:#f1efea; font-size:6.9pt; letter-spacing:.14em; text-transform:uppercase;
  color:#333; padding:1.3mm 2mm; border-bottom:.4pt solid #ddd;
}
table.d-tab tr.banner.hold td{ background:#f7ece9; color:#a8402c; }

/* Colour is semantic on this document and nowhere else: red prohibits, green is
   sustainability, blue is a link or a rain percentage. Straight from the
   reference, and it is the whole palette. */
.d-red{ color:#a8402c; }
.d-green{ color:#4a6b4f; }
.page a{ color:#2b5f8a; text-decoration:none; }

@media print{
  html, body{ background:#fff !important; }
  .no-print{ display:none !important; }
  /* Only the sheet prints. Everything else on the page - the menu, the Free
     tools row, the header, the questions and answers, the footer - is hidden
     by rule rather than by remembering to tag it (Luke's print, 27 Sept 2026:
     a new row pushed page 1's footer onto a blank page, and the FAQ printed). */
  body > :not(:has(#sheet)){ display:none !important; }
  :has(> #view-sheet) > :not(#view-sheet){ display:none !important; }
  .wrap{ max-width:none; padding:0; margin:0; }
  .sheet-zoom{ overflow:visible; height:auto !important; margin:0; }
  #sheet{ transform:none !important; width:auto; }
  .page{ margin:0; box-shadow:none; break-after:page; }
  .page:last-child{ break-after:auto; }
}
/* Interview questions (7 Oct 2026): the star marks a Key question. */
table.d-questions td.c{ padding-left:0; padding-right:0; }
svg.d-qstar{ width:3.2mm; height:3.2mm; fill:#222; vertical-align:-.5mm; }
