/* Pulso27 · estilos da aplicação.
   Parte do apps/web do Eleições (mesma moldura, mesma tela em duas colunas, mesmo recorte fixo,
   mesmos blocos e tabelas) e usa só tokens semânticos do Design System Galeria 1.1.1.
   Os arquivos do kit (galeria-tokens.css, galeria.css, galeria-moldura.js) ficam intactos. */

[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;min-width:320px}
::selection{background:var(--platform-accent);color:var(--platform-on-accent)}

/* As três camadas. As cores vêm da paleta categórica do kit, validada no claro e no escuro.
   Modelo usa a cor da plataforma: é a aposta da Galeria. */
:root{--camada-curadoria:var(--chart-cat-4);--camada-sinal:var(--chart-cat-2);--camada-modelo:var(--chart-cat-1);--pulso-nome:var(--font-sans)}

.pulso-pular{position:absolute;left:var(--space-16);top:var(--space-8);z-index:40;display:inline-flex;align-items:center;min-height:var(--touch-min);padding:0 var(--space-16);border-radius:var(--radius-pill);background:var(--text-primary);color:var(--surface-ground);text-decoration:none;transform:translateY(-200%)}
.pulso-pular:focus{transform:none}

/* ---------- moldura: ajustes sobre o kit ---------- */
.g-frame__id a{display:flex;align-items:center;min-height:var(--touch-min);color:var(--text-primary)}
.g-frame__logo{color:var(--text-primary)}
.g-frame__acts .g-status{font-size:.75rem;line-height:1rem;color:var(--text-support);white-space:nowrap}

/* faixa de prévia: discreta, sem cor de erro */
.pulso-previa{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-4) var(--space-8);padding:var(--space-8) var(--space-48);box-shadow:inset 0 -1px 0 var(--line-structure);font-size:.8125rem;line-height:1.25rem;color:var(--text-support)}
.pulso-previa .g-status{font-weight:500}

/* ---------- tela: seções à esquerda, trabalho à direita ---------- */
.pulso-tela{display:grid;grid-template-columns:var(--nav-w) minmax(0,1fr);min-height:calc(100vh - var(--bar-h))}
.pulso-secoes{position:sticky;top:var(--bar-h);align-self:start;height:calc(100vh - var(--bar-h));padding:var(--space-32) var(--space-16);box-shadow:inset -1px 0 0 var(--line-structure);overflow:auto}
.pulso-secoes > .g-source{display:block;padding:0 var(--space-16);margin-bottom:var(--space-16)}
.pulso-secoes nav{display:flex;flex-direction:column;gap:var(--space-4)}
.pulso-secoes nav a{display:flex;align-items:center;min-height:var(--touch-min);padding:0 var(--space-16);border-radius:var(--radius-pill);color:var(--text-primary);text-decoration:none;transition:background-color var(--duration-fast) var(--ease-dry)}
.pulso-secoes nav a[aria-current="page"]{background:var(--text-primary);color:var(--surface-ground)}
.pulso-secoes nav a:not([aria-current="page"]):hover{background:var(--surface-hover)}
.pulso-secoes__nota{display:flex;flex-direction:column;gap:var(--space-16);margin:var(--space-48) var(--space-16) 0;padding-top:var(--space-16);box-shadow:inset 0 1px 0 var(--line-structure)}
.pulso-secoes__nota p{color:var(--text-support);font-size:.8125rem;line-height:1.25rem}
.pulso-secoes__nota ul{display:flex;flex-direction:column;gap:var(--space-16);margin:0;padding:0;list-style:none}
.pulso-secoes__nota li{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4)}

.pulso-trabalho{min-width:0}
.pulso-recorte{position:sticky;top:var(--bar-h);z-index:10;display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-4) var(--space-16);min-height:var(--space-48);padding:var(--space-8) var(--space-48);background:var(--surface-ground);box-shadow:inset 0 -1px 0 var(--line-structure);font-size:.75rem;line-height:1rem;color:var(--text-support)}
.pulso-recorte strong{color:var(--text-primary);font-weight:500}
.pulso-recorte__fim{margin-left:auto}
.pulso-conteudo{display:flex;flex-direction:column;gap:var(--space-48);max-width:calc(var(--measure-max) * 2 + var(--space-96));padding:var(--space-48) var(--space-48) var(--space-64);outline:0}
.pulso-conteudo > *{animation:pulso-entra var(--duration-soft) var(--ease-reveal) both}
.pulso-conteudo > *:nth-child(2){animation-delay:60ms}
.pulso-conteudo > *:nth-child(3){animation-delay:120ms}
.pulso-conteudo > *:nth-child(n+4){animation-delay:180ms}
@keyframes pulso-entra{from{opacity:0;transform:translateY(8px)}}

