body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.input-field{box-sizing:border-box;font-size:1rem;padding:8px;width:100%}:root{--button-color:#faffd3;--button-hover:#f7ebb5;--textField-focus:#000;--error-text:#e74c3c;--success-text:#2ecc71;--direction-button:#8b8b8b;--direction-button-hover:#222}.Bluetooth{font-family:sans-serif;padding:0;position:relative;text-align:center}.Bluetooth p{font-size:1.4rem;font-weight:700;margin-bottom:24px}.connect-btn{background-color:var(--button-color);border:none;border-radius:8px;color:#000;cursor:pointer;font-size:1rem;padding:12px 20px;transition:background-color .2s ease}.connect-btn:hover{background-color:var(--button-hover)}.back-btn{background-color:#8b8b8b;border:none;border-radius:6px;color:#fff;font-size:.9rem;left:16px;padding:8px 16px;position:absolute;text-decoration:none;top:-10px}.back-btn:hover{background-color:#222}.wifi-success{color:var(--success-text);font-weight:700}.wifi-failure{color:var(--error-text);font-weight:700}.title{font-size:1.2rem;font-weight:700;margin-top:60px;text-align:center}form{border-radius:12px;box-shadow:0 4px 8px #0000001a;font-family:sans-serif;margin:10px auto;max-width:400px;padding:20px}form div{margin-bottom:16px}input[type=text]{border:1px solid #fff;border-radius:8px;box-sizing:border-box;font-size:1rem;padding:10px;width:100%}input[type=text]:focus{border:1px solid var(--textField-focus);outline:none}input[type=submit]{background-color:var(--button-color);border:none;border-radius:8px;color:#000;cursor:pointer;font-size:1rem;padding:12px;transition:background-color .2s ease;width:100%}input[type=submit]:hover{background-color:var(--button-hover)}.ble-btn{background-color:var(--direction-button);border:none;border-radius:6px;color:#fff;font-size:.9rem;padding:8px 16px;position:static;right:16px;text-decoration:none;top:10px}.ble-btn:hover{background-color:var(--direction-button-hover)}.game-btn{background-color:var(--direction-button);border:none;border-radius:6px;color:#fff;font-size:.9rem;padding:8px 16px;position:static;right:180px;text-decoration:none;top:10px}.game-btn:hover{background-color:var(--direction-button-hover)}.buttons-management{display:flex;flex-direction:row;gap:16px;position:absolute;right:16px;top:10px}.laser-cell{border:1px solid #ddd;border-radius:6px;margin:8px;padding:10px;position:relative}.loader{animation:spin 1s linear infinite;border:6px solid #f3f3f3;border-radius:50%;border-top:6px solid var(--button-hover);height:40px;margin:30px auto;width:40px}@keyframes spin{to{transform:rotate(1turn)}}.status-icon{display:inline-block;height:16px;margin-left:8px;vertical-align:middle;width:16px}.status-icon.success{background-color:#4caf50;border-radius:50%;position:relative}.status-icon.success:after{border:solid #fff;border-width:0 2px 2px 0;content:"";height:10px;left:4px;position:absolute;top:1px;transform:rotate(45deg);width:5px}.status-icon.fail{position:relative}.status-icon.fail:after,.status-icon.fail:before{background-color:#f44336;content:"";height:12px;left:6px;position:absolute;top:0;width:3px}.status-icon.fail:before{transform:rotate(45deg)}.status-icon.fail:after{transform:rotate(-45deg)}.player-form{align-items:center;box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center;padding:2rem;transition:background-color .5s ease}.player-content{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0003;border:1px solid #ffffff1a;border-radius:15px;padding:2rem 3rem;text-align:center}.player-name{color:#fff;font-size:4rem;font-weight:700;margin-bottom:1rem;min-height:60px;text-shadow:2px 2px 8px #000000b3;text-transform:uppercase;transition:all .3s ease}.name-input{background:#ffffff1a;border:1px solid #fff3;border-radius:8px;color:#fff;font-size:1.2rem;margin-bottom:1.5rem;padding:.75rem;text-align:center;width:100%}.name-input::placeholder{color:#ffffff80}.name-input:focus{background:#fff3;outline:2px solid #fff}.color-palette{gap:1rem}.color-swatch{box-shadow:0 4px 10px #0000004d;height:45px;transition:transform .2s ease,border-color .2s ease;width:45px}.color-swatch:hover{transform:scale(1.15)}.color-swatch.selected{transform:scale(1.2)}.color-swatch.disabled{opacity:.3}.laser-select{background:#fff;border:1px solid #ccc;border-radius:8px;color:#222;font-size:1rem;margin-top:.5rem;padding:.5rem;pointer-events:auto;position:relative;width:100%;z-index:1001}.laser-select:disabled{background:#eee;color:#aaa;cursor:not-allowed}.game-container{background-color:#1a1d22;overflow:hidden;position:relative}.players-area{align-content:stretch;display:flex;flex-wrap:wrap;height:100%;transition:all .5s ease-in-out;width:100%}.players-area>.player-form{transition:flex-basis .5s ease,height .5s ease}.players-area.layout-1>.player-form{flex-basis:100%;height:100%}.players-area.layout-2{flex-direction:row}.players-area.layout-2>.player-form{flex-basis:50%;height:100%}.players-area.layout-3{flex-direction:row;flex-wrap:wrap}.players-area.layout-3>.player-form:first-child{flex-basis:100%;height:50%}.players-area.layout-3>.player-form:nth-child(2),.players-area.layout-3>.player-form:nth-child(3){flex-basis:50%;height:50%}.players-area.layout-4{flex-direction:row;flex-wrap:wrap}.players-area.layout-4>.player-form{flex-basis:50%;height:50%}.game-actions{bottom:2.5rem;left:0;right:0;z-index:1000}.add-player-btn,.game-actions{align-items:center;display:flex;justify-content:center;position:absolute}.add-player-btn{background-color:#ff6b6b;border:none;border-radius:50%;bottom:0;box-shadow:0 4px 15px #0000004d;color:#fff;cursor:pointer;font-size:2.5rem;font-weight:700;height:60px;line-height:1;right:2.5rem;transition:transform .2s ease,background-color .2s ease;width:60px}.add-player-btn:hover{background-color:#e05a5a;transform:scale(1.1)}.start-game-btn{background-color:#2ecc71;border:none;border-radius:50px;bottom:10px;box-shadow:0 4px 15px #0003;color:#fff;cursor:pointer;font-size:1.3rem;font-weight:700;left:50%;padding:.9rem 2.2rem;position:absolute;transform:translateX(-50%);transition:all .3s ease}.start-game-btn:hover:not(:disabled){background-color:#27ae60;transform:translateX(-50%) scale(1.05)}.start-game-btn:disabled{background-color:#555;color:#999;cursor:not-allowed;opacity:.7}.add-player-btn:active{transform:scale(1.05)}.invite-form{background:#181c24;border:1.5px solid #23283a;border-radius:18px;box-shadow:0 8px 32px #00000073;max-height:95vh;max-width:420px;min-width:340px;overflow-y:auto}.invite-form h2{font-size:2rem;font-weight:700;letter-spacing:1px;margin-bottom:2rem;text-align:center}.invite-form h3{color:#fff;font-size:1.25rem;font-weight:600;margin-bottom:1.2rem;text-align:center}.invite-form h4{color:#fff;font-size:1.1rem;font-weight:500;margin-bottom:.8rem;text-align:center}.invite-form p{color:#bfc7d5;font-size:1rem;margin-bottom:1rem;text-align:center}.bluetooth-section{align-items:center;background:#1e222cf2;border:1.5px solid #23283a;border-radius:14px;box-shadow:0 2px 8px #0000001a;display:flex;flex-direction:column;margin-bottom:2.2rem;padding:1.5rem 1rem 1.2rem;width:100%}.bluetooth-connect-btn{background:linear-gradient(90deg,#1976d2 60%,#1565c0);border:none;border-radius:8px;box-shadow:0 2px 8px #1976d21a;color:#fff;cursor:pointer;font-size:1.08rem;font-weight:700;margin-bottom:.5rem;padding:.9rem;transition:background .2s,box-shadow .2s;width:100%}.bluetooth-connect-btn:focus,.bluetooth-connect-btn:hover:not(:disabled){background:linear-gradient(90deg,#1565c0 60%,#1976d2);outline:2px solid #1976d2}.bluetooth-connect-btn:disabled{background-color:#444a5a;color:#999;cursor:not-allowed}.wifi-form-section{border-top:1.5px solid #23283a;margin-top:1.2rem;padding-top:1.2rem;width:100%}.wifi-form-section form{align-items:center;display:flex;flex-direction:column;gap:1rem}.wifi-form-section input{background:#23283a;border:1.5px solid #23283a;border-radius:8px;box-sizing:border-box;color:#fff;font-size:1rem;margin-bottom:.2rem;padding:.8rem;transition:border .2s,background .2s;width:100%}.wifi-form-section input:focus{background:#222a38;border:1.5px solid #1976d2;outline:none}.wifi-form-section input::placeholder{color:#bfc7d5;opacity:.8}.wifi-submit-btn{background:linear-gradient(90deg,#2ecc71 60%,#27ae60);border:none;border-radius:8px;box-shadow:0 2px 8px #2ecc711a;color:#fff;cursor:pointer;font-size:1.08rem;font-weight:700;margin-top:.2rem;padding:.8rem;transition:background .2s,box-shadow .2s;width:100%}.wifi-submit-btn:focus,.wifi-submit-btn:hover:not(:disabled){background:linear-gradient(90deg,#27ae60 60%,#2ecc71);outline:2px solid #2ecc71}.wifi-submit-btn:disabled{background-color:#444a5a;color:#999;cursor:not-allowed}.wifi-success{background:#2ecc7121;border:1.5px solid #2ecc71;border-radius:8px;margin-top:1rem;padding:.8rem;text-align:center}.wifi-success p{color:#2ecc71;font-weight:600;margin:0}.wifi-failure{background:#e74c3c21;border:1.5px solid #e74c3c;border-radius:8px;margin-top:1rem;padding:.8rem;text-align:center}.wifi-failure p{color:#e74c3c;font-weight:600;margin:0}.player-form-section{margin-top:1.5rem}.player-form-section,.player-form-section form{align-items:center;display:flex;flex-direction:column;width:100%}.player-form-section input[type=text]{background:#23283a;border:1.5px solid #23283a;border-radius:8px;box-sizing:border-box;font-size:1.08rem;margin-bottom:1.5rem;padding:.8rem;transition:border .2s,background .2s;width:100%}.player-form-section input[type=text]:focus{background:#222a38;border:1.5px solid #1976d2;outline:none}.player-form-section input::placeholder{opacity:.8}.color-palette{display:flex;gap:1.1rem;justify-content:center;margin-bottom:1.5rem}.color-swatch{border:3px solid #0000;border-radius:50%;box-shadow:0 4px 10px #00000040;cursor:pointer;height:48px;transition:transform .2s,border-color .2s;width:48px}.color-swatch:hover{border-color:#fff;transform:scale(1.13)}.color-swatch.selected{border-color:#fff;transform:scale(1.18)}.color-swatch.disabled{cursor:not-allowed;filter:grayscale(80%);opacity:.25}.color-swatch.disabled:hover{border-color:#0000;transform:scale(1)}.player-form-section button[type=submit]{background:linear-gradient(90deg,#2ecc71 60%,#27ae60);border:none;border-radius:50px;box-shadow:0 4px 15px #2ecc7121;color:#fff;cursor:pointer;font-size:1.13rem;font-weight:700;margin-top:1rem;min-width:160px;padding:.8rem 2.2rem;transition:background .3s,outline .2s}.player-form-section button[type=submit]:focus,.player-form-section button[type=submit]:hover:not(:disabled){background:linear-gradient(90deg,#27ae60 60%,#2ecc71);outline:2px solid #2ecc71}.player-form-section button[type=submit]:disabled{background-color:#444a5a;color:#999;cursor:not-allowed;opacity:.7}@media (max-width:600px){.invite-form{max-width:99vw;min-width:95vw;padding:1.5rem .5rem}.bluetooth-section{padding:1rem .5rem}.color-palette{gap:.7rem}.color-swatch{height:38px;width:38px}}.modal-overlay{align-items:center;animation:fadeIn .2s;background:#000000a6;display:flex;inset:0;justify-content:center;position:fixed;z-index:3000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-laser-config{align-items:center;background:#181c24;border:1.5px solid #23283a;border-radius:18px;box-shadow:0 8px 32px #00000073;display:flex;flex-direction:column;max-height:95vh;max-width:95vw;min-width:320px;overflow-y:auto;padding:2.2rem 1.5rem 1.5rem;position:relative}.modal-close-btn{background:none;border:none;color:#fff;cursor:pointer;font-size:2.1rem;font-weight:700;line-height:1;position:absolute;right:18px;top:12px;transition:color .2s;z-index:10}.modal-close-btn:hover{color:#e74c3c}@media (max-width:600px){.modal-laser-config{min-width:90vw;padding:1.2rem .5rem}.modal-close-btn{font-size:1.7rem;right:10px;top:8px}}.game-container{height:100vh;width:100vw}.error-screen{align-items:center;color:#fff;display:flex;flex-direction:column;font-size:2rem;height:100vh;justify-content:center;text-align:center}.error-screen p{font-size:1rem;margin-top:1rem;opacity:.7}.game-players-area{align-content:stretch;display:flex;flex-wrap:wrap;height:100%;transition:all .5s ease-in-out;width:100%}.game-players-area>.player-game-area{transition:flex-basis .5s ease,height .5s ease}.game-players-area.layout-1>.player-game-area{flex-basis:100%;height:100%}.game-players-area.layout-2{flex-direction:row}.game-players-area.layout-2>.player-game-area{flex-basis:50%;height:100%}.game-players-area.layout-3{flex-direction:row;flex-wrap:wrap}.game-players-area.layout-3>.player-game-area:first-child{flex-basis:100%;height:50%}.game-players-area.layout-3>.player-game-area:nth-child(2),.game-players-area.layout-3>.player-game-area:nth-child(3){flex-basis:50%;height:50%}.game-players-area.layout-4{flex-wrap:wrap}.game-players-area.layout-4>.player-game-area{flex-basis:50%;height:50%}.player-game-area{align-items:center;box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center;padding:2rem;position:relative}.player-game-content{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0000004d;border:1px solid #ffffff1a;border-radius:15px;padding:2rem 3rem;text-align:center}.player-game-name{color:#fff;font-size:3.5rem;font-weight:700;margin-bottom:1.5rem;text-shadow:2px 2px 8px #000000b3;text-transform:uppercase}.player-score{align-items:center;display:flex;flex-direction:column;gap:.5rem}.score-label{color:#fffc;font-size:1.2rem;font-weight:500}.score-value{color:#fff;font-size:4rem;font-weight:700;text-shadow:2px 2px 8px #000000b3}.action-buttons{display:flex;gap:16px;position:absolute;right:20px;top:20px;z-index:1000}.invite-link-btn,.stop-game-btn{border:none;border-radius:8px;box-shadow:0 4px 15px #00000026;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:700;padding:.8rem 2rem;transition:background .2s,transform .2s}.stop-game-btn{background-color:#e74c3c}.stop-game-btn:hover{background-color:#c0392b;transform:scale(1.05)}.invite-link-btn{background-color:#3498db}.invite-link-btn:hover{background-color:#217dbb;transform:scale(1.05)}.invite-form-modal{align-items:center;background:#0009;display:flex;inset:0;justify-content:center;position:fixed;z-index:2000}.invite-form{align-items:center;background:#222;border-radius:16px;box-shadow:0 8px 32px #0000004d;display:flex;flex-direction:column;min-width:320px;padding:2.5rem 2rem 2rem}.invite-form h2,.invite-form input[type=text]{color:#fff;margin-bottom:1.5rem}.invite-form input[type=text]{background:#ffffff1a;border:1px solid #fff3;border-radius:8px;font-size:1.1rem;padding:.7rem;width:100%}.invite-form input::placeholder{color:#ffffff80}.invite-form button[type=submit]{background-color:#2ecc71;border:none;border-radius:50px;box-shadow:0 4px 15px #0003;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:700;margin-top:1.5rem;padding:.7rem 2.2rem;transition:background .3s ease}.invite-form button[type=submit]:hover:not(:disabled){background-color:#27ae60}.invite-form button[type=submit]:disabled{background-color:#555;color:#999;cursor:not-allowed;opacity:.7}
/*# sourceMappingURL=main.f11dda28.css.map*/