/* ============================================================================
   cz-pdf.css — CleanZone PDF / print template
   ----------------------------------------------------------------------------
   Linked with media="print" only, so it never touches the screen render.

   House style for every CleanZone PDF:
     · full-bleed dark page, brand logotype locked to the top of page 1
     · chrome (headings, verdicts, notes) dark; DATA panels white so figures
       and meters read crisp on paper and on screen
     · tight vertical rhythm — a cell report lands on 2-3 A4 pages

   To brand a new CZ page as a PDF:
     <link rel="stylesheet" href="/css/cz-pdf.css?v=1" media="print">
     <div class="cz-pdf-brand">                                (page-1 header)
       <img src="/img/logo/cleanzone-120.png" alt="CleanZone">
       <span class="cz-pdf-brand-t">Report name</span>
       <span class="cz-pdf-brand-d"></span>                    (JS: date stamp)
     </div>
   then wrap chrome blocks in .cz-pdf-panel and data blocks in .cz-pdf-data.
   Section C below maps the dossier (cell report) classes onto those looks.
   ========================================================================== */

/* --- A. page ------------------------------------------------------------- */
@page{size:A4;margin:0}
*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
html,body{background:#0a0a0a!important;color:#ececec!important}
body{font-size:10.3px;line-height:1.42;
     font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
a{color:#57c04a!important;text-decoration:none}
.no-print,.cz-pdf-hide{display:none!important}

.dz-wrap,.cz-pdf-wrap{max-width:none!important;margin:0!important;padding:8mm 9mm 7mm!important}

/* --- B. shared components ------------------------------------------------ */
.cz-pdf-brand{display:flex!important;align-items:center;gap:10px;
  border-bottom:1.5px solid #30ae21;padding:0 0 6px;margin:0 0 11px}
.cz-pdf-brand img{height:19px;width:auto;display:block}
.cz-pdf-brand-t{font-size:.72rem;letter-spacing:.17em;text-transform:uppercase;
  font-weight:700;color:#8f8f8f;padding-left:10px;border-left:1px solid #2e2e2e}
.cz-pdf-brand-d{margin-left:auto;font-size:.66rem;letter-spacing:.09em;
  text-transform:uppercase;color:#6f6f6f;font-weight:600}

/* dark chrome panel */
.cz-pdf-panel{background:#131313!important;border:1px solid #262626!important;
  border-radius:9px;padding:12px 14px;break-inside:avoid}
/* white data panel */
.cz-pdf-data{background:#fff!important;border:1px solid #ffffff!important;
  border-radius:9px;color:#111!important;break-inside:avoid}
.cz-pdf-data *{border-color:#e6e6e6!important}

.cz-pdf-h{font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;
  color:#4ade80!important;font-weight:700;margin:13px 0 1px;break-after:avoid}
.cz-pdf-sub{color:#8a8a8a!important;font-size:.72rem;margin:0 0 6px;break-after:avoid}
.cz-pdf-note{color:#7d7d7d!important;font-size:.66rem;line-height:1.5;
  margin:11px 0 0;max-width:none;border-top:1px solid #1e1e1e;padding-top:7px}

/* ============================================================================
   C. cell report (dossier.html) mapping
   ========================================================================== */
.dz-topbar,.dz-cta,.dz-back,.dz-load,.dz-gate{display:none!important}
.dz-brandmark{position:static!important;left:auto!important;width:auto!important;
  height:auto!important;overflow:visible!important;opacity:1!important;
  display:flex!important;align-items:center;gap:10px;
  border-bottom:1.5px solid #30ae21;padding:0 0 6px;margin:0 0 11px}
.dz-brandmark img{height:19px;width:auto;display:block}
.dz-pdf-tag{font-size:.72rem;letter-spacing:.17em;text-transform:uppercase;
  font-weight:700;color:#8f8f8f;padding-left:10px;border-left:1px solid #2e2e2e}
.dz-pdf-date{margin-left:auto;font-size:.66rem;letter-spacing:.09em;
  text-transform:uppercase;color:#6f6f6f;font-weight:600}

/* headline block */
.dz-head{max-width:none!important;margin:0 0 8px!important}
.dz-kicker{color:#4ade80!important;font-size:.62rem;letter-spacing:.2em;margin:0 0 3px!important}
.dz-head h1{font-size:1.48rem!important;line-height:1.1;margin:0!important;color:#fff!important}
.dz-head p{display:none!important}

/* verdict + tallies — dark chrome */
.scorecard{background:#131313!important;border:1px solid #262626!important;
  border-radius:9px;padding:11px 13px 11px 15px!important;margin:0!important;
  break-inside:avoid;overflow:hidden}
.scorecard::before{width:3px;background:#30ae21!important}
.sc-top{gap:14px;align-items:center}
.sc-loc{display:none!important}
.sc-sub{color:#8a8a8a!important;font-size:.7rem;margin:0!important}
.sc-verdict{color:#d6d6d6!important;font-size:.86rem;line-height:1.45;margin:5px 0 0!important;max-width:none}
.tallies{gap:7px;margin:0!important;flex-wrap:nowrap}
.tally{background:#0a0a0a!important;border-color:#282828!important;
  border-radius:7px;padding:6px 11px!important;min-width:58px!important}
.tally .n{font-size:1.15rem!important}
.tally .l{font-size:.55rem;margin-top:2px;color:#7d7d7d!important}
.tally.good .n{color:#4ade80!important}
.tally.watch .n{color:#e0b83a!important}
.tally.high .n{color:#e78a8a!important}

/* section headings */
.dz-sec-h{font-size:.66rem;letter-spacing:.18em;color:#4ade80!important;
  margin:9px 0 1px!important;break-after:avoid}
.dz-sec-sub{color:#8a8a8a!important;font-size:.72rem;margin:0 0 6px!important;break-after:avoid}

/* scored breakdown — WHITE data cards, three up.
   .rmetric is the free area report's row class; same component, one ruleset. */
/* fixed 3-up grid; cards stretch to their row so no ragged holes are left */
.cards{display:grid!important;grid-template-columns:repeat(3,1fr)!important;
  gap:7px!important;margin:0!important}
.cat{background:#fff!important;border:1px solid #fff!important;border-radius:9px;
  padding:9px 11px 10px!important;break-inside:avoid}
.cat h4{color:#1f7a12!important;font-size:.6rem;letter-spacing:.13em;margin:0 0 5px!important}
.metric,.rmetric{padding:4.5px 0!important;border-top:1px solid #ececec!important}
.metric:first-of-type,.rmetric:first-of-type{border-top:0!important;padding-top:0!important}
.metric .top,.rmetric .top{gap:6px}
.metric .lab,.rmetric .lab{color:#111!important;font-size:.74rem;font-weight:600;line-height:1.25}
.metric .val,.rmetric .val{color:#111!important;font-size:.8rem;font-weight:800}
.metric .val small,.rmetric .val small{color:#8a8a8a!important;font-size:.62rem}
.meter{height:5px!important;margin:5px 0 4px!important;border-radius:4px}
.meter .mk{width:8px;height:8px;background:#fff!important;border:1.5px solid #333!important;box-shadow:none!important}
.metric .foot,.rmetric .foot{gap:5px}
.metric .src,.rmetric .src{color:#9a9a9a!important;font-size:.58rem;line-height:1.3}
.metric .bdg,.rmetric .bdg{font-size:.57rem;padding:1px 6px;font-weight:700;white-space:nowrap}
.b-good{background:#e3f3df!important;color:#1f7a12!important}
.b-watch{background:#f7edd0!important;color:#8a6a00!important}
.b-high{background:#f7dfdf!important;color:#a12b2b!important}
.b-neutral{background:#efefef!important;color:#555!important}

/* decade sky — WHITE data panel */
.dz-sky{background:#fff!important;border:1px solid #fff!important;border-radius:9px;
  padding:9px 12px 6px!important;margin:0!important;break-inside:avoid}
.dz-sky-verd{color:#333!important;font-size:.76rem;line-height:1.45;margin:0 0 6px!important}
.dz-sky-verd b{color:#111!important}
.dz-sky svg{height:44px!important}
.dz-sky svg path[fill="none"]{stroke:#1f7a12!important;stroke-width:1.6}
.dz-sky svg path:not([fill="none"]){fill:rgba(48,174,33,.13)!important}
.dz-sky svg circle{fill:#1f7a12!important}
.dz-sky-x{color:#9a9a9a!important;font-size:.56rem;margin-top:2px}

/* complete data record — WHITE data panel, three columns */
.dz-rec{background:#fff!important;border:1px solid #fff!important;border-radius:9px;
  margin:0!important;padding:2px 0 4px;overflow:visible!important;
  column-count:4;column-gap:10px}
.dz-rec-grp{column-span:all;background:transparent!important;color:#1f7a12!important;
  font-size:.58rem;letter-spacing:.13em;padding:5px 9px 3px!important;
  border-top:0!important;break-after:avoid}
.dz-rec-row{display:flex!important;padding:2px 9px!important;font-size:.66rem;
  border-top:1px solid #ececec!important;break-inside:avoid;gap:8px}
.dz-rec-k{color:#444!important;line-height:1.3}
.dz-rec-v{color:#111!important;font-weight:700;font-size:.66rem}
.dz-rec-v small{color:#9a9a9a!important}

/* footer note */
.dz-fine{color:#7d7d7d!important;font-size:.63rem;line-height:1.5;
  margin:8px 0 0!important;max-width:none!important;
  border-top:1px solid #1e1e1e;padding-top:6px}

/* ============================================================================
   D. free area report (cleanz.one/report.html)

   Same house style, one structural difference: the free sheet is a single cell
   on a marketing page, so the page title ("Score any spot on the data") and the
   intro are furniture — the LOCATION headline lives inside the scorecard as
   .sc-loc, which section C hides for the dossier and this section brings back.
   The map, the email gate and the CTA row drop out entirely.
   ========================================================================== */
/* The report sheet is the page's <section>; every other top-level block on the
   marketing shell (injected header, newsletter card, footer) is furniture and
   was printing — the newsletter signup came out as page 1 of the "PDF". */
body>div,body>nav,body>footer,body>aside{display:none!important}
nav.top,#homeThemeBtn,.nav-toggle,
.mapwrap,.map-bar,.gate,.rpt-cta,.geoform{display:none!important}
.rpt-wrap{max-width:none!important;margin:0!important;padding:8mm 9mm 7mm!important}
.rpt-head{max-width:none!important;margin:0!important}
.rpt-head h1,.rpt-head p,.rpt-step{display:none!important}
body>section{padding:0!important}

.rpt-brand{position:static!important;left:auto!important;width:auto!important;
  height:auto!important;overflow:visible!important;opacity:1!important;
  display:flex!important;align-items:center;gap:10px;
  border-bottom:1.5px solid #30ae21;padding:0 0 6px;margin:0 0 11px}
.rpt-brand img{height:19px;width:auto;display:block}

/* The gate crops the cards to a 560px teaser while locked. A print must never
   inherit that crop — the sheet is only ever saved AFTER the unlock. */
.locked .cards-inner{filter:none!important;opacity:1!important;
  max-height:none!important;overflow:visible!important;pointer-events:auto!important}

.sc-loc{display:block!important;color:#ffffff!important;font-size:1.42rem!important;
  font-weight:800;line-height:1.15;margin:0 0 3px!important}
.rpt-fine{color:#7d7d7d!important;font-size:.63rem;line-height:1.5;
  margin:8px 0 0!important;max-width:none!important;
  border-top:1px solid #1e1e1e;padding-top:6px}
