/* ==========================================================
   PROJEÇÃO ELEITORAL — Preview editorial leve
   Reutiliza integralmente a lógica da Release 4.0.3.
   ========================================================== */

.light-preview{
  background:#f5f7fb !important;
  color:#172033 !important;
}

/* ---------- topo ---------- */

.light-preview .topbar{
  background:rgba(255,255,255,.96) !important;
  border-bottom:1px solid #e6eaf0 !important;
  box-shadow:0 1px 8px rgba(15,23,42,.04) !important;
}

.light-preview .brand-copy strong{
  color:#111827 !important;
}

.light-preview .brand-copy small{
  color:#778196 !important;
}

.light-preview .brand-mark{
  background:#1467d8 !important;
  color:#fff !important;
  border-color:#1467d8 !important;
  box-shadow:none !important;
}

.light-preview .portal-link{
  color:#536174 !important;
}

.light-preview .portal-link:hover{
  color:#1467d8 !important;
}

.light-preview .preview-current-link{
  border-left:1px solid #e1e6ee;
  padding-left:14px;
}

/* ---------- largura geral ---------- */

.light-preview .shell{
  max-width:1180px !important;
}

/* ---------- hero ---------- */

.light-preview .hero-dashboard{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  padding-top:34px !important;
  padding-bottom:20px !important;
}

.light-preview .hero-copy{
  max-width:720px;
}

.light-preview .hero h1{
  color:#111827 !important;
  font-size:clamp(34px,5vw,58px) !important;
  letter-spacing:-.045em !important;
  line-height:1 !important;
}

.light-preview .hero-year{
  color:#1467d8 !important;
}

.light-preview .subtitle{
  color:#667085 !important;
  max-width:650px !important;
  font-size:15px !important;
  line-height:1.55 !important;
}

.light-preview .eyebrow{
  color:#1467d8 !important;
  letter-spacing:.09em !important;
}

.light-preview .status-card{
  background:#fff !important;
  border:1px solid #e2e7ee !important;
  box-shadow:0 8px 28px rgba(15,23,42,.06) !important;
}

.light-preview .status-card strong{
  color:#172033 !important;
}

.light-preview .status-card small,
.light-preview .status-kicker{
  color:#778196 !important;
}

/* ---------- breadcrumb ---------- */

.light-preview .geo-breadcrumb{
  background:transparent !important;
  border:0 !important;
  color:#64748b !important;
  padding-left:2px !important;
  padding-right:2px !important;
}

.light-preview .breadcrumb-home{
  color:#1467d8 !important;
}

.light-preview .breadcrumb-hint{
  color:#98a2b3 !important;
}

/* ---------- filtros ---------- */

.light-preview .controls{
  background:#fff !important;
  border:1px solid #e3e8ef !important;
  box-shadow:0 8px 24px rgba(15,23,42,.045) !important;
  border-radius:14px !important;
}

.light-preview .controls-heading h2{
  color:#172033 !important;
}

.light-preview .source-note{
  color:#7a8495 !important;
}

.light-preview .filter-grid label > span,
.light-preview .candidate-tools label > span{
  color:#6c7688 !important;
}

.light-preview select,
.light-preview input{
  background:#fff !important;
  border:1px solid #d8dee8 !important;
  color:#172033 !important;
  box-shadow:none !important;
}

.light-preview select:focus,
.light-preview input:focus{
  border-color:#4389e5 !important;
  box-shadow:0 0 0 3px rgba(20,103,216,.10) !important;
}

.light-preview .share-view-button{
  background:#fff !important;
  border-color:#d8dee8 !important;
  color:#475467 !important;
}

.light-preview .live-health{
  background:#f7faf8 !important;
  border-color:#d9e9df !important;
  color:#47705a !important;
}

/* ---------- painéis ---------- */

.light-preview .panel{
  background:#fff !important;
  border:1px solid #e3e8ef !important;
  box-shadow:0 8px 28px rgba(15,23,42,.045) !important;
  border-radius:15px !important;
}

.light-preview .panel h2,
.light-preview .panel h3,
.light-preview .panel h4{
  color:#172033 !important;
}

.light-preview .panel-description{
  color:#727d8e !important;
}

/* ---------- resultado principal ---------- */

.light-preview .primary-results{
  overflow:hidden;
}

.light-preview .primary-results-head{
  border-bottom:1px solid #edf0f4 !important;
}

.light-preview .primary-title-block h2{
  font-size:30px !important;
  letter-spacing:-.025em !important;
}

.light-preview .primary-location{
  color:#697586 !important;
}

.light-preview .primary-location strong{
  color:#172033 !important;
}

.light-preview .primary-progress > span{
  color:#7b8494 !important;
}

.light-preview .primary-progress strong{
  color:#172033 !important;
  font-size:30px !important;
}

.light-preview .progress-track{
  background:#edf1f5 !important;
}

.light-preview .progress-bar{
  background:#1467d8 !important;
  box-shadow:none !important;
}

/* ---------- atalhos de cargo ---------- */

.light-preview .cargo-shortcuts{
  border-bottom:1px solid #edf0f4 !important;
  background:#fff !important;
}

.light-preview .cargo-shortcuts button{
  background:#f7f9fc !important;
  color:#536174 !important;
  border:1px solid #e3e8ef !important;
  box-shadow:none !important;
}

.light-preview .cargo-shortcuts button.active,
.light-preview .cargo-shortcuts button:hover{
  background:#eaf2ff !important;
  color:#135fbf !important;
  border-color:#bcd5f5 !important;
}

/* ---------- KPIs ---------- */

.light-preview .summary-strip{
  background:#fafbfd !important;
  border-bottom:1px solid #edf0f4 !important;
}

.light-preview .compact-kpis{
  background:transparent !important;
}

.light-preview .compact-kpis .kpi{
  background:transparent !important;
  border-color:#e7ebf1 !important;
}

.light-preview .compact-kpis .kpi span{
  color:#7b8494 !important;
}

.light-preview .compact-kpis .kpi strong{
  color:#172033 !important;
}

.light-preview .cargo-rule-details{
  border-color:#e3e8ef !important;
}

.light-preview .cargo-rule-details summary{
  color:#536174 !important;
}

/* ---------- ferramentas candidatos ---------- */

.light-preview .candidate-tools{
  background:#fff !important;
  border-bottom:1px solid #edf0f4 !important;
}

.light-preview .candidate-result-count{
  color:#778196 !important;
}

/* ---------- tabela ---------- */

.light-preview .primary-table-wrap{
  background:#fff !important;
}

.light-preview .primary-results-table{
  color:#172033 !important;
}

.light-preview .primary-results-table thead{
  background:#f8fafc !important;
}

.light-preview .primary-results-table th{
  color:#7b8494 !important;
  border-color:#e8ecf2 !important;
}

.light-preview .primary-results-table td{
  color:#344054 !important;
  border-color:#edf0f4 !important;
}

.light-preview .primary-results-table tbody tr{
  background:#fff !important;
}

.light-preview .primary-results-table tbody tr:hover{
  background:#f8fbff !important;
}

.light-preview .candidate-name{
  color:#172033 !important;
  font-weight:800 !important;
}

.light-preview .candidate-sub{
  color:#8b95a5 !important;
}

.light-preview .candidate-status{
  background:#f3f5f8 !important;
  color:#626d7d !important;
  border-color:#e1e6ed !important;
}

.light-preview .candidate-status.elected{
  background:#eaf8f0 !important;
  color:#217044 !important;
  border-color:#caead7 !important;
}

.light-preview .candidate-status.alternate{
  background:#fff7e8 !important;
  color:#8d6518 !important;
  border-color:#f1dfb5 !important;
}

.light-preview .candidate-status.runoff{
  background:#edf4ff !important;
  color:#185fb6 !important;
  border-color:#c9dcf5 !important;
}

/* ---------- paginação ---------- */

.light-preview .candidate-pagination{
  background:#fafbfd !important;
  border-color:#e4e9ef !important;
}

.light-preview .candidate-page-big{
  background:#fff !important;
  border-color:#d9e0e9 !important;
  color:#475467 !important;
  box-shadow:none !important;
}

.light-preview .candidate-page-big:hover:not(:disabled){
  background:#f6f9fd !important;
  border-color:#aac9ec !important;
  box-shadow:none !important;
}

.light-preview .candidate-page-big strong{
  color:#344054 !important;
}

.light-preview .candidate-page-big small,
.light-preview .candidate-pagination-status small,
.light-preview .candidate-pagination-summary{
  color:#8490a2 !important;
}

.light-preview .candidate-pagination-status strong{
  color:#172033 !important;
}

.light-preview .candidate-page-next{
  background:#eef6ff !important;
  border-color:#b9d6f5 !important;
}

.light-preview .candidate-page-next:not(:disabled) strong{
  color:#135fbf !important;
}

.light-preview .candidate-page-arrow{
  color:#4b83c4 !important;
}

.light-preview .candidate-pagination-nav button{
  background:#fff !important;
  color:#536174 !important;
  border-color:#d8dee8 !important;
}

.light-preview .candidate-pagination-nav button.active{
  background:#1467d8 !important;
  color:#fff !important;
  border-color:#1467d8 !important;
  box-shadow:none !important;
}

/* ---------- fonte ---------- */

.light-preview .official-status-note{
  background:#fbfcfd !important;
  border-color:#edf0f4 !important;
  color:#778196 !important;
}

/* ---------- MAPA: continua em destaque ---------- */

.light-preview .map-panel{
  margin-top:26px !important;
}

.light-preview .map-panel .panel-head{
  border-bottom:1px solid #edf0f4 !important;
}

.light-preview .map-content{
  background:#fff !important;
}

.light-preview .map-main{
  background:#fff !important;
}

