/* O perfil e as abas acompanham a exploração; a lista mantém o contexto. */
/* Candidaturas: uma linha por pessoa, com a mesma leitura no desktop e no celular. */
.candidaturas-filtros { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(0, 2fr); gap: 12px; }
.candidaturas-filtros label { min-width: 0; }
.candidaturas-filtros input, .candidaturas-filtros select { width: 100%; min-height: 44px; }
@media (max-width: 600px) { .candidaturas-filtros { grid-template-columns: minmax(0, 1fr); } }
#candidaturas-2026 { display: grid; grid-template-columns: minmax(0,1fr); gap: 8px; border: 0; }
#candidaturas-2026 .candidate-card { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 6px 18px; border: 1px solid #dbe4ee; border-left: 4px solid #38709e; border-radius: 10px; padding: 14px; background: #f5f9fd; }
#candidaturas-2026 .candidate-card:nth-child(even) { background: #fff; }
#candidaturas-2026 .candidate-card-head { grid-column: 1 / -1; align-items: center; }
#candidaturas-2026 .candidate-name { white-space: normal; overflow: visible; overflow-wrap: anywhere; font-size: 15px; }
#candidaturas-2026 .candidate-card-foot { margin: 0 0 0 52px; justify-content: flex-start; flex-wrap: wrap; }
#candidaturas-2026 .candidate-card-action { display: block; margin: 0; align-self: center; }
#candidaturas-2026 .status-chip { white-space: normal; }
#candidaturas-2026 .status-outside-ballot { color: #842b20; background: #fff0ed; border: 1px solid currentColor; font-weight: 700; }
#candidaturas-2026 .status-resultado { border: 1px solid currentColor; }
#candidaturas-2026 .status-eleito { color: #12633c; background: #e8f6ed; }
#candidaturas-2026 .status-suplente { color: #78510b; background: #fff5d7; }
#candidaturas-2026 .status-nao-eleito, #candidaturas-2026 .status-sem-resultado { color: #45566b; background: #eef2f7; }
#candidaturas-2026 .candidate-number { font-size: 18px; color: #16553f; background: #e6f4ee; }
#candidaturas-2026 .candidate-card:focus-visible { outline: 3px solid #285dd9; outline-offset: 2px; }
#perfil-candidato-2026 .profile-dialog-head { background: #eff5ff; }
#fechar-perfil-2026 { flex-shrink: 0; min-height: 44px; }
#assistente-consulta[hidden] { display: none !important; }
@media (max-width: 600px) {
  #candidaturas-2026 .candidate-card { padding: 12px; gap: 8px; }
  #candidaturas-2026 .candidate-card-foot { margin-left: 0; font-size: 12px; }
  #candidaturas-2026 .candidate-card-action { font-size: 11px; }
  #candidaturas-2026 .candidate-name { font-size: 14px; }
  #perfil-candidato-2026 { width: 100%; max-width: 100%; height: 100dvh; max-height: 100dvh; margin: 0; border: 0; border-radius: 0; }
  #perfil-candidato-2026 .profile-dialog-head { padding: 12px; gap: 10px; padding-top: calc(12px + env(safe-area-inset-top)); }
  #perfil-candidato-2026 .profile-dialog-head strong { font-size: 12px; }
  #perfil-candidato-2026 .profile-content { padding-bottom: calc(24px + env(safe-area-inset-bottom)); }
}
#painel-2024.rx-aberto > article:not(#analise-2024),
#painel-2024.rx-aberto #analise-2024 > .panel-head,
#painel-2024.rx-aberto #ressalva-resultados-antigos { display: none; }
#detalhe-2024 { scroll-margin-top: 76px; }
.rx-profile { display: block; position: sticky; top: calc(64px + env(safe-area-inset-top)); z-index: 450; background: #fff; padding: 12px 0 0; border-bottom: 1px solid #dbe2ec; }
/* Confina camadas e controles Leaflet abaixo do perfil fixo. */
#rx-mapa .map-shell { isolation: isolate; position: relative; z-index: 0; }
.rx-profile-nav, .rx-profile-main, .rx-pagination, .rx-tree-tools { display: flex; align-items: center; gap: 12px; justify-content: space-between; }
.rx-profile-nav { margin-bottom: 12px; font-size: 13px; font-weight: 700; color: #495870; }
.rx-profile-main { justify-content: flex-start; margin-bottom: 12px; }
.rx-avatar { flex: 0 0 56px; width: 56px; height: 64px; border-radius: 12px; background: #e9edf7; color: #183663; display: grid; place-items: center; font-weight: 800; overflow: hidden; }
.rx-avatar img { width: 100%; height: 100%; object-fit: cover; }
.rx-profile-info { flex: 1; min-width: 0; font-size: 12px; line-height: 1.5; }
.rx-profile-votes { text-align: right; max-width: 180px; }
.rx-profile-votes strong { display: block; color: #173768; font-size: 22px; }
.rx-profile-votes small { display: block; font-size: 11px; color: #596579; }
#rx-abas { display: flex; overflow-x: auto; overscroll-behavior-x: contain; grid-template-columns: none; gap: 4px; padding: 12px 0 8px; margin: 0; }
#rx-abas button { flex: 0 0 auto; min-height: 44px; padding: 10px 14px; }
#rx-abas .hidden { display: none; }
.rx-pagination { margin: 16px 0; font-size: 12px; }
.rx-tree-tools { font-size: 12px; margin: 12px 0; color: #596579; }
.rx-totals { margin: 12px 0; }
.rx-totals summary { cursor: pointer; font-size: 13px; padding: 10px 0; }
#hierarquia-lista { display: block; height: 52vh; min-height: 240px; max-height: 560px; overflow-y: auto; overflow-anchor: none; padding: 0; }
.rx-tree-row { width: 100%; height: 132px; box-sizing: border-box; display: flex; align-items: center; gap: 8px; padding: 12px 10px 12px calc(10px + var(--depth) * 14px); text-align: left; border: 0; border-bottom: 1px solid #e0e6ef; background: #fff; color: #202d43; cursor: pointer; font-family: inherit; }
.rx-tree-row { background: var(--level-bg, #eff5ff); border-left: 4px solid var(--level-accent, #2458a6); }
.rx-tree-row:hover { background: #eaf1fc; }
.rx-tree-row:focus-visible, #rx-abas button:focus-visible { outline: 3px solid #285dd9; outline-offset: -3px; }
.rx-expand { flex: 0 0 20px; font-size: 22px; color: #275ac5; text-align: center; }
.rx-node-info { flex: 1; min-width: 0; }
.rx-node-info strong { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; font-size: 14px; line-height: 1.3; }
.rx-node-info small, .rx-node-votes small { display: block; font-size: 11px; line-height: 1.35; font-weight: 400; color: #5b677b; margin-top: 5px; }
.rx-node-votes { flex: 0 0 116px; font-weight: 800; font-size: 19px; text-align: right; color: #193c75; }
#rx-coligacao { padding: 20px 0; }
#rx-status:empty { display: none; }
#detalhe-2024 > #rx-comparar { margin: 10px 0; }
#hierarquia-resultados { --level-bg: #eff5ff; --level-accent: #2458a6; }
#hierarquia-resultados[data-nivel=regiao] { --level-bg: #eff5ff; --level-accent: #2458a6; }
#hierarquia-resultados[data-nivel=zona] { --level-bg: #f0f3f8; --level-accent: #475569; }
#hierarquia-resultados[data-nivel=bairro] { --level-bg: #eaf7f3; --level-accent: #166653; }
#hierarquia-resultados[data-nivel=local] { --level-bg: #fff5e7; --level-accent: #855019; }
#hierarquia-resultados[data-nivel=secao] { --level-bg: #f3effb; --level-accent: #64429a; }
.rx-level-header { padding: 14px; border-radius: 12px; background: var(--level-bg); border-left: 4px solid var(--level-accent); }
.rx-level-header h3 { margin: 12px 0 4px; font-size: 22px; color: var(--level-accent); }
.rx-level-header p { margin: 0; font-size: 13px; overflow-wrap: anywhere; }
.rx-path { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; margin-top: 8px; }
.rx-path button { border: 0; padding: 8px; min-height: 44px; background: transparent; color: #263c55; text-decoration: underline; font: inherit; font-size: 12px; cursor: pointer; overflow-wrap: anywhere; max-width: 100%; }
.rx-path [aria-current=page] { font-weight: 750; text-decoration: none; }
.rx-level-label { display: block; color: var(--level-accent); font-size: 11px; font-weight: 750; text-transform: uppercase; letter-spacing: .06em; margin-bottom: 4px; }
.rx-next-level { display: block; color: var(--level-accent); font-size: 11px; margin-top: 3px; }
.rx-tree-row:hover { filter: brightness(.97); background: var(--level-bg); }
.rx-tree-row:focus-visible, .rx-path button:focus-visible, #rx-voltar-nivel:focus-visible { outline: 3px solid #285dd9; outline-offset: -3px; }
@media (max-width: 600px) {
  .rx-level-header { padding: 10px; }
  .rx-level-header h3 { font-size: 19px; margin-top: 6px; }
  .rx-path { margin-top: 2px; }
  .rx-path button { padding: 5px; font-size: 11px; }
  .rx-profile-nav, .rx-profile-main { margin-bottom: 6px; }
  #rx-abas { padding-top: 4px; }
  #perfil-candidato-2026[open] { display: flex; flex-direction: column; }
  #perfil-candidato-2026 .profile-dialog-head { flex-shrink: 0; }
  #perfil-candidato-2026 .profile-content { flex: 1; min-height: 0; max-height: none; }
  .rx-profile { top: calc(56px + env(safe-area-inset-top)); }
  #detalhe-2024 { scroll-margin-top: 56px; }
  .rx-profile-main { gap: 8px; flex-wrap: wrap; }
  .rx-profile-info .detail-title { font-size: 15px; }
  .rx-avatar { flex-basis: 42px; width: 42px; height: 52px; }
  .rx-profile-votes { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; max-width: none; width: 100%; text-align: left; }
  .rx-profile-votes strong { font-size: 20px; }
  .rx-profile-votes small { text-align: right; }
  #rx-comparar { font-size: 11px; width: 100%; }
  .rx-tree-row { padding-left: calc(4px + var(--depth) * 7px); gap: 4px; padding-right: 5px; }
  .rx-node-votes { flex-basis: 84px; font-size: 17px; }
  .rx-node-info strong { font-size: 12px; }
  .rx-node-info small, .rx-node-votes small { font-size: 11px; }
  .rx-expand { flex-basis: 16px; }
  .rx-pagination { flex-wrap: wrap; gap: 8px; }
  #pagina-resultados { flex: 1; text-align: center; }
  #hierarquia-resultados { padding: 10px; }
  #hierarquia-resultados > .panel-head { margin-bottom: 4px; }
  #hierarquia-titulo { font-size: 14px; }
  #hierarquia-descricao, #hierarquia-resultados > .panel-head > .source { display: none; }
  #hierarquia-resultados .hierarchy-tools { grid-template-columns: minmax(0,1fr) minmax(0,1fr); margin-top: 6px; }
  #hierarquia-resultados .hierarchy-tools label { font-size: 11px; }
  #hierarquia-resultados .hierarchy-tools input, #hierarquia-resultados .hierarchy-tools select { font-size: 16px; padding: 8px; }
  #limpar-hierarquia-resultados { grid-column: 1 / -1; padding: 8px; font-size: 11px; }
  .rx-totals { margin: 4px 0; }
  .rx-totals summary { padding: 8px 0; }
  .rx-tree-tools { font-size: 11px; margin: 8px 0; }
}
@media (max-height: 650px) {
  .rx-profile { position: static; }
}
