.puzzle-nav { gap: 0 20px; flex-wrap: wrap; }
.difficulty-row { display:flex; align-items:center; gap:12px; margin:0 0 20px; }
.difficulty-row label { font-size:12px; font-weight:700; }
.difficulty-row select { font:inherit; font-size:14px; color:var(--ink); background:var(--paper); border:1px solid #bbc4b7; border-radius:5px; min-height:44px; padding:8px 34px 8px 12px; }
.difficulty-row select:focus-visible { outline:3px solid #a44322; outline-offset:3px; }
.difficulty-note { margin-left:auto; color:var(--muted); font-size:11px; }
.puzzle-grid { display:grid; width:100%; margin:auto; border:2px solid var(--ink); user-select:none; }
.grid-cell { border:0; border-right:1px solid #ccd4c9; border-bottom:1px solid #ccd4c9; border-radius:0; padding:0; aspect-ratio:1; background:#fff; color:var(--ink); font-family:Arial, sans-serif; font-size:18px; cursor:pointer; min-width:0; position:relative; transition:background .15s,color .15s; }
.new-puzzle { min-height:44px; }
.grid-cell:focus-visible { outline:3px solid #a44322; outline-offset:-3px; z-index:1; }
.grid-cell.found { background:#d6e8b7; color:#1d3c27; font-weight:700; }
.grid-cell.selected,.cross-cell.selected { background:var(--green); color:white; }
.grid-cell.hint-cell { box-shadow:inset 0 0 0 3px #a44322; }
.search-grid { max-width:480px; touch-action:none; }
.search-grid .grid-cell { font-size:16px; font-weight:600; }
.word-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px 16px; list-style:none; padding:18px 0 0; margin:0; font-size:12px; font-weight:700; }
.word-list li { overflow-wrap:anywhere; }
.found-word { color:#526148; text-decoration:line-through; text-decoration-thickness:2px; }
.extra-controls { display:flex; gap:8px; flex-wrap:wrap; justify-content:center; margin-bottom:24px; }
.extra-controls .button { white-space:normal; }
.crossword-grid { max-width:460px; }
.cross-cell { min-width:0; aspect-ratio:1; background:#fff; position:relative; border-right:1px solid #89978a; border-bottom:1px solid #89978a; }
.cross-cell.blocked { background:#25352b; border-color:#25352b; }
.cross-cell input { width:100%; height:100%; padding:9px 0 0; border:0; border-radius:0; background:transparent; color:inherit; text-align:center; font:600 20px/1 Arial,sans-serif; outline-offset:-3px; text-transform:uppercase; }
.cross-cell input:focus-visible { outline:3px solid #a44322; }
.clue-number { position:absolute; top:0; left:3px; font-size:9px; line-height:1.3; pointer-events:none; }
.peer { background:#e3eade; }
.cross-cell.checked-error { box-shadow:inset 0 0 0 3px #a44322; }
.active-clue-bar { background:#e3eade; border-left:3px solid var(--green); padding:12px; font-size:13px; min-height:64px; display:flex; align-items:center; margin:0 0 14px; }
.clues { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin:20px 0; }
.clues h2 { font:bold 18px Georgia,serif; margin:0 0 8px; }
.clue { display:block; width:100%; text-align:left; background:none; border:0; border-left:3px solid transparent; border-radius:0; color:var(--ink); font:13px/1.45 Arial,sans-serif; padding:10px 8px; min-height:44px; cursor:pointer; }
.clue.active-clue { border-left-color:var(--green); background:#e3eade; }
.done-clue { color:#526148; }
.sudoku-grid { max-width:450px; }
.sudoku-grid .grid-cell { font-size:25px; color:#24648b; }
.sudoku-grid .given { font-weight:700; color:var(--ink); }
.sudoku-grid .box-right { border-right:2px solid var(--ink); }
.sudoku-grid .box-bottom { border-bottom:2px solid var(--ink); }
.sudoku-grid .same-number { background:#c9deb5; }
.sudoku-grid .conflict { color:#a13021; text-decoration:underline; text-decoration-thickness:2px; }
.sudoku-grid .selected { background:var(--green); color:#fff; }
.pencil-grid { display:grid; grid-template-columns:repeat(3,1fr); width:100%; height:100%; padding:2px; font-size:10px; line-height:1; color:var(--muted); align-items:center; }
.selected .pencil-grid { color:white; }
.number-pad { display:grid; grid-template-columns:repeat(9,minmax(0,1fr)); gap:5px; max-width:450px; margin:18px auto 12px; }
.number-pad .button { padding:8px 0; font-size:19px; min-width:0; min-height:44px; background:#e9ece4; }
.storage-note { font-size:12px; color:#9b301c; }
.extra-result { border-top:3px double var(--ink); padding:24px 0; }
.extra-result.arrive { animation:arrive .5s ease-out; }
.extra-result h2 { color:var(--green); }
.replace-copy { font-size:14px; }
.dialog-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:20px; }
@media(max-width:600px) {
 .puzzle-nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 10px; }
 .puzzle-nav a { font-size:12px; text-align:center; display:flex; align-items:center; justify-content:center; padding:10px 0; white-space:normal; }
 .difficulty-note { display:none; }
 .cross-cell input { font-size:17px; padding-top:8px; }
 .clue-number { font-size:8px; left:2px; }
 .clues { gap:12px; }
 .clue { font-size:12px; padding:10px 5px; }
 .search-grid .grid-cell { font-size:14px; }
 .sudoku-grid .grid-cell { font-size:22px; }
 .pencil-grid { font-size:8px; }
}
@media(prefers-reduced-motion:reduce) { .extra-result.arrive { animation:none; } }
@media(max-width:360px) { .number-pad { grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; } }