.light-preview .map-mode-button{
  background:#fff !important;
  color:#536174 !important;
  border:1px solid #d8dee8 !important;
  box-shadow:none !important;
}

.light-preview .map-mode-button.active{
  background:#1467d8 !important;
  color:#fff !important;
  border-color:#1467d8 !important;
}

.light-preview .geo-map-wrap{
  background:#f8fafc !important;
  border:1px solid #e5eaf0 !important;
  border-radius:14px !important;
}

.light-preview .map-side{
  background:#fafbfd !important;
  border-color:#e7ebf0 !important;
}

.light-preview .selected-place-header h3{
  color:#172033 !important;
}

.light-preview .map-meta{
  color:#667085 !important;
}

.light-preview .municipality-block{
  border-color:#e5eaf0 !important;
}

.light-preview .municipality-search-results,
.light-preview .municipio-top-results{
  background:#fff !important;
  border-color:#d8dee8 !important;
  box-shadow:0 12px 32px rgba(15,23,42,.12) !important;
  color:#344054 !important;
}

.light-preview .map-footnote,
.light-preview .municipality-note{
  color:#8b95a5 !important;
}

/* ---------- desempenho partidário ---------- */

.light-preview .groups-panel{
  background:#fff !important;
}

.light-preview .groups{
  gap:0 !important;
}

.light-preview .group{
  background:#fff !important;
  border:0 !important;
  border-bottom:1px solid #edf0f4 !important;
  border-radius:0 !important;
  box-shadow:none !important;
}

.light-preview .group:last-child{
  border-bottom:0 !important;
}

.light-preview .group strong{
  color:#172033 !important;
}

.light-preview .group small{
  color:#7d8797 !important;
}

.light-preview .group-value{
  color:#172033 !important;
}

.light-preview .mini-track{
  background:#edf1f5 !important;
}

.light-preview .mini-track i{
  background:#397fd4 !important;
}

/* ---------- painéis expansíveis ---------- */

.light-preview .disclosure-panel{
  background:#fff !important;
}

.light-preview .disclosure-summary{
  color:#172033 !important;
}

.light-preview .disclosure-summary:hover{
  background:#fafbfd !important;
}

.light-preview .history-count{
  background:#f2f4f7 !important;
  color:#667085 !important;
}

.light-preview .audit-grid{
  color:#475467 !important;
}

/* ---------- disponibilidade ---------- */

.light-preview .availability-notice{
  background:#fff5f5 !important;
  border-color:#f1caca !important;
  color:#9f3333 !important;
  box-shadow:none !important;
}

.light-preview .availability-notice strong{
  color:#8e2929 !important;
}

.light-preview .availability-notice span{
  color:#9a5555 !important;
}

/* ---------- rodapé ---------- */

.light-preview footer{
  background:#fff !important;
  border-top:1px solid #e4e8ee !important;
  color:#7b8494 !important;
}

.light-preview footer strong{
  color:#344054 !important;
}

/* ==========================================================
   Mobile
   ========================================================== */

@media(max-width:760px){

  .light-preview .topbar{
    padding-left:14px !important;
    padding-right:14px !important;
  }

  .light-preview .preview-current-link{
    display:none;
  }

  .light-preview .hero-dashboard{
    padding-top:24px !important;
  }

  .light-preview .hero h1{
    font-size:38px !important;
  }

  .light-preview .status-card{
    margin-top:8px !important;
  }

  .light-preview .controls,
  .light-preview .panel{
    border-radius:12px !important;
    box-shadow:0 4px 18px rgba(15,23,42,.04) !important;
  }

  .light-preview .primary-title-block h2{
    font-size:25px !important;
  }

  .light-preview .primary-progress strong{
    font-size:25px !important;
  }

  /* Cards de candidatos continuam responsivos,
     mas agora claros. */
  .light-preview .primary-results-table tbody tr{
    background:#fff !important;
    border:1px solid #e2e7ed !important;
    box-shadow:0 3px 12px rgba(15,23,42,.04) !important;
  }

  .light-preview .primary-results-table td{
    background:transparent !important;
  }

  .light-preview .map-side{
    background:#fff !important;
  }
}


/* ==========================================================
   PREVIEW V2 — refinamento editorial
   ========================================================== */

/* Hero mais compacto */
.light-preview .hero-dashboard{
  min-height:auto !important;
  padding-top:30px !important;
  padding-bottom:26px !important;
  background:none !important;
}

.light-preview .hero-dashboard::before,
.light-preview .hero-dashboard::after{
  display:none !important;
}

/* Remove fundos pesados remanescentes */
.light-preview .primary-results-head,
.light-preview .map-panel .panel-head{
  background:#fff !important;
  background-image:none !important;
}

/* Resultado principal */
.light-preview .primary-results-head{
  padding-top:22px !important;
  padding-bottom:20px !important;
}

.light-preview .primary-results-head::before,
.light-preview .primary-results-head::after{
  display:none !important;
}

.light-preview .primary-progress{
  background:transparent !important;
}

/* Mapa */
.light-preview .map-panel .panel-head{
  padding-top:22px !important;
  padding-bottom:18px !important;
}

.light-preview .map-panel .panel-head::before,
.light-preview .map-panel .panel-head::after{
  display:none !important;
}

.light-preview .map-legend{
  background:#f5f8fc !important;
  border:1px solid #dde5ef !important;
  color:#627087 !important;
}

/* Sidebar do mapa totalmente clara */
.light-preview .map-side{
  background:#fff !important;
}

.light-preview .map-meta > *,
.light-preview .map-meta > div{
  background:#f6f8fb !important;
  color:#344054 !important;
  border:1px solid #e3e8ef !important;
  box-shadow:none !important;
}

.light-preview .map-meta strong{
  color:#172033 !important;
}

.light-preview .map-meta small,
.light-preview .map-meta span{
  color:#667085 !important;
}

/* Chips de cargos */
.light-preview .map-side button,
.light-preview .map-side .cargo-chip,
.light-preview .map-side [class*="cargo"]{
  box-shadow:none !important;
}

/* Área geográfica um pouco mais suave */
.light-preview .geo-map-wrap{
  background:#f7f9fc !important;
}

/* Brasil: estados neutros, estado selecionado destacado */
.light-preview .geo-uf{
  fill:#cbd3df !important;
  stroke:#ffffff !important;
  stroke-width:1.1 !important;
}

.light-preview .geo-uf:hover{
  fill:#aebbd0 !important;
}

.light-preview .geo-uf.selected,
.light-preview .geo-uf.active{
  fill:#1b76d1 !important;
  stroke:#0f5fac !important;
}

/* Municípios menos pesados */
.light-preview .geo-municipio{
  fill:#d8e0ea !important;
  stroke:#b9c5d4 !important;
  stroke-width:.45 !important;
}

.light-preview .geo-municipio:hover,
.light-preview .geo-municipio.search-hit,
.light-preview .geo-municipio.selected{
  fill:#1b76d1 !important;
  stroke:#ffffff !important;
}

/* Evita que regras antigas escuras do mapa predominem */
.light-preview .geo-municipio.catalog-available{
  fill:#c5d2e2 !important;
  stroke:#aebdce !important;
}

.light-preview .geo-municipio.catalog-available:hover,
.light-preview .geo-municipio.catalog-available.search-hit{
  fill:#1b76d1 !important;
  stroke:#fff !important;
}

/* Tipografia e divisórias do mapa */
.light-preview .selected-place-header{
  border-bottom:0 !important;
}

.light-preview .municipality-head{
  border-top:1px solid #e7ebf1 !important;
  padding-top:20px !important;
}

/* Desempenho partidário também mais editorial */
.light-preview .groups-panel .panel-head{
  background:#fff !important;
  background-image:none !important;
}

.light-preview .group{
  padding-top:18px !important;
  padding-bottom:18px !important;
}

/* Menos sombra geral */
.light-preview .controls,
.light-preview .panel,
.light-preview .status-card{
  box-shadow:0 5px 18px rgba(15,23,42,.035) !important;
}

/* Mobile */
@media(max-width:760px){
  .light-preview .hero-dashboard{
    padding-top:20px !important;
    padding-bottom:18px !important;
  }

  .light-preview .hero h1{
    font-size:36px !important;
  }

  .light-preview .map-meta{
    grid-template-columns:1fr 1fr !important;
  }
}


/* ==========================================================
   PREVIEW V2.1 — contraste dos resultados de municípios
   ========================================================== */

/* Dropdowns claros */
.light-preview .municipality-search-results,
.light-preview .municipio-top-results{
  background:#ffffff !important;
  border:1px solid #d8dee8 !important;
  box-shadow:0 12px 30px rgba(15,23,42,.12) !important;
}

/* Estado normal: texto escuro e perfeitamente legível */
.light-preview .municipality-search-results button,
.light-preview .municipio-top-results button{
  background:#ffffff !important;
  color:#172033 !important;
  border-color:#edf0f4 !important;
}

/* Informação auxiliar: "somente mapa", etc. */
.light-preview .municipality-search-results button small,
.light-preview .municipio-top-results button small{
  color:#778196 !important;
}

/* Hover / teclado */
.light-preview .municipality-search-results button:hover,
.light-preview .municipality-search-results button:focus,
.light-preview .municipio-top-results button:hover,
.light-preview .municipio-top-results button:focus{
  background:#1467d8 !important;
  color:#ffffff !important;
  outline:none !important;
}

/* Texto auxiliar também fica branco no hover */
.light-preview .municipality-search-results button:hover small,
.light-preview .municipality-search-results button:focus small,
.light-preview .municipio-top-results button:hover small,
.light-preview .municipio-top-results button:focus small{
  color:#dbeafe !important;
}

/* Mensagens vazias */
.light-preview .municipality-search-results p,
.light-preview .municipio-top-results p{
  color:#667085 !important;
}


