/* Eleições 2026 · dashboard. Tokens da marca em design/tokens.css. */

/* Cores dos dados. Identidade (quem lidera): as 3 primeiras cores categóricas validadas para
   mapa coroplético (todas as combinações passam em daltonismo); do 4º em diante vira "outros".
   Apuração: rampa sequencial de um só tom (teal da marca), claro = pouco, escuro = muito. */
:root {
    /* Quem lidera: azul (PL e direita), vermelho (PT e esquerda), âmbar (demais). Validadas em pares
       (daltonismo e visão normal) nos dois temas; laranja e verde saíram por se confundirem com o vermelho. */
    --serie-1: #2a78d6;
    --serie-2: #e34948;
    --serie-3: #eda100;
    --serie-outros: #9aa3ad;
    --serie-vazio: hsl(var(--neutral-100));
    --ap-0: hsl(var(--teal-50));
    --ap-1: hsl(var(--teal-100));
    --ap-2: hsl(var(--teal-200));
    --ap-3: hsl(var(--teal-300));
    --ap-4: hsl(var(--teal-500));
    --ap-5: hsl(var(--teal-700));
    --contorno: hsl(var(--surface-card));
    /* Composição (hemiciclo e listas): as 8 categóricas validadas para vizinhos lado a lado, na ordem. */
    --cat-1: #2a78d6; --cat-2: #eb6834; --cat-3: #1baf7a; --cat-4: #eda100;
    --cat-5: #e87ba4; --cat-6: #008300; --cat-7: #4a3aa7; --cat-8: #e34948;
    /* 4 cores a mais para identificar partidos nos mapas (validadas com as 8 acima) */
    --cat-9: #b0348f; --cat-10: #0f8fa3; --cat-11: #a0522d; --cat-12: #8f9a00;
}
:root[data-theme='dark'] {
    --serie-1: #3987e5;
    --serie-2: #c93b52;
    --serie-3: #c98500;
    --serie-outros: #5d6874;
    --serie-vazio: hsl(var(--neutral-200));
    --ap-0: hsl(198 40% 16%);
    --ap-1: hsl(198 45% 22%);
    --ap-2: hsl(196 55% 30%);
    --ap-3: hsl(190 70% 38%);
    --ap-4: hsl(186 90% 44%);
    --ap-5: hsl(184 100% 58%);
    --cat-1: #3987e5; --cat-2: #d95926; --cat-3: #199e70; --cat-4: #c98500;
    --cat-5: #d55181; --cat-6: #008300; --cat-7: #9085e9; --cat-8: #c93b52;
    --cat-9: #a34db8; --cat-10: #1a9fb3; --cat-11: #b86a3c; --cat-12: #86901a;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
body {
    margin: 0;
    background: hsl(var(--bg-subtle));
    color: hsl(var(--text-body));
    font-family: var(--font-sans);
    -webkit-font-smoothing: antialiased;
}
h1, h2, h3, p { margin: 0; }
.num, .tabular { font-variant-numeric: tabular-nums; }

/* ---------- topo ---------- */
.topo {
    display: flex; align-items: center; justify-content: space-between; gap: var(--space-md);
    padding: var(--space-md) var(--space-xl);
    background: hsl(var(--surface-card));
    border-bottom: 1px solid hsl(var(--border-subtle));
    position: sticky; top: 0; z-index: 20;
}
.topo__marca { display: flex; align-items: center; gap: var(--space-sm); }
.topo__titulo { font-family: var(--font-display); font-weight: 800; font-size: var(--text-xl); color: hsl(var(--text-heading)); line-height: 1.1; }
.topo__status { display: flex; align-items: center; gap: var(--space-xs); }
.marca-escuro { display: none; }
:root[data-theme='dark'] .marca-luz { display: none; }
:root[data-theme='dark'] .marca-escuro { display: inline; }
.selo {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 4px 10px; border-radius: var(--radius-full);
    font-size: var(--text-xs); font-weight: 600;
    background: hsl(var(--warning-100)); color: hsl(var(--warning-600) / 1);
    margin-left: var(--space-sm);
}
:root[data-theme='dark'] .selo { background: hsl(var(--warning-500) / 0.16); color: hsl(var(--warning-500)); }
.selo--status { margin-left: 0; background: hsl(var(--bg-muted)); color: hsl(var(--text-body)); }
:root[data-theme='dark'] .selo--status { background: hsl(var(--bg-muted)); color: hsl(var(--text-body)); }
.selo--final { background: hsl(var(--success-100)); color: hsl(var(--success-600)); }
:root[data-theme='dark'] .selo--final { background: hsl(var(--success-500) / 0.16); color: hsl(var(--success-500)); }
.pulso { width: 8px; height: 8px; border-radius: 50%; background: hsl(var(--color-accent)); opacity: .35; }
.pulso.ativo { animation: pulso 1.6s var(--ease-standard) infinite; opacity: 1; }
@keyframes pulso { 0%, 100% { opacity: 1; } 50% { opacity: .3; } }

/* ---------- apuração do Brasil ---------- */
.apuracao-br {
    display: grid; grid-template-columns: auto 1fr; gap: var(--space-xl); align-items: center;
    width: min(1440px - 2 * var(--space-xl), 100% - 2 * var(--space-xl));
    margin: var(--space-lg) auto 0; padding: var(--space-lg) var(--space-xl);
    background: hsl(var(--surface-card)); border: 1px solid hsl(var(--border-subtle)); border-radius: var(--radius-lg);
}
.apuracao-br__numero {
    font-family: var(--font-display); font-weight: 300; font-size: var(--text-5xl); line-height: 1;
    color: hsl(var(--color-primary)); font-variant-numeric: tabular-nums; margin: 6px 0 4px;
}
.apuracao-br__unidade { font-size: var(--text-2xl); margin-left: 2px; }
.apuracao-br__marcas { display: flex; justify-content: space-between; margin-top: 6px; }
.barra { height: 8px; border-radius: var(--radius-full); background: hsl(var(--bg-muted)); overflow: hidden; }
.barra--grande { height: 16px; }
.barra__valor { height: 100%; width: 0; border-radius: var(--radius-full); background: hsl(var(--color-accent)); transition: width var(--duration-slow) var(--ease-standard); }

/* ---------- filtros ---------- */
.filtros {
    max-width: 1440px; margin: var(--space-lg) auto 0; padding: 0 var(--space-xl);
    display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--space-md);
}
.filtros__linha { display: flex; flex-wrap: wrap; gap: var(--space-sm); align-items: flex-end; }
.campo { display: flex; flex-direction: column; gap: 4px; position: relative; }
.campo__rotulo { font-size: var(--text-xs); font-weight: 600; color: hsl(var(--text-muted)); }
.campo .input { height: 42px; padding-top: 0; padding-bottom: 0; }
.campo select.input { min-width: 170px; padding-right: 32px; }
.campo--busca .input { width: 280px; }
.input--compacto { width: 220px; padding-top: 6px; padding-bottom: 6px; font-size: var(--text-sm); }

.segmentado {
    display: inline-flex; flex-wrap: wrap; gap: 2px; padding: 3px;
    background: hsl(var(--bg-muted)); border-radius: var(--radius-sm);
}
.segmentado button {
    border: 0; background: transparent; cursor: pointer;
    padding: 8px 14px; border-radius: 6px;
    font: 600 var(--text-sm)/1.2 var(--font-sans); color: hsl(var(--text-muted));
    transition: background var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);
}
.segmentado button:hover { color: hsl(var(--text-heading)); }
.segmentado button[aria-selected='true'] { background: hsl(var(--surface-card)); color: hsl(var(--color-primary)); box-shadow: var(--shadow-xs); }
.segmentado button:disabled { opacity: .4; cursor: not-allowed; }
.segmentado button:focus-visible { outline: none; box-shadow: var(--shadow-focus); }
.segmentado--pequeno button { padding: 6px 10px; font-size: var(--text-xs); }

.busca-lista {
    position: absolute; top: 100%; left: 0; right: 0; z-index: 30; margin: 4px 0 0; padding: 4px; list-style: none;
    background: hsl(var(--surface-card)); border: 1px solid hsl(var(--border-default)); border-radius: var(--radius-sm);
    box-shadow: var(--shadow-lg); max-height: 320px; overflow: auto;
}
.busca-lista li { padding: 8px 10px; border-radius: 6px; cursor: pointer; display: flex; justify-content: space-between; gap: 8px; font-size: var(--text-sm); }
.busca-lista li[aria-selected='true'], .busca-lista li:hover { background: hsl(var(--bg-muted)); }
.busca-lista .uf { color: hsl(var(--text-muted)); font-size: var(--text-xs); }

.trilha { max-width: 1440px; margin: var(--space-md) auto 0; padding: 0 var(--space-xl); display: flex; gap: 6px; align-items: center; font-size: var(--text-sm); color: hsl(var(--text-muted)); }
.trilha a { color: hsl(var(--color-primary)); text-decoration: none; font-weight: 600; cursor: pointer; }
.trilha a:hover { text-decoration: underline; }
.trilha .atual { color: hsl(var(--text-heading)); font-weight: 600; }

/* ---------- grade ---------- */
.grade {
    max-width: 1440px; margin: var(--space-md) auto var(--space-2xl); padding: 0 var(--space-xl);
    display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(360px, 1fr); gap: var(--space-lg);
    align-items: start;
}
.cartao-tabela { grid-column: 1 / -1; }
.cartao__topo { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--space-md); margin-bottom: var(--space-md); }

/* ---------- mapa ---------- */
.mapa { position: relative; }
.mapa svg { width: 100%; height: auto; display: block; max-height: 72vh; }
.mapa path.regiao {
    stroke: var(--contorno); stroke-width: 0.8; stroke-linejoin: round; cursor: pointer; vector-effect: non-scaling-stroke;
    transition: opacity var(--duration-fast) var(--ease-standard);
}
.mapa path.regiao:hover, .mapa path.regiao.foco { stroke: hsl(var(--text-heading)); stroke-width: 1.8; }
.mapa path.regiao.selecionado { stroke: hsl(var(--text-heading)); stroke-width: 2.6; }
.mapa.tem-selecao path.regiao:not(.selecionado) { opacity: .55; }
.mapa__voltar { position: absolute; top: 0; left: 0; }
.mapa__carregando { position: absolute; inset: 0; display: grid; place-items: center; color: hsl(var(--text-muted)); font-size: var(--text-sm); }

.c-1 { fill: var(--serie-1); background: var(--serie-1); }
.c-2 { fill: var(--serie-2); background: var(--serie-2); }
.c-3 { fill: var(--serie-3); background: var(--serie-3); }
.c-outros { fill: var(--serie-outros); background: var(--serie-outros); }
.c-vazio { fill: var(--serie-vazio); background: var(--serie-vazio); }
.ap-0 { fill: var(--ap-0); background: var(--ap-0); }
.ap-1 { fill: var(--ap-1); background: var(--ap-1); }
.ap-2 { fill: var(--ap-2); background: var(--ap-2); }
.ap-3 { fill: var(--ap-3); background: var(--ap-3); }
.ap-4 { fill: var(--ap-4); background: var(--ap-4); }
.ap-5 { fill: var(--ap-5); background: var(--ap-5); }

.legenda { display: flex; flex-wrap: wrap; gap: var(--space-sm) var(--space-md); margin-top: var(--space-md); font-size: var(--text-xs); color: hsl(var(--text-body)); }
.legenda__item { display: inline-flex; align-items: center; gap: 6px; }
.legenda__cor { width: 12px; height: 12px; border-radius: 3px; flex: none; }
.legenda--rampa { gap: 0; align-items: center; }
.legenda--rampa .legenda__cor { width: 44px; height: 10px; border-radius: 0; }
.legenda--rampa .legenda__cor:first-of-type { border-radius: 3px 0 0 3px; }
.legenda--rampa .legenda__cor:last-of-type { border-radius: 0 3px 3px 0; }
.legenda__rotulos { display: flex; justify-content: space-between; width: 264px; margin-top: 4px; }

/* ---------- resultado ---------- */
.res-titulo { font-size: var(--text-2xl); line-height: 1.15; }
.res-apuracao { display: grid; gap: 6px; padding: var(--space-md); border-radius: var(--radius-sm); background: hsl(var(--bg-subtle)); }
.res-apuracao__linha { display: flex; justify-content: space-between; align-items: baseline; }
.res-apuracao__linha strong { font-family: var(--font-display); font-size: var(--text-xl); color: hsl(var(--text-heading)); font-variant-numeric: tabular-nums; }
.numeros { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-sm); margin: var(--space-md) 0 0; }
.numeros div { padding: 10px 12px; border: 1px solid hsl(var(--border-subtle)); border-radius: var(--radius-sm); }
.numeros dt { font-size: var(--text-xs); color: hsl(var(--text-muted)); }
.numeros dd { margin: 2px 0 0; font-weight: 600; color: hsl(var(--text-heading)); font-variant-numeric: tabular-nums; }
.numeros dd small { display: block; font-weight: 400; color: hsl(var(--text-muted)); font-size: var(--text-xs); }
.subtitulo { margin: var(--space-lg) 0 var(--space-sm); color: hsl(var(--text-muted)); }
.aviso { margin-top: var(--space-md); padding: var(--space-md); border-radius: var(--radius-sm); background: hsl(var(--bg-muted)); font-size: var(--text-sm); }

