/* Eleições Collmeia — moldura no Design System v3; a ARENA tem paleta
   própria de fliperama (como a cena do 3D Brain): os hex da cena não são
   tokens e não mudam com o tema. */

body.clm { margin: 0; background: var(--clm-bg); color: var(--clm-text); font-family: var(--font-body); }

/* Topo comum: NUNCA rola na web (regra do dono). Quando as abas não cabem,
   elas somem e entra o menu hambúrguer. */
.topo { flex-wrap: nowrap; gap: var(--space-4); }
.topo .clm-topbar__lead { min-width: 0; }
.abas { margin-left: var(--space-3); }
.menu-btn { display: none; width: 44px; height: 44px; align-items: center; justify-content: center; border: 0; border-radius: var(--radius-md); background: transparent; color: var(--clm-text); cursor: pointer; }
.menu-btn:hover { background: var(--clm-fill-hover); }
.menu-btn:focus-visible { outline: 2px solid var(--clm-focus); outline-offset: 2px; }
.menu-btn__fechar { display: none; }
.menu-btn[aria-expanded="true"] .menu-btn__abrir { display: none; }
.menu-btn[aria-expanded="true"] .menu-btn__fechar { display: block; }
.menu { display: flex; flex-direction: column; gap: 2px; padding: var(--space-3) var(--space-4) var(--space-5); background: var(--clm-surface); border-bottom: 1px solid var(--clm-line); }
.menu[hidden] { display: none; }
.menu__item { display: flex; justify-content: space-between; align-items: center; gap: var(--space-3); min-height: 56px; padding: 0 var(--space-4); border-radius: var(--radius-md); color: var(--clm-text); text-decoration: none; }
.menu__item:hover { background: var(--clm-fill-hover); }
.menu__item[aria-current="page"] { background: var(--clm-gold-tint); }
.menu__item svg { color: var(--clm-text-subtle); flex-shrink: 0; }
.menu__texto { display: flex; flex-direction: column; gap: 2px; }
.menu__rotulo { font-size: 16px; font-weight: 600; }
.menu__sit { font-size: 12.5px; color: var(--clm-text-subtle); }
.menu__fonte { margin: var(--space-3) var(--space-4) 0; }
@media (max-width: 860px) { .nav-larga, .topo .clm-topbar__sep { display: none; } .menu-btn { display: inline-flex; } }
@media (min-width: 861px) { .menu { display: none; } }
@media (max-width: 640px) { .topo { padding-inline: 16px 8px; } .topo__conferido { display: none; } }
.marca { display: flex; align-items: center; gap: 10px; color: var(--clm-text); text-decoration: none; font-family: var(--font-display); font-weight: 500; font-size: 15px; }
.topo__estado { display: flex; align-items: center; gap: var(--space-4); flex-wrap: wrap; }

.pagina { max-width: 1180px; margin: 0 auto; padding: var(--space-6) var(--space-5) var(--space-7); display: flex; flex-direction: column; gap: var(--space-6); }

.resumo { margin: 0; font-size: 15px; line-height: 1.6; color: var(--clm-text-muted); max-width: var(--size-column); }
.resumo strong { color: var(--clm-text); font-weight: 600; font-variant-numeric: tabular-nums; }

.outros { display: flex; flex-direction: column; gap: var(--space-3); border-top: 1px solid var(--clm-line); padding-top: var(--space-5); }
.outros__titulo { margin: 0; font-family: var(--font-display); font-weight: 500; font-size: 20px; }
.outros__lista { overflow-x: auto; }
.outros__linha { display: grid; grid-template-columns: 56px minmax(150px, 1fr) minmax(100px, 2fr) 80px; gap: var(--space-4); align-items: center; min-width: 480px; }
.outros__numero { font-family: var(--font-mono); font-size: 13px; color: var(--clm-text-subtle); }
.outros__nome { font-size: 14.5px; }
.outros__partido { color: var(--clm-text-subtle); font-size: 12.5px; margin-left: 6px; }
.outros__trilho { display: block; height: 8px; background: var(--clm-surface-2); border-radius: var(--radius-pill); overflow: hidden; }
.outros__barra { display: block; height: 100%; width: 0; background: var(--clm-chart-other); transition: width 420ms cubic-bezier(0.22, 1, 0.36, 1); }
.outros__pct { text-align: right; font-size: 14px; color: var(--clm-text-muted); font-variant-numeric: tabular-nums; }

