/* Atlas Wyborczy – poprawki czytelności na telefonie.
   Ładowany z media="(max-width:700px)", więc na komputerze nie zmienia niczego.
   Ładuje się po pozostałych arkuszach i dlatego może je nadpisywać. */

/* 1) Tekst: nic poniżej ~12 px, a treść akapitów min. 16 px */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-size:16px;line-height:1.55}
p,li{line-height:1.6}

/* 2) Kafelki stanów (mapa kafelkowa): większe litery i liczby, wyższy cel dotyku */
.t{aspect-ratio:5/6;min-width:0;min-height:0}
.t .ab{font-size:13px!important;line-height:1.05;letter-spacing:-.03em}
@media(max-width:380px){.t .ab{font-size:12px!important}.t span{font-size:10.5px!important}}
.t span{font-size:11.5px!important;opacity:.95;line-height:1.1}

/* 3) Legenda, podpisy i drobne napisy */
.lgd,.lgr,.lgdl,.lgrl,[class^="lg"]{font-size:13px}
small,.small,.note,.src,.mut{font-size:max(12.5px,.8em)}
figcaption,caption{font-size:13px}

/* 4) Pola i przyciski: wygodny cel dotyku (min. ~44 px), 16 px w polach blokuje przybliżanie w iOS */
input,select,textarea{font-size:16px!important}
input#usq,input[type="search"],input[type="text"]{min-height:44px}
#uscmp,button.b{min-height:44px}
a[href*="patronite"],a[href*="buycoffee"],a[href*="suppi"]{min-height:44px;display:inline-flex;align-items:center}

/* 5) Tabele: przewijanie w poziomie zamiast ściskania liter */
table{font-size:14px}
.res .row{font-size:14.5px}

/* 6) Dwa pływające przyciski wyszukiwania nakładały się na mapę – zostaje jeden, mniejszy */
.awx-fab{display:none!important}
#gs-fab{width:44px!important;height:44px!important;right:12px!important;bottom:calc(env(safe-area-inset-bottom,0px) + 12px)!important;opacity:.95}

/* 7) Dolny margines, żeby pływający przycisk nie zasłaniał ostatnich treści */
body{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}

/* 8) Licznik elektorów: podpisy „Demokraci / Republikanie” nie mogą na siebie nachodzić */
div.d span,div.r span{letter-spacing:.04em!important;font-size:12.5px!important}

/* 9) Etykiety i tagi w modułach krajów (Izrael, Brazylia): min. 12,5 px */
em.il-tg,.il-tg{font-size:12.5px!important}

/* 10) Bardzo wąskie telefony (≤360 px): strzałki przy „Kraje” i „Wyniki” chowamy,
       żeby ostatni przycisk paska (motyw jasny/ciemny) nie wychodził poza ekran */
@media (max-width:360px){
  .awb-menu>.awb-btn>svg~svg{display:none}
  .awb-menu>.awb-btn{padding:0 8px}
}

/* 11) Kotwice (#brazylia, #izrael, spis treści): nagłówek nie chowa się pod przyklejonym paskiem */
html{scroll-padding-top:110px}

/* 12) Przełącznik PL/EN w rogu ekranu: mniejszy i półprzezroczysty, mniej zasłania treść */
body>#aw-lang{opacity:.85;transform:scale(.9);transform-origin:left bottom}

/* 13) Długie słowa i adresy nie rozpychają kart i akapitów */
p,li,h1,h2,h3,td{overflow-wrap:break-word}
img,svg,video,canvas{max-width:100%}

/* 14) Panel Brazylii: tytuł nie chowa się pod paskiem „noc wyborcza” (pasek ma 44 px) */
html.nox-on #bz{padding-top:var(--nox-h,44px)}

/* 15) Górny pasek chowa się przy przewijaniu w dół (klasę m-hide ustawia js/mobile.js) */
header.awb,.nox{transition:transform .22s ease}
html.m-hide header.awb{transform:translateY(-110%)}
html.m-hide .nox{transform:translateY(calc(-100% - var(--aw-bar,52px) - 8px))}

