
/* Fonty self-hosted (DYN-058, SIL OFL — fonts/LICENSE.md): zero requestów do Google, RODO-clean */
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/jetbrains-mono-400-latin-ext.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:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/jetbrains-mono-400-latin.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:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/jetbrains-mono-500-latin-ext.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:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/jetbrains-mono-500-latin.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:'Schibsted Grotesk';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/schibsted-grotesk-400-latin-ext.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:'Schibsted Grotesk';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/schibsted-grotesk-400-latin.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:'Schibsted Grotesk';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/schibsted-grotesk-500-latin-ext.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:'Schibsted Grotesk';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/schibsted-grotesk-500-latin.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:'Schibsted Grotesk';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/schibsted-grotesk-600-latin-ext.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:'Schibsted Grotesk';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/schibsted-grotesk-600-latin.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:'Schibsted Grotesk';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/schibsted-grotesk-700-latin-ext.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:'Schibsted Grotesk';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/schibsted-grotesk-700-latin.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:'Spectral';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/spectral-400-latin-ext.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:'Spectral';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/spectral-400-latin.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:'Spectral';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/spectral-500-latin-ext.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:'Spectral';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/spectral-500-latin.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:'Spectral';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/spectral-600-latin-ext.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:'Spectral';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/spectral-600-latin.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}
:root{
  --color-bg:#ECEDE6;--color-surface:#F8F8F3;--color-surface-2:#F1F2EB;--color-border:#D9DAD0;--color-line-faint:#E7E8E0;
  --color-text:#23201E;--color-text-muted:#6E6B66;
  --color-primary:#7A2E3A;--color-primary-hover:#5E2330;--color-primary-soft:#F1E2E4;
  --color-accent:#237A74;--color-accent-ink:#FFFFFF;--color-accent-strong:#1C5F5A;--color-accent-soft:#DCEDEB;
  --color-success:#2E7D4F;--color-warning:#B4791A;--color-danger:#C13C2E;--color-info:#356E76;--color-focus:#7A2E3A;
  --topo:rgba(122,46,58,.16);--river:rgba(35,122,116,.5);--topo-strong:rgba(122,46,58,.30);
  --p-900:#3A1620;--p-700:#5E2330;--p-500:#7A2E3A;--p-400:#C98793;
  --a-700:#1C5F5A;--a-600:#237A74;--a-500:#2C8C86;--a-400:#4FB0A8;--a-100:#DCEDEB;
  --font-display:"Spectral",Georgia,serif;--font-sans:"Schibsted Grotesk",system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,monospace;
  --r-sm:6px;--r-md:9px;--r-lg:14px;--r-full:999px;
  --sh-sm:0 1px 2px rgba(35,32,30,.06);
  --sh-md:0 2px 4px rgba(35,32,30,.06),0 14px 30px -12px rgba(35,32,30,.16);
  --sh-lg:0 2px 6px rgba(35,32,30,.08),0 30px 56px -22px rgba(35,32,30,.24);
  --ease:cubic-bezier(.22,.61,.18,1);
}
[data-theme="dark"]{
  --color-bg:#1A1614;--color-surface:#221D1B;--color-surface-2:#2A2421;--color-border:#3A332F;--color-line-faint:#2E2825;
  --color-text:#EDE9E3;--color-text-muted:#A39C94;
  --color-primary:#97414D;--color-primary-hover:#A85563;--color-primary-soft:#2A1D20;
  --color-accent:#4FB0A8;--color-accent-ink:#0E1413;--color-accent-strong:#6FC4BC;--color-accent-soft:#18302E;
  --color-success:#3FA76A;--color-warning:#D6A23E;--color-danger:#DD6354;--color-info:#5AA0A8;--color-focus:#4FB0A8;
  --topo:rgba(201,135,147,.13);--river:rgba(79,176,168,.55);--topo-strong:rgba(201,135,147,.26);
  --p-900:#2A1216;--p-700:#5E2330;--p-500:#97414D;--p-400:#C98793;
  --sh-md:0 14px 30px -12px rgba(0,0,0,.6);--sh-lg:0 30px 56px -22px rgba(0,0,0,.72);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
::selection{background:var(--color-primary);color:#fff}
:where(a,button,summary,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}
body{margin:0;font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;letter-spacing:-.02em;line-height:1.12;margin:0}
.mono,.coord,.num{font-family:var(--font-mono);font-feature-settings:"tnum" 1}
a{color:inherit}
.wrap{max-width:1180px;margin:0 auto;padding:0 26px}
.coord{font-size:11px;letter-spacing:.08em;color:var(--color-text-muted)}
.skip{position:absolute;left:-999px}.skip:focus{left:14px;top:10px;background:var(--color-surface);padding:8px 12px;border-radius:var(--r-sm);z-index:80}

.topo-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.topo-svg path{fill:none;stroke:var(--topo);stroke-width:1.1}
.topo-svg .riv{stroke:var(--river);stroke-width:2.2}
/* hero: warstwice wyraźniejsze (sygnatura marki nie może być niewidoczna) */
.hero .topo-svg path{stroke:var(--topo-strong);stroke-width:1.3}
/* rzeka w tle hero: własny kolor (ogólna reguła .hero path nadpisywała go na topo-strong) */
.hero .topo-svg .riv{stroke:var(--river);stroke-width:2;opacity:.55}
/* stopka: warstwice ściszone, rzeka cienka — grube linie nie mogą przecinać drobnego tekstu prawnego */
footer.site-footer .topo-svg{opacity:.5}
footer.site-footer .topo-svg .riv{stroke-width:1.2;opacity:.55}
/* pin lokalizacji na "mapie" hero — sygnaturowy akcent (Sanok jako punkt na warstwicach) */
/* Karta „Szkic sytuacyjny · Sanok" — sygnatura hero strony głównej (DYN-034). Wycinek arkusza mapy. */
.mapcard{position:absolute;right:4.5%;top:50%;transform:translateY(-50%);z-index:1;width:clamp(320px,29vw,450px);padding:10px 12px 9px;background:color-mix(in srgb,var(--color-surface) 94%,transparent);border:1px solid var(--color-border);border-radius:var(--r-md);box-shadow:0 30px 70px -18px color-mix(in srgb,var(--color-text) 30%,transparent);backdrop-filter:blur(3px)}
.mapcard .mc-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:2px 4px 8px;border-bottom:1px solid var(--color-border);font:500 9.5px/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-muted)}
.mapcard .mc-head .mc-sig{color:var(--color-primary);letter-spacing:.22em}
.mapcard svg{display:block;width:100%;height:auto;margin-top:6px}
.mapcard .mc-frame{fill:none;stroke:var(--color-border);stroke-width:1}
.mapcard .mc-reg path{stroke:var(--color-text-muted);stroke-width:1;opacity:.55}
.mapcard .mc-grid path{stroke:var(--topo);stroke-width:.8;stroke-dasharray:2 5;opacity:.55}
.mapcard .mc-coord text{font:500 8.5px var(--font-mono);letter-spacing:.06em;fill:var(--color-text-muted);opacity:.9}
.mapcard .mc-topo path{fill:none;stroke:var(--topo-strong);stroke-width:1.1}
.mapcard .mc-hill path{stroke:var(--color-primary);opacity:.55}
.mapcard .mc-riv{fill:none;stroke:var(--river);stroke-width:2.4;stroke-linecap:round;stroke-dasharray:1000;stroke-dashoffset:1000;animation:mc-draw 2s .35s var(--ease) forwards}
.mapcard .mc-riv2{stroke-width:1.1;opacity:.75;animation-delay:.6s}
.mapcard .mc-pin .mc-dot{fill:var(--color-primary);stroke:var(--color-bg);stroke-width:2.5}
.mapcard .mc-pin .mc-ring{fill:none;stroke:var(--color-primary);stroke-width:1.5;opacity:.45;transform-origin:280px 262px;animation:mc-pulse 3.2s var(--ease) infinite}
.mapcard .mc-leader{stroke:var(--color-text-muted);stroke-width:1;stroke-dasharray:3 3;opacity:.7}
.mapcard .mc-label rect{fill:color-mix(in srgb,var(--color-surface) 88%,transparent);stroke:var(--color-border)}
.mapcard .mc-label text{font:500 9.5px var(--font-mono);letter-spacing:.12em;fill:var(--color-text)}
.mapcard figcaption{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 4px 0;border-top:1px solid var(--color-border);font:500 9px/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted)}
.mapcard .mc-scale{display:inline-flex;align-items:center;gap:7px}
.mapcard .mc-scale i{width:54px;height:5px;border:1px solid var(--color-text-muted);border-top:0;position:relative;opacity:.75}
.mapcard .mc-scale i::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--color-text-muted)}
.mapcard .mc-n{color:var(--color-primary);letter-spacing:.18em}
@keyframes mc-pulse{0%{transform:scale(.5);opacity:.5}70%,100%{transform:scale(1.55);opacity:0}}
@keyframes mc-draw{to{stroke-dashoffset:0}}
@media(max-width:1100px){.mapcard{display:none}}
@media(prefers-reduced-motion:reduce){.mapcard .mc-riv{animation:none;stroke-dashoffset:0}.mapcard .mc-pin .mc-ring{animation:none;opacity:.35}.card,a.card,.catrow .c{transition:none}}

