.chessboard-container{box-sizing:border-box;justify-content:center;align-items:center;width:100%;max-width:100%;padding:0;display:flex}.chessboard-container.mini{padding:0}.chessboard-container.mini .chessboard-wrapper{border-width:1px;max-width:100%}.chessboard-container.mobile .chessboard-wrapper{width:100%;max-width:100%}.chessboard-container.desktop .chessboard-wrapper{width:100%;max-width:600px}.chessboard-stack{flex-direction:column;align-items:stretch;width:100%;max-width:600px;display:flex}.chessboard-container.mini .chessboard-stack,.chessboard-container.mobile .chessboard-stack{max-width:100%}.board-row{display:contents}.chessboard-wrapper{aspect-ratio:1;box-sizing:border-box;background:#b58863;border:2px solid #333;border-radius:4px;grid-template-rows:repeat(8,1fr);grid-template-columns:repeat(8,1fr);width:100%;max-width:100%;display:grid;position:relative;overflow:hidden}.square{cursor:pointer;-webkit-user-select:none;user-select:none;aspect-ratio:1;box-sizing:border-box;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.square.light{background-color:#f0d9b5}.square.light .rank-label,.square.light .file-label{color:#b58863}.square.dark{background-color:#b58863}.square.dark .rank-label,.square.dark .file-label{color:#f0d9b5}.square.selected{box-shadow:inset 0 0 0 3px #7b9c6e;background-color:#7b9c6e!important}.square.valid-move:after{content:"";pointer-events:none;background:#00000040;border-radius:50%;width:30%;height:30%;position:absolute}.square.king-in-check{animation:.8s ease-in-out infinite alternate check-flash}.square.check-path-green{box-shadow:inset 0 0 10px #00ff0080;background-color:#00c80066!important}.square.check-path-red{box-shadow:inset 0 0 15px #ff0000b3;background-color:#c8000099!important}.square.pulse{animation:.6s ease-in-out infinite alternate pulse-path}.square .piece{justify-content:center;align-items:center;width:86%;height:86%;transition:transform .1s;display:flex}.square .piece:hover{transform:scale(1.05)}.square .piece-image{object-fit:contain;display:block;width:100%!important;height:100%!important}.square .rank-label{pointer-events:none;z-index:2;font-size:clamp(8px,1.8vw,12px);font-weight:700;line-height:1;display:none;position:absolute;top:1px;left:3px}.square .file-label{pointer-events:none;z-index:2;font-size:clamp(8px,1.8vw,12px);font-weight:700;line-height:1;display:none;position:absolute;bottom:1px;right:3px}.chessboard-container:not(.mini) .square .rank-label,.chessboard-container:not(.mini) .square .file-label{display:block}@keyframes check-flash{0%{background-color:#ff00004d;box-shadow:inset 0 0 10px #f003}to{background-color:#f00c;box-shadow:inset 0 0 20px #f009}}@keyframes pulse-path{0%{opacity:.75;box-shadow:inset 0 0 8px #00ff0040}to{opacity:1;box-shadow:inset 0 0 18px #00ff00d9}}.square.last-move{box-shadow:inset 0 0 0 100vmax #ffd50052}.square.pending-move{box-shadow:inset 0 0 0 4px #1f6feb}.square.valid-capture:after{background:0 0;border:4px solid #0000004d;width:88%;height:88%}.square:focus-visible{outline:3px solid var(--focus-color);outline-offset:-3px;z-index:3}.square .piece{position:relative}.square .piece-letter{text-align:center;pointer-events:none;border-radius:4px;min-width:34%;padding:0 3px;font-size:clamp(9px,2vw,15px);font-weight:800;line-height:1.3;position:absolute;bottom:0;left:0}.square .piece-letter.white{color:#000;background:#fff;border:1px solid #000}.square .piece-letter.black{color:#fff;background:#000;border:1px solid #fff}.square .square-coord{color:#fff;pointer-events:none;background:#000000b8;border-radius:3px;padding:1px 3px;font-size:clamp(8px,1.6vw,11px);font-weight:700;line-height:1.1;position:absolute;top:2px;right:2px}.keyboard-mode .square:focus-visible{outline-offset:-5px;outline-width:5px}.board-help{color:var(--text-color-light);margin:0 0 8px;font-size:.9rem}.board-cue{z-index:5;color:#fff;letter-spacing:.03em;pointer-events:none;background:#000c;border-radius:999px;padding:6px 16px;font-weight:800;animation:.25s ease-out board-cue-in;position:absolute;top:8px;left:50%;transform:translate(-50%)}.board-cue.strong{background:#c62828}@keyframes board-cue-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}.promotion-picker{z-index:10;color:#fff;background:#000000bf;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;inset:0}.promotion-picker .promotion-title{margin:0;font-size:1.15rem;font-weight:800}.promotion-picker .promotion-options{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.promotion-picker .promotion-option{color:#000;text-transform:capitalize;background:#f0d9b5;border:2px solid #fff;border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:8px 12px;font-weight:700;display:flex}.promotion-picker .promotion-option:hover,.promotion-picker .promotion-option:focus-visible{outline-offset:2px;background:#fff;outline:3px solid #ffd400}.promotion-picker .promotion-cancel{color:#fff;background:0 0;border:1px solid #fff;border-radius:8px;padding:6px 16px;font-weight:600}.confirm-move-bar{border:2px solid var(--primary);background:var(--card-bg);color:var(--text-color);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;padding:10px 12px;display:flex}.confirm-move-bar .confirm-move-text{flex:1;font-weight:700}.confirm-move-bar button{border-radius:8px;padding:6px 16px;font-weight:700}.confirm-move-bar .confirm-btn{border:1px solid var(--primary-dark);background:var(--primary-dark);color:#fff}.confirm-move-bar .cancel-btn{border:1px solid var(--border-color);color:var(--text-color);background:0 0}html.a11y-hc .confirm-move-bar .confirm-btn{background:var(--primary);border-color:var(--primary);color:var(--text-color-reverse)}html.a11y-board-hc .chessboard-wrapper{background:#000;border:3px solid #000}html.a11y-board-hc .square.light{background-color:#fff}html.a11y-board-hc .square.light .rank-label,html.a11y-board-hc .square.light .file-label{color:#000}html.a11y-board-hc .square.dark{background-color:#5b6b8c}html.a11y-board-hc .square.dark .rank-label,html.a11y-board-hc .square.dark .file-label{color:#fff}html.a11y-board-hc .square.selected{box-shadow:inset 0 0 0 4px #000;background-color:#ffd400!important}html.a11y-board-hc .square.last-move{box-shadow:inset 0 0 0 4px #ff7a00}html.a11y-board-hc .square.valid-move:after{background:#000;border:2px solid #fff}html.a11y-board-hc .square.valid-capture:after{background:0 0;border:5px solid #f05}html.a11y-board-hc .square .piece-image{filter:drop-shadow(0 0 1px #000)drop-shadow(0 0 1px #000)drop-shadow(0 0 1px #fff)}
.board-assistant{border:1px solid var(--border-color);background:var(--card-bg);width:100%;color:var(--text-color);border-radius:10px;margin-top:12px;padding:12px}.board-assistant .board-assistant-label{color:var(--header-color);margin-bottom:6px;font-weight:700;display:block}.board-assistant .board-assistant-row{gap:8px;display:flex}.board-assistant .board-assistant-row input{border:1px solid var(--border-color);background:var(--input-bg);min-width:0;color:var(--input-text-color);border-radius:8px;flex:1;padding:8px 12px;font-size:1rem}.board-assistant .board-assistant-row input::placeholder{color:var(--placeholder-color)}.board-assistant .board-assistant-row button{border:1px solid var(--primary-dark);background:var(--primary-dark);color:#fff;border-radius:8px;padding:8px 18px;font-weight:700}.board-assistant .board-assistant-reply{min-height:1.5em;color:var(--text-color-light);margin:8px 0 0;font-size:.9rem}html.a11y-hc .board-assistant .board-assistant-row button{background:var(--primary);border-color:var(--primary);color:var(--text-color-reverse)}