.rodape { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-4); border-top: 1px solid var(--clm-line); padding-top: var(--space-5); font-size: 13px; color: var(--clm-text-subtle); line-height: 1.6; }
.rodape p { margin: 0; max-width: 640px; }


/* ---------- Arena: paleta de fliperama (SF2, palco de dia) ---------- */
.arena {
  --contorno: -0.2cqw 0 0 #000, 0.2cqw 0 0 #000, 0 -0.2cqw 0 #000, 0 0.2cqw 0 #000, 0.3cqw 0.3cqw 0 #000;
  position: relative; width: 100%; aspect-ratio: 16 / 9; overflow: hidden;
  container-type: inline-size; border-radius: var(--radius-lg);
  box-shadow: 0 0 0 1px var(--clm-gold-line);
  background: #3f82d4; color: #ffffff; font-family: 'Press Start 2P', monospace;
}
.arena__cena { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }

.hud { position: absolute; left: 3cqw; right: 3cqw; top: 1.8cqw; display: flex; flex-direction: column; gap: 0.9cqw; text-shadow: var(--contorno); }
.hud__placar { display: flex; justify-content: space-between; align-items: baseline; font-size: clamp(8px, 1.6cqw, 19px); color: #f8f8f8; }
.hud__score { color: #f8c040; }
.hud__cargo { font-size: clamp(7px, 1.2cqw, 14px); color: #f8f8f8; }
.hud__barras { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; }
.hud__barra { height: 2cqw; position: relative; display: flex; background: #c80000; border: 0.25cqw solid #f8f8f8; box-shadow: 0 0 0 0.25cqw #000; }
.hud__barra--p1 { justify-content: flex-end; }
.hud__vida { width: 0; height: 100%; background: #f8e000; box-shadow: inset 0 -0.45cqw 0 #d8a800, inset 0 0.35cqw 0 #fff478; transition: width 420ms steps(12, end); }
.hud__meio { position: absolute; left: 50%; top: -0.6cqw; bottom: -0.6cqw; width: 0.3cqw; margin-left: -0.15cqw; background: #f8f8f8; box-shadow: 0 0 0 0.15cqw #000; }
.hud__ko { position: relative; z-index: 1; margin: 0 -0.4cqw; font-size: clamp(10px, 2cqw, 24px); color: #d81818; background: #f8f8f8; border: 0.3cqw solid #000; padding: 0.35cqw 0.5cqw; text-shadow: 0.15cqw 0.15cqw 0 #3050c0; }
.hud__baixo { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 1.4cqw; align-items: start; }
.hud__lado { display: flex; justify-content: space-between; align-items: flex-start; gap: 1cqw; min-width: 0; }
.hud__quem { display: flex; align-items: flex-start; gap: 0.8cqw; min-width: 0; }
.hud__id { display: flex; flex-direction: column; gap: 0.6cqw; min-width: 0; }
.hud__lado--p2 .hud__id { align-items: flex-end; text-align: right; }
.hud__retrato { width: 4.2cqw; height: 4.2cqw; flex-shrink: 0; background: #1c2a4a; border: 0.25cqw solid #f8f8f8; box-shadow: 0 0 0 0.2cqw #000; overflow: hidden; }
.hud__retrato canvas, .hud__retrato svg { width: 100%; height: 100%; display: block; image-rendering: pixelated; }
.hud__nome { font-size: clamp(9px, 1.5cqw, 18px); line-height: 1.3; color: #f8c040; overflow-wrap: anywhere; }
.hud__votos { font-size: clamp(6px, 0.9cqw, 11px); color: #f8f8f8; line-height: 1.5; }
.hud__pct { font-size: clamp(12px, 2.3cqw, 28px); color: #f8f8f8; white-space: nowrap; }
.hud__centro { display: flex; flex-direction: column; align-items: center; gap: 0.5cqw; margin-top: -0.4cqw; }
.hud__relogio { font-size: clamp(18px, 4.4cqw, 52px); line-height: 1; color: #f89820; white-space: nowrap; }
.hud__legenda { font-size: clamp(6px, 0.8cqw, 10px); color: #f8f8f8; white-space: nowrap; }

.lutador { position: absolute; bottom: 5cqw; width: 15.6cqw; height: 26cqw; transition: transform 120ms steps(2, end); }
.lutador--p1 { left: 20cqw; }
.lutador--p2 { right: 20cqw; }
.lutador__corpo { width: 100%; height: 100%; animation: arena-respira 0.9s steps(2, end) infinite; filter: drop-shadow(0.25cqw 0 0 #000) drop-shadow(-0.25cqw 0 0 #000) drop-shadow(0 0.25cqw 0 #000) drop-shadow(0 -0.25cqw 0 #000); }
.lutador--p2 .lutador__corpo { animation-delay: 0.45s; }
.lutador__corpo svg { width: 100%; height: 100%; display: block; }
.lutador--p2 .lutador__corpo svg { transform: scaleX(-1); }
.lutador__sombra { position: absolute; left: 0; right: 0; bottom: -1.2cqw; height: 2cqw; border-radius: 50%; background: rgba(60, 35, 10, 0.55); }
.lutador__ponto { position: absolute; left: -5cqw; right: -5cqw; top: -3.4cqw; text-align: center; font-size: clamp(9px, 1.5cqw, 18px); color: #f8e000; text-shadow: var(--contorno); visibility: hidden; }

.hadouken { position: absolute; left: 34cqw; bottom: 22cqw; width: 8cqw; height: 6cqw; visibility: hidden; }
.hadouken svg { width: 100%; height: 100%; display: block; }
.arena[data-golpe="p1"] .hadouken { visibility: visible; animation: arena-hadouken 0.55s steps(8, end) both; }
.arena[data-golpe="p2"] .hadouken { visibility: visible; left: auto; right: 34cqw; transform: scaleX(-1); animation: arena-hadouken-volta 0.55s steps(8, end) both; }
.arena[data-golpe="p1"] .lutador--p1 { transform: translateX(2cqw); }
.arena[data-golpe="p2"] .lutador--p2 { transform: translateX(-2cqw); }
.arena[data-golpe="p1"] .lutador--p2 .lutador__corpo,
.arena[data-golpe="p2"] .lutador--p1 .lutador__corpo { animation: arena-apanha 0.9s steps(1, end) both; }
.arena[data-golpe="p1"] .lutador--p1 .lutador__ponto,
.arena[data-golpe="p2"] .lutador--p2 .lutador__ponto { visibility: visible; animation: arena-sobe 0.9s steps(9, end) both; }

.faixa { position: absolute; left: 0; right: 0; top: 29%; display: flex; flex-direction: column; align-items: center; gap: 1.6cqw; text-align: center; padding: 0 4cqw; text-shadow: var(--contorno); }
.faixa[hidden] { display: none; }
.faixa__titulo { font-size: clamp(26px, 6.4cqw, 76px); color: #f8e000; line-height: 1; text-shadow: -0.4cqw 0 0 #000, 0.4cqw 0 0 #000, 0 -0.4cqw 0 #000, 0 0.4cqw 0 #000, 0.6cqw 0.6cqw 0 #c80000; }
.faixa__sub { font-size: clamp(9px, 1.3cqw, 15px); line-height: 1.7; max-width: 70cqw; }
.arena__rodape { position: absolute; left: 0; right: 0; bottom: 1.6cqw; text-align: center; font-size: clamp(7px, 1cqw, 12px); color: #f8f8f8; text-shadow: var(--contorno); }

@keyframes arena-respira { 50% { transform: translateY(-0.4cqw); } }
@keyframes arena-sobe { from { transform: translateY(0); } to { transform: translateY(-3cqw); } }
@keyframes arena-hadouken { from { transform: translateX(0); } to { transform: translateX(22cqw); } }
@keyframes arena-hadouken-volta { from { transform: scaleX(-1) translateX(0); } to { transform: scaleX(-1) translateX(22cqw); } }
@keyframes arena-apanha { 0%, 55% { transform: none; } 60% { transform: translateX(-1cqw); filter: brightness(2.2); } 80% { transform: none; filter: none; } }

/* Celular: a arena fica em pé, o HUD empilha e os lutadores crescem */
@media (max-width: 640px) {
  .pagina { padding: var(--space-4) 16px var(--space-6); gap: var(--space-5); }
  .arena { aspect-ratio: 3 / 4; border-radius: var(--radius-md); }
}
@container (max-width: 640px) {
  .hud { left: 12px; right: 12px; top: 12px; gap: 10px; }
  .hud__barra { height: 14px; border-width: 2px; box-shadow: 0 0 0 2px #000; }
  .hud__meio { top: -4px; bottom: -4px; width: 2px; }
  .hud__ko { border-width: 2px; padding: 3px 4px; }
  .hud__baixo { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; }
  .hud__centro { grid-row: 2; grid-column: 1 / -1; flex-direction: row; justify-content: center; gap: 8px; margin: 0; }
  .hud__lado { flex-direction: column; }
  .hud__lado--p2 { align-items: flex-end; }
  .hud__lado--p2 .hud__pct { order: 2; }
  .hud__retrato { width: 30px; height: 30px; border-width: 2px; }
  .hud__votos { display: none; }
  .lutador { width: 30cqw; height: 50cqw; bottom: 9cqw; }
  .lutador--p1 { left: 6cqw; }
  .lutador--p2 { right: 6cqw; }
  .hadouken { left: 34cqw; bottom: 38cqw; width: 14cqw; height: 10.5cqw; }
  .arena[data-golpe="p2"] .hadouken { right: 34cqw; }
  .faixa { top: 34%; }
  .faixa__sub { max-width: none; }
}

@media (prefers-reduced-motion: reduce) {
  .lutador, .hud__vida, .outros__barra { transition: none; }
  .lutador__corpo, .hadouken, .lutador__ponto { animation: none !important; }
}

/* ---------- Governadores e senadores (moldura v3, sem fliperama) ---------- */
.txt-ok { color: var(--clm-ok); }
.txt-ouro { color: var(--clm-gold-light); }

.estados { max-width: 1240px; margin: 0 auto; padding: var(--space-6) var(--space-5) var(--space-6); display: flex; flex-wrap: wrap; gap: var(--space-7); align-items: flex-start; }
.estados__mapa { flex: 999 1 560px; min-width: 0; display: flex; flex-direction: column; gap: var(--space-5); }
.estados__cabeca { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--space-3); }
.estados__titulo { margin: 0; font-family: var(--font-display); font-weight: 500; font-size: 22px; }
.estados__explica { margin: 0; font-size: 14px; line-height: 1.6; color: var(--clm-text-muted); max-width: 560px; }

.favo { position: relative; width: 100%; max-width: 570px; aspect-ratio: 570 / 550; margin: 0 auto; container-type: inline-size; }
.favo__uf { position: absolute; width: 13.333%; height: 16%; padding: 0; border: 0; background: transparent; cursor: pointer; font-family: var(--font-body); color: var(--clm-text); }
.favo__uf::before { content: ""; position: absolute; inset: 0; clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%); background: var(--clm-line-strong); transition: background 160ms cubic-bezier(0.22, 1, 0.36, 1); }
.favo__uf:hover::before { background: var(--clm-gold-dim); }
.favo__uf[aria-pressed="true"]::before { background: var(--clm-gold); }
.favo__uf:focus-visible { outline: none; }
.favo__uf:focus-visible::before { background: var(--clm-focus); }
.favo__miolo {
  --mel: 0%;
  position: absolute; inset: 2px; clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
  /* corte seco: o mel é o % apurado, não enfeite */
  background: linear-gradient(to top, var(--clm-gold-tint) var(--mel), transparent var(--mel)), var(--clm-surface);
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; text-align: center;
}
.favo__sigla { font-size: clamp(10px, 2.3cqw, 13px); font-weight: 700; }
.favo__pct { font-size: clamp(9px, 2.1cqw, 12px); color: var(--clm-text-muted); font-variant-numeric: tabular-nums; }
.favo__estado { font-size: clamp(8px, 1.85cqw, 10.5px); font-weight: 600; color: var(--clm-text-subtle); white-space: nowrap; }
.favo__estado.txt-ok { color: var(--clm-ok); }
.favo__estado.txt-ouro { color: var(--clm-gold-light); }

.legenda { display: flex; flex-wrap: wrap; gap: var(--space-5); font-size: 12.5px; color: var(--clm-text-subtle); }
.legenda strong { font-weight: 600; }
.legenda__mel { display: inline-flex; align-items: center; gap: 8px; }
.legenda__amostra { width: 14px; height: 14px; background: var(--clm-gold-tint); border: 1px solid var(--clm-gold-line); }

.painel { flex: 1 1 380px; min-width: 0; max-width: 480px; display: flex; flex-direction: column; gap: var(--space-5); border-left: 1px solid var(--clm-line); padding-left: var(--space-6); scroll-margin-top: var(--space-4); }
.painel__topo { display: flex; flex-direction: column; gap: 6px; }
.painel__uf { margin: 0; font-family: var(--font-display); font-weight: 500; font-size: 26px; }
.disputa { display: flex; flex-direction: column; gap: var(--space-3); }
.disputa + .disputa { border-top: 1px solid var(--clm-line); padding-top: var(--space-5); }
.disputa__cabeca { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px var(--space-3); }
.disputa__titulo { margin: 0; font-size: 15px; font-weight: 700; white-space: nowrap; }
.disputa__vagas { font-weight: 500; color: var(--clm-text-subtle); font-size: 13px; }
.disputa__estado { font-size: 12.5px; font-weight: 600; color: var(--clm-text-subtle); text-align: right; }
.disputa__nota { font-size: 12px; color: var(--clm-text-subtle); }
.candidato { display: grid; grid-template-columns: minmax(0, 1fr) 72px; gap: 6px var(--space-3); align-items: center; }
.candidato--corte { border-bottom: 1px solid var(--clm-gold-line); }
.candidato__nome { font-size: 14.5px; overflow-wrap: anywhere; }
.candidato__partido { color: var(--clm-text-subtle); font-size: 12.5px; }
.candidato__tag { font-size: 12px; font-weight: 600; }
.candidato__pct { text-align: right; font-size: 14px; }
.candidato__trilho { grid-column: 1 / -1; position: relative; display: block; height: 8px; background: var(--clm-surface-2); border-radius: var(--radius-pill); }
.candidato__barra { display: block; height: 100%; width: 0; background: var(--clm-chart-1); border-radius: var(--radius-pill); transition: width 420ms cubic-bezier(0.22, 1, 0.36, 1); }
.candidato__meio { position: absolute; left: 50%; top: -3px; bottom: -3px; width: 2px; margin-left: -1px; background: var(--clm-text-muted); }
.rodape--estados { max-width: 1240px; margin: 0 auto var(--space-7); padding: var(--space-5) var(--space-5) 0; box-sizing: border-box; }

@media (max-width: 900px) {
  .painel { border-left: 0; padding-left: 0; border-top: 1px solid var(--clm-line); padding-top: var(--space-5); max-width: none; }
}
@media (max-width: 640px) {
  .estados { padding: var(--space-4) 16px var(--space-5); gap: var(--space-5); }
  .rodape--estados { padding-inline: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .candidato__barra, .favo__uf::before { transition: none; }
}

/* ---------- Blocos comuns das páginas de disputa ---------- */
.cabeca { display: flex; flex-direction: column; gap: 6px; }
.cabeca__etiqueta { font-size: 12.5px; color: var(--clm-text-subtle); }
.cabeca__titulo { margin: 0; font-family: var(--font-display); font-weight: 500; font-size: 28px; line-height: 1.15; }
.cabeca__sub { margin: 0; font-size: 15px; line-height: 1.6; color: var(--clm-text-muted); max-width: 640px; }
.colunas { display: flex; flex-wrap: wrap; gap: var(--space-6) var(--space-7); align-items: flex-start; }
.colunas__larga { flex: 999 1 560px; min-width: 0; display: flex; flex-direction: column; gap: var(--space-4); }
.colunas__estreita { flex: 1 1 340px; min-width: 0; display: flex; flex-direction: column; gap: var(--space-4); }
.secao { display: flex; flex-direction: column; gap: var(--space-3); border-top: 1px solid var(--clm-line); padding-top: var(--space-5); }
.secao__titulo { margin: 0; font-size: 15px; font-weight: 700; }
.secao__nota { margin: 0; font-size: 12.5px; line-height: 1.6; color: var(--clm-text-subtle); }
.vazio { margin: 0; font-size: 14px; color: var(--clm-text-subtle); }
.favo-n { display: inline-block; flex-shrink: 0; width: 12px; height: 13.86px; clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%); }
.legenda-favos { display: flex; flex-wrap: wrap; gap: var(--space-4); font-size: 12.5px; color: var(--clm-text-subtle); }
.legenda-favos > span { display: inline-flex; align-items: center; gap: 6px; }

.hemiciclo { position: relative; width: 100%; max-width: 640px; margin: 0 auto; }
.hemiciclo__assento { position: absolute; clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%); }
.hemiciclo__centro { position: absolute; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; align-items: center; gap: 2px; }
.hemiciclo__numero { font-family: var(--font-display); font-weight: 500; font-size: clamp(20px, 4.5vw, 34px); font-variant-numeric: tabular-nums; }
.hemiciclo__legenda { font-size: 12.5px; color: var(--clm-text-subtle); }

.bancada { display: grid; grid-template-columns: 16px minmax(0, 1fr) 48px; gap: var(--space-3); align-items: center; }
.bancada__nome { font-size: 14.5px; }
.bancada__n { text-align: right; font-size: 14px; font-weight: 600; font-variant-numeric: tabular-nums; }
.bancada--aberta .bancada__nome, .bancada--aberta .bancada__n { color: var(--clm-text-subtle); font-weight: 400; }

/* Painel */
.pn-hero { display: flex; flex-wrap: wrap; gap: var(--space-6) var(--space-7); align-items: flex-end; justify-content: space-between; }
.pn-hero__texto { flex: 1 1 520px; min-width: 0; display: flex; flex-direction: column; gap: var(--space-4); }
.pn-hero__numero { margin: 0; font-family: var(--font-display); font-weight: 700; font-size: clamp(44px, 8vw, 76px); line-height: 1; }
.pn-hero__kpis { flex: 1 1 360px; min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); }
.pn-lista { display: flex; flex-direction: column; border-top: 1px solid var(--clm-line); }
.pn-linha { display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-5); align-items: center; padding: var(--space-5) var(--space-3); border-bottom: 1px solid var(--clm-line); border-radius: var(--radius-md); color: var(--clm-text); text-decoration: none; }
.pn-linha:hover { background: var(--clm-fill-hover); }
.pn-linha__voto { flex: 0 0 92px; font-family: var(--font-mono); font-size: 12px; line-height: 1.4; color: var(--clm-text-subtle); }
.pn-linha__cargo { flex: 0 1 240px; min-width: 170px; display: flex; flex-direction: column; gap: 4px; }
.pn-linha__nome { font-size: 16px; font-weight: 700; }
.pn-linha__vagas { font-size: 13px; color: var(--clm-text-subtle); }
.pn-linha__favos { flex: 999 1 420px; min-width: 0; display: flex; flex-wrap: wrap; gap: 2px; align-content: center; }
.pn-linha__favos span { display: block; clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%); }
.pn-linha__sit { flex: 0 0 170px; display: flex; flex-direction: column; gap: 4px; text-align: right; margin-left: auto; }
.pn-linha__sit strong { font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums; }
.pn-linha__sit span { font-size: 12.5px; color: var(--clm-gold-light); }
.pn-luta { flex: 999 1 420px; min-width: 0; display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: var(--radius-md); background: #2f6fc4; font-family: 'Press Start 2P', monospace; color: #ffffff; }
.pn-luta__nome { flex: 0 1 auto; min-width: 0; font-size: 10px; line-height: 1.4; color: #f8c040; text-shadow: 1px 1px 0 #000; }
.pn-luta__barras { flex: 1 1 0; display: flex; align-items: center; min-width: 110px; }
.pn-luta__barra { flex: 1 1 0; height: 12px; display: flex; background: #c80000; border: 2px solid #f8f8f8; }
.pn-luta__barra--p1 { justify-content: flex-end; }
.pn-luta__vida { width: 0; background: #f8e000; }
.pn-luta__ko { position: relative; margin: 0 -2px; padding: 2px 3px; font-size: 9px; color: #d81818; background: #f8f8f8; border: 2px solid #000; }
.pn-como { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--space-5) var(--space-6); }
.pn-como p { margin: 0; font-size: 14px; line-height: 1.6; color: var(--clm-text-muted); }
.pn-como strong { color: var(--clm-text); }

/* Senado */
/* colunas de texto: abrir um estado só estica ele, sem buracos ao lado */
.sen-ufs { display: block; columns: 2 420px; column-gap: var(--space-7); }
.sen-ufs > * { break-inside: avoid; }
.sen-uf-det { border-bottom: 1px solid var(--clm-line); }
.sen-uf { display: grid; grid-template-columns: 44px minmax(0, 1fr) minmax(0, 1fr) 20px; gap: var(--space-3); align-items: center; min-height: 52px; padding: 8px 4px; list-style: none; cursor: pointer; border-radius: var(--radius-md); }
.sen-uf::-webkit-details-marker { display: none; }
.sen-uf:hover { background: var(--clm-fill-hover); }
.sen-uf:focus-visible { outline: 2px solid var(--clm-focus); outline-offset: 2px; }
.sen-uf__abrir { font-size: 12.5px; color: var(--clm-gold-light); }
.sen-uf__fim { display: flex; justify-content: flex-end; color: var(--clm-text-subtle); }
.sen-uf__seta { transition: transform 160ms cubic-bezier(0.22, 1, 0.36, 1); }
.sen-uf-det[open] .sen-uf__seta { transform: rotate(180deg); }
.sen-lista { display: flex; flex-direction: column; gap: 0; padding: 0 4px var(--space-4) 56px; }
.sen-lista .secao__nota { margin: 0 0 var(--space-2); }
.sen-uf__sigla { font-size: 14px; font-weight: 700; }
.sen-vaga { display: flex; align-items: center; gap: 8px; min-width: 0; }
.sen-vaga__texto { display: flex; flex-direction: column; min-width: 0; }
.sen-vaga__nome { font-size: 13.5px; overflow-wrap: anywhere; }
.sen-vaga__info { font-size: 12px; color: var(--clm-text-subtle); font-variant-numeric: tabular-nums; }

/* Deputados e assembleias */
.seletor { display: flex; flex-direction: column; gap: 6px; font-size: 12.5px; color: var(--clm-text-subtle); }
.seletor { flex: 0 0 auto; }
.seletor select { width: auto; min-width: 220px; height: 44px; }
.top { display: grid; grid-template-columns: 32px minmax(0, 1fr) 110px 96px; gap: var(--space-3); align-items: center; min-width: 480px; }
.top__nome { font-size: 14.5px; }
.top__nome small { color: var(--clm-text-subtle); font-size: 12.5px; }
.top__votos { text-align: right; font-size: 14px; font-variant-numeric: tabular-nums; }
.top__sit { font-size: 12.5px; font-weight: 600; }
.passos { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--space-4) var(--space-6); }
.passos li { display: flex; gap: var(--space-3); font-size: 14px; line-height: 1.6; color: var(--clm-text-muted); }
.passos b { font-family: var(--font-display); font-weight: 500; font-size: 20px; color: var(--clm-gold-light); line-height: 1.2; }
.passos strong { color: var(--clm-text); }
.favo--mini { width: 13.333%; height: 16%; }
.favo-pequeno { max-width: 352px; }

@media (max-width: 640px) {
  .cabeca__titulo { font-size: 24px; }
  .pn-linha { padding: var(--space-4) var(--space-2); }
  .pn-linha__sit { flex: 1 1 100%; text-align: left; flex-direction: row; justify-content: space-between; }
  .sen-ufs { columns: 1; }
}

/* Utilitários das páginas: a CSP (style-src 'self') ignora style="" no HTML,
   então todo estilo de marcação mora aqui. */
.linha-titulo { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: var(--space-3); }
.linha-titulo--fim { align-items: flex-end; gap: var(--space-4); }
.rolagem-x { overflow-x: auto; }
.kpis-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); }
.lista-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); column-gap: var(--space-6); }
.kpi-largo { grid-column: 1 / -1; }
.kpi-largo .clm-kpi__value { font-size: 20px; }
.cabeca--lista { gap: var(--space-4); }
.cabeca__titulo--m { font-size: 22px; }
.hemiciclo--menor { max-width: 560px; }
.amostra-definida { background: var(--clm-chart-1); }
.amostra-segundo { background: var(--clm-gold-dim); }
.amostra-aberta { background: var(--clm-surface-2); }
.amostra-fora { background: var(--clm-text-faint); opacity: 0.28; }