.topbar{position:sticky;top:0;z-index:60;background:color-mix(in srgb,var(--color-bg) 88%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--color-border)}
.topbar .wrap{display:flex;align-items:center;gap:18px;height:62px}
.logo{display:flex;align-items:center;gap:11px;font-family:var(--font-display);font-size:19px;font-weight:600;letter-spacing:-.02em;text-decoration:none;color:var(--color-text)}
.logo .m{width:30px;height:30px;border-radius:50%;border:1.5px solid var(--color-primary);display:grid;place-items:center;position:relative;color:var(--color-primary)}
.logo .m::before{content:"";position:absolute;width:13px;height:13px;border-radius:50%;border:1.5px solid var(--color-primary)}
.logo .m::after{content:"";position:absolute;width:4px;height:4px;border-radius:50%;background:var(--color-accent)}
.tnav{display:flex;gap:1px;margin-left:auto;flex-wrap:wrap}
.tnav a{font-family:var(--font-mono);font-size:11.5px;color:var(--color-text-muted);text-decoration:none;padding:6px 9px;border-radius:5px}
.tnav a:hover{background:var(--color-surface-2);color:var(--color-primary)}
.tnav a[aria-current="page"]{background:var(--color-accent-soft);color:var(--color-accent-strong)}
.tnav a.on{color:var(--color-accent-strong)}
.tnav a.on::after{content:"";display:block;margin:3px auto 0;width:14px;border-top:2px dashed var(--color-accent)}
.tsearch{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:var(--color-text-muted);border:1px solid transparent;flex:0 0 auto}
.tsearch svg{width:17px;height:17px}
.tsearch:hover{background:var(--color-surface-2);color:var(--color-primary)}
.tsearch[aria-current="page"]{border-color:var(--color-accent);color:var(--color-accent-strong)}
.tcta{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;padding:9px 15px;border-radius:var(--r-full);background:var(--color-primary);color:#fff;text-decoration:none;white-space:nowrap;flex:0 0 auto}
.tcta:hover{filter:brightness(1.08)}
.tcta:focus-visible,.tsearch:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}
.mnav .mn a.mcta{background:var(--color-primary);color:#fff;border-radius:var(--r-full);justify-content:center;margin-top:6px}
.tg{font-family:var(--font-mono);font-size:11.5px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:var(--r-full);padding:7px 13px;cursor:pointer;display:flex;gap:7px;align-items:center}
/* menu mobilne: natywny <details> (zero JS wymagane, CSP-safe); widoczne tylko <=760px */
.mnav{display:none;position:relative}
.mnav summary{list-style:none;cursor:pointer;font-family:var(--font-mono);font-size:11.5px;text-transform:uppercase;letter-spacing:.07em;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:var(--r-full);padding:9px 14px;min-height:40px;display:flex;gap:7px;align-items:center}
.mnav summary::-webkit-details-marker{display:none}
.mnav[open] summary{background:var(--color-surface-2)}
.mnav .mn{position:absolute;right:0;top:calc(100% + 10px);min-width:236px;display:flex;flex-direction:column;padding:8px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-md);box-shadow:0 12px 30px color-mix(in srgb,var(--color-text) 16%,transparent);z-index:60}
.mnav .mn a{font-family:var(--font-mono);font-size:12.5px;color:var(--color-text);text-decoration:none;padding:12px 12px;border-radius:6px;min-height:44px;display:flex;align-items:center}
.mnav .mn a:hover{background:var(--color-surface-2);color:var(--color-primary)}
.mnav .mn a[aria-current="page"]{background:var(--color-accent-soft);color:var(--color-accent-strong)}
.tg:hover{border-color:var(--color-primary);color:var(--color-primary)}

.hero{position:relative;padding:78px 0 64px;border-bottom:1px solid var(--color-border);overflow:hidden}
.hero .wrap{position:relative;z-index:2}
.coordbar{display:flex;align-items:center;gap:14px;font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;color:var(--color-text-muted);text-transform:uppercase}
.coordbar .dot{width:5px;height:5px;border-radius:50%;background:var(--color-accent)}
.hero h1{font-size:clamp(42px,6.5vw,82px);font-weight:600;letter-spacing:-.025em;line-height:1.02;margin:20px 0 0;max-width:15ch;font-family:var(--font-display)}
.hero h1 em{font-style:italic;color:var(--color-primary)}
.hero p{font-size:19px;color:var(--color-text-muted);max-width:58ch;margin:24px 0 0;line-height:1.6}
.hero .row{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap}
.legend{display:flex;gap:0;margin-top:42px;border:1px solid var(--color-border);background:color-mix(in srgb,var(--color-surface) 70%,transparent);border-radius:var(--r-md);overflow:hidden;max-width:680px}
.legend .it{flex:1;padding:14px 18px;border-right:1px solid var(--color-border)}
.legend .it:last-child{border-right:0}
.legend .it .n{font-family:var(--font-mono);font-size:24px;font-weight:500;letter-spacing:-.02em}
.legend .it .l{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin-top:6px}
.compass{position:absolute;top:78px;right:30px;z-index:3;width:58px;height:58px;border:1px solid var(--color-border);border-radius:50%;background:color-mix(in srgb,var(--color-surface) 55%,transparent);backdrop-filter:blur(2px)}
.compass::before{content:"N";position:absolute;top:6px;left:50%;transform:translateX(-50%);font:600 9px/1 var(--font-mono);color:var(--color-primary)}
.compass::after{content:"";position:absolute;inset:18px;border:1px dashed var(--color-border);border-radius:50%}
.compass i{position:absolute;left:50%;top:17px;transform:translateX(-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:19px solid var(--color-primary)}
.compass b{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:5px;height:5px;border-radius:50%;background:var(--color-accent);z-index:2}

main{display:block}
section.block{padding:56px 0;border-bottom:1px solid var(--color-border);position:relative}
.shead{margin-bottom:28px}
.shead .ix{font-family:var(--font-mono);font-size:12px;letter-spacing:.16em;color:var(--color-accent-strong)}
.shead h2{font-size:clamp(26px,3.4vw,38px);font-weight:600;letter-spacing:-.025em;margin-top:8px;font-family:var(--font-display)}
.shead p{color:var(--color-text-muted);font-size:14.5px;margin:10px 0 0;max-width:76ch}
.crumb{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}

.cols{display:grid;gap:18px}
.cols>*{min-width:0}
.cols.c2{grid-template-columns:repeat(2,1fr)}.cols.c3{grid-template-columns:repeat(3,1fr)}.cols.c4{grid-template-columns:repeat(4,1fr)}
.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-md);padding:22px;box-shadow:var(--sh-sm);transition:box-shadow .2s var(--ease),border-color .2s var(--ease),transform .2s var(--ease)}
.card:hover{box-shadow:var(--sh-md);border-color:color-mix(in srgb,var(--color-primary) 24%,var(--color-border))}
/* karta nawigacyjna "Wszystkie ->": celowo inna od kart tresci (dashed, bez wypelnienia) */
.card--more{border-style:dashed;background:color-mix(in srgb,var(--color-surface) 50%,transparent);box-shadow:none;display:flex;align-items:center;justify-content:center;text-decoration:none;color:var(--color-accent-strong);font-weight:600}
.card--more:hover{border-color:var(--color-accent-strong);box-shadow:none}
.catrow .c:hover .t{color:var(--color-primary)}
.card h3{font-size:17px;font-weight:600;font-family:var(--font-display)}
.cap{font-size:12.5px;color:var(--color-text-muted);line-height:1.55}

