:root{
  --paper:#FBFCFB; --surface:#F0F4F3; --surface-2:#E7EDEB;
  --ink:#16242A; --ink-soft:#3D5158; --muted:#697F84; --rule:#D8E2E0;
  --accent:#2C6B62; --accent-soft:#E2EFEC;
  --critical:#9E4430; --critical-soft:#F6E7E2;
  --warn:#8E6317; --warn-soft:#F6EEDE;
  --good:#3A6E52; --good-soft:#E4EFE8;
  --bar:#2C6B62; --bar-track:#DFE7E5;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#101A1D; --surface:#16242A; --surface-2:#1D2F35;
    --ink:#E4ECEA; --ink-soft:#B4C6C6; --muted:#8298A0; --rule:#25383F;
    --accent:#6FB6A6; --accent-soft:#17332F;
    --critical:#DE9074; --critical-soft:#33201A;
    --warn:#D7AA5B; --warn-soft:#302614;
    --good:#7FBE96; --good-soft:#17301F;
    --bar:#6FB6A6; --bar-track:#22343A;
  }
}
:root[data-theme="dark"]{
  --paper:#101A1D; --surface:#16242A; --surface-2:#1D2F35;
  --ink:#E4ECEA; --ink-soft:#B4C6C6; --muted:#8298A0; --rule:#25383F;
  --accent:#6FB6A6; --accent-soft:#17332F;
  --critical:#DE9074; --critical-soft:#33201A;
  --warn:#D7AA5B; --warn-soft:#302614;
  --good:#7FBE96; --good-soft:#17301F;
  --bar:#6FB6A6; --bar-track:#22343A;
}

*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:"Source Sans 3",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased}
.wrap{max-width:1080px;margin:0 auto;padding:0 28px 96px}

/* --- nagłówek --- */
.masthead{padding:56px 0 0;margin-bottom:52px;display:grid;gap:22px}
.eyebrow{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0}
h1{font-family:Newsreader,Georgia,serif;font-weight:500;font-size:clamp(2.1rem,5.2vw,3.3rem);line-height:1.08;letter-spacing:-.015em;margin:0;text-wrap:balance}
h1 .sub{display:block;color:var(--muted);font-style:italic;font-size:.46em;line-height:1.4;margin-top:.5em;letter-spacing:0}
.meta{display:flex;flex-wrap:wrap;gap:8px 30px;font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:12px;color:var(--muted)}
.meta b{color:var(--ink-soft);font-weight:500}

.author{
  border-top:1px solid var(--rule);
  background:var(--surface);
  margin:8px -28px 0;padding:22px 28px;
  display:flex;flex-wrap:wrap;gap:6px 40px;align-items:baseline;
}
.author .who{display:grid;gap:1px}
.author .who b{font-size:1.06rem;font-weight:600;letter-spacing:-.005em}
.author .who span{font-size:.9rem;color:var(--muted)}
.author .cx{display:flex;flex-wrap:wrap;gap:6px 26px;font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:12.5px}
.author .cx a{color:var(--accent);text-decoration:none;border-bottom:1px solid transparent}
.author .cx a:hover{border-bottom-color:var(--accent)}
.author .cx i{font-style:normal;color:var(--muted);margin-right:7px}

.part{
  margin:0 0 46px;padding:34px 0 0;border-top:3px solid var(--ink);
  display:grid;gap:8px;
}
.part .n{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.part h2{font-family:Newsreader,Georgia,serif;font-weight:500;font-size:clamp(1.9rem,4vw,2.6rem);line-height:1.1;letter-spacing:-.015em;margin:0}
.part p{color:var(--muted);font-size:1rem;margin:2px 0 0}
section{margin-bottom:64px}
.sec-head{border-top:1px solid var(--rule);padding-top:20px;margin-bottom:26px}
h2{font-family:Newsreader,Georgia,serif;font-weight:500;font-size:1.85rem;line-height:1.18;letter-spacing:-.01em;margin:0;text-wrap:balance}
h3{font-family:"Source Sans 3",sans-serif;font-weight:600;font-size:1.09rem;line-height:1.35;margin:0;letter-spacing:-.005em}
p{margin:0 0 1.05em;max-width:none}
p:last-child{margin-bottom:0}
strong{font-weight:600}
a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:2px}
a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}
.note{font-size:.88rem;color:var(--muted);max-width:none}

