:root{--bg:#7d8085;--bar-h:56px;--line:#5f6267;--empty:#a9acb1;--black:#141414;--white:#f7f7f5;--accent:#3fb87a;--fg:#f4f4f4;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--fg);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;flex-direction:column;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;display:flex;overflow:hidden}.bar{height:var(--bar-h);padding:0 max(8px, env(safe-area-inset-right)) 0 max(16px, env(safe-area-inset-left));flex:none;justify-content:space-between;align-items:center;display:flex;position:relative}.info{opacity:.75;font-variant-numeric:tabular-nums;font-size:14px}.actions{gap:4px;display:flex}.icon-btn{width:44px;height:44px;color:var(--fg);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.icon-btn:hover,.icon-btn[aria-expanded=true]{background:#ffffff24}.icon-btn:focus-visible,.segmented button:focus-visible,.primary:focus-visible{outline:2px solid var(--fg);outline-offset:2px}.icon-btn svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.popover{top:calc(var(--bar-h) - 4px);z-index:10;color:#1d1d1d;background:#f4f4f2;border-radius:12px;width:min(320px,100vw - 16px);padding:16px;position:absolute;right:8px;box-shadow:0 10px 30px #0000004d}.popover[hidden]{display:none}.field-label{opacity:.7;margin:0 0 6px;font-size:13px;font-weight:600}.segmented{gap:4px;margin-bottom:14px;display:flex}.segmented button{min-width:0;height:38px;color:inherit;font:inherit;cursor:pointer;background:#dcdcd8;border:0;border-radius:8px;flex:1;font-size:15px}.segmented button[aria-pressed=true]{background:var(--black);color:var(--white)}.primary{background:var(--accent);color:#fff;width:100%;height:42px;font:inherit;cursor:pointer;border:0;border-radius:8px;font-weight:600}.stage{min-height:0;padding-bottom:env(safe-area-inset-bottom);flex:1;place-items:center;display:grid;position:relative}.board{--size:min(calc(100vw - 24px), calc(100dvh - var(--bar-h) - 24px));width:var(--size);height:var(--size);grid-template-columns:repeat(var(--n), 1fr);grid-template-rows:repeat(var(--n), 1fr);background:var(--line);outline:2px solid var(--line);touch-action:none;cursor:pointer;gap:1px;padding:1px;transition:outline-color .3s,opacity .2s;display:grid}.board.loading{opacity:.4}.board.solved{outline:4px solid var(--accent);animation:.6s ease-out pulse}@keyframes pulse{50%{transform:scale(1.02)}}.cell{background:var(--empty);position:relative}.cell.b{background:var(--black)}.cell.w{background:var(--white)}.cell.given:after{content:"";background:#8b8e93;border-radius:50%;position:absolute;inset:37%}.spinner{border:4px solid #ffffff4d;border-top-color:var(--fg);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin;position:absolute}.spinner[hidden]{display:none}@keyframes spin{to{transform:rotate(360deg)}}.toast{left:50%;bottom:calc(24px + env(safe-area-inset-bottom));color:#fff;opacity:0;pointer-events:none;background:#141414d9;border-radius:999px;padding:10px 16px;font-size:14px;transition:opacity .2s,transform .2s;position:fixed;transform:translate(-50%,12px)}.toast.show{opacity:1;transform:translate(-50%)}