/* ---------- cabeçalho de página ---------- */
.pulso-heading{display:flex;flex-direction:column;gap:var(--space-16);max-width:var(--measure-max)}
.pulso-heading h1{font-size:clamp(2.25rem,1.4rem + 3.6vw,3.5rem);line-height:1;font-weight:400;letter-spacing:-.04em;text-wrap:balance;outline:0}
.g-app .pulso-heading h1:focus-visible,.g-app .pulso-conteudo:focus-visible{box-shadow:none}
.pulso-heading .g-text-lead{color:var(--text-support);text-wrap:pretty}
.pulso-heading__topo{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-8) var(--space-16)}
.pulso-voltar{display:inline-flex;align-items:center;gap:var(--space-8);min-height:var(--touch-min);margin:calc(var(--space-16) * -1) 0 calc(var(--space-8) * -1);color:var(--text-support);font-size:.875rem;line-height:1.25rem;text-decoration:none;align-self:flex-start}
.pulso-voltar:hover{color:var(--text-primary)}
.pulso-voltar::before{content:"";width:8px;height:8px;border:solid currentColor;border-width:0 0 1.5px 1.5px;transform:rotate(45deg)}

/* ---------- selo de camada: todo número leva um ---------- */
.pulso-selo{display:inline-flex;align-items:center;gap:6px;height:20px;padding:0 var(--space-8) 0 6px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--c) 18%,transparent);color:var(--text-primary);font-size:.75rem;line-height:1rem;font-weight:500;letter-spacing:0;white-space:nowrap;vertical-align:middle;flex:none}
.pulso-selo::before{content:"";width:6px;height:6px;flex:none;border-radius:var(--radius-mark);background:var(--c)}
.pulso-selo--curadoria{--c:var(--camada-curadoria)}
.pulso-selo--sinal{--c:var(--camada-sinal)}
.pulso-selo--modelo{--c:var(--camada-modelo)}

.pulso-camadas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-24);margin:0;padding:0;list-style:none}
.pulso-camadas li{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-8);padding-top:var(--space-16);box-shadow:inset 0 1px 0 var(--line-structure)}
.pulso-camadas p{color:var(--text-support);font-size:.875rem;line-height:1.25rem;max-width:36ch}
.pulso-camadas strong{color:var(--text-primary);font-weight:500}

/* ---------- status: forma e palavra (variações vazadas do kit) ---------- */
.g-status{font-size:.875rem;line-height:1.25rem}
.pulso-status--rolando::before{background:none;box-shadow:inset 0 0 0 2px var(--state-success);border-radius:var(--radius-mark)}
.pulso-status-nota{color:var(--text-support);font-size:.875rem;line-height:1.25rem}

/* ---------- números soltos ---------- */
.pulso-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-24)}
.pulso-kpi{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-8);min-width:0;padding-top:var(--space-16);box-shadow:inset 0 1px 0 var(--line-strong)}
.pulso-kpi__valor{font-family:var(--pulso-nome);font-size:clamp(2.25rem,1.5rem + 2.4vw,3.5rem);line-height:1;font-weight:400;letter-spacing:-.04em;white-space:nowrap}
.pulso-kpi__valor--texto{font-size:clamp(1.75rem,1.3rem + 1.6vw,2.5rem)}
.pulso-kpi__rotulo{color:var(--text-support);font-size:.875rem;line-height:1.25rem}
.pulso-semdado{color:var(--text-support);font-weight:400}

/* ---------- ganchos editoriais ---------- */
.pulso-ganchos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-16)}
.pulso-gancho{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-16);min-height:calc(var(--space-96) * 2.5);padding:var(--space-32);border-radius:var(--radius-s);background:var(--platform-surface);color:var(--platform-on-surface);transition:transform var(--duration-base) var(--ease-dry)}
.pulso-gancho .g-source{color:inherit;opacity:var(--text-on-color)}
.pulso-gancho h2{font-size:clamp(1.75rem,1.3rem + 1.6vw,2.5rem);line-height:1.1;font-weight:400;letter-spacing:-.035em;text-wrap:balance}
.pulso-gancho h2 a{color:inherit;text-decoration:none}
.pulso-gancho h2 a::after{content:"";position:absolute;inset:0;border-radius:inherit}
.pulso-gancho p{max-width:44ch;opacity:var(--text-on-color)}
.pulso-gancho__ir{display:inline-flex;align-items:center;gap:var(--space-8);min-height:48px;margin-top:auto;padding:0 var(--space-24);border-radius:var(--radius-pill);background:var(--platform-primary);color:var(--platform-on-primary);font-weight:500;transition:background-color var(--duration-fast) var(--ease-dry)}
.pulso-gancho:hover .pulso-gancho__ir{background:var(--platform-primary-hover)}
.pulso-gancho:active{transform:scale(var(--pressed-scale))}
.pulso-gancho:has(a:focus-visible){box-shadow:0 0 0 var(--focus-ring-inner-width) var(--focus-ring-inner),0 0 0 var(--focus-ring-outer-width) var(--focus-ring-outer)}
.pulso-gancho h2 a:focus-visible{box-shadow:none}

