@charset "UTF-8";
:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:light;--bg:#f5f7fb;--surface:#fff;--ink:#172d4c;--muted:#60718a;--accent:#2466e8;--accent-soft:#e8f0ff;--peer:#edf2f9;--match:#cce0ff;--selected:#8ebaff;--line:#d8e0eb;--strong-line:#273f61;--error:#bd263c;--error-bg:#fde9ed;--shadow:0 14px 45px #122d5010;--nav:#ffffffee;--focus:#2466e8;--success:#146b52;--success-bg:#e5f6ef;font-size:16px;line-height:1.5;background:var(--bg);color:var(--ink)}
:root[data-theme=dark]{color-scheme:dark;--bg:#111b2b;--surface:#18263c;--ink:#e3ecfa;--muted:#a4b3cc;--accent:#82b0ff;--accent-soft:#213c61;--peer:#21324a;--match:#2c4c76;--selected:#386298;--line:#35445b;--strong-line:#a6bad8;--error:#ff98a6;--error-bg:#4a263b;--nav:#18263cf0;--success:#8ed9be;--success-bg:#1e3c37;--shadow:0 14px 45px #0002;--focus:#82b0ff}

:root[data-palette=forest]{--bg:#f3f8f4;--ink:#19382c;--muted:#526e60;--accent:#176448;--accent-soft:#e2f2e8;--peer:#edf5ef;--match:#cbe6d6;--selected:#a3d2b7;--line:#d2e1d7;--strong-line:#305542;--focus:#176448}
:root[data-palette=plum]{--bg:#faf5fb;--ink:#382640;--muted:#75627c;--accent:#7b388b;--accent-soft:#f3e7f7;--peer:#f5edf7;--match:#e9d3f0;--selected:#d8b3e4;--line:#e5d8e9;--strong-line:#60406c;--focus:#7b388b}
:root[data-palette=amber]{--bg:#fbf7ef;--ink:#3d301d;--muted:#76664c;--accent:#87520d;--accent-soft:#faedd5;--peer:#f7f1e5;--match:#f2dfb7;--selected:#e9c78b;--line:#e6ddcc;--strong-line:#645031;--focus:#87520d}
:root[data-theme=dark][data-palette=forest]{--bg:#12231c;--surface:#1a3026;--ink:#e0f0e6;--muted:#a4c1af;--accent:#83d4a8;--accent-soft:#244a36;--peer:#243d30;--match:#30573f;--selected:#3a644c;--line:#385346;--strong-line:#a1c4ae;--nav:#1a3026f0;--focus:#83d4a8}
:root[data-theme=dark][data-palette=plum]{--bg:#241a2c;--surface:#32233c;--ink:#f1e6f8;--muted:#c0acca;--accent:#daabef;--accent-soft:#4a305b;--peer:#3c2c47;--match:#553969;--selected:#67467e;--line:#55435f;--strong-line:#c4a9d4;--nav:#32233cf0;--focus:#daabef}
:root[data-theme=dark][data-palette=amber]{--bg:#261f15;--surface:#352c1e;--ink:#f5ebd8;--muted:#c7b698;--accent:#edc17c;--accent-soft:#514025;--peer:#413522;--match:#5a472a;--selected:#6d5631;--line:#594b34;--strong-line:#cbb68f;--nav:#352c1ef0;--focus:#edc17c}
:root[data-palette=teal]{--bg:#f5faf9;--surface:#fdfefe;--ink:#1c3b38;--muted:#4b716e;--accent:#135852;--accent-soft:#e6f4f3;--peer:#eef6f5;--match:#d1ebe9;--selected:#b7e1de;--line:#d0e2e0;--strong-line:#366360;--nav:#fdfefef0;--focus:#135852}
:root[data-theme=dark][data-palette=teal]{--bg:#111f1e;--surface:#1a2e2c;--ink:#e7f3f2;--muted:#abc9c7;--accent:#9eeae4;--accent-soft:#244c48;--peer:#233e3b;--match:#2e5956;--selected:#2d5754;--line:#3d5c59;--strong-line:#a3c8c4;--nav:#1a2e2cf0;--focus:#9eeae4}
:root[data-palette=ocean]{--bg:#f5f8fa;--surface:#fdfefe;--ink:#1c333b;--muted:#4b6871;--accent:#10485b;--accent-soft:#e6f1f4;--peer:#eef4f6;--match:#d1e4eb;--selected:#b7d7e1;--line:#d0dde2;--strong-line:#365863;--nav:#fdfefef0;--focus:#10485b}
:root[data-theme=dark][data-palette=ocean]{--bg:#111c1f;--surface:#1a292e;--ink:#e7f0f3;--muted:#abc2c9;--accent:#9bd9ed;--accent-soft:#24424c;--peer:#23373e;--match:#2e4e59;--selected:#2d4d57;--line:#3d545c;--strong-line:#a3bec8;--nav:#1a292ef0;--focus:#9bd9ed}
:root[data-palette=sky]{--bg:#f5f8fa;--surface:#fdfefe;--ink:#1c2e3b;--muted:#4b6171;--accent:#133b58;--accent-soft:#e6eef4;--peer:#eef3f6;--match:#d1e0eb;--selected:#b7d0e1;--line:#d0dae2;--strong-line:#365063;--nav:#fdfefef0;--focus:#133b58}
:root[data-theme=dark][data-palette=sky]{--bg:#11191f;--surface:#1a252e;--ink:#e7eef3;--muted:#abbdc9;--accent:#9ecbea;--accent-soft:#243b4c;--peer:#23333e;--match:#2e4759;--selected:#2d4657;--line:#3d4f5c;--strong-line:#a3b8c8;--nav:#1a252ef0;--focus:#9ecbea}
:root[data-palette=navy]{--bg:#f5f7fa;--surface:#fdfefe;--ink:#1c263b;--muted:#4b5871;--accent:#1d2e4e;--accent-soft:#e6ebf4;--peer:#eef1f6;--match:#d1d9eb;--selected:#b7c5e1;--line:#d0d6e2;--strong-line:#364563;--nav:#fdfefef0;--focus:#1d2e4e}
:root[data-theme=dark][data-palette=navy]{--bg:#11161f;--surface:#1a202e;--ink:#e7ebf3;--muted:#abb5c9;--accent:#aabcdf;--accent-soft:#24324c;--peer:#232c3e;--match:#2e3c59;--selected:#2d3c57;--line:#3d475c;--strong-line:#a3afc8;--nav:#1a202ef0;--focus:#aabcdf}
:root[data-palette=indigo]{--bg:#f5f5fa;--surface:#fdfdfe;--ink:#1c1c3b;--muted:#4b4b71;--accent:#161655;--accent-soft:#e6e6f4;--peer:#eeeef6;--match:#d1d1eb;--selected:#b7b7e1;--line:#d0d0e2;--strong-line:#363663;--nav:#fdfdfef0;--focus:#161655}
:root[data-theme=dark][data-palette=indigo]{--bg:#11111f;--surface:#1a1a2e;--ink:#e7e7f3;--muted:#ababc9;--accent:#a1a1e8;--accent-soft:#24244c;--peer:#23233e;--match:#2e2e59;--selected:#2d2d57;--line:#3d3d5c;--strong-line:#a3a3c8;--nav:#1a1a2ef0;--focus:#a1a1e8}
:root[data-palette=lavender]{--bg:#f7f5fa;--surface:#fefdfe;--ink:#261c3b;--muted:#584b71;--accent:#2e1d4e;--accent-soft:#ebe6f4;--peer:#f1eef6;--match:#d9d1eb;--selected:#c5b7e1;--line:#d6d0e2;--strong-line:#453663;--nav:#fefdfef0;--focus:#2e1d4e}
:root[data-theme=dark][data-palette=lavender]{--bg:#16111f;--surface:#201a2e;--ink:#ebe7f3;--muted:#b5abc9;--accent:#bcaadf;--accent-soft:#32244c;--peer:#2c233e;--match:#3c2e59;--selected:#3c2d57;--line:#473d5c;--strong-line:#afa3c8;--nav:#201a2ef0;--focus:#bcaadf}
:root[data-palette=violet]{--bg:#f8f5fa;--surface:#fefdfe;--ink:#301c3b;--muted:#654b71;--accent:#411358;--accent-soft:#f0e6f4;--peer:#f4eef6;--match:#e2d1eb;--selected:#d3b7e1;--line:#dcd0e2;--strong-line:#543663;--nav:#fefdfef0;--focus:#411358}
:root[data-theme=dark][data-palette=violet]{--bg:#1a111f;--surface:#271a2e;--ink:#efe7f3;--muted:#bfabc9;--accent:#d19eea;--accent-soft:#3f244c;--peer:#35233e;--match:#4b2e59;--selected:#492d57;--line:#523d5c;--strong-line:#bba3c8;--nav:#271a2ef0;--focus:#d19eea}
:root[data-palette=orchid]{--bg:#f9f5fa;--surface:#fefdfe;--ink:#381c3b;--muted:#6e4b71;--accent:#4c1b50;--accent-soft:#f3e6f4;--peer:#f5eef6;--match:#e9d1eb;--selected:#deb7e1;--line:#e0d0e2;--strong-line:#603663;--nav:#fefdfef0;--focus:#4c1b50}
:root[data-theme=dark][data-palette=orchid]{--bg:#1e111f;--surface:#2c1a2e;--ink:#f2e7f3;--muted:#c7abc9;--accent:#dda7e2;--accent-soft:#48244c;--peer:#3b233e;--match:#562e59;--selected:#542d57;--line:#593d5c;--strong-line:#c4a3c8;--nav:#2c1a2ef0;--focus:#dda7e2}
:root[data-palette=magenta]{--bg:#faf5f8;--surface:#fefdfe;--ink:#3b1c33;--muted:#714b68;--accent:#551646;--accent-soft:#f4e6f1;--peer:#f6eef4;--match:#ebd1e4;--selected:#e1b7d7;--line:#e2d0dd;--strong-line:#633658;--nav:#fefdfef0;--focus:#551646}
:root[data-theme=dark][data-palette=magenta]{--bg:#1f111c;--surface:#2e1a29;--ink:#f3e7f0;--muted:#c9abc2;--accent:#e8a1d6;--accent-soft:#4c2442;--peer:#3e2337;--match:#592e4e;--selected:#572d4d;--line:#5c3d54;--strong-line:#c8a3be;--nav:#2e1a29f0;--focus:#e8a1d6}
:root[data-palette=rose]{--bg:#faf5f7;--surface:#fefdfe;--ink:#3b1c26;--muted:#714b58;--accent:#53182b;--accent-soft:#f4e6eb;--peer:#f6eef1;--match:#ebd1d9;--selected:#e1b7c5;--line:#e2d0d6;--strong-line:#633645;--nav:#fefdfef0;--focus:#53182b}
:root[data-theme=dark][data-palette=rose]{--bg:#1f1116;--surface:#2e1a20;--ink:#f3e7eb;--muted:#c9abb5;--accent:#e5a4ba;--accent-soft:#4c2432;--peer:#3e232c;--match:#592e3c;--selected:#572d3c;--line:#5c3d47;--strong-line:#c8a3af;--nav:#2e1a20f0;--focus:#e5a4ba}
:root[data-palette=cherry]{--bg:#faf5f5;--surface:#fefdfe;--ink:#3b1c1f;--muted:#714b4f;--accent:#581319;--accent-soft:#f4e6e7;--peer:#f6eeef;--match:#ebd1d3;--selected:#e1b7ba;--line:#e2d0d1;--strong-line:#633639;--nav:#fefdfef0;--focus:#581319}
:root[data-theme=dark][data-palette=cherry]{--bg:#1f1113;--surface:#2e1a1b;--ink:#f3e7e8;--muted:#c9abae;--accent:#ea9ea5;--accent-soft:#4c2428;--peer:#3e2326;--match:#592e32;--selected:#572d31;--line:#5c3d40;--strong-line:#c8a3a6;--nav:#2e1a1bf0;--focus:#ea9ea5}
:root[data-palette=coral]{--bg:#faf6f5;--surface:#fefefd;--ink:#3b211c;--muted:#71524b;--accent:#552016;--accent-soft:#f4e8e6;--peer:#f6f0ee;--match:#ebd5d1;--selected:#e1beb7;--line:#e2d3d0;--strong-line:#633d36;--nav:#fefefdf0;--focus:#552016}
:root[data-theme=dark][data-palette=coral]{--bg:#1f1411;--surface:#2e1d1a;--ink:#f3e9e7;--muted:#c9b0ab;--accent:#e8ada1;--accent-soft:#4c2b24;--peer:#3e2823;--match:#59352e;--selected:#57342d;--line:#5c423d;--strong-line:#c8a9a3;--nav:#2e1d1af0;--focus:#e8ada1}
:root[data-palette=terracotta]{--bg:#faf7f5;--surface:#fefefd;--ink:#3b261c;--muted:#71584b;--accent:#4e2e1d;--accent-soft:#f4ebe6;--peer:#f6f1ee;--match:#ebd9d1;--selected:#e1c5b7;--line:#e2d6d0;--strong-line:#634536;--nav:#fefefdf0;--focus:#4e2e1d}
:root[data-theme=dark][data-palette=terracotta]{--bg:#1f1611;--surface:#2e201a;--ink:#f3ebe7;--muted:#c9b5ab;--accent:#dfbcaa;--accent-soft:#4c3224;--peer:#3e2c23;--match:#593c2e;--selected:#573c2d;--line:#5c473d;--strong-line:#c8afa3;--nav:#2e201af0;--focus:#dfbcaa}
:root[data-palette=copper]{--bg:#faf7f5;--surface:#fefefd;--ink:#3b2a1c;--muted:#715d4b;--accent:#553416;--accent-soft:#f4ede6;--peer:#f6f2ee;--match:#ebddd1;--selected:#e1cbb7;--line:#e2d8d0;--strong-line:#634b36;--nav:#fefefdf0;--focus:#553416}
:root[data-theme=dark][data-palette=copper]{--bg:#1f1811;--surface:#2e231a;--ink:#f3ede7;--muted:#c9b9ab;--accent:#e8c2a1;--accent-soft:#4c3724;--peer:#3e3023;--match:#59422e;--selected:#57412d;--line:#5c4b3d;--strong-line:#c8b4a3;--nav:#2e231af0;--focus:#e8c2a1}
:root[data-palette=gold]{--bg:#faf8f5;--surface:#fefefd;--ink:#3b331c;--muted:#71684b;--accent:#584713;--accent-soft:#f4f1e6;--peer:#f6f4ee;--match:#ebe4d1;--selected:#e1d7b7;--line:#e2ddd0;--strong-line:#635836;--nav:#fefefdf0;--focus:#584713}
:root[data-theme=dark][data-palette=gold]{--bg:#1f1c11;--surface:#2e291a;--ink:#f3f0e7;--muted:#c9c2ab;--accent:#ead79e;--accent-soft:#4c4224;--peer:#3e3723;--match:#594e2e;--selected:#574d2d;--line:#5c543d;--strong-line:#c8bea3;--nav:#2e291af0;--focus:#ead79e}
:root[data-palette=olive]{--bg:#f9faf5;--surface:#fefefd;--ink:#383b1c;--muted:#6e714b;--accent:#474b20;--accent-soft:#f3f4e6;--peer:#f5f6ee;--match:#e9ebd1;--selected:#dee1b7;--line:#e0e2d0;--strong-line:#606336;--nav:#fefefdf0;--focus:#474b20}
:root[data-theme=dark][data-palette=olive]{--bg:#1e1f11;--surface:#2c2e1a;--ink:#f2f3e7;--muted:#c7c9ab;--accent:#d8dcad;--accent-soft:#484c24;--peer:#3b3e23;--match:#56592e;--selected:#54572d;--line:#595c3d;--strong-line:#c4c8a3;--nav:#2c2e1af0;--focus:#d8dcad}
:root[data-palette=lime]{--bg:#f8faf5;--surface:#fefefd;--ink:#2e3b1c;--muted:#61714b;--accent:#3a5318;--accent-soft:#eef4e6;--peer:#f3f6ee;--match:#e0ebd1;--selected:#d0e1b7;--line:#dae2d0;--strong-line:#506336;--nav:#fefefdf0;--focus:#3a5318}
:root[data-theme=dark][data-palette=lime]{--bg:#191f11;--surface:#252e1a;--ink:#eef3e7;--muted:#bdc9ab;--accent:#cae5a4;--accent-soft:#3b4c24;--peer:#333e23;--match:#47592e;--selected:#46572d;--line:#4f5c3d;--strong-line:#b8c8a3;--nav:#252e1af0;--focus:#cae5a4}
:root[data-palette=sage]{--bg:#f5faf6;--surface:#fdfefe;--ink:#1c3b24;--muted:#4b7155;--accent:#28432e;--accent-soft:#e6f4ea;--peer:#eef6f0;--match:#d1ebd7;--selected:#b7e1c1;--line:#d0e2d4;--strong-line:#366341;--nav:#fdfefef0;--focus:#28432e}
:root[data-theme=dark][data-palette=sage]{--bg:#111f15;--surface:#1a2e1f;--ink:#e7f3ea;--muted:#abc9b3;--accent:#b6d3bd;--accent-soft:#244c2e;--peer:#233e2a;--match:#2e5939;--selected:#2d5737;--line:#3d5c45;--strong-line:#a3c8ac;--nav:#1a2e1ff0;--focus:#b6d3bd}
:root[data-palette=slate]{--bg:#f5f7fa;--surface:#fdfefe;--ink:#1c293b;--muted:#4b5b71;--accent:#2e343d;--accent-soft:#e6ecf4;--peer:#eef2f6;--match:#d1dceb;--selected:#b7c8e1;--line:#d0d7e2;--strong-line:#364963;--nav:#fdfefef0;--focus:#2e343d}
:root[data-theme=dark][data-palette=slate]{--bg:#11171f;--surface:#1a222e;--ink:#e7ecf3;--muted:#abb8c9;--accent:#bcc3cd;--accent-soft:#24354c;--peer:#232e3e;--match:#2e4059;--selected:#2d3f57;--line:#3d4a5c;--strong-line:#a3b2c8;--nav:#1a222ef0;--focus:#bcc3cd}
:root[data-palette=espresso]{--bg:#faf7f5;--surface:#fefefd;--ink:#3b2b1c;--muted:#715e4b;--accent:#433528;--accent-soft:#f4ede6;--peer:#f6f2ee;--match:#ebded1;--selected:#e1ccb7;--line:#e2d9d0;--strong-line:#634c36;--nav:#fefefdf0;--focus:#433528}
:root[data-theme=dark][data-palette=espresso]{--bg:#1f1811;--surface:#2e241a;--ink:#f3ede7;--muted:#c9baab;--accent:#d3c4b6;--accent-soft:#4c3824;--peer:#3e3023;--match:#59442e;--selected:#57422d;--line:#5c4c3d;--strong-line:#c8b5a3;--nav:#2e241af0;--focus:#d3c4b6}
.palette-swatches{display:flex;gap:5px;margin-top:9px}.palette-swatches i{width:18px;height:18px;border-radius:50%;background:var(--accent)}.palette-swatches i:nth-child(2){background:var(--selected)}.palette-swatches i:nth-child(3){background:var(--match);border:1px solid var(--line)}

*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,select,input{ -webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;border:0;background:none;touch-action:manipulation}button:disabled{cursor:default;opacity:.4}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--focus);outline-offset:3px}button:hover:not(:disabled){filter:brightness(.98)}a{color:var(--accent)}[hidden]{display:none!important}h1,h2,p{margin:0}h1{font-size:1.8rem;letter-spacing:-.045em;line-height:1.15;font-weight:750}h2{font-size:1.125rem;letter-spacing:-.015em;line-height:1.3}svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.app{max-width:980px;margin:auto;padding:env(safe-area-inset-top) 24px calc(98px + env(safe-area-inset-bottom))}.header{height:96px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);margin-bottom:28px}.brand{padding:0;text-align:left;display:flex;gap:11px;align-items:center;text-decoration:none;color:var(--ink);font-weight:750;font-size:1.35rem;letter-spacing:-.03em;line-height:1.2}.brand img{border-radius:9px}.brand small{display:block;font-size:.75rem;font-weight:500;color:var(--muted);letter-spacing:0;margin-top:3px}.header-actions{display:flex;gap:8px}.icon-button{width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px}.header-actions .icon-button{background:var(--surface);border:1px solid var(--line)}.view{animation:appear .15s ease}.game-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.12em;color:var(--muted);margin-bottom:5px}.pause-button{background:var(--surface);border:1px solid var(--line)}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:36px;align-items:start}.game-metrics{display:flex;align-items:center;justify-content:space-between;font-size:.875rem;color:var(--muted);padding-bottom:12px}.game-metrics b{color:var(--ink);font-weight:650;margin-left:6px}#timer-wrap{display:flex;align-items:center;gap:6px;font-variant-numeric:tabular-nums;font-weight:650;color:var(--ink)}.timer-icon svg{width:17px;height:17px}.board-wrap{position:relative;aspect-ratio:1;width:100%;border-radius:8px;box-shadow:var(--shadow)}.board{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));grid-template-rows:repeat(9,minmax(0,1fr));height:100%;border:2px solid var(--strong-line);border-radius:8px;overflow:hidden;background:var(--surface);isolation:isolate;user-select:none;-webkit-user-select:none}.cell{padding:0;min-width:0;min-height:0;position:relative;display:flex;align-items:center;justify-content:center;border-right:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;color:var(--accent);font-size:clamp(1.2rem,4vw,1.75rem);font-weight:500;line-height:1;background:var(--surface);font-variant-numeric:tabular-nums;transition:background .1s ease}.cell.given{color:var(--ink);font-weight:650}.cell:nth-child(9n){border-right:0}.cell:nth-child(n+73){border-bottom:0}.cell.box-right{border-right:2px solid var(--strong-line)}.cell.box-bottom{border-bottom:2px solid var(--strong-line)}.cell.peer{background:var(--peer)}.cell.same{background:var(--match)}.cell.wrong,.cell.duplicate{color:var(--error);background:var(--error-bg)}.cell.selected{background:var(--selected);box-shadow:inset 0 0 0 2px var(--accent)}.cell:focus-visible{outline:0;box-shadow:inset 0 0 0 3px var(--focus);z-index:1}.cell.note-match .note-highlight{color:var(--accent);background:var(--match);border-radius:2px;font-weight:750}.pencil-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);position:absolute;inset:3px;color:var(--muted);font-size:clamp(.65rem,1.7vw,.8rem);line-height:1}.pencil-grid span{display:flex;align-items:center;justify-content:center}.board-progress{position:relative;display:flex;justify-content:space-between;gap:12px;font-size:.75rem;color:var(--muted);padding:14px 0 12px}.board-progress progress{position:absolute;bottom:0;height:3px;width:100%;border-radius:3px}progress{border:0;background:var(--line);color:var(--accent);accent-color:var(--accent);overflow:hidden}progress::-webkit-progress-bar{background:var(--line)}progress::-webkit-progress-value{background:var(--accent)}progress::-moz-progress-bar{background:var(--accent)}.game-controls{padding-top:32px}.toolbar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin-bottom:20px}.tool{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:58px;border-radius:10px;font-size:.875rem;color:var(--muted);padding:5px 0}.tool svg{width:23px;height:23px}.tool.active{background:var(--accent-soft);color:var(--accent);font-weight:650}.number-pad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.number-button{background:var(--surface);border:1px solid var(--line);border-radius:12px;min-height:65px;color:var(--accent);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-variant-numeric:tabular-nums}.number-button strong{font-size:1.65rem;line-height:1.1;font-weight:550}.number-button small{font-size:.75rem;color:var(--muted)}.number-button.all-placed{opacity:.4}.small-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:12px 0}.text-button{color:var(--accent);font-size:.875rem;min-height:44px;padding:4px 0;text-align:left}.new-actions{display:grid;grid-template-columns:1fr;gap:10px;margin-top:16px}.primary,.secondary{border-radius:12px;padding:12px 16px;min-height:48px;font-weight:650;line-height:1.3;text-align:center}.primary{background:var(--accent);color:#fff}:root[data-theme=dark] .primary{color:#111b2b}.secondary{background:var(--surface);color:var(--accent);border:1px solid var(--line)}.wide{width:100%}.keyboard-tip{font-size:.75rem;text-align:center;color:var(--muted);margin-top:18px}.hint-message{background:var(--accent-soft);border-radius:12px;padding:12px 14px;color:var(--ink);font-size:.875rem;line-height:1.5}.board-overlay{position:absolute;inset:0;background:var(--surface);display:flex;align-items:center;justify-content:center;border:2px solid var(--strong-line);border-radius:8px;z-index:2;padding:18px}.overlay-card{text-align:center;max-width:330px}.overlay-symbol{font-size:2.5rem;line-height:1;margin-bottom:12px;color:var(--accent)}.overlay-card h2{font-size:1.35rem;margin-bottom:9px}.overlay-card p{color:var(--muted);font-size:.875rem;margin-bottom:18px}.overlay-card button{display:block;width:100%;margin-top:8px;min-height:44px}.navigation{display:flex;align-items:center;justify-content:center;gap:20px;position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:var(--nav);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:20px;padding:8px 20px;box-shadow:var(--shadow);z-index:10}.nav-button{display:flex;align-items:center;gap:7px;min-height:44px;color:var(--muted);font-size:.875rem;padding:7px 10px;border-radius:12px}.nav-button[aria-current=page]{color:var(--accent);background:var(--accent-soft);font-weight:650}.nav-button svg{width:21px;height:21px}.content-view{max-width:580px;margin:auto}.content-view>h1{margin-bottom:24px}.content-view>h2{margin:26px 0 12px}.calendar-card{margin-top:22px;background:var(--surface);padding:18px;border-radius:18px;border:1px solid var(--line);box-shadow:var(--shadow)}.calendar-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.calendar-heading h2{font-size:1.125rem}.calendar-week,.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-week{font-size:.75rem;color:var(--muted);text-align:center;margin-bottom:8px}.calendar-day{border-radius:10px;min-height:48px;background:var(--bg);font-variant-numeric:tabular-nums;position:relative;font-size:.95rem;border:1px solid transparent}.calendar-day.today{border-color:var(--accent);color:var(--accent);font-weight:750}.calendar-day.done{background:var(--accent-soft);color:var(--accent);font-weight:650}.calendar-day.done:after{content:'✓';font-size:.6rem;position:absolute;right:5px;bottom:3px}.calendar-day:disabled{background:none}.monthly-progress{margin-top:18px}.monthly-progress p{display:flex;justify-content:space-between;font-size:.875rem;margin-bottom:10px}.monthly-progress progress{width:100%;height:6px;border-radius:5px}.muted{color:var(--muted);font-size:.875rem;line-height:1.6;margin-top:18px}.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.summary-grid div{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px 12px;text-align:center}.summary-grid strong{font-size:2rem;line-height:1.2;font-variant-numeric:tabular-nums}.summary-grid span{font-size:.75rem;color:var(--muted);margin-top:7px}.level-stats{display:grid;gap:10px}.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px}.stat-card header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.stat-card header span{font-size:.875rem;color:var(--muted)}.stat-card dl{display:grid;grid-template-columns:repeat(3,1fr);margin:0;gap:12px}.stat-card dt{font-size:.75rem;color:var(--muted);margin-top:2px}.stat-card dd{margin:0;font-size:.95rem;font-weight:650;font-variant-numeric:tabular-nums}.achievement{display:flex;gap:12px;align-items:center;margin:14px 0}.achievement-mark{width:44px;height:44px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--peer);border:1px solid var(--line);border-radius:13px;font-weight:650;color:var(--muted);font-size:1.1rem}.achievement.unlocked .achievement-mark{color:var(--accent);background:var(--accent-soft);border-color:var(--accent)}.achievement strong{display:block;font-size:.95rem}.achievement p{font-size:.875rem;color:var(--muted)}.achievement .earned{margin-left:auto;font-size:.75rem;color:var(--muted)}.settings-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}.setting-row{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--line);cursor:pointer;min-height:72px}.setting-row:last-child{border-bottom:0}.setting-row>span{flex:1}.setting-row strong{display:block;font-size:.95rem;font-weight:600}.setting-row small{display:block;font-size:.875rem;color:var(--muted);line-height:1.4;margin-top:4px}.setting-row input[type=checkbox]{appearance:none;-webkit-appearance:none;position:relative;width:44px;height:26px;flex-shrink:0;border-radius:20px;background:var(--line);margin:0;cursor:pointer}.setting-row input[type=checkbox]:before{content:'';position:absolute;width:20px;height:20px;background:#fff;border-radius:50%;left:3px;top:3px;box-shadow:0 1px 3px #0002;transition:transform .15s}.setting-row input[type=checkbox]:checked{background:var(--accent)}.setting-row input[type=checkbox]:checked:before{transform:translateX(18px)}select{background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:8px;min-height:44px;max-width:125px;color:var(--ink);font-size:.875rem}.data-card{padding:16px}.data-card p{font-size:.875rem;color:var(--muted);line-height:1.6}.data-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.data-actions button{font-size:.875rem;padding:10px 12px}.danger{color:var(--error)}#settings-install-button{margin-top:18px}.version{text-align:center}.banner{display:flex;align-items:center;justify-content:space-between;background:var(--accent-soft);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:18px;font-size:.875rem;gap:12px}.banner button{color:var(--accent);font-weight:650;min-height:36px}.banner.warning{background:var(--error-bg);color:var(--error)}.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:105px;width:max-content;max-width:calc(100% - 32px);padding:12px 18px;border-radius:14px;background:var(--ink);color:var(--surface);font-size:.875rem;z-index:30;box-shadow:var(--shadow)}.modal{position:fixed;border:1px solid var(--line);border-radius:20px;background:var(--surface);color:var(--ink);padding:28px;max-width:460px;width:calc(100% - 32px);max-height:calc(100dvh - 40px);overflow-y:auto;box-shadow:0 24px 80px #0003;margin:auto}.modal::backdrop{background:#0d1c3690;backdrop-filter:blur(3px)}.modal-close{position:absolute;top:8px;right:8px;font-size:1.7rem;font-weight:400}.modal h2{padding-right:20px;font-size:1.35rem;margin-bottom:14px}.modal p,.modal li{font-size:.95rem;line-height:1.6;color:var(--muted)}.modal p+p{margin-top:12px}.modal ul{padding-left:20px}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:22px}.modal-actions button{flex:1}.difficulty-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.difficulty-choice{padding:14px 12px;background:var(--bg);border:1px solid var(--line);border-radius:12px;text-align:left;min-height:74px}.difficulty-choice strong{display:block}.difficulty-choice small{display:block;color:var(--muted);font-size:.75rem;margin-top:3px}.difficulty-choice.current{border-color:var(--accent);background:var(--accent-soft)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.busy .board{opacity:.4;pointer-events:none}@keyframes appear{from{opacity:.7}to{opacity:1}}@media(prefers-reduced-motion:reduce){*,*:before{transition:none!important;animation:none!important}}
@media(max-width:740px){.app{max-width:520px;padding-left:16px;padding-right:16px;padding-bottom:calc(92px + env(safe-area-inset-bottom))}.header{height:78px;margin-bottom:20px}.game-heading{margin-bottom:14px}h1{font-size:1.65rem}.game-layout{display:block}.game-controls{padding-top:14px}.game-metrics{padding-bottom:10px}.toolbar{margin-bottom:12px;gap:4px}.tool{min-height:54px}.number-pad{grid-template-columns:repeat(9,minmax(0,1fr));gap:4px}.number-button{min-height:59px;border-radius:9px;border-color:transparent;background:var(--accent-soft)}.number-button strong{font-size:1.5rem}.number-button small{font-size:.65rem}.small-actions{margin:4px 0}.new-actions{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:8px;gap:10px}.new-actions button{font-size:.875rem;padding:12px 8px}.keyboard-tip{display:none}.navigation{left:0;bottom:0;transform:none;width:100%;border-radius:0;border-left:0;border-right:0;border-bottom:0;padding:6px 12px calc(6px + env(safe-area-inset-bottom));gap:0;justify-content:space-around}.nav-button{flex-direction:column;gap:3px;min-width:65px;min-height:52px;font-size:.75rem;padding:5px 10px}.nav-button[aria-current=page]{background:none}.nav-button svg{width:23px;height:23px}.content-view>h1{margin-bottom:22px}.cell{font-size:clamp(1.15rem,5.5vw,1.7rem)}.pencil-grid{font-size:clamp(.58rem,2.3vw,.75rem)}.board-progress{padding-top:10px;font-size:.75rem}.toast{bottom:calc(80px + env(safe-area-inset-bottom))}.calendar-card{padding:12px}.achievement .earned{font-size:.75rem}.header-actions{gap:5px}}
@media(max-width:360px){.app{padding-left:12px;padding-right:12px}.brand{font-size:1.2rem}.header{height:70px;margin-bottom:16px}.game-heading{margin-bottom:10px}.tool{font-size:.8rem}.toolbar{gap:2px}.number-pad{gap:2px}.number-button strong{font-size:1.3rem}.number-button small{font-size:.6rem}.summary-grid{gap:6px}.summary-grid span{font-size:.7rem}.calendar{gap:3px}.calendar-day{min-height:42px}.modal{padding:24px 18px}}
/* Keep the keypad above the iPhone Home Screen navigation with safe-area insets. */
@media(max-width:740px){.header{height:64px;margin-bottom:12px}.game-heading{margin-bottom:8px}.game-controls{padding-top:10px}.toolbar{margin-bottom:8px}.tool{min-height:50px}.board-progress{padding-top:7px}}
@media(max-width:740px){.header{height:auto;min-height:60px;padding:8px 0;margin-bottom:8px}.toolbar{margin-bottom:4px}.tool span{max-width:100%;overflow-wrap:anywhere}.nav-button{flex:1 1 0;min-width:0}.nav-button span{max-width:100%;overflow-wrap:anywhere}}
.heading-actions{display:flex;align-items:center;gap:8px}
@media(min-width:741px){.app{max-width:900px}.board-column{width:min(100%,max(280px,calc(100dvh - 380px)))}}

.share-link{width:100%;min-height:44px;margin:16px 0;padding:10px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--ink);font-size:.9rem}.share-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.share-qr{display:block;max-width:100%;height:auto;margin:16px auto;border-radius:12px}
