.ballot-page{--left:#f5a17f;--right:#dafa70;--paper:#f4f4e8;--surface:#222622;color:var(--paper);background:#111412;font-family:"Noto Sans Georgian","Segoe UI",sans-serif}
.ballot-page main{width:min(100%,600px);margin:auto;padding:0 clamp(16px,4vw,28px) max(24px,env(safe-area-inset-bottom));box-sizing:border-box}
.ballot-page.projector-page main{width:min(100%,1820px)}
.ballot-mast,.ballot-head,.ballot-phase,.screen-tools{display:flex;align-items:center;justify-content:space-between;gap:12px}
.ballot-mast{height:66px;border-bottom:1px solid #42483e}
.ballot-mast a{color:var(--paper);text-decoration:none}
.ballot-mast .wordmark{margin:0}
#ballot-code,.ballot-venue,.ballot-phase time,.ballot-result{font-family:Consolas,"Courier New",monospace;font-variant-numeric:tabular-nums}
#ballot-code{font-size:clamp(14px,2vw,22px);letter-spacing:.14em;color:#d7dfcf}
.ballot-venue{margin:0 0 5px;color:#bdd69a;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.ballot-head{padding:clamp(24px,6vw,54px) 0 clamp(17px,4vw,32px)}
.ballot-page h1,.ballot-page h2{letter-spacing:-.045em;line-height:1.18;margin:0}
.ballot-page h1{font-size:clamp(33px,7.2vw,58px)}
.ballot-page h2{font-size:clamp(18px,4.4vw,26px)}
.ballot-match,#screen-join,.ballot-entry{min-width:0;border:1px solid #444b40;background:var(--surface);border-radius:12px}
.ballot-match{overflow:hidden}
.ballot-scoreboard,.ballot-entry{padding:clamp(14px,3.3vw,24px)}
.ballot-phase{align-items:baseline;margin-bottom:15px}
.ballot-phase time{color:var(--right);font-size:clamp(16px,3.8vw,24px);white-space:nowrap}
.ballot-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.ballot-card{--tone:var(--left);position:relative;display:grid;grid-template-rows:minmax(92px,1fr) auto auto;align-content:end;align-items:end;width:100%;min-width:0;overflow:hidden;padding:0 9px 12px;border:1px solid #6c6051;border-top:3px solid var(--tone);border-radius:7px;background:linear-gradient(165deg,#3f302b,#242721);color:var(--paper);text-align:center;font:inherit}
.ballot-card[data-side="1"]{--tone:var(--right);background:linear-gradient(165deg,#354030,#232722);border-color:#657154;border-top-color:var(--tone)}
.ballot-card:disabled{opacity:1;cursor:default}
.ballot-card img{grid-row:1;width:100%;max-height:clamp(100px,29vw,175px);object-fit:contain;object-position:bottom;align-self:end;margin:auto}
.ballot-name{grid-row:2;font-weight:800;word-break:break-word;line-height:1.17;font-size:clamp(17px,4.5vw,26px);margin-top:8px}
.ballot-result{grid-row:3;color:var(--tone);font-size:17px}
.ballot-result:not(:empty){margin-top:5px}
button.ballot-card:not(:disabled){cursor:pointer;background:linear-gradient(160deg,color-mix(in srgb,var(--tone) 33%,#191c19),#242722)}
button.ballot-card:not(:disabled):hover,button.ballot-card:focus-visible,.ballot-card.was-chosen,.ballot-card.is-winner{border-color:var(--tone);box-shadow:inset 0 0 0 2px var(--tone)}
.ballot-status,.ballot-error,#loopback-note,.ballot-entry p{color:#c5cbbd;line-height:1.55;font-size:13px;margin:12px 0 0}
.ballot-status:empty{display:none}
.ballot-error{color:#ffc1a8}
.ballot-entry{display:grid;gap:16px;max-width:460px;margin:30px auto}
.ballot-entry label{display:grid;gap:6px;font-size:13px;font-weight:700}
.ballot-entry input{min-width:0;height:46px;padding:0 12px;border-radius:6px;border:1px solid #717c66;background:#171b18;color:var(--paper);text-transform:uppercase;letter-spacing:.16em;font-size:20px}
.ballot-entry button,.screen-tools button{min-height:40px;padding:6px 12px;border:1px solid #5c6755;border-radius:6px;background:#292f28;color:var(--paper);font:inherit;font-size:12px;font-weight:650;cursor:pointer}
.ballot-entry button{color:#182112;background:var(--right)}
.projector-page .ballot-head{padding:clamp(18px,3.4vh,36px) 0}
.projector-page .ballot-head h1{font-size:clamp(28px,3.9vw,62px)}
.projector-page .ballot-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,23%);gap:clamp(10px,1.8vw,28px);align-items:start}
#ballot-stage-wrap{position:relative;background:#172019;border-bottom:1px solid #51584b}
#ballot-stage{height:clamp(195px,45svh,700px);width:100%}
#ballot-stage canvas{display:block;width:100%;height:100%}
.screen-tag{position:absolute;transform:translateX(-50%);z-index:1;padding:2px 7px;background:#151814cc;color:white;border-radius:3px;font-size:clamp(9px,1vw,14px);max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stage-fallback{position:absolute;inset:0;display:grid;place-content:center;margin:0;padding:16px;text-align:center;color:#dbe6c3}
.projector-page .ballot-card{grid-template-columns:clamp(44px,5vw,72px) minmax(0,1fr) auto;grid-template-rows:1fr;gap:10px;align-items:center;text-align:left;padding:4px 10px 4px 5px}
.projector-page .ballot-card img,.projector-page .ballot-name,.projector-page .ballot-result{grid-row:1;margin:0}
.projector-page .ballot-card img{height:clamp(45px,5vw,76px);grid-column:1}
.projector-page .ballot-name{grid-column:2;font-size:clamp(12px,1.7vw,30px)}
.projector-page .ballot-result{grid-column:3;font-size:clamp(12px,1.7vw,28px);white-space:nowrap}
#screen-join{display:grid;gap:12px;justify-items:start;padding:clamp(11px,1.5vw,24px)}
#ballot-qr,#ballot-qr svg{width:100%;height:auto;display:block}
#screen-join h2{font-size:clamp(15px,1.8vw,28px)}
#ballot-link{font-size:12px;color:var(--right);text-underline-offset:3px}
#loopback-note{margin:0}
@media(max-width:640px){
    .projector-page .ballot-layout{grid-template-columns:minmax(0,1fr)}
    #screen-join{grid-template-columns:110px minmax(0,1fr);align-items:center;gap:4px 10px}
    #ballot-qr{grid-row:1/4}.screen-tools{gap:4px;flex-wrap:wrap;justify-content:end}
    .screen-tools button{font-size:10px;min-height:36px;padding:4px 6px}
    .ballot-mast{height:54px}
}