/* ---------- blocos ---------- */
.pulso-bloco{display:flex;flex-direction:column;gap:var(--space-24);min-width:0}
.pulso-bloco__head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-16) var(--space-24);padding-bottom:var(--space-16);box-shadow:inset 0 -1px 0 var(--line-strong)}
.pulso-bloco__head h2{margin-top:var(--space-8);text-wrap:balance}
.pulso-bloco__head > .g-source{display:inline-flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-4);text-align:right;max-width:32ch}
.pulso-prosa{display:flex;flex-direction:column;gap:var(--space-16);max-width:var(--measure-max)}
.pulso-prosa p{text-wrap:pretty}
.pulso-prosa strong{font-weight:500}
.pulso-link{color:var(--text-primary);font-weight:500;text-decoration:underline;text-decoration-color:var(--line-control);text-underline-offset:3px}
.pulso-link:hover{text-decoration-color:currentColor}

/* ---------- grade de cartões do placar ---------- */
.pulso-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr));gap:var(--space-16);margin:0;padding:0;list-style:none}
.pulso-grade > li{display:flex;min-width:0;animation:pulso-entra var(--duration-soft) var(--ease-reveal) both;animation-delay:calc(var(--i,0) * 40ms)}
.pulso-cartao{position:relative;flex:1;gap:var(--space-16);transition:background-color var(--duration-base) var(--ease-dry)}
.pulso-cartao:hover{background:var(--surface-hover-deep)}
.pulso-cartao:has(a:focus-visible){box-shadow:0 0 0 var(--focus-ring-inner-width) var(--focus-ring-inner),0 0 0 var(--focus-ring-outer-width) var(--focus-ring-outer)}
.pulso-cartao__topo{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-8)}
.pulso-cartao h3{font-size:1.25rem;line-height:1.5rem;font-weight:500;letter-spacing:-.02em;text-wrap:balance}
.pulso-cartao h3 a{color:inherit;text-decoration:none}
.pulso-cartao h3 a::after{content:"";position:absolute;inset:0;border-radius:inherit}
.pulso-cartao h3 a:focus-visible{box-shadow:none}
.pulso-consenso{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--space-4) var(--space-8);color:var(--text-support);font-size:.875rem;line-height:1.25rem}
.pulso-consenso strong{font-family:var(--pulso-nome);font-size:2.5rem;line-height:2.5rem;font-weight:400;letter-spacing:-.04em;color:var(--text-primary)}
.pulso-consenso .pulso-selo{align-self:center}
.pulso-cartao__ir{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:var(--space-16);box-shadow:inset 0 1px 0 var(--line-structure);color:var(--text-support);font-size:.875rem;line-height:1.25rem}
.pulso-cartao__ir::after{content:"";width:8px;height:8px;border:solid currentColor;border-width:1.5px 1.5px 0 0;transform:rotate(45deg);transition:transform var(--duration-base) var(--ease-dry)}
.pulso-cartao:hover .pulso-cartao__ir{color:var(--text-primary)}
.pulso-cartao:hover .pulso-cartao__ir::after{transform:translateX(4px) rotate(45deg)}

