/* Mapas e gráficos dos casos eleitorais (TECH-050, frente 14): camada sobre eleicao.css.
   Os SVGs são gerados no build, sem script. Menor texto no SVG: 13 unidades. Cada desenho
   tem largura mínima de 12/13 da largura natural, então nenhum rótulo fica abaixo de 12 px;
   em tela mais estreita, o desenho rola dentro da própria moldura, nunca a página. */
.viz-doc h3 { scroll-margin-top: 5rem; }
.viz-par { display: grid; gap: 1.5rem; align-items: start; margin-top: 1rem; }
.viz-par > * { min-width: 0; }
.viz-onde { display: grid; gap: 1.5rem; align-items: start; }
.viz-onde > * { min-width: 0; }
@media (min-width: 64rem) {
  .viz-par { grid-template-columns: minmax(0, 24rem) minmax(0, 1fr); }
  .viz-par--largo { grid-template-columns: minmax(0, 37rem) minmax(0, 1fr); }
  .viz-onde { grid-template-columns: minmax(0, 24rem) minmax(0, 36rem); }
}

.viz-fig { margin: 1rem 0 0; }
.viz-par .viz-fig, .viz-onde .viz-fig { margin-top: 0; }
.viz-scroll { overflow-x: auto; border: 1px solid var(--rvf-paper-line); border-radius: var(--rv-radius-sm); background: #ffffff; }
.viz-scroll:focus-visible { outline: 2px solid var(--rv-profile-evidence-focus, var(--rvf-brand)); outline-offset: 2px; }
.viz-svg { display: block; width: 100%; height: auto; margin-inline: auto; }
.viz-svg--grade { min-width: 314px; max-width: 420px; }
.viz-svg--mapa { min-width: 488px; max-width: 640px; }
.viz-svg--diverge, .viz-svg--curva, .viz-svg--barras { min-width: 517px; max-width: 720px; }

.viz-fig figcaption { display: flex; flex-wrap: wrap; gap: .35rem .6rem; align-items: center; margin-top: .55rem; color: var(--rvf-ink-soft); font-size: 14px; line-height: 1.5; }
.viz-fig-num { color: var(--rvf-ink); font: 600 12px var(--rv-font-mono); letter-spacing: .06em; text-transform: uppercase; }
.viz-fig figcaption a { color: var(--rvf-accent-paper); text-underline-offset: .15em; overflow-wrap: anywhere; }
.viz-fig figcaption a:focus-visible, .viz-arquivos a:focus-visible { outline: 2px solid var(--rv-profile-evidence-focus, var(--rvf-brand)); outline-offset: 2px; }

.viz-tabelas { display: grid; gap: 1.5rem; margin-top: 1rem; }
@media (min-width: 64rem) { .viz-tabelas { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.viz-tabela { margin-top: 0; }

.viz-arquivos { display: grid; gap: .35rem; margin: .75rem 0; padding-left: 1.1rem; font-size: 14px; }
.viz-arquivos a { color: var(--rvf-accent-paper); overflow-wrap: anywhere; }
.viz-codigo { overflow-x: auto; margin: .75rem 0 0; padding: .75rem 1rem; border: 1px solid var(--rvf-paper-line); border-radius: var(--rv-radius-sm); background: #ffffff; color: var(--rvf-ink); font: 13px/1.6 var(--rv-font-mono); white-space: pre-wrap; overflow-wrap: anywhere; }
/* O caso em duas figuras, no topo da página do caso eleitoral. */
@media (min-width: 64rem) { .viz-par--resumo { grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); } }