/* ==========================================================
   PREVIEW V2.2
   Busca municipal legível + mapas claros
   ========================================================== */


/* ----------------------------------------------------------
   BUSCA DE MUNICÍPIOS
   ---------------------------------------------------------- */

/*
 * Alguns resultados "somente mapa" recebem estado visual
 * atenuado/disabled da interface original.
 * Na preview queremos que continuem perfeitamente legíveis.
 */
.light-preview .municipality-search-results button,
.light-preview .municipality-search-results button:disabled,
.light-preview .municipio-top-results button,
.light-preview .municipio-top-results button:disabled{
  opacity:1 !important;
  background:#ffffff !important;
  color:#172033 !important;
  -webkit-text-fill-color:#172033 !important;
}

/* Força também os elementos internos */
.light-preview .municipality-search-results button *,
.light-preview .municipio-top-results button *{
  opacity:1 !important;
  color:#667085 !important;
  -webkit-text-fill-color:#667085 !important;
}

/* Nome principal */
.light-preview .municipality-search-results button{
  font-weight:650 !important;
}

/* Hover/foco */
.light-preview .municipality-search-results button:hover,
.light-preview .municipality-search-results button:focus,
.light-preview .municipio-top-results button:hover,
.light-preview .municipio-top-results button:focus{
  opacity:1 !important;
  background:#163968 !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
}

/* Todos os filhos também claros no hover */
.light-preview .municipality-search-results button:hover *,
.light-preview .municipality-search-results button:focus *,
.light-preview .municipio-top-results button:hover *,
.light-preview .municipio-top-results button:focus *{
  color:#dceaff !important;
  -webkit-text-fill-color:#dceaff !important;
}


/* ----------------------------------------------------------
   MAPA GEOGRÁFICO — BASE CLARA
   ---------------------------------------------------------- */

/*
 * Regra ampla proposital.
 * A preview é clara; nenhum polígono geográfico deve manter
 * o preenchimento azul-marinho da interface congelada.
 */
.light-preview #geoMapCanvas path{
  fill:#dce4ee !important;
  stroke:#b5c1cf !important;
  stroke-width:.7 !important;
  filter:none !important;
}

/* Unidades da Federação */
.light-preview #geoMapCanvas .geo-uf,
.light-preview #geoMapCanvas path.geo-uf{
  fill:#cfd8e4 !important;
  stroke:#ffffff !important;
  stroke-width:1.15 !important;
}

/* UF sob o mouse */
.light-preview #geoMapCanvas .geo-uf:hover,
.light-preview #geoMapCanvas path.geo-uf:hover{
  fill:#8fb6e3 !important;
  stroke:#ffffff !important;
}

/* UF selecionada */
.light-preview #geoMapCanvas .geo-uf.selected,
.light-preview #geoMapCanvas .geo-uf.active,
.light-preview #geoMapCanvas path.geo-uf.selected,
.light-preview #geoMapCanvas path.geo-uf.active{
  fill:#2878cb !important;
  stroke:#ffffff !important;
}


/* ----------------------------------------------------------
   MUNICÍPIOS DO ESTADO
   ---------------------------------------------------------- */

.light-preview #geoMapCanvas .geo-municipio,
.light-preview #geoMapCanvas path.geo-municipio,
.light-preview #geoMapCanvas .geo-municipio.catalog-available{
  fill:#e0e7ef !important;
  stroke:#b8c4d1 !important;
  stroke-width:.55 !important;
  filter:none !important;
}

/* Município sob o mouse */
.light-preview #geoMapCanvas .geo-municipio:hover,
.light-preview #geoMapCanvas .geo-municipio.catalog-available:hover{
  fill:#8db8e6 !important;
  stroke:#ffffff !important;
  stroke-width:1.2 !important;
}

/*
 * Município encontrado pela pesquisa:
 * amarelo suave para ser facilmente localizado sem transformar
 * todo o mapa numa massa escura.
 */
.light-preview #geoMapCanvas .geo-municipio.search-hit,
.light-preview #geoMapCanvas .geo-municipio.catalog-available.search-hit{
  fill:#fff0a8 !important;
  stroke:#d5a900 !important;
  stroke-width:2.4 !important;
  filter:drop-shadow(0 0 4px rgba(213,169,0,.28)) !important;
}

/* Município efetivamente selecionado */
.light-preview #geoMapCanvas .geo-municipio.selected,
.light-preview #geoMapCanvas .geo-municipio.active{
  fill:#2878cb !important;
  stroke:#ffffff !important;
  stroke-width:1.8 !important;
}


/* Fundo ainda mais limpo para o mapa */
.light-preview .geo-map-wrap{
  background:#f8fafc !important;
  box-shadow:inset 0 0 35px rgba(36,64,98,.025) !important;
}



/* ==========================================================
   PREVIEW V2.3 — acabamento do mapa
   ========================================================== */

/* Tooltip claro */
.light-preview .map-tooltip{
  background:#ffffff !important;
  color:#172033 !important;
  border:1px solid #d8dee8 !important;
  box-shadow:0 10px 28px rgba(15,23,42,.16) !important;
}

.light-preview .map-tooltip strong{
  color:#172033 !important;
}

.light-preview .map-tooltip small,
.light-preview .map-tooltip span{
  color:#667085 !important;
}

/* Mensagens sem dados: discretas */
.light-preview .municipality-note{
  color:#8a94a5 !important;
  font-size:12px !important;
  line-height:1.5 !important;
}

.light-preview .municipality-preview:empty + .municipality-note{
  color:#98a2b3 !important;
}

/* Município encontrado na busca */
.light-preview #geoMapCanvas .geo-municipio.search-hit{
  fill:#ffe78a !important;
  stroke:#c89700 !important;
  stroke-width:2.8 !important;
  filter:drop-shadow(0 0 5px rgba(200,151,0,.32)) !important;
}

/* Município selecionado */
.light-preview #geoMapCanvas .geo-municipio.selected,
.light-preview #geoMapCanvas .geo-municipio.active{
  fill:#1467d8 !important;
  stroke:#ffffff !important;
  stroke-width:2 !important;
}


/* ==========================================================
   PREVIEW V2.4 — Evolução da apuração em tema claro
   ========================================================== */


/* ----------------------------------------------------------
   CABEÇALHO DO BLOCO
   ---------------------------------------------------------- */

.light-preview .history-panel{
  background:#ffffff !important;
}

.light-preview .history-panel .disclosure-summary{
  background:#ffffff !important;
  background-image:none !important;
  color:#172033 !important;
  border-bottom:1px solid #e7ebf1 !important;
}

.light-preview .history-panel .disclosure-summary::before,
.light-preview .history-panel .disclosure-summary::after{
  display:none !important;
}

.light-preview .history-panel .disclosure-summary h2{
  color:#172033 !important;
}

.light-preview .history-panel .disclosure-summary .panel-description{
  color:#7b8494 !important;
}

.light-preview .history-count{
  background:#f7f9fc !important;
  border:1px solid #dce3ec !important;
  color:#596579 !important;
}


/* ----------------------------------------------------------
   CONTEÚDO
   ---------------------------------------------------------- */

.light-preview .history-content{
  background:#ffffff !important;
}


/* ----------------------------------------------------------
   GRÁFICO
   ---------------------------------------------------------- */

.light-preview .chart-wrap{
  background:#ffffff !important;
  background-image:none !important;
  border:1px solid #e0e6ed !important;
  box-shadow:none !important;
}

/* Grades */
.light-preview .chart-grid{
  stroke:#d8e0e9 !important;
  stroke-width:1 !important;
}

/* Horários e eixo percentual */
.light-preview .chart-label{
  fill:#748094 !important;
  color:#748094 !important;
}

/* Linha da apuração */
.light-preview .chart-line{
  stroke:#2878d0 !important;
  stroke-width:4 !important;
}

/* Marcadores */
.light-preview .chart-dot{
  fill:#17b890 !important;
  stroke:#ffffff !important;
  stroke-width:3 !important;
}

/* Percentuais sobre os pontos */
.light-preview .chart-value{
  fill:#172033 !important;
  color:#172033 !important;
  font-weight:800 !important;
  paint-order:stroke !important;
  stroke:#ffffff !important;
  stroke-width:3px !important;
  stroke-linejoin:round !important;
}


/* ----------------------------------------------------------
   TIMELINE / SNAPSHOTS
   ---------------------------------------------------------- */

.light-preview .history-timeline{
  border-color:#e3e8ef !important;
  background:#ffffff !important;
}

/* Cada snapshot */
.light-preview .history-item{
  background:#ffffff !important;
  color:#172033 !important;
  border:1px solid #dfe5ed !important;
  box-shadow:none !important;
}

/* Último snapshot */
.light-preview .history-item.latest{
  background:#f4f9ff !important;
  border-color:#b9d6f5 !important;
}

/* Horário */
.light-preview .history-item span{
  color:#667085 !important;
}

/* Percentual */
.light-preview .history-item strong{
  color:#172033 !important;
  font-weight:800 !important;
}

/* ID do snapshot / FINAL */
.light-preview .history-item small{
  color:#7b8494 !important;
}

/* Pontos da linha temporal */
.light-preview .history-item::before{
  background:#a8b4c4 !important;
  box-shadow:none !important;
}

.light-preview .history-item.latest::before{
  background:#17b890 !important;
  box-shadow:0 0 0 4px rgba(23,184,144,.12) !important;
}


/* ----------------------------------------------------------
   SCROLLBAR DA TIMELINE
   ---------------------------------------------------------- */

.light-preview .history-timeline{
  scrollbar-color:#c6d0dc #f4f6f9;
  scrollbar-width:thin;
}

.light-preview .history-timeline::-webkit-scrollbar{
  width:8px;
  height:8px;
}