.lede{background:var(--surface);border:1px solid var(--rule);border-radius:4px;padding:30px 34px;display:grid;gap:16px}
.lede p{font-size:1.06rem;max-width:none;margin:0}
.lede .opener{
  font-family:Newsreader,Georgia,serif;font-size:1.4rem;line-height:1.4;
  max-width:none;margin:0;text-wrap:balance;
}

/* --- rekomendacja --- */
.recommend{border:2px solid var(--accent);border-radius:6px;background:var(--accent-soft);margin-bottom:26px;overflow:hidden}
.recommend-head{background:var(--accent);padding:20px 30px;display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 16px}
.recommend-head .tag{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--paper);opacity:.82}
.recommend-head h2{color:var(--paper);font-size:1.55rem;width:100%;margin-top:2px}
.recommend-body{padding:28px 30px 30px;display:grid;gap:22px}
.recommend-body > p{color:var(--ink);max-width:none}
.recommend-body > p.headline{font-family:Newsreader,Georgia,serif;font-size:1.25rem;line-height:1.48}
.args{display:grid;gap:2px;background:var(--rule);border:1px solid var(--rule);border-radius:4px;overflow:hidden}
.arg{background:var(--paper);padding:18px 22px;display:grid;grid-template-columns:132px 1fr;gap:6px 20px;align-items:baseline}
.arg .k{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--accent);padding-top:4px}
.arg .v{display:grid;gap:5px}
.arg .v b{font-weight:600;font-size:1rem;line-height:1.35}
.arg .v span{color:var(--ink-soft);font-size:.95rem;line-height:1.55}
.arg .v span.src{
  margin-top:6px;padding-top:10px;border-top:1px solid var(--rule);
  font-size:.88rem;color:var(--muted);
}
.arg .v span.src b{font-weight:600;color:var(--ink-soft)}

/* --- stanowisko wykonawcy --- */
.stance{border:2px solid var(--critical);border-radius:6px;background:var(--critical-soft);margin:0 0 26px;overflow:hidden}
.stance-head{background:var(--critical);padding:18px 30px;display:grid;gap:4px}
.stance-head .tag{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--paper);opacity:.85}
.stance-head h3{color:var(--paper);font-size:1.3rem;line-height:1.3}
.stance-body{padding:24px 30px 26px;display:grid;gap:14px}
.stance-body p{color:var(--ink);margin:0}

