/* Radar do Poder – Eleições. Cores da marca: azul #0c2461, verde #357550 */
:root {
  --azul: #0c2461;
  --azul-2: #1b3a8a;
  --verde: #357550;
  --destaque: #1b3a8a;
  --acao: #0c2461;
  --acao-hover: #1b3a8a;
  --fundo: #f3f5f8;
  --cartao: #ffffff;
  --texto: #171a21;
  --suave: #5b6472;
  --linha: #e2e6ec;
  --realce: #eef2fb;
  --barra: #2f5bd3;
  --barra-trilho: #e8ecf3;
  --f: #c2477a;
  --m: #2f5bd3;
  --ok: #1e7d4b; --ok-bg: #e3f4ea;
  --alerta: #9a5b00; --alerta-bg: #fdf1dc;
  --erro: #b3261e; --erro-bg: #fce8e6;
  --neutro: #5b6472; --neutro-bg: #eceff3;
  --raio: 12px;
  --sombra: 0 1px 2px rgb(16 24 40 / .06), 0 1px 3px rgb(16 24 40 / .08);
  --fonte-titulo: 'Nunito', system-ui, sans-serif;
  --fonte: 'Roboto', system-ui, -apple-system, sans-serif;
  --mapa-0: #e8ecf3; --mapa-1: #c9d5f1; --mapa-2: #9fb4e6; --mapa-3: #6c8cd6; --mapa-4: #3a63c4; --mapa-5: #0c2461;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --destaque: #8aa9f5; --acao: #2c4a8a; --acao-hover: #3c62b5; --fundo: #0e1320; --cartao: #161d2e; --texto: #e7ebf3; --suave: #9aa4b7; --linha: #263049; --realce: #1c2640;
    --barra: #6e95ff; --barra-trilho: #232d45; --f: #f07aa8; --m: #6e95ff;
    --ok: #6fd39c; --ok-bg: #173526; --alerta: #f3bd62; --alerta-bg: #3a2c12; --erro: #ff8a80; --erro-bg: #3d1a18;
    --neutro: #aab3c5; --neutro-bg: #232b3d;
    --mapa-0: #1c2438; --mapa-1: #22345e; --mapa-2: #2c4a8a; --mapa-3: #3c62b5; --mapa-4: #5a82db; --mapa-5: #8aa9f5;
    --sombra: none;
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --destaque: #8aa9f5; --acao: #2c4a8a; --acao-hover: #3c62b5; --fundo: #0e1320; --cartao: #161d2e; --texto: #e7ebf3; --suave: #9aa4b7; --linha: #263049; --realce: #1c2640;
  --barra: #6e95ff; --barra-trilho: #232d45; --f: #f07aa8; --m: #6e95ff;
  --ok: #6fd39c; --ok-bg: #173526; --alerta: #f3bd62; --alerta-bg: #3a2c12; --erro: #ff8a80; --erro-bg: #3d1a18;
  --neutro: #aab3c5; --neutro-bg: #232b3d;
  --mapa-0: #1c2438; --mapa-1: #22345e; --mapa-2: #2c4a8a; --mapa-3: #3c62b5; --mapa-4: #5a82db; --mapa-5: #8aa9f5;
  --sombra: none;
  color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--fundo); color: var(--texto); font: 15px/1.5 var(--fonte); }
a { color: inherit; }
h1, h2, h3 { font-family: var(--fonte-titulo); line-height: 1.15; margin: 0 0 .5em; letter-spacing: -.01em; }
h1 { font-size: clamp(28px, 5vw, 42px); font-weight: 900; }
h2 { font-size: 20px; font-weight: 800; }
h3 { font-size: 15px; font-weight: 800; color: var(--suave); text-transform: uppercase; letter-spacing: .04em; }
img { max-width: 100%; }
small { color: var(--suave); }
.mono { font-family: ui-monospace, Menlo, monospace; font-size: 13px; }
.num { font-variant-numeric: tabular-nums; text-align: right; }