.light-preview .history-timeline::-webkit-scrollbar-track{
  background:#f4f6f9;
  border-radius:999px;
}

.light-preview .history-timeline::-webkit-scrollbar-thumb{
  background:#c6d0dc;
  border-radius:999px;
}


/* ----------------------------------------------------------
   MOBILE
   ---------------------------------------------------------- */

@media(max-width:760px){

  .light-preview .history-content{
    gap:16px !important;
  }

  .light-preview .history-timeline{
    border-left:0 !important;
    border-top:1px solid #e3e8ef !important;
    background:#ffffff !important;
  }

  .light-preview .history-item{
    min-width:155px;
  }
}



/* ==========================================================
   PREVIEW V2.5 — Dados técnicos e rastreabilidade
   ========================================================== */

/* Painel geral */
.light-preview .details-panel{
  background:#ffffff !important;
  border:1px solid #e1e7ee !important;
  box-shadow:0 5px 18px rgba(15,23,42,.035) !important;
}

/* Cabeçalho */
.light-preview .details-panel .disclosure-summary{
  background:#ffffff !important;
  background-image:none !important;
  color:#172033 !important;
  border-bottom:1px solid #e7ebf1 !important;
}

.light-preview .details-panel .disclosure-summary::before,
.light-preview .details-panel .disclosure-summary::after{
  display:none !important;
}

.light-preview .details-panel .disclosure-summary h2{
  color:#172033 !important;
}

.light-preview .details-panel .disclosure-summary .panel-description{
  color:#7b8494 !important;
}

.light-preview .details-panel .disclosure-chevron{
  color:#356aa8 !important;
  border-color:#b9c9dc !important;
  background:#ffffff !important;
}

/* Grade técnica */
.light-preview .audit-grid{
  background:#e5eaf0 !important;
  gap:1px !important;
}

/* Cada célula */
.light-preview .audit-grid > div{
  background:#ffffff !important;
  color:#172033 !important;
  padding:18px 20px !important;
}

/* Rótulos */
.light-preview .audit-grid dt{
  color:#667085 !important;
  font-weight:750 !important;
  letter-spacing:.06em !important;
}

/* Valores */
.light-preview .audit-grid dd{
  color:#172033 !important;
  font-weight:550 !important;
  line-height:1.5 !important;
}

/* Caminhos e valores longos */
.light-preview .audit-grid dd,
.light-preview .audit-grid code{
  overflow-wrap:anywhere !important;
  word-break:break-word !important;
}

/* Destaca SOURCE e dados principais sem pesar */
.light-preview .audit-grid > div:first-child dd{
  color:#1467d8 !important;
  font-weight:750 !important;
}

/* Hover muito discreto */
.light-preview .audit-grid > div:hover{
  background:#f8fafc !important;
}


/* Mobile */
@media(max-width:760px){

  .light-preview .audit-grid{
    grid-template-columns:1fr !important;
  }

  .light-preview .audit-grid > div{
    padding:15px 16px !important;
  }
}



/* ==========================================================
   PREVIEW V3 — navegação editorial por cargos
   ========================================================== */


/* ----------------------------------------------------------
   DADOS TÉCNICOS
   Dataset ocupa a largura completa
   ---------------------------------------------------------- */

.light-preview .audit-grid > div:last-child{
  grid-column:1 / -1 !important;
  background:#ffffff !important;
}

.light-preview .audit-grid > div:last-child dd{
  max-width:100% !important;
}


/* ----------------------------------------------------------
   TROCA RÁPIDA DE CARGO
   ---------------------------------------------------------- */

.light-preview .cargo-shortcuts{
  display:flex !important;
  align-items:center !important;
  gap:4px !important;

  padding:10px 16px !important;

  background:#ffffff !important;
  border-top:1px solid #edf0f4 !important;
  border-bottom:1px solid #edf0f4 !important;

  overflow-x:auto !important;
  overflow-y:hidden !important;

  scrollbar-width:none;
}

.light-preview .cargo-shortcuts::-webkit-scrollbar{
  display:none;
}


/* Botões passam a parecer abas editoriais */
.light-preview .cargo-shortcuts button{
  flex:0 0 auto !important;

  min-height:38px !important;
  padding:8px 14px !important;

  border:0 !important;
  border-radius:8px !important;

  background:transparent !important;
  color:#596579 !important;

  font-size:13px !important;
  font-weight:700 !important;

  box-shadow:none !important;

  white-space:nowrap !important;

  transition:
    background .15s ease,
    color .15s ease !important;
}


/* Hover */
.light-preview .cargo-shortcuts button:hover{
  background:#f1f5f9 !important;
  color:#172033 !important;
}


/* Cargo selecionado */
.light-preview .cargo-shortcuts button.active{
  background:#1467d8 !important;
  color:#ffffff !important;

  border:0 !important;
  box-shadow:none !important;
}


/* Foco por teclado */
.light-preview .cargo-shortcuts button:focus-visible{
  outline:2px solid #6da9ef !important;
  outline-offset:2px !important;
}


/* ----------------------------------------------------------
   TÍTULO DO RESULTADO
   ---------------------------------------------------------- */

.light-preview .primary-results-head{
  padding:20px 18px 16px !important;
}

.light-preview .primary-title-block .eyebrow{
  margin-bottom:5px !important;
}

.light-preview .primary-title-block h2{
  margin-bottom:5px !important;
}


/* ----------------------------------------------------------
   MOBILE
   Abas continuam em uma única linha com swipe horizontal
   ---------------------------------------------------------- */

@media(max-width:760px){

  .light-preview .cargo-shortcuts{
    padding:9px 11px !important;
    gap:3px !important;
  }

  .light-preview .cargo-shortcuts button{
    min-height:36px !important;
    padding:7px 12px !important;
    font-size:12px !important;
  }

  .light-preview .audit-grid > div:last-child{
    grid-column:1 !important;
  }
}



/* ==========================================================
   PREVIEW V4 — filtros mais leves e compactos
   ========================================================== */


/* Card de filtros mais discreto */
.light-preview .controls{
  padding:14px 16px 12px !important;
  margin-bottom:14px !important;
  border-radius:12px !important;
  box-shadow:0 3px 12px rgba(15,23,42,.025) !important;
}


/* Cabeçalho reduzido */
.light-preview .controls-heading{
  margin-bottom:12px !important;
  gap:14px !important;
}

.light-preview .controls-heading .eyebrow{
  display:none !important;
}

.light-preview .controls-heading h2{
  margin:0 !important;
  font-size:17px !important;
  line-height:1.2 !important;
  color:#172033 !important;
}


/* Ações do lado direito */
.light-preview .control-actions{
  flex-direction:row !important;
  align-items:center !important;
  gap:8px !important;
}


/* Aviso da fonte vira uma informação secundária */
.light-preview .source-note{
  max-width:330px !important;
  padding:6px 9px !important;
  border-radius:7px !important;

  background:#f5faf8 !important;
  border:1px solid #dcebe4 !important;

  color:#668073 !important;
  font-size:9px !important;
  line-height:1.35 !important;
}


/* Copiar link menor */
.light-preview .share-view-button{
  min-height:32px !important;
  padding:6px 10px !important;

  border-radius:7px !important;

  font-size:10px !important;
  white-space:nowrap !important;
}


/* Quatro campos compactos */
.light-preview .filter-grid{
  gap:9px !important;
}

.light-preview .filter-grid label{
  gap:5px !important;
}

.light-preview .filter-grid label > span{
  font-size:9px !important;
  letter-spacing:.055em !important;
}


/* Selects/inputs menos altos */
.light-preview .controls select,
.light-preview .controls input{
  min-height:39px !important;
  padding:8px 11px !important;

  border-radius:8px !important;

  font-size:12px !important;
  font-weight:650 !important;
}


/* Status automático vira uma linha fina */
.light-preview .live-health{
  min-height:30px !important;

  margin-top:9px !important;
  padding:5px 9px !important;

  border-radius:7px !important;

  font-size:9px !important;
}


/* Aproxima o resultado dos filtros */
.light-preview .primary-results{
  margin-top:0 !important;
}


/* ==========================================================
   Desktop amplo
   ========================================================== */

@media(min-width:900px){

  .light-preview .controls{
    display:block !important;
  }

  .light-preview .filter-grid{
    grid-template-columns:
      .75fr
      1fr
      1.35fr
      1fr !important;
  }
}


/* ==========================================================
   Mobile
   ========================================================== */

@media(max-width:760px){

  .light-preview .controls{
    padding:13px !important;
  }

  .light-preview .controls-heading{
    align-items:flex-start !important;
    flex-direction:column !important;
    margin-bottom:10px !important;
  }

  .light-preview .control-actions{
    width:100% !important;
    align-items:stretch !important;
    flex-direction:column !important;
  }

  .light-preview .source-note{
    max-width:none !important;
  }

  .light-preview .share-view-button{
    width:100% !important;
  }

  .light-preview .filter-grid{
    grid-template-columns:1fr !important;
  }
}



/* ==========================================================
   PREVIEW V5 — Senado e Câmara ao vivo
   ========================================================== */

.light-preview .composition-panel{
  margin-top:18px !important;
  margin-bottom:18px !important;
  background:#fff !important;
  overflow:hidden !important;
}

.light-preview .composition-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  padding:22px 22px 18px;
  border-bottom:1px solid #e8ecf1;
}

.light-preview .composition-head h2{
  margin:0;
  color:#172033 !important;
  font-size:26px;
  letter-spacing:-.025em;
}

.light-preview .composition-location{
  margin:7px 0 0;
  color:#667085;
  font-size:12px;
}

.light-preview .composition-location strong{
  color:#344054;
}

.light-preview .composition-location span::before{
  content:" • ";
}

