.lock-board{list-style:none;padding:0;margin:12px 0 20px;display:grid;gap:7px}
.lock-board li{display:flex;gap:7px}
.lock-tile{position:relative;width:48px;height:48px;border:1px solid var(--border);background:var(--surface);display:grid;place-items:center;font:700 23px var(--font-mono)}
.lock-tile small{position:absolute;right:3px;bottom:0;font:700 12px var(--font-sans)}
.lock-tile.exact{background:var(--primary);color:var(--background);border-color:var(--primary)}
.lock-tile.present{background:var(--highlight);border-color:var(--primary)}
.lock-tile.absent{background:var(--background);border-style:dashed}
.lock-legend{padding-left:20px;font-size:16px}.lock-legend li{margin-bottom:12px}
.lock-game .game-toolbar{font-size:16px}.lock-game .small{margin:0}
.letter-pad{margin:0 0 18px}.letter-pad summary{cursor:pointer;min-height:44px;display:list-item;padding:10px 0;font-size:14px;font-weight:700}
.letter-pad summary:hover{text-decoration:underline}
#letter-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(44px,1fr));gap:5px;margin:8px 0}
#letter-buttons button{padding:6px;min-width:44px}
.lock-game .status{margin-bottom:8px}
.lock-game:fullscreen{overflow:auto}
@media(max-width:420px){#letter-buttons{grid-template-columns:repeat(5,minmax(44px,1fr))}.lock-game .input-row{grid-template-columns:minmax(0,1fr) auto}.lock-game .input-row button{padding-inline:10px}}