/* ---------- topo */
.topo { background: var(--azul); color: #fff; position: sticky; top: 0; z-index: 20; box-shadow: 0 2px 8px rgb(0 0 0 / .15); }
.topo-in { max-width: 1240px; margin: 0 auto; padding: 10px 16px; display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }
.marca { display: flex; align-items: center; gap: 10px; text-decoration: none; }
.marca-logo { font: 900 20px/1 var(--fonte-titulo); letter-spacing: -.02em; }
.marca-logo b { color: #7fd1a0; margin-left: 4px; font-weight: 900; }
.marca-sec { background: var(--verde); padding: 3px 8px; border-radius: 99px; font: 700 12px/1.4 var(--fonte); white-space: nowrap; }
.busca { position: relative; flex: 1 1 280px; display: flex; align-items: center; background: rgb(255 255 255 / .12); border-radius: 10px; padding: 0 10px; }
.busca svg { opacity: .7; flex: none; }
.busca input { flex: 1; min-width: 0; background: none; border: 0; color: #fff; font: 15px var(--fonte); padding: 10px 8px; outline: none; }
.busca input::placeholder { color: rgb(255 255 255 / .6); }
.busca:focus-within { background: rgb(255 255 255 / .2); box-shadow: 0 0 0 2px rgb(127 209 160 / .6); }
.busca-res { position: absolute; top: calc(100% + 6px); left: 0; right: 0; margin: 0; padding: 6px; list-style: none; background: var(--cartao); color: var(--texto); border-radius: 12px; box-shadow: 0 12px 32px rgb(0 0 0 / .25); max-height: 70vh; overflow: auto; }
.busca-res a { display: flex; gap: 10px; align-items: center; padding: 6px 8px; border-radius: 8px; text-decoration: none; }
.busca-res a:hover, .busca-res a.ativo { background: var(--realce); }
.busca-res img { width: 36px; height: 48px; object-fit: cover; border-radius: 6px; background: var(--linha); }
.busca-res span { display: flex; flex-direction: column; min-width: 0; }
.busca-res b { font-weight: 700; }
.busca-res small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.busca-res .todos { justify-content: center; color: var(--destaque); font-weight: 700; }
.menu { display: flex; gap: 4px; align-items: center; font-weight: 500; }
.menu > a, .menu summary { padding: 8px 10px; border-radius: 8px; text-decoration: none; cursor: pointer; list-style: none; white-space: nowrap; }
.menu summary::-webkit-details-marker { display: none; }
.menu > a:hover, .menu summary:hover { background: rgb(255 255 255 / .12); }
.menu-site { opacity: .75; font-size: 13px; }
.menu-ufs { position: relative; }
.menu-ufs-lista { position: absolute; right: 0; top: calc(100% + 6px); background: var(--cartao); color: var(--texto); border-radius: 12px; padding: 8px; display: grid; grid-template-columns: repeat(6, 44px); gap: 4px; box-shadow: 0 12px 32px rgb(0 0 0 / .25); }
.menu-ufs-lista a { text-align: center; padding: 8px 0; border-radius: 6px; text-decoration: none; font-weight: 700; font-size: 13px; }
.menu-ufs-lista a:hover { background: var(--realce); }

/* ---------- estrutura */
.conteudo { max-width: 1240px; margin: 0 auto; padding: 16px 16px 48px; }
.migalhas { font-size: 13px; color: var(--suave); margin: 4px 0 12px; display: flex; flex-wrap: wrap; gap: 6px; }
.migalhas a { text-decoration: none; } .migalhas a:hover { text-decoration: underline; }
.migalhas i { font-style: normal; opacity: .5; }
.hero { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin: 8px 0 20px; }
.hero .sobre { margin: 0 0 4px; font-weight: 700; color: var(--verde); text-transform: uppercase; font-size: 12px; letter-spacing: .08em; }
.hero h1 { margin: 0; }
.hero-sub { margin: 8px 0 0; color: var(--suave); font-size: 16px; max-width: 720px; }
.hero-compacto h1 { font-size: clamp(24px, 4vw, 32px); }
.atualizado { margin: 0; font-size: 12px; color: var(--suave); background: var(--cartao); border: 1px solid var(--linha); padding: 4px 10px; border-radius: 99px; }
.bloco { margin: 28px 0; }
.bloco-cab { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 12px; }
.bloco-cab h2 { margin: 0; } .bloco-cab h2 small { font-weight: 500; font-size: 14px; }
.bloco-cab a, .mais { color: var(--destaque); font-weight: 700; text-decoration: none; font-size: 14px; white-space: nowrap; }
.mais { display: inline-block; margin-top: 8px; }
.duas { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 16px; }
.painel { background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); padding: 16px 18px; box-shadow: var(--sombra); min-width: 0; }
.painel h2 { margin-bottom: 4px; }
.grade-paineis { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 16px; }
.nota { color: var(--suave); font-size: 13px; margin: 4px 0 12px; }
.vazio { background: var(--cartao); border: 1px dashed var(--linha); border-radius: var(--raio); padding: 24px; text-align: center; color: var(--suave); }
.botao { display: inline-block; background: var(--acao); color: #fff; text-decoration: none; font-weight: 700; padding: 10px 16px; border-radius: 10px; }
.botao:hover { background: var(--acao-hover); }

/* ---------- KPIs */
.kpis { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 16px 0; }
@media (min-width: 640px) { .kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .kpis { grid-template-columns: repeat(6, minmax(0, 1fr)); } .kpis-perfil { grid-template-columns: repeat(5, minmax(0, 1fr)); } .kpis-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.kpi { background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); padding: 14px 16px; display: flex; flex-direction: column; gap: 2px; box-shadow: var(--sombra); }
.kpi-rot { font-size: 12px; color: var(--suave); font-weight: 500; text-transform: uppercase; letter-spacing: .04em; }
.kpi-val { font: 900 26px/1.15 var(--fonte-titulo); font-variant-numeric: tabular-nums; }
.kpi-sub { font-size: 12.5px; color: var(--suave); }
.kpi-alerta .kpi-val { color: var(--erro); }

/* ---------- barras */
.barras { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 7px; }
.barras li { display: grid; grid-template-columns: minmax(90px, 38%) 1fr auto; align-items: center; gap: 10px; font-size: 13.5px; }
.b-rot { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.b-rot a { text-decoration: none; font-weight: 500; } .b-rot a:hover { text-decoration: underline; }
.b-trilho { height: 10px; background: var(--barra-trilho); border-radius: 99px; overflow: hidden; }
.b-barra { display: block; height: 100%; background: var(--barra); border-radius: 99px; min-width: 2px; }
.b-val { font-variant-numeric: tabular-nums; white-space: nowrap; text-align: right; min-width: 72px; }
.b-val small { margin-left: 4px; }
.prop-barra { height: 16px; border-radius: 99px; background: var(--m); overflow: hidden; margin: 12px 0 10px; }
.prop-f { display: block; height: 100%; background: var(--f); border-right: 2px solid var(--cartao); }
.prop-leg { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 13.5px; }
.sw { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; }
.sw-f { background: var(--f); } .sw-m { background: var(--m); }

/* ---------- mapa */
.mapa { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; max-width: 460px; margin: 8px auto 0; }
.mapa-uf { aspect-ratio: 1; border-radius: 8px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-decoration: none; background: var(--mapa-0); color: var(--texto); transition: transform .12s; }
.mapa-uf b { font: 800 14px/1 var(--fonte-titulo); } .mapa-uf small { font-size: 10.5px; color: inherit; opacity: .8; }
.mapa-uf.n1 { background: var(--mapa-1); } .mapa-uf.n2 { background: var(--mapa-2); }
.mapa-uf.n3 { background: var(--mapa-3); color: #fff; } .mapa-uf.n4 { background: var(--mapa-4); color: #fff; } .mapa-uf.n5 { background: var(--mapa-5); color: #fff; }
:root[data-theme="dark"] .mapa-uf.n5 { color: #0e1320; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .mapa-uf.n5 { color: #0e1320; } }
.mapa-uf:hover { transform: scale(1.08); } .mapa-uf.ativa { outline: 3px solid var(--verde); outline-offset: 1px; }

/* ---------- situação */
.sit { display: inline-block; font-size: 11.5px; font-weight: 700; padding: 3px 8px; border-radius: 99px; white-space: nowrap; }
.sit-apto { color: var(--ok); background: var(--ok-bg); }
.sit-sub_judice { color: var(--alerta); background: var(--alerta-bg); }
.sit-inapto { color: var(--erro); background: var(--erro-bg); }
.sit-pendente { color: var(--neutro); background: var(--neutro-bg); }

/* ---------- cards de candidato */
.grade-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 10px; }
.cc { display: grid; grid-template-columns: 52px 1fr auto; gap: 12px; align-items: center; background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); padding: 10px 12px; text-decoration: none; box-shadow: var(--sombra); transition: border-color .12s; }
.cc:hover { border-color: var(--barra); }
.cc-foto { width: 52px; height: 68px; object-fit: cover; border-radius: 8px; background: var(--linha); }
.cc-corpo { display: flex; flex-direction: column; min-width: 0; }
.cc-nome { font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cc-meta { font-size: 13px; color: var(--suave); }
.cc-meta .num { color: var(--texto); }
.cc-pat { font: 800 15px var(--fonte-titulo); margin-top: 2px; }
.cc .sit { align-self: start; }

.grade-chapas { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 12px; }
.chapa { background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden; display: flex; flex-direction: column; box-shadow: var(--sombra); }
.chapa-inapta { opacity: .6; }
.chapa-tit { display: grid; grid-template-columns: 76px 1fr; grid-template-rows: auto auto 1fr; column-gap: 12px; padding: 14px; text-decoration: none; }
.chapa-foto { grid-row: 1 / 4; width: 76px; height: 100px; object-fit: cover; border-radius: 10px; background: var(--linha); }
.chapa-num { font: 900 26px/1 var(--fonte-titulo); color: var(--destaque); }
.chapa-nome { font: 800 17px/1.2 var(--fonte-titulo); margin-top: 4px; }
.chapa-partido { font-size: 13px; color: var(--suave); font-weight: 700; margin-top: 2px; }
.chapa-tit:hover .chapa-nome { text-decoration: underline; }
.chapa-vinc { padding: 0 14px 10px; display: flex; flex-direction: column; gap: 2px; font-size: 13px; }
.chapa-vinc a { text-decoration: none; } .chapa-vinc a:hover { text-decoration: underline; }
.chapa-vinc small { text-transform: uppercase; font-size: 10.5px; letter-spacing: .04em; font-weight: 700; margin-right: 4px; }
.chapa-rodape { margin-top: auto; border-top: 1px solid var(--linha); padding: 8px 14px; display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: 12.5px; color: var(--suave); }

/* ---------- UF: atalhos */
.atalhos-cargo { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 10px; }
.atalhos-cargo a { background: var(--acao); color: #fff; border-radius: var(--raio); padding: 14px 16px; text-decoration: none; display: flex; flex-direction: column; }
.atalhos-cargo a:hover { background: var(--acao-hover); }
.atalhos-cargo b { font: 800 17px var(--fonte-titulo); }
.atalhos-cargo span { font-size: 13px; opacity: .85; } .atalhos-cargo small { color: #9fe0b8; font-size: 12px; font-weight: 700; }

/* ---------- lista / filtros */
.filtros { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); gap: 10px; background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); padding: 14px; margin-bottom: 16px; align-items: end; }
.filtros label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; font-weight: 700; color: var(--suave); text-transform: uppercase; letter-spacing: .03em; min-width: 0; }
.filtros .f-q { grid-column: span 2; }
@media (max-width: 520px) { .filtros .f-q { grid-column: 1 / -1; } }
.filtros input, .filtros select { font: 15px var(--fonte); color: var(--texto); background: var(--fundo); border: 1px solid var(--linha); border-radius: 8px; padding: 8px 10px; width: 100%; text-transform: none; letter-spacing: 0; }
.f-acoes { display: flex; gap: 10px; align-items: center; }
.f-acoes button { font: 700 15px var(--fonte); background: var(--acao); color: #fff; border: 0; border-radius: 8px; padding: 9px 18px; cursor: pointer; }
.f-acoes a { font-size: 14px; color: var(--suave); }
.linhas { list-style: none; margin: 0; padding: 0; background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden; }
.linhas li + li { border-top: 1px solid var(--linha); }
.linha { display: grid; grid-template-columns: 44px minmax(0, 2.4fr) 70px 110px minmax(0, 1.4fr) 110px 110px; gap: 12px; align-items: center; padding: 8px 14px; text-decoration: none; }
.linha:hover { background: var(--realce); }
.linha-foto { width: 44px; height: 58px; object-fit: cover; border-radius: 6px; background: var(--linha); }
.linha-nome { display: flex; flex-direction: column; min-width: 0; }
.linha-nome b, .linha-nome small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.linha-num { font: 900 18px var(--fonte-titulo); color: var(--destaque); font-variant-numeric: tabular-nums; }
.linha-partido { font-weight: 700; font-size: 13px; }
.linha-cargo { font-size: 13px; color: var(--suave); }
.linha-pat { display: flex; flex-direction: column; font-weight: 700; font-variant-numeric: tabular-nums; text-align: right; }
.linha-pat small { font-weight: 400; font-size: 11px; }
.linha .sit { justify-self: end; }
@media (max-width: 860px) {
  .linha { grid-template-columns: 44px 1fr auto; grid-template-areas: "f n num" "f meta sit"; row-gap: 2px; }
  .linha-foto { grid-area: f; } .linha-nome { grid-area: n; } .linha-num { grid-area: num; text-align: right; }
  .linha-partido, .linha-cargo { display: none; }
  .linha-pat { grid-area: meta; flex-direction: row; gap: 4px; text-align: left; font-size: 13px; }
  .linha .sit { grid-area: sit; }
}
.pag { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; margin: 20px 0; }
.pag a, .pag b, .pag span { min-width: 38px; text-align: center; padding: 8px 10px; border-radius: 8px; text-decoration: none; background: var(--cartao); border: 1px solid var(--linha); }
.pag b { background: var(--acao); color: #fff; border-color: var(--acao); }
.pag span { border: 0; background: none; }

/* ---------- perfil */
.perfil-cab { display: grid; grid-template-columns: 150px 1fr auto; gap: 24px; align-items: center; background: var(--cartao); border: 1px solid var(--linha); border-radius: 16px; padding: 20px; box-shadow: var(--sombra); position: relative; overflow: hidden; }
.perfil-cab::before { content: ""; position: absolute; inset: 0 0 auto; height: 5px; background: linear-gradient(90deg, var(--azul), var(--verde)); }
.perfil-foto { width: 150px; height: 200px; object-fit: cover; border-radius: 12px; background: var(--linha); }
.perfil-cargo { margin: 0 0 4px; color: var(--verde); font-weight: 700; font-size: 13px; text-transform: uppercase; letter-spacing: .06em; }
.perfil-id h1 { margin: 0; }
.perfil-nome { margin: 6px 0 12px; color: var(--suave); }
.perfil-tags { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.tag-partido { background: var(--acao); color: #fff; font-weight: 800; padding: 4px 10px; border-radius: 99px; text-decoration: none; font-size: 13px; }
.tag { background: var(--realce); padding: 4px 10px; border-radius: 99px; font-size: 12.5px; }
.perfil-numero { text-align: center; }
.perfil-numero > span { display: block; font-size: 12px; color: var(--suave); text-transform: uppercase; letter-spacing: .06em; }
.perfil-numero > b { display: block; font: 900 clamp(44px, 7vw, 64px)/1 var(--fonte-titulo); color: var(--destaque); letter-spacing: .02em; font-variant-numeric: tabular-nums; margin: 4px 0 12px; }
.compartilhar { display: flex; gap: 6px; justify-content: center; flex-wrap: wrap; }
.compartilhar a, .compartilhar button { font: 700 12.5px var(--fonte); color: var(--texto); background: var(--realce); border: 0; border-radius: 8px; padding: 7px 10px; text-decoration: none; cursor: pointer; }
.compartilhar a:hover, .compartilhar button:hover { background: var(--linha); }
@media (max-width: 760px) {
  .perfil-cab { grid-template-columns: 96px 1fr; gap: 14px; padding: 16px; }
  .perfil-foto { width: 96px; height: 128px; }
  .perfil-numero { grid-column: 1 / -1; display: flex; align-items: center; gap: 12px; text-align: left; flex-wrap: wrap; }
  .perfil-numero > b { margin: 0; font-size: 40px; }
}
.aviso { margin: 12px 0 0; padding: 12px 16px; border-radius: var(--raio); font-size: 14px; }
.aviso-sub_judice { background: var(--alerta-bg); color: var(--alerta); }
.aviso-inapto { background: var(--erro-bg); color: var(--erro); }
.aviso-pendente { background: var(--neutro-bg); color: var(--neutro); }
.abas { position: sticky; top: 58px; z-index: 10; display: flex; gap: 4px; overflow-x: auto; background: var(--fundo); padding: 8px 0; margin: 8px 0 0; scrollbar-width: none; }
.abas a { padding: 8px 14px; border-radius: 99px; text-decoration: none; font-weight: 700; font-size: 14px; white-space: nowrap; color: var(--suave); }
.abas a:hover { color: var(--texto); background: var(--cartao); }
.abas a.ativa { background: var(--acao); color: #fff; }
.secao { background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); padding: 20px; margin: 12px 0; scroll-margin-top: 120px; box-shadow: var(--sombra); }
.secao > h3 { margin-top: 20px; }
.dados { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 0 24px; margin: 0; }
.dados div { padding: 10px 0; border-bottom: 1px solid var(--linha); }
.dados dt { font-size: 12px; color: var(--suave); text-transform: uppercase; letter-spacing: .04em; font-weight: 500; }
.dados dd { margin: 2px 0 0; font-weight: 500; }
.pat-resumo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 20px; align-items: start; margin-bottom: 16px; }
@media (max-width: 760px) { .pat-resumo { grid-template-columns: 1fr; } }
.pat-total { font: 900 clamp(30px, 5vw, 40px)/1.1 var(--fonte-titulo); font-variant-numeric: tabular-nums; }
.tabela-rolagem { overflow-x: auto; }
.tabela { width: 100%; border-collapse: collapse; font-size: 14px; background: var(--cartao); }
.tabela th { text-align: left; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--suave); font-weight: 500; padding: 8px 10px; border-bottom: 2px solid var(--linha); }
.tabela td { padding: 9px 10px; border-bottom: 1px solid var(--linha); vertical-align: top; }
.tabela td:first-child { white-space: nowrap; }
.tabela .num { text-align: right; white-space: nowrap; }
.tabela tfoot td { font-weight: 800; border-bottom: 0; }
.tabela-partidos a { text-decoration: none; } .tabela-partidos a:hover b { text-decoration: underline; }
.tabela-partidos td:first-child { white-space: normal; }
.em-breve { background: var(--realce); border-radius: 10px; padding: 14px 16px; }
.em-breve p { margin: 0 0 6px; } .em-breve p:last-child { margin: 0; }
.fonte { font-size: 12px; color: var(--suave); text-align: center; }

/* ---------- rodapé */
.rodape { border-top: 1px solid var(--linha); background: var(--cartao); }
.rodape-in { max-width: 1240px; margin: 0 auto; padding: 20px 16px; font-size: 13px; color: var(--suave); }
.rodape-in p { margin: 0 0 6px; }

@media (max-width: 760px) {
  .menu-site { display: none; }
  .topo-in { gap: 8px 12px; }
  .busca { order: 3; flex-basis: 100%; }
  .topo { position: static; }
  .abas { top: 0; }
  .kpi-val { font-size: 21px; }
  .kpi { padding: 12px; }
}

/* ---------- menu: colinha em destaque */
.menu .menu-colinha { background: var(--verde); color: #fff; font-weight: 700; }
.menu .menu-colinha:hover { background: #2c6444; }

/* ---------- perfil com coluna lateral */
.perfil-corpo { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 20px; align-items: start; }
.perfil-lado { position: sticky; top: 76px; margin-top: 12px; }
.perfil-lado:empty { display: none; }
@media (max-width: 960px) {
  .perfil-corpo { grid-template-columns: 1fr; }
  .perfil-lado { position: static; order: -1; margin-top: 0; }
}
.colinha-widget { background: var(--azul); color: #fff; border-radius: 16px; padding: 16px; box-shadow: var(--sombra); }
.cw-titulo { margin: 0 0 8px; font: 900 13px var(--fonte-titulo); text-transform: uppercase; letter-spacing: .08em; color: #7fd1a0; }
.cw-num { display: flex; justify-content: space-between; align-items: baseline; margin: 0 0 12px; }
.cw-num span { font-size: 13px; opacity: .85; }
.cw-num b { font: 900 34px var(--fonte-titulo); letter-spacing: .06em; }
.cw-botao { width: 100%; font: 800 16px var(--fonte-titulo); background: #4cc27a; color: #0c2461; border: 0; border-radius: 10px; padding: 12px; cursor: pointer; }
.cw-botao:hover { background: #63d18d; }
.cw-botao.cw-ok { background: rgb(255 255 255 / .14); color: #fff; }
.cw-aviso, .cw-inapto { font-size: 12.5px; background: rgb(255 255 255 / .1); border-radius: 8px; padding: 8px 10px; margin: 8px 0 0; }
.cw-lista { list-style: none; margin: 12px 0 0; padding: 0; font-size: 13px; }
.cw-lista li { display: grid; grid-template-columns: 1fr auto; gap: 0 8px; padding: 6px 0; border-top: 1px solid rgb(255 255 255 / .12); }
.cw-lista li span { opacity: .8; } .cw-lista li b { font-family: var(--fonte-titulo); font-size: 15px; letter-spacing: .04em; }
.cw-lista li small { grid-column: 1 / -1; color: #c9d5f1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cw-lista .cw-vazia { display: block; opacity: .7; }
.cw-ver { display: block; margin-top: 12px; color: #7fd1a0; font-weight: 700; text-decoration: none; font-size: 14px; }
.cw-ver:hover { text-decoration: underline; }

/* ---------- página da colinha */
.colinha-app { display: grid; grid-template-columns: minmax(0, 560px) minmax(0, 320px); gap: 24px; justify-content: center; align-items: start; }
@media (max-width: 860px) { .colinha-app { grid-template-columns: 1fr; } }
.colinha-uf { display: flex; flex-direction: column; gap: 6px; font-weight: 700; margin-bottom: 14px; }
.colinha-uf select { font: 600 16px var(--fonte); padding: 12px; border-radius: 10px; border: 1px solid var(--linha); background: var(--cartao); color: var(--texto); }
.colinha { background: var(--azul); border-radius: 18px; overflow: hidden; box-shadow: 0 8px 24px rgb(12 36 97 / .25); transition: transform .2s; }
.colinha.confirmada { transform: scale(1.015); box-shadow: 0 0 0 4px #4cc27a, 0 8px 24px rgb(12 36 97 / .25); }
.colinha-cab { background: #4cc27a; color: #0c2461; display: flex; justify-content: space-between; align-items: center; padding: 12px 18px; font: 900 15px var(--fonte-titulo); text-transform: uppercase; letter-spacing: .04em; }
.colinha-cab span { font-size: 12px; letter-spacing: .08em; }
#colinha-linhas { background: #f4f6fa; }
.cl-linha { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto 24px; gap: 12px; align-items: center; padding: 12px 14px 12px 16px; border-bottom: 1px solid #e2e6ec; color: #171a21; }
.cl-foto { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; object-position: top; background: #d9dee7; }
.cl-cand .cl-foto { box-shadow: 0 0 0 3px #4cc27a; }
.cl-info { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.cl-cargo { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #2f8a57; }
.cl-nome { font: 800 16px var(--fonte-titulo); color: #8a93a3; text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cl-cand .cl-nome { color: #171a21; } .cl-cand .cl-nome:hover { text-decoration: underline; }
.cl-nulo .cl-nome { color: #b3261e; } .cl-legenda .cl-nome { color: #1b3a8a; }
.cl-partido { font-size: 12.5px; color: #5b6472; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cl-sit-sub_judice .cl-partido { color: #9a5b00; } .cl-sit-inapto .cl-partido { color: #b3261e; }
.cl-caixas { position: relative; display: flex; gap: 6px; cursor: text; }
.cl-caixas input { position: absolute; inset: 0; width: 100%; opacity: 0; font-size: 16px; cursor: text; }
.cx { width: 36px; height: 46px; border-radius: 8px; border: 2px solid #cfd6e2; background: #fff; display: flex; align-items: center; justify-content: center; font: 900 24px var(--fonte-titulo); color: #fff; }
.cx.cheia { background: #0c2461; border-color: #0c2461; }
.cl-nulo .cx.cheia { background: #b3261e; border-color: #b3261e; }
.cl-caixas:focus-within .cx:not(.cheia) { border-color: #4cc27a; }
.cl-caixas:focus-within .cx:not(.cheia) ~ .cx:not(.cheia) { border-color: #cfd6e2; }
.cl-limpar { border: 0; background: none; font-size: 22px; line-height: 1; color: #8a93a3; cursor: pointer; padding: 0; }
.cl-vazio .cl-limpar { visibility: hidden; }
@media (max-width: 480px) {
  .cl-linha { grid-template-columns: 40px minmax(0, 1fr) 20px; grid-template-areas: "f i x" "c c c"; padding: 10px 12px; row-gap: 8px; }
  .cl-foto { grid-area: f; width: 40px; height: 40px; } .cl-info { grid-area: i; } .cl-limpar { grid-area: x; }
  .cl-caixas { grid-area: c; justify-content: flex-end; }
}
.colinha-rodape { text-align: center; padding: 14px; background: #e6eaf1; }
.colinha-rodape p { margin: 0 0 10px; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: #0c2461; }
.urna-confirma { font: 900 18px var(--fonte-titulo); letter-spacing: .1em; text-transform: uppercase; background: #3d9a5f; color: #fff; border: 0; border-radius: 10px; padding: 14px 44px; box-shadow: 0 4px 0 #2a6c43; cursor: pointer; }
.urna-confirma:active { transform: translateY(3px); box-shadow: 0 1px 0 #2a6c43; }
.colinha-acoes { display: flex; flex-direction: column; gap: 10px; position: sticky; top: 76px; }
.acao { font: 800 15px var(--fonte-titulo); padding: 13px; border-radius: 12px; border: 2px solid var(--azul); background: var(--cartao); color: var(--texto); cursor: pointer; }
:root[data-theme="dark"] .acao { border-color: var(--linha); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .acao { border-color: var(--linha); } }
.acao:hover { background: var(--realce); }
.acao-principal { background: #4cc27a; border-color: #4cc27a; color: #0c2461; }
.acao-principal:hover { background: #63d18d; }
.acao-zap { background: #25d366; border-color: #25d366; color: #083d1d; }
.acao-zap:hover { background: #3fe07b; }
.acao-link, .acao-limpar { border: 0; background: none; font-weight: 700; color: var(--suave); padding: 6px; }
.acao-limpar:hover { color: var(--erro); background: none; }
.acoes-rot { margin: 4px 0 0; font-size: 13px; color: var(--suave); text-align: center; }
.acoes-duas { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.dica { font-size: 13px; background: var(--alerta-bg); color: var(--alerta); border-radius: 10px; padding: 10px 12px; }
.toast { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); background: #171a21; color: #fff; padding: 12px 18px; border-radius: 12px; font-weight: 500; box-shadow: 0 8px 24px rgb(0 0 0 / .3); z-index: 50; max-width: calc(100% - 32px); }

/* ---------- impressão: só a colinha */
@media print {
  .topo, .rodape, .migalhas, .hero, .colinha-acoes, .colinha-uf, .colinha-rodape button, .cl-limpar, .toast, #colinha-vazia { display: none !important; }
  body { background: #fff; }
  .conteudo { padding: 0; }
  .colinha-app { display: block; }
  .colinha { box-shadow: none; border: 2px solid #0c2461; max-width: 520px; margin: 0 auto; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
.cta-colinha { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin: 20px 0; padding: 18px 22px; border-radius: 16px; text-decoration: none; color: #fff; background: linear-gradient(100deg, var(--azul) 0%, #1b3a8a 60%, var(--verde) 100%); }
.cta-colinha b { display: block; font: 900 22px var(--fonte-titulo); }
.cta-colinha span { font-size: 14px; }
.cta-seta { background: #4cc27a; color: #0c2461; font: 800 15px var(--fonte-titulo) !important; padding: 10px 16px; border-radius: 10px; white-space: nowrap; }
.cta-colinha:hover .cta-seta { background: #63d18d; }

/* ---------- acessibilidade */
.pular { position: absolute; left: 8px; top: -60px; z-index: 100; background: #fff; color: var(--azul); font-weight: 700; padding: 10px 14px; border-radius: 8px; }
.pular:focus { top: 8px; }
:focus-visible { outline: 3px solid #4cc27a; outline-offset: 2px; border-radius: 4px; }
.conteudo:focus { outline: none; }
.menu a[aria-current="page"]:not(.menu-colinha) { background: rgb(255 255 255 / .16); }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* ---------- perfil: anos, apuração ao vivo e evolução de votos */
.chips-anos { display: flex; gap: 6px; margin: 12px 0 0; }
.chips-anos a { padding: 7px 16px; border-radius: 99px; background: var(--cartao); border: 1px solid var(--linha); text-decoration: none; font: 800 15px var(--fonte-titulo); color: var(--suave); }
.chips-anos a:hover { border-color: var(--barra); color: var(--texto); }
.chips-anos a.ativo { background: var(--acao); border-color: var(--acao); color: #fff; }
.perfil-destaques { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 12px 0; align-items: stretch; }
.perfil-destaques.so-um, .perfil-destaques:has(> :only-child) { grid-template-columns: 1fr; }
.perfil-destaques:empty { display: none; }
@media (max-width: 860px) { .perfil-destaques { grid-template-columns: 1fr; } }
.apuracao { background: var(--azul); color: #fff; border-radius: 16px; padding: 18px 20px; box-shadow: var(--sombra); }
.ap-topo { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; }
.ap-topo h2 { margin: 0; font-size: 18px; } .ap-topo small { color: #c9d5f1; font-weight: 500; }
.ap-status { font: 800 13px var(--fonte-titulo); text-transform: uppercase; letter-spacing: .04em; padding: 5px 12px; border-radius: 99px; background: rgb(255 255 255 / .14); white-space: nowrap; }
.ap-eleito .ap-status { background: #4cc27a; color: #0c2461; }
.ap-turno2 .ap-status { background: #f3bd62; color: #3a2c12; }
.ap-nao .ap-status { background: rgb(255 138 128 / .25); color: #ffd0cb; }
.ap-apurando .ap-status::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #4cc27a; margin-right: 7px; animation: pulsar 1.4s infinite; }
@keyframes pulsar { 50% { opacity: .25; } }
.ap-numeros { display: grid; grid-template-columns: 1.4fr 1fr 1.2fr; gap: 12px; }
.ap-rot { display: block; font-size: 11.5px; text-transform: uppercase; letter-spacing: .06em; color: #c9d5f1; }
.ap-numeros b { font: 900 clamp(22px, 3.4vw, 34px)/1.15 var(--fonte-titulo); font-variant-numeric: tabular-nums; }
.ap-numeros small { font: 500 12.5px var(--fonte); color: #c9d5f1; }
.ap-barra { height: 8px; border-radius: 99px; background: rgb(255 255 255 / .16); margin: 14px 0 8px; overflow: hidden; }
.ap-barra-in { display: block; height: 100%; background: #4cc27a; border-radius: 99px; transition: width .6s; }
.ap-rodape { margin: 0; font-size: 12.5px; color: #c9d5f1; }
.ap-vivo { color: #7fd1a0; font-weight: 700; }
.ap-mudou { animation: piscar 1s; }
@keyframes piscar { 0% { color: #7fd1a0; } }
.evolucao { background: var(--cartao); border: 1px solid var(--linha); border-radius: 16px; padding: 18px 20px; box-shadow: var(--sombra); }
.evolucao h2 { font-size: 18px; margin-bottom: 10px; }
.evo { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.evo a { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 8px; border-radius: 10px; text-decoration: none; }
.evo a:hover { background: var(--realce); }
.evo-ano { font: 900 19px var(--fonte-titulo); color: var(--suave); }
.evo-atual .evo-ano { color: var(--destaque); }
.evo-meio { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.evo-cargo { font-size: 12.5px; color: var(--suave); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.evo-trilho { height: 12px; background: var(--barra-trilho); border-radius: 99px; overflow: hidden; }
.evo-barra { display: block; height: 100%; background: var(--neutro); border-radius: 99px; min-width: 3px; transition: width .6s; }
.evo-atual .evo-barra { background: var(--barra); }
.evo-votos { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.evo-votos b { font: 800 17px var(--fonte-titulo); font-variant-numeric: tabular-nums; }
.evo-delta { font-weight: 700; } .evo-delta.sobe { color: var(--ok); } .evo-delta.desce { color: var(--erro); }
.res { display: inline-block; font-size: 11.5px; font-weight: 700; padding: 3px 8px; border-radius: 99px; white-space: nowrap; color: var(--neutro); background: var(--neutro-bg); }
.res-eleito { color: var(--ok); background: var(--ok-bg); }
.res-turno2, .res-suplente { color: var(--alerta); background: var(--alerta-bg); }
.res-nao { color: var(--erro); background: var(--erro-bg); }
.res-apurando { color: var(--destaque); background: var(--realce); }
.pat-evo { margin: 0 0 16px; max-width: 560px; }
.ap-numeros small { display: block; }
.chapa-votos { padding: 0 14px 10px; display: grid; grid-template-columns: auto auto 1fr; gap: 4px 8px; align-items: baseline; }
.chapa-votos b { font: 900 20px var(--fonte-titulo); font-variant-numeric: tabular-nums; }
.chapa-votos > span:nth-child(2) { font-weight: 700; color: var(--destaque); }
.chapa-votos .b-trilho { grid-column: 1 / -1; height: 8px; }
.selo-ap { font: 700 12px var(--fonte) !important; color: var(--suave); background: var(--realce); padding: 3px 9px; border-radius: 99px; margin-left: 6px; white-space: nowrap; vertical-align: middle; }
.selo-ap.vivo::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #2fae68; margin-right: 6px; animation: pulsar 1.4s infinite; }
.linha .res { justify-self: end; }
.perfil-main { min-width: 0; }
@media (max-width: 960px) { .perfil-corpo { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 560px) {
  .evo a { grid-template-columns: 46px minmax(0, 1fr); row-gap: 4px; }
  .evo-votos { grid-column: 2; flex-direction: row; align-items: center; gap: 8px; flex-wrap: wrap; }
  .ap-numeros { grid-template-columns: 1fr 1fr; }
  .ap-numeros > div:first-child { grid-column: 1 / -1; }
  .ap-topo { flex-wrap: wrap; }
}

/* ---------- página inicial */
.topo-espaco { flex: 1 1 auto; }
.inicio { text-align: center; padding: clamp(24px, 7vw, 72px) 0 12px; max-width: 760px; margin: 0 auto; }
.inicio-marca { margin: 0; display: flex; flex-direction: column; align-items: center; gap: 6px; }
.inicio-marca span { font: 900 clamp(38px, 8vw, 64px)/1 var(--fonte-titulo); letter-spacing: -.03em; color: var(--destaque); }
.inicio-marca b { color: var(--verde); margin-left: .18em; }
.inicio-marca small { font: 800 14px var(--fonte-titulo); text-transform: uppercase; letter-spacing: .28em; color: var(--suave); }
.inicio-sub { color: var(--suave); font-size: 17px; margin: 14px 0 24px; }
.busca-grande { background: var(--cartao); border: 1px solid var(--linha); border-radius: 99px; padding: 6px 6px 6px 20px; box-shadow: 0 2px 10px rgb(16 24 40 / .08); color: var(--texto); flex: none; }
.busca-grande:hover, .busca-grande:focus-within { background: var(--cartao); box-shadow: 0 4px 18px rgb(16 24 40 / .14), 0 0 0 2px rgb(76 194 122 / .5); }
.busca-grande svg { color: var(--suave); opacity: 1; }
.busca-grande input { color: var(--texto); font-size: 18px; padding: 13px 10px; }
.busca-grande input::placeholder { color: var(--suave); }
.busca-grande button { font: 800 15px var(--fonte-titulo); background: var(--acao); color: #fff; border: 0; border-radius: 99px; padding: 12px 22px; cursor: pointer; }
.busca-grande button:hover { background: var(--acao-hover); }
.busca-grande .busca-res { text-align: left; top: calc(100% + 8px); border: 1px solid var(--linha); }
@media (max-width: 520px) { .busca-grande button { display: none; } .busca-grande input { font-size: 16px; } }
.inicio-atalhos { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 18px 0 0; }
.inicio-atalhos a { padding: 7px 14px; border-radius: 99px; background: var(--realce); text-decoration: none; font-weight: 700; font-size: 14px; }
.inicio-atalhos a:hover { background: var(--linha); }
.inicio-apuracao { margin: 16px 0 0; }
.regiao { margin: 18px 0 8px; }
.grade-estados { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); gap: 10px; }
.estado { display: grid; grid-template-columns: auto 1fr; column-gap: 12px; align-items: center; background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); padding: 12px 14px; text-decoration: none; box-shadow: var(--sombra); transition: border-color .12s, transform .12s; }
.estado:hover { border-color: var(--barra); transform: translateY(-1px); }
.estado b { grid-row: 1 / 3; font: 900 22px var(--fonte-titulo); color: #fff; background: var(--acao); width: 48px; height: 48px; border-radius: 12px; display: flex; align-items: center; justify-content: center; }
.estado span { font-weight: 700; line-height: 1.2; }
.estado small { font-size: 12px; }
@media (max-width: 480px) { .grade-estados { grid-template-columns: 1fr 1fr; } .estado { grid-template-columns: 1fr; row-gap: 6px; } .estado b { grid-row: auto; width: 40px; height: 40px; font-size: 18px; } }
.emendas-lista { margin-top: 14px; } .emendas-lista summary { cursor: pointer; font-weight: 700; color: var(--destaque); padding: 8px 0; }

/* ---------- lista: tarja de apuração e coluna de votos ao vivo */
.tarja-ap { background: var(--azul); color: #fff; border-radius: var(--raio); padding: 12px 16px; margin-bottom: 12px; position: sticky; top: 64px; z-index: 5; box-shadow: 0 4px 14px rgb(12 36 97 / .25); }
.tj-linha { display: flex; justify-content: space-between; align-items: baseline; gap: 8px 16px; flex-wrap: wrap; }
.tj-linha strong { font: 800 16px var(--fonte-titulo); } .tj-pct { font-size: 20px; }
.tj-info { font-size: 12.5px; color: #c9d5f1; } .tj-vivo { color: #7fd1a0; }
.tj-vivo::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #4cc27a; margin-right: 5px; animation: pulsar 1.4s infinite; }
.tj-barra { height: 8px; border-radius: 99px; background: rgb(255 255 255 / .18); margin-top: 8px; overflow: hidden; }
.tj-barra-in { display: block; height: 100%; background: #4cc27a; border-radius: 99px; transition: width .6s; }
.linha-votos { display: flex; flex-direction: column; text-align: right; font-variant-numeric: tabular-nums; line-height: 1.2; }
.linha-votos small { font-size: 11px; } .linha-votos b { font: 900 17px var(--fonte-titulo); color: var(--destaque); }
.com-votos .linha { grid-template-columns: 44px minmax(0, 2.4fr) 70px 110px 120px 110px 110px; }
.lv-status { justify-self: end; }
@media (max-width: 860px) {
  .tarja-ap { top: 0; }
  .com-votos .linha { grid-template-columns: 44px 1fr auto; grid-template-areas: "f n num" "f meta sit"; }
  .com-votos .linha-votos { grid-area: meta; flex-direction: row; align-items: baseline; gap: 6px; text-align: left; }
  .com-votos .linha-votos small:first-child, .com-votos .linha-pat { display: none; }
  .com-votos .lv-status { grid-area: sit; }
}

/* ---------- onde estão os votos */
.votos-cab { align-items: center; justify-content: flex-start; }
.votos-cab > div { flex: 1; }
.votos-foto { width: 72px; height: 96px; object-fit: cover; border-radius: 10px; background: var(--linha); }
.votos-controles { display: flex; flex-wrap: wrap; gap: 12px; align-items: end; margin-bottom: 12px; }
.votos-controles label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; font-weight: 700; color: var(--suave); text-transform: uppercase; letter-spacing: .03em; flex: 1 1 200px; }
.votos-controles input, .votos-controles select { font: 15px var(--fonte); color: var(--texto); background: var(--fundo); border: 1px solid var(--linha); border-radius: 8px; padding: 9px 10px; }
.votos-controles .nota { margin: 0 0 8px; }
.tabela-votos tr.mun { cursor: pointer; } .tabela-votos tr.mun:hover { background: var(--realce); }
.tabela-votos tr.mun td:first-child::before { content: "▸"; display: inline-block; width: 16px; color: var(--suave); }
.tabela-votos tr.mun[aria-expanded="true"] td:first-child::before { content: "▾"; }
.tabela-votos tr.zona td { background: var(--realce); font-size: 13px; padding-top: 6px; padding-bottom: 6px; }
.tabela-votos tr.zona td:first-child { padding-left: 34px; color: var(--suave); }
.tabela-votos td.num small { margin-left: 4px; }
.var { font-weight: 700; } .var.sobe { color: var(--ok); } .var.desce { color: var(--erro); }
#votos-mais { margin-top: 12px; }
.evo-link { display: inline-block; margin-top: 10px; color: var(--destaque); font-weight: 700; text-decoration: none; font-size: 14px; }
.evo-link:hover { text-decoration: underline; }
.tabela th.pend, .tabela td.pend { color: var(--suave); background: var(--neutro-bg); font-style: italic; font-size: 12.5px; }
.tabela th.pend { font-style: normal; }
.kpi-pendente { background: var(--neutro-bg); border-style: dashed; }
.chips-anos { flex-wrap: wrap; } .chips-anos .chip-comp { border-color: var(--verde); color: var(--verde); } .chips-anos .chip-comp.ativo, .chips-anos .chip-comp:hover { background: var(--verde); border-color: var(--verde); color: #fff; }

/* ---------- comparativo: um bloco por eleição, com todos os municípios */
.votos-filtro { display: flex; flex-direction: column; gap: 4px; max-width: 360px; margin: 14px 0 12px; font-size: 12px; font-weight: 700; color: var(--suave); text-transform: uppercase; letter-spacing: .03em; }
.votos-filtro input { font: 15px var(--fonte); color: var(--texto); background: var(--cartao); border: 1px solid var(--linha); border-radius: 8px; padding: 9px 10px; }
.blocos-votos { display: grid; grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)); gap: 12px; align-items: start; margin-bottom: 16px; }
@media (max-width: 900px) { .blocos-votos { grid-template-columns: 1fr; } }
.bloco-ano { background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: var(--sombra); overflow: hidden; }
.bloco-ano > header { background: var(--azul); color: #fff; padding: 14px 16px; }
.bloco-ano > header h2 { margin: 0; font-size: 26px; color: #7fd1a0; }
.bloco-total { margin: 2px 0 0; font-size: 14px; } .bloco-total b { font: 900 24px var(--fonte-titulo); font-variant-numeric: tabular-nums; }
.bloco-sub { margin: 2px 0 0; font-size: 12.5px; color: #c9d5f1; }
.bloco-mun { list-style: none; margin: 0; padding: 4px 0; }
.bloco-mun li { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; column-gap: 8px; row-gap: 3px; align-items: baseline; padding: 7px 14px; border-bottom: 1px solid var(--linha); }
.bloco-mun li:last-child { border-bottom: 0; }
.bloco-mun li[hidden] { display: none; }
.bm-pos { font-size: 12px; color: var(--suave); font-variant-numeric: tabular-nums; }
.bm-nome { font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bm-votos { font: 800 15px var(--fonte-titulo); font-variant-numeric: tabular-nums; }
.bm-trilho { grid-column: 2; height: 6px; border-radius: 99px; background: var(--barra-trilho); overflow: hidden; align-self: center; }
.bm-trilho span { display: block; height: 100%; background: var(--barra); border-radius: 99px; min-width: 2px; }
.bm-pct { text-align: right; font-size: 11.5px; }
.bloco-pendente { border-style: dashed; }
.bloco-pendente > header { background: var(--neutro-bg); color: var(--texto); }
.bloco-pendente > header h2 { color: var(--suave); } .bloco-pendente .bloco-sub { color: var(--suave); }
.bloco-aguardando { padding: 18px 16px; color: var(--suave); font-size: 14px; } .bloco-aguardando p { margin: 0 0 8px; }
.votos-app > h2 { margin-bottom: 12px; }
.ap-link { display: inline-block; margin-top: 12px; color: #7fd1a0; font-weight: 700; text-decoration: none; font-size: 14px; } .ap-link:hover { text-decoration: underline; }

/* ---------- mapa de calor da votação */
.bloco-ano > header { position: relative; }
.bloco-mapa { position: absolute; right: 12px; top: 12px; font: 800 12.5px var(--fonte-titulo); color: #0c2461; background: #7fd1a0; padding: 7px 11px; border-radius: 99px; text-decoration: none; }
.bloco-mapa:hover { background: #a2e2bd; }
.mapa-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-items: start; }
@media (max-width: 980px) { .mapa-grade { grid-template-columns: 1fr; } }
.mapa-bloco { margin: 0; }
.mapa-geo { position: relative; min-height: 260px; }
.mapa-geo svg { width: 100%; height: auto; display: block; }
.mapa-geo path { stroke: var(--cartao); stroke-width: .6; vector-effect: non-scaling-stroke; cursor: pointer; outline: none; }
.mapa-geo path.sel, .mapa-geo path:focus-visible { stroke: #f59e0b; stroke-width: 2.5; }
.mapa-dica-flutuante { position: absolute; pointer-events: none; background: #171a21; color: #fff; padding: 8px 11px; border-radius: 9px; font-size: 13px; box-shadow: 0 6px 18px rgb(0 0 0 / .3); max-width: 260px; z-index: 3; }
.mapa-dica-flutuante b { display: block; font: 800 14px var(--fonte-titulo); }
.mapa-dica-flutuante small { display: block; color: #c9d5f1; margin-top: 2px; }
.mapa-dica-google { background: #171a21; color: #fff; padding: 8px 11px; border-radius: 9px; font: 13px var(--fonte); white-space: nowrap; }
.mapa-dica-google b { display: block; font: 800 14px var(--fonte-titulo); }
.mapa-legenda { display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--suave); margin: 10px 0 4px; }
.mapa-legenda i { flex: 0 1 200px; height: 10px; border-radius: 99px; background: linear-gradient(90deg, #dfe7f7, #7f9de0, #2a51b0, #0c2461); }
.mapa-arvore { width: 100%; height: clamp(360px, 60vh, 560px); }
.mapa-aviso { margin-top: 12px; }
.mapa-zonas { margin-top: 12px; scroll-margin-top: 80px; }
.mapa-ruas { height: clamp(380px, 62vh, 620px); border-radius: 10px; border: 1px solid var(--linha); z-index: 0; }
.zona-rotulo { background: rgb(255 255 255 / .85); border: 0; box-shadow: none; font: 800 11px var(--fonte-titulo); color: #0c2461; padding: 1px 5px; }
.zona-rotulo::before { display: none; }
.leg-local { margin-left: auto; }
.botao-leve { font: 700 13px var(--fonte); background: var(--realce); color: var(--texto); border: 0; border-radius: 8px; padding: 7px 12px; cursor: pointer; }
.botao-leve:hover { background: var(--linha); }