.light-preview .composition-head-count{
  text-align:right;
}

.light-preview .composition-head-count strong{
  display:block;
  color:#172033;
  font-size:30px;
  line-height:1;
  letter-spacing:-.04em;
}

.light-preview .composition-head-count strong span{
  color:#98a2b3;
  font-size:14px;
  font-weight:600;
}

.light-preview .composition-head-count small{
  display:block;
  margin-top:5px;
  color:#7b8494;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.06em;
}


/* Introdução */

.light-preview .composition-intro{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  padding:14px 22px;
  background:#fafbfd;
  border-bottom:1px solid #e9edf2;
}

.light-preview .composition-intro-copy{
  display:flex;
  flex-direction:column;
  gap:4px;
}

.light-preview .composition-intro-copy strong{
  color:#172033;
  font-size:15px;
}

.light-preview .composition-intro-copy span{
  color:#667085;
  font-size:11px;
  line-height:1.45;
  max-width:650px;
}

.light-preview .composition-legend{
  display:flex;
  gap:15px;
  align-items:center;
  flex-wrap:wrap;
  color:#667085;
  font-size:10px;
  white-space:nowrap;
}

.light-preview .composition-legend span{
  display:flex;
  align-items:center;
  gap:6px;
}

.light-preview .composition-legend i{
  width:10px;
  height:10px;
  border-radius:50%;
  display:block;
}

.light-preview .composition-legend-defined{
  background:#2878d0;
}

.light-preview .composition-legend-empty{
  background:#e3e7ed;
  border:1px solid #d1d7e0;
}


/* Layout principal */

.light-preview .composition-layout{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(330px,.95fr);
  gap:0;
}

.light-preview .composition-chart-card{
  position:relative;
  min-height:330px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px 20px 12px;
  background:#fff;
  border-right:1px solid #e8ecf1;
}

.light-preview .composition-hemicycle{
  display:block;
  width:100%;
  max-width:560px;
  height:auto;
}

.light-preview .composition-seat{
  transition:
    fill .25s ease,
    opacity .25s ease,
    transform .25s ease;
  transform-box:fill-box;
  transform-origin:center;
}

.light-preview .composition-seat.empty{
  fill:#e3e7ed;
  stroke:#fff;
  stroke-width:1;
}

.light-preview .composition-seat.defined{
  stroke:#fff;
  stroke-width:1;
}

.light-preview .composition-seat:hover{
  transform:scale(1.35);
  opacity:.92;
}

.light-preview .composition-chart-summary{
  position:absolute;
  left:50%;
  bottom:31px;
  transform:translateX(-50%);
  text-align:center;
  pointer-events:none;
}

.light-preview .composition-chart-summary strong{
  display:block;
  color:#172033;
  font-size:26px;
  line-height:1;
}

.light-preview .composition-chart-summary span{
  display:block;
  margin-top:5px;
  color:#7b8494;
  font-size:10px;
  white-space:nowrap;
}


/* Partidos */

.light-preview .composition-party-card{
  min-width:0;
  padding:18px 18px 20px;
  background:#fff;
}

.light-preview .composition-party-card-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:10px;
  padding-bottom:12px;
  border-bottom:1px solid #e9edf2;
}

.light-preview .composition-party-card-head span{
  display:block;
  color:#1467d8;
  font-size:9px;
  font-weight:800;
  letter-spacing:.08em;
}

.light-preview .composition-party-card-head strong{
  display:block;
  margin-top:3px;
  color:#172033;
  font-size:16px;
}

.light-preview .composition-party-card-head small{
  color:#98a2b3;
  font-size:9px;
}

.light-preview .composition-party-list{
  margin-top:4px;
  max-height:370px;
  overflow:auto;
  scrollbar-width:thin;
  scrollbar-color:#cad3df #fff;
}

.light-preview .composition-party-row{
  border-bottom:1px solid #edf0f4;
}

.light-preview .composition-party-row:last-child{
  border-bottom:0;
}

.light-preview .composition-party-row > summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:49px;
  padding:8px 4px;
  cursor:pointer;
  list-style:none;
}

.light-preview .composition-party-row > summary::-webkit-details-marker{
  display:none;
}

.light-preview .composition-party-row > summary:hover{
  background:#fafbfd;
}

.light-preview .composition-party-summary-left{
  display:flex;
  align-items:center;
  gap:10px;
  color:#344054;
  font-size:12px;
}

.light-preview .composition-party-row > summary > strong{
  color:#172033;
  font-size:12px;
}

.light-preview .composition-party-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:24px;
  padding:4px 7px;
  border-radius:6px;
  background:var(--party-color);
  color:#fff !important;
  font-size:10px;
  font-weight:850;
  line-height:1;
  white-space:nowrap;
}

.light-preview .composition-party-candidates{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  padding:4px 4px 14px;
}

.light-preview .composition-candidate-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-width:0;
  padding:10px 11px;
  border:1px solid #e3e8ef;
  border-radius:10px;
  background:#fff;
}

.light-preview .composition-candidate-main{
  min-width:0;
}

.light-preview .composition-candidate-main strong{
  display:block;
  overflow:hidden;
  color:#172033;
  font-size:11px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.light-preview .composition-candidate-main small{
  display:block;
  margin-top:3px;
  color:#98a2b3;
  font-size:9px;
}

.light-preview .composition-candidate-side{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:5px;
}

.light-preview .composition-uf{
  color:#596579;
  font-size:9px;
  font-weight:800;
}


/* Rodapé */

.light-preview .composition-source-note{
  display:flex;
  align-items:center;
  gap:7px;
  padding:10px 18px;
  border-top:1px solid #e9edf2;
  background:#fafbfd;
  color:#7b8494;
  font-size:9px;
}

.light-preview .composition-source-note strong{
  margin-left:auto;
  color:#526174;
}

.light-preview .composition-source-dot{
  width:7px;
  height:7px;
  flex:0 0 auto;
  border-radius:50%;
  background:#18b98c;
}

.light-preview .composition-empty,
.light-preview .composition-empty-panel,
.light-preview .composition-loading{
  padding:28px;
  color:#7b8494;
  text-align:center;
  font-size:12px;
}


/* Mobile */

@media(max-width:900px){

  .light-preview .composition-layout{
    grid-template-columns:1fr;
  }

  .light-preview .composition-chart-card{
    border-right:0;
    border-bottom:1px solid #e8ecf1;
  }
}

@media(max-width:760px){

  .light-preview .composition-head{
    align-items:flex-start;
    flex-direction:column;
    padding:17px 15px 14px;
  }

  .light-preview .composition-head h2{
    font-size:22px;
  }

  .light-preview .composition-head-count{
    text-align:left;
  }

  .light-preview .composition-head-count strong{
    font-size:25px;
  }

  .light-preview .composition-intro{
    align-items:flex-start;
    flex-direction:column;
    padding:12px 15px;
  }

  .light-preview .composition-legend{
    white-space:normal;
  }

  .light-preview .composition-chart-card{
    min-height:250px;
    padding:13px 8px 5px;
  }

  .light-preview .composition-chart-summary{
    bottom:23px;
  }

  .light-preview .composition-chart-summary strong{
    font-size:22px;
  }

  .light-preview .composition-party-card{
    padding:14px;
  }

  .light-preview .composition-party-card-head{
    align-items:flex-start;
    flex-direction:column;
  }

  .light-preview .composition-party-candidates{
    grid-template-columns:1fr;
  }

  .light-preview .composition-source-note{
    align-items:flex-start;
    flex-wrap:wrap;
    padding:10px 14px;
  }

  .light-preview .composition-source-note strong{
    width:100%;
    margin-left:14px;
  }
}



/* ==========================================================
   PREVIEW V6 — visão nacional Senado/Câmara
   ========================================================== */

.light-preview .national-legislature-panel{
  margin-top:14px !important;
  margin-bottom:18px !important;
  overflow:hidden !important;
  background:#fff !important;
}


/* Quando a visão nacional estiver ativa,
   o resultado comum de Presidente fica escondido. */

.light-preview.preview-national-legislature
.primary-results{
  display:none !important;
}

.light-preview.preview-national-legislature
#compositionPanel{
  display:none !important;
}


/* Cabeçalho nacional */

.light-preview .national-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:24px;
  padding:22px 22px 17px;
  border-bottom:1px solid #e6ebf1;
}

.light-preview .national-head h2{
  margin:0;
  font-size:28px;
  color:#172033 !important;
  letter-spacing:-.025em;
}

.light-preview .national-head p:not(.eyebrow){
  margin:6px 0 0;
  color:#667085;
  font-size:11px;
}

.light-preview .national-head-count{
  text-align:right;
}

.light-preview .national-head-count strong{
  display:block;
  font-size:30px;
  line-height:1;
  color:#172033;
}

.light-preview .national-head-count strong span{
  margin:0 3px;
  color:#98a2b3;
  font-size:13px;
  font-weight:600;
}

.light-preview .national-head-count small{
  display:block;
  margin-top:5px;
  color:#7b8494;
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.07em;
}


/* Informação geral */

.light-preview .national-coverage-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:15px 22px;
  background:#fafbfd;
  border-bottom:1px solid #e9edf2;
}

.light-preview .national-coverage-bar > div:first-child{
  display:flex;
  flex-direction:column;
  gap:3px;
}

.light-preview .national-coverage-bar strong{
  color:#172033;
  font-size:15px;
}

.light-preview .national-coverage-bar span{
  color:#667085;
  font-size:11px;
}

.light-preview .national-coverage-status{
  text-align:right;
}

.light-preview .national-coverage-status span{
  display:block;
  color:#1467d8;
  font-size:8px;
  font-weight:800;
  letter-spacing:.08em;
}

.light-preview .national-coverage-status strong{
  display:block;
  margin-top:4px;
  font-size:13px;
}


