/* Rádio Rural Eleições 2026 — tela da transmissão.
   Palco fixo de 1920x1080 escalado para caber em qualquer janela (sem rolagem). */
:root{--ink:#0f2244;--ink-2:#52627c;--blue:#2451a6;--green:#4a9338;--track:rgba(36,81,166,.13);--s:1}
*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
html{width:100%;min-height:100%;height:auto;overflow-x:hidden;overflow-y:auto}
body{width:100%;min-height:100vh;height:auto;overflow-x:hidden;overflow-y:auto}
html{background:#eef2f3}
body{background:#eef2f3 var(--page-bg, url("../img/fundo.jpg")) center/cover no-repeat;font-family:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-synthesis:none}
.no-cursor,.no-cursor *{cursor:none!important}

.stage{position:absolute;left:50%;top:50%;width:1920px;height:1080px;transform:translate(-50%,-50%) scale(var(--s));display:flex;flex-direction:column;padding:20px 64px 18px}

/* Topo */
.top{flex:none;height:122px;display:grid;grid-template-columns:320px 1fr 320px;align-items:center}
.logo-eleicoes{height:124px;width:auto;justify-self:start;margin-left:6px;filter:drop-shadow(0 1px 1.5px rgba(15,34,68,.10))}
.header-highlight{justify-self:end;flex:none;width:300px;min-height:100px;padding:13px 18px 12px 20px;display:flex;flex-direction:column;justify-content:center;gap:2px;border:1px solid rgba(36,81,166,.18);border-radius:18px;background:linear-gradient(135deg,#fff 0%,#eef4ff 100%);box-shadow:0 10px 24px rgba(36,81,166,.14);color:#0b1f45;text-decoration:none;position:relative;z-index:2;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}
.header-highlight::after{content:"";position:absolute;right:-28px;top:-34px;width:110px;height:110px;border-radius:50%;background:rgba(74,147,56,.16)}
.header-highlight:hover{transform:translateY(-2px);box-shadow:0 14px 28px rgba(36,81,166,.2)}
.header-highlight-kicker{font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:#4a9338}
.header-highlight strong{font-size:28px;line-height:1.05;letter-spacing:-.04em;color:#2451a6}
.header-highlight-copy{max-width:235px;font-size:12px;font-weight:600;line-height:1.25;color:#52627c}
.header-highlight-cta{position:absolute;right:16px;bottom:12px;font-size:11px;font-weight:800;color:#269447}
.title{justify-self:center;font-size:56px;font-weight:800;line-height:1;letter-spacing:-.04em;white-space:nowrap;color:#0b1f45}
.title span{color:#1f4dab}

/* Cargo */
.board{flex:1;min-height:0;display:flex;flex-direction:column;transition:opacity .26s ease}
.board.is-out{opacity:0}
.office{flex:none;text-align:center;padding:6px 0 14px}
.office-tag{display:inline-flex;align-items:center;gap:18px;font-size:16px;font-weight:800;line-height:1.2;letter-spacing:.26em;text-transform:uppercase;color:#3d8a2e}
.office-tag::before,.office-tag::after{content:"";width:44px;height:2px;border-radius:2px;background:currentColor;opacity:.35}
.office-name{margin-top:4px;font-size:88px;font-weight:800;line-height:.92;letter-spacing:-.05em;color:#0b1f45}
.stats{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 24px;margin-top:12px;color:#52627b;font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.stats span{display:inline-flex;gap:6px;align-items:baseline;white-space:nowrap}.stats b{color:#0b1f45;font-size:20px;letter-spacing:0}

/* Candidatos: um layout por quantidade */
.cands{flex:1;min-height:0;display:grid;grid-template-columns:repeat(var(--n),var(--w));gap:var(--gap);justify-content:center;align-items:center;
  --n:3;--w:500px;--gap:64px;--pct:118px;--name:35px;--party:20px}
.cands.n1{--n:1;--w:594px;--gap:24px;--pct:118px;--name:35px;--party:20px;zoom:.84}
.cands.n2{--n:2;--w:495px;--gap:48px;--pct:108px;--name:32px;--party:19px;zoom:.95}
.cands.n3{--n:3;--w:429px;--gap:40px;--pct:104px;--name:30px;--party:18px}
.cands.n4{--n:4;--w:369px;--gap:28px;--pct:94px;--name:28px;--party:17px}
.cands.n5{--n:5;--w:319px;--gap:22px;--pct:80px;--name:25px;--party:16px}
.cands.n6{--n:6;--w:286px;--gap:18px;--pct:64px;--name:23px;--party:15px}

.cand{display:flex;flex-direction:column;width:var(--w);min-height:0;background:#fff;border:1px solid rgba(15,34,68,.07);border-radius:28px;overflow:hidden;box-shadow:0 1px 2px rgba(15,34,68,.05),0 10px 24px -12px rgba(15,34,68,.16),0 32px 64px -36px rgba(15,34,68,.36)}
/* Foto: o contêiner define o tamanho; a imagem só preenche (cover), sem deformar.
   As fotos do TSE são retratos fechados: alinhadas pelo topo para nunca cortar a cabeça. */
.cand-photo{position:relative;flex:0 0 auto;width:calc(100% + 30px);height:calc(var(--w) * .75 + 80px);margin-left:-15px;min-height:0;overflow:hidden;isolation:isolate;border-radius:28px 28px 0 0;clip-path:inset(0 round 28px 28px 0 0);background:linear-gradient(180deg,#eaf0f6,#d7e2ed)}
.cand-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:50% 50%;transform-origin:center;border-radius:28px 28px 0 0;clip-path:inset(0 round 28px 28px 0 0)}
.cand-initials{position:absolute;inset:0;display:grid;place-items:center;font-size:calc(var(--pct) * 1.15);font-weight:800;letter-spacing:-.04em;color:rgba(36,81,166,.26)}
.cand-info{flex:none;padding:22px 30px 26px;border-top:1px solid rgba(15,34,68,.07)}
.cand-pct{display:flex;align-items:baseline;white-space:nowrap;overflow:visible;font-size:calc(var(--pct) * .68);font-weight:800;line-height:.8;letter-spacing:-.05em;color:#1c48a3;font-variant-numeric:tabular-nums}
.cand-unit{margin-left:.28em;font-size:.32em;font-weight:700;letter-spacing:0;color:#5b7fc6;white-space:nowrap}
.cand-bar{height:8px;margin:16px 0 18px;border-radius:999px;background:rgba(15,34,68,.08);overflow:hidden}
.cand-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1c48a3,#3a72d4);transition:width .8s cubic-bezier(.22,.8,.26,1)}
.cand-who{display:flex;flex-direction:column;justify-content:flex-start}
.cand-name{font-size:var(--name);font-weight:700;line-height:1.1;letter-spacing:-.02em;color:#0b1f45;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.cand-party{margin-top:6px;font-size:var(--party);font-weight:700;line-height:1.2;letter-spacing:.12em;color:#687a94}

@media (min-width:701px){
  .board{overflow:visible}
  .office{transform:translateY(-50px);padding-bottom:34px}
  .top .title{align-self:start;margin-top:2px;transform:none}
  .office-tag{transform:translateY(-15px)}
  .office-name,.stats{transform:translateY(-15px)}
  .cands{transform:translateY(-49px)}
  .cands{gap:32px}
  .cand-photo{width:calc(100% + 30px);height:calc(var(--w) * .75 + 80px);margin-left:-15px}
  .cand-photo img{object-fit:contain;object-position:50% 50%}
  .cand-info{padding:16px 24px 18px}
  .cand-bar{margin:10px 0 12px}
  .promo-actions{margin-top:8px;gap:14px}
  .promo-btn{min-height:36px;padding:7px 20px;font-size:15px}
  .promo-ticker{margin-top:34px;font-size:14px}
  .sponsors{margin-top:6px;min-height:78px;grid-auto-rows:minmax(38px,1fr);gap:8px 28px;padding:8px 42px}
  .sponsors img{height:38px}
  .promo-actions-bottom{margin-top:8px}
}

.cands-empty{flex:1;display:grid;place-items:center;font-size:40px;font-weight:600;letter-spacing:-.01em;color:var(--ink-2)}
.download-results{align-self:center;margin:12px auto 0;padding:12px 24px;border:0;border-radius:12px;background:#2451a6;color:#fff;font:700 18px "Plus Jakarta Sans",system-ui,sans-serif;cursor:pointer;box-shadow:0 6px 14px rgba(36,81,166,.2)}
.download-results:hover{background:#1c428e}
.download-results{display:none!important}

/* Rodapé: só os apoiadores */
.promo-actions{display:flex;gap:16px;justify-content:center;align-items:center;flex:none;margin-top:12px}.promo-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:10px 24px;border-radius:12px;color:#fff;text-decoration:none;font-size:18px;font-weight:800;box-shadow:0 6px 14px rgba(15,34,68,.16)}.promo-btn-ad{background:#269447}.promo-btn-share{background:#2451a6}.promo-btn:hover{filter:brightness(.94)}.promo-ticker{flex:none;margin:10px auto 0;width:100%;overflow:hidden;color:#0f2244;font-size:18px;font-weight:700;text-align:center}
.promo-ticker-ads{padding:10px 0;background:#f9fafb;border-top:1px solid #e4e6eb;border-bottom:1px solid #e4e6eb;color:#333;font-family:"Segoe UI",Tahoma,sans-serif;font-weight:400}.promo-ticker-ads marquee{display:block}.promo-ticker-ads a{display:inline-block;margin:0 30px 0 5px;padding:4px 10px;border-radius:4px;background:#25d366;color:#000;text-decoration:none;font-size:14px;font-weight:700}.promo-ticker-ads a:hover{background:#20ba5a}
.sponsors{flex:none;margin-top:10px;min-height:124px;height:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(100px,1fr);align-items:center;justify-items:center;gap:12px 28px;padding:12px 36px;background:#fff;border:1px solid rgba(15,34,68,.06);border-radius:22px;box-shadow:0 1px 2px rgba(15,34,68,.04),0 14px 30px -22px rgba(15,34,68,.30)}
.sponsors img{display:block;width:min(100%,280px);height:100px;min-height:100px;max-width:280px;object-fit:contain;object-position:center}
.vote-section{width:min(850px,calc(100% - 40px));margin:calc(100vh + 24px) auto 40px;padding:0;position:relative;z-index:3}.vote-card{display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-areas:"title title title" "opt22 opt13 result";gap:20px;align-items:center;padding:35px 40px;background:#fff;border-radius:14px;box-shadow:0 4px 25px rgba(0,0,0,.08)}.vote-title{grid-area:title;text-align:center;font-size:26px;font-weight:700;color:#1c1e21;margin:0 0 5px}.vote-option,.vote-result{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#f9fafb;padding:25px 20px;border-radius:10px;border:1px solid #e4e6eb;text-align:center}.vote-option-22{grid-area:opt22}.vote-option-13{grid-area:opt13}.vote-result{grid-area:result;height:100%;background:#f0f4f8;border-color:#d1d9e0}.vote-button{width:100%;font-size:28px;font-weight:700;padding:16px 0;border:0;border-radius:8px;cursor:pointer;color:#fff;transition:background .2s,transform .1s}.vote-button-22{background:#28a745}.vote-button-22:hover:not(:disabled){background:#218838}.vote-button-13{background:#dc3545}.vote-button-13:hover:not(:disabled){background:#c82333}.vote-button:disabled{background:#ccc;cursor:not-allowed;opacity:.7}.vote-subtotal,.vote-total{font-size:15px;color:#4b4f56;font-weight:600}.vote-total{color:#1c1e21}.vote-message{min-height:22px;font-size:15px;font-weight:700;color:#d9534f}.vote-whatsapp{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:5px;padding:12px 14px;border-radius:8px;background:#25d366;color:#000;text-decoration:none;font-size:14px;font-weight:700;transition:background .2s}.vote-whatsapp:hover{background:#20ba5a}

/* Prévia dentro do painel: sem animação e só aparece depois de receber o rascunho */
.is-preview *{transition:none!important}
.is-preview .stage,.is-preview.is-ready .stage{visibility:visible}

/* O editor reutiliza a estrutura do card fora de .cands. */
.preview-card{--w:var(--modal-w);--pct:var(--modal-pct,104px);--name:var(--modal-name,30px);--party:var(--modal-party,18px);width:var(--w);overflow:hidden;border:1px solid rgba(15,34,68,.07);border-radius:28px;background:#fff;box-shadow:0 1px 2px rgba(15,34,68,.05),0 10px 24px -12px rgba(15,34,68,.16),0 32px 64px -36px rgba(15,34,68,.36)}
.preview-card .cand-photo{width:calc(100% + 30px);height:calc(var(--w) * .75 + 80px);margin-left:-15px;flex:0 0 auto}
.preview-card .cand-info{padding:22px 30px 26px}
.preview-card .cand-photo img{object-position:50% 0!important}
body[style*="--modal-w:594px"] .preview-card{--pct:118px;--name:35px;--party:20px}
body[style*="--modal-w:495px"] .preview-card{--pct:108px;--name:32px;--party:19px}
body[style*="--modal-w:429px"] .preview-card{--pct:104px;--name:30px;--party:18px}

@media (max-width:700px){
  html,body{height:auto;min-height:100%;overflow-x:hidden;overflow-y:auto}
  body{background-attachment:fixed}
  .stage{position:relative;left:auto;top:auto;width:100%;height:auto;min-height:100vh;transform:none;padding:14px 14px 18px;display:flex}
  .top{height:auto;min-height:0;display:grid;grid-template-columns:1fr 1fr;grid-template-areas:"e r" "t t";gap:8px 12px;padding:0 4px 12px}
  .logo-eleicoes{grid-area:e;height:64px;max-width:100%;object-fit:contain;object-position:left center;margin:0}
  .header-highlight{grid-area:r;width:100%;min-height:58px;padding:7px 10px;border-radius:12px;gap:1px}
  .header-highlight-kicker{font-size:7px}.header-highlight strong{font-size:clamp(15px,4.5vw,23px)}.header-highlight-copy{font-size:8px;max-width:78%;line-height:1.15}.header-highlight-cta{right:9px;bottom:7px;font-size:8px}
  .title{grid-area:t;font-size:clamp(25px,7vw,38px);white-space:normal;text-align:center;line-height:1.05;padding:4px 0}
  .office{padding:10px 0 12px}.office-tag{gap:8px;font-size:10px;letter-spacing:.16em}.office-tag::before,.office-tag::after{width:22px}.office-name{font-size:clamp(44px,13vw,70px);line-height:.95}.stats{font-size:10px;margin-top:8px}.stats b{font-size:14px}
  .board{min-height:0}.cands,.cands.n1,.cands.n2,.cands.n3,.cands.n4,.cands.n5,.cands.n6{display:grid;grid-template-columns:1fr;gap:14px;align-items:stretch;zoom:1;padding:0 2px}
  .cand{width:100%;border-radius:18px}.cand-photo{height:min(110vw,520px);width:100%;margin-left:0;border-radius:18px 18px 0 0;clip-path:inset(0 round 18px 18px 0 0)}.cand-photo img{object-fit:cover!important;object-position:50% 0!important;border-radius:18px 18px 0 0;clip-path:inset(0 round 18px 18px 0 0)}.cand-info{padding:16px 18px 18px}.cand-pct{font-size:clamp(32px,10vw,56px)}.cand-bar{height:6px;margin:12px 0 14px}.cand-name{font-size:22px}.cand-party{font-size:14px}
  .cands-empty{min-height:220px;font-size:22px;text-align:center}.sponsors{height:auto;min-height:128px;margin-top:14px;padding:12px 10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(42px,1fr);gap:8px 10px;align-content:stretch;overflow:hidden;border-radius:16px}.sponsors img{display:block;width:100%;height:42px;max-width:100%;object-fit:contain}
}
body[style*="--modal-w:369px"] .preview-card{--pct:94px;--name:28px;--party:17px}
body[style*="--modal-w:319px"] .preview-card{--pct:80px;--name:25px;--party:16px}
body[style*="--modal-w:286px"] .preview-card{--pct:64px;--name:23px;--party:15px}

@media (max-width:700px){
  .cands,.cands.n1,.cands.n2,.cands.n3,.cands.n4,.cands.n5,.cands.n6{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .cand-photo{height:min(55vw,300px)}
  .cand-info{padding:12px}.cand-pct{font-size:clamp(24px,6vw,42px)}.cand-name{font-size:clamp(14px,3.8vw,21px)}
  .promo-actions{gap:8px}.promo-btn{flex:1;padding:9px 8px;font-size:clamp(11px,3.2vw,16px)}.promo-ticker{font-size:18px}
  .vote-section{width:calc(100% - 28px);margin:24px auto 28px}.vote-card{grid-template-columns:1fr 1fr;grid-template-areas:"title title" "opt22 opt13" "result result";max-width:450px;padding:25px;gap:14px}.vote-title{font-size:22px}.vote-option,.vote-result{padding:18px 12px}.vote-button{font-size:24px}
}



.cand-pct{font-size:52px!important;}

.cand-num{font-size:44px!important;line-height:1!important;letter-spacing:-.04em!important;}

/* Refinamento responsivo: grade de apoiadores e escala tipográfica consistente. */
@media (min-width:1201px){
  .stage{padding-left:clamp(40px,3.35vw,72px);padding-right:clamp(40px,3.35vw,72px)}
  .title{font-size:clamp(44px,2.92vw,56px)}
  .office-name{font-size:clamp(64px,4.6vw,88px)}
  .sponsors{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:minmax(100px,1fr);gap:20px 36px;padding:12px 42px}
  .sponsors img{width:min(100%,250px);height:92px;min-height:92px}
}

@media (min-width:701px) and (max-width:1200px){
  .stage{padding:18px 28px 16px}
  .top{height:104px;grid-template-columns:240px 1fr 240px}
  .logo-eleicoes{height:100px}
  .title{font-size:clamp(34px,4vw,48px)}
  .office-name{font-size:clamp(56px,6vw,76px)}
  .cands{gap:18px}
  .cand{border-radius:22px}
  .cand-info{padding:16px 20px 18px}
  .cand-pct{font-size:clamp(38px,4vw,52px)!important}
  .cand-name{font-size:clamp(22px,2.5vw,30px)}
  .sponsors{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:minmax(100px,1fr);gap:16px 24px;padding:12px 24px}
  .sponsors img{width:min(100%,220px);height:88px;min-height:88px}
}

@media (max-width:700px){
  .stage{padding:12px 12px 20px}
  .logo-eleicoes{height:72px}
  .title{font-size:clamp(22px,6vw,34px);transform:translateY(10px)}
  .top{gap:6px 10px;padding-bottom:8px}
  .office{padding:8px 0 10px}
  .office-name{font-size:clamp(40px,12vw,64px)}
  .stats{gap:5px 14px}
  .cands,.cands.n1,.cands.n2,.cands.n3,.cands.n4,.cands.n5,.cands.n6{gap:12px;padding:0}
  .cand{border-radius:16px}
  .cand-photo{height:min(54vw,300px);border-radius:16px 16px 0 0}
  .cand-info{padding:12px 14px 14px}
  .cand-pct{font-size:clamp(24px,6vw,42px)!important}
  .cand-num{font-size:1em!important}
  .cand-name{font-size:clamp(14px,3.8vw,20px);line-height:1.15}
  .cand-party{font-size:clamp(11px,2.8vw,14px)}
  .promo-actions{margin-top:10px}
  .promo-ticker{margin-top:8px;font-size:clamp(13px,3.8vw,18px)}
  .sponsors{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(100px,1fr);min-height:0;margin-top:12px;gap:16px 18px;padding:14px;border-radius:16px}
  .sponsors img{width:100%;height:100px;min-height:100px;max-width:280px}
}
