.grid-puzzles .tp-practice{text-align:center;max-width:680px;margin-inline:auto}.grid-puzzles .tp-progress{color:var(--muted);font-variant-numeric:tabular-nums;margin:0 0 24px;font-size:.875rem}.grid-puzzles .tp-board{grid-template-columns:repeat(var(--tp-columns),minmax(44px,64px));grid-template-rows:repeat(var(--tp-rows),64px);justify-content:center;gap:6px;max-width:100%;margin:0 auto 24px;display:grid}.grid-puzzles .tp-slot{background:var(--bg);border-radius:8px;min-width:44px}.grid-puzzles button.tp-tile{background:var(--card);width:100%;min-width:44px;height:100%;min-height:44px;color:var(--ink);border:1px solid var(--control-border);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:0;padding:4px 2px 0;display:flex;box-shadow:0 2px 2px #0000000f}.grid-puzzles button.tp-tile>svg{flex:none;width:36px;height:36px}.grid-puzzles .tp-open{height:8px;color:var(--accent);justify-content:center;align-items:center;display:flex}.grid-puzzles button.tp-tile.is-blocked{background:var(--bg);border-style:dashed}.grid-puzzles button.tp-tile.is-selected{background:var(--accent-soft);border:2px solid var(--accent);box-shadow:none}.grid-puzzles button.tp-tile.is-hint{outline:3px solid var(--accent);outline-offset:1px}.grid-puzzles button.tp-tile:focus-visible{outline:3px solid var(--ink);outline-offset:2px;z-index:1;position:relative}.grid-puzzles .tp-selection{min-height:3em;color:var(--muted);margin:12px auto 16px;line-height:1.5}.grid-puzzles .tp-tools{margin:16px 0 0}.grid-puzzles .tp-status:empty{display:none}.grid-puzzles .tp-status{color:var(--muted);margin:16px 0}.grid-puzzles .tp-hint{border-top:1px solid var(--line);text-align:left;margin-top:24px;padding-top:20px}.grid-puzzles .tp-hint h3{margin:0 0 8px;font-size:1rem}.grid-puzzles .tp-hint p{margin:0 0 16px;line-height:1.6}.grid-puzzles .tp-help{text-align:left;margin-top:24px}.grid-puzzles .tp-help p{line-height:1.6}.grid-puzzles .tp-confirm{border-top:1px solid var(--line);margin-top:20px;padding-top:12px}.grid-puzzles .tp-review ol{flex-wrap:wrap;justify-content:center;gap:12px;padding:0;list-style:none;display:flex}.grid-puzzles .tp-review li{border:1px solid var(--line);color:var(--ink);border-radius:8px;align-items:center;padding:8px;display:flex}.grid-puzzles .tp-review h3{font-size:1rem;font-weight:600}.grid-puzzles .grid-review .tp-hint,.grid-puzzles .grid-review .tp-status,.grid-puzzles .grid-review .tp-progress{display:none}.grid-puzzles .tp-example-row{justify-content:center;gap:6px;margin:12px auto;display:flex}.grid-puzzles .tp-example-row button{border-radius:8px;justify-content:center;align-items:center;width:52px;min-width:44px;height:58px;padding:5px;display:flex}.grid-puzzles .tp-example-row button>svg{width:36px;height:36px}.grid-puzzles .tp-example-row .tp-example-cleared{visibility:hidden}@media (width<=650px){.grid-puzzles .tp-board{grid-template-columns:repeat(var(--tp-columns),minmax(44px,52px));grid-template-rows:repeat(var(--tp-rows),54px);gap:5px}.grid-puzzles .tp-tools button{flex:1;min-width:72px}.grid-puzzles .tp-tools button:last-child{flex:1.5}.grid-puzzles .tp-progress{margin-bottom:20px}}.grid-puzzles .tp-example-row button.is-blocked{background:var(--bg);border-style:dashed}
