@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-cyrillic-ext-400-normal-BwJdxs7r.woff2)format("woff2"),url(/assets/source-sans-3-cyrillic-ext-400-normal-Cd63HKDh.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-cyrillic-400-normal-DjhbW-4D.woff2)format("woff2"),url(/assets/source-sans-3-cyrillic-400-normal-7kQcAFpS.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-greek-ext-400-normal-CpIwTHMM.woff2)format("woff2"),url(/assets/source-sans-3-greek-ext-400-normal-BI1kUwmR.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-greek-400-normal-DZReXJla.woff2)format("woff2"),url(/assets/source-sans-3-greek-400-normal-DJm9Ud5h.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-vietnamese-400-normal-CwtaIDr2.woff2)format("woff2"),url(/assets/source-sans-3-vietnamese-400-normal-dYp9C364.woff)format("woff");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:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-latin-ext-400-normal-UNsKFIBq.woff2)format("woff2"),url(/assets/source-sans-3-latin-ext-400-normal-BGPHfnm_.woff)format("woff");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:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-latin-400-normal-DQi5PRDE.woff2)format("woff2"),url(/assets/source-sans-3-latin-400-normal-AFMiCETP.woff)format("woff");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:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-cyrillic-ext-600-normal-6AhwUnSr.woff2)format("woff2"),url(/assets/source-sans-3-cyrillic-ext-600-normal-uAL1a5gb.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-cyrillic-600-normal-BnFu5nHC.woff2)format("woff2"),url(/assets/source-sans-3-cyrillic-600-normal-y-RO8wOd.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-greek-ext-600-normal-DynePNDL.woff2)format("woff2"),url(/assets/source-sans-3-greek-ext-600-normal-D7vJ4nVX.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-greek-600-normal-BSO157bq.woff2)format("woff2"),url(/assets/source-sans-3-greek-600-normal-BNF9LBpG.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-vietnamese-600-normal-B2sTNYey.woff2)format("woff2"),url(/assets/source-sans-3-vietnamese-600-normal-DpSexF-T.woff)format("woff");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:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-latin-ext-600-normal-AEyhgUpm.woff2)format("woff2"),url(/assets/source-sans-3-latin-ext-600-normal-Wy7HIzqC.woff)format("woff");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:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-latin-600-normal-DeckBYAU.woff2)format("woff2"),url(/assets/source-sans-3-latin-600-normal-BvDVuF-j.woff)format("woff");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:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-cyrillic-ext-700-normal-BhUSqjb8.woff2)format("woff2"),url(/assets/source-sans-3-cyrillic-ext-700-normal-B6RPsSdD.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-cyrillic-700-normal-CIuudVLB.woff2)format("woff2"),url(/assets/source-sans-3-cyrillic-700-normal-DYE6gq6k.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-greek-ext-700-normal-Dd6uIcuy.woff2)format("woff2"),url(/assets/source-sans-3-greek-ext-700-normal-C6ITAlBU.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-greek-700-normal-C8Tp2qRF.woff2)format("woff2"),url(/assets/source-sans-3-greek-700-normal-BWdBblwd.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-vietnamese-700-normal-Bgamivog.woff2)format("woff2"),url(/assets/source-sans-3-vietnamese-700-normal-BHxM10oo.woff)format("woff");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:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-latin-ext-700-normal-6Xi0A2be.woff2)format("woff2"),url(/assets/source-sans-3-latin-ext-700-normal-ChH_v7nA.woff)format("woff");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:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-latin-700-normal-CkzU-mV9.woff2)format("woff2"),url(/assets/source-sans-3-latin-700-normal-BBbVrHF_.woff)format("woff");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:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-cyrillic-ext-wght-normal-cHuGMAiY.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:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-cyrillic-wght-normal-DwHjdM4S.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-greek-wght-normal-ece1310W.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-vietnamese-wght-normal-D-yuW59g.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:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-latin-ext-wght-normal-CxNHBx-q.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:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-latin-wght-normal-D9elroTD.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{--font-body:"Source Sans 3", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:"Source Serif 4 Variable", "Source Serif 4", Georgia, "Times New Roman", serif;--font-mono:ui-monospace, "Cascadia Mono", "SFMono-Regular", Consolas, monospace;font-family:var(--font-body);--radius-sm:4px;--radius:6px;--radius-lg:10px;--radius-pill:999px;--bg:#17110d;--surface:#221913;--surface-2:#2b2019;--surface-3:#35281f;--border:#3a2c22;--border-strong:#4a392c;--text:#f1e6d4;--text-soft:#d9ccb8;--text-muted:#bba88f;--text-subtle:#9a876f;--accent:#3b7d5a;--accent-hover:#458f67;--on-accent:#fff8ec;--on-danger:#1b120b;--on-success:#1b120b;--accent-soft:#5baf8624;--accent-text:#8fd1ae;--brass:#d9a54a;--brass-soft:#d9a54a29;--success:#5bae85;--success-soft:#5bae8524;--success-border:#36513f;--danger:#e07a5f;--danger-soft:#e07a5f24;--danger-border:#6b3a2c;--warning:var(--brass);--info:var(--brass);--focus:#d9a54a;--board-light:#e2c59a;--board-dark:#a47148;--board-frame:#3b2617;--square-selected:#d9a54a8c;--square-target:#d9a54a47;--square-hint:#5baf8699;--square-error:#e052328c;--square-capture:#e0523261;--eval-white:#f1e6d4;--eval-black:#2b2019;--eval-on-white:#17110d;--eval-on-black:#f1e6d4;--shadow-card:0 16px 40px #00000059;--shadow-board:0 18px 50px #0000008c;--bg-primary:var(--bg);--bg-secondary:var(--surface);--text-primary:var(--text);--text-secondary:var(--text-muted);--glass-bg:var(--surface);--glass-border:var(--border);--bg-pattern:radial-gradient(ellipse at 50% -20%, #d9a54a14, transparent 60%);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-weight:400;line-height:1.5}:root.theme-light{--bg:#f4ede1;--surface:#fffdf8;--surface-2:#f8f1e6;--surface-3:#efe5d5;--border:#e2d6c2;--border-strong:#d2c2a8;--text:#2b2118;--text-soft:#4a3b2c;--text-muted:#6b5a48;--text-subtle:#786755;--accent:#2f6b4f;--accent-hover:#26593f;--on-accent:#fffdf8;--on-danger:#fffdf8;--on-success:#fffdf8;--accent-soft:#2f6b4f1a;--accent-text:#2f6b4f;--brass:#945d10;--brass-soft:#a86a121f;--success:#2e7853;--success-soft:#2f7a551a;--success-border:#b9d7c4;--danger:#a8381c;--danger-soft:#a8381c14;--danger-border:#e8b9a0;--focus:#a86a12;--board-light:#f0d9b5;--board-dark:#b58863;--board-frame:#5a3a22;--square-selected:#a86a1273;--square-target:#a86a1238;--square-hint:#2f6b4f80;--square-error:#be321473;--square-capture:#be321452;--eval-white:#fffdf8;--eval-black:#3a2c22;--eval-on-white:#2b2118;--eval-on-black:#fffdf8;--shadow-card:0 1px 0 #e2d6c2, 0 12px 30px #543c1e14;--shadow-board:0 18px 40px #3c230f59;--bg-pattern:radial-gradient(ellipse at 50% -20%, #a86a120f, transparent 60%);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}h1,h2,h3,.font-display{font-family:var(--font-display);letter-spacing:-.01em}button,input,select,textarea{font-family:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}html{overflow-y:scroll}*{box-sizing:border-box;margin:0;padding:0}body{color:var(--text-primary);background-color:var(--bg-primary);background-image:var(--bg-pattern);background-attachment:fixed;justify-content:center;align-items:center;min-height:100vh;padding:2rem;transition:background-color .3s,color .3s;display:flex}#root{flex-direction:column;align-items:center;width:100%;display:flex}.app-container{background-color:var(--bg-primary);flex-direction:column;display:flex;position:fixed;inset:0;overflow-y:auto}.app-container.play-screen{overflow:hidden}@media (width<=800px){.app-container.play-screen{overflow-y:auto}}.daily-start-overlay{container-type:size}.daily-start-card{text-align:center;box-sizing:border-box;width:100%;max-width:450px;margin:auto;padding:2rem}.daily-start-card h2{color:var(--text);margin:0 0 1.5rem;font-size:1.5rem}.daily-start-plan{margin-bottom:1.5rem;padding:1rem}.daily-start-plan-row+.daily-start-plan-row{margin-top:1rem}.daily-start-hint,.daily-start-time{margin-bottom:1.5rem;font-size:.9rem}.daily-start-time{font-size:1rem}@container (height<=460px){.daily-start-card{padding:.75rem;font-size:.85rem}.daily-start-card h2{margin-bottom:.6rem;font-size:1.05rem}.daily-start-plan{margin-bottom:.6rem;padding:.5rem .75rem}.daily-start-plan-row+.daily-start-plan-row{margin-top:.4rem}.daily-start-hint{display:none}.daily-start-time{margin-bottom:.6rem;font-size:.9rem}.daily-start-card .btn-lg{padding:.6rem 1rem;font-size:.95rem}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:1.25rem}.panel{flex-direction:column;gap:1rem;display:flex}.panel-head{justify-content:space-between;align-items:flex-end;gap:.75rem;display:flex}.panel-title{margin:.15rem 0 0;font-size:1.4rem;font-weight:700;line-height:1.2}.panel-meta{color:var(--text-muted);white-space:nowrap;font-size:.85rem}.section-label{font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin:0;font-size:.75rem;font-weight:700}.section-label--brass{color:var(--brass)}.status{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);flex-direction:column;gap:.6rem;padding:1rem 1.15rem;display:flex}.status__title{align-items:center;gap:.5rem;margin:0;font-size:1.2rem;font-weight:700;display:flex}.status__body{color:var(--text-soft);font-size:.95rem;line-height:1.55}.status__body p{margin:0}.status__actions{flex-wrap:wrap;gap:.6rem;margin-top:.15rem;display:flex}.status__actions>*{white-space:nowrap;flex:11rem}.status--turn .status__title svg{color:var(--accent-text)}.status--error{background:var(--danger-soft);border-color:var(--danger-border)}.status--error .status__title{color:var(--danger)}.status--success{background:var(--success-soft);border-color:var(--success-border)}.status--success .status__title svg{color:var(--success)}.status--waiting{opacity:.8}.status--waiting .status__title{color:var(--text-muted);font-size:1.05rem}.btn.btn-secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border-strong)}.btn.btn-secondary:hover:not(:disabled){background:var(--surface-3)}.btn.btn-ghost{color:var(--text-soft);border:1px dashed var(--border-strong);background:0 0}.btn.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn-block{width:100%}.btn.btn-sm{padding:.5rem 1rem;font-size:.9rem}.move-list{font-variant-numeric:tabular-nums;margin:0;padding:0;font-size:.95rem;font-weight:600;list-style:none}.move-list__row{grid-template-columns:2.25rem 1fr 1fr;padding:.2rem 0;display:grid}.move-list__num{color:var(--text-subtle);font-weight:400}.move-list__move{color:var(--text)}.move-list__move.is-last{border-radius:var(--radius-sm);background:var(--brass-soft);color:var(--brass);justify-self:start;margin-left:-.4rem;padding:0 .4rem;font-weight:700}.move-list__empty{color:var(--text-subtle);margin:0;font-size:.9rem}.progress{border-radius:var(--radius-pill);background:var(--surface-3);height:6px;overflow:hidden}.progress__fill{border-radius:inherit;background:var(--accent);height:100%;transition:width .3s}.icon-tile{border-radius:var(--radius);background:var(--surface-2);width:2.5rem;height:2.5rem;color:var(--brass);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.glass{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.glass-panel{width:100%;max-width:480px;margin:0 auto;padding:2rem}.btn{background-color:var(--accent);color:var(--on-accent);border-radius:var(--radius-pill);cursor:pointer;border:none;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-family:inherit;font-weight:600;transition:all .2s;display:inline-flex}.btn-primary:hover{background-color:var(--accent-hover);transform:translateY(-1px)}.trainer-layout{grid-template-columns:minmax(0,calc(min(640px,100vh - 200px) + 42px)) 380px;justify-content:center;align-items:start;gap:2rem;width:100%;max-width:1600px;margin:0 auto;padding:2rem;display:grid}@media (width<=800px){.trainer-layout{grid-template-columns:1fr;padding:1rem}}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-outline{border:1px solid var(--border-strong);color:var(--text);background:0 0}.btn-outline:hover:not(:disabled){background:var(--surface-2)}.input-field{background:var(--surface-2);border:1px solid var(--border);width:100%;color:var(--text);box-sizing:border-box;border-radius:8px;margin-bottom:1rem;padding:.75rem 1rem;font-family:inherit}.input-field:focus{border-color:var(--accent);outline:none}.panel-text{color:var(--text-soft);margin:0;line-height:1.65}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}@media (width<=800px){.hide-on-phone{display:none!important}.app-container.play-screen>main{flex:none!important;overflow:visible!important}.play-side,.play-side__panel{height:auto!important;overflow:visible!important}}.icon-tile--success{background:var(--success-soft);color:var(--success)}.icon-tile--brass{background:var(--brass-soft);color:var(--brass)}.side-dot{border:1.5px solid var(--border-strong);border-radius:50%;flex-shrink:0;width:.75em;height:.75em;display:inline-block}.side-dot--w{background:#f4ebdc;border-color:#b9a88c}.side-dot--b{border-color:var(--text-muted);background:#2a1f17}.action-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);align-items:stretch;transition:border-color .2s,transform .2s;display:flex;overflow:hidden}.action-card--success{border-color:var(--success-border)}.action-card:hover{border-color:var(--border-strong);transform:translateY(-1px)}.action-card__main{min-width:0;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;flex:1;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;font-size:1rem;display:flex}.action-card__side{border:none;border-left:1px solid var(--border);width:3.5rem;color:var(--text-muted);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.action-card__side:hover{background:var(--surface-2);color:var(--text)}.chip{border-radius:var(--radius-pill);border:1.5px solid var(--border);background:var(--surface-2);color:var(--text-secondary);cursor:pointer;align-items:center;gap:.45rem;padding:.5rem 1.1rem;font-size:.95rem;transition:border-color .2s,background .2s,color .2s;display:inline-flex}.chip:hover{border-color:var(--border-strong);color:var(--text)}.chip.is-active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text);font-weight:600}.chip--sm{background:0 0;padding:.35rem .9rem;font-size:.85rem}.chip-row{flex-wrap:wrap;gap:.5rem;display:flex}.stat-row{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.stat-row+.stat-row{margin-top:.5rem}.stat-row__label{color:var(--text-muted)}.stat-row__value{color:var(--text);font-size:1.1rem;font-weight:700}.tag{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);color:var(--text-soft);align-items:center;gap:.4rem;padding:.3rem .65rem;font-size:.8rem;display:inline-flex}.tag--brass{background:var(--brass-soft);color:var(--brass);border-color:#0000;font-weight:600}.play-header{box-sizing:border-box;background:var(--surface);border-bottom:1px solid var(--border);height:64px;color:var(--text);flex-shrink:0;align-items:center;gap:1rem;padding:0 2rem;display:flex}.play-header__back{color:var(--text);cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:.5rem;font-size:.95rem;display:inline-flex}.play-header__end{align-items:center;gap:1rem;min-width:0;margin-left:auto;display:flex}.play-header__meta{color:var(--text-soft);white-space:nowrap;font-size:.95rem;font-weight:600}@media (width<=800px){.play-header{padding:0 1rem}}.tag--timer{background:var(--danger-soft);color:var(--danger);font-variant-numeric:tabular-nums;border-color:#0000;font-weight:600}.daily-header__opening{min-width:0;max-width:28rem}.daily-header__opening-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.screen-overlay{z-index:100;background:#0a0705b8;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}@media (width<=800px){.play-header.daily-header{gap:.5rem}.daily-header .btn-sm{padding:.4rem .7rem}.daily-header__opening{display:none}}.page-body{box-sizing:border-box;width:100%;max-width:880px;margin:0 auto;padding:2rem 1.5rem 3rem}.icon-tile--accent{background:var(--accent-soft);color:var(--accent-text)}.icon-tile--danger{background:var(--danger-soft);color:var(--danger)}.progress--brass .progress__fill{background:var(--brass)}.opening-hero{align-items:flex-start;gap:1.75rem;padding:1.75rem;display:flex}.opening-hero__board{border-radius:var(--radius);box-shadow:var(--shadow-board);flex-shrink:0;line-height:0;overflow:hidden}.opening-hero__level{flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.95rem;display:flex}.mode-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem;display:grid}.mode-card{text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);color:var(--text);cursor:pointer;align-items:flex-start;gap:1rem;padding:1.25rem;transition:border-color .2s,transform .2s;display:flex}.mode-card:hover:not(:disabled){border-color:var(--border-strong);transform:translateY(-1px)}.mode-card:disabled{cursor:default;opacity:.6;box-shadow:none}.mode-card--primary{border-color:var(--accent)}.mode-card__body{flex-direction:column;flex:1;gap:.3rem;min-width:0;display:flex}.mode-card__title{font-family:var(--font-display);flex-wrap:wrap;align-items:center;gap:.25rem .5rem;font-size:1.15rem;font-weight:700;display:flex}.mode-card__desc{color:var(--text-muted);font-size:.9rem;line-height:1.45}.mode-card__footer{margin-top:.2rem;font-size:.85rem;font-weight:600}.mode-card__footer--accent{color:var(--accent-text)}.mode-card__footer--brass{color:var(--brass)}.mode-card__footer--danger{color:var(--danger)}.mode-card__footer--success{color:var(--success)}.mode-card__chevron{color:var(--text-subtle);flex-shrink:0;align-self:center}.locked-badge{white-space:nowrap;font-family:var(--font-body);color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-pill);align-items:center;gap:.25rem;padding:.1rem .5rem;font-size:.72rem;font-weight:600;line-height:1.4;display:inline-flex}@media (width<=640px){.page-body{padding:1.25rem 1rem 2.5rem}.opening-hero{flex-direction:column;align-items:center;padding:1.25rem}.opening-hero>.panel{width:100%}.mode-grid{grid-template-columns:1fr}}.play-side{align-self:stretch;width:100%;min-width:0;position:relative}.play-side__panel{position:absolute;inset:0;overflow-y:auto}@media (width<=800px){.play-side{align-self:start}.play-side__panel{position:static}}.move-list__move.is-book{color:var(--text-subtle);font-style:italic;font-weight:400}.btn.btn-danger-soft{background:var(--danger-soft);color:var(--danger);border:1px solid var(--danger-border)}.btn.btn-danger-soft:hover:not(:disabled){background:var(--danger-soft);filter:brightness(1.05)}.eval-chip{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);font-variant-numeric:tabular-nums;align-items:center;gap:.5rem;padding:.3rem .7rem;font-size:.85rem;display:inline-flex}.eval-chip strong{color:var(--text)}.thinking-dots{gap:4px;display:inline-flex}.thinking-dots span{background:var(--accent);border-radius:50%;width:6px;height:6px;animation:1s infinite thinking-dot}.thinking-dots span:nth-child(2){animation-delay:.2s}.thinking-dots span:nth-child(3){animation-delay:.4s}@keyframes thinking-dot{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.dashboard{box-sizing:border-box;width:100%;max-width:960px;margin:0 auto;padding:2rem}.dashboard-profile{margin-bottom:1.5rem;padding:1.5rem}.search-field{border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--border-strong);height:2.75rem;color:var(--text-muted);align-items:center;gap:.6rem;padding:0 1rem;display:flex}.search-field:focus-within{border-color:var(--accent)}.search-field input{min-width:0;height:100%;color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:1rem}.tag--success{background:var(--success-soft);color:var(--success);border-color:#0000;font-weight:600}.opening-groups{flex-direction:column;gap:2rem;display:flex}.opening-group__head{border:none;border-bottom:1px solid var(--border);width:100%;color:var(--text-soft);cursor:pointer;text-align:left;background:0 0;align-items:center;gap:.6rem;margin-bottom:1rem;padding:0 0 .6rem;display:flex}.opening-group__title{font-family:var(--font-display);font-size:1.2rem;font-weight:700}.opening-group__count{color:var(--text-muted);background:var(--surface-2);border-radius:var(--radius-pill);padding:.05rem .5rem;font-size:.8rem;font-weight:600}.opening-group__chevron{color:var(--text-subtle);margin-left:auto;transition:transform .2s}.opening-group__chevron.is-collapsed{transform:rotate(-90deg)}.opening-grid{grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:1rem;display:grid}.opening-card{text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);color:var(--text);cursor:pointer;align-items:flex-start;gap:1rem;padding:1rem;transition:border-color .2s,transform .2s;display:flex}.opening-card:hover:not(:disabled){border-color:var(--border-strong);transform:translateY(-1px)}.opening-card:disabled{opacity:.6;cursor:default}.opening-card__body{flex-direction:column;flex:1;gap:.35rem;min-width:0;display:flex}.opening-card__title{font-family:var(--font-display);align-items:baseline;gap:.5rem;font-size:1.1rem;font-weight:700;line-height:1.25;display:flex}.opening-card__desc{color:var(--text-muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.875rem;line-height:1.45;display:-webkit-box;overflow:hidden}.opening-card__meta{flex-wrap:wrap;gap:.35rem;margin-top:.15rem;display:flex}.opening-card__meta .tag{padding:.15rem .5rem;font-size:.75rem}.opening-card__chevron{color:var(--text-subtle);flex-shrink:0;align-self:center}@media (width<=640px){.dashboard{padding:1rem}.dashboard-profile{margin-bottom:1rem;padding:1rem 1.1rem}.opening-groups{gap:1.25rem}.opening-group__head{margin-bottom:.6rem}.opening-group__title{font-size:1.05rem}.opening-grid{grid-template-columns:1fr;gap:.5rem}.opening-card{box-shadow:none;align-items:center;gap:.8rem;padding:.6rem .75rem}.opening-card__title{font-size:1rem}.opening-card__desc{-webkit-line-clamp:1;font-size:.8rem}.action-card__main{padding:.8rem 1rem}}.dashboard-profile{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}@media (width<=640px){body{padding:1rem}.dashboard{padding:0}.dashboard-profile__ratings{width:100%;align-items:flex-start!important}.dashboard-profile__rating-row{justify-content:flex-start!important}}.auth-page{flex-direction:column;justify-content:center;align-items:center;gap:1.25rem;width:100%;min-height:calc(100vh - 4rem);display:flex}.brand-mark{color:var(--text);align-items:center;gap:.6rem;text-decoration:none;display:inline-flex}.brand-mark__icon{border-radius:var(--radius);background:var(--accent);width:2.25rem;height:2.25rem;color:var(--on-accent);justify-content:center;align-items:center;display:inline-flex}.brand-mark__text{font-family:var(--font-display);letter-spacing:.01em;font-size:1.35rem;font-weight:700}.auth-card{box-sizing:border-box;flex-direction:column;gap:1.1rem;width:100%;max-width:420px;padding:2.25rem 2rem 1.75rem;display:flex;position:relative}.auth-card--wide{max-width:640px}.auth-card__head{text-align:center;flex-direction:column;gap:.4rem;padding-top:1.25rem;display:flex}.auth-error{border-radius:var(--radius);background:var(--danger-soft);border:1px solid var(--danger-border);color:var(--danger);text-align:center;padding:.75rem 1rem;font-size:.875rem}.auth-notice{border-radius:var(--radius);background:var(--success-soft);border:1px solid var(--success-border);color:var(--success);text-align:center;padding:.75rem 1rem;font-size:.95rem}.input-icon{border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border);height:2.9rem;color:var(--text-muted);align-items:center;gap:.6rem;padding:0 .9rem;display:flex}.input-icon:focus-within{border-color:var(--accent)}.input-icon input{min-width:0;height:100%;color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:.95rem}.auth-link{color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-self:center;padding:.25rem;font-size:.875rem;text-decoration:underline}.auth-link:hover{color:var(--text)}.auth-divider{color:var(--text-subtle);text-transform:uppercase;letter-spacing:.1em;align-items:center;gap:1rem;font-size:.75rem;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.auth-consent{text-align:center;color:var(--text-muted);margin:0;font-size:.8rem}.auth-consent a{color:var(--text-soft);text-decoration:underline}.feature-list{flex-direction:column;gap:.85rem;margin:0;padding:0;list-style:none;display:flex}.feature-list li{color:var(--text-soft);align-items:flex-start;gap:.75rem;line-height:1.55;display:flex}.feature-list__icon{flex-shrink:0;margin-top:.1rem}@media (width<=640px){.auth-page{justify-content:flex-start;min-height:calc(100vh - 2rem);padding-top:.5rem}.auth-card{padding:1.75rem 1.25rem 1.5rem}}.btn.btn-danger{background:var(--danger);color:var(--on-danger);border:1px solid var(--danger)}.btn.btn-danger:hover:not(:disabled){filter:brightness(1.08)}.settings-section__head{align-items:center;gap:.85rem;display:flex}.settings-section__title{margin:0;font-size:1.15rem;font-weight:700}.settings-section__desc{color:var(--text-muted);margin:.15rem 0 0;font-size:.85rem}.settings-section--danger{border-color:var(--danger-border)}.segmented{border-radius:var(--radius-pill);background:var(--surface-2);border:1px solid var(--border);gap:.25rem;padding:.25rem;display:flex}.segmented button{border-radius:var(--radius-pill);color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex:1;padding:.55rem 1rem;font-weight:600}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-card)}.option-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.75rem;display:grid}.option-tile{border-radius:var(--radius);border:1.5px solid var(--border);background:var(--surface-2);color:var(--text-muted);cursor:pointer;flex-direction:column;align-items:center;gap:.55rem;padding:.85rem .6rem;font-size:.85rem;transition:border-color .2s;display:flex}.option-tile:hover{border-color:var(--border-strong)}.option-tile[aria-pressed=true]{border-color:var(--accent);color:var(--text);background:var(--accent-soft);font-weight:600}.theme-swatch{border-radius:var(--radius-sm);border:1px solid var(--border-strong);box-sizing:border-box;align-items:flex-end;gap:.2rem;width:3.25rem;height:2.25rem;padding:.3rem;display:flex}.theme-swatch span{border-radius:2px;height:.4rem}.board-swatch{border-radius:var(--radius-sm);width:3rem;height:3rem;box-shadow:var(--shadow-card);grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.field-label{color:var(--text-soft);margin-bottom:.4rem;font-size:.9rem;font-weight:600;display:block}.toggle-row{cursor:pointer;color:var(--text);justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 0;display:flex}.toggle-row+.toggle-row{border-top:1px solid var(--border)}.toggle-row.is-disabled{opacity:.5;cursor:default}input.switch{appearance:none;border-radius:var(--radius-pill);background:var(--surface-3);border:1px solid var(--border-strong);cursor:pointer;flex-shrink:0;width:2.6rem;height:1.5rem;margin:0;transition:background .2s;position:relative}input.switch:before{content:"";background:var(--text-muted);border-radius:50%;width:calc(1.5rem - 6px);height:calc(1.5rem - 6px);transition:transform .2s,background .2s;position:absolute;top:2px;left:2px}input.switch:checked{background:var(--accent);border-color:var(--accent)}input.switch:checked:before{background:var(--on-accent);transform:translate(1.1rem)}input.switch:disabled{cursor:default}.danger-panel{border-radius:var(--radius);background:var(--danger-soft);border:1px solid var(--danger-border);flex-direction:column;gap:.9rem;padding:1rem;display:flex}.danger-panel p{color:var(--danger);margin:0;font-size:.9rem;line-height:1.5}.check-row{cursor:pointer;color:var(--text);align-items:center;gap:.6rem;font-size:.9rem;display:flex}.check-row input{width:18px;height:18px;accent-color:var(--danger)}.icon-btn{border-radius:var(--radius);width:2.5rem;height:2.5rem;color:var(--text-soft);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.icon-btn--danger,.icon-btn--danger:hover{color:var(--danger)}.link-btn{font:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:.4rem;padding:0;display:inline-flex}.offline-banner{z-index:900;border:1px solid var(--border-strong);background:var(--surface);max-width:calc(100vw - 2rem);color:var(--text);box-shadow:var(--shadow-card,0 6px 20px #00000040);pointer-events:none;border-radius:999px;align-items:center;gap:.5rem;padding:.55rem 1rem;font-size:.85rem;display:flex;position:fixed;bottom:1rem;left:50%;transform:translate(-50%)}.tier-scale-note{color:var(--text-muted);margin:0 0 .25rem;font-size:.85rem;line-height:1.5}.tier-option{border-radius:var(--radius);border:1.5px solid var(--border);background:var(--surface-2);width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;flex-direction:column;align-items:flex-start;gap:.15rem;padding:.65rem .9rem;transition:border-color .2s;display:flex}.tier-option:hover{border-color:var(--border-strong)}.tier-option[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}.tier-option__name{align-items:center;gap:.4rem;font-weight:700;display:inline-flex}.tier-option__scale{color:var(--text-secondary);font-variant-numeric:tabular-nums;font-size:.85rem}.tier-option__who{color:var(--text-muted);font-size:.8rem}.tier-basis{color:var(--text-muted);margin-left:.5rem;font-size:.85rem}.piece-preview{justify-content:center;gap:.15rem;height:2.6rem;display:flex}.piece-preview img{object-fit:contain;width:2.6rem;height:2.6rem}.save-progress{flex-direction:column;gap:.75rem;display:flex}.save-progress__text{color:var(--text-secondary);margin:0;font-size:.92rem;line-height:1.55}.save-progress__form{flex-direction:column;gap:.6rem;display:flex}.save-progress__error{color:var(--danger);margin:0;font-size:.9rem}.app-version{justify-content:center;padding:1.5rem 0 .5rem;display:flex}.app-version__btn{border-radius:var(--radius-sm,6px);color:var(--text-muted);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border:none;padding:.2rem .5rem;font-size:.75rem}.app-version__btn:hover{color:var(--text)}.auth-page .app-version{padding-top:0}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.input-field:focus,.search-field:focus-within,.input-icon:focus-within{box-shadow:0 0 0 2px var(--focus)}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.75rem;width:100%;margin:0;display:grid}.stat-grid__item{border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border);text-align:left;padding:.75rem .9rem}.stat-grid__item dt{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-size:.75rem;font-weight:700}.stat-grid__item dd{font-family:var(--font-display);color:var(--text);margin:.2rem 0 0;font-size:1.35rem;font-weight:700}.stat-grid--compact{grid-template-columns:repeat(2,minmax(0,1fr))}.board-area{justify-content:center;align-items:flex-start;width:100%;display:flex}.eval-bar{border:1px solid var(--border-strong);border-radius:4px;flex-direction:column;flex-shrink:0;align-self:stretch;width:34px;max-height:720px;margin-right:8px;display:flex;overflow:hidden}.eval-bar--flipped{flex-direction:column-reverse}.eval-bar__part{flex-basis:0;justify-content:center;align-items:center;min-height:20px;transition:flex-grow .6s cubic-bezier(.4,0,.2,1);display:flex}.eval-bar__part--black{background-color:var(--eval-black)}.eval-bar__part--white{background-color:var(--eval-white)}.eval-bar__label{-webkit-user-select:none;user-select:none;writing-mode:vertical-lr;text-orientation:mixed;font-size:.6rem;font-weight:700;line-height:1}.eval-bar__label--black{color:var(--eval-on-black);transform:rotate(180deg)}.eval-bar__label--white{color:var(--eval-on-white)}@media (width<=800px){.board-area{flex-direction:column;align-items:center}.board-area>.eval-bar{flex-direction:row-reverse;align-self:center;width:100%;max-width:min(640px,100vh - 200px);height:14px;margin:0 0 6px}.board-area>.eval-bar--flipped{flex-direction:row}.eval-bar__part{min-width:28px;min-height:0}.eval-bar__label{writing-mode:horizontal-tb;font-size:.62rem;transform:none}}@media (pointer:coarse){.play-header__back,.link-btn,.auth-link,.app-version__btn,button.tag,.lang-switch button,.touch-target{min-width:40px;min-height:40px}.play-header__back,.app-version__btn,.touch-target{justify-content:center;align-items:center;display:inline-flex}.auth-page footer a,.landing-footer a{align-items:center;min-height:40px;display:inline-flex}}.glass-panel{box-sizing:border-box}@media (width<=640px){.glass-panel{padding:1.5rem 1.25rem}}.update-prompt{z-index:950;border:1px solid var(--border-strong);background:var(--surface);max-width:calc(100vw - 2rem);color:var(--text);box-shadow:var(--shadow-card,0 6px 20px #00000040);border-radius:999px;align-items:center;gap:.6rem;padding:.45rem .5rem .45rem 1rem;font-size:.9rem;display:flex;position:fixed;bottom:1rem;left:50%;transform:translate(-50%)}.install-app__text{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:.35rem;margin:0;font-size:.92rem;line-height:1.55;display:flex}.install-offer{border-radius:var(--radius-lg);border:1px solid var(--success);background:var(--success-soft);align-items:center;gap:.75rem;margin-bottom:1rem;padding:.75rem .75rem .75rem 1rem;display:flex}.install-offer__body{flex:1;min-width:0}.install-offer__title{color:var(--text);font-weight:600}.install-offer__text{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.25rem;font-size:.8rem;display:flex}
