:root{--bg-primary: #ffffff;--bg-secondary: #f8f9fa;--bg-tertiary: #e9ecef;--text-primary: #212529;--text-secondary: #6c757d;--border-color: #dee2e6;--shadow-color: rgba(0, 0, 0, .1);--card-bg: #ffffff;--input-bg: #ffffff;--button-bg: #007bff;--button-hover: #0056b3;--board-light-square: #f0d9b5;--board-dark-square: #b58863;--board-light-highlight: #f7ec74;--board-dark-highlight: #d8c34a}.app{text-align:center;padding:2rem;background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh;transition:background-color .3s ease,color .3s ease}h1{color:var(--text-primary);margin-bottom:1rem}.game-layout{display:flex;justify-content:center;align-items:flex-start;gap:2rem;flex-wrap:wrap;max-width:1400px;margin:0 auto}.board-section{display:flex;flex-direction:column;align-items:center}.game-status{font-size:1.5rem;font-weight:700;padding:1rem 2rem;margin-bottom:1rem;border-radius:8px;display:inline-block;animation:fadeIn .3s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.status-check{background-color:#fff3cd;color:#856404;border:2px solid #ffc107}.status-checkmate{background-color:#f8d7da;color:#721c24;border:2px solid #dc3545}.status-stalemate,.status-draw{background-color:#d1ecf1;color:#0c5460;border:2px solid #17a2b8}.turn-indicator{font-size:1.2rem;margin-bottom:1rem;padding:.5rem;background-color:var(--bg-tertiary);color:var(--text-primary);border-radius:8px;display:inline-block}.game-controls{margin-top:1rem;display:flex;gap:1rem;justify-content:center}.new-game-button{font-size:1rem;padding:.75rem 1.5rem;background-color:#28a745;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:700;transition:background-color .2s,transform .1s}.new-game-button:hover{background-color:#218838;transform:translateY(-2px)}.new-game-button:active{background-color:#1e7e34;transform:translateY(0)}.flip-board-button{font-size:1rem;padding:.75rem 1.5rem;background-color:#007bff;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:700;transition:background-color .2s,transform .1s}.flip-board-button:hover{background-color:#0056b3;transform:translateY(-2px)}.flip-board-button:active{background-color:#004085;transform:translateY(0)}.pgn-button-control{font-size:1rem;padding:.75rem 1.5rem;background-color:#6c757d;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:700;transition:background-color .2s,transform .1s}.pgn-button-control:hover:not(:disabled){background-color:#5a6268;transform:translateY(-2px)}.pgn-button-control:active:not(:disabled){background-color:#545b62;transform:translateY(0)}.pgn-button-control:disabled{background-color:silver;cursor:not-allowed;opacity:.6}.sound-button-control{font-size:1rem;padding:.75rem 1.5rem;background-color:#6c757d;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:700;transition:background-color .2s,transform .1s}.sound-button-control:hover{background-color:#5a6268;transform:translateY(-2px)}.sound-button-control:active{background-color:#545b62;transform:translateY(0)}.settings-button-control{font-size:1rem;padding:.75rem 1.5rem;background-color:#6c757d;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:700;transition:background-color .2s,transform .1s}.settings-button-control:hover{background-color:#5a6268;transform:translateY(-2px)}.settings-button-control:active{background-color:#545b62;transform:translateY(0)}.volume-control{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background-color:#f8f9fa;border-radius:8px;border:1px solid #dee2e6}.volume-label{font-size:.9rem;font-weight:500;color:#495057;margin:0}.volume-slider{width:120px;height:6px;-webkit-appearance:none;appearance:none;background:linear-gradient(to right,#6c757d 0%,#6c757d var(--slider-value, 50%),#dee2e6 var(--slider-value, 50%),#dee2e6 100%);outline:none;border-radius:3px;transition:background .15s ease-in-out}.volume-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;background:#495057;cursor:pointer;border-radius:50%;box-shadow:0 2px 4px #0003;transition:background-color .15s ease-in-out,transform .15s ease-in-out}.volume-slider::-webkit-slider-thumb:hover{background:#343a40;transform:scale(1.1)}.volume-slider::-moz-range-thumb{width:16px;height:16px;background:#495057;cursor:pointer;border-radius:50%;border:none;box-shadow:0 2px 4px #0003;transition:background-color .15s ease-in-out,transform .15s ease-in-out}.volume-slider::-moz-range-thumb:hover{background:#343a40;transform:scale(1.1)}.volume-slider:disabled{opacity:.5;cursor:not-allowed}.volume-slider:disabled::-webkit-slider-thumb{cursor:not-allowed;background:#adb5bd}.volume-slider:disabled::-moz-range-thumb{cursor:not-allowed;background:#adb5bd}.volume-percentage{font-size:.85rem;font-weight:500;color:#495057;min-width:42px;text-align:right}.game-info{margin-top:1rem;display:flex;justify-content:center;gap:2rem;font-size:.9rem;color:#666}.navigation-controls{margin-top:1rem;display:flex;gap:.5rem;justify-content:center}.nav-button{font-size:1.2rem;padding:.5rem 1rem;background-color:#6c757d;color:#fff;border:none;border-radius:6px;cursor:pointer;transition:background-color .2s,transform .1s;min-width:50px}.nav-button:hover:not(:disabled){background-color:#5a6268;transform:translateY(-2px)}.nav-button:active:not(:disabled){background-color:#545b62;transform:translateY(0)}.nav-button:disabled{background-color:silver;cursor:not-allowed;opacity:.5}.history-indicator{font-size:1rem;margin-bottom:.5rem;padding:.5rem 1rem;background-color:#fff3cd;color:#856404;border:1px solid #ffc107;border-radius:6px;display:inline-block;font-weight:500}.hint-controls{margin-top:1rem;display:flex;flex-direction:column;align-items:center;gap:.5rem}.hint-message{font-size:.95rem;padding:.5rem 1rem;border-radius:6px;font-weight:500;animation:fadeIn .3s ease-in}.hint-message.calculating{background-color:#e7f3ff;color:#004085;border:1px solid #b3d7ff}.hint-message.active{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.hint-button{font-size:1rem;padding:.75rem 1.5rem;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:700;transition:background-color .2s,transform .1s;min-width:180px}.hint-button.show-hint{background-color:#20c997}.hint-button.show-hint:hover:not(:disabled){background-color:#1ab386;transform:translateY(-2px)}.hint-button.clear-hint{background-color:#6c757d}.hint-button.clear-hint:hover:not(:disabled){background-color:#5a6268;transform:translateY(-2px)}.hint-button:active:not(:disabled){transform:translateY(0)}.hint-button:disabled{background-color:silver;cursor:not-allowed;opacity:.6}.ai-thinking{font-size:1.1rem;margin-bottom:1rem;padding:.75rem 1.5rem;background-color:#d1ecf1;color:#0c5460;border:2px solid #17a2b8;border-radius:8px;display:inline-block;font-weight:600;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.02)}}.game-mode-controls{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem;padding:1rem;background-color:#f8f9fa;border-radius:8px;border:1px solid #dee2e6}.control-group{display:flex;align-items:center;gap:.75rem}.control-group label{font-weight:600;color:#495057;min-width:100px;text-align:right}.control-group select{flex:1;padding:.5rem;font-size:1rem;border:1px solid #ced4da;border-radius:6px;background-color:#fff;cursor:pointer;transition:border-color .2s}.control-group select:hover:not(:disabled){border-color:#80bdff}.control-group select:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 .2rem #007bff40}.control-group select:disabled{background-color:#e9ecef;cursor:not-allowed;opacity:.65}@media(max-width:1024px){.game-layout{flex-direction:column;align-items:center}}@media(max-width:768px){.game-mode-controls{width:100%;max-width:400px}.control-group{flex-direction:column;align-items:flex-start;gap:.5rem}.control-group label{text-align:left;min-width:auto}.control-group select{width:100%}}.board-container{display:flex;justify-content:center;align-items:center;padding:2rem}.board{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);width:100%;max-width:640px;aspect-ratio:1;border:2px solid #333;box-shadow:0 4px 8px #0003}.square{aspect-ratio:1;display:flex;justify-content:center;align-items:center;position:relative}.square.light{background-color:var(--board-light-square, #f0d9b5)}.square.dark{background-color:var(--board-dark-square, #b58863)}.square:hover{filter:brightness(.9);cursor:pointer}.square.selected{background-color:var(--board-light-highlight, #f7ec6f)!important;box-shadow:inset 0 0 0 3px #f7b731}.square.drag-source{opacity:.6;box-shadow:inset 0 0 0 3px #4a90e2}.file-label{position:absolute;bottom:2px;right:4px;font-size:.75rem;font-weight:700;color:inherit;-webkit-user-select:none;user-select:none;pointer-events:none}.square.light .file-label{color:var(--board-dark-square, #b58863)}.square.dark .file-label{color:var(--board-light-square, #f0d9b5)}.rank-label{position:absolute;top:2px;left:4px;font-size:.75rem;font-weight:700;color:inherit;-webkit-user-select:none;user-select:none;pointer-events:none}.square.light .rank-label{color:var(--board-dark-square, #b58863)}.square.dark .rank-label{color:var(--board-light-square, #f0d9b5)}.square.legal-move:after{content:"";position:absolute;width:25%;height:25%;background-color:#0003;border-radius:50%;pointer-events:none}.square.legal-capture:after{content:"";position:absolute;width:90%;height:90%;border:4px solid rgba(0,0,0,.2);border-radius:50%;pointer-events:none;box-sizing:border-box}.square.last-move-from,.square.last-move-to{background-color:#9bc70069!important}.square.hint-from{box-shadow:inset 0 0 0 4px #20c997!important;background-color:#20c99733!important}.square.hint-to{box-shadow:inset 0 0 0 4px #20c997!important;background-color:#20c99759!important}.square.hint-to:before{content:"➜";position:absolute;font-size:2rem;color:#20c997;font-weight:700;pointer-events:none;z-index:5;text-shadow:0 0 3px rgba(0,0,0,.5);animation:pulse-hint 1.5s ease-in-out infinite}@keyframes pulse-hint{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}.animating-piece{position:absolute;width:100%;height:100%;display:flex;justify-content:center;align-items:center;transition:transform .3s ease-in-out;pointer-events:none;z-index:10}.piece{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-family:var(--piece-font-family, inherit);font-size:var(--piece-font-size, 3.5rem);font-weight:var(--piece-font-weight, normal);line-height:1;user-select:none;-webkit-user-select:none;-moz-user-select:none;pointer-events:none;text-shadow:1px 1px 2px rgba(0,0,0,.3);transition:font-family .3s ease,font-size .3s ease,font-weight .3s ease}.piece-draggable{pointer-events:auto;cursor:grab}.piece-draggable:active{cursor:grabbing}.piece-dragging{opacity:.5}.piece-white{color:#fff;-webkit-text-stroke:.5px #333333;text-stroke:.5px #333333}.piece-black{color:#000}@media(max-width:768px){.piece{font-size:calc(var(--piece-font-size, 3.5rem) * .71)}}@media(max-width:480px){.piece{font-size:calc(var(--piece-font-size, 3.5rem) * .57)}}.promotion-dialog-overlay{position:fixed;inset:0;background-color:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn .2s ease-in}.promotion-dialog{background-color:#fff;border-radius:12px;padding:2rem;box-shadow:0 8px 32px #0000004d;max-width:500px;width:90%;animation:slideIn .3s ease-out}.promotion-title{margin:0 0 1.5rem;text-align:center;font-size:1.5rem;font-weight:600;color:#333}.promotion-options{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}.promotion-button{width:80px;height:80px;background-color:#f0f0f0;border:3px solid #ddd;border-radius:8px;cursor:pointer;transition:all .2s ease;display:flex;justify-content:center;align-items:center;padding:0}.promotion-button:hover{background-color:#e0e0e0;border-color:#4a90e2;transform:scale(1.1);box-shadow:0 4px 12px #4a90e24d}.promotion-button:active{transform:scale(1.05);box-shadow:0 2px 6px #4a90e24d}.promotion-button:focus{outline:none;border-color:#4a90e2;box-shadow:0 0 0 3px #4a90e233}@keyframes slideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}@media(max-width:768px){.promotion-dialog{padding:1.5rem}.promotion-title{font-size:1.25rem}.promotion-button{width:70px;height:70px}}@media(max-width:480px){.promotion-button{width:60px;height:60px}.promotion-options{gap:.75rem}}.move-history{background:#fff;border:1px solid #ddd;border-radius:8px;padding:1rem;max-width:300px;box-shadow:0 2px 4px #0000001a}.move-history-title{margin:0 0 .5rem;font-size:1.1rem;font-weight:700;color:#333;text-align:center;border-bottom:2px solid #ddd;padding-bottom:.5rem}.move-history-scroll{max-height:400px;overflow-y:auto;overflow-x:hidden}.move-history-scroll::-webkit-scrollbar{width:8px}.move-history-scroll::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.move-history-scroll::-webkit-scrollbar-thumb{background:#888;border-radius:4px}.move-history-scroll::-webkit-scrollbar-thumb:hover{background:#555}.move-history-empty{text-align:center;color:#999;padding:2rem 0;font-style:italic}.move-history-table{width:100%;border-collapse:collapse}.move-history-row{border-bottom:1px solid #f0f0f0}.move-history-row:last-child{border-bottom:none}.move-history-row:hover{background-color:#f9f9f9}.move-number{width:2rem;text-align:right;padding:.25rem .5rem .25rem .25rem;color:#666;font-weight:700;font-size:.9rem}.move-notation{padding:.25rem .5rem;font-family:Courier New,monospace;font-size:.95rem;width:50%;color:#333}.move-notation.clickable{cursor:pointer}.move-notation.clickable:hover{background-color:#e8e8e8}.move-notation.current-move{background-color:#d1ecf1;border-left:3px solid #17a2b8;font-weight:700}.move-notation.current-move:hover{background-color:#bee5eb}.move-notation.last-move{background-color:#fff3cd;font-weight:700}.move-notation.last-move:hover{background-color:#ffe89d}@media(max-width:768px){.move-history{max-width:100%}.move-history-scroll{max-height:300px}}.material-balance{background:#fff;border:1px solid #ddd;border-radius:8px;padding:1rem;box-shadow:0 2px 4px #0000001a;width:100%;max-width:400px}.material-balance h3{margin:0 0 1rem;font-size:1.2rem;text-align:center;color:#333;border-bottom:2px solid #e0e0e0;padding-bottom:.5rem}.material-section{display:flex;flex-direction:column;gap:1rem}.material-player{display:flex;flex-direction:column;gap:.5rem}.material-header{display:flex;justify-content:space-between;align-items:center;font-weight:600;font-size:1rem}.white-material .material-label{color:#666}.black-material .material-label{color:#333}.material-value{font-size:1.1rem;color:#007bff;background:#e7f3ff;padding:.25rem .75rem;border-radius:4px}.material-pieces{display:flex;flex-wrap:wrap;gap:.75rem;padding:.5rem;background:#f8f9fa;border-radius:4px;min-height:40px;align-items:center}.piece-count{display:flex;align-items:center;gap:.25rem;font-size:1rem}.piece-symbol{font-size:1.5rem;line-height:1}.white-material .piece-symbol{color:#fff;text-shadow:-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000,1px 1px 0 #000,0 2px 2px rgba(0,0,0,.3)}.black-material .piece-symbol{color:#000;text-shadow:0 1px 2px rgba(0,0,0,.3)}.count-number{font-size:.9rem;color:#666;font-weight:500}.material-advantage{text-align:center;padding:.75rem;border-radius:4px;background:#f8f9fa}.advantage{font-size:1.1rem;font-weight:600;padding:.5rem 1rem;border-radius:4px;display:inline-block}.white-advantage{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.black-advantage{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.advantage.equal{background:#e7f3ff;color:#004085;border:1px solid #b8daff}@media(max-width:768px){.material-balance{max-width:100%}.material-balance h3{font-size:1rem}.material-header{font-size:.9rem}.material-value{font-size:1rem}.piece-symbol{font-size:1.25rem}.count-number{font-size:.85rem}.advantage{font-size:1rem}}@media(max-width:480px){.material-balance{padding:.75rem}.material-balance h3{font-size:.95rem;margin-bottom:.75rem}.material-pieces{gap:.5rem;padding:.4rem}.piece-symbol{font-size:1.1rem}}.captured-pieces{background-color:#fff;border:1px solid #ddd;border-radius:8px;padding:1rem;box-shadow:0 2px 4px #0000001a;min-width:250px;max-width:350px}.captured-pieces-title{margin:0 0 1rem;font-size:1.2rem;font-weight:700;text-align:center;color:#333;padding-bottom:.5rem;border-bottom:2px solid #e0e0e0}.captured-section{margin-bottom:1rem}.captured-section:last-child{margin-bottom:0}.captured-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;padding:.25rem 0}.captured-label{font-weight:600;font-size:1rem;color:#555}.captured-count{background-color:#6c757d;color:#fff;padding:.125rem .5rem;border-radius:12px;font-size:.875rem;font-weight:600;min-width:24px;text-align:center}.captured-display{background-color:#f8f9fa;border:1px solid #e0e0e0;border-radius:6px;padding:.75rem;min-height:3rem;display:flex;flex-wrap:wrap;gap:.25rem;align-items:center}.captured-piece{font-size:2rem;line-height:1;display:inline-block;-webkit-user-select:none;user-select:none}.captured-piece-white{color:#fff;text-shadow:-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000,1px 1px 0 #000,0 0 3px rgba(0,0,0,.5)}.captured-piece-black{color:#000;text-shadow:0 0 2px rgba(0,0,0,.3)}.captured-empty{color:#999;font-style:italic;font-size:.875rem}@media(max-width:768px){.captured-pieces{min-width:200px;max-width:100%;padding:.75rem}.captured-pieces-title{font-size:1.1rem}.captured-piece{font-size:1.75rem}.captured-label{font-size:.9rem}.captured-count{font-size:.8rem}}@media(max-width:480px){.captured-pieces{padding:.5rem}.captured-pieces-title{font-size:1rem;margin-bottom:.75rem}.captured-piece{font-size:1.5rem}.captured-display{padding:.5rem;min-height:2.5rem}}.evaluation-bar-container{background:#fff;border:1px solid #ddd;border-radius:8px;padding:1rem;box-shadow:0 2px 4px #0000001a;min-width:250px;max-width:350px}.evaluation-header{margin-bottom:1rem;text-align:center;border-bottom:1px solid #eee;padding-bottom:.5rem}.evaluation-header h3{margin:0;font-size:1.1rem;color:#333}.evaluation-bar-wrapper{display:flex;gap:1rem;align-items:center;margin-bottom:1rem}.evaluation-bar{position:relative;width:60px;height:300px;background:#2c2c2c;border:2px solid #333;border-radius:4px;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end}.evaluation-bar-white{width:100%;background:linear-gradient(to top,#f0f0f0,#fff);position:relative;display:flex;align-items:center;justify-content:center;transition:height .3s ease-in-out;min-height:0}.evaluation-center-line{position:absolute;top:50%;left:0;right:0;height:2px;background:#f39c12;z-index:10;box-shadow:0 0 4px #f39c1299}.evaluation-text{font-weight:700;font-size:.9rem;z-index:5}.white-text{color:#2c2c2c}.black-text{color:#fff}.evaluation-text-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-weight:700;font-size:.9rem;color:#f39c12;z-index:15;text-shadow:-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000,1px 1px 0 #000}.evaluation-labels{display:flex;flex-direction:column;justify-content:space-between;height:300px}.evaluation-label{font-weight:600;font-size:.9rem;padding:.25rem .5rem;border-radius:4px}.white-label{color:#2c2c2c;background:#f0f0f080}.black-label{color:#2c2c2c;background:#2c2c2c33}.evaluation-description{text-align:center;padding:.5rem;background:#f8f9fa;border-radius:4px;min-height:2rem;display:flex;align-items:center;justify-content:center}.eval-advantage{font-weight:600;font-size:.95rem}.white-advantage{color:#27ae60}.white-slight{color:#52c579}.equal{color:#7f8c8d}.black-slight{color:#e67e22}.black-advantage{color:#e74c3c}@media(max-width:768px){.evaluation-bar-container{min-width:200px;max-width:300px}.evaluation-bar,.evaluation-labels{height:250px}.evaluation-header h3{font-size:1rem}}@media(max-width:480px){.evaluation-bar-container{min-width:180px;max-width:250px}.evaluation-bar{width:50px;height:200px}.evaluation-labels{height:200px}.evaluation-text,.evaluation-text-center,.evaluation-label{font-size:.8rem}}.pgn-dialog-overlay{position:fixed;inset:0;background-color:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn .2s ease-in}.pgn-dialog{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000004d;max-width:600px;width:90%;max-height:80vh;display:flex;flex-direction:column;animation:slideIn .3s ease-out}.pgn-dialog-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:2px solid #e9ecef}.pgn-dialog-header h2{margin:0;font-size:1.5rem;color:#333}.pgn-dialog-close{background:none;border:none;font-size:1.5rem;color:#999;cursor:pointer;padding:.25rem .5rem;line-height:1;transition:color .2s}.pgn-dialog-close:hover{color:#333}.pgn-dialog-content{padding:1.5rem;overflow-y:auto;flex:1}.pgn-dialog-description{margin:0 0 1rem;color:#666;font-size:.95rem}.pgn-textarea{width:100%;border:2px solid #dee2e6;border-radius:8px;padding:1rem;font-family:Courier New,monospace;font-size:.9rem;resize:vertical;min-height:200px;box-sizing:border-box;margin-bottom:1rem}.pgn-textarea:focus{outline:none;border-color:#007bff}.pgn-textarea::placeholder{color:#adb5bd}.pgn-dialog-file-upload{margin-bottom:1rem;padding:1rem;background-color:#f8f9fa;border-radius:8px;display:flex;align-items:center;gap:1rem}.pgn-file-label{font-size:.9rem;color:#495057;white-space:nowrap}.pgn-file-input{flex:1;font-size:.9rem;cursor:pointer}.pgn-dialog-actions{display:flex;gap:1rem;justify-content:flex-end;flex-wrap:wrap}.pgn-button{padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.pgn-button:disabled{opacity:.5;cursor:not-allowed}.pgn-button-primary{background-color:#007bff;color:#fff}.pgn-button-primary:hover:not(:disabled){background-color:#0056b3;transform:translateY(-2px)}.pgn-button-primary:active:not(:disabled){background-color:#004085;transform:translateY(0)}.pgn-button-secondary{background-color:#28a745;color:#fff}.pgn-button-secondary:hover{background-color:#218838;transform:translateY(-2px)}.pgn-button-secondary:active{background-color:#1e7e34;transform:translateY(0)}.pgn-button-tertiary{background-color:#6c757d;color:#fff}.pgn-button-tertiary:hover{background-color:#5a6268;transform:translateY(-2px)}.pgn-button-tertiary:active{background-color:#545b62;transform:translateY(0)}@keyframes slideIn{0%{transform:translateY(-50px);opacity:0}to{transform:translateY(0);opacity:1}}@media(max-width:768px){.pgn-dialog{width:95%;max-height:90vh}.pgn-dialog-header h2{font-size:1.25rem}.pgn-dialog-actions{flex-direction:column}.pgn-button{width:100%}.pgn-dialog-file-upload{flex-direction:column;align-items:stretch}.pgn-file-label{white-space:normal}}@media(max-width:480px){.pgn-dialog-content{padding:1rem}.pgn-textarea{font-size:.85rem;min-height:150px}}.settings-overlay{position:fixed;inset:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-in-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.settings-panel{background:var(--card-bg, white);color:var(--text-primary);border-radius:12px;box-shadow:0 8px 32px var(--shadow-color, rgba(0, 0, 0, .3));max-width:500px;width:90%;max-height:80vh;display:flex;flex-direction:column;animation:slideIn .3s ease-out}@keyframes slideIn{0%{transform:translateY(-30px);opacity:0}to{transform:translateY(0);opacity:1}}.settings-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--border-color, #e0e0e0)}.settings-header h2{margin:0;font-size:1.5rem;color:var(--text-primary, #333)}.close-button{background:none;border:none;font-size:1.8rem;color:#666;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s,color .2s}.close-button:hover{background-color:#f0f0f0;color:#333}.settings-content{padding:1.5rem;overflow-y:auto;flex:1}.settings-section{margin-bottom:2rem}.settings-section:last-child{margin-bottom:0}.section-title{font-size:1.1rem;font-weight:600;color:#444;margin:0 0 1rem;padding-bottom:.5rem;border-bottom:2px solid #e0e0e0}.setting-item{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;border-bottom:1px solid #f0f0f0}.setting-item:last-child{border-bottom:none}.setting-label{font-size:.95rem;color:#555;font-weight:500;flex:1}.theme-select{padding:.5rem .75rem;font-size:.9rem;border:1px solid var(--border-color, #dee2e6);border-radius:6px;background-color:var(--input-bg, white);color:var(--text-primary, #333);cursor:pointer;transition:border-color .2s,background-color .2s;min-width:200px}.theme-select:hover{border-color:var(--button-bg, #007bff)}.theme-select:focus{outline:none;border-color:var(--button-bg, #007bff);box-shadow:0 0 0 3px #007bff1a}.theme-select option{background-color:var(--input-bg, white);color:var(--text-primary, #333)}.toggle-button{position:relative;width:50px;height:26px;background-color:#ccc;border:none;border-radius:13px;cursor:pointer;transition:background-color .3s;padding:0}.toggle-button:hover{background-color:#b8b8b8}.toggle-button.active{background-color:#28a745}.toggle-button.active:hover{background-color:#218838}.toggle-slider{position:absolute;top:3px;left:3px;width:20px;height:20px;background-color:#fff;border-radius:50%;transition:transform .3s;box-shadow:0 2px 4px #0003}.toggle-button.active .toggle-slider{transform:translate(24px)}.volume-control-inline{display:flex;align-items:center;gap:.75rem;flex:0 0 auto}.volume-slider-inline{width:120px;height:6px;-webkit-appearance:none;appearance:none;background:linear-gradient(to right,#28a745 0% calc(var(--slider-value, .5) * 100%),#d0d0d0 calc(var(--slider-value, .5) * 100%) 100%);border-radius:3px;outline:none;cursor:pointer;transition:background .15s ease-in-out}.volume-slider-inline::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#555;cursor:pointer;transition:all .15s ease-in-out}.volume-slider-inline::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#555;border:none;cursor:pointer;transition:all .15s ease-in-out}.volume-slider-inline:hover::-webkit-slider-thumb{background:#333;transform:scale(1.1)}.volume-slider-inline:hover::-moz-range-thumb{background:#333;transform:scale(1.1)}.volume-slider-inline:disabled{opacity:.5;cursor:not-allowed}.volume-slider-inline:disabled::-webkit-slider-thumb{cursor:not-allowed}.volume-slider-inline:disabled::-moz-range-thumb{cursor:not-allowed}.volume-percentage-inline{font-size:.85rem;color:#666;min-width:42px;text-align:right;font-weight:500}.settings-footer{padding:1rem 1.5rem;border-top:1px solid #e0e0e0;display:flex;justify-content:flex-end}.close-settings-button{padding:.6rem 1.5rem;font-size:1rem;font-weight:600;color:#fff;background-color:#007bff;border:none;border-radius:6px;cursor:pointer;transition:background-color .2s,transform .1s}.close-settings-button:hover{background-color:#0056b3;transform:translateY(-1px)}.close-settings-button:active{transform:translateY(0)}@media(max-width:768px){.settings-panel{max-width:95%}.settings-header{padding:1.25rem}.settings-header h2{font-size:1.3rem}.settings-content{padding:1.25rem}.section-title{font-size:1rem}.setting-label{font-size:.9rem}}@media(max-width:480px){.settings-panel{max-width:100%;border-radius:0;max-height:100vh}.settings-header{padding:1rem}.settings-header h2{font-size:1.2rem}.settings-content{padding:1rem}.setting-item{flex-direction:column;align-items:flex-start;gap:.75rem}.volume-control-inline{width:100%;justify-content:space-between}.volume-slider-inline{flex:1;max-width:150px}}.opening-explorer{background:var(--bg-color-secondary, white);border:1px solid var(--border-color, #ddd);border-radius:8px;padding:1rem;box-shadow:0 2px 4px var(--shadow-color, rgba(0, 0, 0, .1));min-width:250px;max-width:350px;margin:.5rem 0;transition:all .3s ease}.opening-header{margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:2px solid var(--border-color, #e0e0e0)}.opening-header h3{margin:0;font-size:1.1rem;color:var(--text-color-primary, #333);font-weight:600}.opening-content{display:flex;flex-direction:column;gap:.75rem}.opening-name-section{display:flex;flex-direction:column;gap:.25rem}.opening-label{font-size:.85rem;color:var(--text-color-secondary, #666);font-weight:500}.opening-name{font-size:1rem;color:var(--text-color-primary, #222);font-weight:600;padding:.5rem;background:var(--bg-color-tertiary, #f8f9fa);border-radius:4px;border-left:3px solid #2563eb}.book-moves-section{display:flex;flex-direction:column;gap:.5rem}.book-moves-label{font-size:.85rem;color:var(--text-color-secondary, #666);font-weight:500}.book-moves-list{display:flex;flex-direction:column;gap:.35rem;max-height:200px;overflow-y:auto;padding-right:.25rem}.book-moves-list::-webkit-scrollbar{width:6px}.book-moves-list::-webkit-scrollbar-track{background:var(--bg-color-tertiary, #f1f1f1);border-radius:3px}.book-moves-list::-webkit-scrollbar-thumb{background:var(--border-color, #888);border-radius:3px}.book-moves-list::-webkit-scrollbar-thumb:hover{background:#555}.book-move-item{display:flex;justify-content:space-between;align-items:center;padding:.4rem .6rem;background:var(--bg-color-tertiary, #f8f9fa);border-radius:4px;border:1px solid var(--border-color, #e0e0e0);transition:all .15s ease}.book-move-item:hover{background:var(--input-bg-color, #e9ecef);border-color:#2563eb;transform:translate(2px)}.book-move-notation{font-family:Courier New,Courier,monospace;font-size:.95rem;font-weight:600;color:var(--text-color-primary, #222)}.book-move-weight{font-size:.8rem;color:var(--text-color-secondary, #666);background:var(--bg-color-secondary, white);padding:.15rem .4rem;border-radius:3px;border:1px solid var(--border-color, #ddd);min-width:40px;text-align:center}.out-of-book{font-size:.95rem;color:var(--text-color-secondary, #666);font-style:italic;margin:0;padding:.5rem;background:var(--bg-color-tertiary, #f8f9fa);border-radius:4px;text-align:center}.out-of-book-desc{font-size:.8rem;color:var(--text-color-secondary, #999);margin:0;text-align:center}@media(max-width:768px){.opening-explorer{min-width:200px;max-width:100%;padding:.85rem}.opening-header h3{font-size:1rem}.opening-name,.book-move-notation{font-size:.9rem}.book-move-weight{font-size:.75rem;min-width:35px}}@media(max-width:480px){.opening-explorer{padding:.75rem}.opening-header h3{font-size:.95rem}.opening-name{font-size:.85rem;padding:.4rem}.book-moves-list{max-height:150px}.book-move-notation{font-size:.85rem}.book-move-weight{font-size:.7rem;min-width:32px;padding:.1rem .3rem}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.6}#root{width:100%;min-height:100vh}