/* ---------- termômetro: hype contra realidade ---------- */
.pulso-termo{display:flex;flex-direction:column;gap:var(--space-8)}
.pulso-termo__titulo{color:var(--text-support);font-size:.75rem;line-height:1rem}
.pulso-termo__linha{display:flex;flex-direction:column;gap:var(--space-4)}
.pulso-termo__head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-4) var(--space-8);font-size:.875rem;line-height:1.25rem}
.pulso-termo__head > span:first-child{white-space:nowrap}
.pulso-termo__head > span:last-child{display:inline-flex;align-items:center;gap:var(--space-8);white-space:nowrap}
.pulso-termo__head strong{font-weight:500}
.pulso-trilho{position:relative;display:block;height:8px;background:var(--surface-ground);overflow:hidden}
.g-card--raised .pulso-trilho,.pulso-trilho--solto{background:var(--surface-hover)}
.pulso-trilho > i{display:block;height:100%;width:var(--v,0%);background:var(--c,var(--chart-series));transform-origin:left center;animation:pulso-cresce var(--duration-chart) var(--ease-reveal) both}
@keyframes pulso-cresce{from{transform:scaleX(0)}}
.pulso-trilho--vazio{background:repeating-linear-gradient(135deg,var(--line-structure) 0 2px,transparent 2px 7px)}
.pulso-barra--curadoria{--c:var(--camada-curadoria)}
.pulso-barra--sinal{--c:var(--camada-sinal)}
.pulso-barra--modelo{--c:var(--camada-modelo)}
.pulso-termo__gap{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-4) var(--space-8);padding-top:var(--space-4);font-size:.875rem;line-height:1.25rem}
.pulso-termo__gap strong{font-weight:500}
.pulso-termo__gap > span:last-child{flex-basis:100%;color:var(--text-support);font-size:.8125rem}
.pulso-termo--grande .pulso-termo__head{font-size:1rem;line-height:1.5rem}
.pulso-termo--grande .pulso-termo__head strong{font-family:var(--pulso-nome);font-size:1.75rem;line-height:2rem;font-weight:400;letter-spacing:-.03em}
.pulso-termo--grande .pulso-trilho{height:12px}
.pulso-termo--grande .pulso-termo__gap{padding-top:var(--space-8);font-size:1rem;line-height:1.5rem}
.pulso-termo--grande .pulso-termo__gap strong{font-family:var(--pulso-nome);font-size:1.75rem;line-height:2rem;font-weight:400;letter-spacing:-.03em}
.pulso-termo--grande .pulso-termo__gap > span:last-child{font-size:.875rem}

/* ---------- sparkline ---------- */
.pulso-spark{display:flex;flex-direction:column;gap:var(--space-8)}
.pulso-spark svg{display:block;width:100%;height:40px;overflow:visible}
.pulso-spark__linha{fill:none;stroke:var(--camada-sinal);stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.pulso-spark__area{fill:var(--camada-sinal);opacity:var(--area-veil)}
.pulso-spark figcaption{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-4) var(--space-8);color:var(--text-support);font-size:.8125rem;line-height:1.25rem}
.pulso-spark figcaption strong{color:var(--text-primary);font-weight:500}
.pulso-spark__vazio{display:flex;align-items:center;min-height:40px;padding:0 var(--space-8);background:repeating-linear-gradient(135deg,var(--line-structure) 0 2px,transparent 2px 7px);color:var(--text-support);font-size:.8125rem;line-height:1.25rem}
.pulso-spark__vazio span{padding:2px var(--space-8);background:var(--surface-hover)}
.pulso-cartao:hover .pulso-spark__vazio span{background:var(--surface-hover-deep)}

