.app{flex-direction:column;min-height:100vh;display:flex}.app-header{border-bottom:1px solid var(--border);background:var(--bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);justify-content:center;align-items:center;gap:1rem;padding:.75rem 1rem;display:flex;position:relative}.app-header h1{color:var(--text);letter-spacing:-.01em;margin:0;font-size:1.5rem;font-weight:600}@media (width>=901px){.app-header h1{font-size:1.65rem}}.settings-toggle-btn{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:8px;padding:.35rem .7rem;font-size:.8rem;transition:background .15s,border-color .15s;position:absolute;right:1rem}.piece-set-badge{background:var(--accent);color:#fff;text-transform:uppercase;letter-spacing:.08em;border-radius:4px;padding:2px 8px;font-size:.65rem;font-weight:600;line-height:1.6;position:absolute;left:1rem}.app-main{flex:1;justify-content:center;padding:1.5rem 1rem;display:flex}.board{border:2px solid var(--border);border-radius:4px;grid-template-rows:repeat(8,1fr);grid-template-columns:repeat(8,1fr);width:min(60vh,60vw,480px);height:min(60vh,60vw,480px);transition:box-shadow .2s;display:grid;overflow:hidden;box-shadow:0 4px 20px #0000001f}.board:hover{box-shadow:0 6px 24px #00000026}.theme-classic .square-light{background-color:#f0d9b5}.theme-classic .square-dark{background-color:#b58863}.theme-marine .square-light{background-color:#e8edf3}.theme-marine .square-dark{background-color:#4a7a9c}.theme-ember .square-light{background-color:#f7e4c4}.theme-ember .square-dark{background-color:#b85a30}.theme-forest .square-light{background-color:#dce3b7}.theme-forest .square-dark{background-color:#3a6b3a}.theme-midnight .square-light{background-color:#c8ccd0}.theme-midnight .square-dark{background-color:#2c3a50}.square{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-size:2.2rem;line-height:1;display:flex;position:relative}.square:focus-visible{outline:2px solid var(--accent);outline-offset:-3px;z-index:2}.square:focus:not(:focus-visible){outline:none}.square-selected{background-color:#f6d55c!important}.square-dark.square-selected{background-color:#d4a843!important}.label-rank,.label-file{color:#0006;pointer-events:none;font-size:.6rem;font-weight:500;position:absolute}.label-rank{top:2px;left:3px}.label-file{bottom:2px;right:3px}.square-dark .label-rank,.square-dark .label-file{color:#ffffff80}@keyframes piece-appear{0%{opacity:.1;transform:scale(.6)translateY(-8px)}to{opacity:1;transform:scale(1)translateY(0)}}.piece{pointer-events:none;z-index:1;line-height:1;transition:transform .15s;animation:.2s ease-out piece-appear}.piece:hover{transform:scale(1.08)}@media (prefers-reduced-motion:reduce){.piece{transition:none;animation:none}.piece:hover{transform:none}}.piece-set-unicode.piece-white,.piece-set-unicode.piece-black{color:var(--text);text-shadow:0 1px 2px #00000026}.piece-set-symbols.piece-white{color:#c8a84e;text-shadow:0 1px 2px #00000026}.piece-set-symbols.piece-black{color:#8b6914;text-shadow:0 1px 2px #00000026;font-weight:700}.piece-set-outlined.piece-white{-webkit-text-stroke:1px #0000004d;color:#0000;text-shadow:none}.piece-set-outlined.piece-black{-webkit-text-stroke:1px #00000080;color:#0000;text-shadow:none}.piece-set-merida.piece-white{color:#2a2a2a;text-shadow:0 1px 3px #0003,0 0 0 1px #0000000d;font-size:1.15em;font-weight:700}.piece-set-merida.piece-black{color:#d4d4d4;text-shadow:0 1px 3px #0000004d,0 0 3px #0000001a;font-size:1.15em;font-weight:700}.legal-move-dot{z-index:0;pointer-events:none;background-color:#0078008c;border-radius:50%;width:14px;height:14px;transition:transform .1s,background-color .1s;position:absolute}.square:hover .legal-move-dot{background-color:#00c80099;transform:scale(1.3)}@keyframes illegal-flash{0%{background-color:#c832324d}to{background-color:#0000}}.square-illegal{animation:.3s ease-out illegal-flash}@keyframes capture-flash{0%{background-color:#c8960040}to{background-color:#0000}}.square-capture{animation:.35s ease-out capture-flash}.captured-pieces{-webkit-backdrop-filter:blur(12px);background:#faf8f0d9;border:1px solid #ffffff4d;border-radius:8px;width:100%;max-width:min(60vh,60vw,480px);margin-bottom:.35rem;padding:.35rem .6rem;box-shadow:0 4px 16px #0000000f,0 1px 3px #0000000a}.captured-row{align-items:center;gap:.35rem;min-height:1.5rem;display:flex}.captured-label{color:var(--text-muted);white-space:nowrap;min-width:5em;font-size:.7rem;font-weight:500}.captured-pieces-list{flex-wrap:wrap;gap:.1rem;display:flex}.captured-piece{font-size:1rem;line-height:1.2}.captured-piece-white{color:#555;text-shadow:0 1px 1px #0000001a}.captured-piece-black{color:#222}.captured-empty{color:var(--text-muted);font-size:.8rem}.game-layout{align-items:flex-start;gap:1.5rem;width:100%;max-width:900px;display:flex}.board-section{flex-direction:column;align-items:center;gap:.5rem;display:flex}.sidebar{flex-direction:column;flex:1;gap:1rem;min-width:220px;max-width:300px;display:flex}.status-bar{-webkit-backdrop-filter:blur(12px);background:#faf8f0d9;border:1px solid #ffffff4d;border-radius:8px;flex-direction:column;align-items:center;gap:.25rem;width:100%;max-width:min(60vh,60vw,480px);padding:.5rem 1rem;display:flex;box-shadow:0 4px 16px #0000000f,0 1px 3px #0000000a}.status-mode{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.status-text{color:var(--text);font-size:1rem;font-weight:500}.status-fen{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:.7rem;overflow:hidden}.status-error{color:#c0392b;cursor:help;font-size:.75rem}.thinking-dots:after{content:"";animation:1.5s steps(4,end) infinite thinking-dots}@keyframes thinking-dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}to{content:""}}.move-history{-webkit-backdrop-filter:blur(12px);background:#faf8f0d9;border:1px solid #ffffff4d;border-radius:8px;flex-direction:column;flex:1;padding:.75rem;display:flex;box-shadow:0 4px 16px #0000000f,0 1px 3px #0000000a}.move-history-title{color:var(--text);margin:0 0 .5rem;font-size:.9rem;font-weight:600}.move-history-list{max-height:300px;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:.9rem;line-height:1.5;overflow-y:auto}.move-history-empty{color:var(--text-muted);margin:0;font-family:inherit;font-style:italic}.move-row{border-radius:3px;gap:.5rem;padding:2px 0;transition:background .1s;display:flex}.move-row:hover{background:#5a7d5a14}.move-row-active{background:#5a7d5a1f}.move-number{color:var(--text-muted);text-align:right;min-width:2.2em;font-size:.95em}.move-white,.move-black{cursor:pointer;border-radius:2px;min-width:3.5em;padding:0 2px;transition:background .1s}.move-white:hover,.move-black:hover{background:#5a7d5a26}.move-current{background:#f6d55c4d;font-weight:600}.review-controls{border-top:1px solid var(--border);align-items:center;gap:.4rem;margin-top:.5rem;padding-top:.5rem;display:flex}.review-indicator{background:#5a7d5a1a;border-radius:6px;justify-content:space-between;align-items:center;margin-bottom:.4rem;padding:.3rem .5rem;font-size:.8rem;display:flex}.review-label{color:var(--accent);font-weight:500}.btn-review-nav{min-width:2.2rem}.game-controls{-webkit-backdrop-filter:blur(12px);background:#faf8f0d9;border:1px solid #ffffff4d;border-radius:8px;flex-direction:column;gap:.5rem;padding:.75rem;display:flex;box-shadow:0 4px 16px #0000000f,0 1px 3px #0000000a}.btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.5rem 1rem;font-size:.85rem;font-weight:500;transition:background .15s,opacity .15s}.btn:hover{opacity:.9}.btn:active{opacity:.8}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-sm{padding:.35rem .75rem;font-size:.8rem}.btn-secondary{background:var(--bg-alt);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--border)}.btn-danger-outline{color:#c0392b;background:0 0;border:1px solid #c0392b}.btn-danger-outline:hover:not(:disabled){color:#fff;background:#c0392b}.btn-cancel{background:var(--bg-alt);color:var(--text);border:1px solid var(--border)}.btn-danger{color:#fff;background:#c0392b;border:none}.btn-review{background:var(--accent-light);color:#fff;border:none;font-size:.75rem}.fen-import-area{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.fen-input{border:1px solid var(--border);background:var(--bg);min-width:150px;color:var(--text);border-radius:6px;flex:1;padding:.4rem .6rem;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:.8rem}.fen-input:focus{border-color:var(--accent);outline:none}.fen-error{color:#c0392b;width:100%;margin:0;font-size:.75rem}.confirm-overlay{-webkit-backdrop-filter:blur(4px);z-index:150;background:#0000004d;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-dialog{background:var(--bg);border:1px solid var(--border);text-align:center;border-radius:10px;width:90%;max-width:360px;padding:1.5rem;box-shadow:0 4px 24px #0003}.confirm-title{color:var(--text);margin:0 0 .5rem;font-size:1.1rem}.confirm-message{color:var(--text-muted);margin:0 0 1.25rem;font-size:.9rem;line-height:1.4}.confirm-actions{justify-content:center;gap:.75rem;display:flex}.promotion-overlay{-webkit-backdrop-filter:blur(4px);z-index:100;background:#0000004d;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.promotion-dialog{background:var(--bg);border:1px solid var(--border);text-align:center;border-radius:10px;padding:1.5rem;box-shadow:0 4px 24px #0003}.promotion-title{color:var(--text);margin:0 0 1rem;font-size:1rem}.promotion-choices{justify-content:center;gap:.75rem;display:flex}.promotion-btn{border:2px solid var(--border);background:var(--bg-alt);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;width:56px;height:56px;font-size:2rem;transition:border-color .15s,background .15s;display:flex}.promotion-btn:hover{border-color:var(--accent);background:var(--bg)}.settings-toggle{cursor:pointer;align-items:center;gap:.5rem;display:flex}.settings-toggle input[type=checkbox]{cursor:pointer;width:1rem;height:1rem}.settings-toggle-label{color:var(--text-muted);font-size:.85rem}.board-computer-thinking{will-change:transform}@media (width>=641px) and (width<=900px){.game-layout{gap:.75rem}.board{width:min(50vh,45vw,400px);height:min(50vh,45vw,400px)}.sidebar{min-width:180px;max-width:220px}.status-bar,.captured-pieces{max-width:min(50vh,45vw,400px)}}@media (width<=640px){.game-layout{flex-direction:column;align-items:center}.sidebar{width:100%;min-width:0;max-width:100%}.board{width:min(92vw,400px);height:min(92vw,400px)}.square{font-size:1.6rem}.status-bar{max-width:100%}.captured-pieces{order:1;max-width:100%;margin-bottom:.25rem}.board-section{flex-direction:column}.board-section .captured-pieces:first-child{order:1}.btn{min-height:44px;font-size:.95rem}.btn-sm{min-height:36px;font-size:.85rem}.settings-toggle-btn{padding:.5rem .85rem;font-size:.9rem}.settings-panel{width:100vw;max-width:100vw}.move-history-list{max-height:180px}.game-controls .btn{width:100%}.settings-panel{border-left:none;border-top:1px solid var(--border);height:auto;max-height:85vh;animation:.25s ease-out slideUp;top:auto;bottom:0}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.settings-overlay{background:#0006}}.settings-overlay{z-index:200;background:#00000059;position:fixed;inset:0}.settings-panel{background:var(--bg);border-left:1px solid var(--border);z-index:201;flex-direction:column;width:320px;max-width:90vw;height:100vh;animation:.2s ease-out slideIn;display:flex;position:fixed;top:0;right:0;box-shadow:-4px 0 20px #0000001a}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.settings-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.settings-title{color:var(--text);margin:0;font-size:1.1rem;font-weight:600}.settings-close-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.25rem;font-size:1.2rem;line-height:1;transition:color .15s,background .15s}.settings-close-btn:hover{color:var(--text);background:var(--bg-alt)}.settings-body{flex-direction:column;flex:1;gap:1.25rem;padding:1.25rem;display:flex;overflow-y:auto}.settings-field{flex-direction:column;gap:.4rem;display:flex}.settings-label{color:var(--text);font-size:.85rem;font-weight:600}.settings-select{border:1px solid var(--border);background:var(--bg-alt);color:var(--text);cursor:pointer;border-radius:6px;padding:.5rem .75rem;font-size:.9rem;transition:border-color .15s}.settings-select:focus{border-color:var(--accent);outline:none}.settings-select:hover{border-color:var(--accent-light)}.settings-disclaimer{color:var(--text-muted);margin:0;font-size:.72rem;font-style:italic;line-height:1.4}.settings-toggle-btn{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:.4rem;padding:.4rem .75rem;font-size:.85rem;transition:background .15s,border-color .15s;display:flex}.settings-toggle-btn:hover{background:var(--bg-alt);border-color:var(--accent-light)}:root{--bg:#faf8f0eb;--bg-alt:#f0ede1e0;--text:#2c3e2d;--text-muted:#7a8b7a;--border:#c4bb9e;--accent:#5a7d5a;--accent-light:#7a9d7a}*,:before,:after{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{color:var(--text);background-image:url(/assets/carpet-texture-C_OWAVkt.png);background-position:50%;background-repeat:no-repeat;background-size:cover;background-attachment:fixed;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif}#root{min-height:100vh}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.skip-link{background:var(--accent);color:#fff;z-index:1000;padding:8px 12px;font-size:.9rem;font-weight:500;text-decoration:none;transition:top .2s;position:absolute;top:-40px;left:0}.skip-link:focus{top:0}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