/* UFs */

.light-preview .national-coverage-grid{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  padding:12px 22px;
  background:#fff;
}

.light-preview .national-uf{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  min-width:39px;
  min-height:29px;
  padding:5px 7px;
  border:1px solid #e1e6ed;
  border-radius:7px;
  color:#98a2b3;
  background:#f8fafc;
  font-size:10px;
  font-weight:800;
  text-decoration:none;
}

.light-preview .national-uf.available{
  color:#135fbf;
  border-color:#bad4f2;
  background:#edf5ff;
}

.light-preview .national-uf.available:hover{
  background:#1467d8;
  border-color:#1467d8;
  color:#fff;
}

.light-preview .national-uf small{
  font-size:8px;
  font-weight:700;
  opacity:.75;
}

.light-preview .national-warning{
  padding:8px 22px;
  color:#7b8494;
  background:#fbfcfd;
  border-top:1px solid #edf0f4;
  border-bottom:1px solid #e7ebf1;
  font-size:9px;
}


/* Corpo */

.light-preview .national-layout{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(350px,.95fr);
}

.light-preview .national-chart{
  position:relative;
  min-height:365px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px 22px 58px;
  border-right:1px solid #e7ebf1;
}

.light-preview .national-hemicycle{
  display:block;
  width:100%;
  max-width:600px;
  height:auto;
}

.light-preview .national-seat{
  transition:
    opacity .2s ease,
    transform .2s ease;
  transform-box:fill-box;
  transform-origin:center;
}

.light-preview .national-seat:hover{
  opacity:.82;
  transform:scale(1.4);
}

.light-preview .national-seat.holdover{
  fill:#b9c1cc;
  stroke:#fff;
  stroke-width:1;
}

.light-preview .national-seat.pending{
  fill:#e4e8ee;
  stroke:#fff;
  stroke-width:1;
}

.light-preview .national-seat.defined{
  stroke:#fff;
  stroke-width:1;
}

.light-preview .national-center-count{
  position:absolute;
  left:50%;
  bottom:64px;
  transform:translateX(-50%);
  text-align:center;
}

.light-preview .national-center-count strong{
  display:block;
  color:#172033;
  font-size:30px;
  line-height:1;
}

.light-preview .national-center-count span{
  display:block;
  margin-top:4px;
  color:#7b8494;
  font-size:9px;
}

.light-preview .national-seat-legend{
  position:absolute;
  left:18px;
  right:18px;
  bottom:17px;
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:13px;
  color:#667085;
  font-size:9px;
}

.light-preview .national-seat-legend span{
  display:flex;
  align-items:center;
  gap:5px;
}

.light-preview .national-seat-legend i{
  width:9px;
  height:9px;
  border-radius:50%;
  display:block;
}

.light-preview .national-seat-legend i.holdover{
  background:#b9c1cc;
}

.light-preview .national-seat-legend i.defined{
  background:#2878d0;
}

.light-preview .national-seat-legend i.pending{
  background:#e4e8ee;
  border:1px solid #d5dae2;
}


/* Partidos */

.light-preview .national-parties{
  min-width:0;
  padding:18px;
}

.light-preview .national-parties-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  padding-bottom:12px;
  border-bottom:1px solid #e8ecf1;
}

.light-preview .national-parties-head span{
  display:block;
  color:#1467d8;
  font-size:8px;
  font-weight:850;
  letter-spacing:.08em;
}

.light-preview .national-parties-head strong{
  display:block;
  margin-top:4px;
  color:#172033;
  font-size:15px;
}

.light-preview .national-parties-head small{
  color:#98a2b3;
  font-size:8px;
}

.light-preview .national-party-list{
  max-height:405px;
  overflow:auto;
  scrollbar-width:thin;
  scrollbar-color:#c7d0dc #fff;
}

.light-preview .national-party-row{
  border-bottom:1px solid #edf0f4;
}

.light-preview .national-party-row > summary{
  min-height:48px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:7px 4px;
  cursor:pointer;
  list-style:none;
}

.light-preview .national-party-row > summary::-webkit-details-marker{
  display:none;
}

.light-preview .national-party-row > summary:hover{
  background:#fafbfd;
}

.light-preview .national-party-left{
  display:flex;
  align-items:center;
  gap:9px;
  color:#344054;
  font-size:11px;
}

.light-preview .national-party-row summary > strong{
  color:#172033;
  font-size:11px;
}

.light-preview .national-party-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:23px;
  padding:4px 7px;
  border-radius:6px;
  color:#fff !important;
  background:var(--party);
  font-size:9px;
  font-weight:850;
  white-space:nowrap;
}

.light-preview .national-party-people{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
  padding:3px 4px 12px;
}

.light-preview .national-person{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:9px 10px;
  border:1px solid #e3e8ef;
  border-radius:9px;
}

.light-preview .national-person strong{
  display:block;
  color:#172033;
  font-size:10px;
}

.light-preview .national-person small{
  display:block;
  margin-top:2px;
  color:#98a2b3;
  font-size:8px;
}

.light-preview .national-person > span{
  color:#1467d8;
  font-size:9px;
  font-weight:850;
}


/* Rodapé */

.light-preview .national-footer{
  display:flex;
  align-items:center;
  gap:7px;
  padding:9px 18px;
  border-top:1px solid #e8ecf1;
  background:#fafbfd;
  color:#7b8494;
  font-size:8px;
}

.light-preview .national-footer strong{
  margin-left:auto;
  color:#526174;
}

.light-preview .national-dot{
  width:7px;
  height:7px;
  border-radius:50%;
  background:#18b98c;
}

.light-preview .national-loading,
.light-preview .national-error,
.light-preview .national-empty{
  padding:30px;
  text-align:center;
  color:#7b8494;
  font-size:11px;
}


/* ==========================================================
   SENADO ESTADUAL — duas vagas em cards
   ========================================================== */

.light-preview .senate-state-seats{
  width:100%;
  max-width:550px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}

.light-preview .senate-state-seat{
  position:relative;
  min-height:160px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  padding:18px;
  border:1px solid #e1e6ed;
  border-radius:14px;
  background:#fff;
}

.light-preview .senate-state-seat.defined{
  border-top:4px solid var(--seat-color);
}

