/* ============================================================================
   shared/print-sheet.css - THE ONE PRINT COMPONENT (W7-13, re-architecture programme, card P2449)

   WHAT IT IS. The rules every printed sheet in both products shares, written once and read from the
   print tokens (shared/tokens.print.css, generated by W2-08 from design/print/tokens.print.json, one
   block per brand). A page carries two links in its head and both are print-only:
       <link rel="stylesheet" href="/shared/tokens.print.css" media="print">
       <link rel="stylesheet" href="/shared/print-sheet.css" media="print">
   so none of this reaches a screen: the media attribute keeps the files off the screen cascade, and
   every rule below is inside @media print as well, so loading it without the attribute still cannot
   leak. Each page's own @media print block keeps what is true of that sheet alone (what to hide, where
   a page breaks, its @page margin) and reads its inks from the same tokens.

   PRINT RENDERS ON PHYSICAL WHITE PAPER IN EVERY THEME. The tokens are plain values, not theme
   tokens: black ink on white whatever the screen is showing. Every var() below carries its own
   fallback, so a page that has not loaded the tokens file still prints the same sheet.

   THE EIGHT ROLES come from the token set: --print-ink, --print-ink-muted, --print-rule,
   --print-paper, and the four greys this file once carried as component properties (--print-ink-soft,
   --print-rule-soft, --print-rule-strong, --print-fill-soft), promoted into design/print/tokens.print.json
   for both brands by W14 under the same names, so no page changed. The Designer's sheets read them
   with their own fallbacks. The optimizer and the inventory report keep their grey literals as the
   waived literals they already carry, because loading this file there would also pull in its body
   rule and move their body ink.

   THE BROWN INK IS NOT HERE and is not to be added. The brown in the Systainer print documents and
   in the optimizer's popup documents carries a written, reasoned waiver in the files that paint it
   and is content under FD166's own three-step test (the founder's 2026-08-17 decision). Those
   documents are standalone strings that load no stylesheet and are left as they are.

   NO @page RULE LIVES HERE. A page margin is a property of the sheet, and tests pin that no @page
   rule ever forces a size (tests/p769-p771-print-frame.test.cjs), so each sheet states its own.
   ========================================================================== */
/* lint-ok-hex-start: content=print print media renders on physical white paper for every theme, so these greys are plain ink values and not theme tokens (the same waiver shared/tokens.print.css carries) */
@media print {
  /* The page is paper and the ink is black, in the light theme and the dark one. The four install
     guides take their paper and ink from this rule and keep their own chrome rules (the nav, the
     hero band, the card lists) in their own @media print blocks, because those class names are
     theirs and a global .nav or .hero here would reach the other sheets. `html body` carries one more
     step of specificity than a page's own plain `body` rule, so the order the two files load in never
     decides which sheet's paper wins. */
  html body {
    background: var(--print-paper, #fff);
    color: var(--print-ink, #000);
  }

  /* FD19 / P175: the customer, job number, PO and site rows a sheet carries under its title.
     Screen-hidden by each page; shown here only when there is something to say (:empty). The size
     is the sheet's own (--print-meta-size), set by a page that needs a size other than 10pt. */
  .print-project-name:not(:empty) {
    display: block;
    font-size: 12pt;
    font-weight: 700;
    color: var(--print-ink, #000);
    margin: 0 0 10px;
  }
  .print-job-meta:not(:empty) {
    display: block;
    font-size: var(--print-meta-size, 10pt);
    color: var(--print-ink, #000);
    margin: 0 0 12px;
    line-height: 1.5;
  }
  .print-job-meta .pjm-row { display: block; }
  .print-job-meta .pjm-k { font-weight: 700; margin-right: 6px; }

  /* A sheet's colour fills (a legend swatch, a hero band) print as drawn, not dropped to white. */
  .print-exact {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
}
/* lint-ok-hex-end */