/* --- rekomendacje dodatkowe --- */
.extra{border:1px solid var(--rule);border-radius:4px;overflow:hidden}
.extra-head{background:var(--surface);padding:16px 24px;border-bottom:1px solid var(--rule)}
.extra-head h3{font-size:1.12rem}
.extra-head p{font-size:.9rem;color:var(--muted);margin:4px 0 0}
.extra table{min-width:520px}
.extra td:first-child{width:44px;font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.extra td b{font-weight:600}
.extra td span{display:block;color:var(--muted);font-size:.9rem;margin-top:2px}
.extra td:last-child{width:104px;text-align:right}

/* --- porównanie wizualne --- */
.shot{border:1px solid var(--rule);border-radius:5px;overflow:hidden;margin-bottom:26px;background:var(--surface)}
.shot-head{padding:16px 22px;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;border-bottom:1px solid var(--rule)}
.shot-head b{font-size:1.06rem;font-weight:600}
.shot-head .url{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11.5px;color:var(--muted)}
.shot img{display:block;width:100%;height:auto;border-bottom:1px solid var(--rule)}
.checks{display:flex;flex-wrap:wrap;gap:8px;padding:16px 22px;background:var(--paper)}
.check{font-size:.86rem;padding:4px 11px;border-radius:99px;display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.check.y{background:var(--good-soft);color:var(--good)}
.check.n{background:var(--critical-soft);color:var(--critical)}
.check b{font-weight:700;font-size:.95rem;line-height:1}
.shot.mine{border-color:var(--critical);border-width:2px}
.shot.mine .shot-head{background:var(--critical-soft)}

/* --- braki --- */
.gaps{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:2px;background:var(--rule);border:1px solid var(--rule);border-radius:4px;overflow:hidden}
.gap{background:var(--paper);padding:22px 24px;display:grid;gap:9px;border-top:3px solid var(--critical)}
.gap .mark{font-family:Newsreader,Georgia,serif;font-size:1.9rem;line-height:1;color:var(--critical)}
.gap h3{font-size:1.02rem}
.gap p{font-size:.93rem;color:var(--ink-soft);margin:0}

/* --- ustalenia --- */
.findings{display:grid;gap:2px;background:var(--rule);border:1px solid var(--rule);border-radius:4px;overflow:hidden}
.finding{background:var(--paper);padding:24px 26px 24px 30px;display:grid;gap:11px;position:relative}
.finding::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--tone,var(--muted))}
.finding[data-tone="critical"]{--tone:var(--critical)}
.finding[data-tone="warn"]{--tone:var(--warn)}
.finding[data-tone="good"]{--tone:var(--good)}
.finding-top{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 14px}
.chip{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;padding:3px 8px;border-radius:3px;white-space:nowrap;background:var(--surface-2);color:var(--muted)}
.chip[data-tone="critical"]{background:var(--critical-soft);color:var(--critical)}
.chip[data-tone="warn"]{background:var(--warn-soft);color:var(--warn)}
.chip[data-tone="good"]{background:var(--good-soft);color:var(--good)}
.finding p{font-size:.97rem;color:var(--ink-soft);max-width:none}
.consequence{font-size:.93rem;color:var(--muted);border-left:2px solid var(--rule);padding-left:14px;margin-top:2px}
.consequence b{color:var(--ink-soft);font-weight:600}

/* --- liczby --- */
.figures-head{
  font-family:"IBM Plex Mono",ui-monospace,monospace;
  font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);margin:34px 0 0;max-width:none;display:flex;align-items:center;gap:14px;
}
.figures-head::after{content:"";flex:1;height:1px;background:var(--rule)}
.figures{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:2px;background:var(--rule);border:1px solid var(--rule);border-radius:4px;overflow:hidden;margin:14px 0 0}
.figure{background:var(--paper);padding:20px 22px;display:grid;gap:5px}
.figure .n{font-family:Newsreader,Georgia,serif;font-size:2.15rem;line-height:1;font-variant-numeric:tabular-nums;color:var(--ink)}
.figure .n.alert{color:var(--critical)}
.figure .n small{font-size:.42em;color:var(--muted);font-family:"Source Sans 3",sans-serif;margin-left:4px}
.figure .lbl{font-size:.85rem;color:var(--muted);line-height:1.35}

/* --- tabele --- */
.tablewrap{overflow-x:auto;border:1px solid var(--rule);border-radius:4px;margin:24px 0}
table{border-collapse:collapse;width:100%;min-width:600px;font-size:.94rem}
caption{text-align:left;padding:18px 22px 0;color:var(--muted);font-size:.88rem;caption-side:top}
th,td{padding:12px 18px;text-align:left;border-bottom:1px solid var(--rule);vertical-align:middle}
thead th{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--muted);font-weight:500;background:var(--surface)}
tbody tr:last-child td{border-bottom:none}
tr.self td{background:var(--critical-soft)}
tr.self td:first-child{font-weight:600}
tr.hit td{background:var(--warn-soft)}
td.num{font-variant-numeric:tabular-nums;white-space:nowrap}
td .u{display:block;font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11px;color:var(--muted);margin-top:3px;word-break:break-all}
.barcell{display:flex;align-items:center;gap:10px;min-width:170px}
.bar{flex:1;height:7px;background:var(--bar-track);border-radius:99px;overflow:hidden;min-width:56px}
.bar i{display:block;height:100%;background:var(--bar);border-radius:99px}
tr.self .bar i{background:var(--critical)}
.barval{font-variant-numeric:tabular-nums;font-size:.88rem;color:var(--ink-soft);width:3.4em;text-align:right}
.rank{font-family:"IBM Plex Mono",ui-monospace,monospace;font-weight:500;font-variant-numeric:tabular-nums}
.rank.no{color:var(--critical)}
.rank.ok{color:var(--warn)}

