/* ai-waw.com — strony publiczne. Wzorce 2026: powrót szeryfu w serwisach redakcyjnych (Source Serif 4 + Inter, oba
   OFL, na własnym serwerze), układ bento, wyciszona rama, przejścia między stronami (View Transitions) i animacje
   sterowane przewijaniem w samym CSS, akcje „Kopiuj jako Markdown / Otwórz w Claude”.
   Dwie wersje: biała i czarna — przełącznik (data-theme) albo ustawienie systemu. Kontrast tekstu ≥ 4,5:1.
   Bez kroku budowania (Git w hPanel go nie ma); bez stylów i skryptów inline (ścisła CSP). */

/* ——— kroje (zmienne; podzestawy łacina i łacina rozszerzona) ——— */
@font-face { font-family: "Source Serif 4"; font-style: normal; font-weight: 200 900; font-display: swap;
  src: url("/fonts/source-serif-4-latin-wght-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Source Serif 4"; font-style: normal; font-weight: 200 900; font-display: swap;
  src: url("/fonts/source-serif-4-latin-ext-wght-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Source Serif 4"; font-style: italic; font-weight: 200 900; font-display: swap;
  src: url("/fonts/source-serif-4-latin-wght-italic.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Source Serif 4"; font-style: italic; font-weight: 200 900; font-display: swap;
  src: url("/fonts/source-serif-4-latin-ext-wght-italic.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("/fonts/inter-latin-wght-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("/fonts/inter-latin-ext-wght-normal.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* ——— tokeny: wersja biała ——— */
:root {
  --paper: #ffffff;          /* tło */
  --paper-2: #f7f7fa;        /* powierzchnie wtórne (jasna szarość GS) */
  --surface: #ffffff;        /* kafle */
  --ink: #121212;
  --ink-2: #3d3d3d;
  --muted: #62666d;
  --line: #e2e4e9;
  --line-2: #eeeff3;
  --navy: #092c61;
  --navy-2: #1f4174;
  --copper: #6b8fc0;          /* akcent — błękit GS przyciemniony do ≥ 3:1 na bieli: znaki, duży tekst, obramowania */
  --copper-text: #3b6299;     /* odnośniki i drobny tekst w barwie akcentu (≥ 6:1 na bieli) */
  --copper-tint: rgba(114, 151, 197, .12);
  --warn-bg: #fef9e1;
  --box-in: #eef3fa;          /* pola wyjść schematów (drzewo decyzyjne) */
  --warn-line: #e0b52f;
  --focus: #2e5a92;
  --glass: rgba(255, 255, 255, .82);
  --btn-bg: #000000; --btn-bg-hover: #2b2b2b; --btn-ink: #ffffff;
  --head-bg: #000000; --head-ink: #ffffff;
  --bar-bg: #7297c5; --bar-ink: #000000; --bar-hover: rgba(255, 255, 255, .32); --bar-line: #5f84b3;
  --logo-s1: #ffffff; --logo-s2: #092c61; --logo-s3: #000000;
  --radius: 14px;
  --wrap: 1200px;
  --serif: "Source Serif 4", "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  --sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --mono: ui-monospace, "Cascadia Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  /* rysunki: c1 (wywóz, seria główna) błękit GS, c2 (przywóz) pomarańcz GS; mapy w skali błękitu */
  --c1: #446ea6; --c2: #b2570d; --c3: #398025; --c4: #a6428c; --c5: #8f6a04; --c6: #5f6670;
  --c-pos: #446ea6; --c-neg: #b2570d; --c-hl: #092c61;
  --m0: #ffffff; --m1: #e6edf6; --m2: #b7cbe4; --m3: #7c9fcc; --m4: #446ea6; --m5: #092c61;
  --m-c: #c3c8cf; --m-n: #ffffff; --m-bg: #eceef2;
  --c7: #9aa3ad; --c8: #f3c43f;
  --dp1: #d9e4f2; --dp2: #8eadd5; --dp3: #446ea6; --dn1: #f7e1cd; --dn2: #e3a06a; --dn3: #b2570d;
  color-scheme: light;
}

/* ——— tokeny: wersja czarna (system albo przełącznik) ——— */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --paper: #0b0d12; --paper-2: #14171e; --surface: #12151b; --ink: #f2f3f5; --ink-2: #c9ccd3; --muted: #9aa0a9;
    --line: #272b34; --line-2: #1a1d24; --navy: #0b1f3f; --navy-2: #2b4f86; --copper: #8fb0d9; --copper-text: #a9c2e3;
    --copper-tint: rgba(143, 176, 217, .14); --warn-bg: #2a2610; --box-in: #15233a; --warn-line: #b8952a; --focus: #8fb0d9;
    --glass: rgba(11, 13, 18, .76);
    --btn-bg: #f2f3f5; --btn-bg-hover: #c9ccd3; --btn-ink: #000000; --head-bg: #000000; --head-ink: #f2f3f5;
    --bar-bg: #0f1d33; --bar-ink: #f2f3f5; --bar-hover: rgba(255, 255, 255, .09); --bar-line: #1f3150;
    --logo-s1: #446ea6; --logo-s2: #8fb0d9; --logo-s3: #f2f3f5;
    --c1: #8fb0d9; --c2: #e8955a; --c3: #7fbf6a; --c4: #d38cc0; --c5: #e0b84a; --c6: #aab1ba;
    --c-pos: #8fb0d9; --c-neg: #e8955a; --c-hl: #f2f3f5;
    --m0: #1a1e26; --m1: #172338; --m2: #23406a; --m3: #3b69a3; --m4: #6f97cc; --m5: #b3cbea;
    --m-c: #4b525c; --m-n: #0b0d12; --m-bg: #171a21;
    --c7: #aab1ba; --c8: #f3c43f;
    --dp1: #1b2a40; --dp2: #34598c; --dp3: #8fb0d9; --dn1: #3a2414; --dn2: #8a4f22; --dn3: #e8955a;
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --paper: #0b0d12; --paper-2: #14171e; --surface: #12151b; --ink: #f2f3f5; --ink-2: #c9ccd3; --muted: #9aa0a9;
  --line: #272b34; --line-2: #1a1d24; --navy: #0b1f3f; --navy-2: #2b4f86; --copper: #8fb0d9; --copper-text: #a9c2e3;
  --copper-tint: rgba(143, 176, 217, .14); --warn-bg: #2a2610; --box-in: #15233a; --warn-line: #b8952a; --focus: #8fb0d9;
  --glass: rgba(11, 13, 18, .76);
  --btn-bg: #f2f3f5; --btn-bg-hover: #c9ccd3; --btn-ink: #000000; --head-bg: #000000; --head-ink: #f2f3f5;
  --bar-bg: #0f1d33; --bar-ink: #f2f3f5; --bar-hover: rgba(255, 255, 255, .09); --bar-line: #1f3150;
  --logo-s1: #446ea6; --logo-s2: #8fb0d9; --logo-s3: #f2f3f5;
  --c1: #8fb0d9; --c2: #e8955a; --c3: #7fbf6a; --c4: #d38cc0; --c5: #e0b84a; --c6: #aab1ba;
  --c-pos: #8fb0d9; --c-neg: #e8955a; --c-hl: #f2f3f5;
  --m0: #1a1e26; --m1: #172338; --m2: #23406a; --m3: #3b69a3; --m4: #6f97cc; --m5: #b3cbea;
  --m-c: #4b525c; --m-n: #0b0d12; --m-bg: #171a21;
  --c7: #aab1ba; --c8: #f3c43f;
  --dp1: #1b2a40; --dp2: #34598c; --dp3: #8fb0d9; --dn1: #3a2414; --dn2: #8a4f22; --dn3: #e8955a;
  color-scheme: dark;
}

/* ——— podstawy ——— */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: 5rem; }
body {
  margin: 0; background: var(--paper); color: var(--ink);
  font: 400 1.0625rem/1.65 var(--sans); font-kerning: normal; font-feature-settings: "cv11" 1, "ss01" 1;
  text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased;
}
img, svg { max-width: 100%; height: auto; }
a { color: var(--copper-text); text-underline-offset: .18em; text-decoration-thickness: 1px; transition: text-decoration-thickness .15s; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; border-radius: 4px; }
code { font: .88em/1.4 var(--mono); background: var(--paper-2); padding: .1em .38em; border-radius: 5px; overflow-wrap: anywhere; }
h1, h2, h3 { font-family: var(--serif); font-optical-sizing: auto; font-weight: 650; line-height: 1.12; color: var(--ink); text-wrap: balance; }
h1 { font-size: clamp(2.1rem, 4.6vw, 3.4rem); margin: 0 0 .6rem; letter-spacing: -.022em; }
h2 { font-size: clamp(1.45rem, 2.5vw, 1.9rem); margin: 2.4rem 0 .8rem; letter-spacing: -.012em; }
h3 { font-size: 1.22rem; margin: 1.6rem 0 .5rem; }
p { margin: 0 0 1rem; text-wrap: pretty; }
.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 16px; }
@media (min-width: 720px) { .wrap { padding: 0 28px; } }
.muted { color: var(--muted); }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: -999px; top: 8px; background: var(--btn-bg); color: var(--btn-ink); padding: .5rem 1rem; z-index: 100; border-radius: 8px; }
.skip:focus { left: 8px; }
main:focus { outline: none; }

/* ——— nagłówek: szkło, cienka linia, miedziany pasek u góry ——— */
.site-header {
  position: sticky; top: 0; z-index: 50; background: var(--glass);
  -webkit-backdrop-filter: saturate(160%) blur(14px); backdrop-filter: saturate(160%) blur(14px);
  border-bottom: 1px solid var(--bar-line); background: var(--bar-bg);
  view-transition-name: naglowek;
}
.header-row { display: flex; align-items: center; justify-content: space-between; gap: .8rem 1rem; min-height: 64px; flex-wrap: wrap; padding-top: .45rem; padding-bottom: .45rem; }
.brand { display: inline-flex; align-items: center; gap: .6rem; color: var(--ink); text-decoration: none; }
.brand-symbol { width: 34px; height: 34px; flex: none; }
.znak .zn-s1 { fill: var(--logo-s1); stroke: var(--logo-s1); }
.znak .zn-s2 { fill: var(--logo-s2); stroke: var(--logo-s2); }
.znak .zn-s3 { fill: var(--logo-s3); stroke: var(--logo-s3); }
.footer-symbol { width: 26px; height: 26px; vertical-align: -5px; margin-right: .3rem; }
.site-footer .znak { --logo-s1: #446ea6; --logo-s2: #8fb0d9; --logo-s3: #ffffff; }
.site-footer .brand-tld { color: #8fb0d9; }
/* nagłówek: pasek w błękicie GS, czarny tekst (7:1) */
.site-header .brand { color: var(--bar-ink); }
.site-header .brand-tld { color: var(--logo-s2); }
.site-header .nav a { color: var(--bar-ink); }
.site-header .nav a:hover { background: var(--bar-hover); color: var(--bar-ink); }
.site-header .nav a.is-active { background: var(--bar-hover); color: var(--bar-ink); box-shadow: inset 0 -2px 0 var(--bar-ink); }
.site-header .nav-lang { border-color: currentColor; }
.site-header :focus-visible { outline-color: var(--bar-ink); }
.hero-znak { position: absolute; right: -40px; bottom: -56px; width: 320px; height: 320px; opacity: .06; pointer-events: none; }
.tile-hero > :not(.hero-znak) { position: relative; }
@media (max-width: 760px) { .hero-znak { width: 220px; height: 220px; right: -30px; bottom: -40px; } }
.brand-name { font: 700 1.24rem/1 var(--serif); letter-spacing: -.01em; }
.brand-tld { color: var(--copper); }
/* ——— znak w nagłówku: ruch ———
   Wejście raz na sesję (atrybut data-intro z motyw.js przed pierwszym malowaniem): oś wykresu rysuje się, sztaby
   rosną od podstawy po krzywej tłumionej sprężyny (linear(), k = 170, c = 15 – przerzut ok. 11%), po metalu
   przechodzi blask, logotyp odsłania maska z miękką krawędzią (@property --zn-p). Najechanie lub fokus: sztaby
   „przeliczają się” jak słupki wykresu po nowych danych. Wczytywanie następnej strony: fala sztab (portal.js).
   Tylko transform, opacity, stroke-dashoffset i maska – bez przeliczania układu (CLS 0); prefers-reduced-motion
   wyłącza wszystko, stan końcowy jest stanem bez animacji. */
@property --zn-p { syntax: '<percentage>'; inherits: false; initial-value: 125%; }
.znak-ruch .zn-s { transform-box: view-box; transform-origin: 32px 52.5px; }
.znak-ruch .zn-os { fill: none; stroke: var(--logo-s3); stroke-width: 1.2; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; opacity: 0; }
@media (prefers-reduced-motion: no-preference) {
  html[data-intro] .site-header .zn-s { animation: zn-wzrost 1s both; animation-timing-function: cubic-bezier(.34, 1.45, .64, 1); animation-timing-function: linear(0, 0.047, 0.162, 0.316, 0.481, 0.64, 0.781, 0.897, 0.986, 1.048, 1.087, 1.106, 1.11, 1.102, 1.089, 1.071, 1.053, 1.036, 1.021, 1.009, 1, 0.994, 0.99, 0.988, 0.988, 0.989, 0.991, 0.993, 0.995, 0.996, 0.998, 0.999, 1, 1.001, 1.001, 1.001, 1.001, 1.001, 1.001, 1.001, 1); }
  html[data-intro] .site-header .zn-s1 { animation-delay: .14s; }
  html[data-intro] .site-header .zn-s2 { animation-delay: .23s; }
  html[data-intro] .site-header .zn-s3 { animation-delay: .32s; }
  html[data-intro] .site-header .zn-os { animation: zn-os 1.6s cubic-bezier(.4, 0, .2, 1) both; }
  html[data-intro] .site-header .zn-blask { animation: zn-blask .75s 1.02s cubic-bezier(.45, 0, .25, 1) both; }
  html[data-intro] .site-header .brand-name {
    -webkit-mask-image: linear-gradient(90deg, #000 calc(var(--zn-p) - 25%), transparent var(--zn-p));
    mask-image: linear-gradient(90deg, #000 calc(var(--zn-p) - 25%), transparent var(--zn-p));
    animation: zn-napis .9s .34s cubic-bezier(.22, .7, .2, 1) both;
  }
  @media (hover: hover) {
    .site-header .brand:hover .zn-s1 { animation: zn-tik1 .95s cubic-bezier(.3, .7, .3, 1); }
    .site-header .brand:hover .zn-s2 { animation: zn-tik2 .95s .04s cubic-bezier(.3, .7, .3, 1); }
    .site-header .brand:hover .zn-s3 { animation: zn-tik3 .95s .08s cubic-bezier(.3, .7, .3, 1); }
    .site-header .brand:hover .zn-blask { animation: zn-blask .7s .18s cubic-bezier(.45, 0, .25, 1); }
  }
  .site-header .brand:focus-visible .zn-s1 { animation: zn-tik1 .95s cubic-bezier(.3, .7, .3, 1); }
  .site-header .brand:focus-visible .zn-s2 { animation: zn-tik2 .95s .04s cubic-bezier(.3, .7, .3, 1); }
  .site-header .brand:focus-visible .zn-s3 { animation: zn-tik3 .95s .08s cubic-bezier(.3, .7, .3, 1); }
  .site-header .brand:focus-visible .zn-blask { animation: zn-blask .7s .18s cubic-bezier(.45, 0, .25, 1); }
  .site-header .brand.is-busy .zn-s { animation: zn-fala 1.05s cubic-bezier(.45, 0, .55, 1) infinite; }
  .site-header .brand.is-busy .zn-s2 { animation-delay: .13s; }
  .site-header .brand.is-busy .zn-s3 { animation-delay: .26s; }
}
@keyframes zn-wzrost { from { transform: scaleY(0); } to { transform: scaleY(1); } }
@keyframes zn-os {
  0% { stroke-dashoffset: 1; opacity: 1; }
  24% { stroke-dashoffset: 0; opacity: 1; }
  72% { stroke-dashoffset: 0; opacity: .85; }
  100% { stroke-dashoffset: 0; opacity: 0; }
}
@keyframes zn-blask { from { transform: translateX(0); } to { transform: translateX(100px); } }
@keyframes zn-napis { from { --zn-p: 0%; transform: translateX(-5px); } to { --zn-p: 125%; transform: none; } }
@keyframes zn-tik1 { 0%, 100% { transform: scaleY(1); } 30% { transform: scaleY(1.42); } 62% { transform: scaleY(.9); } }
@keyframes zn-tik2 { 0%, 100% { transform: scaleY(1); } 30% { transform: scaleY(.7); } 62% { transform: scaleY(1.08); } }
@keyframes zn-tik3 { 0%, 100% { transform: scaleY(1); } 30% { transform: scaleY(.84); } 62% { transform: scaleY(1.05); } }
@keyframes zn-fala { 0%, 100% { transform: scaleY(1); } 45% { transform: scaleY(.48); } }
.nav { display: flex; flex-wrap: wrap; align-items: center; gap: .1rem .25rem; margin-left: auto; }
.nav a { color: var(--ink-2); text-decoration: none; padding: .42rem .7rem; border-radius: 999px; font-size: .95rem; font-weight: 500; }
.nav a:hover { background: var(--paper-2); color: var(--ink); }
.nav a.is-active { background: var(--copper-tint); color: var(--ink); font-weight: 600; }
.nav-lang { border: 1px solid var(--line); font-weight: 600; letter-spacing: .04em; }
.tools { display: inline-flex; align-items: center; gap: .35rem; }
.search-btn, .icon-btn { text-decoration: none;
  display: inline-flex; align-items: center; gap: .5rem; height: 36px; border: 1px solid var(--line); background: var(--surface);
  color: var(--muted); border-radius: 999px; padding: 0 .8rem; font: 500 .9rem var(--sans); cursor: pointer;
}
.icon-btn { width: 36px; padding: 0; justify-content: center; color: var(--ink-2); }
.search-btn:hover, .icon-btn:hover { border-color: var(--copper); color: var(--ink); }
.kbd { font: 600 .72rem var(--mono); border: 1px solid var(--line); border-bottom-width: 2px; border-radius: 5px; padding: .05rem .35rem; color: var(--muted); }
.icon-btn svg, .search-btn svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ikona-slonce { display: none; }
:root[data-theme="dark"] .ikona-ksiezyc { display: none; }
:root[data-theme="dark"] .ikona-slonce { display: inline; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .ikona-ksiezyc { display: none; }
  :root:not([data-theme="light"]) .ikona-slonce { display: inline; }
}
@media (max-width: 760px) { .search-btn .kbd { display: none; } .search-btn .etykieta { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; } .search-btn { width: 36px; padding: 0; justify-content: center; } }
/* telefon: całe menu widoczne – odnośniki zawijają się do drugiego wiersza (polecenie 11.10.2026: przewijany pasek
   chował „Fakty”, „Dane”, „Metoda”, „O AI”) */
@media (max-width: 760px) {
  .header-row { min-height: 0; gap: .35rem; padding-top: .55rem; padding-bottom: .45rem; }
  /* min-width 0 – element elastyczny nie rozpycha strony do szerokości odnośników (375 px) */
  .nav { order: 3; position: relative; flex: 1 0 100%; width: auto; min-width: 0; max-width: calc(100% + 1.2rem); margin: 0 -.6rem; padding: 0 .6rem;
    flex-wrap: wrap; overflow-x: visible; gap: .15rem .1rem; }
  .nav a { padding: .3rem .55rem; white-space: nowrap; font-size: .93rem; }
  .tools { margin-left: auto; }
  .search-btn, .icon-btn { height: 34px; }
  .icon-btn, .search-btn { width: 34px; }
}

/* ——— przyciski, znaczniki ——— */
.eyebrow { font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: var(--copper-text); font-weight: 650; margin-bottom: .8rem; }
.eyebrow a { color: inherit; }
.lead { font-size: 1.18rem; line-height: 1.6; color: var(--ink-2); max-width: 62ch; }
.actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.4rem; }
.btn { display: inline-flex; align-items: center; gap: .45rem; padding: .62rem 1.1rem; border-radius: 999px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); text-decoration: none; font: 600 .95rem/1.2 var(--sans); cursor: pointer; transition: border-color .15s, background-color .15s, transform .15s; }
.btn:hover { border-color: var(--copper); transform: translateY(-1px); }
.btn-primary { background: var(--btn-bg); border-color: var(--btn-bg); color: var(--btn-ink); }
.btn-primary:hover { background: var(--btn-bg-hover); border-color: var(--btn-bg-hover); }
.btn-sm { padding: .4rem .8rem; font-size: .85rem; }
.btn svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.tag { display: inline-block; font: 650 .72rem/1 var(--mono); padding: .28rem .45rem; border-radius: 6px; background: var(--navy-2); color: #fff; vertical-align: .1em; }
.chip { font: 600 .74rem/1 var(--mono); padding: .24rem .42rem; border: 1px solid var(--line); border-radius: 999px; color: var(--ink-2); }
.empty { padding: 1.3rem 1.5rem; background: var(--paper-2); border-radius: var(--radius); color: var(--ink-2); }
.search-also { margin: 0 0 1.4rem; padding: .9rem 1.2rem; border: 1px solid var(--line); border-radius: var(--radius); color: var(--ink-2); }
.search-also p { margin: 0; }
.search-also-h { font-weight: 600; color: var(--ink); }
.search-also-flows { margin: .4rem 0 .7rem; padding-left: 1.2rem; }

/* ——— strona główna: bento ——— */
.hero { padding-top: 2.2rem; padding-bottom: 1rem; }
.bento { display: grid; gap: 14px; grid-template-columns: 1fr; }
@media (min-width: 900px) {
  .bento { grid-template-columns: repeat(12, 1fr); grid-auto-rows: minmax(120px, auto); }
  .tile-hero { grid-column: span 8; grid-row: span 2; }
  .tile-numbers { grid-column: span 4; grid-row: span 2; }
  .tile-agents { grid-column: span 5; }
  .tile-elements { grid-column: span 3; }
  .tile-method { grid-column: span 4; }
}
.tile { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.4rem 1.5rem; position: relative; overflow: hidden; }
.tile h2, .tile h3 { margin-top: 0; }
.tile-label { font: 650 .72rem/1 var(--sans); letter-spacing: .09em; text-transform: uppercase; color: var(--muted); margin-bottom: .9rem; display: block; }
.tile-hero { padding: clamp(1.6rem, 4vw, 3rem); background:
  radial-gradient(900px 380px at 100% 0%, var(--copper-tint), transparent 65%), var(--surface); }
.hero-title { font-size: clamp(2.4rem, 5.6vw, 4.3rem); line-height: 1.04; letter-spacing: -.03em; font-weight: 640; max-width: 16ch; margin-bottom: 1rem; }
.hero-title em { font-style: italic; font-weight: 500; color: var(--copper-text); }
.kpi { display: grid; gap: 1.05rem; }
.kpi-item { padding-bottom: 1rem; border-bottom: 1px solid var(--line-2); }
.kpi-item:last-child { border-bottom: 0; padding-bottom: 0; }
.kpi-value { display: block; font: 650 2.05rem/1.05 var(--serif); letter-spacing: -.02em; font-variant-numeric: tabular-nums; color: var(--ink); }
.kpi-value small { font: 500 .95rem var(--sans); color: var(--muted); margin-left: .2rem; }
.kpi-label { display: block; font-size: .9rem; color: var(--ink-2); margin-top: .3rem; }
.kpi-id { display: block; font: .74rem var(--mono); color: var(--muted); margin-top: .2rem; }
.kpi-id a { color: inherit; }
.tile-more { margin: 1rem 0 0; font-weight: 600; font-size: .92rem; }
.code-list { list-style: none; padding: 0; margin: 0; display: grid; gap: .45rem; }
.code-list li { display: flex; align-items: center; justify-content: space-between; gap: .6rem; border: 1px solid var(--line-2); background: var(--paper-2); border-radius: 10px; padding: .45rem .55rem .45rem .7rem; }
.code-list code { background: transparent; padding: 0; font-size: .82rem; }
.copy-btn { border: 1px solid var(--line); background: var(--surface); color: var(--ink-2); border-radius: 8px; font: 600 .75rem var(--sans); padding: .25rem .5rem; cursor: pointer; white-space: nowrap; }
.copy-btn:hover { border-color: var(--copper); color: var(--ink); }
.copy-btn.is-done { border-color: var(--c3); color: var(--c3); }
.elements { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .45rem; }
.element { aspect-ratio: 1; border: 1px solid var(--line); border-top: 3px solid var(--copper); border-radius: 10px; background: var(--surface); display: grid; place-content: center; text-align: center; padding: .25rem; transition: transform .2s; }
.element:hover { transform: translateY(-2px); }
.element b { font: 650 1.35rem/1 var(--serif); color: var(--ink); }
.element i { font-style: normal; font-size: .66rem; color: var(--muted); margin-top: .22rem; }
.el-cu { border-top-color: #b0662f; } .el-al { border-top-color: #8a979e; } .el-zn { border-top-color: #5f7f8f; }
.el-pb { border-top-color: #4b5560; } .el-ni { border-top-color: #6d8a6b; } .el-sn { border-top-color: #9aa3a8; } .el-ag { border-top-color: #b6bcc0; }

.section { padding-top: 1.2rem; padding-bottom: 2.6rem; }
.section-head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; flex-wrap: wrap; }
.band { background: var(--paper-2); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.principles { display: grid; gap: 14px; }
@media (min-width: 760px) { .principles { grid-template-columns: repeat(3, 1fr); } }
.principles > div { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.3rem 1.4rem; }
.principles h3 { margin-top: 0; }
.principles h3::before { content: ""; display: block; width: 28px; height: 3px; background: var(--copper); border-radius: 2px; margin-bottom: .8rem; }
.series-list { display: grid; gap: 10px; margin: 0; }
@media (min-width: 760px) { .series-list { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1080px) { .series-list { grid-template-columns: repeat(3, 1fr); } }
.series-list > div { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .8rem 1rem; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.series-list dt { font-weight: 600; }
.series-list dd { margin: 0; color: var(--muted); text-align: right; font-size: .9rem; }
.agents-box { border-top: 0; }

/* ——— karty publikacji ——— */
.cards { display: grid; gap: 14px; }
@media (min-width: 760px) { .cards { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1080px) { .cards { grid-template-columns: repeat(3, 1fr); } }
.cards-list { grid-template-columns: 1fr !important; }
.card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.25rem 1.35rem; display: flex; flex-direction: column; transition: border-color .2s, transform .2s, box-shadow .2s; }
.card:hover { border-color: color-mix(in srgb, var(--copper) 55%, var(--line)); transform: translateY(-2px); box-shadow: 0 14px 30px -18px rgba(9, 44, 97, .30); }
.card-meta { font-size: .82rem; color: var(--muted); margin-bottom: .45rem; }
.card-title { font-size: 1.28rem; line-height: 1.22; margin: 0 0 .55rem; }
.card-title a { color: var(--ink); text-decoration: none; }
.card-title a::after { content: ""; position: absolute; inset: 0; }
.card { position: relative; }
.card-title a:hover { color: var(--copper-text); }
.card-summary { color: var(--ink-2); font-size: .97rem; flex: 1; }
.card-foot { display: flex; flex-wrap: wrap; gap: .35rem .7rem; align-items: center; font-size: .82rem; color: var(--muted); margin: 0; }
.facts-strip { display: grid; gap: 14px; }
@media (min-width: 760px) { .facts-strip { grid-template-columns: repeat(4, 1fr); } }
.fact { margin: 0; padding: 1rem 1.1rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.fact-value { display: block; font: 650 1.8rem/1.1 var(--serif); }
.fact-value small { font: 400 .9rem var(--sans); color: var(--muted); }
.fact figcaption { font-size: .9rem; color: var(--ink-2); margin: .35rem 0; }
.fact-id { font: .76rem var(--mono); color: var(--muted); }

/* ——— katalog ——— */
.page-head { padding-top: 2.6rem; padding-bottom: 1rem; }
.filters { display: grid; gap: .8rem; grid-template-columns: 1fr 1fr; padding: 1rem; background: var(--paper-2); border: 1px solid var(--line); border-radius: var(--radius); margin-bottom: 1.4rem; align-items: end; }
@media (min-width: 900px) { .filters { grid-template-columns: 2.2fr 1.2fr 1.4fr .6fr .7fr auto; } }
.field { display: flex; flex-direction: column; gap: .25rem; min-width: 0; }
.field-q { grid-column: 1 / -1; }
@media (min-width: 900px) { .field-q { grid-column: auto; } }
.field-btn { flex-direction: row; gap: .4rem; grid-column: 1 / -1; }
@media (min-width: 900px) { .field-btn { grid-column: auto; } }
.field label { font-size: .8rem; font-weight: 600; color: var(--ink-2); }
.field input, .field select { font: inherit; font-size: .96rem; padding: .55rem .7rem; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); color: var(--ink); min-width: 0; width: 100%; }
.pager { display: flex; gap: 1rem; justify-content: center; align-items: center; margin: 1.5rem 0; }
.pager-off { color: var(--muted); }

/* ——— strona raportu ——— */
.progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; background: var(--copper); transform-origin: 0 50%; transform: scaleX(0); z-index: 60; }
@supports (animation-timeline: scroll()) {
  .progress { animation: postep linear both; animation-timeline: scroll(root); }
  @keyframes postep { to { transform: scaleX(1); } }
}
@supports not (animation-timeline: scroll()) { .progress { display: none; } }
.report-head { padding-top: 2.4rem; padding-bottom: .5rem; }
.report-head h1 { view-transition-name: tytul-raportu; max-width: 26ch; }
.subtitle { color: var(--muted); font-style: italic; font-family: var(--serif); font-size: 1.15rem; }
.meta { display: flex; flex-wrap: wrap; gap: .4rem 1.6rem; margin: 1rem 0; padding: .9rem 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); font-size: .92rem; }
.meta div { display: flex; gap: .4rem; }
.meta dt { color: var(--muted); }
.meta dd { margin: 0; font-weight: 600; }
.ai-actions { display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; margin: .2rem 0 1rem; }
.ai-actions .muted { font-size: .85rem; margin-right: .2rem; }
.notice { padding: .75rem 1rem; border-left: 4px solid var(--navy-2); background: var(--paper-2); border-radius: 0 10px 10px 0; }
.notice-warn { border-left-color: var(--warn-line); background: var(--warn-bg); }
.report-grid { display: grid; gap: 2.2rem; padding-bottom: 3rem; }
@media (min-width: 1000px) { .report-grid { grid-template-columns: 250px minmax(0, 1fr); } }
.toc { font-size: .92rem; }
@media (min-width: 1000px) { .toc { position: sticky; top: 5.5rem; align-self: start; max-height: calc(100vh - 7rem); overflow: auto; } }
.toc-h { font-weight: 700; text-transform: uppercase; letter-spacing: .08em; font-size: .72rem; color: var(--muted); margin-bottom: .5rem; }
.toc ol { list-style: none; margin: 0 0 1rem; padding: 0; border-left: 2px solid var(--line); }
.toc li a { display: block; padding: .3rem .75rem; margin-left: -2px; border-left: 2px solid transparent; color: var(--ink-2); text-decoration: none; transition: color .15s, border-color .15s; }
.toc li a:hover { color: var(--copper-text); }
.toc li a.is-active { color: var(--ink); font-weight: 600; border-left-color: var(--copper); }
.toc-machine { display: flex; gap: .6rem; color: var(--muted); font-size: .85rem; }
.report-body { min-width: 0; max-width: 78ch; }
.summary { background: var(--paper-2); border: 1px solid var(--line); border-radius: var(--radius); padding: .5rem 1.5rem 1.1rem; position: relative; }
.summary::before { content: ""; position: absolute; left: 1.5rem; top: 0; width: 44px; height: 3px; background: var(--copper); border-radius: 0 0 3px 3px; }
.summary h2 { margin-top: 1.1rem; }
.prose { font-family: var(--serif); font-size: 1.14rem; line-height: 1.72; font-optical-sizing: auto; }
.prose-page { font-family: var(--sans); font-size: 1.05rem; max-width: 72ch; }
.prose h2 { padding-top: .3rem; }
.prose ul, .prose ol { padding-left: 1.3rem; }
.prose li { margin: .25rem 0; }
.prose blockquote { margin: 1.2rem 0; padding: .3rem 1.1rem; border-left: 3px solid var(--copper); color: var(--ink-2); }
/* ramki „W skrócie” i „Stan danych” na początku rozdziałów */
.report-body .prose > blockquote { margin: 1.4rem 0 2.2rem; padding: 1rem 1.35rem 1.05rem; background: var(--box-in);
  border-radius: 0 10px 10px 0; font-size: .97rem; line-height: 1.55; }
.report-body .prose > blockquote > p:first-child > strong:only-child { display: block; font: 650 .74rem/1.2 var(--sans);
  letter-spacing: .11em; text-transform: uppercase; color: var(--copper-text); }
.report-body .prose > blockquote ul { margin: .55rem 0 .2rem; padding-left: 1.15rem; }
.report-body .prose > blockquote li { margin: .3rem 0; }
.report-body .prose > blockquote > p:last-child:not(:first-child) { margin: .6rem 0 0; font-size: .86rem; color: var(--muted); }

.prose figure { margin: 1.6rem 0; }
.prose figcaption { font: .88rem/1.45 var(--sans); color: var(--muted); margin-top: .4rem; }
.prose details { border: 1px solid var(--line); border-radius: 10px; padding: .6rem 1rem; margin: 1rem 0; }
.prose summary { cursor: pointer; font-weight: 600; font-family: var(--sans); }
.prose table, table.data { width: 100%; border-collapse: collapse; font: .8rem/1.38 var(--sans); margin: 1rem 0; font-variant-numeric: tabular-nums; }
.prose th, .prose td, table.data th, table.data td { padding: .36rem .5rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
/* kolumny liczbowe z tabel Markdown (align="right") — reguła wyżej nadpisywała atrybut */
.prose th[align="right"], .prose td[align="right"] { text-align: right; white-space: nowrap; }
.prose thead th, table.data thead th { background: var(--paper-2); color: var(--ink); font-weight: 650; border-bottom: 1px solid var(--line); font-size: .74rem; }
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 12px; }
.table-wrap table { margin: 0; }
.cite { font-family: var(--serif); padding: .9rem 1.1rem; background: var(--paper-2); border-radius: 12px; overflow-wrap: anywhere; }
.downloads, .errata-list, .versions { padding-left: 1.2rem; }
.downloads li, .errata-list li, .versions li { margin: .35rem 0; }
.dataset-list { list-style: none; padding: 0; display: grid; gap: 14px; }
.dataset-list li { border: 1px solid var(--line); border-radius: var(--radius); padding: 1.1rem 1.25rem; background: var(--surface); }

/* ——— rysunki: wykresy, schematy, mapy (barwy tylko klasami — CSP) ——— */
.fig { margin: 2.2rem 0 2.4rem; }
.fig figcaption { font: 650 1rem/1.4 var(--sans); color: var(--ink); margin-bottom: .7rem; }
.fig figcaption strong { font-weight: 700; }
.chart-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--line-2); border-radius: 12px; padding: .6rem; background: var(--surface); }
svg.chart { display: block; width: 100%; min-width: 600px; height: auto; font-family: var(--sans); }
.chart .ch-grid { stroke: var(--line); stroke-width: 1; }
.chart .ch-axis { stroke: var(--ink-2); stroke-width: 1; }
.chart .ch-lab, .chart .ch-boxtitle { fill: var(--ink); }
.chart .ch-val, .chart .ch-boxtext { fill: var(--ink-2); }
.chart .ch-gap { fill: var(--copper-text); font-weight: 700; }
.chart .ch-s1 { fill: var(--c1); stroke: var(--c1); } .chart .ch-s2 { fill: var(--c2); stroke: var(--c2); }
.chart .ch-s3 { fill: var(--c3); stroke: var(--c3); } .chart .ch-s4 { fill: var(--c4); stroke: var(--c4); }
.chart .ch-s5 { fill: var(--c5); stroke: var(--c5); } .chart .ch-s6 { fill: var(--c6); stroke: var(--c6); }
.chart .ch-s7 { fill: var(--c7); stroke: var(--c7); } .chart .ch-s8 { fill: var(--c8); stroke: var(--c8); }
.chart .ch-dp1 { fill: var(--dp1); } .chart .ch-dp2 { fill: var(--dp2); } .chart .ch-dp3 { fill: var(--dp3); }
.chart .ch-dn1 { fill: var(--dn1); } .chart .ch-dn2 { fill: var(--dn2); } .chart .ch-dn3 { fill: var(--dn3); }
.chart path.ch-flow { fill: none; stroke: var(--c1); stroke-opacity: .72; stroke-linecap: round; }
.chart path.ch-flow-i { fill: none; stroke: var(--c2); stroke-opacity: .72; stroke-linecap: round; }
.chart path.ch-flow.is-hover, .chart path.ch-flow-i.is-hover { stroke-opacity: 1; }
.chart .ch-flowhead { fill: var(--c1); } .chart .ch-flowhead-i { fill: var(--c2); }
.chart path.ch-flow-halo { fill: none; stroke: var(--surface); stroke-opacity: .9; stroke-linecap: round; }
.chart .ch-twy { fill: var(--c1); } .chart .ch-twp { fill: var(--c2); }
.chart .ch-origin { fill: var(--ink); stroke: var(--surface); stroke-width: 2; }
.chart path.ch-line { fill: none; stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; }
.chart circle.ch-dot { stroke: var(--surface); stroke-width: 1.5; }
.chart .ch-pos { fill: var(--c-pos); } .chart .ch-neg { fill: var(--c-neg); } .chart .ch-hl { fill: var(--c-hl); }
.chart .ch-box { stroke-width: 1.5; }
.chart .ch-box-main { fill: var(--paper-2); stroke: var(--navy-2); }
.chart .ch-box-in { fill: var(--box-in); stroke: var(--copper); }
.chart .ch-arrow { stroke: var(--ink-2); stroke-width: 2; }
.chart .ch-arrowhead { fill: var(--ink-2); }
.chart .ch-m1 { fill: var(--m1); } .chart .ch-m2 { fill: var(--m2); } .chart .ch-m3 { fill: var(--m3); }
.chart .ch-m4 { fill: var(--m4); } .chart .ch-m5 { fill: var(--m5); }
.chart .ch-mc { fill: var(--m-c); } .chart .ch-mbg { fill: var(--m-bg); }
.chart .ch-m0 { fill: var(--m0); } .chart .ch-mn { fill: var(--m-n); }
.chart .ch-legbg { fill: var(--surface); stroke: var(--line); }
.chart .ch-legsw { stroke: var(--ink-2); stroke-width: .5; }
.chart .ch-mlabel { fill: var(--ink); paint-order: stroke; stroke: var(--surface); stroke-width: 3px; stroke-linejoin: round; }
/* podpisy na mapach: etykieta na polu w barwie tła z cienką ramką (czytelna na każdym wypełnieniu) */
.chart .ch-mlabbg { fill: var(--surface); fill-opacity: .94; stroke: var(--line); stroke-width: .8; }
.chart .ch-mlabtx { fill: var(--ink); font-variant-numeric: tabular-nums; }
/* liczby wewnątrz pól (słupki stuprocentowe, macierz): kolor dobrany do tła pola, bez obwódki; kontrast ≥ 4,5:1 */
.chart .ch-in { font-variant-numeric: tabular-nums; letter-spacing: .01em; stroke: none; fill: #ffffff; }
.chart :is(.ch-in-s7, .ch-in-s8, .ch-in-m1, .ch-in-m2, .ch-in-m3, .ch-in-dn1, .ch-in-dn2, .ch-in-dp1, .ch-in-dp2) { fill: #121212; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .chart .ch-in { fill: #0b0d12; }
  :root:not([data-theme="light"]) .chart :is(.ch-in-m1, .ch-in-m2, .ch-in-m3, .ch-in-dn1, .ch-in-dn2, .ch-in-dp1, .ch-in-dp2) { fill: #f2f3f5; }
}
:root[data-theme="dark"] .chart .ch-in { fill: #0b0d12; }
:root[data-theme="dark"] .chart :is(.ch-in-m1, .ch-in-m2, .ch-in-m3, .ch-in-dn1, .ch-in-dn2, .ch-in-dp1, .ch-in-dp2) { fill: #f2f3f5; }
.chart .ch-mborder { fill: none; stroke: var(--surface); stroke-width: .6; }
.chart g.ch-mapa > path { stroke: var(--surface); stroke-width: .6; stroke-linejoin: round; }
.chart .ch-mfocus { fill: none; stroke: var(--ink); stroke-width: 1.6; }
.fig-data { margin-top: .6rem; font-family: var(--sans); font-size: .9rem; }
.fig-data summary { cursor: pointer; color: var(--copper-text); font-weight: 600; }
.fig-src { font: .74rem/1.45 var(--sans); color: var(--muted); margin: .45rem 0 0; }
/* podpis pod tabelą (akapit z samą kursywą tuż po tabeli): drobny, bezszeryfowy, jak źródło rysunku */
.prose .table-wrap + p:has(> em:only-child), .prose table + p:has(> em:only-child) { font: .74rem/1.45 var(--sans); color: var(--muted); margin: .4rem 0 1.4rem; }
.prose .table-wrap + p:has(> em:only-child) em, .prose table + p:has(> em:only-child) em { font-style: normal; }

/* ——— wyszukiwanie ⌘K ——— */
.search-dialog { width: min(640px, calc(100vw - 32px)); border: 1px solid var(--line); border-radius: 16px; padding: 0; background: var(--surface); color: var(--ink); box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .45); margin-top: 12vh; }
.search-dialog::backdrop { background: rgba(10, 12, 13, .45); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.search-dialog form { display: flex; align-items: center; gap: .6rem; padding: .8rem 1rem; border-bottom: 1px solid var(--line); }
.search-dialog input { flex: 1; border: 0; background: transparent; color: var(--ink); font: 500 1.08rem var(--sans); outline: none; }
.search-results { list-style: none; margin: 0; padding: .4rem; max-height: 55vh; overflow: auto; }
.search-results li a { display: block; padding: .65rem .8rem; border-radius: 10px; color: var(--ink); text-decoration: none; }
.search-results li a:hover, .search-results li a:focus { background: var(--copper-tint); outline: none; }
.search-results .wynik-meta { display: block; font: .78rem var(--mono); color: var(--muted); }
.search-results .wynik-tytul { font-family: var(--serif); font-weight: 600; font-size: 1.04rem; }
.search-hint { padding: .6rem 1rem .8rem; font-size: .82rem; color: var(--muted); }

/* ——— stopka ——— */
.site-footer { margin-top: 2.5rem; background: var(--head-bg); color: #d0d3d9; font-size: .93rem; }
.site-footer a { color: #a9c2e3; }
.site-footer .muted { color: #a3a8b0; }
.footer-grid { display: grid; gap: 1.5rem; padding-top: 2.6rem; padding-bottom: 1.6rem; }
@media (min-width: 760px) { .footer-grid { grid-template-columns: 1.6fr 1fr 1fr 1fr; } }
.footer-brand { font: 650 1.3rem var(--serif); color: #fff; margin-bottom: .3rem; }
.footer-mail { margin-top: .7rem; font-weight: 600; }
.footer-mail a { text-decoration: none; } .footer-mail a:hover, .footer-mail a:focus-visible { text-decoration: underline; }
.footer-h { font-weight: 700; text-transform: uppercase; font-size: .72rem; letter-spacing: .1em; color: #a3a8b0; margin-bottom: .55rem; }
.site-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .32rem; }
.footer-note { border-top: 1px solid rgba(255, 255, 255, .12); padding-top: 1rem; padding-bottom: 1.6rem; display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 2rem; color: #a3a8b0; font-size: .85rem; }
.footer-note p { margin: 0; }
.theme-choice { display: inline-flex; gap: .3rem; align-items: center; }
.theme-choice button { background: transparent; border: 1px solid rgba(255, 255, 255, .22); color: #e6e8ec; border-radius: 999px; font: 500 .8rem var(--sans); padding: .2rem .6rem; cursor: pointer; }
.theme-choice button[aria-pressed="true"] { background: #a9c2e3; color: #000000; border-color: #a9c2e3; }

/* ——— rysunki: pasek narzędzi, podpowiedzi, znaczniki danych ——— */
.fig-tools { display: flex; flex-wrap: wrap; gap: .35rem; margin: .55rem 0 0; }
.fig-btn { border: 1px solid var(--line); background: var(--surface); color: var(--ink-2); border-radius: 999px; font: 600 .78rem var(--sans); padding: .28rem .7rem; cursor: pointer; }
.fig-btn:hover { border-color: var(--copper); color: var(--ink); }
.fig-btn.is-done { border-color: var(--c3); color: var(--c3); }
.fig-tip { position: fixed; z-index: 80; pointer-events: none; max-width: 300px; background: var(--ink); color: var(--paper); font: 600 .82rem/1.35 var(--sans); padding: .4rem .6rem; border-radius: 8px; box-shadow: 0 10px 24px -12px rgba(0, 0, 0, .5); font-variant-numeric: tabular-nums; }
.chart .ch-tip { cursor: pointer; transition: opacity .12s; }
.chart .ch-tip.is-hover:not(.ch-flow):not(.ch-flow-i) { stroke: var(--ink); stroke-width: 2; }
.chart .ch-hit { fill: transparent; stroke: none; }
.chart .ch-now { stroke: var(--ink); stroke-width: 2; }
svg.chart.spark { min-width: 0; }
.chart polyline.ch-line { fill: none; stroke-width: 2.5; stroke-linejoin: round; }

/* ——— karta faktu przy liczbie w tekście ——— */
.report-body a[href^="#f-"], .report-body a[data-f] { color: inherit; text-decoration-line: underline; text-decoration-style: dotted; text-decoration-thickness: 1.5px; text-decoration-color: color-mix(in srgb, var(--copper) 75%, transparent); text-underline-offset: .24em; }
.report-body a[href^="#f-"]:hover, .report-body a[data-f]:hover { color: var(--copper-text); text-decoration-color: var(--copper); }
.report-body table a[href^="#f-"], .report-body table a[data-f], .kpi-card a[data-f], .kpi-card a[href^="#f-"] { font-variant-numeric: tabular-nums; }
.fact-card { position: absolute; z-index: 70; width: min(340px, calc(100vw - 16px)); background: var(--surface); color: var(--ink); border: 1px solid var(--line); border-top: 3px solid var(--copper); border-radius: 12px; padding: .85rem 1rem .9rem; box-shadow: 0 22px 44px -22px rgba(0, 0, 0, .45); display: grid; gap: .28rem; font-family: var(--sans); }
.fc-value { font: 650 1.6rem/1.1 var(--serif); font-variant-numeric: tabular-nums; }
.fc-label { font-size: .92rem; color: var(--ink-2); }
.fc-meta, .fc-src { font-size: .8rem; color: var(--muted); }
.fc-meta { font-family: var(--mono); }
.fc-actions { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .4rem; }
tr:target, tr.is-current { background: var(--copper-tint); }

/* ——— kotwice części ——— */
.anchor { margin-left: .4rem; color: var(--muted); text-decoration: none; font: 500 .8em var(--sans); opacity: 0; transition: opacity .15s; }
h2:hover > .anchor, h3:hover > .anchor, .anchor:focus-visible { opacity: 1; }
.anchor:hover { color: var(--copper-text); }
.anchor.is-done { color: var(--c3); opacity: 1; }
@media (hover: none) { .anchor { opacity: .55; } }

/* ——— cytowanie w formatach ——— */
.cite-tablist { display: inline-flex; gap: .2rem; padding: .2rem; background: var(--paper-2); border: 1px solid var(--line); border-radius: 999px; margin-bottom: .7rem; flex-wrap: wrap; }
.cite-tablist [role="tab"] { border: 0; background: transparent; color: var(--ink-2); font: 600 .84rem var(--sans); padding: .35rem .8rem; border-radius: 999px; cursor: pointer; }
.cite-tablist [role="tab"][aria-selected="true"] { background: var(--surface); color: var(--ink); box-shadow: 0 0 0 1px var(--line); }
.cite-code { font: .82rem/1.5 var(--mono); white-space: pre-wrap; margin: 0; overflow-x: auto; }
.cite-code code { background: transparent; padding: 0; }
.cite-actions { display: flex; gap: .4rem; margin-top: .6rem; }

/* ——— wyszukiwanie: grupy wyników ——— */
.search-results { padding: .3rem .4rem .4rem; max-height: 58vh; overflow: auto; }
.search-results ul { list-style: none; margin: 0 0 .3rem; padding: 0; }
.search-group { margin: .5rem .8rem .2rem; font: 650 .7rem var(--sans); letter-spacing: .09em; text-transform: uppercase; color: var(--muted); }
.search-more { font: 600 .86rem var(--sans) !important; color: var(--copper-text) !important; }
.search-keys { margin: 0; padding: .55rem 1rem; border-top: 1px solid var(--line); font-size: .76rem; color: var(--muted); display: flex; gap: .35rem; align-items: center; flex-wrap: wrap; }
.search-hint:empty { display: none; }

/* ——— rejestr i karta faktu ——— */
.result-bar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .5rem 1rem; margin: -.4rem 0 .9rem; }
.result-bar p { margin: 0; }
.result-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; }
.facts-table td:first-child code { font-size: .78rem; }
.facts-table td:nth-child(2) { min-width: 16rem; }
@media (min-width: 900px) { .filters-facts { grid-template-columns: 2.2fr 1.2fr .9fr 1.3fr .7fr auto; } }
.fact-page { padding-top: 2.2rem; }
.fact-hero { display: grid; gap: 14px; }
@media (min-width: 900px) { .fact-hero { grid-template-columns: 1.4fr 1fr; } }
.fact-title { font-size: clamp(1.5rem, 3vw, 2.1rem); margin-bottom: 1rem; }
.fact-big { margin: 0 0 .4rem; line-height: 1; }
.fact-num { font: 650 clamp(2.8rem, 7vw, 4.6rem)/1 var(--serif); letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.fact-unit { font: 500 1.2rem var(--sans); color: var(--muted); }
.fact-where { font: 500 1rem var(--sans); color: var(--ink-2); }
.fact-unc { display: grid; gap: .15rem; margin: -.1rem 0 .6rem; font: 500 .95rem var(--sans); color: var(--ink-2); font-variant-numeric: tabular-nums; }
.fact-meta { margin: 0; display: grid; gap: .75rem; align-content: start; }
.fact-meta div { display: grid; gap: .1rem; }
.fact-meta dt { font: 650 .72rem var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.fact-meta dd { margin: 0; overflow-wrap: anywhere; }

/* ——— większy kontrast i tryb wymuszonych kolorów ——— */
@media (prefers-contrast: more) {
  :root { --line: #8d8a85; --line-2: #b9b5ae; --muted: #3f474b; }
  :root[data-theme="dark"] { --line: #7d8a8f; --muted: #c4c9cb; }
  a { text-decoration-thickness: 2px; }
}
@media (forced-colors: active) {
  .chart-wrap { forced-color-adjust: none; }
  .btn, .fig-btn, .chip, .tag { border: 1px solid CanvasText; }
  .progress { background: Highlight; }
}

/* ════════ strona raportu – układ redakcyjny (2.10.2026) ════════
   Wzorce: FT, The Economist, Our World in Data, IEA – miara wiersza ok. 70 znaków, rozdziały z numerem, rysunki
   z nadtytułem i stopką (źródło + narzędzia), karty kluczowych liczb, spokojna rama bez obramowań. */

/* nagłówek raportu */
.report-head { padding-top: clamp(2rem, 5vw, 3.4rem); padding-bottom: 1.4rem; margin-bottom: 2.4rem; border-bottom: 1px solid var(--line);
  background: linear-gradient(180deg, var(--paper-2), var(--paper) 85%); }
.report-head h1 { max-width: 28ch; font-size: clamp(2.15rem, 4.6vw, 3.5rem); line-height: 1.06; letter-spacing: -.028em; margin-bottom: 1.1rem; }
.byline { display: flex; flex-wrap: wrap; align-items: baseline; gap: .2rem 0; margin: 0 0 1.25rem; font: 500 .95rem/1.5 var(--sans); color: var(--muted); }
.byline > * + *::before { content: "·"; margin: 0 .6rem; color: var(--muted); opacity: .6; }
.byline-author { color: var(--ink); font-weight: 650; }
.report-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 0 0 1.3rem; }
.report-actions .btn { padding: .55rem 1rem; font-size: .9rem; }
.btn-note { font-weight: 500; font-size: .8em; opacity: .72; }
.ai-menu { position: relative; }
.ai-menu > summary { list-style: none; }
.ai-menu > summary::-webkit-details-marker { display: none; }
.ai-menu > summary::after { content: ""; width: .42rem; height: .42rem; margin-left: .2rem; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); }
.ai-menu[open] > summary::after { transform: translateY(1px) rotate(-135deg); }
.ai-menu-list { position: absolute; z-index: 45; top: calc(100% + 6px); left: 0; min-width: 270px; display: grid; gap: .35rem; padding: .6rem;
  background: var(--surface); border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 22px 44px -22px rgba(0, 0, 0, .4); }
.ai-menu-list .btn { justify-content: flex-start; }
.report-head .meta { border: 0; padding: 0; margin: 0; font-size: .8rem; gap: .25rem 1.4rem; color: var(--muted); }
.report-head .meta dd { font-weight: 500; color: var(--ink-2); }
.report-head .meta code { font-size: .78rem; }

/* siatka: wąski spis, kolumna tekstu ~ 70 znaków, rysunki i tabele szerzej */
@media (min-width: 1000px) { .report-grid { grid-template-columns: 216px minmax(0, 1fr); gap: 3.2rem; } }
.report-body:not(.w-tresc) { max-width: 940px; }
.report-body:not(.w-tresc) .prose > :is(p, ul, ol, h2, h3, h4, blockquote, hr), .report-body:not(.w-tresc) > section:not(.summary) > :is(p, h2, .prose, .cite-tabs) { max-width: 41rem; }
.report-body:not(.w-tresc) > .prose { counter-reset: rozdz; }
.report-body:not(.w-tresc) > .prose > h2 { counter-increment: rozdz; margin-top: 3.8rem; padding-top: 1.5rem; border-top: 1px solid var(--line); }
.report-body:not(.w-tresc) > .prose > h2::before { content: counter(rozdz, decimal-leading-zero); display: block; margin-bottom: .75rem;
  font: 650 .78rem/1 var(--sans); letter-spacing: .14em; color: var(--copper-text); font-variant-numeric: tabular-nums; }
.report-body:not(.w-tresc) > .prose > h2:first-child { margin-top: 0; }
/* aneksy: bez numeru rozdziału (tytuł „Aneks A.” niesie oznaczenie) */
.report-body:not(.w-tresc) > .prose > h2:is([id^="aneks"], [id^="annex"]) { counter-increment: none; }
.report-body:not(.w-tresc) > .prose > h2:is([id^="aneks"], [id^="annex"])::before { content: none; }
.report-body:not(.w-tresc) > section:not(.summary) > h2 { margin-top: 3.4rem; padding-top: 1.4rem; border-top: 1px solid var(--line); }
.prose h3 { font-size: 1.3rem; margin-top: 2.3rem; }
.prose h4 { font: 650 1.02rem/1.35 var(--sans); margin: 1.8rem 0 .5rem; }

/* skrót autora jako nadtytuł (standfirst) */
.summary { background: none; border: 0; border-left: 3px solid var(--copper); border-radius: 0; padding: .15rem 0 .2rem 1.35rem; margin-bottom: 2.6rem; }
.summary::before { display: none; }
.summary h2 { margin: .1rem 0 .75rem; font: 650 .78rem/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--copper-text); }
.summary .prose { font-size: 1.24rem; line-height: 1.58; color: var(--ink-2); }
.summary .prose p:last-child { margin-bottom: 0; }
.summary .summary-link { margin: .7rem 0 0; font: 500 .86rem/1.4 var(--sans); }

/* spis treści: numery rozdziałów zgodne z tekstem; na telefonie zwinięty */
.toc-box > summary { list-style: none; }
.toc-box > summary::-webkit-details-marker { display: none; }
.toc ol { counter-reset: rozdz; }
.toc li.toc-ch { counter-increment: rozdz; }
.toc li a { display: flex; gap: .55rem; line-height: 1.35; }
.toc li.toc-ch > a::before { content: counter(rozdz, decimal-leading-zero); flex: none; min-width: 1.35rem; padding-top: .12em;
  font: 600 .72rem/1.35 var(--sans); color: var(--muted); font-variant-numeric: tabular-nums; }
.toc li.toc-ax > a::before { content: ""; flex: none; min-width: 1.35rem; }
.toc li a.is-active::before { color: var(--copper-text); }
@media (min-width: 1000px) { .toc-box > summary { cursor: default; margin-bottom: .5rem; } }
@media (max-width: 999px) {
  .toc { border: 1px solid var(--line); border-radius: 12px; background: var(--paper-2); padding: 0 1rem; }
  .toc-box > summary { display: flex; justify-content: space-between; align-items: center; padding: .85rem 0; margin: 0; cursor: pointer; }
  .toc-box > summary::after { content: ""; width: .5rem; height: .5rem; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); transition: transform .15s; }
  .toc-box[open] > summary::after { transform: rotate(-135deg); }
  .toc-box[open] { padding-bottom: .4rem; }
}

/* rysunki: nadtytuł z numerem, tytuł, ramka bez obramowania, stopka ze źródłem i narzędziami */
.fig { margin: 2.9rem 0 3.1rem; }
.fig figcaption { display: grid; gap: .35rem; max-width: 46rem; margin-bottom: 1rem; font: 650 1.1rem/1.34 var(--sans); color: var(--ink); text-wrap: balance; }
.fig figcaption::before { content: ""; display: block; width: 34px; height: 3px; border-radius: 2px; background: var(--copper); margin-bottom: .45rem; }
.fig-num { font: 650 .74rem/1.2 var(--sans); letter-spacing: .11em; text-transform: uppercase; color: var(--copper-text); }
.fig-title { display: block; }
.fig-sub { display: block; font: 400 .92rem/1.45 var(--sans); color: var(--muted); text-wrap: pretty; }
/* tytuł tabeli nad tabelą – jak podpis rysunku */
.prose p.tab-title { display: grid; gap: .3rem; max-width: 46rem; margin: 2.6rem 0 .9rem; font: 650 1.02rem/1.34 var(--sans); color: var(--ink); text-wrap: balance; }
.chart-wrap { border: 0; border-radius: 0; padding: 0; background: transparent; }
.fig-foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: .35rem 1.2rem;
  margin-top: .8rem; padding-top: .6rem; border-top: 1px solid var(--line); }
.fig-foot:empty { display: none; }
.fig-foot .fig-src { flex: 1 1 22rem; margin: 0; }
.fig-tools { margin: 0; gap: .15rem; flex: none; }
.fig-btn { border: 0; background: transparent; color: var(--copper-text); border-radius: 6px; padding: .22rem .5rem; font: 600 .76rem var(--sans); }
.fig-btn:hover { background: var(--copper-tint); color: var(--ink); }
.fig-btn.is-done { color: var(--c3); }
.prose .fig-data, .fig-data { border: 0; border-radius: 0; padding: 0; margin: .25rem 0 0; font-size: .86rem; }
.fig-data > summary { display: inline-flex; align-items: center; gap: .45rem; padding: .3rem 0; list-style: none; font: 600 .78rem var(--sans); color: var(--copper-text); }
.fig-data > summary::-webkit-details-marker { display: none; }
.fig-data > summary::before { content: ""; width: .4rem; height: .4rem; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(-45deg); transition: transform .15s; }
.fig-data[open] > summary::before { transform: rotate(45deg); }
.fig-data[open] > .table-wrap, .fig-data[open] > table { margin-top: .5rem; }
.fig-data[aria-busy="true"] > summary::after { content: "…"; }
.facts-more { margin: .7rem 0 0; font: 600 .85rem var(--sans); }

/* schematy stron (Metoda, Nota o AI) – inline SVG z Markdown (App\Support\Diagrams); barwy wyłącznie z tokenów motywu:
   akcent (krok autora, strzałki przekazania) i neutralne; bez barw metali. Tekst ≥ 12 jednostek przy viewBox 760. */
.dg .chart-wrap { border-radius: 10px; }
.dg .chart-wrap:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }
svg.chart.dg-svg { min-width: 680px; font-family: var(--sans);
  --dg-fill: var(--surface); --dg-stroke: color-mix(in srgb, var(--ink) 30%, var(--paper));
  --dg-acc-fill: color-mix(in srgb, var(--copper) 17%, var(--paper)); --dg-arrow: color-mix(in srgb, var(--ink) 60%, var(--paper));
  --dg-lane: color-mix(in srgb, var(--paper-2) 75%, var(--paper)); }
@media (min-width: 1100px) { .prose-page > .fig.dg { width: min(54rem, calc(100vw - 4rem)); max-width: none; } }
.dg-svg text { font-family: var(--sans); font-size: 13px; fill: var(--ink); stroke: none; font-variant-numeric: tabular-nums; }
.dg-svg .dg-t { font-size: 13.5px; font-weight: 650; }
.dg-svg .dg-s { font-size: 12px; fill: var(--ink-2); }
.dg-svg .dg-s-ink { fill: var(--ink); }
.dg-svg .dg-m { font-size: 12px; fill: var(--muted); }
.dg-svg .dg-h { font-size: 12px; font-weight: 650; letter-spacing: .08em; fill: var(--copper-text); }
.dg-svg .dg-th { font-size: 12.5px; font-weight: 650; fill: var(--ink-2); }
.dg-svg .dg-al { font-size: 12px; fill: var(--ink-2); paint-order: stroke; stroke: var(--paper); stroke-width: 5px; stroke-linejoin: round; }
.dg-svg .dg-box { fill: var(--dg-fill); stroke: var(--dg-stroke); stroke-width: 1; }
.dg-svg .dg-acc { fill: var(--dg-acc-fill); stroke: var(--copper); stroke-width: 1.5; }
.dg-svg .dg-chk { fill: var(--dg-fill); stroke: var(--dg-stroke); stroke-width: 1.2; stroke-dasharray: 5 3; }
.dg-svg .dg-off { fill: none; stroke: var(--dg-stroke); stroke-width: 1.2; stroke-dasharray: 2 3; }
.dg-svg .dg-zone { fill: none; stroke: var(--muted); stroke-width: 1.2; stroke-dasharray: 7 5; }
.dg-svg .dg-lane { fill: var(--dg-lane); stroke: var(--line); stroke-width: 1; }
.dg-svg .dg-rule { fill: none; stroke: var(--line); stroke-width: 1; }
.dg-svg .dg-bar { fill: var(--dg-stroke); }
.dg-svg .dg-bar-0 { fill: var(--copper); }
.dg-svg .dg-cls { fill: var(--copper-text); }
.dg-svg .dg-cls-t { font-size: 15px; font-weight: 700; fill: var(--paper); }
.dg-svg .dg-badge { fill: var(--copper-text); }
.dg-svg .dg-badge-t { font-size: 12px; font-weight: 700; fill: var(--paper); }
.dg-svg .dg-ln { fill: none; stroke: var(--dg-arrow); stroke-width: 1.5; stroke-linejoin: round; }
.dg-svg .dg-ln-d { stroke-dasharray: 5 4; }
.dg-svg .dg-ln-acc { stroke: var(--copper-text); }
.dg-svg .dg-ln-x { stroke: var(--muted); stroke-dasharray: 3 4; }
.dg-svg .dg-ah { fill: var(--dg-arrow); }
.dg-svg .dg-ah-acc { fill: var(--copper-text); }
.dg-svg .dg-dot { fill: var(--dg-arrow); }
.dg-svg .dg-xc { fill: var(--paper); stroke: var(--muted); stroke-width: 1.2; }
.dg-svg .dg-g-ok { fill: none; stroke: var(--copper-text); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.dg-svg .dg-g-lim { fill: none; stroke: var(--ink-2); stroke-width: 2.2; stroke-linecap: round; }
.dg-svg .dg-g-no { fill: none; stroke: var(--muted); stroke-width: 2; stroke-linecap: round; }
.dg-svg .dg-curve { fill: var(--copper-tint); stroke: var(--copper); stroke-width: 1.5; }
.dg-svg .dg-tick { fill: none; stroke: var(--copper-text); stroke-width: 1.5; }
/* podpowiedzi (portal.js zamienia <title> węzła na data-tip): obramowanie zamiast obrysu całej grupy */
.dg-svg .ch-tip { cursor: help; }
.dg-svg.chart .ch-tip.is-hover:not(.ch-flow):not(.ch-flow-i) { stroke: none; }
.dg-svg .ch-tip.is-hover > rect { stroke: var(--copper); stroke-width: 2; }
@media (forced-colors: active) {
  .dg-svg :is(.dg-box, .dg-chk, .dg-acc, .dg-lane, .dg-xc) { fill: Canvas; stroke: CanvasText; }
  .dg-svg .dg-acc { stroke: Highlight; stroke-width: 2.5; }
  .dg-svg :is(.dg-off, .dg-zone, .dg-rule, .dg-ln, .dg-tick, .dg-g-ok, .dg-g-lim, .dg-g-no) { stroke: CanvasText; }
  .dg-svg :is(.dg-ah, .dg-ah-acc, .dg-dot, .dg-badge, .dg-cls, .dg-bar) { fill: CanvasText; }
  .dg-svg .dg-curve { fill: Canvas; stroke: CanvasText; }
  .dg-svg text { fill: CanvasText; }
  .dg-svg :is(.dg-badge-t, .dg-cls-t) { fill: Canvas; }
  .dg-svg .dg-al { stroke: Canvas; }
}
@media print { svg.chart.dg-svg { min-width: 0; } }

/* karty kluczowych liczb */
.fig-kpi figcaption { max-width: none; }
.kpi-wrap { display: grid; grid-template-columns: repeat(auto-fit, minmax(15.5rem, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.kpi-card { display: grid; align-content: start; gap: .35rem; padding: 1.05rem 1.15rem 1.15rem; background: var(--surface); font-family: var(--sans); }
.kpi-card-label { font: 600 .8rem/1.35 var(--sans); color: var(--muted); }
.kpi-card-value { font: 650 clamp(1.5rem, 2.2vw, 1.85rem)/1.08 var(--serif); letter-spacing: -.02em; color: var(--ink); }
.report-body .kpi-card-value a[href] { text-decoration-color: transparent; }
.report-body .kpi-card-value a[href]:hover { text-decoration-color: var(--copper); }
.kpi-card-value a, .kpi-card-delta a { color: inherit; text-decoration: none; }
.kpi-card-delta a { display: inline-flex; align-items: center; min-height: 24px; }
.kpi-card-delta { justify-self: start; display: inline-flex; align-items: center; gap: .3rem; min-height: 24px; padding: 0 .55rem; border-radius: 999px; font: 650 .78rem/1 var(--sans);
  background: var(--copper-tint); color: var(--copper-text); }
.kpi-card-delta::before { content: ""; border-left: .28rem solid transparent; border-right: .28rem solid transparent; border-bottom: .38rem solid currentColor; }
.kpi-card-delta.kpi-dn { background: color-mix(in srgb, var(--c2) 13%, transparent); color: color-mix(in srgb, var(--c2) 85%, var(--ink)); }
.kpi-card-delta.kpi-dn::before { border-bottom: 0; border-top: .38rem solid currentColor; }
.kpi-card-note { font-size: .8rem; line-height: 1.4; color: var(--ink-2); }

/* tabele: wiersz pod kursorem, pierwsza kolumna przyklejona na telefonie */
.prose tbody tr:hover > td, table.data tbody tr:hover > td { background: var(--copper-tint); }
.table-wrap { border-radius: 10px; }
@media (max-width: 719px) {
  .table-wrap :is(th, td):first-child { position: sticky; left: 0; z-index: 1; background: var(--surface); box-shadow: 1px 0 0 var(--line); }
  .table-wrap thead th:first-child { background: var(--paper-2); }
}

/* wykresy na telefonie: czytelna szerokość z przewijaniem i cieniem krawędzi */
@media (max-width: 719px) {
  svg.chart { min-width: 540px; }
  .chart-wrap { scrollbar-width: thin;
    background: linear-gradient(90deg, var(--paper) 30%, transparent) left / 36px 100% no-repeat local,
      linear-gradient(270deg, var(--paper) 30%, transparent) right / 36px 100% no-repeat local,
      radial-gradient(farthest-side at 0 50%, rgba(0, 0, 0, .16), transparent) left / 12px 100% no-repeat scroll,
      radial-gradient(farthest-side at 100% 50%, rgba(0, 0, 0, .16), transparent) right / 12px 100% no-repeat scroll; }
  .fig figcaption { font-size: 1.02rem; }
}

/* wydajność: rysunki i tabele poza ekranem renderowane dopiero przy przewinięciu (bez wpływu na druk i PDF) */
@media screen {
  .report-body:not(.w-tresc) .prose > :is(.fig, .table-wrap) { content-visibility: auto; contain-intrinsic-size: auto 560px; }
}

/* ——— pasek podglądu redaktora (tylko /admin/podglad) ——— */
.preview-bar { background: var(--warn-bg); border-bottom: 2px solid var(--warn-line); font-size: .92rem; }
.preview-row { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .4rem 1.5rem; padding-top: .6rem; padding-bottom: .6rem; }
.preview-links { display: flex; gap: 1rem; font-weight: 600; }

/* ——— przejścia między stronami (Chromium 126+, Safari 18.2+; inne pomijają bez szkody) ——— */
@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .22s; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
  @view-transition { navigation: none; }
}
@media print {
  .site-header, .site-footer, .toc, .filters, .skip, .progress, .ai-actions, .report-actions, .ai-menu, .search-dialog, .fig-tools, .anchor,
  .cite-tablist, .cite-actions, .fact-card, .fig-tip, .result-actions { display: none !important; }
  .cite-panel[hidden] { display: block !important; }
  body { background: #fff; color: #000; }
  .report-grid { display: block; }
}

/* ===== Przepływ metali (zakładka analiz przepływów): podzakładki, nagłówek z liczbami, rysunki-obrazy ===== */
.subnav { display: flex; gap: .3rem; flex-wrap: wrap; margin: 0 0 1.6rem;
  padding: .3rem; border: 1px solid var(--line); border-radius: 22px; background: var(--paper-2); width: max-content; max-width: 100%; }
.subnav::-webkit-scrollbar { display: none; }
.subnav a { white-space: nowrap; padding: .4rem .95rem; border-radius: 999px; font: 600 .86rem/1.2 var(--sans); color: var(--ink-2); text-decoration: none; }
.subnav a:hover { color: var(--ink); background: var(--surface); }
.subnav a[aria-current="page"] { background: var(--surface); color: var(--ink); box-shadow: 0 0 0 1px var(--line), 0 6px 14px -10px rgba(9, 44, 97, .35); }
.flow-head .lead { max-width: 68ch; }
.flow-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; margin: 1.6rem 0 1.1rem; }
.flow-kpi { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 1rem 1.15rem 1.05rem; position: relative; overflow: hidden; }
.flow-kpi::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 3px; background: var(--copper); }
.flow-kpi-v { display: block; font: 650 2rem/1.05 var(--serif); letter-spacing: -.02em; color: var(--ink); font-variant-numeric: tabular-nums; }
.flow-kpi-v small { font: 600 .8rem var(--sans); color: var(--muted); margin-left: .35rem; letter-spacing: 0; }
.flow-kpi-o { display: block; margin-top: .45rem; font: .88rem/1.42 var(--sans); color: var(--ink-2); }
.flow-method { font: .84rem/1.5 var(--sans); color: var(--muted); max-width: 80ch; margin: 0; }
.fig-img .fig-media { display: block; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; background: #fff; cursor: zoom-in;
  transition: border-color .2s, box-shadow .2s; }
.fig-img .fig-media:hover { border-color: color-mix(in srgb, var(--copper) 55%, var(--line)); box-shadow: 0 16px 34px -22px rgba(9, 44, 97, .4); }
.fig-img img { display: block; width: 100%; height: auto; }
@media (min-width: 1000px) { .flow-body .fig-wide { margin-right: calc(-1 * min(6vw, 5rem)); } }
.flow-body .fig-foot { margin-top: .5rem; }
.flow-body .prose p.tab-note { font: .8rem/1.45 var(--sans); color: var(--muted); margin-top: .35rem; }
.flow-body .prose h3 { scroll-margin-top: 5.5rem; }
.flow-body .prose h2 { scroll-margin-top: 5.5rem; padding-top: 1.2rem; border-top: 1px solid var(--line); }
.flow-body .prose > h2:first-child { border-top: 0; padding-top: 0; }
.report-body:not(.w-tresc) > .prose > h2:is(#ustalenia, #key-findings) { counter-increment: none; }
.report-body:not(.w-tresc) > .prose > h2:is(#ustalenia, #key-findings)::before { content: none; }
.flow-top { margin: 2.5rem 0 0; font: 600 .86rem var(--sans); }
.flow-top a { color: var(--copper-text); text-decoration: none; }
.flow-hub-head { padding-top: clamp(2rem, 5vw, 3.2rem); }
.flow-hub-head h1 { font-size: clamp(2.1rem, 4.4vw, 3.3rem); letter-spacing: -.028em; margin-bottom: .9rem; }
.flow-h2 { font-size: 1.35rem; margin: 1.2rem 0 1rem; }
.flow-cards { display: grid; gap: 16px; margin-bottom: 2.6rem; }
.flow-card { padding: 0; overflow: hidden; }
@media (min-width: 900px) { .flow-card { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); } }
.flow-card-media { display: block; background: #fff; border-bottom: 1px solid var(--line); }
@media (min-width: 900px) { .flow-card-media { border-bottom: 0; border-right: 1px solid var(--line); } }
.flow-card-media img { display: block; width: 100%; height: 100%; object-fit: contain; }
.flow-card-body { padding: 1.4rem 1.5rem; display: flex; flex-direction: column; gap: .2rem; }
.flow-card .card-title { font-size: 1.5rem; }
.flow-card-kpis { display: grid; gap: .55rem; margin: .9rem 0 1.1rem; }
.flow-card-kpis div { display: grid; grid-template-columns: 7.2rem 1fr; gap: .6rem; align-items: baseline; }
.flow-card-kpis dt { font: 650 1.15rem/1.2 var(--serif); color: var(--ink); font-variant-numeric: tabular-nums; }
.flow-card-kpis dt small { font: 600 .7rem var(--sans); color: var(--muted); }
.flow-card-kpis dd { margin: 0; font-size: .86rem; color: var(--ink-2); }
.flow-card .card-foot { justify-content: space-between; margin-top: auto; padding-top: .6rem; }
.flow-how { list-style: none; counter-reset: krok; padding: 0; margin: 0; display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
.flow-how li { counter-increment: krok; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.05rem 1.2rem; display: grid; gap: .35rem; }
.flow-how li::before { content: counter(krok, decimal-leading-zero); font: 650 .74rem var(--mono); color: var(--copper-text); }
.flow-how-lead { max-width: 72ch; color: var(--ink-2); margin: -.4rem 0 1.1rem; }
.flow-how b { font-family: var(--sans); }
.flow-lit-h { font-size: 1.12rem; margin: 2rem 0 .6rem; }
.flow-lit { display: grid; gap: 1.1rem; }
.flow-lit h4 { font: 650 .8rem/1.3 var(--sans); letter-spacing: .04em; text-transform: uppercase; color: var(--copper-text); margin: 0 0 .45rem; }
.flow-lit ul { margin: 0; padding-left: 1.1rem; display: grid; gap: .35rem; }
.flow-lit li { font-size: .86rem; color: var(--ink-2); line-height: 1.45; overflow-wrap: anywhere; }
.flow-lit a { white-space: nowrap; }
.flow-how span { font-size: .9rem; color: var(--ink-2); }
@media print { .subnav, .flow-top { display: none !important; } .fig-img .fig-media { border: 0; } }

/* ===== Rysunki interaktywne zakładki „Przepływ metali” (SVG z podpowiedziami, powiększenie, schematy przepływów) ===== */
.fig-ia { position: relative; }
.fig-ia .ia-wrap { position: relative; overflow: auto; background: #fff; border: 1px solid var(--line); border-radius: 10px; max-height: 82vh; }
.fig-ia .ia-wrap svg.chart { display: block; width: 100%; height: auto; min-width: 0; }
.fig-ia .ia-wrap.is-zoom { cursor: grab; }
.fig-ia .ia-wrap.is-drag { cursor: grabbing; user-select: none; }
@media (max-width: 719px) { .fig-ia .ia-wrap svg.chart { min-width: 560px; } .fig-sankey .ia-wrap svg.chart { min-width: 900px; } }
.ia-tools { display: flex; justify-content: flex-end; gap: .25rem; margin: 0 0 .4rem; }
.ia-btn { min-width: 2rem; height: 1.9rem; padding: 0 .55rem; border: 1px solid var(--line); background: var(--surface); color: var(--ink-2);
  border-radius: 8px; font: 650 .82rem/1 var(--sans); cursor: pointer; }
.ia-btn:hover { border-color: var(--copper); color: var(--ink); }
.fig-ia:fullscreen { background: var(--paper); padding: 1.2rem 1.6rem; overflow: auto; }
.fig-ia:fullscreen .ia-wrap { max-height: none; }
/* podpowiedzi rysunków matplotlib: znacznik trafienia widoczny po najechaniu, słupek/państwo z obwódką */
.fig-ia .tip { cursor: default; }
/* znacznik z odnośnikiem (mapy zakładów → karta spółki w „Podmiotach”) */
.fig-ia svg.has-links .tip[data-href] { cursor: pointer; outline: none; }
.fig-ia .ia-wrap.is-drag svg.has-links .tip[data-href] { cursor: grabbing; }
.fig-ia .tip[data-href]:focus-visible :is(path, use, rect, polygon) { stroke: var(--copper); stroke-width: 2px; stroke-opacity: 1; }
.fig-tip-link { display: block; margin-top: .3rem; padding-top: .3rem; border-top: 1px solid color-mix(in srgb, currentColor 28%, transparent); font-weight: 650; font-size: .76rem; opacity: .9; }
.fig-ia .tip.is-hover :is(path, use, rect, polygon) { stroke: #1a1a1a; stroke-width: 1.2px; stroke-opacity: 1; }
.fig-ia .tip.is-hover use, .fig-ia .tip.is-hover path[fill-opacity="0"] { fill-opacity: .95; }
/* schematy przepływów */
.fig-sankey .pas, .fig-sankey .grot { transition: opacity .15s; cursor: pointer; }
.fig-sankey .wezel { cursor: pointer; outline: none; }
.fig-sankey .wezel:focus-visible { stroke: #1a1a1a; stroke-width: .8px; }
.fig-sankey svg.sk-focus .pas, .fig-sankey svg.sk-focus .grot { opacity: .1; }
.fig-sankey svg.sk-focus .wezel { opacity: .35; }
.fig-sankey svg.sk-focus .sk-on { opacity: 1; }
.fig-sankey svg.sk-focus path.sk-on { stroke-opacity: .88; }
.sk-filtr { display: flex; flex-wrap: wrap; gap: .35rem; margin: 0 0 .5rem; }
.sk-chip { border: 1px solid var(--line); background: var(--surface); color: var(--ink-2); border-radius: 999px; padding: .3rem .75rem .3rem .55rem;
  font: 600 .78rem/1.2 var(--sans); cursor: pointer; display: inline-flex; align-items: center; gap: .4rem; }
.sk-chip::before { content: ""; width: .7rem; height: .7rem; border-radius: 3px; background: var(--sk, #999); }
.sk-chip[aria-pressed="true"] { border-color: var(--ink); color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
.sk-surowce { --sk: #9C5B33; } .sk-rafinowana { --sk: #C0712F; } .sk-polwyroby { --sk: #2F6FA6; } .sk-wyroby { --sk: #6D5BA3; }
.sk-zlom { --sk: #2E7D6B; } .sk-zasob { --sk: #9CA3AF; } .sk-handel { --sk: #7D8FA9; }
.sk-hint { font: .8rem/1.4 var(--sans); color: var(--muted); margin: 0 0 .5rem; }
@media print { .ia-tools, .sk-filtr, .sk-hint { display: none !important; } .fig-ia .ia-wrap { max-height: none; overflow: visible; border: 0; } }
.fig-ia .ia-wrap > img { display: block; width: 100%; height: auto; }
/* napisy map i wykresów nie przechwytują wskaźnika (podpowiedź państwa pod podpisem), chyba że same mają podpowiedź */
.fig-ia svg.mpl text { pointer-events: none; }
.fig-ia svg.mpl .tip text { pointer-events: auto; }

/* ===== Przepływ metali: podzakładki w wierszach według metalu i kafelki metali w Przeglądzie (barwy dotychczasowe) ===== */
.subnav[data-metale] { flex-direction: column; align-items: stretch; gap: .25rem; border-radius: 18px; }
.subnav[data-metale] > .subnav-all { align-self: flex-start; }
.subnav-metal { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; padding: .25rem .2rem 0; }
.subnav-metal + .subnav-metal, .subnav-all + .subnav-metal { border-top: 1px solid var(--line); }
.subnav-metal-name { font: 650 .86rem/1.2 var(--sans); color: var(--ink); min-width: 5.4rem; margin: 0 .25rem 0 .1rem; }
@media (max-width: 719px) { .subnav-metal-name { flex: 1 0 calc(100% - 2.7rem); min-width: 0; } }
.el-tile { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; flex: none;
  width: 2rem; height: 2rem; border-radius: 6px; background: var(--copper-tint); color: var(--copper-text);
  font: 700 .84rem/1 var(--sans); letter-spacing: -.01em; }
.el-tile small { font: 600 .56rem/1 var(--sans); margin-bottom: .12rem; opacity: .85; }
.el-tile.el-lg { width: 3rem; height: 3rem; border-radius: 8px; font-size: 1.15rem; }
.el-tile.el-lg small { font-size: .66rem; }
.flow-metale { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px; margin: 0 0 2.4rem; }
.flow-metal { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.1rem 1.25rem 1.2rem; }
.flow-metal-head { display: flex; align-items: center; gap: .85rem; margin-bottom: .9rem; }
.flow-metal-name { font: 650 1.3rem/1.1 var(--serif); margin: 0; color: var(--ink); }
.flow-metal-meta { font: .84rem/1.3 var(--sans); color: var(--muted); margin: .2rem 0 0; }
.flow-metal-kpi { margin: 0; }
.flow-metal-kpi .l { display: block; font: 650 .72rem/1.2 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--copper-text); margin-bottom: .3rem; }
.flow-metal-kpi .v { display: block; font: 650 1.75rem/1.05 var(--serif); letter-spacing: -.02em; color: var(--ink); font-variant-numeric: tabular-nums; }
.flow-metal-kpi .v small { font: 600 .78rem var(--sans); color: var(--muted); letter-spacing: 0; }
.flow-metal-kpi .o { display: block; margin-top: .35rem; font: .87rem/1.42 var(--sans); color: var(--ink-2); }
.flow-metal-links { list-style: none; display: flex; flex-wrap: wrap; gap: .35rem; margin: 1rem 0 0; padding: 0; }
.flow-metal-links a { display: inline-block; padding: .32rem .8rem; border: 1px solid var(--line); border-radius: 999px;
  font: 600 .82rem/1.2 var(--sans); color: var(--ink-2); text-decoration: none; }
.flow-metal-links a:hover { border-color: var(--copper); color: var(--ink); }

/* ——— Podmioty: rejestr zakładów i spółek z interaktywną mapą Europy (kształt znaku – ogniwo łańcucha; akcent i neutralne) ——— */
.pm-kpis { display: flex; flex-wrap: wrap; gap: .6rem 2.2rem; margin: 1.4rem 0 .4rem; }
.pm-kpis div { display: flex; flex-direction: column-reverse; }
.pm-kpis dt { font: 650 2rem/1.1 var(--serif); color: var(--ink); font-variant-numeric: tabular-nums; }
.pm-kpis dt small { font-size: .55em; margin-left: .08em; color: var(--muted); }
.pm-kpis dd { margin: 0; font-size: .82rem; color: var(--muted); }
.pm-kpis-sm dt { font-size: 1.45rem; }
.pm-asof { font-size: .85rem; color: var(--muted); }
.pm-explorer { display: grid; grid-template-columns: minmax(260px, 340px) minmax(0, 1fr); gap: 1.2rem; align-items: start; }
.pm-side { display: flex; flex-direction: column; gap: .6rem; min-width: 0; }
.pm-filters { display: flex; flex-direction: column; gap: .75rem; padding: .9rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.pm-q, .pm-sel { width: 100%; padding: .55rem .7rem; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); color: var(--ink); font: inherit; font-size: .92rem; }
.pm-q:focus-visible, .pm-sel:focus-visible { outline: 2px solid var(--focus); outline-offset: 1px; }
.pm-fs { border: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .35rem; }
.pm-fs legend { font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); font-weight: 650; margin-bottom: .4rem; padding: 0; }
.pm-chip { position: relative; display: inline-flex; align-items: center; gap: .35rem; padding: .3rem .62rem; border: 1px solid var(--line); border-radius: 999px; font-size: .82rem; cursor: pointer; color: var(--ink-2); user-select: none; }
.pm-chip input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.pm-chip:has(input:checked) { border-color: var(--copper); background: var(--copper-tint); color: var(--ink); }
.pm-chip:has(input:focus-visible) { outline: 2px solid var(--focus); outline-offset: 1px; }
.pm-chip-g:has(input:not(:checked)) .pm-mk { fill: var(--m-c); }
.pm-sym { font: 650 .72rem/1 var(--mono); }
.pm-ico { width: 14px; height: 14px; flex: none; vertical-align: -2px; overflow: visible; }
.pm-ico .pm-mk { fill: var(--copper-text); stroke: var(--paper); stroke-width: 1; }
.pm-row { display: flex; flex-wrap: wrap; gap: .5rem .9rem; align-items: center; font-size: .85rem; }
.pm-toggles label { display: inline-flex; gap: .35rem; align-items: center; cursor: pointer; color: var(--ink-2); }
.pm-reset { margin-left: auto; }
.pm-count { font-size: .85rem; color: var(--muted); margin: 0; }
.pm-list { list-style: none; margin: 0; padding: 0; max-height: 560px; overflow: auto; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.pm-list li { padding: .5rem .8rem; border-bottom: 1px solid var(--line-2); display: flex; flex-direction: column; gap: .15rem; }
.pm-list li:last-child { border-bottom: 0; }
.pm-list li[hidden] { display: none; }
.pm-list li:hover, .pm-list li:focus-within { background: var(--copper-tint); }
.pm-list a { font-weight: 600; color: var(--ink); text-decoration: none; }
.pm-list a:hover { text-decoration: underline; }
.pm-li-meta { font-size: .76rem; color: var(--muted); display: flex; align-items: center; gap: .25rem; flex-wrap: wrap; }
.pm-none { font-size: .9rem; color: var(--muted); }
.pm-mapfig { position: relative; margin: 0; min-width: 0; }
.pm-mapwrap { position: relative; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: var(--m-bg); }
.pm-tools { position: absolute; top: .5rem; right: .5rem; z-index: 2; margin: 0; }
.pm-svg { display: block; width: 100%; height: auto; max-height: 82vh; aspect-ratio: 1000 / 945.6; cursor: grab; user-select: none; touch-action: none; }
.is-drag .pm-svg { cursor: grabbing; }
.pm-mapfig-sm .pm-svg { max-height: min(68vh, 560px); }
@media (pointer: coarse) { .pm-svg { touch-action: pan-y; } }
.pm-morze { fill: var(--m-bg); }
.pm-kraj { fill: var(--m-n); stroke: var(--m-c); stroke-width: .6px; vector-effect: non-scaling-stroke; }
.pm-kraj.pm-ma { cursor: pointer; }
.pm-q1 { fill: color-mix(in srgb, var(--copper) 9%, var(--m-n)); }
.pm-q2 { fill: color-mix(in srgb, var(--copper) 17%, var(--m-n)); }
.pm-q3 { fill: color-mix(in srgb, var(--copper) 26%, var(--m-n)); }
.pm-q4 { fill: color-mix(in srgb, var(--copper) 36%, var(--m-n)); }
.pm-kraj.pm-ma:hover, .pm-kraj.is-sel { stroke: var(--copper-text); stroke-width: 1.6px; }
.pm-flow path { fill: none; stroke: var(--copper-text); stroke-width: 1.3px; stroke-opacity: .4; vector-effect: non-scaling-stroke; }
.pm-grot { fill: var(--copper-text); }
.pm-flow.is-off { display: none; }
.pm-flow.is-dim path, .has-hot .pm-flow:not(.is-hot) path { stroke-opacity: .12; }
.pm-flow.is-hot path { stroke-opacity: .95; stroke-width: 2.4px; }
.pm-site { cursor: pointer; }
.pm-site .pm-mk { fill: var(--copper-text); stroke: var(--paper); stroke-width: 1.2px; vector-effect: non-scaling-stroke; }
.pm-site.is-hollow .pm-mk { fill: var(--paper); stroke: var(--copper-text); stroke-width: 1.6px; }
.pm-site.is-off { display: none; }
.pm-site.is-dim .pm-mk { fill: var(--m-c); stroke: var(--m-n); }
.pm-site.is-focus .pm-mk, .pm-site.is-hot .pm-mk, .pm-site:hover .pm-mk { fill: var(--ink); stroke: var(--paper); }
.has-hot .pm-site:not(.is-hot) .pm-mk { opacity: .3; }
.pm-site.is-pick .pm-mk { stroke: var(--focus); stroke-width: 2.6px; }
.pm-site:focus { outline: none; }
.pm-site:focus-visible .pm-mk { stroke: var(--focus); stroke-width: 3px; }
.pm-card { position: absolute; top: .6rem; left: .6rem; z-index: 3; width: min(340px, calc(100% - 1.2rem)); max-height: calc(100% - 4.5rem); overflow: auto;
  background: var(--glass); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border: 1px solid var(--line); border-radius: 12px; padding: .9rem 1rem; box-shadow: 0 16px 40px -20px rgba(0, 0, 0, .45); }
.pm-card-x { position: absolute; top: .35rem; right: .35rem; border: 0; background: none; font-size: 1.35rem; line-height: 1; cursor: pointer; color: var(--muted); padding: .2rem .45rem; border-radius: 6px; }
.pm-card-x:hover { color: var(--ink); background: var(--copper-tint); }
.pm-card-eyebrow { font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; color: var(--copper-text); font-weight: 650; margin: 0 1.6rem .3rem 0; }
.pm-card-h { font: 650 1.1rem/1.25 var(--serif); margin: 0 0 .2rem; }
.pm-card-site { font-size: .85rem; color: var(--ink-2); margin: 0 0 .5rem; }
.pm-card-dl, .pm-site-dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: .4rem .8rem; margin: .4rem 0; }
.pm-card-dl dt, .pm-site-dl dt { font-size: .72rem; color: var(--muted); }
.pm-card-dl dd, .pm-site-dl dd { margin: 0; font-size: .9rem; font-variant-numeric: tabular-nums; }
.pm-site-dl dd small { display: block; color: var(--muted); font-size: .76rem; }
.pm-src { list-style: none; margin: .55rem 0 0; padding: 0; display: flex; flex-direction: column; gap: .35rem; font-size: .8rem; }
.pm-src li { display: flex; flex-wrap: wrap; gap: .1rem .45rem; align-items: baseline; }
.pm-src small { color: var(--muted); flex-basis: 100%; padding-left: 1.8rem; }
.pm-cls { display: inline-grid; place-items: center; min-width: 1.35rem; height: 1.35rem; border-radius: 6px; font: 700 .72rem/1 var(--mono); border: 1px solid var(--copper); color: var(--copper-text); flex: none; }
.pm-cls-A { background: var(--copper-text); color: var(--paper); border-color: var(--copper-text); }
.pm-cls-B { background: var(--copper-tint); }
.pm-cls-C { border-style: dashed; }
.pm-card-foot { margin: .75rem 0 0; display: flex; align-items: center; gap: .5rem; font-size: .8rem; color: var(--muted); }
.pm-cap { display: flex; flex-direction: column; gap: .35rem; margin-top: .55rem; font-size: .8rem; color: var(--muted); }
.pm-legend { display: flex; flex-wrap: wrap; gap: .3rem 1rem; color: var(--ink-2); }
.pm-legend > span { display: inline-flex; align-items: center; gap: .3rem; }
.pm-matrix-wrap { overflow-x: auto; }
.pm-matrix { border-collapse: collapse; width: 100%; font-size: .88rem; font-variant-numeric: tabular-nums; }
.pm-matrix th, .pm-matrix td { padding: .35rem .5rem; border-bottom: 1px solid var(--line); text-align: center; }
.pm-matrix th[scope="row"], .pm-matrix thead th:first-child { text-align: left; }
.pm-matrix thead th { font-size: .76rem; color: var(--muted); font-weight: 600; white-space: nowrap; }
.pm-cell { min-width: 2.3rem; padding: .28rem .5rem; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); color: var(--ink); font: 650 .85rem/1 var(--sans); cursor: pointer; }
.pm-n1 { background: color-mix(in srgb, var(--copper) 12%, var(--surface)); }
.pm-n2 { background: color-mix(in srgb, var(--copper) 24%, var(--surface)); }
.pm-n3 { background: color-mix(in srgb, var(--copper) 38%, var(--surface)); }
.pm-n4 { background: color-mix(in srgb, var(--copper) 54%, var(--surface)); }
.pm-cell:hover, .pm-cell:focus-visible { border-color: var(--copper-text); outline: none; box-shadow: 0 0 0 2px var(--focus); }
.pm-zero { color: var(--m-c); }
.pm-sum { font-weight: 650; }
.pm-sources { font-size: .86rem; color: var(--ink-2); padding-left: 1.1rem; margin: 0 0 1.2rem; }
.pm-sources li { margin: .25rem 0; }
.pm-tdm { font-size: .84rem; color: var(--ink-2); border-left: 3px solid var(--copper); padding: .2rem 0 .2rem .7rem; margin: 0 0 1rem; max-width: 80ch; }
.pm-classes { display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; font-size: .82rem; color: var(--muted); }
.pm-classes > span { display: inline-flex; gap: .4rem; align-items: center; }
.pm-grupa { color: var(--ink-2); margin: .2rem 0 1rem; }
.pm-chain { list-style: none; display: flex; flex-wrap: wrap; margin: 1rem 0; padding: 0; }
.pm-chain li { display: flex; align-items: center; gap: .4rem; padding: .45rem .85rem; font-size: .85rem; color: var(--muted); border: 1px solid var(--line); margin-right: -1px; background: var(--surface); }
.pm-chain li:first-child { border-radius: 999px 0 0 999px; padding-left: 1rem; }
.pm-chain li:last-child { border-radius: 0 999px 999px 0; padding-right: 1rem; }
.pm-chain li.is-on { color: var(--ink); background: var(--copper-tint); border-color: var(--copper); position: relative; z-index: 1; }
.pm-chain li:not(.is-on) .pm-mk { fill: var(--m-c); }
.pm-chain b { font: 700 .74rem/1 var(--mono); background: var(--copper-text); color: var(--paper); border-radius: 999px; padding: .2rem .42rem; }
.pm-sites { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(340px, 100%), 1fr)); gap: 1rem; }
.pm-site-card { border: 1px solid var(--line); border-radius: var(--radius); padding: 1rem 1.1rem; background: var(--surface); scroll-margin-top: 6rem; transition: box-shadow .3s; min-width: 0; }
.pm-site-card.is-flash, .pm-site-card:target { box-shadow: 0 0 0 3px var(--focus); }
.pm-site-card header { display: flex; align-items: center; gap: .5rem; }
.pm-site-card h3 { font: 650 1.05rem/1.3 var(--serif); margin: 0; flex: 1; }
.pm-status { font-size: .72rem; padding: .18rem .5rem; border-radius: 999px; border: 1px solid var(--line); color: var(--ink-2); white-space: nowrap; }
.pm-status-czynna { border-color: var(--copper); color: var(--copper-text); }
.pm-site-meta { font-size: .85rem; color: var(--muted); margin: .35rem 0 .5rem; }
.pm-verified { font-size: .74rem; color: var(--muted); margin: .4rem 0 0; }
.pm-unverified { font-style: italic; }
.pm-note { font-size: .82rem; color: var(--ink-2); border-left: 3px solid var(--line); padding-left: .6rem; margin: .5rem 0; }
.pm-flows { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .5rem; }
.pm-flow-row { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr) auto; gap: .2rem .9rem; align-items: baseline; padding: .6rem .85rem; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); font-size: .88rem; }
.pm-dir { font-size: .7rem; text-transform: uppercase; letter-spacing: .06em; color: var(--copper-text); font-weight: 650; grid-row: span 2; }
.pm-flow-path, .pm-flow-what { grid-column: 2; }
.pm-flow-what { color: var(--muted); font-size: .82rem; }
.pm-flow-q { grid-column: 3; grid-row: 1; white-space: nowrap; font-variant-numeric: tabular-nums; }
.pm-flow-row .pm-cls { grid-column: 3; grid-row: 2; justify-self: end; }
.pm-links { padding-left: 1.1rem; }
.pm-links small { color: var(--muted); }
.pm-foot { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr)); gap: 1rem 2rem; margin: 2rem 0 1rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.pm-h3 { font: 650 .78rem/1.2 var(--sans); text-transform: uppercase; letter-spacing: .08em; color: var(--muted); margin: 0 0 .4rem; }
.pm-cite { font-family: var(--mono); font-size: .8rem; overflow-wrap: anywhere; }
@media (max-width: 900px) {
  .pm-explorer { grid-template-columns: minmax(0, 1fr); }
  .pm-side { order: 2; }
  .pm-list { max-height: 420px; }
}
@media (max-width: 640px) {
  .pm-flow-row { grid-template-columns: minmax(0, 1fr); }
  .pm-flow-row > * { grid-column: 1 !important; grid-row: auto !important; justify-self: start !important; }
  .pm-kpis { gap: .5rem 1.4rem; }
  .pm-kpis dt { font-size: 1.6rem; }
}
@media print { .pm-filters, .pm-tools, .pm-card, .pm-count { display: none !important; } .pm-list { max-height: none; } }
@media (forced-colors: active) { .pm-site .pm-mk, .pm-ico .pm-mk { fill: CanvasText; } .pm-site.is-hollow .pm-mk { fill: Canvas; stroke: CanvasText; } }

/* „Przepływ metali” ↔ „Podmioty”: spółki w analizie, odnośniki w tekście, role zakładów (synchronizacja 9.10.2026) */
.flow-spolki { margin-top: 2.4rem; border-top: 1px solid var(--line); padding-top: 1.2rem; }
.flow-spolki h2 { font-size: 1.35rem; }
.flow-spolki-mapa { margin: 0 0 1.2rem; }
.flow-spolki-lista { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); gap: .55rem 1.2rem; }
.flow-spolki-lista li { display: grid; gap: .1rem; padding: .45rem 0; border-bottom: 1px solid var(--line); font-size: .92rem; }
.flow-spolki-lista small { color: var(--muted); }
/* fakty analizy w rejestrze (D9): sekcja pod treścią i odnośnik z kafelka kluczowej liczby */
.flow-fakty { margin-top: 2.4rem; border-top: 1px solid var(--line); padding-top: 1.2rem; }
.flow-fakty h2 { font-size: 1.35rem; }
.flow-fakty-akcje { display: flex; flex-wrap: wrap; gap: .5rem; margin: .4rem 0 0; }
.flow-nota-ai { margin-top: 2.4rem; border-top: 1px solid var(--line); padding-top: 1.2rem; }
.flow-nota-ai h2 { font-size: 1.35rem; counter-increment: none; }
.flow-nota-ai h2::before { content: none; }
.flow-kpi-f { display: inline-block; margin-top: .5rem; font: 500 .78rem var(--mono); color: var(--muted); }
.pm-rola { display: block; font-size: .82rem; color: var(--ink-2); }
.pm-in { display: inline-block; margin-left: .4rem; padding: 0 .45rem; border-radius: 99px; font-size: .72rem; line-height: 1.5; background: var(--accent-soft, #E8EEF7); color: var(--ink); vertical-align: .1em; }
.prose a.pm-ref { text-decoration-style: dotted; text-underline-offset: .18em; }
.pm-card-sites { list-style: none; padding: 0; margin: .2rem 0 0; display: grid; gap: .25rem; font-size: .84rem; }
.pm-card-sites b { font-weight: 600; }
.pm-ids { display: flex; flex-wrap: wrap; gap: .3rem 1.1rem; font-size: .88rem; color: var(--ink-2); margin: .2rem 0 .6rem; }
.pm-ids code { font-size: .85rem; }
.pm-ids small { color: var(--muted); }

/* strona główna – przebudowa 10.10.2026: działy, liczby, pasek dla agentów, karty metali „Przepływu metali”,
   rejestr „Podmioty” z podglądem mapy, metoda i nota o AI. Tylko akcent i barwy neutralne (bez barw metali). */
@media (min-width: 900px) { .bento { grid-auto-rows: auto; } .hm-agents-strip { grid-column: 1 / -1; } }
.hm-doors { display: grid; gap: 10px; margin-top: 1.5rem; }
@media (min-width: 560px) { .hm-doors { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.hm-door { display: grid; gap: .2rem; padding: .8rem 1rem .85rem; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); color: var(--ink); text-decoration: none; transition: border-color .15s, transform .15s; }
.hm-door:hover { border-color: var(--copper); transform: translateY(-1px); }
.hm-door-t { display: flex; align-items: center; justify-content: space-between; gap: .5rem; font: 650 1.08rem/1.2 var(--serif); }
.hm-door-t svg { width: 18px; height: 18px; flex: none; fill: none; stroke: var(--copper-text); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.hm-door-d { font-size: .86rem; line-height: 1.4; color: var(--ink-2); }
.hm-kpi-list { list-style: none; padding: 0; margin: 0; }
@media (max-width: 899px) {
  .hm-kpi-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.2rem; }
  .hm-kpi-list .kpi-item:nth-last-child(-n+2) { border-bottom: 0; padding-bottom: 0; }
}
.hm-kpi-link { display: block; color: inherit; text-decoration: none; }
.hm-kpi-link:hover .kpi-label { color: var(--copper-text); text-decoration: underline; text-underline-offset: .18em; }
.hm-agents-strip { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; padding: .75rem 1.2rem; }
.hm-agents-strip .tile-label { margin: 0; }
.hm-agents-strip ul { list-style: none; display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; }
.hm-agents-strip ul a { display: inline-flex; align-items: center; min-height: 32px; padding: 0 .65rem; border: 1px solid var(--line-2); border-radius: 8px; background: var(--paper-2); text-decoration: none; }
.hm-agents-strip ul a:hover { border-color: var(--copper); }
.hm-agents-strip code { background: transparent; padding: 0; font-size: .84rem; color: var(--ink); }
.hm-agents-more { margin-left: auto; font-weight: 600; font-size: .9rem; }

.hm-sec .section-head, .hm-band .section-head { align-items: end; }
.hm-sec .section-head .eyebrow, .hm-band .section-head .eyebrow { margin: 0 0 .3rem; }
.hm-sec .section-head h2, .hm-band .section-head h2 { margin: 0 0 .7rem; }
.hm-sec .section-head > a, .hm-band .section-head > a { margin-bottom: .95rem; font-weight: 600; }
.hm-lead { color: var(--ink-2); max-width: 72ch; margin-bottom: 1.4rem; }
h3.hm-subhead { margin: 2.2rem 0 .8rem; }
.section-head.hm-subhead { margin-top: 2.2rem; }
.section-head.hm-subhead h3 { margin: 0 0 .8rem; }

.hm-chips-row { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .6rem; margin: 0 0 1.2rem; }
.hm-chips-l { font-size: .86rem; font-weight: 600; color: var(--muted); }
.hm-chips { list-style: none; display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; }
.hm-chip { display: inline-flex; align-items: center; gap: .35rem; min-height: 32px; padding: .2rem .75rem; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); color: var(--ink); text-decoration: none; font-size: .86rem; line-height: 1.2; }
.hm-chip b { font: 700 .78rem/1 var(--sans); color: var(--copper-text); }
.hm-chip:hover { border-color: var(--copper); }
.hm-n { font-size: .8rem; color: var(--muted); font-variant-numeric: tabular-nums; }

.hm-metals { display: grid; gap: 16px; }
@media (min-width: 860px) { .hm-metals { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.hm-metal { display: flex; flex-direction: column; min-width: 0; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.2rem 1.3rem 1.3rem; }
.hm-metal .flow-metal-name a { color: inherit; text-decoration: none; }
.hm-metal .flow-metal-name a:hover { color: var(--copper-text); text-decoration: underline; }
.hm-thumb { margin: 0 0 1.1rem; }
.hm-thumb a { display: block; background: #fff; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.hm-thumb img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: contain; }
.hm-thumb figcaption { margin-top: .4rem; font-size: .78rem; line-height: 1.4; color: var(--muted); }
.hm-kpi { margin: 0 0 1.1rem; padding: .1rem 0 .1rem .9rem; border-left: 3px solid var(--copper); }
.hm-kpi p { margin: 0; }
.hm-kpi .hm-kpi-l { margin-bottom: .3rem; font: 650 .72rem/1.2 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--copper-text); }
.hm-kpi-v { font: 650 1.9rem/1.05 var(--serif); letter-spacing: -.02em; color: var(--ink); font-variant-numeric: tabular-nums; }
.hm-kpi-v small { font: 600 .8rem var(--sans); letter-spacing: 0; color: var(--muted); }
.hm-kpi .hm-kpi-o { margin-top: .3rem; font-size: .92rem; line-height: 1.45; color: var(--ink-2); }
.hm-kpi .hm-kpi-s { margin-top: .35rem; font-size: .8rem; color: var(--muted); }
.hm-areas-h { margin: auto 0 .5rem; padding-top: .3rem; font: 650 .72rem/1.2 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.hm-areas { list-style: none; display: flex; flex-wrap: wrap; gap: .35rem; margin: 0; padding: 0; }
.hm-areas a { display: inline-flex; align-items: center; min-height: 32px; padding: .2rem .75rem; border: 1px solid var(--line); border-radius: 999px; background: var(--paper-2); color: var(--ink); text-decoration: none; font: 600 .84rem/1.2 var(--sans); }
.hm-areas a:hover { border-color: var(--copper); color: var(--copper-text); }

.hm-reg { display: grid; gap: 22px; }
@media (min-width: 900px) { .hm-reg { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); align-items: start; } }
.hm-map { margin: 0; }
.hm-map a { display: block; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: #343a41; }
.hm-map-svg { display: block; width: 100%; height: auto; }
.hm-map figcaption { margin-top: .5rem; font-size: .78rem; line-height: 1.45; color: var(--muted); }
/* „nocne światła” (12.10.2026): ciemne morze i ląd w obu motywach, zakłady jako jasne punkty z poświatą – barwy z akcentu */
.hm-morze { fill: #343a41; }
.hm-kraj { fill: #16191d; stroke: #262a30; stroke-width: .7; stroke-linejoin: round; }
.hm-mgla path { fill: none; stroke: #b4cff1; stroke-linecap: round; }
.hm-mgla .hm-p1 { stroke-width: 8; opacity: .2; } .hm-mgla .hm-p2 { stroke-width: 13; opacity: .34; }
.hm-mgla .hm-p3 { stroke-width: 20; opacity: .48; } .hm-mgla .hm-p4 { stroke-width: 28; opacity: .62; }
.hm-mgla .hm-p5 { stroke-width: 38; opacity: .78; }
.hm-pt { fill: none; stroke: #f2f7ff; stroke-width: 2.1; stroke-linecap: round; opacity: .95; }
.hm-map a:hover .hm-pt { opacity: 1; }
.hm-reg-kpis { margin-top: 0; }
.hm-note { font-size: .88rem; line-height: 1.5; color: var(--ink-2); }
.hm-chips-h { margin: 1.3rem 0 .5rem; font: 650 .72rem/1.2 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.hm-reg-cta { margin: 1.5rem 0 0; }

.hm-method-band .eyebrow { margin-bottom: .3rem; }
.hm-method-band h2 { margin-top: 0; }
.hm-method { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .8rem 1.4rem; margin-top: 1.4rem; }
.hm-method p { margin: 0; max-width: 72ch; color: var(--ink-2); }
.hm-method p.hm-method-links { display: flex; flex-wrap: wrap; gap: .5rem; }
.hm-series { margin-top: 1.4rem; }
.hm-series .hm-chips-h { margin-top: 0; }
.hm-series-list { list-style: none; display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; }
.hm-series-list li { display: inline-flex; align-items: center; gap: .45rem; min-height: 32px; padding: .2rem .75rem .2rem .3rem; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); font-size: .86rem; line-height: 1.2; }
.hm-series-list .tag { vertical-align: 0; }
.hm-series-list small { font-size: .8rem; color: var(--muted); }

/* wyszukiwarka w nagłówku strony (bez skryptu: przycisk główny – raporty, formaction – fakty, spółki i zakłady) */
.hm-find { display: grid; gap: .45rem; margin: 1.2rem 0 1.4rem; max-width: 46rem; }
.hm-find label { font-weight: 650; font-size: .95rem; }
.hm-find-row { display: flex; gap: .5rem; }
.hm-find input { flex: 1; min-width: 0; min-height: 46px; padding: .5rem 1rem; border: 1px solid var(--line-2); border-radius: 999px; background: var(--surface); color: var(--ink); font: 400 1.02rem var(--sans); }
.hm-find input:focus-visible { border-color: var(--focus); }
.hm-find-alt { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .5rem; font-size: .86rem; color: var(--muted); }
.hm-find-b { min-height: 32px; padding: .2rem .75rem; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); color: var(--ink); font: 600 .84rem/1.2 var(--sans); cursor: pointer; }
.hm-find-b:hover { border-color: var(--copper); color: var(--copper-text); }
.hm-find small { font-size: .78rem; line-height: 1.4; color: var(--muted); }
@media (max-width: 479px) { .hm-find-row { flex-direction: column; } .hm-find-row .btn { justify-content: center; } }

/* liczby kluczowe: wybór stały – fakty raportów i wskaźniki analiz przepływów z przedziałem 90% */
.hm-figs { list-style: none; display: grid; gap: 14px; margin: 0; padding: 0; }
@media (min-width: 560px) { .hm-figs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .hm-figs { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* telefon: liczby kluczowe i najnowsze raporty w poziomym pasku z przyciąganiem – sekcje „Przepływ metali”
   i „Podmioty” zaczynają się wcześniej; elementy w pasku są odnośnikami, więc klawiatura przewija go fokusem */
@media (max-width: 559px) {
  .hm-figs, .hm-latest-cards { display: grid; grid-auto-flow: column; grid-auto-columns: 84%; grid-template-columns: none; gap: 12px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; padding-bottom: .6rem; scrollbar-width: thin; }
  .hm-figs > *, .hm-latest-cards > * { scroll-snap-align: start; }
}
.hm-fact { display: flex; flex-direction: column; min-width: 0; }
.hm-fact .fact-value { font-variant-numeric: tabular-nums; }
.hm-fact-int { margin-top: .25rem; font-size: .8rem; color: var(--muted); font-variant-numeric: tabular-nums; }
.hm-fact-l { margin: .55rem 0 .3rem; font-size: .92rem; line-height: 1.45; color: var(--ink); text-decoration-color: var(--line-2); text-underline-offset: .18em; }
.hm-fact-l:hover { color: var(--copper-text); text-decoration-color: currentColor; }
.hm-fact-m { font-size: .8rem; color: var(--ink-2); }
.hm-fact .fact-id { margin-top: .15rem; overflow-wrap: anywhere; }
.hm-fact-src { margin-top: auto; padding-top: .55rem; font-size: .8rem; line-height: 1.4; color: var(--muted); }

/* obszary i metale */
.hm-am h2 { margin: 0 0 1rem; }
.hm-am .eyebrow { margin-bottom: .3rem; }
.hm-am-grid { display: grid; gap: 22px; }
@media (min-width: 900px) { .hm-am-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); align-items: start; } }
.hm-am-grid .hm-chips-h { margin-top: 0; }
.hm-arealist { list-style: none; display: grid; gap: 8px; margin: 0; padding: 0; }
@media (min-width: 480px) { .hm-arealist { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.hm-arealist li { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .35rem .4rem .35rem .85rem; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.hm-area-n { font-weight: 650; font-size: .92rem; }
.hm-area-l { display: flex; gap: .3rem; }
.hm-area-l a { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; min-height: 32px; padding: 0 .5rem; border: 1px solid var(--line-2); border-radius: 8px; background: var(--paper-2); color: var(--copper-text); font: 700 .82rem/1 var(--sans); text-decoration: none; }
.hm-area-l a:hover { border-color: var(--copper); }
.hm-mtab-w { overflow-x: auto; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.hm-mtab { width: 100%; border-collapse: collapse; font-size: .88rem; font-variant-numeric: tabular-nums; }
.hm-mtab th, .hm-mtab td { padding: .5rem .7rem; border-bottom: 1px solid var(--line); text-align: right; white-space: nowrap; }
.hm-mtab tr:last-child > * { border-bottom: 0; }
.hm-mtab thead th { font: 650 .72rem/1.25 var(--sans); letter-spacing: .04em; text-transform: uppercase; color: var(--muted); white-space: normal; vertical-align: bottom; }
.hm-mtab th[scope="row"], .hm-mtab thead th:first-child { text-align: left; font-weight: 600; }
.hm-mtab th[scope="row"] b { color: var(--copper-text); font-size: .8rem; margin-right: .2rem; }
.hm-mtab a { font-weight: 600; }
.hm-0 { color: var(--muted); }
@media (max-width: 479px) { .hm-mtab th, .hm-mtab td { padding: .45rem; } .hm-mtab thead th { font-size: .66rem; letter-spacing: 0; } }

/* ostatnie aktualizacje i kanały */
.hm-upd { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.hm-upd li { display: grid; gap: .15rem .9rem; padding: .6rem 0; border-bottom: 1px solid var(--line); }
@media (min-width: 640px) { .hm-upd li { grid-template-columns: 7.5rem minmax(0, 1fr); } }
.hm-upd time { font-size: .84rem; color: var(--muted); font-variant-numeric: tabular-nums; }
.hm-upd-b { min-width: 0; }
.hm-upd-k { display: inline-block; margin-right: .4rem; font: 650 .68rem/1 var(--sans); letter-spacing: .06em; text-transform: uppercase; color: var(--copper-text); }
.hm-upd-b a { font-weight: 600; }
.hm-upd-c { display: block; font-size: .82rem; color: var(--ink-2); overflow-wrap: anywhere; }
.hm-feeds { margin: .9rem 0 0; font-size: .88rem; color: var(--ink-2); }

/* analiza wyróżniona */
.hm-feat { display: grid; gap: 18px; margin: 0 0 18px; padding: 1.2rem 1.3rem; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
@media (min-width: 900px) { .hm-feat { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); align-items: start; } }
.hm-feat .hm-thumb { margin: 0; }
.hm-feat-l { margin: 0 0 .3rem; font: 650 .72rem/1.2 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--copper-text); }
.hm-feat h3 { margin: 0 0 .3rem; }
.hm-feat h3 a { color: inherit; text-decoration: none; }
.hm-feat h3 a:hover { color: var(--copper-text); text-decoration: underline; }
.hm-feat-m { margin: 0 0 .8rem; font-size: .82rem; color: var(--muted); }
.hm-feat-f { list-style: none; display: grid; gap: .55rem; margin: 0 0 .9rem; padding: 0; }
.hm-feat-f li { display: grid; gap: .1rem; padding: .1rem 0 .1rem .8rem; border-left: 3px solid var(--copper); font-size: .88rem; line-height: 1.4; }
.hm-feat-v { font: 650 1.35rem/1.1 var(--serif); font-variant-numeric: tabular-nums; }
.hm-feat-v small { font: 600 .78rem var(--sans); color: var(--muted); }
.hm-feat-f a { color: var(--ink); }
.hm-feat-a { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 .6rem; }
.hm-cite summary { cursor: pointer; font-weight: 600; font-size: .88rem; color: var(--copper-text); min-height: 32px; display: inline-flex; align-items: center; }
.hm-cite p { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: .4rem 0 0; padding: .6rem .7rem; border: 1px solid var(--line-2); border-radius: 10px; background: var(--paper-2); font-size: .84rem; overflow-wrap: anywhere; }

/* skąd liczby: fakty według klasy źródła, licencje, prywatność */
.hm-trust { margin: 0 0 1.4rem; }
.hm-trust .hm-chips-h { margin-top: 0; }
.hm-trust-k { display: grid; gap: 10px; margin: 0; }
@media (min-width: 760px) { .hm-trust-k { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.hm-trust-k > div { padding: .75rem 1rem; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.hm-trust-k dt { font-size: .86rem; line-height: 1.4; color: var(--ink-2); }
.hm-trust-k dd { margin: .35rem 0 0; font-weight: 650; font-variant-numeric: tabular-nums; }
.hm-cls { display: inline-flex; align-items: center; justify-content: center; width: 1.6rem; height: 1.6rem; margin-right: .3rem; border-radius: 6px; background: var(--navy-2); color: #fff; font: 700 .8rem/1 var(--mono); }
.hm-trust-n { margin: .8rem 0 0; font-size: .86rem; line-height: 1.5; color: var(--ink-2); max-width: 90ch; }

.hm-agents { display: grid; gap: 16px; }
@media (min-width: 860px) { .hm-agents { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); align-items: start; } }
.hm-code { display: grid; gap: .1rem; min-width: 0; }
.hm-code small { font-size: .76rem; color: var(--muted); }
@media print { .hm-agents-strip, .hm-find, .hm-doors svg, .hm-cite { display: none !important; } }
@media (forced-colors: active) { .hm-pts path { stroke: CanvasText; } .hm-kraj { stroke: CanvasText; } .hm-cls, .hm-area-l a, .hm-find-b { border: 1px solid CanvasText; } }

/* ——— Podmioty: grupy kapitałowe (etap E1 „Grupa → Spółka → Zakład”) ——— */
.pg-index-link { margin: .4rem 0 0; }
.pg-table th[scope="row"] a { font-weight: 650; }
.pg-basis { display: flex; align-items: center; gap: .35rem; margin-top: .2rem; font-weight: 400; color: var(--muted); font-size: .76rem; }
.pg-id { font: .78rem var(--mono); color: var(--ink-2); overflow-wrap: anywhere; }
.pg-head-dl { display: grid; gap: .45rem; margin: .4rem 0 1.1rem; max-width: 80ch; }
.pg-head-dl > div { display: grid; gap: .1rem; }
@media (min-width: 720px) { .pg-head-dl > div { grid-template-columns: 13rem minmax(0, 1fr); gap: .8rem; } }
.pg-head-dl dt { font-size: .8rem; font-weight: 600; color: var(--muted); }
.pg-head-dl dd { margin: 0; color: var(--ink-2); overflow-wrap: anywhere; }
.pg-head-dl dd small { color: var(--muted); }
.pg-head-dl .pm-cls { vertical-align: 1px; }
.pg-exc { display: block; }
.pg-totals td:first-child { white-space: nowrap; }
.pg-note { font-size: .84rem; color: var(--ink-2); max-width: 80ch; margin: .6rem 0 1.4rem; }
.pm-card-grp { font-size: .82rem; margin: -.2rem 0 .4rem; color: var(--ink-2); }

/* ——— diagram grupy kapitałowej: grupa → (spółka pośrednia) → spółki → zakłady (grupy.js) ——— */
.pgd { --pgd-ln: color-mix(in srgb, var(--muted) 60%, transparent); --pgd-hot: var(--copper-text); margin: 0 0 2rem; }
.pgd-kpis { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: .6rem 0 1.2rem; background: var(--line); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
@media (min-width: 720px) { .pgd-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)) minmax(0, 2.4fr); } }
.pgd-kpis > div { background: var(--surface); padding: .7rem .9rem; min-width: 0; display: flex; flex-direction: column-reverse; justify-content: flex-end; gap: .2rem; }
.pgd-kpis dt { font: 600 .74rem/1.3 var(--sans); color: var(--muted); }
.pgd-kpis dt small { font-weight: 400; }
.pgd-kpis dd { margin: 0; font: 650 1.45rem/1.1 var(--serif); color: var(--ink); }
.pgd-kpis .pgd-kpi-sym { font: 650 1rem/1.5 var(--sans); }
.pgd-kpi-cap { grid-column: 1 / -1; }
@media (min-width: 720px) { .pgd-kpi-cap { grid-column: auto; } }
.pgd-kpis .pgd-kpi-cap dd { font: 400 .86rem/1.4 var(--sans); }
.pgd-kpi-cap ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .1rem; }
.pgd-kpi-cap b { font: 650 1rem var(--serif); }
.pgd-kpi-m { display: inline-block; min-width: 5.5rem; color: var(--ink-2); }
.pgd-kpi-cap a { font-size: .8rem; }
.pgd-tools { display: flex; flex-wrap: wrap; align-items: end; gap: .6rem .8rem; padding: .8rem; margin: 0 0 1rem; background: var(--paper-2); border: 1px solid var(--line); border-radius: var(--radius); }
.pgd-tools[hidden] { display: none; }
.pgd-f { display: flex; flex-direction: column; gap: .2rem; font-size: .78rem; font-weight: 600; color: var(--ink-2); min-width: 0; flex: 1 1 10rem; }
.pgd-f-q { flex: 2 1 14rem; }
.pgd-f input, .pgd-f select { font: inherit; font-weight: 400; font-size: .92rem; padding: .45rem .6rem; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); color: var(--ink); min-width: 0; width: 100%; }
.pgd-btns { display: flex; gap: .4rem; flex-wrap: wrap; }
.pgd-count { flex-basis: 100%; margin: 0; font-size: .8rem; color: var(--muted); }
.pgd-canvas { position: relative; }
.pgd-links { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.pgd-links path { fill: none; stroke: var(--pgd-ln); stroke-width: 1.5; stroke-linecap: round; }
.pgd-links path.is-hot { stroke: var(--pgd-hot); stroke-width: 2.6; }
.pgd-tree, .pgd-sub { list-style: none; margin: 0; padding: 0; }
.pgd-item { position: relative; min-width: 0; }
.pgd-item.is-off { display: none; }
/* węzeł */
.pgd-node { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: start; gap: .2rem .6rem; padding: .7rem .75rem .6rem;
  border: 1px solid var(--line); border-radius: 12px; background: var(--surface); transition: border-color .15s, box-shadow .15s; scroll-margin-top: 6rem; }
.pgd-node-group { border: 1.5px solid var(--copper); background: var(--copper-tint); max-width: 40rem; padding: .85rem .9rem; }
.pgd-node-head { border-color: var(--copper); }
.pgd-node-parent { border-style: dashed; background: var(--paper-2); }
.pgd-node-site { background: var(--paper-2); padding: .55rem .65rem; grid-template-columns: auto minmax(0, 1fr); }
.pgd-node-site.is-hollow { background: var(--surface); border-style: dashed; }
.pgd-ico { width: 22px; height: 22px; fill: none; stroke: var(--copper-text); stroke-width: 1.6; stroke-linejoin: round; stroke-linecap: round; margin-top: .1rem; }
.pgd-node-site .pgd-ico { width: 18px; height: 18px; }
.pgd-node-site.is-hollow .pgd-ico { stroke: var(--muted); }
.pgd-body { display: flex; flex-direction: column; gap: .12rem; min-width: 0; }
.pgd-kind { display: flex; align-items: center; gap: .3rem; flex-wrap: wrap; font: 600 .68rem/1.3 var(--sans); letter-spacing: .03em; text-transform: uppercase; color: var(--muted); }
.pgd-kind .pm-sym { text-transform: none; letter-spacing: 0; }
.pgd-name { font: 650 1rem/1.25 var(--serif); color: var(--ink); overflow-wrap: anywhere; }
a.pgd-name { color: var(--ink); text-decoration-color: var(--line); }
a.pgd-name:hover { text-decoration-color: var(--copper); }
.pgd-node-group .pgd-name { font-size: 1.2rem; }
.pgd-node-site .pgd-name { font-size: .92rem; }
.pgd-meta { display: flex; flex-wrap: wrap; gap: .05rem .7rem; font-size: .76rem; color: var(--muted); overflow-wrap: anywhere; }
.pgd-meta code { font-size: .72rem; }
.pgd-num { display: flex; flex-wrap: wrap; gap: .05rem .8rem; font-size: .78rem; color: var(--ink-2); }
.pgd-state { grid-column: 2; display: flex; gap: .35rem; align-items: center; flex-wrap: wrap; }
.pgd-badge { font: 650 .8rem/1 var(--mono); color: var(--copper-text); white-space: nowrap; align-self: center; }
.pgd-badge span { font: 400 .72rem var(--sans); color: var(--muted); }
.pgd-tog { grid-column: 3; justify-self: end; display: inline-grid; place-items: center; width: 28px; height: 28px; margin-top: -.1rem; border: 1px solid var(--line); border-radius: 8px;
  background: var(--surface); color: var(--ink-2); cursor: pointer; }
.pgd-tog svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; transition: transform .15s; }
.pgd-tog[aria-expanded="false"] svg { transform: rotate(-90deg); }
.pgd-tog:hover { border-color: var(--copper); }
.pgd-node-co { grid-template-columns: auto minmax(0, 1fr) auto auto; }
.pgd-node-co .pgd-badge { grid-column: 3; grid-row: 1; }
.pgd-node-co .pgd-tog { grid-column: 4; grid-row: 1; }
/* oznaczenie relacji na łączniku (górna krawędź węzła) */
.pgd-rel { position: absolute; top: -.62rem; left: .7rem; padding: .08rem .38rem; border-radius: 999px; border: 1px dashed var(--pgd-ln); background: var(--paper);
  font: 600 .62rem/1.2 var(--mono); color: var(--muted); white-space: nowrap; }
.pgd-rel-a { border: 1px solid var(--copper-text); color: var(--copper-text); }
/* łączniki pionowe z wcięciem (spółki zależne, zakłady; na telefonie także spółki pod grupą) */
.pgd-sub { margin: .7rem 0 0 .95rem; padding-left: 1.05rem; }
.pgd-sub > .pgd-item { margin: .85rem 0 0; }
.pgd-sub > .pgd-item::before { content: ""; position: absolute; left: -1.05rem; top: -.85rem; width: .95rem; height: 2.15rem; border-left: 1.5px solid var(--pgd-ln);
  border-bottom: 1.5px solid var(--pgd-ln); border-bottom-left-radius: 9px; }
.pgd-sub > .pgd-item:not(.pgd-last)::after { content: ""; position: absolute; left: -1.05rem; top: 1rem; bottom: -.9rem; border-left: 1.5px solid var(--pgd-ln); }
.pgd-sub[hidden] { display: none; }
.pgd-roots { margin-top: 1rem; }
/* ścieżka wyróżniona (zakład → spółka → grupa) */
.pgd-item.is-path > .pgd-node, .pgd-node-group.is-path { border-color: var(--pgd-hot); box-shadow: 0 0 0 2px var(--copper-tint); }
.pgd-sub > .pgd-item.is-path::before { border-color: var(--pgd-hot); border-width: 2px; }
.pgd-item-site.is-flash > .pgd-node, .pgd-item-site:target > .pgd-node { box-shadow: 0 0 0 3px var(--focus); }
.pgd-none { margin-top: 1rem; }
/* komputer: spółki pod grupą w rzędach (zawijanych), łączniki ortogonalne rysuje grupy.js */
@media (min-width: 900px) {
  .pgd.is-js .pgd-roots { display: grid; grid-template-columns: repeat(auto-fill, minmax(17.5rem, 1fr)); align-items: start; gap: 2.6rem 1.1rem; margin: 2.4rem 0 0 1.9rem; padding: 0; }
  .pgd.is-js .pgd-roots > .pgd-item { margin: 0; }
  .pgd.is-js .pgd-roots > .pgd-item::before, .pgd.is-js .pgd-roots > .pgd-item::after { display: none; }
}
@media (forced-colors: active) { .pgd-node { border: 1px solid CanvasText; } .pgd-links path { stroke: CanvasText; } .pgd-ico { stroke: CanvasText; } }
@media print {
  .pgd-tools, .pgd-tog, .pgd-links { display: none !important; }
  .pgd-sub[hidden] { display: block !important; }
  .pgd-item.is-off { display: block !important; }
  .pgd .pgd-roots { display: block !important; margin: 1rem 0 0 .95rem !important; padding-left: 1.05rem !important; }
  .pgd .pgd-roots > .pgd-item { margin: .85rem 0 0 !important; }
  .pgd .pgd-roots > .pgd-item::before, .pgd .pgd-roots > .pgd-item:not(.pgd-last)::after { display: block !important; }
  .pgd-node { break-inside: avoid; box-shadow: none !important; }
}

/* ——— ścieżka własności na karcie spółki: spółka → rodzic → grupa → właściciel ostateczny ——— */
.pgo { --pgd-ln: color-mix(in srgb, var(--muted) 60%, transparent); margin: .2rem 0 1.1rem; }
.pgo ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1.6rem; }
@media (min-width: 900px) { .pgo ol { flex-direction: row; flex-wrap: wrap; align-items: stretch; gap: 1.3rem 4.6rem; } }
.pgo-step { position: relative; min-width: 0; }
.pgo-node { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .1rem .55rem; align-items: start; padding: .6rem .75rem; height: 100%; box-sizing: border-box;
  border: 1px solid var(--line); border-radius: 12px; background: var(--surface); max-width: 22rem; }
.pgo-group .pgo-node { border: 1.5px solid var(--copper); background: var(--copper-tint); }
.pgo-ultimate .pgo-node { border-style: dashed; }
.pgo-node .pgd-ico { grid-row: span 3; }
.pgo-node small { font: 600 .66rem/1.3 var(--sans); letter-spacing: .03em; text-transform: uppercase; color: var(--muted); }
.pgo-node b, .pgo-node .pgo-name { font: 650 .95rem/1.25 var(--serif); color: var(--ink); overflow-wrap: anywhere; }
.pgo-node code { font-size: .7rem; color: var(--muted); overflow-wrap: anywhere; }
/* łącznik do poprzedniego węzła z oznaczeniem źródła */
.pgo-step + .pgo-step::before { content: ""; position: absolute; left: 1.4rem; top: -1.6rem; height: 1.6rem; border-left: 1.5px solid var(--pgd-ln); }
.pgo-rel { position: absolute; left: 2rem; top: -1.3rem; font: 600 .62rem/1.2 var(--mono); color: var(--muted); white-space: nowrap; }
.pgo-rel-a { color: var(--copper-text); }
@media (min-width: 900px) {
  .pgo-step + .pgo-step::before { left: -4.6rem; top: 50%; height: 0; width: 4.6rem; border-left: 0; border-top: 1.5px solid var(--pgd-ln); }
  .pgo-rel { left: -4.3rem; width: 4rem; text-align: center; top: calc(50% - 1.05rem); }
}
.pgo-note { display: block; margin-top: .5rem; font-size: .76rem; color: var(--muted); max-width: 80ch; }
@media (forced-colors: active) { .pgo-node { border: 1px solid CanvasText; } }

/* ——— grupy kapitałowe na poziomie TOP 5 (12.10.2026): katalog grup, karta z blokami, przełącznik widoku w indeksie.
   Barwy: akcent (--copper, --copper-text, --copper-tint) i neutralne; bez barw metali; słupki jako <rect> (CSP). ——— */
/* katalog: filtry */
.pgl-filters { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 12.5rem), 1fr)); gap: .7rem .9rem; align-items: end; padding: .9rem 1rem;
  margin: 0 0 1rem; background: var(--paper-2); border: 1px solid var(--line); border-radius: var(--radius); }
.pgl-f { display: flex; flex-direction: column; gap: .25rem; min-width: 0; font-size: .8rem; font-weight: 600; color: var(--ink-2); }
.pgl-f-q { grid-column: span 2; }
@media (max-width: 560px) { .pgl-f-q { grid-column: auto; } }
.pgl-f input, .pgl-f select { width: 100%; min-width: 0; min-height: 40px; padding: .45rem .6rem; border: 1px solid var(--line); border-radius: 10px; background: var(--surface);
  color: var(--ink); font: 400 .92rem var(--sans); }
.pgl-f:empty { display: none; }
.pgl-btns { flex-direction: row; flex-wrap: wrap; gap: .4rem; }
.pgl-results[aria-busy="true"] { opacity: .55; transition: opacity .15s; }
.pgl-bar { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .3rem 1rem; align-items: baseline; margin: 0 0 .6rem; }
.pgl-bar p { margin: 0; font-size: .88rem; color: var(--ink-2); }
.pgl-count b { font-size: 1rem; color: var(--ink); }
.pgl-link a { font-size: .84rem; }
/* katalog: wykres przeglądowy (słupki poziome, etykieta = odnośnik do karty) */
.pgl-chart { margin: 0 0 1.4rem; padding: 1rem 1.1rem .8rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.pgl-chart .pm-h3 { margin-bottom: .7rem; text-transform: none; letter-spacing: 0; font: 650 1.05rem/1.3 var(--serif); color: var(--ink); }
.pgl-chart .pm-h3 span { font: 400 .85rem var(--sans); color: var(--muted); }
.pgl-bars { list-style: none; margin: 0; padding: 0; display: grid; gap: .3rem; }
.pgl-bars li { display: grid; grid-template-columns: minmax(0, 15rem) minmax(0, 1fr) 6.5rem; gap: .2rem .7rem; align-items: center; font-size: .86rem; }
.pgl-bars a { color: var(--ink); text-decoration-color: var(--line); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pgl-bars a:hover { text-decoration-color: var(--copper); }
.pgl-barsvg { display: block; width: 100%; height: 14px; }
.pgl-track { fill: var(--line-2); }
.pgl-fill { fill: var(--copper); }
.pgl-bars li:hover .pgl-fill, .pgl-bars li:focus-within .pgl-fill { fill: var(--copper-text); }
.pgl-val { font: 650 .86rem/1.2 var(--sans); font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.pgl-val small { font-weight: 400; color: var(--muted); }
@media (max-width: 640px) {
  .pgl-bars li { grid-template-columns: minmax(0, 1fr) auto; }
  .pgl-bars a { grid-column: 1; }
  .pgl-val { grid-column: 2; grid-row: 1; }
  .pgl-barsvg { grid-column: 1 / -1; }
}
/* katalog: wiersze grup (mała wielokrotność: pasek ogniw w stałych pozycjach) */
.pgl-legend { display: flex; flex-wrap: wrap; gap: .25rem .9rem; align-items: center; margin: 0 0 .5rem; font-size: .76rem; color: var(--muted); }
.pgl-legend > span { display: inline-flex; align-items: center; gap: .25rem; }
.pgl-list { list-style: none; margin: 0 0 1.4rem; padding: 0; border-top: 1px solid var(--line); }
.pgl-row { display: grid; grid-template-columns: 2.2rem minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 15rem); gap: .5rem 1.1rem; align-items: start; padding: .85rem .2rem;
  border-bottom: 1px solid var(--line); }
.pgl-row:hover { background: color-mix(in srgb, var(--copper-tint) 60%, transparent); }
.pgl-rank { font: 650 .95rem/1.6 var(--mono); color: var(--muted); text-align: right; }
.pgl-main { min-width: 0; }
.pgl-name { margin: 0 0 .2rem; font: 650 1.08rem/1.25 var(--serif); }
.pgl-name a { color: var(--ink); text-decoration-color: var(--line); }
.pgl-name a:hover { text-decoration-color: var(--copper); }
.pgl-meta { display: flex; flex-wrap: wrap; gap: .15rem .8rem; align-items: center; margin: 0 0 .15rem; font-size: .78rem; color: var(--muted); }
.pgl-meta .pg-basis { margin: 0; font-size: .78rem; }
.pgl-owner { margin: 0; font-size: .8rem; color: var(--ink-2); overflow-wrap: anywhere; }
.pgl-nums { display: flex; flex-wrap: wrap; gap: .3rem 1.2rem; margin: 0; }
.pgl-nums div { display: flex; flex-direction: column-reverse; }
.pgl-nums dt { font-size: .72rem; color: var(--muted); }
.pgl-nums dd { margin: 0; font: 650 1.2rem/1.2 var(--serif); font-variant-numeric: tabular-nums; }
.pgl-nums dd small { font: 400 .74rem var(--sans); color: var(--muted); }
.pgl-cap dd { color: var(--copper-text); }
.pgl-side { display: flex; flex-direction: column; gap: .4rem; min-width: 0; }
.pgl-metals { margin: 0; display: flex; flex-wrap: wrap; gap: .25rem .4rem; }
.pgl-metals .pm-sym { padding: .15rem .3rem; border: 1px solid var(--line); border-radius: 5px; background: var(--surface); }
.pgl-metals { flex-wrap: nowrap; overflow: hidden; }
.pgl-more { color: var(--muted); }
.pgl-chain { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 3px; }
.pgl-chain li { display: inline-flex; align-items: center; gap: .3rem; padding: .18rem .5rem; border-radius: 999px; font: 500 .74rem/1.2 var(--sans);
  color: var(--ink); background: var(--paper-2); border: 1px solid var(--line-2); white-space: nowrap; }
.pgl-chain b { font-weight: 700; font-variant-numeric: tabular-nums; }
.pgl-chain .pm-ico { width: 11px; height: 11px; }
.pgl-chain .pgl-l1 { background: color-mix(in srgb, var(--copper) 10%, var(--surface)); }
.pgl-chain .pgl-l2 { background: color-mix(in srgb, var(--copper) 18%, var(--surface)); }
.pgl-chain .pgl-l3 { background: color-mix(in srgb, var(--copper) 28%, var(--surface)); }
.pgl-chain .pgl-l4 { background: color-mix(in srgb, var(--copper) 38%, var(--surface)); border-color: var(--copper); }
@media (max-width: 900px) {
  .pgl-row { grid-template-columns: 1.8rem minmax(0, 1fr) minmax(0, 13rem); }
  .pgl-nums { grid-column: 2; }
  .pgl-side { grid-column: 3; grid-row: 1 / span 2; }
}
@media (max-width: 600px) {
  .pgl-row { grid-template-columns: 1.6rem minmax(0, 1fr); }
  .pgl-nums, .pgl-side { grid-column: 2; grid-row: auto; }
}
/* karta grupy: „W skrócie” */
.pgb { margin: .2rem 0 1.1rem; padding: .85rem 1.05rem; max-width: 80ch; border-left: 3px solid var(--copper); background: var(--copper-tint); border-radius: 0 12px 12px 0; }
.pgb .pm-h3 { margin-bottom: .3rem; color: var(--copper-text); }
.pgb-text { margin: 0; font: 400 1.04rem/1.55 var(--serif); color: var(--ink); }
.pgb-note { margin: .4rem 0 0; font-size: .74rem; color: var(--muted); }
/* karta grupy: pokrycie łańcucha */
.pgc { list-style: none; margin: 0 0 1.6rem; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .5rem; }
.pgc-step { position: relative; display: flex; flex-direction: column; gap: .3rem; min-width: 0; padding: .7rem .75rem .75rem; border: 1px dashed var(--line); border-radius: 12px;
  background: var(--surface); color: var(--muted); }
.pgc-step.is-on { border: 1px solid var(--copper); background: var(--copper-tint); color: var(--ink); }
.pgc-step:not(:last-child)::after { content: ""; position: absolute; right: -.42rem; top: 1.1rem; width: .5rem; border-top: 1.5px solid var(--line); }
.pgc-head { display: flex; align-items: center; gap: .35rem; font: 650 .74rem/1.25 var(--sans); letter-spacing: .03em; text-transform: uppercase; }
.pgc-step:not(.is-on) .pm-mk { fill: var(--m-c); }
.pgc-n { font-size: .82rem; color: var(--ink-2); }
.pgc-n b { font: 650 1.5rem/1 var(--serif); color: var(--ink); margin-right: .15rem; }
.pgc-none { font-size: .78rem; color: var(--muted); }
.pgc-stages { list-style: none; margin: 0; padding: 0; display: grid; gap: .1rem; font-size: .74rem; color: var(--ink-2); line-height: 1.3; }
.pgc-stages li { display: flex; justify-content: space-between; gap: .4rem; }
.pgc-stages span { font-weight: 650; font-variant-numeric: tabular-nums; }
@media (max-width: 1000px) { .pgc { grid-template-columns: repeat(3, minmax(0, 1fr)); } .pgc-step::after { display: none; } }
@media (max-width: 520px) { .pgc { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* karta grupy: dwa bloki obok siebie (państwa | analizy; jakość | podobne) */
.pgx-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr)); gap: 1rem; margin: 0 0 1.6rem; align-items: start; }
.pgx-card { min-width: 0; padding: 1rem 1.1rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.pgx-h { margin: 0 0 .3rem; font-size: 1.2rem; }
.pgx-lead { margin: 0 0 .7rem; font-size: .82rem; color: var(--muted); }
.pgk { width: 100%; border-collapse: collapse; font-size: .88rem; }
.pgk th, .pgk td { padding: .22rem .4rem .22rem 0; border-bottom: 1px solid var(--line-2); text-align: left; font-weight: 400; vertical-align: middle; }
.pgk th[scope="row"] { white-space: nowrap; color: var(--ink); }
.pgk td.num { width: 3rem; text-align: right; font-weight: 650; font-variant-numeric: tabular-nums; padding-right: .7rem; }
.pgk-bar { width: 55%; }
.pgk-bar svg { display: block; width: 100%; height: 12px; }
.pga { list-style: none; margin: 0 0 .6rem; padding: 0; display: grid; gap: .45rem; font-size: .9rem; }
.pga li { display: grid; gap: .05rem; padding-left: .7rem; border-left: 3px solid var(--copper); }
.pga small { font-size: .78rem; color: var(--muted); }
.pga-area li { border-left-color: var(--line); font-size: .86rem; }
.pga-h3 { margin: .8rem 0 .4rem; }
.pgq-dl { display: grid; gap: .55rem; margin: 0; }
.pgq-dl > div { display: grid; gap: .1rem; }
@media (min-width: 560px) { .pgq-dl > div { grid-template-columns: 11rem minmax(0, 1fr); gap: .8rem; } }
.pgq-dl dt { font-size: .78rem; font-weight: 600; color: var(--muted); }
.pgq-dl dd { margin: 0; font-size: .88rem; color: var(--ink-2); overflow-wrap: anywhere; }
.pgq-dl dd small { color: var(--muted); }
.pgq-cls { display: flex; flex-wrap: wrap; gap: .3rem .9rem; }
.pgq-cls > span { display: inline-flex; align-items: center; gap: .3rem; font-variant-numeric: tabular-nums; }
.pgq-bar { display: block; width: 100%; max-width: 18rem; height: 8px; margin-top: .35rem; border-radius: 4px; }
.pgq-a { fill: var(--copper-text); }
.pgq-b { fill: color-mix(in srgb, var(--copper) 45%, var(--surface)); }
.pgq-c { fill: var(--line); }
.pgq-st { display: inline-block; margin-right: .8rem; }
.pgs { list-style: none; margin: 0 0 .6rem; padding: 0; display: grid; gap: .6rem; }
.pgs li { display: grid; gap: .1rem; padding: .55rem .7rem; border: 1px solid var(--line-2); border-radius: 10px; background: var(--paper-2); }
.pgs-name { font: 650 .98rem/1.25 var(--serif); color: var(--ink); }
.pgs-n { font-size: .8rem; color: var(--ink-2); }
.pgs-why { font-size: .76rem; color: var(--muted); }
.pgs-note { margin: 0; font-size: .74rem; }
/* karta grupy: mapa – zakłady grupy wyraźniej, pozostałe ciszej */
.pm-mapwrap-grp .pm-site.is-dim .pm-mk { opacity: .45; }
.pm-mapwrap-grp .pm-site.is-focus .pm-mk { stroke-width: 1.8px; }
@media print {
  .pgl-filters, .pgl-link, .pgb-note { display: none !important; }
  .pgx-card, .pgc-step, .pgl-row, .pgl-chart { break-inside: avoid; }
  .pgl-fill, .pgq-a { fill: #444 !important; }
  .pgl-track { fill: #e6e6e6 !important; }
}
@media (forced-colors: active) {
  .pgl-fill, .pgq-a, .pgq-b { fill: CanvasText; }
  .pgl-track, .pgq-c { fill: Canvas; }
  .pgc-step, .pgx-card, .pgl-chain li { border: 1px solid CanvasText; }
}
/* indeks „Podmioty”: przełącznik widoku „Spółki | Grupy kapitałowe” i ranking grup z wyborem na mapie */
.pm-seg { display: inline-flex; margin: 0 0 1rem; padding: 3px; border: 1px solid var(--line); border-radius: 999px; background: var(--paper-2); max-width: 100%; }
.pm-seg a { display: inline-flex; align-items: center; gap: .45rem; min-height: 38px; padding: .3rem 1rem; border-radius: 999px; color: var(--ink-2); text-decoration: none;
  font: 600 .9rem/1.2 var(--sans); white-space: nowrap; }
.pm-seg a span { font: 650 .74rem/1 var(--mono); color: var(--muted); }
.pm-seg a:hover { color: var(--ink); background: var(--copper-tint); }
.pm-seg a[aria-current="page"] { background: var(--btn-bg); color: var(--btn-ink); }
.pm-seg a[aria-current="page"] span { color: var(--btn-ink); opacity: .8; }
.pm-pane { display: flex; flex-direction: column; gap: .6rem; min-width: 0; }
.pm-pane[hidden] { display: none; }
.pmg-lead { margin: 0; font-size: .82rem; color: var(--ink-2); }
/* kolejność list w indeksie: A–Z albo według liczby zakładów; w kolejności A–Z numer pozycji w rankingu grup nie ma sensu */
.pm-listhead { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .4rem .75rem; }
.pm-sort { display: inline-flex; align-items: center; gap: 2px; padding: 2px; border: 1px solid var(--line); border-radius: 999px; background: var(--paper-2); max-width: 100%; }
.pm-sort-l { padding: 0 .35rem 0 .55rem; font-size: .72rem; color: var(--muted); }
.pm-sort a { display: inline-flex; align-items: center; min-height: 28px; padding: .1rem .65rem; border-radius: 999px; font-size: .78rem; color: var(--ink-2); text-decoration: none; white-space: nowrap; }
.pm-sort a:hover { color: var(--ink); background: var(--copper-tint); }
.pm-sort a[aria-current="true"] { background: var(--btn-bg); color: var(--btn-ink); }
.pmg-list[data-sort="az"] .pmg-rank { display: none; }
@media print { .pm-sort { display: none !important; } }
@media (forced-colors: active) { .pm-sort a[aria-current="true"] { border: 2px solid CanvasText; } }
.pmg-list li { gap: .25rem; }
.pmg-list li.is-sel { background: var(--copper-tint); box-shadow: inset 3px 0 0 var(--copper-text); }
.pmg-row { display: flex; align-items: baseline; gap: .45rem; min-width: 0; }
.pmg-row a { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.pmg-rank { font: 650 .72rem/1 var(--mono); color: var(--muted); min-width: 1.6rem; text-align: right; }
.pmg-pick { flex: none; min-height: 28px; padding: .15rem .55rem; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); color: var(--copper-text);
  font: 600 .74rem/1.2 var(--sans); cursor: pointer; }
.pmg-pick:hover { border-color: var(--copper); }
.pmg-pick[aria-pressed="true"] { background: var(--copper-text); border-color: var(--copper-text); color: var(--paper); }
.pmg-pick[hidden] { display: none; }
.pmg-bar { display: block; width: 100%; height: 4px; margin-top: .1rem; }
.pmg-all { margin: 0; font-size: .86rem; font-weight: 600; }
.pm-card-foot { flex-wrap: wrap; }
.pm-svg.has-grp .pm-site:not(.is-grp) .pm-mk { fill: var(--m-c); stroke: var(--m-n); }
.pm-svg.has-grp .pm-site.is-grp .pm-mk { fill: var(--ink); stroke: var(--paper); }
@media print { .pm-seg, .pmg-pick { display: none !important; } }
@media (forced-colors: active) { .pm-seg a[aria-current="page"] { border: 2px solid CanvasText; } }

/* karta spółki: ścieżka własności spójna z kartą grupy, inne spółki grupy jako karty */
.pgo-entity .pgo-node { border-color: var(--ink-2); }
.pgo-you { display: inline-block; margin-left: .3rem; padding: 0 .4rem; border-radius: 999px; background: var(--paper-2); font: 600 .62rem/1.5 var(--sans); letter-spacing: 0;
  text-transform: none; color: var(--ink-2); }
.pgo-size { font-size: .74rem; color: var(--ink-2); }
.pgr { list-style: none; margin: 0 0 .6rem; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); gap: .6rem; }
.pgr li { display: grid; gap: .1rem; padding: .6rem .75rem; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.pgr a { font: 650 .95rem/1.25 var(--serif); color: var(--ink); }
.pgr small { font-size: .78rem; color: var(--muted); }
.pgr-lead { font-size: .82rem; color: var(--muted); margin: 0 0 .6rem; }

/* ——— „Podmioty”: wiersz „Stan zbioru” (wersja, weryfikacja, zmiany) i strona „Zmiany w zbiorze” (decyzja D12) ——— */
.pm-asof b { font-weight: 600; color: var(--ink-2); }
@media (min-width: 560px) { .pm-asof-i { white-space: nowrap; } }
.pmz-list { list-style: none; margin: 0; padding: 0 0 0 1.4rem; border-left: 2px solid var(--line); }
.pmz-v { position: relative; padding: 0 0 2rem; scroll-margin-top: 5rem; }
.pmz-v::before { content: ""; position: absolute; left: calc(-1.4rem - 7px); top: .45rem; width: 12px; height: 12px; border-radius: 50%;
  background: var(--paper); border: 2px solid var(--copper); box-sizing: border-box; }
.pmz-v-cur::before { background: var(--copper); }
.pmz-h { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .8rem; }
.pmz-t { font: 650 1.12rem/1.3 var(--sans); margin: 0; display: flex; flex-wrap: wrap; gap: .1rem .7rem; align-items: baseline; }
.pmz-t a { color: var(--ink); text-decoration: none; }
.pmz-t a:hover { text-decoration: underline; text-underline-offset: 3px; }
.pmz-t time { font: 400 .92rem var(--sans); color: var(--muted); }
.pmz-tag { font: 600 .68rem/1 var(--sans); letter-spacing: .07em; text-transform: uppercase; color: var(--copper-text);
  border: 1px solid var(--copper); border-radius: 999px; padding: .28rem .55rem; }
.pmz-sum { margin: .45rem 0 .35rem; max-width: 46rem; color: var(--ink-2); }
.pmz-note { margin: 0 0 .5rem; font-size: .9rem; color: var(--muted); max-width: 46rem; }
.pmz-note b { color: var(--ink-2); font-weight: 600; }
.pmz-counts { display: flex; flex-wrap: wrap; gap: .3rem 1.3rem; margin: .55rem 0 .5rem; font-size: .84rem; }
.pmz-counts div { display: flex; gap: .35rem; align-items: baseline; }
.pmz-counts dt { color: var(--muted); }
.pmz-counts dd { margin: 0; font-variant-numeric: tabular-nums; }
.pmz-counts b { font-weight: 600; color: var(--ink); }
.pmz-before { color: var(--muted); }
.pmz-diff { color: var(--copper-text); font-weight: 600; }
.pmz-det { margin-top: .2rem; }
.pmz-det > summary, .pmz-older > summary { cursor: pointer; display: inline-flex; align-items: center; gap: .45rem; min-height: 2.25rem;
  list-style: none; font: 600 .86rem var(--sans); color: var(--copper-text); }
.pmz-det > summary::-webkit-details-marker, .pmz-older > summary::-webkit-details-marker { display: none; }
.pmz-det > summary::before, .pmz-older > summary::before { content: ""; width: .42rem; height: .42rem; border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor; transform: rotate(-45deg); transition: transform .15s; }
.pmz-det[open] > summary::before, .pmz-older[open] > summary::before { transform: rotate(45deg); }
.pmz-det > summary span { color: var(--muted); font-weight: 500; }
.pmz-det[open] { padding: .1rem 0 .4rem 1rem; border-left: 1px solid var(--line); }
.pmz-sh { font: 650 .76rem/1.2 var(--sans); text-transform: uppercase; letter-spacing: .08em; color: var(--muted); margin: .9rem 0 .35rem; }
.pmz-sh span { margin-left: .3rem; color: var(--ink-2); letter-spacing: 0; }
.pmz-items { margin: 0; padding-left: 1.1rem; font-size: .9rem; max-width: 52rem; }
.pmz-items li { margin: .12rem 0; overflow-wrap: anywhere; }
.pmz-items small { color: var(--muted); font-size: .84rem; }
.pmz-more { list-style: none; margin-left: -1.1rem !important; color: var(--muted); font-size: .85rem; }
.pmz-older { margin: 0 0 1.5rem; }
.pmz-older > summary { padding: .4rem .9rem; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); margin-bottom: 1rem; }
.pmz-older > summary:hover { border-color: var(--copper); }
.pmz-scheme p { max-width: 46rem; color: var(--ink-2); }
.pmz-hash { font-size: .84rem; }
.pmz-hash code { font-family: var(--mono); font-size: .8rem; overflow-wrap: anywhere; }
@media (prefers-reduced-motion: reduce) { .pmz-det > summary::before, .pmz-older > summary::before { transition: none; } }
@media print {
  .pmz-list { border-left-color: var(--muted); }
  .pmz-v { break-inside: avoid-page; padding-bottom: 1rem; }
  .pmz-det { display: none; }
  .pmz-older > summary { display: none; }
  .pmz-older::details-content { content-visibility: visible; display: contents; }
}

/* ——— Prognozy (decyzja D15): wachlarz p05–p95 jako stopniowanie przezroczystości jednego akcentu, neutralne osie,
   wiersze mostu i wrażliwości z paskiem SVG, mapa projektów (kształt – ogniwo, wypełnienie – etap). Bez barw metali. ——— */
.pn-hub-head .lead { max-width: 70ch; }
.pn-cards { display: grid; gap: 1.2rem; grid-template-columns: repeat(auto-fill, minmax(min(440px, 100%), 1fr)); margin-bottom: 1.6rem; }
.pn-card-f { padding: 0; overflow: hidden; }
.pn-card-media { display: block; background: var(--paper-2); border-bottom: 1px solid var(--line); padding: .6rem .8rem .2rem; }
.pn-card-body { display: flex; flex-direction: column; gap: .2rem; padding: 1.1rem 1.3rem 1.25rem; flex: 1; }
.pn-card-body .card-foot { margin-top: auto; padding-top: .6rem; }
.pn-card-kpis { display: grid; gap: .55rem; margin: .4rem 0 .6rem; }
.pn-card-kpis div { display: grid; gap: .05rem; }
.pn-card-kpis dt { font: 650 1.35rem/1.1 var(--serif); font-variant-numeric: tabular-nums; color: var(--ink); }
.pn-card-kpis dt small { font: 500 .8rem var(--sans); color: var(--muted); }
.pn-card-kpis dd { margin: 0; font-size: .86rem; color: var(--ink-2); }
.pn-int { font-size: .8rem; color: var(--muted); font-variant-numeric: tabular-nums; }
.pn-status { display: inline-block; font: 650 .74rem/1 var(--sans); padding: .26rem .5rem; border-radius: 999px; border: 1px solid var(--line); color: var(--ink-2); background: var(--surface); }
.pn-status-approved { border-color: var(--copper); color: var(--copper-text); }
.pn-status-draft { border-color: var(--warn-line); background: var(--warn-bg); color: var(--ink); }
.pn-byline { gap: .35rem 1rem; align-items: center; }
.pn-fixture { font-size: .92rem; }
.pn-related { margin: 1rem 0; max-width: 60rem; }
.pn-related p { margin: 0 0 .3rem; }
.pn-related p:last-child { margin: 0; }
.pn-kpis { margin-top: 1.4rem; }
.pn-kpis-h { font: 650 .78rem/1 var(--sans); text-transform: uppercase; letter-spacing: .1em; color: var(--muted); margin: 0 0 .7rem; }
.pn-kpis .kpi-wrap { list-style: none; margin: 0; padding: 0; }
.pn-caveats { margin: .9rem 0 .2rem; padding: .7rem .9rem; border-left: 3px solid var(--line); background: var(--surface); font-size: .9rem; color: var(--ink-2); }
.pn-caveats p { margin: 0 0 .35rem; }
.pn-caveats ul { margin: .4rem 0 0; padding-left: 1.2rem; }
/* niepełny ostatni wiersz kart – puste pole w kolorze tła karty, linie podziału z cienia kart */
.pn-kpis .kpi-wrap { background: var(--surface); }
.pn-kpis .kpi-card { box-shadow: 0 0 0 1px var(--line); }
.pn-kpis .kpi-card-value small { font: 500 .85rem var(--sans); color: var(--muted); }
.pn-fact { font: .74rem var(--mono); color: var(--copper-text); }
.pn-disclaimer { font-size: .84rem; color: var(--muted); max-width: 62rem; margin: .8rem 0 0; }
.pn-unit { font: 600 .78rem/1 var(--sans); color: var(--muted); white-space: nowrap; }
.pn-note { font-size: .9rem; color: var(--ink-2); max-width: 62rem; }
.pn-take { font-size: .95rem; color: var(--ink-2); max-width: 60rem; margin: 0 0 .6rem; }
.pn-body .pn-sec { scroll-margin-top: 5.5rem; }
.pn-body .pn-sec > h2 { margin-top: 2.6rem; }
.pn-body .pn-sec:first-child > h2 { margin-top: 0; }
.pn-h3 { font-size: 1.05rem; margin: 1.6rem 0 .6rem; }
.pn-fig { margin: 1rem 0 1.6rem; }
.pn-controls { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .6rem 1rem; margin: .4rem 0 1rem; font-size: .88rem; }
.pn-controls label { display: inline-flex; flex-direction: column; gap: .2rem; color: var(--ink-2); font-weight: 600; max-width: 100%; min-width: 0; }
.pn-controls select { max-width: min(100%, 24rem); text-overflow: ellipsis; }
@media (max-width: 640px) { .pn-controls label:has(select) { flex: 1 1 100%; } .pn-controls select { width: 100%; max-width: 100%; } }
.pn-controls select { font: 500 .9rem var(--sans); color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 8px; padding: .4rem .55rem; min-height: 2.5rem; max-width: 100%; }
.pn-controls .pn-check, .pn-seg label { flex-direction: row; align-items: center; gap: .35rem; font-weight: 500; min-height: 2.5rem; }
.pn-seg { display: inline-flex; flex-wrap: wrap; gap: .1rem .8rem; border: 0; padding: 0; margin: 0; }
.pn-seg legend { font-weight: 600; color: var(--ink-2); padding: 0; margin-bottom: .1rem; width: 100%; }
.pn-controls input[type="checkbox"], .pn-controls input[type="radio"] { width: 1.05rem; height: 1.05rem; accent-color: var(--copper-text); }
.pn-wrap { position: relative; }
.pn-svg { display: block; width: 100%; height: auto; font-family: var(--sans); }
.pn-fan, .pn-comp { min-width: 500px; }
.pn-track { min-width: 380px; }
.pn-svg:focus { outline: none; }
.pn-svg:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; border-radius: 6px; }
.pn-grid { stroke: var(--line); stroke-width: 1; }
.pn-tick { stroke: var(--muted); stroke-width: 1; }
.pn-ax { fill: var(--muted); font-size: 12px; font-variant-numeric: tabular-nums; }
.pn-ax-s { font-size: 11px; }
.pn-fbg { fill: var(--paper-2); }
.pn-ann { fill: var(--muted); font-size: 11.5px; font-style: italic; }
.pn-b90 { fill: var(--c1); fill-opacity: .16; }
.pn-b80 { fill: var(--c1); fill-opacity: .24; }
.pn-b50 { fill: var(--c1); fill-opacity: .38; }
.pn-hist { fill: none; stroke: var(--ink); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.pn-p50 { fill: none; stroke: var(--copper-text); stroke-width: 2.6; stroke-linejoin: round; stroke-linecap: round; }
.pn-nc line { stroke: var(--copper-text); stroke-width: 1.8; }
.pn-nc circle { fill: var(--surface); stroke: var(--copper-text); stroke-width: 2; }
.pn-scen { fill: none; stroke: var(--ink-2); stroke-width: 1.5; stroke-dasharray: 6 4; }
.pn-scen-base { stroke-dasharray: 1.5 3.5; }
.pn-bm { fill: var(--surface); stroke: var(--ink); stroke-width: 1.6; }
.pn-bm-1 { fill: var(--ink); }
.pn-bm-2 { fill: var(--muted); stroke: var(--muted); }
.pn-lab { fill: var(--ink-2); font-size: 12px; font-variant-numeric: tabular-nums; }
.pn-lab-p50 { fill: var(--copper-text); font-weight: 700; }
.pn-lab-scen { fill: var(--muted); font-style: italic; }
.pn-hit { fill: transparent; }
.pn-cross { stroke: var(--ink-2); stroke-width: 1; stroke-dasharray: 3 3; pointer-events: none; }
.pn-dot { fill: var(--copper-text); stroke: var(--surface); stroke-width: 2; pointer-events: none; }
.pn-tip { position: absolute; z-index: 5; max-width: min(340px, 86vw); padding: .45rem .6rem; border-radius: 8px; background: var(--ink); color: var(--paper);
  font: 500 .8rem/1.4 var(--sans); font-variant-numeric: tabular-nums; pointer-events: none; box-shadow: 0 4px 18px rgba(0, 0, 0, .18); }
.pn-tip[hidden] { display: none; }
.pn-legend { display: flex; flex-wrap: wrap; gap: .3rem 1.1rem; list-style: none; margin: .6rem 0 .2rem; padding: 0; font-size: .82rem; color: var(--ink-2); }
.pn-legend li { display: inline-flex; align-items: center; gap: .4rem; }
.pn-sw { display: inline-block; width: 22px; height: 12px; border-radius: 3px; }
span.pn-b90 { background: var(--c1); opacity: .16; }
span.pn-b80 { background: var(--c1); opacity: .34; }
span.pn-b50 { background: var(--c1); opacity: .55; }
.pn-sw-hist { height: 0; border-top: 2.5px solid var(--ink); border-radius: 0; }
.pn-sw-p50 { height: 0; border-top: 3px solid var(--copper-text); border-radius: 0; }
.pn-sw-nc { width: 12px; height: 12px; border-radius: 50%; border: 2px solid var(--copper-text); background: var(--surface); }
.pn-sw-scen { height: 0; border-top: 2px dashed var(--ink-2); border-radius: 0; }
.pn-sw-bm { width: 10px; height: 10px; border: 1.6px solid var(--ink); background: var(--surface); transform: rotate(45deg); border-radius: 1px; margin: 0 4px; }
.pn-sw-bm-1 { background: var(--ink); }
.pn-sw-bm-2 { background: var(--muted); border-color: var(--muted); }
.pn-keys { display: block; margin-top: .2rem; }
@media (pointer: coarse) { .pn-keys { display: none; } }
.pn-k1 { fill: var(--m5); background: var(--m5); } .pn-k2 { fill: var(--m4); background: var(--m4); } .pn-k3 { fill: var(--m3); background: var(--m3); }
.pn-k4 { fill: var(--m2); background: var(--m2); } .pn-k5 { fill: var(--c6); background: var(--c6); } .pn-k6 { fill: var(--m1); background: var(--m1); }
rect.pn-k1, rect.pn-k2, rect.pn-k3, rect.pn-k4, rect.pn-k5, rect.pn-k6 { stroke: var(--surface); stroke-width: .8; }
span.pn-k6 { outline: 1px solid var(--line); }
.pn-multi { display: grid; gap: .9rem; grid-template-columns: repeat(auto-fill, minmax(min(250px, 100%), 1fr)); list-style: none; margin: .6rem 0 .8rem; padding: 0; }
.pn-mcard { border: 1px solid var(--line); border-radius: 12px; padding: .75rem .85rem .7rem; background: var(--surface); min-width: 0; display: flex; flex-direction: column; }
.pn-mh { font: 650 1rem/1.25 var(--serif); margin: 0; }
.pn-mcagr { font-size: .8rem; color: var(--ink-2); margin: .15rem 0 .3rem; font-variant-numeric: tabular-nums; }
.pn-mcagr small { color: var(--muted); }
.pn-mdesc { font-size: .76rem; color: var(--muted); margin: .3rem 0 .3rem; line-height: 1.4; }
.pn-mlink { font-size: .8rem; margin-top: auto; align-self: flex-start; min-height: 24px; display: inline-flex; align-items: center; }
.pn-rows { list-style: none; margin: .4rem 0 .6rem; padding: 0; display: grid; gap: .1rem; }
.pn-row { display: grid; grid-template-columns: minmax(0, 15rem) minmax(0, 1fr) 6.5rem; align-items: center; gap: .3rem .8rem; padding: .3rem 0; border-bottom: 1px solid var(--line-2); font-size: .88rem; }
.pn-row-l { color: var(--ink-2); }
.pn-row-v { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--ink); }
.pn-row-total .pn-row-l, .pn-row-total .pn-row-v { font-weight: 700; color: var(--ink); }
.pn-bar { display: block; width: 100%; height: 22px; }
.pn-pos { fill: var(--c1); }
.pn-neg { fill: var(--c6); }
.pn-lvl { fill: var(--ink); }
.pn-lvl-bg { fill: var(--line); }
.pn-zero { stroke: var(--ink-2); stroke-width: 2; vector-effect: non-scaling-stroke; }
/* tornado: dwie wartości (wariant niski / wysoki) – szersza kolumna liczb */
@media (min-width: 641px) {
  .pn-tornado .pn-row { grid-template-columns: minmax(0, 15rem) minmax(0, 1fr) auto; }
}
@media (max-width: 640px) {
  .pn-row { grid-template-columns: minmax(0, 1fr) auto; }
  .pn-row .pn-bar { grid-column: 1 / -1; grid-row: 2; }
}
.pn-mapfig { position: relative; }
.pn-mapwrap { position: relative; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: var(--m-bg); }
.pn-map .pm-kraj { fill: var(--m-n); stroke: var(--m-c); stroke-width: .5px; vector-effect: non-scaling-stroke; }
.pn-prj { cursor: pointer; }
.pn-prj .pn-mk, .pn-ico .pn-mk { fill: var(--copper-text); stroke: var(--paper); stroke-width: 1.2px; vector-effect: non-scaling-stroke; }
.pn-ph-approved .pn-mk { fill-opacity: .5; stroke: var(--copper-text); }
.pn-ph-study .pn-mk { fill: var(--paper); stroke: var(--copper-text); stroke-width: 1.6px; }
.pn-closure .pn-mk { fill: var(--c6); stroke: var(--paper); fill-opacity: 1; }
.pn-ph-operating .pn-mk { fill: var(--copper-text); fill-opacity: .35; stroke: var(--paper); }
.pn-ph-idle .pn-mk { fill: var(--c6); fill-opacity: .55; stroke: var(--paper); }
.pn-prj.is-off { display: none; }
.pn-prj:hover .pn-mk { stroke: var(--ink); stroke-width: 2px; }
.pn-prj.is-pick .pn-mk { stroke: var(--focus); stroke-width: 3px; }
.pn-prj:focus { outline: none; }
.pn-prj:focus-visible .pn-mk { stroke: var(--focus); stroke-width: 3px; }
.pn-ico { width: 14px; height: 14px; vertical-align: -2px; overflow: visible; }
.fig figcaption.pn-mapcap { display: grid; gap: .2rem; max-width: none; margin: .5rem 0 0; font: 500 .8rem/1.45 var(--sans); color: var(--muted); }
.fig .pn-mapcap::before { display: none; }
.pn-filters[hidden], .pn-controls [data-pn-submit][hidden] { display: none; }
.pn-card { position: absolute; top: .6rem; right: .6rem; z-index: 6; width: min(330px, calc(100% - 1.2rem)); max-height: calc(100% - 1.2rem); overflow: auto;
  background: var(--surface); border: 1px solid var(--line); border-radius: 12px; padding: .8rem .9rem; box-shadow: 0 6px 24px rgba(0, 0, 0, .18); font-size: .85rem; }
.pn-card[hidden] { display: none; }
.pn-card-h { font: 650 1rem/1.3 var(--serif); margin: 0 1.8rem .4rem 0; }
.pn-card-h:focus { outline: none; }
.pn-card-dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem .8rem; margin: 0 0 .4rem; }
.pn-card-dl dt { font-size: .7rem; color: var(--muted); }
.pn-card-dl dd { margin: 0; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.pn-card-x { position: absolute; top: .35rem; right: .45rem; width: 2rem; height: 2rem; border: 0; border-radius: 50%; background: transparent; color: var(--ink); font-size: 1.3rem; cursor: pointer; }
.pn-card-x:hover { background: var(--paper-2); }
.pn-card-go { font-size: .8rem; }
.pn-prj-table th[scope="row"] { font-weight: 600; min-width: 9rem; }
.pn-prj-table td:last-child, .pn-prj-table td.num { white-space: nowrap; }
.pn-prj-table tr:target > * { background: var(--copper-tint); }
.pn-scens { display: grid; gap: .9rem; grid-template-columns: repeat(auto-fill, minmax(min(250px, 100%), 1fr)); }
.pn-scen-card { border: 1px solid var(--line); border-radius: 12px; padding: .9rem 1rem; background: var(--surface); font-size: .9rem; }
.pn-scen-card h3 { margin: 0 0 .3rem; font-size: 1.05rem; }
.pn-scen-card ul { margin: .3rem 0 0; padding-left: 1.1rem; color: var(--ink-2); }
article.pn-scen-base { border-color: var(--copper); }
.pn-scen-v { font: 650 1.35rem/1.15 var(--serif); font-variant-numeric: tabular-nums; margin: 0 0 .4rem; }
.pn-scen-d { display: block; font: 500 .8rem var(--sans); color: var(--muted); }
.pn-tracks { display: grid; gap: 0 1.4rem; grid-template-columns: repeat(auto-fill, minmax(min(380px, 100%), 1fr)); }
.pn-tracks .pn-fig { max-width: 560px; }
.pn-mline { fill: none; stroke-width: 2; stroke-linejoin: round; }
.pn-m0 { stroke: var(--copper-text); } circle.pn-m0 { fill: var(--copper-text); }
.pn-m1 { stroke: var(--ink-2); stroke-dasharray: 6 4; } circle.pn-m1 { fill: var(--ink-2); stroke: none; }
.pn-m2 { stroke: var(--muted); stroke-dasharray: 2 3; } circle.pn-m2 { fill: var(--muted); stroke: none; }
.pn-m3 { stroke: var(--c6); stroke-dasharray: 8 3 2 3; } circle.pn-m3 { fill: var(--c6); stroke: none; }
.pn-m0-t { fill: var(--copper-text); font-weight: 700; } .pn-m1-t, .pn-m2-t, .pn-m3-t { fill: var(--ink-2); }
.pn-ens { font-size: .88rem; padding-left: 1.1rem; }
table.pn-table td.num, table.pn-table th.num { text-align: right; }
.pn-icsg .table-wrap { margin-top: .6rem; }
.pn-icsg-table th[scope="row"] { min-width: 10rem; max-width: 16rem; }
.pn-icsg-table .pn-in { white-space: normal; }
.pn [id] { scroll-margin-top: 6rem; }
/* porównanie z ICSG na wąskich ekranach: wiersz jako karta (etykieta kolumny z data-label) – bez przewijania tabeli */
@media (max-width: 1100px) {
  .pn-icsg .table-wrap:has(.pn-icsg-table) { overflow-x: visible; border: 0; }
  .pn-icsg-table, .pn-icsg-table tbody, .pn-icsg-table tr, .pn-icsg-table th, .pn-icsg-table td { display: block; width: auto; }
  .pn-icsg-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .pn-icsg-table tr { border: 1px solid var(--line); border-radius: 12px; padding: .55rem .75rem; margin-bottom: .6rem; background: var(--surface); }
  .pn-icsg-table th[scope="row"] { max-width: none; border: 0; padding: 0 0 .3rem; }
  .pn-icsg-table td { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .1rem .8rem; border: 0; padding: .15rem 0; text-align: right; overflow-wrap: anywhere; }
  .pn-icsg-table td::before { content: attr(data-label); color: var(--muted); text-align: left; font-size: .76rem; }
  .pn-icsg-table td .pn-block { display: inline; margin-left: .3rem; }
}
.pn-block { display: block; font-weight: 400; }
.pn-in { display: inline-block; padding: .12rem .45rem; border-radius: 999px; border: 1px solid var(--line); font-size: .76rem; white-space: nowrap; }
.pn-in-yes { border-color: var(--copper); color: var(--copper-text); }
.pn-in-mid { border-color: var(--warn-line); background: var(--warn-bg); color: var(--ink); }
.pn-in-no { border-color: var(--ink-2); color: var(--ink); font-weight: 650; }
.pn-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.pn-cite code { white-space: normal; overflow-wrap: anywhere; }
.pn-details > summary { cursor: pointer; color: var(--copper-text); font-weight: 600; font-size: .9rem; min-height: 2.25rem; display: inline-flex; align-items: center; }
.pn-sources { list-style: none; padding: 0; font-size: .9rem; display: grid; gap: .35rem; }
.pn-sources code { font-size: .74rem; margin-left: .3rem; }
.pn-sources .chip { margin-right: .35rem; }
.pn-how { margin-top: 1.4rem; max-width: 62rem; }
.pn-how h2 { font-size: 1.25rem; margin-top: 0; }
.pn-pending ul { max-width: 60rem; color: var(--ink-2); }
.pn-summary { padding-bottom: 3rem; max-width: 62rem; }
@media (min-width: 560px) { .hm-doors .hm-door:last-child:nth-child(odd) { grid-column: 1 / -1; } }
@media (prefers-reduced-motion: reduce) { .pn * { transition: none !important; animation: none !important; } }
@media (forced-colors: active) {
  .pn-b90, .pn-b80, .pn-b50 { fill: Highlight; }
  .pn-p50, .pn-hist { stroke: CanvasText; }
  .pn-prj .pn-mk, .pn-ico .pn-mk, .pn-pos, .pn-neg, .pn-lvl { fill: CanvasText; }
}
@media print {
  .pn-controls, .pn-filters, .pn-tip, .pn-card, .pn-mlink, .pn-keys, .pn .toc { display: none !important; }
  .pn-fan, .pn-comp, .pn-track { min-width: 0; }
  .pn-fig, .pn-mcard, .pn-scen-card, .pn-row { break-inside: avoid; }
  .pn .fig-data::details-content, .pn-details::details-content { content-visibility: visible; display: contents; }
}

/* „100 możliwych światów”: wykres kropkowy kwantyli – kropki w dwóch odcieniach akcentu (pełna / obrys), karta świata */
.pn-wwrap { overflow: visible; }
.pn-wplot-narrow { display: none; }
@media (max-width: 640px) { .pn-wplot-wide { display: none; } .pn-wplot-narrow { display: block; } }
.pn-wd { cursor: pointer; }
.pn-wd circle { fill: var(--copper-text); stroke: var(--surface); stroke-width: 1; }
.pn-wd-lo circle { fill: var(--surface); stroke: var(--copper-text); stroke-width: 1.6; }
.pn-wd:hover circle, .pn-wd.is-pick circle { stroke: var(--ink); stroke-width: 2.2; }
.pn-wd.is-pick circle { fill: var(--ink); }
.pn-wd:focus { outline: none; }
.pn-wd:focus-visible circle { stroke: var(--focus); stroke-width: 3; }
.pn-wref { stroke: var(--muted); stroke-width: 1.4; stroke-dasharray: 3 3; }
.pn-wref-p50 { stroke: var(--copper-text); stroke-width: 2; stroke-dasharray: 6 3; }
.pn-wref-icsg { stroke: var(--ink); stroke-dasharray: 1.5 2.5; }
.pn-wlab-p50 { fill: var(--copper-text); font-weight: 700; }
.pn-sw-wd { width: 12px; height: 12px; border-radius: 50%; background: var(--copper-text); }
.pn-sw-wd-lo { background: var(--surface); border: 1.6px solid var(--copper-text); }
.pn-sw-wref { height: 0; border-top: 2px dashed var(--muted); border-radius: 0; }
.pn-sw-wref-icsg { border-top-color: var(--ink); border-top-style: dotted; }
.pn-wcard { position: relative; margin-top: .9rem; border: 1px solid var(--line); border-radius: var(--radius); padding: .9rem 1rem 1rem; background: var(--surface); }
.pn-wcard[hidden] { display: none; }
.pn-wcard h3 { margin: 0 2rem .2rem 0; font-size: 1.1rem; }
.pn-wcard h3:focus { outline: none; }
.pn-wcard-v { font: 650 1.35rem/1.2 var(--serif); font-variant-numeric: tabular-nums; margin: .2rem 0 .5rem; }
.pn-wcard-v small { font: 500 .8rem var(--sans); color: var(--muted); }
.pn-wcard dl { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(220px, 100%), 1fr)); gap: .35rem 1rem; margin: .4rem 0 .6rem; font-size: .86rem; }
.pn-wcard dt { color: var(--muted); font-size: .76rem; }
.pn-wcard dd { margin: 0; font-variant-numeric: tabular-nums; }
.pn-wcard svg { max-width: 460px; }
.pn-wpath-band { fill: var(--c1); fill-opacity: .24; }
.pn-wpath-med { fill: none; stroke: var(--copper-text); stroke-width: 2; stroke-dasharray: 5 3; }
.pn-wpath-w { fill: none; stroke: var(--ink); stroke-width: 2.4; stroke-linejoin: round; }
.pn-wcard-nav { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .6rem; }
.pn-wprint { display: none; }
@media print {
  .pn-wprint { display: block; font-size: .85rem; }
  .pn-wcard, .pn-wtable { display: none !important; }
  .pn-wplot-narrow { display: none !important; } .pn-wplot-wide { display: block !important; }
}

/* nota metodyczna prognozy: wzory numerowane (czysty HTML: <var>, <sub>, <sup>), schemat przepływu modelu, druk pełnej noty */
.pn-nota-sub { display: block; margin-top: .4rem; font: 500 1.15rem/1.3 var(--sans); color: var(--ink-2); letter-spacing: 0; }
.pn-nota-actions { margin: .2rem 0 .8rem; }
.pn-print-btn[hidden] { display: none; }
.pn-nota-link { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .8rem; font-size: .92rem; }
.pn-nota-body { max-width: 46rem; overflow-wrap: anywhere; }
.pn-nota-body h2 { scroll-margin-top: 6rem; }
.pn-nota-body h3 { scroll-margin-top: 6rem; }
.pn-eq { display: flex; align-items: center; gap: 1rem; margin: 1.1rem 0 1.3rem; padding: .7rem 1rem; border-left: 3px solid var(--copper); background: var(--paper-2); border-radius: 0 10px 10px 0; overflow-x: auto; scroll-margin-top: 6rem; }
.pn-eq:target { box-shadow: 0 0 0 3px var(--focus); }
.pn-eq-body { flex: 1; font: 400 1.08rem/1.6 var(--serif); color: var(--ink); white-space: pre-wrap; min-width: 0; }
.pn-eq-body var { font-style: italic; }
.pn-eq-body sub, .pn-eq-body sup { font-size: .72em; }
.pn-eq-no { flex: none; font: 600 .9rem var(--sans); color: var(--muted); font-variant-numeric: tabular-nums; }
.pn-eq-ref { font-variant-numeric: tabular-nums; white-space: nowrap; }
.pn-nota-body table caption { caption-side: top; text-align: left; font: 650 .85rem/1.4 var(--sans); color: var(--ink); padding: .5rem .5rem .4rem; }
.pn-flowwrap { max-width: 500px; }
.pn-flow text { font: 500 12.5px var(--sans); fill: var(--ink); }
.pn-flow-step rect { fill: var(--copper-tint); stroke: var(--copper); stroke-width: 1.4; }
.pn-flow-io rect { fill: var(--paper-2); stroke: var(--line); stroke-width: 1.4; }
.pn-flow-ln { stroke: var(--muted); stroke-width: 1.6; }
.pn-flow-ah { fill: var(--muted); }
/* schemat warstwowy (kontrakt 1.7): moduły równoległe obok siebie, strzałki rozgałęziające i zbiegające, blok końcowy
   wyróżniony; na telefonie wariant pionowy (moduły w ramce „równolegle”). Barwy: akcent i neutralne. */
.pn-flow-ln { fill: none; }
.pn-flowwrap-layers { max-width: 760px; }
.pn-flow .pn-flow-t { font: 650 13px var(--sans); fill: var(--ink); }
.pn-flow .pn-flow-c { font: 400 12px var(--sans); fill: var(--ink-2); }
.pn-flow-end rect { stroke: var(--copper-text); stroke-width: 2.6; }
.pn-flow .pn-flow-end .pn-flow-t { fill: var(--copper-text); }
.pn-flow-par { fill: none; stroke: var(--muted); stroke-width: 1.2; stroke-dasharray: 5 4; }
.pn-flow .pn-flow-lab { font: 600 11.5px var(--sans); fill: var(--muted); }
.pn-flow-narrow { display: none; }
@media (max-width: 599px) { .pn-flow-wide { display: none; } .pn-flow-narrow { display: block; } }
@media print { .pn-flow-wide { display: block !important; } .pn-flow-narrow { display: none !important; } }
/* model hybrydowy (R02 v2.0): zwięzłe tabele modułów; nagłówki zawijane (375 px) */
.pn-model .pn-flowfig { margin-bottom: 1.4rem; }
table.pn-table thead th.num { white-space: normal; min-width: 4.6rem; vertical-align: bottom; }
.pn-mtab th[scope="row"] { min-width: 9.5rem; }
.pn-mtab-sub { display: block; font-size: .72rem; line-height: 1.3; color: var(--muted); font-weight: 400; white-space: normal; }
td.num > .pn-mtab-sub { white-space: nowrap; }
.pn-mtab-total > * { font-weight: 650; border-top: 1px solid var(--ink-2); }
.pn-mtab-comp td:last-child { min-width: 11rem; }
.pn-sup { display: block; white-space: nowrap; }
.pn-bal-t th[scope="row"] { min-width: 13rem; font-weight: 500; }
@media (max-width: 479px) {
  .pn-bal-t th[scope="row"], .pn-mtab th[scope="row"] { min-width: 8.5rem; }
  table.pn-table thead th.num { min-width: 3.8rem; font-size: .7rem; }
}
/* scenariusze nazwane (kontrakt 1.7): linie z palety rysunków i wzór kreski (rozróżnialne bez barwy), karty z parametrami */
polyline.pn-scen-k1 { stroke: var(--c2); stroke-width: 1.8; stroke-dasharray: 7 4; }
polyline.pn-scen-k2 { stroke: var(--c3); stroke-width: 1.8; stroke-dasharray: 2 3; }
polyline.pn-scen-k3 { stroke: var(--c4); stroke-width: 1.8; stroke-dasharray: 9 3 2 3; }
polyline.pn-scen-k4 { stroke: var(--c5); stroke-width: 1.8; stroke-dasharray: 4 2; }
polyline.pn-scen-k5 { stroke: var(--c6); stroke-width: 1.8; stroke-dasharray: 12 4; }
.pn-sw-scen.pn-scen-k1 { border-top: 2.5px dashed var(--c2); } .pn-sw-scen.pn-scen-k2 { border-top: 2.5px dotted var(--c3); }
.pn-sw-scen.pn-scen-k3 { border-top: 2.5px dashed var(--c4); } .pn-sw-scen.pn-scen-k4 { border-top: 2.5px dashed var(--c5); }
.pn-sw-scen.pn-scen-k5 { border-top: 2.5px dashed var(--c6); }
article.pn-scen-is-base { border-color: var(--copper); }
.pn-scen-i { display: block; font: 500 .8rem var(--sans); color: var(--ink-2); margin-top: .2rem; }
.pn-scen-params { margin: .5rem 0 0; display: grid; gap: .3rem; font-size: .84rem; }
.pn-scen-params div { display: flex; justify-content: space-between; align-items: baseline; gap: .6rem; border-top: 1px solid var(--line-2); padding-top: .3rem; }
.pn-scen-params dt { color: var(--ink-2); }
.pn-scen-params dd { margin: 0; max-width: 55%; font-weight: 650; font-variant-numeric: tabular-nums; text-align: right; }
.pn-scen-more { margin-top: .5rem; font-size: .84rem; }
.pn-scen-more summary { cursor: pointer; color: var(--copper-text); }
.pn-scen-tw { margin-top: 1.1rem; }
.pn-scen-table caption { caption-side: top; text-align: left; font: 650 .85rem/1.4 var(--sans); color: var(--ink); padding: .5rem .5rem .4rem; }
.pn-nota-foot { margin-top: 2rem; font-size: .92rem; }
@media print {
  .pn-nota .toc, .pn-nota-actions, .pn-nota .flow-top, .site-header, .site-footer, .skip { display: none !important; }
  .pn-nota .report-grid { display: block; }
  .pn-nota-body { max-width: none; }
  .pn-eq { break-inside: avoid; background: none; border-left-color: #000; }
  .pn-nota-body h2 { break-after: avoid; }
  .pn-nota-body table { break-inside: auto; }
  .pn-nota-body a[href^="http"]::after { content: " (" attr(href) ")"; font-size: .8em; color: #444; }
}

