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{background:#fff;color:#333;font-family:Arial,sans-serif;min-height:100vh;text-align:center}.App-header{background-color:#f8f9fa;border-bottom:1px solid #dee2e6;box-shadow:0 1px 3px #0000001a;padding:5px 10px}.App-header h1{color:#2c3e50;font-size:1.4rem;margin:0;text-shadow:none}.game-modes{display:flex;flex-wrap:wrap;gap:20px;justify-content:center;margin-top:30px}.mode-button{background:#007bff;border:2px solid #007bff;border-radius:10px;box-shadow:0 2px 4px #0000001a;color:#fff;cursor:pointer;font-size:1.2rem;padding:15px 30px;transition:all .3s ease}.mode-button:hover:not(.disabled){background:#0056b3;border-color:#0056b3;box-shadow:0 4px 8px #0003;transform:translateY(-2px)}.mode-button.disabled{background:#6c757d;border-color:#6c757d;cursor:not-allowed;opacity:.6}.mode-button.tutorial-button{background:#28a745;border-color:#28a745;font-weight:600}.mode-button.tutorial-button:hover:not(.disabled){background:#218838;border-color:#1e7e34}.back-button{border:2px solid #6c757d;border-radius:5px;box-shadow:0 2px 4px #0000001a;transition:all .3s ease}.back-button:hover{border-color:#5a6268;box-shadow:0 4px 8px #0003;transform:translateY(-1px)}.game-container{gap:30px;max-width:1400px;padding:20px}@media (max-width:1200px){.game-container{align-items:center;flex-direction:column}}@media (max-width:768px){.App-header h1{font-size:1.2rem}.game-modes{gap:15px;margin-top:20px;padding:0 10px}.mode-button{font-size:1rem;max-width:300px;padding:12px 24px;width:100%}.back-button{font-size:.9rem;padding:8px 16px}}@media (max-width:480px){.App-header{padding:8px}.App-header h1{font-size:1.1rem}.game-modes{gap:12px;margin-top:15px}.mode-button{font-size:.95rem;padding:10px 20px}}body{overflow-x:hidden}*{box-sizing:border-box}.user-info{align-items:center;color:#2c3e50;display:flex;font-size:16px;gap:15px;position:absolute;right:20px;top:20px}.logout-button{background-color:#f44336;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px;transition:background-color .2s}.logout-button:hover{background-color:#da190b}:root{--square-size:min(8vh,8vw,80px)}.game-container{box-sizing:border-box;height:100vh;margin:0 auto;max-width:100vw;padding:10px}.game-board-layout,.game-container{align-items:flex-start;display:flex;gap:20px;justify-content:center}.game-board-layout{max-width:1400px;width:100%}.left-panel{align-items:stretch;display:flex;flex-direction:column;gap:0}.test-move-section{background:#f8f9fa;border-bottom:1px solid #dee2e6;border-left:1px solid #dee2e6;border-right:1px solid #dee2e6;box-sizing:border-box;padding:10px;width:250px}.test-move-button{transition:all .2s ease}.test-move-button:hover{background-color:#c00!important;box-shadow:0 3px 6px #0003;transform:translateY(-1px)}.board-container{align-items:center;border:1px solid #dee2e6;border-radius:15px;box-shadow:0 4px 12px #0000001a;flex-direction:column;flex-shrink:0;padding:20px;position:relative;width:-webkit-fit-content;width:fit-content}.board-container,.time-clock{background:#f8f9fa;display:flex}.time-clock{border:2px solid #dee2e6;border-radius:10px;box-shadow:0 2px 8px #0000001a;gap:20px;justify-content:center;margin-bottom:20px;padding:15px}.player-time{align-items:center;background:#fff;border:2px solid #dee2e6;border-radius:8px;display:flex;flex-direction:column;min-width:160px;padding:10px 20px;transition:all .3s ease}.player-time.active{background:#e3f2fd;border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.player-name{color:#495057;font-size:.9rem;margin-bottom:10px;text-align:center}.time-displays{display:flex;flex-direction:column;gap:8px;width:100%}.time-row{align-items:center;display:flex;gap:8px;justify-content:space-between}.time-label{color:#6c757d;font-size:.8rem;font-weight:700;min-width:45px}.time-display{color:#2c3e50;flex:1 1;font-family:Courier New,monospace;font-size:1.4rem;font-weight:700;letter-spacing:1px;text-align:right}.time-display.low-time{animation:timeWarning 1s ease-in-out infinite alternate;color:#dc3545}.current-player{align-items:center;background:#007bff;border-radius:10px;box-shadow:0 2px 4px #0000001a;color:#fff;display:flex;font-size:1.5rem;font-weight:700;gap:10px;margin-bottom:20px;padding:10px 20px;text-transform:capitalize}.replay-mode-indicator{animation:pulse 2s infinite;background:#28a745;border-radius:6px;color:#fff;font-size:1rem;font-weight:700;padding:5px 10px}.replay-position{color:#fff;font-size:1.2rem;opacity:.9}.exit-replay-button{background:#dc3545;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:1rem;font-weight:700;margin-left:auto;padding:8px 16px;transition:all .2s ease}.exit-replay-button:hover{background:#c82333;box-shadow:0 3px 6px #0003;transform:translateY(-1px)}.player-color{font-size:1rem;margin-left:5px;opacity:.8}.ai-indicator{animation:pulse 2s infinite;font-size:1.2rem}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.move-info{animation:fadeInOut 3s ease-in-out;background:#0f03;border:2px solid #00ff0080;border-radius:8px;color:#4ecdc4;font-size:1rem;font-weight:700;margin-top:15px;min-height:20px;padding:8px 15px;position:relative;text-align:center}@keyframes fadeInOut{0%{opacity:0;transform:translateY(-10px)}20%,80%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}.board{grid-gap:0!important;border:4px solid #222;border-radius:8px;box-sizing:initial;display:grid;flex-shrink:0;gap:0!important;grid-template-columns:repeat(9,min(8vh,8vw,80px));grid-template-columns:repeat(9,var(--square-size));grid-template-rows:repeat(9,min(8vh,8vw,80px));grid-template-rows:repeat(9,var(--square-size));height:calc(min(8vh, 8vw, 80px)*9);height:calc(var(--square-size)*9);max-height:90vh;max-width:90vw;overflow:hidden;width:calc(min(8vh, 8vw, 80px)*9);width:calc(var(--square-size)*9)}.board,.square{background:#f0d9b5;position:relative}.square{align-items:center;border:none;box-sizing:border-box;cursor:pointer;display:flex;height:100%;justify-content:center;margin:0;outline:none;overflow:visible;padding:0;width:100%}.square.dark{background:#b58863;border:none!important;outline:none!important}.square.selected{background:#f7ec2e!important;box-shadow:inset 0 0 0 3px #ff6b6b}.square.highlighted{background:#7dd3fc!important;box-shadow:inset 0 0 0 2px #0369a1}.square.drag-over{background:#93c5fd!important;box-shadow:inset 0 0 0 3px #1d4ed8}.piece{cursor:grab;font-size:calc(min(8vh, 8vw, 80px)*.7);font-size:calc(var(--square-size)*.7);line-height:1;transition:all .2s ease;-webkit-user-select:none;user-select:none;z-index:1}.piece:hover{filter:brightness(1.1);transform:scale(1.1)}.piece.dragging{cursor:grabbing;opacity:.5;transform:scale(.8)}.piece img{height:calc(min(8vh, 8vw, 80px)*.8);height:calc(var(--square-size)*.8);object-fit:contain;pointer-events:none;width:calc(min(8vh, 8vw, 80px)*.8);width:calc(var(--square-size)*.8)}.promotion-overlay{align-items:center;background:#000c;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.promotion-dialog{background:#fff;border-radius:15px;box-shadow:0 8px 32px #0000004d;max-width:500px;padding:30px;text-align:center;width:90%}.promotion-dialog h3{color:#2c3e50;font-size:1.5rem;margin-bottom:20px}.promotion-options{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(3,1fr);margin-top:20px}.promotion-options button{align-items:center;background:#f8f9fa;border:2px solid #dee2e6;border-radius:10px;cursor:pointer;display:flex;flex-direction:column;font-size:.9rem;padding:15px;text-transform:capitalize;transition:all .2s ease}.promotion-options button:hover{background:#e9ecef;border-color:#007bff;box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.promotion-options button img{height:50px;margin-bottom:8px;object-fit:contain;width:50px}.promotion-options button span{color:#495057;font-size:.85rem;font-weight:500}.mobile-game-actions{display:none;margin-top:20px;width:100%}.mobile-actions-toggle{align-items:center;background:linear-gradient(135deg,#007bff,#0056b3);border:none;border-radius:10px;box-shadow:0 4px 12px #007bff4d;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:10px;justify-content:center;padding:15px 20px;text-align:center;transition:all .2s ease;width:100%}.mobile-actions-toggle:hover{background:linear-gradient(135deg,#0056b3,#003d82);box-shadow:0 6px 16px #007bff66;transform:translateY(-2px)}.mobile-actions-toggle:active{transform:translateY(0)}.mobile-actions-content{animation:slideDown .3s ease-out;border-radius:10px;display:flex;flex-direction:column;gap:15px;margin-top:15px;max-height:70vh;overflow-y:auto}.mobile-history-section,.mobile-info-section{width:100%}.desktop-game-info{display:block}@media (max-width:1200px){.game-container{gap:15px;padding:5px}:root{--square-size:min(7vh,7vw,70px)}.game-board-layout{gap:15px}}@media (max-width:900px){.game-container{gap:10px;height:auto;max-height:none}.game-board-layout,.game-container{align-items:center;flex-direction:column;padding:0}.game-board-layout{gap:15px;width:100%}.desktop-game-info,.left-panel{display:none}.mobile-game-actions{display:block;padding:0 10px}.board-container{background:#0000;border-left:none;border-radius:0;border-right:none;margin:0;max-width:100vw;padding:10px 5px;width:100%}:root{--square-size:calc(10.52632vw - 3.15789px)}.board{margin:0 auto;max-height:65vh;max-width:100vw}}@media (max-width:600px){:root{--square-size:calc(10.52632vw - 2.63158px)}.piece{font-size:calc(min(8vh, 8vw, 80px)*.84);font-size:calc(var(--square-size)*.84)}.piece img{height:calc(min(8vh, 8vw, 80px)*.8);height:calc(var(--square-size)*.8);width:calc(min(8vh, 8vw, 80px)*.8);width:calc(var(--square-size)*.8)}.current-player{font-size:1.2rem;padding:8px 16px}.game-board-container{padding:5px}.board-container{padding:5px 0}.time-clock{flex-direction:column;gap:10px;margin:0 10px;padding:10px;width:calc(100% - 20px)}.player-time{min-width:100%}}@media (max-width:480px){:root{--square-size:calc(10.52632vw - 2.10526px);--board-gap:0px;--board-border:2px}.board-container{background:#0000;padding:5px 0}.piece{font-size:calc(min(8vh, 8vw, 80px)*.84);font-size:calc(var(--square-size)*.84)}.piece img{height:calc(min(8vh, 8vw, 80px)*.8);height:calc(var(--square-size)*.8);width:calc(min(8vh, 8vw, 80px)*.8);width:calc(var(--square-size)*.8)}.game-container{overflow-x:hidden;padding:0}.game-board-layout{gap:10px;padding:5px;width:100%}.board{margin:0 auto;max-width:calc(100vw - 20px)}.current-player{font-size:1rem;margin-bottom:10px;padding:6px 12px}.board-container{border-radius:8px;padding:5px;width:100%}.time-clock{gap:8px;margin-bottom:10px;padding:8px}.player-time{min-width:auto;padding:8px 12px}.time-display{font-size:1.2rem}.player-name{font-size:.8rem}.promotion-dialog{padding:15px;width:95%}.promotion-dialog h3{font-size:1.2rem;margin-bottom:15px}.promotion-options{gap:10px;grid-template-columns:repeat(3,1fr)}.promotion-options button{font-size:.8rem;padding:10px 8px}.promotion-options button img{height:40px;width:40px}}@media (hover:none) and (pointer:coarse){.square{-webkit-tap-highlight-color:rgba(0,0,0,.1);cursor:default}.square:active{transform:scale(.95)}.piece{cursor:default;pointer-events:auto}.piece:active{transform:scale(1.1)}.piece:hover,.square:hover{transform:none}.piece:hover{filter:none}}.board .square.check,.square.check,.square.check.dark,.square.check.light,div.board div.square.check{animation:checkPulse 1s ease-in-out infinite alternate!important;background-color:red!important;background:red!important;border:4px solid #c00!important;box-shadow:0 0 30px #f00c!important;outline:2px solid red!important}@keyframes checkPulse{0%{box-shadow:0 0 20px #f449}to{box-shadow:0 0 30px #f44c}}.check-indicator{animation:checkTextPulse 1s ease-in-out infinite alternate;color:#f44;font-weight:700;margin-left:10px}@keyframes checkTextPulse{0%{color:#f44}to{color:#c00}}.square.ai-move-flash{animation:aiMoveFlash 1s ease-in-out;background:#4ade80!important;border:3px solid #22c55e!important;box-shadow:0 0 20px #4ade80cc!important}.square.invalid-move{animation:invalidMoveShake .8s ease-in-out;background-color:#f44!important;border:2px solid red!important;box-shadow:0 0 10px #ff4444b3!important}@keyframes invalidMoveShake{0%,to{transform:translateX(0)}25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}.square.frozen-zone{animation:iceShimmer 2s ease-in-out infinite;background:linear-gradient(45deg,#e3f2fd 25%,#bbdefb 0,#bbdefb 50%,#e3f2fd 0,#e3f2fd 75%,#bbdefb 0,#bbdefb)!important;background-size:8px 8px;border:2px solid #2196f3!important;box-shadow:inset 0 0 10px #2196f34d,0 0 15px #2196f333!important;position:relative}.square.frozen-zone:before{content:"❄️";font-size:10px;opacity:.7;pointer-events:none;position:absolute;right:2px;top:2px;z-index:5}.square.frozen-zone:after{animation:iceGlimmer 3s ease-in-out infinite;background:linear-gradient(135deg,#0000 30%,#add8e64d 50%,#0000 70%);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}@keyframes iceShimmer{0%,to{box-shadow:inset 0 0 10px #2196f34d,0 0 15px #2196f333}50%{box-shadow:inset 0 0 20px #2196f380,0 0 25px #2196f366}}@keyframes iceGlimmer{0%,to{opacity:0}50%{opacity:1}}.piece.ai-piece-flash{animation:aiPieceFlash 1s ease-in-out}@keyframes aiMoveFlash{0%{box-shadow:0 0 20px #4ade80cc;transform:scale(1)}50%{box-shadow:0 0 30px #4ade80;transform:scale(1.05)}to{box-shadow:0 0 20px #4ade80cc;transform:scale(1)}}@keyframes aiPieceFlash{0%{filter:brightness(1);transform:scale(1)}25%{filter:brightness(1.3);transform:scale(1.15)}50%{filter:brightness(1.2);transform:scale(1.1)}75%{filter:brightness(1.1);transform:scale(1.05)}to{filter:brightness(1);transform:scale(1)}}.game-history{background:#f8f9fa;border-right:1px solid #dee2e6;display:flex;flex-direction:column;height:100vh;overflow:hidden;width:250px}.history-header{background:#fff;border-bottom:1px solid #dee2e6;padding:20px}.history-header h3{color:#2c3e50;font-size:1.2rem;margin:0 0 15px;text-align:center}.history-controls{display:flex;flex-direction:column;gap:10px}.export-button{background:#4caf50;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;margin-left:8px;padding:8px 12px;transition:background-color .2s}.export-button:hover{background:#45a049}.export-button:first-child{margin-left:0}.back-button,.menu-button{align-items:center;background:#6c757d;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:.9rem;gap:5px;justify-content:center;padding:8px 12px;transition:background-color .2s}.back-button:hover,.menu-button:hover{background:#5a6268}.menu-button{background:#007bff}.menu-button:hover{background:#0056b3}.game-header{background:#fff;border-bottom:1px solid #dee2e6;padding:20px}.game-header h1{color:#2c3e50;font-size:1.5rem;margin:0 0 15px;text-align:center}.player-names{align-items:center;background:#f8f9fa;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:20px;padding:10px}.player-name{font-size:1rem}.player-name.white{color:#495057}.player-name.black{color:#2c3e50}.vs{color:#6c757d;font-style:italic}.header-buttons{display:flex;flex-direction:column;gap:10px}.header-buttons .back-button{background:#6c757d;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;padding:8px 12px;transition:background-color .2s}.header-buttons .back-button:hover{background:#5a6268}.history-navigation{background:#fff;border-bottom:1px solid #dee2e6;display:flex;justify-content:space-between;padding:15px 20px}.nav-button{background:#007bff;border-radius:6px;color:#fff;font-size:1rem;min-width:40px;padding:8px 10px;transition:background-color .2s}.nav-button:hover:not(:disabled){background:#0056b3}.nav-button:disabled{background:#6c757d;cursor:not-allowed}.history-container{flex:1 1;overflow-y:auto;padding:20px}.move-row{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;padding:4px 0}.move-number{color:#6c757d;font-size:.9rem;font-weight:700;width:30px}.black-move,.white-move{border-radius:4px;cursor:pointer;flex:1 1;font-family:monospace;font-size:.9rem;margin:0 2px;padding:4px 8px;transition:background-color .2s}.white-move{background:#f8f9fa;color:#2c3e50}.black-move{background:#e9ecef;color:#2c3e50}.black-move:hover,.white-move:hover{background:#007bff;color:#fff}.black-move.current-move,.white-move.current-move{background:#007bff;color:#fff;font-weight:700}.clickable-move{cursor:pointer;position:relative}.clickable-move[data-think-time]:hover:after{background:#2c3e50;border-radius:4px;bottom:100%;color:#fff;content:attr(data-think-time);font-size:11px;left:50%;margin-bottom:4px;padding:4px 8px;pointer-events:none;position:absolute;transform:translateX(-50%);white-space:nowrap;z-index:1000}.clickable-move[data-think-time]:hover:before{border:4px solid #0000;border-top-color:#2c3e50;bottom:100%;content:"";left:50%;margin-bottom:-4px;pointer-events:none;position:absolute;transform:translateX(-50%)}.resign-button{background:#dc3545;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;margin:15px 20px;padding:10px 16px;transition:background-color .2s;width:calc(100% - 40px)}.resign-button:hover{background:#c82333}.resign-button:disabled{background:#6c757d;cursor:not-allowed}@media (max-width:768px){.game-history{height:auto;max-height:300px;width:100%}.history-controls{flex-direction:row;flex-wrap:wrap}.back-button,.export-button,.menu-button{flex:1 1;min-width:100px}}@media (max-width:900px){.mobile-history-section .game-history{border:1px solid #dee2e6;border-radius:10px;box-shadow:0 2px 8px #0000001a;height:auto;overflow:visible;width:100%}.mobile-history-section .history-moves{max-height:300px;overflow-y:auto}.mobile-history-section .history-header{border-radius:10px 10px 0 0}.mobile-history-section .history-controls button{font-size:.9rem;padding:10px 16px}}.game-info{background:#f8f9fa;border:1px solid #dee2e6;border-radius:15px;box-shadow:0 4px 12px #0000001a;color:#333;max-height:80vh;overflow-y:auto;width:300px}.game-info h3{font-size:1.3rem;margin:0 0 15px}.game-info h3,.game-info h4{color:#2c3e50;text-shadow:none}.game-info h4{font-size:1.1rem;margin:15px 0 10px}.time-controls-info{background:#fff;border:1px solid #dee2e6;border-radius:10px;box-shadow:0 2px 4px #0000000d;margin-bottom:20px;padding:15px}.time-controls-info h3{border-bottom:2px solid #dee2e6;color:#2c3e50;font-size:1.3rem;margin:0 0 15px;padding-bottom:10px;text-align:center}.player-time-info{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;margin-bottom:20px;padding:12px}.player-time-info:last-child{margin-bottom:0}.player-time-info h4{align-items:center;color:#2c3e50;display:flex;font-size:1.1rem;gap:8px;margin:0 0 12px}.white-icon{color:#6c757d}.black-icon{color:#343a40}.time-info-grid{display:flex;flex-direction:column;gap:8px}.time-controls-grid{display:flex;flex-direction:column;gap:12px}.thinking-times-row{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr}.total-times-row{display:flex;flex-direction:column;gap:8px}.time-control-item{background:#fff;border:1px solid #dee2e6;border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;flex-direction:column;gap:4px;padding:8px 12px}.time-control-label{align-items:center;color:#495057;display:flex;font-size:.8rem;font-weight:600;gap:6px}.time-control-value{align-items:center;color:#2c3e50;display:flex;font-family:Courier New,monospace;font-size:1.1rem;font-weight:700;justify-content:center}.time-info-row{align-items:center;background:#fff;border:1px solid #dee2e6;border-radius:6px;display:flex;justify-content:space-between;padding:8px 12px}.time-label{color:#495057;font-size:.9rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.time-value{color:#2c3e50;font-family:Courier New,monospace;font-size:1.2rem;font-weight:700;letter-spacing:1px}.time-value.low-time{animation:timeWarning 1s ease-in-out infinite alternate;color:#dc3545}@keyframes timeWarning{0%{color:#dc3545}to{color:#ff6b6b}}.player-timings{background:#fff;border:1px solid #dee2e6;border-radius:10px;box-shadow:0 2px 4px #0000000d;margin-bottom:20px;padding:15px}.player-timings h3{border-bottom:2px solid #dee2e6;color:#2c3e50;font-size:1.3rem;margin:0 0 15px;padding-bottom:10px;text-align:center}.timings-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.player-timing-section{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;padding:12px}.player-timing-header{border-radius:6px;font-size:.95rem;font-weight:600;margin:0 0 10px;padding:6px;text-align:center}.player-timing-header.white-header{background:#e3f2fd;border:1px solid #90caf9;color:#1976d2}.player-timing-header.black-header{background:#e0e0e0;border:1px solid #9e9e9e;color:#424242}.timing-item{align-items:center;background:#fff;border:1px solid #dee2e6;border-radius:6px;display:flex;justify-content:space-between;margin-bottom:6px;padding:6px 8px}.timing-item:last-child{margin-bottom:0}.timing-label{color:#495057;font-size:.85rem;font-weight:600}.timing-value{color:#2c3e50;font-family:Courier New,monospace;font-size:1rem;font-weight:700;letter-spacing:1px}.game-rules{margin-bottom:25px}.rules-header{align-items:center;background:#f8f9fa;border-bottom:2px solid #dee2e6;border-radius:8px;cursor:pointer;display:flex;justify-content:space-between;margin-bottom:10px;padding:10px 12px;transition:all .2s ease}.rules-header:hover{background:#e9ecef;box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.rules-header-text{display:flex;flex-direction:column;gap:2px}.rules-header-text h3{margin:0}.rules-toggle-hint{color:#6c757d;font-size:.8rem;font-style:italic}.rules-toggle-button{align-items:center;background:none;border:none;border-radius:4px;color:#007bff;cursor:pointer;display:flex;font-size:1.2rem;justify-content:center;padding:5px 10px;transition:all .2s ease}.rules-toggle-button:hover{background:#f8f9fa;color:#0056b3}.rules-toggle-button:focus{box-shadow:0 0 0 3px #007bff33;outline:none}.rules-content{animation:slideDown .3s ease-out;overflow:hidden}@keyframes slideDown{0%{max-height:0;opacity:0;transform:translateY(-10px)}to{max-height:500px;opacity:1;transform:translateY(0)}}.game-rules ul{list-style:none;margin:0;padding:0}.game-rules li{align-items:center;border-bottom:1px solid #dee2e6;display:flex;font-size:.9rem;gap:3px;line-height:1.4;padding:8px 0}.game-rules li:last-child{border-bottom:none}.game-rules li strong{color:#007bff;text-shadow:none}.game-status{background:#fff;border:1px solid #dee2e6;border-radius:10px;box-shadow:0 2px 4px #0000000d;margin-bottom:20px;padding:15px;position:-webkit-sticky;position:sticky;top:0;z-index:10}.game-over{background:#f003;border:2px solid #ff00004d;border-radius:10px;padding:20px;text-align:center}.game-over h2{color:#ff6b6b;margin:0 0 10px;text-shadow:1px 1px 2px #00000080}.game-active{background:#0f03;border:2px solid #00ff004d;border-radius:10px;padding:10px;text-align:center}.game-active strong{color:#4ecdc4;text-transform:capitalize}.player-color-small{font-size:.8rem;font-weight:400;opacity:.7}.frozen-kings{background:#e6f7ff;border:2px solid #17a2b8;border-radius:8px;margin-top:15px;padding:12px}.frozen-kings h4{color:#0c5460;font-size:1.1rem;margin-bottom:8px}.frozen-kings p{color:#0c5460;font-size:.95rem;margin:5px 0}.captured-pieces{background:#f8f9fa;border:1px solid #dee2e6;border-radius:10px;margin:15px 0;padding:15px}.captured-pieces.white{background:#e3f2fd;border-color:#007bff}.captured-pieces.black{background:#f8f9fa;border-color:#6c757d}.captured-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.captured-piece{align-items:center;background:#fff;border:1px solid #dee2e6;border-radius:5px;box-shadow:0 1px 2px #0000000d;display:flex;font-size:1.8rem;justify-content:center;min-height:35px;min-width:35px;padding:6px 10px;text-shadow:none}.game-info::-webkit-scrollbar{width:8px}.game-info::-webkit-scrollbar-track{background:#f8f9fa;border-radius:10px}.game-info::-webkit-scrollbar-thumb{background:#dee2e6;border-radius:10px}.game-info::-webkit-scrollbar-thumb:hover{background:#adb5bd}@media (max-width:1200px){.game-info{padding:15px;width:280px}.time-controls-info{padding:12px}.player-time-info{padding:10px}}@media (max-width:900px){.game-info{border-radius:10px;box-shadow:0 2px 8px #00000026;margin:0;max-height:none;max-width:100%;padding:15px;width:100%}.game-rules{margin-bottom:15px}.time-controls-info{padding:12px}.player-time-info{padding:10px}.time-info-row{padding:6px 10px}.timings-grid{gap:10px;grid-template-columns:1fr}}@media (max-width:768px){.game-info{border-radius:10px;padding:12px}.game-rules li{font-size:.85rem}.time-controls-info{padding:10px}.player-time-info{padding:8px}.time-info-row{padding:5px 8px}.time-label{font-size:.8rem}.time-value{font-size:1rem}.game-controls{display:flex;flex-direction:column;gap:10px;width:100%}.game-controls button{margin:0!important;width:100%}}.player-setup{align-items:center;background:#fff;display:flex;justify-content:center;min-height:100vh;padding:20px}.setup-container{background:#f8f9fa;border:1px solid #dee2e6;border-radius:15px;box-shadow:0 4px 12px #0000001a;max-width:500px;padding:40px;width:100%}.setup-container h2{color:#2c3e50;font-size:2rem;margin-bottom:10px;text-align:center}.setup-container p{color:#6c757d;font-size:1.1rem;margin-bottom:30px;text-align:center}.setup-form{gap:25px}.player-input-group,.setup-form{display:flex;flex-direction:column}.player-input-group{gap:8px}.player-label{align-items:center;color:#2c3e50;display:flex;font-size:1.1rem;font-weight:700;gap:10px}.import-section{background:#f8f9fa;border:2px dashed #dee2e6;border-radius:10px;margin-bottom:25px;padding:20px;text-align:center}.import-section h3{color:#2c3e50;font-size:1.2rem;margin:0 0 15px}.import-controls{align-items:center;display:flex;flex-direction:column;gap:15px}.file-input{background:#fff;border:2px solid #dee2e6;border-radius:8px;cursor:pointer;font-size:1rem;padding:10px;transition:border-color .2s}.file-input:focus,.file-input:hover{border-color:#007bff}.file-input:focus{box-shadow:0 0 0 3px #007bff1a;outline:none}.import-info{background:#d4edda;border:1px solid #c3e6cb;border-radius:8px;color:#155724;max-width:400px;padding:15px;text-align:left;width:100%}.import-info p{font-size:.9rem;margin:0 0 8px}.import-info p:last-child{margin-bottom:0}.clear-import{background:#dc3545;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;margin-top:10px;padding:8px 16px;transition:background-color .2s}.clear-import:hover{background:#c82333}.player-icon{font-size:1.2rem;text-align:center;width:24px}.player-icon.white-icon{color:#495057;text-shadow:1px 1px 2px #0000001a}.player-icon.black-icon{color:#2c3e50;text-shadow:1px 1px 2px #0000001a}.player-input-group input{border:2px solid #dee2e6;border-radius:8px;font-size:1rem;padding:12px 16px;transition:border-color .2s,box-shadow .2s}.player-input-group input:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff1a;outline:none}.player-input-group input.error{border-color:#dc3545}.player-input-group input.error:focus{border-color:#dc3545;box-shadow:0 0 0 3px #dc35451a}.error-message{color:#dc3545;font-size:.9rem;margin-top:5px}.global-error{background:#f8d7da;border:1px solid #f5c6cb;border-radius:5px;color:#721c24;margin-top:10px;padding:10px;text-align:center}.color-selection{display:flex;gap:20px;margin-top:10px}.color-option{align-items:center;background:#fff;border:2px solid #dee2e6;border-radius:10px;cursor:pointer;display:flex;flex:1 1;gap:10px;padding:15px 20px;text-align:center;transition:all .2s}.color-option:hover{background:#f8f9ff;border-color:#007bff}.color-option.selected{background:#e3f2fd;border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.color-option input[type=radio]{display:none}.color-icon{font-size:1.5rem}.color-icon.white-icon{color:#495057;text-shadow:1px 1px 2px #0000001a}.color-icon.black-icon{color:#2c3e50;text-shadow:1px 1px 2px #0000001a}.difficulty-select,.model-select{background:#fff;border:2px solid #dee2e6;border-radius:8px;cursor:pointer;font-size:1rem;padding:12px 16px;transition:border-color .2s,box-shadow .2s}.difficulty-select:focus,.model-select:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff1a;outline:none}.model-info{margin-top:15px}.model-badge{align-items:center;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:2px solid #007bff;border-radius:12px;box-shadow:0 2px 8px #007bff1a;display:flex;gap:15px;padding:15px 20px}.model-icon{color:#007bff;font-size:2rem}.model-details{flex:1 1}.model-name{color:#2c3e50;font-size:1.1rem;font-weight:700;margin-bottom:5px}.model-stats{color:#6c757d;font-size:.9rem;margin-bottom:3px}.model-status{color:#28a745;font-size:.85rem;font-weight:500}.ai-info{margin-top:10px}.ai-badge{align-items:center;background:#e8f5e8;border:2px solid #28a745;border-radius:10px;box-shadow:0 2px 4px #0000001a;display:flex;gap:15px;padding:20px}.ai-icon{color:#28a745;font-size:2rem}.ai-details{flex:1 1}.ai-name{color:#2c3e50;font-size:1.2rem;font-weight:700;margin-bottom:5px}.ai-level{color:#28a745;font-size:1.1rem;font-weight:700;margin-bottom:3px}.ai-rating{color:#6c757d;font-size:.9rem}.time-controls{background:#fff;border:1px solid #e0e0e0;border-radius:10px;margin:20px 0;padding:20px}.time-controls h3{align-items:center;color:#2c3e50;display:flex;font-size:1.2rem;gap:8px;margin:0 0 15px}.time-controls-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr}.time-select{background:#fff;border:2px solid #dee2e6;border-radius:8px;color:#2c3e50;font-size:1rem;padding:12px;transition:border-color .3s ease;width:100%}.time-select:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff1a;outline:none}.setup-actions{display:flex;gap:15px;margin-top:30px}.back-button{background:#6c757d;flex:1 1;font-size:1rem;padding:12px 24px;transition:background-color .2s}.back-button:hover{background:#5a6268}.start-button{background:#007bff;border:none;border-radius:8px;color:#fff;cursor:pointer;flex:2 1;font-size:1rem;font-weight:700;letter-spacing:.5px;padding:12px 24px;text-transform:uppercase;transition:background-color .2s}.start-button:hover{background:#0056b3}.start-button:disabled{background:#6c757d;cursor:not-allowed}.import-tabs{display:flex;gap:10px;margin-bottom:15px}.tab-button{background:#fff;border:2px solid #ddd;border-radius:6px;color:#666;cursor:pointer;font-size:14px;padding:8px 16px;transition:all .2s}.tab-button:hover{background:#f0f0f0;border-color:#ccc}.tab-button.active{background:#4caf50;border-color:#4caf50;color:#fff}.import-method{background:#f9f9f9;border:2px solid #e0e0e0;border-radius:8px;margin-top:15px;padding:15px}.import-method p{color:#333;font-size:14px;margin:0 0 10px}.import-method ul{color:#666;font-size:13px;margin:10px 0;padding-left:20px}.import-method li{line-height:1.3;margin:4px 0}.position-input{background:#f9f9f9;border:2px solid #ddd;border-radius:6px;font-family:Courier New,monospace;font-size:12px;line-height:1.4;min-height:200px;padding:12px;resize:vertical;width:100%}.position-input:focus{border-color:#4caf50;outline:none}.position-input::placeholder{color:#999;font-family:Courier New,monospace;font-size:11px}.advanced-options{background:#f0f8ff;border:1px solid #d0e8ff;border-radius:8px;margin-top:10px;padding:15px}.checkbox-label{align-items:flex-start;cursor:pointer;display:flex;gap:12px;-webkit-user-select:none;user-select:none}.checkbox-label input[type=checkbox]{cursor:pointer;flex-shrink:0;height:18px;margin-top:4px;width:18px}.checkbox-text{display:flex;flex:1 1;flex-direction:column;gap:4px}.option-icon{font-size:1.2rem;margin-right:5px}.option-name{color:#2c3e50;font-size:1rem;font-weight:600}.option-description{color:#6c757d;display:block;font-size:.85rem;line-height:1.4}@media (max-width:600px){.setup-container{padding:30px 20px}.setup-actions{flex-direction:column}.back-button,.start-button{width:100%}.color-selection{flex-direction:column;gap:10px}}.tutorial-container{background:#fff;box-sizing:border-box;display:flex;flex-direction:column;min-height:100vh;padding:20px;touch-action:pan-y}.tutorial-header{align-items:center;display:flex;justify-content:center;margin-bottom:30px;position:relative}.tutorial-back-button{background:#6c757d;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;left:0;padding:10px 20px;position:absolute;transition:all .2s ease}.tutorial-back-button:hover{background:#5a6268;transform:translateY(-1px)}.tutorial-header h1{color:#2c3e50;font-size:2rem;margin:0}.tutorial-content{align-items:center;display:flex;flex-direction:column;gap:30px;margin:0 auto;max-width:1200px;width:100%}.tutorial-board-container{align-items:center;display:flex;justify-content:center}.tutorial-board{grid-gap:0;background:#333;border:4px solid #222;border-radius:10px;box-shadow:0 8px 24px #00000026;display:grid;gap:0;grid-template-columns:repeat(9,1fr);grid-template-rows:repeat(9,1fr);height:min(70vw,70vh,600px);overflow:hidden;width:min(70vw,70vh,600px)}.tutorial-square{align-items:center;background:#f0d9b5;display:flex;justify-content:center;position:relative;transition:all .3s ease}.tutorial-square.dark{background:#b58863}.tutorial-square.highlighted{animation:highlightPulse 1.5s ease-in-out infinite;background:#7bed9f!important;box-shadow:inset 0 0 0 3px #2ed573}@keyframes highlightPulse{0%,to{box-shadow:inset 0 0 0 3px #2ed573}50%{box-shadow:inset 0 0 0 3px #1e824c}}.tutorial-piece{align-items:center;display:flex;height:100%;justify-content:center;transition:all .3s ease;-webkit-user-select:none;user-select:none;width:100%}.tutorial-piece .piece-image{height:84%;object-fit:contain;pointer-events:none;width:84%}.tutorial-piece.main-piece{animation:pieceIntro .5s ease-out;filter:drop-shadow(0 4px 8px rgba(0,0,0,.3))}.tutorial-piece.opponent-piece{opacity:.6}@keyframes pieceIntro{0%{opacity:0;transform:scale(0)}50%{transform:scale(1.2)}to{opacity:1;transform:scale(1)}}.tutorial-info{background:#f8f9fa;border-radius:15px;box-shadow:0 4px 12px #0000001a;max-width:600px;padding:30px;text-align:center;width:100%}.tutorial-info h2{color:#2c3e50;font-size:2rem;margin:0 0 15px}.tutorial-info p{color:#495057;font-size:1.1rem;line-height:1.6;margin:0 0 30px}.tutorial-progress{align-items:center;display:flex;flex-direction:column;gap:15px;margin-bottom:30px}.tutorial-progress span{color:#6c757d;font-size:.9rem;font-weight:600}.progress-dots{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.progress-dot{background:#dee2e6;border-radius:50%;height:12px;transition:all .3s ease;width:12px}.progress-dot.active{background:#007bff;box-shadow:0 0 0 3px #007bff33;transform:scale(1.3)}.progress-dot.completed{background:#28a745}.tutorial-navigation{display:flex;gap:15px;justify-content:center;margin-bottom:20px}.nav-button{border:none;border-radius:8px;cursor:pointer;font-size:1.1rem;font-weight:600;padding:12px 30px;transition:all .3s ease}.nav-button.prev{background:#6c757d;color:#fff}.nav-button.prev:hover:not(:disabled){background:#5a6268;transform:translateX(-2px)}.nav-button.prev:disabled{cursor:not-allowed;opacity:.4}.nav-button.next{background:#007bff;color:#fff}.nav-button.next:hover{background:#0056b3;transform:translateX(2px)}.nav-button.ready{animation:readyPulse 2s ease-in-out infinite;background:#28a745;color:#fff;font-size:1.2rem;padding:15px 40px}.nav-button.ready:hover{background:#218838;transform:scale(1.05)}@keyframes readyPulse{0%,to{box-shadow:0 0 0 0 #28a74566}50%{box-shadow:0 0 0 10px #28a74500}}.swipe-hint{color:#6c757d;font-size:.9rem;font-style:italic}@media (max-width:900px){.tutorial-container{padding:10px}.tutorial-header h1{font-size:1.5rem}.tutorial-back-button{font-size:.9rem;padding:8px 16px}.tutorial-board{height:min(90vw,90vh,500px);width:min(90vw,90vh,500px)}.tutorial-info{padding:20px}.tutorial-info h2{font-size:1.5rem}.tutorial-info p{font-size:1rem}.tutorial-navigation{flex-direction:column;width:100%}.nav-button{width:100%}}@media (max-width:480px){.tutorial-header h1{font-size:1.3rem}.tutorial-back-button{font-size:.85rem;padding:6px 12px}.tutorial-board{height:95vw;max-height:400px;max-width:400px;width:95vw}.tutorial-piece .piece-image{height:90%;width:90%}.tutorial-info{padding:15px}.tutorial-info h2{font-size:1.3rem}.tutorial-info p{font-size:.95rem}.nav-button{font-size:1rem;padding:10px 20px}.swipe-hint{font-size:.8rem}}@media (min-width:1024px){.tutorial-content{align-items:flex-start;flex-direction:row;gap:50px}.tutorial-board-container{flex:1 1}.tutorial-info{flex:1 1;text-align:left}.tutorial-navigation{justify-content:flex-start}}.landing-page{background:#fff;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;min-height:100vh;width:100%}.landing-header{background:linear-gradient(135deg,#1e3c72,#2a5298);color:#fff;padding:0 0 80px}.landing-nav{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1400px;padding:20px 60px}.nav-logo h1{cursor:pointer;font-size:32px;font-weight:700;margin:0}.nav-buttons{display:flex;gap:15px}.btn-primary,.btn-secondary{border:none;border-radius:8px;cursor:pointer;font-size:16px;font-weight:600;padding:10px 24px;transition:all .3s ease}.btn-secondary{background:#0000;border:2px solid #ffffff4d;color:#fff}.btn-secondary:hover{background:#ffffff1a;border-color:#fff}.btn-primary{background:#4caf50;color:#fff}.btn-primary:hover{background:#45a049;box-shadow:0 4px 12px #4caf5066;transform:translateY(-2px)}.hero-content{grid-gap:60px;align-items:center;display:grid;gap:60px;grid-template-columns:1fr 1fr;margin:60px auto 0;max-width:1400px;padding:0 60px}.hero-title{font-size:56px;font-weight:800;line-height:1.2;margin:0 0 20px}.hero-subtitle{font-size:20px;line-height:1.6;margin:0 0 30px;opacity:.9}.hero-buttons{display:flex;gap:15px;margin-bottom:20px}.btn-hero-primary,.btn-hero-secondary{border:none;border-radius:10px;cursor:pointer;font-size:18px;font-weight:600;padding:16px 32px;transition:all .3s ease}.btn-hero-primary{background:#4caf50;color:#fff}.btn-hero-primary:hover{background:#45a049;box-shadow:0 6px 20px #4caf5066;transform:translateY(-2px)}.btn-hero-secondary{background:#fff3;border:2px solid #ffffff80;color:#fff}.btn-hero-secondary:hover{background:#ffffff4d;border-color:#fff}.hero-note{font-size:14px;margin:0;opacity:.8}.board-preview{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border-radius:20px;padding:30px}.preview-board{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;overflow:hidden}.preview-row{display:flex}.preview-square{height:40px;width:40px}.preview-square.light{background:#f0d9b5}.preview-square.dark{background:#b58863}.feature-section{margin:0 auto;max-width:1400px;padding:100px 60px}.feature-section.alternate{background:#f8f9fa}.feature-content{grid-gap:80px;align-items:center;display:grid;gap:80px;grid-template-columns:1fr 1fr}.feature-content.reverse{direction:rtl}.feature-content.reverse>*{direction:ltr}.feature-text h2{color:#1e3c72;font-size:42px;font-weight:700;margin:0 0 20px}.feature-text p{color:#666;font-size:18px;line-height:1.8;margin:0 0 30px}.feature-list{list-style:none;margin:0;padding:0}.feature-list li{color:#444;font-size:16px;line-height:1.6;padding:10px 0}.feature-card{background:#fff;border-radius:20px;box-shadow:0 10px 40px #0000001a;padding:60px 40px;text-align:center;transition:transform .3s ease}.feature-card:hover{transform:translateY(-10px)}.card-icon{font-size:80px;margin-bottom:20px}.feature-card h3{color:#1e3c72;font-size:28px;font-weight:700;margin:0 0 10px}.feature-card p{color:#666;font-size:16px;margin:0}.ai-card{background:linear-gradient(135deg,#667eea,#764ba2)}.ai-card,.ai-card h3,.ai-card p{color:#fff}.multiplayer-card{background:linear-gradient(135deg,#f093fb,#f5576c);color:#fff}.multiplayer-card h3,.multiplayer-card p{color:#fff}.learn-card{background:linear-gradient(135deg,#4facfe,#00f2fe);color:#fff}.learn-card h3,.learn-card p{color:#fff}.mobile-section{background:linear-gradient(135deg,#1e3c72,#2a5298);color:#fff;padding:100px 60px;text-align:center}.mobile-section h2{font-size:42px;font-weight:700;margin:0 0 15px}.mobile-section p{font-size:20px;margin:0 0 40px;opacity:.9}.app-buttons{display:flex;flex-wrap:wrap;gap:20px;justify-content:center}.app-button{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff26;border:2px solid #fff3;border-radius:12px;cursor:pointer;display:flex;gap:15px;padding:20px 40px;transition:all .3s ease}.app-button:hover{background:#ffffff40;box-shadow:0 10px 30px #0003;transform:translateY(-5px)}.app-button.coming-soon{cursor:default;opacity:.8}.app-icon{font-size:40px}.app-info{align-items:flex-start;display:flex;flex-direction:column;text-align:left}.app-name{font-size:18px;font-weight:600}.app-status{font-size:14px;opacity:.8}.cta-section{background:#f8f9fa;padding:100px 60px;text-align:center}.cta-section h2{color:#1e3c72;font-size:48px;font-weight:700;margin:0 0 15px}.cta-section p{color:#666;font-size:20px;margin:0 0 40px}.btn-cta{background:#4caf50;border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:20px;font-weight:700;padding:20px 50px;transition:all .3s ease}.btn-cta:hover{background:#45a049;box-shadow:0 10px 30px #4caf5066;transform:translateY(-3px)}.landing-footer{background:#1a1a2e;color:#fff;padding:60px 60px 30px}.footer-content{grid-gap:40px;display:grid;gap:40px;grid-template-columns:2fr 1fr 1fr 1fr;margin:0 auto 40px;max-width:1400px}.footer-section h4{font-size:18px;font-weight:700;margin:0 0 20px}.footer-section p{font-size:14px;line-height:1.6;margin:0;opacity:.8}.footer-section ul{list-style:none;margin:0;padding:0}.footer-section li{margin-bottom:12px}.footer-section a{color:#fffc;font-size:14px;text-decoration:none;transition:color .3s ease}.footer-section a:hover{color:#fff}.footer-bottom{border-top:1px solid #ffffff1a;padding-top:30px;text-align:center}.footer-bottom p{font-size:14px;margin:0;opacity:.6}@media (max-width:1024px){.feature-content,.hero-content{gap:40px;grid-template-columns:1fr}.hero-image{order:-1}.footer-content{gap:30px;grid-template-columns:1fr 1fr}}@media (max-width:768px){.landing-nav{padding:15px 30px}.hero-content{padding:0 30px}.hero-title{font-size:36px}.hero-subtitle{font-size:16px}.feature-section{padding:60px 30px}.feature-text h2{font-size:32px}.cta-section,.mobile-section{padding:60px 30px}.landing-footer{padding:40px 30px 20px}.footer-content{grid-template-columns:1fr}.preview-square{height:30px;width:30px}}.auth-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.auth-card{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0003;max-width:450px;padding:40px;width:100%}.auth-title{color:#2d3748;font-size:32px;font-weight:700;margin:0 0 8px;text-align:center}.auth-subtitle{color:#718096;font-size:16px;font-weight:400;margin:0 0 32px;text-align:center}.auth-form{gap:20px}.auth-form,.form-group{display:flex;flex-direction:column}.form-group{gap:8px}.form-group label{color:#2d3748}.form-group input{transition:border-color .2s}.form-group input:disabled{background-color:#f7fafc}.auth-error{background-color:#fed7d7;border-radius:8px;color:#c53030;font-size:14px;padding:12px 16px;text-align:center}.auth-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-top:8px;padding:14px 24px;transition:opacity .2s,transform .1s}.auth-button:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.auth-button:active:not(:disabled){transform:translateY(0)}.auth-button:disabled{cursor:not-allowed;opacity:.6}.auth-switch{color:#718096;font-size:14px;margin-top:24px;text-align:center}.auth-link{background:none;border:none;color:#667eea;cursor:pointer;font-size:14px;font-weight:600;padding:0;text-decoration:underline}.auth-link:hover:not(:disabled){color:#764ba2}.auth-link:disabled{cursor:not-allowed;opacity:.6}.auth-divider{align-items:center;color:#999;display:flex;margin:25px 0;text-align:center}.auth-divider:after,.auth-divider:before{border-bottom:1px solid #ddd;content:"";flex:1 1}.auth-divider span{font-size:14px;font-weight:500;padding:0 15px}.google-login-wrapper{margin-bottom:20px}.google-login-wrapper,.google-login-wrapper>div{display:flex;justify-content:center;width:100%}.google-login-wrapper button{max-width:100%!important;width:100%!important}.auth-button-google{align-items:center;background:#fff;border:2px solid #ddd;border-radius:8px;color:#444;cursor:pointer;display:flex;font-size:16px;font-weight:600;gap:10px;justify-content:center;margin-bottom:10px;padding:14px;transition:all .3s ease;width:100%}.auth-button-google:hover:not(:disabled){background:#f8f8f8;border-color:#ccc;box-shadow:0 4px 12px #0000001a;transform:translateY(-1px)}.auth-button-google:disabled{background:#f5f5f5;cursor:not-allowed;opacity:.6;transform:none}.google-icon{height:20px;width:20px}.auth-links{margin-top:12px;text-align:right}.auth-link-text{background:none;border:none;color:#667eea;cursor:pointer;font-size:13px;padding:0;text-decoration:none}.auth-link-text:hover:not(:disabled){color:#764ba2;text-decoration:underline}.reset-token-display{background:#f7fafc;border:2px solid #e2e8f0;border-radius:8px;margin-bottom:20px;padding:16px}.reset-token-display code{background:#fff;border:1px solid #cbd5e0;border-radius:6px;color:#2d3748;display:block;font-family:Courier New,monospace;font-size:14px;margin:8px 0;padding:12px;word-break:break-all}.reset-token-note{color:#718096;font-size:12px;font-style:italic;margin-top:8px}.auth-success{background-color:#c6f6d5;border:1px solid #9ae6b4;border-radius:8px;color:#22543d;font-size:14px;margin-bottom:16px;padding:12px 16px}@media (max-width:500px){.auth-card{padding:24px}.auth-title{font-size:24px}.auth-subtitle{font-size:14px}}.puzzles-container{background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;padding:40px 20px}.puzzles-header{color:#fff;margin-bottom:40px;position:relative;text-align:center}.back-button{background:#fff3;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;left:0;padding:10px 20px;position:absolute;top:0;transition:background .2s}.back-button:hover{background:#ffffff4d}.puzzles-header h1{font-size:48px;margin:0 0 10px}.puzzles-subtitle{font-size:18px;margin:0;opacity:.9}.puzzles-stats{display:flex;gap:20px;justify-content:center;margin-bottom:30px}.stat-card{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;padding:20px 40px;text-align:center}.stat-value{color:#667eea;font-size:32px}.stat-label{margin-top:5px}.puzzles-filters{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:40px}.filter-button{background:#fff3;border:2px solid #0000;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;padding:10px 20px;transition:all .2s}.filter-button:hover{background:#ffffff4d}.filter-button.active{background:#fff;border-color:#fff;color:#667eea}.puzzles-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));margin:0 auto;max-width:1400px}.puzzle-card{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;display:flex;flex-direction:column;padding:24px;transition:transform .2s,box-shadow .2s}.puzzle-card:hover{box-shadow:0 8px 12px #00000026;transform:translateY(-4px)}.puzzle-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.puzzle-difficulty{font-size:20px}.puzzle-rating{color:#718096;font-size:14px;font-weight:600}.puzzle-title{color:#2d3748;font-size:20px;margin:0 0 12px}.puzzle-description{color:#4a5568;flex-grow:1;font-size:14px;line-height:1.6;margin:0 0 16px}.puzzle-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.puzzle-tag{background:#edf2f7;border-radius:12px;color:#4a5568;font-size:12px;font-weight:500;padding:4px 12px}.solve-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:12px 24px;transition:opacity .2s}.solve-button:hover{opacity:.9}.no-puzzles,.puzzles-error,.puzzles-loading{color:#fff;font-size:18px;padding:40px;text-align:center}.puzzles-error{background:#f4433633;border-radius:8px}.no-puzzles,.puzzles-error{margin:0 auto;max-width:600px}.no-puzzles{background:#ffffff1a;border-radius:12px}.no-puzzles p{margin:8px 0}@media (max-width:768px){.puzzles-container{padding:20px 10px}.puzzles-header h1{font-size:32px}.puzzles-stats{flex-direction:column;gap:12px}.stat-card{padding:15px 30px}.puzzles-grid{grid-template-columns:1fr}.back-button{margin-bottom:20px;position:static}}.puzzle-board-container{background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;padding:20px}.puzzle-board-header{margin:0 auto 30px;max-width:1200px}.puzzle-board-header .back-button{background:#fff3;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;margin-bottom:20px;padding:10px 20px;transition:background .2s}.puzzle-board-header .back-button:hover{background:#ffffff4d}.puzzle-info{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;padding:24px}.puzzle-info h2{color:#2d3748;font-size:28px;margin:0 0 12px}.puzzle-instruction{color:#4a5568;font-size:16px;line-height:1.6;margin:0 0 16px}.puzzle-meta{display:flex;flex-wrap:wrap;gap:20px}.puzzle-meta span{border-radius:20px;font-size:14px;font-weight:600;padding:6px 16px}.difficulty{background:#edf2f7;color:#2d3748;text-transform:capitalize}.rating{background:#fef5e7;color:#f39c12}.attempts{background:#ebf8ff;color:#3182ce}.puzzle-status{margin:0 auto 20px;max-width:1200px}.status-message{border-radius:12px;box-shadow:0 4px 6px #0000001a;font-size:18px;font-weight:600;padding:16px 24px;text-align:center}.status-message.playing{background:#fff;color:#2d3748}.status-message.correct{background:#48bb78;color:#fff}.status-message.incorrect{background:#f56565;color:#fff}.status-message.completed{background:#48bb78;color:#fff}.completion-stats{font-size:16px;margin-top:12px;opacity:.9}.puzzle-board-content{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;margin:0 auto;max-width:1200px;padding:40px}.board-notice{background:#f7fafc;border-radius:8px;margin-bottom:30px;padding:40px;text-align:center}.board-notice h3{color:#2d3748;font-size:24px;margin:0 0 16px}.board-notice p{color:#4a5568;line-height:1.6;margin:12px 0}.board-notice ul{color:#4a5568;margin:20px auto;max-width:400px;text-align:left}.board-notice li{margin:8px 0}.solution-hint{background:#edf2f7;border-radius:8px;font-family:monospace;font-size:14px;margin-top:24px;padding:16px}.puzzle-actions{display:flex;gap:12px;justify-content:center}.reset-button,.skip-button{border:none;border-radius:8px;cursor:pointer;font-size:16px;font-weight:600;padding:12px 24px;transition:opacity .2s}.reset-button{background:#667eea;color:#fff}.skip-button{background:#e2e8f0;color:#4a5568}.reset-button:hover,.skip-button:hover{opacity:.8}.puzzle-board-error,.puzzle-board-loading{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;flex-direction:column;justify-content:center;min-height:100vh}.puzzle-board-error .back-button{background:#fff;border:none;border-radius:8px;color:#667eea;cursor:pointer;font-size:16px;font-weight:600;margin-top:20px;padding:12px 24px}@media (max-width:768px){.puzzle-board-container{padding:10px}.puzzle-info h2{font-size:20px}.puzzle-meta{gap:8px}.puzzle-meta span{font-size:12px;padding:4px 12px}.board-notice{padding:20px}.puzzle-actions{flex-direction:column}.reset-button,.skip-button{width:100%}}.matchmaking-container{background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;padding:40px 20px}.matchmaking-header{margin:0 auto 40px;max-width:1000px}.matchmaking-header h1{color:#fff;font-size:48px;margin:20px 0;text-align:center;text-shadow:2px 2px 4px #0003}.matchmaking-content{display:flex;flex-direction:column;gap:30px;margin:0 auto;max-width:1000px}.player-info-card{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;padding:30px}.player-info-card h2{color:#2d3748;font-size:24px;margin:0 0 20px}.player-stats{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.stat{display:flex;flex-direction:column;gap:8px}.stat-label{color:#718096;font-size:14px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.stat-value{color:#2d3748;font-size:24px;font-weight:700}.matchmaking-status{align-items:center;background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;display:flex;justify-content:center;min-height:300px;padding:50px 30px;text-align:center}.status-message{width:100%}.status-message h2{font-size:32px;margin:0 0 16px}.status-message p{color:#4a5568;font-size:18px;margin:12px 0}.status-message.ready h2{color:#48bb78}.status-message.searching h2{color:#4299e1}.status-message.error h2{color:#f56565}.searching-animation{margin:20px 0}.spinner{animation:spin 1s linear infinite;border:4px solid #e2e8f0;border-radius:50%;border-top-color:#4299e1;height:60px;margin:0 auto;width:60px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.queue-info{background:#f7fafc;border-radius:8px;margin:20px 0;padding:20px}.queue-info p{font-size:16px;margin:8px 0}.queue-hint{color:#718096!important;font-size:14px!important;font-style:italic}.cancel-queue-button,.join-queue-button{border:none;border-radius:8px;cursor:pointer;font-size:18px;font-weight:600;margin-top:20px;padding:16px 48px;transition:all .3s ease}.join-queue-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.join-queue-button:hover{box-shadow:0 8px 16px #667eea66;transform:translateY(-2px)}.cancel-queue-button{background:#e53e3e;color:#fff}.cancel-queue-button:hover{background:#c53030;box-shadow:0 8px 16px #e53e3e66;transform:translateY(-2px)}.matchmaking-info{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;padding:30px}.matchmaking-info h3{color:#2d3748;font-size:24px;margin:0 0 20px}.matchmaking-info ul{list-style:none;margin:0;padding:0}.matchmaking-info li{border-bottom:1px solid #e2e8f0;color:#4a5568;font-size:16px;line-height:1.6;padding:12px 0}.matchmaking-info li:last-child{border-bottom:none}@media (max-width:768px){.matchmaking-container{padding:20px 10px}.matchmaking-header h1{font-size:32px}.matchmaking-info,.matchmaking-status,.player-info-card{padding:20px}.player-stats{grid-template-columns:repeat(2,1fr)}.status-message h2{font-size:24px}.cancel-queue-button,.join-queue-button{font-size:16px;padding:14px 32px}}.online-game-container{background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;padding:20px}.online-game-header{margin:0 auto 20px;max-width:1200px}.game-info{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;padding:20px}.game-info h2{color:#2d3748;font-size:28px;margin:0 0 20px;text-align:center}.players-info{align-items:center;display:flex;gap:20px;justify-content:space-between}.player-card{background:#f7fafc;border:2px solid #0000;border-radius:8px;display:flex;flex:1 1;flex-direction:column;gap:8px;padding:16px;transition:all .3s ease}.player-card.my-card{background:#ebf8ff;border-color:#4299e1}.player-name{color:#2d3748;font-size:18px;font-weight:700}.player-rating{color:#718096;font-size:16px}.player-color{color:#4a5568;font-size:14px;font-weight:600}.vs-divider{color:#a0aec0;font-size:24px;font-weight:900;padding:0 10px}.disconnect-warning{background:#fed7d7;border-radius:8px;color:#742a2a;font-weight:600;margin:0 auto 20px;padding:16px;text-align:center}.chat-panel,.disconnect-warning{box-shadow:0 4px 6px #0000001a;max-width:1200px}.chat-panel{background:#fff;border-radius:12px;margin:20px auto 0;padding:20px}.chat-panel h3{color:#2d3748;font-size:20px;margin:0 0 16px}.chat-messages{display:flex;flex-direction:column;gap:8px;max-height:200px;overflow-y:auto}.chat-message{background:#f7fafc;border-radius:6px;color:#4a5568;font-size:14px;padding:8px 12px}.chat-message strong{color:#2d3748;margin-right:8px}@media (max-width:768px){.online-game-container{padding:10px}.players-info{flex-direction:column;gap:12px}.vs-divider{font-size:20px;transform:rotate(90deg)}.player-card{width:100%}.game-info h2{font-size:22px}}.settings-container{background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;padding:20px}.settings-header{align-items:center;display:flex;gap:20px;margin:0 auto 30px;max-width:800px}.settings-header h1{color:#fff;font-size:36px;margin:0}.settings-content{background:#fff;border-radius:16px;box-shadow:0 10px 40px #0000004d;margin:0 auto;max-width:800px;overflow:hidden}.settings-tabs{background:#f7fafc;border-bottom:2px solid #e2e8f0;display:flex}.settings-tab{background:#0000;border:none;border-bottom:3px solid #0000;color:#718096;cursor:pointer;flex:1 1;font-size:16px;font-weight:600;padding:16px 24px;transition:all .3s ease}.settings-tab:hover{background:#667eea1a;color:#667eea}.settings-tab.active{background:#fff;border-bottom-color:#667eea;color:#667eea}.settings-panel{padding:40px}.settings-section h2{color:#2d3748;font-size:24px;margin:0 0 24px}.settings-form{max-width:500px}.form-group{margin-bottom:20px}.form-group label{color:#4a5568;display:block;font-size:14px;font-weight:600;margin-bottom:8px}.form-group input{border:2px solid #e2e8f0;border-radius:8px;box-sizing:border-box;font-size:16px;padding:12px 16px;transition:all .3s ease;width:100%}.form-group input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-group input:disabled{background:#f7fafc;cursor:not-allowed}.error-message,.success-message{font-size:14px;margin-bottom:16px;padding:12px 16px}.success-message{background:#c6f6d5;border-radius:8px;color:#2f855a;font-weight:600}.submit-button{background:#667eea;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:14px 24px;transition:all .3s ease;width:100%}.submit-button:hover:not(:disabled){background:#5568d3;box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}.submit-button:disabled{background:#cbd5e0;cursor:not-allowed;transform:none}.account-info{background:#f7fafc;border-radius:12px;padding:24px}.info-row{border-bottom:1px solid #e2e8f0;padding:12px 0}.info-row:last-child{border-bottom:none}.info-label{color:#718096;font-weight:600}.info-value{color:#2d3748;font-weight:500}@media (max-width:768px){.settings-header h1{font-size:24px}.settings-panel{padding:24px}.settings-tabs{flex-direction:column}.settings-tab{border-bottom:1px solid #e2e8f0;border-left:3px solid #0000}.settings-tab.active{border-bottom-color:#e2e8f0;border-left-color:#667eea}}.my-games-container{background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;padding:20px}.my-games-header{align-items:center;display:flex;gap:20px;margin:0 auto 30px;max-width:1200px}.my-games-header h1{color:#fff;font-size:36px;margin:0}.my-games-content{margin:0 auto;max-width:1200px}.games-filters{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:30px}.filter-btn{background:#fff3;border:2px solid #ffffff4d;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:12px 24px;transition:all .3s ease}.filter-btn:hover{background:#ffffff4d;transform:translateY(-2px)}.filter-btn.active{background:#fff;border-color:#fff;color:#667eea}.loading,.no-games{background:#fff;border-radius:16px;box-shadow:0 10px 40px #0000004d;padding:60px 20px;text-align:center}.no-games p{color:#718096;font-size:18px;margin:10px 0}.games-list{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.game-card{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;padding:24px;transition:all .3s ease}.game-card:hover{box-shadow:0 8px 24px #0003;transform:translateY(-4px)}.game-header{align-items:center;border-bottom:2px solid #e2e8f0;display:flex;justify-content:space-between;margin-bottom:16px;padding-bottom:16px}.game-mode{color:#2d3748;font-size:18px;font-weight:700}.game-status{border-radius:6px;font-size:14px;font-weight:600;padding:6px 12px}.game-status.active{background:#c6f6d5;color:#2f855a}.game-status.completed{background:#e2e8f0;color:#4a5568}.game-info{margin-bottom:20px}.info-row{display:flex;font-size:14px;justify-content:space-between;padding:8px 0}.info-row .label{color:#718096;font-weight:600}.info-row .value{color:#2d3748;font-weight:500}.info-row .value.winner{font-size:16px;font-weight:700}.game-actions{display:flex;flex-wrap:wrap;gap:8px}.action-btn{border:none;border-radius:6px;cursor:pointer;flex:1 1;font-size:14px;font-weight:600;min-width:100px;padding:10px 16px;transition:all .3s ease}.action-btn.resume{background:#48bb78;color:#fff}.action-btn.resume:hover{background:#38a169;transform:translateY(-2px)}.action-btn.view{background:#667eea;color:#fff}.action-btn.view:hover{background:#5568d3;transform:translateY(-2px)}.action-btn.delete{background:#fc8181;color:#fff}.action-btn.delete:hover{background:#f56565;transform:translateY(-2px)}.error-message{background:#fed7d7;border-radius:8px;color:#c53030;font-weight:600;margin-bottom:20px;padding:16px;text-align:center}@media (max-width:768px){.my-games-header h1{font-size:24px}.games-list{grid-template-columns:1fr}.games-filters{flex-direction:column}.filter-btn{width:100%}}.error-boundary-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.error-boundary-content{background:#fff;border-radius:16px;box-shadow:0 10px 40px #0003;max-width:600px;padding:48px;text-align:center}.error-boundary-title{color:#2d3748;font-size:32px;margin:0 0 16px}.error-boundary-message{color:#4a5568;font-size:18px;line-height:1.6;margin:0 0 32px}.error-boundary-details{background:#f7fafc;border-radius:8px;margin:24px 0;padding:16px;text-align:left}.error-boundary-details summary{color:#e53e3e;cursor:pointer;font-weight:600;margin-bottom:12px}.error-boundary-stack{word-wrap:break-word;color:#2d3748;font-family:monospace;font-size:12px;overflow-x:auto;white-space:pre-wrap}.error-boundary-actions{display:flex;gap:12px;justify-content:center;margin-bottom:24px}.error-boundary-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:12px 24px;transition:all .3s ease}.error-boundary-button:hover{box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}.error-boundary-button.secondary{background:#e2e8f0;color:#2d3748}.error-boundary-button.secondary:hover{background:#cbd5e0;box-shadow:0 4px 12px #0000001a}.error-boundary-help{color:#718096;font-size:14px;margin:0}@media (max-width:768px){.error-boundary-content{padding:32px 24px}.error-boundary-title{font-size:24px}.error-boundary-message{font-size:16px}.error-boundary-actions{flex-direction:column}.error-boundary-button{width:100%}}
/*# sourceMappingURL=main.204c582c.css.map*/