/* urna-mobila: paper and stamp ink. Violet = local elections (the mayor on the ballot), grey = national. */
:root{
  --bg:#f7f4ee;--surface:#fffdf8;--fg:#1b1922;--mut:#45414d;--line:#d8d1c4;--line-soft:#e6e0d5;
  --acc:#4b2a9c;--acc-soft:#e9e2fb;--nat:#8d8797;--nat-fill:#c9c3d0;
  --m0:#5f8f8c;--m1:#ddd7cb;--m2:#d4c8f2;--m3:#ab95e3;--m4:#7d5ecb;--m5:#4b2a9c;--mline:#fffdf8;
  --shadow:0 10px 30px rgba(40,30,60,.10);
  --serif:'Fraunces',Georgia,serif;--sans:'Source Sans 3','Segoe UI',system-ui,sans-serif;
  --col:44rem;--wide:68rem;--bar:46px;
  color-scheme:light;
}
html.dark{
  --bg:#121019;--surface:#1b1824;--fg:#eeeaf4;--mut:#c4bed0;--line:#363142;--line-soft:#2a2634;
  --acc:#bba7ff;--acc-soft:#2a2242;--nat:#8d879b;--nat-fill:#4a4556;
  --m0:#6fa8a4;--m1:#34303f;--m2:#3f3463;--m3:#5f4c9e;--m4:#8c74dc;--m5:#c6b6ff;--mline:#121019;
  --shadow:0 10px 30px rgba(0,0,0,.45);
  color-scheme:dark;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:400 1.125rem/1.62 var(--sans);text-rendering:optimizeLegibility}
[hidden]{display:none!important}
svg[hidden]{display:none}
a{color:var(--acc);text-underline-offset:.18em}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.skip{position:absolute;left:-999px;top:0;background:var(--surface);padding:.5rem 1rem;z-index:100}
.skip:focus{left:1rem;top:.5rem}

/* top bar */
.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:.9rem;height:calc(var(--bar) + var(--browser-safe-top,env(safe-area-inset-top)));padding:var(--browser-safe-top,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) 0 max(1rem,env(safe-area-inset-left));background:color-mix(in srgb,var(--bg) 92%,transparent);border-bottom:1px solid var(--line-soft);font:600 .9rem/1 var(--sans)}
.topbar .home{display:flex;align-items:center;gap:.45rem;color:var(--fg);text-decoration:none;white-space:nowrap}
.motif{width:20px;height:20px;flex:none}
.topnav{display:flex;gap:1rem;overflow-x:auto;scrollbar-width:none;min-width:0}
.topnav::-webkit-scrollbar{display:none}
.topnav a{color:var(--mut);text-decoration:none;white-space:nowrap}
.topnav a:hover{color:var(--acc)}
.spacer{flex:1}
.chip{color:var(--fg);text-decoration:none;border:1px solid var(--line);border-radius:999px;padding:.32rem .7rem;white-space:nowrap}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--fg);cursor:pointer;flex:none}
.progress{position:absolute;left:0;bottom:-1px;height:2px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:var(--acc)}
@media (max-width:600px){.topnav{display:none}.topbar .home span{display:none}}

/* layout */
main{display:block}
section{scroll-margin-top:calc(var(--bar) + 12px)}
.wrap{max-width:var(--col);margin:0 auto;padding:0 1rem}
.wide{max-width:var(--wide);margin:0 auto;padding:0 1rem}
h1,h2,h3{font-family:var(--serif);font-weight:640;line-height:1.14;letter-spacing:-.01em;margin:0}
h1{font-size:clamp(2rem,4.6vw,3.35rem);max-width:22ch}
h2{font-size:clamp(1.55rem,3vw,2.15rem);margin:0 0 1rem;max-width:30ch}
h3{font-size:1.28rem;margin:2rem 0 .5rem}
p{margin:0 0 1rem}
.kicker{font:700 .82rem/1.3 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--acc);margin:0 0 1rem}
.deck{font-size:1.24rem;line-height:1.55;color:var(--fg);max-width:40rem;margin:1.2rem 0 1.4rem}
.cta{display:inline-flex;align-items:center;gap:.5rem;font:600 1rem/1 var(--sans);color:var(--surface);background:var(--acc);border-radius:999px;padding:.8rem 1.2rem;text-decoration:none}
html.dark .cta{color:#14111c}
.block{padding:3.4rem 0;border-top:1px solid var(--line-soft)}
.hero{padding:2.6rem 0 2rem}
.hero-head h1{max-width:24ch}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem 1.4rem}
.hero-actions .share-row{margin:0}
.case{display:grid;gap:1.2rem;margin-top:2rem;background:var(--surface);border:1px solid var(--line-soft);border-radius:18px;padding:1.4rem 1.3rem 1.1rem;box-shadow:var(--shadow)}
.case h2{grid-area:h}.case-text{grid-area:t}.case-fig{grid-area:f}
.case{grid-template-areas:"h" "f" "t"}
@media (min-width:900px){.case{grid-template-columns:minmax(0,1fr) minmax(0,1.75fr);grid-template-areas:"h f" "t f";align-items:start;padding:1.8rem 1.8rem 1.4rem}.case-fig{align-self:center}}
.stamps.stamps-h{display:none}
.card .stamps-row{max-width:30rem}.stamps-row text{font-size:11.5px}
@media (max-width:640px){.stamps.stamps-v{display:none}.stamps.stamps-h{display:block}.stamps-h text{font-size:11.5px}}
.case h2{font-size:1.45rem;margin-bottom:.8rem}
.case p{font-size:1.05rem}
figure{margin:0}
figcaption,.cap{font-size:.92rem;line-height:1.45;color:var(--mut);margin-top:.6rem}

