:root{--accent:#C2410C}
@media (prefers-color-scheme:dark){:root{--accent:#F97316;--accent-ink:#1c1b19}}
.wheel-tool{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:24px;align-items:start}
@media (max-width:760px){.wheel-tool{grid-template-columns:minmax(0,1fr)}}
.stage canvas{max-width:100%}
.stage{position:relative;display:flex;justify-content:center;padding-top:14px}
.stage canvas{cursor:pointer;touch-action:manipulation;border-radius:50%;box-shadow:0 18px 50px -24px color-mix(in oklab,var(--accent) 60%,transparent)}
.pointer{position:absolute;top:0;left:50%;transform:translateX(-50%);width:0;height:0;border-left:14px solid transparent;border-right:14px solid transparent;border-top:28px solid var(--text);z-index:2;filter:drop-shadow(0 2px 2px rgba(0,0,0,.25))}
.stage-actions{display:flex;justify-content:center;gap:10px;margin-top:16px;flex-wrap:wrap}
.btn.xl{min-width:180px;font-size:18px;min-height:52px}
.entries-head{display:flex;justify-content:space-between;align-items:baseline}
#entries{min-height:260px;font-size:15px}
.tools{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
dialog{border:0;border-radius:var(--r-panel);padding:28px 24px;background:var(--surface);color:var(--text);max-width:min(420px,calc(100vw - 32px));width:100%;text-align:center;box-shadow:0 30px 80px -20px rgba(0,0,0,.45)}
dialog::backdrop{background:rgba(10,10,10,.5)}
dialog p{margin:0;color:var(--muted)}
#winner{font-size:clamp(28px,7vw,40px);font-weight:800;letter-spacing:-.03em;margin:8px 0 22px;color:var(--accent);overflow-wrap:anywhere}
dialog .row{justify-content:center}
#histbox ol{margin:6px 0 0;padding-left:20px;color:var(--muted)}
/* ladder */
.lad-ctrl{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin-bottom:14px}
.lad-ctrl select{width:auto}
.lad-row{display:grid;gap:6px}
.lad-row input{text-align:center;padding:8px 4px;font-size:14px;min-height:40px}
.lad-row input.masked{color:transparent;text-shadow:0 0 0 transparent;background:repeating-linear-gradient(45deg,var(--surface-2),var(--surface-2) 6px,var(--bg) 6px,var(--bg) 12px)}
#heads{display:grid;gap:6px;margin-bottom:6px}
#ladder{width:100%;display:block;margin:6px 0}
#ladder .rail{stroke:var(--muted);stroke-width:3;stroke-linecap:round;opacity:.55}
#ladder .path{fill:none;stroke-width:6;stroke-linecap:round;stroke-linejoin:round}
#outcomes{margin:14px 0 0;padding-left:20px}
#outcomes span{color:var(--muted)}
/* teams */
#teams{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-top:18px}
.team{background:var(--surface-2);border-radius:var(--r-panel);padding:14px 16px}
.team h3{margin:0 0 6px;display:flex;justify-content:space-between;font-size:16px}
.team h3 span{color:var(--muted);font-weight:500;font-size:14px}
.team ol{margin:0;padding-left:20px}
/* balls */
.balls{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.ball{display:inline-grid;place-items:center;min-width:44px;height:44px;padding:0 8px;border-radius:999px;font-weight:800;font-variant-numeric:tabular-nums;color:#fff;background:var(--accent)}
.ball.plain{background:var(--surface-2);color:var(--text)}
.ball.y{background:#E8A400;color:#1c1b19}.ball.b{background:#3B7DD8}.ball.r{background:#E0533D}.ball.g{background:#8A8A8A}.ball.gr{background:#4CA64C}
.lrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:8px 0}
.lrow .lbl{width:24px;font-weight:800;color:var(--muted)}
.checks{display:flex;gap:18px;flex-wrap:wrap;margin:4px 0 16px}
.checks label{display:flex;gap:8px;align-items:center;font-weight:500;margin:0}
.checks input{width:18px;height:18px;accent-color:var(--accent)}
@media (max-width:420px){.ball{min-width:38px;height:38px;font-size:15px}.lrow{gap:6px}.lrow .lbl{width:18px}}
.ball.bonus{margin-left:10px;box-shadow:0 0 0 3px var(--surface),0 0 0 5px #3B7DD8}