/* --- listy wyników Google --- */
.serp{border:1px solid var(--rule);border-radius:5px;overflow:hidden;margin:0 0 20px}
.serp-head{
  background:var(--surface);padding:14px 20px;border-bottom:1px solid var(--rule);
  display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 18px;
}
.serp-head b{font-size:1.04rem;font-weight:600}
.sv{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11px;letter-spacing:.06em;
    padding:3px 9px;border-radius:3px;white-space:nowrap}
.sv.no{background:var(--critical-soft);color:var(--critical)}
.sv.ok{background:var(--warn-soft);color:var(--warn)}
.serp-list{list-style:none;margin:0;padding:0}
.serp-list li{
  display:grid;grid-template-columns:34px 1fr auto;gap:4px 14px;align-items:baseline;
  padding:9px 20px;border-bottom:1px solid var(--rule);background:var(--paper);
}
.serp-list li:last-child{border-bottom:none}
.serp-list .pos{
  font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:12px;
  color:var(--muted);font-variant-numeric:tabular-nums;text-align:right;
}
.serp-list .u{
  font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:12.5px;
  color:var(--ink-soft);word-break:break-all;line-height:1.5;
}
.serp-list .lab{
  font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;
  font-family:"IBM Plex Mono",ui-monospace,monospace;
  padding:2px 8px;border-radius:3px;white-space:nowrap;
  background:var(--surface-2);color:var(--muted);
}
.serp-list li.lok{background:var(--accent-soft)}
.serp-list li.lok .u{color:var(--ink);font-weight:500}
.serp-list li.lok .lab{background:var(--accent);color:var(--paper)}
.serp-list li.lok .pos{color:var(--accent)}
.serp-list li.ona{background:var(--critical-soft);box-shadow:inset 3px 0 0 var(--critical)}
.serp-list li.brak{background:var(--critical-soft);box-shadow:inset 3px 0 0 var(--critical);border-top:1px solid var(--critical)}
.serp-list li.brak .u{color:var(--critical);font-weight:700;text-decoration:line-through;text-decoration-thickness:1px}
.serp-list li.brak .lab{background:var(--critical);color:var(--paper)}
.serp-list li.brak .pos{color:var(--critical);font-weight:700}
.serp-list li.ona .u{color:var(--critical);font-weight:700}
.serp-list li.ona .lab{background:var(--critical);color:var(--paper)}
.serp-list li.ona .pos{color:var(--critical);font-weight:700}
.serp-foot{
  padding:11px 20px;background:var(--surface);border-top:1px solid var(--rule);
  font-size:.88rem;color:var(--muted);margin:0;max-width:none;
}
.serp-foot b{color:var(--ink)}
.legenda{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 22px}
.legenda span{font-size:.85rem;display:inline-flex;align-items:center;gap:7px;color:var(--muted)}
.legenda i{width:13px;height:13px;border-radius:3px;display:inline-block;border:1px solid var(--rule)}
.legenda i.lok{background:var(--accent-soft);border-color:var(--accent)}
.legenda i.por{background:var(--surface-2)}
.legenda i.ona{background:var(--critical-soft);border-color:var(--critical)}

