:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;color:#333;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,#root{margin:0;padding:0;width:100%;height:100%}body{background-color:#fff}a{font-weight:500;color:#667eea;text-decoration:inherit}a:hover{color:#764ba2}button{cursor:pointer;transition:all .3s ease;font-family:inherit}h1,h2,h3{line-height:1.1}h1{font-size:2.5rem}h2{font-size:1.8rem}h3{font-size:1.2rem}input,textarea,select{font-family:inherit;font-size:1rem}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--color-bg-primary)}.login-box{background:var(--color-bg-secondary);padding:2rem;border-radius:12px;box-shadow:0 10px 40px #0003;width:100%;max-width:400px}.login-box h1{text-align:center;color:var(--color-text-primary);margin-bottom:.5rem;font-size:2rem;font-weight:700}.subtitle{text-align:center;color:var(--color-text-secondary);margin-bottom:2rem;font-size:.9rem}.form-group{margin-bottom:1rem}.form-group input{width:100%;padding:.75rem;border:1px solid var(--color-border-secondary);border-radius:6px;font-size:1rem;transition:border-color .3s,box-shadow .3s}.form-group input::placeholder{font-size:.9rem}.error-message{background-color:var(--color-bg-accent);color:var(--color-action-primary);padding:.75rem;border-radius:6px;margin-bottom:1rem;font-size:.9rem;border-left:4px solid var(--color-action-primary)}.submit-button{width:100%;padding:.75rem;background:var(--color-action-primary);color:var(--color-text-inverse);border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s,background-color .2s;margin-bottom:1rem}.submit-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 20px #dc262666;background:var(--color-action-primary-hover)}.submit-button:disabled{opacity:.7;cursor:not-allowed}.toggle-form{text-align:center;color:var(--color-text-secondary);font-size:.9rem;margin-bottom:1rem}.toggle-button{background:none;border:none;color:var(--color-action-primary);cursor:pointer;font-weight:600;text-decoration:underline;padding:0}.toggle-button:hover{color:var(--color-action-primary-hover)}.demo-info{background-color:var(--color-action-secondary-light);padding:.75rem;border-radius:6px;border-left:4px solid var(--color-action-secondary)}.small-text{margin:.25rem 0;font-size:.8rem;color:var(--color-text-secondary)}.divider{display:flex;align-items:center;text-align:center;margin:1.5rem 0;color:var(--color-text-tertiary);font-size:.9rem}.divider:before,.divider:after{content:"";flex:1;border-bottom:1px solid var(--color-border-primary)}.divider span{padding:0 1rem}.guest-button{width:100%;padding:.75rem;background:var(--color-action-success);color:var(--color-text-inverse);border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s,background-color .2s;margin-bottom:.5rem}.guest-button:hover{transform:translateY(-2px);box-shadow:0 5px 20px #05966966;background:var(--color-action-success-hover)}.guest-info{text-align:center;color:var(--color-text-secondary);font-size:.85rem;margin-bottom:1.5rem;font-style:italic}.info-text{text-align:center;color:var(--color-text-tertiary);font-size:.85rem;margin-top:.5rem;margin-bottom:1rem}.setup-container{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--color-bg-primary)}.setup-box{background:var(--color-bg-secondary);padding:2.5rem;border-radius:12px;box-shadow:0 10px 40px #0003;width:100%;max-width:420px}.setup-box h1{text-align:center;color:var(--color-text-primary);margin-bottom:.5rem;font-size:2rem}.setup-box .subtitle{text-align:center;color:var(--color-text-secondary);margin-bottom:1.5rem;font-size:1rem}.welcome-info{background:var(--color-action-secondary-light);padding:1rem 1.5rem;border-radius:8px;margin-bottom:1.5rem;text-align:center;border:1px solid var(--color-border-secondary)}.welcome-info p{margin:0;color:var(--color-action-primary);font-weight:600;font-size:1.1rem}.welcome-info .email-display{color:var(--color-text-secondary);font-size:.9rem;font-weight:400;margin-top:.25rem}.setup-box .form-group{margin-bottom:1.25rem}.setup-box .form-group label{display:block;margin-bottom:.5rem;color:var(--color-text-primary);font-weight:500;font-size:.9rem}.setup-box .form-group input{width:100%;padding:.85rem;border:1px solid var(--color-border-primary);border-radius:6px;font-size:1rem;transition:border-color .3s,box-shadow .3s}.setup-box .form-group input::placeholder{font-size:.9rem;color:#999}.setup-box .form-group input:focus{outline:none;border-color:var(--color-action-secondary);box-shadow:0 0 0 3px var(--color-focus-ring)}.setup-box .form-group input:disabled{background-color:var(--color-bg-tertiary);cursor:not-allowed}.setup-box .error-message{background-color:var(--color-bg-accent);color:var(--color-action-primary);padding:.75rem;border-radius:6px;margin-bottom:1rem;font-size:.9rem;border-left:4px solid var(--color-action-primary)}.setup-box .submit-button{width:100%;padding:.85rem;background:var(--color-action-primary);color:var(--color-text-inverse);border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.setup-box .submit-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 20px #dc262666}.setup-box .submit-button:disabled{opacity:.7;cursor:not-allowed}.setup-loading{text-align:center;padding:2rem 0}.setup-loading .spinner{width:50px;height:50px;border:4px solid #e0e0e0;border-top-color:var(--color-action-primary);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}.setup-loading p{color:var(--color-text-secondary);font-size:1rem}.setup-error-state{text-align:center;padding:1rem 0}.setup-error-state .error-icon{width:60px;height:60px;background:linear-gradient(135deg,#ff6b6b,#ee5a5a);color:#fff;font-size:2rem;font-weight:700;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem}.setup-error-state h2{color:var(--color-action-primary);margin:0 0 1rem;font-size:1.5rem}.setup-error-state p{color:var(--color-text-secondary);margin:0 0 .5rem}.setup-error-state .help-text{color:var(--color-text-tertiary);font-size:.9rem;margin-bottom:1.5rem}.setup-error-state .back-button{padding:.75rem 2rem;background:var(--color-action-primary);color:var(--color-text-inverse);border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.setup-error-state .back-button:hover{transform:translateY(-2px);box-shadow:0 5px 20px #dc262666}.lobby-container{min-height:100vh;background:var(--color-bg-primary);padding:2rem}.lobby-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:3rem;max-width:600px;margin-left:auto;margin-right:auto}.lobby-header h1{color:var(--color-text-inverse);font-size:2.5rem;margin:0;font-weight:700}.user-info{color:var(--color-text-inverse);display:flex;align-items:center;gap:1rem}.admin-button,.settings-button{background:var(--color-action-primary-light);border:1px solid var(--color-action-primary);color:var(--color-text-inverse);padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-weight:600;transition:all .3s}.admin-button:hover,.settings-button:hover{background:#dc262640}.logout-button{background:#fff3;border:1px solid white;color:var(--color-text-inverse);padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-weight:600;transition:all .3s}.logout-button:hover{background:#ffffff4d}.lobby-content{background:var(--color-bg-secondary);border-radius:12px;padding:2rem;max-width:600px;margin:0 auto;box-shadow:0 10px 40px #0003}.lobby-content h2{text-align:center;color:var(--color-text-primary);margin-top:0;font-weight:700}.mode-selection{text-align:center}.button-group{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:2rem}.mode-button{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:2rem;border:2px solid var(--color-border-primary);border-radius:8px;background:var(--color-bg-secondary);cursor:pointer;font-size:1rem;transition:all .3s}.mode-button:hover{transform:translateY(-4px);box-shadow:0 5px 20px #0000001a}.mode-button.create-button:hover{border-color:var(--color-action-primary)}.mode-button.join-button:hover{border-color:var(--color-action-secondary)}.mode-button .icon{font-size:2rem}.mode-button .text{font-weight:600;color:var(--color-text-primary)}.create-game,.join-game{text-align:center;padding:2rem 0}.join-game h2{font-size:1.8rem;color:var(--color-text-primary);margin-bottom:.5rem}.join-game p{color:var(--color-text-secondary);font-size:1rem;margin-bottom:1.5rem}.game-created{text-align:center}.game-created h2{font-size:1.8rem;color:var(--color-action-primary);margin-bottom:1rem}.game-created p{color:var(--color-text-secondary);font-size:1rem;margin-bottom:1.5rem}.create-game{padding:2rem 0}.create-game h2{font-size:1.8rem;color:var(--color-text-primary);margin-bottom:.5rem}.create-game p{color:var(--color-text-secondary);font-size:1rem;margin-bottom:2.5rem}.form-group{margin:1.5rem 0}.form-group label{display:block;color:var(--color-text-primary);font-weight:600;margin-bottom:.5rem}.form-group input{width:100%;padding:.85rem;font-size:1.2rem;text-align:center;letter-spacing:.2rem;border:2px solid var(--color-border-primary);border-radius:8px;font-weight:600;transition:border-color .3s,box-shadow .3s;background:var(--color-bg-secondary)}.form-group input:focus{outline:none;border-color:var(--color-action-secondary);box-shadow:0 0 0 3px var(--color-focus-ring)}.form-group input:disabled{background-color:var(--color-bg-tertiary);cursor:not-allowed}.action-button{width:100%;padding:.75rem;font-size:1rem;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:all .3s;margin-bottom:1rem}.create-game .action-button.create-button{background:var(--color-action-primary);color:var(--color-text-inverse);padding:1.25rem;font-size:1.1rem;font-weight:700;box-shadow:0 4px 15px #dc26264d}.create-game .action-button.create-button:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 8px 25px #dc262680;background:var(--color-action-primary-hover)}.action-button.create-button:not(.create-game .action-button.create-button){background:var(--color-action-primary);color:var(--color-text-inverse)}.action-button.create-button:not(.create-game .action-button.create-button):hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 20px #dc262666;background:var(--color-action-primary-hover)}.join-game .action-button.join-button{background:var(--color-action-secondary);color:var(--color-text-inverse);padding:1.25rem;font-size:1.1rem;font-weight:700;box-shadow:0 4px 15px #3b82f64d}.join-game .action-button.join-button:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 8px 25px #3b82f680;background:var(--color-action-secondary-hover)}.action-button.join-button:not(.join-game .action-button.join-button){background:var(--color-action-secondary);color:var(--color-text-inverse)}.action-button.join-button:not(.join-game .action-button.join-button):hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 20px #3b82f666;background:var(--color-action-secondary-hover)}.action-button:disabled{opacity:.5;cursor:not-allowed}.back-button{background:transparent;border:2px solid var(--color-border-primary);color:var(--color-text-secondary);padding:.75rem 1rem;border-radius:8px;cursor:pointer;font-weight:600;transition:all .3s}.back-button:hover{background:var(--color-bg-tertiary);border-color:var(--color-text-tertiary);color:var(--color-text-primary)}.error-message{background-color:var(--color-bg-accent);color:var(--color-action-primary);padding:1rem;border-radius:8px;margin-bottom:1.5rem;font-size:.9rem;border-left:4px solid var(--color-action-primary);box-shadow:0 2px 8px #dc26261a}.join-code-display{font-size:3.5rem;font-weight:900;letter-spacing:.3rem;color:var(--color-action-primary);padding:2.5rem;background:var(--color-bg-tertiary);border-radius:12px;margin:2rem 0;font-family:Courier New,monospace;box-shadow:0 4px 15px #dc26261a;border:2px solid var(--color-border-primary)}.small-text{color:var(--color-text-tertiary);font-size:.9rem;margin-top:1rem;font-style:italic}.link-button{background:none;border:none;color:var(--color-action-primary);cursor:pointer;font-weight:600;text-decoration:underline;padding:0;font-size:inherit}.link-button:hover{color:var(--color-action-secondary)}.login-button{background:var(--color-action-primary);color:var(--color-text-inverse);border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-weight:600;transition:all .3s}.login-button:hover{transform:translateY(-2px);box-shadow:0 5px 15px #dc26264d;background:var(--color-action-primary-hover)}.info-text{text-align:center;color:var(--color-text-secondary);font-size:.95rem;margin-top:1rem}.existing-session{background:linear-gradient(135deg,#e0f7fa,#b2ebf2);border:2px solid #26c6da;border-radius:12px;padding:1.5rem;margin-bottom:2rem;text-align:center}.existing-session h3{color:#00838f;margin:0 0 .5rem;font-size:1.3rem}.existing-session p{color:#00695c;margin:0 0 1rem}.session-buttons{display:flex;gap:1rem;justify-content:center}.rejoin-button{background:var(--color-action-secondary);color:var(--color-text-inverse);border:none;padding:.75rem 1.5rem;border-radius:8px;font-weight:600;font-size:1rem;cursor:pointer;transition:all .3s}.rejoin-button:hover{transform:translateY(-2px);box-shadow:0 5px 20px #3b82f666;background:var(--color-action-secondary-hover)}.clear-session-button{background:transparent;color:var(--color-text-secondary);border:2px solid var(--color-border-primary);padding:.75rem 1.5rem;border-radius:8px;font-weight:600;font-size:1rem;cursor:pointer;transition:all .3s}.clear-session-button:hover{background:var(--color-bg-tertiary);border-color:var(--color-text-tertiary)}.active-games-section{background:var(--color-action-secondary-light);border:2px solid var(--color-action-secondary);border-radius:12px;padding:1.5rem;margin-bottom:2rem;text-align:left}.active-games-section h3{color:var(--color-action-secondary);margin:0 0 1rem;font-size:1.2rem;font-weight:700}.games-list{display:flex;flex-direction:column;gap:.75rem}.game-item{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:8px;padding:1rem;display:flex;justify-content:space-between;align-items:center;transition:all .3s}.game-item:hover{box-shadow:0 2px 8px #0000001a;border-color:var(--color-action-secondary)}.game-info{display:flex;flex-direction:column;gap:.25rem;flex:1}.game-code{font-weight:600;color:var(--color-text-primary);font-size:.95rem}.game-status{font-size:.85rem;color:var(--color-text-secondary);font-weight:500}.game-street{font-size:.9rem;color:var(--color-action-secondary);font-weight:600;margin-top:.25rem}.resume-button{background:var(--color-action-secondary);color:var(--color-text-inverse);border:none;padding:.5rem 1.25rem;border-radius:6px;font-weight:600;cursor:pointer;transition:all .3s;margin-left:1rem;flex-shrink:0}.resume-button:hover{background:var(--color-action-secondary-hover);transform:translateY(-2px);box-shadow:0 4px 12px #3b82f64d}.game-map-section{position:absolute;inset:0;width:100%;height:100%;background:var(--color-bg-primary)}.map-container{position:absolute;inset:0;width:100%;height:100%}.loading-spinner{display:flex;align-items:center;justify-content:center;height:100%;color:var(--color-text-secondary);font-size:1.1rem;background:var(--color-bg-primary)}.game-controls{position:absolute;bottom:20px;left:20px;right:360px;z-index:1000;display:flex;flex-direction:column;align-items:center;gap:1rem;max-width:500px;margin:0 auto;pointer-events:auto}@media(max-width:1024px){.game-controls{right:20px}}@media(max-width:768px){.game-controls{bottom:250px;left:.5rem;right:.5rem;max-width:none}.button-group{flex-direction:row;width:100%}.confirm-button,.skip-button{max-width:none;flex:1}.hint-text{font-size:.85rem;padding:.75rem}}.street-display{background:var(--color-bg-secondary);padding:1rem 1.5rem;border-radius:12px;box-shadow:0 4px 15px #0003;text-align:center;color:var(--color-text-primary);font-size:1.1rem;width:100%}.street-display strong{color:var(--color-action-secondary);font-size:1.4rem;font-weight:700}.button-group{display:flex;gap:1rem;width:100%;justify-content:center}.confirm-button,.skip-button{flex:1;max-width:200px;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:all .3s;color:#fff}.confirm-button{background:var(--color-action-success)}.confirm-button:hover{transform:translateY(-2px);box-shadow:0 5px 20px #05966966;background:var(--color-action-success-hover)}.skip-button{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border-primary)}.skip-button:hover{transform:translateY(-2px);box-shadow:0 5px 20px #00000026;background:var(--color-action-secondary-light)}.hint-text{background:var(--color-bg-secondary);padding:1rem;border-radius:8px;text-align:center;color:var(--color-text-secondary);font-size:.95rem;box-shadow:0 4px 15px #0000001a;border:1px solid var(--color-border-primary)}.popup-content{font-family:Arial,sans-serif;font-size:.85rem;color:var(--color-text-primary);padding:.5rem}.popup-content strong{display:block;margin-bottom:.5rem;color:var(--color-action-secondary);font-weight:700}.popup-content br{display:block;margin:.25rem 0}.guess-marker,.revealed-marker{filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.leaflet-container{background:var(--color-bg-primary)}.leaflet-attribution{font-size:.7rem;background:rgba(var(--color-bg-secondary-rgb),.85);color:var(--color-text-secondary)}.player-name-tooltip{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:4px;padding:4px 8px;font-weight:600;font-size:.75rem;color:var(--color-text-primary);box-shadow:0 2px 6px #0003}.player-name-tooltip:before{border-top-color:var(--color-bg-secondary)}.theme-toggle{position:absolute;bottom:100px;left:10px;z-index:1000}.theme-toggle-button{width:40px;height:40px;border-radius:8px;border:2px solid var(--color-border-primary);background:var(--color-bg-secondary);cursor:pointer;font-size:1.2rem;display:flex;align-items:center;justify-content:center;transition:all .2s;box-shadow:0 2px 8px #00000026;color:var(--color-text-primary)}.theme-toggle-button:hover{background:var(--color-action-secondary-light);transform:scale(1.05);box-shadow:0 4px 12px #0003}.theme-menu{position:absolute;bottom:48px;left:0;background:var(--color-bg-secondary);border-radius:8px;box-shadow:0 4px 20px #0003;overflow:hidden;min-width:140px;animation:slideUp .2s ease-out;border:1px solid var(--color-border-primary)}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.theme-option{display:block;width:100%;padding:.75rem 1rem;border:none;background:none;text-align:left;cursor:pointer;font-size:.9rem;color:var(--color-text-primary);transition:background .15s}.theme-option:hover{background:var(--color-bg-tertiary)}.theme-option.active{background:var(--color-action-secondary);color:#fff;font-weight:600}@media(max-width:768px){.theme-toggle{bottom:260px}}.scoreboard{background:var(--color-bg-secondary);border-radius:12px;padding:1rem;box-shadow:0 4px 15px #0000001a;height:100%;display:flex;flex-direction:column}.scoreboard h3{margin:0 0 1rem;color:var(--color-text-primary);font-size:1.1rem;border-bottom:2px solid var(--color-action-primary);padding-bottom:.5rem;font-weight:700}.player-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem}.player-item{display:flex;align-items:center;gap:1rem;padding:.75rem;background:var(--color-bg-tertiary);border-radius:8px;transition:all .3s;border-left:4px solid transparent}.player-item:hover{background:var(--color-action-secondary-light);transform:translate(4px)}.player-item.current-user{background:var(--color-action-secondary-light);border-left-color:var(--color-action-secondary);font-weight:600}.player-rank{min-width:2rem;text-align:center;font-size:1.2rem;font-weight:600;color:var(--color-action-secondary)}.player-info{flex:1;min-width:0}.player-name{font-weight:600;color:var(--color-text-primary);display:flex;align-items:center;gap:.5rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.guessed-badge{display:inline-block;background:var(--color-action-success);color:#fff;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;flex-shrink:0}.player-score{display:flex;align-items:center;gap:.5rem;text-align:right}.total-score{font-size:1.2rem;font-weight:900;color:var(--color-action-secondary);min-width:3rem}.round-points{font-size:.85rem;color:var(--color-action-success);font-weight:600;background:#0596691a;padding:.25rem .5rem;border-radius:4px;white-space:nowrap}.player-list::-webkit-scrollbar{width:6px}.player-list::-webkit-scrollbar-track{background:var(--color-bg-tertiary);border-radius:3px}.player-list::-webkit-scrollbar-thumb{background:var(--color-border-primary);border-radius:3px}.player-list::-webkit-scrollbar-thumb:hover{background:var(--color-action-secondary)}.host-controls{background:var(--color-bg-secondary);border-left:4px solid var(--color-action-secondary);border-radius:12px;padding:1rem;box-shadow:0 4px 15px #3b82f626;height:100%;display:flex;flex-direction:column}.host-controls h3{margin:0 0 1rem;color:var(--color-action-secondary);font-size:1.1rem;font-weight:700}.control-section{flex:1;display:flex;flex-direction:column;gap:1rem}.info-text{color:var(--color-text-primary);font-weight:600;margin:0;font-size:.95rem}.guess-status{flex:1;display:flex;flex-direction:column;gap:.75rem}.status-text{color:var(--color-text-primary);font-weight:600;margin:0;font-size:.95rem}.player-status{background:var(--color-bg-tertiary);border-radius:8px;padding:.75rem;max-height:150px;overflow-y:auto;border:1px solid var(--color-border-primary)}.status-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem;border-bottom:1px solid var(--color-border-primary);font-size:.9rem}.status-item:last-child{border-bottom:none}.status-name{color:var(--color-text-primary);font-weight:500}.status-check{color:var(--color-action-success);font-weight:900;font-size:1.1rem}.status-waiting{color:var(--color-action-secondary);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.control-button{padding:.75rem 1rem;font-size:1rem;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:all .3s;color:var(--color-text-inverse)}.start-button{background:var(--color-action-secondary)}.start-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 20px #3b82f666;background:var(--color-action-secondary-hover)}.reveal-button{background:var(--color-action-primary)}.reveal-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 20px #dc262666;background:var(--color-action-primary-hover)}.reveal-button:disabled{opacity:.5;cursor:not-allowed;background:var(--color-bg-tertiary)}.next-button{background:var(--color-action-success)}.next-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 20px #05966966;background:var(--color-action-success-hover)}.hint-text{color:var(--color-text-secondary);font-size:.85rem;font-style:italic;margin:0}.player-status::-webkit-scrollbar{width:4px}.player-status::-webkit-scrollbar-track{background:var(--color-bg-tertiary);border-radius:2px}.player-status::-webkit-scrollbar-thumb{background:var(--color-border-primary);border-radius:2px}.player-status::-webkit-scrollbar-thumb:hover{background:var(--color-action-secondary)}.management-section{margin-top:1rem;padding-top:1rem;border-top:2px solid var(--color-border-primary);flex:0}.section-title{margin:0 0 .75rem;color:var(--color-text-primary);font-size:.95rem;font-weight:600}.skip-round-button{background:var(--color-action-secondary);font-size:.9rem;padding:.65rem .85rem}.skip-round-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 20px #3b82f666;background:var(--color-action-secondary-hover)}.reset-scores-button{background:var(--color-action-secondary);font-size:.9rem;padding:.65rem .85rem}.reset-scores-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 20px #3b82f666;background:var(--color-action-secondary-hover)}.restart-button{background:var(--color-action-primary);font-size:.9rem;padding:.65rem .85rem}.restart-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 20px #dc262666;background:var(--color-action-primary-hover)}.end-game-button{background:var(--color-action-primary);font-size:.9rem;padding:.65rem .85rem}.end-game-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 20px #dc262666;background:var(--color-action-primary-hover)}.qr-modal-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .2s ease-out}.qr-modal-content{background:var(--color-bg-secondary);border-radius:16px;padding:2rem;text-align:center;position:relative;max-width:90vw;max-height:90vh;animation:slideIn .3s ease-out}@keyframes slideIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.qr-close-button{position:absolute;top:10px;right:15px;background:none;border:none;font-size:2rem;cursor:pointer;color:var(--color-text-secondary);line-height:1;padding:0;width:40px;height:40px;transition:color .2s}.qr-close-button:hover{color:var(--color-text-primary)}.qr-modal-content h2{margin:0 0 .5rem;color:var(--color-text-primary);font-size:1.8rem;font-weight:700}.qr-instructions{color:var(--color-text-secondary);margin:0 0 1.5rem;font-size:1.1rem}.qr-code-container{background:var(--color-bg-tertiary);padding:1rem;border-radius:12px;display:inline-block;box-shadow:0 4px 20px #0000001a;border:1px solid var(--color-border-primary)}.qr-join-code{margin-top:1.5rem;display:flex;align-items:center;justify-content:center;gap:.75rem}.code-label{color:var(--color-text-secondary);font-size:1rem}.code-value{font-size:2rem;font-weight:900;letter-spacing:.15rem;color:var(--color-action-secondary);font-family:Courier New,monospace;background:var(--color-action-secondary-light);padding:.5rem 1rem;border-radius:8px}.qr-url{margin-top:1rem;color:var(--color-text-tertiary);font-size:.8rem;word-break:break-all}.qr-button{background:var(--color-action-secondary);color:#fff;border:none;padding:.75rem 1.25rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all .3s}.qr-button:hover{transform:translateY(-2px);box-shadow:0 5px 20px #3b82f666;background:var(--color-action-secondary-hover)}.game-fullscreen{position:relative;height:100vh;width:100vw;overflow:hidden}.map-background{position:absolute;inset:0;z-index:0}.top-right-controls{position:fixed;top:1rem;right:1rem;z-index:1000;display:flex;gap:.5rem}.back-button-overlay{background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid var(--color-border-primary);color:var(--color-action-primary);padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;font-weight:600;transition:all .3s;box-shadow:0 4px 6px #0000001a}.back-button-overlay:hover{background:#fff;transform:translateY(-2px);box-shadow:0 6px 12px #00000026}.top-left-info{position:fixed;top:1rem;left:1rem;z-index:1000;background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:1rem 1.5rem;border-radius:12px;box-shadow:0 4px 15px #0000001a;border:2px solid var(--color-border-primary);min-width:280px}.game-title{font-size:1.2rem;font-weight:700;color:var(--color-action-primary);margin-bottom:.5rem}.game-metadata{display:flex;gap:.5rem;font-size:.9rem;color:var(--color-text-secondary);align-items:center}.game-metadata span{white-space:nowrap}.host-badge{background:#d977061a;color:var(--color-action-warning);padding:.25rem .5rem;border-radius:4px;font-weight:600;font-size:.85rem}.players-list{font-size:.85rem;color:var(--color-text-secondary);margin-top:.5rem;line-height:1.3}.host-buttons{display:flex;gap:.5rem;margin-top:.75rem}.icon-button{background:var(--color-action-primary);color:#fff;border:none;width:40px;height:40px;border-radius:8px;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s}.icon-button:hover{transform:translateY(-2px);box-shadow:0 5px 20px #667eea66;background:var(--color-action-primary-hover, #5b67d9)}.icon-button:active{transform:translateY(0)}.game-qr-button{margin-top:.75rem;padding:.5rem 1rem;font-size:.9rem}.qr-button{background:var(--color-action-primary);color:#fff;border:none;padding:.5rem 1rem;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all .3s}.qr-button:hover{transform:translateY(-2px);box-shadow:0 5px 20px #667eea66}.qr-button-icon{font-size:1.1rem}.right-sidebar-overlay{position:fixed;top:5rem;right:1rem;bottom:1rem;width:320px;z-index:1000;display:flex;flex-direction:column;gap:1rem;overflow-y:auto;pointer-events:auto}.right-sidebar-overlay::-webkit-scrollbar{width:6px}.right-sidebar-overlay::-webkit-scrollbar-track{background:#0000001a;border-radius:3px}.right-sidebar-overlay::-webkit-scrollbar-thumb{background:#0000004d;border-radius:3px}.right-sidebar-overlay::-webkit-scrollbar-thumb:hover{background:#00000080}.waiting-panel-overlay{background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;padding:1.5rem;box-shadow:0 4px 15px #0000001a;border:2px solid var(--color-border-primary)}.waiting-panel-overlay h3{margin:0 0 1rem;color:var(--color-action-primary);font-size:1.1rem}.waiting-panel-overlay p{color:var(--color-text-secondary);font-size:.95rem;margin:0;line-height:1.5}.guest-points-badge{position:fixed;top:130px;right:1rem;background:var(--color-action-success);color:#fff;padding:.5rem 1rem;border-radius:20px;font-size:1.1rem;font-weight:700;box-shadow:0 4px 15px #10b98166;z-index:1001}@media(max-width:768px){.guest-points-badge{top:auto;bottom:80px;right:1rem;font-size:1rem}}.game-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;background:linear-gradient(135deg,#667eea15,#764ba215);color:var(--color-text-primary)}.spinner{width:50px;height:50px;border:4px solid #ddd;border-top-color:#667eea;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.game-loading p{font-size:1.1rem;color:var(--color-text-secondary)}.game-error{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;background:linear-gradient(135deg,#667eea15,#764ba215);text-align:center}.game-error h2{color:#c33;margin-bottom:1rem}.game-error p{color:var(--color-text-secondary);margin-bottom:1.5rem;max-width:400px}.game-error button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;cursor:pointer;font-weight:600;transition:all .3s}.game-error button:hover{transform:translateY(-2px);box-shadow:0 5px 20px #667eea66}@media(max-width:1024px){.right-sidebar-overlay{width:280px}.top-left-info{font-size:.9rem}.game-title{font-size:1rem}}@media(max-width:768px){.top-left-info{left:.5rem;right:.5rem;top:.5rem;padding:.75rem 1rem}.top-right-controls{top:.5rem;right:.5rem}.back-button-overlay{padding:.5rem 1rem;font-size:.9rem}.right-sidebar-overlay{left:.5rem;right:.5rem;top:auto;bottom:0;width:auto;max-height:30vh;border-radius:12px 12px 0 0;box-shadow:0 -4px 15px #0000001a}.game-title{font-size:.95rem}.game-metadata{font-size:.8rem;flex-wrap:wrap}.players-list{font-size:.75rem;margin-top:.25rem}.status-badge{padding:.6rem 1.2rem;font-size:.9rem}}.game-ended-overlay{position:fixed;inset:0;background:#000000d9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .3s ease}.game-ended-modal{background:linear-gradient(135deg,#fff,#f8f9fa);border-radius:20px;padding:2.5rem;max-width:500px;width:90%;box-shadow:0 20px 60px #00000080;animation:slideUp .4s ease}.game-ended-title{text-align:center;font-size:2rem;margin:0 0 2rem;color:var(--color-text-primary);font-weight:700}.final-standings{margin-bottom:2rem}.final-standings h3{text-align:center;color:var(--color-text-secondary);font-size:1.2rem;margin:0 0 1.5rem;font-weight:600}.standing-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:#fff;border-radius:12px;margin-bottom:.75rem;border:2px solid var(--color-border-primary);transition:all .3s}.standing-item.winner{background:linear-gradient(135deg,#fef3c7,#fde68a);border-color:#fbbf24;transform:scale(1.02);box-shadow:0 8px 20px #fbbf244d}.standing-item.current-user{border-color:#667eea;background:linear-gradient(135deg,#ede9fe,#ddd6fe)}.standing-rank{font-size:1.5rem;min-width:40px;text-align:center}.trophy{font-size:2rem;animation:bounce 1s ease infinite}.medal{font-size:1.5rem}.position{font-size:1.2rem;color:var(--color-text-secondary);font-weight:600}.standing-name{flex:1;font-size:1.1rem;font-weight:600;color:var(--color-text-primary)}.standing-score{font-size:1.2rem;font-weight:700;color:var(--color-action-primary)}.game-ended-actions{display:flex;gap:1rem;justify-content:center}.lobby-button,.play-again-button{flex:1;padding:.9rem 1.5rem;font-size:1rem;font-weight:600;border:none;border-radius:10px;cursor:pointer;transition:all .3s;color:#fff}.lobby-button{background:linear-gradient(135deg,#64748b,#475569)}.lobby-button:hover{transform:translateY(-2px);box-shadow:0 8px 25px #64748b66}.play-again-button{background:var(--color-action-success)}.play-again-button:hover{transform:translateY(-2px);box-shadow:0 8px 25px #10b98166}.guest-minimal-ui{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);z-index:1000}.status-badge{background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:50px;padding:.75rem 1.5rem;font-weight:600;font-size:1rem;box-shadow:0 4px 15px #0003;border:2px solid var(--color-border-primary);white-space:nowrap}.status-badge.status-waiting{border-color:#fbbf24;color:#d97706}.status-badge.status-playing{border-color:#667eea;color:var(--color-action-primary)}.status-badge.status-revealed{border-color:#34d399;color:#10b981}.street-name-display{position:fixed;top:15%;left:50%;transform:translate(-50%,-50%);background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;padding:2rem;box-shadow:0 10px 40px #0003;border:3px solid #667eea;z-index:999;text-align:center;max-width:90%;pointer-events:none}.street-name-label{font-size:.95rem;color:var(--color-text-secondary);font-weight:500;margin-bottom:.5rem}.street-name-value{font-size:1.8rem;color:var(--color-action-primary);font-weight:700;line-height:1.3}@media(max-width:768px){.street-name-display{top:130px;transform:translate(-50%);padding:.75rem 1rem}.street-name-label{font-size:.7rem;margin-bottom:.25rem}.street-name-value{font-size:1.1rem}}.observe-verify-container{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--color-bg-primary)}.observe-verify-box{background:var(--color-bg-secondary);padding:2.5rem;border-radius:16px;box-shadow:0 10px 40px #0000004d;width:100%;max-width:400px;text-align:center;border:2px solid var(--color-border-primary)}.observe-verify-box h1{color:var(--color-action-secondary);font-size:2rem;margin:0 0 .5rem;font-weight:700}.observe-verify-subtitle{color:var(--color-text-secondary);font-size:1rem;margin-bottom:2rem}.observe-form-group{margin-bottom:1.5rem}.observe-form-group input{width:100%;padding:1rem;font-size:1.5rem;text-align:center;letter-spacing:.3rem;border:2px solid var(--color-border-primary);border-radius:8px;font-weight:600;text-transform:uppercase;transition:border-color .3s;background:var(--color-bg-tertiary);color:var(--color-text-primary)}.observe-form-group input:focus{outline:none;border-color:var(--color-action-secondary);box-shadow:0 0 0 3px var(--color-focus-ring)}.observe-form-group input::placeholder{letter-spacing:normal;font-weight:400;font-size:1rem;text-transform:none;color:var(--color-text-secondary)}.observe-error-message{background-color:#dc26261a;color:var(--color-action-primary);padding:.75rem;border-radius:6px;margin-bottom:1rem;font-size:.9rem;border-left:4px solid var(--color-action-primary)}.observe-verify-button{width:100%;padding:1rem;background:var(--color-action-secondary);color:#fff;border:none;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s}.observe-verify-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 20px #3b82f666;background:var(--color-action-secondary-hover)}.observe-verify-button:disabled{opacity:.6;cursor:not-allowed}.observe-fullscreen{position:relative;height:100vh;width:100vw;overflow:hidden;background:var(--color-bg-primary)}.observe-fullscreen .map-background{position:absolute;inset:0;z-index:0}.observe-header{position:fixed;top:1rem;left:1rem;z-index:1000;background:var(--color-bg-secondary);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:1rem 1.5rem;border-radius:12px;box-shadow:0 4px 20px #00000026;border:2px solid var(--color-action-secondary)}.observe-title{font-size:1.5rem;font-weight:700;color:var(--color-action-secondary);margin-bottom:.5rem}.observe-metadata{display:flex;gap:.5rem;font-size:1rem;color:var(--color-text-secondary)}.observe-qr-button{margin-top:.75rem;padding:.6rem 1.2rem;font-size:1rem;background:var(--color-action-secondary);color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all .3s}.observe-qr-button:hover{transform:translateY(-2px);box-shadow:0 5px 20px #3b82f666;background:var(--color-action-secondary-hover)}.qr-button-icon{font-size:1.2rem}.observe-street{position:fixed;top:1rem;left:50%;transform:translate(-50%);background:var(--color-bg-secondary);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;padding:1.5rem 3rem;box-shadow:0 10px 40px #0003;border:4px solid var(--color-action-secondary);z-index:999;text-align:center}.observe-street-label{font-size:1.2rem;color:var(--color-text-secondary);font-weight:500;margin-bottom:.5rem}.observe-street-value{font-size:2.5rem;color:var(--color-action-secondary);font-weight:700;line-height:1.2}.observe-scoreboard{position:fixed;top:1rem;right:1rem;bottom:1rem;width:350px;z-index:1000;overflow-y:auto}.observe-waiting{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--color-bg-secondary);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:3rem 4rem;border-radius:20px;text-align:center;box-shadow:0 10px 40px #0003;border:3px solid var(--color-action-secondary);z-index:1000}.observe-waiting h2{color:var(--color-action-secondary);font-size:2rem;margin:0 0 1rem;font-weight:700}.observe-waiting p{color:var(--color-text-secondary);font-size:1.2rem;margin:0}.observe-loading,.observe-error{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;background:var(--color-bg-primary);color:var(--color-text-primary)}.observe-loading .spinner{width:60px;height:60px;border:4px solid var(--color-border-primary);border-top-color:var(--color-action-secondary);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1.5rem}@keyframes spin{to{transform:rotate(360deg)}}.observe-loading p,.observe-error p{font-size:1.2rem;color:var(--color-text-secondary)}.observe-error h2{color:var(--color-action-primary);margin-bottom:1rem;font-weight:700}.observe-ended-overlay{position:fixed;inset:0;background:#000000d9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.observe-ended-modal{background:var(--color-bg-secondary);border-radius:24px;padding:3rem;max-width:600px;width:90%;box-shadow:0 20px 60px #00000080;animation:slideUp .4s ease;border:2px solid var(--color-border-primary)}@keyframes slideUp{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}.observe-ended-title{text-align:center;font-size:2.5rem;margin:0 0 2rem;color:var(--color-text-primary);font-weight:700}.observe-standings{display:flex;flex-direction:column;gap:1rem}.observe-standing-item{display:flex;align-items:center;gap:1.5rem;padding:1.25rem 1.5rem;background:var(--color-bg-tertiary);border-radius:12px;border:2px solid var(--color-border-primary);transition:all .3s}.observe-standing-item.winner{background:#0596691a;border-color:var(--color-action-success);transform:scale(1.02);box-shadow:0 8px 20px #0596694d}.observe-rank{font-size:1.8rem;min-width:50px;text-align:center}.observe-rank .trophy{font-size:2.5rem;animation:bounce 1s ease infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.observe-rank .medal{font-size:2rem}.observe-rank .position{font-size:1.5rem;color:var(--color-text-secondary);font-weight:600}.observe-name{flex:1;font-size:1.4rem;font-weight:600;color:var(--color-text-primary)}.observe-score{font-size:1.5rem;font-weight:700;color:var(--color-action-secondary)}@media(max-width:1024px){.observe-scoreboard{width:280px}.observe-street-value{font-size:2rem}}@media(max-width:768px){.observe-scoreboard{inset:auto 0 0;width:100%;max-height:35vh;border-radius:16px 16px 0 0}.observe-street{top:100px;padding:1rem 2rem}.observe-street-value{font-size:1.6rem}.observe-header{padding:.75rem 1rem}.observe-title{font-size:1.2rem}}.admin-container{min-height:100vh;background:linear-gradient(135deg,#1a1a2e,#16213e);padding:20px;color:#fff}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,.1)}.admin-header h1{margin:0;font-size:1.8rem}.admin-header-actions{display:flex;gap:10px}.back-button,.logout-button{padding:8px 16px;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .2s}.back-button{background:#3b82f6;color:#fff}.back-button:hover{background:#1d4ed8}.logout-button{background:#dc2626;color:#fff}.logout-button:hover{background:#b91c1c}.error-banner,.success-banner{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-radius:8px;margin-bottom:20px}.error-banner{background:#dc262633;border:1px solid #DC2626;color:#dc2626}.success-banner{background:#27ae6033;border:1px solid #27ae60;color:#27ae60}.dismiss-button{background:none;border:none;color:inherit;font-size:1.3rem;cursor:pointer;padding:0 4px;line-height:1;opacity:.7}.dismiss-button:hover{opacity:1}.admin-section{background:#ffffff0d;border-radius:12px;padding:20px;overflow-x:auto}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.section-header h2{margin:0;font-size:1.3rem}.add-user-button{background:#059669;color:#fff;border:none;padding:8px 16px;border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .2s}.add-user-button:hover{background:#047857}.create-user-form,.invite-user-form{background:#0003;padding:16px;border-radius:8px;margin-bottom:20px}.form-description{margin:0 0 12px;color:#ffffffb3;font-size:.9rem}.form-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.form-row input[type=text],.form-row input[type=password],.form-row input[type=email]{flex:1;min-width:150px;padding:10px 14px;border:1px solid rgba(255,255,255,.2);border-radius:6px;background:#ffffff1a;color:#fff;font-size:.95rem}.form-row input::placeholder{color:#ffffff80}.admin-checkbox{display:flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap}.admin-checkbox input{width:18px;height:18px;cursor:pointer}.create-button{background:#3b82f6;color:#fff;border:none;padding:10px 20px;border-radius:6px;cursor:pointer;font-size:.95rem;transition:all .2s}.create-button:hover:not(:disabled){background:#1d4ed8}.create-button:disabled{opacity:.6;cursor:not-allowed}.invite-button{background:#dc2626;color:#fff;border:none;padding:10px 20px;border-radius:6px;cursor:pointer;font-size:.95rem;font-weight:600;transition:all .2s}.invite-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.invite-button:disabled{opacity:.6;cursor:not-allowed}.form-error{color:#e74c3c;margin-top:10px;font-size:.9rem}.loading{text-align:center;padding:40px;color:#fff9}.table-wrapper{overflow-x:auto}.users-table{width:100%;border-collapse:collapse;min-width:800px}.email-cell{font-size:.85rem;color:#ffffffb3;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.users-table th,.users-table td{padding:12px 16px;text-align:left;border-bottom:1px solid rgba(255,255,255,.1);vertical-align:middle}.users-table th{background:#0003;font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.5px}.users-table tr:hover{background:#ffffff0d}.users-table tr.current-user{background:#3498db1a}.you-badge{margin-left:8px;font-size:.8rem;color:#3498db}.pending-username{color:#fff6;font-style:italic}.admin-badge{display:inline-block;padding:4px 10px;border-radius:4px;font-size:.8rem;font-weight:600;background:#ffffff1a;color:#fff9}.admin-badge.is-admin{background:#27ae6033;color:#27ae60}.status-badge{display:inline-block;padding:4px 10px;border-radius:4px;font-size:.8rem;font-weight:600}.status-badge.active{background:#27ae6033;color:#27ae60}.status-badge.pending{background:#f1c40f33;color:#f1c40f}.status-badge.pending.expired{background:#e74c3c33;color:#e74c3c}.actions-cell{display:flex;flex-wrap:wrap;gap:6px}.action-button{padding:6px 12px;border:none;border-radius:4px;cursor:pointer;font-size:.8rem;transition:all .2s;white-space:nowrap}.action-button.reset{background:#3498db33;color:#3498db}.action-button.reset:hover{background:#3498db4d}.action-button.toggle{background:#f1c40f33;color:#f1c40f}.action-button.toggle:hover{background:#f1c40f4d}.action-button.delete{background:#e74c3c33;color:#e74c3c}.action-button.delete:hover{background:#e74c3c4d}.action-button.resend{background:#667eea33;color:#dc2626}.action-button.resend:hover:not(:disabled){background:#667eea4d}.action-button:disabled{opacity:.6;cursor:not-allowed}.password-reset-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.password-reset-form input{padding:6px 10px;border:1px solid rgba(255,255,255,.2);border-radius:4px;background:#ffffff1a;color:#fff;font-size:.85rem;width:140px}.save-button,.cancel-button{padding:6px 12px;border:none;border-radius:4px;cursor:pointer;font-size:.8rem;transition:all .2s}.save-button{background:#059669;color:#fff}.save-button:hover{background:#047857}.cancel-button{background:#ffffff1a;color:#ffffffb3}.cancel-button:hover{background:#fff3}@media(max-width:768px){.admin-header{flex-direction:column;gap:15px;text-align:center}.section-header{flex-direction:column;gap:15px}.form-row{flex-direction:column}.form-row input[type=text],.form-row input[type=password]{width:100%}.users-table{font-size:.85rem}.users-table th,.users-table td{padding:8px}.actions-cell{white-space:normal}.action-button{display:block;width:100%;margin-bottom:4px;margin-right:0}}.theme-switcher{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--color-bg-secondary);border-radius:8px;box-shadow:0 2px 8px #0000001a}.theme-switcher-label{font-weight:600;color:var(--color-text-primary);font-size:.95rem}.theme-buttons{display:flex;gap:.5rem}.theme-button{padding:.5rem 1rem;border:2px solid var(--color-border-primary);background:transparent;color:var(--color-text-secondary);border-radius:6px;cursor:pointer;font-weight:500;font-size:.9rem;transition:all .2s ease}.theme-button:hover{border-color:var(--color-action-primary);color:var(--color-action-primary)}.theme-button.active{background:var(--color-action-primary);color:#fff;border-color:var(--color-action-primary);font-weight:600}.theme-button.active:hover{background:var(--color-action-primary-hover);border-color:var(--color-action-primary-hover)}.settings-container{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--color-bg-primary);padding:2rem}.settings-box{background:var(--color-bg-secondary);border-radius:12px;box-shadow:0 10px 40px #0003;width:100%;max-width:500px;overflow:hidden}.settings-header{display:flex;justify-content:space-between;align-items:center;padding:2rem;border-bottom:2px solid var(--color-border-primary)}.settings-header h1{margin:0;font-size:1.8rem;color:var(--color-text-primary);font-weight:700}.settings-close-button{background:transparent;border:none;font-size:1.5rem;color:var(--color-text-secondary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s}.settings-close-button:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.settings-content{padding:2rem;max-height:calc(100vh - 300px);overflow-y:auto}.settings-section{margin-bottom:2rem}.settings-section:last-child{margin-bottom:0}.settings-section h2{font-size:1.2rem;color:var(--color-text-primary);margin:0 0 .5rem;font-weight:700}.section-description{color:var(--color-text-secondary);font-size:.9rem;margin:0 0 1.5rem;line-height:1.4}.settings-footer{padding:1.5rem 2rem;border-top:1px solid var(--color-border-primary);display:flex;gap:1rem}.settings-back-button{flex:1;padding:.75rem 1.5rem;background:var(--color-action-secondary);color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s}.settings-back-button:hover{background:var(--color-action-secondary-hover);transform:translateY(-2px);box-shadow:0 4px 12px #3b82f64d}@media(max-width:768px){.settings-container{padding:1rem}.settings-box{border-radius:8px}.settings-header{padding:1.5rem}.settings-header h1{font-size:1.5rem}.settings-content{padding:1.5rem}.settings-footer{padding:1rem 1.5rem}}:root{--color-bg-primary: #1f2937;--color-bg-secondary: #ffffff;--color-bg-tertiary: #F3F4F6;--color-bg-accent: #FEE2E2;--color-text-primary: #1f2937;--color-text-secondary: #6B7280;--color-text-tertiary: #9CA3AF;--color-text-inverse: #ffffff;--color-action-primary: #DC2626;--color-action-primary-hover: #B91C1C;--color-action-primary-light: rgba(220, 38, 38, .15);--color-action-secondary: #3B82F6;--color-action-secondary-hover: #1D4ED8;--color-action-secondary-light: #EFF6FF;--color-action-success: #059669;--color-action-success-hover: #047857;--color-action-warning: #D97706;--color-border-primary: #E5E7EB;--color-border-secondary: #D1D5DB;--color-border-accent: #DC2626;--color-focus-ring: rgba(59, 130, 246, .1)}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%}body{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}button{font-family:inherit;transition:all .3s ease}button:disabled{opacity:.5;cursor:not-allowed}input,textarea,select{font-family:inherit}.leaflet-container{font-family:inherit;background:#aad3df}.leaflet-control-attribution{background-color:#fffc;font-size:.7rem}
