/* Shared cosmetic surface: the store and live engines use these same rules. */
.bq-board-theme { --bqt-texture:repeating-linear-gradient(125deg,#fff0 0 15px,#fff1 16px,#0001 18px,#fff0 20px 36px); --bqt-gloss:radial-gradient(ellipse at 30% 20%,#fffc,transparent 40%); }
.bq-board-theme[data-board-material="wood"] { --bqt-texture:repeating-linear-gradient(94deg,#fff0 0 5px,#4e220817 6px,#fff1 8px,#fff0 10px 17px); }
.bq-board-theme[data-board-material="crystal"] { --bqt-texture:conic-gradient(from 25deg at 38% 32%,#fff0,#ffffff26 15%,#fff0 28%,#0001 40%,#fff0 60%,#ffffff20 78%,#fff0); --bqt-gloss:linear-gradient(125deg,#fffd,transparent 30%,#fff5 32%,transparent 50%,#fff4 72%,transparent 73%); }
.bq-board-theme[data-board-material="metal"] { --bqt-texture:linear-gradient(125deg,#fff3,#fff0 25%,#0001 45%,#fff2 60%,#fff0 75%); }
.bq-board-theme[data-board-material="neon"] { --bqt-texture:repeating-linear-gradient(0deg,#fff0 0 4px,#a2edff16 5px,#fff0 6px); --bqt-gloss:linear-gradient(135deg,#fff9,transparent 30%,#fff2 70%); }
/* The game determines the shape; the surrounding artwork follows it. */
.bq-board-scene { position:relative; display:grid; place-items:center; width:100%; min-width:0; aspect-ratio:var(--bqt-scene-ratio,1); container-type:inline-size; background:var(--bqt-surface); box-shadow:0 12px 30px #0008; }
.bq-board-theme .bq-board-scene > .bq-themed-board { width:72cqw; min-width:0; max-width:none; height:auto; margin:0; border:0; border-image:none; position:relative; z-index:1; isolation:isolate; outline:0; background:transparent; box-shadow:none; }
.bq-board-scene__art { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.bq-game-arena.bq-board-theme .bq-themed-board { container-type:inline-size; }
.bq-game-arena.bq-board-theme :is(.bq-xiangqi-game__point,.bq-janggi-game__point) { min-width:0; width:10%; }
.bq-game-arena.bq-board-theme :is(.bq-xiangqi-game__piece,.bq-janggi-game__piece) { font-size:clamp(10px,5cqw,32px); }
.bq-board-theme :is(.bq-turkish-draughts__board,.bq-reversi__board) { padding:0; }
.bq-board-theme :is(.bq-janggi-game__board,.bq-alquerque__board,.bq-reversi__board)::before,
.bq-board-theme :is(.bq-janggi-game__board,.bq-alquerque__board,.bq-reversi__board)::after,
.bq-board-theme .bq-alquerque__ornament { display:none; }
.bq-board-theme .bq-chess-game__square { background:var(--bqt-texture),var(--bqt-light); }
.bq-board-theme .bq-chess-game__square:nth-child(16n + 1),
.bq-board-theme .bq-chess-game__square:nth-child(16n + 3),
.bq-board-theme .bq-chess-game__square:nth-child(16n + 5),
.bq-board-theme .bq-chess-game__square:nth-child(16n + 7),
.bq-board-theme .bq-chess-game__square:nth-child(16n + 10),
.bq-board-theme .bq-chess-game__square:nth-child(16n + 12),
.bq-board-theme .bq-chess-game__square:nth-child(16n + 14),
.bq-board-theme .bq-chess-game__square:nth-child(16n + 16) { background:var(--bqt-texture),var(--bqt-dark); }
.bq-board-theme .bq-international-draughts__square { background:var(--bqt-texture),var(--bqt-light); }
.bq-board-theme .bq-international-draughts__square:nth-child(20n + 2),
.bq-board-theme .bq-international-draughts__square:nth-child(20n + 4),
.bq-board-theme .bq-international-draughts__square:nth-child(20n + 6),
.bq-board-theme .bq-international-draughts__square:nth-child(20n + 8),
.bq-board-theme .bq-international-draughts__square:nth-child(20n + 10),
.bq-board-theme .bq-international-draughts__square:nth-child(20n + 11),
.bq-board-theme .bq-international-draughts__square:nth-child(20n + 13),
.bq-board-theme .bq-international-draughts__square:nth-child(20n + 15),
.bq-board-theme .bq-international-draughts__square:nth-child(20n + 17),
.bq-board-theme .bq-international-draughts__square:nth-child(20n + 19) { background:var(--bqt-texture),var(--bqt-dark); }
.bq-board-theme .bq-turkish-draughts__square { background:var(--bqt-texture),var(--bqt-light); }
.bq-board-theme .bq-turkish-draughts__square:nth-child(16n + 2),
.bq-board-theme .bq-turkish-draughts__square:nth-child(16n + 4),
.bq-board-theme .bq-turkish-draughts__square:nth-child(16n + 6),
.bq-board-theme .bq-turkish-draughts__square:nth-child(16n + 8),
.bq-board-theme .bq-turkish-draughts__square:nth-child(16n + 9),
.bq-board-theme .bq-turkish-draughts__square:nth-child(16n + 11),
.bq-board-theme .bq-turkish-draughts__square:nth-child(16n + 13),
.bq-board-theme .bq-turkish-draughts__square:nth-child(16n + 15) { background:var(--bqt-texture),var(--bqt-dark); }

.bq-board-theme :is(.bq-shogi-game__square,.bq-makruk-game__square,.bq-sittuyin-game__square,.bq-reversi__cell) { background:var(--bqt-texture),var(--bqt-surface); border:0 solid var(--bqt-line); border-right-width:1px; border-bottom-width:1px; }
.bq-board-theme :is(.bq-xiangqi-game__field,.bq-janggi-game__field) { background:repeating-linear-gradient(90deg,var(--bqt-line) 0 1px,transparent 1px 12.5%),repeating-linear-gradient(180deg,var(--bqt-line) 0 1px,transparent 1px 11.111%); box-shadow:inset -1px -1px var(--bqt-line); }
.bq-board-theme :is(.bq-xiangqi-game__palace,.bq-janggi-game__palace) { background:linear-gradient(34deg,transparent calc(50% - .8px),var(--bqt-line) calc(50% - .5px) calc(50% + .5px),transparent calc(50% + .8px)),linear-gradient(-34deg,transparent calc(50% - .8px),var(--bqt-line) calc(50% - .5px) calc(50% + .5px),transparent calc(50% + .8px)); }
.bq-board-theme .bq-xiangqi-game__river { background:var(--bqt-surface); border-color:var(--bqt-line); color:var(--bqt-line); text-shadow:none; }
.bq-board-theme .bq-alquerque__lines line { stroke:var(--bqt-line); }
.bq-board-theme .bq-alquerque__point::before { background:var(--bqt-line); border-color:var(--bqt-rim); }
.bq-board-theme :is(.bq-international-draughts__piece,.bq-international-draughts__captured-piece,.bq-turkish-draughts__piece,.bq-alquerque__piece,.bq-reversi__disc,.bq-xiangqi-game__piece,.bq-xiangqi-game__captured-piece,.bq-janggi-game__piece,.bq-janggi-game__captured-piece,.bq-makruk-game__piece,.bq-makruk-game__captured-piece,.bq-shogi-game__piece,.bq-shogi-game__hand-piece,.bq-go__piece,.bq-fanorona__piece) { --bqt-piece:var(--bqt-white); --bqt-ink:#18232d; background:var(--bqt-gloss),var(--bqt-texture),var(--bqt-piece); border-color:var(--bqt-rim); color:var(--bqt-ink); text-shadow:0 1px #ffffff25; box-shadow:inset 0 0 0 1px #ffffff70,inset 0 -4px 5px #0005,0 3px 4px #0009; }
.bq-board-theme :is(.bq-international-draughts__piece,.bq-international-draughts__captured-piece,.bq-turkish-draughts__piece,.bq-alquerque__piece,.bq-reversi__disc,.bq-xiangqi-game__piece,.bq-xiangqi-game__captured-piece,.bq-janggi-game__piece,.bq-janggi-game__captured-piece,.bq-makruk-game__piece,.bq-makruk-game__captured-piece,.bq-shogi-game__piece,.bq-shogi-game__hand-piece,.bq-go__piece,.bq-fanorona__piece):is([data-color="black"],[data-color="gote"],[data-color="blue"],.is-black) { --bqt-piece:var(--bqt-black); --bqt-ink:#fff3d8; }

.bq-board-theme :is(.bq-xiangqi-game__piece,.bq-xiangqi-game__captured-piece,.bq-janggi-game__piece,.bq-janggi-game__captured-piece)[data-color="red"] { color:#a41426; }
.bq-board-theme :is(.bq-janggi-game__piece,.bq-janggi-game__captured-piece)[data-color="blue"] { color:#b9e3ff; }
.bq-board-theme :is(.bq-shogi-game__piece,.bq-shogi-game__hand-piece) { clip-path:polygon(50% 0,93% 23%,100% 100%,0 100%,7% 23%); }
.bq-board-theme .bq-shogi-game__piece[data-promoted="true"] { color:#ed3e43; text-shadow:0 0 2px #fff; }
.bq-board-theme :is(.bq-shogi-game__hand-piece span,.bq-shogi-game__hand-piece b) { color:inherit; }
.bq-board-theme :is(.bq-international-draughts__piece,.bq-international-draughts__captured-piece)::after { color:var(--bqt-ink); text-shadow:none; }
.bq-board-theme .bq-international-draughts__piece::after { font-size:clamp(5px,4cqw,24px); }
.bq-board-theme .bq-international-draughts__piece[data-king="true"]::after { font-size:clamp(6px,4.8cqw,28px); }
.bq-board-theme :is(.bq-international-draughts__piece,.bq-international-draughts__captured-piece)::before { border-color:var(--bqt-rim); background:none; }
.bq-board-theme :is(.bq-chess-game__piece,.bq-chess-game__captured-piece,.bq-sittuyin-game__piece,.bq-sittuyin-game__reserve-piece,.bq-sittuyin-game__captured-piece) { filter:var(--bqt-tint) drop-shadow(0 3px 2px #000a); }
.bq-board-theme :is(.is-selected,.is-check) :is(.bq-chess-game__piece,.bq-sittuyin-game__piece) { filter:var(--bqt-tint) brightness(1.15) drop-shadow(0 0 4px #ffdf73); }
/* Make last-move markers independent of the cosmetic square background. */
.bq-board-theme :is(.is-last,.is-last-from,.is-last-to) { box-shadow:inset 0 0 0 2px #f7d964; }
.bq-board-theme :is(.is-selected,.is-check) { outline-offset:-3px; }
.bq-board-theme .is-selected { outline:3px solid #ffe278; }
.bq-board-theme .is-check { outline:3px solid #ff5847; }

.bq-board-preview { min-width:0; }
.bq-board-preview__picker { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:0 0 12px; color:#bad7e5; font-size:.85rem; }
.bq-board-preview__picker select { max-width:75%; min-height:44px; padding:8px 12px; border:1px solid #396c85; border-radius:8px; background:#082337; color:#fff1cd; font:inherit; }
.bq-board-preview__surface { container-type:inline-size; display:grid; place-items:center; width:100%; min-width:0; padding:6px; border:1px solid #2d5267; border-radius:10px; background:#031426; }
.bq-board-preview__surface .bq-themed-board { animation:none; }
.bq-board-preview__surface :is(.bq-xiangqi-game__piece,.bq-janggi-game__piece,.bq-shogi-game__piece,.bq-makruk-game__piece) { font-size:clamp(8px,4.6cqw,24px); }
.bq-board-preview__surface .bq-sittuyin-game__piece { font-size:0; }
.bq-board-preview__surface :is(.bq-xiangqi-game__point,.bq-janggi-game__point) { min-width:0; }
.bq-board-preview__note { margin:10px 0 0; color:#9fc1d2; font-size:.78rem; text-align:center; }
.bq-theme-preview-lines { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; stroke:var(--bqt-line); stroke-width:.45; }
.bq-board-preview__surface :is(.bq-go__board,.bq-fanorona__board) { position:relative; aspect-ratio:1; }
.bq-board-preview__surface .bq-fanorona__board { aspect-ratio:9/5; }
.bq-board-preview__surface :is(.bq-go__point,.bq-fanorona__point) { position:absolute; display:grid; place-items:center; width:10%; aspect-ratio:1; transform:translate(-50%,-50%); }
.bq-board-preview__surface :is(.bq-go__piece,.bq-fanorona__piece) { display:block; width:80%; aspect-ratio:1; border-radius:50%; border:1px solid var(--bqt-rim); }
.bq-board-preview__surface .bq-fanorona__piece { width:64%; }
/* Older black-piece shorthand resets sprite sizing; keep both armies contained. */
.bq-board-theme :is(.bq-sittuyin-game__piece,.bq-sittuyin-game__reserve-piece,.bq-sittuyin-game__captured-piece)[data-color] { background-size:contain; background-position:center; background-repeat:no-repeat; }
/* Keep the complete board above the sticky buying controls on short desktops. */
.bq-board-preview__surface { max-width:min(100%,max(240px,calc((100dvh - 350px) * .9))); margin-inline:auto; }
/* Reserve space for controls: scrolling the board preview never puts it under Buy. */
.bq-store-fitting[data-preview-family="board"][open] { display:grid; grid-template-rows:auto minmax(0,1fr) auto; height:min(860px,calc(100dvh - 40px)); overflow:hidden; }
.bq-store-fitting[data-preview-family="board"] > :is(header,footer) { position:static; }
.bq-store-fitting[data-preview-family="board"] .bq-store-fitting__layout { min-height:0; overflow-y:auto; overscroll-behavior:contain; }
@media(max-width:600px) {
  .bq-store-fitting[data-preview-family="board"][open] { height:calc(100dvh - 24px); }
  .bq-store-fitting[data-preview-family="board"] .bq-store-fitting__layout { gap:14px; padding:14px 16px; align-content:start; }
  .bq-store-fitting[data-preview-family="board"] .bq-board-preview__surface { max-width:min(100%,max(200px,calc(100dvh - 550px))); }
  .bq-store-fitting[data-preview-family="board"] .bq-store-fitting__details { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:6px 10px; align-items:center; }
  .bq-store-fitting[data-preview-family="board"] .bq-store-fitting__details > small { grid-column:1/-1; }
  .bq-store-fitting[data-preview-family="board"] .bq-store-fitting__details h3 { margin:0; font-size:1.15rem; }
  .bq-store-fitting[data-preview-family="board"] .bq-store-fitting__price { margin:0; font-size:1.1rem; }
  .bq-store-fitting[data-preview-family="board"] .bq-store-fitting__details p:first-of-type { display:none; }
  .bq-store-fitting[data-preview-family="board"] .bq-store-fitting__details p:last-child { grid-column:1/-1; margin:0; font-size:.75rem; }
}

/* The settings trigger lives in the shared match toolbar, not on the player card. */
.bq-game-settings { width:min(420px,calc(100% - 24px)); max-height:calc(100dvh - 24px); padding:20px; border:1px solid #43879e; border-radius:16px; background:#071b2d; color:#d4e9ef; overflow-y:auto; overscroll-behavior:contain; }
.bq-game-settings::backdrop { background:#020914bb; }
.bq-game-settings > header { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; }
.bq-game-settings h2 { margin:0; font:inherit; font-size:1rem; font-weight:700; }
.bq-game-settings header button { flex:none; width:44px; height:44px; border:1px solid #43879e; border-radius:8px; background:#102d43; color:#d9f6ff; font-size:24px; cursor:pointer; }
.bq-game-settings__picker { display:grid; gap:8px; font-size:.9rem; margin-bottom:16px; }
.bq-game-settings__picker select { width:100%; min-width:0; min-height:44px; border:1px solid #43879e; border-radius:8px; background:#102d43; color:#fff1ce; padding:8px; font:inherit; font-size:16px; }
.bq-game-settings .bq-board-preview__surface { max-width:260px; }
.bq-game-settings [role="status"] { min-height:1.5em; margin:14px 0 0; color:#a4e4db; font-size:.85rem; }

/* The canvas is the complete opaque scene, including the playing floor.
   Native elements supply only pieces, rules and interaction indicators. */
.bq-board-theme .bq-board-scene > .bq-themed-board::after { display:none; }
.bq-board-theme .bq-board-scene :is(.bq-chess-game__square,.bq-international-draughts__square,.bq-turkish-draughts__square,.bq-shogi-game__square,.bq-makruk-game__square,.bq-sittuyin-game__square,.bq-reversi__cell) { background:transparent; }
.bq-board-theme .bq-board-scene .bq-xiangqi-game__river { background:transparent; }
.bq-board-theme .bq-board-scene .bq-xiangqi-game__field { background:repeating-linear-gradient(180deg,var(--bqt-line) 0 1px,transparent 1px 11.111%); }
.bq-board-theme .bq-board-scene .bq-xiangqi-game__field::before { inset:0; border:0; background:repeating-linear-gradient(90deg,var(--bqt-line) 0 1px,transparent 1px 12.5%); mask-image:linear-gradient(#000 0 44.444%,transparent 44.444% 55.556%,#000 55.556%); }
.bq-board-theme .bq-board-scene .bq-xiangqi-game__field::after { display:none; }

.bq-board-theme .bq-board-scene > :is(.bq-xiangqi-game__board,.bq-makruk-game__board,.bq-sittuyin-game__board,.bq-international-draughts__board)::before { display:none; }
.bq-board-theme .bq-board-scene :is(.bq-chess-game__square,.bq-international-draughts__square,.bq-turkish-draughts__square)::before { display:none; }