/* ---------- gráfico de linha (linha do tempo) ---------- */
.pulso-chart{display:flex;flex-direction:column;gap:var(--space-16);min-width:0}
.pulso-chart__chaves{display:flex;flex-wrap:wrap;gap:var(--space-8) var(--space-24);margin:0;padding:0;list-style:none;font-size:.8125rem;line-height:1.25rem}
.pulso-chart__chaves li{display:inline-flex;align-items:center;gap:var(--space-8)}
.pulso-chart__amostra{display:inline-block;width:20px;height:0;border-top:2px solid var(--camada-sinal)}
.pulso-chart__amostra--projecao{border-top:2px dashed var(--camada-modelo)}
.pulso-chart__amostra--faixa{height:10px;border:0;background:var(--camada-modelo);opacity:.28}
.pulso-chart__amostra--marco{width:16px;height:16px;border:0;border-radius:var(--radius-mark);background:var(--camada-curadoria)}
.pulso-chart__frame{position:relative;min-width:0}
.pulso-chart__svg{display:block;width:100%;height:auto;overflow:visible;touch-action:pan-y}
.pulso-chart__grid line{stroke:var(--line-structure);stroke-width:1}
.pulso-chart__grid text,.pulso-chart__x{fill:var(--text-support);font-size:11px;font-variant-numeric:tabular-nums}
.pulso-chart__linha{fill:none;stroke:var(--camada-sinal);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.pulso-chart__area{fill:var(--camada-sinal);opacity:var(--area-veil)}
.pulso-chart__projecao{fill:none;stroke:var(--camada-modelo);stroke-width:2;stroke-dasharray:5 5;stroke-linecap:round}
.pulso-chart__faixa{fill:var(--camada-modelo);opacity:.2}
.pulso-chart__hoje{stroke:var(--line-control);stroke-width:1;stroke-dasharray:2 3}
.pulso-chart__marco line{stroke:var(--camada-curadoria);stroke-width:1;stroke-dasharray:2 3}
.pulso-chart__marco circle.is-pino{fill:var(--camada-curadoria)}
.pulso-chart__marco circle.is-ponto{fill:var(--surface-ground);stroke:var(--camada-curadoria);stroke-width:2}
.pulso-chart__marco text{fill:var(--chart-on-cat-4);font-size:11px;font-weight:500;text-anchor:middle}
.pulso-chart__regua{stroke:var(--text-support);stroke-width:1;stroke-dasharray:2 3}
.pulso-chart__hit{fill:transparent;cursor:crosshair}
.pulso-chart__dica{position:absolute;top:var(--space-8);z-index:20;display:flex;flex-direction:column;gap:var(--space-4);min-width:180px;max-width:260px;padding:var(--space-8) var(--space-16);border-radius:var(--radius-m);pointer-events:none;font-size:.8125rem;line-height:1.25rem}
.pulso-chart__dica strong{font-weight:500}
.pulso-chart__dica span{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-4) var(--space-8)}
.pulso-marcos{display:flex;flex-direction:column;gap:var(--space-8);margin:0;padding:0;list-style:none;font-size:.875rem;line-height:1.25rem}
.pulso-marcos li{display:flex;align-items:flex-start;gap:var(--space-8)}
.pulso-marcos__n{display:inline-grid;place-items:center;flex:none;width:20px;height:20px;border-radius:var(--radius-mark);background:var(--camada-curadoria);color:var(--chart-on-cat-4);font-size:.75rem;line-height:1;font-weight:500}
.pulso-marcos li > span:last-child{display:inline-flex;flex-wrap:wrap;align-items:center;gap:var(--space-4) var(--space-8)}
.g-chart-table table{max-width:28rem}

/* ---------- indicador: antes e agora ---------- */
.pulso-indicador{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-24)}
.pulso-pilha{display:flex;flex-direction:column;gap:var(--space-32);min-width:0}
.pulso-chips-rotulo{color:var(--text-support);font-size:.875rem;line-height:1.25rem}

/* ---------- listas sem moldura ---------- */
.pulso-lista{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}
.pulso-lista > li{padding:var(--space-24) 0;box-shadow:inset 0 -1px 0 var(--line-structure)}
.pulso-lista > li:first-child{padding-top:0}
.pulso-previsao{display:grid;grid-template-columns:minmax(0,13rem) minmax(0,1fr);gap:var(--space-8) var(--space-24);align-items:start}
.pulso-previsao__corpo{display:flex;flex-direction:column;gap:var(--space-8);min-width:0}
.pulso-previsao__frase{font-size:1.125rem;line-height:1.625rem;letter-spacing:-.01em;text-wrap:pretty}
.pulso-previsao__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4) var(--space-8);color:var(--text-support);font-size:.875rem;line-height:1.25rem}
.pulso-previsao__meta strong{color:var(--text-primary);font-weight:500}
.pulso-previsao__meta > span + span::before{content:"·";margin-right:var(--space-8);color:var(--text-support)}
.pulso-previsao__meta .pulso-link{display:inline-flex;align-items:center;min-height:var(--touch-min)}
.pulso-previsao__corpo > .pulso-previsao__meta:has(.pulso-link){margin-block:calc(var(--space-8) * -1)}
.pulso-mais{display:flex;flex-direction:column;align-items:center;gap:var(--space-8);padding-top:var(--space-8)}

