:root{--color-bg:#fff;--color-bg-cell:#f8f8f8;--color-bg-cell-given:#e8e8e8;--color-bg-cell-selected:#bbdefb;--color-bg-cell-peer:#e3f2fd;--color-bg-cell-matching:#fff9c4;--color-text-given:#111;--color-text-entry:#1565c0;--color-text-conflict:#c62828;--color-border-cell:#bdbdbd;--color-border-box:#424242;--color-border-focus:#1565c0;--color-bg-keypad-btn:#f0f0f0;--color-text-keypad-btn:#111;--color-bg-keypad-btn-active:#bbdefb;--radius-cell:2px;--size-cell:clamp(32px, 9vmin, 56px)}[data-theme=dark]{--color-bg:#121212;--color-bg-cell:#1e1e1e;--color-bg-cell-given:#2a2a2a;--color-bg-cell-selected:#1a3a5c;--color-bg-cell-peer:#1a2a3a;--color-bg-cell-matching:#3a3a1a;--color-text-given:#e0e0e0;--color-text-entry:#90caf9;--color-text-conflict:#ef9a9a;--color-border-cell:#424242;--color-border-box:#9e9e9e;--color-border-focus:#90caf9;--color-bg-keypad-btn:#2a2a2a;--color-text-keypad-btn:#e0e0e0;--color-bg-keypad-btn-active:#1a3a5c;--radius-cell:2px;--size-cell:clamp(32px, 9vmin, 56px)}[data-theme=high-contrast]{--color-bg:#000;--color-bg-cell:#000;--color-bg-cell-given:#1a1a00;--color-bg-cell-selected:#ff0;--color-bg-cell-peer:#020;--color-bg-cell-matching:#001a3a;--color-text-given:#fff;--color-text-entry:#ff0;--color-text-conflict:#f66;--color-border-cell:#666;--color-border-box:#fff;--color-border-focus:#ff0;--color-bg-keypad-btn:#000;--color-text-keypad-btn:#fff;--color-bg-keypad-btn-active:#ff0;--radius-cell:2px;--size-cell:clamp(32px, 9vmin, 56px)}[data-theme=high-contrast] [data-selected=true]{color:#000}@media (prefers-color-scheme:dark){:root:not([data-theme]),:root[data-theme=system]{--color-bg:#121212;--color-bg-cell:#1e1e1e;--color-bg-cell-given:#2a2a2a;--color-bg-cell-selected:#1a3a5c;--color-bg-cell-peer:#1a2a3a;--color-bg-cell-matching:#3a3a1a;--color-text-given:#e0e0e0;--color-text-entry:#90caf9;--color-text-conflict:#ef9a9a;--color-border-cell:#424242;--color-border-box:#9e9e9e;--color-border-focus:#90caf9;--color-bg-keypad-btn:#2a2a2a;--color-text-keypad-btn:#e0e0e0;--color-bg-keypad-btn-active:#1a3a5c}}@media (prefers-contrast:more){:root:not([data-theme]),:root[data-theme=system]{--color-bg:#000;--color-bg-cell:#000;--color-bg-cell-given:#1a1a00;--color-bg-cell-selected:#ff0;--color-bg-cell-peer:#020;--color-bg-cell-matching:#001a3a;--color-text-given:#fff;--color-text-entry:#ff0;--color-text-conflict:#f66;--color-border-cell:#666;--color-border-box:#fff;--color-border-focus:#ff0;--color-bg-keypad-btn:#000;--color-text-keypad-btn:#fff;--color-bg-keypad-btn-active:#ff0}}@media (forced-colors:active){:root{--color-bg-cell-selected:Highlight;--color-text-entry:ButtonText;--color-border-box:ButtonText;--color-border-focus:Highlight}}.game-screen{background:var(--color-bg);box-sizing:border-box;flex-direction:column;align-items:center;gap:8px;min-height:100dvh;padding:16px;display:flex}.game-screen__toolbar{flex-wrap:wrap;align-items:center;gap:8px;width:100%;max-width:360px;display:flex}.toolbar-btn{border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);cursor:pointer;border-radius:4px;min-height:32px;padding:6px 12px;font-size:.875rem}.toolbar-btn:disabled{opacity:.4;cursor:default}.game-screen__pause{flex-direction:column;align-items:center;gap:16px;padding:32px 16px;display:flex}.pause-message{color:var(--color-text);text-align:center;margin:0;font-size:1.25rem}.pause-resume-btn{border:2px solid var(--color-border);background:var(--color-bg);color:var(--color-text);cursor:pointer;border-radius:6px;min-height:44px;padding:12px 24px;font-size:1rem}.solved-banner{color:var(--color-text-given);text-align:center;padding:1em;font-size:2rem;font-weight:700}.settings-overlay{z-index:100;background:#00000080;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.settings-panel{background:var(--color-bg);color:var(--color-text);box-sizing:border-box;border-radius:12px 12px 0 0;width:100%;max-width:480px;max-height:80dvh;padding:16px;overflow-y:auto}.settings-panel__header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.settings-panel__title{margin:0;font-size:1.125rem;font-weight:700}.settings-panel__close{cursor:pointer;color:var(--color-text);background:0 0;border:none;min-width:32px;min-height:32px;padding:4px 8px;font-size:1.25rem}.settings-panel__section{margin-bottom:16px}.settings-panel__section fieldset{border:1px solid var(--color-border);border-radius:6px;margin:0;padding:8px 12px}.settings-panel__section legend{padding:0 4px;font-weight:600}.settings-panel__option{cursor:pointer;align-items:center;gap:8px;min-height:32px;padding:4px 0;display:flex}[data-layout=numpad] .keypad{grid-template-columns:repeat(3,1fr)}[data-layout=numpad] .keypad-erase{grid-column:1/-1}[data-layout=single-row] .keypad{grid-template-columns:repeat(10,1fr)}[data-layout=single-row] .keypad-erase{grid-column:auto}[data-layout=two-rows] .keypad{grid-template-columns:repeat(5,1fr)}[data-layout=two-rows] .keypad-erase{grid-column:auto}.keypad-area{justify-content:center;width:100%;display:flex}[data-align=left] .keypad-area{justify-content:flex-start}[data-align=right] .keypad-area{justify-content:flex-end}@media (orientation:landscape) and (width<=899px){.game-screen{flex-direction:row;align-items:flex-start}.game-screen>.board,.game-screen>.keypad-area{flex:none}.game-screen>.keypad-area--primary{order:1}.game-screen>.board{order:2}.game-screen>.keypad-area--secondary,[data-landscape-arrange=right]>.keypad-area--primary{order:3}[data-landscape-arrange=right]>.board{order:1}[data-landscape-arrange=split] .keypad-area--primary .keypad-btn:nth-child(n+6),[data-landscape-arrange=split] .keypad-area--secondary .keypad-btn:nth-child(-n+5){display:none}}.board{grid-template-columns:repeat(9, var(--size-cell));grid-template-rows:repeat(9, var(--size-cell));border-top:2px solid var(--color-border-box);border-left:2px solid var(--color-border-box);display:grid}.board>[role=row]{display:contents}.cell{border-right:1px solid var(--color-border-cell);border-bottom:1px solid var(--color-border-cell);font-size:calc(var(--size-cell,40px) * .5);cursor:pointer;background:var(--color-bg-cell);color:var(--color-text-entry);-webkit-user-select:none;user-select:none;border-radius:var(--radius-cell);box-sizing:border-box;outline:none;justify-content:center;align-items:center;display:flex}.cell[data-given]{background:var(--color-bg-cell-given);color:var(--color-text-given);cursor:default}.cell[data-selected]{background:var(--color-bg-cell-selected)}.cell[data-conflict]{color:var(--color-text-conflict)}.cell[data-col="2"],.cell[data-col="5"],.cell[data-col="8"]{border-right:2px solid var(--color-border-box)}.cell[data-row="2"],.cell[data-row="5"],.cell[data-row="8"]{border-bottom:2px solid var(--color-border-box)}.cell:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:-2px;z-index:1;position:relative}.pencil-marks{grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);width:100%;height:100%;display:grid}.pencil-mark{font-size:calc(var(--size-cell,40px) * .22);color:var(--color-text-pencil,var(--color-text-entry));justify-content:center;align-items:center;line-height:1;display:flex}.keypad{grid-template-columns:repeat(3,1fr);gap:4px;padding-top:8px;display:grid}.keypad-btn{background:var(--color-bg-keypad-btn);color:var(--color-text-keypad-btn);border:1px solid var(--color-border-cell);cursor:pointer;border-radius:4px;min-width:0;padding:.5em;font-size:1.25rem}.keypad-btn:active{background:var(--color-bg-keypad-btn-active)}.keypad-erase{grid-column:1/-1}
