:root{--bg:#f5f5f7;--surface:#fff;--card:#ececf1;--key:#ececf1;--text:#111118;--muted:#636370;--accent:#4f46e5;--accent-text:#fff;--selected:#4f46e54d;--peer:#4f46e51a;--same:#4f46e538;--conflict:#dc262640;--flash:#dc262673;--completed:#22c55e73;--wrong:#991b1b;--digit:#3730a3;--orange-text:#9a3412;--danger:#dc2626;--grid-thin:#6b6b7866;--grid-thick:#111118;--scrim:#0006;--orange:#f97316;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0f1020;--surface:#1a1b2e;--card:#23243b;--key:#23243b;--text:#f1f1f6;--muted:#9a9ab0;--accent:#818cf8;--accent-text:#0f1020;--selected:#818cf861;--peer:#818cf824;--same:#818cf842;--conflict:#f871714d;--flash:#f871718c;--completed:#4ade8073;--wrong:#fca5a5;--digit:#a5b4fc;--orange-text:#f97316;--danger:#f87171;--grid-thin:#9a9ab059;--grid-thick:#f1f1f6;--scrim:#0009;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;touch-action:manipulation;margin:0;font:16px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}button:disabled{cursor:default}h1,h2,h3,p{margin:0}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.tabular{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.accent{color:var(--accent)}small{color:var(--muted);font-size:.8125rem;display:block}.btn{background:var(--card);border:0;border-radius:12px;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:0 20px;font-weight:600;display:inline-flex}.btn-primary{background:var(--accent);color:var(--accent-text)}.btn-danger{background:var(--danger);color:#fff}.btn-danger-text{color:var(--danger);background:0 0;width:100%;margin-top:16px}.btn:disabled{opacity:.45}.btn-text{color:var(--accent);background:0 0;border:0;min-height:44px;padding:10px 4px;font-weight:600}.icon-btn{width:44px;height:44px;color:var(--accent);background:0 0;border:0;border-radius:50%;place-items:center;display:inline-grid}.icon-btn:disabled{opacity:.3}.row-buttons{gap:12px;display:flex}.col-buttons{flex-direction:column;align-self:stretch;gap:10px;display:flex}.grow{flex:1}.home{max-width:520px;height:100%;padding:max(24px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));flex-direction:column;justify-content:space-between;margin:0 auto;display:flex;overflow-y:auto}.hero{color:var(--accent);justify-items:center;gap:12px;margin:auto 0;padding:16px 0;display:grid}.hero h1{color:var(--text);letter-spacing:-.02em;font-size:2.25rem}.home-actions{gap:12px;display:grid}.card{background:var(--card);border-radius:16px;gap:12px;padding:16px;display:grid}.daily-top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.daily-top h2{font-size:1.0625rem}.daily-top p{font-size:.875rem}.streak{color:var(--muted);align-items:center;gap:4px;font-weight:700;display:inline-flex}.streak.active{color:var(--orange-text)}.streak.active svg{color:var(--orange)}.sheet-backdrop,.modal-backdrop{background:var(--scrim);z-index:20;display:flex;position:fixed;inset:0}.sheet-backdrop{justify-content:center;align-items:flex-end}.sheet{background:var(--bg);width:min(560px,100%);max-height:92dvh;padding-bottom:env(safe-area-inset-bottom);border-radius:20px 20px 0 0;outline:none;flex-direction:column;animation:.22s ease-out slide-up;display:flex}@keyframes slide-up{0%{opacity:0;transform:translateY(24px)}}.sheet-header{border-bottom:1px solid var(--grid-thin);justify-content:space-between;align-items:center;padding:8px 16px 8px 20px;display:flex}.sheet-header h2{font-size:1.125rem}.sheet-body{padding:8px 20px 24px;overflow-y:auto}.sheet-body h3{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:18px 0 6px;font-size:.8125rem}.list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.list-row{text-align:left;background:var(--card);border:0;border-radius:12px;justify-content:space-between;align-items:center;width:100%;min-height:56px;padding:8px 16px;display:flex}.stat-row{border-bottom:1px solid var(--grid-thin);justify-content:space-between;padding:8px 0;display:flex}.confirm{gap:12px;margin-top:16px;display:grid}.achievement{background:var(--card);border-radius:12px;align-items:center;gap:12px;padding:10px 12px;display:flex}.achievement.locked{opacity:.7}.badge{background:var(--accent);width:36px;height:36px;color:var(--accent-text);border-radius:50%;flex:none;place-items:center;display:grid}.achievement.locked .badge{background:var(--grid-thin);color:var(--muted)}.modal-backdrop{z-index:30;justify-content:center;align-items:center;padding:24px}.modal{background:var(--card);text-align:center;z-index:1;border-radius:20px;justify-items:center;gap:14px;width:min(340px,100%);padding:24px;display:grid;position:relative}.modal .row-buttons{align-self:stretch}.modal.win,.win .modal{max-height:90dvh;overflow-y:auto}.trophy{color:#eab308}.win-details{gap:2px;font-size:.9375rem;display:grid}.unlocked{background:var(--peer);border-radius:12px;align-self:stretch;gap:6px;padding:12px;display:grid}.unlocked small{text-transform:uppercase;letter-spacing:.04em;color:var(--accent);font-weight:600}.confetti{pointer-events:none;z-index:2;width:100%;height:100%;position:fixed;inset:0}.summary{text-align:center;padding-top:12px;display:flex}.summary>div{flex:1;justify-items:center;gap:2px;display:grid}.summary svg{color:var(--orange)}.summary>div:nth-child(2) svg{color:#eab308}.summary>div:nth-child(3) svg{color:var(--accent)}.month-header{justify-content:space-between;align-items:center;margin-top:12px;display:flex}.month-header h3{text-transform:none;letter-spacing:0;color:var(--text);margin:0;font-size:1rem}.cal-grid{grid-template-columns:repeat(7,1fr);gap:6px 4px;margin-top:8px;display:grid}.cal-weekday{text-align:center;color:var(--muted);font-size:.75rem;font-weight:600}.cal-day{aspect-ratio:1;font-variant-numeric:tabular-nums;background:0 0;border:2px solid #0000;border-radius:50%;width:100%;max-height:44px;position:relative}.cal-day:disabled:not(.onDay):not(.catchUp){color:var(--muted);opacity:.5}.cal-day.today{border-color:var(--muted);font-weight:700}.cal-day.onDay{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.cal-day.catchUp{border-color:var(--accent)}.dot{background:var(--accent);border-radius:50%;width:5px;height:5px;margin-left:-2.5px;position:absolute;bottom:4px;left:50%}.legend{color:var(--muted);justify-content:center;gap:16px;margin-top:16px;font-size:.8125rem;display:flex}.swatch{vertical-align:-1px;border:2px solid var(--accent);border-radius:50%;width:12px;height:12px;display:inline-block}.swatch.onDay{background:var(--accent)}.game{max-width:560px;height:100%;padding:max(8px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));flex-direction:column;gap:10px;margin:0 auto;display:flex}.game-header{grid-template-columns:auto 1fr auto auto;align-items:center;gap:8px;display:grid}.game-title{white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.game-mistakes{font-size:.875rem;font-weight:500}.game-time{align-items:center;gap:2px;font-weight:700;display:inline-flex}.board-slot{flex:1 1 0;place-items:center;min-height:0;display:grid;container-type:size}.board{--size:min(100cqw, 100cqh);width:var(--size);height:var(--size);background:var(--surface);border:2px solid var(--grid-thick);border-radius:4px;grid-template-rows:repeat(9,1fr);grid-template-columns:repeat(9,1fr);display:grid;overflow:hidden;container-type:size}.cell{background:var(--surface);border:0;border-right:1px solid var(--grid-thin);border-bottom:1px solid var(--grid-thin);border-radius:0;place-items:center;min-width:0;min-height:0;padding:0;transition:background-color .25s ease-out;display:grid;position:relative}.cell:nth-child(9n){border-right:0}.cell:nth-child(n+73){border-bottom:0}.cell:nth-child(3n):not(:nth-child(9n)){border-right:2px solid var(--grid-thick)}.cell:nth-child(n+19):nth-child(-n+27),.cell:nth-child(n+46):nth-child(-n+54){border-bottom:2px solid var(--grid-thick)}.cell.peer{background:color-mix(in srgb, var(--surface), var(--accent) 12%)}.cell.same{background:color-mix(in srgb, var(--surface), var(--accent) 24%)}.cell.conflict{background:color-mix(in srgb, var(--surface), var(--danger) 25%)}.cell.selected{background:color-mix(in srgb, var(--surface), var(--accent) 32%)}.cell.completing{background:color-mix(in srgb, var(--surface), #22c55e 45%)}.cell.flash{background:color-mix(in srgb, var(--surface), var(--danger) 50%)}.cell:focus-visible{outline-offset:-3px;z-index:1}.value{font-size:calc(var(--size) / 9 * .58);color:var(--digit);font-weight:400;line-height:1}.cell.given .value{color:var(--text);font-weight:600}.cell.wrong .value{color:var(--wrong)}.notes{pointer-events:none;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);display:grid;position:absolute;inset:6%}.notes span{font-size:calc(var(--size) / 9 * .22);color:var(--muted);place-items:center;font-weight:500;line-height:1;display:grid}.pause-overlay{background:var(--card);border:1px solid var(--grid-thin);border-radius:12px;place-content:center;justify-items:center;gap:12px;width:min(100cqw,100cqh);height:min(100cqw,100cqh);display:grid}.controls{grid-template-columns:repeat(4,1fr);display:grid}.control{color:var(--accent);background:0 0;border:0;justify-items:center;gap:2px;min-height:56px;padding:2px 0;display:grid}.control:disabled{opacity:.35}.control-icon{border-radius:10px;place-items:center;width:52px;height:34px;display:grid;position:relative}.control.active .control-icon{background:var(--selected)}.control-badge{background:var(--accent);min-width:18px;color:var(--accent-text);border-radius:9px;padding:0 5px;font-size:.6875rem;font-weight:700;line-height:16px;position:absolute;top:-3px;right:-1px}.control-label{font-size:.75rem}.numpad{grid-template-columns:repeat(9,1fr);gap:5px;display:grid}.key{background:var(--key);min-height:48px;color:var(--accent);font-variant-numeric:tabular-nums;border:0;border-radius:8px;padding:0;font-size:1.5rem;font-weight:500}.key.notes-mode{color:var(--muted)}.key:disabled{opacity:.3}@media (height<=640px){.key{min-height:40px}.control{min-height:46px}}@media (width>=700px) and (height>=700px){.game{padding-top:16px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.daily-badges{align-items:center;gap:12px;display:inline-flex}.account-btn{background:var(--bg);width:36px;height:36px;color:var(--accent);border:0;border-radius:50%;place-items:center;font-weight:700;display:inline-grid;position:relative}.account-dot{background:var(--danger);border:2px solid var(--card);border-radius:50%;width:10px;height:10px;position:absolute;top:0;right:0}.account-form{gap:12px;display:grid}.account-form label{font-weight:600}.text-input{border:1px solid var(--grid-thin);background:var(--bg);min-height:48px;color:var(--text);font:inherit;box-sizing:border-box;border-radius:12px;width:100%;padding:0 14px}.code-boxes{justify-content:space-between;gap:8px;display:flex}.code-box{text-align:center;border:1px solid var(--grid-thin);background:var(--bg);width:100%;min-width:0;max-width:52px;min-height:56px;color:var(--text);box-sizing:border-box;border-radius:12px;font-size:1.5rem;font-weight:700}.form-message{font-size:.9375rem}.form-error{color:var(--danger)}
