:root{--bg-primary: #0f0f0f;--bg-secondary: #1a1a1a;--bg-tertiary: #252525;--text-primary: #ffffff;--text-secondary: #a0a0a0;--text-muted: #666666;--accent: #BF5AF2;--accent-hover: #D084F5;--border: #333333;--radius: 12px;--radius-sm: 8px;--transition: .2s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.5;overflow-x:hidden;user-select:none;-webkit-user-select:none}input,textarea,[contenteditable=true]{user-select:text;-webkit-user-select:text}.app{display:flex;flex-direction:column;min-height:100vh;max-width:1400px;margin:0 auto;padding:1rem 2rem}.header{display:flex;align-items:center;gap:1rem;padding:1rem 0;margin-bottom:1rem}.header .icon-btn{margin-left:auto}.header .icon-btn+.icon-btn{margin-left:0}.title{font-size:2rem;font-weight:600;letter-spacing:-.02em;outline:none;border-radius:4px;padding:.25rem .5rem;margin:-.25rem -.5rem;transition:background var(--transition),border-radius var(--transition)}.title:hover{background:var(--bg-secondary);border-radius:8px}.title:focus{background:var(--bg-secondary);border-radius:8px}.icon-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;transition:background var(--transition),border-color var(--transition)}.icon-btn:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--text-muted)}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.icon-btn svg{width:20px;height:20px}.icon-btn .icon{width:20px;height:20px}.icon-btn .collapse{display:none}:fullscreen .icon-btn .expand,:-webkit-full-screen .icon-btn .expand{display:none}:fullscreen .icon-btn .collapse,:-webkit-full-screen .icon-btn .collapse{display:block}.main{display:flex;flex:1;gap:2rem;justify-content:center}.wheel-section{display:flex;align-items:center;justify-content:center;padding:1rem}.wheel-container{position:relative;width:min(80vh,80vw);max-width:calc(100vw - 400px);aspect-ratio:1}.pointer{position:absolute;top:-20px;left:50%;transform:translate(-50%);width:0;height:0;border-left:30px solid transparent;border-right:30px solid transparent;border-top:60px solid var(--text-primary);z-index:10;filter:drop-shadow(0 4px 8px rgba(0,0,0,.4))}#wheel-canvas{width:100%;height:100%;cursor:default;transition:transform .1s ease}#wheel-canvas.hover{cursor:pointer;transform:scale(1.01)}#wheel-canvas.spinning{cursor:not-allowed}#wheel-canvas.spinning.hover{cursor:not-allowed;transform:none}.spin-prompt{position:absolute;bottom:-2rem;left:50%;transform:translate(-50%);color:var(--text-secondary);font-size:.875rem;white-space:nowrap}.sidebar{width:320px;display:flex;flex-direction:column;gap:1.5rem;flex-shrink:0;margin-left:auto}.sidebar-section{display:flex;flex-direction:column;gap:1rem}.section-header{display:flex;justify-content:space-between;align-items:center}.section-label{font-size:.9375rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.checkbox-label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary);cursor:pointer}.checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);cursor:pointer}.toggle-label{display:flex;align-items:center;gap:.625rem;font-size:.875rem;color:var(--text-secondary);cursor:pointer}.toggle-switch{position:relative;width:40px;height:22px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:11px;transition:background var(--transition),border-color var(--transition)}.toggle-slider:before{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:var(--text-secondary);border-radius:50%;transition:transform var(--transition),background var(--transition)}.toggle-switch input:checked+.toggle-slider{background:var(--accent);border-color:var(--accent)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(18px);background:#fff}.entries-list{display:flex;flex-direction:column;gap:.5rem;max-height:400px;overflow-y:auto}.entries-list::-webkit-scrollbar{width:6px}.entries-list::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:3px}.entries-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.entries-list::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.entry-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);transition:border-color var(--transition),background var(--transition)}.entry-item:hover{border-color:var(--text-muted)}.entry-item.dragging{opacity:.9;border-color:var(--accent);box-shadow:0 8px 24px #0006;z-index:10;position:relative}.entry-placeholder{visibility:hidden}.entry-drag-handle{display:flex;align-items:center;justify-content:center;width:20px;height:20px;color:var(--text-muted);cursor:grab;flex-shrink:0}.entry-drag-handle:active{cursor:grabbing}.entry-drag-handle svg{width:16px;height:16px}.entry-color{position:relative;width:32px;height:32px;border-radius:6px;overflow:hidden;flex-shrink:0;cursor:pointer}.entry-color input[type=color]{position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;width:calc(100% + 16px);height:calc(100% + 16px);border:none;cursor:pointer}.entry-text{flex:1;min-width:0;padding:.375rem .5rem;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--text-primary);font-family:inherit;font-size:.9375rem;transition:border-color var(--transition),background var(--transition)}.entry-text:hover{background:var(--bg-tertiary)}.entry-text:focus{outline:none;background:var(--bg-tertiary);border-color:var(--accent)}.entry-weight{width:48px;padding:.375rem .5rem;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);font-family:inherit;font-size:.875rem;text-align:center;flex-shrink:0;display:none;-moz-appearance:textfield}.entry-weight::-webkit-outer-spin-button,.entry-weight::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.entry-weight:focus{outline:none;border-color:var(--accent)}.entry-weight::placeholder{color:var(--text-muted)}body.weighted-mode .entry-weight{display:block}.entry-remove{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;border-radius:4px;color:var(--text-muted);font-size:18px;cursor:pointer;flex-shrink:0;transition:background var(--transition),color var(--transition)}.entry-remove:hover{background:#e63946;color:#fff}.button-row{display:flex;gap:1rem}.btn{flex:1;padding:.75rem 1rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:inherit;font-size:.875rem;font-weight:500;cursor:pointer;transition:background var(--transition),border-color var(--transition),transform var(--transition)}.btn:hover{background:var(--bg-tertiary);border-color:var(--text-muted)}.btn:active{transform:scale(.98)}.btn-small{padding:.5rem .75rem;font-size:.8125rem}.btn-primary{background:var(--accent);border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-danger{background:#e63946;border-color:#e63946}.btn-danger:hover{background:#d62839;border-color:#d62839}.btn-icon{flex:0;padding:.75rem;display:flex;align-items:center;justify-content:center}.btn-icon svg{width:18px;height:18px}.btn-with-icon{display:flex;align-items:center;justify-content:center;gap:1rem}.btn-with-icon svg{width:16px;height:16px;flex-shrink:0}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center}.modal[hidden]{display:none}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#000c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{position:relative;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:3rem 4rem;text-align:center;min-width:400px;animation:modal-in .4s cubic-bezier(.34,1.56,.64,1)}@keyframes modal-in{0%{opacity:0;transform:scale(.8) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.winner-label{font-size:1rem;font-weight:600;text-transform:uppercase;letter-spacing:.2em;color:var(--accent);margin-bottom:1rem}.winner-name{font-size:3rem;font-weight:700;line-height:1.2;margin-bottom:2rem;max-width:400px;word-break:break-word}.modal-confirm{padding:2rem;max-width:360px}.confirm-title{font-size:1.25rem;font-weight:600;margin-bottom:.5rem}.confirm-message{font-size:.9375rem;color:var(--text-secondary);margin-bottom:1.5rem;line-height:1.5}.confirm-buttons{display:flex;gap:1rem}.confirm-buttons .btn{flex:1}.reset-btn{position:fixed;bottom:1.5rem;right:1.5rem;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;transition:background var(--transition),border-color var(--transition),color var(--transition);z-index:50}.reset-btn:hover{background:#e63946;border-color:#e63946;color:#fff}.reset-btn svg{width:20px;height:20px}@media (max-width: 800px){.main{flex-direction:column;justify-content:flex-start}.wheel-section{order:1}.sidebar{order:2;width:100%;margin-left:0}.wheel-container{width:min(80vw,400px)}.modal-content{padding:2rem;margin:1rem}.winner-name{font-size:2rem}}@media (max-width: 500px){.header{padding:.5rem 0}.title{font-size:1.25rem}.wheel-container{max-width:300px}.entries-textarea{height:150px}}:fullscreen .app,:-webkit-full-screen .app{padding:2rem;max-width:100%;height:100vh}:fullscreen .header,:-webkit-full-screen .header{position:absolute;top:1rem;right:1rem;left:auto;padding:0;margin:0}:fullscreen .title,:-webkit-full-screen .title{display:none}:fullscreen .main,:-webkit-full-screen .main{flex:1;justify-content:center;align-items:center}:fullscreen .sidebar,:-webkit-full-screen .sidebar{display:none}:fullscreen .wheel-section,:-webkit-full-screen .wheel-section{flex:none;padding:0}:fullscreen .wheel-container,:-webkit-full-screen .wheel-container{max-width:min(80vh,80vw)}:fullscreen .spin-prompt,:-webkit-full-screen .spin-prompt{font-size:1rem}
