/* Atlas Wyborczy – warstwa dopracowania wyglądu (ładowana PO base.css i body.css).
   Nic nie nadpisuje układu ani kolorów map; dotyczy typografii, interakcji i dostępności. */

:root{
  --aw-focus:var(--acc,#7da2ff);
  --aw-r-sm:8px; --aw-r-md:12px; --aw-r-lg:16px;
  --aw-ease:cubic-bezier(.2,.7,.2,1);
  --aw-shadow-1:0 1px 2px rgba(0,0,0,.18),0 1px 1px rgba(0,0,0,.12);
  --aw-shadow-2:0 8px 28px rgba(0,0,0,.28),0 2px 6px rgba(0,0,0,.16);
}
:root[data-theme="light"]{
  --aw-shadow-1:0 1px 2px rgba(20,30,50,.10),0 1px 1px rgba(20,30,50,.06);
  --aw-shadow-2:0 10px 30px rgba(20,30,50,.16),0 2px 6px rgba(20,30,50,.08);
}

/* Typografia */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;color-scheme:dark light}
body{
  font-feature-settings:"kern","liga","calt";
  text-rendering:optimizeLegibility;
  line-height:1.5;
}
h1,h2,h3,.l-title{text-wrap:balance}
p,li{text-wrap:pretty}
/* równe cyfry w tabelach, wynikach i licznikach – liczby się nie „tańczą” */
table,td,th,#tip,#info,#leg,.num,[class*="pct"],[class*="ev"],[class*="vote"]{
  font-variant-numeric:tabular-nums lining-nums;
}
::selection{background:color-mix(in srgb,var(--aw-focus) 35%,transparent)}

/* Interakcje: spójne, płynne przejścia */
button,[role="button"],.tab,.chip,a{
  transition:background-color .16s var(--aw-ease),color .16s var(--aw-ease),
             border-color .16s var(--aw-ease),box-shadow .16s var(--aw-ease),
             transform .16s var(--aw-ease);
}
button:not(:disabled),[role="button"]{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.55}
button:active:not(:disabled){transform:translateY(1px) scale(.99)}
a{text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}

/* Dostępność: widoczny fokus tylko dla klawiatury */
:focus{outline:none}
:focus-visible{
  outline:2px solid var(--aw-focus);
  outline-offset:2px;
  border-radius:var(--aw-r-sm);
}
/* skip-link (dodaj <a class="skip" href="#main">Przejdź do treści</a> na początku <body>) */
.skip{position:fixed;left:12px;top:-60px;z-index:2147483001;padding:10px 14px;
  background:var(--fg);color:var(--bg);border-radius:var(--aw-r-sm);font-weight:700;
  text-decoration:none;box-shadow:var(--aw-shadow-2);transition:top .15s var(--aw-ease)}
.skip:focus{top:calc(12px + env(safe-area-inset-top,0px))}

/* Karty i panele */
#info,#leg,.card,[class$="-card"]{
  border-radius:var(--aw-r-md);
}
#tabs{box-shadow:var(--aw-shadow-1)}
#tabs .tab.on{box-shadow:var(--aw-shadow-1)}

/* Podpowiedź przy najechaniu na stan/okręg */
#tip,#ace-tip{
  border-radius:var(--aw-r-md);
  box-shadow:var(--aw-shadow-2);
  -webkit-backdrop-filter:saturate(1.2) blur(8px);
  backdrop-filter:saturate(1.2) blur(8px);
  line-height:1.4;
  pointer-events:none;
}

/* Okna (landing, dialogi) */
#landing{scroll-behavior:smooth;overscroll-behavior:contain}
.l-title{letter-spacing:-.03em}

/* Przewijanie i paski */
*{scrollbar-width:thin;scrollbar-color:var(--neu,#3a4256) transparent}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:var(--neu,#3a4256);border-radius:999px;border:2px solid transparent;background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background:var(--mut,#8d95a8);background-clip:content-box}
html{scroll-behavior:smooth}

/* Mapy SVG: ostrzejsze krawędzie, miękka reakcja na hover */
svg path,svg polygon{transition:fill .18s var(--aw-ease),opacity .18s var(--aw-ease),stroke .18s var(--aw-ease)}
svg{shape-rendering:geometricPrecision}

/* Ekrany dotykowe: min. 44 px celu dotyku (WCAG 2.5.5) */
@media (pointer:coarse){
  #tabs .tab,.chip,button{min-height:44px}
}

/* Szacunek dla ustawień systemu */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important;
  }
}
@media (prefers-contrast:more){
  :root{--mut:#c4c9d6}
  :root[data-theme="light"]{--mut:#3d4352}
  :focus-visible{outline-width:3px}
}
@media (forced-colors:active){
  :focus-visible{outline:2px solid Highlight}
  #tabs .tab.on{outline:2px solid Highlight}
}

/* Wydruk: czytelnie i bez elementów interfejsu */
@media print{
  #landing,#tabs,#tip,#ace-tip,.aw-lang,.skip{display:none!important}
  body{background:#fff!important;color:#000!important}
}

/* Stan ładowania map (szkielet) – pokazuje się tylko, gdy kontener jeszcze nie ma rysunku */
@keyframes aw-shimmer{to{background-position:-200% 0}}
:is(#geo,#hmap,#frmap,.pgeo)[aria-busy="true"]{
  position:relative;min-height:220px;border-radius:var(--aw-r-lg);
  background:linear-gradient(100deg,var(--card,#141923) 30%,var(--nvf,#232a38) 50%,var(--card,#141923) 70%) 0 0/200% 100%;
  animation:aw-shimmer 1.4s linear infinite;
}
:is(#geo,#hmap,#frmap,.pgeo)[aria-busy="true"]::after{
  content:"";position:absolute;inset:0;margin:auto;width:28px;height:28px;border-radius:50%;
  border:3px solid var(--neu,#3a4256);border-top-color:var(--aw-focus);
  animation:aw-spin .8s linear infinite;
}
@keyframes aw-spin{to{transform:rotate(360deg)}}
