:root {
  --bg: #09090b; --bg-secondary: #18181b; --text: #fff; --muted: #a1a1aa;
  --accent: #8b5cf6; --accent-text: #fff; --panel: rgba(24,24,27,.88); --panel-solid:#18181b;
  --border: #2d2d32; --radius: 20px; --shadow: 0 24px 70px rgba(0,0,0,.35);
  --font: Inter, system-ui, sans-serif; --input:#111114; --danger:#ef4444; --focus:#a78bfa;
  --page-padding: 24px; --gap:24px; --max-width:1600px; --editor-width:460px;
}
*{box-sizing:border-box} html{min-height:100%;background:var(--bg)} body{margin:0;min-width:0;min-height:100vh;color:var(--text);font-family:var(--font);background-color:var(--bg);background-image:var(--page-background);background-size:var(--page-background-size,cover);background-position:var(--page-background-position,center);background-attachment:fixed}
button,input{font:inherit} button{color:inherit} button:focus-visible,input:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.app-shell{width:min(100%,var(--max-width));margin:0 auto;padding:var(--page-padding);display:grid;gap:var(--gap)}
.site-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:4px 2px}.brand-row{display:flex;align-items:center;gap:14px}.site-logo{width:52px;height:52px;object-fit:contain}.site-header h1{margin:0;font-size:clamp(1.7rem,3vw,2.55rem);letter-spacing:-.035em}.site-header p{margin:6px 0 0;color:var(--muted)}
.main-grid{display:grid;grid-template-columns:minmax(420px,var(--editor-width)) minmax(0,1fr);gap:var(--gap);align-items:start}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.editor-panel{padding:20px;min-width:0;max-height:min(720px,calc(100vh - 190px));overflow:auto;scrollbar-gutter:stable}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:18px}.panel-heading.compact{align-items:center;margin-bottom:10px}.panel-heading h2,.history-panel h2{margin:0;font-size:1.05rem}.muted{color:var(--muted);margin:5px 0 0;font-size:.9rem}
.button{border:1px solid var(--border);border-radius:12px;padding:10px 14px;font-weight:750;cursor:pointer;background:var(--panel-solid);transition:transform .15s ease,filter .15s ease,border-color .15s ease}.button:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.08)}.button:disabled{opacity:.5;cursor:not-allowed}.button-primary{background:var(--accent);color:var(--accent-text);border-color:transparent}.button-secondary{background:var(--panel-solid)}.button-ghost{background:transparent;padding:8px 10px}.button-danger{color:#fff;background:var(--danger);border-color:transparent}.header-action{white-space:nowrap}
.entries-list{display:grid;gap:10px}.entry-row{display:grid;grid-template-columns:28px minmax(0,1fr) 72px 38px 38px;gap:8px;align-items:center;padding:10px;border:1px solid var(--border);border-radius:14px;background:color-mix(in srgb,var(--panel-solid) 82%,transparent)}.drag-handle{cursor:grab;user-select:none;text-align:center;color:var(--muted);font-size:1.2rem}.entry-main{display:grid;grid-template-columns:34px minmax(140px,1fr);gap:8px;align-items:center}.color-input{width:34px;height:34px;padding:2px;border:1px solid var(--border);border-radius:9px;background:transparent;cursor:pointer}.text-input,.weight-input{min-width:0;width:100%;height:36px;border:1px solid var(--border);border-radius:9px;background:var(--input);color:var(--text);padding:0 9px}.weight-input{text-align:center}.icon-button{width:36px;height:36px;border:1px solid var(--border);border-radius:9px;background:transparent;cursor:pointer;display:grid;place-items:center}.icon-button:hover{background:rgba(255,255,255,.06)}.toggle{display:grid;place-items:center}.toggle input{width:19px;height:19px;accent-color:var(--accent)}.entry-row.dragging{opacity:.45}.entry-row.drag-over{border-color:var(--accent)}
.wheel-stage{min-width:0;min-height:0;display:grid;place-items:center;padding:8px 22px 18px}.wheel-wrap{position:relative;width:min(100%,var(--wheel-size,620px),calc(100vh - 250px));min-width:0;aspect-ratio:1;display:grid;place-items:center;filter:var(--wheel-filter,none)}#wheelCanvas{width:100%;height:100%;display:block}.spin-button{position:absolute;z-index:3;width:var(--center-button-size,126px);height:var(--center-button-size,126px);border-radius:50%;border:var(--center-button-border-width,8px) solid var(--center-button-border,#18181b);background:var(--center-button-bg,#fff);color:var(--center-button-text,#111);font-size:var(--center-button-font-size,23px);font-weight:var(--center-button-font-weight,900);cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.28);transition:transform .16s ease,opacity .16s ease}.spin-button:hover:not(:disabled){transform:scale(var(--center-button-hover,1.05))}.spin-button:disabled{opacity:var(--center-button-disabled-opacity,.58);cursor:not-allowed}.pointer{position:absolute;z-index:4;width:0;height:0;filter:drop-shadow(0 4px 5px rgba(0,0,0,.35));transition:transform .06s ease}.pointer.top{top:var(--pointer-offset,-4px);left:50%;transform:translateX(-50%);border-left:calc(var(--pointer-size,38px)*.55) solid transparent;border-right:calc(var(--pointer-size,38px)*.55) solid transparent;border-top:var(--pointer-size,38px) solid var(--pointer-color,#fff)}.pointer.right{right:var(--pointer-offset,-4px);top:50%;transform:translateY(-50%);border-top:calc(var(--pointer-size,38px)*.55) solid transparent;border-bottom:calc(var(--pointer-size,38px)*.55) solid transparent;border-right:var(--pointer-size,38px) solid var(--pointer-color,#fff)}.pointer.bottom{bottom:var(--pointer-offset,-4px);left:50%;transform:translateX(-50%);border-left:calc(var(--pointer-size,38px)*.55) solid transparent;border-right:calc(var(--pointer-size,38px)*.55) solid transparent;border-bottom:var(--pointer-size,38px) solid var(--pointer-color,#fff)}.pointer.left{left:var(--pointer-offset,-4px);top:50%;transform:translateY(-50%);border-top:calc(var(--pointer-size,38px)*.55) solid transparent;border-bottom:calc(var(--pointer-size,38px)*.55) solid transparent;border-left:var(--pointer-size,38px) solid var(--pointer-color,#fff)}.pointer.tick{animation:pointerTick .09s ease-out}@keyframes pointerTick{50%{scale:var(--pointer-tick-scale,1.12)}}
.controls-panel,.history-panel{padding:16px 18px}.controls-bar{display:flex;flex-wrap:wrap;gap:10px}.history-list{margin:0;padding-left:24px;display:grid;gap:7px}.history-list li::marker{color:var(--muted)}.history-item{display:flex;gap:10px;align-items:center}.history-dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto}.empty-state{color:var(--muted);font-size:.92rem;margin:12px 0 0}.site-footer{text-align:center;color:var(--muted);font-size:.84rem;padding:4px}
.modal{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:20px}.modal[hidden]{display:none}.modal-backdrop{position:absolute;inset:0;background:var(--modal-backdrop,rgba(0,0,0,.72));backdrop-filter:var(--modal-blur,blur(10px));-webkit-backdrop-filter:var(--modal-blur,blur(10px))}.modal-card{position:relative;z-index:1;width:min(92vw,500px);padding:36px 28px 30px;text-align:center;background:var(--modal-bg,#18181b);color:var(--modal-text,#fff);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);box-shadow:0 30px 100px rgba(0,0,0,.55)}.modal-card.animate{animation:modalIn .32s cubic-bezier(.2,.9,.2,1.15)}@keyframes modalIn{from{opacity:0;transform:translateY(16px) scale(.94)}to{opacity:1;transform:none}}.modal-x{position:absolute;right:14px;top:12px;width:38px;height:38px;border:0;background:transparent;color:var(--muted);font-size:1.7rem;cursor:pointer}.winner-icon{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;margin:0 auto 14px;background:var(--modal-accent,var(--accent));font-size:1.5rem}.modal-card h2{margin:0;font-size:1.25rem}.winner-name{margin:16px 0 24px;font-size:clamp(2rem,7vw,3.3rem);font-weight:900;letter-spacing:-.04em;overflow-wrap:anywhere}.modal-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.confetti-canvas{position:fixed;inset:0;width:100%;height:100%;z-index:30;pointer-events:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
body.presentation .app-shell{max-width:none;min-height:100vh}body.presentation .main-grid{grid-template-columns:1fr}body.presentation .editor-panel{display:none}body.presentation .wheel-stage{min-height:calc(100vh - 230px);padding:0}body.presentation .wheel-wrap{width:min(92vmin,var(--presentation-wheel-max,920px))}body.presentation.hide-presentation-history .history-panel{display:none}body.presentation.hide-presentation-controls .controls-panel{display:none}body.presentation.hide-presentation-subtitle #siteSubtitle{display:none}body.presentation.clean-presentation-bg{--panel:transparent;--shadow:none}.presentation-only-hidden{display:none!important}
@media(max-width:1100px){.main-grid{grid-template-columns:minmax(360px,420px) minmax(0,1fr)}.entry-main{grid-template-columns:32px minmax(100px,1fr)}.wheel-wrap{width:min(100%,var(--wheel-size,620px),calc(100vh - 250px))}}
@media(max-width:900px){.app-shell{padding:16px;gap:16px}.site-header{align-items:flex-start}.header-action{font-size:.85rem}.main-grid{display:flex;flex-direction:column}.wheel-stage{order:-1;min-height:auto;padding:4px 0 16px}.wheel-wrap{width:min(88vw,var(--wheel-size,620px),72vh);max-width:620px}.editor-panel{max-height:none}.entry-row{grid-template-columns:30px minmax(0,1fr) 68px 36px 36px}.controls-panel,.history-panel{padding:14px}.site-header p{font-size:.9rem}}
@media(max-width:520px){.site-header{flex-direction:column}.header-action{align-self:flex-start}.entry-row{grid-template-columns:28px minmax(0,1fr) 62px 34px 34px;padding:8px;gap:6px}.entry-main{grid-template-columns:30px minmax(0,1fr)}.color-input{width:30px;height:34px}.button{padding:9px 11px}.modal-actions .button{flex:1}.spin-button{max-width:30vw;max-height:30vw}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
