.cwx-wrap{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;width:100%;max-width:1000px;margin:0 auto;padding:4px 0 10px}.cwx-left,.cwx-right{display:flex;flex-direction:column;align-items:center;gap:10px;min-width:0}.cwx-board{--cwx-c: 9;display:grid;grid-template-columns:repeat(var(--cwx-c),1fr);width:min(100%,calc(var(--cwx-c) * 42px));touch-action:manipulation}.cwx-cell,.cwx-block{aspect-ratio:1;min-width:0}.cwx-cell{position:relative;appearance:none;margin:-.5px;padding:0;border:1px solid var(--cell-strong);background:var(--cell);color:var(--text);font:inherit;cursor:pointer;display:grid;place-items:center}.cwx-num{position:absolute;top:1px;left:2px;font-size:clamp(.42rem,1.8vw,.62rem);color:var(--muted);line-height:1}.cwx-ch{font-weight:800;font-size:clamp(.72rem,3.6vw,1.15rem);padding-top:4px}.cwx-cell:focus-visible{outline:3px solid var(--focus);outline-offset:-2px;position:relative;z-index:1}.cwx-cell.cwx-sel{background:var(--hl)}.cwx-cell.cwx-given .cwx-ch{color:var(--accent)}.cwx-cell.cwx-bad .cwx-ch{color:var(--bad)}.cwx-cell.cwx-done{cursor:default}.cwx-cell.cwx-done .cwx-ch{color:var(--good)}.cwx-msg{min-height:1.4em;text-align:center;font-size:.95rem}.cwx-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.cwx-h{margin:0;font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);align-self:flex-start}.cwx-key{display:grid;grid-template-columns:repeat(auto-fill,minmax(34px,1fr));gap:4px;width:100%;max-width:520px}.cwx-kc{appearance:none;display:grid;grid-template-rows:auto auto;place-items:center;padding:3px 0;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);font:inherit;cursor:pointer}.cwx-kn{font-size:.66rem;color:var(--muted)}.cwx-kl{font-weight:800;min-height:1.2em}.cwx-kc.cwx-sel{background:var(--hl);border-color:var(--accent)}.cwx-kc.cwx-given .cwx-kl{color:var(--accent)}.cwx-kc.cwx-bad .cwx-kl{color:var(--bad)}@media (min-width: 860px){.cwx-wrap{grid-template-columns:minmax(0,1.2fr) minmax(300px,1fr)}.cwx-right{position:sticky;top:8px;align-self:start}}
