.sg{color-scheme:light dark;--line:light-dark(#c9ced8,#3a4254);--line-strong:light-dark(#1d2433,#cfd5e3);--cell:light-dark(#fff,#1a1f2a);--peer:light-dark(#eef2f9,#232a38);--same:light-dark(#fff1c9,#4a3d12);--given:light-dark(#1d2433,#e8ebf2);--bad:light-dark(#b3261e,#ff9a92);--badbg:light-dark(#fde7e5,#4a1f1c);--hintbg:light-dark(#e4f5e9,#1d3a28);--btn:light-dark(#fff,#1f2533);color:var(--ink);background:var(--bg);box-sizing:border-box;max-width:640px;margin:0 auto;padding:8px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.sg[data-theme=light]{color-scheme:light}.sg[data-theme=dark]{color-scheme:dark}.sg[data-palette=colorblind]{--entry:light-dark(#004f7c,#8cc8ff);--bad:light-dark(#9a3f00,#ffa766);--same:light-dark(#f0e442,#4a4200);--hintbg:light-dark(#d6ecf8,#1d3a4a);--badbg:light-dark(#ffe9d6,#4d2a10)}.sg *,.sg :before,.sg :after{box-sizing:border-box}.sg-sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.sg-tiers{grid-template-columns:repeat(var(--tiers,5), minmax(0, 1fr));gap:6px;min-height:44px;margin-bottom:8px;display:grid}.sg-tiers .sg-btn{white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.01em;padding:6px 0;font-size:clamp(.7rem,3.4vw,1rem);overflow:hidden}.sg-btn{font:inherit;border:1px solid var(--line);background:var(--btn);min-height:44px;color:var(--ink);cursor:pointer;border-radius:8px;padding:6px 12px}.sg-btn[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);font-weight:700}.sg-primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.sg button:focus-visible,.sg .sg-cell:focus-visible,.sg select:focus-visible,.sg input:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.sg-hud{font-variant-numeric:tabular-nums;color:var(--muted);justify-content:space-between;align-items:center;gap:12px;min-height:28px;display:flex}.sg-tier{color:var(--ink);font-weight:700}.sg-gridwrap{aspect-ratio:1;margin:6px 0;position:relative;container-type:inline-size}.sg-grid{grid-template-rows:repeat(var(--n), 1fr);border:3px solid var(--line-strong);background:var(--line);touch-action:manipulation;-webkit-user-select:none;user-select:none;display:grid}.sg-row{grid-template-columns:repeat(var(--n), 1fr);display:grid}.sg-cell{aspect-ratio:1;background:var(--cell);border-right:1px solid var(--line);border-bottom:1px solid var(--line);cursor:pointer;-webkit-tap-highlight-color:transparent;place-items:center;display:grid;position:relative}.sg-cell.bR{border-right:3px solid var(--line-strong)}.sg-cell.bB{border-bottom:3px solid var(--line-strong)}.sg-val{font-size:calc(100cqw / var(--n) * .62);font-weight:500;line-height:1}.sg-large .sg-val{font-size:calc(100cqw / var(--n) * .75);font-weight:600}.is-given .sg-val{color:var(--given);font-weight:700}.is-entry .sg-val{color:var(--entry)}.sg-notes{grid-template-columns:repeat(var(--nb,3), 1fr);font-size:calc(100cqw / var(--n) * .24);color:var(--muted);text-align:center;pointer-events:none;grid-auto-rows:1fr;padding:6%;line-height:1;display:grid;position:absolute;inset:0}.sg-grid[data-n="4"] .sg-notes{--nb:2;font-size:calc(100cqw / var(--n) * .3)}.sg-grid[data-n="6"] .sg-notes{--nb:3;font-size:calc(100cqw / var(--n) * .28)}.sg-grid[data-n="16"] .sg-notes{--nb:4;font-size:calc(100cqw / var(--n) * .2);padding:2%}.sg-notes:empty{display:none}.is-peer{background:var(--peer)}.is-same{background:var(--same)}.is-same .sg-val{text-underline-offset:3px;text-decoration:underline 2px}.is-sel{background:var(--sel);outline:3px solid var(--accent);outline-offset:-3px;z-index:1}.is-hint{background:var(--hintbg);outline:2px dashed var(--ink);outline-offset:-4px}.is-conflict{background:var(--badbg)}.is-conflict .sg-val{text-decoration:underline wavy var(--bad) 2px;text-underline-offset:4px}.is-conflict:after,.is-wrong:after{content:"!";font-size:calc(100cqw / var(--n) * .25);color:var(--bad);font-weight:800;position:absolute;top:2px;right:4px}.is-wrong .sg-val{color:var(--bad)}.sg-pause{background:var(--bg);border:3px solid var(--line-strong);z-index:2;place-content:center;justify-items:center;gap:12px;font-size:1.4rem;display:grid;position:absolute;inset:0}.sg-pause[hidden]{display:none}.sg-hint{border:1px solid var(--line);border-left:6px solid var(--accent);background:var(--hintbg);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:6px 0;padding:10px 12px;display:flex}.sg-hint p{flex:220px;margin:0}.sg-hint[hidden]{display:none}.sg-tools{grid-template-columns:repeat(auto-fill,minmax(5.4rem,1fr));gap:6px;margin:6px 0;display:grid}.sg-tools .sg-btn{white-space:nowrap;text-overflow:ellipsis;padding:6px 4px;overflow:hidden}.sg-pad{grid-template-columns:repeat(var(--pcols,9), 1fr);gap:6px;display:grid}.sg-left .sg-pad{direction:rtl}.sg-pad-btn{font:inherit;border:1px solid var(--line);background:var(--btn);min-height:52px;color:var(--ink);cursor:pointer;touch-action:manipulation;border-radius:10px;font-size:1.35rem}.sg-pad-btn.is-armed{background:var(--accent);color:var(--accent-ink)}.sg-pad-btn.is-done{opacity:.45;text-decoration:line-through}.sg-dialog{border:2px solid var(--line-strong);background:var(--bg);color:var(--ink);border-radius:12px;max-width:min(92vw,420px);padding:16px}.sg-dialog::backdrop{background:#00000080}.sg-dialog-actions{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.sg-field{align-items:center;gap:8px;margin:8px 0;display:flex}.sg-field select{min-height:36px;margin-left:auto}.sg-keys{padding-left:18px;line-height:1.8}.sg-keys kbd{border:1px solid var(--line);background:var(--btn);border-radius:4px;padding:1px 6px}.sg[data-motion=off] *,.sg[data-motion=reduced] *{transition:none!important;animation:none!important}@media (prefers-reduced-motion:reduce){.sg *{transition:none!important;animation:none!important}}.sg-banner{border:1px solid var(--line);background:var(--peer);border-radius:8px;margin:6px 0;padding:8px 12px}.sg-banner[hidden]{display:none}.sg-cage{pointer-events:none;border:0 dashed var(--muted);position:absolute;inset:3px}.sg-cage.t{border-top-width:2px}.sg-cage.b{border-bottom-width:2px}.sg-cage.l{border-left-width:2px}.sg-cage.r{border-right-width:2px}.sg-sum{font-size:calc(100cqw / var(--n) * .22);color:var(--ink);background:var(--cell);padding:0 2px;font-weight:700;line-height:1.1;position:absolute;top:-3px;left:-1px}.is-peer .sg-sum{background:var(--peer)}.is-same .sg-sum{background:var(--same)}.is-sel .sg-sum{background:var(--sel)}.sg-stats table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.sg-stats caption{text-align:left;color:var(--muted);padding-bottom:6px}.sg-stats th,.sg-stats td{text-align:left;border-bottom:1px solid var(--line);padding:4px 8px}.sg-btn:disabled{opacity:.5;cursor:not-allowed}@keyframes sg-flash{0%{transform:scale(1)}35%{outline:3px solid var(--accent);outline-offset:-3px;transform:scale(1.12)}to{transform:scale(1)}}.is-flash{z-index:2;animation:.6s ease-out sg-flash}.sg-cal{grid-template-columns:repeat(7,1fr);gap:4px;margin:8px 0 0;padding:0;list-style:none;display:grid}.sg-cal li{border:1px solid var(--line);text-align:center;font-variant-numeric:tabular-nums;color:var(--muted);border-radius:6px;padding:4px 0}.sg-cal li.done{border-color:var(--accent);color:var(--ink);border-width:2px;font-weight:700}.sg-cal li.today{outline:2px dashed var(--ink);outline-offset:1px}.sg-cell.cd:before{content:"";background:var(--ink);opacity:.55;pointer-events:none;border-radius:50%;width:28%;max-width:9px;height:28%;max-height:9px;position:absolute;top:3px;left:3px}