.ranking { list-style: none; margin: 0 0 var(--space-md); padding: 0; display: grid; gap: 10px; }
.ranking li { display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; align-items: baseline; }
.ranking .nome { font-weight: 600; color: hsl(var(--text-heading)); font-size: var(--text-sm); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ranking .nome small { font-weight: 400; color: hsl(var(--text-muted)); margin-left: 6px; }
.ranking .valor { text-align: right; font-variant-numeric: tabular-nums; font-size: var(--text-sm); color: hsl(var(--text-heading)); font-weight: 600; }
.ranking .valor small { display: block; font-weight: 400; color: hsl(var(--text-muted)); font-size: var(--text-xs); }
.ranking .trilho { grid-column: 1 / -1; height: 8px; border-radius: var(--radius-full); background: hsl(var(--bg-muted)); overflow: hidden; }
.ranking .trilho span { display: block; height: 100%; border-radius: 0 4px 4px 0; min-width: 2px; transition: width var(--duration-slow) var(--ease-standard); }
.eleito { display: inline-block; margin-left: 6px; padding: 1px 6px; border-radius: var(--radius-xs); background: hsl(var(--success-100)); color: hsl(var(--success-600)); font-size: 11px; font-weight: 700; vertical-align: 1px; }
:root[data-theme='dark'] .eleito { background: hsl(var(--success-500) / 0.16); color: hsl(var(--success-500)); }

/* ---------- tabela ---------- */
.tabela-rolagem { overflow: auto; max-height: 520px; border: 1px solid hsl(var(--border-subtle)); border-radius: var(--radius-sm); }
.tabela { width: 100%; border-collapse: collapse; font-size: var(--text-sm); }
.tabela th {
    position: sticky; top: 0; z-index: 1; text-align: left; font-size: var(--text-xs); font-weight: 600;
    color: hsl(var(--text-muted)); background: hsl(var(--bg-subtle)); padding: 10px 12px; cursor: pointer; user-select: none;
    border-bottom: 1px solid hsl(var(--border-subtle)); white-space: nowrap;
}
.tabela th[aria-sort]::after { content: ''; display: inline-block; margin-left: 6px; border: 4px solid transparent; }
.tabela th[aria-sort='ascending']::after { border-bottom-color: currentColor; transform: translateY(-2px); }
.tabela th[aria-sort='descending']::after { border-top-color: currentColor; transform: translateY(2px); }
.tabela td { padding: 9px 12px; border-bottom: 1px solid hsl(var(--border-subtle)); color: hsl(var(--text-body)); }
.tabela tbody tr { cursor: pointer; }
.tabela tbody tr:hover td { background: hsl(var(--bg-subtle)); }
.tabela tbody tr.selecionado td { background: hsl(var(--color-accent) / 0.1); }
.tabela .num { text-align: right; font-variant-numeric: tabular-nums; }
.tabela .local { font-weight: 600; color: hsl(var(--text-heading)); }
.mini-barra { display: inline-block; width: 56px; height: 6px; border-radius: 3px; background: hsl(var(--bg-muted)); vertical-align: middle; margin-right: 8px; overflow: hidden; }
.mini-barra span { display: block; height: 100%; background: hsl(var(--color-accent)); }
.bolinha { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 8px; vertical-align: -1px; }

/* ---------- dica (tooltip) ---------- */
.dica {
    position: fixed; z-index: 50; pointer-events: none; min-width: 200px; max-width: 280px;
    padding: 10px 12px; border-radius: var(--radius-sm);
    background: hsl(var(--surface-card)); border: 1px solid hsl(var(--border-default)); box-shadow: var(--shadow-lg);
    font-size: var(--text-xs); color: hsl(var(--text-body));
}
.dica strong { display: block; font-size: var(--text-sm); color: hsl(var(--text-heading)); margin-bottom: 6px; }
.dica .linha { display: flex; justify-content: space-between; gap: 12px; margin-top: 3px; }
.dica .linha b { color: hsl(var(--text-heading)); font-variant-numeric: tabular-nums; }

.rodape { max-width: 1440px; margin: 0 auto; padding: 0 var(--space-xl) var(--space-2xl); display: grid; gap: 4px; }

/* ---------- telas menores ---------- */
@media (max-width: 1100px) {
    .grade { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 720px) {
    .topo { padding: var(--space-sm) var(--space-md); }
    .topo__status .t-caption { display: none; }
    .apuracao-br { grid-template-columns: 1fr; gap: var(--space-sm); width: calc(100% - 2 * var(--space-md)); margin-top: var(--space-md); padding: var(--space-md); }
    .tabela th:nth-child(5), .tabela td:nth-child(5) { display: none; }
    .apuracao-br__numero { font-size: var(--text-4xl); }
    .filtros, .trilha, .grade, .rodape { padding-left: var(--space-md); padding-right: var(--space-md); }
    .filtros__linha, .campo, .campo--busca .input, .campo select.input { width: 100%; }
    .segmentado { width: 100%; }
    .segmentado button { flex: 1 1 auto; }
    .numeros { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .card { padding: var(--space-md); }
    .cartao__topo { flex-direction: column; }
    .input--compacto { width: 100%; }
    .topo .selo { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* ================================================================ fase 1 */

/* ---------- abas ---------- */
.abas {
    max-width: 1440px; margin: var(--space-lg) auto 0; padding: 0 var(--space-xl);
    display: flex; gap: var(--space-lg); border-bottom: 1px solid hsl(var(--border-subtle));
}
.abas button {
    border: 0; background: none; cursor: pointer; padding: 12px 2px; margin-bottom: -1px;
    font: 600 var(--text-md)/1.2 var(--font-sans); color: hsl(var(--text-muted));
    border-bottom: 2px solid transparent; transition: color var(--duration-fast) var(--ease-standard);
}
.abas button:hover { color: hsl(var(--text-heading)); }
.abas button[aria-selected='true'] { color: hsl(var(--color-primary)); border-bottom-color: hsl(var(--color-accent)); }
.abas button:focus-visible { outline: none; box-shadow: var(--shadow-focus); border-radius: 4px; }

/* ---------- cores de grupo (composição) ---------- */
.k-1 { --k: var(--cat-1); } .k-2 { --k: var(--cat-2); } .k-3 { --k: var(--cat-3); } .k-4 { --k: var(--cat-4); }
.k-5 { --k: var(--cat-5); } .k-6 { --k: var(--cat-6); } .k-7 { --k: var(--cat-7); } .k-8 { --k: var(--cat-8); }
.k-outros { --k: var(--serie-outros); }
.amostra { display: inline-block; width: 12px; height: 12px; border-radius: 3px; background: var(--k); flex: none; }

/* ---------- avatar / foto ---------- */
.avatar {
    flex: none; width: 40px; height: 40px; border-radius: 50%; object-fit: cover; object-position: 50% 20%;
    background: hsl(var(--bg-muted)); color: hsl(var(--text-muted)); display: inline-grid; place-items: center;
    font: 700 var(--text-xs)/1 var(--font-sans); overflow: hidden;
}
.avatar--p { width: 32px; height: 32px; }
.avatar--g { width: 72px; height: 90px; border-radius: var(--radius-sm); font-size: var(--text-lg); }

/* ---------- placar ---------- */
.placar {
    max-width: 1440px; margin: var(--space-md) auto 0; padding: 0 var(--space-xl);
    display: grid; gap: var(--space-md);
}
.placar__status {
    display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-sm);
    font-size: var(--text-md); color: hsl(var(--text-heading));
}
.placar__status strong { font-weight: 700; }
.placar__cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: var(--space-md); }
.placar-card {
    display: grid; grid-template-columns: auto 1fr; gap: var(--space-md); align-items: center;
    padding: var(--space-md); background: hsl(var(--surface-card));
    border: 1px solid hsl(var(--border-subtle)); border-radius: var(--radius-md);
}
.placar-card--dentro { border-color: hsl(var(--color-accent)); box-shadow: 0 0 0 1px hsl(var(--color-accent) / 0.35); }
.placar-card__pos { font-size: var(--text-xs); font-weight: 700; color: hsl(var(--text-muted)); text-transform: uppercase; letter-spacing: .06em; }
.placar-card__nome { font-family: var(--font-display); font-weight: 800; font-size: var(--text-lg); color: hsl(var(--text-heading)); line-height: 1.15; overflow-wrap: anywhere; }
.placar-card__partido { display: flex; align-items: center; gap: 6px; font-size: var(--text-xs); color: hsl(var(--text-muted)); margin-top: 2px; }
.placar-card__pct { font-family: var(--font-display); font-weight: 300; font-size: var(--text-4xl); line-height: 1; color: hsl(var(--text-heading)); font-variant-numeric: tabular-nums; margin-top: 6px; }
.placar-card__pct small { font-size: var(--text-lg); }
.placar-card__extra { font-size: var(--text-xs); color: hsl(var(--text-muted)); margin-top: 2px; font-variant-numeric: tabular-nums; }
.placar-card .barrinha { height: 4px; border-radius: 2px; margin-top: 8px; background: hsl(var(--bg-muted)); overflow: hidden; }
.placar-card .barrinha span { display: block; height: 100%; border-radius: 2px; }
.selo--proj { background: hsl(var(--color-accent) / 0.14); color: hsl(var(--color-primary)); margin-left: 0; }
.selo--ok { background: hsl(var(--success-100)); color: hsl(var(--success-600)); margin-left: 0; }
:root[data-theme='dark'] .selo--proj { background: hsl(var(--cyan-500) / 0.14); color: hsl(var(--cyan-400)); }
:root[data-theme='dark'] .selo--ok { background: hsl(var(--success-500) / 0.16); color: hsl(var(--success-500)); }
.placar__vagas { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-sm) var(--space-lg); padding: var(--space-md) var(--space-lg); background: hsl(var(--surface-card)); border: 1px solid hsl(var(--border-subtle)); border-radius: var(--radius-md); }
.placar__vagas .numero { font-family: var(--font-display); font-weight: 800; font-size: var(--text-2xl); color: hsl(var(--text-heading)); }
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chip { display: inline-flex; align-items: center; gap: 6px; padding: 3px 9px; border-radius: var(--radius-full); background: hsl(var(--bg-muted)); font-size: var(--text-xs); color: hsl(var(--text-body)); white-space: nowrap; }
.chip b { color: hsl(var(--text-heading)); }

/* ---------- lista do resultado ---------- */
.lista-topo { display: flex; justify-content: space-between; align-items: center; gap: var(--space-sm); margin: var(--space-lg) 0 var(--space-sm); flex-wrap: wrap; }
.lista-topo .t-eyebrow { color: hsl(var(--text-muted)); }
.nota-lista { margin: -4px 0 var(--space-sm); }
.ranking li.com-foto { grid-template-columns: auto 1fr auto; }
.ranking li.com-foto .trilho { grid-column: 2 / -1; }
.ranking li.com-foto .avatar { grid-row: span 2; align-self: center; }
.ranking .sub { display: block; font-weight: 400; color: hsl(var(--text-muted)); font-size: var(--text-xs); margin-top: 1px; white-space: normal; }
.ranking .cadeiras { display: inline-block; margin-left: 6px; padding: 1px 7px; border-radius: var(--radius-xs); background: hsl(var(--color-accent) / 0.14); color: hsl(var(--color-primary)); font-size: 11px; font-weight: 700; }
.trilho .unica { background: hsl(var(--color-accent)); }

/* ---------- composição ---------- */
.grade--composicao { grid-template-columns: minmax(0, 1.35fr) minmax(340px, 1fr); }
.cartao-estados, .cartao-bancada { grid-column: 1 / -1; }
.casa-resumo { margin-top: 6px; max-width: 70ch; color: hsl(var(--text-body)); }
.hemiciclo { position: relative; }
.hemiciclo svg { width: 100%; height: auto; display: block; }
.hemiciclo circle.cadeira { stroke-width: 1.6; cursor: pointer; transition: opacity var(--duration-fast) var(--ease-standard); }
.hemiciclo circle.cheia { fill: var(--k); stroke: var(--k); }
.hemiciclo circle.vazada { fill: var(--k); fill-opacity: .3; stroke: var(--k); }
.hemiciclo.foco circle.cadeira:not(.ativa) { opacity: .18; }
.hemiciclo text.total { font-family: var(--font-display); font-weight: 300; font-size: 76px; fill: hsl(var(--text-heading)); font-variant-numeric: tabular-nums; }
.hemiciclo text.rotulo { font-family: var(--font-sans); font-size: 17px; fill: hsl(var(--text-muted)); }
.legenda__cheia, .legenda__vazada { width: 12px; height: 12px; border-radius: 50%; border: 2px solid hsl(var(--text-muted)); display: inline-block; }
.legenda__cheia { background: hsl(var(--text-muted)); }
.legenda__vazada { background: hsl(var(--text-muted) / 0.3); }

.grupos { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; max-height: 560px; overflow: auto; }
.grupos li { display: grid; grid-template-columns: auto 1fr auto; gap: 2px 10px; align-items: center; padding: 8px 10px; border-radius: var(--radius-sm); cursor: pointer; }
.grupos li:hover, .grupos li.ativo { background: hsl(var(--bg-muted)); }
.grupos li:focus-visible { outline: none; box-shadow: var(--shadow-focus); }
.grupos .nome { font-weight: 600; color: hsl(var(--text-heading)); font-size: var(--text-sm); overflow-wrap: anywhere; }
.grupos .n { font-family: var(--font-display); font-weight: 800; font-size: var(--text-lg); color: hsl(var(--text-heading)); font-variant-numeric: tabular-nums; }
.grupos .det { grid-column: 2 / -1; font-size: var(--text-xs); color: hsl(var(--text-muted)); }
.grupos .separador { cursor: default; padding: 12px 10px 4px; font-size: var(--text-xs); font-weight: 600; color: hsl(var(--text-muted)); text-transform: uppercase; letter-spacing: .06em; }
.grupos .separador:hover { background: none; }

.pessoas { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: var(--space-sm); }
.pessoas li { display: flex; gap: 10px; align-items: center; padding: 8px; border: 1px solid hsl(var(--border-subtle)); border-radius: var(--radius-sm); min-width: 0; }
.pessoas .txt { min-width: 0; font-size: var(--text-sm); }
.pessoas .txt b { display: block; color: hsl(var(--text-heading)); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pessoas .txt span { font-size: var(--text-xs); color: hsl(var(--text-muted)); }
.pessoas .uf-titulo { grid-column: 1 / -1; border: 0; padding: var(--space-sm) 0 0; font-weight: 700; color: hsl(var(--text-heading)); }

.estados-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: var(--space-md); }
.estado-card { border: 1px solid hsl(var(--border-subtle)); border-radius: var(--radius-md); padding: var(--space-md); display: grid; gap: 8px; align-content: start; }
.estado-card__topo { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.estado-card__topo b { font-family: var(--font-display); font-weight: 800; color: hsl(var(--text-heading)); }
.estado-card .linha-cand { display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; font-size: var(--text-sm); }
.estado-card .linha-cand .nm { min-width: 0; }
.estado-card .linha-cand .nm b { display: block; color: hsl(var(--text-heading)); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.estado-card .linha-cand .nm span { font-size: var(--text-xs); color: hsl(var(--text-muted)); }
.estado-card .linha-cand .pc { font-weight: 700; color: hsl(var(--text-heading)); font-variant-numeric: tabular-nums; text-align: right; }
.estado-card .linha-cand .pc small { display: block; font-weight: 400; font-size: 11px; color: hsl(var(--text-muted)); }
.estado-card .fora { opacity: .62; }
.estado-card .fixo { border-top: 1px dashed hsl(var(--border-default)); padding-top: 8px; }
.estado-card .rotulo-mini { font-size: 11px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: hsl(var(--text-muted)); }

@media (max-width: 1100px) { .grade--composicao { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 720px) {
    .abas { padding: 0 var(--space-md); gap: var(--space-md); overflow-x: auto; }
    .abas button { font-size: var(--text-sm); white-space: nowrap; }
    .placar { padding: 0 var(--space-md); }
    .placar__cards { grid-template-columns: 1fr; }
    .placar-card__pct { font-size: var(--text-3xl); }
    .so-largo { display: none; }
}

/* ================================================================ fase 2 */
.controles-mapa { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }

/* Intensidade pela vantagem do líder (só no modo "quem lidera", cargos majoritários). */
.mapa .regiao.m-1 { fill-opacity: .38; }
.mapa .regiao.m-2 { fill-opacity: .68; }
.mapa .regiao.m-3 { fill-opacity: 1; }
.legenda__intens { display: inline-flex; align-items: center; gap: 4px; }
.legenda__intens i { width: 16px; height: 12px; border-radius: 3px; background: hsl(var(--text-muted)); display: inline-block; }

/* Grade de estados (cartograma). */
.mapa rect.regiao { rx: 6px; }
.mapa text.sigla { font: 700 20px var(--font-sans); fill: hsl(var(--text-heading)); pointer-events: none; }
.mapa text.valor { font: 500 14px var(--font-sans); fill: hsl(var(--text-body)); pointer-events: none; font-variant-numeric: tabular-nums; }
.mapa text.sobre-cor { fill: #fff; }

/* Evolução. */
.cartao-evolucao { grid-column: 1 / -1; }
.evolucao svg { width: 100%; height: auto; display: block; overflow: visible; }
.evolucao .eixo text { font: 12px var(--font-sans); fill: hsl(var(--text-muted)); }
.evolucao .eixo line, .evolucao .grade-linha { stroke: hsl(var(--border-subtle)); }
.evolucao .eixo path { display: none; }
.evolucao .ref50 { stroke: hsl(var(--text-muted)); stroke-dasharray: 4 4; }
.evolucao .ref50-txt { font: 12px var(--font-sans); fill: hsl(var(--text-muted)); }
.evolucao .linha-evol { fill: none; stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.evolucao .linha-evol.c-outros { stroke-width: 1.5; }
.evolucao .ponto { stroke: hsl(var(--surface-card)); stroke-width: 2; }
.evolucao .rotulo-fim { font: 600 12px var(--font-sans); fill: hsl(var(--text-heading)); }
.evolucao .cruz { stroke: hsl(var(--text-muted)); stroke-width: 1; }
.linha-evol.c-1 { stroke: var(--serie-1); } .linha-evol.c-2 { stroke: var(--serie-2); }
.linha-evol.c-3 { stroke: var(--serie-3); } .linha-evol.c-outros { stroke: var(--serie-outros); }

/* Página do candidato (diálogo). */
.dlg-cand {
    width: min(1100px, calc(100% - 32px)); max-height: calc(100vh - 48px); padding: var(--space-xl);
    border: 1px solid hsl(var(--border-subtle)); border-radius: var(--radius-lg);
    background: hsl(var(--surface-card)); color: hsl(var(--text-body)); box-shadow: var(--shadow-xl);
}
.dlg-cand::backdrop { background: hsl(215 30% 10% / .55); }
.dlg-cand__topo { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--space-md); }
.dlg-cand__id { display: flex; gap: var(--space-md); align-items: center; }
.dlg-cand__corpo { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(260px, 1fr); gap: var(--space-xl); }
.mapa--cand svg { max-height: 56vh; }
.lugares { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; counter-reset: l; }
.lugares li { display: grid; grid-template-columns: 1fr auto; gap: 8px; font-size: var(--text-sm); padding: 6px 0; border-bottom: 1px solid hsl(var(--border-subtle)); }
.lugares li b { color: hsl(var(--text-heading)); font-weight: 600; }
.lugares li span { font-variant-numeric: tabular-nums; color: hsl(var(--text-heading)); font-weight: 600; }
.lugares li small { display: block; font-weight: 400; color: hsl(var(--text-muted)); font-size: var(--text-xs); }
.clicavel { cursor: pointer; }
.placar-card.clicavel:hover { box-shadow: var(--shadow-md); }
.ranking li.clicavel:hover .nome { color: hsl(var(--color-primary)); text-decoration: underline; }
@media (max-width: 720px) {
    .dlg-cand { padding: var(--space-md); }
    .dlg-cand__corpo { grid-template-columns: 1fr; }
    .controles-mapa { justify-content: flex-start; }
}
.tag-lidera { font-style: normal; margin-left: 6px; padding: 1px 7px; border-radius: var(--radius-xs); background: hsl(var(--color-accent) / 0.14); color: hsl(var(--color-primary)); font-size: 11px; font-weight: 700; }

/* ================================================================ fase 3 */
/* Apuração compacta no cabeçalho: aparece quando a faixa grande sai da tela. */
.apuracao-mini { display: inline-flex; align-items: center; gap: 8px; margin-right: var(--space-sm); }
.apuracao-mini__num { font-family: var(--font-display); font-weight: 800; color: hsl(var(--color-primary)); font-variant-numeric: tabular-nums; }
.apuracao-mini__barra { width: 72px; height: 6px; border-radius: 3px; background: hsl(var(--bg-muted)); overflow: hidden; }
.apuracao-mini__barra span { display: block; height: 100%; width: 0; background: hsl(var(--color-accent)); transition: width var(--duration-slow) var(--ease-standard); }
.apuracao-mini__txt { font-size: var(--text-xs); color: hsl(var(--text-muted)); }

/* Aviso rápido (link copiado). */
.aviso-toast {
    position: fixed; left: 50%; bottom: 96px; transform: translateX(-50%); z-index: 80;
    padding: 10px 16px; border-radius: var(--radius-sm); background: hsl(var(--bg-inverted)); color: hsl(var(--text-inverted));
    font-size: var(--text-sm); box-shadow: var(--shadow-lg);
}

/* Gaveta de filtros: só no celular. */
.gaveta__topo, .barra-filtros, .fundo-gaveta { display: none; }
.ranking li.oculto { display: none; }

@media (max-width: 720px) {
    body { padding-bottom: 76px; }
    .apuracao-mini__txt, .apuracao-mini__barra { display: none; }
    .barra-filtros {
        display: flex; align-items: center; justify-content: space-between; gap: var(--space-sm);
        position: fixed; left: 0; right: 0; bottom: 0; z-index: 40;
        padding: 10px var(--space-md) calc(10px + env(safe-area-inset-bottom));
        background: hsl(var(--surface-card)); border-top: 1px solid hsl(var(--border-subtle)); box-shadow: var(--shadow-lg);
    }
    .barra-filtros[hidden] { display: none !important; }
    .barra-filtros__resumo { font-size: var(--text-sm); font-weight: 600; color: hsl(var(--text-heading)); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    #filtros-resultados {
        position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; margin: 0;
        max-height: 85vh; overflow: auto; flex-direction: column; align-items: stretch; flex-wrap: nowrap;
        padding: var(--space-md) var(--space-md) calc(var(--space-lg) + env(safe-area-inset-bottom));
        background: hsl(var(--surface-card)); border-radius: var(--radius-lg) var(--radius-lg) 0 0; box-shadow: var(--shadow-xl);
        transform: translateY(105%); transition: transform var(--duration-base) var(--ease-standard); visibility: hidden;
    }
    #filtros-resultados.aberta { transform: translateY(0); visibility: visible; }
    .gaveta__topo { display: flex; justify-content: space-between; align-items: center; font-size: var(--text-md); color: hsl(var(--text-heading)); }
    .fundo-gaveta { display: block; position: fixed; inset: 0; z-index: 55; background: hsl(215 30% 10% / .45); }
    .fundo-gaveta[hidden] { display: none; }
}
@media (max-width: 720px) {
    .topo__marca .t-eyebrow { display: none; }
    .topo__titulo { white-space: nowrap; font-size: var(--text-lg); }
}

/* ================================================================ revisão de UX (organização e alinhamento) */
/* Cabeçalho: marca | abas | status. As abas ficam sempre à mão (cabeçalho fixo). */
.topo { display: grid; grid-template-columns: auto 1fr auto; gap: var(--space-xl); padding-top: 0; padding-bottom: 0; min-height: 64px; }
.topo__marca { padding: 10px 0; }
.topo__titulo { font-size: var(--text-xl); white-space: nowrap; }
.topo .abas { margin: 0; padding: 0; border: 0; max-width: none; align-self: stretch; gap: var(--space-lg); }
.topo .abas button { padding: 0 2px; font-size: var(--text-sm); border-bottom-width: 3px; margin-bottom: 0; }
.topo__status { justify-self: end; }

/* Faixa de apuração em uma linha. */
.apuracao-br { grid-template-columns: auto auto minmax(0, 1fr); gap: var(--space-lg); padding: var(--space-md) var(--space-lg); }
.apuracao-br__texto .t-caption { margin-top: 2px; }
.apuracao-br__numero { font-size: var(--text-4xl); margin: 0; }
.apuracao-br__unidade { font-size: var(--text-xl); }
.apuracao-br__barra .barra--grande { height: 12px; }

/* Filtros: rótulo em todos os campos para alinhar pelo topo. */
.filtros { align-items: flex-end; }

/* Títulos de cartão com o mesmo peso em toda a página. */
.cartao__titulo { font-family: var(--font-display); font-weight: 800; font-size: var(--text-xl); line-height: 1.2; color: hsl(var(--text-heading)); margin-top: 2px; }
.cartao__topo .t-eyebrow { color: hsl(var(--color-primary)); }
.titulo-info { display: flex; align-items: center; gap: 6px; }

/* Botão ⓘ e popover. */
.info {
    flex: none; display: inline-grid; place-items: center; width: 28px; height: 28px; padding: 0;
    border: 0; border-radius: 50%; background: transparent; color: hsl(var(--text-muted)); cursor: pointer;
    transition: background var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);
}
.info:hover, .info[aria-expanded='true'] { background: hsl(var(--bg-muted)); color: hsl(var(--color-primary)); }
.info:focus-visible { outline: none; box-shadow: var(--shadow-focus); }
.popover {
    position: fixed; z-index: 90; width: 360px; max-width: calc(100vw - 32px);
    padding: var(--space-md); border-radius: var(--radius-md);
    background: hsl(var(--surface-card)); border: 1px solid hsl(var(--border-default)); box-shadow: var(--shadow-xl);
    color: hsl(var(--text-body)); font-size: var(--text-sm); line-height: 1.55;
}
.popover:focus { outline: none; }
.popover__topo { display: flex; justify-content: space-between; align-items: center; gap: var(--space-sm); margin-bottom: 6px; }
.popover__topo strong { color: hsl(var(--text-heading)); font-size: var(--text-md); }
.popover__corpo p { margin: 0 0 8px; }
.popover__corpo p:last-child { margin-bottom: 0; }

/* Placar: manchete curta; a explicação fica no ⓘ. */
.placar__cabeca { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-sm); }
.placar__manchete { font-size: var(--text-lg); color: hsl(var(--text-heading)); }
.placar__manchete strong { font-weight: 700; }
.placar-card { padding: 12px var(--space-md); gap: 14px; }
.placar-card .avatar--g { width: 60px; height: 76px; }
.placar-card__nome { font-size: var(--text-md); }
.placar-card__pct { font-size: var(--text-3xl); margin-top: 4px; }
.placar-card__pct small { font-size: var(--text-md); }

/* Resultado: números em 2×2 (4 colunas espremiam o texto). */
.numeros { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.numeros dd small { display: inline; margin-left: 6px; }

/* Mapa fixo ao rolar a lista longa ao lado (só em tela grande e alta). */
@media (min-width: 1101px) and (min-height: 760px) {
    .cartao-mapa { position: sticky; top: 80px; }
}

/* Tabela: seta indica que a linha abre. */
.tabela .seta { width: 28px; color: hsl(var(--text-subtle)); padding-left: 0; }
.tabela tbody tr:hover .seta { color: hsl(var(--color-primary)); }

/* Carregando: esmaece o conteúdo em vez de trocar de repente. */
#vista-resultados .grade, #vista-resultados .placar { transition: opacity var(--duration-base) var(--ease-standard); }
#vista-resultados.atualizando .grade, #vista-resultados.atualizando .placar { opacity: .55; }

/* Composição: fichas com os números principais e lista de bancadas mais densa. */
.chips--resumo { margin-top: var(--space-sm); }
.grupos { gap: 0; }
.grupos li { padding: 8px 10px; gap: 0 10px; border-bottom: 1px solid hsl(var(--border-subtle)); border-radius: 0; }
.grupos li:last-child { border-bottom: 0; }
.grupos li:hover, .grupos li.ativo { border-radius: var(--radius-sm); }
.grupos .n { font-size: var(--text-md); }
.grupos .det { margin-top: 1px; }

@media (max-width: 1100px) {
    .topo { grid-template-columns: auto 1fr; }
    .topo .abas { grid-column: 1 / -1; grid-row: 2; border-top: 1px solid hsl(var(--border-subtle)); padding-top: 0; }
    .topo .abas button { padding: 12px 2px; }
}
@media (max-width: 720px) {
    .topo { gap: 0 var(--space-sm); }
    .apuracao-br { grid-template-columns: auto 1fr; gap: 4px var(--space-md); align-items: center; }
    .apuracao-br__barra { grid-column: 1 / -1; }
    .apuracao-br__numero { font-size: var(--text-3xl); justify-self: end; }
    .placar__manchete { font-size: var(--text-md); }
    .popover {
        left: 0 !important; right: 0; bottom: 0; top: auto !important; width: auto; max-width: none;
        border-radius: var(--radius-lg) var(--radius-lg) 0 0; padding-bottom: calc(var(--space-lg) + env(safe-area-inset-bottom));
    }
}
.placar__manchete .info { vertical-align: middle; margin-left: 2px; }
@media (max-width: 720px) { .hemiciclo text.rotulo { display: none; } }

/* ================================================================ correções da revisão 2 */
/* Mapa fixo limitado à linha mapa + resultado (antes grudava por cima da evolução e da tabela). */
#vista-resultados .grade { grid-template-columns: minmax(0, 1fr); }
.linha-principal { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(360px, 1fr); gap: var(--space-lg); align-items: start; }
@media (max-width: 1100px) { .linha-principal { grid-template-columns: minmax(0, 1fr); } }

/* Cabeçalho nunca maior que a tela: colunas encolhem e, com a apuração compacta, sai o "Atualizado às". */
.topo { grid-template-columns: auto minmax(0, 1fr) auto; }
.topo .abas { min-width: 0; overflow-x: auto; scrollbar-width: none; }
.topo .abas::-webkit-scrollbar { display: none; }
.topo__status { min-width: 0; flex-wrap: nowrap; }
.topo.compacto #status-coleta { display: none; }

/* Menu de compartilhar preso ao botão. */
.menu-comp { position: relative; }
.menu-comp__lista {
    position: absolute; right: 0; top: calc(100% + 6px); z-index: 70; min-width: 210px; padding: 4px;
    display: grid; background: hsl(var(--surface-card)); border: 1px solid hsl(var(--border-default));
    border-radius: var(--radius-sm); box-shadow: var(--shadow-lg);
}
.menu-comp__lista[hidden] { display: none; }
.menu-comp__lista [role='menuitem'] {
    display: flex; align-items: center; gap: 10px; padding: 9px 10px; border: 0; border-radius: 6px; background: none;
    font: 500 var(--text-sm)/1.2 var(--font-sans); color: hsl(var(--text-body)); text-decoration: none; cursor: pointer; text-align: left;
}
.menu-comp__lista [role='menuitem']:hover, .menu-comp__lista [role='menuitem']:focus-visible { background: hsl(var(--bg-muted)); color: hsl(var(--text-heading)); outline: none; }
.menu-comp__lista [role='menuitem'].ok { color: hsl(var(--success-600)); }
:root[data-theme='dark'] .menu-comp__lista [role='menuitem'].ok { color: hsl(var(--success-500)); }

/* Textos secundários em uma linha (com reticências) para cartões e listas terem altura uniforme. */
.ranking .sub, .placar-card__partido, .estado-card .linha-cand .nm span, .grupos .det {
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.placar-card > div { min-width: 0; }
.placar-card__nome { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.estado-card .linha-cand .nm > span { display: block; }

@media (max-width: 720px) {
    .topo__titulo { font-size: var(--text-md); }
    .topo__marca img { width: 28px; height: 28px; }
}
@media (max-width: 720px) {
    .apuracao-mini { margin-left: var(--space-sm); padding-left: var(--space-sm); border-left: 1px solid hsl(var(--border-subtle)); }
    .tabela .mini-barra { display: none; }
    .tabela th, .tabela td { padding: 9px 8px; }
}

/* ================================================================ lista com rolagem própria + aba Candidatos */
/* Desktop: o cartão de resultado tem a altura do mapa (contain: size tira a altura dele da conta da linha)
   e a lista de candidatos rola por dentro, carregando mais ao chegar no fim. */
@media (min-width: 1101px) {
    .linha-principal { align-items: stretch; }
    .cartao-mapa { position: static; }
    .cartao-resultado { contain: size; display: flex; flex-direction: column; min-height: 0; }
    .cartao-resultado > * { flex: none; }
    .cartao-resultado #ranking {
        flex: 1 1 auto; min-height: 160px; overflow-y: auto; overscroll-behavior: contain;
        margin: 0 -8px 0 0; padding: 2px 8px 2px 0; scrollbar-width: thin;
    }
}
#ranking .sentinela { display: block; padding: 10px 0; text-align: center; font-size: var(--text-xs); color: hsl(var(--text-muted)); }

/* Aba Candidatos */
.grade--candidatos { grid-template-columns: minmax(0, 1fr) minmax(340px, 420px); align-items: start; }
.cartao-busca { position: sticky; top: 80px; }
.busca-cand { display: grid; gap: var(--space-sm); }
.busca-cand .input { width: 100%; }
.busca-cand__filtros { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-sm); }
.busca-cand__filtros .campo select.input { min-width: 0; }
.busca-cand__status { margin: var(--space-sm) 0; }
.resultados-busca { list-style: none; margin: 0; padding: 0; display: grid; max-height: 60vh; overflow-y: auto; }
.resultados-busca li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 8px 0; border-bottom: 1px solid hsl(var(--border-subtle)); }
.resultado-busca__info { border: 0; background: none; padding: 0; text-align: left; cursor: pointer; min-width: 0; font: inherit; color: inherit; }
.resultado-busca__info b { display: block; color: hsl(var(--text-heading)); font-size: var(--text-sm); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.resultado-busca__info span { display: block; font-size: var(--text-xs); color: hsl(var(--text-muted)); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.resultado-busca__info:hover b { color: hsl(var(--color-primary)); text-decoration: underline; }
.btn-pin { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.btn-pin[aria-pressed='true'] svg { fill: currentColor; }

.acompanhando { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: var(--space-md); }
.pin-card {
    position: relative; display: grid; gap: 10px; align-content: start; padding: var(--space-md);
    border: 1px solid hsl(var(--border-subtle)); border-radius: var(--radius-md); background: hsl(var(--surface-card));
}
.pin-card.carregando-pin { grid-template-columns: auto 1fr; align-items: center; opacity: .7; }
.pin-card__corpo { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px; align-items: center; border: 0; background: none; padding: 0; text-align: left; cursor: pointer; font: inherit; color: inherit; }
.pin-card__corpo:focus-visible { outline: none; box-shadow: var(--shadow-focus); border-radius: var(--radius-sm); }
.pin-card__corpo .avatar--g { width: 64px; height: 80px; }
.pin-card__txt { display: grid; min-width: 0; padding-right: 28px; }
.pin-card__cargo { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: hsl(var(--color-primary)); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pin-card__nome { font-family: var(--font-display); font-weight: 800; font-size: var(--text-md); color: hsl(var(--text-heading)); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pin-card__partido { font-size: var(--text-xs); color: hsl(var(--text-muted)); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pin-card__pct { font-family: var(--font-display); font-weight: 300; font-size: var(--text-3xl); line-height: 1.05; color: hsl(var(--text-heading)); font-variant-numeric: tabular-nums; margin-top: 4px; }
.pin-card__pct small { font-size: var(--text-md); }
.pin-card__votos { font-size: var(--text-xs); color: hsl(var(--text-muted)); font-variant-numeric: tabular-nums; }
.pin-card__delta { font-size: var(--text-xs); font-weight: 600; color: hsl(var(--success-600)); font-variant-numeric: tabular-nums; }
:root[data-theme='dark'] .pin-card__delta { color: hsl(var(--success-500)); }
.pin-card__corpo:hover .pin-card__nome { color: hsl(var(--color-primary)); }
.pin-card__remover {
    position: absolute; top: 10px; right: 10px; width: 30px; height: 30px; display: grid; place-items: center; padding: 0;
    border: 0; border-radius: 50%; background: hsl(var(--color-accent) / 0.14); color: hsl(var(--color-primary)); cursor: pointer;
}
.pin-card__remover svg { fill: currentColor; }
.pin-card__remover:hover { background: hsl(var(--bg-muted)); color: hsl(var(--text-muted)); }
.pin-card__remover:hover svg { fill: none; }
.pin-card__rodape { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; }
.situacao { display: inline-flex; padding: 3px 9px; border-radius: var(--radius-full); font-size: var(--text-xs); font-weight: 700; }
.situacao--dentro { background: hsl(var(--color-accent) / 0.14); color: hsl(var(--color-primary)); }
.situacao--ok { background: hsl(var(--success-100)); color: hsl(var(--success-600)); }
.situacao--fora { background: hsl(var(--bg-muted)); color: hsl(var(--text-body)); }
:root[data-theme='dark'] .situacao--ok { background: hsl(var(--success-500) / 0.16); color: hsl(var(--success-500)); }

.vazio { display: grid; justify-items: center; text-align: center; gap: 8px; padding: var(--space-2xl) var(--space-lg); color: hsl(var(--text-muted)); }
.vazio[hidden] { display: none; }
.vazio__titulo { font-family: var(--font-display); font-weight: 800; font-size: var(--text-lg); color: hsl(var(--text-heading)); }
.vazio .t-body-sm { max-width: 42ch; }
.dlg-cand__acoes { display: flex; gap: 6px; align-items: center; }

@media (max-width: 1100px) {
    .grade--candidatos { grid-template-columns: minmax(0, 1fr); }
    .cartao-busca { position: static; }
}
@media (max-width: 720px) {
    .acompanhando { grid-template-columns: 1fr; }
    .busca-cand__filtros { grid-template-columns: 1fr 1fr; }
}

/* cartões de acompanhamento: nome em até 2 linhas, situação e apuração sempre na mesma posição */
.acompanhando { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
.pin-card { grid-template-rows: auto auto 1fr; }
.pin-card__nome { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; line-height: 1.2; }
.pin-card__cargo { padding-right: 4px; }
.pin-card .situacao { justify-self: start; }
.pin-card__apuracao { display: grid; gap: 4px; align-self: end; }
@media (max-width: 720px) { .acompanhando { grid-template-columns: 1fr; } }
/* Telas estreitas: cabeçalho em 2 colunas (marca | ações) e abas na segunda linha. Reafirmado aqui porque a
   regra de 3 colunas acima vale só para telas largas. */
@media (max-width: 1100px) {
    .topo { grid-template-columns: minmax(0, 1fr) auto; }
    .topo__marca { min-width: 0; }
    .topo__status { justify-self: end; gap: 6px; }
}
.pin-card--ausente { grid-template-columns: auto 1fr; align-items: center; opacity: .8; }
.pin-card--ausente p { margin: 6px 0 8px; }
/* Lista com rolagem própria: linhas com a altura do conteúdo, alinhadas pelo topo (com poucos
   candidatos a grade esticava cada linha para preencher o cartão). */
.ranking { align-content: start; grid-auto-rows: max-content; }
.ranking li { max-height: 76px; }
.ranking li.com-foto .avatar { align-self: center; }

/* ================================================================ aba Sobre */
.sobre { max-width: 1440px; margin: var(--space-lg) auto var(--space-2xl); padding: 0 var(--space-xl); display: grid; gap: var(--space-2xl); }
.sobre-hero {
    display: grid; justify-items: start; gap: var(--space-sm); padding: var(--space-2xl) var(--space-2xl);
    border-radius: var(--radius-xl); background: hsl(var(--surface-card)); border: 1px solid hsl(var(--border-subtle)); overflow: hidden;
}
.sobre-hero__logo { height: 44px; width: auto; margin-bottom: var(--space-md); }
.sobre-hero__titulo { font-family: var(--font-display); font-weight: 800; font-size: var(--text-4xl); line-height: 1.1; color: hsl(var(--color-primary)); max-width: 22ch; }
.sobre-hero__texto { font-size: var(--text-md); max-width: 60ch; color: hsl(var(--text-body)); }
.sobre-hero__acoes { display: flex; flex-wrap: wrap; gap: var(--space-sm); margin-top: var(--space-md); }
.sobre-bloco { display: grid; gap: var(--space-sm); }
.sobre-bloco .trio { margin-top: var(--space-md); }
.sobre-card { display: grid; gap: var(--space-sm); align-content: start; }
.sobre-card h3, .etapas h3 { font-family: var(--font-display); font-weight: 800; font-size: var(--text-lg); color: hsl(var(--text-heading)); }
.sobre-card p, .etapas p { font-size: var(--text-sm); line-height: 1.6; }
.sobre-card .list-cube { margin: var(--space-xs) 0 0; font-size: var(--text-sm); }
.trio__icone { color: hsl(var(--color-accent)); background: hsl(var(--color-accent) / 0.12); border-radius: var(--radius-sm); padding: 8px; width: 44px; height: 44px; }
.sobre-card--destaque { border-color: hsl(var(--color-accent)); box-shadow: 0 0 0 1px hsl(var(--color-accent) / 0.3); }
.numeros-sobre { list-style: none; margin: var(--space-xs) 0 0; padding: 0; display: grid; gap: 10px; }
.numeros-sobre li { display: flex; align-items: baseline; gap: 10px; }
.numeros-sobre b { font-family: var(--font-display); font-weight: 800; font-size: var(--text-2xl); color: hsl(var(--color-primary)); font-variant-numeric: tabular-nums; min-width: 92px; }
.numeros-sobre span { font-size: var(--text-sm); color: hsl(var(--text-muted)); }
.etapas { list-style: none; padding: 0; }
.etapas li { position: relative; padding: var(--space-lg); border-radius: var(--radius-md); background: hsl(var(--surface-card)); border: 1px solid hsl(var(--border-subtle)); display: grid; gap: 6px; align-content: start; }
.etapas__n { display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: hsl(var(--color-primary)); color: hsl(var(--color-on-primary)); font-weight: 800; margin-bottom: 4px; }
.sobre-contato { display: grid; grid-template-columns: minmax(240px, 1fr) minmax(0, 2fr); gap: var(--space-2xl); padding: var(--space-xl); scroll-margin-top: 90px; }
.sobre-contato__intro { display: grid; gap: var(--space-sm); align-content: start; }
.sobre-contato__intro a { color: hsl(var(--color-primary)); font-weight: 600; }
.form-contato { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-md); }
.form-contato .campo { display: grid; gap: 4px; }
.form-contato .input { width: 100%; }
.form-contato textarea.input { height: auto; padding: 10px 12px; resize: vertical; min-height: 120px; font: inherit; }
.form-contato .campo--largo { grid-column: 1 / -1; }
.campo__rotulo small { font-weight: 400; }
.campo__erro { font-size: var(--text-xs); color: hsl(var(--error-600)); min-height: 0; }
.campo__erro:empty { display: none; }
.input[aria-invalid='true'] { border-color: hsl(var(--error-500)); }
.consentimento { display: flex; gap: 10px; align-items: flex-start; font-size: var(--text-sm); color: hsl(var(--text-body)); cursor: pointer; }
.consentimento input { margin-top: 3px; width: 16px; height: 16px; accent-color: hsl(var(--color-primary)); }
.isca { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-contato__rodape { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-md); }
.form-contato__status { font-size: var(--text-sm); }
.form-contato__status.ok { color: hsl(var(--success-600)); font-weight: 600; }
.form-contato__status.erro { color: hsl(var(--error-600)); }
body.aba-sobre .apuracao-br { display: none; }
@media (max-width: 900px) {
    .sobre { padding: 0 var(--space-md); gap: var(--space-xl); }
    .sobre-hero { padding: var(--space-xl) var(--space-lg); }
    .sobre-hero__titulo { font-size: var(--text-3xl); }
    .sobre-contato { grid-template-columns: 1fr; gap: var(--space-lg); padding: var(--space-lg); }
    .form-contato { grid-template-columns: 1fr; }
}
body.aba-sobre .apuracao-mini { display: none !important; }
@media (max-width: 440px) { .topo .abas { gap: 14px; } .topo .abas button { font-size: 13px; } }
.eleito--turno { background: hsl(var(--color-accent) / 0.14); color: hsl(var(--color-primary)); }
:root[data-theme='dark'] .eleito--turno { background: hsl(var(--cyan-500) / 0.16); color: hsl(var(--cyan-400)); }

/* Situação: eleito = verde; 2º turno = azul; não eleito e suplente = neutro. Projeção de vaga/cadeira = cor da marca. */
.eleito--turno, .situacao--turno { background: hsl(var(--info-100)); color: hsl(var(--info-700)); }
:root[data-theme='dark'] .eleito--turno, :root[data-theme='dark'] .situacao--turno { background: hsl(var(--info-500) / 0.18); color: hsl(var(--info-500)); }
.situacao--fora { background: hsl(var(--bg-muted)); color: hsl(var(--text-muted)); }
.resultados-busca { max-height: 30vh; }
.acomp-acoes { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: flex-end; }
.grupo-cargo {
    grid-column: 1 / -1; display: flex; align-items: center; gap: 8px; margin: var(--space-sm) 0 -4px;
    font-size: var(--text-xs); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: hsl(var(--text-muted));
}
.grupo-cargo:first-child { margin-top: 0; }
.grupo-cargo span { padding: 1px 8px; border-radius: var(--radius-full); background: hsl(var(--bg-muted)); color: hsl(var(--text-body)); letter-spacing: 0; }
.grupo-cargo::after { content: ''; flex: 1; height: 1px; background: hsl(var(--border-subtle)); }
@media (max-width: 720px) { .acomp-acoes { justify-content: flex-start; } }
/* Abas sempre numa linha; "do Congresso" some quando falta espaço no cabeçalho. */
.topo .abas button { white-space: nowrap; }
@media (max-width: 1500px) { .topo .abas .so-largo { display: none; } }
/* Até 1400px as 5 abas não cabem ao lado da marca: vão para a segunda linha do cabeçalho. */
@media (max-width: 1400px) {
    .topo { grid-template-columns: minmax(0, 1fr) auto; }
    .topo .abas { grid-column: 1 / -1; grid-row: 2; border-top: 1px solid hsl(var(--border-subtle)); }
    .topo .abas button { padding: 12px 2px; }
    .topo__status { justify-self: end; }
}

/* Ficha do candidato antes da apuração: um aviso no lugar dos 4 números. */
.numeros.numeros--aviso { grid-template-columns: minmax(0, 1fr); }
.numeros--aviso div { background: hsl(var(--surface-soft)); border-color: transparent; }
.numeros--aviso dd { font-weight: 500; }
.numeros--aviso dd small { display: block; margin: 4px 0 0; }
@media (max-width: 640px) {
  .dlg-cand__topo { flex-direction: column-reverse; gap: var(--space-sm); }
  .dlg-cand__acoes { align-self: stretch; justify-content: space-between; }
}

/* Sobre: "Na prática" em faixa própria, texto à esquerda e números à direita. */
.sobre-pratica { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(220px, 1fr); gap: var(--space-2xl); padding: var(--space-xl);
  border-color: hsl(var(--color-accent)); box-shadow: 0 0 0 1px hsl(var(--color-accent) / 0.3); align-items: center; }
.sobre-pratica__texto { display: grid; gap: var(--space-sm); }
.sobre-pratica__texto p:not(.t-eyebrow) { font-size: var(--text-sm); line-height: 1.6; max-width: 62ch; }
.sobre-pratica__texto strong { color: hsl(var(--text-heading)); }
.sobre-pratica .numeros-sobre { margin: 0; }
@media (max-width: 860px) {
  .sobre-pratica { grid-template-columns: 1fr; gap: var(--space-lg); padding: var(--space-lg); }
}

/* Ano da eleição no título: parece texto, abre como lista. */
.so-leitor { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ano-sel { position: relative; display: inline-flex; align-items: center; }
.ano-sel__select {
  appearance: none; -webkit-appearance: none; font: inherit; color: inherit; background: transparent;
  border: 0; border-radius: var(--radius-sm); padding: 0 22px 0 4px; margin-left: -2px; cursor: pointer;
  transition: background-color .15s ease;
}
.ano-sel::after { content: ''; position: absolute; right: 7px; top: 50%; width: 7px; height: 7px; pointer-events: none;
  border-right: 2px solid hsl(var(--color-accent)); border-bottom: 2px solid hsl(var(--color-accent)); transform: translateY(-70%) rotate(45deg); }
.ano-sel__select:hover { background-color: hsl(var(--color-accent) / .1); }
.ano-sel__select:focus-visible { outline: 2px solid hsl(var(--color-accent)); outline-offset: 2px; }
.ano-sel__select option { font-family: var(--font-body); font-size: var(--text-md); font-weight: 600; color: hsl(var(--text-heading)); background: hsl(var(--surface-card)); }
.ano-sel--unico .ano-sel__select { pointer-events: none; padding-right: 0; }
.ano-sel--unico::after { display: none; }

/* Página do candidato: rampa sequencial de um tom só, na cor do partido (claro = menos votos). */
.q-1 { fill: color-mix(in oklab, var(--cor-cand) 18%, hsl(var(--surface-card))); background: color-mix(in oklab, var(--cor-cand) 18%, hsl(var(--surface-card))); }
.q-2 { fill: color-mix(in oklab, var(--cor-cand) 38%, hsl(var(--surface-card))); background: color-mix(in oklab, var(--cor-cand) 38%, hsl(var(--surface-card))); }
.q-3 { fill: color-mix(in oklab, var(--cor-cand) 60%, hsl(var(--surface-card))); background: color-mix(in oklab, var(--cor-cand) 60%, hsl(var(--surface-card))); }
.q-4 { fill: color-mix(in oklab, var(--cor-cand) 82%, hsl(var(--surface-card))); background: color-mix(in oklab, var(--cor-cand) 82%, hsl(var(--surface-card))); }
.q-5 { fill: color-mix(in oklab, var(--cor-cand) 75%, black); background: color-mix(in oklab, var(--cor-cand) 75%, black); }

/* ------------------------------------------------------------ aba Projeção */
.projecao { max-width: 1200px; margin: var(--space-lg) auto var(--space-2xl); padding: 0 var(--space-xl); display: grid; gap: var(--space-lg); }
.proj-topo { display: grid; gap: var(--space-sm); }
.proj-manchete { font-family: var(--font-display); font-weight: 800; font-size: var(--text-2xl); line-height: 1.2; color: hsl(var(--text-heading)); margin: 0; }
.proj-sub { color: hsl(var(--text-muted)); margin: 0; }
.proj-aviso { display: flex; gap: 8px; align-items: flex-start; margin: 0; padding: 8px 12px; border-radius: var(--radius-sm);
  background: hsl(var(--surface-soft)); color: hsl(var(--text-body)); font-size: var(--text-xs); }
.proj-aviso svg { flex: none; margin-top: 1px; color: hsl(var(--color-primary)); }
.proj-conteudo { display: grid; gap: var(--space-lg); }
.proj-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-sm); }
.proj-tile { border: 1px solid hsl(var(--border-subtle)); border-radius: var(--radius-sm); padding: 12px 14px; display: grid; gap: 2px; position: relative; overflow: hidden; }
.proj-tile__rotulo { font-size: var(--text-xs); color: hsl(var(--text-muted)); }
.proj-tile b { font-family: var(--font-display); font-weight: 800; font-size: var(--text-2xl); color: hsl(var(--text-heading)); font-variant-numeric: tabular-nums; }
.cor-1 { --cor: var(--serie-1); } .cor-2 { --cor: var(--serie-2); } .cor-3 { --cor: var(--serie-3); } .cor-x { --cor: var(--serie-outros); }
.proj-tile.cor-1 b, .proj-tile.cor-2 b, .proj-tile.cor-3 b { color: var(--cor); }
/* colunas definidas na lista e herdadas por cada linha (subgrid): a trilha tem a mesma largura em todas as linhas */
.proj-lista { list-style: none; margin: var(--space-sm) 0 0; padding: 0; display: grid;
  grid-template-columns: 32px minmax(120px, 1.1fr) minmax(0, 2fr) minmax(150px, auto); column-gap: 12px; }
.proj-item { display: grid; grid-column: 1 / -1; grid-template-columns: subgrid; gap: 12px; align-items: center;
  padding: 10px 0; border-bottom: 1px solid hsl(var(--border-subtle)); }
.proj-item:last-child { border-bottom: 0; }
.proj-nome { display: grid; min-width: 0; }
.proj-nome b { font-weight: 700; color: hsl(var(--text-heading)); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.proj-nome span { font-size: var(--text-xs); color: hsl(var(--text-muted)); }
.proj-barra { position: relative; height: 22px; border-radius: 11px; background: hsl(var(--surface-soft)); }
.proj-barra__faixa { position: absolute; top: 5px; bottom: 5px; border-radius: 6px; background: color-mix(in oklab, var(--cor) 38%, transparent); min-width: 4px; }
.proj-barra__ponto { position: absolute; top: 50%; width: 14px; height: 14px; margin: -7px 0 0 -7px; border-radius: 50%; background: var(--cor);
  box-shadow: 0 0 0 2px hsl(var(--surface-card)); }
.proj-barra__apurado { position: absolute; top: 2px; bottom: 2px; width: 2px; margin-left: -1px; background: hsl(var(--text-muted)); border-radius: 1px; }
.proj-valor { display: grid; justify-items: end; text-align: right; }
.proj-valor b { font-family: var(--font-display); font-weight: 800; font-size: var(--text-xl); color: hsl(var(--text-heading)); font-variant-numeric: tabular-nums; }
.proj-valor small { font-size: var(--text-xs); color: hsl(var(--text-muted)); font-variant-numeric: tabular-nums; }
.proj-chance { font-size: var(--text-xs); font-weight: 600; color: hsl(var(--text-body)); }
.proj-legenda { margin-top: var(--space-sm); }
.proj-leg-faixa { width: 22px; height: 8px; border-radius: 4px; background: hsl(var(--text-muted) / .35); display: inline-block; }
.proj-leg-ponto { width: 10px; height: 10px; border-radius: 50%; background: hsl(var(--text-muted)); display: inline-block; }
.proj-leg-apurado { width: 2px; height: 12px; background: hsl(var(--text-muted)); display: inline-block; }
.proj-grafico svg { width: 100%; height: 280px; display: block; }
.proj-grafico .eixo text { font: 12px var(--font-sans); fill: hsl(var(--text-muted)); }
.proj-grafico .eixo line, .proj-grafico .eixo path { stroke: hsl(var(--border-subtle)); }
.proj-grafico .eixo-rotulo { font: 11px var(--font-sans); fill: hsl(var(--text-muted)); }
.proj-evol-faixa { fill: var(--cor); fill-opacity: .14; stroke: none; }
.proj-evol-linha { fill: none; stroke: var(--cor); stroke-width: 2.5; }
.proj-evol-apurado { fill: none; stroke: var(--cor); stroke-width: 1.5; stroke-dasharray: 3 4; opacity: .7; }
.proj-evol-ponto { fill: var(--cor); stroke: hsl(var(--surface-card)); stroke-width: 2; }
.proj-evol-guia { stroke: hsl(var(--text-muted)); stroke-dasharray: 2 3; }
.legenda__cor.proj-leg { background: var(--cor); }
.proj-leg-pontilhado { width: 18px; height: 0; border-top: 2px dashed hsl(var(--text-muted)); display: inline-block; }
.proj-vazio { text-align: center; display: grid; justify-items: center; gap: var(--space-xs); padding: var(--space-2xl) var(--space-lg); }
.proj-vazio .t-body-sm { max-width: 52ch; color: hsl(var(--text-muted)); }
@media (max-width: 720px) {
  .projecao { padding: 0 var(--space-md); }
  .proj-manchete { font-size: var(--text-xl); }
  .proj-tiles { grid-template-columns: minmax(0, 1fr); }
  .proj-lista { grid-template-columns: minmax(0, 1fr); }
  .proj-item { grid-template-columns: 32px minmax(0, 1fr) auto; grid-template-areas: "foto nome pct" "barra barra barra" "det det chance"; row-gap: 6px; }
  .proj-item .avatar { grid-area: foto; } .proj-nome { grid-area: nome; } .proj-barra { grid-area: barra; }
  .proj-valor { display: contents; }
  .proj-valor b { grid-area: pct; text-align: right; }
  .proj-valor small { grid-area: det; text-align: left; }
  .proj-chance { grid-area: chance; text-align: right; }
  .topo .abas { overflow-x: auto; scrollbar-width: none; }
  .topo .abas::-webkit-scrollbar { display: none; }
}

/* Projeção: escolher candidatos do gráfico (até 3). Desktop: painel preso ao botão; celular: folha de baixo. */
.proj-evol .cartao__topo { align-items: flex-start; }
.proj-sel-ancora { position: relative; }
.proj-sel { position: absolute; right: 0; top: calc(100% + 6px); z-index: 40; width: min(320px, 90vw); max-height: 60vh; overflow: auto;
  background: hsl(var(--surface-card)); border: 1px solid hsl(var(--border-subtle)); border-radius: var(--radius-md, 12px);
  box-shadow: 0 12px 32px hsl(215 30% 10% / .16); padding: 10px 14px 6px; }
.proj-sel__alca { display: none; }
.proj-sel__titulo { margin: 2px 0 6px; font-size: var(--text-sm); font-weight: 600; color: hsl(var(--text-muted)); }
.proj-sel__titulo small { font-weight: 400; margin-left: 4px; }
.proj-sel__lista { list-style: none; margin: 0; padding: 0; }
.proj-sel__item { display: grid; grid-template-columns: 12px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 9px 0; }
.proj-sel__item label { cursor: pointer; color: hsl(var(--text-heading)); font-size: var(--text-sm); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.proj-sel__item.travado label { color: hsl(var(--text-muted)); cursor: default; }
.proj-sel__cor { width: 12px; height: 12px; border-radius: 50%; background: hsl(var(--border-subtle)); }
.proj-sel__cor.cor-1, .proj-sel__cor.cor-2, .proj-sel__cor.cor-3, .proj-sel__cor.cor-x { background: var(--cor); }
.interruptor { appearance: none; -webkit-appearance: none; margin: 0; width: 44px; height: 26px; border-radius: 13px; position: relative; cursor: pointer;
  background: hsl(var(--border-subtle)); transition: background-color .15s ease; flex: none; }
.interruptor::before { content: ''; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff;
  box-shadow: 0 1px 3px hsl(215 30% 10% / .25); transition: transform .15s ease; }
.interruptor:checked { background: hsl(var(--color-primary)); }
.interruptor:checked::before { transform: translateX(18px); }
.interruptor:disabled { opacity: .45; cursor: not-allowed; }
.interruptor:focus-visible { outline: 2px solid hsl(var(--color-accent)); outline-offset: 2px; }
@media (max-width: 720px) {
  .proj-evol .cartao__topo { flex-wrap: wrap; gap: var(--space-sm); }
  .proj-sel { position: fixed; left: 0; right: 0; bottom: 0; top: auto; width: auto; max-height: 75vh; border-radius: 20px 20px 0 0;
    padding: 10px 20px calc(16px + env(safe-area-inset-bottom)); z-index: 60; }
  .proj-sel__alca { display: block; width: 44px; height: 5px; border-radius: 3px; background: hsl(var(--border-subtle)); margin: 0 auto 8px; }
  .proj-sel__titulo { font-size: var(--text-md); }
  .proj-sel__item { padding: 12px 0; }
  .proj-sel__item label { font-size: var(--text-md); }
  body.folha-aberta::before { content: ''; position: fixed; inset: 0; background: hsl(215 30% 10% / .45); z-index: 55; }
}

/* Celular com o cabeçalho compacto (apuração no topo): o título vira só marca + ano, senão o número encosta nele. */
@media (max-width: 480px) {
  .topo.compacto .topo__titulo-txt { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
}

/* Projeção: controle de tempo (arrastar pela noite ou reproduzir) e turno. */
.proj-topo { grid-template-columns: minmax(0, 1fr) auto; align-items: start; }
.proj-topo .proj-aviso { grid-column: 1 / -1; }
.proj-turnos { align-self: start; }
.proj-tempo { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: var(--space-md); align-items: center; padding-top: 14px; padding-bottom: 14px; }
.proj-play { white-space: nowrap; }
.proj-play .ic-pausa { display: none; }
.proj-play[aria-pressed="true"] .ic-play { display: none; }
.proj-play[aria-pressed="true"] .ic-pausa { display: inline; }
.proj-tempo__rotulo { font-size: var(--text-sm); font-weight: 600; color: hsl(var(--text-heading)); font-variant-numeric: tabular-nums; white-space: nowrap; }
.proj-tempo__range { width: 100%; accent-color: hsl(var(--color-primary)); height: 24px; cursor: pointer; }
.proj-evol-agora { stroke: hsl(var(--text-heading)); stroke-width: 1.5; stroke-dasharray: 3 3; opacity: .6; }
@media (max-width: 720px) {
  .proj-topo { grid-template-columns: minmax(0, 1fr); }
  .proj-tempo { grid-template-columns: auto minmax(0, 1fr); }
  .proj-tempo__rotulo { grid-column: 1 / -1; }
}

/* Projeção: gráfico no estilo de mercado de previsão. */
.proj-ferramentas { display: flex; gap: 6px; align-items: center; }
.proj-metricas { margin-top: var(--space-sm); max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.proj-metricas::-webkit-scrollbar { display: none; }
.proj-metricas button { white-space: nowrap; }
.proj-legenda-topo { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: var(--space-md) 0 2px; font-size: var(--text-sm); color: hsl(var(--text-muted)); }
.pg-leg { display: inline-flex; align-items: center; gap: 6px; }
.pg-leg__cor { width: 10px; height: 10px; border-radius: 50%; background: var(--cor); }
.pg-leg b { color: hsl(var(--text-heading)); font-variant-numeric: tabular-nums; }
.proj-grafico svg { height: auto; }
.pg-grade line { stroke: hsl(var(--border-subtle)); stroke-dasharray: 2 4; }
.pg-eixo text, text.pg-eixo { font: 12px var(--font-sans); fill: hsl(var(--text-muted)); font-variant-numeric: tabular-nums; }
.pg-eixo--rotulo { font-size: 11px; }
.pg-halo { fill: var(--cor); fill-opacity: .18; }
.pg-ponto { fill: var(--cor); stroke: hsl(var(--surface-card)); stroke-width: 2; }
.proj-evol-linha { stroke-width: 2.5; stroke-linejoin: round; }
.nota-grafico { margin: 6px 0 0; font-size: var(--text-xs); color: hsl(var(--text-muted)); }
.proj-cfg__item { grid-template-columns: minmax(0, 1fr) auto; }
.card.proj-evol { display: block; }
.proj-evol .cartao__topo { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--space-sm); flex-wrap: wrap; }
.proj-metricas { display: flex; flex-wrap: nowrap; width: max-content; max-width: 100%; }
.projecao, .proj-conteudo { grid-template-columns: minmax(0, 1fr); }
.proj-topo .t-eyebrow { white-space: normal; }
/* Projeção na mesma largura do cartão de urnas apuradas (e das demais abas). */
.projecao { max-width: 1440px; }
.proj-selo-mat { justify-self: start; margin: 2px 0 4px; }
.proj-topo__texto { display: grid; }

/* Projeção por cargo: controles, bancadas e tabela por estado. */
.proj-controles { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: var(--space-sm); align-items: center; }
.proj-cargos { max-width: 100%; overflow-x: auto; scrollbar-width: none; flex-wrap: nowrap; }
.proj-cargos::-webkit-scrollbar { display: none; }
.proj-cargos button { white-space: nowrap; }
.proj-uf select { min-width: 220px; }
.proj-topo { grid-template-columns: minmax(0, 1fr); }
.proj-bancadas { list-style: none; margin: var(--space-sm) 0 0; padding: 0; display: grid; }
.proj-bancada { display: grid; grid-template-columns: minmax(90px, 160px) minmax(0, 1fr) minmax(120px, auto); gap: 12px; align-items: center;
  padding: 7px 0; border-bottom: 1px solid hsl(var(--border-subtle)); }
.proj-bancada:last-child { border-bottom: 0; }
.proj-bancada__sigla { font-weight: 700; color: hsl(var(--text-heading)); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.proj-bancada__barra { position: relative; height: 18px; border-radius: 9px; background: hsl(var(--surface-soft)); overflow: hidden; }
.proj-bancada__proj { position: absolute; left: 0; top: 0; bottom: 0; background: color-mix(in oklab, var(--cor) 55%, transparent); border-radius: 9px; }
.proj-bancada__fixo { position: absolute; left: 0; top: 0; bottom: 0; background: var(--cor); border-radius: 9px 0 0 9px; z-index: 1; }
.proj-bancada__faixa { position: absolute; top: 7px; height: 4px; background: hsl(var(--text-heading) / .45); border-radius: 2px; z-index: 2; }
.proj-bancada__num { display: grid; justify-items: end; text-align: right; }
.proj-bancada__num b { font-family: var(--font-display); font-weight: 800; font-size: var(--text-lg); color: hsl(var(--text-heading)); font-variant-numeric: tabular-nums; }
.proj-bancada__num small { font-size: var(--text-xs); color: hsl(var(--text-muted)); }
.proj-casa .cartao__topo { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.proj-hemi { margin-top: var(--space-sm); }
.proj-hemi svg { width: 100%; max-width: 720px; height: auto; display: block; margin: 0 auto; }
.proj-hemi circle { fill: var(--cor); stroke: hsl(var(--surface-card, 0 0% 100%)); stroke-width: 1.5; transition: opacity var(--duration-fast) var(--ease-standard); }
.proj-hemi circle.alt { fill: color-mix(in oklab, var(--cor) 58%, transparent); }
.proj-hemi circle.proj { fill: color-mix(in oklab, var(--cor) 45%, transparent); }
.proj-hemi.foco circle:not(.ativa) { opacity: .18; }
.proj-hemi text.total { font-family: var(--font-display); font-weight: 300; font-size: 76px; fill: hsl(var(--text-heading)); font-variant-numeric: tabular-nums; }
.proj-hemi text.rotulo { font-family: var(--font-sans); font-size: 17px; fill: hsl(var(--text-muted)); }
.proj-hemi__legenda { list-style: none; margin: var(--space-sm) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 16px; justify-content: center; font-size: var(--text-sm); color: hsl(var(--text-body)); }
.proj-hemi__legenda li { display: inline-flex; align-items: center; gap: 6px; cursor: default; }
.proj-hemi__legenda b { color: hsl(var(--text-heading)); font-variant-numeric: tabular-nums; }
.proj-hemi__cor { width: 10px; height: 10px; border-radius: 50%; background: var(--cor); }
.proj-hemi__cor.alt { background: color-mix(in oklab, var(--cor) 58%, transparent); }
.proj-casa__sub { color: hsl(var(--text-muted)); margin: 4px 0 0; }
.proj-tab-estados tbody tr { cursor: pointer; }
.proj-tab-estados tbody tr:hover, .proj-tab-estados tbody tr.ativa { background: hsl(var(--surface-soft)); }
.proj-tab-estados .num { text-align: right; font-variant-numeric: tabular-nums; }
.proj-tab-estados small { color: hsl(var(--text-muted)); margin-left: 4px; }
.ponto-cor { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: var(--cor); margin-right: 6px; vertical-align: 1px; }
@media (max-width: 720px) {
  .proj-bancada { grid-template-columns: minmax(70px, 110px) minmax(0, 1fr) auto; }
  .proj-uf, .proj-uf select { width: 100%; }
}
.acomp-uf { width: auto; min-width: 0; height: 34px; padding-top: 4px; padding-bottom: 4px; font-size: var(--text-sm); }
.cartao-acompanhando .cartao__topo { flex-wrap: wrap; }
.cartao-acompanhando .cartao__titulo { white-space: nowrap; }
.lista-filtros { display: flex; flex-wrap: wrap; gap: 8px 12px; margin: 0 0 var(--space-sm); }
.lista-filtros__campo { display: grid; gap: 2px; flex: 1 1 160px; min-width: 0; }
.lista-filtros__campo .t-caption { color: hsl(var(--text-muted)); }
.lista-filtros .input { height: 36px; padding-top: 4px; padding-bottom: 4px; font-size: var(--text-sm); }
.ranking li[data-grupo] { cursor: pointer; border-radius: var(--radius-sm); }
.ranking li[data-grupo]:hover .nome, .ranking li[data-grupo]:focus-visible .nome { color: hsl(var(--color-primary)); }
.tabela th[data-ord-uf] { cursor: pointer; user-select: none; }
.tabela th[data-ord-uf]:hover { color: hsl(var(--text-heading)); }
.pessoas .txt > span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pessoas li.vazio { grid-column: 1 / -1; border: 0; color: hsl(var(--text-muted)); font-size: var(--text-sm); }
.proj-vagas .cartao__topo { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; flex-wrap: wrap; }
.proj-vagas__filtro { flex: 0 1 240px; }
.proj-vagas__filtro .input { height: 36px; padding-top: 4px; padding-bottom: 4px; font-size: var(--text-sm); }
.proj-vagas__grupo { font-size: var(--text-sm); font-weight: 700; color: hsl(var(--text-heading)); margin: var(--space-md) 0 var(--space-xs); }
.proj-vagas__lista .txt { flex: 1; }
.proj-vagas__p { margin-left: auto; font-weight: 700; font-size: var(--text-sm); color: hsl(var(--text-heading)); white-space: nowrap; font-variant-numeric: tabular-nums; }
.proj-vagas__p.alta { color: hsl(var(--success-600)); }
:root[data-theme="dark"] .proj-vagas__p.alta { color: hsl(var(--success-500)); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .proj-vagas__p.alta { color: hsl(var(--success-500)); } }
.proj-vagas__p.baixa { color: hsl(var(--text-muted)); }
.proj-vagas__lista .txt b { white-space: normal; overflow-wrap: anywhere; }
.cor-neutra { --cor: hsl(var(--text-muted)); }
.proj-evol-haver { stroke-dasharray: 6 5; stroke-width: 2; }
.pg-leg__cor--tracejado { border-radius: 0; height: 0; width: 16px; background: none; border-top: 2px dashed var(--cor); }
.pin-card__proj { display: grid; gap: 2px; margin-top: 8px; padding: 8px 10px; border-radius: var(--radius-sm); background: hsl(var(--surface-soft)); font-size: var(--text-sm); color: hsl(var(--text-body)); }
.pin-card__proj b { color: hsl(var(--text-heading)); font-variant-numeric: tabular-nums; }
.pin-card__proj small { color: hsl(var(--text-muted)); font-size: var(--text-xs); }
.pin-card__proj-rot { font-size: var(--text-xs); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: hsl(var(--color-primary)); }
.pin-card__proj--espera { color: hsl(var(--text-muted)); font-size: var(--text-xs); }
.selo-dvt { display: inline-block; margin-left: 6px; padding: 1px 7px; border-radius: var(--radius-full); font-size: 11px; font-weight: 700; line-height: 1.5;
  vertical-align: middle; white-space: nowrap; background: hsl(var(--warning-100, 45 95% 88%)); color: hsl(var(--warning-700, 32 80% 28%)); cursor: help; }
:root[data-theme="dark"] .selo-dvt { background: hsl(var(--warning-500, 40 90% 50%) / .18); color: hsl(var(--warning-300, 45 90% 65%)); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .selo-dvt { background: hsl(var(--warning-500, 40 90% 50%) / .18); color: hsl(var(--warning-300, 45 90% 65%)); } }
.cand-dvt { margin: 6px 0 0; font-size: var(--text-sm); color: hsl(var(--text-body)); }
.cand-dvt .selo-dvt { margin-left: 0; margin-right: 4px; }
.ranking .valor small.valor-anulado { font-weight: 600; color: hsl(var(--text-heading)); font-size: var(--text-sm); }

/* ---------- antes da apuração ---------- */
body.modo-pre .apuracao-br, body.modo-pre #vista-resultados main.grade, body.modo-pre #placar { display: none !important; }
.pre { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: var(--space-lg); max-width: 1440px; margin: var(--space-md) auto var(--space-2xl); padding: 0 var(--space-xl); }
.pre[hidden] { display: none; }
.pre-cands { grid-column: 1 / -1; }
.pre-contagem__sub { color: hsl(var(--text-muted)); margin: 4px 0 var(--space-md); }
.pre-contagem__relogio { display: flex; gap: 10px; margin-bottom: var(--space-sm); flex-wrap: wrap; }
.pre-relogio__bloco { display: grid; justify-items: center; min-width: 72px; padding: 10px 8px; border-radius: var(--radius-md); background: hsl(var(--surface-soft)); }
.pre-relogio__bloco b { font-family: var(--font-display); font-weight: 300; font-size: 40px; line-height: 1; color: hsl(var(--text-heading)); font-variant-numeric: tabular-nums; }
.pre-relogio__bloco small { font-size: var(--text-xs); color: hsl(var(--text-muted)); margin-top: 4px; }
.pre-relogio__agora { font-weight: 700; color: hsl(var(--color-primary)); }
.pre-como__lista { margin: var(--space-sm) 0; padding-left: 18px; display: grid; gap: 8px; font-size: var(--text-sm); color: hsl(var(--text-body)); }
.pre-como__lista b { color: hsl(var(--text-heading)); }
.pre-como__fonte { color: hsl(var(--text-muted)); }
.pre-cands__grade { list-style: none; margin: var(--space-sm) 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: var(--space-sm); }
.pre-cands__grade--ufs { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.pre-cands__grade--ufs .btn { width: 100%; }
.pre-cand { display: flex; align-items: center; gap: 8px; padding: 10px; border: 1px solid hsl(var(--border-subtle)); border-radius: var(--radius-md); min-width: 0; }
.pre-cand__corpo { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0; background: none; border: 0; padding: 0; text-align: left; cursor: pointer; color: inherit; font: inherit; }
.pre-cand__txt { display: grid; min-width: 0; }
.pre-cand__txt b { color: hsl(var(--text-heading)); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pre-cand__txt span { font-size: var(--text-xs); color: hsl(var(--text-muted)); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pre-cand .btn-pin span { display: none; }
@media (max-width: 720px) {
  .pre { grid-template-columns: minmax(0, 1fr); padding: 0 var(--space-md); gap: var(--space-md); }
  .pre-relogio__bloco { min-width: 60px; } .pre-relogio__bloco b { font-size: 30px; }
}
body.modo-pre #apuracao-mini { display: none !important; }
.pre a:not(.btn) { color: hsl(var(--color-primary)); font-weight: 600; text-underline-offset: 2px; }
.placar__virada { margin-top: var(--space-sm); padding: 12px 14px; border-radius: var(--radius-md); background: hsl(var(--surface-soft)); display: grid; gap: 6px; font-size: var(--text-sm); color: hsl(var(--text-body)); }
.placar__virada p { margin: 0; }
.placar__virada strong, .placar__virada b { color: hsl(var(--text-heading)); }
.placar__aviso { padding-top: 6px; border-top: 1px solid hsl(var(--border-subtle)); }
.placar__aviso a { color: hsl(var(--color-primary)); font-weight: 600; }
.maioria line { stroke: hsl(var(--text-heading)); stroke-width: 2; stroke-dasharray: 4 4; opacity: .55; }
.maioria text { font: 600 15px var(--font-sans); fill: hsl(var(--text-muted)); }
.ocup-mais { margin-top: var(--space-sm); }
/* urnas apuradas só no cabeçalho */
.apuracao-br { display: none !important; }
#vista-resultados > .filtros { margin-top: var(--space-md); }
body.ano-passado #status-coleta, body.ano-passado #pulso { display: none; }
@media (max-width: 1360px) { .apuracao-mini__barra { display: none; } }
@media (max-width: 1180px) { #status-coleta { display: none; } }
/* selos de status da disputa */
.selo-status { display: inline-flex; align-items: center; padding: 2px 10px; border-radius: var(--radius-full); font-size: var(--text-xs); font-weight: 700; white-space: nowrap; }
.selo-status--cedo { background: hsl(var(--surface-soft)); color: hsl(var(--text-muted)); }
.selo-status--apertado { background: hsl(var(--warning-100)); color: hsl(var(--warning-700)); }
.selo-status--vantagem { background: hsl(var(--info-100, 200 90% 92%)); color: hsl(var(--info-700, 205 80% 30%)); }
.selo-status--definido { background: hsl(var(--success-100)); color: hsl(var(--success-600)); }
.tabela .selo-status { padding: 0 6px; font-size: 10px; }
:root[data-theme="dark"] .selo-status--apertado { background: hsl(var(--warning-500) / .18); color: hsl(var(--warning-500)); }
:root[data-theme="dark"] .selo-status--definido { background: hsl(var(--success-500) / .16); color: hsl(var(--success-500)); }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .selo-status--apertado { background: hsl(var(--warning-500) / .18); color: hsl(var(--warning-500)); }
  :root:not([data-theme="light"]) .selo-status--definido { background: hsl(var(--success-500) / .16); color: hsl(var(--success-500)); }
}
.placar__cabeca { flex-wrap: wrap; }
/* celular: legenda sem quebra no meio, líder numa linha, abas com dica de rolagem */
.legenda__intens, .legenda__item { white-space: nowrap; }
.lider { display: inline-flex; align-items: center; gap: 4px; max-width: 100%; min-width: 0; }
.lider__nome { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
@media (max-width: 720px) {
  .lider { display: flex; }
  .lider .t-caption { display: none; }
  .lider__nome { max-width: 38vw; }
  .abas { -webkit-mask-image: linear-gradient(to right, #000 82%, transparent); mask-image: linear-gradient(to right, #000 82%, transparent); scroll-behavior: smooth; }
}
.legenda__item:has(.legenda__intens) { white-space: normal; display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; }
.local__ap { display: none; }
@media (max-width: 720px) {
  #tabela th:nth-child(2), #tabela td:nth-child(2) { display: none; }
  .local__ap { display: block; font-weight: 400; font-size: var(--text-xs); color: hsl(var(--text-muted)); }
  .lider__nome { max-width: 34vw; }
}
.local__ap { white-space: nowrap; }
.proj-casa :is(.k-1, .k-2, .k-3, .k-4, .k-5, .k-6, .k-7, .k-8, .k-outros) { --cor: var(--k); }
/* mapa: o que falta apurar */
.regiao.regiao--base { fill: hsl(var(--surface-soft)); stroke: hsl(var(--border-subtle)); }
.bolhas circle, .bolha-grade { fill: hsl(var(--color-accent) / .45); stroke: hsl(var(--color-accent)); stroke-width: 1.2; }
.bolhas circle { cursor: pointer; }
.bolhas circle:hover { fill: hsl(var(--color-accent) / .7); }
.legenda__bolha { width: 14px; height: 14px; border-radius: 50%; background: hsl(var(--color-accent) / .45); border: 1.2px solid hsl(var(--color-accent)); display: inline-block; }
.busca-lista li > span:first-child { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
.busca-lista .avatar--p { width: 24px; height: 24px; }
.proj-tile__freq { display: block; margin-top: 2px; font-size: var(--text-xs); color: hsl(var(--text-muted)); }
.pin-card__visita { display: block; margin-top: 4px; font-size: var(--text-xs); font-weight: 600; color: hsl(var(--color-primary)); }
/* acessibilidade */
.so-leitor { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.hachura-fundo { fill: var(--serie-vazio); }
.hachura-traco { stroke: hsl(var(--text-muted) / .35); stroke-width: 1.5; }
#mapa-svg .regiao.c-vazio { fill: url(#hachura); }
.legenda .legenda__cor.c-vazio { background: repeating-linear-gradient(45deg, var(--serie-vazio) 0 3px, hsl(var(--text-muted) / .35) 3px 4.5px); }
/* municípios ao lado do mapa; candidatos na lista de baixo (largura inteira) */
.lista-topo--tabela { margin-top: var(--space-md); }
.lista-topo--tabela .input--compacto { width: 200px; }
.cartao-resultado .tabela th:nth-child(2), .cartao-resultado .tabela td:nth-child(2) { display: none; }
.cartao-resultado .local__ap { display: block; font-weight: 400; font-size: var(--text-xs); color: hsl(var(--text-muted)); }
.cartao-resultado .lider .t-caption { display: none; }
.cartao-resultado .lider__nome { max-width: 150px; }
@media (min-width: 1101px) {
    .cartao-resultado .tabela-rolagem--lado { flex: 1 1 auto; min-height: 160px; max-height: none; overflow: auto; overscroll-behavior: contain; scrollbar-width: thin; }
    .cartao-lista .ranking { grid-template-columns: minmax(0, 1fr); max-height: 620px; overflow-y: auto; overscroll-behavior: contain; padding-right: 8px; scrollbar-width: thin; }
}
.cartao-lista .cartao__topo { flex-wrap: wrap; align-items: center; }
.cartao-resultado .tabela td.num, .cartao-resultado .tabela th.num { white-space: nowrap; }
.cartao-resultado .tabela th.seta, .cartao-resultado .tabela td.seta { display: none; }
.cartao-resultado .tabela th, .cartao-resultado .tabela td { padding: 8px 10px; }
.pre-filtros { margin-top: var(--space-sm); }
.pre-vazio { grid-column: 1 / -1; color: hsl(var(--text-muted)); padding: var(--space-md) 0; }
.pre-cands .cartao__topo { display: flex; justify-content: space-between; align-items: flex-end; gap: var(--space-md); flex-wrap: wrap; }
.pre-cands .pre-filtros { margin: 0; flex: 0 1 520px; flex-wrap: nowrap; }
.pre-cands .pre-filtros .lista-filtros__campo:first-child { flex: 1 1 280px; }
.pre-cands .pre-filtros .lista-filtros__campo:last-child { flex: 0 1 200px; }
@media (max-width: 720px) { .pre-cands .pre-filtros { flex: 1 1 100%; flex-wrap: wrap; } }
@media (max-width: 720px) { .pre-cands .pre-filtros .lista-filtros__campo { flex: 1 1 100%; } }
.lista-rodape { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-sm); margin-top: var(--space-sm); padding-top: var(--space-sm); border-top: 1px solid hsl(var(--border-subtle)); }
.lista-rodape div { display: grid; gap: 2px; }
.lista-rodape span { font-size: var(--text-xs); color: hsl(var(--text-muted)); }
.lista-rodape b { font-size: var(--text-md); color: hsl(var(--text-heading)); font-variant-numeric: tabular-nums; }
.lista-rodape small { font-size: var(--text-xs); color: hsl(var(--text-muted)); }
@media (max-width: 720px) { .lista-rodape { grid-template-columns: minmax(0, 1fr); } }
.cand-mapa-topo { display: flex; align-items: center; justify-content: space-between; gap: var(--space-sm); flex-wrap: wrap; }
#cand-voltar svg { margin-right: 4px; }
#cand-svg.clicavel .regiao { cursor: pointer; }
#cand-svg.clicavel .regiao:hover { stroke: hsl(var(--text-heading)); stroke-width: 1.5; }
.dica__acao span { color: hsl(var(--color-primary)); font-weight: 600; }
@media (max-width: 720px) { .lista-rodape { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.cand-lugares { display: flex; flex-direction: column; min-height: 0; }
.cand-lugares__controles { display: flex; gap: 8px; align-items: center; justify-content: space-between; flex-wrap: wrap; margin-bottom: var(--space-xs); }
.cand-lugares__controles .input--compacto { width: 180px; }
.cand-lugares__lista { max-height: 620px; overflow-y: auto; overscroll-behavior: contain; padding-right: 6px; scrollbar-width: thin; }
.cand-lugares__lista .sentinela { display: block; text-align: center; font-size: var(--text-xs); color: hsl(var(--text-muted)); padding: 8px 0; }
.tag-pos { font-style: normal; margin-left: 6px; padding: 1px 7px; border-radius: var(--radius-xs); background: hsl(var(--surface-soft)); color: hsl(var(--text-muted)); font-size: 11px; font-weight: 700; }
.tag-pos--1 { background: hsl(var(--color-accent) / 0.14); color: hsl(var(--color-primary)); }
@media (max-width: 720px) { .cand-lugares__lista { max-height: 480px; } .cand-lugares__controles .input--compacto { width: 100%; } }
.lugares li > span { text-align: right; display: grid; justify-items: end; }
.cand-lugares__lista li[data-lugar] { cursor: pointer; border-radius: var(--radius-xs); }
.cand-lugares__lista li[data-lugar]:hover { background: hsl(var(--surface-soft)); }
.cand-lugares__lista li.ativo { background: hsl(var(--color-accent) / .12); box-shadow: inset 3px 0 0 hsl(var(--color-accent)); }
#cand-svg.foco .regiao:not(.destacado) { opacity: .22; }
#cand-svg .regiao.destacado { stroke: hsl(var(--text-heading)); stroke-width: 2.5; }
.marca-lugar { fill: none; stroke: hsl(var(--color-accent)); stroke-width: 3; pointer-events: none; }
/* eleito ou 2º turno: mesma cor neutra da borda, 3x mais grossa */
.placar-card.placar-card--eleito, .placar-card.placar-card--turno { border: 3px solid hsl(var(--border-subtle)); box-shadow: none; }
.mapa g.sobre-escuro text.sigla, .mapa g.sobre-escuro text.valor { fill: #fff; }
.mapa g.sobre-escuro text.valor { fill-opacity: .9; }
.mapa g.sobre-claro text.sigla, .mapa g.sobre-claro text.valor { fill: #121821; }
.mapa g.sobre-claro text.valor { fill-opacity: .8; }

/* cor por partido (mapas, legendas, listas) */
.pc-1 { fill: var(--cat-1); background: var(--cat-1); }
.pc-2 { fill: var(--cat-2); background: var(--cat-2); }
.pc-3 { fill: var(--cat-3); background: var(--cat-3); }
.pc-4 { fill: var(--cat-4); background: var(--cat-4); }
.pc-5 { fill: var(--cat-5); background: var(--cat-5); }
.pc-6 { fill: var(--cat-6); background: var(--cat-6); }
.pc-7 { fill: var(--cat-7); background: var(--cat-7); }
.pc-8 { fill: var(--cat-8); background: var(--cat-8); }
.pc-9 { fill: var(--cat-9); background: var(--cat-9); }
.pc-10 { fill: var(--cat-10); background: var(--cat-10); }
.pc-11 { fill: var(--cat-11); background: var(--cat-11); }
.pc-12 { fill: var(--cat-12); background: var(--cat-12); }
.mapa .regiao.do-1t { fill-opacity: .45; }
.legenda__cor--1t { background: hsl(var(--text-muted) / .45); }
.chk-1t { display: inline-flex; align-items: center; gap: 8px; font-size: var(--text-sm); color: hsl(var(--text-body)); cursor: pointer; white-space: nowrap; }
.chk-1t[hidden] { display: none; }
/* definições do mapa (engrenagem) */
.controles-mapa { align-items: center; }
.mapa-cfg { min-width: 280px; }
.mapa-cfg__linha { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 0; border-top: 1px solid hsl(var(--border-subtle)); font-size: var(--text-sm); color: hsl(var(--text-body)); }
.mapa-cfg__linha[hidden] { display: none; }
.mapa-cfg .chk-1t { white-space: normal; }
.mapa-cfg .chk-1t { flex-direction: row-reverse; justify-content: space-between; }
.pre-2022 { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: var(--space-md); flex-wrap: wrap;
  padding: var(--space-md) var(--space-lg); border-radius: var(--radius-md); background: hsl(var(--color-accent) / .10); border: 1px solid hsl(var(--color-accent) / .35); }
.pre-2022__titulo { font-family: var(--font-display); font-weight: 800; font-size: var(--text-xl); color: hsl(var(--text-heading)); margin: 2px 0 4px; }
.pre-2022 .t-body-sm { color: hsl(var(--text-body)); margin: 0; max-width: 60ch; }
.pre-2022__acoes { display: flex; gap: 8px; flex-wrap: wrap; }
@media (max-width: 720px) { .pre-2022 { padding: var(--space-md); } .pre-2022__acoes .btn { flex: 1 1 auto; } }
.pre-2022 a.btn { text-decoration: none; }
