/* Apuração Eleições 2026 - segue a paleta do tema (body-color4) */
.apuracao{
  --ap-navy: #1c2839;
  --ap-titulo: #1d2f49;
  --ap-verde: #629420;
  --ap-verde-claro: #5bbb4a;
  --ap-azul: #2980b9;
  --ap-borda: #d6d6d6;
  --ap-fundo: #f4f5f7;
  --ap-texto: #222;
  --ap-suave: #777;
  font-family: "Roboto", Arial, sans-serif;
  color: var(--ap-texto);
}
.apuracao [hidden]{ display: none !important; }

/* Status / progresso */
.ap-status{
  background: var(--ap-navy);
  color: #fff;
  padding: 14px 16px;
  border-radius: 3px;
  margin-bottom: 20px;
}
.ap-status-top,
.ap-status-bottom{
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  font-size: 13px;
}
.ap-ao-vivo{
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .5px;
  font-size: 12px;
}
.ap-ao-vivo .fa{ color: #e74c3c; font-size: 9px; vertical-align: 2px; animation: ap-pisca 1.4s infinite; }
@keyframes ap-pisca{ 50%{ opacity: .2; } }
.ap-atualizacao{ opacity: .85; }
.ap-progresso{
  height: 10px;
  background: rgba(255,255,255,.18);
  border-radius: 5px;
  margin: 10px 0 8px;
  overflow: hidden;
}
.ap-progresso-barra{
  height: 100%;
  background: var(--ap-verde-claro);
  transition: width .6s ease;
}
.ap-status-bottom b{ font-size: 16px; }
.ap-proxima{ opacity: .7; font-size: 12px; }

/* Abas de cargos - mesmo estilo dos block-title */
.ap-cargos{
  list-style: none;
  margin: 0 0 14px;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  border-bottom: 2px solid var(--ap-borda);
}
.ap-cargos li{ margin: 0 0 -2px; }
.ap-cargos a{
  display: block;
  padding: 8px 12px;
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase;
  color: var(--ap-suave);
  border-bottom: 2px solid transparent;
  text-decoration: none;
}
.ap-cargos a:hover{ color: var(--ap-navy); text-decoration: none; }
.ap-cargos a.ativo{ color: var(--ap-navy); border-bottom-color: var(--ap-navy); }

/* Abrangência */
.ap-escopos{
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 22px;
}
.ap-escopos a{
  padding: 6px 11px;
  font-size: 12px;
  font-weight: 500;
  color: var(--ap-navy);
  border: 1px solid var(--ap-borda);
  border-radius: 3px;
  background: #fff;
  text-decoration: none;
}
.ap-escopos a:hover{ border-color: var(--ap-navy); text-decoration: none; }
.ap-escopos a.ativo{ background: var(--ap-navy); border-color: var(--ap-navy); color: #fff; }

.ap-aviso{
  background: #fff8e1;
  border-left: 4px solid #f39c12;
  padding: 10px 14px;
  margin-bottom: 18px;
  font-size: 13px;
}
.ap-aviso.ap-demo{ background: #fdecea; border-left-color: #c0392b; font-weight: 700; }

/* Candidatos majoritários */
.ap-cand{
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 0;
  border-bottom: 1px solid #eee;
}
.ap-foto{
  flex: 0 0 64px;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--ap-fundo) center/cover no-repeat;
  border: 3px solid #fff;
  box-shadow: 0 0 0 1px var(--ap-borda);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #b5bac3;
  font-size: 28px;
  overflow: hidden;
}
.ap-foto img{ width: 100%; height: 100%; object-fit: cover; }
.ap-cand.lider .ap-foto{ box-shadow: 0 0 0 2px var(--ap-verde); }
.ap-info{ flex: 1; min-width: 0; }
.ap-linha{
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 10px;
}
.ap-nome{
  font-size: 17px;
  font-weight: 700;
  color: var(--ap-titulo);
  margin: 0;
  line-height: 1.25;
}
.ap-pct{
  font-family: 'Patua One', "Roboto", sans-serif;
  font-size: 24px;
  color: var(--ap-titulo);
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.ap-sub{
  font-size: 12px;
  color: var(--ap-suave);
  margin: 2px 0 6px;
}
.ap-sub b{ color: var(--ap-texto); }
.ap-barra{
  height: 8px;
  background: #eceef1;
  border-radius: 4px;
  overflow: hidden;
}
.ap-barra span{
  display: block;
  height: 100%;
  background: var(--ap-navy);
  border-radius: 4px;
  transition: width .6s ease;
}
.ap-cand.lider .ap-barra span{ background: var(--ap-verde); }
.ap-votos{
  font-size: 12px;
  color: var(--ap-suave);
  margin-top: 4px;
  font-variant-numeric: tabular-nums;
}

.ap-selo{
  display: inline-block;
  padding: 3px 7px;
  margin-left: 6px;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  text-transform: uppercase;
  color: #fff;
  background: var(--ap-suave);
  border-radius: 3px;
  vertical-align: 3px;
}
.ap-selo.eleito{ background: var(--ap-verde-claro); }
.ap-selo.turno2{ background: var(--ap-azul); }

/* Proporcionais (deputados) */
.ap-busca{
  position: relative;
  margin-bottom: 12px;
}
.ap-busca input{
  width: 100%;
  padding: 9px 12px 9px 34px;
  border: 1px solid var(--ap-borda);
  border-radius: 3px;
  font-size: 14px;
}
.ap-busca .fa{
  position: absolute;
  left: 12px;
  top: 12px;
  color: var(--ap-suave);
}
.ap-tabela{
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
.ap-tabela th{
  text-align: left;
  font-size: 11px;
  text-transform: uppercase;
  color: var(--ap-suave);
  font-weight: 700;
  padding: 8px 6px;
  border-bottom: 2px solid var(--ap-borda);
}
.ap-tabela td{
  padding: 8px 6px;
  border-bottom: 1px solid #eee;
  vertical-align: middle;
}
.ap-tabela .num{ text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ap-tabela .pos{ color: var(--ap-suave); width: 32px; }
.ap-tabela .nm{ font-weight: 700; color: var(--ap-titulo); }
.ap-tabela .pt{ font-size: 12px; color: var(--ap-suave); }
.ap-tabela tr.eleito td{ background: #f1f8ee; }
.ap-mais{
  display: block;
  width: 100%;
  margin-top: 12px;
  padding: 10px;
  background: #fff;
  border: 1px solid var(--ap-navy);
  color: var(--ap-navy);
  font-weight: 700;
  text-transform: uppercase;
  font-size: 12px;
  border-radius: 3px;
  cursor: pointer;
}
.ap-mais:hover{ background: var(--ap-navy); color: #fff; }

/* Resumo */
.ap-resumo{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--ap-borda);
  border: 1px solid var(--ap-borda);
  border-radius: 3px;
  overflow: hidden;
  margin: 24px 0 14px;
}
.ap-resumo div{
  background: #fff;
  padding: 12px;
}
.ap-resumo small{
  display: block;
  font-size: 11px;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--ap-suave);
}
.ap-resumo b{
  display: block;
  font-size: 18px;
  color: var(--ap-titulo);
  font-variant-numeric: tabular-nums;
}
.ap-resumo span{ font-size: 12px; color: var(--ap-suave); }

.ap-carregando,
.ap-vazio{
  padding: 40px 10px;
  text-align: center;
  color: var(--ap-suave);
}
.ap-vazio .fa{ display: block; font-size: 38px; margin-bottom: 10px; color: var(--ap-borda); }
.ap-fonte{
  font-size: 12px;
  color: var(--ap-suave);
  margin-top: 10px;
}
.ap-resultado.atualizando{ opacity: .55; transition: opacity .2s; }

@media (max-width: 600px){
  .ap-cargos{ flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .ap-cargos a{ white-space: nowrap; padding: 8px 10px; font-size: 12px; }
  .ap-foto{ flex-basis: 48px; width: 48px; height: 48px; font-size: 20px; }
  .ap-nome{ font-size: 15px; }
  .ap-pct{ font-size: 20px; }
  .ap-resumo{ grid-template-columns: repeat(2, 1fr); }
  .ap-tabela .col-votos-pct{ display: none; }
}

/* Neutraliza regras de .post-content do tema (marcadores, cor e sublinhado de links) */
.post-content .apuracao ul.ap-cargos{ margin-left: 0; }
.post-content .apuracao ul.ap-cargos li{ list-style: none; margin: 0 0 -2px; }
.post-content .apuracao .ap-cargos a{ color: var(--ap-suave); }
.post-content .apuracao .ap-cargos a:hover,
.post-content .apuracao .ap-cargos a.ativo{ color: var(--ap-navy); border-bottom-color: var(--ap-navy); }
.post-content .apuracao .ap-cargos a:hover:not(.ativo){ border-bottom-color: transparent; }
.post-content .apuracao .ap-escopos a{ color: var(--ap-navy); }
.post-content .apuracao .ap-escopos a:hover{ border-bottom: 1px solid var(--ap-navy); }
.post-content .apuracao .ap-escopos a.ativo{ color: #fff; }

/* ---------- v2: seletor de municípios, visões, mapa ---------- */
.ap-escopos{ align-items: center; }
.ap-select{
  position: relative;
  display: inline-block;
  margin: 0;
  font-weight: 400;
}
.ap-select select{
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  height: 31px;
  padding: 0 30px 0 11px;
  font-size: 12px;
  font-weight: 500;
  color: var(--ap-navy);
  background: #fff;
  border: 1px solid var(--ap-borda);
  border-radius: 3px;
  cursor: pointer;
  max-width: 100%;
}
.ap-select .fa{
  position: absolute;
  right: 10px;
  top: 10px;
  font-size: 10px;
  color: var(--ap-navy);
  pointer-events: none;
}
.ap-select.ativo select{ background: var(--ap-navy); border-color: var(--ap-navy); color: #fff; }
.ap-select.ativo .fa{ color: #fff; }
.ap-select select option,
.ap-select select optgroup{ color: var(--ap-texto); background: #fff; }
.ap-trilha{ font-size: 13px; font-weight: 700; color: var(--ap-navy); }

.ap-visoes{
  display: inline-flex;
  border: 1px solid var(--ap-navy);
  border-radius: 3px;
  overflow: hidden;
  margin-bottom: 14px;
}
.post-content .apuracao .ap-visoes a{
  padding: 7px 14px;
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--ap-navy);
  background: #fff;
  border: 0;
  border-left: 1px solid var(--ap-navy);
  text-decoration: none;
}
.post-content .apuracao .ap-visoes a:first-child{ border-left: 0; }
.post-content .apuracao .ap-visoes a:hover{ background: var(--ap-fundo); border-bottom: 0; }
.post-content .apuracao .ap-visoes a.ativo{ background: var(--ap-navy); color: #fff; }

.ap-modo{
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
}
.ap-modo label{ margin: 0; font-size: 12px; font-weight: 700; text-transform: uppercase; color: var(--ap-suave); }
.ap-modo .ap-select{ flex: 1; max-width: 420px; }
.ap-modo .ap-select select{ width: 100%; }

.ap-mapa-titulo{
  font-size: 15px;
  font-weight: 700;
  color: var(--ap-titulo);
  margin: 4px 0 8px;
}
.ap-legenda,
.ap-legenda-intens{
  display: flex;
  flex-wrap: wrap;
  gap: 4px 14px;
  font-size: 12px;
  color: var(--ap-texto);
  margin-bottom: 6px;
}
.ap-legenda span,
.ap-legenda-intens span{ display: inline-flex; align-items: center; gap: 5px; }
.ap-legenda i,
.ap-legenda-intens i,
.ap-tt-linha i,
.ap-chip{
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 2px;
  flex: 0 0 12px;
}
.ap-legenda small{ color: var(--ap-suave); }
.ap-legenda-intens{ color: var(--ap-suave); margin-bottom: 10px; }
.ap-legenda-seq{ gap: 0; margin-bottom: 10px; }
.ap-legenda-seq span{ margin-right: 12px; }

.ap-mapa{
  position: relative;
  background: var(--ap-fundo);
  border-radius: 3px;
  padding: 10px;
}
.ap-mapa svg{ display: block; width: 100%; height: auto; }
.ap-mapa path{
  stroke: #fff;
  stroke-width: .8;
  stroke-linejoin: round;
  cursor: pointer;
  transition: opacity .15s;
}
.ap-mapa path:hover{ stroke: var(--ap-navy); stroke-width: 1.6; }
.ap-mapa path.fixado{ stroke: var(--ap-navy); stroke-width: 2.2; }
.ap-tooltip{
  position: absolute;
  z-index: 5;
  min-width: 200px;
  max-width: 260px;
  padding: 10px 12px;
  background: #fff;
  border-radius: 3px;
  box-shadow: 0 3px 14px rgba(28,40,57,.25);
  font-size: 13px;
  pointer-events: auto;
}
.ap-tooltip b{ display: block; color: var(--ap-titulo); font-size: 14px; }
.ap-tooltip > small{ display: block; color: var(--ap-suave); margin-bottom: 6px; font-size: 11px; }
.ap-tt-linha{ display: flex; align-items: center; gap: 6px; padding: 2px 0; }
.ap-tt-linha span{ margin-left: auto; font-weight: 700; font-variant-numeric: tabular-nums; }
.ap-tt-linha small{ color: var(--ap-suave); }
.post-content .apuracao .ap-tt-abrir{
  display: block;
  margin-top: 8px;
  padding-top: 6px;
  border-top: 1px solid #eee;
  font-size: 12px;
  font-weight: 700;
  color: var(--ap-navy);
}
.ap-dica{ font-size: 12px; color: var(--ap-suave); margin-top: 8px; }

.ap-destaque{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: var(--ap-borda);
  border: 1px solid var(--ap-borda);
  border-radius: 3px;
  overflow: hidden;
  margin-bottom: 8px;
}
.ap-destaque div{ background: var(--ap-fundo); padding: 10px 12px; }
.ap-destaque small{ display: block; font-size: 11px; font-weight: 700; text-transform: uppercase; color: var(--ap-suave); }
.ap-destaque b{ display: block; font-size: 18px; color: var(--ap-titulo); }
.ap-destaque span{ font-size: 12px; color: var(--ap-suave); }


.ap-subtitulo{
  font-size: 14px;
  font-weight: 800;
  text-transform: uppercase;
  color: var(--ap-titulo);
  margin: 6px 0 10px;
}
.ap-subtitulo small{ font-weight: 400; text-transform: none; color: var(--ap-suave); margin-left: 6px; }
.ap-partidos{ margin-bottom: 8px; }
.ap-partidos .ap-col-barra{ width: 45%; }
.ap-partidos + .ap-mais{ margin-bottom: 24px; }
.ap-partidos + .ap-subtitulo{ margin-top: 24px; }

.ap-tabela-rolagem{ overflow-x: auto; }
.ap-tabela-areas th.ordenavel{ cursor: pointer; user-select: none; white-space: nowrap; }
.ap-tabela-areas th.ordenavel:hover{ color: var(--ap-navy); }
.ap-tabela-areas th.ord-asc:after{ content: " \25B2"; font-size: 9px; }
.ap-tabela-areas th.ord-desc:after{ content: " \25BC"; font-size: 9px; }
.ap-tabela-areas tbody tr{ cursor: pointer; }
.ap-tabela-areas tbody tr:hover td{ background: var(--ap-fundo); }
.ap-chip{ margin-right: 6px; vertical-align: -1px; }

@media (max-width: 600px){
  .ap-escopos .ap-select{ flex: 1 1 100%; }
  .ap-escopos .ap-select select{ width: 100%; }
  .ap-visoes{ display: flex; }
  .post-content .apuracao .ap-visoes a{ flex: 1; text-align: center; padding: 7px 6px; }
  .ap-destaque{ grid-template-columns: 1fr; }
  .ap-partidos .ap-col-barra{ display: none; }
}
.apuracao .ap-subtitulo,
.apuracao .ap-subtitulo small{ font-family: "Roboto", Arial, sans-serif; }
.apuracao .ap-subtitulo small{ font-size: 12px; }

/* ---------- Largura total (sem barra lateral) ---------- */
.ap-mapa svg{ max-height: 640px; margin: 0 auto; }
@media (min-width: 992px){
  .ap-lista-cand{
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 40px;
  }
  .ap-resumo{ grid-template-columns: repeat(6, 1fr); }
  .ap-modo .ap-select{ max-width: 480px; }
  .ap-partidos .ap-col-barra{ width: 55%; }
}

/* Caixas de destaque: dividem a largura toda, sem sobrar espaço vazio */
.ap-destaque{ grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }

/* Aviso antes do início da apuração (com a lista de candidatos abaixo) */
.ap-previa{
  display: flex;
  gap: 12px;
  align-items: flex-start;
  background: var(--ap-fundo);
  border-left: 4px solid var(--ap-navy);
  padding: 12px 16px;
  margin-bottom: 10px;
  font-size: 14px;
  color: var(--ap-texto);
}
.ap-previa .fa{ font-size: 22px; color: var(--ap-navy); margin-top: 2px; }
.ap-previa b{ color: var(--ap-titulo); }

/* Foto cobre o círculo; o ícone só aparece quando não há foto */
.ap-foto{ position: relative; }
.ap-foto img{ position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; object-position: center top; }

/* Destaques em flex: a caixa que sobra numa linha se estica (sem buraco cinza) */
.ap-destaque{ display: flex; flex-wrap: wrap; }
.ap-destaque > div{ flex: 1 1 220px; }

/* Foto pequena na tabela de deputados */
.ap-tc{ display: flex; align-items: center; gap: 10px; }
.ap-mini{
  position: relative;
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  overflow: hidden;
  background: var(--ap-fundo);
  box-shadow: 0 0 0 1px var(--ap-borda);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #b5bac3;
  font-size: 18px;
}
.ap-mini img{ position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.ap-tabela tr.eleito .ap-mini{ box-shadow: 0 0 0 2px var(--ap-verde-claro); }
#ap-lista + .ap-subtitulo{ margin-top: 28px; }
#ap-municipio-box select{ max-width: 280px; }
@media (max-width: 600px){
  .ap-mini{ flex-basis: 32px; width: 32px; height: 32px; font-size: 14px; }
  #ap-uf-box, #ap-uf-box select{ flex: 1 1 100%; width: 100%; }
  #ap-municipio-box select{ max-width: none; }
}
/* Simulação com candidatos reais: marca d'água fixa sobre toda a área de resultados */
.apuracao.ap-simulacao{ position: relative; }
.apuracao.ap-simulacao::after{
  content: "";
  position: absolute;
  inset: 0;
  z-index: 20;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='360' height='220'%3E%3Ctext x='50%25' y='50%25' fill='%23c0392b' fill-opacity='0.16' font-family='Arial,sans-serif' font-size='34' font-weight='700' text-anchor='middle' transform='rotate(-25 180 110)'%3ESIMULA%C3%87%C3%83O%3C/text%3E%3C/svg%3E");
  background-repeat: repeat;
}
.apuracao.ap-simulacao .ap-aviso.ap-demo{ position: sticky; top: 0; z-index: 21; }
/* Selo com fonte própria (não herda a fonte serifada do nome) */
.apuracao .ap-selo{ font-family: "Roboto", Arial, sans-serif; letter-spacing: .3px; }
.ap-ao-vivo.encerrada .fa{ color: var(--ap-verde-claro); animation: none; }

/* Botão Brasil e menus de estado/município com a mesma altura */
.post-content .apuracao .ap-escopos a,
.ap-escopos .ap-select select{
  box-sizing: border-box;
  height: 34px;
}
.post-content .apuracao .ap-escopos a{
  display: inline-flex;
  align-items: center;
  padding: 0 12px;
  line-height: 1;
}
.ap-escopos .ap-select select{ padding-top: 0; padding-bottom: 0; line-height: 32px; }
.ap-escopos .ap-select .fa{ top: 12px; }

/* Aviso: selos referentes a outra abrangência */
.ap-nota{
  font-size: 13px;
  color: var(--ap-texto);
  background: var(--ap-fundo);
  border-left: 3px solid var(--ap-azul);
  padding: 8px 12px;
  margin: 10px 0 6px;
}
.ap-nota .fa{ color: var(--ap-azul); margin-right: 4px; }
/* Cidade destacada no mapa e na tabela do estado */
.ap-mapa path.destacado{ stroke: var(--ap-navy); stroke-width: 2.6; }
.ap-destaque-nome{ font-size: 13px; font-weight: 500; color: var(--ap-azul); margin-left: 6px; white-space: nowrap; }
.ap-tabela-areas tbody tr.destacado td{ background: #fff8e1; }
.ap-tabela-areas tbody tr.destacado td.nm{ box-shadow: inset 3px 0 0 var(--ap-navy); }

/* Botão "×" para sair da cidade e voltar ao estado */
.apuracao .ap-limpar{
  box-sizing: border-box;
  width: 34px;
  height: 34px;
  padding: 0;
  margin-left: -4px;
  border: 1px solid var(--ap-navy);
  border-radius: 3px;
  background: #fff;
  color: var(--ap-navy);
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
}
.apuracao .ap-limpar:hover{ background: var(--ap-navy); color: #fff; }
@media (max-width: 600px){
  #ap-municipio-box{ flex: 1 1 calc(100% - 40px); }
  .apuracao .ap-limpar{ margin-left: 0; }
}
/* Tooltip do mapa: foto do candidato com anel na cor do mapa */
.ap-tooltip{ min-width: 230px; max-width: 290px; }
.ap-tt-linha{ gap: 10px; padding: 5px 0; }
.ap-tt-linha .ap-tt-foto{
  position: relative;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  margin: 3px;
  border-radius: 50%;
  overflow: hidden;
  background: var(--ap-fundo);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #b5bac3;
  font-size: 16px;
  font-weight: 400;
}
.ap-tt-foto img{ position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.ap-tt-nome{ min-width: 0; line-height: 1.25; font-size: 13px; color: var(--ap-texto); }
.ap-tt-nome small{ display: block; font-size: 11px; color: var(--ap-suave); }