/*! chessboard.js v1.0.0 | (c) 2019 Chris Oakman | MIT License chessboardjs.com/license */.clearfix-7da63{clear:both}.board-b72b1{border:2px solid #404040;box-sizing:content-box}.square-55d63{float:left;position:relative;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.white-1e1d7{background-color:#f0d9b5;color:#b58863}.black-3c85d{background-color:#b58863;color:#f0d9b5}.highlight1-32417,.highlight2-9c5d2{box-shadow:inset 0 0 3px 3px #ff0}.notation-322f9{cursor:default;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;position:absolute}.alpha-d2270{bottom:1px;right:3px}.numeric-fc462{top:2px;left:2px}*{box-sizing:border-box}html{height:100%;overflow:hidden;position:fixed;width:100%;-webkit-overflow-scrolling:touch}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;margin:0;padding:0;background-color:#d8d8d8;height:100vh;height:100dvh;width:100vw;display:flex;align-items:center;justify-content:center;overflow:hidden;position:fixed;top:0;left:0;overscroll-behavior:none;touch-action:none;-webkit-overflow-scrolling:touch;-ms-overflow-style:none;scrollbar-width:none}.container{width:100%;max-width:600px;padding:20px;display:flex;flex-direction:column;align-items:center;gap:20px}.board-container{width:100%;max-width:100vmin;aspect-ratio:1;display:flex;justify-content:center;align-items:center}#myBoard{width:100%!important;height:100%!important;max-width:90vmin;max-height:90vmin;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.game-controls{display:flex;flex-direction:column;align-items:center;gap:15px;width:100%;max-width:400px}.button-group{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}button{background-color:#3498db;color:#fff;border:none;padding:12px 24px;border-radius:8px;cursor:pointer;font-size:16px;font-weight:600;transition:all .2s ease;min-height:44px;min-width:120px}button:hover{background-color:#2980b9;transform:translateY(-1px)}button:active{transform:translateY(0)}button:disabled{background-color:#95a5a6;cursor:not-allowed;transform:none}button:disabled:hover{background-color:#95a5a6;transform:none}button.confirm-pending{background-color:#e74c3c!important;animation:pulse .3s ease-in-out}button.confirm-pending:hover{background-color:#c0392b!important}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}button.thinking{position:relative;overflow:hidden;background:linear-gradient(to right,#3498db 0%,#3498db var(--progress, 0%),#95a5a6 var(--progress, 0%),#95a5a6 100%);transition:none}button.thinking:hover{background:linear-gradient(to right,#2980b9 0%,#2980b9 var(--progress, 0%),#7f8c8d var(--progress, 0%),#7f8c8d 100%)}.turn-indicator{width:100%;text-align:center}.turn-indicator h3{margin:0;color:#333;font-size:18px;font-weight:600;padding:12px 20px;background-color:#fff;border-radius:8px;border:2px solid #3498db;box-shadow:0 2px 8px #0000001a}@media (max-width: 768px){.container{padding:10px;gap:15px}#myBoard{max-width:95vmin;max-height:95vmin}.turn-indicator h3{font-size:16px;padding:10px 16px}button{font-size:14px;padding:10px 20px;min-width:100px}}@media (max-width: 480px){.container{padding:5px;gap:10px}.turn-indicator h3{font-size:14px;padding:8px 12px}}.modal{position:fixed;z-index:1000;left:0;top:0;width:100%;height:100%;background-color:#0009;display:flex;justify-content:center;align-items:center}.modal-content{background-color:#fff;padding:30px;border-radius:10px;text-align:center;box-shadow:0 4px 20px #0000004d;max-width:400px;width:90%}.modal-content h2{margin:0 0 15px;color:#2c3e50;font-size:24px}.modal-content p{margin:0 0 20px;color:#555;font-size:18px;font-weight:700}.modal-buttons{display:flex;gap:15px;justify-content:center;flex-wrap:wrap}.modal-content button{background-color:#27ae60;font-size:16px;padding:12px 24px;margin:0;min-width:100px}.modal-content button:hover{background-color:#229954;transform:translateY(-1px)}.modal-content button:first-child{background-color:#3498db}.modal-content button:first-child:hover{background-color:#2980b9}@media (max-width: 480px){.modal-content{padding:20px;margin:10px}.modal-content h2{font-size:20px}.modal-content p{font-size:16px}}.highlight-move{position:relative}.highlight-move:after{content:"";position:absolute;top:50%;left:50%;width:20px;height:20px;background-color:#0006;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:10}.highlight-capture{position:relative}.highlight-capture:after{content:"";position:absolute;top:50%;left:50%;width:20px;height:20px;background-color:#dc143cb3;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:10}.king-in-check{position:relative}.king-in-check:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-color:#ff64644d;border-radius:4px;box-shadow:0 0 8px #ff454580;pointer-events:none;z-index:5}.clock-bar{width:100%;max-width:600px;background-color:#2c3e50;border-radius:12px;display:flex;align-items:center;overflow:hidden;box-shadow:0 4px 12px #0000004d;font-family:Courier New,monospace}.clock-bar.top{margin-bottom:20px}.clock-bar.bottom{margin-top:20px}.clock-section{flex:1;padding:15px 20px;color:#fff;transition:all .3s ease;display:flex;align-items:center;gap:10px}.clock-center{padding:10px;display:flex;align-items:center;justify-content:center}.clock-section.left{justify-content:flex-start}.clock-section.right{justify-content:flex-end}.clock-bar.active{background-color:#d46f27;box-shadow:0 4px 12px #8e44ad4d}.clock-bar.active.low-time{background-color:#d35400;animation:pulse-warning 1s ease-in-out infinite}.clock-bar.active.very-low-time{background-color:#c0392b;animation:pulse-critical .5s ease-in-out infinite}@keyframes pulse-warning{0%,to{opacity:1}50%{opacity:.8}}@keyframes pulse-critical{0%,to{opacity:1}50%{opacity:.6}}.clock-divider{width:2px;height:40px;background-color:#34495e;flex-shrink:0}.clock-section .time{font-size:24px;font-weight:700}.clock-section .label{font-size:14px;text-transform:uppercase;letter-spacing:1px;opacity:.8}.upside-down,#blackComputerMoveBtn.upside-down{transform:rotate(180deg)!important}#blackComputerMoveBtn.upside-down:hover{transform:rotate(180deg) translateY(1px)!important}@media (max-width: 768px){.clock-section{padding:12px 15px;gap:8px}.clock-section .time{font-size:20px}.clock-section .label{font-size:12px}.clock-divider{height:35px}}@media (max-width: 480px){.clock-section{padding:10px 12px;gap:6px}.clock-section .time{font-size:18px}.clock-section .label{font-size:11px}.clock-divider{height:30px}}.computer-move-btn{background-color:#fff3;color:#fff;border:1px solid rgba(255,255,255,.3);padding:6px 12px;border-radius:6px;font-size:12px;font-weight:600;min-width:40px;min-height:28px;transition:all .2s ease}.computer-move-btn:hover:not(:disabled){background-color:#ffffff4d;transform:translateY(-1px)}.computer-move-btn:disabled{background-color:#ffffff1a;color:#ffffff80;cursor:not-allowed;transform:none}.computer-move-btn.thinking{background:linear-gradient(to right,rgba(255,255,255,.3) 0%,rgba(255,255,255,.3) var(--progress, 0%),rgba(255,255,255,.1) var(--progress, 0%),rgba(255,255,255,.1) 100%)}.corner-buttons{position:fixed;bottom:0;left:0;width:100vw;height:100vh;pointer-events:none;z-index:1000}.corner-btn{position:absolute;background-color:#3498db;color:#fff;border:none;padding:10px 16px;border-radius:8px;font-size:14px;font-weight:600;pointer-events:auto;transition:all .2s ease;min-height:40px;z-index:1001;cursor:pointer}.corner-btn:hover{background-color:#2980b9;transform:translateY(-1px)}.corner-btn.bottom-left{bottom:20px;left:20px}.corner-btn.bottom-center{bottom:20px;left:50%;transform:translate(-50%)}.corner-btn.bottom-right{bottom:20px;right:20px}.corner-btn.confirm-pending{background-color:#e74c3c!important}.corner-btn.confirm-pending:hover{background-color:#c0392b!important}@media (max-width: 768px){.corner-btn{padding:8px 12px;font-size:12px;min-height:36px}.corner-btn.bottom-left{bottom:15px;left:15px}.corner-btn.bottom-center{bottom:15px;left:50%;transform:translate(-50%)}.corner-btn.bottom-right{bottom:15px;right:15px}}@media (max-width: 480px){.corner-btn{padding:6px 10px;font-size:11px;min-height:32px}.corner-btn.bottom-left{bottom:10px;left:10px}.corner-btn.bottom-center{bottom:10px;left:50%;transform:translate(-50%)}.corner-btn.bottom-right{bottom:10px;right:10px}.computer-move-btn{padding:4px 8px;font-size:10px;min-width:32px;min-height:24px}}.options-modal-content{background-color:#fff;border-radius:16px;max-width:500px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:0 8px 32px #0000004d;display:flex;flex-direction:column}.time-control-section{padding:15px;text-align:center}.black-section{background-color:#2c3e50;color:#fff;border-radius:16px 16px 0 0}.white-section{background-color:#ecf0f1;color:#2c3e50;border-radius:0 0 16px 16px}.shared-section{background-color:#95a5a6;color:#fff;padding:15px;text-align:center}.time-control-section h3{margin:0 0 10px;font-size:16px;font-weight:600}.shared-section h3{margin:0 0 15px;font-size:18px;font-weight:600}.time-display{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:5px}.time-digit-group{display:flex;flex-direction:column;align-items:center;gap:4px}.time-digit{font-size:32px;font-weight:700;font-family:Courier New,monospace;min-width:40px;text-align:center}.time-separator{font-size:24px;font-weight:700;margin:0 8px}.digit-btn{background-color:#fff3;color:currentColor;border:2px solid rgba(255,255,255,.3);border-radius:6px;width:32px;height:32px;font-size:16px;font-weight:700;cursor:pointer;transition:all .2s ease}.digit-btn:hover{background-color:#ffffff4d;transform:scale(1.05)}.white-section .digit-btn{background-color:#2c3e501a;color:#2c3e50;border-color:#2c3e504d}.white-section .digit-btn:hover{background-color:#2c3e5033}.preset-buttons{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:25px}.preset-btn{background-color:#fff3;color:#fff;border:2px solid rgba(255,255,255,.3);border-radius:8px;padding:10px 16px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;min-width:60px}.preset-btn:hover{background-color:#ffffff4d;transform:translateY(-2px)}.action-buttons{display:flex;flex-direction:row;gap:15px;justify-content:center;align-items:center}.save-btn,.cancel-btn{padding:12px 24px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;border:none;min-width:120px}.save-btn{background-color:#27ae60;color:#fff}.save-btn:hover{background-color:#229954;transform:translateY(-2px)}.cancel-btn{background-color:#ffffff4d;color:#fff;border:2px solid rgba(255,255,255,.5)}.cancel-btn:hover{background-color:#fff6;transform:translateY(-2px)}@media (max-width: 768px){.options-modal-content{width:95%;max-height:85vh}.time-control-section{padding:15px}.shared-section{padding:20px 15px}.time-digit{font-size:36px;min-width:50px}.time-separator{font-size:28px}.digit-btn{width:35px;height:35px;font-size:18px}.preset-buttons{gap:8px}.preset-btn{padding:8px 12px;font-size:14px;min-width:50px}.action-buttons{flex-direction:row;align-items:center}.save-btn,.cancel-btn{width:200px}}@media (max-width: 480px){.time-digit{font-size:28px;min-width:40px}.time-separator{font-size:22px;margin:0 5px}.digit-btn{width:30px;height:30px;font-size:16px}.time-display{gap:10px}}.player-settings{display:flex;flex-direction:row;gap:15px;justify-content:center;align-items:center}.setting-group{flex:1;display:flex;flex-direction:column;align-items:center}.setting-group h4{margin:0 0 8px;font-size:14px;font-weight:600}.computer-moves-control{display:flex;flex-direction:column;align-items:center;gap:4px}.computer-moves-digit{font-size:24px;font-weight:700;font-family:Courier New,monospace;min-width:32px;text-align:center}.moves-remaining{font-size:14px;font-weight:700;opacity:.8;margin-top:5px;display:block}.clock-section{flex-direction:column;justify-content:center}.clock-section .time{margin-bottom:2px}@media (max-width: 768px){.moves-remaining{font-size:12px;margin-top:3px}.computer-moves-digit{font-size:28px;min-width:35px}.player-settings{gap:10px}.setting-group h4{font-size:12px;margin-bottom:6px}.time-digit{font-size:28px}.time-separator{font-size:20px}}@media (max-width: 480px){.moves-remaining{font-size:11px;margin-top:2px}.computer-moves-digit{font-size:24px;min-width:30px}.player-settings{flex-direction:row;gap:8px}.setting-group h4{font-size:11px;margin-bottom:4px}.time-digit{font-size:24px}.time-separator{font-size:18px}.digit-btn{width:28px;height:28px;font-size:14px}}.download-dialog{position:fixed;z-index:1000;left:0;top:0;width:100%;height:100%;background-color:#0009;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center}.download-dialog-content{background-color:#fff;width:80%;height:30%;border-radius:16px;padding:30px;text-align:center;box-shadow:0 8px 32px #0000004d;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:20px;max-width:500px;min-height:200px}.download-dialog-content h3{margin:0;color:#2c3e50;font-size:24px;font-weight:600}.download-dialog-content p{margin:0;color:#555;font-size:18px;line-height:1.4}.download-dialog-buttons{display:flex;gap:20px;justify-content:center;flex-wrap:wrap}.download-btn,.cancel-download-btn{padding:12px 24px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;border:none;min-width:120px;transition:all .2s ease}.download-btn{background-color:#27ae60;color:#fff}.download-btn:hover{background-color:#229954;transform:translateY(-1px)}.cancel-download-btn{background-color:#95a5a6;color:#fff}.cancel-download-btn:hover{background-color:#7f8c8d;transform:translateY(-1px)}.progress-section{width:100%;display:flex;flex-direction:column;gap:10px}.progress-bar{width:100%;height:20px;background-color:#ecf0f1;border-radius:10px;overflow:hidden;position:relative}.progress-fill{height:100%;background:linear-gradient(90deg,#27ae60,#2ecc71);border-radius:10px;width:0%;transition:width .3s ease;position:relative}@media (max-width: 768px){.download-dialog-content{width:80%;height:35%;padding:25px;gap:15px}.download-dialog-content h3{font-size:20px}.download-dialog-content p{font-size:16px}.download-btn,.cancel-download-btn{padding:10px 20px;font-size:14px;min-width:100px}.progress-bar{height:18px}}@media (max-width: 480px){.download-dialog-content{width:80%;height:30%;padding:20px;gap:12px}.download-dialog-content h3{font-size:18px}.download-dialog-content p{font-size:14px}.download-dialog-buttons{gap:15px}.download-btn,.cancel-download-btn{padding:8px 16px;font-size:13px;min-width:90px}.progress-bar{height:16px}}.archive-modal-content{background-color:#fff;border-radius:16px;max-width:600px;width:90%;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #0000004d}.archive-header{display:flex;justify-content:space-between;align-items:center;padding:20px 25px;border-bottom:1px solid #ecf0f1}.archive-header h2{margin:0;color:#2c3e50;font-size:24px;font-weight:600}.close-btn{background:none;border:none;font-size:28px;color:#95a5a6;cursor:pointer;padding:5px;border-radius:4px;transition:all .2s ease;width:40px;height:40px;display:flex;align-items:center;justify-content:center}.close-btn:hover{background-color:#f8f9fa;color:#7f8c8d;transform:none}.archive-list{flex:1;overflow-y:auto;padding:15px 25px 25px;max-height:400px;touch-action:pan-y;-webkit-overflow-scrolling:touch}.no-games-message{text-align:center;color:#95a5a6;font-size:18px;padding:40px 20px;font-style:italic}.archived-game{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:15px;margin-bottom:10px;cursor:pointer;transition:all .2s ease}.archived-game:hover{background-color:#e3f2fd;border-color:#2196f3;transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.archived-game:last-child{margin-bottom:0}.game-info{display:flex;flex-direction:column;gap:8px}.game-header{display:flex;justify-content:space-between;align-items:center}.game-date{color:#6c757d;font-size:14px;font-weight:500}.game-winner{color:#2c3e50;font-size:16px;font-weight:600}.game-details{display:flex;justify-content:flex-start;align-items:center;font-size:13px;color:#6c757d}.player-details{font-family:Courier New,monospace;font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.time-control{font-family:Courier New,monospace;background-color:#e9ecef;padding:2px 6px;border-radius:4px;font-weight:600}.hints-used{font-style:italic}@media (max-width: 768px){.archive-modal-content{width:95%;max-height:85vh}.archive-header{padding:15px 20px}.archive-header h2{font-size:20px}.close-btn{font-size:24px;width:35px;height:35px}.archive-list{padding:10px 20px 20px;max-height:350px}.archived-game{padding:12px}.game-winner{font-size:15px}.game-date{font-size:13px}.game-details{font-size:12px}.player-details{font-size:11px}.no-games-message{font-size:16px;padding:30px 15px}}@media (max-width: 480px){.archive-header{padding:12px 15px}.archive-header h2{font-size:18px}.close-btn{font-size:22px;width:32px;height:32px}.archive-list{padding:8px 15px 15px;max-height:300px}.archived-game{padding:10px}.game-header{flex-direction:column;align-items:flex-start;gap:4px}.player-details{font-size:10px;word-break:break-all;white-space:normal}.game-winner{font-size:14px}.game-date{font-size:12px}.game-details{font-size:11px}.no-games-message{font-size:14px;padding:25px 10px}}
