.board{aspect-ratio:1;background:var(--cell-bg);outline:var(--wall) solid var(--line);--cell-size:calc(min(92vw, 560px) / var(--n));--value-size:clamp(12px, calc(var(--cell-size) * .58), 32px);--clue-size:clamp(13px, calc(var(--cell-size) * .62), 34px);--note-size:clamp(6px, min(calc(var(--cell-size) / (var(--notes-cols,3) * (.72 + var(--note-chars,1) * .72))), calc(var(--cell-size) / (var(--notes-rows,3) * 1.4))), 14px);grid-auto-rows:1fr;width:min(92vw,560px);margin:0 auto;display:grid}.board>.cell{min-width:0;min-height:0}.cell{background:var(--cell-bg);color:var(--user-fg);font-family:var(--font-ui);font-variant-numeric:tabular-nums;font-weight:500;font-size:var(--value-size);touch-action:manipulation;border:0;outline:none;justify-content:center;align-items:center;min-width:0;min-height:0;transition:background 80ms linear;display:flex;position:relative;overflow:visible}.cell:after{content:"";z-index:0;pointer-events:none;opacity:0;border-radius:0;position:absolute;inset:0}.cell.clue{font-family:var(--font-mono);color:var(--fg);background:color-mix(in srgb, var(--cell-bg) 96%, var(--line) 4%);font-weight:700}.cell.boxed{background:var(--line);color:var(--line);pointer-events:none}.cell.boxed:before{display:none}.cell.boxed.sel{background:var(--line);color:var(--line);box-shadow:none}.cell.clue:before{content:"";background:var(--accent);width:4px;height:4px;position:absolute;top:4px;left:4px}.board.sel-row-0 .cell:not(.boxed).row-0,.board.sel-row-1 .cell:not(.boxed).row-1,.board.sel-row-2 .cell:not(.boxed).row-2,.board.sel-row-3 .cell:not(.boxed).row-3,.board.sel-row-4 .cell:not(.boxed).row-4,.board.sel-row-5 .cell:not(.boxed).row-5,.board.sel-row-6 .cell:not(.boxed).row-6,.board.sel-row-7 .cell:not(.boxed).row-7,.board.sel-row-8 .cell:not(.boxed).row-8,.board.sel-row-9 .cell:not(.boxed).row-9,.board.sel-row-10 .cell:not(.boxed).row-10,.board.sel-row-11 .cell:not(.boxed).row-11,.board.sel-row-12 .cell:not(.boxed).row-12,.board.sel-row-13 .cell:not(.boxed).row-13,.board.sel-row-14 .cell:not(.boxed).row-14,.board.sel-col-0 .cell:not(.boxed).col-0,.board.sel-col-1 .cell:not(.boxed).col-1,.board.sel-col-2 .cell:not(.boxed).col-2,.board.sel-col-3 .cell:not(.boxed).col-3,.board.sel-col-4 .cell:not(.boxed).col-4,.board.sel-col-5 .cell:not(.boxed).col-5,.board.sel-col-6 .cell:not(.boxed).col-6,.board.sel-col-7 .cell:not(.boxed).col-7,.board.sel-col-8 .cell:not(.boxed).col-8,.board.sel-col-9 .cell:not(.boxed).col-9,.board.sel-col-10 .cell:not(.boxed).col-10,.board.sel-col-11 .cell:not(.boxed).col-11,.board.sel-col-12 .cell:not(.boxed).col-12,.board.sel-col-13 .cell:not(.boxed).col-13,.board.sel-col-14 .cell:not(.boxed).col-14{background:var(--cell-bg-peer);box-shadow:none}.board.sel-row-0 .cell.clue.row-0,.board.sel-row-1 .cell.clue.row-1,.board.sel-row-2 .cell.clue.row-2,.board.sel-row-3 .cell.clue.row-3,.board.sel-row-4 .cell.clue.row-4,.board.sel-row-5 .cell.clue.row-5,.board.sel-row-6 .cell.clue.row-6,.board.sel-row-7 .cell.clue.row-7,.board.sel-row-8 .cell.clue.row-8,.board.sel-row-9 .cell.clue.row-9,.board.sel-row-10 .cell.clue.row-10,.board.sel-row-11 .cell.clue.row-11,.board.sel-row-12 .cell.clue.row-12,.board.sel-row-13 .cell.clue.row-13,.board.sel-row-14 .cell.clue.row-14,.board.sel-col-0 .cell.clue.col-0,.board.sel-col-1 .cell.clue.col-1,.board.sel-col-2 .cell.clue.col-2,.board.sel-col-3 .cell.clue.col-3,.board.sel-col-4 .cell.clue.col-4,.board.sel-col-5 .cell.clue.col-5,.board.sel-col-6 .cell.clue.col-6,.board.sel-col-7 .cell.clue.col-7,.board.sel-col-8 .cell.clue.col-8,.board.sel-col-9 .cell.clue.col-9,.board.sel-col-10 .cell.clue.col-10,.board.sel-col-11 .cell.clue.col-11,.board.sel-col-12 .cell.clue.col-12,.board.sel-col-13 .cell.clue.col-13,.board.sel-col-14 .cell.clue.col-14{background:color-mix(in srgb, var(--cell-bg) 90%, var(--line) 10%)}.cell:focus,.cell:focus-visible{box-shadow:none;outline:none}.cell.sel{z-index:3;background:var(--cell-bg);color:var(--cell-fg-selected);box-shadow:none}.cell.sel:after{opacity:1;background:var(--accent)}.cell.conflict .val{color:var(--conflict)}.cell.sel.conflict .val{color:#1a1a1a;text-decoration:underline}.cell.strategy-value .val{color:var(--strategy-color,var(--user-fg));font-weight:700}.cell.sel.strategy-value .val{color:#1a1a1a}.wall-hit{z-index:2;touch-action:manipulation;position:absolute}.wall-hit-top,.wall-hit-bottom{height:22px;left:2px;right:2px}.wall-hit-left,.wall-hit-right{width:22px;top:2px;bottom:2px}.wall-hit-top{top:-11px}.wall-hit-bottom{bottom:-11px}.wall-hit-left{left:-11px}.wall-hit-right{right:-11px}.cell .val,.cell .notes{z-index:2;position:relative}.cell.clue:before{z-index:2}.cell .val{line-height:.92;font-size:var(--value-size);transform:translateY(.02em)}.cell.clue .val{font-size:var(--clue-size);line-height:.9}.cell .notes{grid-template-columns:repeat(var(--notes-cols,3), minmax(0, 1fr));grid-template-rows:repeat(var(--notes-rows,3), minmax(0, 1fr));width:100%;height:100%;font-family:var(--font-mono);font-weight:500;font-size:var(--note-size);color:var(--fg);place-items:center;padding:3px 2px;display:grid;overflow:hidden}.cell .notes span{white-space:nowrap;text-align:center;justify-content:center;align-items:center;width:100%;min-width:0;line-height:1;display:flex;overflow:hidden}.cell.sel .notes{color:var(--cell-fg-selected)}.edge{pointer-events:none;position:absolute}.edge-top,.edge-bottom{left:calc(var(--wall) / -2);width:calc(100% + var(--wall))}.edge-left,.edge-right{top:calc(var(--wall) / -2);height:calc(100% + var(--wall))}.edge-top{top:calc(var(--edge-size) / -2)}.edge-bottom{bottom:calc(var(--edge-size) / -2)}.edge-left{left:calc(var(--edge-size) / -2)}.edge-right{right:calc(var(--edge-size) / -2)}.edge-hair{--edge-size:var(--hair);z-index:0;background:var(--line-soft)}.edge-wall{--edge-size:var(--wall);z-index:1;background:var(--line)}.edge-top.edge-hair,.edge-bottom.edge-hair{height:var(--hair)}.edge-top.edge-wall,.edge-bottom.edge-wall{height:var(--wall)}.edge-left.edge-hair,.edge-right.edge-hair{width:var(--hair)}.edge-left.edge-wall,.edge-right.edge-wall{width:var(--wall)}.board.sel-row-0 .cell:not(.boxed).row-0 .edge-hair,.board.sel-row-1 .cell:not(.boxed).row-1 .edge-hair,.board.sel-row-2 .cell:not(.boxed).row-2 .edge-hair,.board.sel-row-3 .cell:not(.boxed).row-3 .edge-hair,.board.sel-row-4 .cell:not(.boxed).row-4 .edge-hair,.board.sel-row-5 .cell:not(.boxed).row-5 .edge-hair,.board.sel-row-6 .cell:not(.boxed).row-6 .edge-hair,.board.sel-row-7 .cell:not(.boxed).row-7 .edge-hair,.board.sel-row-8 .cell:not(.boxed).row-8 .edge-hair,.board.sel-row-9 .cell:not(.boxed).row-9 .edge-hair,.board.sel-row-10 .cell:not(.boxed).row-10 .edge-hair,.board.sel-row-11 .cell:not(.boxed).row-11 .edge-hair,.board.sel-row-12 .cell:not(.boxed).row-12 .edge-hair,.board.sel-row-13 .cell:not(.boxed).row-13 .edge-hair,.board.sel-row-14 .cell:not(.boxed).row-14 .edge-hair,.board.sel-col-0 .cell:not(.boxed).col-0 .edge-hair,.board.sel-col-1 .cell:not(.boxed).col-1 .edge-hair,.board.sel-col-2 .cell:not(.boxed).col-2 .edge-hair,.board.sel-col-3 .cell:not(.boxed).col-3 .edge-hair,.board.sel-col-4 .cell:not(.boxed).col-4 .edge-hair,.board.sel-col-5 .cell:not(.boxed).col-5 .edge-hair,.board.sel-col-6 .cell:not(.boxed).col-6 .edge-hair,.board.sel-col-7 .cell:not(.boxed).col-7 .edge-hair,.board.sel-col-8 .cell:not(.boxed).col-8 .edge-hair,.board.sel-col-9 .cell:not(.boxed).col-9 .edge-hair,.board.sel-col-10 .cell:not(.boxed).col-10 .edge-hair,.board.sel-col-11 .cell:not(.boxed).col-11 .edge-hair,.board.sel-col-12 .cell:not(.boxed).col-12 .edge-hair,.board.sel-col-13 .cell:not(.boxed).col-13 .edge-hair,.board.sel-col-14 .cell:not(.boxed).col-14 .edge-hair{background:var(--cell-bg)}.cell.sel .edge-hair{background:0 0}.cell.boxed .edge-hair,.cell.boxed.sel .edge-hair{background:var(--line)}.pad{width:min(92vw,560px);padding-bottom:env(safe-area-inset-bottom,8px);flex-direction:column;gap:16px;margin:16px auto 0;display:flex}.pad-row{gap:8px;display:grid}.pad-row.digits{grid-auto-rows:48px}.pad-row.actions{grid-template-columns:repeat(4,1fr);grid-auto-rows:44px}.pad-row.mem{grid-template-columns:repeat(2,1fr);grid-auto-rows:40px;margin-top:-8px}.key{background:var(--cell-bg);color:var(--fg);border:1.5px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-btn);font-family:var(--font-ui);font-variant-numeric:tabular-nums;touch-action:manipulation;justify-content:center;align-items:center;font-size:20px;font-weight:600;transition:background 80ms linear,color 80ms linear;display:flex;position:relative}.key.digit:before{content:"";background:var(--fg-dim);width:3px;height:3px;position:absolute;top:4px;left:4px}.key:hover{background:var(--cell-bg-peer)}.key:active:not(.press-outside),.key.press-active{background:var(--accent);color:var(--cell-fg-selected);border-color:var(--line);transform:translateY(1px);box-shadow:0 1px #0000001f,0 1px 3px #00000014}.key.on{background:var(--accent);color:var(--cell-fg-selected);border-color:var(--line)}.key .label{color:inherit;letter-spacing:.14em;font-weight:600}.action-key{gap:8px}.action-key .icon{color:inherit;opacity:.95;font-size:20px;line-height:1;transform:translateY(-.04em)}.action-key .label{font-size:10px}.key:disabled{opacity:.35;cursor:not-allowed}.key:disabled:hover{background:var(--cell-bg)}.key.has-saved:before{content:"";background:var(--accent);width:4px;height:4px;position:absolute;top:4px;left:4px}
