.connection-status{background-color:#fee2e2;border-radius:8px;margin-bottom:20px;padding:12px;text-align:center}.connection-status-text{color:#dc2626;font-weight:600}.game-id-input{border:2px solid #e0e0e0;border-radius:10px;font-size:1rem;padding:15px;transition:border-color .3s}.game-id-input:focus{border-color:#667eea;outline:none}.player-count{margin:0}@media (max-width:768px){.game-info{align-items:flex-start;flex-direction:column}.player-count{margin-left:0}.lobby-card{padding:30px 20px}.menu-buttons{gap:10px}.game-settings{gap:15px}}.toast{animation:slideDown .3s ease-out,fadeOut .3s ease-in 2.7s;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;box-shadow:0 8px 24px #0000004d;color:#fff;font-size:1rem;font-weight:600;left:50%;max-width:90%;padding:16px 24px;position:fixed;text-align:center;top:80px;transform:translateX(-50%);z-index:1000}@keyframes slideDown{0%{opacity:0;transform:translateX(-50%) translateY(-20px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@media (max-width:768px){.toast{font-size:.9rem;padding:12px 20px;top:60px}}.board button:not(:disabled):not([data-empty=false]):hover{box-shadow:0 5px 15px #0003;transform:scale(1.05)}@media (max-width:768px){.board{gap:6px;max-width:95vw}.board button{border-width:2px;font-size:clamp(.7rem,2.5vw,1rem)}}@media (max-width:480px){.board{gap:4px}.board button{border-width:2px;font-size:clamp(.6rem,2vw,.9rem)}}@media (max-width:768px){.game-status{font-size:1rem}.teams-display{flex-direction:column;gap:15px}.team-card{margin:0 auto;max-width:200px}}@media (max-width:480px){.team-card{max-width:150px}.player-item{font-size:.8rem;padding:4px 8px}}.rematch-section{margin-top:20px}.rematch-status{background-color:#fef3c7;border-radius:8px;color:#92400e;margin-bottom:15px;padding:12px;text-align:center}.rematch-hint{font-size:.9rem;margin-top:5px}.rematch-buttons{display:flex;gap:15px;justify-content:center}@media (max-width:768px){.rematch-buttons{flex-direction:column;gap:10px}}.game-info-footer{flex-wrap:wrap}.game-info-footer p{margin:0}.waiting-message{color:#f59e0b}@media (max-width:768px){.game-container{padding:20px 15px}.game-info-footer{flex-direction:column;gap:10px}}@media (max-width:480px){.game-container{padding:15px 10px}}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-tap-highlight-color:transparent;background:linear-gradient(135deg,#667eea,#764ba2);color:#333;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;min-height:100vh;touch-action:manipulation}.app-container{min-height:100vh;padding:20px}.app-container h1{color:#fff;font-size:2.5rem;margin-bottom:30px;text-align:center;text-shadow:2px 2px 4px #0003}.lobby-container{align-items:center;display:flex;justify-content:center;min-height:80vh}.lobby-card{background:#fff;border-radius:20px;box-shadow:0 10px 40px #0003;max-width:600px;padding:40px;position:relative;width:100%}.lobby-card h2{color:#667eea;font-size:2rem;margin-bottom:30px;text-align:center}.player-name{color:#666;margin-bottom:20px;text-align:center}.back-button,.player-name strong{color:#667eea}.back-button{background:none;border:none;cursor:pointer;font-size:1rem;left:20px;padding:5px 10px;position:absolute;top:20px;transition:color .3s}.back-button:hover{color:#764ba2}.name-input-group{margin-bottom:30px}.name-input-group label{color:#666;display:block;font-weight:600;margin-bottom:10px}.name-input{border:2px solid #e0e0e0;border-radius:10px;font-size:1rem;padding:15px;transition:border-color .3s;width:100%}.name-input:focus{border-color:#667eea;outline:none}.menu-buttons{display:flex;flex-direction:column;gap:15px}.btn{border:none;border-radius:10px;cursor:pointer;font-size:1rem;font-weight:600;padding:15px 30px;text-align:center;transition:all .3s}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary:hover:not(:disabled){box-shadow:0 5px 15px #667eea66;transform:translateY(-2px)}.btn-secondary{background:#fff;border:2px solid #667eea;color:#667eea}.btn-secondary:hover:not(:disabled){background:#667eea;color:#fff}.btn-large{font-size:1.2rem;margin-top:20px;padding:20px 40px}.hint{color:#999;font-size:.9rem;margin-top:15px;text-align:center}.game-settings{gap:20px;margin-bottom:20px}.game-settings,.setting-group{display:flex;flex-direction:column}.setting-group{gap:10px}.setting-group label{color:#666;font-size:.95rem;font-weight:600}.setting-group select{background:#fff;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;font-size:1rem;padding:12px;transition:border-color .3s}.setting-group select:focus{border-color:#667eea;outline:none}.mode-selector{display:flex;gap:10px}.mode-btn{background:#fff;border:2px solid #e0e0e0;border-radius:8px;color:#666;cursor:pointer;flex:1 1;font-weight:600;padding:12px;transition:all .3s}.mode-btn:hover{border-color:#667eea;color:#667eea}.mode-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#0000;color:#fff}.private-game-section{background-color:#f3f4f6;border:2px solid #e5e7eb;border-radius:12px;margin-bottom:25px;padding:20px}.private-game-section h3{color:#374151;font-size:1rem;font-weight:600;margin-bottom:12px}.game-id-input-group{align-items:stretch;display:flex;gap:10px}.game-id-input{flex:1 1;text-transform:uppercase}.game-id-hint{color:#6b7280;font-size:.85rem;margin-bottom:0;margin-top:8px}.public-games-section{border-top:1px solid #e5e7eb;padding-top:20px}.public-games-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:15px}.public-games-header h3{color:#374151;font-size:1rem;font-weight:600;margin:0}.btn-refresh{font-size:.9rem;padding:8px 16px}.no-games{color:#999;padding:40px;text-align:center}.no-games p{font-size:1.1rem;margin-bottom:20px}.games-list{display:flex;flex-direction:column;gap:15px;max-height:500px;overflow-y:auto;padding:10px}.game-card{background:#f8f9fa;border:2px solid #e0e0e0;border-radius:12px;padding:20px;transition:all .3s}.game-card:hover{border-color:#667eea;box-shadow:0 5px 15px #667eea33;transform:translateY(-2px)}.game-info{align-items:center;display:flex;flex-wrap:wrap;gap:15px;margin-bottom:15px}.game-info h3{color:#333;font-size:1.2rem;margin:0}.game-mode-badge{background:#667eea;border-radius:20px;color:#fff;font-size:.85rem;font-weight:600;padding:5px 12px}.player-count{color:#666;font-size:.95rem;margin-left:auto}.team-join-options{display:flex;flex-direction:column;gap:10px}.team-label{color:#666;font-weight:600;margin-bottom:5px}.team-btn{border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:12px;transition:all .3s}.team-btn:hover:not(:disabled){box-shadow:0 5px 15px #0000004d;transform:translateY(-2px)}.team-btn:disabled{cursor:not-allowed;opacity:.5}.game-container{background:#fff;border-radius:20px;box-shadow:0 10px 40px #0003;margin:0 auto;max-width:800px;padding:40px}.game-header{margin-bottom:30px;text-align:center}.game-header h2{color:#667eea;margin-bottom:10px}.game-status{color:#666;font-size:1.1rem}.teams-display{gap:12px;margin-bottom:30px}.team-card,.teams-display{display:flex;justify-content:center}.team-card{align-items:center;aspect-ratio:1;border:4px solid;border-radius:50%;flex:1 1;max-height:150px;max-width:150px;padding:15px}.team-players{display:flex;flex-direction:column;gap:6px;text-align:center}.player-item{background:#ffffff4d;border-radius:20px;color:#fff;font-size:.9rem;font-weight:600;padding:6px 10px}.board{grid-gap:10px;display:grid;gap:10px;justify-content:center;margin:30px auto;max-width:min(500px,90vw)}.board,.board button{aspect-ratio:1;width:100%}.board button{background:#fff;border:3px solid #e0e0e0;border-radius:50%;color:#fff;cursor:pointer;font-size:clamp(.8rem,3vw,1.5rem);font-weight:700;min-width:0;touch-action:manipulation;transition:all .3s;-webkit-user-select:none;user-select:none}.board button:hover:not(:disabled){box-shadow:0 5px 15px #0003;transform:scale(1.05)}.board button:disabled{cursor:not-allowed}.board button[data-empty=true]{background:#f8f9fa}.board button[data-empty=true]:hover{background:#e9ecef}.game-info-footer{color:#666;display:flex;gap:30px;justify-content:center;margin-top:30px;text-align:center}.game-info-footer p{font-weight:600}.winner-announcement{animation:celebrate .5s ease-in-out;font-size:1.5rem;font-weight:700}.winner-announcement:has-text("Win"){color:#10b981}.winner-announcement:has-text("Lost"){color:#dc2626}@keyframes celebrate{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@media (max-width:768px){.app-container{padding:10px}.lobby-card{padding:20px 15px}.app-container h1{font-size:1.8rem;margin-bottom:20px}.lobby-card h2{font-size:1.5rem}.game-info{align-items:flex-start;flex-direction:column}.player-count{margin-left:0}.game-container{padding:20px 15px}.board{gap:6px;max-width:95vw}.board button{border-width:2px;font-size:clamp(.7rem,2.5vw,1rem)}.teams-display{flex-direction:column;gap:15px}.team-card{margin:0 auto;max-width:200px}.game-info-footer{flex-direction:column;gap:10px}.game-status{font-size:1rem}.menu-buttons{gap:10px}.btn{font-size:.95rem;padding:12px 20px}.btn-large{font-size:1rem;padding:15px 25px}.game-settings{gap:15px}}@media (max-width:480px){.app-container h1{font-size:1.5rem}.board{gap:4px}.board button{border-width:2px;font-size:clamp(.6rem,2vw,.9rem)}.team-card{max-width:150px}.player-item{font-size:.8rem;padding:4px 8px}.game-container{padding:15px 10px}}
/*# sourceMappingURL=main.6ac8add0.css.map*/