/* ---------- filtros e contagem da retrospectiva ---------- */
.pulso-contagem{display:grid;grid-template-columns:repeat(auto-fit,minmax(10.5rem,1fr));gap:var(--space-8)}
.pulso-contagem__item{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-8);min-height:var(--touch-min);padding:var(--space-16);border:0;border-radius:var(--radius-s);background:var(--surface-hover);color:var(--text-primary);text-align:left;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-dry),transform var(--duration-fast) var(--ease-dry)}
.pulso-contagem__item:hover{background:var(--surface-hover-deep)}
.pulso-contagem__item:active{transform:scale(var(--pressed-scale))}
.pulso-contagem__item[aria-pressed="true"]{background:var(--text-primary);color:var(--surface-ground)}
.pulso-contagem__item[aria-pressed="true"] :is(.g-status,.pulso-selo){color:inherit}
.pulso-contagem__item[aria-pressed="true"] .pulso-selo{background:color-mix(in srgb,var(--surface-ground) 12%,transparent)}
.pulso-contagem__n{font-family:var(--pulso-nome);font-size:2.5rem;line-height:2.5rem;font-weight:400;letter-spacing:-.04em}
.pulso-filtros{display:flex;align-items:flex-end;flex-wrap:wrap;gap:var(--space-16)}
.pulso-filtros .g-field{flex:0 1 22rem;min-width:min(100%,16rem)}
.pulso-filtros select.g-field__input{width:100%;appearance:none;-webkit-appearance:none;padding-right:var(--space-48);background-image:linear-gradient(45deg,transparent 50%,var(--text-primary) 50%),linear-gradient(135deg,var(--text-primary) 50%,transparent 50%);background-position:calc(100% - 22px) 19px,calc(100% - 16px) 19px;background-size:6px 6px,6px 6px;background-repeat:no-repeat;cursor:pointer}
.pulso-filtros__resumo{margin-left:auto;color:var(--text-support);font-size:.875rem;line-height:1.25rem;min-height:var(--touch-min);display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-4) var(--space-8)}
.pulso-filtros__resumo strong{color:var(--text-primary);font-weight:500;margin-right:var(--space-4)}

/* ---------- forecast ---------- */
.pulso-forecast{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,3fr) minmax(0,4fr);gap:var(--space-16) var(--space-32);align-items:start}
.pulso-forecast__texto{display:flex;flex-direction:column;gap:var(--space-8);min-width:0}
.pulso-forecast__texto h3{font-size:1.25rem;line-height:1.75rem;font-weight:500;letter-spacing:-.02em;text-wrap:pretty}
.pulso-medida{display:flex;flex-direction:column;gap:var(--space-8);min-width:0}
.pulso-medida__head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-4) var(--space-8);color:var(--text-support);font-size:.875rem;line-height:1.25rem}
.pulso-medida__valor{font-family:var(--pulso-nome);font-size:2.5rem;line-height:2.5rem;font-weight:400;letter-spacing:-.04em;white-space:nowrap}
.pulso-medida__valor--faixa{font-size:1.5rem;line-height:2.5rem;letter-spacing:-.03em}
.pulso-medida__linha{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-4) var(--space-8)}
.pulso-prob .pulso-trilho{height:12px;overflow:visible}
.pulso-prob .pulso-trilho::after{content:"";position:absolute;left:50%;top:-3px;bottom:-3px;width:1px;background:var(--line-control)}
.pulso-escala{display:flex;justify-content:space-between;color:var(--text-support);font-size:.75rem;line-height:1rem}
.pulso-faixa{position:relative;height:12px;background:var(--surface-hover)}
.pulso-faixa > i{position:absolute;top:0;bottom:0;left:var(--a);width:var(--l);min-width:2px;background:var(--camada-modelo);transform-origin:left center;animation:pulso-cresce var(--duration-chart) var(--ease-reveal) both}
.pulso-faixa > b{position:absolute;left:var(--z);top:-3px;bottom:-3px;width:1px;background:var(--line-strong)}
.pulso-faixa-eixo{position:relative;height:1rem;color:var(--text-support);font-size:.75rem;line-height:1rem}
.pulso-faixa-eixo span{position:absolute;left:var(--z);transform:translateX(-50%);white-space:nowrap}
.pulso-brier{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:var(--space-16) var(--space-48);align-items:center;padding:var(--space-32);border-radius:var(--radius-s);background:var(--surface-hover)}
.pulso-brier__num{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-8)}
.pulso-brier__valor{font-family:var(--pulso-nome);font-size:clamp(2.25rem,1.5rem + 2.4vw,3.5rem);line-height:1;font-weight:400;letter-spacing:-.04em}
.pulso-brier__valor--texto{font-size:clamp(1.5rem,1.2rem + 1.2vw,2rem);line-height:1.15;letter-spacing:-.03em;max-width:16ch;text-wrap:balance}
.pulso-brier .pulso-prosa{gap:var(--space-8)}
.pulso-brier .pulso-prosa p{color:var(--text-support)}
.pulso-brier .pulso-prosa p:first-child{color:var(--text-primary)}

/* ---------- radar ---------- */
.pulso-radar{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,3fr) minmax(0,3fr);gap:var(--space-8) var(--space-32);align-items:center}
.pulso-radar__termo{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}
.pulso-radar__termo strong{font-size:1.5rem;line-height:2rem;font-weight:500;letter-spacing:-.02em;overflow-wrap:anywhere}