.btn{font-family:var(--font-sans);font-weight:600;font-size:14px;border-radius:var(--r-md);padding:11px 20px;border:1px solid transparent;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:all .16s var(--ease);text-decoration:none}
.btn:active{transform:translateY(1px)}
.btn--primary{background:var(--color-primary);color:#fff}.btn--primary:hover{background:var(--color-primary-hover)}
.btn--pop{background:var(--color-accent);color:var(--color-accent-ink)}.btn--pop:hover{background:var(--color-accent-strong)}
.btn--ghost{background:transparent;border-color:var(--color-primary);color:var(--color-primary)}.btn--ghost:hover{background:var(--color-primary-soft)}
.badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:10.5px;font-weight:500;padding:4px 9px;border-radius:var(--r-full);text-transform:uppercase;letter-spacing:.05em}
.b-val{background:var(--color-accent-soft);color:var(--color-accent-strong)}
.b-ok{background:transparent;border:1px solid var(--color-success);color:var(--color-success)}
.b-rank{background:var(--color-primary);color:#fff}
.b-ai{background:transparent;border:1px solid var(--color-info);color:var(--color-info)}
.b-sp{background:var(--color-surface-2);color:var(--color-text-muted);border:1px solid var(--color-border)}
.field{display:flex;flex-direction:column;gap:6px;font-size:13px}
.nf-row{display:flex;gap:10px}
.nf-row input{flex:1;min-width:0}
.field label{font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}
.field input,.field select{font-family:var(--font-sans);border:1px solid var(--color-border);background:var(--color-surface-2);border-radius:var(--r-sm);padding:11px 12px;color:var(--color-text);font-size:14px}
.field input:focus{outline:2px solid var(--color-focus);outline-offset:1px}
/* wartość przykładowa w przewodniku po składce: dashed = "to przykład", nie pole do wpisania */
.field .flabel{font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}
.field .fval{border:1px dashed var(--color-border);background:color-mix(in srgb,var(--color-surface-2) 60%,transparent);border-radius:var(--r-sm);padding:11px 12px;font-size:14px;color:var(--color-text)}
.score{display:inline-flex;align-items:center;gap:9px}
.score .m{width:74px;height:7px;border-radius:var(--r-full);background:var(--color-line-faint);overflow:hidden}
.score .m i{display:block;height:100%;background:var(--color-accent)}
.score b{font-family:var(--font-mono);font-size:14px;font-weight:500}

.catrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));border:1px solid var(--color-border);border-radius:var(--r-md);overflow:hidden;background:var(--color-surface);margin-top:26px}
.catrow .c{padding:22px 18px;border-right:1px solid var(--color-border);text-decoration:none;color:var(--color-text);transition:background .16s var(--ease)}
.catrow .c:last-child{border-right:0}.catrow .c:hover{background:var(--color-surface-2)}
.catrow .c .ic{color:var(--color-accent-strong)}.catrow .c .ic svg{width:26px;height:26px;display:block}
.catrow .c:hover .ic{color:var(--color-primary)}
.vicon{color:var(--color-accent-strong)}.vicon svg{width:26px;height:26px;display:block}
.pcard{display:flex;flex-direction:column}
.artcard{display:flex;flex-direction:column;text-decoration:none;color:var(--color-text)}
a.card:hover{transform:translateY(-2px)}
/* scroll-reveal (klasy nadaje JS — bez JS brak ukrywania, zero CLS) */
.rev{opacity:0;transform:translateY(14px);transition:opacity .55s var(--ease),transform .55s var(--ease)}
.rev-in{opacity:1;transform:none}
.catrow .c .t{font-family:var(--font-display);font-weight:600;margin-top:10px}
.catrow .c .p{font-family:var(--font-mono);font-size:12px;color:var(--color-accent-strong);margin-top:3px}

.rk{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-md);overflow:hidden;margin-top:18px}
.rk .crit{display:flex;gap:14px;flex-wrap:wrap;padding:12px 16px;background:var(--color-surface-2);border-bottom:1px solid var(--color-border);font-family:var(--font-mono);font-size:11px;color:var(--color-text-muted)}
.rk .crit b{color:var(--color-text)}
.rr{display:grid;grid-template-columns:48px 1fr 120px 130px 130px;align-items:center;gap:14px;padding:16px;border-bottom:1px solid var(--color-line-faint);transition:background .16s var(--ease)}
.rr:last-child{border-bottom:0}.rr:hover{background:var(--color-surface-2)}
.rr .pos{font-family:var(--font-display);font-size:30px;font-weight:600}
.rr .pos.one{color:var(--color-primary)}
.rr .tu{font-family:var(--font-display);font-weight:600;font-size:16px}
.rr .tu small{display:block;font-family:var(--font-sans);font-weight:400;color:var(--color-text-muted);font-size:12px;margin-top:3px}
.rr .pr{font-family:var(--font-mono);font-size:17px;font-weight:500}
.rr .pr small{font-size:11px;color:var(--color-text-muted)}

.cmp{width:100%;border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-md);overflow:hidden;font-size:13.5px;margin-top:8px}
.cmp th,.cmp td{padding:13px 15px;text-align:left;border-bottom:1px solid var(--color-line-faint)}
.cmp thead th{background:var(--color-primary);color:#fff;font-family:var(--font-display);font-weight:600;font-size:15px}
.cmp td.attr{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}
.cmp .yes{color:var(--color-success);font-weight:600}.cmp .no{color:var(--color-text-muted)}
.cmp tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--color-surface-2) 55%,transparent)}
.cmp tbody tr:hover td{background:var(--color-surface-2)}

/* tabela danych zestawienia (DYN-061): semantyczny odpowiednik listy .rk — dla parserów, druku i czytników */
.rktab-wrap{margin-top:14px}
.rktab-wrap summary{cursor:pointer;font-family:var(--font-mono);font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);padding:10px 2px}
.rktab-wrap summary:hover{color:var(--color-accent-strong)}
.rktab{width:100%;border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-md);overflow:hidden;font-size:13px;margin-top:6px}
.rktab caption{caption-side:bottom;text-align:left;font-size:11.5px;color:var(--color-text-muted);padding:10px 2px 0;line-height:1.5}
.rktab th,.rktab td{padding:11px 14px;text-align:left;border-bottom:1px solid var(--color-line-faint)}
.rktab thead th{font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);background:var(--color-surface-2)}
.rktab tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--color-surface-2) 55%,transparent)}

.calc{display:grid;grid-template-columns:1.05fr .95fr;border:1px solid var(--color-border);border-radius:var(--r-md);overflow:hidden;margin-top:18px}
.calc .form{padding:24px;display:flex;flex-direction:column;gap:14px;background:var(--color-surface)}
.calc .res{position:relative;padding:28px 26px;background:var(--color-accent);color:var(--color-accent-ink);display:flex;flex-direction:column;overflow:hidden}
.calc .res .topo-svg path{stroke:rgba(255,255,255,.18)}
.calc .res .z{position:relative;z-index:2;display:flex;flex-direction:column;height:100%}
.calc .res .lab{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;opacity:.8}
.calc .res .big{font-family:var(--font-display);font-size:56px;font-weight:600;letter-spacing:-.02em;line-height:1;margin-top:8px}
.calc .res .big small{font-family:var(--font-sans);font-size:17px;font-weight:600;opacity:.85}
.calc .res .sub{font-size:14px;line-height:1.6;margin-top:16px;opacity:.95}
.calc .res .sub b{font-family:var(--font-mono)}
.calc .res .cta{margin-top:auto;background:#fff;color:var(--color-accent-strong);border:0;border-radius:var(--r-md);padding:13px;font-family:var(--font-sans);font-weight:700;font-size:14px;cursor:pointer;text-decoration:none;text-align:center}

.art{display:grid;grid-template-columns:1fr 250px;gap:34px;margin-top:8px}
.art article>p{font-size:16.5px;line-height:1.75;max-width:70ch}
.prose{font-size:16.5px;line-height:1.75;max-width:70ch}
/* mechaniki czytelnicze (DYN-070) */
.rprog{position:fixed;top:0;left:0;right:0;height:3px;z-index:70;pointer-events:none}
.rprog i{display:block;height:100%;background:linear-gradient(90deg,var(--color-accent),var(--color-accent-strong));transform:scaleX(0);transform-origin:0 0}
.pn{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:26px}
.pn-card{display:flex;flex-direction:column;gap:6px;padding:16px 18px;border:1px solid var(--color-border);border-radius:var(--r-md);background:var(--color-surface);text-decoration:none;color:inherit}
.pn-card:hover{border-color:var(--color-accent)}
.pn-next{text-align:right}
.pn-k{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.09em;color:var(--color-accent-strong);text-transform:uppercase}
.pn-t{font-family:var(--font-display);font-weight:600;font-size:15.5px;line-height:1.35}
.terms{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:24px;padding-top:18px;border-top:1px dashed var(--color-border)}
.terms-k{font-size:10.5px;letter-spacing:.09em;color:var(--color-text-muted)}
.chip{font-family:var(--font-mono);font-size:11.5px;padding:6px 12px;border:1px solid var(--color-border);border-radius:var(--r-full);background:var(--color-surface);color:var(--color-text);text-decoration:none}
.chip:hover{border-color:var(--color-accent);color:var(--color-accent-strong)}
.fchips{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.fchip{font-family:var(--font-mono);font-size:11.5px;padding:7px 13px;border:1px solid var(--color-border);border-radius:var(--r-full);background:var(--color-surface);color:var(--color-text);cursor:pointer}
.fchip:hover{border-color:var(--color-accent)}
.fchip.on{background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent-strong)}
.fchip:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}
.qempty{margin-top:16px;padding:26px 20px;border:1px dashed var(--color-border);border-radius:var(--r-md);text-align:center;color:var(--color-text-muted)}
kbd{font-family:var(--font-mono);font-size:.85em;border:1px solid var(--color-border);border-bottom-width:2px;border-radius:5px;padding:1px 6px;background:var(--color-surface)}
.ex{margin:22px 0 0;padding:16px 18px;border:1px solid var(--color-border);border-left:3px solid var(--color-accent);border-radius:var(--r-md);background:var(--color-surface)}
.ex figcaption{font-size:10.5px;letter-spacing:.12em;color:var(--color-accent-strong);margin-bottom:8px}
.ex p{margin:0;max-width:74ch}
@media(max-width:640px){.pn{grid-template-columns:1fr}.pn-next{text-align:left}}
.art h3.tt{font-size:32px;font-weight:600;letter-spacing:-.02em;line-height:1.1;max-width:20ch;margin-bottom:10px;font-family:var(--font-display)}
.art p{font-size:15.5px;line-height:1.75}
.art .ans{border:1px solid var(--color-border);border-left:4px solid var(--color-accent);border-radius:0 var(--r-md) var(--r-md) 0;padding:16px 18px;margin:18px 0;font-size:14.5px;background:var(--color-surface)}
.art .art-h{font-family:var(--font-display);font-size:23px;font-weight:600;letter-spacing:-.01em;margin:28px 0 10px;scroll-margin-top:72px}
/* panel boczny artykułu: sticky przy scrollu; spis treści klikalny */
.art aside{position:sticky;top:72px;align-self:start}
.art .toc{display:flex;flex-direction:column}
.art .toc a{font-size:13px;line-height:1.5;padding:5px 0;text-decoration:none;color:var(--color-text);border-bottom:1px solid var(--color-line-faint)}
.art .toc a:last-child{border-bottom:0}
.art .toc a:hover{color:var(--color-primary)}
.art .art-list{margin:10px 0 14px;padding-left:22px;font-size:15px;line-height:1.75}
.art .art-list li{margin:6px 0;padding-left:4px}
.art .art-list li::marker{color:var(--color-accent-strong)}
.art .art-quote{margin:26px 0 6px;padding:18px 20px;border-left:4px solid var(--color-primary);background:var(--color-surface);border-radius:0 var(--r-md) var(--r-md) 0}
.art .art-quote blockquote p{font-family:var(--font-display);font-style:italic;font-size:16.5px;line-height:1.65}
.art .art-quote figcaption{margin-top:10px;font-family:var(--font-mono);font-size:11.5px;color:var(--color-text-muted)}
.art .art-quote figcaption a{color:var(--color-accent-strong)}
.art .ans .q{font-family:var(--font-display);font-weight:600;margin-bottom:6px}
.art aside .bx{border:1px solid var(--color-border);border-radius:var(--r-md);padding:16px;font-size:13px;background:var(--color-surface)}
.list-plain{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:10px}
.list-plain a{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-md);padding:16px 18px;text-decoration:none;color:var(--color-text);box-shadow:var(--sh-sm);transition:box-shadow .2s var(--ease),border-color .2s var(--ease)}
.list-plain a:hover{box-shadow:var(--sh-md);border-color:color-mix(in srgb,var(--color-primary) 24%,var(--color-border))}
.list-plain .tt{font-family:var(--font-display);font-weight:600;font-size:16px}

