:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.text-input-wrapper{position:relative;display:flex;align-items:center;width:100%}.text-input-wrapper.has-clear .text-input{padding-right:28px}.text-input{width:100%;font-family:inherit}.text-input-clear{position:absolute;right:6px;display:flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;background:var(--text-muted);border:none;border-radius:50%;color:var(--bg-primary);cursor:pointer;opacity:.7}.text-input-clear:active{opacity:1}.create-game-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:600;color:var(--text-primary)}.form-group input{padding:.75rem 1rem;font-size:1rem;border:none;border-bottom:1px solid var(--border-color);border-radius:8px 8px 0 0;background:var(--bg-secondary);color:var(--text-primary);transition:border-color .2s,background-color .2s}.form-group input:hover{border-bottom-color:var(--text-muted)}.form-group input:focus{outline:none;border-bottom-color:var(--primary-color);background:var(--bg-tertiary)}.form-group input::placeholder{color:var(--text-muted)}.player-list{display:flex;flex-direction:column;gap:.5rem}.player-input-row{display:flex;align-items:end;gap:.75rem}.player-input-row input{flex:1}.remove-player-btn{width:32px;height:32px;padding:0;margin-bottom:.25rem;font-size:1.25rem;font-weight:700;color:var(--text-muted);background:transparent;border:none;cursor:pointer;transition:color .2s}.remove-player-btn:hover:not(:disabled){color:var(--danger-color)}.remove-player-btn:disabled{opacity:.5;cursor:not-allowed}.add-player-row{display:flex;align-items:end;gap:.75rem;margin-top:.5rem}.add-player-row input{flex:1}.add-player-btn{padding:.5rem 1rem;margin-bottom:.25rem;font-size:.875rem;font-weight:600;color:var(--primary-color);background:transparent;border:1px solid var(--primary-color);border-radius:6px;cursor:pointer;transition:background-color .2s,color .2s}.add-player-btn:hover:not(:disabled){background:var(--primary-color);color:#fff}.add-player-btn:disabled{opacity:.5;cursor:not-allowed}.submit-btn{padding:1rem 1.5rem;font-size:1.125rem;font-weight:600;color:#fff;background:var(--primary-color);border:none;border-radius:8px;cursor:pointer;transition:background-color .2s,transform .1s}.submit-btn:hover:not(:disabled){background:var(--primary-color-dark)}.submit-btn:active:not(:disabled){transform:scale(.98)}.submit-btn:disabled{opacity:.5;cursor:not-allowed}.form-hint{text-align:center;color:var(--text-muted);font-size:.875rem;margin:0}.honeypot-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}.terms-group{margin-top:.5rem}.terms-label{display:flex;align-items:flex-start;gap:.75rem;cursor:pointer;font-weight:400}.terms-label input[type=checkbox]{width:18px;height:18px;margin-top:.125rem;cursor:pointer;accent-color:var(--primary-color);flex-shrink:0}.terms-text{font-size:.875rem;color:var(--text-secondary);line-height:1.4}.terms-text a{color:var(--primary-color);text-decoration:underline;text-underline-offset:2px}.terms-text a:hover{color:var(--primary-color-dark)}.language-selector{display:flex;gap:.25rem}.language-btn{padding:.25rem .5rem;font-size:.75rem;font-weight:500;border:none;border-radius:4px;background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.language-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.language-btn.active{background:var(--primary);color:#fff}.home-page{min-height:100vh;padding:1rem;background:var(--bg-primary)}.container{max-width:600px;margin:0 auto;padding:0 1rem}.home-header{text-align:center;padding:2rem 0}.home-header-top{display:flex;justify-content:center;align-items:center;gap:1rem;margin-bottom:.5rem}.home-header h1{font-size:2.5rem;font-weight:700;color:var(--primary-color);margin:0}.home-header p{color:var(--text-secondary);margin:0}.error-banner{padding:1rem;margin-bottom:1rem;background:var(--danger-bg);color:var(--danger-color);border-radius:8px;text-align:center}.success-card{padding:1.5rem;background:var(--bg-secondary);border-radius:12px;box-shadow:0 4px 6px #0000001a}.success-card h1{text-align:center;color:var(--success-color);margin:0 0 1.5rem}.url-section{margin-bottom:1.5rem}.url-section h2{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0 0 .25rem}.url-description{font-size:.875rem;color:var(--text-muted);margin:0 0 .5rem}.url-row{display:flex;align-items:center;gap:.5rem}.url-input{flex:1;padding:.75rem 1rem;font-size:.875rem;border:none;border-bottom:1px solid var(--border-color);border-radius:8px 8px 0 0;background:var(--bg-tertiary);color:var(--text-primary)}.copy-btn{padding:.75rem 1rem;font-size:.875rem;font-weight:600;color:var(--primary-color);background:transparent;border:1px solid var(--primary-color);border-radius:6px;cursor:pointer;transition:background-color .2s,color .2s;white-space:nowrap}.copy-btn:hover{background:var(--primary-color);color:#fff}.start-btn{width:100%;padding:1rem;font-size:1.125rem;font-weight:600;color:#fff;background:var(--primary-color);border:none;border-radius:8px;cursor:pointer;transition:background-color .2s;margin-bottom:.75rem}.start-btn:hover{background:var(--primary-color-dark)}.new-game-btn{width:100%;padding:.75rem;font-size:1rem;color:var(--text-secondary);background:transparent;border:none;cursor:pointer;text-decoration:underline}.new-game-btn:hover{color:var(--text-primary)}.recent-games{margin-top:2rem;padding-top:2rem;border-top:1px solid var(--border-color)}.recent-games h2{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0 0 .25rem}.recent-games-subtitle{font-size:.875rem;color:var(--text-muted);margin:0 0 1rem}.recent-games-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.recent-game-item{background:var(--bg-secondary);border-radius:8px;overflow:hidden;transition:background-color .2s}.recent-game-item:hover{background:var(--bg-tertiary, var(--bg-secondary))}.recent-game-link{display:flex;justify-content:space-between;align-items:center;padding:.875rem 1rem;text-decoration:none;color:inherit}.recent-game-name{font-weight:500;color:var(--text-primary)}.recent-game-meta{font-size:.875rem;color:var(--text-muted)}.game-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1rem 0;margin-bottom:1rem}.game-header-content{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.game-name{font-size:1.5rem;font-weight:700;line-height:1.3;color:var(--text-primary);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-name-input{flex:1;min-width:0;height:44px;padding:0 .75rem;font-family:inherit;font-size:1.5rem;font-weight:700;color:var(--text-primary);background:var(--bg-secondary);border:none;border-bottom:1px solid var(--border-color);border-radius:8px 8px 0 0;outline:none;transition:border-color .2s,background-color .2s}.game-name-input:hover{border-bottom-color:var(--text-muted)}.game-name-input:focus{border-bottom-color:var(--primary-color);background:var(--bg-tertiary)}.game-name-input::placeholder{color:var(--text-muted)}.header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.header-action-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:8px;color:var(--text-secondary);cursor:pointer;transition:all .2s}.header-action-btn:hover{border-color:var(--primary-color);color:var(--primary-color)}.header-action-btn:active{background:var(--bg-tertiary)}.header-action-btn.disabled,.header-action-btn:disabled{opacity:.4;cursor:not-allowed}.header-action-btn.disabled:hover,.header-action-btn:disabled:hover{border-color:var(--border-color);color:var(--text-secondary)}.edit-toolbar{position:fixed;bottom:0;left:.5rem;right:.5rem;display:flex;flex-direction:column;gap:.75rem;padding:1rem 1.25rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:16px 16px 0 0;box-shadow:0 -4px 20px #00000026;z-index:9999;padding-bottom:calc(1rem + env(safe-area-inset-bottom,0px));animation:slideUp .2s ease-out}.edit-toolbar-top{display:flex;justify-content:center}.edit-toolbar-row{display:flex;align-items:center;gap:.75rem}.edit-toolbar-left{display:flex;align-items:center}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.edit-toolbar-btn{padding:.875rem 1.5rem;font-size:1.125rem;font-weight:600;border:none;border-radius:12px;cursor:pointer;transition:background-color .15s,opacity .15s}.edit-toolbar-btn:active{opacity:.8}.edit-toolbar-btn.done{flex:1;background:var(--primary-color);color:#fff}.player-card{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:.75rem;padding:1rem;background:var(--bg-secondary);border-radius:12px;box-shadow:0 2px 4px #0000000d;transition:background-color .3s ease}.player-card.admin{grid-template-columns:1fr auto;align-items:end}.player-card.flash{animation:score-flash .6s ease-in-out}@keyframes score-flash{0%{background-color:var(--bg-secondary)}50%{background-color:var(--success-bg)}to{background-color:var(--bg-secondary)}}.player-rank{display:flex;align-items:center;justify-content:center;width:40px;height:40px;font-size:1.5rem}.rank-number{font-size:1.25rem;font-weight:600;color:var(--text-muted)}.player-name{display:flex;align-items:center;gap:.5rem;font-size:1.125rem;font-weight:500;color:var(--text-primary);overflow:hidden;min-width:0}.player-avatar{font-size:1.25rem;flex-shrink:0}.player-name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-name-input{width:100%;height:44px;padding:0 .75rem;font-family:inherit;font-size:1.125rem;font-weight:500;color:var(--text-primary);background:var(--bg-tertiary);border:none;border-bottom:1px solid var(--border-color);border-radius:8px 8px 0 0;outline:none;transition:border-color .2s,background-color .2s}.player-name-input:hover{border-bottom-color:var(--text-muted)}.player-name-input:focus{border-bottom-color:var(--primary-color);background:var(--bg-primary)}.player-name-input:disabled{opacity:.6}.player-score{display:flex;align-items:center;justify-content:flex-end;min-width:80px}.player-score-input{width:80px;height:44px;padding:0 .75rem;font-family:inherit;font-size:1.25rem;font-weight:700;color:var(--text-primary);background:var(--bg-tertiary);border:none;border-bottom:1px solid var(--border-color);border-radius:8px 8px 0 0;outline:none;text-align:right;font-variant-numeric:tabular-nums;transition:border-color .2s,background-color .2s}.player-score-input:hover{border-bottom-color:var(--text-muted)}.player-score-input:focus{border-bottom-color:var(--primary-color);background:var(--bg-primary)}.player-score-input:disabled{opacity:.6}.player-score-input.positive{color:var(--success-color)}.player-score-input.negative{color:var(--danger-color)}.player-score.syncing .score-value,.player-score.syncing .player-score-input{opacity:.7}.player-card.pending{position:relative}.player-card.pending:after{content:"";position:absolute;top:50%;right:12px;width:8px;height:8px;background:var(--primary-color);border-radius:50%;transform:translateY(-50%);animation:pulse-sync 1s ease-in-out infinite}@keyframes pulse-sync{0%,to{opacity:.4;transform:translateY(-50%) scale(1)}50%{opacity:1;transform:translateY(-50%) scale(1.2)}}.score-value{font-size:1.5rem;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}.score-value.positive{color:var(--success-color)}.score-value.negative{color:var(--danger-color)}.score-mode-buttons{display:flex;gap:2px}.score-toolbar-preview{font-size:1.125rem;font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums}.score-mode-btn{width:44px;height:44px;border:2px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-secondary);font-size:1.5rem;font-weight:600;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center}.score-mode-btn:first-child{border-radius:10px 0 0 10px}.score-mode-btn:last-child{border-radius:0 10px 10px 0}.score-mode-btn:not(:first-child){border-left:none}.score-mode-btn:hover{background:var(--bg-secondary)}.score-mode-btn.active{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.score-mode-btn:focus{outline:none}.player-list{display:flex;flex-direction:column;gap:.75rem}.player-list-empty{text-align:center;padding:3rem 1rem;color:var(--text-muted)}.player-list-empty p{margin:0}.drop-zones-container{position:fixed;bottom:0;left:0;right:0;display:flex;z-index:1000;animation:slide-up .2s ease-out}.drop-zone{flex:1;display:flex;align-items:center;justify-content:center;gap:.75rem;padding:1.25rem;color:#fff;font-weight:600;font-size:.875rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:2px dashed transparent;transition:padding .15s,background-color .15s}.drop-zone svg{flex-shrink:0;transition:transform .15s}.drop-zone.over svg{transform:scale(1.2)}.claim-drop-zone{background:#3b82f6e6;border-color:#93c5fd80}.claim-drop-zone.over{background:#2563eb;padding:1.5rem;border-color:#93c5fdcc}.trash-drop-zone{background:#dc3545e6;border-color:#f8b4b480}.trash-drop-zone.over{background:#c82333;padding:1.5rem;border-color:#f8b4b4cc}@keyframes slide-up{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.drag-overlay-card{opacity:.9;transform:scale(1.02);box-shadow:0 8px 24px #0003;border-radius:12px;overflow:hidden}.drag-overlay-card .player-card{border-radius:12px}.animated-player-list{position:relative}.animated-player-wrapper{will-change:transform}.animated-player-wrapper.animating{z-index:1}.animated-player-wrapper.tappable{cursor:pointer}.animated-player-wrapper.tappable:hover .player-card{background:var(--bg-tertiary)}.animated-player-wrapper.tappable:active .player-card{transform:scale(.98)}.animated-player-wrapper.claimed .player-card{border:2px solid var(--primary-color)}.score-graph{margin-top:1.5rem;padding:1rem;background:var(--bg-secondary);border-radius:12px}.score-graph svg{width:100%;height:auto;display:block}.score-graph-empty{text-align:center;padding:2rem 1rem}.score-graph-empty p{color:var(--text-muted);font-size:.875rem;margin:0}.graph-tick-label{font-size:9px;fill:var(--text-muted)}.score-graph-legend{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border-color)}.legend-item{display:flex;align-items:center;gap:.375rem;font-size:.75rem}.legend-color{width:10px;height:10px;border-radius:2px;flex-shrink:0}.legend-name{color:var(--text-secondary);max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legend-score{color:var(--text-primary);font-weight:600;font-variant-numeric:tabular-nums}.reaction-bubbles{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.5rem}.reaction-bubble{display:inline-flex;align-items:center;gap:.125rem;padding:.125rem .375rem;background:var(--bg-tertiary);border-radius:12px;font-size:.875rem;animation:bubble-pop .2s ease-out}@keyframes bubble-pop{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.reaction-bubble.mine{background:var(--primary-color-alpha, rgba(99, 102, 241, .15));border:1px solid var(--primary-color)}.reaction-bubble-emoji{font-size:.875rem}.reaction-bubble-count{font-size:.75rem;font-weight:500;color:var(--text-secondary)}.reaction-add-button{width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:.75rem;color:var(--text-muted);background:var(--bg-secondary);border:1px dashed var(--border-color);border-radius:12px;cursor:pointer;transition:background-color .15s,border-color .15s,color .15s}.reaction-add-button:hover{background:var(--bg-tertiary);border-color:var(--primary-color);color:var(--text-primary)}.reaction-picker{display:flex;gap:.25rem;padding:.5rem;background:var(--bg-primary);border-radius:24px;box-shadow:0 4px 16px #00000026;z-index:100;animation:pop-in .15s ease-out}@keyframes pop-in{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.reaction-option{width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:1.25rem;background:transparent;border:2px solid transparent;border-radius:50%;cursor:pointer;transition:transform .1s,background-color .15s,border-color .15s}.reaction-option:hover{background:var(--bg-secondary);transform:scale(1.2)}.reaction-option.selected{background:var(--primary-color-alpha, rgba(99, 102, 241, .15));border-color:var(--primary-color)}.history-feed{margin-top:1.5rem;padding:1rem;background:var(--bg-secondary);border-radius:12px}.history-feed-empty{text-align:center;padding:2rem 1rem}.history-feed-empty p{color:var(--text-muted);font-size:.875rem;margin:0}.history-feed-title{font-size:.875rem;font-weight:600;color:var(--text-secondary);margin:0 0 .75rem;text-transform:uppercase;letter-spacing:.05em}.event-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.event-item{display:flex;flex-direction:column;gap:.25rem;padding:.5rem;background:var(--bg-primary);border-radius:8px;font-size:.875rem;position:relative}.event-content{display:flex;align-items:center;gap:.5rem}.social-actions-list{margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-color)}.social-action-item{background:var(--bg-tertiary)}.event-icon{flex-shrink:0;font-size:1rem}.event-text{flex:1;color:var(--text-primary);line-height:1.3}.event-time{flex-shrink:0;font-size:.75rem;color:var(--text-muted)}.avatar-picker-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fade-in .15s ease-out}.avatar-picker{background:var(--bg-primary);border-radius:16px;padding:1.5rem;max-width:320px;width:100%;box-sizing:border-box;animation:slide-up-picker .2s ease-out}@keyframes slide-up-picker{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.avatar-picker-title{margin:0 0 1rem;font-size:1rem;font-weight:600;text-align:center;color:var(--text-primary)}.avatar-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}.avatar-option{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:1.5rem;min-width:0;background:var(--bg-secondary);border:2px solid transparent;border-radius:8px;cursor:pointer;transition:transform .1s,border-color .15s,background-color .15s}.avatar-option:hover{background:var(--bg-tertiary);transform:scale(1.1)}.avatar-option.selected{border-color:var(--primary-color);background:var(--primary-color-alpha, rgba(99, 102, 241, .1))}.avatar-remove-btn{display:block;width:100%;margin-top:1rem;padding:.75rem;font-size:.875rem;font-weight:500;color:var(--text-secondary);background:transparent;border:1px solid var(--border-color);border-radius:8px;cursor:pointer;transition:background-color .15s,color .15s}.avatar-remove-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.action-menu-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fade-in .15s ease-out}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.action-menu{background:var(--bg-primary);border-radius:16px;padding:1.25rem;max-width:280px;width:100%;animation:slide-up-menu .2s ease-out}@keyframes slide-up-menu{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.action-menu-header{text-align:center;margin-bottom:1rem}.action-menu-target{display:inline-flex;align-items:center;gap:.5rem;font-size:1.125rem;font-weight:600;color:var(--text-primary)}.action-menu-cooldown{text-align:center;padding:.5rem;margin-bottom:.75rem;font-size:.875rem;color:var(--text-muted);background:var(--bg-secondary);border-radius:8px}.action-menu-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.action-button{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem;background:var(--bg-secondary);border:2px solid transparent;border-radius:12px;cursor:pointer;transition:background-color .15s,border-color .15s,transform .1s}.action-button:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--primary-color)}.action-button:active:not(:disabled){transform:scale(.95)}.action-button:disabled{opacity:.5;cursor:not-allowed}.action-emoji{font-size:1.5rem}.action-label{font-size:.75rem;font-weight:500;color:var(--text-secondary);text-transform:capitalize}.toast{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);background-color:#333;color:#fff;padding:.75rem 1.5rem;border-radius:8px;font-size:.9rem;font-weight:500;box-shadow:0 4px 12px #0000004d;z-index:1000;animation:toast-slide-up .2s ease-out}@keyframes toast-slide-up{0%{opacity:0;transform:translate(-50%) translateY(1rem)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media(prefers-color-scheme:light){.toast{background-color:#333;color:#fff}}.game-page{min-height:100vh;padding:1rem;background:var(--bg-primary)}.game-page .container{max-width:600px;margin:0 auto;padding:0 1rem}.loading-state,.error-state,.not-found-state{text-align:center;padding:3rem 1rem}.loading-state p{color:var(--text-muted)}.error-state h2,.not-found-state h2{color:var(--danger-color);margin:0 0 .5rem}.error-state p,.not-found-state p{color:var(--text-secondary);margin:0 0 1.5rem}.back-link{display:inline-block;padding:.75rem 1.5rem;font-weight:600;color:var(--primary-color);text-decoration:none;border:2px solid var(--primary-color);border-radius:8px;transition:background-color .2s,color .2s}.back-link:hover{background:var(--primary-color);color:#fff}.game-footer{display:flex;justify-content:space-between;align-items:center;margin-top:2rem;padding-top:1rem;border-top:1px solid var(--border-color)}.viewer-indicator{display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-muted)}.viewer-indicator:before{content:"";display:inline-block;width:8px;height:8px;background:var(--success-color);border-radius:50%;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.share-section{margin-top:2rem;padding:1rem;background:var(--bg-secondary);border-radius:12px}.share-section h3{font-size:.875rem;font-weight:600;color:var(--text-secondary);margin:0 0 .75rem}.share-url-row{display:flex;gap:.5rem}.share-url-input{flex:1;padding:.625rem .75rem;font-size:.75rem;border:2px solid var(--border-color);border-radius:6px;background:var(--bg-primary);color:var(--text-primary)}.share-copy-btn{padding:.625rem .875rem;font-size:.75rem;font-weight:600;color:var(--primary-color);background:transparent;border:2px solid var(--primary-color);border-radius:6px;cursor:pointer;transition:background-color .2s,color .2s}.share-copy-btn:hover{background:var(--primary-color);color:#fff}.share-native-btn{padding:.625rem .875rem;font-size:.75rem;font-weight:600;color:#fff;background:var(--primary-color);border:2px solid var(--primary-color);border-radius:6px;cursor:pointer;transition:background-color .2s,border-color .2s}.share-native-btn:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.admin-footer{display:flex;justify-content:space-between;align-items:center;margin-top:2rem;padding-top:1rem;border-top:1px solid var(--border-color)}.admin-indicator{display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.875rem;color:var(--text-muted)}.edit-hint{text-align:center;font-size:.75rem;color:var(--text-muted)}.confirm-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.confirm-modal{background:var(--bg-primary);border-radius:12px;padding:1.5rem;max-width:400px;width:100%;box-shadow:0 4px 20px #0000004d}.confirm-modal-title{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin:0 0 .75rem}.confirm-modal-message{color:var(--text-secondary);margin:0 0 1.5rem;line-height:1.5}.confirm-modal-actions{display:flex;gap:.75rem;justify-content:flex-end}.confirm-modal-btn{padding:.625rem 1.25rem;font-size:.875rem;font-weight:600;border-radius:8px;cursor:pointer;transition:all .2s}.confirm-modal-btn.cancel{background:var(--bg-secondary);border:2px solid var(--border-color);color:var(--text-secondary)}.confirm-modal-btn.cancel:hover{border-color:var(--text-secondary);color:var(--text-primary)}.confirm-modal-btn.confirm{background:var(--primary-color);border:2px solid var(--primary-color);color:#fff}.confirm-modal-btn.confirm:hover{background:var(--primary-dark);border-color:var(--primary-dark)}.confirm-modal-btn.confirm.danger{background:#dc3545;border-color:#dc3545}.confirm-modal-btn.confirm.danger:hover{background:#c82333;border-color:#c82333}.score-all-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:flex-start;justify-content:center;z-index:1000;padding:1rem;padding-top:15vh}@media(max-width:480px){.score-all-overlay{padding-top:2rem}}.score-all-modal{background:var(--bg-primary);border-radius:16px;padding:1.5rem;max-width:340px;width:100%;display:flex;flex-direction:column;box-shadow:0 4px 20px #0000004d;position:relative}.score-all-close{position:absolute;top:.75rem;right:.75rem;width:32px;height:32px;border:none;background:transparent;color:var(--text-muted);font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:background-color .15s,color .15s}.score-all-close:hover{background:var(--bg-secondary);color:var(--text-primary)}.score-all-player{text-align:center;margin-bottom:1rem}.score-all-name{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin:0 0 .25rem}.score-all-progress{font-size:.875rem;color:var(--text-muted)}.score-all-input-section{margin-bottom:1.25rem}.score-all-input{width:100%;height:64px;padding:0 1rem;font-size:2rem;font-weight:700;font-family:inherit;text-align:center;border:2px solid var(--border-color);border-radius:12px;background:var(--bg-secondary);color:var(--text-primary);font-variant-numeric:tabular-nums;transition:border-color .2s,background-color .2s}.score-all-input::placeholder{font-size:2rem;font-weight:700;color:var(--text-muted)}.score-all-input:focus{outline:none;border-color:var(--primary-color);background:var(--bg-tertiary)}.score-all-input.invalid{border-color:var(--danger-color)}.score-all-preview{text-align:center;margin-top:.75rem;font-size:1.25rem;font-weight:600;color:var(--text-muted);font-variant-numeric:tabular-nums;min-height:1.5em;transition:color .2s}.score-all-preview.changed{color:var(--primary-color)}.score-all-preview.invalid{color:var(--danger-color)}.score-all-preview-placeholder{opacity:.5}.score-all-actions{display:flex;justify-content:space-between;align-items:center;gap:.75rem}.score-all-mode-buttons{display:flex;gap:2px}.score-all-mode-buttons .score-mode-btn{width:48px;height:48px;border:2px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-secondary);font-size:1.5rem;font-weight:600;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center}.score-all-mode-buttons .score-mode-btn:first-child{border-radius:10px 0 0 10px}.score-all-mode-buttons .score-mode-btn:last-child{border-radius:0 10px 10px 0}.score-all-mode-buttons .score-mode-btn:not(:first-child){border-left:none}.score-all-mode-buttons .score-mode-btn:hover{background:var(--bg-secondary)}.score-all-mode-buttons .score-mode-btn.active{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.score-all-mode-buttons .score-mode-btn:focus{outline:none}.score-all-nav{display:flex;gap:.5rem}.score-all-btn{padding:.75rem 1rem;font-size:1rem;font-weight:600;border-radius:10px;cursor:pointer;transition:all .2s}.score-all-btn.nav{width:48px;height:48px;padding:0;background:var(--bg-secondary);border:2px solid var(--border-color);color:var(--text-secondary);font-size:1.5rem;display:flex;align-items:center;justify-content:center}.score-all-btn.nav:hover:not(:disabled){border-color:var(--primary-color);color:var(--primary-color)}.score-all-btn.nav:disabled{opacity:.3;cursor:not-allowed}.score-all-btn.nav.finish,.score-all-btn.nav.finish:disabled{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.score-all-btn.nav.finish:hover:not(:disabled){background:var(--primary-color-dark);border-color:var(--primary-color-dark)}.sortable-player-card{display:flex;align-items:stretch;gap:0}.sortable-player-card.dragging{opacity:.8;z-index:100}.sortable-player-card.dragging .sortable-card-content{box-shadow:0 8px 24px #00000026}.drag-handle{display:flex;align-items:center;justify-content:center;width:32px;padding:0 4px;color:var(--text-muted);cursor:grab;touch-action:none;flex-shrink:0;border-radius:12px 0 0 12px;background:var(--bg-tertiary);transition:color .2s,background-color .2s}.drag-handle:hover{color:var(--text-primary);background:var(--bg-secondary)}.drag-handle:active{cursor:grabbing}.sortable-card-content{flex:1;min-width:0;display:flex;position:relative}.sortable-card-content .player-card{flex:1;border-radius:0 12px 12px 0}.claimed-badge{position:absolute;top:4px;right:4px;width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:var(--primary-color);color:#fff;border-radius:50%}.sortable-player-card.claimed .drag-handle{background:var(--primary-color-alpha, rgba(99, 102, 241, .1));border-left:2px solid var(--primary-color)}.sort-order-selector{margin-bottom:1rem}.sort-order-label{display:block;font-size:.875rem;font-weight:600;color:var(--text-secondary);margin-bottom:.5rem}.sort-order-options{display:flex;background:var(--bg-tertiary);border-radius:8px;padding:4px}.sort-order-btn{flex:1;padding:.5rem .75rem;font-size:.8125rem;font-weight:500;color:var(--text-secondary);background:transparent;border:none;border-radius:6px;cursor:pointer;transition:all .2s}.sort-order-btn:hover:not(.active){color:var(--text-primary)}.sort-order-btn.active{background:var(--bg-secondary);color:var(--text-primary);box-shadow:0 1px 3px #0000001a}.score-all-action-btn{width:100%;margin-top:.75rem;padding:.625rem 1rem;font-size:.875rem;font-weight:600;color:#fff;background:var(--primary-color);border:2px solid var(--primary-color);border-radius:6px;cursor:pointer;transition:all .2s}.score-all-action-btn:hover{background:var(--primary-dark);border-color:var(--primary-dark)}.add-player-trigger{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.875rem 1rem;margin-top:.75rem;background:var(--bg-secondary);border:2px dashed var(--border-color);border-radius:12px;color:var(--text-secondary);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.add-player-trigger:hover{border-color:var(--primary-color);color:var(--primary-color);background:var(--bg-tertiary)}.add-player-form{display:flex;align-items:center;gap:.75rem;padding:1rem;margin-top:.75rem;background:var(--bg-secondary);border-radius:12px}.add-player-input{flex:1;min-width:0;padding:.5rem .75rem;background:var(--bg-tertiary);border:none;border-bottom:1px solid var(--border-color);border-radius:8px 8px 0 0;color:var(--text-primary);font-size:1.125rem;font-family:inherit;transition:border-color .2s,background-color .2s}.add-player-input:hover{border-bottom-color:var(--text-muted)}.add-player-input:focus{outline:none;border-bottom-color:var(--primary-color);background:var(--bg-primary)}.add-player-input::placeholder{color:var(--text-muted)}.add-player-submit,.add-player-cancel{padding:.5rem 1rem;font-size:.875rem;font-weight:600;border-radius:8px;cursor:pointer;transition:all .2s;flex-shrink:0}.add-player-submit{background:var(--primary-color);border:2px solid var(--primary-color);color:#fff}.add-player-submit:hover:not(:disabled){background:var(--primary-dark);border-color:var(--primary-dark)}.add-player-submit:disabled{opacity:.5;cursor:not-allowed}.add-player-cancel{background:transparent;border:2px solid var(--border-color);color:var(--text-secondary)}.add-player-cancel:hover{border-color:var(--text-secondary);color:var(--text-primary)}.claim-page{min-height:100vh;padding:1rem;background:var(--bg-primary);display:flex;align-items:center;justify-content:center}.claim-page .container{max-width:400px;width:100%;padding:0 1rem}.claim-state{text-align:center;padding:3rem 1rem;background:var(--bg-secondary);border-radius:16px}.claim-spinner{width:48px;height:48px;border:4px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;margin:0 auto 1.5rem;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.claim-icon{font-size:3rem;margin-bottom:1rem}.claim-icon-error{filter:grayscale(0)}.claim-state h2{margin:0 0 .5rem;color:var(--text-primary)}.claim-state p{margin:0 0 1rem;color:var(--text-secondary)}.claim-loading p,.claim-claiming p{color:var(--text-muted)}.claim-success h2{color:var(--success-color)}.claim-error h2{color:var(--danger-color)}.claim-redirect{font-size:.875rem;color:var(--text-muted);font-style:italic}.claim-link{display:inline-block;margin-top:1rem;padding:.75rem 1.5rem;font-weight:600;color:#fff;background:var(--primary-color);text-decoration:none;border-radius:8px;transition:background-color .2s}.claim-link:hover{background:var(--primary-hover)}.claim-footer{display:flex;justify-content:center;margin-top:2rem}.legal-page{min-height:100vh;padding:1rem;background:var(--bg-primary)}.legal-page .container{max-width:600px;margin:0 auto;padding:0 1rem}.legal-header{padding:1.5rem 0}.back-link{display:inline-flex;align-items:center;gap:.5rem;color:var(--primary-color);text-decoration:none;font-size:.875rem;margin-bottom:1rem}.back-link:hover{text-decoration:underline}.legal-header h1{font-size:2rem;font-weight:700;color:var(--text-primary);margin:0 0 .5rem}.legal-header .last-updated{font-size:.875rem;color:var(--text-muted);margin:0}.legal-content{padding-bottom:2rem}.legal-intro{font-size:1.125rem;color:var(--text-secondary);margin:0 0 2rem;line-height:1.6}.legal-section{margin-bottom:1.5rem}.legal-section h2{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0 0 .5rem}.legal-section p{font-size:1rem;color:var(--text-secondary);margin:0;line-height:1.6}.legal-section a{color:var(--primary-color);text-decoration:underline;text-underline-offset:2px}.legal-section a:hover{color:var(--primary-color-dark)}.legal-footer{padding:1.5rem 0;border-top:1px solid var(--border-color);display:flex;justify-content:center}.consent-banner{position:fixed;bottom:0;left:0;right:0;background-color:#1a1a1a;border-top:1px solid #333;padding:1rem;z-index:1000;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.consent-content{max-width:600px;margin:0 auto;display:flex;flex-direction:column;gap:.75rem;align-items:center;text-align:center}.consent-content p{margin:0;font-size:.9rem;color:#fffc}.consent-buttons{display:flex;gap:.75rem}.consent-btn{padding:.5rem 1.25rem;font-size:.9rem;border-radius:6px;border:none;cursor:pointer;transition:opacity .2s,transform .1s}.consent-btn:hover{opacity:.9}.consent-btn:active{transform:scale(.98)}.consent-btn-accept{background-color:#646cff;color:#fff}.consent-btn-decline{background-color:transparent;border:1px solid #555;color:#ffffffb3}.consent-btn-decline:hover{border-color:#777}@media(prefers-color-scheme:light){.consent-banner{background-color:#f5f5f5;border-top-color:#ddd}.consent-content p{color:#333}.consent-btn-decline{border-color:#ccc;color:#555}.consent-btn-decline:hover{border-color:#999}}@media(min-width:480px){.consent-content{flex-direction:row;justify-content:space-between;text-align:left}}:root{--primary-color: #4f46e5;--primary-color-dark: #4338ca;--primary-color-alpha: rgba(79, 70, 229, .2);--success-color: #22c55e;--success-bg: rgba(34, 197, 94, .15);--danger-color: #ef4444;--danger-bg: rgba(239, 68, 68, .15);--bg-primary: #f8fafc;--bg-secondary: #ffffff;--bg-tertiary: #f1f5f9;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--border-color: #e2e8f0}@media(prefers-color-scheme:dark){:root{--primary-color: #818cf8;--primary-color-dark: #6366f1;--primary-color-alpha: rgba(129, 140, 248, .2);--success-color: #4ade80;--success-bg: rgba(74, 222, 128, .15);--danger-color: #f87171;--danger-bg: rgba(248, 113, 113, .15);--bg-primary: #0f172a;--bg-secondary: #1e293b;--bg-tertiary: #334155;--text-primary: #f8fafc;--text-secondary: #cbd5e1;--text-muted: #64748b;--border-color: #334155}}*,*:before,*:after{box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-primary);color:var(--text-primary);line-height:1.5}#root{min-height:100vh}:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}button{font-family:inherit;font-size:inherit}input{font-family:inherit}.error-banner{padding:1rem;background:var(--danger-bg);color:var(--danger-color);border-radius:8px;text-align:center}
