@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-vietnamese-wght-normal-DadHysG0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-wght-normal-XN7g48iV.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}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-sans:"Geist Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"Geist Mono Variable", ui-monospace, "SF Mono", Menlo, monospace;--radius-inset:6px;--radius-control:8px;--radius-card:12px;--radius-pill:999px;--ease:cubic-bezier(.16, 1, .3, 1);--z-sticky:10;--z-menu:20;--z-toast:30;--topbar-height:56px;--hud-width:340px;--board-light:#ead9b6;--board-dark:#ad7f5b;--piece-white:#f7f3ea;--piece-white-edge:#2a2620;--piece-black:#26241f;--piece-black-edge:#6b6559;--mark-inaccuracy:#e0a013;--mark-mistake:#e67a4d;--mark-blunder:#d03b3b;--star:#e0a013;--medal-gold:#d9a00f;--medal-silver:#9aa3ad;--medal-bronze:#b8743d;--avatar-green:#1a7f4e;--avatar-teal:#0e7c86;--avatar-blue:#2b63c9;--avatar-indigo:#5046c8;--avatar-purple:#8440b5;--avatar-pink:#c0347c;--avatar-red:#c43d32;--avatar-amber:#b06a08;--bg:#f3f4f5;--surface:#fcfcfc;--surface-raised:#eef0f2;--surface-hover:#e5e8eb;--border:#dfe2e6;--border-strong:#c2c7ce;--text:#15181c;--muted:#59606a;--faint:#7b828c;--accent:#167a49;--accent-strong:#0f6239;--on-accent:#fbfdfc;--error:#b9342c;--on-error:#fdfbfb;--warn:#875800;--mistake:#ad4812;--info:#2459b0;--brilliant:#0b7285;--shadow-rgb:22 28 36;--shadow-pop:0 16px 40px -16px rgb(var(--shadow-rgb) / .28), 0 2px 8px -2px rgb(var(--shadow-rgb) / .12);--shadow-board:0 10px 30px -14px rgb(var(--shadow-rgb) / .45);--backdrop:rgb(var(--shadow-rgb) / .4);--stage-glow:#fdfdfd;--chart-white:#2f6fd0;--chart-black:#c8551f;--skill-recent:#167a49;--skill-earlier:#4db888}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f1113;--surface:#16191c;--surface-raised:#1e2226;--surface-hover:#272c31;--border:#272c31;--border-strong:#3b4149;--text:#e8eaed;--muted:#959ca6;--faint:#6e7580;--accent:#4cc38a;--accent-strong:#67d39e;--on-accent:#06170e;--error:#f2766e;--on-error:#1d0706;--warn:#efbf4a;--mistake:#f09a70;--info:#84b2f3;--brilliant:#6fd0e2;--shadow-rgb:0 0 0;--shadow-pop:0 18px 44px -16px rgb(var(--shadow-rgb) / .7), 0 2px 8px -2px rgb(var(--shadow-rgb) / .4);--shadow-board:0 12px 34px -14px rgb(var(--shadow-rgb) / .8);--backdrop:rgb(var(--shadow-rgb) / .6);--stage-glow:#1b1f23;--chart-white:#5b9bee;--chart-black:#e17a45;--skill-recent:#2cae73;--skill-earlier:#0c7244}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f1113;--surface:#16191c;--surface-raised:#1e2226;--surface-hover:#272c31;--border:#272c31;--border-strong:#3b4149;--text:#e8eaed;--muted:#959ca6;--faint:#6e7580;--accent:#4cc38a;--accent-strong:#67d39e;--on-accent:#06170e;--error:#f2766e;--on-error:#1d0706;--warn:#efbf4a;--mistake:#f09a70;--info:#84b2f3;--brilliant:#6fd0e2;--shadow-rgb:0 0 0;--shadow-pop:0 18px 44px -16px rgb(var(--shadow-rgb) / .7), 0 2px 8px -2px rgb(var(--shadow-rgb) / .4);--shadow-board:0 12px 34px -14px rgb(var(--shadow-rgb) / .8);--backdrop:rgb(var(--shadow-rgb) / .6);--stage-glow:#1b1f23;--chart-white:#5b9bee;--chart-black:#e17a45;--skill-recent:#2cae73;--skill-earlier:#0c7244}:root[data-board=green]{--board-light:#eeeed4;--board-dark:#769656;--piece-white:#faf9f2;--piece-white-edge:#262b22;--piece-black:#20241f;--piece-black-edge:#6a6f63}:root[data-board=blue]{--board-light:#e4ebf2;--board-dark:#6b8bb5;--piece-white:#f8fafc;--piece-white-edge:#20262e;--piece-black:#1c2128;--piece-black-edge:#656d78}:root[data-board=graphite]{--board-light:#d8dcdf;--board-dark:#6d757e;--piece-white:#f7f8f9;--piece-white-edge:#1f2327;--piece-black:#1b1f23;--piece-black-edge:#6b727a}:root{--success:var(--accent);--accent-soft:color-mix(in srgb, var(--accent) 13%, transparent);--accent-line:color-mix(in srgb, var(--accent) 45%, transparent);--error-soft:color-mix(in srgb, var(--error) 12%, transparent);--error-line:color-mix(in srgb, var(--error) 40%, transparent);--warn-soft:color-mix(in srgb, var(--warn) 14%, transparent);--mistake-soft:color-mix(in srgb, var(--mistake) 13%, transparent);--info-soft:color-mix(in srgb, var(--info) 12%, transparent);--info-line:color-mix(in srgb, var(--info) 40%, transparent);--neutral-soft:color-mix(in srgb, var(--text) 8%, transparent);--streak:var(--mistake);--chart-line:var(--chart-white);--chart-grid:var(--border);--chart-surface:var(--surface);--chart-current:var(--accent);--chart-crosshair:var(--faint)}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}:root{font-family:var(--font-sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-feature-settings:"ss01", "cv11";font-size:15px;line-height:1.5}h1,h2,h3,p{margin:0}h1{letter-spacing:-.022em;font-size:1.6rem;font-weight:600;line-height:1.2}h2{letter-spacing:-.01em;font-size:1.05rem;font-weight:600;line-height:1.3}h3{font-size:.95rem;font-weight:600;line-height:1.35}a{color:var(--accent);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:var(--accent-strong)}strong{font-weight:600}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:var(--accent-soft)}button,select,.button-link{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-control);transition:background-color .15s var(--ease), border-color .15s var(--ease), color .15s var(--ease), transform .1s var(--ease);padding:7px 12px;font-size:.9rem;font-weight:500;line-height:1.25rem}button,.button-link{cursor:pointer;white-space:nowrap}.button-link{align-items:center;gap:8px;text-decoration:none;display:inline-flex}button:hover:not(:disabled),.button-link:hover{color:var(--text);background:var(--surface-hover)}button:active:not(:disabled),.button-link:active{transform:scale(.98)}button:disabled{color:var(--faint);background:var(--surface-raised);border-color:var(--border);cursor:not-allowed}select{cursor:pointer;max-width:100%;padding-right:8px}select:hover{border-color:var(--muted)}.button-primary,.button-link.button-primary{color:var(--on-accent);background:var(--accent);border-color:var(--accent);font-weight:600}.button-primary:hover:not(:disabled),.button-link.button-primary:hover{color:var(--on-accent);background:var(--accent-strong);border-color:var(--accent-strong)}.button-danger{color:var(--on-error);background:var(--error);border-color:var(--error);font-weight:600}.button-danger:hover:not(:disabled){color:var(--on-error);background:color-mix(in srgb, var(--error) 86%, var(--text))}.button-danger-quiet{color:var(--error);border-color:var(--error-line);background:0 0}.button-danger-quiet:hover:not(:disabled){color:var(--error);background:var(--error-soft)}.button-icon{justify-content:center;align-items:center;gap:6px;display:inline-flex}.button-icon--only{width:34px;height:34px;padding:0}.link-button{color:var(--accent);font-size:inherit;font-weight:inherit;line-height:inherit;text-align:left;text-underline-offset:3px;white-space:normal;background:0 0;border:none;border-radius:2px;padding:0;text-decoration:underline;text-decoration-thickness:1px}.link-button:hover:not(:disabled){color:var(--accent-strong);background:0 0}.link-button:active:not(:disabled){transform:none}.button-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.load-more{margin:20px auto 0;display:block}.form{flex-direction:column;gap:16px;margin-top:8px;display:flex}.form>button{align-self:flex-start;min-width:140px;padding:8px 16px}.auth .form>button{align-self:stretch;padding:9px 16px}.form__aside{align-self:center;font-size:.9rem}.form-field{flex-direction:column;gap:6px;display:flex}.form-field label,.form-field__label,.field,.segmented legend{color:var(--text);font-size:.875rem;font-weight:500}.field{flex-direction:column;gap:6px;display:flex}.field-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.form-field>input,.form-field>select,.form-field>textarea,.field>input,.field>select{width:100%;min-width:0}input:not([type=checkbox],[type=radio]),textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-control);transition:border-color .15s var(--ease), box-shadow .15s var(--ease);padding:7px 11px;font-size:.9rem;line-height:1.25rem}input::placeholder,textarea::placeholder{color:var(--muted)}input:not([type=checkbox],[type=radio]):focus,textarea:focus,select:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}input[aria-invalid=true]{border-color:var(--error)}input[aria-invalid=true]:focus{box-shadow:0 0 0 3px var(--error-soft)}input[type=checkbox],input[type=radio]{width:16px;height:16px;accent-color:var(--accent);margin:0}textarea{resize:vertical;font-family:var(--font-mono);font-size:.85rem;line-height:1.55}.form-field__error{color:var(--error);font-size:.85rem}.form-field__hint{color:var(--muted);font-size:.85rem}.form-message{border-radius:var(--radius-control);border:1px solid #0000;padding:10px 14px;font-size:.9rem;line-height:1.5}.form-message--error{color:var(--error);background:var(--error-soft);border-color:var(--error-line)}.form-message--success{color:var(--accent);background:var(--accent-soft);border-color:var(--accent-line)}.form-message--info{color:var(--info);background:var(--info-soft);border-color:var(--info-line)}.toggle{cursor:pointer;align-items:center;gap:10px;font-size:.9rem;font-weight:500;display:flex}.segmented{border:none;flex-wrap:wrap;gap:8px 18px;margin:0;padding:0;display:flex}.segmented legend{margin-bottom:8px;padding:0}.segmented label{cursor:pointer;align-items:center;gap:8px;font-size:.9rem;display:flex}.board-themes{gap:10px 16px}.board-theme{border-radius:var(--radius-control);border:1px solid #0000;gap:8px;padding:4px 8px 4px 4px}.board-theme:hover{background:var(--surface-hover)}.board-theme:has(input:checked){border-color:var(--accent-line);background:var(--accent-soft)}.board-theme:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:1px}.board-theme__swatch{border-radius:var(--radius-inset);width:22px;height:22px;box-shadow:inset 0 0 0 1px rgb(var(--shadow-rgb) / .25);background-color:var(--swatch-light);background-image:linear-gradient(45deg, var(--swatch-dark) 25%, transparent 25%, transparent 75%, var(--swatch-dark) 75%), linear-gradient(45deg, var(--swatch-dark) 25%, transparent 25%, transparent 75%, var(--swatch-dark) 75%);background-position:0 0,11px 11px;background-size:22px 22px}.checkbox-grid{border:none;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:0;padding:0;display:grid}meter,progress{appearance:none;border-radius:var(--radius-pill);background:var(--neutral-soft);border:none;height:6px;overflow:hidden}meter::-webkit-meter-bar{border-radius:var(--radius-pill);background:var(--neutral-soft);border:none;height:6px}meter::-webkit-meter-optimum-value{border-radius:var(--radius-pill);background:var(--accent)}meter::-webkit-meter-suboptimum-value{border-radius:var(--radius-pill);background:var(--accent)}meter::-webkit-meter-even-less-good-value{border-radius:var(--radius-pill);background:var(--accent)}meter::-moz-meter-bar{border-radius:var(--radius-pill);background:var(--accent)}progress::-webkit-progress-bar{background:var(--neutral-soft)}progress::-webkit-progress-value{border-radius:var(--radius-pill);background:var(--accent);transition:width .3s var(--ease)}progress::-moz-progress-bar{border-radius:var(--radius-pill);background:var(--accent)}.muted{color:var(--muted);font-size:.9rem}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:.85em}.nowrap{white-space:nowrap}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.back-link{color:var(--muted);align-items:center;gap:6px;margin-bottom:8px;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--text)}.meta{color:var(--muted);flex-wrap:wrap;gap:2px 14px;margin:0;padding:0;font-size:.9rem;list-style:none;display:flex}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);flex-direction:column;gap:10px;padding:18px;display:flex}.panel h2,.panel>h3{letter-spacing:-.005em;color:var(--text);margin:0;font-size:.95rem;font-weight:600}.empty-state{text-align:center;align-items:center;gap:10px;padding:56px 24px}.empty-state h2{font-size:1.15rem}.empty-state p{max-width:46ch}.empty-state .button-link{margin-top:8px}.badge{border-radius:var(--radius-pill);color:var(--text);background:var(--neutral-soft);white-space:nowrap;margin-right:6px;padding:1px 9px;font-size:.78rem;font-weight:500;line-height:1.5;display:inline-block}.badge--active,.badge--win,.badge--sync-idle,.progress--fixed,.progress--improving,.verdict--keep{color:var(--accent);background:var(--accent-soft)}.badge--pending,.badge--warning,.badge--sync-queued,.badge--sync-running,.verdict--fix{color:var(--warn);background:var(--warn-soft)}.badge--rejected,.badge--deactivated,.badge--loss,.badge--failed,.badge--critical,.badge--sync-error,.progress--worsening,.verdict--drop{color:var(--error);background:var(--error-soft)}.badge--info{color:var(--info);background:var(--info-soft)}.badge--draw,.badge--duplicate,.badge--skipped,.progress--steady,.progress--new,.mistake-type{color:var(--text);background:var(--neutral-soft)}.badge--win,.badge--loss,.badge--draw,.badge--duplicate,.badge--skipped,.badge--warning,.badge--critical{margin-left:8px;margin-right:0}.count{border-radius:var(--radius-pill);background:var(--accent);min-width:20px;color:var(--on-accent);text-align:center;font-variant-numeric:tabular-nums;padding:0 6px;font-size:.75rem;font-weight:600;line-height:1.5}.tabs{background:var(--surface-raised);border-radius:10px;gap:2px;padding:3px;display:flex;overflow-x:auto}.tabs a{color:var(--muted);white-space:nowrap;transition:color .15s var(--ease), background-color .15s var(--ease);border-radius:7px;align-items:center;gap:8px;padding:6px 14px;font-size:.9rem;font-weight:500;text-decoration:none;display:flex}.tabs a:hover{color:var(--text)}.tabs a.active{color:var(--text);background:var(--surface);box-shadow:0 1px 2px rgb(var(--shadow-rgb) / .12)}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip,.chip-button{border:1px solid var(--border-strong);border-radius:var(--radius-pill);color:var(--muted);background:0 0;align-items:center;gap:6px;padding:4px 12px;font-size:.85rem;display:inline-flex}.chip-button{color:var(--text)}.chip[aria-pressed=true]{color:var(--accent);background:var(--accent-soft);border-color:var(--accent-line)}.chip__clear{color:var(--muted);background:0 0;border:none;padding:0 2px;line-height:1}.toolbar{flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:16px;display:flex}.page__header .toolbar{margin-bottom:0}.toolbar__search{width:min(280px,100%);margin-left:auto}.toolbar__field{color:var(--muted);align-items:center;gap:8px;font-size:.875rem;font-weight:500;display:flex}.table-wrap{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);transition:opacity .2s var(--ease);overflow-x:auto}.panel .table-wrap{background:0 0;border:none;border-radius:0}.table-wrap[aria-busy=true]{opacity:.6}.table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.9rem}.table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 16px;font-size:.82rem;font-weight:500}.table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:11px 16px}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom:none}.table tbody tr{transition:background-color .12s var(--ease)}.table tbody tr:hover{background:color-mix(in srgb, var(--surface-raised) 60%, transparent)}.table tbody th{color:var(--text);white-space:normal;font-size:.9rem;font-weight:500}.table__empty{text-align:center;color:var(--muted);padding:40px 16px!important}.table--clickable tbody tr{cursor:pointer}.table--clickable td:first-child{white-space:nowrap}.table--clickable a{color:var(--text);text-decoration:none}.compact-table th,.compact-table td{white-space:normal;padding:8px 10px}.cell-user{align-items:center;gap:10px;display:flex}.cell-user__names{flex-direction:column;gap:2px;display:flex}.cell-user .muted{font-size:.82rem}.cell-actions{white-space:nowrap;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.cell-actions a{color:var(--muted);font-size:.875rem}.cell-actions button{padding:3px 10px;font-size:.85rem}.cell-note{max-width:320px}.cell-me{font-weight:600}.clock-mark{color:var(--faint);vertical-align:-2px;margin-left:6px;display:inline-flex}.event{white-space:nowrap}.event--login_failed{color:var(--error)}.event--admin{color:var(--info)}.avatar{--avatar-size:32px;width:var(--avatar-size);height:var(--avatar-size);background:var(--surface-hover);color:var(--muted);font-size:calc(var(--avatar-size) * .4);letter-spacing:0;-webkit-user-select:none;user-select:none;border-radius:50%;flex:none;place-items:center;font-weight:600;line-height:1;display:inline-grid;overflow:hidden}.avatar--sm{--avatar-size:26px}.avatar--lg{--avatar-size:48px}.avatar--xl{--avatar-size:76px}.avatar__piece{color:#fdfdfc;font-family:Segoe UI Symbol,DejaVu Sans,Noto Sans Symbols2,Apple Symbols,sans-serif;font-size:calc(var(--avatar-size) * .66);font-weight:400}.avatar--green{background:var(--avatar-green)}.avatar--teal{background:var(--avatar-teal)}.avatar--blue{background:var(--avatar-blue)}.avatar--indigo{background:var(--avatar-indigo)}.avatar--purple{background:var(--avatar-purple)}.avatar--pink{background:var(--avatar-pink)}.avatar--red{background:var(--avatar-red)}.avatar--amber{background:var(--avatar-amber)}.player-heading{align-items:center;gap:14px;display:flex}.modal{width:min(460px,100vw - 32px);color:var(--text);border-color:var(--border);box-shadow:var(--shadow-pop);gap:14px;padding:24px}.modal:not([open]){display:none}.modal::backdrop{background:var(--backdrop)}.panel .modal__title{letter-spacing:-.015em;font-size:1.15rem}.modal__body{color:var(--muted);flex-direction:column;gap:12px;display:flex}.modal__body strong{color:var(--text)}.modal__actions{justify-content:flex-end;gap:8px;margin-top:6px;display:flex}.temp-password{border:1px dashed var(--accent-line);border-radius:var(--radius-control);background:var(--accent-soft);align-items:center;gap:10px;padding:10px 12px;display:flex}.temp-password code{font-family:var(--font-mono);letter-spacing:.04em;color:var(--text);-webkit-user-select:all;user-select:all;flex:1;font-size:1.1rem}.promotion__choices{justify-content:center;gap:10px;display:flex}.promotion__choice{width:60px;height:60px;padding:0;font-size:2.1rem;line-height:1}.spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;flex:none;width:14px;height:14px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.queue-note{border-radius:var(--radius-control);background:var(--surface-raised);color:var(--muted);align-items:center;gap:10px;margin-bottom:16px;padding:10px 14px;font-size:.9rem;display:flex}.page-loading{place-items:center;min-height:40vh;display:grid}.skeleton{flex-direction:column;gap:16px;display:flex}.skeleton__block{border-radius:var(--radius-control);background:linear-gradient(90deg, var(--surface-raised) 25%, var(--surface-hover) 50%, var(--surface-raised) 75%);background-size:200% 100%;height:16px;animation:1.4s linear infinite shimmer}.skeleton__block--title{width:min(280px,60%);height:30px}.skeleton__block--line{width:min(520px,85%)}.skeleton__block--card{border-radius:var(--radius-card);height:180px}@keyframes shimmer{to{background-position:-200% 0}}@keyframes rise-in{0%{opacity:0;transform:translateY(6px)}}@media (prefers-reduced-motion:no-preference){.modal[open]{animation:rise-in .22s var(--ease)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.arrow-link{align-items:center;gap:4px;display:inline-flex}.field-row>*{min-width:0}.shell{flex-direction:column;height:100%;display:flex}.shell__main{flex:1;min-height:0;position:relative;overflow:auto}.topbar{height:var(--topbar-height);border-bottom:1px solid var(--border);background:var(--surface);flex:none;align-items:center;gap:28px;padding:0 20px;display:flex}.topbar__brand{color:var(--text);letter-spacing:-.015em;white-space:nowrap;align-items:center;gap:10px;font-weight:600;text-decoration:none;display:flex}.topbar__brand:hover{color:var(--text)}.brand-mark{background:var(--text);border-radius:5px;flex:none;grid-template:1fr 1fr/1fr 1fr;width:22px;height:22px;display:grid;overflow:hidden}.brand-mark:before,.brand-mark:after{content:"";background:var(--accent)}.brand-mark:after{grid-area:2/2}.topbar__nav{align-self:stretch;gap:2px;display:flex}.topbar__nav a{color:var(--muted);white-space:nowrap;transition:color .15s var(--ease);align-items:center;padding:0 12px;font-size:.925rem;font-weight:500;text-decoration:none;display:flex;position:relative}.topbar__nav a:hover,.topbar__nav a.active{color:var(--text)}.topbar__nav a.active:after{content:"";background:var(--accent);border-radius:2px 2px 0 0;height:2px;position:absolute;bottom:-1px;left:12px;right:12px}.topbar__user{align-items:center;gap:8px;margin-left:auto;display:flex}.account{position:relative}.account__button{background:0 0;border-color:#0000;align-items:center;gap:8px;max-width:220px;display:flex}.account__button[aria-expanded=true]{background:var(--surface-raised)}.account__name{text-overflow:ellipsis;overflow:hidden}.account__menu{z-index:var(--z-menu);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);min-width:236px;box-shadow:var(--shadow-pop);flex-direction:column;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);right:0}.account__menu a,.account__menu button{border-radius:var(--radius-inset);width:100%;color:var(--text);text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:8px 10px;font-size:.9rem;font-weight:500;text-decoration:none;display:flex}.account__menu a:hover,.account__menu button:hover:not(:disabled){background:var(--surface-raised)}.account__menu hr{border:none;border-top:1px solid var(--border);width:100%;margin:6px 0}.account__menu svg{color:var(--muted)}.account__theme{border:none;gap:14px;margin:0;padding:4px 10px 6px;font-size:.875rem;display:flex}.account__theme legend{color:var(--muted);margin-bottom:6px;padding:0;font-size:.82rem;font-weight:500}.account__theme label{cursor:pointer;align-items:center;gap:6px;display:flex}@media (prefers-reduced-motion:no-preference){.account__menu{animation:rise-in .16s var(--ease)}}@media (width<=900px){.topbar{flex-wrap:wrap;gap:0 16px;height:auto;padding:8px 14px 0}.topbar__nav{scrollbar-width:none;order:3;width:100%;height:42px;margin:6px -4px 0;overflow-x:auto}}.page{max-width:1200px;margin:0 auto;padding:32px 24px 64px}.page--narrow{max-width:720px}.page__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;display:flex}.page__header>div>.muted{margin-top:4px}@media (width<=720px){.page{padding:20px 14px 48px}}.auth{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);min-height:100dvh;display:grid}.auth__main{flex-direction:column;gap:40px;padding:28px 40px 40px;display:flex}.auth__card{background:0 0;border:none;gap:12px;width:min(380px,100%);margin:auto;padding:0}.auth__card h1{font-size:1.75rem}.auth__footer{width:min(380px,100%);color:var(--muted);margin:0 auto;font-size:.925rem}.auth__aside{border-left:1px solid var(--border);background:var(--surface-raised);flex-direction:column;justify-content:center;align-items:center;gap:20px;padding:40px;display:flex}.auth__board{width:min(440px,100%)}.auth__caption{max-width:440px;color:var(--muted);font-size:.9rem}.auth__caption strong{color:var(--text)}@media (width<=900px){.auth{grid-template-columns:1fr}.auth__main{padding:20px 18px 32px}.auth__aside{display:none}}.board2d{aspect-ratio:1;border-radius:var(--radius-control);width:100%;box-shadow:var(--shadow-board);-webkit-user-select:none;user-select:none;grid-template-rows:repeat(8,1fr);display:grid;position:relative;overflow:hidden;container-type:inline-size}.board2d__row{grid-template-columns:repeat(8,1fr);display:grid}.board2d__sq{font:inherit;border:none;border-radius:0;place-items:center;padding:0;transition:none;display:grid;position:relative}.board2d__sq:active:not(:disabled){transform:none}.board2d__sq--light,.board2d__sq--light:hover:not(:disabled),.board2d__sq--light:disabled{background:var(--board-light)}.board2d__sq--dark,.board2d__sq--dark:hover:not(:disabled),.board2d__sq--dark:disabled{background:var(--board-dark)}.board2d__sq:disabled{cursor:default}.board2d__sq--last{box-shadow:inset 0 0 0 100cqw #e2c15a73}.board2d__sq--selected{box-shadow:inset 0 0 0 100cqw #56b07099}.board2d__sq--check{background-image:radial-gradient(circle,#e04848f2 0%,#e0484880 45%,#0000 75%)}.board2d__sq--interactive{cursor:pointer}.board2d__sq--interactive:hover{filter:brightness(1.06)}.board2d__sq:focus-visible{outline:3px solid var(--accent);outline-offset:-3px;z-index:1}.board2d__piece{pointer-events:none;font-family:Segoe UI Symbol,DejaVu Sans,Noto Sans Symbols2,Apple Symbols,sans-serif;font-size:10cqw;line-height:1}.board2d__piece--w{color:var(--piece-white);-webkit-text-stroke:.25cqw var(--piece-white-edge);paint-order:stroke fill;text-shadow:0 .3cqw .5cqw #00000059}.board2d__piece--b{color:var(--piece-black);-webkit-text-stroke:.12cqw var(--piece-black-edge);text-shadow:0 .3cqw .5cqw #0000004d}.board2d__coord{opacity:.8;pointer-events:none;font-size:2.2cqw;font-weight:600;position:absolute}.board2d__sq--light .board2d__coord{color:var(--board-dark)}.board2d__sq--dark .board2d__coord{color:var(--board-light)}.board2d__coord--rank{top:.4cqw;left:.6cqw}.board2d__coord--file{bottom:.2cqw;right:.6cqw}.board2d__dot{background:#141e1459;border-radius:50%;width:3.6cqw;height:3.6cqw;position:absolute}.board2d__ring{border:.9cqw solid #141e1459;border-radius:50%;position:absolute;inset:.5cqw}.board2d__arrows{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.board2d__star{background:var(--star);clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);pointer-events:none;width:6cqw;height:6cqw;position:absolute}.play{grid-template-columns:minmax(0, 1fr) var(--hud-width);height:100%;display:grid}.play__stage{background:radial-gradient(ellipse 70% 60% at 50% 45%, var(--stage-glow), var(--bg) 75%);min-height:0;position:relative}.scene{position:absolute;inset:0}.scene-loading{place-items:center;height:100%;display:grid}.play__flat{place-items:center;padding:20px 64px;display:grid;position:absolute;inset:0;container-type:size}.play__flat .board2d{width:min(100cqw,100cqh)}.play__stage:has(.clocks) .play__flat{padding-right:184px}.scene-note{width:max-content;max-width:calc(100% - 32px);color:var(--muted);text-align:center;font-size:.8rem;position:absolute;bottom:4px;left:50%;translate:-50%}.clocks{flex-direction:column;gap:6px;min-width:148px;display:flex;position:absolute;top:20px;right:20px}.clock{border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface);color:var(--muted);justify-content:space-between;align-items:center;gap:14px;padding:7px 12px;display:flex}.clock__name{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:7px;max-width:130px;font-size:.82rem;font-weight:500;display:flex;overflow:hidden}.clock__time{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:1.05rem;font-weight:600}.clock--running{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent);color:var(--text)}.clock--low .clock__time{color:var(--error)}.hud{border-left:1px solid var(--border);background:var(--surface);flex-direction:column;min-height:0;padding:4px 20px 20px;display:flex;overflow-y:auto}.hud>.panel{border:none;border-bottom:1px solid var(--border);background:0 0;border-radius:0;padding:18px 0}.hud>.panel:last-child{border-bottom:none}.hud__opponent{color:var(--muted);font-size:.875rem;font-weight:500}.game-status{letter-spacing:-.015em;font-size:1.2rem;font-weight:600;line-height:1.3}.game-status--thinking{color:var(--muted);align-items:center;gap:10px;display:flex}.game-status--over{color:var(--text)}.game-status--error{color:var(--error);letter-spacing:0;font-size:.95rem;font-weight:500}.game-status__detail{color:var(--muted);font-size:.9rem}.hud__actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:6px;display:grid}.hud__hint{flex-direction:column;gap:2px;font-size:.875rem;display:flex}.hud__hint:empty{display:none}.game-status .piece-dot{vertical-align:1px}.hud__actions button{justify-content:center;align-items:center;gap:8px;display:inline-flex}.hud__new{flex-direction:column;gap:8px;margin-top:6px;display:flex}.hud__new-label{color:var(--muted);font-size:.85rem;font-weight:500}.save-status{color:var(--muted);font-size:.82rem}.save-status--offline{color:var(--error)}.engine-status{color:var(--muted);font-size:.85rem}.engine-status--ready{color:var(--accent)}.engine-status--error{color:var(--error)}.analysis-line{font-variant-numeric:tabular-nums;font-size:.9rem;line-height:1.5}.move-list{counter-reset:move;font-variant-numeric:tabular-nums;max-height:260px;margin:0;padding:0;font-size:.925rem;list-style:none;overflow-y:auto}.move-list li{counter-increment:move;grid-template-columns:2.4em 1fr 1fr;padding:2px 0;display:grid}.move-list li:before{content:counter(move) ".";color:var(--faint);font-family:var(--font-mono);font-size:.8em;line-height:1.9}.move-list--compact{max-height:160px}.eval-bar{border:1px solid var(--border-strong);border-radius:var(--radius-control);background:#2a2c31;flex-direction:column;justify-content:flex-end;width:24px;display:flex;position:absolute;top:20px;bottom:20px;left:20px;overflow:hidden}.eval-bar--flipped{justify-content:flex-start}.eval-bar__white{transition:height .4s var(--ease);background:#f1efe9}.eval-bar__label{letter-spacing:-.03em;text-align:center;font-variant-numeric:tabular-nums;font-size:.6rem;font-weight:600;position:absolute;left:0;right:0}.eval-bar__label--white{color:#2a2c31;bottom:5px}.eval-bar__label--black{color:#f1efe9;top:5px}.eval-bar--flipped .eval-bar__label--white{top:5px;bottom:auto}.eval-bar--flipped .eval-bar__label--black{top:auto;bottom:5px}.coach-notes{flex-direction:column;gap:10px;margin:0;padding:0;font-size:.9rem;list-style:none;display:flex}.coach-notes__better{margin-top:2px;font-size:.85rem}.coach-rating{font-weight:600}.coach-rating--brilliant{color:var(--brilliant)}.coach-rating--good{color:var(--success)}.coach-rating--inaccuracy{color:var(--warn)}.coach-rating--mistake{color:var(--mistake)}.coach-rating--blunder{color:var(--error)}.coach-toast{z-index:var(--z-toast);border:1px solid var(--accent-line);border-radius:var(--radius-card);background:var(--surface);width:max-content;max-width:min(520px,100% - 96px);box-shadow:var(--shadow-pop);flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:12px 16px;font-size:.925rem;display:flex;position:absolute;bottom:24px;left:50%;translate:-50%}.coach-toast--brilliant{border-color:color-mix(in srgb, var(--brilliant) 50%, transparent)}.coach-toast--inaccuracy{border-color:color-mix(in srgb, var(--warn) 50%, transparent)}.coach-toast--mistake{border-color:color-mix(in srgb, var(--mistake) 50%, transparent)}.coach-toast--blunder{border-color:var(--error-line)}.coach-toast .link-button{color:var(--muted);margin-left:auto;text-decoration:none;display:inline-flex}@media (prefers-reduced-motion:no-preference){.coach-toast{animation:rise-in .25s var(--ease)}}.game-over{text-align:center;align-items:center}.game-over .modal__actions{flex-wrap:wrap;justify-content:center}.game-over__icon{background:var(--surface-raised);width:60px;height:60px;color:var(--muted);border-radius:50%;order:-1;place-items:center;display:grid}.game-over--win .game-over__icon{background:color-mix(in srgb, var(--star) 18%, transparent);color:var(--star)}.persona-fields{flex-direction:column;gap:10px;display:flex}.persona-card{border-radius:var(--radius-control);background:var(--surface-raised);flex-direction:column;gap:8px;padding:12px 14px;font-size:.875rem;line-height:1.45;display:flex}.persona-card .muted{font-size:.85rem}.persona-card__aggression{justify-content:space-between;align-items:center;gap:10px;display:flex}.persona-card__aggression meter{flex:1;max-width:120px}.persona-card__note{font-size:.8rem}.persona-says,.coach-notes__voice,.coach-chat__voice-line{color:var(--muted);font-style:italic}.persona-says{font-size:.925rem;line-height:1.45}.persona-says__name{color:var(--text);font-style:normal;font-weight:600}.coach-notes__voice{margin-top:2px;font-size:.85rem}@media (width<=900px){.play{grid-template-rows:min(62dvh,100vw) auto;grid-template-columns:1fr;height:auto}.hud{border-left:none;border-top:1px solid var(--border);overflow:visible}.eval-bar{width:20px;top:12px;bottom:12px;left:10px}.play__flat{padding:10px 10px 10px 40px}.clocks{flex-direction:row;min-width:0;top:6px;right:8px}.play__stage:has(.clocks) .play__flat{padding:46px 10px 10px 40px}.clock{padding:4px 8px}.clock__name{max-width:84px}.coach-toast{max-width:calc(100% - 72px)}}.move-list__opening{color:var(--muted);margin:0;font-size:.85rem;line-height:1.4}.viewer h1{font-size:1.45rem}.viewer h1 .muted{font-size:.7em;font-weight:400}.viewer__result{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.viewer__score{font-family:var(--font-mono);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:600}.viewer__body{grid-template-columns:minmax(0,560px) minmax(280px,1fr);align-items:start;gap:24px;display:grid}.viewer__side{flex-direction:column;gap:16px;display:flex}.viewer__moves{max-height:min(560px,100vh - 220px)}.viewer__nav{justify-content:center;gap:6px;margin-top:14px;display:flex}.viewer__nav button{justify-content:center;align-items:center;min-width:52px;height:36px;padding:0 12px;display:inline-flex}.viewer__practice{align-items:center;gap:6px;height:36px;display:inline-flex}.viewer__actions{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding-top:12px;display:flex}.viewer__actions a:not(.button-link){font-size:.9rem}.move-table-wrap{flex:1;min-height:0;overflow-y:auto}.move-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.move-table th{text-align:right;width:2.6em;font-family:var(--font-mono);color:var(--faint);padding:2px 8px 2px 0;font-size:.78rem;font-weight:400}.move-table td{width:50%;padding:1px}.move-cell{border-radius:var(--radius-inset);text-align:left;background:0 0;border:none;justify-content:space-between;align-items:baseline;gap:8px;width:100%;padding:3px 8px;font-size:.925rem;font-weight:500;display:flex}.move-cell:hover:not(:disabled){background:var(--surface-raised)}.move-cell:active:not(:disabled){transform:none}.move-cell--current,.move-cell--current:hover:not(:disabled){color:var(--accent);background:var(--accent-soft)}.move-cell__clock{font-family:var(--font-mono);color:var(--faint);font-size:.75rem;font-weight:400}.move-cell--book>span:first-child{color:var(--muted);font-style:italic}.move-cell__theory{color:var(--accent);margin-right:4px;font-size:.7rem}.move-class{font-weight:700}.move-class--inaccuracy{color:var(--warn)}.move-class--mistake{color:var(--mistake)}.move-class--blunder{color:var(--error)}.move-class--best,.move-class--good{color:var(--muted);font-weight:400}.move-insight{gap:8px;margin-top:14px;font-size:.925rem}.move-insight__title{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.move-insight__toggles{border-top:1px solid var(--border);flex-wrap:wrap;gap:18px;padding-top:10px;display:flex}.engine-line{gap:10px;font-size:.875rem;line-height:1.5;display:flex}.engine-line__eval{min-width:3.5em;font-family:var(--font-mono);font-weight:600}.engine-line--live{color:var(--info)}.analysis-summary{gap:14px}.analysis-progress progress{width:100%}.accuracy-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.accuracy-card{border-radius:var(--radius-control);background:var(--surface-raised);padding:12px 14px}.accuracy-card--me{background:var(--accent-soft)}.accuracy-card__name{text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;font-weight:500;overflow:hidden}.accuracy-card__value{letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin:2px 0 8px;font-size:1.9rem;font-weight:600;line-height:1.15}.accuracy-card__unit{letter-spacing:0;color:var(--muted);margin-left:4px;font-size:.8rem;font-weight:400}.accuracy-card__counts{gap:3px;margin:0;font-size:.85rem;display:grid}.accuracy-card__counts div{justify-content:space-between;gap:8px;display:flex}.accuracy-card__counts dt{color:var(--muted)}.accuracy-card__counts dd{font-variant-numeric:tabular-nums;margin:0;font-weight:500}.piece-dot{width:10px;height:10px;box-shadow:inset 0 0 0 1px var(--border-strong);border-radius:50%;display:inline-block}.piece-dot--w{background:var(--piece-white)}.piece-dot--b{background:var(--piece-black)}.opening-line{font-size:.925rem}.analysis-meta{font-size:.85rem}.charts{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);margin-top:20px;padding:18px}.charts__plots{flex-direction:column;gap:20px;display:flex}.chart{position:relative}.chart svg{cursor:crosshair;display:block}.chart__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.chart__title{color:var(--text);margin:0 0 8px;font-size:.875rem;font-weight:600}.chart__tick{fill:var(--muted);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:10px}.chart-legend{color:var(--muted);flex-wrap:wrap;gap:14px;margin:0;padding:0;font-size:.8rem;list-style:none;display:flex}.chart-legend li{align-items:center;gap:6px;display:flex}.swatch{border-radius:2px;width:10px;height:10px;display:inline-block}.swatch--dot{border-radius:50%}.swatch--tick{height:3px}.chart-tooltip{z-index:2;border:1px solid var(--border);border-radius:var(--radius-inset);background:var(--surface);box-shadow:var(--shadow-pop);pointer-events:none;white-space:nowrap;padding:6px 10px;font-size:.82rem;position:absolute;top:24px}.charts__table-toggle{margin-top:12px;font-size:.875rem}.chart-table{max-height:320px;margin-top:12px;overflow-y:auto}.trend-chart__plot{position:relative}.report{flex-direction:column;gap:16px;margin-top:24px;display:flex}.report__summary{gap:10px;padding:22px}.report__verdict{letter-spacing:-.015em;max-width:62ch;font-size:1.3rem;font-weight:600;line-height:1.3}.report__lesson,.report__plan{max-width:70ch;line-height:1.55}.report__lesson-label{color:var(--accent);margin-right:6px;font-weight:600}.report__meta{font-size:.85rem}.report__grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start;gap:16px;display:grid}.report__grid .panel,.insights__grid .panel{gap:12px}.moments{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.moment{border-radius:var(--radius-control);background:var(--surface-raised);flex-direction:column;gap:6px;padding:12px 14px;font-size:.9rem;display:flex}.moment__button{color:inherit;font-size:inherit;text-align:left;white-space:normal;background:0 0;border:none;border-radius:2px;flex-direction:column;align-items:flex-start;gap:2px;padding:0;display:flex}.moment__button:hover:not(:disabled){background:0 0}.moment__button:active:not(:disabled){transform:none}.moment__button:hover .moment__title{text-underline-offset:3px;text-decoration:underline}.moment__kind{color:var(--muted);font-size:.8rem;font-weight:600}.moment--your_mistake .moment__kind{color:var(--error)}.moment--missed_chance .moment__kind{color:var(--mistake)}.moment--opponent_mistake .moment__kind{color:var(--info)}.moment--great_move .moment__kind,.moment--turning_point .moment__kind{color:var(--accent)}.moment__title{font-weight:600}.moment__detail{line-height:1.5}.moment .link-button{align-self:flex-start;font-size:.875rem}.report-list,.focus-list{flex-direction:column;gap:14px;margin:0;padding:0;font-size:.925rem;line-height:1.5;list-style:none;display:flex}.focus-list{padding-left:1.3em;list-style:decimal}.focus-list li::marker{color:var(--faint)}.report-list__head{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.report-list__move{font-weight:600}.phases{flex-direction:column;gap:10px;margin:0;font-size:.925rem;display:flex}.phases__row{grid-template-columns:7.5em 1fr;gap:8px;display:grid}.phases dd{margin:0}.drill-habit{color:var(--text)}.preview-banner{border-color:var(--accent-line);background:var(--accent-soft);gap:6px;margin-top:14px;font-size:.925rem}.insights>*+*,.training>*+*,.students>*+*,.prep>*+*,.sharing>*+*{margin-top:16px}.insights .panel,.prep .panel,.sharing .panel,.weekly{gap:12px}.insights__grid{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));align-items:start;gap:16px;display:grid}.insights__charts{gap:20px}.focus-cards{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.focus-card{border-radius:var(--radius-control);background:var(--surface-raised);flex-direction:column;align-items:flex-start;gap:6px;padding:14px;font-size:.925rem;display:flex}.weakness-list{flex-direction:column;gap:16px;margin:0;padding:0;font-size:.925rem;list-style:none;display:flex}.weakness-list__head{flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex}.weakness-list meter{width:100%}.trainer{grid-template-columns:minmax(0,520px) minmax(280px,1fr);align-items:start;gap:24px;margin-top:12px;display:grid}.trainer__side{gap:12px;font-size:.925rem;line-height:1.5}.trainer__side h2{font-size:1.1rem}.trainer__result{font-weight:600}.trainer__result--ok{color:var(--success)}.trainer__result--bad{color:var(--error)}.model-games{grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.model-game-card{gap:8px;font-size:.925rem;line-height:1.5}.model-game-card>a{color:var(--text);font-size:1.05rem;text-decoration:none}.model-game-card>a:hover{color:var(--accent)}.model-note{border-radius:var(--radius-control);background:var(--accent-soft);padding:10px 12px}.coach-chat{gap:12px;margin-top:14px;font-size:.925rem}.coach-chat__head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.coach-chat__voice select{padding:3px 8px;font-size:.85rem}.coach-chat__log{flex-direction:column;gap:16px;max-height:360px;padding-right:4px;display:flex;overflow-y:auto}.coach-chat__turn{flex-direction:column;gap:6px;line-height:1.55;display:flex}.coach-chat__question{border-radius:var(--radius-card);background:var(--surface-raised);align-self:flex-end;max-width:85%;padding:6px 12px;font-weight:500}.coach-chat__question .muted{font-weight:400}.coach-chat__lines{flex-direction:column;gap:4px;margin:0;padding:0;font-size:.875rem;list-style:none;display:flex}.coach-chat__status{align-items:center;gap:8px;display:flex}.coach-chat__error{color:var(--error)}.coach-chat__chips{flex-wrap:wrap;gap:6px;display:flex}.coach-chat__form{gap:8px;display:flex}.coach-chat__form input{flex:1;min-width:0}.prep__form{flex-flow:wrap;align-items:flex-end;gap:12px}.prep__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.prep__head .muted{margin-top:2px}.prep__head-actions{gap:8px;display:flex}.prep__saved{overflow-x:auto}.prep__saved .cell-actions{justify-content:flex-end}.prep__username{flex:1;min-width:180px}.prep__advice{flex-direction:column;gap:8px;margin:0;padding-left:1.3em;line-height:1.5;display:flex}.prep meter{vertical-align:middle;width:60px}.sharing__preview-title{font-size:1.05rem}.weekly__headline{letter-spacing:-.015em;font-size:1.2rem;font-weight:600;line-height:1.3}.weekly__notes{flex-direction:column;gap:6px;margin:0;padding-left:1.3em;line-height:1.5;display:flex}.share-dialog{flex-direction:column;gap:14px;min-width:min(440px,80vw);display:flex}.share-dialog input[readonly]{font-family:var(--font-mono);font-size:.82rem}.import-tab{max-width:720px}.dropzone{border:1.5px dashed var(--border-strong);border-radius:var(--radius-card);background:var(--surface);text-align:center;transition:border-color .15s var(--ease), background-color .15s var(--ease);justify-items:center;gap:8px;padding:36px 16px;display:grid}.dropzone--active{border-color:var(--accent);background:var(--accent-soft)}.file-list{margin:0;padding-left:1.2em;font-size:.925rem}.import-results{margin-top:16px}.stat-row{flex-wrap:wrap;gap:24px;margin:0;padding:0;list-style:none;display:flex}.stat-row strong{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:1.5rem}.stat-row__bad{color:var(--error)}.import-results__list{margin:8px 0 0;padding-left:1em;font-size:.925rem;line-height:1.7}.linked-card__head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.panel .linked-card__name{letter-spacing:-.02em;font-size:1.4rem}.facts{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin:6px 0;display:grid}.facts dt{color:var(--muted);font-size:.85rem}.facts dd{margin:2px 0 0;font-weight:600}.manual-entry{grid-template-columns:minmax(280px,380px) minmax(0,480px);align-items:start;gap:24px;display:grid}.manual-entry__submit{flex-direction:column;grid-column:1/-1;align-items:flex-start;gap:10px;display:flex}.manual-entry__moves{gap:10px}.linked-summary{margin-top:16px}.profile-name{margin-bottom:16px}.profile-name>button{align-self:flex-start}.account-panel{gap:14px;margin-top:16px}.account-panel__row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;display:flex}.account-panel__row+.account-panel__row{border-top:1px solid var(--border);padding-top:14px}.account-panel__row p{margin:0}.account-panel__label{font-weight:600}.account-panel__list,.linked-summary ul{margin:0;padding-left:1.2em}@media (width<=860px){.viewer__body,.manual-entry,.trainer{grid-template-columns:1fr}.viewer__side{max-height:none}}.skill-map .chart__head{margin-bottom:6px}.skill-map__row{outline:none}.skill-map__hit{fill:#0000}.skill-map__row--active .skill-map__hit{fill:var(--neutral-soft)}.skill-map__row:focus-visible .skill-map__hit{stroke:var(--accent);stroke-width:2px}.skill-map__label{fill:var(--text);font-size:13.5px;font-weight:500}.skill-map__value{fill:var(--text);font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.avatar-picker{gap:18px;margin-bottom:16px}.avatar-picker__who{align-items:center;gap:16px;display:flex}.avatar-picker__who .muted{margin-top:2px}.avatar-picker__group{border:none;flex-direction:column;gap:8px;margin:0;padding:0;display:flex}.avatar-picker__group legend{color:var(--muted);margin-bottom:8px;padding:0;font-size:.875rem;font-weight:500}.avatar-picker__options{flex-wrap:wrap;gap:8px;display:flex}.avatar-option{cursor:pointer;transition:border-color .15s var(--ease);border:2px solid #0000;border-radius:50%;place-items:center;padding:3px;display:grid}.avatar-option:hover{border-color:var(--border-strong)}.avatar-option:has(input:checked){border-color:var(--accent)}.avatar-option:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:2px}.avatar-picker__actions{flex-wrap:wrap;gap:8px;display:flex}.training-card__grid{grid-template-columns:minmax(240px,320px) minmax(0,1fr);gap:16px 32px;display:grid}.training-card__habit,.training-card__earned{flex-direction:column;gap:14px;display:flex}.training-card__star{color:var(--star);vertical-align:-2px}.training-card__badges{flex-direction:column;gap:8px;margin:0;padding:0;font-size:.925rem;list-style:none;display:flex}.training-card__badges li{gap:10px;display:flex}.training-card__badges svg{color:var(--star);flex:none;margin-top:1px}@media (width<=720px){.training-card__grid{grid-template-columns:1fr}}.students__form{flex-flow:wrap;align-items:flex-end;gap:12px}.students__link{flex:1;min-width:220px}.students__table td,.students__table th{vertical-align:top}.students__name{font-weight:600}.students__sub{color:var(--muted);margin-top:2px;font-size:.82rem;font-weight:400;display:block}.students__streak{align-items:center;gap:5px;display:inline-flex}.students__streak--alive svg{color:var(--streak)}.students__focus{max-width:240px}.session__steps{gap:4px;width:100%;margin:0;padding:0;list-style:none;display:flex}.session__step{border-radius:var(--radius-pill);background:var(--neutral-soft);height:6px;transition:background-color .3s var(--ease);flex:1}.session__step--current{background:var(--accent-line)}.session__step--done{background:var(--accent)}.session__head{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:16px;display:flex}.session__progress{flex-direction:column;gap:8px;margin-bottom:8px;display:flex}.streak{flex-direction:column;gap:10px;display:flex}.streak__count{color:var(--muted);align-items:center;gap:8px;display:flex}.streak__count strong{color:var(--text);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:1.6rem;line-height:1}.streak__count--alive svg{color:var(--streak)}.streak__week{gap:10px;margin:0;padding:0;list-style:none;display:flex}.streak__day{color:var(--muted);flex-direction:column;align-items:center;gap:4px;font-size:.75rem;font-weight:500;display:flex}.streak__dot{border:2px solid var(--border-strong);border-radius:50%;width:22px;height:22px}.streak__day--done .streak__dot{border-color:var(--accent);background:var(--accent)}.streak__day--today .streak__dot{border-color:var(--accent)}.streak__day--rest .streak__dot{border-style:dashed;border-color:var(--accent)}.streak__day--missed .streak__dot{background:var(--neutral-soft);border-color:#0000}.streak__day--ahead,.streak__day--none{opacity:.55}.streak__day--today{color:var(--text)}.level{flex-direction:column;gap:6px;display:flex}.level__head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.level progress{width:100%;height:8px}.stars{color:var(--border-strong);vertical-align:middle;gap:2px;display:inline-flex}.stars__star--earned{color:var(--star)}.reward{flex-wrap:wrap;align-items:center;gap:6px 14px;display:flex}.reward__points{font-variant-numeric:tabular-nums;font-weight:600}.reward__level{color:var(--accent)}.trainer__hints{border-top:1px solid var(--border);flex-direction:column;align-items:flex-start;gap:8px;padding-top:12px;display:flex}.board2d__sq--hint{box-shadow:inset 0 0 0 .9cqw #2f6fd0f2}.board2d--correct{outline:4px solid var(--accent);outline-offset:2px}.board2d--wrong{outline:4px solid var(--error);outline-offset:2px}@keyframes star-pop{0%{opacity:0;transform:scale(.2)rotate(-40deg)}60%{transform:scale(1.25)}}@keyframes board-shake{20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}@keyframes board-pulse{40%{transform:scale(1.012)}}@keyframes hint-pulse{50%{box-shadow:inset 0 0 0 1.6cqw #2f6fd0f2}}@keyframes confetti-fall{to{opacity:0;transform:translateY(72vh)rotate(540deg)}}@media (prefers-reduced-motion:no-preference){.stars--animate .stars__star--earned{animation:star-pop .4s var(--ease) backwards}.stars--animate .stars__star--earned:nth-child(2){animation-delay:.15s}.stars--animate .stars__star--earned:nth-child(3){animation-delay:.3s}.board2d--wrong{animation:.4s ease-in-out board-shake}.board2d--correct{animation:board-pulse .4s var(--ease)}.board2d__sq--hint{animation:.9s ease-in-out 3 hint-pulse}}.celebration{z-index:var(--z-toast);pointer-events:none;position:fixed;inset:0;overflow:hidden}.celebration__piece{top:-16px;left:calc(var(--i) * 7% + 3%);background:var(--accent);width:8px;height:14px;animation:1.9s cubic-bezier(.2,.6,.4,1) forwards confetti-fall;animation-delay:calc(var(--i) * 50ms);border-radius:2px;position:absolute}.celebration__piece:nth-child(3n){background:var(--star)}.celebration__piece:nth-child(3n+1){background:var(--info)}@media (prefers-reduced-motion:reduce){.celebration{display:none}}.summary{text-align:center;align-items:center;gap:18px;padding:36px 28px}.summary__stats{flex-wrap:wrap;justify-content:center;gap:12px 40px;margin:0;display:flex}.summary__stats dt{color:var(--muted);font-size:.85rem}.summary__stats dd{letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin:0;font-size:1.9rem;font-weight:600}.summary__stats dd .muted{letter-spacing:0;font-size:.9rem;font-weight:400}.summary__steps{text-align:left;flex-direction:column;gap:8px;width:min(380px,100%);margin:0;padding:0;list-style:none;display:flex}.summary__steps li{justify-content:space-between;align-items:center;gap:12px;display:flex}.summary__progress{border-top:1px solid var(--border);text-align:left;flex-direction:column;gap:20px;width:min(380px,100%);padding-top:18px;display:flex}.summary .button-row{justify-content:center}.boss{border-radius:var(--radius-control);background:var(--surface-raised);flex-direction:column;align-items:flex-start;gap:8px;padding:14px;font-size:.925rem;display:flex}.boss__head{align-items:center;gap:10px;display:flex}.boss__icon{color:var(--error);flex:none}.boss--weakened .boss__icon{color:var(--warn)}.boss--defeated .boss__icon{color:var(--faint)}.boss--defeated h3{text-decoration:line-through;-webkit-text-decoration-color:var(--faint);text-decoration-color:var(--faint)}.boss__taunt{font-style:italic}.boss__health{border-radius:var(--radius-pill);background:var(--neutral-soft);width:100%;height:8px;overflow:hidden}.boss__bar{border-radius:var(--radius-pill);background:var(--error);transform-origin:0;height:100%;transition:transform .5s var(--ease);display:block}.boss-banner{margin:12px 0}.boss-banner .boss{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card)}.rush__hud{grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;max-width:560px;margin:0 auto 10px;display:grid}.rush__clock{font-family:var(--font-mono);font-variant-numeric:tabular-nums;align-items:center;gap:8px;font-size:1.5rem;font-weight:600;display:flex}.rush__clock--low{color:var(--error)}.rush__score{text-align:center}.rush__score strong{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:1.6rem}.rush__lives{justify-content:flex-end;gap:4px;display:flex}.rush__life{color:var(--error)}.rush__life--lost{color:var(--border-strong)}.rush__time{border-radius:var(--radius-pill);background:var(--neutral-soft);max-width:560px;height:6px;margin:0 auto 16px;overflow:hidden}.rush__time span{background:var(--accent);transform-origin:0;height:100%;transition:transform .2s linear;display:block}.rush__play{flex-direction:column;align-items:center;gap:14px;display:flex}.rush__board{width:min(560px,100%)}.rush__prompt{order:-1;font-size:1.15rem;font-weight:600}.panel .rush__title{letter-spacing:-.022em;font-size:1.6rem}.rush__rules{max-width:52ch}.reward__badge svg{color:var(--star);flex:none}.reward__badge{align-items:flex-start;gap:8px;width:100%;display:flex}.badge-group+.badge-group{margin-top:28px}.badge-group h2{margin-bottom:12px}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.badge-tile{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);gap:14px;padding:16px;display:flex}.badge-tile__mark{background:var(--neutral-soft);width:48px;height:48px;color:var(--faint);border-radius:50%;flex:none;place-items:center;display:grid}.badge-tile--earned .badge-tile__mark{background:color-mix(in srgb, var(--star) 18%, transparent);color:var(--star)}.badge-tile__text{flex-direction:column;gap:4px;min-width:0;display:flex}.badge-tile:not(.badge-tile--earned) h3{color:var(--muted)}.badge-tile__date{font-size:.85rem;font-weight:500}.badge-tile__progress{align-items:center;gap:10px;margin-top:2px;display:flex}.badge-tile__progress progress{flex:1}.badge-tile__progress .muted{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.82rem}.page.hub{flex-direction:column;gap:40px;display:flex}.hub .page__header{margin-bottom:-8px}.hub-heading{letter-spacing:-.01em;margin:0 0 12px;font-size:1.05rem;font-weight:600}.hub-today{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);box-shadow:0 1px 2px rgb(var(--shadow-rgb) / .05), 0 18px 40px -28px rgb(var(--shadow-rgb) / .35);grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);display:grid;overflow:hidden}.hub-today__main{flex-direction:column;align-items:flex-start;gap:10px;padding:36px 40px;display:flex}.hub-today__title{letter-spacing:-.025em;margin:0 0 4px;font-size:1.75rem;font-weight:650;line-height:1.15}.hub-today__lead{margin:0;font-size:1.05rem}.hub-today__main .muted{max-width:58ch;margin:0}.hub-today__main .session__steps{margin:14px 0 10px}.hub-today__start{align-items:center;gap:8px;padding:10px 18px;font-size:.95rem;display:inline-flex}.hub-today__progress{border-left:1px solid var(--border);background:var(--surface-raised);flex-direction:column;gap:26px;padding:32px;display:flex}.hub-today__progress .streak>.muted{margin:0;font-size:.875rem}.hub-today__badges{color:var(--muted);align-self:flex-start;align-items:center;gap:8px;margin-top:auto;font-size:.9rem;text-decoration:none;display:inline-flex}.hub-today__badges:hover,.hub-today__badges strong{color:var(--text)}.hub-today__badges>svg:first-child{color:var(--star)}.hub-grid{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);align-items:start;gap:32px;display:grid}.hub-week__panel{gap:20px;padding:24px}.hub-week__focus{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.hub-week__focus .badge{margin:0 0 2px}.hub-week__focus .muted{max-width:60ch;margin:0}.hub-week__title{letter-spacing:-.015em;margin:0;font-size:1.2rem;font-weight:600}.hub-days{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;min-width:0;display:grid}.hub-day{background:var(--surface-raised);color:var(--muted);border-color:#0000;flex-direction:column;align-items:center;gap:2px;padding:10px 4px;display:flex}.hub-day:hover:not(:disabled){color:var(--text);background:var(--surface-hover)}.hub-day[aria-pressed=true]{border-color:var(--accent-line);background:var(--accent-soft);color:var(--text)}.hub-day__name{font-weight:600}.hub-day--today .hub-day__name{color:var(--accent)}.hub-day__minutes{font-family:var(--font-mono);font-size:.75rem;font-weight:400}.hub-blocks{flex-direction:column;gap:2px;margin:-6px -10px 0;padding:0;list-style:none;display:flex}.hub-block{border-radius:var(--radius-control);color:var(--text);transition:background-color .15s var(--ease);grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:12px;padding:11px 10px;text-decoration:none;display:grid}.hub-block:hover{color:var(--text);background:var(--surface-hover)}.hub-block__minutes{color:var(--muted);font-family:var(--font-mono);font-size:.8rem}.hub-block__go{color:var(--faint)}.hub-block:hover .hub-block__go{color:var(--accent)}.hub-week__note{border-top:1px solid var(--border);margin:0;padding-top:16px;font-size:.875rem}.hub-recommended{border-radius:var(--radius-card);background:var(--accent-soft);color:var(--text);transition:background-color .15s var(--ease);grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:14px;margin-top:16px;padding:16px 18px;text-decoration:none;display:grid}.hub-recommended:hover{color:var(--text);background:color-mix(in srgb, var(--accent) 18%, transparent)}.hub-recommended>span{flex-direction:column;gap:2px;font-size:.875rem;display:flex}.hub-recommended__label{color:var(--accent);font-size:.8rem;font-weight:600}.hub-recommended__title{font-size:.95rem;font-weight:600}.hub-recommended__title .muted{font-weight:400}.hub-recommended__icon{color:var(--accent);margin-top:2px}.hub-recommended>svg:last-child{align-self:center}.hub-games__list{gap:0;margin:0;padding:6px;list-style:none}.hub-game{border-radius:var(--radius-control);color:var(--text);transition:background-color .15s var(--ease);grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 12px;text-decoration:none;display:grid}.hub-game:hover{color:var(--text);background:var(--surface-hover)}.hub-game__icon{border-radius:var(--radius-control);background:var(--accent-soft);width:40px;height:40px;color:var(--accent);place-items:center;display:grid}.hub-game__text{flex-direction:column;gap:1px;min-width:0;font-size:.875rem;display:flex}.hub-game__title{font-size:.95rem;font-weight:600}.hub-game__stat{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.85rem}.hub-game__stat strong{color:var(--text);letter-spacing:-.02em;margin-right:3px;font-size:1.2rem}.hub-bosses__head{margin-bottom:14px}.hub-bosses__head .hub-heading{margin-bottom:4px}.hub-bosses__head .muted{margin:0}.hub-bosses__grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.hub-boss{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);color:var(--text);transition:border-color .15s var(--ease), transform .15s var(--ease);flex-direction:column;gap:12px;padding:18px;text-decoration:none;display:flex}a.hub-boss:hover{color:var(--text);border-color:var(--border-strong)}a.hub-boss:active{transform:scale(.99)}.hub-boss__head{align-items:center;gap:10px;display:flex}.hub-boss__head>span{flex-direction:column;display:flex}.hub-boss__icon{color:var(--error);flex:none}.hub-boss__name{font-weight:600}.hub-boss__type{color:var(--muted);font-size:.8rem}.hub-boss__taunt{min-height:2.8em;color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.875rem;font-style:italic;line-height:1.4;display:-webkit-box;overflow:hidden}.hub-boss__health{border-radius:var(--radius-pill);background:var(--neutral-soft);height:6px;display:block;overflow:hidden}.hub-boss__bar{border-radius:var(--radius-pill);background:var(--error);transform-origin:0;height:100%;transition:transform .5s var(--ease);display:block}.hub-boss__foot{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;font-size:.85rem;display:flex}.hub-boss__fight{color:var(--accent);align-items:center;gap:4px;font-weight:600;display:inline-flex}.hub-boss--weakened .hub-boss__icon{color:var(--warn)}.hub-boss--weakened .hub-boss__bar{background:var(--warn)}.hub-boss--defeated{background:0 0}.hub-boss--defeated .hub-boss__icon{color:var(--faint)}.hub-boss--defeated .hub-boss__name{color:var(--muted);text-decoration:line-through;-webkit-text-decoration-color:var(--faint);text-decoration-color:var(--faint)}@media (prefers-reduced-motion:reduce){.hub-boss,.hub-boss__bar{transition:none}}@media (width<=900px){.hub-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=760px){.page.hub{gap:32px}.hub-today{grid-template-columns:minmax(0,1fr)}.hub-today__main{padding:24px 20px}.hub-today__title{font-size:1.45rem}.hub-today__start{justify-content:center;align-self:stretch}.hub-today__progress{border-left:none;border-top:1px solid var(--border);gap:20px;padding:22px 20px}.hub-week__panel{padding:18px}.hub-days{scrollbar-width:none;grid-template-columns:none;grid-auto-columns:minmax(58px,1fr);grid-auto-flow:column;margin:0 -18px;padding:0 18px 2px;overflow-x:auto}.hub-bosses__grid{grid-template-columns:minmax(0,1fr)}.hub-boss__taunt{min-height:0}.hub-block{grid-template-columns:48px minmax(0,1fr) auto}}.learn-hero{grid-template-columns:auto auto minmax(160px,1fr) auto;align-items:center;gap:12px 32px;margin-bottom:8px;padding:18px 20px;display:grid}.learn-hero__stat{gap:2px;font-size:.85rem;display:grid}.learn-hero__score{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:600;line-height:1.1}.learn-hero__medals{gap:14px;font-size:1.05rem;display:flex}.learn-hero__medal{align-items:center;gap:4px;display:inline-flex}.learn-hero__progress progress{width:100%}.learn-group{margin-top:22px}.learn-group__head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.learn-map{grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:10px;margin:8px 0 0;padding:0;list-style:none;display:grid}.learn-card{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);height:100%;color:var(--text);transition:border-color .15s var(--ease), transform .15s var(--ease), box-shadow .15s var(--ease);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px;text-decoration:none;display:grid}.learn-card:hover{color:var(--text);border-color:var(--border-strong);box-shadow:var(--shadow-pop);transform:translateY(-1px)}.learn-card--current{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}.learn-card--medal-3{border-color:color-mix(in srgb, var(--medal-gold) 55%, var(--border))}.learn-card__text{gap:2px;font-size:.85rem;line-height:1.4;display:grid}.learn-card__title{font-size:.975rem;font-weight:600}.learn-card__state{justify-items:end;gap:4px;display:grid}.learn-card__next{border-radius:var(--radius-pill);background:var(--accent);color:var(--on-accent);padding:1px 8px;font-size:.75rem;font-weight:600}.learn-card__dots{color:var(--border-strong);gap:2px;display:flex}.learn-card__dot--3{color:var(--star)}.learn-card__dot--2,.learn-card__dot--1{color:color-mix(in srgb, var(--star) 55%, var(--border-strong))}.learn-card__score{font-family:var(--font-mono);color:var(--muted);font-variant-numeric:tabular-nums;font-size:.8rem}.learn-icon{border-radius:var(--radius-card);background:var(--accent-soft);width:44px;height:44px;color:var(--accent);flex:none;place-items:center;display:grid}.learn-icon--large{border-radius:24px;width:88px;height:88px}.learn-icon__glyph{font-family:Segoe UI Symbol,DejaVu Sans,Noto Sans Symbols2,Apple Symbols,sans-serif;font-size:1.9rem;line-height:1}.learn-icon--large .learn-icon__glyph{font-size:3.6rem}.learn-title{align-items:center;gap:12px;display:flex}.learn-title .learn-icon{width:40px;height:40px}.medal{place-items:center;line-height:0;display:inline-grid}.medal--gold{color:var(--medal-gold)}.medal--silver{color:var(--medal-silver)}.medal--bronze{color:var(--medal-bronze)}.learn-intro,.learn-complete{text-align:center;justify-items:center;gap:12px;max-width:560px;margin:24px auto 0;padding:32px 28px;display:grid;position:relative;overflow:hidden}.learn-intro h2,.learn-complete h2{font-size:1.35rem}.learn-intro p,.learn-complete p{margin:0;line-height:1.55}.learn-intro__go,.learn-level .button-row button{align-items:center;gap:6px;display:inline-flex}.learn-intro__go{margin-top:8px;padding-inline:22px;font-size:1rem}.learn-complete__score strong{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:1.5rem}.learn-complete__actions{justify-content:center}.learn-complete .medal svg{filter:drop-shadow(0 6px 14px rgb(var(--shadow-rgb) / .25));animation:medal-in .6s var(--ease) both}@keyframes medal-in{0%{opacity:0;transform:scale(.4)rotate(-20deg)}}.learn-head{justify-content:space-between;align-items:baseline;gap:12px;font-size:.85rem;display:flex}.learn-head__total strong{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.learn-levels{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.learn-levels__level{border-radius:var(--radius-control);min-width:38px;font-family:var(--font-mono);justify-items:center;gap:1px;padding:4px 6px 3px;font-size:.85rem;font-weight:600;display:grid}.learn-levels__stars{color:var(--border-strong);display:flex}.learn-levels__level--done .learn-levels__stars{color:var(--star)}.learn-levels__level[aria-current=step]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.learn-score{align-items:baseline;gap:6px;display:flex;position:relative}.learn-score__value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:1.4rem;font-weight:600}.learn-pop{color:var(--accent);font-family:var(--font-mono);pointer-events:none;animation:learn-pop .9s var(--ease) forwards;font-weight:700;position:absolute;top:-4px;left:0}@keyframes learn-pop{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-26px)}}.learn-values{border-radius:var(--radius-control);background:var(--surface-raised);margin:0;padding:8px 12px;font-size:.85rem}.learn-level__board{position:relative}.learn-verdict{border-radius:var(--radius-card);background:var(--surface);min-width:220px;box-shadow:var(--shadow-pop);text-align:center;animation:verdict-in .35s var(--ease) both;justify-items:center;gap:6px;padding:18px 26px;display:grid;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.learn-verdict__title{font-size:1.4rem}.learn-verdict__points{color:var(--accent);font-family:var(--font-mono);font-size:1.25rem;font-weight:700}.learn-verdict__note{color:var(--muted);font-size:.8rem}@keyframes verdict-in{0%{opacity:0;transform:translate(-50%,-40%)scale(.92)}}@media (prefers-reduced-motion:reduce){.learn-pop,.learn-verdict,.learn-complete .medal svg{animation:none}.learn-pop{display:none}}@media (width<=760px){.learn-hero{grid-template-columns:1fr 1fr}.learn-hero__progress,.learn-hero__go{grid-column:1/-1}}.lesson__hint{border-left:3px solid var(--mark-inaccuracy);border-radius:var(--radius-control);background:var(--surface-raised);margin:0;padding:10px 12px}.rated-puzzle{grid-template-columns:minmax(220px,260px) minmax(0,560px) minmax(260px,320px);grid-template-areas:"side board tools";align-items:start;gap:20px;margin-top:12px;display:grid}.rated-puzzle__side{flex-direction:column;grid-area:side;gap:12px;display:flex}.rated-puzzle__board{grid-area:board}.rated-puzzle__board--loading{aspect-ratio:1;border-radius:var(--radius-card);background:var(--surface-raised)}.rated-puzzle__tools{grid-area:tools;gap:14px}@media (width<=1100px){.rated-puzzle{grid-template-columns:minmax(0,560px) minmax(260px,1fr);grid-template-areas:"board tools""side side"}.rated-puzzle__side{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}}@media (width<=720px){.rated-puzzle{grid-template-columns:minmax(0,1fr);grid-template-areas:"board""tools""side"}}.puzzle-info,.puzzle-settings,.puzzle-session{gap:8px;font-size:.925rem}.puzzle-info p,.puzzle-settings p,.puzzle-session p{margin:0}.puzzle-info__title{font-weight:600}.puzzle-info__game{font-size:.875rem}.puzzle-info__themes{flex-wrap:wrap;gap:6px;margin:4px 0 0;padding:0;list-style:none;display:flex}.puzzle-info__themes a{border-radius:var(--radius-pill);background:var(--surface-raised);padding:2px 8px;font-size:.8125rem;text-decoration:none;display:inline-block}.puzzle-settings__about{font-size:.8125rem}.puzzle-feedback{border-radius:var(--radius-control);background:var(--surface-raised);align-items:center;gap:14px;padding:14px;display:flex}.puzzle-feedback p{margin:0}.puzzle-feedback__title{font-size:1.05rem;font-weight:600}.puzzle-feedback__piece{font-family:Segoe UI Symbol,DejaVu Sans,Noto Sans Symbols2,Apple Symbols,sans-serif;font-size:2.75rem;line-height:1}.puzzle-feedback__piece--w{color:var(--piece-white);-webkit-text-stroke:1.5px var(--piece-white-edge);paint-order:stroke fill}.puzzle-feedback__piece--b{color:var(--piece-black);-webkit-text-stroke:1px var(--piece-black-edge)}.puzzle-feedback__icon{width:40px;height:40px;color:var(--on-accent);background:var(--accent);border-radius:50%;flex:none;place-items:center;display:grid}.puzzle-feedback--good,.puzzle-feedback--win{background:var(--accent-soft)}.puzzle-feedback--fail{background:var(--error-soft)}.puzzle-feedback--fail .puzzle-feedback__icon{color:var(--on-error);background:var(--error)}.puzzle-feedback--complete .puzzle-feedback__icon{color:var(--text);background:var(--neutral-soft)}.puzzle-help{flex-wrap:wrap;gap:8px;min-height:36px;display:flex}.puzzle-line{flex-direction:column;gap:8px;display:flex}.puzzle-line__moves{flex-wrap:wrap;gap:4px;margin:0;padding:0;list-style:none;display:flex}.puzzle-line__move{min-height:30px;font-family:var(--font-mono);padding:2px 8px;font-size:.875rem}.puzzle-line__move--first{color:var(--muted)}.puzzle-line__move[aria-current=step]{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}.puzzle-vote{border-top:1px solid var(--border);flex-direction:column;gap:6px;padding-top:12px;display:flex}.puzzle-vote p{margin:0}.puzzle-vote button[aria-pressed=true]{border-color:var(--accent)}.rating-diff{font-family:var(--font-mono);font-weight:600}.rating-diff--up{color:var(--success)}.rating-diff--down{color:var(--error)}.puzzle-session__rating strong{font-size:1.1rem}.puzzle-session__list{flex-wrap:wrap;gap:4px;margin:0;padding:0;list-style:none;display:flex}.puzzle-session__item{border-radius:var(--radius-inset);min-width:44px;height:26px;font-family:var(--font-mono);justify-content:center;align-items:center;gap:2px;padding:0 6px;font-size:.75rem;font-weight:600;text-decoration:none;display:inline-flex}.puzzle-session__item--win{color:var(--accent-strong);background:var(--accent-soft)}.puzzle-session__item--loss{color:var(--error);background:var(--error-soft)}.puzzle-session__item--current{outline:2px solid var(--text);outline-offset:1px}.puzzle-themes__group{margin-top:20px}.puzzle-themes__grid{grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.puzzle-theme{border:1px solid var(--border);border-radius:var(--radius-control);height:100%;color:var(--text);background:var(--surface);transition:background-color .15s var(--ease);flex-direction:column;gap:4px;padding:12px 34px 12px 14px;font-size:.875rem;text-decoration:none;display:flex;position:relative}.puzzle-theme:hover{color:var(--text);background:var(--surface-hover)}.puzzle-theme__name{align-items:baseline;gap:8px;font-size:.975rem;font-weight:600;display:flex}.puzzle-theme__count{color:var(--faint);font-family:var(--font-mono);font-size:.75rem;font-weight:500}.puzzle-theme__go{color:var(--faint);position:absolute;top:50%;right:12px;transform:translateY(-50%)}.puzzle-dash__stats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:12px 0 0;display:grid}.puzzle-dash__stats div{gap:4px}.puzzle-dash__stats dt{color:var(--muted);font-size:.875rem}.puzzle-dash__stats dd{font-family:var(--font-mono);margin:0;font-size:1.5rem;font-weight:600}.puzzle-dash__grid{grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));gap:12px;margin-top:12px;display:grid}.puzzle-dash__themes ul{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.puzzle-dash__themes li{grid-template-columns:minmax(0,1fr) 90px auto;align-items:center;gap:10px;font-size:.9rem;display:grid}.puzzle-dash__bar{border-radius:var(--radius-pill);background:var(--error-soft);height:6px;overflow:hidden}.puzzle-dash__bar span{background:var(--accent);transform-origin:0;height:100%;display:block}.puzzle-dash__history{margin-top:12px}.puzzle-dash__result{align-items:center;gap:4px;display:inline-flex}.puzzle-dash__result--win{color:var(--success)}.puzzle-dash__result--loss{color:var(--error)}.endgames__nav{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.endgames__chip{border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text);background:var(--surface);padding:4px 12px;font-size:.875rem;text-decoration:none}.endgames__chip:hover{color:var(--text);background:var(--surface-hover)}.endgames__category{scroll-margin-top:calc(var(--topbar-height) + 12px);margin-top:22px}.endgames__grid{grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.endgame-card{border:1px solid var(--border);border-radius:var(--radius-control);height:100%;color:var(--text);background:var(--surface);transition:background-color .15s var(--ease);flex-direction:column;gap:6px;padding:14px 34px 14px 14px;font-size:.875rem;text-decoration:none;display:flex;position:relative}.endgame-card:hover{color:var(--text);background:var(--surface-hover)}.endgame-card--wide{max-width:560px}.endgame-card__name{align-items:center;gap:6px;font-size:1rem;font-weight:600;display:flex}.endgame-card__foot{justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:4px;display:flex}.endgame-card__time{color:var(--muted);font-family:var(--font-mono);align-items:center;gap:4px;font-size:.8125rem;display:inline-flex}.endgame-card__go{color:var(--faint);position:absolute;top:50%;right:12px;transform:translateY(-50%)}.endgame-dots{gap:4px;display:inline-flex}.endgame-dots__dot{border:1.5px solid var(--border-strong);border-radius:50%;width:10px;height:10px}.endgame-dots__dot--done{border-color:var(--accent);background:var(--accent)}.endgame-theme .tabs{width:fit-content;max-width:100%;margin-top:8px}.endgame-theme__caption{margin:8px 0 0;font-size:.875rem}.endgame-theme__tip{align-self:flex-start}.endgame-lesson p{margin:0}.endgame-lesson__points{flex-direction:column;gap:6px;margin:0;padding-left:1.2em;display:flex}.endgame-positions{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.endgame-positions__item{min-height:32px;font-family:var(--font-mono);align-items:center;gap:4px;padding:2px 10px;display:inline-flex}.endgame-positions__item svg{color:var(--faint)}.endgame-positions__item[aria-current=step]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.endgame-positions__item .endgame-positions__done{color:var(--accent)}.endgame-challenge{gap:10px;max-width:620px;margin-top:12px}.endgame-challenge p{margin:0}.endgame-challenge__clock{align-items:center;gap:8px;margin:0;font-size:1.75rem;font-weight:600;display:flex}.friends>*+*{margin-top:16px}.friends .panel{gap:12px}.friends__name{max-width:360px}.friends__hint{font-size:.875rem}.friend-row__actions .button-link{align-items:center;gap:6px;display:inline-flex}.friend-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.friend-row{border-top:1px solid var(--border);align-items:center;gap:12px;padding:12px 0;display:flex}.friend-row:first-child{border-top:none;padding-top:2px}.friend-row:last-child{padding-bottom:2px}.friend-row__who{flex-direction:column;flex:1;gap:2px;min-width:0;font-size:.875rem;display:flex}.friend-row__name{text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:600;overflow:hidden}.friend-row__actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.presence{color:var(--muted);align-items:center;gap:6px;font-size:.85rem;display:inline-flex}.presence:before{content:"";border:1.5px solid var(--border-strong);border-radius:var(--radius-pill);width:8px;height:8px}.presence--online{color:var(--text)}.presence--online:before{border-color:var(--accent);background:var(--accent)}.nav-count{border-radius:var(--radius-pill);background:var(--accent);min-width:18px;height:18px;color:var(--on-accent);place-items:center;margin-left:6px;padding:0 5px;font-size:.72rem;font-weight:600;line-height:1;display:inline-grid}.notices{z-index:var(--z-toast);flex-direction:column;gap:8px;width:min(360px,100vw - 32px);display:flex;position:fixed;bottom:16px;right:16px}.notice{border:1px solid var(--border-strong);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-pop);grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px 12px;padding:14px 40px 14px 14px;font-size:.925rem;display:grid;position:relative}.notice--invite{border-color:var(--accent-line)}.notice__text{align-self:center}.notice>.notice__text:first-child,.notice__error,.notice__actions{grid-column:1/-1}.notice__error{color:var(--error);font-size:.85rem}.notice__actions{justify-content:flex-end;gap:8px;display:flex}.notice__close{color:var(--muted);position:absolute;top:8px;right:8px}@media (prefers-reduced-motion:no-preference){.notice{animation:rise-in .25s var(--ease)}}.watch-players{flex-direction:column;gap:8px;margin:0;padding:0;font-size:.875rem;list-style:none;display:flex}.watch-players li{grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px;display:grid}.watch-players__name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:600;overflow:hidden}.watching-line{align-items:center;gap:6px;margin-top:0;display:flex}.match-opponent{align-items:center;gap:12px;display:flex}.match-opponent .hud__opponent{color:var(--text);font-size:.95rem;font-weight:600}.draw-offer{border:1px solid var(--accent-line);border-radius:var(--radius-control);background:var(--accent-soft);flex-direction:column;gap:4px;padding:12px;font-size:.925rem;font-weight:500;display:flex}.draw-offer__sent,.match-meta{font-size:.875rem}.match-meta{margin-top:4px}.hud__actions>.button-link{text-align:center;justify-content:center}.invite .segmented{flex-direction:column;gap:8px}@media (width<=720px){.friend-row{flex-wrap:wrap}.friend-row__actions{justify-content:flex-end;width:100%}.notices{bottom:calc(16px + env(safe-area-inset-bottom))}}.quick-messages{flex-wrap:wrap;gap:6px;display:flex}.said{flex-direction:column;gap:4px;margin:0;padding:0;font-size:.9rem;list-style:none;display:flex}.said__who{color:var(--muted);margin-right:6px;font-size:.82rem;font-weight:500}.said__mine{color:var(--muted)}.switches{gap:14px;margin-top:16px}.switches__item{flex-direction:column;gap:2px;display:flex}.switches__item>.muted{padding-left:28px;font-size:.85rem}.report .segmented,.report textarea{width:100%}.report .segmented{flex-direction:column;gap:8px}.reports__what{white-space:normal}.reports__what .muted{max-width:44ch;margin-top:2px;font-size:.85rem;display:block}.connections{gap:14px}.connections h3{margin:0 0 6px;font-size:.875rem;font-weight:600}.connections ul{flex-direction:column;gap:6px;margin:0;padding:0;font-size:.9rem;list-style:none;display:flex}
