.vote-preview[hidden],.vote-admin-tools[hidden],.vote-preview [hidden]{display:none!important}
body.vote-preview-active:not(.vote-roulette-access) #training-roulette,body.vote-preview-active #dagens-pass,body.vote-preview-active #competition-bingo{display:none!important}
.vote-preview{position:relative;isolation:isolate;width:100%;max-width:820px;margin:auto;padding:clamp(22px,4vw,44px);background:var(--paper);border:1px solid var(--line);border-radius:10px 34px 34px;color:var(--forest);box-shadow:0 6px 0 #d0d6bd}
.vote-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:30px}
.vote-heading>div:first-child{min-width:0}
.vote-preview h2{max-width:12ch;margin:12px 0;font-size:clamp(2.2rem,5vw,3.7rem);line-height:1.02;letter-spacing:-.05em}
.vote-preview h3{margin:8px 0 12px;font-size:1.35rem;line-height:1.2;letter-spacing:-.025em}
.vote-kicker{margin:0;color:var(--orange-dark);font-size:.7rem;font-weight:850;letter-spacing:.11em;text-transform:uppercase}
.vote-lead{max-width:32ch;margin:14px 0 0;line-height:1.6;color:var(--muted)}
.vote-ballot-art{position:relative;flex:0 0 110px;height:125px;transform:rotate(8deg);margin-right:12px}
.vote-art-box{position:absolute;left:0;bottom:0;display:grid;place-items:center;width:105px;height:75px;border:2px solid var(--forest);border-bottom-width:7px;border-radius:9px 9px 18px 18px;background:#dce5cf;font-family:Georgia,serif;font-style:italic;font-weight:bold;font-size:2.3rem;letter-spacing:-.09em}
.vote-art-box:before{content:'';position:absolute;top:8px;left:22px;width:60px;height:5px;border-radius:8px;background:var(--forest)}
.vote-art-ticket{position:absolute;z-index:1;top:0;left:25px;display:grid;place-items:center;width:50px;height:65px;border:2px solid var(--forest);border-radius:5px;background:#ffbd80;color:var(--forest);font-size:2.3rem;transform:rotate(-22deg)}
.vote-art-spark{position:absolute;z-index:2;right:-12px;top:-4px;color:var(--orange-dark);font-size:2rem}
.vote-today{position:relative;padding:24px;margin:0 0 30px;border:1px solid #c7d2b8;border-radius:20px;background:#e9eddd}
.vote-winner-label{display:flex;align-items:center;justify-content:space-between;gap:12px}
.vote-winner-label>span{flex-shrink:0;font-size:.65rem;font-weight:850;padding:7px 10px;border-radius:7px;background:#ffbe83;color:var(--forest);transform:rotate(3deg)}
.vote-today .vote-today-date{font-size:.8rem;text-transform:capitalize;margin-top:16px;color:var(--muted)}
.vote-today h3{margin-top:8px;font-size:clamp(1.6rem,3vw,2rem)}
.vote-today p{line-height:1.6;margin:10px 0 0}
.vote-today .vote-outcome{color:var(--muted);font-size:.8rem}
.vote-winner-details{border-top:1px solid #214b3b22;margin-top:20px;padding-top:4px}
.vote-winner-details summary,.vote-history-section summary{cursor:pointer;min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:10px;list-style:none;font-size:.8rem;font-weight:750}
.vote-winner-details summary::-webkit-details-marker,.vote-history-section summary::-webkit-details-marker{display:none}
.vote-winner-details[open] summary>span,.vote-history-section[open] summary>span{transform:rotate(90deg)}
.vote-winner-row{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-top:1px solid #214b3b15;font-size:.8rem;line-height:1.5}
.vote-winner-row strong{white-space:nowrap;font-weight:650}
.vote-winner-row[data-winner=true]{color:var(--forest);font-weight:800}
.vote-poll-meta{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:22px;font-size:.73rem;font-weight:650}
.vote-open-badge{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border-radius:30px;background:#e9eddd}
.vote-open-badge i{width:7px;height:7px;border-radius:50%;background:var(--forest)}
#vote-countdown{color:var(--orange-dark);font-variant-numeric:tabular-nums}
.vote-target{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:10px;margin-bottom:18px}
.vote-target h3{margin:7px 0 0;text-transform:capitalize;font-size:1.3rem}
#vote-total{font-size:.75rem;color:var(--muted)}
.vote-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:0 0 20px;margin:0 0 22px;border-bottom:1px solid var(--line);list-style:none}
.vote-steps li{display:flex;align-items:center;gap:7px;font-size:.72rem;color:var(--muted);line-height:1.35}
.vote-steps li>span{display:grid;place-items:center;flex-shrink:0;width:25px;height:25px;border:1px solid var(--line);border-radius:50%;font-weight:800;background:var(--cream)}
.vote-steps li[aria-current=step]{font-weight:750;color:var(--forest)}
.vote-steps li[aria-current=step]>span{border-color:#f6a963;background:#ffbe83}
.vote-steps li[data-done=true]>span{background:var(--forest);border-color:var(--forest);color:var(--paper)}
.vote-preview fieldset{margin:0;padding:0;border:0;min-width:0}
.vote-preview legend{max-width:100%;margin-bottom:16px;font-size:.88rem;line-height:1.55;color:var(--muted)}
.vote-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.vote-option{--vote-tint:#e7ecd9;position:relative;display:grid;grid-template-columns:1fr auto;align-content:start;gap:14px;padding:20px;border:2px solid var(--line);border-radius:18px;background:#fffcf5;cursor:pointer;min-width:0;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.vote-option[data-tone="1"]{--vote-tint:#ffe3c5}.vote-option[data-tone="2"]{--vote-tint:#f1e8c8}.vote-option[data-tone="3"]{--vote-tint:#dfe8da}
@media(hover:hover){.vote-option[data-locked=false]:hover{border-color:#9aa98a;transform:translateY(-3px);box-shadow:0 5px 0 #e0e3d5}}
.vote-option[data-chosen=true]{border-color:var(--forest);background:#f0f3e7;box-shadow:0 3px 0 #c7d2b8}
.vote-option:focus-within{outline:3px solid var(--orange);outline-offset:3px}
.vote-option[data-locked=true]{cursor:default}
.vote-option input{position:absolute;top:23px;right:20px;width:20px;height:20px;margin:0;accent-color:var(--forest)}
.vote-option-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--vote-tint);color:var(--forest)}
.vote-option-icon svg{width:29px;height:29px}
.vote-option-number{padding-right:28px;padding-top:4px;color:var(--muted);font-size:.7rem;font-weight:750;letter-spacing:.08em}
.vote-option-copy{grid-column:1/-1;display:grid;gap:7px;min-width:0}
.vote-option-copy strong{font-size:1.15rem;line-height:1.25;letter-spacing:-.025em}
.vote-option-copy>span{font-size:.83rem;line-height:1.55;color:var(--muted)}
.vote-option-pick{grid-column:1/-1;justify-self:start;padding:6px 10px;border-radius:7px;background:var(--cream);font-size:.72rem;font-weight:750}
.vote-option[data-chosen=true] .vote-option-pick{background:var(--forest);color:var(--paper)}
.vote-option[data-locked=true] .vote-option-pick{display:none}
.vote-option-result{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;font-size:.75rem;color:var(--muted)}
.vote-own-mark{padding:4px 7px;border-radius:6px;background:var(--forest);color:var(--paper);font-weight:650}
.vote-bar{grid-column:1/-1;height:8px;background:#e0e5d6;border-radius:8px;overflow:hidden}
.vote-bar:before{content:'';display:block;width:var(--vote-share);height:100%;background:#f1a15d;border-radius:inherit;transition:width .4s ease}
.vote-submit{display:flex;justify-content:center;align-items:center;gap:12px;width:100%;min-height:56px;margin:22px 0 0;padding:16px 20px;border:0;border-radius:12px;background:var(--forest);color:var(--paper);font:inherit;font-weight:800;cursor:pointer;box-shadow:0 4px 0 var(--deep);transition:transform .16s ease;line-height:1.4}
.vote-submit:not(:disabled):active{transform:translateY(3px);box-shadow:0 1px 0 var(--deep)}
.vote-submit:disabled{opacity:.45;cursor:default;box-shadow:none}
.vote-submit:focus-visible,.vote-preview summary:focus-visible{outline:3px solid var(--orange);outline-offset:4px}
.vote-selection-copy{margin:14px 0 0;color:var(--forest);font-size:.8rem;line-height:1.5;font-weight:650}
.vote-selection-copy:empty{display:none}
.vote-note{margin:10px 0 0;font-size:.75rem;line-height:1.6;color:var(--muted)}
.vote-receipt{display:flex;align-items:center;gap:14px;padding:20px;border-radius:16px;background:var(--forest);color:var(--paper);margin:0 0 20px}
.vote-receipt-check{display:grid;place-items:center;flex-shrink:0;width:40px;height:40px;background:#ffbe83;color:var(--forest);font-size:1.5rem;border-radius:50%}
.vote-receipt h4{margin:0;font-size:1.2rem;letter-spacing:-.025em}
.vote-receipt p{margin:5px 0 0;font-size:.83rem;line-height:1.5;color:#e0e8d6}
.vote-receipt-star{margin-left:auto;align-self:start;color:#ffbe83;font-size:1.5rem}
.vote-race{margin:0 0 18px}.vote-race strong{font-size:.95rem}.vote-race p{margin:5px 0 0;font-size:.8rem;line-height:1.6;color:var(--muted)}
.vote-feedback{margin:14px 0;font-size:.88rem;line-height:1.5;color:var(--forest)}
.vote-feedback:empty{display:none}
.vote-refresh,.vote-retry{min-height:44px;border:0;background:transparent;color:var(--forest);font:inherit;font-size:.8rem;text-decoration:underline;cursor:pointer}
.vote-history-section{border-top:1px solid var(--line);padding-top:10px;margin-top:18px}
.vote-history{display:grid;gap:14px;list-style:none;margin:10px 0 0;padding:0}
.vote-history li{display:grid;gap:5px;border-bottom:1px solid var(--line);padding-bottom:12px}
.vote-history span,.vote-history small{font-size:.78rem;color:var(--muted)}
.vote-celebration{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden;border-radius:inherit}
.vote-celebration span{position:absolute;left:var(--x);top:18%;width:8px;height:14px;border-radius:2px;background:#f6a25b;animation:vote-cheer 1.1s var(--delay) both ease-out}
.vote-celebration span:nth-child(3n){background:#93a979;border-radius:50%;height:9px}.vote-celebration span:nth-child(3n+1){background:#e6c361}
@keyframes vote-cheer{0%{transform:translateY(0) rotate(0);opacity:0}15%{opacity:1}100%{transform:translateY(230px) rotate(var(--turn));opacity:0}}
.vote-admin-tools{max-width:820px;margin:0 auto 18px;padding:18px 20px;border:1px dashed var(--orange-dark);border-radius:14px;background:#fbe7cf;color:var(--forest)}
.vote-admin-tools p{font-size:.8rem;line-height:1.5;margin:6px 0 12px}.vote-admin-tools strong{font-size:.9rem}
.vote-admin-buttons{display:flex;flex-wrap:wrap;gap:8px}
.vote-admin-buttons button{min-height:44px;max-width:100%;padding:9px 12px;border:1px solid #214b3b55;border-radius:9px;background:var(--paper);color:var(--forest);font:inherit;font-size:.78rem;cursor:pointer}
.vote-admin-buttons button:disabled{opacity:.45;cursor:default}
@media(max-width:520px){
 .vote-preview{border-radius:10px 24px 24px;padding:24px 18px}.vote-admin-tools{padding:16px}
 .vote-heading{align-items:start;gap:8px;margin-bottom:26px}.vote-ballot-art{flex-basis:64px;height:125px;transform:rotate(8deg) scale(.55);transform-origin:top left;margin:22px 0 -50px}
 .vote-preview h2{font-size:2.2rem}.vote-kicker{font-size:.64rem}.vote-lead{font-size:.87rem}
 .vote-steps li{flex-direction:column;align-items:start;font-size:.67rem;gap:7px}
 .vote-options{grid-template-columns:1fr;gap:12px}.vote-option{grid-template-columns:42px minmax(0,1fr);gap:10px 13px;padding:17px 15px}
 .vote-option-icon{grid-column:1;grid-row:1/3;width:42px;height:42px}.vote-option-copy{grid-column:2;padding-right:22px}.vote-option-copy strong{font-size:1.05rem}
 .vote-option-number{display:none}.vote-option input{top:19px;right:14px;width:18px;height:18px}.vote-option-pick{grid-column:2}
 .vote-today{padding:20px 16px}.vote-winner-label{align-items:start;gap:8px}.vote-winner-label>span{padding:6px;font-size:.6rem}
 .vote-receipt{padding:17px 14px;gap:10px}.vote-receipt-check{width:32px;height:32px}.vote-receipt-star{display:none}
}
@media(min-width:1271px) and (max-width:1299px){.challenge-layout .vote-preview,.challenge-layout .vote-admin-tools{max-width:calc(100vw - 500px)}}
@media(prefers-reduced-motion:reduce){.vote-preview *{animation:none!important;transition:none!important;scroll-behavior:auto!important}.vote-option:hover{transform:none!important}}

.vote-completion{margin:20px 0;padding:18px;border:1px solid #c4ceb5;border-radius:14px;background:#f4f5e9}
.vote-completion>p:first-child{margin:0 0 14px;font-size:.85rem;line-height:1.6}
.vote-completion[data-completed=true]>p:first-child{font-weight:750;color:var(--forest)}
.vote-complete{width:100%;min-height:52px;padding:13px 16px;border:0;border-radius:10px;background:var(--forest);color:var(--paper);font:inherit;font-weight:800;cursor:pointer;box-shadow:0 3px 0 var(--deep);line-height:1.4}
.vote-complete:disabled{opacity:.5;cursor:default;box-shadow:none}
.vote-undo-complete{min-height:44px;padding:8px 0;border:0;background:transparent;color:var(--forest);font:inherit;font-size:.8rem;text-decoration:underline;cursor:pointer}
.vote-completion #vote-completion-feedback{margin:12px 0 0;font-size:.8rem;line-height:1.5}
#vote-completion-feedback:empty{display:none}

.vote-waiting{margin:24px 0;padding:22px;border:1px dashed #bac6aa;border-radius:18px;background:#f2f2e5}.vote-waiting h3{margin:9px 0}.vote-waiting>p:last-child{margin:0;color:var(--muted);font-size:.86rem;line-height:1.6}

.vote-steps-alternative{margin:16px 0 20px}.vote-steps-choice{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:13px 14px;border:1px solid #aabb9f;border-radius:12px;background:transparent;color:var(--forest);font:inherit;font-size:.8rem;line-height:1.5;text-align:left;cursor:pointer}
.vote-steps-check{display:grid;place-items:center;flex-shrink:0;width:22px;height:22px;border:1px solid #9aab8d;border-radius:6px;color:transparent;background:#f7f5e9}
.vote-steps-choice[aria-pressed=true]{border-color:var(--forest);background:#f7e5ce}.vote-steps-choice[aria-pressed=true] .vote-steps-check{background:var(--forest);border-color:var(--forest);color:var(--paper)}
.vote-steps-choice:disabled{opacity:.5;cursor:default}.vote-steps-alternative #vote-steps-hint{margin:8px 0 0;font-size:.75rem;line-height:1.5;color:var(--muted)}

.vote-sunday-note{padding:1rem 1.25rem;background:var(--paper);border-left:4px solid var(--orange);border-radius:12px;color:var(--forest);line-height:1.6}
