@font-face{font-family:Campton;src:url('assets/campton-book.otf') format('opentype');font-weight:400;font-display:swap}
@font-face{font-family:Campton;src:url('assets/campton-semibold.otf') format('opentype');font-weight:700;font-display:swap}
@font-face{font-family:Unbounded;src:url('assets/unbounded-extrabold.ttf') format('truetype');font-weight:800;font-display:swap}
:root{--blue:#157cc1;--dark:#123c66;--orange:#ffc31d;--green:#00a321;--ink:#123c66;--soft:#eef5fb;--white:#fff}
*{box-sizing:border-box}
html{background:var(--blue)}
body{margin:0;min-width:320px;color:var(--ink);font-family:Campton,Arial,sans-serif;background:radial-gradient(circle at 12% 2%,#37a0d7 0,transparent 28%),linear-gradient(145deg,var(--blue),var(--dark));min-height:100svh}
button,input{font:inherit}
.page-shell{min-height:100svh;padding:18px;display:grid;place-items:center}
.card{width:min(100%,720px);overflow:hidden;background:var(--white);border-radius:26px;box-shadow:0 25px 70px rgba(1,16,88,.34)}
.brand-head{padding:24px 24px 18px;display:flex;align-items:center;gap:24px;background:linear-gradient(115deg,#eef5fb,#fff 68%);border-bottom:5px solid var(--orange)}
.brand-logo{width:min(var(--logo-width,170px),220px);height:90px;object-fit:contain;object-position:center;flex:0 0 auto}
.heading-copy{min-width:0}
.eyebrow{margin:0 0 4px;color:var(--blue);font-size:11px;font-weight:700;letter-spacing:.14em}
h1{margin:0;color:var(--ink);font-family:Unbounded,Campton,sans-serif;font-size:clamp(25px,5vw,42px);line-height:1}
.intro{margin:8px 0 0;font-size:15px;color:#526493}
form{padding:18px 24px 20px;display:grid;gap:12px}
.choice{width:100%;min-width:0;min-height:94px;border:2px solid #dbe8f3;border-radius:20px;background:var(--soft);display:grid;align-items:center;gap:12px;padding:12px 15px;position:relative}
.role{font-size:11px;font-weight:700;letter-spacing:.11em;color:#53689d}
.input-choice{grid-template-columns:1fr minmax(120px,210px)}
.input-choice .role{grid-column:1}
input{grid-column:2;grid-row:1;min-width:0;width:100%;border:0;border-radius:13px;background:#fff;padding:12px 10px;text-align:center;color:var(--blue);font-family:Unbounded,Campton,sans-serif;font-size:32px;font-weight:800;letter-spacing:.08em;box-shadow:inset 0 0 0 2px #c9d8e7;outline:none}
input:focus{box-shadow:inset 0 0 0 3px var(--orange),0 0 0 4px rgba(255,179,0,.18)}
input::placeholder{color:#c1cae4;opacity:1}
.cand-preview[hidden]{display:none}
.cand-preview{grid-column:1/-1;display:flex;align-items:center;gap:10px;margin-top:2px;padding-top:10px;border-top:1px dashed #c9d8e7;animation:fadeIn .2s ease}
.cand-preview img{width:34px;height:34px;border-radius:50%;object-fit:cover;background:#dbe8f3;flex:0 0 auto;box-shadow:0 0 0 2px #fff,0 0 0 3px #c9d8e7}
.cand-preview span{font-size:12px;font-weight:700;color:#157cc1;line-height:1.25}
.cand-preview span small{display:block;font-weight:700;color:#7c8bbd;font-size:9px;letter-spacing:.08em;margin-top:1px}
.senator-choice .cand-preview{grid-column:1}
@keyframes fadeIn{from{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}
.fixed-choice{grid-template-columns:72px minmax(0,1fr) auto;padding:12px 16px;overflow:hidden;background:linear-gradient(112deg,var(--blue),var(--dark));border-color:var(--blue);color:#fff;box-shadow:0 10px 26px rgba(9,43,210,.24)}
.fixed-choice .role{grid-column:1/-1;color:#bfcaff}
.avatar{display:block;width:72px;height:72px;aspect-ratio:1;border-radius:50%;object-fit:cover;object-position:center 22%;border:3px solid var(--orange);background:var(--blue)}
.candidate{display:flex;min-width:0;flex-direction:column;line-height:1.03}.candidate strong{font-size:clamp(21px,4vw,31px)}.candidate small{margin-top:7px;color:#cbd5ff;font-size:10px;font-weight:700;letter-spacing:.12em}
.fixed-number{color:var(--orange);font-family:Unbounded,Campton,sans-serif;font-size:clamp(33px,7vw,54px);letter-spacing:-.06em}
.senate-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.senator-choice{grid-template-columns:1fr}.senator-choice .role,.senator-choice input{grid-column:1}.senator-choice .role{grid-row:1}.senator-choice input{grid-row:2}
.senator-choice input{font-size:26px;letter-spacing:0;padding:12px 6px}
.actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}
.actions .clear{grid-column:1/-1}
button{border:0;border-radius:14px;padding:16px 18px;font-weight:700;letter-spacing:.04em;cursor:pointer;font-family:inherit}
.download{background:var(--orange);color:#071c75;box-shadow:0 8px 18px rgba(255,179,0,.3)}.download:hover{filter:brightness(1.05)}
.whatsapp{background:#25d366;background:linear-gradient(150deg,#2fdd72,#1fb956);color:#fff;box-shadow:0 8px 18px rgba(31,185,86,.35);display:flex;align-items:center;justify-content:center;gap:9px;line-height:1}
.whatsapp:hover{filter:brightness(1.06)}
.whatsapp:active{transform:translateY(1px)}
.whatsapp:disabled{opacity:.65;cursor:progress}
.whatsapp svg{width:19px;height:19px;flex:0 0 auto;fill:#fff}
.clear{background:#eef5fb;color:var(--ink)}
footer{padding:12px 20px 14px;background:var(--dark);color:#dbe1ff;text-align:center;font-size:10px;font-weight:700;letter-spacing:.07em;line-height:1.4}
@keyframes choicePulse{0%,100%{transform:scale(1);box-shadow:0 10px 24px rgba(9,43,210,.22)}50%{transform:scale(1.018);box-shadow:0 14px 32px rgba(255,179,0,.52)}}
@media(max-width:560px){.page-shell{padding:0;display:block}.card{border-radius:0;min-height:100svh}.brand-head{padding:16px 15px 13px;gap:14px}.brand-logo{width:min(var(--logo-width,120px),120px);height:68px}.eyebrow{font-size:8px}h1{font-size:24px}.intro{font-size:13px;margin-top:5px}form{padding:12px 12px 14px;gap:9px}.choice{min-height:76px;border-radius:16px;padding:9px 11px}.fixed-choice{grid-template-columns:58px minmax(0,1fr) auto;gap:9px}.fixed-choice .role{font-size:9px}.avatar{width:58px;height:58px}.candidate strong{font-size:19px}.candidate small{font-size:8px;margin-top:5px}.fixed-number{font-size:33px}.input-choice{grid-template-columns:1fr 126px}.role{font-size:9px}input{font-size:25px;padding:9px 7px;border-radius:11px}.senate-grid{gap:8px}.senator-choice input{width:100%;font-size:19px;padding:9px 4px}.actions{grid-template-columns:1fr}.actions .clear{grid-column:auto}.clear{padding:11px}button{font-size:12px}.whatsapp svg{width:17px;height:17px}.fixed-choice{animation:choicePulse 2s ease-in-out infinite}}
@media(max-width:380px){.brand-logo{width:min(var(--logo-width,105px),105px);height:60px}.fixed-choice{grid-template-columns:52px minmax(0,1fr) auto}.avatar{width:52px;height:52px}.candidate strong{font-size:17px}.fixed-number{font-size:29px}.input-choice{grid-template-columns:1fr 112px}.senator-choice input{font-size:17px}}
@media(prefers-reduced-motion:reduce){.fixed-choice{animation:none!important}}

/* Adaptação DF: preserva o cartão e a hierarquia do original. */
.number-entry{display:flex;align-items:stretch;gap:8px;min-width:0}.number-entry input{flex:1;width:0}.input-choice{grid-template-columns:1fr minmax(230px,310px)}
.confirm{background:#168c54;color:#fff;font-size:11px;padding:10px;border-radius:11px;letter-spacing:0;min-width:83px}.confirm:hover{background:#126f43}.confirm:disabled{opacity:.65;cursor:wait}
.field-status{grid-column:1/-1;margin:0;font-size:12px;line-height:1.4;color:#40576b}.field-status:empty{display:none}.input-choice.confirmed{border-color:#168c54}.confirmed .field-status{color:#126f43}
.fixed-choice{animation:none!important}.fixed-choice .role,.candidate small{color:#e3f3ff}.cand-preview span{color:var(--dark)}.download{color:var(--dark)}button:focus-visible{outline:3px solid var(--orange);outline-offset:3px}.brand-head{background:linear-gradient(115deg,#eef5fb,#fff 68%)}
@media(max-width:560px){.input-choice{grid-template-columns:1fr}.input-choice .role{grid-column:1}.number-entry{grid-column:1}.number-entry input{font-size:26px}.confirm{min-width:94px}.field-status{font-size:11px}.fixed-number{font-size:32px}.candidate strong{font-size:20px}}

.senator-fixed{grid-template-columns:60px 1fr;gap:10px}.senator-fixed .avatar{width:60px;height:60px;grid-column:1;grid-row:2}.senator-fixed .fixed-number{grid-column:2;grid-row:2;text-align:right;font-size:40px}.senator-fixed .candidate{grid-column:1/-1;grid-row:3}.senator-fixed .candidate strong{font-size:22px;line-height:1.1}.senator-fixed .candidate small{font-size:8px}
@media(max-width:560px){.senator-fixed{grid-template-columns:44px 1fr;gap:8px}.senator-fixed .avatar{width:44px;height:44px}.senator-fixed .fixed-number{font-size:28px}.senator-fixed .candidate strong{font-size:17px}.senator-fixed .role{font-size:9px}.senate-grid{align-items:stretch}.senator-fixed .candidate{align-self:start}}

/* Três candidatas fixas em linhas horizontais de largura completa. */
.fixed-confirm-choice{grid-template-columns:72px minmax(0,1fr) auto;gap:12px}
.fixed-action{display:flex;align-items:center;gap:14px}.fixed-action .confirm{min-width:98px}
.fixed-confirm-choice .field-status{color:#fff}.fixed-confirm-choice.confirmed{border-color:#168c54}
@media(max-width:560px){.fixed-confirm-choice{grid-template-columns:52px minmax(0,1fr) auto;gap:8px}.fixed-confirm-choice .avatar{width:52px;height:52px}.fixed-confirm-choice .candidate strong{font-size:17px;line-height:1.15}.fixed-action{flex-direction:column;gap:6px;align-items:center}.fixed-action .fixed-number{font-size:30px}.fixed-action .confirm{min-width:92px;padding:9px 6px;font-size:10px}.fixed-confirm-choice .candidate small{font-size:7px}}
