/* ===========================================================================
   bzh-doc.css — bzhmacro.com document stylesheet (markdown → HTML → PDF)
   canonical copy: https://www.bzhmacro.com/brand/bzh-doc.css
   Light "paper" variant. Same typography and accents as bzh.css.
   Targets WeasyPrint and Chrome "Print to PDF". Also readable on screen.

   DO NOT EDIT THE TOKEN BLOCK BY HAND — generated from tokens.json.
   Change tokens.json (or use brand-lab.html) then run: python tools/build.py
   =========================================================================== */

/* @generated:tokens */
:root{
  --paper-bg:#FFFFFF;
  --paper-tint:#FAF7F0;
  --panel:#F7F4EC;
  --line:#DAD2C0;
  --rule:#C4BAA4;

  --text:#191D26;
  --text-dim:#4E5464;
  --muted:#7B8192;

  --ink:#0E1420;
  --banner-a:#1A2744;
  --banner-b:#0E1420;

  --seal:#C75130;
  --gold:#956D27;
  --teal:#218174;
  --azure:#2F78C0;
  --navy:#2A3560;

  --pos:#218174;
  --neg:#C75130;

  --font-sans:'IBM Plex Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --font-serif:'Source Serif 4',Georgia,'Times New Roman',serif;

  --doc-fs:10.5pt;
  --doc-lh:1.6;
  --doc-h1:22.1pt;
  --doc-h2:14.5pt;
  --banner-angle:135deg;
  --banner-title:17pt;
  --logo-size:32px;
  --logo-radius:6px;
  --radius:6px;
}
/* @end:tokens */

/* ── Page geometry ───────────────────────────────────────────────────────── */
@page{
  size:A4;
  margin:18mm;
  @bottom-left{
    content:"bzhmacro.com";
    font-family:'IBM Plex Mono',monospace;font-size:7.5pt;color:#7B8192;
  }
  @bottom-right{
    content:counter(page) " / " counter(pages);
    font-family:'IBM Plex Mono',monospace;font-size:7.5pt;color:#7B8192;
  }
}
/* banner bleeds to the top edge of page 1 */
@page:first{ margin-top:0; }

*{box-sizing:border-box;}

body{
  margin:0;
  background:var(--paper-bg);
  color:var(--text);
  font-family:var(--font-sans);
  font-size:var(--doc-fs);
  line-height:var(--doc-lh);
  -webkit-font-smoothing:antialiased;
}

