.puzzle-workspace { max-width: 1380px; margin: 0 auto; padding: 20px 24px 32px; }
    .puzzle-heading { display:flex; justify-content:space-between; align-items:end; gap:24px; margin-bottom:14px; }
    .puzzle-heading h1 { margin:.1rem 0 0; font-size:clamp(1.6rem,3vw,2.35rem); }
    .puzzle-profile { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; }
    .puzzle-stat { min-width:95px; padding:9px 12px; border:1px solid #dce3ed; border-radius:10px; background:#fff; text-align:center; }
    .puzzle-stat b { display:block; font-size:1.08rem; color:#182033; }
    .puzzle-stat span { color:#68758a; font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }
    .puzzle-app { display:grid; grid-template-columns:minmax(430px,680px) minmax(320px,1fr); gap:18px; align-items:start; }
    .puzzle-board-card,.puzzle-side-card { border:1px solid #d6dee9; border-radius:14px; background:#fff; box-shadow:0 8px 26px rgba(15,23,42,.07); overflow:hidden; }
    .puzzle-board-wrap { position:relative; width:min(100%,680px); margin:0 auto; container-type:inline-size; }
    .puzzle-board { display:grid; grid-template-columns:repeat(8,minmax(0,1fr)); width:100%; aspect-ratio:1; border:2px solid #243047; user-select:none; touch-action:none; }
    .puzzle-square { position:relative; display:grid; place-items:center; min-width:0; min-height:0; aspect-ratio:1; overflow:hidden; }
    .puzzle-square.is-light { background:#eeeecf; }
    .puzzle-square.is-dark { background:#789b59; }
    .puzzle-square.is-legal-target { box-shadow:inset 0 0 0 5px #f2c21a; }
    .puzzle-square.is-last { box-shadow:inset 0 0 0 999px rgba(238,224,72,.33); }
    .puzzle-square.is-wrong { box-shadow:inset 0 0 0 6px #e84a4a; }
    .puzzle-piece,.puzzle-drag-ghost { display:grid; place-items:center; width:100%; height:100%; font-family:"Segoe UI Symbol","DejaVu Sans",sans-serif; font-size:clamp(32px,10cqw,74px); line-height:1; cursor:grab; filter:drop-shadow(0 1px 0 rgba(255,255,255,.45)); }
    .puzzle-piece.is-hidden { visibility:hidden; }
    .puzzle-drag-ghost { position:fixed; z-index:6000; pointer-events:none; display:grid; place-items:center; }
    .puzzle-coordinate { position:absolute; z-index:2; font-size:clamp(8px,1.35cqw,12px); font-weight:900; color:rgba(26,57,26,.72); }
    .puzzle-file { right:4px; bottom:2px; }.puzzle-rank { left:4px; top:2px; }
    .puzzle-board-footer { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:11px 13px; border-top:1px solid #dfe5ed; }
    .puzzle-turn { font-weight:850; }.puzzle-source { color:#6b778b; font-size:.78rem; }
    .puzzle-side-card { min-height:520px; display:flex; flex-direction:column; }
    .puzzle-side-head { padding:18px 20px 14px; border-bottom:1px solid #dfe5ed; }
    .puzzle-side-head h2 { margin:0 0 4px; font-size:1.4rem; }.puzzle-side-head p { margin:0; color:#6b778b; }
    .puzzle-message { margin:16px 18px 0; padding:12px 14px; border-radius:9px; background:#f2f6fc; border:1px solid #d9e2ef; font-weight:750; }
    .puzzle-message.is-good { color:#087a39; background:#edf9f1; border-color:#a8dbb8; }
    .puzzle-message.is-bad { color:#b42323; background:#fff1f1; border-color:#f0b2b2; }
    .puzzle-pattern { padding:18px; }.puzzle-pattern h3 { margin:0 0 8px; font-size:1rem; }
    .puzzle-pattern-main { display:inline-flex; align-items:center; gap:8px; padding:9px 12px; border-radius:999px; background:#e8efff; color:#173f9b; font-weight:900; }
    .puzzle-tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }.puzzle-tags span { padding:5px 8px; border-radius:999px; background:#f1f4f8; color:#536176; font-size:.75rem; }
    .puzzle-rating-change { margin:0 18px; padding:13px 14px; border-radius:10px; background:#fafbfc; border:1px solid #e0e6ee; }
    .puzzle-rating-change strong { font-size:1.25rem; }.puzzle-rating-change .positive { color:#07833e; }.puzzle-rating-change .negative { color:#c42a2a; }
    .puzzle-actions { margin-top:auto; display:flex; flex-wrap:wrap; gap:8px; padding:16px 18px; border-top:1px solid #e0e6ee; }
    .puzzle-actions button,.puzzle-install button { padding:10px 15px; border:1px solid #b9c5d5; border-radius:8px; background:#fff; font:inherit; font-weight:750; cursor:pointer; }
    .puzzle-actions .primary,.puzzle-install .primary { color:#fff; background:#3f46e5; border-color:#3f46e5; }.puzzle-actions button:disabled { opacity:.5; cursor:not-allowed; }
    .puzzle-install { padding:28px; border:1px solid #d6dee9; border-radius:14px; background:#fff; box-shadow:0 8px 26px rgba(15,23,42,.07); }
    .puzzle-install h2 { margin-top:0; }.puzzle-install-progress { height:10px; overflow:hidden; border-radius:999px; background:#e5e9ef; margin:14px 0 8px; }
    .puzzle-install-progress i { display:block; height:100%; width:0; background:#3f46e5; transition:width .25s; }
    .puzzle-install small { color:#657287; }
    @media(max-width:980px){.puzzle-app{grid-template-columns:1fr}.puzzle-side-card{min-height:360px}.puzzle-heading{align-items:start;flex-direction:column}.puzzle-profile{justify-content:flex-start}}
    @media(max-width:620px){.puzzle-workspace{padding:12px}.puzzle-piece,.puzzle-drag-ghost{font-size:11.5vw}.puzzle-stat{min-width:78px}}

/* v13.3: keep the complete board visible on ordinary desktop screens. */
.puzzle-square.is-selected::after { content:""; position:absolute; inset:4%; z-index:4; border:4px solid rgba(241,196,25,.9); pointer-events:none; }
.puzzle-piece.is-drag-source,.puzzle-piece.is-hidden { visibility:hidden; }
.puzzle-drag-ghost { filter:drop-shadow(0 8px 8px rgba(0,0,0,.24)); }

@media (min-width: 981px) and (min-height: 700px) {
  .puzzle-workspace {
    --puzzle-board-size: clamp(420px, calc(100vh - 255px), 680px);
    box-sizing: border-box;
    height: calc(100vh - 70px);
    max-width: 1480px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding-top: 12px;
    padding-bottom: 12px;
  }
  .puzzle-heading { flex: 0 0 auto; margin-bottom: 7px; }
  .puzzle-heading h1 { font-size: clamp(1.55rem, 2.4vw, 2.15rem); }
  .puzzle-profile { gap: 6px; }
  .puzzle-stat { min-width: 82px; padding: 7px 10px; }
  .puzzle-filterbar { flex: 0 0 auto; margin-bottom: 8px; padding-top: 7px; padding-bottom: 7px; }
  #tjk-puzzle-root { min-height: 0; flex: 1; }
  .puzzle-app {
    height: 100%;
    grid-template-columns: var(--puzzle-board-size) minmax(320px, 1fr);
    gap: 16px;
    align-items: start;
  }
  .puzzle-board-card { width: var(--puzzle-board-size); }
  .puzzle-board-wrap { width: var(--puzzle-board-size); max-width: none; }
  .puzzle-side-card { height: calc(var(--puzzle-board-size) + 47px); min-height: 0; }
  .puzzle-pattern { overflow: auto; }
}

.puzzle-annotations{position:absolute;inset:0;z-index:6;width:100%;height:100%;pointer-events:none;}

/* v13.5: Stockfish appears only after the puzzle has ended. */
.puzzle-engine { margin: 14px 18px 0; padding: 11px; border: 1px solid #b8cdf2; border-radius: 10px; background: #f3f7ff; }
.puzzle-engine[hidden] { display: none; }
.puzzle-engine-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.puzzle-engine button { min-height: 31px; padding: 5px 9px; border: 1px solid #b8c5d7; border-radius: 6px; background: #fff; cursor: pointer; }
.puzzle-engine button.is-active { background: #e2edff; border-color: #77a4ec; color: #0755c9; }
.puzzle-engine-state { margin: 7px 0; color: #64748b; font-size: .82rem; }
.puzzle-engine-lines { display: grid; gap: 4px; max-height: 155px; overflow: auto; }
.puzzle-engine-lines > div { display: grid; grid-template-columns: 52px 1fr auto; gap: 7px; padding: 5px 7px; border-radius: 5px; background: #fff; }
.puzzle-engine-lines b { color: #104fa9; }
.puzzle-engine-lines span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .77rem; }
.puzzle-engine-lines small { color: #718096; }
.puzzle-engine-buttons { display: flex; gap: 6px; margin-top: 8px; }
.puzzle-side-card { overflow: auto; }

.puzzle-board{grid-template-rows:repeat(8,minmax(0,1fr));min-width:0;min-height:0}.puzzle-square{min-width:0;min-height:0}

/* v14.7.2: never crop the bottom of the tactics workspace. */
@media(min-width:981px){
  .puzzle-workspace{height:auto!important;min-height:calc(100dvh - 70px);overflow:visible!important;padding-bottom:72px}
  .puzzle-app{height:auto!important}
  .puzzle-side-card{height:auto!important;min-height:calc(min(680px,calc(100dvh - 255px)) + 47px);overflow:visible}
  .puzzle-board-card{position:sticky;top:84px}
}

/* TJK-Chess 15.0 tactical explanations */
.puzzle-actions button[data-puzzle-action="similar"],.puzzle-actions button[data-puzzle-action="add-training"]{background:transparent;color:inherit;border:1px solid var(--line,#dbe2ec)}

.puzzle-daily-stats{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.puzzle-daily-stats span{padding:6px 9px;border-radius:999px;background:var(--surface-soft,#eef2f7);font-size:12px;font-weight:700}

/* TJK-Chess v15.1.199 — full Lichess tactics library + blind/pieceless mode. */
.puzzle-filterbar-v199{display:flex;align-items:end;gap:10px;flex-wrap:wrap}
.puzzle-filterbar-v199 .puzzle-filter-control{display:grid;gap:4px;min-width:150px}
.puzzle-filterbar-v199 .puzzle-filter-pattern{min-width:min(360px,100%);flex:1 1 300px}
.puzzle-filterbar-v199 input[data-puzzle-rating-target]{min-height:40px;width:128px;padding:7px 10px;border:1px solid #c7d2e1;border-radius:8px;background:#fff;color:#182033;font:inherit;font-weight:750}
.puzzle-filterbar-v199 .puzzle-library-note{flex:1 0 100%;font-size:.78rem;color:#6b778b}
.puzzle-blind-position{display:grid;gap:9px;margin:16px 18px 0;padding:13px 14px;border:1px solid #cbd7e6;border-radius:10px;background:#f7f9fc}
.puzzle-blind-position>div{display:grid;grid-template-columns:126px 1fr;gap:8px;align-items:start}
.puzzle-blind-position strong{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:#334155}
.puzzle-blind-position span{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.86rem;line-height:1.45;color:#172033}
.puzzle-blind-position small{color:#64748b;line-height:1.4}
.puzzle-app.is-blind-mode .puzzle-board{cursor:crosshair}
.puzzle-app.is-blind-mode .puzzle-square.is-selected::after{border-width:3px}
.puzzle-source-link{display:block;width:max-content;max-width:100%;margin-top:12px;color:#1d4ed8;font-weight:800;text-decoration:none}
.puzzle-source-link:hover{text-decoration:underline}
html[data-theme="dark"] .puzzle-filterbar-v199 input[data-puzzle-rating-target]{background:#111827;border-color:#354154;color:#f8fafc}
html[data-theme="dark"] .puzzle-filterbar-v199 .puzzle-library-note{color:#aab5c7}
html[data-theme="dark"] .puzzle-blind-position{background:#111827;border-color:#354154}
html[data-theme="dark"] .puzzle-blind-position strong{color:#cbd5e1}
html[data-theme="dark"] .puzzle-blind-position span{color:#f8fafc}
html[data-theme="dark"] .puzzle-blind-position small{color:#94a3b8}
html[data-theme="dark"] .puzzle-source-link{color:#93c5fd}
@media(max-width:620px){.puzzle-filterbar-v199{align-items:stretch}.puzzle-filterbar-v199 .puzzle-filter-control{width:100%}.puzzle-filterbar-v199 input[data-puzzle-rating-target]{width:100%}.puzzle-blind-position>div{grid-template-columns:1fr}}
.puzzle-source-link[hidden]{display:none!important}

/* TJK-Chess v15.1.200 — visualization training controls and compact filters. */
.puzzle-filterbar-v200 .puzzle-filter-pattern{flex:0 1 480px;min-width:300px;max-width:480px}
.puzzle-filterbar-v200 .puzzle-filter-pattern select{width:100%;max-width:480px}
.puzzle-filterbar-v200 .puzzle-visual-option{min-width:170px;max-width:210px}
.puzzle-filterbar-v200 .puzzle-visual-option[hidden]{display:none!important}
.puzzle-app.is-blind-mode .puzzle-board,.puzzle-app.is-blind-mode .puzzle-square,.puzzle-app.is-deep-mode .puzzle-board,.puzzle-app.is-deep-mode .puzzle-square{cursor:pointer!important}
.puzzle-deep-info{display:grid;gap:8px;margin:16px 18px 0;padding:13px 14px;border:1px solid #cbd7e6;border-radius:10px;background:#f7f9fc}
.puzzle-deep-info>div{display:flex;justify-content:space-between;gap:14px;align-items:baseline}
.puzzle-deep-info strong{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:#334155}
.puzzle-deep-info span{font-weight:800;color:#172033}
.puzzle-deep-quality{color:#64748b;line-height:1.4}
.puzzle-deep-quality.is-good{color:#087a39}.puzzle-deep-quality.is-warning{color:#9a5b00}
.puzzle-visual-history{margin:14px 18px 0;padding:12px 14px;border:1px solid #d5deea;border-radius:10px;background:#fff}
.puzzle-visual-history h3{margin:0 0 8px;font-size:.86rem;color:#334155}
.puzzle-visual-history>div{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.puzzle-history-move{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:7px;background:#eef2f7;color:#172033;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.8rem;font-weight:700}
.puzzle-history-move.is-lead{background:#e9eef8;color:#334155}
.puzzle-history-move.is-you{background:#e8f3ff;color:#0d4f9a}.puzzle-history-move.is-reply{background:#f4eefc;color:#684199}
.puzzle-history-move small{font-family:inherit;font-size:.62rem;text-transform:uppercase;letter-spacing:.04em;opacity:.68}
.puzzle-history-empty{font-size:.8rem;color:#7a8798}
html[data-theme="dark"] .puzzle-deep-info,html[data-theme="dark"] .puzzle-visual-history{background:#111827;border-color:#354154}
html[data-theme="dark"] .puzzle-deep-info strong,html[data-theme="dark"] .puzzle-visual-history h3{color:#cbd5e1}
html[data-theme="dark"] .puzzle-deep-info span{color:#f8fafc}
html[data-theme="dark"] .puzzle-history-move{background:#253044;color:#e5e7eb}
html[data-theme="dark"] .puzzle-history-move.is-you{background:#17335a;color:#bfdbfe}html[data-theme="dark"] .puzzle-history-move.is-reply{background:#38234f;color:#e9d5ff}
@media(max-width:920px){.puzzle-filterbar-v200 .puzzle-filter-pattern,.puzzle-filterbar-v200 .puzzle-visual-option{max-width:none;flex:1 1 280px}.puzzle-filterbar-v200 .puzzle-filter-pattern select{max-width:none}}

/* TJK-Chess v15.1.202 — precise visualization/FHT controls and review polish. */
.puzzle-filterbar-v202 .puzzle-filter-pattern{flex:0 0 360px!important;min-width:260px!important;max-width:360px!important}
.puzzle-filterbar-v202 .puzzle-filter-pattern select{width:360px!important;max-width:100%!important}
.puzzle-filterbar-v202 .puzzle-visual-option{flex:0 0 auto;min-width:142px;max-width:190px}
.puzzle-filterbar-v202 input[data-puzzle-deep-moves-filter],
.puzzle-filterbar-v202 input[data-puzzle-analytical-moves-filter]{width:112px;min-height:40px;box-sizing:border-box;padding:7px 10px;border:1px solid #c7d2e1;border-radius:8px;background:#fff;color:#182033;font:inherit;font-weight:750}

/* The board border itself must be square and fully visible. */
.puzzle-board-card{border-top-left-radius:0!important;border-top-right-radius:0!important}
.puzzle-board-wrap{box-sizing:border-box;overflow:visible!important}
.puzzle-board{box-sizing:border-box!important;width:100%!important;max-width:100%!important;border:2px solid #243047!important;border-radius:0!important;overflow:hidden}
.puzzle-square:first-child{border-top-left-radius:0!important}.puzzle-square:nth-child(8){border-top-right-radius:0!important}

/* Hidden-piece training: ordinary hand pointer, temporary press/drag reveal. */
.puzzle-app.is-blind-mode .puzzle-board,.puzzle-app.is-blind-mode .puzzle-square,
.puzzle-app.is-deep-mode .puzzle-board,.puzzle-app.is-deep-mode .puzzle-square{cursor:pointer!important}
.puzzle-hidden-piece-reveal{position:absolute;inset:0;z-index:7;pointer-events:none}
.puzzle-piece-reference{display:inline-block;border-radius:5px;padding:1px 2px;cursor:pointer;transition:background .12s ease,color .12s ease}
.puzzle-piece-reference:hover{background:#dcecff;color:#0b4c9c}
.puzzle-square.is-piece-reference::after{content:"";position:absolute;inset:5%;z-index:9;pointer-events:none;border:4px solid #2f80ed;background:rgba(47,128,237,.13);box-sizing:border-box}

/* Clickable visualization/review timeline. */
button.puzzle-history-move{appearance:none;border:1px solid transparent;cursor:pointer;font:inherit}
button.puzzle-history-move:hover{border-color:#87a8d5;box-shadow:0 1px 4px rgba(15,23,42,.12)}
.puzzle-history-move.is-current{outline:2px solid #2563eb;outline-offset:1px}
.puzzle-history-heading{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px}
.puzzle-history-heading h3{margin:0!important}
.puzzle-mini-button{padding:5px 9px;border:1px solid #c3cfdd;border-radius:7px;background:#fff;cursor:pointer;font:inherit;font-weight:750}
.puzzle-analytical-history>small{display:block;margin-top:9px;color:#64748b;line-height:1.4}

/* Engine PVs are actions after the puzzle, not inert text. */
.puzzle-engine-lines>.puzzle-engine-line{display:grid!important;grid-template-columns:52px minmax(0,1fr) auto;gap:7px;align-items:center;width:100%;min-height:0!important;padding:6px 7px!important;border:1px solid transparent!important;border-radius:5px!important;background:#fff!important;text-align:left!important;color:inherit!important}
.puzzle-engine-lines>.puzzle-engine-line:hover{border-color:#9db8df!important;background:#f5f8ff!important}
.puzzle-engine-lines>.puzzle-engine-line:disabled{cursor:default;opacity:.75}
.puzzle-engine-line b{color:#104fa9}.puzzle-engine-line span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.77rem}.puzzle-engine-line small{color:#718096}

html[data-theme="dark"] .puzzle-filterbar-v202 input[data-puzzle-deep-moves-filter],html[data-theme="dark"] .puzzle-filterbar-v202 input[data-puzzle-analytical-moves-filter]{background:#111827;border-color:#354154;color:#f8fafc}
html[data-theme="dark"] .puzzle-piece-reference:hover{background:#17335a;color:#bfdbfe}
html[data-theme="dark"] .puzzle-mini-button{background:#111827;border-color:#354154;color:#f8fafc}
html[data-theme="dark"] .puzzle-engine-lines>.puzzle-engine-line{background:#111827!important;color:#f8fafc!important}
html[data-theme="dark"] .puzzle-engine-lines>.puzzle-engine-line:hover{background:#18243a!important;border-color:#42618f!important}
@media(max-width:920px){.puzzle-filterbar-v202 .puzzle-filter-pattern{flex:1 1 280px!important;min-width:0!important;max-width:none!important}.puzzle-filterbar-v202 .puzzle-filter-pattern select{width:100%!important}.puzzle-filterbar-v202 .puzzle-visual-option{max-width:none;flex:1 1 150px}}

/* TJK-Chess v15.1.204 — robust drag-hover feedback and board interaction cleanup. */
.puzzle-board{
  position:relative!important;
  border:0!important;
  outline:2px solid #243047!important;
  outline-offset:-2px!important;
  box-shadow:inset 2px 0 #243047,inset -2px 0 #243047,inset 0 2px #243047,inset 0 -2px #243047!important;
}
.puzzle-square.is-legal-target{box-shadow:none!important}
.puzzle-square.is-legal-target::before{
  content:"";position:absolute;z-index:7;left:50%;top:50%;width:18%;aspect-ratio:1;border-radius:50%;
  transform:translate(-50%,-50%);background:rgba(35,47,62,.35);pointer-events:none;
}
.puzzle-square.is-selected::after{
  content:"";position:absolute;inset:3%;z-index:10;border:4px solid #f2c21a!important;background:rgba(242,194,26,.10);pointer-events:none;box-sizing:border-box;
}
.puzzle-square.is-drag-hover{
  box-shadow:inset 0 0 0 999px rgba(242,194,26,.42)!important;
}
.puzzle-square.is-drag-hover::before{display:none}
.puzzle-history-controls{display:flex;align-items:center;gap:6px;margin-left:auto}
.puzzle-hidden-piece-reveal{z-index:8}
.puzzle-board::after{
  content:"";position:absolute;inset:0;z-index:50;pointer-events:none;box-shadow:inset 0 0 0 2px #243047;
}

/* v15.1.204: make the square under a dragged legal move unmistakably yellow. */
.puzzle-square.is-drag-hover::after{
  content:""!important;position:absolute!important;inset:0!important;z-index:14!important;pointer-events:none!important;
  border:4px solid #f2c21a!important;background:rgba(242,194,26,.34)!important;box-sizing:border-box!important;
}
.puzzle-square.is-drag-hover::before{display:none!important}

/* TJK-Chess v15.1.205 — unified target dots, drag hover and guaranteed right board edge. */
.puzzle-square.is-legal-target:not(.is-drag-hover):not(.is-selected)::after{
  content:none!important;display:none!important;
}
.puzzle-square.is-legal-target::before{
  width:22%!important;height:22%!important;aspect-ratio:auto!important;border:0!important;
  background:rgba(44,51,58,.36)!important;box-shadow:none!important;
}
.puzzle-square.is-drag-hover{
  box-shadow:inset 0 0 0 999px rgba(242,194,26,.34)!important;
}
.puzzle-square.is-drag-hover::after{
  content:""!important;display:block!important;position:absolute!important;inset:0!important;
  border:4px solid #f2c21a!important;background:rgba(242,194,26,.24)!important;
  z-index:24!important;pointer-events:none!important;box-sizing:border-box!important;
}
.puzzle-board-wrap::after{
  content:"";position:absolute;top:0;right:0;bottom:0;width:2px;background:#243047;
  z-index:95;pointer-events:none;
}

/* TJK-Chess v15.1.214 — physical right-edge element; immune to outline clipping/sub-pixel rounding. */
.puzzle-board-wrap::after{display:none!important}
.puzzle-board-wrap{isolation:isolate!important}
.puzzle-board-edge-right{
  position:absolute!important;
  top:0!important;
  right:0!important;
  bottom:0!important;
  width:3px!important;
  display:block!important;
  background:#243047!important;
  box-shadow:-1px 0 0 #243047!important;
  z-index:250!important;
  pointer-events:none!important;
}

/* Blind tactics with independent visual, audio and SAN input controls */
.puzzle-blind-toggle{padding:.55rem .7rem;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#17355c;cursor:pointer;font-weight:600}
.puzzle-app.is-blind-board-hidden .puzzle-board-wrap{display:none!important}
.puzzle-app.is-blind-board-hidden .puzzle-board-card{min-height:0!important;align-self:start}
.puzzle-app.is-blind-board-hidden{grid-template-columns:minmax(0,1fr)!important}
.puzzle-app.is-blind-board-hidden .puzzle-board-card{display:none!important}
.puzzle-blind-position.is-blind-list-hidden >div >span:not(.puzzle-blind-voice),.puzzle-blind-position.is-blind-list-hidden >small{display:none!important}
.puzzle-blind-position .puzzle-blind-voice{display:inline-flex;align-items:center;gap:.25rem;margin-left:.6rem;white-space:nowrap}
.puzzle-blind-voice button{border:1px solid #cbd5e1;border-radius:5px;padding:.18rem .42rem;background:#f8fafc;cursor:pointer}
.puzzle-blind-voice small{font-size:.7rem;color:#64748b}
.puzzle-blind-notation{padding:.7rem;margin:.6rem 0;background:#f8fafc;border:1px solid #dbe3ef;border-radius:10px}
.puzzle-blind-notation[hidden]{display:none!important}
.puzzle-blind-notation label{display:block;font-weight:600;margin-bottom:.35rem}
.puzzle-blind-inputrow{display:flex;gap:.5rem;align-items:center}
.puzzle-blind-inputrow input{width:13rem;max-width:100%;padding:.5rem;border:1px solid #cbd5e1;border-radius:7px}
.puzzle-blind-inputrow button{background:#0b70e8;color:white;border:0;border-radius:7px;padding:.55rem .8rem;cursor:pointer}
.puzzle-blind-notation small{display:block;margin-top:.4rem;color:#64748b}

/* Blind Tactics audio player, v16.0.32 */
.puzzle-blind-position>div{grid-template-columns:minmax(110px,150px) minmax(0,1fr);align-items:center;column-gap:12px;row-gap:8px}
.puzzle-blind-position .puzzle-blind-voice{display:flex;flex-direction:column;align-items:stretch;gap:4px;margin:0;width:min(300px,100%);padding:9px 12px;border-radius:14px;background:#edf3fa;border:1px solid #d5dfeb;font-family:inherit}
.puzzle-blind-voice input[type="range"]{width:100%;margin:0;accent-color:#1768cb;cursor:pointer}
.puzzle-blind-transport{display:flex;align-items:center;justify-content:center;gap:20px}
.puzzle-blind-voice .puzzle-blind-transport button{border:0;background:transparent;color:#102b50;font-size:1.1rem;cursor:pointer;padding:3px 8px}
.puzzle-blind-voice .puzzle-blind-transport .puzzle-blind-play{background:#fff;color:#0c2442;box-shadow:0 1px 5px #0002;border-radius:50%;width:44px;height:44px;font-size:1.15rem;display:flex;align-items:center;justify-content:center}
.puzzle-blind-voice small{text-align:center;font-size:.72rem}
html[data-theme="dark"] .puzzle-blind-position .puzzle-blind-voice{background:#202d43;border-color:#475569}
html[data-theme="dark"] .puzzle-blind-voice .puzzle-blind-transport button{color:#e5efff}
html[data-theme="dark"] .puzzle-blind-voice .puzzle-blind-transport .puzzle-blind-play{background:#dde8fa;color:#10223e}
@media(max-width:620px){.puzzle-blind-position>div{grid-template-columns:1fr}}

/* v16.0.33 — compact, single-row accessible speech transport. */
.puzzle-blind-position{gap:6px;padding:10px 12px;margin-top:10px}
.puzzle-blind-position>div{grid-template-columns:minmax(95px,125px) minmax(150px,245px) minmax(0,1fr);align-items:center;gap:8px}
.puzzle-blind-position .puzzle-blind-voice{display:flex;flex-direction:row;align-items:center;gap:9px;margin:0;padding:4px 8px;width:100%;min-width:0;max-width:245px;border-radius:9px}
.puzzle-blind-voice .puzzle-blind-play{flex:0 0 30px;width:30px;height:30px;display:grid;place-items:center;border:0;border-radius:50%;background:#fff;color:#102b50;box-shadow:0 1px 4px #0002;padding:0;font-size:14px}
.puzzle-blind-voice input[type=range]{min-width:0;flex:1;width:auto;height:18px;touch-action:none;cursor:pointer;accent-color:#1768cb}
html[data-theme="dark"] .puzzle-blind-voice .puzzle-blind-play{background:#dae7f9;color:#102b50}
@media(max-width:720px){.puzzle-blind-position>div{grid-template-columns:1fr}.puzzle-blind-position .puzzle-blind-voice{max-width:100%}}
