/* Hub "Dados públicos": complementa common/css/screens.css (que já traz .h1, .g-panel, .chip,
   .vbar...). Tudo sob .gs; cores só por tokens (--g-*, --lula, --flavio), claro e escuro. */

.gs.dp { display: flex; flex-direction: column; gap: 48px; padding: 8px 0 32px; }
.gs .dp-cabecalho { display: flex; flex-direction: column; gap: 14px; }

/* Cartão de destaque de uma pesquisa (reutilizável: ver _pesquisa_eleicao.html) */
.gs .dp-destaque { display: flex; flex-wrap: wrap; overflow: hidden; }
.gs .dp-destaque-texto { flex: 5 1 440px; min-width: 0; display: flex; flex-direction: column; gap: 20px; padding: 40px; }
.gs .dp-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.gs .dp-titulo { font-size: clamp(30px, 3.2vw, 40px); }
.gs .dp-resumo { max-width: 46ch; font-size: 17px; }
.gs .dp-placar { display: flex; flex-direction: column; gap: 12px; padding: 18px 20px 20px; border-radius: 22px; background: var(--g-track); box-shadow: var(--g-track-shadow); }
.gs .dp-placar-rotulo { color: var(--g-txt2); }
.gs .dp-placar-nomes { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 16px; }
.gs .dp-placar-cand { display: inline-flex; align-items: baseline; gap: 10px; }
.gs .dp-pct { font: var(--gs-display-w) 23px/1.15 var(--gs-serif); letter-spacing: -0.015em; color: var(--g-txt); }
.gs .vbar i.f { flex: 1; }
.gs .vbar i[data-cand] { background: var(--cor); }
.gs .dp-fatos { display: flex; flex-wrap: wrap; gap: 18px 40px; margin: 4px 0 0; }
.gs .dp-fato { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.gs .dp-fato dd { margin: 0; }
.gs .dp-fato b { font: var(--gs-display-w) 26px/1.15 var(--gs-serif); letter-spacing: -0.015em; color: var(--g-txt); }
.gs .dp-acoes { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: auto; padding-top: 8px; }
.gs .dp-fonte { color: var(--g-txt3); }

/* Mapa estático: duas capturas, o tema escolhe qual aparece */
.gs .dp-mapa { flex: 4 1 360px; min-width: 0; display: flex; align-items: center; justify-content: center; padding: 28px; border-left: 1px solid var(--g-line); }
.gs .dp-mapa-img { display: block; width: 100%; max-width: 440px; height: auto; }
.gs .dp-mapa-escuro { display: none; }
.dark .gs .dp-mapa-claro { display: none; }
.dark .gs .dp-mapa-escuro { display: block; }

/* Como funciona */
.gs .dp-como { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 28px 40px; padding: 0 8px; }
.gs .dp-como-item { display: flex; align-items: flex-start; gap: 16px; min-width: 0; }
.gs .dp-como-texto { display: flex; flex-direction: column; gap: 4px; }
.gs .dp-como-texto .p { font-size: 15px; }

/* Em breve */
.gs .dp-proximas { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 32px; padding: 30px 32px; border-radius: 28px; border: 1px dashed var(--g-txt3); }
.gs .dp-proximas-texto { display: flex; flex-direction: column; gap: 6px; min-width: 0; flex: 1 1 360px; }
.gs .dp-email { color: var(--g-accent); text-decoration: underline; text-underline-offset: 3px; }
.gs .dp-breve { color: var(--g-wait); }

@media (max-width: 640px) {
  .gs .dp-destaque-texto { padding: 28px 22px; }
  .gs .dp-mapa { border-left: 0; border-top: 1px solid var(--g-line); }
  .gs .dp-proximas { padding: 24px 22px; }
}

/* Cor por chave de candidato (mesma regra do eleicoes.css; o hub não carrega aquele arquivo) */
.gs [data-cand="lula"] { --cor: var(--lula); }
.gs [data-cand="flavio"] { --cor: var(--flavio); }
.gs [data-cand="empate"] { --cor: var(--empate); }