/* ---------- tabelas ---------- */
.pulso-table-wrap{min-width:0;overflow-x:auto}
.pulso-table{min-width:0;width:100%}
.pulso-table th{position:static;height:auto;padding:var(--space-8);vertical-align:top;white-space:nowrap}
.pulso-table td{height:auto;padding:var(--space-16) var(--space-8);vertical-align:top}
.pulso-table th:first-child,.pulso-table td:first-child{padding-left:0}
.pulso-table tbody tr{cursor:default}
.pulso-table td strong{font-weight:500}
.pulso-table td .pulso-selo{display:none}
.pulso-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.pulso-table th.pulso-num{text-align:right}
.pulso-th{display:inline-flex;flex-direction:column;align-items:flex-start;gap:var(--space-4)}
.pulso-num .pulso-th{align-items:flex-end}
.pulso-ordenar{display:inline-flex;align-items:center;gap:var(--space-4);min-height:var(--touch-min);padding:0 var(--space-8);margin:0 calc(var(--space-8) * -1);border:0;border-radius:var(--radius-s);background:none;color:var(--text-support);font:inherit;font-weight:500;cursor:pointer}
.pulso-ordenar:hover{background:var(--surface-hover);color:var(--text-primary)}
.pulso-ordenar::after{content:"";width:0;height:0;border:4px solid transparent;border-top-color:currentColor;border-bottom:0;opacity:.35}
th[aria-sort="descending"] .pulso-ordenar,th[aria-sort="ascending"] .pulso-ordenar{color:var(--text-primary)}
th[aria-sort="descending"] .pulso-ordenar::after{opacity:1}
th[aria-sort="ascending"] .pulso-ordenar::after{opacity:1;transform:rotate(180deg)}
.pulso-ordem-movel{display:none}
.pulso-hit{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-4);min-width:7rem}
.pulso-hit .pulso-trilho{width:100%;height:4px}
.pulso-table--fontes td:first-child{min-width:11rem}

/* ---------- metodologia ---------- */
.pulso-metodo{display:flex;flex-direction:column}
.pulso-metodo .g-ai{padding-block:var(--space-32);box-shadow:inset 0 -1px 0 var(--line-structure)}
.pulso-metodo .g-ai:first-child{padding-top:0}
.pulso-metodo .g-ai:last-child{padding-bottom:0;box-shadow:none}
.pulso-metodo .g-ai__title{font-size:1.125rem;line-height:1.5rem;letter-spacing:-.01em}
.pulso-metodo .g-ai__text{max-width:none}
.pulso-metodo .g-ai__text > p,.pulso-metodo .g-ai__text > ul{max-width:var(--measure-max)}
.pulso-formula{display:flex;flex-direction:column;gap:var(--space-8);padding-top:var(--space-16);box-shadow:inset 0 1px 0 var(--line-structure);max-width:var(--measure-max)}
.pulso-formula h3{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-8);font-size:1rem;line-height:1.5rem;font-weight:500}
.pulso-formula p{color:var(--text-support)}
.pulso-formula .pulso-conta{color:var(--text-primary)}
.pulso-limites{display:flex;flex-direction:column;gap:var(--space-8);margin:0;padding-left:var(--space-24)}
.pulso-status-def{display:flex;flex-direction:column;margin:0}
.pulso-status-def > div{display:grid;grid-template-columns:minmax(0,13rem) minmax(0,1fr);gap:var(--space-4) var(--space-24);padding:var(--space-16) 0;box-shadow:inset 0 -1px 0 var(--line-structure)}
.pulso-status-def > div:first-child{padding-top:0}
.pulso-status-def dt{font-weight:500}
.pulso-status-def dd{margin:0;display:flex;flex-direction:column;gap:var(--space-4)}
.pulso-status-def dd span{color:var(--text-support);font-size:.875rem;line-height:1.25rem}

/* ---------- carregando, erro e vazio ---------- */
.pulso-carregando{align-items:flex-start;padding:var(--space-48) 0;min-height:40vh;justify-content:flex-start}
.pulso-aviso{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-16);max-width:var(--measure-max);padding:var(--space-32);border-radius:var(--radius-s);background:var(--surface-hover)}
.pulso-aviso h2{font-size:1.25rem;line-height:1.75rem;font-weight:500;letter-spacing:-.02em}
.pulso-aviso p{color:var(--text-support)}
.pulso-aviso__acoes{display:flex;flex-wrap:wrap;gap:var(--space-8)}
.pulso-aviso--linha{padding:var(--space-24)}

