.ballot-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));background:var(--surface-1);padding:4px;border:1px solid var(--track);border-radius:14px;gap:4px}
.ballot-tabs [role=tab]{background:transparent;color:var(--muted);padding:.65rem .4rem;min-width:44px;min-height:44px;overflow-wrap:anywhere}
.ballot-tabs [aria-selected=true]{background:var(--brass);color:white;box-shadow:0 2px 4px #12544220}
.ballot-hint{font-size:.875rem;color:var(--muted)}
.human-judge{display:inline-block;padding:.3rem .6rem;background:#fff0bb;color:#674600;border:2px solid #cda640;border-radius:8px;font-weight:700;overflow-wrap:anywhere}
.sim-ballot,.score-preview{list-style:none;padding:0;display:grid;gap:.6rem}
.sim-ballot{container-type:inline-size}
.ballot-row{display:grid;grid-template-columns:max-content minmax(0,1fr) 44px;gap:.55rem;align-items:center;padding:.65rem;background:var(--surface-1);border:1px solid var(--track);border-radius:14px;position:relative}
.ballot-row[data-dragging=true]{opacity:.3;border-style:dashed}
.rank-medal{display:grid;place-items:center;flex-shrink:0;width:max-content;min-width:2.25rem;height:2.25rem;padding:0 .25rem;border-radius:50%;font-variant-numeric:tabular-nums;font-size:1rem;background:#e1e8ed;color:#364c5b;border:1px solid #c5d0d7}
.rank-medal[data-rank="1"]{background:#fff0bb;color:#795006;border-color:#d9b34f}
.rank-medal[data-rank="2"]{background:#e2edff;color:#284f90;border-color:#a7bfe5}
.rank-medal[data-rank="3"]{background:#fbe5d8;color:#914822;border-color:#dcab91}
.ballot-name{font-weight:700;overflow-wrap:anywhere}
.ballot-bib{display:block;font-size:1.5rem;line-height:1.15;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.ballot-name small,.score-input-row small{display:block;font-weight:400;color:var(--muted);margin-top:3px}
.ballot-row .drag-handle{width:44px;padding:0;touch-action:none;cursor:grab;color:var(--muted)}
.ballot-row .drag-handle:active{cursor:grabbing;transform:none}
.ballot-nudge{grid-column:2/-1;display:flex;justify-content:flex-end;gap:.4rem}
.ballot-nudge button{width:44px;min-height:44px;padding:0}
.ballot-floating{display:flex;align-items:center;gap:.7rem;padding:1rem;background:white;border:2px solid var(--brass);border-radius:14px;box-shadow:0 12px 32px #19372d30;cursor:grabbing}
.ballot-floating>span{margin-left:auto;font-size:.75rem;color:var(--brass)}
.score-inputs{display:grid;gap:.5rem}.score-input-row{display:grid;grid-template-columns:minmax(0,1fr) 5.5rem;gap:.75rem;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--track);color:var(--text)}
.score-input-row input{font-size:1.125rem;text-align:center;padding:.5rem}.score-input-row input[aria-invalid=true]{border-color:#b64232}
.score-preview li{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;padding:.5rem;background:var(--surface-1);border-radius:10px}.score-preview li>span{flex:1;min-width:0;overflow-wrap:anywhere}.score-preview small{white-space:nowrap}
/* Narrow lists: the name gets the whole first line and ↑ ↓ handle sit together on the second. */
.sim-ballot>.ballot-row>.ballot-name{grid-column:2/-1}.sim-ballot .ballot-nudge{grid-column:1/3;grid-row:2}.sim-ballot>.ballot-row>.drag-handle{grid-column:3;grid-row:2}
/* One line whenever the list itself has room (rem keeps two lines under large text). */
@container (min-width:20rem){.sim-ballot>.ballot-row{grid-template-columns:max-content minmax(0,1fr) auto 44px}.sim-ballot>.ballot-row>.ballot-name{grid-column:2}.sim-ballot .ballot-nudge{grid-column:3;grid-row:1}.sim-ballot>.ballot-row>.drag-handle{grid-column:4;grid-row:1}}
@media(prefers-reduced-motion:reduce){.ballot-row{transition:none!important}}

/* Preliminary ballot: same row, medal and pill vocabulary as the finals ballot. */
.callback-guided{scroll-margin-top:1rem}
.sim-setup{display:grid;gap:1rem}
.sim-actions{display:grid;gap:.5rem;margin-top:1rem}
.callback-sticky{position:sticky;top:0;z-index:3;margin-bottom:.75rem;padding:.6rem 0;background:var(--surface-2);border-bottom:1px solid var(--track)}
.callback-sticky p{margin:.4rem 0 0}
.callback-quotas{display:flex;flex-wrap:wrap;gap:.5rem}
.callback-quotas .status-pill{overflow-wrap:anywhere}
.callback-quotas .status-pill strong{margin-left:.35rem;font-variant-numeric:tabular-nums}
.callback-quotas .status-pill[data-state=filled]{background:var(--brass);color:#fff}
.callback-quotas .status-pill[data-state=over]{background:#fff1d3;color:#754b00}
.callback-row{grid-template-columns:max-content minmax(0,1fr)}
.tier-medal{font-size:.7rem;letter-spacing:0;transition:background-color 150ms var(--ease-out),color 150ms var(--ease-out),border-color 150ms var(--ease-out)}
.tier-medal[data-tier=YES]{background:#fff0bb;color:#795006;border-color:#d9b34f}
.tier-medal[data-tier=M1]{background:#e2edff;color:#284f90;border-color:#a7bfe5}
.tier-medal[data-tier=M2]{background:#fbe5d8;color:#914822;border-color:#dcab91}
.callback-choice{grid-column:1/-1;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}
.callback-choice button{background:transparent;color:var(--muted);padding:.5rem .4rem;min-height:44px;min-width:44px;overflow-wrap:anywhere}
.callback-choice [aria-pressed=true]{background:var(--brass);color:#fff;box-shadow:0 2px 4px #12544220}
.callback-choice button:active{transform:scale(.98)}
@media(min-width:600px){.callback-row{grid-template-columns:max-content minmax(0,1fr) minmax(0,1.5fr)}.callback-choice{grid-column:3;grid-row:1;grid-auto-columns:minmax(44px,1fr);min-width:0}}
@media(prefers-reduced-motion:reduce){.tier-medal{transition:none}}
@media(prefers-contrast:more){.callback-choice [aria-pressed=true]{outline:2px solid currentColor;outline-offset:-3px}}

.score-input-row>span,.score-input-row input{min-width:0;overflow-wrap:anywhere}
@media(max-width:400px){.score-input-row{grid-template-columns:minmax(0,1fr)}.score-input-row input{width:100%}}
