/* ──────────────────────────────────────────────────────────────
   SHARED PDF REPORT STYLES for fnbtoolkit.com tools.
   One canonical print stylesheet for every tool's "Generate PDF"
   report. Edit here ONCE and it applies to every tool.

   Load AFTER the tool's own styles.css:
     <link rel="stylesheet" href="/assets/report.css?v=1">

   Colour + type tokens (--ink, --muted, --blue-tint, --green-dark,
   --red, --amber-dark, --line, --line-2, --font …) come from the
   tool's styles.css :root, so they're in scope here.

   PAGINATION NOTE: top margins are driven by CONTENT, not the @page
   margin. The tool prints via window.print(), which caps the @page top
   margin to the printer minimum (~6mm) — so a big @page value does NOT
   reliably push content down. Reliable top margin = #report's padding-top
   (page 1) + the .rpt-thead-pad spacer row that repeats inside each
   table's <thead> (table pages 2+). The @page top margin is kept only as
   a smaller safety net for CHART pages on page 2+ (no <thead> to repeat).
   DON'T zero #report's padding-top or hide .rpt-thead-pad "because @page
   handles it" — doing exactly that shrank every margin (regression fixed
   28 Jun 2026). Trade-off: switch the Print dialog's "Headers and footers"
   OFF so Chrome doesn't print the date/URL in the top margin.
   ────────────────────────────────────────────────────────────── */

/* hidden on screen; only shown when printing */
#report{display:none}