.light-preview .senate-state-seat > i{
  width:18px;
  height:18px;
  margin-bottom:13px;
  border-radius:50%;
  background:var(--seat-color,#e4e8ee);
}

.light-preview .senate-state-seat-number{
  position:absolute;
  right:14px;
  top:12px;
  color:#98a2b3;
  font-size:8px;
  font-weight:850;
  letter-spacing:.07em;
}

.light-preview .senate-state-seat strong{
  display:block;
  color:#172033;
  font-size:15px;
}

.light-preview .senate-state-seat small{
  display:block;
  margin-top:4px;
  color:#7b8494;
  font-size:9px;
}

.light-preview .senate-state-seat b{
  display:inline-block;
  margin-top:10px;
  color:var(--seat-color);
  font-size:10px;
}

.light-preview .senate-state-seat em{
  margin-top:7px;
  color:#397257;
  font-size:9px;
  font-style:normal;
}


/* Mobile */

@media(max-width:900px){

  .light-preview .national-layout{
    grid-template-columns:1fr;
  }

  .light-preview .national-chart{
    border-right:0;
    border-bottom:1px solid #e7ebf1;
  }
}

@media(max-width:760px){

  .light-preview .national-head{
    flex-direction:column;
    align-items:flex-start;
    padding:17px 14px 14px;
  }

  .light-preview .national-head h2{
    font-size:23px;
  }

  .light-preview .national-head-count{
    text-align:left;
  }

  .light-preview .national-coverage-bar{
    flex-direction:column;
    align-items:flex-start;
    padding:12px 14px;
  }

  .light-preview .national-coverage-status{
    text-align:left;
  }

  .light-preview .national-coverage-grid{
    padding:10px 14px;
  }

  .light-preview .national-warning{
    padding:8px 14px;
  }

  .light-preview .national-chart{
    min-height:285px;
    padding:8px 5px 65px;
  }

  .light-preview .national-center-count{
    bottom:65px;
  }

  .light-preview .national-parties{
    padding:14px;
  }

  .light-preview .national-parties-head{
    flex-direction:column;
    align-items:flex-start;
  }

  .light-preview .national-party-people{
    grid-template-columns:1fr;
  }

  .light-preview .national-footer{
    flex-wrap:wrap;
    padding:9px 13px;
  }

  .light-preview .national-footer strong{
    width:100%;
    margin-left:14px;
  }

  .light-preview .senate-state-seats{
    grid-template-columns:1fr;
  }
}



/* ==========================================================
   PREVIEW V7 — navegação de retorno da visão nacional
   ========================================================== */

.light-preview .national-head-main{
  min-width:0;
}

/* Botão Voltar */
.light-preview .national-back-button{
  appearance:none;
  display:inline-flex;
  align-items:center;
  gap:7px;

  min-height:34px;
  margin:0 0 15px;
  padding:7px 11px;

  border:1px solid #d7dee8;
  border-radius:8px;

  background:#ffffff;
  color:#46566d;

  font:inherit;
  font-size:10px;
  font-weight:750;

  cursor:pointer;

  transition:
    background .15s ease,
    border-color .15s ease,
    color .15s ease,
    transform .15s ease;
}

.light-preview .national-back-button span{
  font-size:16px;
  line-height:1;
}

.light-preview .national-back-button:hover{
  background:#f2f6fb;
  border-color:#b9c8dc;
  color:#1467d8;
  transform:translateX(-2px);
}

.light-preview .national-back-button:focus-visible{
  outline:2px solid #79aef0;
  outline-offset:2px;
}


/* No mobile fica fácil de tocar */
@media(max-width:760px){

  .light-preview .national-back-button{
    min-height:38px;
    margin-bottom:13px;
    padding:8px 12px;
    font-size:11px;
  }
}



/* ==========================================================
   PREVIEW V8 — retorno Estado → visão Brasil
   ========================================================== */

.light-preview .state-national-return{
  display:flex;
  align-items:center;
  padding:14px 20px 0;
  background:#ffffff;
}

.light-preview .state-national-back-button{
  appearance:none;

  display:inline-flex;
  align-items:center;
  gap:7px;

  min-height:34px;
  padding:7px 11px;

  border:1px solid #d7dee8;
  border-radius:8px;

  background:#ffffff;
  color:#46566d;

  font-size:10px;
  font-weight:750;
  line-height:1;

  text-decoration:none;

  transition:
    background .15s ease,
    border-color .15s ease,
    color .15s ease,
    transform .15s ease;
}

.light-preview .state-national-back-button span{
  font-size:16px;
  line-height:1;
}

.light-preview .state-national-back-button:hover{
  background:#f2f6fb;
  border-color:#b9c8dc;
  color:#1467d8;
  transform:translateX(-2px);
}

.light-preview .state-national-back-button:focus-visible{
  outline:2px solid #79aef0;
  outline-offset:2px;
}


/* Ajusta espaço quando o botão antecede o cabeçalho */
.light-preview .state-national-return + .composition-head{
  padding-top:15px !important;
}


/* Mobile */
@media(max-width:760px){

  .light-preview .state-national-return{
    padding:12px 14px 0;
  }

  .light-preview .state-national-back-button{
    min-height:38px;
    padding:8px 12px;
    font-size:11px;
  }
}



/* ==========================================================
   PREVIEW V9 — Senado nacional com renovação visual separada
   ========================================================== */

.light-preview .national-senate-chart{
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
}


/* Legenda estrutural acima do próprio hemiciclo */

.light-preview .national-senate-sections{
  width:100%;
  max-width:560px;

  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;

  gap:8px;

  margin:0 0 5px;
}

.light-preview .national-senate-sections span{
  display:inline-flex;
  align-items:center;
  gap:6px;

  min-height:27px;
  padding:5px 9px;

  border:1px solid #e1e6ed;
  border-radius:999px;

  color:#667085;
  background:#ffffff;

  font-size:9px;
  font-weight:650;
}

.light-preview .national-senate-sections i{
  display:block;

  width:9px;
  height:9px;

  border-radius:50%;
}


/* 27 mandatos existentes */

.light-preview .senate-section-holdover i{
  background:#aeb9c7;
}


/* 54 cadeiras submetidas à eleição */

.light-preview .senate-section-election i{
  background:#e3e8ef;
  border:1px solid #d1d8e2;
}


/* Arco externo ganha contraste ligeiramente maior */

.light-preview .national-seat.senate-holdover-seat{
  fill:#adb8c6 !important;
  stroke:#ffffff !important;
  stroke-width:1.1 !important;
}


/* Cadeiras de 2026 ainda não definidas */

.light-preview .national-seat.senate-election-seat.pending{
  fill:#e5eaf0 !important;
  stroke:#ffffff !important;
  stroke-width:1.1 !important;
}


/*
 * Uma pequena separação visual entre o arco externo
 * e os quatro arcos eleitorais.
 */

.light-preview .national-senate-hemicycle{
  margin-top:-4px;
}


/*
 * A legenda inferior continua explicando
 * situação da apuração.
 * Como a separação estrutural já aparece acima,
 * deixamos tudo mais discreto.
 */

.light-preview .national-chart:has(.national-senate-chart)
.national-seat-legend{
  font-size:8px;
  opacity:.92;
}


/* Mobile */

@media(max-width:760px){

  .light-preview .national-senate-sections{
    justify-content:flex-start;
    padding:0 8px;
  }

  .light-preview .national-senate-sections span{
    font-size:8px;
  }

  .light-preview .national-senate-hemicycle{
    margin-top:0;
  }
}



/* ==========================================================
   PREVIEW V10 — 27 mandatos vigentes do Senado
   ========================================================== */


/* ----------------------------------------------------------
   ARCO EXTERNO POR PARTIDO
   ---------------------------------------------------------- */

.light-preview .national-seat.senate-holdover-seat{
  fill:var(--holdover-color,#adb8c6) !important;
  stroke:#ffffff !important;
  stroke-width:1.15 !important;
}


/* Legenda estrutural passa a indicar várias cores */

.light-preview .senate-section-holdover i,
.light-preview .national-seat-legend i.holdover{
  background:
    linear-gradient(
      135deg,
      #26349a 0 18%,
      #3478a3 18% 34%,
      #d71920 34% 48%,
      #b5a300 48% 62%,
      #3996c9 62% 76%,
      #2e9663 76% 88%,
      #d95718 88% 100%
    ) !important;

  border:0 !important;
}


/* ==========================================================
   PAINEL DOS 27 MANDATOS
   ========================================================== */

.light-preview .senate-holdovers-panel{
  border-top:1px solid #e5eaf0;
  background:#ffffff;
}


/* Cabeçalho */

.light-preview .senate-holdovers-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;

  padding:22px;

  background:#ffffff;
  border-bottom:1px solid #e8ecf1;
}

.light-preview .senate-holdovers-head h3{
  margin:0;

  color:#172033;

  font-size:21px;
  line-height:1.2;
  letter-spacing:-.02em;
}

.light-preview .senate-holdovers-head > div:first-child > p:last-child{
  max-width:700px;

  margin:7px 0 0;

  color:#667085;

  font-size:10px;
  line-height:1.5;
}

.light-preview .senate-holdovers-count{
  flex:0 0 auto;
  text-align:right;
}

.light-preview .senate-holdovers-count strong{
  display:block;

  color:#172033;

  font-size:31px;
  line-height:1;
}

.light-preview .senate-holdovers-count small{
  display:block;

  margin-top:5px;

  color:#7b8494;

  font-size:9px;
  letter-spacing:.07em;
  text-transform:uppercase;
}


/* Corpo */

.light-preview .senate-holdovers-body{
  padding:18px 22px 20px;
}

.light-preview .senate-holdovers-intro{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:20px;

  padding-bottom:12px;

  border-bottom:1px solid #e8ecf1;
}

.light-preview .senate-holdovers-intro strong{
  color:#172033;
  font-size:14px;
}

.light-preview .senate-holdovers-intro span{
  color:#98a2b3;
  font-size:9px;
}


/* Lista */

.light-preview .senate-holdovers-list{
  max-width:100%;
}

.light-preview .senate-holdover-party-row{
  border-bottom:1px solid #edf0f4;
}

.light-preview .senate-holdover-party-row:last-child{
  border-bottom:0;
}

.light-preview .senate-holdover-party-row > summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;

  min-height:51px;
  padding:8px 3px;

  list-style:none;
  cursor:pointer;
}

.light-preview .senate-holdover-party-row > summary::-webkit-details-marker{
  display:none;
}

.light-preview .senate-holdover-party-row > summary:hover{
  background:#fafbfd;
}

.light-preview .senate-holdover-summary-left{
  display:flex;
  align-items:center;
  gap:10px;

  color:#344054;

  font-size:12px;
}

.light-preview .senate-holdover-party-row > summary > strong{
  color:#172033;
  font-size:12px;
}


/* Badge partidário */

.light-preview .senate-holdover-party{
  display:inline-flex;
  align-items:center;
  justify-content:center;

  min-height:24px;
  padding:4px 7px;

  border-radius:6px;

  background:var(--party);
  color:#ffffff !important;

  font-size:9px;
  font-weight:850;
  line-height:1;

  white-space:nowrap;
}


/* Senadores */

.light-preview .senate-holdover-people{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;

  padding:4px 3px 15px;
}

.light-preview .senate-holdover-person{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;

  min-width:0;
  padding:11px 12px;

  border:1px solid #e2e7ee;
  border-radius:10px;

  background:#ffffff;
}

.light-preview .senate-holdover-person-main{
  min-width:0;
}

.light-preview .senate-holdover-person-main strong{
  display:block;

  overflow:hidden;

  color:#172033;

  font-size:11px;

  text-overflow:ellipsis;
  white-space:nowrap;
}

.light-preview .senate-holdover-person-main small{
  display:block;

  margin-top:4px;

  color:#98a2b3;

  font-size:8px;
}

.light-preview .senate-holdover-person-side{
  flex:0 0 auto;

  display:flex;
  align-items:center;
  gap:6px;
}

.light-preview .senate-holdover-uf{
  display:inline-flex;
  align-items:center;
  justify-content:center;

  min-width:28px;

  color:#344054;

  font-size:9px;
  font-weight:850;
}


/* Fonte */

.light-preview .senate-holdovers-source{
  display:flex;
  align-items:center;
  gap:7px;

  padding:9px 22px;

  background:#fafbfd;
  border-top:1px solid #e8ecf1;
}

.light-preview .senate-holdovers-source > span{
  width:7px;
  height:7px;

  flex:0 0 auto;

  border-radius:50%;

  background:#1467d8;
}

.light-preview .senate-holdovers-source p{
  margin:0;

  color:#7b8494;

  font-size:8px;
  line-height:1.4;
}


/* ==========================================================
   MOBILE
   ========================================================== */

@media(max-width:760px){

  .light-preview .senate-holdovers-head{
    align-items:flex-start;
    flex-direction:column;

    padding:16px 14px 13px;
  }

  .light-preview .senate-holdovers-head h3{
    font-size:19px;
  }

  .light-preview .senate-holdovers-count{
    text-align:left;
  }

  .light-preview .senate-holdovers-body{
    padding:14px;
  }

  .light-preview .senate-holdovers-intro{
    align-items:flex-start;
    flex-direction:column;

    gap:5px;
  }

  .light-preview .senate-holdover-people{
    grid-template-columns:1fr;
  }

  .light-preview .senate-holdover-person{
    padding:10px;
  }

  .light-preview .senate-holdovers-source{
    padding:9px 14px;
  }
}



