/* 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,body{width:100%;height:100%;overflow:hidden}
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:116px;width:auto;justify-self:start;margin-left:6px;filter:drop-shadow(0 1px 1.5px rgba(15,34,68,.10))}
.logo-rural{height:106px;width:auto;justify-self:end;margin-right:6px;filter:drop-shadow(0 1px 1.5px rgba(15,34,68,.10))}
.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:hidden}
  .cands{gap:32px}
  .cand-photo{height:clamp(250px,25vh,330px)}
  .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:6px;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}
.sponsors{flex:none;margin-top:10px;min-height:104px;height:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(56px,1fr);align-items:center;justify-items:center;gap:12px 42px;padding:14px 54px;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:100%;height:56px;max-width:240px;object-fit:contain}

/* Prévia dentro do painel: sem animação e só aparece depois de receber o rascunho */
.is-preview *{transition:none!important}
.is-preview .stage{visibility:hidden}
.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}
  .logo-rural{grid-area:r;height:58px;max-width:100%;object-fit:contain;object-position:right center;margin:0}
  .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}
}



.cand-pct{font-size:52px!important;}

.cand-num{font-size:44px!important;line-height:1!important;letter-spacing:-.04em!important;}