/* stamp columns */
.stamps{width:100%;height:auto;display:block;margin:.4rem 0 0}
.stamps text{font:600 10.5px var(--sans);fill:var(--mut)}
.stamps .n{font:700 12px var(--sans);fill:var(--fg)}
.stamps .loc{fill:var(--acc)}
.stamps .nat{fill:none;stroke:var(--nat);stroke-width:1.2}
.stamps .base{stroke:var(--line);stroke-width:1}
.stamps .bandL{fill:var(--acc-soft)}

/* national chart */
.chart{width:100%;height:auto;display:block}
.chart text{font:600 12px var(--sans);fill:var(--mut)}
.chart .v{font:700 12.5px var(--sans);fill:var(--fg);paint-order:stroke;stroke:var(--bg);stroke-width:3px;stroke-linejoin:round}
.chart .barL{fill:var(--acc)}
.chart .barN{fill:var(--nat-fill)}
.chart .urb{fill:var(--surface);stroke:var(--fg);stroke-width:1.6}
.chart .grid{stroke:var(--line-soft)}
.chart .covid{fill:var(--line-soft)}
.keyrow{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;font-size:.92rem;color:var(--mut);margin:.4rem 0 0}
.key{display:inline-flex;align-items:center;gap:.45rem}
.sw{width:14px;height:14px;border-radius:3px;display:inline-block}
.sw.l{background:var(--acc)}.sw.n{background:var(--nat-fill)}.sw.u{border:1.6px solid var(--fg);border-radius:50%;background:var(--surface)}

/* explorer */
.explorer{display:grid;gap:1.2rem;margin-top:1.4rem}
.explorer>.mapbox{order:2}
@media (min-width:1000px){.explorer{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:start}.explorer>.mapbox{order:0}}
.mapbox{position:relative;background:var(--surface);border:1px solid var(--line-soft);border-radius:16px;overflow:hidden}
#map{display:block;width:100%;height:auto;aspect-ratio:1.42;cursor:pointer;touch-action:manipulation}
.map-tools{position:absolute;right:.6rem;top:.6rem;display:flex;gap:.4rem}
.btn{font:600 .92rem/1 var(--sans);color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:.55rem .85rem;cursor:pointer;min-height:40px}
.btn:hover{border-color:var(--acc);color:var(--acc)}
.legend{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;padding:.6rem .8rem;font-size:.85rem;color:var(--mut);border-top:1px solid var(--line-soft)}
.legend i{display:inline-block;width:22px;height:12px;border-radius:2px}
.search{position:relative}
.search label{display:block;font:600 .92rem var(--sans);margin-bottom:.35rem}
.search input{width:100%;font:400 1.08rem var(--sans);padding:.75rem .9rem;border:1.5px solid var(--line);border-radius:12px;background:var(--surface);color:var(--fg)}
.search input:focus{border-color:var(--acc);outline:none;box-shadow:0 0 0 3px var(--acc-soft)}
.sugg{position:absolute;left:0;right:0;top:100%;z-index:20;margin:.25rem 0 0;padding:.3rem;list-style:none;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);max-height:18rem;overflow:auto}
.sugg li{padding:.55rem .7rem;border-radius:8px;cursor:pointer}
.sugg li[aria-selected=true],.sugg li:hover{background:var(--acc-soft)}
.sugg small{color:var(--mut)}
.card{background:var(--surface);border:1px solid var(--line-soft);border-radius:16px;padding:1.1rem 1.1rem .9rem;margin-top:1rem;min-height:12rem}
.card h3{margin:0 0 .2rem}
.card .sub{color:var(--mut);font-size:.95rem;margin:0 0 .6rem}
.card p{font-size:1.02rem;margin:.6rem 0}
.card .flag{border-left:3px solid var(--acc);padding-left:.7rem}
.card-tools{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.6rem}