/* ==========================================================
   PREVIEW V11 — topo nacional + compactação mobile
   ========================================================== */


/* Status agregado */

.light-preview.preview-national-status
.status-card{
  border-color:#cfe3db !important;
}

.light-preview.preview-national-status
.status-card .status-dot{
  background:#18c99b !important;
}

.light-preview.preview-national-status
.status-card .status-kicker{
  color:#1467d8 !important;
}


/* ==========================================================
   MOBILE — Senado/Câmara nacional
   ========================================================== */

@media(max-width:760px){

  /*
   * O título "Acompanhe a apuração" já cumpriu seu papel
   * na entrada do site. Na visão legislativa nacional,
   * o próprio painel identifica Senado/Câmara.
   */
  .light-preview.preview-national-legislature
  .hero-dashboard{
    display:block !important;

    min-height:0 !important;

    margin:8px 0 10px !important;
    padding:0 !important;
  }

  .light-preview.preview-national-legislature
  .hero-copy{
    display:none !important;
  }

  /*
   * Status nacional vira o único elemento do hero.
   */
  .light-preview.preview-national-legislature
  .status-card{
    width:100% !important;
    max-width:none !important;
    min-height:0 !important;

    margin:0 !important;
    padding:12px 14px !important;

    border-radius:12px !important;

    box-shadow:none !important;
  }

  .light-preview.preview-national-legislature
  .status-card-copy{
    min-width:0;
  }

  .light-preview.preview-national-legislature
  .status-kicker{
    font-size:8px !important;
  }

  .light-preview.preview-national-legislature
  #statusLabel{
    margin-top:2px;

    font-size:14px !important;
    line-height:1.2 !important;
  }

  .light-preview.preview-national-legislature
  #lastUpdate{
    margin-top:3px;

    font-size:9px !important;
    line-height:1.35 !important;
  }


  /* Breadcrumb compacto */

  .light-preview.preview-national-legislature
  .geo-breadcrumb{
    margin:8px 0 !important;

    font-size:10px !important;
  }

  .light-preview.preview-national-legislature
  .breadcrumb-hint{
    display:none !important;
  }


  /* Controles */

  .light-preview.preview-national-legislature
  .controls{
    padding:11px !important;
    border-radius:12px !important;
  }

  /*
   * O nome da seção é dispensável aqui:
   * os próprios quatro campos já explicam a função.
   */
  .light-preview.preview-national-legislature
  .controls-heading > div:first-child{
    display:none !important;
  }

  .light-preview.preview-national-legislature
  .controls-heading{
    display:block !important;

    margin:0 0 9px !important;
  }

  .light-preview.preview-national-legislature
  .control-actions{
    width:100% !important;

    display:grid !important;
    grid-template-columns:1fr !important;

    gap:6px !important;
  }

  .light-preview.preview-national-legislature
  .source-note{
    width:100% !important;

    padding:7px 9px !important;

    font-size:8px !important;
    line-height:1.35 !important;

    text-align:left !important;
  }

  .light-preview.preview-national-legislature
  .share-view-button{
    width:100% !important;

    min-height:32px !important;
    padding:6px 9px !important;

    font-size:9px !important;
  }

  .light-preview.preview-national-legislature
  .filter-grid{
    gap:7px !important;
  }

  .light-preview.preview-national-legislature
  .filter-grid label > span{
    margin-bottom:4px !important;

    font-size:8px !important;
  }

  .light-preview.preview-national-legislature
  .controls select,
  .light-preview.preview-national-legislature
  .controls input{
    min-height:37px !important;

    padding:7px 10px !important;

    font-size:11px !important;
  }

  .light-preview.preview-national-legislature
  #liveHealth{
    min-height:28px !important;

    margin-top:8px !important;
    padding:5px 8px !important;

    font-size:8px !important;
  }


  /* Painel nacional aproxima-se dos filtros */

  .light-preview.preview-national-legislature
  .national-legislature-panel{
    margin-top:10px !important;
  }
}



/* ==========================================================
   PREVIEW V12 — Evolução da apuração no mobile
   ========================================================== */

@media(max-width:760px){

  /* --------------------------------------------------------
     PAINEL
     -------------------------------------------------------- */

  .light-preview .history-panel{
    overflow:hidden !important;
  }

  .light-preview .history-panel[open]
  .disclosure-summary{
    border-bottom:1px solid #e3e8ef !important;
  }


  /* --------------------------------------------------------
     CONTEÚDO: SEM COLUNAS NO CELULAR
     -------------------------------------------------------- */

  .light-preview .history-content{
    display:grid !important;

    grid-template-columns:minmax(0,1fr) !important;
    grid-template-rows:auto auto !important;

    width:100% !important;
    min-width:0 !important;

    gap:12px !important;

    padding:14px !important;

    background:#ffffff !important;
  }


  /* --------------------------------------------------------
     GRÁFICO
     -------------------------------------------------------- */

  .light-preview .chart-wrap{
    display:block !important;

    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;

    margin:0 !important;
    padding:8px 4px 4px !important;

    overflow:hidden !important;

    border:1px solid #e0e6ed !important;
    border-radius:12px !important;

    background:#ffffff !important;
  }

  .light-preview #historyChart{
    display:block !important;

    width:100% !important;
    max-width:100% !important;
    height:auto !important;

    min-width:0 !important;

    margin:0 auto !important;
  }

  /*
   * Em 390 px os textos do gráfico precisam permanecer
   * pequenos para evitar sobreposição.
   */
  .light-preview #historyChart .chart-label{
    font-size:10px !important;
  }

  .light-preview #historyChart .chart-value{
    font-size:11px !important;
    stroke-width:2px !important;
  }

  .light-preview #historyChart .chart-line{
    stroke-width:3px !important;
  }

  .light-preview #historyChart .chart-dot{
    stroke-width:2px !important;
  }


  /* --------------------------------------------------------
     SNAPSHOTS: CARROSSEL HORIZONTAL ABAIXO DO GRÁFICO
     -------------------------------------------------------- */

  .light-preview .history-timeline{
    display:flex !important;

    flex-direction:row !important;
    align-items:stretch !important;

    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;

    height:auto !important;
    min-height:0 !important;
    max-height:none !important;

    gap:9px !important;

    margin:0 !important;
    padding:2px 2px 9px !important;

    overflow-x:auto !important;
    overflow-y:hidden !important;

    border-left:0 !important;
    border-top:0 !important;

    background:#ffffff !important;

    scroll-snap-type:x mandatory;
    scroll-padding-left:2px;

    -webkit-overflow-scrolling:touch;

    overscroll-behavior-inline:contain;
  }


  /* Cada snapshot */

  .light-preview .history-item{
    position:relative !important;

    flex:0 0 148px !important;

    width:148px !important;
    min-width:148px !important;
    max-width:148px !important;

    min-height:105px !important;

    margin:0 !important;
    padding:12px !important;

    display:flex !important;
    flex-direction:column !important;
    justify-content:flex-start !important;
    align-items:flex-start !important;

    border:1px solid #dfe5ed !important;
    border-radius:11px !important;

    background:#ffffff !important;

    scroll-snap-align:start;
  }

  .light-preview .history-item.latest{
    background:#f4f9ff !important;
    border-color:#b9d6f5 !important;
  }


  /* Remove a linha/ponto vertical herdados do desktop */

  .light-preview .history-item::before,
  .light-preview .history-item::after{
    display:none !important;
    content:none !important;
  }


  /* Tipografia dos cards */

  .light-preview .history-item span{
    display:block !important;

    color:#667085 !important;

    font-size:10px !important;
    line-height:1.2 !important;
  }

  .light-preview .history-item strong{
    display:block !important;

    margin-top:7px !important;

    color:#172033 !important;

    font-size:16px !important;
    line-height:1.05 !important;
  }

  .light-preview .history-item small{
    display:block !important;

    margin-top:8px !important;

    color:#7b8494 !important;

    font-size:9px !important;
    line-height:1.35 !important;
  }


  /* Scrollbar discreta */

  .light-preview .history-timeline{
    scrollbar-width:thin;
    scrollbar-color:#cbd5e1 #ffffff;
  }

  .light-preview .history-timeline::-webkit-scrollbar{
    height:5px !important;
  }

  .light-preview .history-timeline::-webkit-scrollbar-track{
    background:#ffffff !important;
  }

  .light-preview .history-timeline::-webkit-scrollbar-thumb{
    background:#cbd5e1 !important;
    border-radius:999px !important;
  }


  /* --------------------------------------------------------
     SUMMARY DO PAINEL
     -------------------------------------------------------- */

  .light-preview .history-panel
  .disclosure-summary{
    gap:10px !important;

    padding:14px !important;
  }

  .light-preview .history-panel
  .disclosure-summary h2{
    font-size:17px !important;
    line-height:1.2 !important;
  }

  .light-preview .history-panel
  .disclosure-summary .panel-description{
    display:none !important;
  }

  .light-preview .history-count{
    white-space:nowrap !important;

    padding:6px 9px !important;

    font-size:10px !important;
  }

}



/* ==========================================================
   PREVIEW V13 — compactação final do gráfico mobile
   ========================================================== */

@media(max-width:760px){

  .light-preview .history-content .chart-wrap{
    min-height:0 !important;
    height:auto !important;

    padding:10px 5px 8px !important;
  }

  .light-preview .history-content #historyChart{
    width:100% !important;
    height:auto !important;

    min-height:0 !important;
    max-height:none !important;

    aspect-ratio:900 / 250;
  }

}