/* 16) Panel Francji pod górnym paskiem: „Wybierz kraj” nie chowa się pod paskiem, koniec treści nad dolnym menu */
body:has(>header.awb) #fr{top:var(--aw-bar,52px)!important;bottom:var(--aw-bnav,0px)!important}
html.nox-on body:has(>header.awb) #fr{top:calc(var(--aw-bar,52px) + var(--nox-h,44px))!important}

/* 17) Tabele: przyklejona pierwsza kolumna (tło ustawia js/mobile.js) */
table.m-stick tr>:first-child{position:sticky;left:0;z-index:1;box-shadow:6px 0 8px -6px rgba(0,0,0,.25)}

/* 18) Bułgaria: siatka z mapą obwodów mieści się na najwęższych telefonach (320 px) */
.mgrid{grid-template-columns:minmax(0,1fr)!important}
.mgrid>*,.mgrid .mc{min-width:0;max-width:100%}


/* 20) Izrael: trzy kafelki (wyniki, frekwencja, próg) mieszczą się w szerokości telefonu */
#il .il-g3{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
#il .il-k{min-width:0;padding:9px 8px}
#il .il-k b{font-size:clamp(20px,6.4vw,26px)!important;white-space:nowrap}
@media (max-width:370px){#il .il-g3{grid-template-columns:repeat(2,minmax(0,1fr))}#il .il-g3>:nth-child(3){grid-column:1/-1}}

/* 21) Pasek „noc wyborcza” na wąskich telefonach: bez dzwonka (zostaje „zamknij”), więcej miejsca na wynik */
@media (max-width:420px){.nox .nox-bell{display:none!important}.nox .nox-c{padding-right:10px}}

/* 22) Bułgaria: paski w dymku obwodu na telefonie są dłuższe i czytelniejsze */
#bm-det .mbar{display:grid;grid-template-columns:82px minmax(0,1fr) auto;align-items:center;gap:8px}
#bm-det .mbar .t{display:block;width:auto;min-width:0;height:8px;aspect-ratio:auto!important}
#bm-det .mbar .t span{display:block;height:100%}

/* 23) reguła kafelków stanów (.t) nie dotyczy tabel i pasków procentowych */
table.t,.mbar .t{aspect-ratio:auto!important}

/* ===== runda 3 (28.10.2026) ===== */
/* 24) Cele dotyku min. ~40 px: górne linki podstron, okruszki, przyciski departamentów zamorskich */
.top>a{display:inline-flex;align-items:center;min-height:40px;padding:0 6px}
nav.crumbs a{display:inline-block;padding:10px 2px}
.lx-act a,a.sub-link{display:inline-flex;align-items:center;min-height:40px}
.frovg .frt{min-height:40px}
li>a[href^="#"]{display:inline-block;padding:6px 0}

/* 25) Pasek „noc wyborcza”: żaden napis poniżej 11 px */
.nox .nox-n,.nox .nox-tag,.nox .nox-in{font-size:11px!important}

/* 26) Zakładki krajów (Serbia, Bułgaria, Hiszpania) w jednym rzędzie */
nav.stab{flex-wrap:nowrap!important;gap:4px!important;padding:4px!important}
nav.stab a{flex:1 1 0!important;min-width:0;padding:10px 6px!important;font-size:13.5px;line-height:1.2;display:flex;align-items:center;justify-content:center}

/* 27) Tabele: kolumny ukrywane przez js/mobile.js, ciaśniejsze komórki, nazwy bez rozjeżdżania */
th.m-hcol,td.m-hcol{display:none!important}
table:has(#bm-tb) th,#bm-tb td{padding:8px 3px!important;font-size:13px}
table:has(#bm-tb) th{font-size:11px;letter-spacing:-.01em}
#bm-tb td:first-child{white-space:normal;line-height:1.25}
#il .il-tw td:first-child{white-space:normal!important;min-width:0}
#il .il-tw td,#il .il-tw th{padding-left:6px;padding-right:6px}

/* 28) Rynki USA: karty kandydatów jako zwarte wiersze (zdjęcie z lewej, Polymarket i Kalshi obok siebie) */
.mkc .mkk{display:grid!important;grid-template-columns:52px minmax(0,1fr) minmax(0,1fr);column-gap:12px;row-gap:2px;align-items:center;text-align:left;padding:12px!important}
.mkc .mkk>.mkw{grid-column:1;grid-row:1/3;margin:0}
.mkc .mkk .mkav{width:52px!important;height:52px!important;font-size:1rem}
.mkc .mkk>.mkn{grid-column:2/4;grid-row:1;text-align:left;margin:0;align-self:end}
.mkc .mkk>.mkp{grid-column:2/4;grid-row:2;text-align:left;margin:0;align-self:start}
.mkc .mkk>:nth-child(4){grid-column:1/3;grid-row:3;margin-top:8px}
.mkc .mkk>:nth-child(5){grid-column:1/3;grid-row:4}
.mkc .mkk>:nth-child(6){grid-column:3;grid-row:3;margin-top:8px}
.mkc .mkk>:nth-child(7){grid-column:3;grid-row:4}

/* 29) Strony stanów: wykres marginesu czytelny na telefonie (przewijany w bok, najnowsze lata widać od razu) */
.chart:has(>svg[viewBox="0 0 900 300"]){overflow-x:auto;-webkit-overflow-scrolling:touch}
.chart>svg[viewBox="0 0 900 300"]{min-width:720px}
.chart>svg[viewBox="0 0 900 300"] text{font-size:15px}

/* 30) Długie przypisy zwinięte do 3 linii (przycisk „Pokaż więcej” dodaje js/mobile.js) */
.m-clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.m-more{display:inline-flex;align-items:center;min-height:36px;margin:2px 0 6px;padding:0 12px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:transparent;color:inherit;font:600 13px/1 inherit;font-family:inherit;cursor:pointer}
html.aw-lt .m-more{border-color:rgba(20,23,31,.2)}

/* 31) Górny pasek chowa się także przy przewijaniu paneli krajów (Izrael, Francja, Brazylia, wybór kraju) */
html.m-hide body:has(>header.awb) #fr,html.m-hide.nox-on body:has(>header.awb) #fr{top:0!important}
html.m-hide.nox-on #landing{top:0!important}
/* 27b) tabele dopasowane przez js/mobile.js: węższe marginesy komórek */
table[data-mfit] td,table[data-mfit] th{padding-left:5px!important;padding-right:5px!important}
#bm-tb td:not(:first-child){white-space:nowrap;font-size:12.5px}

/* ===== runda 4: kosmetyka (28.10.2026) ===== */
/* 32) Rynki USA: daty notowań w jednym przewijanym rzędzie zamiast trzech */
.mkdr{flex-wrap:nowrap!important;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px;-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent)}
.mkdr::-webkit-scrollbar{display:none}
.mkdr>.chip{flex:none;white-space:nowrap}

/* 33) Mapa USA: przycisk Dystryktu Kolumbii jako etykieta (kropka w kolorze zwycięzcy), nie główny przycisk */
#dc.b{background:transparent!important;color:var(--fg)!important;border:1px solid var(--neu,rgba(255,255,255,.18))!important;font-weight:600;box-shadow:none!important;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;font-size:13px;padding-left:10px!important;padding-right:10px!important}
#dc.b::before{content:"";flex:none;width:11px;height:11px;border-radius:50%;background:var(--neu,#8a93a6)}
#dc.b.D::before{background:var(--dem)}#dc.b.R::before{background:var(--rep)}#dc.b.T::before{background:var(--tos)}

/* ===== 34) Telefon, runda 5 (29.10.2026) ===== */
/* a) dolna nawigacja chowa się przy przewijaniu w dół razem z górnym paskiem i wraca przy przewijaniu w górę */
.awbn{transition:transform .25s ease}
html.m-hide .awbn{transform:translateY(calc(100% + 2px))}
.aw-top{transition:transform .25s ease,opacity .2s}
html.m-hide .aw-top{transform:translateY(calc(var(--aw-bnav,56px) - 4px))}
/* b) kompaktowy pasek „noc wyborcza” (60 → 46 px) */
html.nox-on{--nox-h:50px!important}
.nox{height:50px!important}
.nox .nox-t{gap:1px!important}
.nox .nox-x{width:34px!important;height:34px!important;min-height:0!important;flex:none!important;padding:0!important}
.nox .nox-r{padding-top:0!important;padding-bottom:0!important;max-height:46px}
.nox .nox-t{padding-bottom:5px!important}
.nox .nox-c{min-height:0!important;height:44px!important;max-height:44px!important;padding-top:2px!important;padding-bottom:2px!important;gap:8px!important}
.nox .nox-fl svg{width:24px!important;height:16px!important}
.nox .nox-n{font-size:10px!important;line-height:1.1!important}
.nox .nox-v{font-size:12px!important;line-height:1.15!important}
.nox .nox-v strong{font-size:13.5px!important}
/* c) dotyk: natychmiastowa reakcja, bez podwójnego stuknięcia = przybliżenia, wyraźne „wciśnięcie” */
a,button,[role=button],summary,label,select,input[type=checkbox],input[type=radio]{touch-action:manipulation;-webkit-tap-highlight-color:rgba(227,191,104,.18)}
button:active,[role=button]:active,a.btn:active,.tab:active,.lx-chip:active,.sw-pl:active,#swiat-chips button:active,.frcd:active,nav.stab a:active{transform:scale(.97);transition:transform .06s}
@media (prefers-reduced-motion:reduce){button:active,[role=button]:active{transform:none}}
/* d) linki pod paskiem na stronach statycznych („Wszystkie stany · Mapa wyborów · Swing States”) jako przewijany rząd przycisków */
body>.wrap>.top,body>.top,.wrap>.top{display:flex!important;flex-wrap:nowrap!important;gap:8px!important;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:4px}
body>.wrap>.top::-webkit-scrollbar,.wrap>.top::-webkit-scrollbar{display:none}
.wrap>.top>a:not(.b),body>.top>a:not(.b){flex:none;display:inline-flex!important;align-items:center;min-height:36px;padding:0 14px!important;border-radius:99px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.04);white-space:nowrap;text-decoration:none!important}
.wrap>.top>.sp{display:none}
/* e) długie strony (artykuły, słownik): szybsze przewijanie – sekcje poza ekranem nie są rysowane */
main article>section,main>section.card~section.card,.gl-entry,.sl-h,article.term{content-visibility:auto;contain-intrinsic-size:auto 600px}
/* f) „Wróć tam, gdzie skończyłeś” na stronie głównej */
.aw-last{display:flex;align-items:center;gap:10px;max-width:520px;margin:0 auto 14px;padding:10px 14px;border-radius:14px;border:1px solid rgba(227,191,104,.45);background:rgba(227,191,104,.08);color:inherit;text-decoration:none!important;font-size:.9rem;min-height:44px}
.aw-last b{color:#e3bf68;white-space:nowrap}
.aw-last span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aw-last i{font-style:normal;opacity:.7}
.aw-last-x{flex:none;width:32px;height:32px;border-radius:50%;border:0;background:transparent;color:inherit;opacity:.6;font-size:1.2rem}
/* g) większe cele dotyku w Centrum analiz i katalogu kandydatów */
.a-pr .pb{min-width:36px!important;min-height:36px!important}
.ex-seg button,.yr button{min-height:36px!important}

/* ===== 35) Francja na telefonie (29.10.2026) ===== */
/* a) po schowaniu dolnego paska panel Francji sięga do dołu ekranu (nie prześwituje strona USA) */
body:has(>header.awb) #fr{transition:top .25s ease,bottom .25s ease}
html.m-hide body:has(>header.awb) #fr{bottom:0!important}
/* b) mniej „nagłówków” nad treścią: okruszki zbędne (pasek zakładek pokazuje, gdzie jesteś), odliczanie w jednej linii */
#aw-frcr{display:none!important}
.aw-frcd{padding:7px 11px!important;gap:9px!important;border-radius:12px!important;margin-bottom:10px!important}
.aw-frcd .aw-cdf svg{width:24px;height:16px}
.aw-frcd .aw-cdt b{font-size:.82rem!important}
.aw-frcd .aw-cdt small{font-size:.68rem!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aw-frcd .aw-cdn b{font-size:1.05rem!important}
.aw-frcd .aw-cdn i{font-size:.62rem!important;margin-right:4px!important}
/* c) pasek zakładek przyklejony u góry panelu przy przewijaniu */
html body #fr .frwrap>aside.frside{position:sticky!important;top:0!important;z-index:6!important;background:linear-gradient(180deg,#0d1119 80%,rgba(13,17,25,.0));padding-top:6px!important;padding-bottom:8px!important;margin-bottom:4px}
/* d) przełączniki wewnątrz zakładek (Prezydenckie / II tura / Parlamentarne, I tura / II tura / Skład) w jednym rzędzie */
#fr .pl-bt,#fr .anrt,#fr .rf-bt{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none;gap:6px!important}
#fr .pl-bt::-webkit-scrollbar,#fr .anrt::-webkit-scrollbar{display:none}
#fr .pl-bt>button,#fr .anrt>button,#fr .rf-bt>button{flex:none!important;white-space:nowrap!important;min-height:38px;padding:0 14px!important;font-size:.82rem!important;line-height:1.1!important}
/* e) tabela Monte Carlo: nazwiska w jednej linii, przewijanie w bok, kolumna z nazwiskiem przyklejona */
#frmc .mcc{overflow-x:auto!important;-webkit-overflow-scrolling:touch}
#frmc table.mct2{min-width:460px;font-size:.82rem}
#frmc table.mct2 td:first-child,#frmc table.mct2 th:first-child{position:sticky;left:0;z-index:1;background:#141924;white-space:nowrap;min-width:132px}
#frmc table.mct2 td:first-child small{display:block;font-size:.68rem;opacity:.65}
/* f) opis pod tytułem zwinięty do 3 linii (dotknięcie rozwija) */
#frres>.sub.aw-cl{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;cursor:pointer;position:relative}
#frres>.sub.aw-cl::after{content:"więcej ▾";position:absolute;right:0;bottom:0;padding-left:28px;background:linear-gradient(90deg,transparent,#0d1119 40%);color:#e3bf68;font-size:.82rem;font-weight:700}

/* ===== 36) Przyspieszenie przewijania na telefonie (29.10.2026): bez rozmycia tła pod paskami (bardzo kosztowne dla GPU telefonu) ===== */
header.awb,.awbn,.nox,#sw-tools button,#sw-regs button,.sw-pl,.aw-tipx,#aw-gtip,.aw-top{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
header.awb{background-color:rgba(11,14,20,.97)}
html.aw-lt header.awb{background-color:rgba(255,255,255,.97)}
.awbn[data-t="dark"]{background-color:rgba(11,14,20,.97)!important}
.awbn[data-t="light"]{background-color:rgba(255,255,255,.98)!important}

/* ===== 36) Telefon: poprawki z przeglądu 29.10.2026 (wersja 24) ===== */
/* panele na całą stronę (strona główna, Francja, Centrum analiz, Brazylia, Izrael): przewijanie nie „przelewa się” na stronę pod spodem */
#landing,#fr,#ace,#bz,#il{overscroll-behavior-y:contain}
#landing,html body #fr{overflow-x:hidden}
/* strona główna: po schowaniu dolnej nawigacji panel sięga do dołu ekranu (wcześniej spod spodu prześwitywała mapa USA) */
html.m-hide body:has(>header.awb) #landing{bottom:0!important}
/* strona główna: karta „Zbuduj własny scenariusz” mieści się w ekranie (była szersza o ~260 px i dało się przesuwać stronę w bok) */
#landing .lx-feat{grid-template-columns:minmax(0,1fr)!important}
#landing .lx-feat>*{min-width:0;max-width:100%}
#landing .lx-map{grid-template-columns:repeat(12,minmax(0,1fr))}
#landing .lx-map .lx-t{min-width:0!important;min-height:0!important;font-size:8px}
/* Francja: na zakładkach prognoz zamiast rozwiniętej listy grup jest ten sam rząd zakładek co na pozostałych */
#fr .frside.aw-hasall>nav.sn{display:none!important}
#fr .frside.aw-hasall>#frtabs{display:flex!important}
/* Centrum analiz: przyciski „Gotowe zestawienia” zgniatały się do 28 px (klasa .pb koliduje z paskiem wyboru lat, który ustawia container-type) */
#ace .pbs>.pb{flex:0 0 auto;container-type:normal}
/* Szanse według rynków: odstęp między nazwą rynku a wynikiem */
#mk .mkm{gap:6px;justify-content:space-between}
