/* VISÃO REAL — folha única. Tokens primeiro; o tema escuro só redefine tokens. */
:root {
  --bg: #f4f6fb;
  --sup: #ffffff;
  --sup-2: #eef2f9;
  --linha: #e1e6ef;
  --linha-forte: #c7d0df;
  --tinta: #101a33;
  --tinta-2: #56637e;
  --primaria: #2f4cf0;
  --primaria-suave: #e9edff;
  --calc: #6c4fd6;
  --deriv: #0b7f78;
  --parcial: #9c5b00;
  --ipe: #f5b301;
  --ipe-suave: #fff3cf;
  --ipe-tinta: #6e4f00;
  --sim: #2563d9;
  --nao: #d27806;
  --out: #9aa4b8;
  --ruim: #c0261c;
  --hero: #0d1730;
  --r-s: 8px; --r: 14px; --r-l: 22px;
  --sombra: 0 1px 2px rgba(16, 26, 51, .05), 0 8px 24px -14px rgba(16, 26, 51, .22);
  --sombra-alta: 0 2px 4px rgba(16, 26, 51, .06), 0 18px 40px -18px rgba(16, 26, 51, .35);
  --f-texto: 'Atkinson Hyperlegible', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --f-tit: 'Bricolage Grotesque', 'Atkinson Hyperlegible', system-ui, sans-serif;
  --topo-h: 64px;
  color-scheme: light;
}
/* Azul-escuro é o padrão da identidade; o claro só entra se a pessoa escolher (data-theme='light'). */
@media all {
  :root:not([data-theme='light']) {
    --bg: #0a1121; --sup: #111a2e; --sup-2: #172239; --linha: #222e4a; --linha-forte: #33416a;
    --tinta: #e9eef8; --tinta-2: #9dabc5; --primaria: #8da1ff; --primaria-suave: #1d2850;
    --calc: #b8a3ff; --deriv: #5cd2c8; --parcial: #f2b65b; --ipe: #f7c437; --ipe-suave: #3a2f0e; --ipe-tinta: #ffd979;
    --sim: #72a8f5; --nao: #eda44a; --out: #77839a; --ruim: #ff8a80; --hero: #070d1c;
    --sombra: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px -14px rgba(0, 0, 0, .6);
    --sombra-alta: 0 2px 4px rgba(0, 0, 0, .3), 0 18px 40px -18px rgba(0, 0, 0, .8);
    color-scheme: dark;
  }
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--topo-h) + 56px); }
body { margin: 0; background: var(--bg); color: var(--tinta); font: 400 1.0625rem/1.58 var(--f-texto); font-variant-numeric: tabular-nums; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; display: block; }
a { color: var(--primaria); text-underline-offset: .2em; text-decoration-thickness: 1px; text-decoration-color: color-mix(in srgb, currentColor 40%, transparent); }
a:hover { text-decoration-color: currentColor; }
:focus-visible { outline: 3px solid var(--ipe); outline-offset: 2px; border-radius: 4px; }
h1, h2, h3 { font-family: var(--f-tit); line-height: 1.1; letter-spacing: -.015em; margin: 0 0 .5em; text-wrap: balance; }
h1 { font-size: clamp(2.1rem, 3.6vw + 1rem, 3.2rem); font-weight: 760; letter-spacing: -.03em; max-width: 24ch; }
h2 { font-size: clamp(1.35rem, 1vw + 1rem, 1.7rem); font-weight: 720; margin-top: 2.6rem; }
h3 { font-size: 1.1rem; font-weight: 680; margin-top: 1.4rem; }
p { margin: 0 0 .8em; max-width: 72ch; }
.lead { font-size: 1.18rem; color: var(--tinta-2); max-width: 62ch; text-wrap: pretty; }
.nota { color: var(--tinta-2); font-size: .93rem; }
.vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pular { position: absolute; left: -999px; top: 0; background: var(--ipe); color: #101a33; padding: .5rem 1rem; z-index: 50; border-radius: var(--r-s); }
.pular:focus { left: 8px; top: 8px; }
.miolo { max-width: 76rem; margin: 0 auto; padding: 0 16px; }
@media (min-width: 720px) { .miolo { padding: 0 28px; } }
main { padding-bottom: 5rem; min-height: 60vh; }
main > .miolo > h1:first-child, .trilha { margin-top: 2.4rem; }
section { margin-bottom: 1.5rem; }
.ico { width: 1.15em; height: 1.15em; flex: none; vertical-align: -.2em; }

/* ---------- Topo ---------- */
.topo { position: sticky; top: 0; z-index: 30; background: color-mix(in srgb, var(--sup) 82%, transparent); backdrop-filter: saturate(1.6) blur(14px); -webkit-backdrop-filter: saturate(1.6) blur(14px); border-bottom: 1px solid var(--linha); }
.topo-in { max-width: 76rem; margin: 0 auto; padding: 0 16px; height: var(--topo-h); display: flex; align-items: center; gap: 14px; }
@media (min-width: 720px) { .topo-in { padding: 0 28px; } }
.marca { display: inline-flex; align-items: center; gap: 10px; color: var(--tinta); text-decoration: none; font: 800 1.08rem/1 var(--f-tit); letter-spacing: .05em; white-space: nowrap; }
.marca-olho { width: 28px; height: 18px; border: 2.5px solid currentColor; border-radius: 50%; position: relative; flex: none; }
.marca-olho::after { content: ''; position: absolute; inset: 2.5px 8px; background: var(--ipe); border-radius: 50%; }
.menu { display: flex; gap: 2px; margin-left: 18px; }
.menu a { display: inline-flex; align-items: center; gap: 7px; color: var(--tinta-2); text-decoration: none; padding: 7px 12px; border-radius: 999px; font-size: .95rem; font-weight: 700; transition: background-color .15s, color .15s; }
.menu a:hover { color: var(--tinta); background: var(--sup-2); }
.menu a[aria-current] { color: var(--primaria); background: var(--primaria-suave); }
.busca-topo { margin-left: auto; position: relative; display: flex; align-items: center; width: min(19rem, 32vw); }
.busca-topo .ico { position: absolute; left: 12px; color: var(--tinta-2); pointer-events: none; }
.busca-topo input { width: 100%; height: 40px; padding: 0 2.2rem 0 2.4rem; border-radius: 999px; border: 1px solid var(--linha); background: var(--sup-2); color: var(--tinta); font: inherit; font-size: .95rem; transition: border-color .15s, background-color .15s; }
.busca-topo input:focus { outline: none; border-color: var(--primaria); background: var(--sup); box-shadow: 0 0 0 4px var(--primaria-suave); }
.busca-topo kbd { position: absolute; right: 10px; font: 700 .75rem var(--f-texto); color: var(--tinta-2); border: 1px solid var(--linha-forte); border-radius: 5px; padding: 1px 6px; pointer-events: none; }
.busca-topo input:focus ~ kbd { display: none; }
.menu-bt { display: none; margin-left: 4px; width: 42px; height: 42px; border-radius: 12px; border: 1px solid var(--linha); background: var(--sup); color: var(--tinta); cursor: pointer; }
.menu-bt .ico { width: 22px; height: 22px; vertical-align: middle; }
body[data-page='inicio'] .busca-topo { visibility: hidden; }
@media (max-width: 1060px) {
  .menu-bt { display: block; }
  .menu { display: none; position: absolute; left: 0; right: 0; top: var(--topo-h); margin: 0; flex-direction: column; gap: 2px; padding: 10px 16px 16px; background: var(--sup); border-bottom: 1px solid var(--linha); box-shadow: var(--sombra-alta); }
  .menu.aberto { display: flex; }
  .menu a { padding: 12px 14px; border-radius: var(--r-s); font-size: 1.02rem; }
  .busca-topo { width: auto; flex: 1; max-width: 22rem; }
  .busca-topo kbd { display: none; }
}
@media (max-width: 520px) { .marca > span:last-child { display: none; } body[data-page='inicio'] .busca-topo { display: none; } body[data-page='inicio'] .menu-bt { margin-left: auto; } }

/* ---------- Hero (início) ---------- */
.hero { position: relative; overflow: hidden; color: #f3f6ff; background:
  radial-gradient(60rem 30rem at 92% -10%, rgba(47, 76, 240, .55), transparent 60%),
  radial-gradient(40rem 22rem at -5% 110%, rgba(245, 179, 1, .22), transparent 60%),
  var(--hero); }
.hero::after { content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .5;
  background-image: linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px);
  background-size: 44px 44px; mask-image: linear-gradient(to bottom, #000 30%, transparent 95%); }
.hero-in { position: relative; z-index: 1; padding-top: clamp(3rem, 7vw, 6rem); padding-bottom: clamp(2.5rem, 5vw, 4rem); }
.hero h1 { color: #fff; max-width: 17ch; font-size: clamp(2.3rem, 5vw + .8rem, 4.3rem); line-height: 1.02; }
.hero-tag { display: inline-flex; align-items: center; gap: 8px; font-size: .9rem; font-weight: 700; color: #c9d3f5; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .14); padding: 6px 12px; border-radius: 999px; margin-bottom: 1.3rem; }
.busca-hero { position: relative; display: flex; align-items: center; max-width: 44rem; margin: 2rem 0 1rem; background: #fff; border-radius: 999px; padding: 6px; box-shadow: 0 20px 50px -20px rgba(0, 0, 0, .6); }
.busca-hero > .ico { margin-left: 16px; color: #56637e; width: 22px; height: 22px; }
.busca-hero input { flex: 1; min-width: 0; border: 0; background: transparent; color: #101a33; font: inherit; font-size: clamp(1rem, .6vw + .9rem, 1.15rem); padding: .85rem .8rem; }
.busca-hero input::placeholder { color: #7a86a0; }
.busca-hero input:focus { outline: none; }
.busca-hero:focus-within { box-shadow: 0 0 0 4px rgba(245, 179, 1, .7), 0 20px 50px -20px rgba(0, 0, 0, .6); }
.busca-hero button { background: #2f4cf0; color: #fff; border: 0; font: 700 1rem var(--f-texto); height: 48px; padding: 0 1.5rem; border-radius: 999px; cursor: pointer; }
.busca-hero button:hover { filter: brightness(1.08); }
.atalhos { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: .93rem; color: #aeb9d8; max-width: none; }
.atalhos a { color: #eef2ff; text-decoration: none; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .16); padding: 5px 12px; border-radius: 999px; transition: background-color .15s; }
.atalhos a:hover { background: rgba(255, 255, 255, .16); }
.hero .numeros { margin-top: 2.6rem; border-top: 1px solid rgba(255, 255, 255, .14); padding-top: 1.6rem; gap: 1.5rem; }
.hero .numeros > div { background: none; border: 0; box-shadow: none; padding: 0; }
.hero .numeros dd { color: #fff; }
.hero .numeros dt { color: #aeb9d8; }
@media (max-width: 520px) { .busca-hero button { padding: 0 1rem; } .busca-hero > .ico { display: none; } }

/* ---------- Números-chave ---------- */
.numeros { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: 12px; margin: 1.4rem 0 0; }
.numeros > div { display: flex; flex-direction: column-reverse; justify-content: flex-end; background: var(--sup); border: 1px solid var(--linha); border-radius: var(--r); padding: 1rem 1.1rem; box-shadow: var(--sombra); }
.numeros dd { margin: 0; font: 760 clamp(1.5rem, 1.4vw + 1rem, 2.05rem)/1.05 var(--f-tit); letter-spacing: -.02em; }
.numeros dt { font-size: .9rem; color: var(--tinta-2); margin-top: .35rem; }
.numeros-nota { order: -1; font-size: .78rem; color: var(--tinta-2); margin-top: .2rem; }

/* ---------- Cartões e painéis ---------- */
.cartao { background: var(--sup); border: 1px solid var(--linha); border-radius: var(--r); padding: 1.2rem 1.3rem; box-shadow: var(--sombra); }
.cartao > h2:first-child, .cartao > h3:first-child { margin-top: 0; }
.painel-agora { margin-top: 2.6rem; }
.painel-cab { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 16px; margin-bottom: 1rem; }
.painel-cab h2 { margin: 0; display: flex; align-items: center; gap: 12px; }
.painel-grade { display: grid; gap: 16px; margin-bottom: 1rem; }
@media (min-width: 900px) { .painel-grade { grid-template-columns: 1fr 1fr; } }
.pulso { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: var(--ipe); box-shadow: 0 0 0 0 rgba(245, 179, 1, .6); animation: pulso 2.4s infinite; flex: none; }
h2 .pulso { width: 12px; height: 12px; }
@keyframes pulso { 70% { box-shadow: 0 0 0 9px rgba(245, 179, 1, 0); } 100% { box-shadow: 0 0 0 0 rgba(245, 179, 1, 0); } }
@media (prefers-reduced-motion: reduce) { .pulso { animation: none; } * { transition: none !important; } }
.rotas { display: grid; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); gap: 14px; }
.rotas a { display: grid; grid-template-columns: auto 1fr; column-gap: 14px; align-items: start; padding: 1.15rem 1.2rem; text-decoration: none; color: var(--tinta); background: var(--sup); border: 1px solid var(--linha); border-radius: var(--r); box-shadow: var(--sombra); transition: transform .15s ease, border-color .15s, box-shadow .15s; }
.rotas a:hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--primaria) 45%, var(--linha)); box-shadow: var(--sombra-alta); }
.rotas .ico { grid-row: span 2; width: 42px; height: 42px; padding: 10px; border-radius: 12px; background: var(--primaria-suave); color: var(--primaria); }
.rotas b { font: 720 1.12rem var(--f-tit); margin-bottom: .15rem; }
.rotas span { color: var(--tinta-2); font-size: .94rem; line-height: 1.45; }

/* ---------- Selos de origem ---------- */
.selo { display: inline-flex; align-items: stretch; font-size: .76rem; line-height: 1.25; border-radius: 6px; text-decoration: none; vertical-align: middle; margin: 2px 4px 2px 0; border: 1.5px solid; overflow: hidden; white-space: nowrap; background: var(--sup); }
.selo > span { padding: 2px 7px; }
.selo-nat { font-weight: 700; }
.selo-fonte { border-left: 1.5px solid; }
.selo-oficial { color: var(--primaria); border-style: solid; }
.selo-oficial .selo-nat { background: var(--primaria); color: var(--sup); }
.selo-calculado { color: var(--calc); border-style: dashed; }
.selo-calculado .selo-fonte { border-left-style: dashed; }
.selo-derivado { color: var(--deriv); border-style: dotted; border-width: 2px; }
.selo-derivado .selo-fonte { border-left-style: dotted; }
.selo-incompleto { color: var(--parcial); border-style: double; border-width: 3px; }
.selo-incompleto .selo-fonte { border-left: 1px solid; }
a.selo:hover { text-decoration: underline; }
a.selo-oficial::after { content: '↗'; padding: 2px 6px 2px 0; }
.legenda { list-style: none; padding: 0; display: grid; gap: .7rem; }
.legenda li { display: grid; grid-template-columns: 11rem 1fr; gap: 12px; align-items: center; }
@media (max-width: 560px) { .legenda li { grid-template-columns: 1fr; gap: 2px; } }

/* ---------- Agenda e votações ---------- */
.faixa-agora { padding: 2.6rem 0 1.4rem; background: var(--sup); border-bottom: 1px solid var(--linha); margin-bottom: 1.8rem; }
.faixa-agora h1 { margin-top: 0; }
.frescor { font-size: .88rem; color: var(--tinta-2); }
.duas-col { display: grid; gap: 2rem; }
@media (min-width: 960px) { .duas-col { grid-template-columns: 1fr 1fr; gap: 2.4rem; } }
.lista-evt, .lista-vot, .lista-votos-p, .resultados, .contratos, .docs, .rank, .lista-simples, .lista-pessoas, .votos, .ids, .orient, .grade-uf, .grade-pessoas { list-style: none; padding: 0; margin: 0 0 1rem; }
.evt { display: grid; grid-template-columns: 4.4rem 1fr; gap: 14px; padding: .95rem 0; border-bottom: 1px solid var(--linha); }
.evt:last-child { border-bottom: 0; }
.evt-hora time { font: 760 1.3rem var(--f-tit); display: block; letter-spacing: -.02em; }
.evt-hora span { font-size: .8rem; color: var(--tinta-2); }
.evt-tit { margin: 0 0 .2rem; }
.evt-desc { margin: 0 0 .35rem; color: var(--tinta-2); font-size: .96rem; }
.evt-links { margin: 0; font-size: .9rem; }
.compacta .evt { padding: .7rem 0; }
.dia { font-size: .95rem; margin: 1.4rem 0 .5rem; color: var(--tinta-2); font-family: var(--f-texto); font-weight: 700; }
.sit { display: inline-block; font-size: .74rem; font-weight: 700; padding: 2px 9px; border-radius: 999px; margin-left: 6px; vertical-align: 2px; background: var(--sup-2); color: var(--tinta-2); }
.sit-andamento { background: var(--ipe); color: #2b2000; }
.sit-cancelada { text-decoration: line-through; }
.sit-prevista { background: var(--primaria-suave); color: var(--primaria); }
.sit-suspensa { background: var(--ipe-suave); color: var(--ipe-tinta); }
.pauta { margin: .3rem 0 .5rem; }
.pauta summary { cursor: pointer; color: var(--primaria); font-size: .93rem; }
.pauta ol { margin: .5rem 0 0; padding-left: 1.3rem; }
.pauta li { margin-bottom: .5rem; }
.ementa, .pauta-sit { display: block; font-size: .9rem; color: var(--tinta-2); }
.vot { border-bottom: 1px solid var(--linha); }
.vot:last-child { border-bottom: 0; }
.vot-link { display: grid; gap: 4px; padding: .85rem .6rem; margin: 0 -.6rem; border-radius: var(--r-s); text-decoration: none; color: var(--tinta); transition: background-color .15s; }
.vot-link:hover { background: var(--sup-2); }
.vot-meta { font-size: .83rem; color: var(--tinta-2); }
.vot-tit { font-size: 1rem; }
.vot-tit strong { font-family: var(--f-tit); }
.res { display: inline-block; font-weight: 700; font-size: .78rem; padding: 2px 9px; border-radius: 999px; background: var(--sup-2); color: var(--tinta-2); }
.res-aprov { background: var(--primaria-suave); color: var(--primaria); }
.res-rejeit { background: var(--ipe-suave); color: var(--ipe-tinta); }
.placar { font-size: .88rem; color: var(--tinta-2); margin-left: 6px; }
.placar-simb { font-style: italic; }
.lista-vot:not(.compacta) { background: var(--sup); border: 1px solid var(--linha); border-radius: var(--r); padding: .3rem 1.2rem; box-shadow: var(--sombra); }
.lista-evt:not(.compacta) { background: var(--sup); border: 1px solid var(--linha); border-radius: var(--r); padding: .2rem 1.2rem; box-shadow: var(--sombra); }

/* ---------- Votação ---------- */
.trilha { font-size: .9rem; color: var(--tinta-2); margin-bottom: .7rem; }
.h-vot { font-size: clamp(1.9rem, 3vw + 1rem, 2.8rem); }
.ficha { background: var(--sup); border: 1px solid var(--linha); border-radius: var(--r); padding: .4rem 1.3rem; margin: 1.2rem 0 1.5rem; box-shadow: var(--sombra); }
.ficha p { display: grid; grid-template-columns: 11rem 1fr; gap: 10px; margin: 0; padding: .7rem 0; border-bottom: 1px solid var(--linha); max-width: none; }
.ficha p:last-child { border-bottom: 0; }
.ficha-r { color: var(--tinta-2); font-size: .92rem; }
.ficha-api { font-size: .84rem; word-break: break-all; }
@media (max-width: 600px) { .ficha p { grid-template-columns: 1fr; gap: 2px; } }
.placar-cartao { margin-top: 1rem; }
.pg-nums { display: flex; flex-wrap: wrap; gap: 1rem 2.4rem; margin-bottom: .8rem; }
.pg-n { margin: 0; display: flex; flex-direction: column; }
.pg-n b { font: 780 clamp(2rem, 3vw + 1rem, 3rem)/1 var(--f-tit); letter-spacing: -.03em; }
.pg-n span { font-size: .9rem; color: var(--tinta-2); }
.pg-n-sim b { color: var(--sim); } .pg-n-nao b { color: var(--nao); } .pg-n-out b { color: var(--tinta-2); }
.placar-grande .pg-barra { display: flex; gap: 3px; height: 14px; border-radius: 999px; overflow: hidden; margin-bottom: .6rem; }
.pg-sim { background: var(--sim); } .pg-nao { background: var(--nao); } .pg-out { background: var(--out); }
.orient { display: flex; flex-wrap: wrap; gap: 6px; }
.orient li { background: var(--sup); border: 1px solid var(--linha); border-radius: 999px; padding: 4px 12px; font-size: .88rem; display: flex; gap: 8px; }
.votos { display: grid; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); gap: 0 1.5rem; }
.votos li { display: flex; gap: 8px; align-items: baseline; padding: .45rem 0; border-bottom: 1px solid var(--linha); }
.votos li > :first-child { flex: 1; min-width: 0; }
.votos-pu { font-size: .8rem; color: var(--tinta-2); }
.voto { font-size: .78rem; font-weight: 700; min-width: 3.4rem; text-align: center; padding: 1px 8px; border-radius: 999px; }
.voto-sim { color: var(--sim); background: color-mix(in srgb, var(--sim) 13%, transparent); }
.voto-nao { color: var(--nao); background: color-mix(in srgb, var(--nao) 15%, transparent); }
.voto-out { color: var(--tinta-2); background: var(--sup-2); font-weight: 400; }
.filtro-lista { display: block; margin: .5rem 0 1rem; font-size: .92rem; color: var(--tinta-2); }

/* ---------- Formulários ---------- */
.filtro-lista input, .filtros-form input, .filtros-form select, .busca-local input { display: block; margin-top: 6px; width: 100%; max-width: 28rem; height: 44px; padding: 0 .9rem; font: inherit; font-size: 1rem; border: 1px solid var(--linha-forte); border-radius: 10px; background: var(--sup); color: var(--tinta); transition: border-color .15s, box-shadow .15s; }
.filtro-lista input:focus, .filtros-form input:focus, .filtros-form select:focus, .busca-local input:focus { outline: none; border-color: var(--primaria); box-shadow: 0 0 0 4px var(--primaria-suave); }
.filtros-form button, .busca-local button, .apoio button { background: #2f4cf0; color: #fff; border: 0; font: 700 1rem var(--f-texto); height: 44px; padding: 0 1.3rem; border-radius: 10px; cursor: pointer; }
.filtros-form button:hover, .busca-local button:hover { filter: brightness(1.08); }
.filtros { display: flex; flex-wrap: wrap; gap: 6px; margin: 1.1rem 0; }
.filtros a { padding: .4rem .95rem; border: 1px solid var(--linha); background: var(--sup); border-radius: 999px; text-decoration: none; color: var(--tinta); font-size: .93rem; font-weight: 700; }
.filtros a:hover { border-color: var(--linha-forte); }
.filtros a[aria-current] { background: var(--tinta); color: var(--bg); border-color: var(--tinta); }
.filtros-form { display: flex; flex-wrap: wrap; gap: 12px 16px; align-items: flex-end; margin: 1.2rem 0; padding: 1rem 1.1rem; background: var(--sup); border: 1px solid var(--linha); border-radius: var(--r); }
.filtros-form label { font-size: .88rem; color: var(--tinta-2); flex: 1 1 12rem; }
.busca-local { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-end; margin: 1rem 0 1.5rem; }
.busca-local label { flex: 1 1 18rem; font-size: .9rem; color: var(--tinta-2); }
.busca-local input { max-width: none; }
.aviso { border: 1px solid var(--linha); border-left: 4px solid var(--ipe); padding: 1.1rem 1.3rem; border-radius: var(--r); background: var(--sup); margin: 1.5rem 0; box-shadow: var(--sombra); }
.aviso h2 { margin-top: 0; font-size: 1.2rem; }

/* ---------- Tabelas ---------- */
.tab { width: 100%; border-collapse: collapse; margin: .5rem 0 .7rem; font-size: .94rem; }
.tab caption { text-align: left; font-weight: 700; padding-bottom: .5rem; }
.tab th, .tab td { text-align: left; padding: .55rem .6rem .55rem 0; border-bottom: 1px solid var(--linha); vertical-align: top; }
.tab thead th { font-size: .82rem; color: var(--tinta-2); font-weight: 700; border-bottom: 1px solid var(--linha-forte); }
.tab td { text-align: right; white-space: nowrap; }
.tab tbody th { font-weight: 400; }
.tab tbody tr:hover { background: color-mix(in srgb, var(--sup-2) 60%, transparent); }
.tab .doc { display: block; font-size: .8rem; color: var(--tinta-2); }
.tab-partidos td, .tab-num td { text-align: right; }
.rolagem { overflow-x: auto; }
#lista-cand td { text-align: left; white-space: normal; }
.ruim { color: var(--ruim); font-weight: 700; } .medio { color: var(--parcial); font-weight: 700; }
.barra-cel { width: 30%; } .barra-cel span { display: block; height: 8px; background: var(--primaria); border-radius: 999px; }

/* ---------- Pessoa ---------- */
.pessoa-topo { background: linear-gradient(180deg, var(--sup) 0%, var(--bg) 100%); border-bottom: 1px solid var(--linha); padding: 2.4rem 0 0; margin-bottom: 1rem; }
.pessoa-topo-in { display: grid; grid-template-columns: auto 1fr; gap: 1.6rem; align-items: center; }
.foto { width: 132px; height: 176px; object-fit: cover; border-radius: 18px; border: 1px solid var(--linha); background: var(--sup-2); box-shadow: var(--sombra-alta); }
.foto-vazia { display: grid; place-items: center; font: 800 3rem var(--f-tit); color: var(--tinta-2); }
.pessoa h1 { margin-bottom: .35rem; }
.papel { font-size: 1.1rem; font-weight: 700; margin-bottom: .35rem; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.pilula { display: inline-flex; align-items: center; gap: 6px; font-size: .78rem; font-weight: 700; padding: 3px 10px; border-radius: 999px; }
.pilula-ativa { background: var(--ipe-suave); color: var(--ipe-tinta); }
.pilula-ativa::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--ipe); }
.civil { color: var(--tinta-2); margin: 0 0 .2rem; font-size: .95rem; }
.ancoras { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; padding-top: 1.3rem; padding-bottom: .8rem; }
.ancoras a { flex: none; font-size: .92rem; font-weight: 700; color: var(--tinta-2); text-decoration: none; padding: 7px 14px; border-radius: 999px; border: 1px solid var(--linha); background: var(--sup); }
.ancoras a:hover { color: var(--primaria); border-color: color-mix(in srgb, var(--primaria) 40%, var(--linha)); }
@media (max-width: 560px) { .pessoa-topo-in { grid-template-columns: 1fr; } .foto { width: 104px; height: 138px; } }
.timeline { list-style: none; margin: 0; padding: 0 0 0 1.6rem; position: relative; }
.timeline::before { content: ''; position: absolute; left: 6px; top: .6rem; bottom: .6rem; width: 2px; background: var(--linha); border-radius: 2px; }
.tl { position: relative; padding: .9rem 1.1rem; margin-bottom: .8rem; background: var(--sup); border: 1px solid var(--linha); border-radius: var(--r); box-shadow: var(--sombra); }
.tl::before { content: ''; position: absolute; left: calc(-1.6rem + 1px); top: 1.15rem; width: 12px; height: 12px; border-radius: 50%; background: var(--sup); border: 2.5px solid var(--primaria); }
.tl-mand::before { background: var(--primaria); }
.tl p { margin: 0 0 .25rem; }
.tl p:last-child { margin: .4rem 0 0; }
.tl-tit { font-weight: 700; font-family: var(--f-tit); font-size: 1.05rem; }
.tl-eleito { color: var(--primaria); }
.quadro { background: var(--sup); border: 1px solid var(--linha); border-radius: var(--r); padding: 1.1rem 1.3rem; margin: 1rem 0; box-shadow: var(--sombra); }
.quadro h2, .quadro h3 { margin-top: 0; }
.ids li { padding: .6rem 0; border-bottom: 1px solid var(--linha); display: grid; gap: 3px; }
.ids li:last-child { border-bottom: 0; }
.ids li span { color: var(--tinta-2); font-size: .9rem; }
.ids li .selo { justify-self: start; }
.lista-votos-p { background: var(--sup); border: 1px solid var(--linha); border-radius: var(--r); padding: .3rem 1.1rem; box-shadow: var(--sombra); margin-top: .8rem; }
.lista-votos-p li a { display: grid; grid-template-columns: 6.4rem 1fr auto; gap: 12px; padding: .65rem 0; border-bottom: 1px solid var(--linha); text-decoration: none; color: var(--tinta); align-items: baseline; }
.lista-votos-p li:last-child a { border-bottom: 0; }
.lista-votos-p li a:hover .vp-tit { text-decoration: underline; }
.vp-data { font-size: .84rem; color: var(--tinta-2); }
@media (max-width: 560px) { .lista-votos-p li a { grid-template-columns: 1fr auto; } .vp-data { grid-column: 1 / -1; } }
.meses { display: flex; align-items: flex-end; gap: 6px; height: 140px; margin: 1.2rem 0 1.6rem; padding: 0 .2rem; border-bottom: 1px solid var(--linha-forte); max-width: 44rem; }
.mes { flex: 1; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; position: relative; }
.mes-b { width: 100%; background: linear-gradient(180deg, var(--primaria), color-mix(in srgb, var(--primaria) 65%, var(--sup))); border-radius: 6px 6px 0 0; }
.mes-r { position: absolute; bottom: -1.4rem; font-size: .75rem; color: var(--tinta-2); }
.docs { background: var(--sup); border: 1px solid var(--linha); border-radius: var(--r); padding: .3rem 1.1rem; }
.docs li { display: grid; grid-template-columns: 6rem 1fr 7rem 6rem; gap: 10px; padding: .5rem 0; border-bottom: 1px solid var(--linha); font-size: .92rem; }
.docs li:last-child { border-bottom: 0; }
@media (max-width: 640px) { .docs li { grid-template-columns: 1fr auto; } }
.bens-anos { display: grid; grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr)); gap: 14px; }
.bens-ano { background: var(--sup); border: 1px solid var(--linha); border-radius: var(--r); padding: 1rem 1.2rem; box-shadow: var(--sombra); }
.bens-total { display: flex; justify-content: space-between; align-items: baseline; margin: 0 0 .3rem; }
.bens-total span { font: 700 1rem var(--f-texto); color: var(--tinta-2); } .bens-total b { font: 760 1.6rem var(--f-tit); letter-spacing: -.02em; }
#cota .duas-col > div { min-width: 0; }

/* ---------- Território ---------- */
.h-uf { font-size: .42em; margin-left: .5em; color: var(--tinta-2); font-weight: 700; background: var(--sup-2); padding: 2px 10px; border-radius: 999px; vertical-align: .5em; }
.fiscal { display: grid; gap: 16px; }
@media (min-width: 820px) { .fiscal { grid-template-columns: 1fr 1fr; } }
.fiscal > div { background: var(--sup); border: 1px solid var(--linha); border-radius: var(--r); padding: 1.1rem 1.3rem; box-shadow: var(--sombra); }
.fiscal h3 { margin-top: 0; }
.fx { margin-bottom: .85rem; }
.fx p { display: flex; justify-content: space-between; margin: 0 0 5px; max-width: none; font-size: .95rem; }
.fx p b { font-family: var(--f-tit); }
.fx-b { height: 10px; background: var(--sup-2); border-radius: 999px; overflow: hidden; }
.fx-b span { display: block; height: 100%; border-radius: 999px; }
.fx-prev { background: var(--linha-forte); } .fx-real, .fx-pag { background: var(--primaria); } .fx-emp { background: var(--calc); } .fx-liq { background: var(--deriv); }
.fx-det { font-size: .88rem; color: var(--tinta-2); margin: 0; }
.contratos { display: grid; gap: 12px; }
.contrato { background: var(--sup); border: 1px solid var(--linha); border-radius: var(--r); padding: 1rem 1.2rem; box-shadow: var(--sombra); }
.contrato p { margin: 0 0 .3rem; }
.c-obj { font-weight: 700; }
.c-val b { font: 760 1.25rem var(--f-tit); letter-spacing: -.01em; }
.c-val span, .c-partes { font-size: .9rem; color: var(--tinta-2); }
.c-partes span { display: block; }
.c-emenda { font-size: .88rem; color: var(--deriv); font-weight: 700; }
.grade-uf { display: grid; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); gap: 10px; }
.grade-uf a { display: flex; gap: 12px; align-items: center; padding: .7rem .9rem; background: var(--sup); border: 1px solid var(--linha); border-radius: 12px; text-decoration: none; color: var(--tinta); transition: border-color .15s, transform .15s; }
.grade-uf a b { font: 800 .95rem var(--f-tit); color: var(--primaria); background: var(--primaria-suave); border-radius: 8px; min-width: 2.4rem; text-align: center; padding: 4px 0; }
.grade-uf a:hover { border-color: color-mix(in srgb, var(--primaria) 45%, var(--linha)); transform: translateY(-1px); }
.cols { columns: 3 13rem; }
.lista-simples li { padding: .2rem 0; }
.lista-simples li span { color: var(--tinta-2); font-size: .88rem; }
.lista-pessoas { columns: 2 16rem; column-gap: 2rem; }
.lista-pessoas li { padding: .4rem 0; break-inside: avoid; display: flex; justify-content: space-between; gap: 8px; border-bottom: 1px solid var(--linha); }
.lista-pessoas li span { color: var(--tinta-2); font-size: .86rem; text-align: right; }
details summary { cursor: pointer; }
details > summary { padding: .35rem 0; font-weight: 700; }

/* ---------- Listas de pessoas, busca ---------- */
.contagem { font-weight: 700; margin-top: 1rem; color: var(--tinta-2); }
.cobertura { font-size: .92rem; color: var(--tinta-2); }
.grade-pessoas { display: grid; grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr)); gap: 12px; }
.grade-pessoas a { display: grid; grid-template-columns: 56px 1fr; gap: 14px; padding: .8rem; background: var(--sup); border: 1px solid var(--linha); border-radius: var(--r); text-decoration: none; color: var(--tinta); align-items: center; transition: border-color .15s, box-shadow .15s; }
.grade-pessoas a:hover { border-color: color-mix(in srgb, var(--primaria) 45%, var(--linha)); box-shadow: var(--sombra); }
.grade-pessoas img { width: 56px; height: 74px; object-fit: cover; border-radius: 10px; background: var(--sup-2); }
.grade-pessoas b { display: block; font-family: var(--f-tit); font-size: 1.02rem; }
.grade-pessoas span span { display: block; font-size: .86rem; color: var(--tinta-2); }
.grade-pessoas .r26 { font-size: .8rem; margin-top: 2px; }
.resultados { display: grid; gap: 8px; }
.resultados a { display: block; padding: .85rem 1.1rem; background: var(--sup); border: 1px solid var(--linha); border-radius: 12px; text-decoration: none; transition: border-color .15s; }
.resultados a:hover { border-color: color-mix(in srgb, var(--primaria) 45%, var(--linha)); }
.resultados b { display: block; font-size: 1.05rem; font-family: var(--f-tit); }
.resultados span { color: var(--tinta-2); font-size: .92rem; }
.vazio { border: 1.5px dashed var(--linha-forte); border-radius: var(--r); padding: 1.1rem 1.3rem; color: var(--tinta-2); margin: .5rem 0 1rem; background: color-mix(in srgb, var(--sup) 50%, transparent); }
.vazio p { margin: 0; }
.paginas { display: flex; gap: .8rem; margin-top: 1.2rem; }
.paginas a, .bt-sec { display: inline-flex; align-items: center; gap: 8px; padding: .55rem 1.05rem; border: 1px solid var(--linha-forte); background: var(--sup); border-radius: 999px; text-decoration: none; font-weight: 700; font-size: .94rem; color: var(--tinta); transition: border-color .15s, color .15s; }
.paginas a:hover, .bt-sec:hover { border-color: var(--primaria); color: var(--primaria); }
.sugestoes { position: absolute; left: 0; right: 0; top: calc(100% + 8px); background: var(--sup); color: var(--tinta); border: 1px solid var(--linha); border-radius: var(--r); box-shadow: var(--sombra-alta); list-style: none; margin: 0; padding: 6px; z-index: 40; max-height: 70vh; overflow: auto; text-align: left; }
.sugestoes a { display: block; padding: .55rem .8rem; text-decoration: none; color: var(--tinta); border-radius: 10px; }
.sugestoes a[aria-selected='true'], .sugestoes a:hover { background: var(--sup-2); }
.sugestoes b { display: block; font-weight: 700; } .sugestoes span { font-size: .84rem; color: var(--tinta-2); }

/* ---------- Fontes / texto / interno / apoio ---------- */
.fontes { display: grid; grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)); gap: 14px; }
.fonte { background: var(--sup); border: 1px solid var(--linha); border-radius: var(--r); padding: 1.1rem 1.2rem; box-shadow: var(--sombra); position: relative; overflow: hidden; }
.fonte::before { content: ''; position: absolute; inset: 0 0 auto; height: 4px; background: var(--primaria); }
.fonte-requer_chave::before, .fonte-planejada::before { background: var(--ipe); }
.fonte-inviavel_vinculo::before { background: var(--out); }
.fonte h3 { margin-top: .2rem; }
.fonte-st { font-weight: 700; font-size: .9rem; color: var(--tinta-2); }
.fonte dl { display: grid; grid-template-columns: 6.5rem 1fr; gap: 5px 10px; font-size: .88rem; margin: .6rem 0; }
.fonte dt { color: var(--tinta-2); }
.fonte dd { margin: 0; }
.cobertura-lista { background: var(--sup); border: 1px solid var(--linha); border-radius: var(--r); padding: 1rem 1.2rem 1rem 2.4rem; }
.cobertura-lista li { margin-bottom: .45rem; }
.texto { max-width: 52rem; }
.texto h2 { margin-top: 2.2rem; }
.texto ul { max-width: 72ch; }
.interno .grade-3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); gap: 14px; }
.interno .grade-3 > div { background: var(--sup); border: 1px solid var(--linha); border-radius: var(--r); padding: .9rem 1.1rem; }
.interno .grade-3 h3 { margin-top: 0; }
.rank li { display: flex; justify-content: space-between; gap: 10px; padding: .35rem 0; border-bottom: 1px solid var(--linha); font-size: .92rem; }
.rank li:last-child { border-bottom: 0; }
.apoio { background: var(--sup); border: 1px solid var(--linha); border-radius: var(--r-l); padding: 1.4rem; box-shadow: var(--sombra); max-width: 36rem; }
.apoio fieldset { border: 0; padding: 0; margin: 0 0 1rem; }
.apoio legend { font-weight: 700; margin-bottom: .6rem; }
.valores { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.valores label span { display: inline-block; padding: .65rem 1.2rem; border: 1px solid var(--linha-forte); border-radius: 999px; cursor: pointer; font-weight: 700; }
.valores input[type=radio] { position: absolute; opacity: 0; }
.valores input:checked + span { border-color: var(--primaria); background: var(--primaria); color: var(--sup); }
.valores input:focus-visible + span { outline: 3px solid var(--ipe); }
.valores .outro input { width: 7rem; height: 42px; padding: 0 .7rem; font: inherit; border: 1px solid var(--linha-forte); border-radius: 999px; background: var(--sup); color: var(--tinta); margin-left: 6px; }
.apoio button { height: 48px; padding: 0 1.6rem; border-radius: 999px; }
#pix { margin-top: 1rem; }
#pix img { width: 240px; height: 240px; background: #fff; padding: 10px; border-radius: var(--r); }
#pix textarea { width: 100%; max-width: 32rem; font: .85rem monospace; padding: .6rem; border-radius: 10px; border: 1px solid var(--linha-forte); background: var(--sup); color: var(--tinta); }

/* ---------- Rodapé ---------- */
.rodape { background: var(--hero); color: #c3cce3; padding: 2.8rem 0 3rem; font-size: .94rem; }
.rodape-in { max-width: 76rem; margin: 0 auto; padding: 0 16px; display: grid; gap: 1.5rem; }
@media (min-width: 720px) { .rodape-in { padding: 0 28px; grid-template-columns: 1.4fr 1fr; align-items: start; } }
.rodape .marca { color: #fff; margin-bottom: .9rem; }
.rodape p { max-width: 52ch; }
.rodape-links { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.rodape-links a { color: #e6ebfa; }
@media print { .topo, .rodape, .menu, .filtros, .busca-local, .ancoras { display: none; } a.selo::after { content: ' (' attr(href) ')'; } .cartao, .tl, .contrato { box-shadow: none; } }
@media (max-width: 520px) { .numeros { grid-template-columns: 1fr 1fr; } .hero .numeros { gap: 1.1rem; } .numeros dd { font-size: 1.45rem; } }

/* ---------- Ajustes de celular (estouro horizontal) ---------- */
.duas-col > *, .painel-grade > *, .fiscal > *, .bens-anos > *, .rotas > *, .numeros > * { min-width: 0; }
.evt { grid-template-columns: 4.4rem minmax(0, 1fr); }
.evt-corpo, .vot-link, .tl, .contrato, .cartao { min-width: 0; overflow-wrap: anywhere; }
.selo { max-width: 100%; }
.selo > span { overflow: hidden; text-overflow: ellipsis; }
.sit, .res { font-size: .78rem; }
.numeros dd { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 640px) {
  .tab { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .numeros dd { font-size: 1.3rem; }
  .evt { grid-template-columns: 3.6rem minmax(0, 1fr); gap: 10px; }
  .evt-hora time { font-size: 1.1rem; }
  .cartao, .lista-vot:not(.compacta), .lista-evt:not(.compacta), .ficha, .lista-votos-p, .docs { padding-left: 1rem; padding-right: 1rem; }
  .rodape-links a { padding: 6px 0; }
}

/* ---------- Linguagem simples: glossário, etapa, títulos ---------- */
.kicker { font-size: .9rem; color: var(--tinta-2); margin: 0 0 .5rem; font-weight: 700; }
.termo { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: help; text-decoration: underline dotted; text-decoration-color: var(--primaria); text-underline-offset: .22em; text-decoration-thickness: 2px; }
.termo:hover { color: var(--primaria); }
.gloss { position: fixed; inset: auto 16px 16px 16px; margin: 0 auto; max-width: 30rem; background: var(--sup); color: var(--tinta); border: 1px solid var(--linha); border-radius: var(--r); box-shadow: var(--sombra-alta); padding: 1rem 1.1rem; font-size: .97rem; line-height: 1.5; }
.gloss b { display: block; font-family: var(--f-tit); font-size: 1.05rem; margin-bottom: .25rem; }
.gloss::backdrop { background: rgba(10, 17, 33, .25); }
.etapa { background: var(--primaria-suave); border-radius: var(--r); padding: .9rem 1.1rem; margin: 1rem 0; max-width: 46rem; }
.etapa p { margin: 0; }
.etapa-rot { font-size: 1.05rem; margin-bottom: .2rem !important; display: flex; align-items: center; gap: 8px; color: var(--primaria); }
.etapa-rot b { color: var(--tinta); }
.placar-res { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: 1.1rem; font-weight: 700; margin-bottom: 1rem; }
.oficial { margin: 1.5rem 0; }
.oficial summary { font-weight: 700; color: var(--primaria); }
.oficial p { margin-top: .7rem; }
.vot-meta { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.vot-tit { font: 700 1.06rem/1.35 var(--f-tit); letter-spacing: -.005em; }
.vot-sub, .vp-sub { display: block; font-size: .84rem; color: var(--tinta-2); font-weight: 400; font-family: var(--f-texto); }
.mini { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 2px; }
.mini-b { display: flex; width: 120px; height: 8px; border-radius: 999px; overflow: hidden; background: var(--sup-2); }
.mini-b i { display: block; height: 100%; }
.mini .placar { margin: 0; }
.partidos { list-style: none; padding: 0; display: grid; gap: 8px; margin: 0 0 1rem; }
.partidos li { display: grid; grid-template-columns: 8rem minmax(0, 1fr) 11rem; gap: 12px; align-items: center; font-size: .93rem; }
.pt-nome { font-weight: 700; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pt-barra { display: flex; height: 12px; border-radius: 999px; overflow: hidden; background: var(--sup-2); gap: 2px; }
.pt-barra i { display: block; }
.pt-num { color: var(--tinta-2); font-size: .86rem; }
.t-sim { color: var(--sim); } .t-nao { color: var(--nao); }
@media (max-width: 640px) { .partidos li { grid-template-columns: 6rem minmax(0, 1fr); } .pt-num { grid-column: 1 / -1; margin-top: -4px; } }
.chips-uf, .chips { display: flex; flex-wrap: wrap; gap: 6px; margin: .5rem 0 .8rem; list-style: none; padding: 0; }
.chips-uf button, .chips a { font: 700 .86rem var(--f-texto); padding: 5px 11px; border-radius: 999px; border: 1px solid var(--linha); background: var(--sup); color: var(--tinta); cursor: pointer; text-decoration: none; }
.chips-uf button[aria-pressed='true'] { background: var(--tinta); color: var(--bg); border-color: var(--tinta); }
.chips a:hover, .chips-uf button:hover { border-color: var(--primaria); }
.caminho { list-style: none; padding: 0 0 0 1.4rem; position: relative; margin: 0 0 1rem; }
.caminho::before { content: ''; position: absolute; left: 5px; top: .6rem; bottom: .6rem; width: 2px; background: var(--linha); }
.caminho li { position: relative; margin-bottom: .6rem; }
.caminho li::before { content: ''; position: absolute; left: -1.4rem; top: 1.05rem; width: 12px; height: 12px; border-radius: 50%; background: var(--primaria); border: 3px solid var(--bg); }
.caminho a { display: grid; gap: 2px; padding: .7rem 1rem; background: var(--sup); border: 1px solid var(--linha); border-radius: 12px; text-decoration: none; color: var(--tinta); }
.caminho a:hover { border-color: color-mix(in srgb, var(--primaria) 45%, var(--linha)); }
.cam-data, .cam-sub { font-size: .85rem; color: var(--tinta-2); }
.caminho b { font-family: var(--f-tit); margin-right: 6px; }
.tl-ano { position: absolute; right: 1rem; top: .9rem; font: 800 .85rem var(--f-tit); color: var(--tinta-2); }
.tl-tit { padding-right: 3rem; }
.frase-grande { font-size: 1.15rem; line-height: 1.5; max-width: 60ch; }
.frase-grande b { font-family: var(--f-tit); }
.det { margin-bottom: .6rem; padding: .7rem 1.1rem; }
.det summary { display: flex; align-items: center; gap: 8px; }
.det .pilula { background: var(--sup-2); color: var(--tinta-2); }
.rotas-mini { margin: 1rem 0; }
.explorar { margin-top: 3rem; padding-top: .5rem; border-top: 1px solid var(--linha); }

/* ---------- Mapa ---------- */
:root { --q0: #dfe6ff; --q1: #b3c3ff; --q2: #8199fb; --q3: #506df0; --q4: #2a3db8; --qx: #e6e9ef; --m-borda: #ffffff; }
:root:not([data-theme='light']) { --q0: #1f2b55; --q1: #2e4190; --q2: #4562d0; --q3: #7d94ff; --q4: #bfcbff; --qx: #1a2235; --m-borda: #0a1121; }
.mapa { background: var(--sup); border: 1px solid var(--linha); border-radius: var(--r-l); padding: 1rem; box-shadow: var(--sombra); margin: 1rem 0 1.4rem; }
.mapa-ctrl { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; padding-bottom: .6rem; }
.mapa-ctrl button { flex: none; font: 700 .9rem var(--f-texto); padding: 7px 14px; border-radius: 999px; border: 1px solid var(--linha); background: var(--sup); color: var(--tinta-2); cursor: pointer; }
.mapa-ctrl button[aria-pressed='true'] { background: #2f4cf0; border-color: #2f4cf0; color: #fff; }
.mapa-area { position: relative; }
.mapa svg { width: 100%; height: auto; max-height: 72vh; display: block; touch-action: manipulation; }
.mapa-compacto svg { max-height: 340px; }
.mapa path { fill: var(--qx); stroke: var(--m-borda); stroke-width: .8px; vector-effect: non-scaling-stroke; transition: fill .25s; cursor: pointer; }
.mapa path[data-q='0'] { fill: var(--q0); } .mapa path[data-q='1'] { fill: var(--q1); } .mapa path[data-q='2'] { fill: var(--q2); }
.mapa path[data-q='3'] { fill: var(--q3); } .mapa path[data-q='4'] { fill: var(--q4); }
.mapa-compacto path { fill: var(--sup-2); stroke: var(--linha-forte); }
.mapa path.m-dest { fill: var(--ipe) !important; stroke: var(--tinta); stroke-width: 1.6px; }
.mapa a:hover path, .mapa a:focus path, .mapa path.ativo { stroke: var(--tinta); stroke-width: 2px; }
.mapa a:focus { outline: none; }
.mapa-card { position: absolute; z-index: 5; pointer-events: none; background: var(--sup); color: var(--tinta); border: 1px solid var(--linha); border-radius: 12px; box-shadow: var(--sombra-alta); padding: .6rem .8rem; font-size: .9rem; min-width: 11rem; max-width: 16rem; }
.mapa-card b { display: block; font-family: var(--f-tit); font-size: 1.02rem; }
.mapa-card span { color: var(--tinta-2); }
.mapa-card.fixo { pointer-events: auto; left: 8px !important; right: 8px; bottom: 8px; top: auto !important; max-width: none; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.mapa-card .abrir { pointer-events: auto; font-weight: 700; text-decoration: none; background: #2f4cf0; color: #fff; padding: 6px 12px; border-radius: 999px; white-space: nowrap; }
.mapa-leg .leg { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: .82rem; color: var(--tinta-2); margin-top: .7rem; }
.mapa-leg span { display: inline-flex; align-items: center; gap: 6px; }
.sw { width: 14px; height: 14px; border-radius: 4px; display: inline-block; border: 1px solid var(--linha); }
.sw.q0 { background: var(--q0); } .sw.q1 { background: var(--q1); } .sw.q2 { background: var(--q2); } .sw.q3 { background: var(--q3); } .sw.q4 { background: var(--q4); } .sw.qx { background: var(--qx); }
.mapa-nota { margin: .6rem 0 0; font-size: .86rem; }
.votos li.fora-uf { display: none; }
.etapa-rot { display: block !important; }
.etapa-rot .ico { margin-right: 4px; }
.quorum { background: var(--ipe-suave); color: var(--ipe-tinta); border-radius: 10px; padding: .6rem .8rem; font-size: .95rem; }
@media (max-width: 640px) { .h-vot { font-size: 1.6rem; } h1 { font-size: 1.9rem; } }

/* ---------- Barras e números clicáveis ---------- */
.fx { display: grid; gap: 2px; }
.fx-a { display: block; color: inherit; text-decoration: none; border-radius: 10px; padding: 6px 8px; margin: 0 -8px; transition: background-color .15s; }
.fx-a:hover, .fx-a:focus-visible { background: var(--sup-2); }
.fx-a:hover .fx-ver, .fx-a:focus-visible .fx-ver { opacity: 1; transform: translateX(2px); }
.fx-ver { display: inline-flex; color: var(--primaria); opacity: .55; transition: opacity .15s, transform .15s; vertical-align: -2px; }
.fx-termo { font-size: .82rem; margin: -2px 0 4px; }
.fx-det a { font-weight: 700; }
.num-link a { display: flex; flex-direction: column-reverse; justify-content: flex-end; height: 100%; color: inherit; text-decoration: none; }
.num-link { padding: 0 !important; }
.num-link a { padding: 1rem 1.1rem; border-radius: var(--r); }
.num-link a:hover, .num-link a:focus-visible { background: var(--sup-2); }
.num-ver { order: -2; font-size: .8rem; font-weight: 700; color: var(--primaria); margin-top: .4rem; }
.numeros .num-link dd { order: 0; }

/* ---------- Painel de detalhes (dialog) ---------- */
.painel { border: 0; padding: 0; margin: 0 0 0 auto; width: min(760px, 94vw); max-width: none; height: 100vh; max-height: none; background: var(--bg); color: var(--tinta); box-shadow: var(--sombra-alta); display: none; flex-direction: column; }
.painel[open] { display: flex; }
.painel::backdrop { background: rgba(8, 14, 30, .45); }
.painel-cab { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-bottom: 1px solid var(--linha); background: var(--sup); position: sticky; top: 0; }
.painel-rot { margin: 0; font: 700 1rem var(--f-tit); flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.painel-abrir { font-size: .85rem; font-weight: 700; white-space: nowrap; }
.painel-fechar { font: 700 .9rem var(--f-texto); border: 1px solid var(--linha-forte); background: var(--sup); color: var(--tinta); border-radius: 999px; padding: 8px 14px; cursor: pointer; min-height: 40px; }
.painel-corpo { overflow-y: auto; padding: 8px 20px 40px; flex: 1; overscroll-behavior: contain; }
.painel-corpo:focus { outline: none; }
.painel-carregando, .painel-erro { padding: 2rem 0; color: var(--tinta-2); }
.painel-erro { color: var(--ruim); }
@media (prefers-reduced-motion: no-preference) { .painel[open] { animation: painel-entra .2s ease-out; } }
@keyframes painel-entra { from { transform: translateX(24px); opacity: .6; } to { transform: none; opacity: 1; } }
@media (max-width: 720px) {
  .painel { margin: auto 0 0 0; width: 100vw; height: 92vh; border-radius: 18px 18px 0 0; }
  .painel-abrir { display: none; }
  .painel-corpo { padding: 6px 16px 32px; }
  @keyframes painel-entra { from { transform: translateY(32px); opacity: .6; } to { transform: none; opacity: 1; } }
}
.det-cab .trilha { margin-top: .8rem; }
.det-tit { font-size: clamp(1.5rem, 2vw + 1rem, 2rem); margin: .2rem 0 .8rem; }
.det-pagina { max-width: 52rem; }

/* ---------- Listas de composição ---------- */
.detlista, .detlista ul { list-style: none; padding: 0; margin: 0; }
.detlista { margin: 1rem 0; background: var(--sup); border: 1px solid var(--linha); border-radius: var(--r); padding: 4px 12px; }
.detlista li { border-bottom: 1px solid var(--linha); }
.detlista li:last-child { border-bottom: 0; }
.detlista ul { margin-left: 14px; border-left: 2px solid var(--linha); padding-left: 10px; }
.detlista summary { list-style: none; cursor: pointer; }
.detlista summary::-webkit-details-marker { display: none; }
.detlista summary .dl-rot b::before { content: '▸'; display: inline-block; width: 1em; color: var(--primaria); transition: transform .15s; }
.detlista details[open] > summary .dl-rot b::before { transform: rotate(90deg); }
.detlista summary:hover { background: var(--sup-2); }
.dl-folha .dl-rot b::before { content: ''; display: inline-block; width: 1em; }
.dl-linha { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 14px; padding: 10px 6px; border-radius: 8px; }
.dl-rot { display: grid; gap: 2px; }
.dl-rot small { color: var(--tinta-2); font-size: .84rem; }
.dl-rot .dl-of { font-size: .76rem; opacity: .85; }
.dl-val { text-align: right; display: grid; gap: 1px; align-content: start; }
.dl-val b { font: 760 1.05rem var(--f-tit); white-space: nowrap; }
.dl-val small { color: var(--tinta-2); font-size: .8rem; white-space: nowrap; }
.dl-barra { grid-column: 1 / -1; height: 6px; background: var(--sup-2); border-radius: 999px; overflow: hidden; }
.dl-barra i { display: block; height: 100%; background: var(--primaria); border-radius: 999px; }
.dl-fases { display: grid; grid-template-columns: repeat(4, auto); gap: 2px 14px; text-align: right; }
.dl-fases span { display: grid; }
@media (max-width: 640px) {
  .dl-linha { grid-template-columns: 1fr; }
  .dl-val { text-align: left; }
  .dl-fases { grid-template-columns: repeat(2, minmax(0, 1fr)); text-align: left; }
}
.fases { list-style: none; padding: 0; display: grid; gap: 4px; font-size: .92rem; color: var(--tinta-2); margin: .5rem 0 1rem; }
.fases li { padding-left: 1rem; position: relative; }
.fases li::before { content: ''; position: absolute; left: 0; top: .55em; width: 7px; height: 7px; border-radius: 50%; background: var(--primaria); }
.det-fonte { margin-top: 1.4rem; padding: 1rem 1.1rem; border-radius: var(--r); background: var(--sup); border: 1px solid var(--linha); font-size: .92rem; }
.det-fonte p { margin: 0 0 .5rem; }
.det-rel { margin-top: 1.4rem; }
.det-rel h2 { font-size: 1.15rem; margin-top: 0; }
.aviso-mini { padding: .8rem 1rem; font-size: .92rem; margin: 1rem 0; }
.aviso-mini p { margin: 0; }
ul.meses { list-style: none; margin-left: 0; }
.mes a { display: flex; flex-direction: column; justify-content: flex-end; align-items: center; width: 100%; height: 100%; text-decoration: none; color: inherit; border-radius: 6px 6px 0 0; }
.mes a:hover .mes-b, .mes a:focus-visible .mes-b { filter: brightness(1.15); outline: 2px solid var(--ipe); outline-offset: 1px; }
.regs { list-style: none; padding: 0; margin: .8rem 0; display: grid; gap: 8px; }
.regs li { display: grid; grid-template-columns: 9rem minmax(0, 1fr) auto; gap: 6px 14px; align-items: start; background: var(--sup); border: 1px solid var(--linha); border-radius: 12px; padding: .7rem .9rem; }
.regs li > div:first-child { display: grid; }
.regs li > div:first-child b { font: 760 1.02rem var(--f-tit); }
.regs li span, .regs li small { color: var(--tinta-2); font-size: .86rem; display: block; }
.regs li > div:nth-child(2) > a, .regs li > div:nth-child(2) > span:first-child { color: var(--tinta); font-weight: 700; font-size: .95rem; }
.regs li > div:nth-child(2) > a { color: var(--primaria); }
@media (max-width: 640px) { .regs li { grid-template-columns: 1fr; } }
.bt-mini { display: inline-flex; align-items: center; gap: 6px; font: 700 .84rem var(--f-texto); padding: 5px 11px; border-radius: 999px; border: 1px solid var(--linha-forte); background: var(--sup); color: var(--primaria); text-decoration: none; white-space: nowrap; }
.bt-mini:hover { border-color: var(--primaria); }
.bt-mini .ico { width: 14px; height: 14px; }
.c-obj a { color: var(--tinta); text-decoration: none; }
.c-obj a:hover { color: var(--primaria); text-decoration: underline; }
.ficha small.doc, .ficha .doc { display: block; font-size: .82rem; color: var(--tinta-2); }
/* ---------- Apuração ---------- */
.apur-grade { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); }
.apur-cab { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px; margin: 0 0 .6rem; }
.apur-cab b { font: 760 1.1rem var(--f-tit); }
.apur-prog { font-size: .88rem; color: var(--tinta-2); margin: 0 0 .4rem; }
.apur-barra { height: 8px; border-radius: 999px; background: var(--sup-2); overflow: hidden; margin-bottom: .8rem; }
.apur-barra i { display: block; height: 100%; background: var(--ipe); }
.apur-lista { list-style: none; padding: 0; margin: 0 0 .6rem; display: grid; gap: 8px; }
.apur-lista li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3px 12px; }
.apur-nome b { display: block; } .apur-nome small, .apur-num small { color: var(--tinta-2); font-size: .8rem; }
.apur-num { text-align: right; } .apur-num b { display: block; font: 760 1.15rem var(--f-tit); }
.apur-b { grid-column: 1 / -1; height: 6px; border-radius: 999px; background: var(--sup-2); overflow: hidden; }
.apur-b i { display: block; height: 100%; background: var(--primaria); }
.apur-fonte { margin: .4rem 0 0; font-size: .88rem; }
.aviso-eleicao { border-left-color: var(--primaria); }
.sessao { margin-bottom: 14px; }
/* ---------- Histórico de votos ---------- */
.hist-res { list-style: none; padding: 0; margin: .6rem 0 1rem; display: grid; gap: 6px; }
.hist-res a { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 14px; padding: .55rem .7rem; border-radius: 10px; text-decoration: none; color: var(--tinta); border: 1px solid transparent; }
.hist-res a:hover, .hist-res a:focus-visible { background: var(--sup-2); }
.hist-res a[aria-current] { border-color: var(--primaria); background: var(--primaria-suave); }
.hr-rot small, .hr-num small { display: block; color: var(--tinta-2); font-size: .8rem; }
.hr-num { text-align: right; } .hr-num b { font: 760 1.1rem var(--f-tit); }
.hr-barra { grid-column: 1 / -1; height: 6px; background: var(--sup-2); border-radius: 999px; overflow: hidden; }
.hr-barra i { display: block; height: 100%; background: var(--out); }
.hb-sim { background: var(--sim) !important; } .hb-nao { background: var(--nao) !important; }
.cats { margin: .6rem 0; }
.cats ul { list-style: none; padding: 0; margin: .5rem 0; display: grid; gap: 4px; }
.cats li { display: grid; grid-template-columns: minmax(0, 1fr) auto 4.5rem; gap: 10px; padding: .3rem 0; border-bottom: 1px solid var(--linha); font-size: .93rem; }
.cats li small { color: var(--tinta-2); text-align: right; }
.tram { list-style: none; padding: 0; margin: .6rem 0 1rem; border-left: 2px solid var(--linha); }
.tram li { position: relative; padding: .5rem 0 .7rem 1rem; display: grid; gap: 2px; }
.tram li::before { content: ''; position: absolute; left: -6px; top: .85rem; width: 10px; height: 10px; border-radius: 50%; background: var(--sup); border: 2px solid var(--primaria); }
.tram-data { font-size: .82rem; color: var(--tinta-2); }
.tram li > span:not(.tram-data) { font-size: .9rem; color: var(--tinta-2); }
.compromissos { padding-left: 1.2rem; } .compromissos li { margin-bottom: .4rem; }
/* Legenda compacta do mapa (corrige legendas múltiplas visíveis: [hidden] era anulado por display:flex) */
.mapa-leg .leg[hidden], .mapa-nota[hidden] { display: none !important; }
.mapa-leg .leg { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: .82rem; color: var(--tinta-2); margin-top: .7rem; }
.leg-unid { width: 100%; font-weight: 700; color: var(--tinta); }
.leg-escala { display: inline-flex; height: 12px; width: min(220px, 50vw); border-radius: 999px; overflow: hidden; }
.leg-escala i { flex: 1; }
.leg-escala .q0 { background: var(--q0); } .leg-escala .q1 { background: var(--q1); } .leg-escala .q2 { background: var(--q2); } .leg-escala .q3 { background: var(--q3); } .leg-escala .q4 { background: var(--q4); }
.leg-ext { font-weight: 700; color: var(--tinta); }
.leg-sd { display: inline-flex; align-items: center; gap: 5px; margin-left: auto; }
.evt-dia { display: block; font: 700 .78rem var(--f-texto); color: var(--primaria); text-transform: none; }
.evt { grid-template-columns: 5rem minmax(0, 1fr); }
@media (max-width: 640px) { .evt { grid-template-columns: 4.4rem minmax(0, 1fr); } }
/* ---------- Votos com foto ---------- */
.vf { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: .6rem 0; position: sticky; top: var(--topo-h); z-index: 4; background: color-mix(in srgb, var(--bg) 92%, transparent); backdrop-filter: blur(8px); padding: 8px 0; }
.vf-voto { display: inline-flex; background: var(--sup); border: 1px solid var(--linha); border-radius: 999px; padding: 3px; gap: 2px; }
.vf-b { font: 700 .9rem var(--f-texto); border: 0; background: none; color: var(--tinta-2); padding: 7px 12px; border-radius: 999px; cursor: pointer; }
.vf-b span { font-weight: 400; opacity: .8; }
.vf-b[aria-pressed='true'] { background: var(--tinta); color: var(--bg); }
.vf-b.vf-sim[aria-pressed='true'] { background: var(--sim); color: #fff; }
.vf-b.vf-nao[aria-pressed='true'] { background: var(--nao); color: #fff; }
.vf-busca { flex: 1 1 14rem; } .vf-busca input, .vf-uf select { width: 100%; height: 40px; padding: 0 .8rem; font: inherit; font-size: .95rem; border: 1px solid var(--linha-forte); border-radius: 999px; background: var(--sup); color: var(--tinta); }
.vf-uf { flex: 0 1 11rem; }
.vf-cont { font-size: .88rem; color: var(--tinta-2); margin: 0 0 .5rem; }
.vcards { list-style: none; padding: 0; margin: 0 0 1rem; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15.5rem), 1fr)); gap: 8px; }
.vcard[hidden] { display: none; }
.vcard-a { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 8px 10px 8px 8px; background: var(--sup); border: 1px solid var(--linha); border-radius: 14px; text-decoration: none; color: var(--tinta); transition: border-color .15s, transform .15s; position: relative; overflow: hidden; }
a.vcard-a:hover { border-color: color-mix(in srgb, var(--primaria) 45%, var(--linha)); transform: translateY(-1px); }
.vcard-a::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--out); }
.vcard-sim .vcard-a::before { background: var(--sim); } .vcard-nao .vcard-a::before { background: var(--nao); }
.vcard img, .vcard-ini { width: 48px; height: 60px; border-radius: 10px; object-fit: cover; background: var(--sup-2); }
.vcard-ini { display: grid; place-items: center; font: 800 1rem var(--f-tit); color: var(--tinta-2); }
.vcard-txt { min-width: 0; } .vcard-txt b { display: block; font-size: .95rem; line-height: 1.25; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vcard-txt small { color: var(--tinta-2); font-size: .8rem; }
.vcard-voto { font: 700 .78rem var(--f-texto); padding: 3px 9px; border-radius: 999px; background: var(--sup-2); color: var(--tinta-2); white-space: nowrap; max-width: 7.5rem; overflow: hidden; text-overflow: ellipsis; }
.vcard-sim .vcard-voto { background: color-mix(in srgb, var(--sim) 15%, transparent); color: var(--sim); }
.vcard-nao .vcard-voto { background: color-mix(in srgb, var(--nao) 17%, transparent); color: var(--nao); }
/* ---------- Zoom do mapa ---------- */
.mapa svg { touch-action: pan-y; }
.mapa-area.com-zoom svg { touch-action: none; cursor: grab; }
.mapa-area.com-zoom svg:active { cursor: grabbing; }
.zoom-ctr { position: absolute; right: 8px; top: 8px; display: flex; flex-direction: column; gap: 6px; align-items: center; z-index: 4; }
.zoom-ctr button { width: 40px; height: 40px; border-radius: 12px; border: 1px solid var(--linha-forte); background: var(--sup); color: var(--tinta); font: 700 1.2rem/1 var(--f-texto); cursor: pointer; box-shadow: var(--sombra); }
.zoom-ctr button:hover { border-color: var(--primaria); color: var(--primaria); }
.zoom-txt { font: 700 .72rem var(--f-texto); color: var(--tinta-2); min-height: 1em; }
.zoom-dica { font-size: .8rem; color: var(--tinta-2); margin: .3rem 0 0; }
/* ---------- Página inicial centrada no mapa ---------- */
.hero-mapa .hero-grid { display: grid; gap: 18px 36px; padding-top: clamp(1.6rem, 4vw, 3.2rem); padding-bottom: clamp(1.6rem, 4vw, 3rem); position: relative; z-index: 1;
  grid-template-columns: minmax(0, 1fr); grid-template-areas: "txt" "mapa" "painel"; }
@media (min-width: 1000px) { .hero-mapa .hero-grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); grid-template-areas: "txt mapa" "painel mapa"; align-items: start; } }
.hero-txt { grid-area: txt; } .hero-mapa-area { grid-area: mapa; } .hero-painel { grid-area: painel; }
.hero-mapa h1 { font-size: clamp(2.1rem, 3.6vw + 1rem, 3.6rem); max-width: 14ch; }
.hero-mapa .hero-sub { color: #c4cde6; font-size: 1.08rem; max-width: 46ch; }
.hero-mapa .busca-hero { margin: 1.3rem 0 .9rem; }
.hero .mapa { background: rgba(255, 255, 255, .035); border-color: rgba(255, 255, 255, .1); box-shadow: none; padding: .8rem; margin: 0; }
.hero .mapa-ctrl button { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .14); color: #d7def2; }
.hero .mapa-ctrl button[aria-pressed='true'] { background: #f5b301; border-color: #f5b301; color: #1c1600; }
.hero .mapa-leg .leg, .hero .mapa-nota, .hero .zoom-dica, .hero .zoom-txt { color: #aeb9d8; }
.hero .leg-unid, .hero .leg-ext { color: #eef2ff; }
.hero .mapa-nota a, .hero .mapa-nota .selo { display: none; }
.hero .mapa path { stroke: #0d1730; }
.hero .zoom-ctr button { background: #111c38; color: #eef2ff; border-color: rgba(255, 255, 255, .2); }
.hero-painel { background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); border-radius: var(--r-l); padding: 1.1rem 1.2rem; color: #eef2ff; min-height: 12rem; }
.hp-rot { font: 760 1.5rem var(--f-tit); margin: 0 0 .6rem; letter-spacing: -.02em; }
.hp-lista { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: 10px 18px; margin: 0 0 .8rem; }
.hp-lista div { border-top: 1px solid rgba(255, 255, 255, .12); padding-top: .5rem; }
.hp-lista dt { font-size: .8rem; color: #aeb9d8; }
.hp-lista dd { margin: 0; font: 760 1.15rem var(--f-tit); }
.hp-lista .hp-ativo dd { color: #f5b301; }
.hp-dica { margin: 0; font-size: .9rem; color: #aeb9d8; display: flex; gap: 8px; align-items: center; }
.hp-abrir { display: inline-flex; padding: .6rem 1.1rem; border-radius: 999px; background: #f5b301; color: #1c1600; font-weight: 800; text-decoration: none; }
.hp-abrir:hover { filter: brightness(1.06); }
.hero .mapa svg { max-height: min(62vh, 640px); }

/* ---- Botão Apoie (topo e página de apoio) ---- */
.topo-apoie { display: inline-flex; align-items: center; gap: 6px; height: 38px; padding: 0 14px 0 11px; border-radius: 999px; background: var(--ipe); color: #101a33; font-weight: 700; font-size: .92rem; text-decoration: none; white-space: nowrap; flex: none; transition: transform .15s, box-shadow .15s; }
.topo-apoie:hover { transform: translateY(-1px); box-shadow: 0 6px 16px -6px rgba(245, 179, 1, .7); color: #101a33; }
.topo-apoie .ico { width: 18px; height: 18px; fill: currentColor; stroke: none; }
.topo-apoie[aria-current='page'] { box-shadow: inset 0 0 0 2px #101a33; }
@media (max-width: 520px) {
  .topo-apoie { height: 36px; padding: 0 11px 0 9px; font-size: .86rem; }
  body[data-page='inicio'] .topo-apoie { margin-left: auto; }
  body[data-page='inicio'] .menu-bt { margin-left: 4px; }
}
@media (max-width: 340px) { .topo-apoie span { display: none; } .topo-apoie { padding: 0; width: 38px; justify-content: center; } }
.apoio-cta { margin: 1.6rem 0; padding: 1.4rem; border-radius: var(--r-l, 18px); background: var(--ipe-suave); border: 1px solid color-mix(in srgb, var(--ipe) 45%, transparent); }
.bt-apoie { display: inline-flex; align-items: center; gap: 10px; padding: .9rem 1.5rem; border-radius: 999px; background: var(--ipe); color: #101a33; font-weight: 800; font-size: 1.05rem; text-decoration: none; }
.bt-apoie:hover { color: #101a33; filter: brightness(1.05); }
.bt-apoie .ico { width: 20px; height: 20px; fill: currentColor; stroke: none; }
.apoio-cta .nota { margin: .9rem 0 0; }
/* No app instalado (standalone), respeita a área segura do topo em aparelhos com entalhe */
@media (display-mode: standalone) { .topo { padding-top: env(safe-area-inset-top); } }

/* ---- Página Apoie: duas formas de contribuir e QR Code ---- */
.apoie .apoio-transp { border-left: 4px solid var(--ipe); padding: .2rem 0 .2rem 1rem; color: var(--tinta-2); margin: 1.2rem 0 1.6rem; }
.apoio-opcoes { display: grid; gap: 14px; margin: 1.4rem 0; }
@media (min-width: 640px) { .apoio-opcoes { grid-template-columns: 1fr 1fr; } }
.apoio-op { display: flex; flex-direction: column; gap: .5rem; background: var(--sup); border: 1px solid var(--linha); border-radius: var(--r-l); padding: 1.3rem 1.3rem 1.4rem; box-shadow: var(--sombra); }
.apoio-op h2 { margin: 0; font-size: 1.15rem; }
.apoio-op p { margin: 0 0 .6rem; color: var(--tinta-2); flex: 1; }
.apoie .bt-apoie { justify-content: center; gap: 8px; min-height: 48px; padding: .75rem 1.2rem; font-size: 1rem; font-weight: 800; text-align: center; }
.apoie .bt-apoie .ico { width: 18px; height: 18px; fill: none; stroke: currentColor; }
.bt-apoie-sec { background: transparent; color: var(--tinta); box-shadow: inset 0 0 0 2px var(--ipe); }
.bt-apoie-sec:hover { background: var(--ipe-suave); color: var(--tinta); filter: none; }
.apoio-qr { display: flex; align-items: center; gap: 1.4rem; background: var(--sup); border: 1px solid var(--linha); border-radius: var(--r-l); padding: 1.3rem; margin: 1.4rem 0 2rem; box-shadow: var(--sombra); }
.apoio-qr img { flex: none; width: 220px; max-width: 100%; height: auto; background: #fff; border-radius: var(--r); padding: 6px; border: 1px solid var(--linha); }
.apoio-qr h2 { margin: 0 0 .4rem; font-size: 1.15rem; }
.apoio-qr p { margin: 0 0 .6rem; }
.apoio-qr .bt-mini { margin-top: .2rem; min-height: 44px; padding: 0 16px; font-size: .9rem; }
@media (max-width: 560px) { .apoio-qr { flex-direction: column; text-align: center; } .apoio-qr img { width: min(240px, 72vw); } }

/* ---- O que propôs, emendas ao orçamento e plano de governo ---- */
.prop-lista, .emd-lista { list-style: none; margin: 1rem 0; padding: 0; display: grid; gap: 12px; }
.prop, .emd { background: var(--sup); border: 1px solid var(--linha); border-radius: var(--r); padding: 1rem 1.15rem; box-shadow: var(--sombra); display: grid; gap: .45rem; min-width: 0; }
.prop p, .emd p { margin: 0; }
.prop-cab, .emd-cab { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; font-size: .9rem; color: var(--tinta-2); }
.prop-id, .emd-cab b { font: 800 1.05rem var(--f-tit); color: var(--tinta); letter-spacing: .01em; }
.prop-tit, .emd-tit { font-weight: 700; font-size: 1.05rem; line-height: 1.35; overflow-wrap: anywhere; }
.prop-sit { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: .92rem; }
.tag-sit { display: inline-block; padding: 2px 10px; border-radius: 999px; font: 700 .78rem var(--f-texto); background: var(--sup-2); color: var(--tinta-2); border: 1px solid var(--linha-forte); white-space: nowrap; }
.tag-lei { background: #e3f6ec; color: #0b6b3a; border-color: #9bd9b8; }
.tag-aprovada { background: var(--primaria-suave); color: var(--primaria); border-color: #bcc8ff; }
.tag-andamento { background: var(--ipe-suave); color: var(--ipe-tinta); border-color: #f2d98a; }
.tag-encerrada { background: var(--sup-2); color: var(--tinta-2); }
.prop-norma { font-size: .95rem; color: #0b6b3a; }
.prop-aut { font-size: .9rem; color: var(--tinta-2); }
.prop-ementa summary { cursor: pointer; font-size: .9rem; color: var(--primaria); font-weight: 700; padding: 4px 0; }
.prop-ementa p { margin: .4rem 0; font-size: .95rem; overflow-wrap: anywhere; }
.prop-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: .2rem !important; }
.prop-links .bt-mini { min-height: 40px; align-items: center; }
.marca-caixa { display: flex; align-items: center; gap: 8px; }
.marca-caixa input { width: 20px; height: 20px; }
.emd-sub { color: var(--tinta-2); font-size: .92rem; }
.emd-local { font-size: .95rem; }
.emd-val { display: grid; grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr)); gap: 8px 14px; margin: .3rem 0 0; }
.emd-val dt { font-size: .8rem; color: var(--tinta-2); }
.emd-val dd { margin: 0; font: 800 1.05rem var(--f-tit); font-variant-numeric: tabular-nums; }
.barras { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.barras a { position: relative; display: flex; justify-content: space-between; gap: 10px; padding: 8px 10px; border-radius: var(--r-s); text-decoration: none; color: var(--tinta); overflow: hidden; background: var(--sup-2); font-size: .93rem; }
.barras a span, .barras a b { position: relative; z-index: 1; }
.barras a i { position: absolute; left: 0; top: 0; bottom: 0; background: var(--primaria-suave); z-index: 0; }
.barras a:hover i { background: #d6deff; }
.tl-plano { margin: .5rem 0; display: flex; flex-wrap: wrap; gap: 6px 8px; align-items: center; font-size: .95rem; }
.tl-plano .ico { width: 18px; height: 18px; color: var(--primaria); }
@media all {
  :root:not([data-theme='light']) .tag-lei { background: #0f3a27; color: #7fe3ae; border-color: #1f6b49; }
  :root:not([data-theme='light']) .tag-aprovada { background: #1d2850; color: #a9bbff; border-color: #33416a; }
  :root:not([data-theme='light']) .tag-andamento { background: #3a2f0e; color: #ffd979; border-color: #6e5a1f; }
  :root:not([data-theme='light']) .prop-norma { color: #7fe3ae; }
  :root:not([data-theme='light']) .barras a i { background: #1d2850; }
  :root:not([data-theme='light']) .barras a:hover i { background: #28376e; }
}
:root[data-theme='dark'] .tag-lei { background: #0f3a27; color: #7fe3ae; border-color: #1f6b49; }
:root[data-theme='dark'] .tag-aprovada { background: #1d2850; color: #a9bbff; border-color: #33416a; }
:root[data-theme='dark'] .tag-andamento { background: #3a2f0e; color: #ffd979; border-color: #6e5a1f; }
:root[data-theme='dark'] .prop-norma { color: #7fe3ae; }
:root[data-theme='dark'] .barras a i { background: #1d2850; }

/* Aviso de primeira carga de dados (site recém-ligado) */
.aviso-carga { background: var(--ipe-suave); color: var(--ipe-tinta); border-bottom: 1px solid color-mix(in srgb, var(--ipe) 45%, transparent); padding: .8rem 16px; text-align: center; font-size: .95rem; }

/* Botão de tema (rodapé) */
.tema-bt { margin-top: .8rem; background: transparent; color: inherit; border: 1px solid currentColor; border-radius: 999px; padding: 6px 14px; font: 700 .85rem var(--f-texto); cursor: pointer; opacity: .85; min-height: 40px; }
.tema-bt:hover { opacity: 1; }

/* ---- Legenda do mapa: barra visível, extremos com nome e marcador do lugar escolhido ---- */
.mapa-leg .leg { display: grid; gap: 6px; max-width: 360px; }
.mapa-leg .leg-corpo { display: block; position: relative; padding-top: 9px; }
.mapa-leg .leg-escala { display: flex; align-items: stretch; width: 100%; height: 12px; border-radius: 999px; overflow: hidden; }
.mapa-leg .leg-escala i { flex: 1; height: 12px; display: block; }
.mapa-leg .leg-extremos { display: flex; justify-content: space-between; gap: 12px; margin-top: 6px; }
.mapa-leg .leg-ext { display: flex; flex-direction: column; align-items: flex-start; gap: 0; line-height: 1.25; }
.mapa-leg .leg-ext-dir { align-items: flex-end; text-align: right; }
.mapa-leg .leg-ext small { font-size: .74rem; font-weight: 400; color: var(--tinta-2); }
.mapa-leg .leg-ext b { font-size: .95rem; }
.mapa-leg .leg-marca { position: absolute; top: 0; left: 50%; width: 0; height: 0; border-left: 6px solid transparent; border-right: 6px solid transparent; border-top: 9px solid var(--tinta); transform: translateX(-50%); transition: left .15s; }
.mapa-leg .leg-marca[hidden] { display: none; }
.mapa-leg .leg-sel { display: block; min-height: 1.3em; font-weight: 700; color: var(--tinta); font-size: .9rem; }
.mapa-leg .leg-ajuda { display: block; font-size: .78rem; color: var(--tinta-2); line-height: 1.35; }
.mapa-leg .leg-sd { margin-left: 0; }
.hero .mapa-leg .leg-sel { color: #eef2ff; } .hero .mapa-leg .leg-marca { border-top-color: #eef2ff; } .hero .mapa-leg .leg-ext small, .hero .mapa-leg .leg-ajuda { color: #aeb9d8; }