/* share row */
.share-row{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;margin:.8rem 0 0}
.share-row .lbl{font-size:.88rem;color:var(--mut);margin-right:.2rem}
.share-row a,.share-row button{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:1px solid var(--line-soft);background:transparent;color:var(--fg);cursor:pointer;padding:0}
.share-row a:hover,.share-row button:hover,.share-row a:focus-visible,.share-row button:focus-visible{color:var(--acc);border-color:var(--acc)}
.share-row svg{width:18px;height:18px}
@media (pointer:coarse){.share-row a,.share-row button{width:44px;height:44px}}
.status{font-size:.88rem;color:var(--mut);min-height:1.2em;margin:.3rem 0 0}

/* tables */
.tablewrap{overflow-x:auto;margin:1rem 0;border:1px solid var(--line-soft);border-radius:12px;background:var(--surface)}
table{border-collapse:collapse;width:100%;font-size:.98rem}
th,td{text-align:left;padding:.55rem .7rem;border-bottom:1px solid var(--line-soft);vertical-align:top}
th{font:700 .82rem/1.25 var(--sans);color:var(--mut);background:var(--surface);position:sticky;top:0}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
tr[data-extra]{display:none}
table.open tr[data-extra]{display:table-row}
tbody tr:hover{background:color-mix(in srgb,var(--acc-soft) 50%,transparent)}
.strict{color:var(--acc);font-weight:700}
.rowlink{color:var(--fg);text-decoration:none;border-bottom:1px dotted var(--mut)}
.aside{background:var(--acc-soft);border-radius:14px;padding:1rem 1.1rem;margin:1.2rem 0}
.aside h3{margin:0 0 .4rem;font-size:1.1rem}
.aside p{margin:0;font-size:1rem}
.twocol{display:grid;gap:1.4rem}
@media (min-width:1000px){.twocol{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:start}}
ul.plain{padding-left:1.2rem;margin:0 0 1rem}
ul.plain li{margin:.45rem 0}
.minichart{max-width:30rem}
.sources li{margin:.4rem 0;font-size:1rem}

footer{border-top:1px solid var(--line-soft);padding:2rem 1rem 3rem;text-align:center;font-size:.95rem;color:var(--mut);display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem 1.4rem}
footer a{color:var(--mut)}

/* reading rail (standards/v2/templates/reading-rail.css) */
.rail{display:none}
@media(min-width:1100px){
.rail{--col:var(--wide);--gut:1.25rem;display:flex;flex-direction:column;position:fixed;top:50%;left:calc(50% + var(--col)/2 + var(--gut));transform:translateY(-50%);z-index:40;margin:0;padding:.4rem 0;max-height:calc(100vh - 7rem)}
.rail::before{content:"";position:absolute;left:calc(.875rem - .5px);top:1.1rem;bottom:1.1rem;width:1px;background:var(--line)}
.rail-dot{position:relative;display:flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;text-decoration:none;border-radius:50%}
.rail-dot .dot{width:7px;height:7px;border-radius:50%;background:var(--mut);box-shadow:0 0 0 3px var(--bg);transition:transform .2s,background .2s,box-shadow .2s;flex:none}
.rail-dot:hover .dot,.rail-dot:focus-visible .dot{background:var(--acc);transform:scale(1.25)}
.rail-dot[aria-current=true] .dot{background:var(--acc);transform:scale(1.45);box-shadow:0 0 0 3px var(--bg),0 0 0 4.5px color-mix(in srgb,var(--acc) 38%,transparent)}
.rail-dot:focus-visible{outline:2px solid var(--acc);outline-offset:-1px}
.rail-label{position:absolute;right:calc(100% + .3rem);top:50%;transform:translate(6px,-50%);padding:.22rem .65rem;border:1px solid var(--line);border-radius:.5rem;background:var(--bg);color:var(--fg);box-shadow:0 6px 20px rgba(0,0,0,.14);font-size:.82rem;font-weight:600;line-height:1.3;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s,transform .15s}
.rail-dot:hover .rail-label,.rail-dot:focus-visible .rail-label{opacity:1;transform:translate(0,-50%)}
}
@media(min-width:1100px) and (max-width:1199px){.rail{display:none}}
@media(prefers-reduced-motion:reduce){.rail .dot,.rail-label{transition:none}html{scroll-behavior:auto}}
@media(forced-colors:active){.rail::before{background:CanvasText}.rail-dot .dot{background:CanvasText;box-shadow:none}.rail-dot[aria-current=true] .dot{background:Highlight}}
@media print{.topbar,.rail,.share-row,.map-tools,.explorer{display:none}}