/* screen preview mimics a sheet of paper */
@media screen{
  body{background:#E8E4DA;padding:28px 0;}
  .doc{max-width:820px;margin:0 auto;background:#fff;box-shadow:0 2px 24px rgba(0,0,0,.12);}
  .doc-body{padding:0 44px 48px;}
}
@media print{
  .doc{max-width:none;}
  .doc-body{padding:0;}
}

/* ── Banner (identical lockup to the websites) ───────────────────────────── */
.site-banner{
  background:linear-gradient(var(--banner-angle),var(--banner-a) 0%,var(--banner-b) 100%);
  color:#EDE6D6;
  /* negative side margins cancel the page margin -> full bleed left/right/top */
  margin:0 -18mm 11mm;
  padding:13mm 18mm 10mm;
  display:flex;align-items:center;gap:14px;
  break-after:avoid;
  -webkit-print-color-adjust:exact;print-color-adjust:exact;
}
@media screen{ .site-banner{margin:0 0 30px;padding:26px 44px;} }

.site-banner .header-flag{font-size:22pt;line-height:1;flex-shrink:0;}
.site-banner h1{font-family:var(--font-sans);font-size:var(--banner-title);font-weight:700;letter-spacing:-.3px;color:#fff;margin:0;line-height:1.2;}
.site-banner p{font-size:8.5pt;color:#B9B2A0;margin:3px 0 0;}
.site-banner .header-right{margin-left:auto;display:inline-flex;align-items:center;gap:10px;}

.bzh-brand{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:inherit;}
.bzh-brand img{height:var(--logo-size);width:var(--logo-size);border-radius:var(--logo-radius);background:#fff;object-fit:contain;display:block;}
.bzh-wordmark{font-family:var(--font-mono);font-size:8pt;font-weight:300;letter-spacing:.08em;color:#B9B2A0;line-height:1;white-space:nowrap;}
.bzh-wordmark strong{color:#fff;font-weight:700;}

/* ── Document meta line ──────────────────────────────────────────────────── */
.doc-meta{
  font-family:var(--font-mono);font-size:8pt;letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:6px;margin-bottom:22px;
  display:flex;flex-wrap:wrap;gap:14px;
}
.doc-meta .k{color:var(--gold);}

/* ── Typography ──────────────────────────────────────────────────────────── */
h1,h2,h3,h4{break-after:avoid;page-break-after:avoid;}
.doc-body > h1:first-child{margin-top:0;}
h1{font-family:var(--font-serif);font-size:var(--doc-h1);font-weight:700;line-height:1.14;letter-spacing:-.01em;margin:0 0 8px;color:var(--text);}
h1 em{font-style:italic;color:var(--seal);}
h2{
  font-family:var(--font-serif);font-size:var(--doc-h2);font-weight:600;margin:26px 0 8px;
  padding-bottom:5px;border-bottom:1px solid var(--line);
}
h2::before{
  content:counter(h2c,decimal-leading-zero);counter-increment:h2c;
  font-family:var(--font-mono);font-size:8.5pt;color:var(--seal);
  letter-spacing:.08em;display:block;margin-bottom:2px;font-weight:400;
}
body{counter-reset:h2c;}
h3{font-family:var(--font-sans);font-size:10.5pt;font-weight:700;margin:18px 0 6px;letter-spacing:.01em;}
h4{font-family:var(--font-mono);font-size:8.5pt;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--gold);margin:16px 0 5px;}

p{margin:0 0 10px;max-width:74ch;}
.lede,blockquote.lede{font-size:12pt;line-height:1.55;color:var(--text-dim);font-family:var(--font-serif);margin:0 0 18px;border:none;padding:0;font-style:normal;}

ul,ol{margin:0 0 12px;padding-left:20px;}
li{margin:3px 0;}
li::marker{color:var(--seal);}

a{color:var(--teal);text-decoration:none;border-bottom:1px dotted rgba(19,127,112,.45);}
strong{font-weight:700;color:var(--text);}
em{font-style:italic;}

blockquote{
  margin:14px 0;padding:8px 0 8px 14px;border-left:3px solid var(--seal);
  color:var(--text-dim);font-style:italic;break-inside:avoid;
}

hr{border:none;border-top:1px solid var(--rule);margin:24px 0;}

code{font-family:var(--font-mono);font-size:.86em;background:var(--panel);border:1px solid var(--line);border-radius:3px;padding:.5px 4px;color:#7A3A1E;}
pre{
  background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--navy);
  border-radius:var(--radius);padding:11px 13px;overflow-x:auto;
  font-family:var(--font-mono);font-size:8.5pt;line-height:1.5;
  break-inside:avoid;margin:0 0 14px;
  -webkit-print-color-adjust:exact;print-color-adjust:exact;
}
pre code{background:none;border:none;padding:0;color:var(--text);font-size:inherit;}

/* ── Tables ──────────────────────────────────────────────────────────────── */
table{
  border-collapse:collapse;width:100%;font-size:8.8pt;margin:6px 0 16px;
  break-inside:auto;
}
thead{display:table-header-group;}
th{
  font-family:var(--font-sans);font-size:7.6pt;font-weight:600;text-transform:uppercase;
  letter-spacing:.05em;color:var(--text-dim);text-align:right;
  padding:6px 7px;border-bottom:1.5px solid var(--rule);white-space:nowrap;
}
td{
  padding:5px 7px;text-align:right;border-bottom:1px solid var(--line);
  font-family:var(--font-mono);font-size:8.3pt;vertical-align:top;
}
th:first-child,td:first-child{text-align:left;font-family:var(--font-sans);font-size:8.8pt;}
tbody tr:nth-child(even) td{background:var(--paper-tint);-webkit-print-color-adjust:exact;print-color-adjust:exact;}
tr{break-inside:avoid;}
table caption{
  caption-side:bottom;text-align:left;font-family:var(--font-mono);font-size:7.5pt;
  color:var(--muted);padding-top:5px;
}

/* ── Callouts ────────────────────────────────────────────────────────────── */
.callout{
  background:rgba(184,73,43,.07);border:1px solid rgba(184,73,43,.30);
  border-radius:var(--radius);padding:10px 12px;font-size:9pt;line-height:1.55;
  color:var(--text-dim);margin:12px 0;break-inside:avoid;
  -webkit-print-color-adjust:exact;print-color-adjust:exact;
}
.callout b,.callout strong{color:var(--text);}
.callout.info{background:rgba(19,127,112,.07);border-color:rgba(19,127,112,.30);}
.callout.warn{background:rgba(154,111,33,.09);border-color:rgba(154,111,33,.35);}

/* stat row works on paper too */
.statrow{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin:12px 0 18px;break-inside:avoid;}
.stat{background:var(--panel);padding:9px 11px;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
.stat .num{font-family:var(--font-mono);font-size:12pt;font-weight:600;}
.stat .lbl{font-size:7.5pt;color:var(--text-dim);margin-top:2px;line-height:1.35;}

.pos{color:var(--pos);} .neg{color:var(--neg);}
.note{font-size:8pt;color:var(--muted);line-height:1.5;margin:6px 0;}

/* ISO country badge — substituted for flag emoji when no colour-emoji font
   is available (PDF renderers usually have none). */
.iso{
  font-family:var(--font-mono);font-size:7pt;font-weight:500;letter-spacing:.06em;
  color:var(--navy);background:rgba(42,53,96,.09);border:1px solid rgba(42,53,96,.22);
  border-radius:3px;padding:1px 4px;margin-right:5px;vertical-align:1px;
  -webkit-print-color-adjust:exact;print-color-adjust:exact;
}

/* ── Footnotes ───────────────────────────────────────────────────────────── */
.footnote{
  margin-top:22px;padding-top:8px;border-top:1px solid var(--rule);
  font-size:8.2pt;color:var(--text-dim);line-height:1.55;
}
.footnote hr{display:none;}
.footnote ol{padding-left:16px;}
.footnote li{margin:2px 0;}
.footnote li::marker{color:var(--muted);font-family:var(--font-mono);font-size:7.5pt;}
.footnote-ref{font-family:var(--font-mono);font-size:7pt;color:var(--seal);
  text-decoration:none;border:none;vertical-align:super;}
.footnote-backref{display:none;}

img{max-width:100%;height:auto;}
figure{margin:14px 0;break-inside:avoid;}
figcaption{font-family:var(--font-mono);font-size:7.5pt;color:var(--muted);margin-top:5px;}

/* ── Footer block ────────────────────────────────────────────────────────── */
.doc-footer{
  margin-top:26px;padding-top:10px;border-top:1px solid var(--rule);
  font-family:var(--font-mono);font-size:7.5pt;color:var(--muted);line-height:1.65;
}
.doc-footer a{color:var(--muted);border-bottom:1px dotted rgba(123,129,146,.5);}