@media print{
  @page{margin:16mm 0 0}            /* top margin on every page; sides/bottom handled below */
  body{background:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  nav.nav{display:none!important}
  .wrap{display:none}
  dialog{display:none!important}
  #mobileBanner,#fnbCookie{display:none!important}
  #report{display:block;font-family:var(--font);color:var(--ink);font-size:9px;line-height:1.5;
    padding:12mm 15mm 18mm;box-sizing:border-box;word-spacing:0.1em}   /* padding-top = page-1 top margin (reliable: window.print caps the @page margin) */

  /* ---- run-head (optional top strip some tools use) ---- */
  .rpt-runhead{display:flex;justify-content:space-between;align-items:flex-end;
    padding-bottom:6px;border-bottom:1.5px solid var(--ink)}
  .rpt-top-left{display:flex;flex-direction:column}
  .rpt-tool{display:block;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);font-weight:700}
  .rpt-by{display:block;font-size:7px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:2px}
  .rpt-date{display:block;font-size:7px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}

  /* ---- header: kicker, title, meta block, optional logo ---- */
  .rpt-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-top:2px}
  .rpt-head-text{flex:1;min-width:0}
  .rpt-userlogo{flex:none;max-width:320px;text-align:right}
  .rpt-userlogo img{max-height:120px;max-width:320px;width:auto;height:auto;object-fit:contain;display:inline-block}
  .rpt-kicker{font-size:8px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 5px}
  .rpt-h1{font-weight:800;font-size:22px;letter-spacing:-.02em;color:var(--ink);margin:4px 0 6px;line-height:1.04}
  .rpt-meta-line{display:block;margin:0 0 12px}
  .rpt-meta-line span{display:block;font-size:10px;color:var(--ink);margin-bottom:3px;line-height:1.4}
  .rpt-meta-line b{display:inline-block;min-width:96px;font-weight:700;color:var(--ink)}
  .rpt-purpose{font-size:9.5px;color:var(--ink);line-height:1.5;margin:9px 0 2px;max-width:84ch}
  .rpt-intro{font-size:8.5px;color:var(--muted);margin:0 0 14px;line-height:1.5}

  /* ---- notes box ---- */
  .rpt-notes{margin:18px 0 26px;padding:9px 12px;background:#F6F7FA;border-left:3px solid var(--line-2);border-radius:4px;break-inside:avoid}
  .rpt-notes-lab{font-size:8px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
  .rpt-notes-body{font-size:10px;line-height:1.55;color:var(--ink)}

  /* ---- verdict bar (win / lose) ---- */
  .rpt-verdict{border:none;border-left:3px solid;border-radius:3px;padding:10px 14px;margin:0 0 30px;break-inside:avoid}
  .rpt-verdict.win{border-left-color:var(--green-dark);background:rgba(22,163,99,.06)}
  .rpt-verdict.lose{border-left-color:var(--red);background:rgba(192,57,43,.06)}
  .rv-main{font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.01em;margin-bottom:4px}
  .rpt-verdict.win .rv-main{color:var(--green-dark)}
  .rpt-verdict.lose .rv-main{color:var(--red)}
  .rv-sub{font-size:9.5px;color:var(--ink);line-height:1.55}
  .rv-sub b.pos{color:var(--green-dark)} .rv-sub b.neg{color:var(--red)}

  /* ---- KPI cards row — mirrors the on-page "At a glance" cards
     (bundle-analyser .kpi): white rounded cards with a hairline border,
     centred text and a soft shadow, colour carried by the number.
     Restyled 28 Jun 2026 from the old flat blue-tint / coloured-top-rule
     boxes; the .profit/.royalty hue now comes through .rk-num, so the
     card itself stays plain white like the at-a-glance tiles. ---- */
  .rpt-kpis{display:flex;gap:9px;margin:0 0 14px;break-inside:avoid}
  .rkpi{flex:1;background:#fff;border:1.5px solid var(--line-2);border-radius:10px;
    padding:9px 11px 10px;text-align:center}
  .rk-lab{display:block;font-size:6px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
  .rk-num{display:block;font-weight:800;font-size:16px;color:var(--ink);line-height:1.1;margin:5px 0 3px;font-variant-numeric:tabular-nums}
  .rk-num.pos{color:var(--green-dark)} .rk-num.neg{color:var(--red)} .rk-num.amber{color:var(--amber-dark)}
  .rk-sub{display:block;font-size:6.5px;color:var(--muted)}

  /* ---- section headings + caveat ---- */
  .rpt-h2{font-weight:700;font-size:8px;text-transform:uppercase;letter-spacing:.1em;
    color:var(--ink);margin:20px 0 10px;padding-bottom:0;border-bottom:none}
  .rpt-h2:first-child{margin-top:0}
  .rpt-h2 span{font-weight:400;color:var(--muted);text-transform:none;letter-spacing:0}
  .rpt-h2.brk{break-before:page;padding-top:0}   /* @page top margin gives the new page its breathing room */
  .rpt-caveat{font-size:8px;font-style:italic;color:var(--muted);line-height:1.45;margin:0 0 24px}

  /* keep a small block together (e.g. a summary table + its heading) */
  .rpt-keep{break-inside:avoid}

  /* ---- donut / pie charts (shared FNB_SVG.donut output) ---- */
  .rpt-pies{display:flex;gap:72px;justify-content:center;margin:18px 0 26px;break-inside:avoid}
  .rpt-pies figure{margin:0;text-align:center}
  .rpt-pies svg{width:200px;height:200px;display:block}
  .rpt-pies figcaption{font-size:7px;letter-spacing:.04em;color:var(--muted);margin-top:6px;line-height:1.6}
  .rpt-pies figcaption b{display:block;color:var(--ink);font-size:7.5px;letter-spacing:.1em;margin-bottom:1px}
  .rpt-legend{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;font-size:7.5px;color:var(--muted);margin:0 0 28px}
  .rleg-dot{display:inline-block;width:7px;height:7px;border-radius:1px;vertical-align:middle;margin-right:2px}

  /* ---- embedded chart image / inline SVG chart ---- */
  .rpt-chart{margin:4px 0 18px;text-align:center;break-inside:avoid}
  .rpt-chart img{max-width:100%;width:480px;height:auto;display:block;margin:0 auto}
  .rpt-chart svg{max-width:100%;height:auto;display:block;margin:0 auto}
  .rpt-besvg{margin:8px 0 24px;break-inside:avoid;text-align:center}
  .rpt-besvg svg{max-width:100%;height:auto;display:block;margin:0 auto}

  /* ---- summary table (label / value) ---- */
  table.rpt-sum{width:100%;border-collapse:collapse;margin:0 0 14px}
  .rpt-sum th{font-size:7px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;
    color:var(--muted);text-align:right;padding:4px 7px;border-bottom:1.5px solid var(--ink)}
  .rpt-sum td{text-align:right;padding:4px 7px;border-bottom:.5px solid var(--line-2);
    font-size:9px;font-variant-numeric:tabular-nums}
  .rpt-sum th.l,.rpt-sum td.l{text-align:left}
  .rpt-sum tr.tot td{font-weight:700;border-top:1.5px solid var(--ink);border-bottom:none;background:rgba(28,95,229,.04)}
  .rpt-sum td.pos{color:var(--green-dark)} .rpt-sum td.neg{color:var(--red)}

  /* ---- data table (rows of items) ---- */
  table.rpt-menu{width:100%;border-collapse:collapse;font-size:8px;table-layout:fixed;margin:0 0 14px}
  .rpt-menu th{font-size:6.5px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;
    color:var(--muted);text-align:right;padding:4px 4px;border-bottom:1.5px solid var(--ink);
    background:var(--blue-tint);white-space:nowrap;overflow:hidden}
  .rpt-menu td{text-align:right;padding:3.5px 4px;border-bottom:.5px solid var(--line);
    overflow:hidden;white-space:nowrap;font-variant-numeric:tabular-nums}
  .rpt-menu th.l,.rpt-menu td.l{text-align:left}
  .rpt-menu th.n,.rpt-menu td.n{text-align:right;color:var(--muted)}
  .rpt-menu td.l{text-overflow:ellipsis}
  .rpt-menu tr.tot td{font-weight:700;border-top:1.5px solid var(--ink);border-bottom:none;background:rgba(28,95,229,.04)}
  .rpt-menu td.pos{color:var(--green-dark)} .rpt-menu td.neg{color:var(--red)}
  .rpt-menu td.empty{color:#9aa3a0;text-align:left}
  .rpt-menu.brk{break-before:page;padding-top:0}
  .rpt-menu.split{margin-top:24px}
  .rpt-menu thead{display:table-header-group}   /* repeat column headers on overflow pages */
  .rpt-menu tr{break-inside:avoid}
  /* Spacer row sits in <thead> (which the browser repeats on every overflow page),
     so each page a table spans gets a top margin even though Chrome's window.print()
     caps the @page margin to the printer minimum. Pairs with #report's padding-top. */
  .rpt-menu .rpt-thead-pad td{height:12mm;padding:0;border:0;background:transparent}
  .rpt-menu-cap th{background:transparent;text-align:left;font-size:9px;font-weight:700;
    text-transform:uppercase;letter-spacing:.1em;color:var(--ink);white-space:normal;
    border-bottom:none;padding:0 0 7px}

  /* small loss flag used inside tables */
  .loss-tag{display:inline-block;font-size:5.5px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;color:#fff;background:var(--red);border-radius:2px;padding:0 3px;margin-left:3px;line-height:1.5;vertical-align:middle}

  /* ---- footer (fixed, repeats on every page) ---- */
  .rpt-footfix{position:fixed;bottom:0;left:0;right:0;background:#fff;padding:4px 15mm 8px}
  .rpt-foot{border-top:.5px solid var(--line-2);padding-top:8px;margin-top:0}
  .rf-main{display:block;font-size:8.5px;font-weight:400;color:var(--muted);line-height:1.45}
  .rf-copy{display:block;font-size:7px;color:var(--muted)}
}