@media (max-width:640px){
  .serp-head{display:block}
  .serp-head b{display:block;margin-bottom:8px}
  .sv{white-space:normal;display:inline-block;line-height:1.45}
  .serp-list li{grid-template-columns:26px minmax(0,1fr);gap:3px 10px}
  .serp-list .lab{grid-column:2;justify-self:start;margin-top:2px;white-space:normal}
  .serp-list .u{font-size:11.5px}
}

/* --- przebieg prac --- */
.flow{display:grid;gap:0;margin:24px 0 8px}
.flow-item{display:grid;grid-template-columns:44px 1fr;gap:0 20px;position:relative;padding:0 0 26px}
.flow-item:last-child{padding-bottom:0}
.flow-item::before{
  content:"";position:absolute;left:21px;top:40px;bottom:0;width:2px;background:var(--rule);
}
.flow-item:last-child::before{display:none}
.flow-num{
  width:44px;height:44px;border-radius:50%;display:grid;place-items:center;
  background:var(--surface);border:2px solid var(--accent);color:var(--accent);
  font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:15px;font-weight:500;
  position:relative;z-index:1;
}
.flow-body{padding-top:8px;display:grid;gap:6px}
.flow-body b{font-size:1.06rem;font-weight:600;line-height:1.35}
.flow-body span{color:var(--ink-soft);font-size:.97rem;line-height:1.6}
.flow-item.wynik .flow-num{background:var(--accent);border-color:var(--accent);color:var(--paper);font-size:17px}
.flow-item.wynik .flow-body{
  background:var(--accent-soft);border:1px solid var(--accent);border-radius:5px;
  padding:18px 22px;margin-top:-4px;
}
.flow-item.wynik .flow-body b{color:var(--ink)}

/* --- plan --- */
.plan{display:grid;gap:2px;background:var(--rule);border:1px solid var(--rule);border-radius:4px;overflow:hidden;margin:22px 0}
.step{background:var(--paper);padding:18px 22px;display:grid;grid-template-columns:auto 1fr auto;gap:6px 18px;align-items:baseline}
.step .s{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11.5px;color:var(--accent);font-variant-numeric:tabular-nums}
.step .t b{font-weight:600}
.step .t span{display:block;color:var(--ink-soft);font-size:.94rem;margin-top:3px;max-width:none}
.step .h{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11.5px;color:var(--muted);white-space:nowrap;text-align:right}

/* --- priorytety --- */
.tier{margin-bottom:34px}
.tier-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.tier-head h3{font-size:1.02rem}
ol.tasks{list-style:none;margin:0;padding:0;display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule);border-radius:4px;overflow:hidden}
ol.tasks li{background:var(--paper);padding:13px 20px;display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:baseline;font-size:.97rem}
ol.tasks li .idx{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}
ol.tasks li b{font-weight:600}
ol.tasks li span.why{color:var(--muted);font-size:.9rem;display:block;margin-top:2px}

ul.plain{list-style:none;margin:0 0 1.05em;padding:0;display:grid;gap:11px;max-width:none}
ul.plain li{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:baseline;font-size:.98rem}
ul.plain li::before{content:"";width:5px;height:5px;border-radius:99px;background:var(--accent);transform:translateY(-3px)}

.closing{border:1px solid var(--rule);border-left:3px solid var(--accent);background:var(--surface);border-radius:4px;padding:28px 32px;display:grid;gap:16px}
.closing p{max-width:none;margin:0}
.closing .opener{font-family:Newsreader,Georgia,serif;font-size:1.35rem;line-height:1.4;max-width:none;text-wrap:balance}

footer{border-top:1px solid var(--rule);margin-top:20px;padding-top:26px;display:grid;gap:20px}
footer .fauthor{display:flex;flex-wrap:wrap;gap:8px 40px;align-items:baseline}
footer .fauthor b{font-size:1.08rem;font-weight:600}
footer .fauthor .cx{display:flex;flex-wrap:wrap;gap:6px 26px;font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:12.5px}
footer .fauthor .cx i{font-style:normal;color:var(--muted);margin-right:7px}
footer p{color:var(--muted);font-size:.88rem;max-width:none}