.screen{border:1px solid var(--color-border);border-radius:var(--r-lg);box-shadow:var(--sh-lg);background:var(--color-bg);margin-top:8px;overflow:hidden}
.chrome{display:flex;align-items:center;gap:7px;padding:11px 15px;background:var(--color-surface);border-bottom:1px solid var(--color-border)}
.chrome .d{width:10px;height:10px;border-radius:50%;background:var(--color-line-faint)}
.chrome .u{margin-left:10px;font-family:var(--font-mono);font-size:11.5px;color:var(--color-text-muted);background:var(--color-surface-2);padding:5px 12px;border-radius:var(--r-full);flex:1;max-width:520px}
.view-mount{padding:26px 28px;background:var(--color-bg);overflow-x:auto}
.view-mount :where(h1){font-size:28px}.view-mount :where(h2){font-size:22px}.view-mount :where(h3){font-size:18px}
.view-mount :where([data-component]){margin:var(--space-3) 0}
.view-mount :where(table){width:100%;border-collapse:collapse;margin:var(--space-3) 0}
.view-mount :where(th,td){border:1px solid var(--color-line-faint);padding:8px 12px;text-align:left}
.view-mount :where(ul,ol){padding-left:var(--space-5)}
.view-mount :where(button,.btn,a.btn){font-family:var(--font-sans);font-weight:600;border-radius:var(--r-md);padding:9px 16px;border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;display:inline-flex;gap:6px;align-items:center}
.view-mount :where(input,select,textarea){font-family:var(--font-sans);border:1px solid var(--color-border);background:var(--color-surface-2);border-radius:var(--r-sm);padding:9px 11px;color:var(--color-text)}
.view-mount :where([role="alert"]){color:var(--color-danger)}
.view-mount :where(label){font-size:13.5px;color:var(--color-text-muted);display:block;margin-bottom:4px}
.phero{position:relative;overflow:hidden;border-bottom:1px solid var(--color-border);background:var(--color-surface-2);padding:40px 0 44px}
.phero .wrap{position:relative;z-index:2}
.phero .ix{font-family:var(--font-mono);font-size:12px;letter-spacing:.16em;color:var(--color-accent-strong)}
.phero h1{font-size:clamp(30px,4.4vw,50px);font-weight:600;letter-spacing:-.025em;line-height:1.05;margin:14px 0 0;max-width:18ch;font-family:var(--font-display)}
.phero h1 em{font-style:italic;color:var(--color-primary)}
.phero p{font-size:17px;color:var(--color-text-muted);max-width:60ch;margin:16px 0 0}
.phero .row{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap}
.statstrip{display:flex;flex-wrap:wrap;gap:0;margin-top:30px;border:1px solid var(--color-border);background:color-mix(in srgb,var(--color-surface) 75%,transparent);border-radius:var(--r-md);overflow:hidden;max-width:760px}
.statstrip .stat{flex:1;min-width:130px;padding:14px 18px;border-right:1px solid var(--color-border)}
.statstrip .stat:last-child{border-right:0}
.statstrip .stat .n{font-family:var(--font-mono);font-size:24px;font-weight:500;letter-spacing:-.02em}
.statstrip .stat .l{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin-top:5px}
.imark{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--color-primary);display:inline-grid;place-items:center;position:relative;color:var(--color-primary);flex:none}
.imark::before{content:"";position:absolute;inset:6px;border-radius:50%;border:1px solid color-mix(in srgb,var(--color-primary) 45%,transparent)}
.imark-i{font-family:var(--font-display);font-weight:600;font-size:14px;position:relative;z-index:1}
.rating{display:inline-flex;align-items:center;gap:8px}
.rating .stars{color:var(--color-warning);font-size:15px;letter-spacing:1px}
.rating .rnum{font-family:var(--font-mono);font-size:14px}
.rating .rcount{font-size:11.5px;color:var(--color-text-muted)}
/* pasek faktów profilu TU: trzy metadane w rytmie mono (rok / grupa / kanały) */
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0;margin-top:14px;border:1px solid var(--color-border);border-radius:var(--r-md);overflow:hidden;background:color-mix(in srgb,var(--color-surface) 75%,transparent)}
.facts>div{padding:13px 16px;border-right:1px solid var(--color-border)}
.facts>div:last-child{border-right:0}
.facts span{display:block;font:500 10px/1 var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin-bottom:6px}
.facts b{font-weight:600;font-size:14px}
@media(max-width:760px){.facts>div{border-right:0;border-bottom:1px solid var(--color-border)}.facts>div:last-child{border-bottom:0}}
.flist{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:9px}
.flist li{position:relative;padding-left:26px;font-size:14.5px;line-height:1.5}
.flist li::before{content:"✓";position:absolute;left:0;top:0;color:var(--color-accent-strong);font-weight:700}
.review .rev-q{font-family:var(--font-display);font-size:16px;line-height:1.5;color:var(--color-text)}
.review .rev-m{display:flex;flex-direction:column;gap:6px;margin-top:14px}
.review .rev-a{font-size:12.5px;color:var(--color-text-muted)}
.pillnav{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.pill{font-family:var(--font-mono);font-size:12px;text-decoration:none;color:var(--color-text-muted);border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--r-full);padding:8px 15px;transition:all .16s var(--ease)}
.pill:hover{border-color:var(--color-primary);color:var(--color-primary)}
.pill.on{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}
.fcols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:28px;margin-bottom:34px}
.fcols .fcol h4{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--color-accent-strong);margin-bottom:12px}
.fcols .fcol a{display:block;color:var(--color-text-muted);text-decoration:none;font-size:13.5px;padding:4px 0}
.fcols .fcol a:hover{color:var(--color-primary)}
.fcols .fbrand{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:18px;font-weight:600;color:var(--color-text);margin-bottom:10px}
.fgeo{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.14em;color:var(--color-text-muted);margin-top:14px}
.site-footer .big{font-family:var(--font-display);font-weight:600;font-size:clamp(30px,4.6vw,46px);letter-spacing:-.02em;line-height:1.14;color:var(--color-text);margin:6px 0 28px}
.site-footer .big em{font-style:italic;color:var(--color-accent-strong)}
@media(max-width:560px){.fcols{grid-template-columns:1fr;gap:20px}}
@media(max-width:880px){.fcols{grid-template-columns:1fr 1fr}.phero h1{font-size:32px}.statstrip .stat{min-width:50%;border-bottom:1px solid var(--color-border)}}
.trustbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-family:var(--font-mono);font-size:11.5px;letter-spacing:.04em;color:var(--color-text-muted);text-transform:uppercase;border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--r-full);padding:11px 18px;margin-top:18px}
.trustbar .sep{color:var(--color-accent)}
.step{position:relative;padding-top:24px}
.step-n{position:absolute;top:-14px;left:18px;width:36px;height:36px;border-radius:50%;background:var(--color-primary);color:#fff;display:grid;place-items:center;font-family:var(--font-display);font-weight:600;font-size:17px;box-shadow:var(--sh-sm)}

/* szlak trasy (DYN-068): przystanki na kreskowanej ścieżce — motyw mapcard w sekcjach home */
.trail{list-style:none;margin:18px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:26px;position:relative}
.trail::before{content:"";position:absolute;top:15px;left:calc(16.66% + 15px);right:calc(16.66% + 15px);border-top:2px dashed var(--color-border)}
.trail-stop{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center}
.trail-pt{width:32px;height:32px;border:2px solid var(--color-accent);border-radius:50%;background:var(--color-bg);display:grid;place-items:center;position:relative;z-index:1}
.trail-pt i{width:10px;height:10px;border-radius:50%;background:var(--color-accent-strong)}
.trail-body{margin-top:14px;max-width:34ch}
.trail-n{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.16em;color:var(--color-accent-strong);margin-bottom:6px}
.trail-body h3{font-size:17px}
.trail-body .cap{margin-top:8px}
@media(max-width:760px){
.trail{grid-template-columns:1fr;gap:22px}
.trail::before{top:15px;bottom:15px;left:15px;right:auto;border-top:0;border-left:2px dashed var(--color-border)}
.trail-stop{flex-direction:row;text-align:left;gap:16px;align-items:flex-start}
.trail-body{margin-top:0}
}

/* pasek skali rynku na kartach TU (DYN-068): relatywna składka przypisana KNF, lider=100% */
.tu-scale{display:block;height:6px;border-radius:var(--r-full);background:var(--color-line-faint);overflow:hidden;margin-top:10px}
.tu-scale i{display:block;height:100%;background:linear-gradient(90deg,var(--color-accent),var(--color-accent-strong))}

/* konturowy separator sekcji (DYN-068): warstwica przewijająca motyw map przez stronę */
.sep-topo{margin:36px 0 4px;color:var(--color-border);opacity:.6}
.sep-topo svg{display:block;width:100%;height:26px}

/* mobile R12 (DYN-073): przewijane tabele + kompaktowy topbar + siatki 1-kol */
.tbl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tbl-scroll>table{min-width:520px}
@media(max-width:560px){
.cols.c4{grid-template-columns:1fr}
.logo .lt{display:none}
.tg #tl{display:none}
.tg{padding:9px 12px}
.mnav summary{padding:8px 12px}
.topbar .wrap{gap:10px}
}
.faq{margin-top:18px;border:1px solid var(--color-border);border-radius:var(--r-md);overflow:hidden;background:var(--color-surface)}
.faq-item{border-bottom:1px solid var(--color-line-faint)}
.faq-item:last-child{border-bottom:0}
.faq-item summary{cursor:pointer;padding:16px 18px;font-family:var(--font-display);font-weight:600;font-size:16px;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";font-family:var(--font-mono);color:var(--color-accent-strong);font-size:20px;transition:transform .16s var(--ease)}
.faq-item[open] summary::after{content:"−"}
.faq-item summary:hover{color:var(--color-primary)}
.faq-a{padding:0 18px 18px;font-size:14.5px;line-height:1.7;color:var(--color-text-muted)}
.leadform{display:flex;flex-direction:column;gap:14px;max-width:620px;margin-top:18px}
.leadform textarea{font-family:var(--font-sans);border:1px solid var(--color-border);background:var(--color-surface-2);border-radius:var(--r-sm);padding:11px 12px;color:var(--color-text);font-size:14px;resize:vertical}
.leadform textarea:focus,.leadform input:focus{outline:2px solid var(--color-focus);outline-offset:1px}
.consent{display:flex;align-items:flex-start;gap:10px;font-size:13.5px;line-height:1.5;color:var(--color-text-muted);cursor:pointer}
.consent input{margin-top:3px;accent-color:var(--color-primary);flex:none}
.consent .req{color:var(--color-danger)}
.leadthanks{max-width:620px;margin-top:18px;border-left:3px solid var(--color-accent)}
.leadthanks h3{font-family:var(--font-display);font-size:20px;margin-bottom:8px}
.ctaband{position:relative;overflow:hidden;background:var(--color-accent);color:var(--color-accent-ink);margin:0;border-top:1px solid var(--color-border)}
.ctaband .topo-svg path{stroke:rgba(255,255,255,.16)}
.ctaband .wrap{position:relative;z-index:2}
.ctaband .z{padding:48px 0;display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.ctaband h2{color:var(--color-accent-ink);font-size:clamp(24px,3.4vw,34px)}
.ctaband p{font-size:16px;opacity:.95;max-width:52ch;margin:0}
.ctaband .cta{margin-top:10px;background:#fff;color:var(--color-accent-strong);border-radius:var(--r-md);padding:13px 24px;font-family:var(--font-sans);font-weight:700;font-size:15px;text-decoration:none}
footer.site-footer{position:relative;padding:60px 0 76px;color:var(--color-text-muted);font-size:13px;overflow:hidden;background:var(--color-bg)}
footer.site-footer .wrap{position:relative;z-index:2}
footer.site-footer .big{font-family:var(--font-display);font-size:clamp(28px,4.6vw,52px);font-weight:600;letter-spacing:-.02em;color:var(--color-text);line-height:1.05;max-width:20ch}
footer.site-footer .big em{font-style:italic;color:var(--color-primary)}
.note{font-family:var(--font-mono);font-size:11px;color:var(--color-text-muted);margin-top:12px}
.disc{max-width:70ch;margin:18px 0 0;line-height:1.7}

*:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px;border-radius:3px}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media(max-width:980px){.cols.c4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:880px){.cols.c3,.cols.c2{grid-template-columns:1fr}.calc,.art{grid-template-columns:1fr}.art aside{position:static}.catrow{grid-template-columns:repeat(2,1fr)}.legend{flex-wrap:wrap}.legend .it{flex:1 1 50%;border-bottom:1px solid var(--color-border)}}
@media(max-width:760px){.tnav{display:none}.tsearch{display:none}.tcta{display:none}.mnav{display:block;margin-left:auto}.tg{margin-left:10px;min-height:40px;padding:9px 14px}.wrap{padding:0 18px}section.block{padding:44px 0}.hero{padding:54px 0 44px}.compass{display:none}.rr{grid-template-columns:30px 1fr auto;gap:10px;padding:14px}.rr .score{display:none}.rr .pos{font-size:23px}.cmp th,.cmp td{padding:10px 11px}}

/* ════ Styling ZAMONTOWANYCH widoków playbooka — scope .view-mount (nie wpływa na marketing) ════ */
.view-mount{display:flex;flex-direction:column;gap:var(--space-4)}
.view-mount>*{max-width:100%;min-width:0}
.view-mount :where([class$="-view"],[class*="-view "]){display:flex;flex-direction:column;gap:var(--space-4)}
.view-mount :where(h1){font-size:26px}.view-mount :where(h2){font-size:21px}.view-mount :where(h3){font-size:17px}.view-mount :where(h4){font-size:15px}
.view-mount :where(p){margin:0 0 var(--space-2);max-width:74ch}
.view-mount :where(section,article,fieldset){margin:0}
/* karty / panele */
.view-mount :where([class*="-card"],.card,[class*="-panel"],.panel,.kpi,[class*="lead-card"],[class*="offer-card"],[class*="partner-card"],[class*="apk-card"],[class*="hub-category"]){background:var(--color-surface);border:1px solid color-mix(in srgb,var(--color-border) 70%,transparent);border-radius:var(--r-md);padding:var(--space-4) var(--space-5);box-shadow:var(--sh-sm)}
.view-mount :where([class*="-card"]:hover,.card:hover){box-shadow:var(--sh-md);border-color:color-mix(in srgb,var(--color-primary) 22%,var(--color-border))}
/* gridy */
.view-mount :where([class*="-grid"],.kpi-grid,.hub-grid,.product-grid,.panels-grid,.partner-metrics,.featured){display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
/* listy */
.view-mount :where([class$="-list"],[class*="-list "],.ranking-list,.policy-list,.benefit-list,.calculator-list){list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}
/* tabele */
.view-mount :where(table,[class*="-table"]){width:100%;border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-md);overflow:hidden}
.view-mount :where(thead th){background:var(--color-surface-2);font-family:var(--font-sans);font-weight:600;font-size:12.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted)}
.view-mount :where(th,td){border-bottom:1px solid var(--color-line-faint);padding:11px 14px;text-align:left;font-size:14px}
.view-mount :where(tr:last-child td){border-bottom:none}
/* toolbary / paski akcji */
.view-mount :where([class*="toolbar"]){display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;padding:var(--space-3) var(--space-4);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--r-md);margin:var(--space-2) 0}
.view-mount :where(.editor-tabs){display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}
/* status / badge — pigułki */
.view-mount :where([class$="-status"],[class$="-badge"],.badge,[class*="badge-"],[class*="-state"],.payout-badge,.apk-status,.payment-status,.compliance-status,.integration-state,.editor-state,.policy-status-badge){display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:10.5px;font-weight:500;padding:4px 10px;border-radius:var(--r-full);background:var(--color-accent-soft);color:var(--color-accent-strong);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
.view-mount :where([class*="recommended"],[class*="approved"],[class*="--ok"],[class*="success"],[class*="active"]){background:transparent;border:1px solid var(--color-success);color:var(--color-success)}
.view-mount :where([class*="pending"],[class*="warn"],[class*="degraded"]){background:transparent;border:1px solid var(--color-warning);color:var(--color-warning)}
.view-mount :where([class*="blocked"],[class*="error"],[class*="danger"],[class*="rejected"]){background:transparent;border:1px solid var(--color-danger);color:var(--color-danger)}
/* KPI + definition lists (dt=etykieta, dd=wartość) */
.view-mount :where(dd){margin:0}
.view-mount :where(dl){margin:0 0 var(--space-4)}
/* kontenery KPI/metryk -> grid (wyzsza specyficznosc niz :where, bije domyslny dl/block) */
.view-mount .kpi-grid,.view-mount [class*="kpi-grid"],.view-mount [class*="metric-grid"],.view-mount [class*="kpis"],.view-mount [class*="metrics"],.view-mount .panels-grid,.view-mount .hub-grid,.view-mount .product-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-3);width:100%;margin:var(--space-3) 0}
.view-mount :where(.kpi,[class*="kpi"]:not([class*="grid"]),.metric){display:flex;flex-direction:column;gap:4px}
.view-mount :where(.kpi dt,[class*="kpi"] dt,.metric dt,[class*="metric"] dt,[class*="kpi-label"],[class*="metric-label"],[class*="stat-label"]){font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);order:0}
.view-mount :where(.kpi dd,[class*="kpi"] dd,.metric dd,[class*="metric"] dd,[class*="kpi-value"],[class*="metric-value"],[class*="stat-value"]){font-family:var(--font-display);font-size:26px;font-weight:600;color:var(--color-text);order:1;line-height:1.1}
/* nagłówki sekcji wewnątrz widoku — akcent + odstęp */
.view-mount :where([class$="-view"]>h2,[class*="-view "]>h2,.panel>h2,section>h2){font-size:19px;margin:var(--space-4) 0 var(--space-2);padding-top:var(--space-2)}
/* ranking */
.view-mount :where(.ranking-list){gap:var(--space-2)}
.view-mount :where(.rank-position,.rank-pos){font-family:var(--font-display);font-size:24px;font-weight:600;color:var(--color-primary)}
.view-mount :where(.rank-name){font-family:var(--font-display);font-weight:600;font-size:16px}
.view-mount :where(.rank-score){font-family:var(--font-mono);font-weight:600;color:var(--color-accent-strong)}
.view-mount :where(.rank-top-factor,.rank-explanation,.ranking-note){font-size:12.5px;color:var(--color-text-muted)}
/* pipeline kanban — etapy w kolumnach poziomo */
.view-mount .leads-pipeline,.view-mount [class*="pipeline-board"],.view-mount [class*="kanban"]{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:var(--space-3);align-items:start}
.view-mount :where(.pipeline-column,.pipeline-stage){background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--r-md);padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}
.view-mount :where(.pipeline-column>h2,.pipeline-column>h3,.pipeline-stage>h3){font-size:13px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin:0}
.view-mount :where(.pipeline-stale-note){grid-column:1/-1}
.view-mount :where(.lead-card){background:var(--color-surface);font-size:13px;padding:var(--space-2) var(--space-3)}
/* przyciski */
.view-mount :where(.btn--primary,[class*="--primary"],.purchase-button,.wizard-next,.product-cta,[class*="cta"] > button,button[class*="cta"],button[class*="buy"],button[class*="submit"]){background:var(--color-primary);color:#fff;border-color:var(--color-primary)}
.view-mount :where(.btn--primary:hover,[class*="--primary"]:hover){background:var(--color-primary-hover)}
.view-mount :where(button[disabled],[disabled],[aria-disabled="true"]){opacity:.45;cursor:not-allowed}
/* formularze */
.view-mount :where(.field,.consent-item){display:flex;flex-direction:column;gap:5px;font-size:13.5px}
.view-mount :where(.consent-item){flex-direction:row;align-items:flex-start;gap:9px;color:var(--color-text-muted)}
/* callouty: empty/error/degraded */
.view-mount :where(.empty-state,.empty-message,.error-state,.error-message,.degraded-banner,.offer-unavailable){padding:var(--space-4) var(--space-5);border-radius:var(--r-md);border:1px solid var(--color-border);background:var(--color-surface);font-size:14px}
.view-mount :where(.error-state,.error-message){border-left:3px solid var(--color-danger)}
.view-mount :where(.degraded-banner){border-left:3px solid var(--color-warning);color:var(--color-text-muted)}
.view-mount :where(.empty-state,.empty-message){border-left:3px solid var(--color-accent);color:var(--color-text-muted)}
/* notatki / ceny / hinty */
.view-mount :where([class*="-note"],[class*="-hint"],.allowlist-hint,.weight-sum){font-size:12.5px;color:var(--color-text-muted)}
.view-mount :where(.from-price,.price-highlight,.price-note,[class*="price-high"]){font-weight:600;color:var(--color-accent-strong)}
/* skeleton — shimmer */
.view-mount :where(.skeleton,[class*="skeleton"]){background:linear-gradient(90deg,var(--color-surface-2) 25%,var(--color-line-faint) 50%,var(--color-surface-2) 75%);background-size:200% 100%;animation:vm-shimmer 1.3s linear infinite;border-radius:var(--r-sm);min-height:14px;color:transparent}
@keyframes vm-shimmer{from{background-position:200% 0}to{background-position:-200% 0}}
/* tabs */
.view-mount :where([class*="-tabs"]){border-bottom:1px solid var(--color-border)}
.view-mount :where([role="tab"]){padding:8px 14px;border:none;background:none;font-family:var(--font-mono);font-size:12px;color:var(--color-text-muted);cursor:pointer;border-bottom:2px solid transparent}
.view-mount :where([role="tab"][aria-selected="true"]){color:var(--color-primary);border-bottom-color:var(--color-primary)}
/* charts */
.view-mount :where(.bars,[class*="-chart"]){display:flex;align-items:flex-end;gap:8px;min-height:90px}
.view-mount :where(.bars i,.bars .bar,.bar){flex:1;background:var(--color-accent);border-radius:3px 3px 0 0;min-height:6px;display:block}
/* drobne */
.view-mount :where(.visually-hidden){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.view-mount :where([data-component]:empty){display:none}
.view-mount :where(a){color:var(--color-accent-strong)}
/* ── Widoki demo (.view-mount): systemowy arkusz dla surowego DOM rendererów playbooka (DYN-041..043).
   Selektory generyczne + data-atrybuty stanów — zero zmian w DOM widoków (strzeże go 1200+ testów). ── */
.view-mount{padding:22px;font-size:14px;line-height:1.55;background:radial-gradient(circle at 20% 0%,color-mix(in srgb,var(--color-surface-2) 55%,transparent),transparent 60%)}
.view-mount h1{font-size:23px;margin:0 0 14px}
.view-mount h2{font-size:17px;margin:20px 0 10px}
.view-mount h3{font-size:14.5px;margin:14px 0 8px}
.view-mount p{margin:8px 0;max-width:74ch}
.view-mount ul,.view-mount ol{margin:10px 0;padding:0;list-style:none;display:grid;gap:8px}
.view-mount li{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-sm);padding:11px 13px}
.view-mount li li{padding:7px 10px;background:var(--color-surface-2)}
.view-mount table{width:100%;border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-md);overflow:hidden;font-size:13px;margin:10px 0}
.view-mount th,.view-mount td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--color-line-faint)}
.view-mount thead th{background:var(--color-surface-2);font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}
.view-mount tbody tr:last-child td{border-bottom:0}
.view-mount tbody tr:hover td{background:var(--color-surface-2)}
.view-mount button,.view-mount .btn,.view-mount a.btn{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-sans);font-weight:600;font-size:13px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:var(--r-full);padding:9px 16px;cursor:pointer;text-decoration:none}
.view-mount .btn--primary,.view-mount button.wizard-next,.view-mount button[type="submit"]{background:var(--color-primary);border-color:var(--color-primary);color:#fff}
.view-mount .btn--disabled,.view-mount button[disabled]{opacity:.45;cursor:not-allowed}
.view-mount label{display:block;font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin:10px 0 5px}
.view-mount input,.view-mount select,.view-mount textarea{font-family:var(--font-sans);border:1px solid var(--color-border);background:var(--color-surface-2);border-radius:var(--r-sm);padding:9px 11px;color:var(--color-text);font-size:13.5px;max-width:420px;width:100%}
.view-mount input[type="checkbox"],.view-mount input[type="radio"]{width:auto;accent-color:var(--color-primary)}
.view-mount dl{display:grid;grid-template-columns:max-content 1fr;gap:6px 18px;margin:10px 0}
.view-mount dt{font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}
.view-mount dd{margin:0;font-weight:600}
.view-mount [class*="-grid"],.view-mount .featured{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.view-mount [class*="-grid"]>li,.view-mount .featured>li{height:100%}
/* stany przez data-atrybuty: krawędź semantyczna zamiast gołego tekstu */
.view-mount [data-state="current"],.view-mount [aria-current="step"]{border-color:var(--color-primary);box-shadow:inset 3px 0 0 var(--color-primary);font-weight:600}
.view-mount [data-state="done"],.view-mount [data-status="paid"],.view-mount [data-status="active"],.view-mount [data-status="confirmed"],.view-mount [data-status="approved"],.view-mount [data-status="issued"],.view-mount [data-status="converted"]{border-left:3px solid var(--color-success)}
.view-mount [data-status="pending"],.view-mount [data-status="due"],.view-mount [data-status="expiring"],.view-mount [data-status="draft"],.view-mount [data-status="apk_pending"],.view-mount [data-status="qualified"],.view-mount [data-status="contacted"],.view-mount [data-status="new"]{border-left:3px solid var(--color-warning)}
.view-mount [data-state="error"],.view-mount [data-status="overdue"],.view-mount [data-status="expired"],.view-mount [data-status="cancelled"],.view-mount [data-status="rejected"],.view-mount [data-status="lost"],.view-mount [data-status="disqualified"],.view-mount [data-status="timeout"]{border-left:3px solid var(--color-danger)}
/* wzorce nazwane wspólne dla wielu widoków */
.view-mount .kpi{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-md);padding:12px 16px}
.view-mount .kpi b,.view-mount .kpi strong{font-family:var(--font-mono);font-size:20px;display:block}
.view-mount .wizard-steps{display:flex;gap:8px}
.view-mount .wizard-steps li{flex:1;text-align:center;font-size:12.5px}
.view-mount .wizard-panel{margin:14px 0;padding:18px;border:1px dashed var(--color-border);border-radius:var(--r-md);background:color-mix(in srgb,var(--color-surface) 70%,transparent)}
.view-mount .chat-message{max-width:78%;border-radius:var(--r-md)}
.view-mount .chat-message--user{margin-left:auto;background:var(--color-accent-soft);border-color:transparent}
.view-mount .chat-author{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);display:block;margin-bottom:4px}
.view-mount .rank-position,.view-mount .lead-score{font-family:var(--font-mono);font-weight:600}
.view-mount .from-price,.view-mount .price{font-family:var(--font-mono);font-weight:600;font-size:15px}
.view-mount .price-note,.view-mount .result-snippet,.view-mount .tagline{color:var(--color-text-muted);font-size:12.5px}
.view-mount .facet{display:inline-flex;gap:6px;align-items:center;font-size:12px;border-radius:var(--r-full);padding:6px 12px}
.view-mount .visually-hidden{position:absolute;left:-999px}
/* ── runda 2 (DYN-045): wzorce indywidualne widoków ── */
/* toolbary i rzędy akcji */
.view-mount :where(.toolbar,.affiliate-toolbar,.analytics-toolbar,.status-filter,.facet-filters,.active-filters,.glossary-actions,.editor-actions,.quick-actions,.apk-actions,.row-actions,.search-bar,.pagination){display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0}
.view-mount .search-bar input{flex:1;max-width:none}
.view-mount .page-info{font-family:var(--font-mono);font-size:11.5px;color:var(--color-text-muted)}
/* notatki i disclosure: jeden język notek, trzy temperatury */
.view-mount :where(.hitl-note,.escalation-notice,.renewal-note){border:1px solid color-mix(in srgb,var(--color-warning) 45%,var(--color-border));border-left:4px solid var(--color-warning);background:color-mix(in srgb,var(--color-warning) 7%,var(--color-surface));border-radius:0 var(--r-sm) var(--r-sm) 0;padding:10px 13px;font-size:12.5px;margin:10px 0}
.view-mount :where(.assistant-disclaimer,.widget-disclaimer,.calc-disclaimer,.affiliate-disclosure,.allowlist-hint,.widget-hint,.helpful-prompt,.ranking-note,.weights-disclosure,.comparison-teaser){color:var(--color-text-muted);font-size:12px;margin:10px 0;max-width:70ch}
.view-mount :where(.panel,.funnel-panel,.cwv-panel,.citation-panel,.traffic-chart,.conversion-chart,.revenue-per-partner,.ab-test-results,.weight-sum,.compliance-status){background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-md);padding:14px 16px;margin:12px 0}
.view-mount .totals{font-family:var(--font-mono);font-weight:600}
/* pipeline leadów: kolumny etapów */
.view-mount .leads-pipeline{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;align-items:start}
.view-mount .pipeline-column{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--r-md);padding:10px}
.view-mount .pipeline-column>*:first-child{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.06em;color:var(--color-text-muted)}
.view-mount .lead-card{margin-top:8px}
/* landing afiliacyjny */
.view-mount .offer-hero{background:linear-gradient(135deg,color-mix(in srgb,var(--color-accent-soft) 70%,transparent),transparent 65%);border:1px solid var(--color-border);border-radius:var(--r-lg);padding:22px;margin-bottom:14px}
.view-mount .benefit-list li{padding-left:30px;position:relative;background:none;border:0}
.view-mount .benefit-list li::before{content:"✓";position:absolute;left:8px;color:var(--color-accent-strong);font-weight:700}
.view-mount .consent{display:flex;gap:9px;align-items:flex-start;font-size:12.5px;background:none;border:0;padding:4px 0}
.view-mount :where(.affiliate-cta,.purchase-button,.hero-cta){background:var(--color-primary);border-color:var(--color-primary);color:#fff;font-size:14px;padding:11px 20px}
/* czat asystenta */
.view-mount .chat-thread{display:grid;gap:10px;margin:12px 0}
.view-mount .chat-composer{display:flex;gap:8px;margin-top:12px}
.view-mount .chat-composer input,.view-mount .chat-composer textarea{flex:1;max-width:none}
.view-mount .citation-panel li{background:var(--color-surface-2);padding:8px 11px;font-size:12.5px}
/* zakup polisy / APK */
.view-mount .apk-status{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:11px;letter-spacing:.05em;border-radius:var(--r-full);padding:5px 11px;border:1px solid var(--color-border)}
.view-mount .apk-ok{border-color:color-mix(in srgb,var(--color-success) 55%,var(--color-border));color:var(--color-success)}
.view-mount .purchase-premium{font-family:var(--font-mono);font-size:22px;font-weight:600}
.view-mount .purchase-consents li{background:none;border:0;padding:5px 0}
/* ranking i konfigurator wag */
.view-mount .rank-item{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline}
.view-mount .rank-name{font-weight:600;flex:1;min-width:180px}
.view-mount .rank-top-factor{font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--color-accent-strong)}
.view-mount .rank-explanation{flex-basis:100%;font-size:12.5px;color:var(--color-text-muted)}
.view-mount .criterion{display:flex;gap:10px;align-items:center}
.view-mount .criterion input{max-width:110px}
/* wyniki wyszukiwania i facety */
.view-mount .result-title{font-weight:600}
.view-mount .facet{border:1px solid var(--color-border);background:var(--color-surface)}
.view-mount :where(.facet[data-active="true"],.facet[aria-pressed="true"],.facet.active){background:var(--color-accent-soft);border-color:var(--color-accent-strong);color:var(--color-accent-strong)}
/* ustawienia i integracje */
.view-mount .setting-field{margin:10px 0}
.view-mount .integration-state{font-family:var(--font-mono);font-size:11px}
.view-mount :where([data-connected="true"] .integration-state,.integration-state[data-connected="true"]){color:var(--color-success)}
.view-mount :where([data-connected="false"] .integration-state,.integration-state[data-connected="false"]){color:var(--color-text-muted)}
/* słownik i artykuł */
.view-mount .term-header{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.view-mount .ai-marker{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--color-border);border-radius:var(--r-full);padding:3px 9px;color:var(--color-text-muted)}
.view-mount .answer-block{border:1px solid var(--color-border);border-left:4px solid var(--color-accent);border-radius:0 var(--r-md) var(--r-md) 0;padding:13px 15px;background:var(--color-surface);margin:10px 0}
.view-mount :where(.article-attribution,.news-meta){font-family:var(--font-mono);font-size:11px;color:var(--color-text-muted)}
/* widżet embed */
.view-mount .preview-frame,.view-mount .widget-preview{border:1px dashed var(--color-border);border-radius:var(--r-md);padding:16px;background:color-mix(in srgb,var(--color-surface-2) 60%,transparent)}
.view-mount .embed-code-generator textarea,.view-mount .embed-code-generator code{font-family:var(--font-mono);font-size:12px}
.view-mount .domain-allowlist li{font-family:var(--font-mono);font-size:12px}
/* tabele: zwycięzca i wyróżnienia ofert */
.view-mount .cell-winner{color:var(--color-success);font-weight:600}
.view-mount .badge-cheapest,.view-mount .badge-recommended{display:inline-block;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;border-radius:var(--r-full);padding:3px 9px;margin-left:6px}
.view-mount .badge-cheapest{background:var(--color-accent-soft);color:var(--color-accent-strong)}
.view-mount .badge-recommended{background:var(--color-primary-soft);color:var(--color-primary)}
.view-mount .offer-unavailable{opacity:.55}
.view-mount .payment-overdue{color:var(--color-danger);font-weight:600}
.view-mount .btn--danger{border-color:color-mix(in srgb,var(--color-danger) 55%,var(--color-border));color:var(--color-danger)}
/* widok home w galerii: neutralizacja globalnego .hero portalu */
.view-mount .hero{padding:18px 0;background:none}
.view-mount .hero-subtitle{color:var(--color-text-muted);max-width:60ch}
.view-mount .value-props{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.view-mount .value-prop{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-md);padding:13px}
.view-mount .hub-category{font-family:var(--font-mono);font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--color-accent-strong)}
/* design system page (DYN-055): swatche tokenów i próbki */
.ds-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
.ds-swatch{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-md);padding:12px}
.ds-swatch i{display:block;height:44px;border-radius:var(--r-sm);margin-bottom:9px}
.ds-swatch span{display:block;font-size:10.5px;color:var(--color-text-muted)}
.ds-swatch b{display:block;font-size:12.5px;margin-top:3px}
.ds-type{padding:9px 0;border-bottom:1px solid var(--color-line-faint)}
.ds-type:last-child{border-bottom:0}
.ds-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
/* inspektor komponentów (DYN-053): checkbox CSS-only — outline + etykieta nazwy każdego data-component */
.vstates .vs-c{position:absolute;left:-999px}
.vstates .vs-comps-l{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;border:1px dashed var(--color-border);border-radius:var(--r-full);padding:7px 14px;cursor:pointer;color:var(--color-text-muted);background:none;margin-left:auto}
.vstates .vs-c:checked~.vs-tabs .vs-comps-l{border-color:var(--color-primary);color:var(--color-primary)}
.vstates .vs-c:checked~.screen [data-component]{outline:1px dashed var(--color-primary);outline-offset:2px;position:relative}
.vstates .vs-c:checked~.screen [data-component]::before{content:attr(data-component);position:absolute;top:-9px;left:6px;z-index:5;font:500 8.5px/1 var(--font-mono);letter-spacing:.05em;color:var(--color-primary);background:var(--color-surface);border:1px solid color-mix(in srgb,var(--color-primary) 40%,var(--color-border));border-radius:var(--r-full);padding:2px 7px}
.vstates .vs-c:focus-visible~.vs-tabs .vs-comps-l{outline:2px solid var(--color-focus);outline-offset:2px}
/* przełącznik stanów widoku (DYN-048): radio + CSS, zero JS; realne renderery loading/empty playbooka */
.vstates .vs-i{position:absolute;left:-999px}
.vstates .vs-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.vstates .vs-tabs label{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--color-border);border-radius:var(--r-full);padding:7px 14px;cursor:pointer;color:var(--color-text-muted);background:var(--color-surface)}
.vstates .vs-panel{display:none}
.vstates .vs-i-populated:checked~.screen .vs-panel--populated{display:block}
.vstates .vs-i-loading:checked~.screen .vs-panel--loading{display:block}
.vstates .vs-i-empty:checked~.screen .vs-panel--empty{display:block}
.vstates .vs-i-error:checked~.screen .vs-panel--error{display:block}
.vstates .vs-i-filtered:checked~.screen .vs-panel--filtered{display:block}
.vstates .vs-i-filled:checked~.screen .vs-panel--filled{display:block}
.vstates .vs-i-mobile:checked~.screen .vs-panel--mobile{display:block}
.vstates .vs-panel--mobile{max-width:392px;margin:0 auto;border-left:1px dashed var(--color-border);border-right:1px dashed var(--color-border)}
.vstates .vs-i-populated:checked~.vs-tabs label[for="vs-populated"],.vstates .vs-i-loading:checked~.vs-tabs label[for="vs-loading"],.vstates .vs-i-empty:checked~.vs-tabs label[for="vs-empty"],.vstates .vs-i-error:checked~.vs-tabs label[for="vs-error"],.vstates .vs-i-filtered:checked~.vs-tabs label[for="vs-filtered"],.vstates .vs-i-filled:checked~.vs-tabs label[for="vs-filled"],.vstates .vs-i-mobile:checked~.vs-tabs label[for="vs-mobile"]{background:var(--color-accent-soft);border-color:var(--color-accent-strong);color:var(--color-accent-strong)}
.vstates .vs-i:focus-visible~.vs-tabs label{outline:2px solid var(--color-focus);outline-offset:2px}
/* szkielety loading widoków: pulsujące pola zamiast pustki */
.view-mount .skeleton-grid,.view-mount [class*="skeleton"]{display:grid;gap:10px}
.view-mount [class*="skeleton"]>*,.view-mount .skeleton{min-height:16px;border-radius:var(--r-sm);background:linear-gradient(90deg,var(--color-line-faint),var(--color-surface-2),var(--color-line-faint));background-size:200% 100%;animation:vm-shimmer 1.4s linear infinite}
@keyframes vm-shimmer{to{background-position:-200% 0}}
@media(prefers-reduced-motion:reduce){.view-mount [class*="skeleton"]>*,.view-mount .skeleton{animation:none}}
/* checklist 30/30 (DYN-047): indywidualne domknięcia per widok */
.view-mount .chat-message--assistant{background:var(--color-surface)}
.view-mount .product-card{display:flex;flex-direction:column;gap:6px}
.view-mount .product-card .from-price{margin-top:auto}
.view-mount .product-features li{padding-left:30px;position:relative;background:none;border:0}
.view-mount .product-features li::before{content:"✓";position:absolute;left:8px;color:var(--color-accent-strong);font-weight:700}
.view-mount .lead-form{display:flex;flex-direction:column;gap:10px;max-width:420px;margin-top:12px}
.view-mount .chat-text{display:block}
.view-mount .comparison-verdict{border:1px solid var(--color-border);border-left:4px solid var(--color-accent);border-radius:0 var(--r-md) var(--r-md) 0;background:var(--color-surface);padding:12px 15px;margin:10px 0;font-weight:600}
.view-mount .sale-detail{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--r-md);padding:14px 16px;margin-top:12px}
.view-mount .search-layout{display:grid;grid-template-columns:1fr 220px;gap:16px;align-items:start}
@media(max-width:760px){.view-mount .search-layout{grid-template-columns:1fr}}
.view-mount .result-list{margin:0}
.view-mount .lead-product{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--color-accent-strong)}
.view-mount .article-sources li,.view-mount .related-products li,.view-mount .related-guides li,.view-mount .related-terms li{font-size:12.5px;background:var(--color-surface-2)}
.view-mount .news-header{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline}
.view-mount :where(.category-description,.product-description,.definition,.news-body){max-width:70ch}
.view-mount .product-insurer{font-family:var(--font-mono);font-size:11px;color:var(--color-text-muted)}
.view-mount .wizard-summary dd[data-ok="true"]{color:var(--color-success)}
.view-mount .wizard-summary dd[data-ok="false"]{color:var(--color-warning)}
.view-mount .weight-sum.ok{color:var(--color-success)}
.view-mount .weight-sum.invalid{color:var(--color-danger)}
.view-mount .integration-config{display:flex;gap:10px;align-items:center;justify-content:space-between}
.view-mount :where(.calculator-form,.settings-form,.lead-form) label:first-of-type{margin-top:0}
/* wykresy z danych (DYN-046): fill wyłącznie tokenami przez klasy */
.view-mount .vm-bars,.view-mount .vm-hbars,.view-mount .vm-funnel,.view-mount .vm-weights{display:block;width:100%;max-width:520px;height:auto;margin:8px 0 12px}
.view-mount .vm-bars rect{fill:var(--color-accent);opacity:.85}
.view-mount .vm-hbars .track{fill:var(--color-line-faint)}
.view-mount .vm-hbars .val{fill:var(--color-accent)}
.view-mount .vm-hbars .val.over{fill:var(--color-danger)}
.view-mount .vm-funnel rect{fill:var(--color-accent);opacity:.8}
.view-mount .vm-weights{height:8px;border-radius:var(--r-full);overflow:hidden}
.view-mount .vm-weights .seg-0{fill:var(--color-primary)}
.view-mount .vm-weights .seg-1{fill:var(--color-accent)}
.view-mount .vm-weights .seg-2{fill:var(--color-warning)}
.view-mount .vm-weights .seg-3{fill:var(--color-info)}
.view-mount .vm-weights .seg-4{fill:var(--p-400)}
.view-mount .rank-bar{display:inline-block;width:74px;height:7px;border-radius:var(--r-full);background:var(--color-line-faint);overflow:hidden;vertical-align:middle;margin-left:8px}
.view-mount .rank-bar i{display:block;height:100%;background:var(--color-accent)}
@media(max-width:640px){.view-mount :where([class*="-grid"],.featured){grid-template-columns:1fr}}

/* ── Druk (DYN-057): czysty wydruk treści — poradniki 700–1200 słów to materiał do archiwum ── */
@media print{
.topbar,.site-footer,.ctaband,.mnav,.skip,.toc,.phero .btn,.nf,.themetoggle{display:none !important}
.topo-svg{display:none !important}
body{background:#fff !important;color:#000 !important}
.rev{opacity:1 !important;transform:none !important}
.phero{padding:0 0 6mm;background:none !important}
.phero h1{color:#000}
main a{color:#000;text-decoration:underline}
/* jawne URL-e źródeł: cytowany dokument musi być odtwarzalny z papieru */
main a[href^="http"]::after{content:" (" attr(href) ")";font-size:.82em;color:#333;word-break:break-all}
.ans,.art-quote,.faq-item,table,figure{break-inside:avoid}
.art-h{break-after:avoid}
.card,.ans,.facts{box-shadow:none !important;border-color:#bbb !important}
}
