@font-face{font-family:Rubik Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/rubik-latin-wght-normal-CnQIisVs.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Rubik Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/rubik-hebrew-wght-normal-BIkpbuMU.woff2)format("woff2-variations");unicode-range:U+307-308,U+590-5FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}:root{--radius-s:.65rem;--radius-m:1rem;--radius-l:1.4rem;--board-size:min(92vw, 500px)}:root,[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#eef2f7;--surface:#fff;--border:#d7dee8;--text:#1e293b;--muted:#64748b;--primary:#4f46e5;--primary-2:#7c3aed;--primary-dark:#4338ca;--primary-soft:#e0e7ff;--danger:#dc2626;--danger-soft:#fee2e2;--success:#16a34a;--success-soft:#dcfce7;--easy:#16a34a;--easy-soft:#dcfce7;--medium:#d97706;--medium-soft:#fef3c7;--hard:#dc2626;--hard-soft:#fee2e2;--expert:#7c3aed;--expert-soft:#ede9fe;--board-line:#334155;--peer-bg:#eef1fb;--same-digit-bg:#dbe4ff;--chip-neutral-bg:#f1f5f9;--shadow:#0f172a14;--shadow-strong:#0f172a29;--overlay:#0f172a73}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f172a;--surface:#1e293b;--border:#38455a;--text:#e2e8f0;--muted:#94a3b8;--primary:#818cf8;--primary-2:#a78bfa;--primary-dark:#a5b4fc;--primary-soft:#33346b;--danger:#f87171;--danger-soft:#532a2f;--success:#4ade80;--success-soft:#1c3f2b;--easy:#4ade80;--easy-soft:#1c3f2b;--medium:#fbbf24;--medium-soft:#46340f;--hard:#f87171;--hard-soft:#532a2f;--expert:#a78bfa;--expert-soft:#3b2a63;--board-line:#94a3b8;--peer-bg:#263450;--same-digit-bg:#32436b;--chip-neutral-bg:#334155;--shadow:#00000059;--shadow-strong:#0000008c;--overlay:#020617a6}[data-theme=paper]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f2ead8;--surface:#fbf6ea;--border:#ddd0b3;--text:#3a2e1f;--muted:#6f5f48;--primary:#8a4b1f;--primary-2:sienna;--primary-dark:#6f3b17;--primary-soft:#f1dfc4;--danger:#b3261e;--danger-soft:#f6ddd6;--success:#3f7a1f;--success-soft:#e2edd0;--easy:#3f7a1f;--easy-soft:#e2edd0;--medium:#9a6a00;--medium-soft:#f5e6bf;--hard:#b3261e;--hard-soft:#f6ddd6;--expert:#6b4c9a;--expert-soft:#e8e0f2;--board-line:#5b4630;--peer-bg:#f3e9d6;--same-digit-bg:#ead7b4;--chip-neutral-bg:#efe5d0;--shadow:#3a2e1f1a;--shadow-strong:#3a2e1f2e;--overlay:#3a2e1f73}[data-theme=midnight]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#000;--surface:#0e0e11;--border:#2a2a31;--text:#ececf1;--muted:#9d9daa;--primary:#8e9bff;--primary-2:#b39dff;--primary-dark:#b8c1ff;--primary-soft:#1f2247;--danger:#ff6b6b;--danger-soft:#3a1214;--success:#4ade80;--success-soft:#0f2e1b;--easy:#4ade80;--easy-soft:#0f2e1b;--medium:#fbbf24;--medium-soft:#3a2a05;--hard:#ff6b6b;--hard-soft:#3a1214;--expert:#b39dff;--expert-soft:#261d45;--board-line:#8a8a99;--peer-bg:#16161c;--same-digit-bg:#262a50;--chip-neutral-bg:#1c1c22;--shadow:#00000080;--shadow-strong:#000000b3;--overlay:#000000b8}[data-theme=ocean]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#061822;--surface:#0d2431;--border:#1f4152;--text:#dcf0f7;--muted:#8fb4c3;--primary:#38bdf8;--primary-2:#2dd4bf;--primary-dark:#7dd3fc;--primary-soft:#0f3a4d;--danger:#fb7185;--danger-soft:#4a1d2a;--success:#34d399;--success-soft:#0f3b2f;--easy:#34d399;--easy-soft:#0f3b2f;--medium:#fbbf24;--medium-soft:#43340c;--hard:#fb7185;--hard-soft:#4a1d2a;--expert:#a78bfa;--expert-soft:#2c2a5a;--board-line:#6fa3b8;--peer-bg:#12303f;--same-digit-bg:#164a61;--chip-neutral-bg:#143242;--shadow:#000a1066;--shadow-strong:#000a1099;--overlay:#020c12ad}[data-theme=forest]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b1510;--surface:#13221a;--border:#27402f;--text:#e1efe6;--muted:#9cbaa7;--primary:#6ee7b7;--primary-2:#a3e635;--primary-dark:#a7f3d0;--primary-soft:#16402f;--danger:#fb7185;--danger-soft:#4a1d27;--success:#bef264;--success-soft:#2c3d12;--easy:#86efac;--easy-soft:#17402a;--medium:#fcd34d;--medium-soft:#433a0e;--hard:#fb7185;--hard-soft:#4a1d27;--expert:#c4b5fd;--expert-soft:#2f2a52;--board-line:#7fa58c;--peer-bg:#183022;--same-digit-bg:#245a40;--chip-neutral-bg:#1b2e23;--shadow:#00080466;--shadow-strong:#00080499;--overlay:#030a06b3}[data-theme=contrast]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#000;--surface:#000;--border:#9a9a9a;--text:#fff;--muted:#d6d6d6;--primary:#ffd60a;--primary-2:#ffd60a;--primary-dark:#ffe45c;--primary-soft:#3d3300;--danger:#ff6b6b;--danger-soft:#3d0000;--success:#5dff7a;--success-soft:#003d10;--easy:#5dff7a;--easy-soft:#003d10;--medium:#ffb020;--medium-soft:#3d2600;--hard:#ff6b6b;--hard-soft:#3d0000;--expert:#d0a8ff;--expert-soft:#2a0f4d;--board-line:#fff;--peer-bg:#1c1c1c;--same-digit-bg:#2e2a00;--chip-neutral-bg:#1f1f1f;--shadow:#0000;--shadow-strong:#ffffff40;--overlay:#000000d1}[data-custom]{--bg:var(--custom-bg);--surface:var(--custom-surface);--text:var(--custom-text);--primary:var(--custom-accent);--primary-2:var(--custom-accent);--primary-dark:color-mix(in srgb, var(--custom-accent) 70%, var(--custom-text));--primary-soft:color-mix(in srgb, var(--custom-accent) 18%, var(--custom-surface));--border:color-mix(in srgb, var(--custom-text) 15%, var(--custom-surface));--muted:color-mix(in srgb, var(--custom-text) 65%, var(--custom-surface));--board-line:color-mix(in srgb, var(--custom-text) 75%, var(--custom-surface));--peer-bg:color-mix(in srgb, var(--custom-accent) 7%, var(--custom-surface));--same-digit-bg:color-mix(in srgb, var(--custom-accent) 22%, var(--custom-surface));--chip-neutral-bg:color-mix(in srgb, var(--custom-text) 7%, var(--custom-surface));--danger-soft:color-mix(in srgb, var(--danger) 16%, var(--custom-surface));--success-soft:color-mix(in srgb, var(--success) 16%, var(--custom-surface));--easy-soft:color-mix(in srgb, var(--easy) 16%, var(--custom-surface));--medium-soft:color-mix(in srgb, var(--medium) 16%, var(--custom-surface));--hard-soft:color-mix(in srgb, var(--hard) 16%, var(--custom-surface));--expert-soft:color-mix(in srgb, var(--expert) 16%, var(--custom-surface))}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);background-image:linear-gradient(180deg, color-mix(in srgb, var(--primary) 7%, var(--bg)), var(--bg) 22rem);color:var(--text);overscroll-behavior-y:contain;background-repeat:no-repeat;min-height:100dvh;margin:0;font-family:Rubik Variable,Segoe UI,system-ui,-apple-system,Arial,sans-serif;transition:background .2s,color .2s;overflow-x:hidden}button{font-family:inherit}button,a,.cell{touch-action:manipulation;-webkit-tap-highlight-color:transparent}:where(button,a,input):focus-visible{outline:2px solid var(--primary);outline-offset:2px}::selection{background:var(--primary-soft)}.app-header{padding:max(.6rem, env(safe-area-inset-top)) max(1.5rem, env(safe-area-inset-right)) .6rem max(1.5rem, env(safe-area-inset-left));background:var(--surface);background:color-mix(in srgb, var(--surface) 82%, transparent);-webkit-backdrop-filter:saturate(1.6)blur(14px);backdrop-filter:saturate(1.6)blur(14px);box-shadow:0 1px 0 var(--border), 0 1px 8px var(--shadow);z-index:10;justify-content:space-between;align-items:center;gap:.75rem;display:flex;position:sticky;top:0}.header-start{align-items:center;gap:1.25rem;display:flex}.app-title{letter-spacing:-.01em;color:var(--primary);white-space:nowrap;align-items:center;gap:.5rem;font-size:1.3rem;font-weight:800;text-decoration:none;display:flex}.app-logo{border-radius:8px;width:28px;height:28px;display:block}.nav-tabs{gap:.25rem;min-width:0;display:flex;overflow:hidden}.nav-tabs a{color:var(--muted);border-radius:999px;padding:.45rem .9rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:background .15s,color .15s}.nav-tabs a:hover{background:var(--peer-bg);color:var(--text)}.nav-tabs a.active{background:var(--primary-soft);color:var(--primary)}.header-user{color:var(--muted);align-items:center;gap:.5rem;display:flex}.header-username{white-space:nowrap;color:inherit;border-radius:var(--radius-s);align-items:center;gap:.35rem;min-height:2.25rem;padding:.4rem .55rem;text-decoration:none;display:inline-flex}.header-username:hover{text-decoration:underline}.account-dot{background:var(--danger);border-radius:50%;width:.5rem;height:.5rem}.account-page{width:100%;max-width:32rem;margin:0 auto}.account-card{border:1px solid var(--border);border-radius:var(--radius-m);background:var(--surface);flex-direction:column;gap:.75rem;margin-bottom:1rem;padding:1rem 1.1rem 1.15rem;display:flex}.account-card .form-error{margin:0}.account-field-head{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.account-count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.8rem;font-weight:500}.account-identity{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.settings-profile-link{color:inherit;flex-direction:row;align-items:center;gap:.8rem;text-decoration:none}.settings-profile-link:hover{border-color:var(--primary)}.settings-profile-icon{color:var(--primary);font-size:1.3rem;display:flex}.account-page h3{margin:0}.avatar-group{border-top:1px solid var(--border);padding-top:.9rem}.avatar-grid{grid-template-columns:repeat(auto-fill,minmax(2.6rem,1fr));gap:.35rem;display:grid}.avatar-option{aspect-ratio:1;border:1px solid var(--border);border-radius:var(--radius-s);background:var(--surface);cursor:pointer;place-items:center;font-size:1.25rem;display:grid;position:relative}.avatar-option input{opacity:0;pointer-events:none;position:absolute}.avatar-option.selected{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 1px var(--primary)}.avatar-option:has(input:focus-visible){outline:2px solid var(--primary);outline-offset:2px}.avatar-option:has(input:disabled){cursor:default;opacity:.6}.player-avatar{margin-inline-end:.3em}.header-avatar{font-size:1.1rem;line-height:1}.account-actions{flex-wrap:wrap;gap:.5rem;display:flex}.members-list .chip.is-me{background:var(--success-soft);color:var(--success)}.account-username{font-size:1.15rem;font-weight:700}.chip.account-locked{background:var(--success-soft);color:var(--success)}.chip.account-open{background:var(--danger-soft);color:var(--danger)}.settings-page{width:100%;max-width:36rem;margin:0 auto}.settings-section{border:1px solid var(--border);border-radius:var(--radius-m);background:var(--surface);flex-direction:column;gap:1.1rem;margin-bottom:1rem;padding:1rem 1.1rem 1.15rem;display:flex}.settings-section h3{margin:0;font-size:1.05rem}.setting-group{flex-direction:column;gap:.5rem;display:flex}.setting-label{color:var(--muted);font-size:.85rem;font-weight:600}.theme-tile input,.segmented input{opacity:0;pointer-events:none;position:absolute}.theme-tile:has(input:focus-visible){outline:2px solid var(--primary);outline-offset:2px}.segmented label:has(input:focus-visible){outline:2px solid var(--primary);outline-offset:2px}.segmented{background:var(--chip-neutral-bg);border-radius:999px;gap:.25rem;max-width:22rem;padding:.25rem;display:flex}.segmented label{color:var(--muted);text-align:center;cursor:pointer;border-radius:999px;flex:1;padding:.5rem .75rem;font-weight:600;transition:background .15s,color .15s;position:relative}.segmented label.active{background:var(--surface);color:var(--primary);box-shadow:0 1px 4px var(--shadow)}.theme-grid{grid-template-columns:repeat(auto-fill,minmax(5.5rem,1fr));gap:.6rem;display:grid}.theme-tile{border:2px solid var(--border);border-radius:var(--radius-m);background:var(--surface);color:var(--text);text-align:center;cursor:pointer;flex-direction:column;gap:.4rem;padding:.4rem .4rem .5rem;font-size:.85rem;font-weight:600;transition:border-color .15s,box-shadow .15s;display:flex;position:relative}.theme-tile.selected{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 22%, transparent)}.theme-preview{border-radius:var(--radius-s);background:var(--bg);color:var(--text);flex-direction:column;gap:.3rem;padding:.35rem;display:flex}.theme-preview-split{display:grid}.theme-preview-split>.theme-preview{grid-area:1/1}.theme-preview-split>.theme-preview+.theme-preview{clip-path:polygon(100% 0,100% 100%,0 100%)}.theme-preview-bar{background:linear-gradient(90deg, var(--primary), var(--primary-2));border-radius:999px;height:.4rem}.theme-preview-grid{aspect-ratio:1;border:1.5px solid var(--board-line);background:var(--surface);border-radius:.35rem;grid-template-columns:repeat(3,1fr);display:grid;overflow:hidden}.tp-cell{border-right:1px solid var(--border);border-bottom:1px solid var(--border);justify-content:center;align-items:center;font-size:.8rem;font-weight:700;line-height:1;display:flex}.tp-cell:nth-child(3n){border-right:none}.tp-cell:nth-child(n+7){border-bottom:none}.tp-peer{background:var(--peer-bg)}.tp-player{color:var(--primary)}.tp-selected{background:var(--primary-soft);color:var(--primary);box-shadow:inset 0 0 0 1.5px var(--primary)}.tp-error{background:var(--danger-soft);color:var(--danger)}.custom-theme{border:1px dashed var(--border);border-radius:var(--radius-m);flex-direction:column;gap:.6rem;padding:.75rem;display:flex}.custom-theme>.setting-row-hint{margin:0}.color-fields{grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));gap:.4rem;display:grid}.color-field{border:1px solid var(--border);border-radius:var(--radius-s);background:var(--surface);color:var(--text);text-align:start;cursor:pointer;align-items:center;gap:.5rem;padding:.45rem .6rem;font-size:.9rem;font-weight:600;display:flex}.color-field.active{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb, var(--primary) 25%, transparent)}.color-dot{border:1px solid color-mix(in srgb, var(--text) 25%, transparent);border-radius:50%;flex:none;width:1.1rem;height:1.1rem}.color-picker{-webkit-user-select:none;user-select:none;flex-direction:column;gap:.75rem;max-width:22rem;display:flex}.sv-square{border-radius:var(--radius-s);height:12rem;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--text) 14%, transparent);cursor:crosshair;touch-action:none;background-image:linear-gradient(#0000,#000),linear-gradient(90deg,#fff,#0000);position:relative}.hue-slider{--thumb:1.5rem;height:var(--thumb);padding-inline:calc(var(--thumb) / 2);border:1px solid color-mix(in srgb, var(--text) 14%, transparent);cursor:pointer;touch-action:none;background:red;border-radius:999px}.hue-track{background:linear-gradient(90deg,red,#ff0,#0f0,#0ff,#00f,#f0f,red);height:100%;position:relative}.sv-square:focus-visible,.hue-slider:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.sv-thumb,.hue-thumb{pointer-events:none;border-radius:50%;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 2px #fff,0 0 0 3px #00000073,0 1px 4px 1px #00000040}.sv-thumb{width:1.25rem;height:1.25rem}.hue-thumb{width:var(--thumb);height:var(--thumb);top:50%}.hex-field{color:var(--muted);align-items:center;gap:.5rem;font-size:.85rem;font-weight:600;display:flex}.hex-field input{border:1px solid var(--border);border-radius:var(--radius-s);background:var(--surface);width:6.5rem;color:var(--text);padding:.4rem .55rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1rem}.hex-field input[aria-invalid=true]{border-color:var(--danger)}.custom-warnings p{color:var(--danger);margin:0;font-size:.82rem;font-weight:600}.custom-start{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.85rem;font-weight:600;display:flex}.custom-start select{border-radius:var(--radius-s);border:1px solid var(--border);background:var(--surface);color:var(--text);padding:.45rem .6rem;font-size:1rem}.settings-version{align-items:baseline;gap:.5rem;font-size:.85rem;display:flex}.settings-version-value{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.setting-row{border-top:1px solid var(--border);cursor:pointer;justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 0;display:flex;position:relative}.setting-row-text{flex-direction:column;gap:.15rem;min-width:0;display:flex}.setting-row-label{font-size:.95rem;font-weight:600}.setting-row-hint{color:var(--muted);font-size:.8rem}.switch-input{opacity:0;pointer-events:none;position:absolute}.switch{background:var(--border);border-radius:999px;flex:none;width:2.6rem;height:1.5rem;transition:background .15s;position:relative}.switch:before{content:"";top:.2rem;background:var(--surface);width:1.1rem;height:1.1rem;box-shadow:0 1px 3px var(--shadow-strong);border-radius:50%;transition:inset-inline-start .15s;position:absolute;inset-inline-start:.2rem}.switch-input:checked+.switch{background:var(--primary)}.switch-input:checked+.switch:before{inset-inline-start:1.3rem}.switch-input:focus-visible+.switch{outline:2px solid var(--primary);outline-offset:2px}.switch-input:disabled+.switch{opacity:.4}.setting-row.is-locked{cursor:default}.setting-row-with-icon{flex-direction:row;align-items:center;gap:.6rem}.setting-row-icon{color:var(--primary);font-size:1.15rem;display:flex}.phone-row-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.phone-row-item{border-top:1px solid var(--border);background:var(--surface);align-items:center;gap:.5rem;display:flex;position:relative}.phone-row-list.is-dragging .phone-row-item{transition:transform .15s}.phone-row-list.is-dragging .phone-row-item.dragged{z-index:2;border-radius:var(--radius-s);box-shadow:0 6px 20px var(--shadow-strong);transition:none}.phone-row-handle{border-radius:var(--radius-s);width:2rem;height:2.5rem;color:var(--muted);cursor:grab;touch-action:none;background:0 0;border:none;flex:none;place-items:center;padding:0;font-size:1.15rem;display:grid}.phone-row-handle:hover,.phone-row-handle:focus-visible{color:var(--primary);background:var(--primary-soft)}.phone-row-list.is-dragging,.phone-row-list.is-dragging .phone-row-handle{cursor:grabbing;-webkit-user-select:none;user-select:none}.phone-row-item>.setting-row{border-top:none;flex:auto;min-width:0}.phone-row-pos{background:var(--primary-soft);height:1.4rem;color:var(--primary);text-align:center;border-radius:50%;flex:0 0 1.4rem;font-size:.75rem;font-weight:700;line-height:1.4rem}.phone-row-rest{margin-top:.4rem}.game-preview-wrap{z-index:2;background:var(--bg);margin-bottom:1rem;padding-top:.4rem;position:sticky;top:3.4rem}.game-preview{--board-size:13rem;border:1px solid var(--border);border-radius:var(--radius-m);background:var(--surface);box-shadow:0 6px 16px -8px var(--shadow);pointer-events:none;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;gap:.45rem;padding:.55rem 1.1rem .8rem;display:flex;position:relative}.game-preview-caption{color:var(--muted);font-size:.75rem;font-weight:600}.game-preview .board-area,.game-preview .board{width:var(--board-size)}.game-preview .board{box-shadow:0 4px 12px var(--shadow);border-radius:.5rem}.game-preview .cell{font-size:calc(var(--board-size) / 15)}.game-preview .cell-notes{font-size:calc(var(--board-size) / 40)}.game-preview .game-stats{gap:.3rem}.game-preview .stat{gap:.25rem;padding:.2rem .25rem;font-size:.68rem}.game-preview .stat-icon{font-size:.75rem}.game-preview .controls{flex-wrap:nowrap;gap:0}.game-preview .ctrl{flex:1 1 0;gap:.15rem;min-width:0;padding:0}.game-preview .ctrl-icon{width:1.8rem;height:1.8rem;font-size:.9rem}.game-preview .ctrl-badge{min-width:.8rem;height:.8rem;font-size:.5rem}.game-preview .ctrl-label{font-size:.55rem}.game-preview .ctrl-key{padding:.05rem .15rem;font-size:.45rem}.game-preview .pad-btn{padding:0 .08rem}.game-preview .pad-face{gap:0;min-height:2.1rem;padding:.15rem 0}.game-preview .pad-digit{font-size:.95rem}.game-preview .pad-count{min-height:.5rem;font-size:.5rem}.settings-actions{margin:-.25rem 0 1rem;display:flex}.conn-pill{white-space:nowrap;border-radius:999px;align-items:center;gap:.3rem;padding:.32rem .6rem;font-size:.78rem;font-weight:700;line-height:1;display:inline-flex}.conn-pill-offline{background:var(--danger-soft);color:var(--danger)}.conn-pill-slow{background:var(--medium-soft);color:var(--medium)}.header-start{flex:auto;min-width:0}.app-title,.header-user{flex:none}.sync-badge{background:var(--primary-soft);color:var(--primary);white-space:nowrap;border-radius:999px;align-items:center;padding:.32rem .6rem;font-size:.78rem;font-weight:700;line-height:1;display:inline-flex}.sync-badge-count{display:none}.install-btn{align-items:center;gap:.35rem;padding:.45rem .55rem;font-size:.85rem;font-weight:700;display:inline-flex}@media (width<=1024px){.conn-pill-text,.install-text,.sync-badge-full{display:none}.sync-badge-count{display:inline}.conn-pill,.sync-badge{padding:.32rem .45rem}.nav-tabs,.header-username-text,.logout-text{display:none}.app-toast{bottom:calc(4.5rem + env(safe-area-inset-bottom))}}.app-toast{inset-inline:0;bottom:calc(1rem + env(safe-area-inset-bottom));z-index:60;border-radius:var(--radius-m);background:var(--surface);border:1px solid var(--border);width:fit-content;max-width:min(92vw,30rem);box-shadow:0 8px 28px var(--shadow-strong);align-items:center;gap:.75rem;margin-inline:auto;padding:.7rem 1rem;font-size:.9rem;animation:.3s banner-in;display:flex;position:fixed}.settings-link{align-items:center;padding:.45rem .55rem;font-size:1.15rem;text-decoration:none;display:inline-flex}.settings-link.active{background:var(--primary-soft)}.lang-toggle{align-items:center;gap:.35rem;min-width:2.4rem;padding:.45rem .55rem;font-size:.85rem;font-weight:700;display:inline-flex}.lang-flag{border:1px solid var(--border);border-radius:2px;display:block}.btn-logout{align-items:center;gap:.4rem;font-size:.95rem;display:inline-flex}.btn-logout svg{font-size:1.05rem}[dir=rtl] .btn-logout svg{transform:scaleX(-1)}.bottom-nav{background:var(--surface);background:color-mix(in srgb, var(--surface) 86%, transparent);-webkit-backdrop-filter:saturate(1.6)blur(16px);backdrop-filter:saturate(1.6)blur(16px);border-top:1px solid var(--border);padding:.35rem max(.5rem, env(safe-area-inset-right)) calc(.35rem + env(safe-area-inset-bottom)) max(.5rem, env(safe-area-inset-left));flex:none;display:none}@media (width<=1024px){.bottom-nav{display:flex}}.bottom-nav a{color:var(--muted);border-radius:var(--radius-s);flex-direction:column;flex:1;align-items:center;gap:.15rem;padding:.2rem 0;font-size:.7rem;font-weight:600;text-decoration:none;display:flex}.bottom-nav-icon{border-radius:999px;justify-content:center;align-items:center;width:3.4rem;height:1.9rem;font-size:1.3rem;transition:background .2s;display:flex}.bottom-nav a.active{color:var(--primary)}.bottom-nav a.active .bottom-nav-icon{background:var(--primary-soft)}.app-main{max-width:900px;margin:0 auto;padding:1.5rem 1rem 3rem}.page-loading{text-align:center;color:var(--muted);padding:4rem 0;font-size:1.1rem}.muted{color:var(--muted)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.btn{border-radius:var(--radius-s);cursor:pointer;border:none;padding:.55rem 1.1rem;font-size:.95rem;font-weight:600;transition:background .15s,transform 60ms,box-shadow .15s}.btn:disabled{opacity:.55;cursor:default}.btn:active:not(:disabled){transform:scale(.96)}.btn-primary{background:linear-gradient(135deg, var(--primary), var(--primary-2));color:var(--surface);box-shadow:0 2px 8px color-mix(in srgb, var(--primary) 35%, transparent)}.btn-primary:hover:not(:disabled){filter:brightness(1.08)}.btn-ghost{color:var(--primary);background:0 0}.btn-ghost:hover{background:var(--primary-soft)}.btn-danger{color:var(--danger);border:1px solid var(--danger-soft);background:0 0}.btn-danger:hover{background:var(--danger-soft)}.chip{border-radius:999px;padding:.2rem .7rem;font-size:.85rem;font-weight:600;display:inline-block}.kind-chip{background:var(--chip-neutral-bg);color:var(--text);text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;max-width:14rem;overflow:hidden}.difficulty-easy{background:var(--easy-soft);color:var(--easy);--difficulty:var(--easy)}.difficulty-medium{background:var(--medium-soft);color:var(--medium);--difficulty:var(--medium)}.difficulty-hard{background:var(--hard-soft);color:var(--hard);--difficulty:var(--hard)}.difficulty-expert{background:var(--expert-soft);color:var(--expert);--difficulty:var(--expert)}.status-in_progress{background:var(--primary-soft);color:var(--primary)}.status-completed{background:var(--success-soft);color:var(--success)}.status-revealed{background:var(--chip-neutral-bg);color:var(--muted)}.status-failed{background:var(--danger-soft);color:var(--danger)}.solve-time-chip{background:var(--chip-neutral-bg);color:var(--muted)}.form-success{border-radius:var(--radius-s);background:var(--success-soft);color:var(--success);margin:0;padding:.6rem .9rem;font-weight:600}.form-error{color:var(--danger);background:var(--danger-soft);border-radius:var(--radius-s);margin:.75rem 0;padding:.6rem .9rem}.auth-page{justify-content:center;padding-top:3rem;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-l);box-shadow:0 10px 32px var(--shadow);width:min(100%,380px);padding:2rem}.auth-offline{text-align:center;flex-direction:column;align-items:center;gap:.75rem;font-size:2rem;display:flex}.auth-offline h2,.auth-offline p{margin:0;font-size:1rem}.auth-offline h2{font-size:1.15rem}.auth-tabs{background:var(--chip-neutral-bg);border-radius:999px;gap:.35rem;margin-bottom:1.5rem;padding:.25rem;display:flex}.auth-tab{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:999px;flex:1;padding:.55rem;font-size:1rem;font-weight:600;transition:background .15s,color .15s}.auth-tab.active{background:var(--surface);color:var(--primary);box-shadow:0 1px 4px var(--shadow)}.auth-form{flex-direction:column;gap:1rem;display:flex}.auth-form label{flex-direction:column;gap:.35rem;font-size:.95rem;font-weight:600;display:flex}.auth-form input,.share-form input{border:1px solid var(--border);border-radius:var(--radius-s);background:var(--surface);color:var(--text);padding:.65rem .85rem;font-size:1rem}.auth-form input:focus,.share-form input:focus{outline:2px solid var(--primary);border-color:#0000}.auth-hint{color:var(--muted);margin:0;font-size:.85rem}.dashboard h2{margin:0}.section-head{justify-content:space-between;align-items:center;gap:.75rem;margin:1.5rem 0 .75rem;display:flex}.options-toggle{border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:.4rem .7rem;font-size:.85rem}.options-toggle.has-filters{background:var(--primary-soft);border-color:var(--primary)}.continue-card{border:1px solid var(--primary);border-radius:var(--radius-l);background:linear-gradient(135deg, var(--primary-soft), var(--surface) 70%);box-shadow:0 6px 20px var(--shadow);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:.5rem;padding:1.1rem 1.25rem;display:flex}.continue-main{align-items:center;gap:1rem;min-width:0;display:flex}.continue-text{flex-direction:column;gap:.45rem;min-width:0;display:flex}.continue-eyebrow{color:var(--text);font-size:1.05rem;font-weight:800}.continue-chips{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.btn-continue{border-radius:999px;padding:.75rem 1.75rem;font-size:1rem}.progress-ring{flex:none;transform:rotate(-90deg)}.progress-ring-track,.progress-ring-fill{fill:none;stroke-width:6px}.progress-ring-track{stroke:var(--border)}.progress-ring-fill{stroke:var(--primary);stroke-linecap:round;transition:stroke-dashoffset .4s}.progress-ring-text{transform-origin:32px 32px;fill:var(--text);font-size:.95rem;font-weight:800;transform:rotate(90deg)}.new-game-options{flex-wrap:wrap;align-items:flex-end;gap:.75rem 1rem;max-width:480px;margin-bottom:.9rem;display:flex}.game-option{flex-direction:column;gap:.3rem;display:flex}.game-option-label{color:var(--muted);font-size:.8rem;font-weight:600}.game-option input{border-radius:var(--radius-s);border:1px solid var(--border);background:var(--surface);width:4.5rem;color:var(--text);padding:.5rem .6rem;font-size:1rem}.new-game-buttons{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;max-width:620px;display:grid}.btn-new-game{border-radius:var(--radius-m);border:2px solid #0000;padding:.9rem .5rem;font-size:1.02rem;font-weight:700}.btn-new-game.difficulty-easy:hover:not(:disabled),.btn-new-game.difficulty-easy.selected{border-color:var(--easy)}.btn-new-game.difficulty-medium:hover:not(:disabled),.btn-new-game.difficulty-medium.selected{border-color:var(--medium)}.btn-new-game.difficulty-hard:hover:not(:disabled),.btn-new-game.difficulty-hard.selected{border-color:var(--hard)}.btn-new-game.difficulty-expert:hover:not(:disabled),.btn-new-game.difficulty-expert.selected{border-color:var(--expert)}.btn-new-game.selected{font-weight:800}.game-tabs{background:var(--chip-neutral-bg);border-radius:999px;gap:.25rem;margin-bottom:1rem;padding:.25rem;display:flex}.game-tab{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:999px;flex:1;justify-content:center;align-items:center;gap:.4rem;padding:.55rem .5rem;font-size:.95rem;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.game-tab.active{background:var(--surface);color:var(--primary);box-shadow:0 1px 4px var(--shadow)}.game-tab-count{background:var(--surface);font-variant-numeric:tabular-nums;border-radius:999px;padding:.05rem .45rem;font-size:.78rem;font-weight:700}.game-tab.active .game-tab-count{background:var(--primary-soft)}.game-filters{border:1px solid var(--border);border-radius:var(--radius-m);background:var(--surface);flex-wrap:wrap;align-items:flex-end;gap:.6rem .9rem;margin-bottom:1rem;padding:.85rem;animation:.2s banner-in;display:flex}.show-all{border:1px solid var(--border);border-radius:999px;margin:1rem auto 0;display:block}.game-filters select{border-radius:var(--radius-s);border:1px solid var(--border);background:var(--surface);color:var(--text);padding:.5rem .6rem;font-size:1rem}.filter-clear{padding-block:.5rem}.games-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:1rem;display:grid}.game-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);box-shadow:0 2px 10px var(--shadow);flex-direction:column;gap:.6rem;padding:1rem;transition:box-shadow .15s,transform .15s;display:flex}@media (hover:hover){.game-card:hover{box-shadow:0 8px 24px var(--shadow-strong);transform:translateY(-2px)}}.game-card-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem;display:flex}.game-card-date{color:var(--muted);font-size:.85rem}.progress-bar{background:var(--bg);border-radius:999px;height:6px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--primary), var(--primary-2));border-radius:999px;height:100%;transition:width .3s}.game-card-actions{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:.5rem;margin-top:.25rem;display:flex}.game-card-actions .btn-danger{margin-inline-start:auto}.daily-page{flex-direction:column;align-items:center;gap:1.5rem;display:flex}.daily-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-l);box-shadow:0 10px 32px var(--shadow);text-align:center;flex-direction:column;align-items:center;gap:.75rem;width:min(100%,480px);padding:2rem;display:flex}.daily-card h2{margin:0}.daily-icon{font-size:2.5rem}.daily-date{color:var(--muted);font-size:1.15rem;font-weight:600}.daily-chips{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.btn-daily-play{border-radius:999px;padding:.85rem 2.5rem;font-size:1.1rem;font-weight:700}.daily-note{margin:0;font-size:.85rem}.daily-streak{flex-direction:column;align-items:center;gap:.15rem;display:flex}.daily-streak-line{font-weight:700}.daily-streak-best{color:var(--muted);font-size:.8rem}.daily-countdown{color:var(--primary);font-variant-numeric:tabular-nums;margin:0;font-weight:700}.solvers-section{width:min(100%,480px)}.solvers-section h3{margin:0 0 .75rem}.solvers-board{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.solver-row{background:var(--chip-neutral-bg);border-radius:.6rem;grid-template-columns:2.25rem 1fr 3rem auto;align-items:center;gap:.6rem;padding:.4rem .75rem;font-size:.95rem;display:grid}.solver-gap{text-align:center;color:var(--muted);letter-spacing:.2em;line-height:.8}.solvers-cap{margin:-.5rem 0 .6rem;font-size:.85rem}.solver-row.is-me{background:var(--success-soft);color:var(--success);font-weight:700}.solver-rank{text-align:center;font-variant-numeric:tabular-nums;color:var(--muted);font-weight:700}.solver-row.is-me .solver-rank{color:inherit}.solver-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.solver-streak{text-align:end;font-variant-numeric:tabular-nums;color:var(--muted);font-size:.85rem}.solver-row.is-me .solver-streak{color:inherit}.solver-time{font-variant-numeric:tabular-nums;color:var(--muted);font-size:.9rem}.solver-row.is-me .solver-time{color:inherit}.my-rank-chip{background:var(--success-soft);color:var(--success)}.community-page h2{margin:0}.community-page .section-head{margin:.5rem 0 .25rem}.community-page>.muted{margin:0 0 1.25rem}.shared-name{text-overflow:ellipsis;white-space:nowrap;font-size:1.05rem;font-weight:700;overflow:hidden}.solvers-inline{flex-wrap:wrap;gap:.35rem;font-size:.9rem;display:flex}.solvers-count{color:var(--success);font-weight:600}.solvers-names{color:var(--muted);overflow-wrap:anywhere}.solvers-names .is-me{color:var(--success);font-weight:600}.confetti-canvas{z-index:40;pointer-events:none;width:100vw;height:100vh;position:fixed;inset:0}.confetti-canvas.contained{z-index:1;border-radius:inherit;width:100%;height:100%;position:absolute}.home-games .games-grid{margin-bottom:.25rem}.hub-grid{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:.6rem;margin-top:1rem;display:grid}.hub-card{border:1px solid var(--border);border-radius:var(--radius-m);background:var(--surface);color:inherit;align-items:center;gap:.85rem;padding:.8rem 1rem;text-decoration:none;display:flex}.hub-card:hover{border-color:var(--primary)}.hub-card-icon{font-size:1.5rem}.hub-card-text{flex-direction:column;flex:auto;gap:.15rem;min-width:0;display:flex}.hub-card-title{font-size:1rem;font-weight:700}.hub-card-line{min-height:1.2em;color:var(--muted);font-size:.85rem}.hub-meter{max-width:14rem;padding-top:.15rem}.hub-card-arrow,.badge-strip-arrow{color:var(--primary);font-size:1.6rem;line-height:1}[dir=rtl] .hub-card-arrow,[dir=rtl] .badge-strip-arrow{transform:scaleX(-1)}.history-page .section-head h2{margin:0}.modal-overlay{background:var(--overlay);z-index:50;justify-content:center;align-items:center;padding:1rem;animation:.2s fade-in;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius-l);box-shadow:0 10px 40px var(--shadow-strong);width:min(100%,420px);padding:1.5rem}.modal h3{margin:0 0 .5rem}.modal .muted{margin:0 0 1rem}.share-form{flex-direction:column;gap:.75rem;display:flex}.modal .new-game-buttons{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}.modal-actions{justify-content:flex-start;gap:.5rem;display:flex}.poll-note{min-height:1.25rem;margin:0 0 .35rem}.continue-placeholder{border:1px dashed var(--border);border-radius:var(--radius-l);opacity:.4;height:6.5rem;margin-top:.5rem}.game-over{width:var(--board-size);text-align:center;flex-direction:column;align-items:center;gap:.5rem;display:flex}.game-over-line{font-weight:700}.game-over-best,.game-over-badges{font-size:.9rem;font-weight:600}.game-over-badge-icons{font-size:1.1rem}.game-over-actions{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:.15rem;display:flex}.game-over-actions .btn{min-height:2.6rem}.confirm-modal{max-width:26rem}.confirm-message{color:var(--text);margin:0 0 1.25rem;line-height:1.5}.modal:focus{outline:none}@keyframes fade-in{0%{opacity:0}}.game-page{flex-direction:column;align-items:center;gap:.9rem;display:flex}.game-topbar{width:var(--board-size);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.game-topbar .btn-ghost{background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:.4rem .9rem}.game-topbar-chips{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.banner{width:var(--board-size);text-align:center;border-radius:var(--radius-s);padding:.75rem;font-weight:700;animation:.3s banner-in}@keyframes banner-in{0%{opacity:0;transform:translateY(-6px)}}.banner-success{background:var(--success-soft);color:var(--success)}.banner-info{background:var(--primary-soft);color:var(--primary)}.banner-danger{background:var(--danger-soft);color:var(--danger)}.load-error{text-align:center;flex-direction:column;align-items:center;gap:.75rem;padding:2rem 1rem;display:flex}.offline-banner{border-radius:var(--radius-s);background:var(--medium-soft);color:var(--medium);text-align:center;justify-content:center;align-items:center;gap:.5rem;margin-bottom:1rem;padding:.7rem .9rem;font-size:.9rem;font-weight:600;display:flex}.game-stats{width:var(--board-size);gap:.5rem;display:flex}.stat{border-radius:var(--radius-s);font-variant-numeric:tabular-nums;background:var(--surface);border:1px solid var(--border);color:var(--text);flex:1;justify-content:center;align-items:center;gap:.4rem;padding:.45rem .5rem;font-weight:700;display:flex}button.stat-pause{font:inherit;cursor:pointer}button.stat-pause:disabled{opacity:.5;cursor:default}button.stat-pause .stat-icon{color:var(--primary)}.stat-icon{color:var(--muted);font-size:1rem;display:flex}.stat-timer .stat-icon{color:var(--primary)}.stat-hints .stat-icon{color:var(--medium)}.stat-mistakes.has-mistakes{color:var(--danger);border-color:var(--danger);background:var(--danger-soft)}.stat-mistakes.has-mistakes .stat-icon{color:var(--danger)}.board-area{width:var(--board-size);position:relative}.board-area.paused .board{filter:blur(9px);pointer-events:none}.board-pause-overlay{color:var(--text);background:color-mix(in srgb, var(--surface) 55%, transparent);border-radius:var(--radius-s);cursor:pointer;border:none;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;font-size:1.1rem;font-weight:700;display:flex;position:absolute;inset:0}.board-pause-icon{color:var(--primary);font-size:2.4rem;display:flex}.board{width:var(--board-size);aspect-ratio:1;border:2px solid var(--board-line);background:var(--surface);box-shadow:0 12px 32px var(--shadow);-webkit-user-select:none;user-select:none;border-radius:.75rem;grid-template-rows:repeat(9,1fr);grid-template-columns:repeat(9,1fr);display:grid;overflow:hidden}.cell{border:none;border-inline-end:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface);color:var(--primary);cursor:pointer;justify-content:center;align-items:center;padding:0;font-size:clamp(1.2rem,5.4vw,1.9rem);font-weight:600;transition:background .1s;display:flex;position:relative}.cell:nth-child(9n){border-inline-end:none}.cell:nth-child(n+73){border-bottom:none}.cell.thick-right{border-inline-end:2px solid var(--board-line)}.cell.thick-bottom{border-bottom:2px solid var(--board-line)}.cell.given{color:var(--text);font-weight:700}.cell.solved{color:var(--primary);font-weight:700}.cell.peer{background:var(--peer-bg)}.cell.same-digit{background:var(--same-digit-bg)}.cell.selected{background:var(--primary-soft);outline:2px solid var(--primary);outline-offset:-2px;z-index:1}.cell.error{color:var(--danger);background:var(--danger-soft)}.cell.hinted{z-index:2;animation:1.6s ease-out 2 hint-pulse}@keyframes hint-pulse{0%,to{box-shadow:inset 0 0 0 0 var(--medium)}35%{box-shadow:inset 0 0 0 3px var(--medium);background:var(--medium-soft)}}.hint-note{inset-inline:.5rem;z-index:3;text-align:start;border:1px solid var(--medium);border-radius:var(--radius-s);background:var(--medium-soft);color:var(--medium);font:inherit;cursor:pointer;box-shadow:0 6px 20px var(--shadow-strong);align-items:center;gap:.5rem;padding:.6rem .8rem;font-size:.85rem;font-weight:600;line-height:1.3;animation:.25s banner-in;display:flex;position:absolute;bottom:.5rem}.hint-note-icon{flex:none;font-size:1.1rem;display:flex}.cell.error.selected{outline-color:var(--danger)}.cell.conflict{box-shadow:inset 0 0 0 2px var(--danger)}.cell.unit-done{animation:.9s ease-out unit-done}@keyframes unit-done{30%{background:var(--success-soft)}}.cell-notes{width:100%;height:100%;color:var(--muted);grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);font-size:clamp(.42rem,1.6vw,.62rem);font-weight:500;line-height:1;display:grid}.cell-notes span{justify-content:center;align-items:center;display:flex}.controls{width:var(--board-size);flex-wrap:wrap;justify-content:center;gap:.4rem .25rem;display:flex}.ctrl{border-radius:var(--radius-s);min-width:3.1rem;color:var(--muted);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:auto;align-items:center;gap:.3rem;padding:.25rem 0;display:flex}.ctrl:disabled{opacity:.4;cursor:default}.ctrl-icon{background:var(--surface);border:1px solid var(--border);width:2.6rem;height:2.6rem;box-shadow:0 1px 3px var(--shadow);border-radius:50%;justify-content:center;align-items:center;font-size:1.25rem;transition:background .15s,color .15s,border-color .15s,transform 60ms;display:flex;position:relative}@media (hover:hover){.ctrl:hover:not(:disabled){color:var(--primary)}.ctrl:hover:not(:disabled) .ctrl-icon{border-color:var(--primary);color:var(--primary)}}.ctrl:active:not(:disabled) .ctrl-icon{transform:scale(.92)}.ctrl.active{color:var(--primary)}.ctrl.active .ctrl-icon{background:var(--primary);border-color:var(--primary);color:var(--surface)}.ctrl-badge{top:-.25rem;background:var(--primary);min-width:1.05rem;height:1.05rem;color:var(--surface);border-radius:999px;justify-content:center;align-items:center;padding:0 .2rem;font-size:.62rem;font-weight:700;display:flex;position:absolute;inset-inline-end:-.25rem}.ctrl-label{white-space:nowrap;align-items:center;gap:.25rem;font-size:.7rem;font-weight:600;display:inline-flex}.ctrl-sheet{flex-direction:column;gap:.25rem;display:flex}.ctrl-sheet h3{margin:0 0 .5rem}.ctrl-sheet-item{border-radius:var(--radius-s);width:100%;color:var(--text);font:inherit;text-align:start;cursor:pointer;background:0 0;border:none;align-items:center;gap:.9rem;padding:.9rem .75rem;font-size:1rem;font-weight:600;display:flex}.ctrl-sheet-item:active:not(:disabled){background:var(--peer-bg)}.ctrl-sheet-item:disabled{opacity:.4;cursor:default}.ctrl-sheet-icon{color:var(--primary);flex:none;font-size:1.3rem;display:flex}.ctrl-key{color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:.12rem .28rem;font-family:inherit;font-size:.6rem;font-weight:700;line-height:1;display:none}@media (hover:hover) and (pointer:fine){.ctrl-key{display:inline-block}}.spinner{border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:1.1rem;height:1.1rem;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.photo-message{width:var(--board-size);border-radius:var(--radius-s);background:var(--medium-soft);color:var(--medium);flex-direction:column;gap:.5rem;margin:0;padding:.6rem .9rem;font-size:.9rem;display:flex}.photo-message p{margin:0}.btn-apply-recognized{align-self:flex-start}.number-pad{width:var(--board-size);grid-template-columns:repeat(9,1fr);display:grid}.pad-btn{cursor:pointer;background:0 0;border:none;padding:0 clamp(.13rem,.8vw,.3rem);display:flex}.pad-face{border:1px solid var(--border);border-radius:var(--radius-s);background:var(--surface);min-height:3.8rem;color:var(--primary);box-shadow:0 1px 3px var(--shadow);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.1rem;padding:.35rem 0;transition:background .12s,transform 60ms;display:flex}@media (hover:hover){.pad-btn:hover:not(:disabled) .pad-face{background:var(--primary-soft)}}.pad-btn:active:not(:disabled) .pad-face{background:var(--primary-soft);transform:scale(.93)}.pad-btn:disabled{cursor:default}.pad-btn:disabled .pad-face{opacity:.5}.pad-btn.done{cursor:not-allowed}.pad-btn.done .pad-face{opacity:.3}.pad-digit{font-size:1.7rem;font-weight:700;line-height:1}.pad-count{min-height:.68rem;color:var(--muted);font-size:.68rem;font-weight:600;line-height:1}.pad-btn.armed .pad-face,.pad-btn.armed:hover:not(:disabled) .pad-face,.pad-btn.armed:active:not(:disabled) .pad-face{background:var(--primary);border-color:var(--primary);color:var(--surface)}.pad-btn.armed .pad-count{color:inherit}@media (width<=640px){:root{--board-size:min(100vw - 1.1rem, 500px)}.app-main-game{--game-chrome:calc(21.5rem + env(safe-area-inset-top) + env(safe-area-inset-bottom));--board-size:min(100vw - 1.1rem, max(15rem, min(100dvh - var(--game-chrome), 500px)))}.app-header{padding-inline:max(.9rem, env(safe-area-inset-left)) max(.9rem, env(safe-area-inset-right));gap:.5rem}.app-title-text{display:none}.new-game-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}.continue-card{flex-direction:column;align-items:stretch;gap:.9rem}.btn-continue{width:100%}.game-tab{padding:.8rem .35rem;font-size:.88rem}.game-filters{gap:.5rem}.game-filters .game-option{flex:6.5rem}.game-filters select{width:100%}.app-main{padding:1rem .75rem}.game-page{gap:.7rem}.game-topbar{flex-wrap:nowrap}.game-topbar .chip{flex:none;padding-inline:.55rem;font-size:.78rem}.game-topbar>.btn-ghost{flex:none}.game-topbar-chips{flex-wrap:nowrap;flex:0 auto;min-width:0}.game-topbar .kind-chip{flex:0 auto;min-width:2.5rem}.controls{flex-wrap:nowrap;gap:0}.ctrl{flex:1 1 0;min-width:0;padding-inline:.1rem}.ctrl-icon{aspect-ratio:1;width:min(3rem,100%);height:auto;font-size:1.4rem}.ctrl-label{font-size:clamp(.55rem,2.6vw,.75rem)}.pad-face{border-radius:.75rem;min-height:4.1rem}.pad-digit{font-size:1.85rem}.modal-overlay{align-items:flex-end;padding:0}.modal{border-radius:var(--radius-l) var(--radius-l) 0 0;width:100%;padding:1.5rem 1.25rem calc(1.5rem + env(safe-area-inset-bottom));animation:.25s sheet-up}.modal-actions .btn{flex:1;padding-block:.7rem}.auth-page{padding-top:1.5rem}.auth-card{padding:1.5rem}}@keyframes sheet-up{0%{opacity:.5;transform:translateY(35%)}}@media (width<=640px) and (height<=720px){.app-main-game{--game-chrome:calc(19.5rem + env(safe-area-inset-top) + env(safe-area-inset-bottom))}.game-page{gap:.45rem}.stat{padding-block:.3rem}.ctrl-icon{width:min(2.7rem,100%);font-size:1.25rem}.pad-face{min-height:3.6rem}}@media (width<=640px){.app-main-game:has(.game-page.no-stats){--game-chrome:calc(18.6rem + env(safe-area-inset-top) + env(safe-area-inset-bottom))}}@media (width<=640px) and (height<=720px){.app-main-game:has(.game-page.no-stats){--game-chrome:calc(17.1rem + env(safe-area-inset-top) + env(safe-area-inset-bottom))}}.clans-page h3,.clan-detail-page h3{margin:1.4rem 0 .6rem}.clan-detail-page .section-head h3{margin:0}.clan-create-form,.clan-invite-form{flex-wrap:wrap;gap:.6rem;max-width:480px;display:flex}.clan-create-form input,.clan-invite-form input{border-radius:var(--radius-s);border:1px solid var(--border);background:var(--surface);min-width:12rem;color:var(--text);flex:1;padding:.6rem .75rem;font-size:1rem}.invites-list{flex-direction:column;gap:.6rem;display:flex}.invite-card{border:1px solid var(--border);border-radius:var(--radius-s);background:var(--surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;padding:.8rem 1rem;display:flex}.invite-actions{gap:.5rem;display:flex}.members-list,.pending-invites{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.pending-invites{margin-top:.7rem}.clan-detail-top{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.5rem;display:flex}.clan-detail-top h2{flex:1;margin:0}.clan-name{font-weight:700}.chip.clan-role-owner{background:var(--primary-soft);color:var(--primary)}.share-scope{flex-direction:column;gap:.3rem;display:flex}.share-scope select{border-radius:var(--radius-s);border:1px solid var(--border);background:var(--surface);color:var(--text);padding:.55rem .7rem;font-size:1rem}.race-card{border-color:var(--primary);grid-column:1/-1}.race-podium{flex-wrap:wrap;gap:.3rem .7rem;font-size:.85rem;font-weight:600;display:flex}.race-podium-place{align-items:center;gap:.25rem;display:inline-flex}.race-podium-medal{font-size:1rem}.race-card-meta{flex-wrap:wrap;align-items:center;gap:.4rem;display:inline-flex}.race-hint{margin:0;font-size:.85rem}.section-head-actions{flex-wrap:wrap;gap:.5rem;display:flex}.chip.race-status-lobby{background:var(--medium-soft);color:var(--medium)}.chip.race-status-running{background:var(--success-soft);color:var(--success);animation:1.8s ease-in-out infinite race-pulse}.chip.race-status-finished{background:var(--primary-soft);color:var(--primary)}@keyframes race-pulse{50%{opacity:.55}}.race-standings{flex-direction:column;gap:.55rem;margin:0;padding:0;list-style:none;display:flex}.race-row{border-radius:var(--radius-s);background:var(--bg);border-inline-start:3px solid #0000;flex-direction:column;gap:.3rem;padding:.45rem .55rem;display:flex}.race-row.is-me{border-inline-start-color:var(--primary);background:color-mix(in srgb, var(--primary) 8%, var(--bg))}.race-row.race-row-completed{border-inline-start-color:var(--success)}.race-row.race-row-failed{border-inline-start-color:var(--danger)}.race-row-head{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.race-row-meta{flex:none;align-items:baseline;gap:.5rem;display:flex}.race-row-foot{font-size:.75rem}.race-name{white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.race-row.is-me .race-name{color:var(--primary)}.race-host-mark{color:var(--medium);margin-inline-start:.3rem}.race-percent,.race-place{font-variant-numeric:tabular-nums;font-weight:800}.race-place{font-size:1.1rem}.race-out{color:var(--danger);background:var(--danger-soft);border-radius:999px;padding:.1rem .45rem;font-size:.75rem;font-weight:700}.race-bar{background:var(--border);border-radius:999px;block-size:.5rem;overflow:hidden}.race-bar-fill{inline-size:var(--race-pct,0%);background:linear-gradient(90deg, var(--primary), var(--primary-2));border-radius:999px;block-size:100%;transition:inline-size .4s;display:block}.race-row-completed .race-bar-fill{background:var(--success)}.race-row-failed .race-bar-fill{background:var(--danger)}.race-mistakes{color:var(--muted);font-weight:600}.race-mistakes.has-mistakes{color:var(--danger)}.race-panel{inline-size:var(--board-size);border:1px solid var(--border);border-radius:var(--radius-m);background:var(--surface);padding:.7rem .85rem}.race-panel-head{justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.55rem;display:flex}.race-panel-head h3{margin:0;font-size:.95rem}.race-panel-note{color:var(--muted);font-size:.78rem}.race-panel-note.reconnecting{color:var(--medium)}.board-area.locked .board{filter:blur(9px);pointer-events:none}.board-race-overlay{border-radius:var(--radius-s);background:color-mix(in srgb, var(--surface) 55%, transparent);flex-direction:column;justify-content:center;align-items:center;gap:.3rem;display:flex;position:absolute;inset:0}.race-countdown-label{color:var(--text);font-size:1rem;font-weight:700}.race-countdown{color:var(--primary);font-variant-numeric:tabular-nums;font-size:4.5rem;font-weight:900;line-height:1;animation:1s ease-out infinite race-tick}@keyframes race-tick{0%{opacity:.6;transform:scale(1.25)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.btn:active,.game-card:hover,.pad-btn:active,.cell:active{transform:none}}@media (width>=1100px){.game-page{position:relative}.game-page.has-race>.race-panel{inline-size:min(20rem, calc(50vw - var(--board-size) / 2 - 2.5rem));position:absolute;inset-block-start:0;inset-inline-start:calc(50% + var(--board-size) / 2 + 1.25rem)}}@media (width<=640px){.race-panel{padding:.35rem}.race-panel-head{margin-bottom:0}.race-panel-head h3{display:none}.race-panel-note{margin-bottom:.25rem}.race-panel .race-standings{scrollbar-width:none;flex-direction:row;gap:.3rem;overflow-x:auto}.race-panel .race-standings::-webkit-scrollbar{display:none}.race-panel .race-row{--race-fill:color-mix(in srgb, var(--primary) 30%, transparent);background-image:linear-gradient(to right, var(--race-fill) 0, var(--race-fill) var(--race-pct,0%), transparent var(--race-pct,0%));border-inline-start-width:2px;flex:auto;min-inline-size:5.5rem;padding:.25rem .45rem;position:relative;overflow:hidden}[dir=rtl] .race-panel .race-row{background-image:linear-gradient(to left, var(--race-fill) 0, var(--race-fill) var(--race-pct,0%), transparent var(--race-pct,0%))}.race-panel .race-row-completed{--race-fill:color-mix(in srgb, var(--success) 30%, transparent)}.race-panel .race-row-failed{--race-fill:color-mix(in srgb, var(--danger) 30%, transparent)}.race-panel .race-bar{clip-path:inset(50%);block-size:1px;inline-size:1px;margin:-1px;position:absolute;overflow:hidden}.race-panel .race-row-head{gap:.35rem;font-size:.8rem;position:relative}.race-panel .race-name{min-inline-size:0}.race-panel .race-place{font-size:.95rem}.race-panel .race-row-foot,.race-panel .race-mistakes{display:none}}.stats-cards,.stats-best-times{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.75rem;display:grid}.stats-best-times{max-width:520px}.archive-page{max-width:30rem;margin:0 auto}.archive-page>.muted{margin:0 0 1rem}.daily-archive-link{margin-top:.25rem}.month-nav{justify-content:center;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.month-name{text-align:center;min-width:10rem;font-weight:700}.calendar{grid-template-columns:repeat(7,1fr);gap:.3rem;display:grid}.calendar-weekday{text-align:center;color:var(--muted);padding-bottom:.2rem;font-size:.75rem;font-weight:700}.calendar-blank{aspect-ratio:1}.calendar-day{aspect-ratio:1;border:1px solid var(--border);border-radius:var(--radius-s);background:var(--surface);color:var(--text);font-variant-numeric:tabular-nums;cursor:pointer;justify-content:center;align-items:center;font-size:.9rem;font-weight:600;display:flex;position:relative}.calendar-day:disabled{cursor:default}.calendar-day.none{color:var(--muted);opacity:.5;border-style:dashed}.calendar-day.solved{background:var(--success-soft);color:var(--success);border-color:var(--success)}.calendar-day.solved-late{color:var(--success);border-color:var(--success);background:0 0;border-style:dashed}.calendar-day.started{background:var(--primary-soft);border-color:var(--primary)}.calendar-day.ended{background:var(--danger-soft);color:var(--danger);border-color:var(--danger)}.calendar-day-bar{inset-inline:25%;background:var(--difficulty);border-radius:999px;height:3px;position:absolute;bottom:.25rem}.calendar-legend{color:var(--muted);flex-wrap:wrap;justify-content:center;gap:.75rem;margin:.75rem 0 .5rem;font-size:.8rem;display:flex}.calendar-key{align-items:center;gap:.35rem;display:inline-flex}.calendar-dot{border:1px solid var(--border);background:var(--surface);border-radius:.2rem;width:.7rem;height:.7rem}.calendar-dot.solved{background:var(--success-soft);border-color:var(--success)}.calendar-dot.solved-late{border-color:var(--success);background:0 0;border-style:dashed}.calendar-dot.started{background:var(--primary-soft);border-color:var(--primary)}.calendar-dot.ended{background:var(--danger-soft);border-color:var(--danger)}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:.6rem;margin-bottom:.75rem;display:grid}.badge{--tier:var(--success);text-align:center;border-radius:var(--radius-m);background:var(--surface);border:1px solid var(--border);flex-direction:column;align-items:center;gap:.3rem;padding:.85rem .65rem .75rem;display:flex;position:relative}.badge.tier-1{--tier:#b87333}.badge.tier-2{--tier:#8f9aa6}.badge.tier-3{--tier:#d4a017}.badge.tier-4{--tier:#3fa7a7}.badge.tier-5{--tier:#5b9cff}.badge.tier-6{--tier:#c061ff}.badge.earned{border-color:color-mix(in srgb, var(--tier) 55%, var(--border));box-shadow:inset 0 3px 0 var(--tier)}.badge.secret{border-style:dashed}.badge-ribbon{top:.35rem;background:var(--primary);color:var(--surface);letter-spacing:.03em;text-transform:uppercase;border-radius:999px;padding:.05rem .4rem;font-size:.62rem;font-weight:800;position:absolute;inset-inline-end:.35rem}.badge-icon{font-size:1.6rem;line-height:1.2}.badge:not(.earned) .badge-icon{filter:grayscale();opacity:.45}.badge-name{font-size:.9rem;font-weight:700;line-height:1.25}.badge:not(.earned) .badge-name{color:var(--muted)}.badge-tier{background:color-mix(in srgb, var(--tier) 18%, transparent);color:color-mix(in srgb, var(--tier) 65%, var(--text));font-variant-numeric:tabular-nums;border-radius:999px;padding:.1rem .55rem;font-size:.7rem;font-weight:700}.badge:not(.earned) .badge-tier{background:var(--chip-neutral-bg);color:var(--muted)}.badge-how{color:var(--muted);font-size:.75rem;line-height:1.3}.badge-meter{align-items:center;gap:.45rem;width:100%;margin-top:auto;padding-top:.35rem;display:flex}.badge-meter-bar{background:var(--border);border-radius:999px;flex:auto;height:.35rem;overflow:hidden}.badge-meter-fill{border-radius:inherit;background:var(--primary);height:100%;display:block}.badge.earned .badge-meter-fill{background:var(--tier)}.badge-meter-text{color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:.72rem;font-weight:700}.badge-strip{border:1px solid var(--border);border-radius:var(--radius-m);background:var(--surface);color:inherit;align-items:center;gap:.85rem;margin:.25rem 0 1rem;padding:.75rem 1rem;text-decoration:none;display:flex}.badge-strip:hover{border-color:var(--primary)}.badge-strip-icons{flex:none;gap:.15rem;font-size:1.3rem;display:flex}.badge-strip-text{flex-direction:column;flex:auto;min-width:0;font-size:.85rem;display:flex}.achievements-summary{border:1px solid var(--border);border-radius:var(--radius-m);background:var(--surface);align-items:center;gap:1rem;margin-bottom:.5rem;padding:.85rem 1rem;display:flex}.achievements-summary .progress-ring-text{font-size:.85rem}.achievements-summary-text{flex-direction:column;gap:.15rem;display:flex}.achievements-shelf h3{margin:.9rem 0 .5rem}.stats-table{border-collapse:collapse;width:100%;max-width:520px;margin:0 0 .5rem}.stats-table th{color:var(--muted);text-align:start;padding:.3rem .6rem;font-size:.8rem;font-weight:600}.stats-table td{border-top:1px solid var(--border);font-variant-numeric:tabular-nums;padding:.4rem .6rem}.stats-table td:first-child{white-space:nowrap;width:1%}.stats-note{max-width:520px;margin:0 0 .5rem;font-size:.8rem}.activity-chart{background:var(--chip-neutral-bg);border-radius:var(--radius-s);align-items:flex-end;gap:2px;max-width:520px;height:5rem;padding:.5rem;display:flex}.activity-bar{background:var(--primary);border-radius:2px 2px 0 0;flex:1;min-width:0}.activity-bar.empty{background:var(--border)}.outcome-bar{border-radius:999px;max-width:520px;height:1.75rem;margin-bottom:.5rem;display:flex;overflow:hidden}.outcome-slice{color:#fff;justify-content:center;align-items:center;min-width:.5rem;font-size:.78rem;font-weight:700;display:flex;overflow:hidden}.outcome-completed{background:var(--success)}.outcome-failed{background:var(--danger)}.outcome-revealed{background:var(--medium)}.outcome-inProgress{background:var(--muted)}.outcome-legend{max-width:520px;color:var(--muted);flex-wrap:wrap;gap:.75rem;margin-bottom:.5rem;font-size:.82rem;display:flex}.outcome-key{align-items:center;gap:.35rem;display:inline-flex}.outcome-dot{border-radius:50%;width:.6rem;height:.6rem}.stats-card{border:1px solid var(--border);border-radius:var(--radius-s);background:var(--surface);flex-direction:column;justify-content:center;align-items:center;gap:.35rem;padding:1.1rem .75rem;display:flex}.stats-card-value{font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:800}.stats-card-label{color:var(--muted);text-align:center;font-size:.82rem;font-weight:600}@media (width<=1024px){html,body{height:100%;overflow:hidden}#root{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.app-main{overscroll-behavior:contain;flex-direction:column;flex:auto;width:100%;min-height:0;padding-bottom:1rem;display:flex;overflow-y:auto}.app-main>*{flex:auto;min-height:0}.app-main>*>*,.pane-section>*{flex:none}.dashboard,.history-page,.achievements-page,.daily-page,.community-page,.clans-page,.clan-detail-page,.stats-page{flex-direction:column;display:flex}.section-head{margin:.8rem 0 .5rem}.game-tabs{margin-bottom:.6rem}.show-all{margin-top:.6rem}.clans-page h3,.clan-detail-page h3{margin:.8rem 0 .5rem}.daily-page{gap:1rem}.scroll-pane{overscroll-behavior:contain;flex:auto;align-content:start;min-height:8rem;margin:-.3rem;padding:.3rem;overflow-y:auto}.pane-section{flex-direction:column;flex:auto;min-height:0;display:flex}.auth-page{align-items:flex-start;padding-top:1.5rem;overflow-y:auto}.modal{max-height:100%;overflow-y:auto}.app-main-game{padding:.75rem .5rem calc(1.25rem + env(safe-area-inset-bottom));overflow:hidden}.board-slot{flex:1 1 0;justify-content:center;align-items:center;width:100%;min-height:0;display:flex;container-type:size}.board-area{width:min(var(--board-size), 100cqh)}.board{width:100%}.game-preview-wrap{top:-1rem}.game-preview .board-area,.game-preview .board{width:var(--board-size)}}@media (width<=640px){.game-preview{--board-size:10.5rem}}@media (width<=1024px) and (height<=720px){.continue-card{flex-direction:row;align-items:center;padding:.8rem .9rem}.btn-continue{width:auto}.new-game-buttons{grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}.btn-new-game{padding:.7rem .25rem;font-size:.85rem}.section-head{margin:.6rem 0 .4rem}.game-tab{padding:.6rem .35rem}.clans-page h2,.stats-page h2{margin:.2rem 0 .3rem}.clans-page>.muted{margin:0 0 .4rem}.scroll-pane{min-height:6rem}}@media (width<=1024px) and (orientation:landscape) and (height<=560px){.game-page{--board-size:min(100dvh - 5.5rem, 46vw);grid-template-rows:repeat(7,auto) 1fr;grid-template-columns:min(100dvh - 5.5rem,46%) minmax(0,1fr);gap:.45rem .75rem;display:grid}.board-slot{grid-area:1/1/-1;width:100%;height:100%}.game-page>:not(.board-slot){grid-column:2;width:100%}.pad-face{min-height:3.2rem}.scroll-pane{flex:none;min-height:0;overflow:visible}}