@media (max-width:640px){
  body{font-size:16px}
  .wrap{padding:0 18px 64px}
  .masthead{padding-top:38px}
  .author{margin-left:-18px;margin-right:-18px;padding:20px 18px}
  .finding{padding:20px 20px 20px 24px}
  .lede,.closing{padding:24px 22px}
  .recommend-head{padding:18px 22px}
  .recommend-body{padding:22px 22px 24px}
  .arg{grid-template-columns:1fr;gap:4px}
  .arg .k{padding-top:0}
  .step{grid-template-columns:auto 1fr;gap:4px 14px}
  .step .h{grid-column:2;text-align:left}
}
@media (prefers-reduced-motion:no-preference){a{transition:color .15s ease}}

/* ================= DRUK / PDF ================= */
@media print {
  /* marginesy zerowe: tło musi sięgać krawędzi kartki */
  @page { size: A4; margin: 0; }

  *, *::before, *::after {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  html, body { background: var(--paper) !important; }
  body { font-size: 9.8pt; line-height: 1.5; }
  .wrap { max-width: 100% !important; padding: 13mm 14mm !important; }

  h1 { font-size: 24pt; }
  h1 .sub { font-size: .44em; }
  h2 { font-size: 14.5pt; }
  h3 { font-size: 10.8pt; }
  p { margin: 0 0 .8em; }

  /* pierwsza część zaczyna się na stronie tytułowej, kolejne od nowej kartki */
  .part { break-before: page; padding-top: 6mm; margin: 0 0 9mm; border-top-width: 2px; }
  .part--start { break-before: auto; padding-top: 0; }
  .part h2 { font-size: 20pt; }

  .masthead { padding: 0 0 6mm; margin-bottom: 9mm; }
  .author { margin: 4mm 0 0; padding: 5mm 6mm; }
  section { margin-bottom: 8mm; }
  .sec-head { padding-top: 5mm; margin-bottom: 4mm; }

  /* nic nie łamie się w połowie */
  .finding, .gap, .arg, .serp, .shot, .step, .flow-item, .stance, .recommend,
  .closing, .extra, .tablewrap, .figure, .plan, .lede, tr, li { break-inside: avoid; }
  h2, h3, .figures-head, .recommend-head, .stance-head,
  .serp-head, .shot-head, caption, thead { break-after: avoid; }
  p { orphans: 3; widows: 3; }

  /* tabele mieszczą się na kartce */
  .tablewrap { overflow: visible !important; }
  table { min-width: 0 !important; font-size: 8pt; }
  th, td { padding: 5pt 7pt; }
  caption { padding: 8pt 8pt 0; font-size: 7.8pt; }
  .serp-list li { padding: 4pt 10pt; }
  .serp-list .u { font-size: 7.4pt; }
  .serp-list .lab, .chip, .sv { font-size: 6.4pt; letter-spacing: .06em; }
  td .u { font-size: 7pt; }

  .shot img { max-height: 105mm; object-fit: contain; }
  .checks { padding: 6pt 10pt; gap: 5pt; }
  .check { font-size: 7.2pt; padding: 2pt 6pt; }

  .figures { grid-template-columns: repeat(4, 1fr); }
  .figure { padding: 8pt 10pt; }
  .figure .n { font-size: 16pt; }
  .figure .lbl { font-size: 7.2pt; }

  .flow-num { width: 26pt; height: 26pt; font-size: 9.5pt; }
  .flow-item { grid-template-columns: 26pt 1fr; gap: 0 12pt; padding-bottom: 10pt; }
  .flow-item::before { left: 12pt; top: 26pt; }
  .flow-body { padding-top: 4pt; }

  .recommend-body, .stance-body { padding: 6mm 7mm; }
  .recommend-head, .stance-head { padding: 4mm 7mm; }

  a { text-decoration: none; }
  footer { break-inside: avoid; margin-top: 6mm; padding-top: 5mm; }
}