/* ---------- rodapé ---------- */
.pulso-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-8) var(--space-24);padding:var(--space-16) var(--space-48);box-shadow:inset 0 1px 0 var(--line-structure)}
.pulso-foot a{display:inline-flex;align-items:center;min-height:var(--touch-min);color:var(--text-support);text-decoration:underline;text-decoration-color:var(--line-control);text-underline-offset:3px}
.pulso-foot a:hover{color:var(--text-primary)}

/* ---------- telas menores ---------- */
@media (max-width:1100px){
  .pulso-forecast{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .pulso-forecast__texto{grid-column:1 / -1}
}
@media (max-width:900px){
  .g-frame__name{display:block}
  .g-frame__acts{display:none}
  .g-frame{grid-template-columns:1fr auto}
  .g-frame > .g-frame__nav,.g-frame > .g-sections{grid-column:2;justify-self:end}
  .pulso-previa{padding-inline:var(--space-16)}
  .pulso-tela{display:block;min-height:0}
  .pulso-secoes{display:none}
  .pulso-recorte{position:static;padding-inline:var(--space-16)}
  .pulso-recorte__fim{margin-left:0}
  .pulso-conteudo{gap:var(--space-32);padding:var(--space-32) var(--space-16) var(--space-48)}
  .pulso-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pulso-bloco__head{align-items:flex-start;flex-direction:column}
  .pulso-bloco__head > .g-source{text-align:left;max-width:none}
  .pulso-foot{padding-inline:var(--space-16)}
  .pulso-radar{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .pulso-radar__termo{grid-column:1 / -1}
}
@media (max-width:760px){
  .pulso-ganchos,.pulso-camadas,.pulso-indicador{grid-template-columns:1fr}
  .pulso-camadas{gap:var(--space-16)}
  .pulso-gancho{min-height:0;padding:var(--space-24)}
  .pulso-previsao{grid-template-columns:1fr}
  .pulso-forecast{grid-template-columns:1fr}
  .pulso-brier{grid-template-columns:1fr;padding:var(--space-24)}
  .pulso-status-def > div{grid-template-columns:1fr}
  .pulso-contagem{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pulso-filtros{align-items:stretch;flex-direction:column}
  .pulso-filtros .g-field{flex:none;width:100%}
  .pulso-filtros__resumo{margin-left:0;min-height:0}
  .pulso-aviso{padding:var(--space-24)}
  /* tabela vira lista: cada linha mostra rótulo e valor, sem rolagem lateral */
  .pulso-table--empilha thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .pulso-table--empilha,.pulso-table--empilha tbody,.pulso-table--empilha tr,.pulso-table--empilha td{display:block;width:100%}
  .pulso-table--empilha tr{padding:var(--space-16) 0;box-shadow:inset 0 -1px 0 var(--line-structure)}
  .pulso-table--empilha td{display:flex;align-items:center;justify-content:space-between;gap:var(--space-16);padding:var(--space-4) 0;border:0;text-align:right;white-space:normal}
  .pulso-table--empilha td::before{content:attr(data-rotulo);flex:none;margin-right:auto;color:var(--text-support);text-align:left;white-space:nowrap}
  .pulso-table--empilha tr:last-child{box-shadow:none;padding-bottom:0}
  .pulso-table--empilha td:first-child{padding-bottom:var(--space-8);font-size:1.125rem;line-height:1.5rem;text-align:left}
  .pulso-table--empilha td:first-child::before{content:none}
  .pulso-table--empilha td .pulso-selo{display:inline-flex}
  .pulso-table--empilha td > span.pulso-celula{display:inline-flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:var(--space-4) var(--space-8)}
  .pulso-hit{min-width:0;flex-direction:row;align-items:center}
  .pulso-hit .pulso-trilho{display:none}
  .pulso-ordem-movel{display:flex;flex-direction:column;gap:var(--space-8)}
}
@media (max-width:400px){
  .pulso-kpis{gap:var(--space-16)}
  .pulso-contagem__item{padding:var(--space-16) var(--space-8) var(--space-16) var(--space-16)}
}
@media (prefers-reduced-motion:reduce){
  .pulso-conteudo > *,.pulso-grade > li,.pulso-trilho > i,.pulso-faixa > i{animation:none}
  .pulso-cartao__ir::after,.pulso-gancho{transition:none}
}
@media print{
  .g-frame,.pulso-secoes,.pulso-recorte{position:static}
  .pulso-secoes,.g-sections,.g-frame__nav{display:none}
  .pulso-tela{display:block}
}
