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}.ludo-board{background:#fff;border:4px solid #2c3e50;border-radius:10px;box-shadow:0 8px 32px #0003;display:grid;grid-template-columns:repeat(15,1fr);grid-template-rows:repeat(15,1fr);height:600px;width:600px}.board-cell{align-items:center;border:1px solid #ecf0f1;cursor:pointer;display:flex;justify-content:center;min-height:100%;position:relative;transition:background-color .2s ease}.red-home{background-color:#e74c3c!important;border:2px solid #c0392b!important;position:relative}.blue-home{background-color:#3498db!important;border:2px solid #2980b9!important;position:relative}.yellow-home{background-color:#f1c40f!important;border:2px solid #f39c12!important;position:relative}.green-home{background-color:#27ae60!important;border:2px solid #229954!important;position:relative}.piece-area{background-color:#fff!important;border:2px solid #2c3e50!important;border-radius:8px;box-shadow:inset 0 2px 4px #0000001a}.red-home.piece-area{border-color:#c0392b!important}.blue-home.piece-area{border-color:#2980b9!important}.yellow-home.piece-area{border-color:#f39c12!important}.green-home.piece-area{border-color:#229954!important}.path{background-color:#ecf0f1;border:1px solid #bdc3c7}.path:hover{background-color:#d5dbdb}.safe-zone{border:3px solid #495057!important;position:relative}.red-safe{background-color:#ffebee!important;border-color:#e74c3c!important}.blue-safe{background-color:#e3f2fd!important;border-color:#3498db!important}.yellow-safe{background-color:#fffde7!important;border-color:#f1c40f!important}.green-safe{background-color:#e8f5e8!important;border-color:#27ae60!important}.safe-zone:after{color:#495057;content:"★";font-size:16px;font-weight:700;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.center{background:#f8f9fa;border:2px solid #2c3e50}.border{background-color:#95a5a6;border:1px solid #7f8c8d}.game-piece{border:2px solid #fff;border-radius:50%;box-shadow:0 2px 8px #0000004d;cursor:pointer;height:20px;position:relative;transition:all .3s ease;width:20px;z-index:10}.game-piece.moving{transition:transform .3s ease-in-out;z-index:100}.game-piece.moving-step{animation:piece-move-step .3s ease-in-out;box-shadow:0 0 20px #ffd700cc,0 0 30px #ffd70066;transform:scale(1.3);z-index:150}@keyframes piece-move-step{0%{box-shadow:0 0 20px #ffd700cc;transform:scale(1.3)}50%{box-shadow:0 0 25px gold,0 0 35px #ffd70099;transform:scale(1.5)}to{box-shadow:0 0 20px #ffd700cc;transform:scale(1.3)}}.red-piece{background-color:#e74c3c;border-color:#c0392b}.blue-piece{background-color:#3498db;border-color:#2980b9}.yellow-piece{background-color:#f1c40f;border-color:#f39c12}.green-piece{background-color:#27ae60;border-color:#229954}.current-player-piece{animation:pulse 2s infinite;border-color:#fff!important;box-shadow:0 0 15px #fffc;transform:scale(1.1)}.movable-piece{animation:glow 1.5s ease-in-out infinite alternate;position:relative}.movable-piece:before{animation:pulse-glow 2s ease-in-out infinite;background:radial-gradient(circle,#00ff004d 0,#0000 70%);border-radius:50%;bottom:-4px;content:"";left:-4px;position:absolute;right:-4px;top:-4px;z-index:-1}.movable-piece:hover{box-shadow:0 0 20px #0f09;transform:scale(1.3)}@keyframes glow{0%{box-shadow:0 0 5px #00ff0080}to{box-shadow:0 0 15px #0f0c,0 0 25px #0f06}}@keyframes pulse-glow{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}.game-piece:hover{box-shadow:0 4px 12px #0006;transform:scale(1.2);z-index:20}@media (max-width:768px){.ludo-board{height:90vw;max-height:500px;max-width:500px;width:90vw}.game-piece{height:15px;width:15px}}.dice-container{flex-direction:column;gap:15px}.dice,.dice-container{align-items:center;display:flex}.dice{background:#fff;border:3px solid #2c3e50;border-radius:12px;box-shadow:0 4px 16px #0003;cursor:pointer;height:80px;justify-content:center;position:relative;transition:all .3s ease;width:80px}.dice:hover{box-shadow:0 6px 20px #0000004d;transform:scale(1.1)}.dice:active{transform:scale(.95)}.dice-face{grid-gap:2px;display:grid;gap:2px;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);height:60px;width:60px}.dice-dot{background-color:initial;border-radius:50%;height:12px;transition:background-color .3s ease;width:12px}.dice-dot.active{background-color:#2c3e50;box-shadow:0 2px 4px #0000004d}.roll-button{background:linear-gradient(45deg,#3498db,#2980b9);border:none;border-radius:25px;box-shadow:0 4px 16px #3498db4d;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:700;padding:12px 24px;transition:all .3s ease}.roll-button:hover{background:linear-gradient(45deg,#2980b9,#3498db);box-shadow:0 6px 20px #3498db66;transform:translateY(-2px)}.roll-button:active{transform:translateY(0)}@keyframes roll{0%{transform:rotate(0deg)}25%{transform:rotate(90deg)}50%{transform:rotate(180deg)}75%{transform:rotate(270deg)}to{transform:rotate(1turn)}}.dice.rolling{animation:roll .5s ease-in-out}.dice.disabled{background:#f8f9fa;border-color:#dee2e6;cursor:not-allowed;opacity:.5}.dice.disabled:hover{box-shadow:0 4px 16px #0000001a;transform:none}.roll-button.disabled{cursor:not-allowed;opacity:.6}.roll-button.disabled,.roll-button.disabled:hover{background:linear-gradient(45deg,#95a5a6,#7f8c8d);box-shadow:0 2px 8px #7f8c8d33}.roll-button.disabled:hover{transform:none}.dice.not-used{background:#f8f9fa;border-color:#e74c3c;border-style:dashed;opacity:.8}.dice.not-used .dice-dot.active{background-color:#95a5a6}.not-used-indicator{align-items:center;background:#e74c3c;border-radius:50%;box-shadow:0 2px 6px #0000004d;display:flex;height:20px;justify-content:center;position:absolute;right:-5px;top:-5px;width:20px;z-index:1}.not-used-indicator span{color:#fff;font-size:12px;font-weight:700;line-height:1}.dice.not-used:hover{box-shadow:0 4px 16px #e74c3c4d;transform:scale(1.05)}.network-manager{background:#f5f5f5;border:2px solid #ddd;border-radius:10px;margin:20px 0;max-width:500px;padding:20px}.network-status h3{color:#333;font-size:1.2em;margin:0 0 15px}.connection-info{background:#fff;border-radius:5px;margin:10px 0;padding:10px}.connection-info p{font-size:.9em;margin:5px 0}.status{border-radius:3px;font-size:.8em;font-weight:700;padding:2px 6px;text-transform:uppercase}.status.connecting{background-color:#ffeaa7;color:#636e72}.status.connected{background-color:#00b894;color:#fff}.status.disconnected{background-color:#636e72;color:#fff}.status.error{background-color:#d63031;color:#fff}.network-options{margin-top:15px}.network-buttons{display:flex;gap:10px;margin-bottom:15px}.host-btn,.join-btn{border:none;border-radius:5px;cursor:pointer;flex:1 1;font-weight:700;padding:12px 20px;transition:background-color .3s}.host-btn{background-color:#0984e3;color:#fff}.host-btn:hover:not(:disabled){background-color:#0770c0}.join-btn{background-color:#00b894;color:#fff}.join-btn:hover:not(:disabled){background-color:#00a085}.host-options,.join-options{background:#fff;border:1px solid #ddd;border-radius:5px;padding:15px}.host-options h4,.join-options h4{color:#333;margin:0 0 15px}.input-group{display:flex;gap:10px;margin-bottom:15px}.input-group input{border:1px solid #ddd;border-radius:4px;flex:1 1;font-size:14px;padding:8px 12px}.input-group button{background-color:#74b9ff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 15px}.input-group button:hover{background-color:#5a9fff}.action-buttons{display:flex;gap:10px}.join-game-btn,.start-hosting-btn{background-color:#00b894;border:none;border-radius:4px;color:#fff;cursor:pointer;flex:1 1;font-weight:700;padding:10px 20px}.join-game-btn:hover:not(:disabled),.start-hosting-btn:hover:not(:disabled){background-color:#00a085}.join-game-btn:disabled,.start-hosting-btn:disabled{background-color:#ccc;cursor:not-allowed}.cancel-btn{background-color:#636e72;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:10px 20px}.cancel-btn:hover{background-color:#545b61}.network-controls{margin-top:15px}.disconnect-btn{background-color:#d63031;border:none;border-radius:4px;color:#fff;cursor:pointer;font-weight:700;padding:10px 20px;width:100%}.disconnect-btn:hover{background-color:#b92d2e}.error-message{background-color:#ffe6e6;border-radius:4px;color:#d63031;font-weight:700;margin-top:10px;padding:10px;text-align:center}@media (max-width:600px){.network-manager{margin:10px 0;padding:15px}.action-buttons,.input-group,.network-buttons{flex-direction:column}}.network-debugger{background:#fff;border:2px solid #ddd;border-radius:8px;bottom:20px;box-shadow:0 4px 12px #00000026;font-family:Courier New,monospace;font-size:12px;max-height:400px;position:fixed;right:20px;width:350px;z-index:1000}.debugger-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #ddd;display:flex;justify-content:space-between;padding:10px}.debugger-header h3{color:#333;font-size:14px;margin:0}.debugger-controls{display:flex;gap:5px}.debugger-controls button{background:#fff;border:1px solid #ccc;border-radius:3px;cursor:pointer;font-size:11px;padding:4px 8px}.debugger-controls button:hover:not(:disabled){background:#f0f0f0}.debugger-controls button:disabled{cursor:not-allowed;opacity:.5}.network-state{background:#f9f9f9;border-bottom:1px solid #eee;padding:10px}.state-item{display:flex;justify-content:space-between;margin:3px 0}.state-item strong{color:#555}.logs-container{padding:10px}.logs-container h4{color:#333;font-size:13px;margin:0 0 8px}.logs{background:#fafafa;border:1px solid #eee;border-radius:3px;max-height:200px;overflow-y:auto}.log-entry{align-items:flex-start;border-bottom:1px solid #f0f0f0;display:flex;gap:8px;padding:4px 8px}.log-entry:last-child{border-bottom:none}.log-timestamp{color:#666;flex-shrink:0;font-size:10px;width:60px}.log-message{flex:1 1;word-break:break-word}.log-info .log-message{color:#333}.log-success .log-message{color:#00b894;font-weight:700}.log-error .log-message{color:#d63031;font-weight:700}.log-turn .log-message{color:#0984e3;font-weight:700}.log-status .log-message{color:#6c5ce7;font-weight:700}.no-logs{color:#999;font-style:italic;padding:20px;text-align:center}.logs::-webkit-scrollbar{width:4px}.logs::-webkit-scrollbar-track{background:#f1f1f1}.logs::-webkit-scrollbar-thumb{background:#ccc;border-radius:2px}.logs::-webkit-scrollbar-thumb:hover{background:#999}@media (max-width:768px){.network-debugger{margin:10px 0;max-height:300px;position:static;width:100%}}.audio-player{position:fixed;right:20px;top:20px;z-index:1000}.audio-toggle-btn{align-items:center;background:#ffffffe6;border:2px solid #667eea;border-radius:50%;box-shadow:0 4px 12px #0003;cursor:pointer;display:flex;font-size:1.5rem;height:50px;justify-content:center;transition:all .3s ease;width:50px}.audio-toggle-btn:hover{background:#fff;box-shadow:0 6px 16px #0000004d;transform:scale(1.1)}.audio-panel{animation:slideIn .3s ease;background:#fff;border-radius:12px;box-shadow:0 8px 24px #0003;min-width:300px;padding:20px;position:absolute;right:0;top:60px}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.audio-header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;margin-bottom:15px;padding-bottom:10px}.audio-header h3{color:#333;font-size:1.2rem;margin:0}.close-btn{background:none;border:none;border-radius:4px;color:#666;cursor:pointer;font-size:1.2rem;padding:4px;transition:all .2s ease}.close-btn:hover{background:#f0f0f0;color:#333}.track-selection{margin-bottom:15px}.track-selection h4{color:#555;font-size:1rem;margin:0 0 10px}.track-list{display:flex;flex-direction:column;gap:8px;max-height:200px;overflow-y:auto}.track-btn{background:#f8f9fa;border:2px solid #e9ecef;border-radius:8px;color:#333;cursor:pointer;font-size:.9rem;padding:10px 12px;text-align:left;transition:all .2s ease}.track-btn:hover{background:#e9ecef;border-color:#667eea}.track-btn.selected{background:#667eea;border-color:#667eea;color:#fff}.audio-controls{display:flex;gap:10px;justify-content:center;margin-bottom:15px}.control-btn{background:#667eea;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1.1rem;min-width:50px;padding:10px 15px;transition:all .2s ease}.control-btn:hover:not(:disabled){background:#5a6fd8;transform:translateY(-1px)}.control-btn:disabled{background:#ccc;cursor:not-allowed;opacity:.6}.volume-control{align-items:center;color:#555;display:flex;font-size:.9rem;gap:10px;margin-bottom:15px}.volume-control label{font-weight:500}.volume-slider{background:#e9ecef;border-radius:3px;cursor:pointer;flex:1 1;height:6px;outline:none}.volume-slider::-webkit-slider-thumb{appearance:none;background:#667eea;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px #0003;cursor:pointer;height:18px;width:18px}.volume-slider::-moz-range-thumb{background:#667eea;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px #0003;cursor:pointer;height:18px;width:18px}.current-track{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:10px;text-align:center}.current-track p{color:#555;font-size:.9rem;font-weight:500;margin:0 0 5px}.playing-indicator{animation:pulse 1.5s infinite;color:#667eea;font-size:.9rem;font-weight:700}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}@media (max-width:768px){.audio-player{right:10px;top:10px}.audio-toggle-btn{font-size:1.3rem;height:45px;width:45px}.audio-panel{min-width:280px;right:-10px}}@media (max-width:480px){.audio-panel{min-width:260px;right:-20px}.track-btn{font-size:.8rem;padding:8px 10px}}.ludo-game{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;flex-direction:column;font-family:Arial,sans-serif;min-height:100vh;padding:20px}.game-header{color:#fff;margin-bottom:30px;text-align:center}.game-header h1{font-size:3rem;margin-bottom:10px;text-shadow:2px 2px 4px #0000004d}.game-header p{font-size:1.1rem;margin-bottom:10px}.game-info{align-items:center;display:flex;flex-direction:column;gap:10px}.current-player{font-size:1.2rem;font-weight:700}.player-count{font-size:1rem;opacity:.9}.restart-btn{background:#fff3;border:2px solid #fff;border-radius:20px;color:#fff;cursor:pointer;font-size:.9rem;padding:8px 16px;transition:all .3s ease}.restart-btn:hover{background:#fff;color:#667eea}.player-selection{background:#fff;border-radius:20px;box-shadow:0 8px 32px #0003;max-width:500px;padding:40px;text-align:center}.player-selection h2{color:#2c3e50;font-size:2rem;margin-bottom:30px}.player-buttons{display:flex;flex-wrap:wrap;gap:20px;justify-content:center;margin-bottom:30px}.player-count-btn{background:linear-gradient(45deg,#667eea,#764ba2);border:none;border-radius:25px;box-shadow:0 4px 16px #667eea4d;color:#fff;cursor:pointer;font-size:1.2rem;font-weight:700;min-width:120px;padding:15px 30px;transition:all .3s ease}.player-count-btn:hover{box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.player-count-btn:active{transform:translateY(0)}.player-count-btn.selected{background:linear-gradient(45deg,#27ae60,#2ecc71);box-shadow:0 4px 16px #27ae6066}.start-game-btn{background:linear-gradient(45deg,#e74c3c,#c0392b);border:none;border-radius:30px;box-shadow:0 4px 16px #e74c3c4d;color:#fff;cursor:pointer;font-size:1.3rem;font-weight:700;margin-top:20px;padding:15px 40px;transition:all .3s ease}.start-game-btn:hover{box-shadow:0 6px 20px #e74c3c66;transform:translateY(-2px)}.start-game-btn:active{transform:translateY(0)}.player-preview{margin-top:20px}.player-preview h3{color:#2c3e50;margin-bottom:15px}.preview-players{display:flex;flex-wrap:wrap;gap:15px;justify-content:center}.preview-player{border-radius:15px;color:#fff;font-weight:700;padding:10px 20px;text-shadow:1px 1px 2px #0000004d}.player-red{color:#e74c3c}.player-blue{color:#3498db}.player-yellow{color:#f1c40f}.player-green{color:#27ae60}.preview-player.player-red{background-color:#e74c3c}.preview-player.player-blue{background-color:#3498db}.preview-player.player-yellow{background-color:#f1c40f}.preview-player.player-green{background-color:#27ae60}.game-content{align-items:flex-start;display:flex;flex-wrap:wrap;gap:40px;justify-content:center}.game-controls{align-items:center;background:#fff;border-radius:15px;box-shadow:0 8px 32px #0000001a;display:flex;flex-direction:column;gap:20px;padding:30px}.player-turn{color:#2c3e50;font-size:1.5rem;font-weight:700;text-align:center}.turn-indicator{border-radius:4px;font-size:.9rem;font-weight:700;margin-top:5px;padding:4px 8px}.turn-indicator.my-turn{background-color:#00b894;color:#fff}.turn-indicator.waiting{background-color:#ffeaa7;color:#636e72}.move-required{animation:blink 1.5s ease-in-out infinite;color:#e74c3c;font-size:.9rem;font-weight:700;margin-top:5px}.winner-announcement{animation:celebration 2s ease-in-out infinite;background:linear-gradient(45deg,#f39c12,#e67e22);border-radius:10px;color:#27ae60;font-size:1.2rem;font-weight:700;margin-top:10px;padding:10px;text-align:center}@keyframes celebration{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:.3}}@media (max-width:768px){.game-content{align-items:center;flex-direction:column}.game-header h1{font-size:2rem}}.App{text-align:center}*,.App{box-sizing:border-box;margin:0;padding:0}
/*# sourceMappingURL=main.4af7bca0.css.map*/