@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-DQukG94-.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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2)format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2)format("woff2"),url(/assets/inter-greek-ext-400-normal-KugGGMne.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-B4URO6DV.woff2)format("woff2"),url(/assets/inter-greek-400-normal-q2sYcFCs.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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2)format("woff2"),url(/assets/inter-vietnamese-400-normal-Bbgyi5SW.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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2)format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2)format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-CWCymEST.woff2)format("woff2"),url(/assets/inter-cyrillic-600-normal-4D_pXhcN.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2)format("woff2"),url(/assets/inter-greek-ext-600-normal-B8X0CLgF.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-600-normal-plRanbMR.woff2)format("woff2"),url(/assets/inter-greek-600-normal-BZpKdvQh.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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2)format("woff2"),url(/assets/inter-vietnamese-600-normal-BuLX-rYi.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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2)format("woff2"),url(/assets/inter-latin-ext-600-normal-CIVaiw4L.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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2)format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.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:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-ext-700-normal-BjwYoWNd.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-700-normal-LO58E6JB.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:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-700-normal-CjBOestx.woff2)format("woff2"),url(/assets/inter-cyrillic-700-normal-DrXBdSj3.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-ext-700-normal-qfdV9bQt.woff2)format("woff2"),url(/assets/inter-greek-ext-700-normal-BoQ6DsYi.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-700-normal-C3JjAnD8.woff2)format("woff2"),url(/assets/inter-greek-700-normal-BUv2fZ6O.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:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-vietnamese-700-normal-DlLaEgI2.woff2)format("woff2"),url(/assets/inter-vietnamese-700-normal-BZaoP0fm.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:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-ext-700-normal-Ca8adRJv.woff2)format("woff2"),url(/assets/inter-latin-ext-700-normal-TidjK2hL.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:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-700-normal-Yt3aPRUw.woff2)format("woff2"),url(/assets/inter-latin-700-normal-BLAVimhd.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:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/inter-cyrillic-ext-800-normal-BZOjs1Xv.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-800-normal-Ca-gJeZY.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:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/inter-cyrillic-800-normal-C7MGvYyJ.woff2)format("woff2"),url(/assets/inter-cyrillic-800-normal-CCHyn08d.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/inter-greek-ext-800-normal-B--PVpEC.woff2)format("woff2"),url(/assets/inter-greek-ext-800-normal-DUe57HfS.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/inter-greek-800-normal-CLIouy3y.woff2)format("woff2"),url(/assets/inter-greek-800-normal-BU00tryP.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:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/inter-vietnamese-800-normal-Cm7tD1pz.woff2)format("woff2"),url(/assets/inter-vietnamese-800-normal-DDlpr_Ee.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:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/inter-latin-ext-800-normal-DZJjya6U.woff2)format("woff2"),url(/assets/inter-latin-ext-800-normal-BOMpwxm3.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:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/inter-latin-800-normal-BYj_oED-.woff2)format("woff2"),url(/assets/inter-latin-800-normal-D1mf63XC.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}:root{--text:#4b5563;--text-h:#111827;--panel:#f3f5f9;--selected:#e2e8f0;--input:#fff;--muted:#98a4b8;--bg:#0e1116;--border:#252c39;--border-strong:#354056;--code-bg:#12161d;--accent:#43d69a;--accent-text:#08130d;--focus:#43d69a73;--rail:#0e1116;--rail-panel:#171b23;--rail-row:#212734;--rail-text:#dbe2ee;--rail-muted:#98a4b8;--field:#0c0f14;--selection:#74b9ff;--selection-text:#08111f;--gold:#f5c86a;--brand:#cf9484;--glow-a:#43d69a17;--glow-b:#ff8a6514;--wood-l0:#2a313d;--wood-l1:#1e5a41;--wood-l2:#256e4f;--wood-l3:#2e825d;--wood-l4:#38976b;--wood-l5:#45ab7a;--wood-l6:#5cbe8c;--wood-l7:#78d1a2;--wood-l8:#98e3ba;--nag-inaccuracy:#e8c25a;--nag-mistake:#f09a5b;--nag-blunder:#f2726f;--nag-theory:#b48fd6;--nag-novelty:#4fb6c9;--verdict-ok:#7fdcac;--page-max:1800px;--sans:"Inter", "Segoe UI", sans-serif;--heading:var(--sans);--mono:ui-monospace, Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;scrollbar-color:var(--border-strong) var(--rail-panel);font:16px/145% var(--sans);letter-spacing:0;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#e9edf3;--border:#dbe1ea;--border-strong:#c0c9d6;--selected:#e2e8f0;--accent:#0f7a43;--accent-text:#fff;--focus:#0f7a4359;--rail:#e9edf3;--rail-panel:#fff;--rail-row:#f3f5f9;--rail-text:#1e2733;--rail-muted:#5a6677;--muted:#5a6677;--field:#fff;--selection:#1e5fcc;--selection-text:#fff;--gold:#8a6a00;--brand:#a85a45;--glow-a:#0f7a4314;--glow-b:#c2401f12;--wood-l0:#d5dbe4;--wood-l1:#6cc79b;--wood-l2:#5abb8d;--wood-l3:#48ad7e;--wood-l4:#389d70;--wood-l5:#2b8c62;--wood-l6:#217a54;--wood-l7:#186747;--wood-l8:#105438;--nag-inaccuracy:#8a6a00;--nag-mistake:#9a4b06;--nag-blunder:#b12a26;--nag-theory:#7c4fb0;--nag-novelty:#0d6c7e;--verdict-ok:#1a6e47}#root{background:radial-gradient(900px 480px at 10% -6%, var(--glow-a), transparent 62%), radial-gradient(800px 460px at 92% -8%, var(--glow-b), transparent 62%);min-height:100svh}body{margin:0}*{box-sizing:border-box}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:700}h1{margin:0;font-size:clamp(26px,3vw,40px);line-height:1.05}h2{letter-spacing:0;margin:0 0 8px;font-size:24px;line-height:118%}p{margin:0}button,textarea{font:inherit}code{color:#d7dde8;background:var(--code-bg);font-family:var(--mono);border-radius:4px;padding:4px 8px;font-size:15px;line-height:135%;display:block}.app-shell{min-height:100svh;padding:8px}.top-nav{max-width:var(--page-max);color:var(--rail-text);background:var(--rail-panel);border-radius:6px;align-items:center;gap:8px;margin:0 auto 8px;padding:8px 10px;display:flex}.top-nav strong{color:var(--brand);letter-spacing:.12em;text-transform:uppercase;margin-right:auto;font-size:13px}.top-nav button{border:1px solid var(--border-strong);min-height:32px;color:var(--rail-text);background:var(--rail-row);border-radius:5px;font-weight:800}.top-nav button.active{color:var(--selection-text);background:var(--selection);border-color:var(--selection)}.profile-wrap{margin-left:auto;position:relative}.top-nav .profile-button{color:var(--rail-muted);font-size:13px}.top-nav .profile-button.active{color:var(--selection-text);background:var(--selection);border-color:var(--selection)}.profile-menu{z-index:60;border:1px solid var(--border-strong);background:var(--rail-panel);border-radius:6px;gap:8px;min-width:230px;padding:10px;display:grid;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 32px #00000059}.top-nav .profile-menu button{text-align:left;width:100%;min-height:34px;padding:0 10px}.top-nav .profile-menu .onoff-switch button{text-align:center;width:auto;min-height:30px}.profile-theme{color:var(--rail-muted);letter-spacing:.06em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:10px;padding:0 2px;font-size:12px;font-weight:700;display:flex}.profile-select{border:1px solid var(--border-strong,#ffffff1f);background:var(--field);max-width:150px;color:var(--rail-text);font:inherit;letter-spacing:normal;text-transform:none;border-radius:6px;padding:4px 6px;font-size:12px}.profile-engine{flex-direction:column;gap:4px;padding:0 2px;display:flex}.profile-input{box-sizing:border-box;border:1px solid var(--border-strong,#ffffff1f);background:var(--field);width:100%;color:var(--rail-text);font:inherit;border-radius:6px;padding:5px 7px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.profile-input:focus{border-color:var(--accent);outline:none}.profile-engine-hint{color:var(--rail-muted);font-size:11px;line-height:1.35}.profile-push{gap:5px;padding:0 2px;display:grid}.profile-push .profile-theme{padding:0}.profile-push .push-hint{text-transform:none;letter-spacing:normal;font-weight:400}.profile-push-actions{gap:6px;display:flex}.top-nav .profile-menu .profile-push-actions button,.profile-push-actions button{border:1px solid var(--border-strong);width:auto;min-height:0;color:var(--rail-text);text-align:center;cursor:pointer;background:0 0;border-radius:999px;padding:3px 10px;font-size:12px}.profile-push-actions button:disabled{opacity:.5;cursor:default}.games-view{max-width:1280px;color:var(--rail-text);background:var(--rail-panel);border-radius:6px;margin:0 auto;padding:14px}.games-header{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:12px;margin-bottom:12px;display:flex}.games-header h1{margin-right:auto}.games-status{color:var(--rail-muted);font-size:13px}.games-header h1{color:var(--rail-text);font-size:28px}.games-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.games-list-row{grid-template-columns:minmax(0,1fr) auto auto auto;align-items:stretch;gap:8px;display:grid}.games-list-row:not(:has(.my-color)){grid-template-columns:minmax(0,1fr) auto}.games-list-row:has(.games-testing){grid-template-columns:minmax(0,1fr) auto auto auto auto}.my-color{border:1px solid var(--border-strong);background:var(--rail-row);border-radius:5px;align-items:center;gap:4px;padding:0 8px;display:flex}.my-color-label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:700}.my-color button{border:1px solid var(--border-strong);width:28px;height:28px;color:var(--rail-muted);cursor:pointer;background:0 0;border-radius:4px;padding:0;font-weight:800}.my-color button:hover{border-color:var(--accent)}.my-color button.active{color:var(--accent-text);background:var(--accent);border-color:var(--accent)}.my-color button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.main-repertoire{border:1px solid var(--border-strong);color:var(--rail-muted);background:var(--rail-row);letter-spacing:.06em;border-radius:5px;align-items:center;gap:5px;padding:0 9px;font-size:11px;font-weight:800;display:flex}.main-repertoire:has(input:checked){border-color:var(--accent);color:var(--accent)}.study-import-row{gap:6px;margin-top:8px;display:flex}.study-import-row input{border:1px solid var(--border-strong);min-width:0;max-width:360px;color:var(--rail-text);background:var(--field);border-radius:5px;flex:1;padding:8px 10px}.study-import-row button{border:1px solid var(--border-strong);color:var(--rail-text);background:var(--rail-row);cursor:pointer;border-radius:5px;padding:0 14px;font-weight:800}.study-import-row button:hover:not(:disabled){border-color:var(--accent)}.study-import-row button:disabled{opacity:.4;cursor:default}.games-open{border:1px solid var(--border-strong);min-width:0;color:var(--rail-text);background:var(--rail-row);font:inherit;text-align:left;border-radius:5px;gap:4px;padding:12px;display:grid}.games-open strong{color:var(--rail-text);font-size:16px}.games-open span{color:var(--rail-muted);font-size:12px}.games-delete,.games-testing{border:1px solid var(--border-strong);color:var(--rail-text);background:var(--rail-row);border-radius:5px;padding:0 14px;font-weight:800}.games-empty{color:var(--rail-muted);border:1px dashed var(--border-strong);border-radius:5px;padding:16px}.games-folder{border:1px solid var(--border-strong);border-radius:6px;margin-bottom:10px}.games-folder summary{color:var(--rail-text);background:var(--rail-row);cursor:pointer;border-radius:5px;align-items:center;gap:10px;padding:10px 14px;font-size:15px;font-weight:800;list-style:none;display:flex}.games-folder[open] summary{border-radius:5px 5px 0 0}.games-folder summary::-webkit-details-marker{display:none}.games-folder summary:before{content:"▸";color:var(--rail-muted);font-size:13px}.games-folder[open] summary:before{content:"▾"}.games-folder[open] summary{border-bottom:1px solid var(--border-strong)}.games-folder summary:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}.folder-name{margin-right:auto}.folder-count{background:var(--rail-panel);color:var(--rail-muted);border-radius:999px;padding:2px 9px;font-size:12px;font-weight:800}.games-folder .folder-body{gap:8px;padding:10px;display:grid}.folder-hint{color:var(--rail-muted);margin:0;font-size:12px}.games-sidebar{max-height:calc(100svh - 72px);color:var(--rail-text);background:var(--rail-panel);border-radius:6px;align-content:start;gap:8px;padding:10px;display:grid;position:sticky;top:8px;overflow-y:auto}.sidebar-head{align-items:center;gap:6px;display:flex}.sidebar-head h2{color:var(--rail-text);margin:0 auto 0 0;font-size:16px}.sidebar-action{border:1px solid var(--border-strong);min-height:30px;color:var(--rail-text);background:var(--rail-row);cursor:pointer;border-radius:5px;padding:0 10px;font-size:12px;font-weight:800}.sidebar-action:hover:not(:disabled){border-color:var(--accent)}.sidebar-action:disabled{opacity:.5;cursor:default}.sidebar-import{border:1px solid var(--border-strong);background:var(--rail-row);border-radius:5px}.sidebar-import summary{color:var(--rail-muted);cursor:pointer;padding:7px 10px;font-size:12px;font-weight:800}.sidebar-import-body{gap:8px;padding:2px 10px 10px;display:grid}.sidebar-import-body .study-import-row{margin-top:0}.sidebar-upload{color:var(--rail-muted);gap:4px;font-size:12px;display:grid}.sidebar-status{min-height:15px;color:var(--rail-muted);font-size:12px}.sidebar-empty{border:1px dashed var(--border-strong);color:var(--rail-muted);border-radius:5px;margin:8px;padding:10px;font-size:12px}.games-sidebar>.sidebar-empty{margin:0}.games-sidebar .games-folder{margin-bottom:0}.games-sidebar .games-folder summary{padding:8px 10px;font-size:13px}.sidebar-games{gap:4px;margin:8px;padding:0;list-style:none;display:grid}.sidebar-games li{grid-template-columns:minmax(0,1fr) auto;gap:4px;display:grid}.sidebar-game{border:1px solid var(--border-strong);min-width:0;color:var(--rail-text);background:var(--rail-row);font:inherit;text-align:left;cursor:pointer;border-radius:5px;gap:2px;padding:7px 9px;font-size:13px;display:grid}.sidebar-game:hover{border-color:var(--accent)}.sidebar-game.active{border-color:var(--selection);box-shadow:inset 2px 0 0 var(--selection)}.sidebar-game-name{flex-wrap:wrap;align-items:center;gap:6px;font-weight:700;display:flex}.sidebar-game-meta{color:var(--rail-muted);font-size:11px}.sidebar-game-more{border:1px solid var(--border-strong);min-width:28px;color:var(--rail-muted);background:var(--rail-row);cursor:pointer;border-radius:5px;font-weight:800}.sidebar-game-more:hover{border-color:var(--accent);color:var(--rail-text)}.sidebar-game .analysis-badge{border:1px solid var(--border-strong);color:var(--rail-muted);letter-spacing:.04em;white-space:nowrap;border-radius:999px;padding:0 6px;font-size:10px;font-weight:700}.sidebar-game .analysis-badge.analyzed{border-color:var(--accent);color:var(--accent)}.top-nav button:focus-visible,.new-game-button:focus-visible,.games-open:focus-visible,.games-delete:focus-visible,.games-testing:focus-visible,.sidebar-action:focus-visible,.sidebar-game:focus-visible,.sidebar-game-more:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.move-note{gap:8px;min-width:0;display:grid}.move-note-palette{gap:4px;display:grid}.move-note-glyphs{flex-wrap:wrap;gap:4px;display:flex}.move-note-glyphs button{border:1px solid var(--border-strong);min-width:30px;min-height:28px;color:var(--rail-text);background:var(--rail-row);font:inherit;cursor:pointer;border-radius:4px;padding:0 7px;font-size:14px;font-weight:700;line-height:1}.move-note-glyphs button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.move-note-glyphs button:disabled{opacity:.4;cursor:default}.move-note-glyphs button:focus-visible,.move-note-text:focus-visible{outline:3px solid var(--focus);outline-offset:1px}.move-note-text{border:1px solid var(--border-strong);width:100%;min-height:96px;color:var(--rail-text);background:var(--field);font:inherit;resize:vertical;border-radius:5px;padding:10px 12px;font-size:14px;line-height:1.5}.move-note-text:disabled{opacity:.55;resize:none}.notes-tab-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.note-modal{border:1px solid var(--border-strong);width:min(520px,100%);color:var(--rail-text);background:var(--rail-panel);border-radius:10px;gap:12px;padding:16px;display:grid;box-shadow:0 16px 48px #00000080}.note-modal-head{align-items:center;gap:10px;display:flex}.note-modal-title{flex-wrap:wrap;align-items:baseline;gap:8px;min-width:0;margin-right:auto;display:flex}.note-modal-move{font-variant-numeric:tabular-nums;font-size:16px;font-weight:800}.note-modal-sub{color:var(--rail-muted);font-size:12px}.note-modal-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.note-modal-hint{color:var(--rail-muted);margin-right:auto;font-size:12px}.puzzle-mode{border:1px solid var(--border-strong);background:var(--rail-row);border-radius:6px;gap:4px;padding:3px;display:flex}.puzzle-mode button{min-height:28px;color:var(--rail-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;flex:1;padding:0 8px;font-size:12.5px;font-weight:800}.puzzle-mode button:hover{color:var(--rail-text)}.puzzle-mode button.active{color:var(--accent-text);background:var(--accent)}.puzzle-mode button:focus-visible{outline:3px solid var(--focus);outline-offset:1px}.puzzle-chip.rush-score{border-color:var(--accent);color:var(--accent);font-variant-numeric:tabular-nums}.puzzle-chip.rush-strikes{letter-spacing:.15em}.puzzle-chip.rush-strikes.struck{border-color:var(--nag-blunder);color:var(--nag-blunder)}.rush-start{border:1px dashed var(--border-strong);border-radius:6px;gap:8px;padding:10px;display:grid}.rush-start-rules{color:var(--rail-muted);margin:0;font-size:12.5px;line-height:1.5}.rush-start-row{align-items:center;gap:10px;display:flex}.rush-start-button{flex:none}.rush-start-button:disabled{opacity:.45;cursor:default}.rush-best-note{color:var(--rail-muted);font-variant-numeric:tabular-nums;font-size:12.5px;font-weight:800}.sidebar-folder-actions{gap:6px;display:flex}.sidebar-folder-actions .sidebar-action{width:100%}.games-sidebar .tournament-folder{border-color:var(--accent)}.folder-more{border:1px solid var(--border-strong);min-width:24px;color:var(--rail-muted);background:var(--rail-row);font:inherit;cursor:pointer;border-radius:5px;padding:0 4px;font-weight:800;line-height:1.4}.folder-more:hover{border-color:var(--accent);color:var(--rail-text)}.folder-more:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.sidebar-game.summary-file{border-style:dashed}.sidebar-game.summary-file:hover{border-style:solid}.folder-empty-row{display:block}.folder-empty-row .sidebar-empty{margin:0}.modal-overlay{z-index:70;background:#0000008c;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.summary-modal{border:1px solid var(--border-strong);width:min(680px,100%);max-height:min(85vh,720px);color:var(--rail-text);background:var(--rail-panel);border-radius:10px;grid-template-rows:auto minmax(0,1fr) auto;gap:10px;padding:16px;display:grid;box-shadow:0 16px 48px #00000080}.summary-modal-head{align-items:center;gap:10px;display:flex}.summary-modal-title{flex-wrap:wrap;align-items:baseline;gap:8px;min-width:0;margin-right:auto;display:flex}.summary-modal-title strong{font-size:15px}.summary-modal-file{color:var(--rail-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.summary-modal-text{border:1px solid var(--border-strong);width:100%;min-height:220px;color:var(--rail-text);background:var(--rail-row);font:inherit;resize:vertical;border-radius:6px;padding:12px;font-size:14px;line-height:1.55}.summary-modal-text:focus-visible{outline:3px solid var(--focus);outline-offset:-1px}.summary-modal-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.summary-modal-meta{color:var(--rail-muted);font-variant-numeric:tabular-nums;margin-right:auto;font-size:12px}.sidebar-action.primary{color:var(--accent-text);background:var(--accent);border-color:#0000}.sidebar-action.primary:hover:not(:disabled){border-color:var(--accent)}.sidebar-repertoire{border:1px solid var(--border-strong);background:var(--rail-panel);border-radius:5px}.sidebar-repertoire>summary{cursor:pointer;align-items:center;padding:8px 10px;font-size:13px;display:flex}.sidebar-repertoire>summary::-webkit-details-marker{display:none}.sidebar-repertoire>summary .folder-name{margin-right:auto;font-weight:800}.sidebar-rep-actions{flex-wrap:wrap;gap:6px;padding:8px 10px 0;display:flex}.sidebar-rep-actions .sidebar-action{flex:auto}.sidebar-repertoire .sidebar-import{margin:8px 10px 0}.sidebar-paste{color:var(--rail-muted);gap:4px;font-size:12px;display:grid}.sidebar-paste textarea{resize:vertical;width:100%;min-height:54px;font-family:var(--mono);font-size:11px}.sidebar-repertoire-list{gap:6px;margin:8px;padding:0;list-style:none;display:grid}.rep-row{border:1px solid var(--border-strong);background:var(--rail-row);border-radius:5px;gap:5px;padding:7px 8px;display:grid}.rep-row-main{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:4px;display:grid}.rep-open{min-width:0;color:var(--rail-text);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:4px;gap:2px;padding:2px 4px;display:grid}.rep-open strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.rep-open span{color:var(--rail-muted);font-size:11px}.rep-open:hover{background:var(--rail-panel)}.rep-open.active{outline:2px solid var(--accent)}.rep-delete,.rep-rename{border:1px solid var(--border-strong);width:24px;height:24px;color:var(--rail-muted);cursor:pointer;background:0 0;border-radius:4px;align-self:start;padding:0}.rep-delete:hover{color:var(--nag-blunder);border-color:var(--nag-blunder)}.rep-rename:hover{color:var(--rail-text);border-color:var(--rail-text)}.rep-row-controls{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.rep-row-controls .my-color{padding:0 6px}.rep-row-controls .my-color button{width:24px;height:24px}.rep-row-controls .main-repertoire{min-height:26px}.rep-test-all{border:1px solid var(--border-strong);min-height:26px;color:var(--rail-text);background:var(--rail-panel);cursor:pointer;border-radius:5px;padding:0 8px;font-size:11px;font-weight:800}.rep-test-all:hover{border-color:var(--accent)}.rep-chapters{border-top:1px solid var(--border-strong);padding-top:5px}.rep-chapters>summary{color:var(--rail-muted);cursor:pointer;font-size:11px;font-weight:800}.rep-chapters-hint{color:var(--rail-muted);margin:4px 0;font-size:11px;line-height:1.35}.rep-chapters ul{gap:3px;max-height:260px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.rep-chapter{grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:6px;display:grid}.rep-chapter-check{cursor:pointer}.rep-chapter-name{min-width:0;color:var(--rail-text);text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 4px;font-size:11px;overflow:hidden}.rep-chapter-name:hover{background:var(--rail-panel);text-decoration:underline}.rep-chapter-count{color:var(--rail-muted);font-size:10px}.rep-chapter.excluded .rep-chapter-name{color:var(--rail-muted);text-decoration:line-through}.rep-chapter-test{border:1px solid var(--border-strong);color:var(--rail-text);background:var(--rail-panel);cursor:pointer;border-radius:4px;padding:2px 7px;font-size:10px;font-weight:800}.rep-chapter-test:disabled{opacity:.4;cursor:default}.test-clear-openings{margin-top:6px}.test-clear-openings button{border:1px solid var(--border-strong);width:100%;min-height:30px;color:var(--rail-muted);background:var(--rail-row);cursor:pointer;border-radius:5px;padding:0 10px;font-size:12px;font-weight:700}.test-clear-openings button:hover{color:var(--nag-blunder);border-color:var(--nag-blunder)}.workspace{grid-template-columns:minmax(360px, var(--board-size,600px)) minmax(360px, 560px);max-width:var(--page-max);justify-content:center;align-items:start;gap:10px;margin:0 auto;display:grid}.workspace.with-sidebar{grid-template-columns:minmax(230px, 310px) minmax(360px, var(--board-size,600px)) minmax(360px, 560px)}.workspace.with-test-side,.workspace.with-puzzle-side{grid-template-columns:minmax(300px, 380px) minmax(360px, var(--board-size,600px)) minmax(360px, 560px)}.puzzle-side-stats .puzzle-stats{grid-template-columns:repeat(auto-fit,minmax(96px,1fr))}.board-column{gap:8px;min-width:0;display:grid}.panel-heading span,.fen-bar span,.game-row small,.import-box label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:700}.board-panel{background:#0b0e13;position:relative}.board-shell{width:100%;width:min(100%, calc(100svh - 110px), var(--board-size,600px));aspect-ratio:1;place-items:center;display:grid;overflow:hidden}.branch-picker{z-index:6;pointer-events:none;flex-wrap:wrap;justify-content:center;gap:6px;max-width:94%;display:flex;position:absolute;top:8px;left:50%;transform:translate(-50%)}.branch-option{pointer-events:auto;color:#eef2f7;font:inherit;cursor:pointer;background:#0b0e13d6;border:1px solid #ffffff47;border-radius:999px;align-items:baseline;gap:4px;padding:4px 10px;font-size:14px;font-weight:600;display:inline-flex;box-shadow:0 2px 8px #00000059}.branch-option:hover{background:#1f2632f2;border-color:#f6c85fbf}.branch-option.mainline{border-color:#f6c85fd9}.branch-option .branch-num{color:#eef2f78c;font-size:12px;font-weight:500}.board-resize{clip-path:polygon(100% 0,100% 100%,0 100%);opacity:.45;cursor:nwse-resize;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:repeating-linear-gradient(135deg,#0000 0 4px,#e3e8f0 4px 6px);border:none;width:22px;height:22px;padding:0;position:absolute;bottom:0;right:0}@media (pointer:coarse){.board-resize{opacity:.7;width:44px;height:44px}}.board-resize:hover,.board-resize:active{opacity:.9}.board-resize:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.board-toolbar{align-items:center;gap:10px;display:flex}.flip-board{border:1px solid var(--border-strong);min-height:34px;color:var(--rail-text);background:var(--rail-row);cursor:pointer;border-radius:6px;padding:0 14px;font-weight:800}.flip-board:hover{border-color:var(--accent)}.orientation-label{color:var(--rail-muted);font-size:13px;font-weight:700}.fen-bar{color:var(--rail-text);background:var(--rail-panel);border-radius:6px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;padding:7px 9px;display:grid}.fen-bar-mobile{display:none}.fen-bar code{overflow-wrap:anywhere}.engine-panel{background:var(--rail-panel);border-radius:6px;grid-template-rows:auto auto auto minmax(0,1fr);gap:8px;height:272px;padding:10px;display:grid;overflow:hidden}.engine-panel.engine-off{grid-template-rows:auto;height:auto}.engine-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.engine-title{align-items:baseline;gap:8px;display:flex}.engine-title span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:700}.engine-title strong{color:var(--rail-text)}.engine-title .engine-fallback{color:var(--nag-inaccuracy);letter-spacing:.02em;text-transform:none;font-size:11px;font-weight:700}.onoff-switch{border:1px solid var(--border-strong);border-radius:5px;display:inline-flex;overflow:hidden}.onoff-switch button{min-height:30px;color:var(--rail-muted);background:var(--rail-row);cursor:pointer;border:0;padding:0 12px;font-weight:800}.onoff-switch button+button{border-left:1px solid var(--border-strong)}.onoff-switch button.active{color:var(--accent-text);background:var(--accent);cursor:default}.onoff-switch button:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}.eval-row{align-items:center;gap:10px;display:flex}.eval-score{min-width:56px;color:var(--rail-text);font-variant-numeric:tabular-nums;font-weight:800}.eval-bar{border:1px solid var(--border-strong);background:#0b0e13;border-radius:5px;flex:1;height:10px;overflow:hidden}.eval-fill{background:#e3e8f0;height:100%;transition:width .2s}.eval-depth{text-align:right;min-width:62px;color:var(--rail-muted);font-variant-numeric:tabular-nums;font-size:12px}.engine-pv{border:1px solid var(--border-strong);background:var(--field);max-height:76px;color:var(--rail-text);font-family:var(--mono);overflow-wrap:anywhere;border-radius:5px;padding:6px 8px;font-size:12.5px;line-height:1.5;overflow:auto}.engine-lines-control{align-items:center;gap:5px;display:flex}.engine-lines-label{color:var(--rail-muted);margin-right:2px;font-size:13px;font-weight:800}.lines-step{border:1px solid var(--border-strong);width:28px;height:26px;color:var(--rail-text);background:var(--rail-row);cursor:pointer;border-radius:5px;font-size:16px;font-weight:800;line-height:1}.lines-step:hover:not(:disabled){border-color:var(--accent)}.lines-step:disabled{opacity:.4;cursor:default}.lines-count{text-align:center;min-width:20px;color:var(--rail-text);font-variant-numeric:tabular-nums;font-weight:800}.engine-lines{counter-reset:pvline;align-content:start;gap:4px;min-height:0;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.engine-line{border:1px solid var(--border-strong);background:var(--field);border-radius:5px;grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:8px;padding:5px 8px;display:grid}.line-eval{min-width:48px;color:var(--rail-text);font-variant-numeric:tabular-nums;font-weight:800}.line-pv{color:var(--rail-muted);font-family:var(--mono);overflow-wrap:anywhere;font-size:12.5px;line-height:1.45}.engine-line:first-child .line-pv{color:var(--rail-text)}.engine-actions{align-items:center;gap:8px;display:flex}.engine-review{border:1px solid var(--border-strong);min-height:30px;color:var(--rail-text);background:var(--rail-row);cursor:pointer;font-variant-numeric:tabular-nums;border-radius:5px;padding:0 12px;font-weight:800}.engine-review:hover:not(:disabled){border-color:var(--accent)}.engine-review:disabled{opacity:.4;cursor:default}.review-panel{background:var(--rail-panel);border-radius:6px;gap:6px;padding:10px;display:grid;container:review/inline-size}.review-head{align-items:center;gap:10px;display:flex}.review-title{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:700}.review-summary{color:var(--rail-muted);font-variant-numeric:tabular-nums;flex:1;font-size:12.5px;font-weight:700}.review-clear{border:1px solid var(--border-strong);width:24px;height:24px;color:var(--rail-muted);background:var(--rail-row);cursor:pointer;border-radius:5px;padding:0;font-weight:800;line-height:1}.review-clear:hover{border-color:var(--accent);color:var(--rail-text)}.review-stats{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:12.5px}.review-stats th,.review-stats td{text-align:right;padding:3px 6px;font-weight:700}.review-stats thead th{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:10.5px;font-weight:700}.review-stats tbody th{text-align:left;font-weight:700}.review-stats td{width:4.5em;color:var(--rail-text)}.review-stats .review-worst-row th,.review-stats .review-worst-row td{border-top:1px solid var(--border-strong);color:var(--rail-muted);padding-top:6px;font-size:12px}.review-stats .review-worst-row td{white-space:nowrap}@container review (width<=440px){.review-stats .review-worst-row td{white-space:normal}}.review-worst-move{color:var(--rail-text);white-space:nowrap;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:0 4px;font-weight:700}.review-worst-move:hover{background:var(--rail-row)}.review-worst-drop{white-space:nowrap}.review-stats .review-accuracy-row th,.review-stats .review-accuracy-row td{border-top:1px solid var(--border-strong);color:var(--rail-text);padding-top:6px;font-size:13.5px;font-weight:800}.review-stats .review-accuracy-row th{color:var(--rail-muted);cursor:help}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.eval-graph{border:1px solid var(--border-strong);cursor:pointer;background:#12161d;border-radius:5px;width:100%;height:148px;display:block}.eval-area{fill:#e3e8f0d1}.eval-midline-halo{stroke:#090b0f8c;stroke-width:3px;vector-effect:non-scaling-stroke}.eval-midline{stroke:#f0f4f9e6;stroke-width:1px;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}.eval-graph-wrap{position:relative}.eval-equal-label,.eval-side-label{color:#f0f4f9eb;letter-spacing:.04em;pointer-events:none;background:#090b0f9e;border-radius:3px;padding:0 4px;font-size:10px;font-weight:800;line-height:1.5;position:absolute;left:6px}.eval-equal-label{cursor:help;pointer-events:auto;font-size:11px;top:50%;transform:translateY(-50%)}.eval-side-label{color:#f0f4f9b3;left:auto;right:6px}.eval-side-white{top:4px}.eval-side-black{bottom:4px}.eval-cursor{stroke:var(--accent);stroke-width:1.5px;vector-effect:non-scaling-stroke}.eval-tick{stroke:currentColor;stroke-width:3px;stroke-linecap:round;vector-effect:non-scaling-stroke}.move-nag{margin-left:2px;font-weight:800}.nag-inaccuracy{color:var(--nag-inaccuracy);font-weight:600}.nag-mistake{color:var(--nag-mistake);font-weight:700}.nag-blunder{color:var(--nag-blunder);font-weight:800}.move-nag.nag-blunder{background:color-mix(in srgb, var(--nag-blunder) 15%, transparent);border-radius:3px;padding:0 3px}.nag-theory{color:var(--nag-theory);font-weight:600}.nag-novelty{color:var(--nag-novelty);font-weight:600}.analysis-panel,.notation-box,.game-info-box{background:var(--panel);border-radius:6px;padding:10px}.analysis-panel{color:var(--rail-text);background:var(--rail);gap:8px;display:grid}.analysis-panel .notation-box,.analysis-panel .game-info-box{background:var(--rail-panel)}.panel-heading{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.game-row{border:1px solid var(--border-strong);width:100%;color:var(--text-h);background:var(--selected);font:inherit;text-align:left;border-radius:5px;gap:4px;padding:10px;display:grid}.game-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}.game-meta label{background:var(--rail-row);border-radius:5px;gap:4px;min-width:0;padding:8px;display:grid}.game-meta span{color:var(--rail-muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:800}.game-meta input,.game-meta select{width:100%;min-width:0;color:var(--rail-text);background:var(--field);font:inherit;border:1px solid #0000;border-radius:4px;padding:4px 6px}.info-toggle{border:1px solid var(--border-strong);background:var(--rail-row);border-radius:6px;flex-wrap:wrap;gap:2px;padding:2px;display:inline-flex}.info-toggle button{min-height:24px;color:var(--rail-muted);letter-spacing:.04em;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:0 8px;font-size:12px;font-weight:800}.info-toggle button.active{color:var(--accent-text);background:var(--accent)}.explorer{gap:8px;display:grid}.explorer-controls{flex-wrap:wrap;gap:6px;display:flex}.explorer-token{gap:8px;display:grid}.explorer-token a{color:var(--selection)}.explorer-token-row{gap:6px;display:flex}.explorer-token-row input{border:1px solid var(--border-strong);min-width:0;color:var(--rail-text);background:var(--field);font-family:var(--mono);border-radius:5px;flex:1;padding:6px 8px;font-size:12.5px}.explorer-token-row button{border:1px solid var(--border-strong);color:var(--rail-text);background:var(--rail-row);cursor:pointer;border-radius:5px;padding:0 12px;font-weight:800}.explorer-token-row button:hover:not(:disabled){border-color:var(--accent)}.explorer-token-row button:disabled{opacity:.4;cursor:default}.explorer-filter{border:1px solid var(--border-strong);background:var(--rail-row);border-radius:6px;justify-self:start;align-items:center;gap:2px;padding:2px;display:inline-flex}.explorer-filter-label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;padding:0 8px;font-size:11px;font-weight:700}.explorer-filter button{min-height:24px;color:var(--rail-muted);letter-spacing:.04em;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:0 10px;font-size:12px;font-weight:800}.explorer-filter button.active{color:var(--accent-text);background:var(--accent)}.explorer-summary,.explorer-empty{color:var(--rail-muted);margin:0;font-size:12.5px;line-height:1.45}.explorer-moves{gap:4px;margin:0;padding:0;list-style:none;display:grid}.explorer-move{border:1px solid var(--border-strong);background:var(--field);border-radius:5px;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:8px;padding:4px 8px;display:grid}.explorer-san{min-width:46px;color:var(--rail-text);background:var(--rail-row);font:inherit;font-variant-numeric:tabular-nums;text-align:left;cursor:pointer;border:1px solid #0000;border-radius:4px;padding:2px 6px;font-weight:800}.explorer-san:hover{border-color:var(--accent)}.explorer-count{text-align:right;min-width:20px;color:var(--rail-muted);font-variant-numeric:tabular-nums;font-size:12px}.explorer-bar{border:1px solid var(--border-strong);background:#0b0e13;border-radius:4px;height:16px;display:flex;overflow:hidden}.explorer-bar .wr{font-variant-numeric:tabular-nums;white-space:nowrap;justify-content:center;align-items:center;height:100%;font-size:10px;font-weight:800;display:flex;overflow:hidden}.explorer-bar .wr-white{color:#161b24;background:#e3e8f0}.explorer-bar .wr-draw{color:#f0f3f8;background:#6b7585}.explorer-bar .wr-black{color:#dbe2ee;background:#262d3a}.context-menu-overlay{z-index:60;position:fixed;inset:0}.context-menu{border:1px solid var(--border-strong);background:var(--rail-panel);border-radius:6px;min-width:180px;max-width:280px;max-height:calc(100vh - 16px);margin:0;padding:4px;list-style:none;position:fixed;overflow-y:auto;box-shadow:0 8px 24px #00000073}.context-menu li+li{margin-top:2px}.context-menu button{width:100%;color:var(--rail-text);font:inherit;text-align:left;cursor:pointer;overflow-wrap:anywhere;background:0 0;border:0;border-radius:4px;padding:6px 10px;font-size:13px;display:block}.context-menu button:hover{color:var(--accent-text);background:var(--accent)}.import-box{grid-template-columns:minmax(0,1fr);gap:8px;display:grid}.import-box label{margin-bottom:4px;display:block}.import-box input,.import-box textarea{border:1px solid var(--border-strong);width:100%;color:var(--rail-text);background:var(--field);font:inherit;border-radius:5px}.import-box input{padding:7px;font-size:13px}.import-box textarea{resize:vertical;height:96px;font-family:var(--mono);padding:8px;font-size:12px;line-height:1.35}.import-actions{gap:6px;display:flex}.import-actions button{flex:1}.import-actions button,.move-controls button{border:1px solid var(--border-strong);color:var(--rail-text);background:var(--rail-row);border-radius:5px;font-weight:800}.import-actions button{min-height:34px;padding:0 10px}.import-status{color:var(--muted);font-size:13px}.move-list{background:var(--rail-row);border-radius:5px;flex-wrap:wrap;align-items:center;gap:3px 4px;max-height:240px;margin:0;padding:4px;line-height:1.5;display:flex;overflow:auto}.move-list.empty{color:var(--rail-muted);font-size:13px}.move-token{color:var(--rail-text);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;align-items:baseline;gap:4px;padding:2px 6px;display:inline-flex}.move-token:hover{background:#ffffff0f}.move-token.active{color:var(--selection-text);background:var(--selection)}.move-num{color:var(--rail-muted);font-variant-numeric:tabular-nums}.move-token.active .move-num{color:#fffc}.move-comment{color:#8fd9b4;font-size:13px;font-style:italic}.move-comment.rich{vertical-align:top;border:1px solid var(--border-strong);max-width:100%;color:var(--rail-text);text-align:left;white-space:normal;background:#12161d;border-radius:5px;margin:2px 0;padding:4px 8px;font-size:12px;font-style:normal;line-height:1.4;display:inline-block}.move-comment.rich :is(h1,h2,h3){color:inherit}.move-comment.rich :is(h1,h2,h3,p,ul,ol,blockquote,pre){margin:0 0 3px}.move-comment.rich :is(h1,h2,h3,p,ul,ol,blockquote,pre):last-child{margin-bottom:0}.move-comment.rich h1{font-size:15px;font-family:var(--heading)}.move-comment.rich h2{font-size:14px;font-family:var(--heading)}.move-comment.rich h3{font-size:13px;font-weight:800}.move-comment.rich ul,.move-comment.rich ol{padding-left:18px}.move-comment.rich a{color:var(--selection)}.move-comment.rich img{border-radius:4px;max-width:100%;height:auto;max-height:72px;margin:2px 0;display:block}.variation{color:var(--rail-muted);display:inline}.variation .move-token{font-size:13px}.line-actions{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.line-actions button{border:1px solid var(--border-strong);min-height:32px;color:var(--rail-text);background:var(--rail-row);border-radius:5px;flex:auto;padding:0 10px;font-weight:800}.line-actions button:disabled{opacity:.4}.line-actions .repertoire-button:not(:disabled){background:var(--accent);color:var(--accent-text);border-color:#0000}button.danger-button:not(:disabled){color:var(--nag-blunder);border-color:color-mix(in srgb, var(--nag-blunder) 45%, transparent);background:0 0}button.danger-button:not(:disabled):hover{background:color-mix(in srgb, var(--nag-blunder) 14%, transparent)}.line-color{flex-wrap:wrap;align-items:center;gap:5px;margin-top:8px;display:flex}.line-color-label{color:var(--rail-muted);margin-right:2px;font-size:13px;font-weight:800}.line-color .swatch:disabled{opacity:.35;cursor:default}.line-color .swatch.clear{background:var(--rail-row);width:22px;height:22px;color:var(--rail-text);justify-content:center;align-items:center;font-size:14px;font-weight:800;line-height:1;display:inline-flex}.games-intro{color:var(--rail-muted);margin:0 0 12px;font-size:13px}.test-box{color:var(--rail-text);background:var(--rail-panel);border-radius:6px;gap:10px;padding:12px;display:grid}.test-side{max-height:calc(100svh - 72px);color:var(--rail-text);background:var(--rail-panel);border-radius:6px;align-content:start;gap:10px;padding:12px;display:grid;position:sticky;top:8px;overflow-y:auto}.test-scope{background:var(--rail-row);border-radius:6px;gap:4px;padding:3px;display:flex}.test-scope button{min-height:28px;color:var(--rail-text);background:0 0;border:1px solid #0000;border-radius:4px;flex:1 1 0;padding:0 8px;font-size:12px;font-weight:700}.test-scope button.scope-on{border-color:var(--accent);background:var(--accent);color:var(--accent-text)}.test-branch{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.test-branch span{color:var(--rail-muted);flex:100%;font-size:12px;font-weight:700}.test-branch button{border:1px solid var(--border-strong);min-height:30px;color:var(--rail-text);background:var(--rail-row);cursor:pointer;border-radius:5px;flex:auto;padding:0 10px;font-size:12px;font-weight:700}.test-branch button:hover{border-color:var(--accent)}.test-stat{background:var(--rail-row);border-radius:5px;justify-content:space-between;align-items:center;gap:12px;padding:8px 10px;display:flex}.test-stat span{color:var(--rail-muted);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:700}.test-line{background:var(--rail-row);border-radius:5px;gap:2px;padding:8px 10px;display:grid}.test-line span{color:var(--rail-muted);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:700}.test-line strong{overflow-wrap:anywhere;font-size:14px;line-height:1.3}.test-line em{color:var(--rail-text);overflow-wrap:anywhere;font-size:13px;font-style:normal;line-height:1.3}.test-line.test-wood{border-left:3px solid var(--accent)}.test-feedback{background:var(--rail-row);color:var(--rail-text);border-radius:5px;min-height:20px;margin:0;padding:10px 12px}.test-notice{border-left:3px solid var(--nag-inaccuracy);background:var(--rail-row);color:var(--rail-text);border-radius:5px;align-items:flex-start;gap:8px;margin:0;padding:10px 12px;font-size:13px;line-height:1.4;display:flex}.test-notice span{flex:1}.test-notice button{color:var(--rail-muted);font:inherit;cursor:pointer;background:0 0;border:0;padding:0 6px;font-weight:800}.test-notice button:hover{color:var(--rail-text)}.test-empty,.test-complete{color:var(--rail-muted);margin:0;font-size:13px}.test-actions{flex-wrap:wrap;gap:6px;display:flex}.test-actions button{border:1px solid var(--border-strong);min-height:34px;color:var(--rail-text);background:var(--rail-row);border-radius:5px;flex:auto;padding:0 12px;font-weight:800}.test-actions button:disabled{opacity:.4}.test-actions .test-next{border-color:var(--accent);background:var(--accent);color:var(--accent-text)}.puzzle-topline{justify-content:space-between;align-items:center;gap:10px;display:flex}.puzzle-chip{background:var(--rail-row);color:var(--rail-text);letter-spacing:.02em;border-radius:999px;padding:4px 10px;font-size:12.5px;font-weight:800}.puzzle-timer{font-variant-numeric:tabular-nums;color:var(--rail-text);letter-spacing:.02em;font-size:20px;font-weight:800}.puzzle-timer.low{color:#e0685f}.puzzle-timer.paused{color:var(--rail-muted)}.puzzle-pause-button{background:var(--rail-row);color:var(--rail-text);letter-spacing:.02em;cursor:pointer;border:none;border-radius:999px;padding:4px 10px;font-size:12.5px;font-weight:800}.puzzle-pause-button:hover{background:var(--accent);color:var(--accent-text)}.puzzle-pause-overlay{z-index:8;text-align:center;background:var(--rail-panel);color:var(--rail-text);place-content:center;justify-items:center;gap:10px;padding:24px;display:grid;position:absolute;inset:0}.puzzle-pause-icon{font-size:42px;line-height:1}.puzzle-pause-overlay p{max-width:32ch;margin:0}.puzzle-result{border-radius:999px;padding:4px 10px;font-size:12.5px;font-weight:800}.puzzle-result.solved{color:#6fd3a1;background:#43d69a29}.puzzle-result.failed{color:#e0685f;background:#e0685f2e}.puzzle-themes{flex-wrap:wrap;gap:5px;display:flex}.puzzle-theme{background:var(--rail-row);color:var(--rail-muted);border-radius:4px;padding:2px 8px;font-size:11.5px;font-weight:700}.puzzle-theme.targeted{color:var(--accent-text);background:var(--accent)}.puzzle-why{color:var(--rail-muted);font-size:12.5px;line-height:1.35}.puzzle-weakness{background:var(--rail-row);border-radius:5px;gap:6px;padding:10px;display:grid}.puzzle-weakness-head{color:var(--rail-muted);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;align-items:baseline;gap:8px;font-size:10.5px;font-weight:800;display:flex}.puzzle-weakness-head strong{color:var(--accent);font-size:10.5px}.puzzle-weakness-row{grid-template-columns:minmax(0,1fr) 60px auto;align-items:center;gap:8px;font-size:12px;display:grid}.puzzle-weakness-name{color:var(--rail-text);text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.puzzle-weakness-bar{background:var(--field);border-radius:3px;height:6px;overflow:hidden}.puzzle-weakness-bar span{background:var(--accent);border-radius:3px;height:100%;display:block}.puzzle-weakness-pct{color:var(--rail-muted);font-variant-numeric:tabular-nums;font-weight:700}.puzzle-weakness-pct em{opacity:.7;font-style:normal;font-weight:400}.puzzle-records{background:var(--rail-row);border-radius:5px;gap:0;padding:10px;display:grid}.puzzle-records-head{width:100%;color:var(--rail-muted);letter-spacing:.08em;text-align:left;text-transform:uppercase;cursor:pointer;background:0 0;border:0;border-radius:3px;align-items:baseline;gap:8px;margin:0 0 4px;padding:2px 0;font-family:inherit;font-size:10.5px;font-weight:800;line-height:1.3;display:flex}.puzzle-records-head:hover{color:var(--rail-text)}.puzzle-records-head:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.puzzle-records-head strong{color:var(--accent);margin-left:auto;font-size:10.5px}.puzzle-records-chevron{letter-spacing:0;font-size:11px}.puzzle-records.folded .puzzle-records-head{margin-bottom:0}.puzzle-records-head.fresh{animation:1.2s ease-in-out 4 record-flash}.puzzle-record{border-top:1px solid color-mix(in srgb, var(--rail-text) 10%, transparent);border-radius:3px;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label value""now when";column-gap:10px;padding:5px 0;font-size:12px;line-height:1.3;display:grid}.puzzle-record-label{color:var(--rail-text);grid-area:label;font-weight:700}.puzzle-record-value{color:var(--rail-text);font-variant-numeric:tabular-nums;text-align:right;grid-area:value}.puzzle-record-now{color:var(--rail-muted);grid-area:now;font-size:11px}.puzzle-record-when{color:var(--rail-muted);font-variant-numeric:tabular-nums;text-align:right;grid-area:when;font-size:11px}.puzzle-record.fresh{animation:1.2s ease-in-out 4 record-flash}@keyframes record-flash{0%,to{background:0 0}50%{background:color-mix(in srgb, var(--accent) 35%, transparent)}}.record-toast{z-index:60;border:1px solid var(--accent);background:var(--rail);max-width:calc(100vw - 32px);color:var(--rail-text);border-radius:8px;gap:2px;padding:12px 18px;font-size:14px;animation:.24s ease-out toast-in;display:grid;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000040}.record-toast strong{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:800}.mobile .record-toast{bottom:calc(84px + env(safe-area-inset-bottom,0px))}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.record-toast,.puzzle-record.fresh,.puzzle-records-head.fresh{animation:none}}.puzzle-weakness-hint{color:var(--muted);font-size:11.5px;line-height:1.35}.puzzle-link{border:1px solid var(--border-strong);min-height:34px;color:var(--rail-text);background:var(--rail-row);border-radius:5px;flex:auto;justify-content:center;align-items:center;padding:0 12px;font-weight:800;text-decoration:none;display:inline-flex}.study-reconnect{color:var(--rail-text);background:var(--accent);border-radius:5px;margin-top:6px;padding:6px 12px;font-size:12px;font-weight:700;text-decoration:none;display:inline-block}.puzzle-side-stats{background:var(--rail);max-height:calc(100svh - 72px);color:var(--rail-text);border-radius:6px;align-content:start;gap:8px;padding:10px;display:grid;position:sticky;top:8px;overflow-y:auto}.puzzle-side-stats .nav-hint{margin:0}.puzzle-stats{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:6px;display:grid}.puzzle-stat{background:var(--rail-row);text-align:center;border-radius:5px;gap:2px;padding:8px 10px;display:grid}.puzzle-stat span{color:var(--rail-muted);font-size:11px;font-weight:500}.puzzle-stat strong{color:var(--rail-text);font-variant-numeric:tabular-nums;font-size:21px}.playout-goal{background:var(--rail-row);border-left:4px solid var(--accent);border-radius:5px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.playout-goal.win{border-left-color:#e0a35f}.playout-goal span{color:var(--rail-muted);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:700}.playout-goal strong{color:var(--rail-text);font-size:15px}.playout-result{text-align:center;border-radius:5px;margin:0;padding:8px 12px;font-weight:800}.playout-result.pass{color:#6fd3a1;background:#43d69a29}.playout-result.fail{color:#e0685f;background:#e0685f2e}.playout-moves{background:var(--rail-row);color:var(--rail-muted);word-break:break-word;border-radius:5px;max-height:140px;padding:8px 10px;font-size:13px;line-height:1.5;overflow-y:auto}.board3d-wrap{width:100%;width:min(100%, calc(100svh - 110px), var(--board-size,600px));aspect-ratio:1;background:radial-gradient(120% 120% at 50% 20%,#232b38 0%,#0d1117 100%);position:relative;overflow:hidden}.board3d-canvas{cursor:grab;width:100%;height:100%}.board3d-canvas:active{cursor:grabbing}.board3d-lock{color:#e6ebf2;cursor:pointer;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0d1117bd;border:1px solid #ffffff38;border-radius:6px;padding:6px 11px;font-size:12.5px;font-weight:700;position:absolute;top:10px;right:10px}.board3d-lock.on{border-color:var(--selection);background:color-mix(in srgb, var(--selection) 30%, #0d1117cc)}.board3d-light{color:#e6ebf2;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0d1117bd;border:1px solid #ffffff38;border-radius:6px;align-items:center;gap:7px;padding:5px 10px;font-size:13px;display:flex;position:absolute;bottom:10px;right:10px}.board3d-light input[type=range]{width:92px;accent-color:var(--selection);cursor:pointer}.board3d-loading{width:min(100%, calc(100svh - 110px), var(--board-size,600px));aspect-ratio:1;color:var(--rail-muted);background:#111620;place-items:center;font-weight:700;display:grid}.test-autonext{background:var(--rail-row);color:var(--rail-text);cursor:pointer;border-radius:5px;align-items:center;gap:8px;padding:6px 10px;font-size:13px;font-weight:700;display:flex}.test-autonext input{accent-color:var(--accent)}.test-review-hint{color:var(--rail-muted);margin:0;font-size:12.5px;line-height:1.45}.test-notes{background:var(--rail-row);border-radius:5px;gap:6px;max-height:min(520px,100svh - 360px);padding:8px 10px;display:grid;overflow-y:auto}.test-side:not(:has(.eval-row)) .test-notes{max-height:min(760px,100svh - 190px)}.test-side .test-actions{z-index:1;background:var(--rail-panel);margin-bottom:-12px;padding-bottom:12px;position:sticky;bottom:-12px}.test-note{border-radius:4px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:8px;padding:5px 6px;transition:background .12s;display:grid}.test-note.active{background:color-mix(in srgb, var(--accent) 18%, transparent)}.test-note-move{min-height:0;color:var(--rail-text);white-space:nowrap;cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;font-weight:800}.test-note-move:hover,.test-note-move:focus-visible,.test-note.active .test-note-move{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.test-note-learn{border:1px solid var(--border-strong);color:var(--rail-muted);white-space:nowrap;cursor:pointer;background:0 0;border-radius:999px;flex:none;padding:2px 9px;font-size:12px}.test-note-learn:hover,.test-note-learn:focus-visible{color:var(--accent);border-color:var(--accent)}.move-comment.mine,.move-comment.book{max-width:100%;color:var(--rail-text);border-left:2px solid var(--accent);margin-top:2px;padding-left:8px;font-style:normal;display:inline-block}.move-comment.book{border-left-color:var(--nag-theory)}.move-comment.book .book-label{background:var(--nag-theory)}.mine-label,.book-label{background:var(--accent);color:var(--bg);letter-spacing:.06em;text-transform:uppercase;vertical-align:1px;border-radius:999px;margin-right:6px;padding:0 6px;font-size:10px;font-weight:800;display:inline-block}.test-note-body{gap:4px;min-width:0;display:grid}.test-note.bare{padding-top:2px;padding-bottom:2px}.test-note-add{border:1px dashed var(--border-strong);color:var(--rail-muted);cursor:pointer;opacity:0;background:0 0;border-radius:999px;justify-self:start;padding:0 7px;font-size:11px;line-height:18px;transition:opacity .12s}.test-note:hover .test-note-add,.test-note.active .test-note-add,.test-note-add:focus-visible{opacity:1}.test-note-add:hover,.test-note-add:focus-visible{color:var(--accent);border-color:var(--accent)}.test-note-editor{gap:6px;display:grid}.test-note-editor textarea{width:100%;font:inherit;border:1px solid var(--border-strong);background:var(--rail-panel);color:var(--rail-text);resize:vertical;border-radius:5px;padding:6px 8px;font-size:13px}.test-note-editor textarea:focus{border-color:var(--accent);outline:none}.test-note-editor-actions{gap:6px;display:flex}.test-note-editor-actions button{padding:3px 10px;font-size:12px}.move-controls{grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:8px;display:grid}.move-controls button{min-height:34px;color:var(--rail-text);background:var(--rail-row);font-size:15px}.move-controls button:disabled{opacity:.4}.nav-hint{color:var(--rail-muted);margin-top:8px;font-size:12px}.import-list-panel{border:1px solid var(--border-strong);background:var(--rail-row);border-radius:6px;margin-bottom:12px;padding:10px 12px}.import-list-panel summary{color:var(--rail-text);cursor:pointer;font-weight:800}.import-list-panel p{color:var(--rail-muted);margin:8px 0;font-size:13px}.import-list-panel input{color:var(--rail-text)}.notes-tab{gap:8px;display:grid}.saved-note{color:var(--rail-muted);background:var(--rail-row);border-radius:5px;margin:0;padding:8px 10px;font-size:13px}.game-meta input:focus-visible,.game-meta select:focus-visible,.game-row:focus-visible,.import-box input:focus-visible,.import-box textarea:focus-visible,.import-actions button:focus-visible,.move-row button:focus-visible,.move-controls button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.learn-view{grid-template-columns:minmax(300px, 360px) minmax(320px, var(--board-size,600px)) minmax(300px, 420px);width:min(100%, calc(var(--board-size,600px) + 820px));align-items:start;gap:16px;margin:0 auto;display:grid}.learn-board-column,.learn-panel,.learn-right,.learn-notes{min-width:0}.learn-right{flex-direction:column;gap:12px;max-height:calc(100vh - 120px);padding-bottom:120px;display:flex}.learn-right .engine-panel{border:1px solid var(--border-strong);flex:none}.engine-quiet{color:var(--rail-muted);font-family:inherit;font-size:13px}.learn-panel,.learn-notes{border:1px solid var(--border-strong);background:var(--rail);color:var(--rail-text);border-radius:6px;padding:16px}.learn-notes{flex:auto;min-height:0;overflow-y:auto}.learn-panel h2{color:var(--rail-text);margin:18px 0 8px;font-size:14px}.learn-phase{border:1px solid var(--border-strong);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:12px}.learn-phase-learn{color:#7cb8f0}.learn-phase-drill{color:var(--gold)}.learn-phase-mastered{color:#6fd3a1}.learn-field{gap:5px;margin-bottom:4px;font-size:13px;display:grid}.learn-field select{border:1px solid var(--border-strong);background:var(--rail-row);width:100%;max-width:100%;color:var(--rail-text);border-radius:4px;padding:7px 8px;font-size:13px}.learn-line-moves{color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:baseline;gap:8px;min-height:40px;padding:10px 2px;font-size:14px;display:flex}.learn-line-played{color:var(--text)}.learn-line-next{border:1px solid var(--gold);color:var(--gold);border-radius:4px;padding:1px 7px;font-weight:600}.learn-line-hidden{letter-spacing:2px;opacity:.6}.learn-line-explored{color:var(--rail-muted);font-style:italic}.learn-takeback{border:1px solid var(--border-strong);color:var(--rail-text);background:var(--rail-row);font:inherit;cursor:pointer;border-radius:5px;margin-left:auto;padding:3px 9px;font-size:12px;font-weight:700}.learn-takeback:hover:not(:disabled){border-color:var(--accent)}.learn-takeback:disabled{opacity:.45;cursor:default}.learn-chapters{gap:4px;max-height:190px;display:grid;overflow:hidden auto}.learn-chapter{border:1px solid var(--border-strong);background:var(--rail-row);width:100%;min-width:0;color:var(--rail-text);text-align:left;cursor:pointer;border-radius:4px;justify-content:space-between;align-items:center;gap:8px;padding:7px 10px;font-size:13px;display:flex}.learn-chapter:hover{border-color:var(--rail-text)}.learn-chapter.active{border-color:var(--gold);color:var(--gold)}.learn-chapter.complete .learn-chapter-count{color:#6fd3a1}.learn-chapter.alternate .learn-chapter-name{opacity:.6}.learn-chapter.alternate .learn-chapter-count{color:var(--rail-muted)}.learn-chapter-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.learn-alt-flag{color:#c58fd0;margin-right:5px}.learn-chapter-count{color:var(--rail-muted);font-variant-numeric:tabular-nums;flex:none}.learn-progress{gap:5px;margin-top:12px;display:grid}.learn-progress-bar{background:var(--rail-row);border-radius:999px;height:6px;overflow:hidden}.learn-progress-bar span{background:#6fd3a1;height:100%;transition:width .24s;display:block}.learn-progress-text{color:var(--rail-muted);font-size:12px}.learn-slip{color:#df7777}.learn-prompt{border:1px solid var(--gold);border-radius:4px;align-items:baseline;gap:10px;padding:10px 12px;display:flex}.learn-prompt-label{color:var(--rail-muted);text-transform:uppercase;letter-spacing:.05em;font-size:12px}.learn-prompt strong{color:var(--gold);font-size:22px}.learn-mastered{border:1px solid #6fd3a1;border-radius:4px;gap:6px;padding:12px;display:grid}.learn-mastered strong{color:#6fd3a1}.learn-mastered span{color:var(--rail-muted);font-size:12px}.learn-mastered.alternate{border-color:#c58fd0}.learn-mastered.alternate strong{color:#c58fd0}.learn-next{color:#6fd3a1;cursor:pointer;background:0 0;border:1px solid #6fd3a1;border-radius:4px;margin-top:4px;padding:9px;font-size:13px;font-weight:600}.learn-next:hover{background:#43d69a1f}.learn-alldone{color:var(--rail-muted);margin-top:4px;font-size:12px;line-height:1.5}.learn-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:12px;display:grid}.learn-controls button{border:1px solid var(--border-strong);background:var(--rail-row);color:var(--rail-text);cursor:pointer;border-radius:4px;padding:8px 4px;font-size:13px}.learn-controls button:disabled{opacity:.45;cursor:not-allowed}.learn-alt-button{grid-column:1/-1}.learn-alt-button.on{color:#c58fd0;border-color:#c58fd0}.learn-remove-button{grid-column:1/-1}.learn-remove-notice{color:var(--rail-text)}.learn-alt-note{color:#c58fd0;margin:8px 0 0;font-size:12px;line-height:1.45}.learn-shared{color:var(--rail-muted);margin:0 0 6px;font-size:11px;line-height:1.4}.learn-shared span{color:var(--rail-text)}.learn-lines{gap:2px;max-height:300px;margin:0;padding:0;list-style:none;display:grid;overflow:hidden auto}.learn-line{width:100%;color:var(--rail-text);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;grid-template-columns:18px minmax(0,1fr);gap:8px;padding:6px 8px;font-size:12px;display:grid}.learn-line:hover{background:var(--rail-row)}.learn-line.active{border-color:var(--gold);color:var(--gold)}.learn-line.learned .learn-line-mark{color:#6fd3a1}.learn-line.alternate .learn-line-text{opacity:.55}.learn-line.alternate .learn-line-mark{color:#c58fd0}.learn-line-mark{color:var(--rail-muted)}.learn-line-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.learn-line-elide{color:var(--rail-muted);margin-right:3px}.learn-empty{color:var(--rail-muted);font-size:13px}.learn-reveal{border:1px solid var(--border-strong);color:var(--rail-muted);cursor:pointer;background:0 0;border-radius:999px;padding:2px 9px;font-size:12px}.learn-reveal:hover{color:var(--rail-text);border-color:var(--rail-text)}.learn-notes-chapter{color:var(--rail-muted);margin-top:4px;font-size:12px}.learn-notes-pgn{border:1px solid var(--border-strong);background:var(--rail-row);color:var(--rail-text);font-variant-numeric:tabular-nums;word-break:break-word;border-radius:4px;margin:8px 0 14px;padding:9px 10px;font-size:13px;line-height:1.6}.learn-notes-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.learn-note{border-left:2px solid var(--border-strong);background:var(--rail-row);border-radius:0 4px 4px 0;gap:3px;padding:8px 10px;font-size:13px;line-height:1.55;display:grid}.learn-note.bare{opacity:.65;background:0 0;padding:3px 10px}.learn-note.current{border-left-color:var(--gold);background:#f5c86a14}.learn-note.hidden{opacity:.4}.learn-note-move{color:var(--rail-text);font-variant-numeric:tabular-nums;font-weight:600}.learn-note.current .learn-note-move{color:var(--gold)}.learn-note-mask{color:var(--rail-muted);letter-spacing:1px;font-weight:400}.learn-note .move-comment{color:var(--rail-muted);word-break:break-word}.learn-note .move-comment :is(p,ul,ol){margin:0 0 6px}.learn-note .move-comment :is(p,ul,ol):last-child{margin-bottom:0}.learn-note .move-comment img{max-width:100%;height:auto}.learn-shell{gap:12px;display:grid}.learn-sections{width:min(100%, calc(var(--board-size,600px) + 820px));gap:6px;margin:0 auto;display:flex}.learn-sections button{border:1px solid var(--border-strong);min-height:32px;color:var(--rail-text);background:var(--rail-row);font:inherit;cursor:pointer;border-radius:6px;padding:0 14px;font-weight:800}.learn-sections button:hover{border-color:var(--rail-text)}.learn-sections button.active{color:var(--selection-text);background:var(--selection);border-color:var(--selection);cursor:default}.learn-sections button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.strategy-course-actions{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.learn-import,.strategy-delete{border:1px solid var(--border-strong);min-height:30px;color:var(--rail-text);background:var(--rail-row);font:inherit;cursor:pointer;border-radius:5px;align-items:center;padding:0 12px;font-size:13px;font-weight:800;display:inline-flex}.learn-import{border-color:var(--accent);color:var(--accent);background:0 0}.learn-import:hover{background:#43d69a1f}.strategy-status{margin-top:8px}.strategy-read-button.on{color:#6fd3a1;border-color:#6fd3a1}.strategy-h2-count{color:var(--rail-muted);margin-left:8px;font-size:12px;font-weight:600}.strategy-items{max-height:380px}.strategy-item.exercise .learn-line-mark{color:var(--gold)}.strategy-item-no{color:var(--rail-muted);font-variant-numeric:tabular-nums}.strategy-ex-flag{color:var(--gold);margin-right:5px}.strategy-ex-chip{border:1px solid var(--gold);color:var(--gold);letter-spacing:.06em;text-transform:uppercase;border-radius:4px;margin-left:8px;padding:1px 6px;font-size:11px;font-weight:700}.strategy-nav{align-items:center;gap:6px;margin-top:8px;display:flex}.strategy-nav-where{color:var(--rail-muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:12px}.strategy-intro{border:1px solid var(--border-strong);color:var(--rail-text);cursor:pointer;border-left:3px solid #0000;border-radius:5px;margin:0 0 8px;padding:8px 10px;font-size:13.5px;line-height:1.5}.strategy-intro.current{border-left-color:var(--gold)}.strategy-hidden-note,.strategy-solved{margin-top:8px}.learn-note-jump{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.learn-note-jump:hover .learn-note-move{text-decoration:underline}.learn-note-jump:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:3px}@media (width<=1500px){.learn-view{grid-template-columns:minmax(280px, 340px) minmax(320px, var(--board-size,600px));width:min(100%, calc(var(--board-size,600px) + 372px))}.learn-right{grid-column:1/-1;max-height:none;padding-bottom:16px}.learn-notes{flex:none;max-height:60vh}}@media (width<=1180px){.games-sidebar{order:10;grid-column:1/-1;max-height:none;position:static}}.nav-games-toggle,.sheet-backdrop{display:none}@media (width<=980px){.nav-games-toggle{display:inline-block}.games-sidebar{display:none}.games-sidebar.sheet-open{z-index:70;border-radius:12px 12px 0 0;max-height:82svh;display:grid;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;box-shadow:0 -12px 40px #00000080}.sheet-backdrop{z-index:65;background:#00000073;display:block;position:fixed;inset:0}}@media (width>=981px) and (width<=1180px){.workspace.with-sidebar{grid-template-columns:minmax(360px, var(--board-size,600px)) minmax(360px, 1fr)}.workspace.with-test-side,.workspace.with-puzzle-side{grid-template-columns:minmax(280px,340px) minmax(360px,1fr)}}@media (width<=980px){.workspace,.workspace.with-sidebar,.workspace.with-test-side,.workspace.with-puzzle-side,.learn-view{grid-template-columns:minmax(0,1fr)}.test-side,.puzzle-side-stats{order:5;max-height:none;position:static;overflow-y:visible}.test-side .test-actions{margin-bottom:0;padding-bottom:0;position:static}.board-shell,.learn-board-column{width:min(100%,600px)}.board-column .fen-bar,.analysis-panel>.fen-bar{display:none}.fen-bar-mobile{order:20;display:grid}}@media (width<=680px){.app-shell{padding:0}.workspace,.board-column{gap:0}.top-nav{scrollbar-width:none;border-radius:0;flex-wrap:nowrap;overflow-x:auto}.top-nav::-webkit-scrollbar{display:none}.top-nav>strong,.top-nav button{flex:none}.board-panel{padding-inline:10px}.engine-panel{height:auto}.engine-lines{max-height:200px}.fen-bar,.analysis-panel{border-radius:0}.import-box{grid-template-columns:minmax(0,1fr)}.board-shell{width:100%}.learn-panel{border-radius:0}}.calendar-nav{align-items:center;gap:10px;display:flex}.calendar-month{text-align:center;min-width:150px;font-size:17px}.calendar-nav button{background:var(--rail-row);color:var(--rail-text);cursor:pointer;border:none;border-radius:6px;padding:6px 12px;font-weight:700}.calendar-nav button:hover{background:var(--accent);color:var(--accent-text)}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.calendar-weekday{color:var(--rail-muted);text-transform:uppercase;letter-spacing:.05em;padding:4px 8px;font-size:12.5px;font-weight:700}.calendar-cell{background:var(--rail-panel);min-height:96px;color:var(--rail-text);border-radius:8px;align-content:start;gap:3px;padding:8px;display:grid}.calendar-cell.blank{background:0 0}.calendar-cell.today{outline:2px solid var(--accent);outline-offset:-2px}.calendar-daynum{color:var(--rail-muted);justify-content:space-between;align-items:center;font-size:13.5px;font-weight:800;display:flex}.calendar-cell.today .calendar-daynum{color:var(--accent)}.calendar-alldone{color:var(--accent);font-size:13px}.calendar-stat{font-variant-numeric:tabular-nums;white-space:nowrap;align-items:baseline;gap:5px;font-size:13px;font-weight:700;display:flex}.calendar-substat{color:var(--rail-muted);font-size:11px;font-weight:600}.calendar-stat.delta.up{color:#6fd3a1}.calendar-stat.delta.down{color:#e0685f}.calendar-stat.delta{font-size:12px}@media (width<=760px){.calendar-cell{min-height:74px;padding:5px}.calendar-stat{font-size:11.5px}.calendar-substat{display:none}}.daily-checklist{z-index:60;width:232px;color:var(--rail-text);background:var(--rail-panel);border:1px solid var(--border-strong,#ffffff1a);border-radius:10px;gap:8px;padding:12px;font-size:14px;display:grid;position:fixed;bottom:16px;right:16px;box-shadow:0 8px 30px #00000059}.checklist-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.checklist-title{font-weight:700}.checklist-head-right{align-items:center;gap:8px;display:flex}.checklist-points{font-variant-numeric:tabular-nums;color:var(--accent);font-weight:700}.checklist-streak{font-variant-numeric:tabular-nums;font-weight:600}.checklist-collapse{color:var(--rail-muted);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:18px;line-height:1}.checklist-collapse:hover{color:var(--rail-text)}.checklist-items{gap:4px;margin:0;padding:0;list-style:none;display:grid}.checklist-item{background:var(--rail-row);border-radius:6px;align-items:center;gap:6px;padding:2px 6px;font-size:13px;line-height:18px;display:flex}.checklist-item.done{opacity:.72}.checklist-mark{text-align:center;width:14px;color:var(--rail-muted);font-weight:700}.checklist-item.done .checklist-mark{color:var(--accent)}.checklist-label{white-space:nowrap;text-overflow:ellipsis;text-align:left;min-width:0;color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;flex:1;padding:0;overflow:hidden}.checklist-label:hover{text-decoration:underline}.checklist-item.done .checklist-label{color:var(--rail-muted)}.checklist-progress{font-variant-numeric:tabular-nums;color:var(--rail-muted);font-size:12px}.checklist-complete{text-align:center;color:var(--accent);margin:2px 0 0;font-weight:600}.daily-checklist.goals{gap:6px;padding:7px 12px}.daily-checklist.goals .checklist-items{gap:2px}.daily-checklist.goals .checklist-item{font-size:12px;line-height:16px}.checklist-tick{font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-weight:700}.checklist-tick:hover{color:var(--accent)}.checklist-label.plain{cursor:default}.checklist-label.plain:hover{text-decoration:none}.checklist-pill{z-index:60;border:1px solid var(--border-strong,#ffffff1a);background:var(--rail-panel);color:var(--rail-text);cursor:pointer;font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:6px;padding:8px 12px;font-weight:700;display:flex;position:fixed;bottom:16px;right:16px;box-shadow:0 6px 20px #0000004d}.checklist-pill:hover{border-color:var(--accent)}.checklist-pill-count{color:var(--accent)}.checklist-pill-streak{font-weight:600}@media (width<=980px){.daily-checklist,.checklist-pill{width:auto;box-shadow:none;margin:8px;position:static}}.puzzle-side-stats .puzzle-import{border:1px solid var(--border);width:100%;color:var(--muted);cursor:pointer;background:0 0;border-radius:6px;margin-top:8px;padding:5px 8px;font-size:.8rem}.puzzle-side-stats .puzzle-import:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.puzzle-side-stats .puzzle-import:disabled{opacity:.6;cursor:default}.puzzle-side-stats .puzzle-import-notice{color:var(--muted);margin:6px 0 0;font-size:.78rem}.puzzle-source{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.puzzle-source label{color:var(--muted);align-items:center;gap:6px;font-size:.85rem;display:flex}.puzzle-source select{max-width:240px}.puzzle-set-upload{cursor:pointer;border:1px solid var(--border);white-space:nowrap;border-radius:6px;padding:4px 10px}.puzzle-set-upload:hover{border-color:var(--accent);color:var(--accent)}.puzzle-set-actions{gap:6px;display:inline-flex}.puzzle-set-actions button{padding:3px 8px;font-size:.8rem}.puzzle-mix{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:4px;margin-bottom:10px;padding:8px 10px;display:flex}.puzzle-mix-hint{color:var(--muted);margin:0 0 4px;font-size:.78rem;line-height:1.35}.puzzle-mix-row{cursor:pointer;align-items:center;gap:8px;font-size:.85rem;display:flex}.puzzle-mix-row input{cursor:pointer}.puzzle-mix-random{cursor:pointer;border-top:1px solid var(--border);align-items:center;gap:8px;margin-top:4px;padding-top:6px;font-size:.85rem;display:flex}.puzzle-mix-random input[type=range]{cursor:pointer;flex:1;min-width:90px}.puzzle-mix-random .puzzle-mix-name{flex:none}.puzzle-mix-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.puzzle-mix-count{color:var(--muted);white-space:nowrap;font-size:.78rem}.puzzle-mix-footer{border-top:1px solid var(--border);color:var(--muted);justify-content:space-between;align-items:center;gap:8px;margin-top:6px;padding-top:6px;font-size:.78rem;display:flex}.puzzle-mix-footer button{padding:3px 8px;font-size:.78rem}.puzzle-chip.reveal{border-color:var(--accent);color:var(--accent)}.focus-panel{border:1px solid var(--accent);border-radius:8px;flex-direction:column;gap:8px;margin-bottom:10px;padding:10px;display:flex}.focus-progress{color:var(--muted);flex-wrap:wrap;gap:6px;margin:0;padding:0;font-size:.75rem;list-style:none;display:flex}.focus-progress li{border:1px solid var(--border);border-radius:999px;padding:2px 6px}.focus-progress li.current{border-color:var(--accent);color:var(--accent);font-weight:600}.focus-ask{margin:0;font-size:.85rem;line-height:1.4}.focus-remind{border-left:3px solid var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent);border-radius:0 6px 6px 0;margin:0;padding:6px 10px;font-size:.82rem;font-style:italic;line-height:1.4}.focus-hint{color:var(--muted);opacity:.85;margin:-2px 0 0;font-size:.72rem}.focus-moment{gap:6px;display:flex}.focus-moment button{flex:1;padding:5px 8px;font-size:.82rem}.focus-moment button.active{border-color:var(--accent);color:var(--accent);font-weight:600}.focus-empty{color:var(--muted);margin:0;font-size:.8rem}.focus-quiet button{padding:4px 10px;font-size:.78rem}.focus-quiet button.active{border-color:var(--accent);color:var(--accent);font-weight:600}.focus-verdict{flex-wrap:wrap}.focus-verdict button{flex:0 auto;font-weight:600}.focus-verdict button.focus-verdict-none{flex-basis:100%;font-weight:500}.focus-list{flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.focus-list li{background:var(--panel-alt,#ffffff0a);border-radius:5px;align-items:center;gap:6px;padding:3px 6px;font-size:.82rem;display:flex}.focus-list li span{word-break:break-word;flex:1}.focus-list li button{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:1rem;line-height:1}.focus-list li button:hover{color:var(--nag-blunder)}.focus-actions{justify-content:space-between;align-items:center;gap:8px;display:flex}.focus-requirement{color:var(--muted);font-size:.78rem}.focus-recap{border-left:2px solid var(--accent);flex-direction:column;gap:4px;margin-bottom:10px;padding:2px 0 2px 10px;display:flex}.focus-recap p{color:var(--muted);margin:0;font-size:.8rem;line-height:1.4}.focus-recap strong{color:inherit}.focus-blame{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:6px;margin-bottom:10px;padding:8px 10px;display:flex}.focus-blame-buttons{flex-wrap:wrap;gap:6px;display:flex}.focus-blame-buttons button{flex:auto;padding:4px 8px;font-size:.8rem}.focus-blame-buttons button.active{border-color:var(--accent);color:var(--accent);font-weight:600}.focus-breakdown{flex-direction:column;gap:4px;margin-bottom:10px;display:flex}.focus-breakdown-head{color:var(--muted);justify-content:space-between;gap:8px;margin:0 0 2px;font-size:.78rem;display:flex}.focus-breakdown-row{align-items:center;gap:8px;font-size:.8rem;display:flex}.focus-breakdown-label{flex:0 0 76px}.focus-breakdown-bar{background:var(--panel-alt,#ffffff14);border-radius:3px;flex:1;height:6px;overflow:hidden}.focus-breakdown-bar i{background:var(--accent);height:100%;display:block}.focus-breakdown-pct{text-align:right;color:var(--muted);flex:0 0 62px}.focus-breakdown-pct em{opacity:.7;font-style:normal}.login-shell{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:14px;width:100%;max-width:420px;padding:32px 36px;display:flex}.login-card h1{color:var(--text-h);margin:0;font-size:1.6rem}.login-card p{color:var(--text);margin:0}.login-error{color:#c0392b;font-weight:600}.login-invite{color:var(--text-h);flex-direction:column;gap:6px;font-weight:600;display:flex}.login-invite span{color:var(--text);font-weight:400}.login-invite input{border:1px solid var(--border-strong);font:inherit;letter-spacing:.1em;text-transform:uppercase;border-radius:8px;padding:8px 10px}.login-button{background:var(--accent);color:var(--accent-text);cursor:pointer;border:none;border-radius:8px;padding:10px 16px;font-size:1rem;font-weight:700}.login-button:disabled{opacity:.6;cursor:default}.login-note{font-size:.85rem}.login-licenses{border-top:1px solid var(--border);padding-top:10px;font-size:.75rem}.login-licenses a{color:var(--accent)}.wood-view{grid-template-columns:minmax(300px, 360px) minmax(320px, var(--board-size,600px)) minmax(300px, 420px);width:min(100%, calc(var(--board-size,600px) + 820px));justify-content:center;align-items:start;gap:16px;margin:0 auto;display:grid}.wood-panel,.wood-board-column{min-width:0}.wood-board{width:min(100%, calc(100svh - 110px), var(--board-size,600px));min-width:0;position:relative}.wood-panel{border:1px solid var(--border-strong);background:var(--rail);color:var(--rail-text);border-radius:6px;padding:16px}.wood-panel h1{color:var(--rail-text);margin-bottom:6px;font-size:24px}.wood-hint{color:var(--rail-muted);margin-bottom:12px;font-size:13px}.wood-set-pick{gap:5px;margin-bottom:14px;font-size:13px;display:grid}.wood-set-pick select{border:1px solid var(--border-strong);background:var(--rail-row);width:100%;color:var(--rail-text);border-radius:4px;padding:7px 8px;font-size:13px}.wood-stats{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px;display:grid}.wood-stat{border:1px solid var(--border-strong);background:var(--rail-panel);text-align:center;border-radius:6px;gap:2px;padding:8px 6px;display:grid}.wood-stat strong{color:var(--rail-text);font-variant-numeric:tabular-nums;font-size:18px}.wood-stat span{color:var(--rail-muted);font-size:11px}.wood-repeats{background:var(--rail-row);color:var(--rail-text);border-radius:6px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 10px;margin:-4px 0 14px;padding:8px 10px;font-size:13px;display:flex}.wood-repeats-go{border:1px solid var(--accent);color:var(--accent);white-space:nowrap;cursor:pointer;background:0 0;border-radius:999px;flex:none;padding:4px 10px;font-size:12px;font-weight:600}.wood-repeats-go:hover,.wood-repeats-go:focus-visible{background:var(--accent);color:var(--accent-text)}.wood-bar{background:var(--rail-panel);border:1px solid var(--border-strong);box-sizing:content-box;border-radius:6px;gap:2px;height:26px;padding:4px;display:flex}.wood-seg{flex-basis:0;min-width:3px}.wood-seg:first-child{border-radius:4px 0 0 4px}.wood-seg:last-child{border-radius:0 4px 4px 0}.wood-seg:only-child{border-radius:4px}.wood-seg-l0{background:var(--wood-l0)}.wood-seg-l1{background:var(--wood-l1)}.wood-seg-l2{background:var(--wood-l2)}.wood-seg-l3{background:var(--wood-l3)}.wood-seg-l4{background:var(--wood-l4)}.wood-seg-l5{background:var(--wood-l5)}.wood-seg-l6{background:var(--wood-l6)}.wood-seg-l7{background:var(--wood-l7)}.wood-seg-l8{background:var(--wood-l8)}.wood-legend{gap:3px;margin:10px 0 0;padding:0;list-style:none;display:grid}.wood-legend li{color:var(--rail-text);align-items:center;gap:8px;font-size:12px;display:flex}.wood-swatch{border-radius:3px;flex:none;width:12px;height:12px}.wood-legend-label{flex:1}.wood-legend-count{color:var(--rail-muted);font-variant-numeric:tabular-nums}.wood-session{color:var(--rail-muted);margin-top:12px;font-size:13px}.wood-under{gap:8px;padding:10px 2px;display:grid}.wood-status-row{justify-content:space-between;align-items:baseline;gap:12px;min-height:24px;display:flex}.wood-clock{font-variant-numeric:tabular-nums;color:var(--rail-text);letter-spacing:.02em;margin-left:auto;font-size:20px;font-weight:800}.wood-clock.low{color:#e0685f}.wood-position{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.wood-feedback{color:var(--text);min-height:21px;font-size:14px}.wood-actions{gap:8px;display:flex}.wood-actions button{border:1px solid var(--border-strong);background:var(--rail-row);color:var(--rail-text);cursor:pointer;border-radius:5px;padding:8px 14px;font-size:14px}.wood-actions button.wood-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}.wood-empty{grid-template-columns:minmax(320px,560px)}@media (width<=900px){.wood-view{grid-template-columns:minmax(0,1fr)}}.wood-review h2{color:var(--rail-text);margin:0 0 8px;font-size:16px}.wood-solution,.wood-source{color:var(--rail-text);font-variant-numeric:tabular-nums;margin-bottom:8px;font-size:14px}.wood-solution-label,.wood-source-label{border:1px solid var(--gold);color:var(--gold);border-radius:4px;margin-right:6px;padding:1px 7px;font-size:12px;font-weight:600;display:inline-block}.wood-review-moves{border:1px solid var(--border-strong);background:var(--rail-panel);font-variant-numeric:tabular-nums;border-radius:6px;flex-wrap:wrap;align-items:baseline;gap:2px 4px;padding:8px;display:flex}.wood-move{color:var(--rail-text);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;padding:1px 5px;font-size:13px}.wood-move:hover{border-color:var(--border-strong)}.wood-move.active{background:var(--selection);color:var(--selection-text)}.wood-move.noted{text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.wood-review-var,.wood-review-var .wood-move{color:var(--rail-muted);font-size:12px}.wood-review-var .wood-move.active{color:var(--selection-text)}.wood-review-text{min-width:0;color:var(--rail-text);margin:0 2px;font-size:13px;line-height:1.4}.wood-review-var .wood-review-text{color:var(--rail-muted);font-size:12px}.wood-review-intro{color:var(--rail-text);margin:0 0 8px;font-size:13px;line-height:1.4}.wood-review-hint{color:var(--rail-muted);margin:6px 0 10px;font-size:12px}.wood-note{gap:5px;margin-bottom:12px;font-size:13px;display:grid}.wood-note textarea{resize:vertical;border:1px solid var(--border-strong);background:var(--rail-row);width:100%;color:var(--rail-text);font:inherit;border-radius:4px;padding:7px 8px;font-size:13px}.wood-rail-engine .engine-panel{grid-template-rows:auto auto minmax(0,1fr);height:240px;margin-top:12px}.wood-rail-engine .engine-panel.engine-off{grid-template-rows:auto auto;height:auto}.wood-engine-wait{color:var(--rail-muted);margin:0;font-size:12px}.wood-legend-toggle{color:var(--rail-muted);background:var(--rail-row);border:1px solid var(--border-strong);cursor:pointer;border-radius:5px;margin-top:8px;padding:3px 8px;font-size:12px}.wood-legend-toggle:hover{color:var(--rail-text)}.wood-review-actions{gap:8px;display:flex}.wood-review-actions button{border:1px solid var(--border-strong);background:var(--rail-row);color:var(--rail-text);cursor:pointer;border-radius:5px;padding:8px 14px;font-size:14px}.wood-review-actions button:disabled{opacity:.7;cursor:default}.wood-review-actions button.wood-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}.wood-toggle{background:var(--rail-row);color:var(--rail-text);cursor:pointer;border-radius:5px;align-items:center;gap:8px;margin-top:12px;padding:6px 10px;font-size:13px;display:flex}.wood-toggle input{accent-color:var(--accent)}.wood-panel .focus-breakdown{margin:12px 0 0}.wood-focus h2{color:var(--rail-text);margin:0 0 8px;font-size:16px}.wood-focus .focus-panel{border:none;margin:0;padding:0}.wood-focus .focus-input,.wood-review .focus-input{background:var(--rail-row);border-color:var(--border-strong);color:var(--rail-text)}.wood-focus .focus-list li{background:var(--rail-panel)}.wood-review .focus-recap{margin:0 0 12px}.wood-review .focus-blame{border-color:var(--border-strong);margin:0 0 12px}@media (width>=901px) and (width<=1150px){.wood-view{grid-template-columns:minmax(300px,360px) minmax(320px,1fr)}.wood-review{grid-column:1/-1}}.board-shell{position:relative}.board-promo-host{width:min(100%, calc(100svh - 110px), var(--board-size,600px));position:relative}.promo-picker{z-index:6;background:#080a0e73;place-items:center;display:grid;position:absolute;inset:0}.promo-choices{border:1px solid var(--border-strong);background:var(--rail-panel);border-radius:8px;gap:8px;padding:10px;display:flex;box-shadow:0 10px 34px #00000073}.promo-choices button{border:1px solid var(--border-strong);color:#f3f6fa;cursor:pointer;background:#2c3441;border-radius:6px;width:64px;height:64px;font-size:46px;line-height:1}.promo-choices.black button{color:#111620;background:#e6ebf2}.promo-choices button:hover,.promo-choices button:focus-visible{outline:2px solid var(--accent)}.test-memory{gap:6px;display:grid}.test-memory-head{color:var(--rail-muted);justify-content:space-between;align-items:baseline;gap:8px;font-size:12px;display:flex}.test-memory-head strong{color:var(--rail-text);font-variant-numeric:tabular-nums;text-align:right}.test-memory .wood-legend{margin-top:4px}.wood-override{border:1px dashed var(--border-strong);color:var(--rail-muted);border-radius:6px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;font-size:13px;display:flex}.wood-override button{border:1px solid var(--border-strong);background:var(--rail-row);color:var(--rail-text);font:inherit;cursor:pointer;white-space:nowrap;border-radius:5px;flex:none;padding:6px 10px;font-size:13px}.wood-override button:hover{border-color:var(--accent)}.gif-button{margin-left:2px}.gif-button:disabled{opacity:.5;cursor:default}.gif-modal{border:1px solid var(--border-strong);width:min(1040px,100%);max-height:min(92vh,900px);color:var(--rail-text);background:var(--rail-panel);border-radius:10px;grid-template-rows:auto minmax(0,1fr) auto;gap:12px;padding:16px;display:grid;box-shadow:0 16px 48px #00000080}.gif-modal-head{align-items:center;gap:10px;display:flex}.gif-modal-sub{color:var(--rail-muted);font-size:13px}.gif-modal-body{grid-template-columns:minmax(0,1.2fr) minmax(260px,340px);gap:16px;min-height:0;display:grid;overflow:auto}.gif-preview{background:var(--rail);box-sizing:border-box;border-radius:8px;align-self:start;place-items:center;width:100%;max-height:100%;padding:12px;display:grid;position:relative}.gif-preview canvas,.gif-preview img{border-radius:4px;width:auto;max-width:100%;height:auto;max-height:min(70vh,720px);display:block;box-shadow:0 6px 24px #00000059}.gif-progress{background:#00000080;border-radius:4px;height:8px;position:absolute;bottom:12px;left:12px;right:12px;overflow:hidden}.gif-progress-fill{background:var(--accent);height:100%;transition:width .15s}.gif-options{align-content:start;gap:8px;margin:0;display:grid}.gif-players{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.gif-player{border:1px solid var(--border);border-radius:6px;gap:6px;min-width:0;margin:0;padding:6px 8px 8px;display:grid}.gif-player legend,.gif-player span,.gif-field>span{color:var(--rail-muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:800}.gif-player legend{padding:0 4px}.gif-player label,.gif-field{gap:4px;min-width:0;display:grid}.gif-player input,.gif-field select{border:1px solid var(--border-strong);width:100%;min-width:0;color:var(--rail-text);background:var(--field);font:inherit;border-radius:5px;padding:6px 8px;font-size:13px}.gif-player input:focus-visible,.gif-field select:focus-visible,.gif-check input:focus-visible{outline:3px solid var(--focus);outline-offset:-1px}.gif-checks{flex-wrap:wrap;gap:6px 16px;display:flex}.gif-check{cursor:pointer;align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.gif-meta{color:var(--rail-muted);font-variant-numeric:tabular-nums;margin:0;font-size:12px}.gif-modal-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.gif-modal-actions a.sidebar-action{align-items:center;text-decoration:none;display:inline-flex}.gif-error{color:var(--nag-blunder)}@media (width<=760px){.gif-modal-body,.gif-players{grid-template-columns:minmax(0,1fr)}}html[data-mobile=on],html[data-mobile=on] body{overscroll-behavior:none;height:100%;overflow:hidden}.app-shell.mobile{background:var(--bg);flex-direction:column;min-height:0;padding:0;display:flex;position:fixed;inset:0}.app-shell.mobile>:not(.m-header):not(.m-tabbar):not(.m-sheet-wrap):not(.daily-checklist):not(.checklist-pill){-webkit-overflow-scrolling:touch;flex:auto;min-height:0;overflow-y:auto}.mobile .m-board-view,.mobile .wood-view{-webkit-overflow-scrolling:touch;overflow-y:auto}.mobile .top-nav,.mobile .daily-checklist,.mobile .checklist-pill,.mobile .board-resize,.mobile .board-toolbar,.mobile .fen-bar,.mobile .fen-bar-mobile,.mobile .test-box>.panel-heading,.mobile .test-box>.nav-hint,.mobile .test-review-hint,.mobile .puzzle-side-stats,.mobile .test-side,.mobile .wood-view>.wood-panel:first-child,.mobile .puzzle-box .engine-head,.mobile .puzzle-box .eval-row,.mobile .puzzle-box .engine-lines,.mobile .puzzle-box .engine-pv,.mobile .puzzle-why{display:none}.m-header{min-height:48px;padding:calc(6px + env(safe-area-inset-top)) 12px 6px;color:var(--rail-text);background:var(--rail-panel);border-bottom:1px solid var(--border-strong);flex:none;align-items:center;gap:10px;display:flex}.m-brand{flex:none;display:block}.m-title{color:var(--rail-text);text-align:center;flex:auto;margin:0;font-size:17px;font-weight:700}.mobile .m-hide{display:none}.m-chip{background:var(--rail-row);color:var(--rail-muted);font-variant-numeric:tabular-nums;border-radius:999px;flex:none;padding:3px 9px;font-size:12px;font-weight:600}.m-settings{min-width:40px;min-height:40px;color:var(--rail-text);background:0 0;border:none;flex:none;font-size:22px;line-height:1}.m-tabbar{padding-bottom:env(safe-area-inset-bottom);background:var(--rail-panel);border-top:1px solid var(--border-strong);flex:none;display:flex}.m-tabbar button{min-height:56px;color:var(--rail-muted);background:0 0;border:none;border-radius:0;flex:1 1 0;justify-items:center;gap:2px;padding:7px 0 6px;font-size:11px;font-weight:600;display:grid}.m-tabbar button.active{color:var(--accent)}.m-tab-icon{font-size:20px;line-height:1}.m-sheet-wrap:not(.open){display:none}.m-sheet-wrap .sheet-backdrop{z-index:90;background:#00000080;display:block;position:fixed;inset:0}.m-sheet{z-index:95;max-height:86dvh;padding-bottom:env(safe-area-inset-bottom);color:var(--rail-text);background:var(--rail);border-radius:14px 14px 0 0;flex-direction:column;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -12px 40px #00000080}.m-sheet-head{border-bottom:1px solid var(--border-strong);justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;display:flex}.m-sheet-close{min-height:36px;padding:0 14px;font-weight:700}.m-sheet-body{-webkit-overflow-scrolling:touch;gap:14px;min-height:0;padding:12px 16px 20px;display:grid;overflow-y:auto}.m-tools{gap:10px;display:grid}.m-tools:empty{display:none}.m-games{gap:10px;display:grid}.m-games:empty{display:none}.m-sheet .games-sidebar.in-sheet{background:0 0;max-height:none;padding:0;display:grid;position:static;overflow:visible}.sidebar-inner{display:contents}.mobile aside.games-sidebar{display:none}.m-sheet-section{gap:8px;display:grid}.m-sheet-section h3{color:var(--rail-muted);letter-spacing:.08em;text-transform:uppercase;margin:4px 0 0;font-size:11px;font-weight:700}.m-sheet .profile-theme{justify-content:space-between;align-items:center;gap:10px;display:flex}.m-sheet-links{gap:6px;display:grid}.m-goals{gap:6px;margin-bottom:14px;display:grid}.m-goals h3{text-transform:uppercase;letter-spacing:.04em;color:var(--rail-muted,var(--muted));justify-content:space-between;align-items:center;margin:0;font-size:13px;display:flex}.m-goals-count{font-variant-numeric:tabular-nums;font-weight:600}.m-goals .checklist-item{min-height:40px;padding:4px 10px;font-size:14px}.m-goals .checklist-tick{min-width:28px;min-height:28px;font-size:16px}.m-sheet-link{text-align:left;min-height:44px;padding:0 12px}.m-sheet-link.active{border-color:var(--accent);color:var(--accent)}.m-sheet .wood-rail-engine .engine-panel,.m-sheet .engine-panel{height:auto}.m-sheet .wood-toggle{margin-top:0}.m-turn{box-sizing:border-box;height:72px;color:var(--rail-text);align-items:center;gap:12px;padding:10px 14px 8px;display:flex;overflow:hidden}.m-turn-king{background:var(--rail-row);border-radius:8px;flex:none;place-items:center;width:44px;height:44px;font-size:30px;line-height:1;display:grid}.m-turn-king.white{color:#f3f6fa;background:#2c3441}.m-turn-king.black{color:#111620;background:#e6ebf2}.m-turn.good .m-turn-king{background:color-mix(in srgb, var(--verdict-ok) 28%, var(--rail-row))}.m-turn.bad .m-turn-king{background:color-mix(in srgb, var(--nag-blunder) 28%, var(--rail-row))}.m-turn-text{gap:1px;min-width:0;display:grid}.m-turn-text strong{font-size:16px;line-height:1.2}.m-turn.focus .m-turn-text strong{color:var(--accent)}.m-turn-text span{-webkit-line-clamp:2;color:var(--rail-muted);-webkit-box-orient:vertical;font-size:13px;line-height:1.3;display:-webkit-box;overflow:hidden}.mobile .m-board-view{flex-direction:column;flex:auto;justify-content:flex-start;align-items:stretch;gap:0;width:100%;max-width:none;min-height:0;margin:0;display:flex}.mobile .m-board-view .board-column{display:contents}.mobile .m-board-view .m-turn,.mobile .wood-view .m-turn{z-index:3;background:var(--bg);flex:none;position:sticky;top:0}.mobile .m-board-view .board-panel{z-index:2;background:var(--bg);flex:none;place-items:center;padding:0;display:grid;position:sticky;top:72px}.mobile .board-shell{touch-action:none;width:min(100vw,100dvh - 330px);max-width:100vw}.mobile .board-promo-host{width:100%}.mobile .m-board-view .analysis-panel{flex:none;gap:0}.mobile .m-board-view .test-box{padding:10px 12px calc(12px + env(safe-area-inset-bottom));border-radius:0}.mobile .test-actions button,.mobile .focus-actions button,.mobile .wood-actions button,.mobile .wood-review-actions button,.mobile .move-controls button,.mobile .focus-moment button,.mobile .focus-quiet button,.mobile .focus-blame-buttons button{min-height:44px}.mobile .m-actions-slot:empty{display:none}.mobile .wood-view{flex-direction:column;flex:auto;justify-content:flex-start;align-items:stretch;gap:0;width:100%;max-width:none;min-height:0;margin:0;display:flex}.mobile .wood-board-column{display:contents}.mobile .wood-board{z-index:2;background:var(--bg);touch-action:none;flex:none;width:min(100vw,100dvh - 330px);margin:0 auto;position:sticky;top:72px}.mobile .wood-under{flex:none;padding:8px 12px}.mobile .wood-view>.wood-panel.wood-focus,.mobile .wood-view>.wood-panel.wood-review{padding:10px 12px calc(12px + env(safe-area-inset-bottom));border:none;border-radius:0;flex:none}.mobile .learn-shell{gap:0}.mobile .learn-shell.m-board-shell{flex-direction:column;display:flex;overflow:hidden}.mobile .learn-shell.m-board-shell>.learn-view{flex:auto;min-height:0}.mobile .m-board-view .learn-board-column{display:contents}.mobile .m-board-view .learn-line-moves{flex:none;min-height:0;padding:8px 12px 0}.mobile .learn-strip{padding:8px 12px calc(16px + env(safe-area-inset-bottom));flex:none;gap:10px;display:grid}.learn-now-note{border-left:2px solid var(--gold);background:var(--rail-row);color:var(--rail-text);border-radius:0 4px 4px 0;gap:3px;padding:8px 10px;font-size:13px;line-height:1.55;display:grid}.learn-now-note .learn-note-move{color:var(--gold)}.learn-now-note .move-comment{color:var(--rail-muted);word-break:break-word}.learn-now-note .move-comment :is(p,ul,ol){margin:0 0 6px}.learn-now-note .move-comment :is(p,ul,ol):last-child{margin-bottom:0}.learn-now-note .move-comment img{max-width:100%;height:auto}.learn-strip-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.learn-strip-actions button{border:1px solid var(--border-strong);background:var(--rail-row);min-height:44px;color:var(--rail-text);font:inherit;cursor:pointer;border-radius:8px;padding:0 10px;font-weight:700}.learn-strip-actions .learn-primary{grid-column:1/-1;min-height:48px}.learn-strip-done{grid-column:1/-1}.m-sheet .learn-sections{width:100%}.m-sheet .learn-panel{background:0 0;border:none;padding:0}.m-sheet .learn-right{max-height:none;padding-bottom:0}.m-sheet .learn-notes{flex:none;max-height:45vh}.m-sheet .learn-controls button,.m-sheet .learn-chapter,.m-sheet .learn-line{min-height:40px}.play-host{display:contents}.play-host[hidden]{display:none}.cp-view{grid-template-columns:minmax(360px, var(--board-size,600px)) minmax(320px, 440px);width:min(100%, calc(var(--board-size,600px) + 458px));align-items:start;gap:18px;margin:0 auto;display:grid}.cp-board-column,.cp-panel{min-width:0}.cp-panel{border:1px solid var(--border-strong);background:var(--rail);color:var(--rail-text);border-radius:6px;padding:16px 16px 140px}.cp-panel h2{color:var(--rail-text);margin:16px 0 8px;font-size:14px}.cp-panel h3{color:var(--rail-muted);text-transform:uppercase;letter-spacing:.04em;margin:12px 0 6px;font-size:12px;font-weight:600}.cp-status{margin:0}.cp-players{color:var(--muted);justify-content:center;gap:10px;padding:10px 2px;font-size:13px;display:flex}.cp-players strong{color:var(--text)}.cp-level-chip{border:1px solid var(--border-strong);color:var(--rail-muted);border-radius:999px;padding:2px 8px;font-size:12px}.cp-error{color:var(--nag-blunder)}.cp-start-from{gap:6px;display:grid}.cp-start-text{box-sizing:border-box;border:1px solid var(--border-strong);background:var(--field);width:100%;color:var(--rail-text);font-family:var(--mono);resize:vertical;border-radius:4px;padding:8px 10px;font-size:12px;line-height:1.4}.cp-start-ok,.cp-start-error{color:var(--rail-muted);margin:0;font-size:12px;line-height:1.45}.cp-start-error{color:var(--nag-blunder)}.cp-start-reset{border:1px solid var(--border-strong);background:var(--rail-row);color:var(--rail-text);cursor:pointer;border-radius:4px;justify-self:start;padding:4px 8px;font-size:12px}.cp-levels{gap:4px;max-height:186px;display:grid;overflow-y:auto}.cp-level{border:1px solid var(--border-strong);background:var(--rail-row);width:100%;color:var(--rail-text);text-align:left;cursor:pointer;border-radius:4px;justify-content:space-between;align-items:center;gap:10px;padding:7px 10px;font-size:13px;display:flex}.cp-level:hover{border-color:var(--rail-text)}.cp-level.active{border-color:var(--gold);color:var(--gold)}.cp-level-rating{color:var(--rail-muted);font-variant-numeric:tabular-nums}.cp-level.active .cp-level-rating{color:var(--gold)}.cp-styles{flex-wrap:wrap;gap:6px;display:flex}.cp-style{border:1px solid var(--border-strong);background:var(--rail-row);color:var(--rail-text);cursor:pointer;border-radius:999px;padding:6px 10px;font-size:12px}.cp-style:hover{border-color:var(--rail-text)}.cp-style.active{border-color:var(--gold);color:var(--gold)}.cp-detail{border:1px solid var(--border-strong);background:var(--rail-row);border-radius:4px;margin-top:10px;padding:10px}.cp-bot-name{color:var(--gold);margin:0 0 6px;font-size:14px}.cp-blurb{color:var(--rail-text);margin:0;font-size:13px;line-height:1.45}.cp-style-blurb{color:var(--rail-muted);margin-top:6px}.cp-est{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;display:grid}.cp-est>div{border:1px solid var(--border-strong);text-align:center;border-radius:4px;padding:6px 4px}.cp-est dt{color:var(--rail-muted);font-size:11px}.cp-est dd{color:var(--gold);font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:17px}.cp-est-none{color:var(--rail-muted);margin:0;font-size:12px}.cp-engine-setting{color:var(--rail-muted);font-variant-numeric:tabular-nums;margin:10px 0 0;font-size:12px}.cp-book{border:1px solid var(--border-strong);background:var(--rail-row);color:var(--rail-muted);cursor:pointer;border-radius:4px;align-items:flex-start;gap:8px;margin-top:12px;padding:8px 10px;font-size:12px;line-height:1.45;display:flex}.cp-book input{accent-color:var(--accent);margin:3px 0 0}.cp-book strong{color:var(--rail-text)}.cp-colors{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.cp-color{border:1px solid var(--border-strong);background:var(--rail-row);color:var(--rail-text);cursor:pointer;border-radius:4px;padding:8px 6px;font-size:13px}.cp-color.active{border-color:var(--gold);color:var(--gold)}.cp-record{color:var(--rail-muted);font-variant-numeric:tabular-nums;gap:2px;margin:12px 0 0;font-size:12px;display:grid}.cp-record span:first-child{color:var(--rail-text)}.cp-start{border:1px solid var(--accent);width:100%;color:var(--accent);cursor:pointer;background:0 0;border-radius:4px;margin-top:12px;padding:11px;font-size:14px;font-weight:600}.cp-start:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 14%, transparent)}.cp-start:disabled{opacity:.45;cursor:not-allowed}.cp-caveat{color:var(--rail-muted);margin:14px 0 0;font-size:11px;line-height:1.45}.cp-opponent{border:1px solid var(--border-strong);background:var(--rail-row);border-radius:4px;gap:8px;padding:12px;display:grid}.cp-book-note,.cp-origin{color:var(--rail-muted);margin:0;font-size:12px;line-height:1.4}.cp-book-note{color:var(--nag-theory)}.cp-controls{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:14px;display:grid}.cp-controls button{border:1px solid var(--border-strong);background:var(--rail-row);color:var(--rail-text);cursor:pointer;border-radius:4px;padding:8px 4px;font-size:13px}.cp-controls button:disabled{opacity:.45;cursor:not-allowed}.cp-controls .cp-analyze:not(:disabled){border-color:var(--accent);color:var(--accent)}.cp-result{border:1px solid var(--border-strong);background:var(--rail-row);border-left-width:3px;border-radius:4px;gap:4px;margin-top:12px;padding:10px 12px;font-size:13px;line-height:1.45;display:grid}.cp-result strong{font-size:15px}.cp-result span{color:var(--rail-muted)}.cp-result.win{border-left-color:var(--verdict-ok)}.cp-result.loss{border-left-color:var(--nag-blunder)}.cp-result.draw{border-left-color:var(--gold)}.cp-moves{gap:2px;max-height:260px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.cp-moves li{font-variant-numeric:tabular-nums;border-radius:3px;grid-template-columns:34px minmax(0,1fr) minmax(0,1fr);gap:6px;padding:4px 6px;font-size:13px;display:grid}.cp-moves li:nth-child(odd){background:var(--rail-row)}.cp-move-no{color:var(--rail-muted)}.cp-empty{color:var(--rail-muted);font-size:13px}.cp-copy{border:1px solid var(--border-strong);background:var(--rail-row);width:100%;color:var(--rail-text);cursor:pointer;border-radius:4px;margin-top:14px;padding:9px;font-size:13px}.cp-copy:disabled{opacity:.45;cursor:not-allowed}.learn-mastered .learn-play-on{border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;border-radius:4px;margin-top:6px;padding:6px 10px;font-size:13px}@media (width<=1180px){.cp-view{width:min(100%, var(--board-size,600px));grid-template-columns:1fr}}.mobile .m-board-view .cp-board-column{display:contents}.mobile .cp-view{gap:0;width:100%}.mobile .cp-strip{padding:10px 12px calc(16px + env(safe-area-inset-bottom));flex:none;gap:10px;display:grid}.cp-strip-status{color:var(--rail-muted);margin:0;font-size:13px;line-height:1.45}.cp-strip-actions{grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px;display:grid}.cp-strip-actions button{border:1px solid var(--border-strong);background:var(--rail-row);min-height:44px;color:var(--rail-text);cursor:pointer;border-radius:6px;padding:0 10px;font-size:14px}.cp-strip-actions button:disabled{opacity:.45}.cp-strip-actions .cp-primary{border-color:var(--accent);color:var(--accent);font-weight:600}.mobile .cp-panel{background:0 0;border:0;padding:0}.mobile .cp-panel .panel-heading{display:none}.mobile .cp-levels{max-height:none}.mobile .cp-start{display:none}.learn-line-rest{color:var(--rail-muted)}.learn-steps{vertical-align:middle;gap:4px;margin-left:8px;display:inline-flex}.learn-step{border:1px solid var(--border-strong);background:var(--rail-row);min-width:30px;color:var(--rail-text);cursor:pointer;border-radius:4px;padding:2px 8px;font-size:12px;line-height:1.4}.learn-step:disabled{opacity:.4;cursor:default}.learn-alter-button{grid-column:1/-1;border-color:var(--accent)!important;color:var(--accent)!important}.learn-strip-review .learn-step{min-height:44px;font-size:18px}.learn-strip-review .learn-alter-button{grid-column:1/-1}.play-view{grid-template-columns:minmax(280px, 340px) minmax(320px, var(--board-size,600px)) minmax(280px, 360px);width:min(100%, calc(var(--board-size,600px) + 760px));justify-content:center;align-items:start;gap:16px;margin:0 auto;display:grid}.play-panel{border:1px solid var(--border-strong);background:var(--rail);min-width:0;color:var(--rail-text);border-radius:6px;align-content:start;gap:10px;padding:16px;display:grid}.play-panel h1{color:var(--rail-text);margin:0;font-size:24px}.play-panel h2{letter-spacing:.08em;text-transform:uppercase;color:var(--rail-muted);margin:8px 0 0;font-size:12px;font-weight:700}.play-hint,.play-note{color:var(--rail-muted);margin:0;font-size:13px;line-height:1.45}.play-note.warn,.play-conn.warn{color:var(--nag-inaccuracy)}.play-conn{color:var(--rail-muted);margin:0;font-size:12px}.play-conn.ok{color:var(--accent)}.play-conn a{color:var(--rail-text);font-weight:600}.play-board-column{gap:8px;min-width:0;display:grid}.play-board{width:min(100%, calc(100svh - 110px), var(--board-size,600px));min-width:0;position:relative}.play-presets{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.play-preset{border:1px solid var(--border-strong);background:var(--rail-row);color:var(--rail-text);font:inherit;cursor:pointer;border-radius:6px;gap:2px;padding:10px 6px;display:grid}.play-preset strong{font-size:18px}.play-preset span{letter-spacing:.06em;text-transform:uppercase;color:var(--rail-muted);font-size:11px}.play-preset.active{border-color:var(--accent);background:var(--accent);color:var(--accent-text)}.play-preset.active span{color:var(--accent-text);opacity:.85}.play-custom{color:var(--rail-muted);align-items:end;gap:10px;font-size:12px;display:flex}.play-custom label{gap:3px;display:grid}.play-custom input{border:1px solid var(--border-strong);background:var(--field);width:72px;color:var(--rail-text);font:inherit;border-radius:5px;padding:6px 8px}.play-speed{color:var(--rail-text);padding-bottom:7px;font-weight:600}.play-row{justify-content:space-between;align-items:center;gap:10px;font-size:13px;display:flex}.play-colors{gap:4px;display:flex}.play-colors button,.play-inline button,.play-actions button,.play-nav button,.play-seeking button,.play-note button{border:1px solid var(--border-strong);background:var(--rail-row);color:var(--rail-text);font:inherit;cursor:pointer;border-radius:5px;padding:7px 12px;font-size:13px}.play-colors button.active{border-color:var(--selection);background:var(--selection);color:var(--selection-text)}button.play-primary,.play-actions button.play-primary,.play-inline button.play-primary{border:1px solid var(--accent);background:var(--accent);color:var(--accent-text);font:inherit;cursor:pointer;border-radius:6px;padding:10px 14px;font-weight:700}.play-actions button.play-primary,.play-inline button.play-primary{padding:7px 12px;font-size:13px}button.play-primary:disabled,.play-inline button:disabled,.play-actions button:disabled,.play-nav button:disabled{opacity:.5;cursor:default}.play-inline{align-items:center;gap:6px;display:flex}.play-inline input,.play-inline select{border:1px solid var(--border-strong);background:var(--field);min-width:0;color:var(--rail-text);font:inherit;border-radius:5px;flex:1;padding:7px 9px;font-size:13px}.play-inline label{color:var(--rail-muted);align-items:center;gap:6px;font-size:13px;display:flex}.play-seeking{border:1px solid var(--accent);border-radius:6px;align-items:center;gap:10px;padding:10px 12px;font-size:13px;display:flex}.play-seeking span:nth-child(2){flex:1}.play-spinner{border:2px solid var(--rail-muted);border-top-color:var(--accent);border-radius:50%;flex:none;width:14px;height:14px;animation:.9s linear infinite play-spin}@keyframes play-spin{to{transform:rotate(360deg)}}.play-notice{background:var(--rail-panel);color:var(--rail-text);border-radius:5px;margin:0;padding:8px 10px;font-size:13px}.play-player{background:var(--rail-panel);border-radius:6px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.play-player.running{outline:1px solid var(--accent)}.play-player-name{align-items:baseline;gap:6px;min-width:0;font-size:14px;display:flex}.play-player-name em{color:var(--gold);font-style:normal;font-weight:700}.play-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.play-player-name small{color:var(--rail-muted)}.play-color{border:1px solid var(--border-strong);border-radius:2px;flex:none;width:10px;height:10px}.play-color.white{background:#e3e8f0}.play-color.black{background:#0b0e13}.play-clock{background:var(--rail-row);color:var(--rail-muted);font-variant-numeric:tabular-nums;letter-spacing:.02em;border-radius:5px;padding:2px 8px;font-size:28px;font-weight:800}.play-clock.running{background:var(--rail);color:var(--rail-text);box-shadow:inset 0 0 0 1px var(--accent)}.play-clock.low{color:#e0685f}.play-clock.running.low{background:#e0685f26}.play-moves{background:var(--rail-row);border-radius:5px;grid-template-columns:34px 1fr 1fr;align-content:start;min-height:220px;max-height:min(52vh,480px);margin:0;padding:4px;font-size:14px;list-style:none;display:grid;overflow:auto}.play-moves li{display:contents}.play-moves-empty{color:var(--rail-muted);grid-column:1/-1;padding:10px;font-size:13px}.play-move-num{color:var(--rail-muted);font-variant-numeric:tabular-nums;padding:3px 6px}.play-moves button{color:var(--rail-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:3px 8px}.play-moves button:hover{background:#ffffff0f}.play-moves button.active{background:var(--selection);color:var(--selection-text)}.play-nav{align-items:center;gap:4px;display:flex}.play-nav button{padding:4px 10px}.play-premove{color:#b9a8ff;align-items:center;gap:4px;margin-left:auto;font-size:12px;display:inline-flex}.play-premove button{padding:0 6px}.play-actions{flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;display:flex}.play-actions button.danger{color:#fff;background:#b2463f;border-color:#b2463f}.play-result{background:var(--rail-panel);text-align:center;border-radius:6px;gap:2px;padding:12px 14px;display:grid}.play-result strong{font-size:20px}.play-result span{color:var(--rail-muted);font-size:13px}.play-result.win{box-shadow:inset 0 0 0 1px var(--accent)}.play-result.loss{box-shadow:inset 0 0 0 1px #b2463f}.play-after{gap:8px;display:grid}.play-chat{background:var(--rail-row);border-radius:5px;align-content:start;gap:3px;min-height:80px;max-height:180px;margin:0;padding:6px 8px;font-size:13px;list-style:none;display:grid;overflow:auto}.play-chat strong{color:var(--rail-muted);margin-right:4px;font-weight:600}.play-chat-empty{color:var(--rail-muted)}.play-challenges{gap:8px;margin:0;padding:0;list-style:none;display:grid}.play-challenges li{background:var(--rail-panel);border-radius:6px;gap:6px;padding:8px 10px;font-size:13px;display:grid}.play-challenges small{color:var(--rail-muted)}.play-tips{color:var(--rail-muted);gap:4px;margin:0;padding-left:18px;font-size:13px;display:grid}.top-nav button .nav-live-dot,.play-mode-bar button .nav-live-dot,.m-sheet-link .nav-live-dot{color:var(--accent);vertical-align:middle;margin-left:5px;font-size:10px}@media (width<=1100px){.play-view{grid-template-columns:minmax(0,1fr);width:100%}.play-board-column{order:-1}}.play-mode-bar{max-width:var(--page-max);justify-content:center;gap:6px;margin:0 auto 10px;display:flex}.play-mode-bar button{border:1px solid var(--border-strong);background:var(--rail-row);min-height:32px;color:var(--rail-text);font:inherit;cursor:pointer;border-radius:5px;padding:0 14px;font-weight:700}.play-mode-bar button.active{border-color:var(--selection);background:var(--selection);color:var(--selection-text)}.mobile .play-view{-webkit-overflow-scrolling:touch;flex:auto;grid-template-columns:minmax(0,1fr);gap:10px;width:100%;min-height:0;padding:0 0 12px;overflow-y:auto}.mobile .play-board{width:min(100vw,100dvh - 330px);margin:0 auto}.mobile .play-panel{margin:0 10px}.mobile .play-moves{min-height:120px;max-height:32vh}.prep-view{width:min(100%, calc(var(--board-size,600px) + 820px));grid-template-columns:minmax(280px,360px) minmax(0,1fr);align-items:start;gap:16px;margin:0 auto;display:grid}.prep-side{border:1px solid var(--border-strong);background:var(--rail);color:var(--rail-text);border-radius:6px;gap:10px;padding:14px;display:grid}.prep-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.prep-list button{border:1px solid var(--border-strong);background:var(--rail-row);width:100%;color:var(--rail-text);font:inherit;text-align:left;cursor:pointer;border-radius:6px;gap:2px;padding:8px 10px;display:grid}.prep-list button.active{border-color:var(--selection);background:var(--selection);color:var(--selection-text)}.prep-list small{opacity:.8;font-size:11px}.prep-form{gap:8px;display:grid}.prep-form label{color:var(--rail-muted);gap:3px;font-size:12px;display:grid}.prep-form input,.prep-form textarea{border:1px solid var(--border-strong);background:var(--field);color:var(--rail-text);font:inherit;border-radius:5px;padding:7px 9px;font-size:13px}.prep-form-actions{flex-wrap:wrap;gap:6px;display:flex}.prep-hint{color:var(--rail-muted);margin:0;font-size:12px;line-height:1.45}.prep-main{gap:14px;min-width:0;display:grid}.prep-status{background:var(--rail-panel);color:var(--rail-text);border-radius:5px;margin:0;padding:8px 10px;font-size:13px}.prep-status.warn{color:var(--nag-inaccuracy)}.prep-profile,.prep-block{border:1px solid var(--border-strong);background:var(--rail);color:var(--rail-text);border-radius:6px;gap:8px;padding:12px 14px;display:grid}.prep-profile-name{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.prep-profile-name a{color:var(--rail-text);font-weight:700}.prep-profile-name small{color:var(--rail-muted)}.prep-site{letter-spacing:.08em;text-transform:uppercase;color:var(--rail-muted);font-size:11px;font-weight:700}.prep-ratings,.prep-openings{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.prep-chip{background:var(--rail-row);color:var(--rail-text);border-radius:999px;padding:3px 8px;font-size:12px}.prep-chip strong{margin-left:2px}.prep-chip.muted{color:var(--rail-muted)}.prep-block h3{margin:0;font-size:15px}.prep-block h3 small,.prep-group h4 small{color:var(--rail-muted);margin-left:6px;font-size:12px;font-weight:400}.prep-openings-rows{gap:6px;display:grid}.prep-openings-label{color:var(--rail-muted);font-size:12px;font-weight:700}.prep-group{gap:6px;display:grid}.prep-group h4{margin:4px 0 0;font-size:13px}.prep-walks{gap:6px;margin:0;padding:0;list-style:none;display:grid}.prep-walk{background:var(--rail-panel);border-radius:6px;grid-template-columns:24px minmax(0,1fr) auto;align-items:start;gap:10px;padding:8px 10px;display:grid}.prep-walk-badge{text-align:center;font-size:16px;font-weight:800}.prep-walk.ends .prep-walk-badge,.prep-walk.none .prep-walk-badge{color:#e0685f}.prep-walk.unseen .prep-walk-badge{color:var(--gold)}.prep-walk.covered .prep-walk-badge{color:var(--accent)}.prep-walk-body{gap:2px;min-width:0;font-size:13px;display:grid}.prep-walk-body strong{font-size:14px}.prep-walk-body p{color:var(--rail-muted);margin:0}.prep-walk-games,.prep-walk-source{color:var(--rail-muted);font-size:12px}.prep-open,.prep-meetings button{border:1px solid var(--border-strong);background:var(--rail-row);color:var(--rail-text);font:inherit;white-space:nowrap;cursor:pointer;border-radius:5px;padding:6px 10px;font-size:12px}.prep-meetings{gap:6px;margin:0;padding:0;list-style:none;display:grid}.prep-meetings li{grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;font-size:13px;display:grid}.prep-result{background:var(--rail-row);border-radius:50%;place-items:center;width:26px;height:26px;font-size:12px;font-weight:800;display:inline-grid}.prep-result.win{background:var(--accent);color:var(--accent-text)}.prep-result.loss{color:#fff;background:#b2463f}.prep-meeting-name{min-width:0;display:grid}.prep-meeting-name small{color:var(--rail-muted)}.prep-empty{border:1px dashed var(--border-strong);border-radius:6px;padding:14px}@media (width<=1100px){.prep-view{grid-template-columns:minmax(0,1fr)}}.mobile .prep-view{width:100%;padding:0 10px 16px}.mobile .prep-walk{grid-template-columns:20px minmax(0,1fr)}.mobile .prep-walk .prep-open{grid-column:2;justify-self:start}.otb-form{width:min(600px,100%)}.otb-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.otb-form-grid label{color:var(--rail-muted);gap:3px;font-size:12px;display:grid}.otb-form-grid input{border:1px solid var(--border-strong);background:var(--field);color:var(--rail-text);font:inherit;border-radius:5px;padding:8px 10px;font-size:14px}.otb-wide{grid-column:1/-1}.otb-color{color:var(--rail-muted);align-items:center;gap:6px;font-size:13px;display:flex}.otb-color button{border:1px solid var(--border-strong);background:var(--rail-row);color:var(--rail-text);font:inherit;cursor:pointer;border-radius:5px;padding:7px 12px}.otb-color button.active{border-color:var(--selection);background:var(--selection);color:var(--selection-text)}.otb-color small{margin-left:auto}.sidebar-action.otb-new{border-color:var(--accent);color:var(--accent)}.otb-strip{width:min(100%, var(--board-size,600px));border:1px solid var(--accent);background:var(--rail);color:var(--rail-text);border-radius:6px;gap:8px;margin:0 auto;padding:10px 12px;display:grid}.otb-strip-status{justify-content:space-between;gap:10px;font-size:14px;display:flex}.otb-strip-status span{color:var(--rail-muted)}.otb-voice{align-items:center;gap:8px;font-size:13px;display:flex}.otb-voice.warn .otb-voice-text{color:var(--nag-inaccuracy)}.otb-mic{border:1px solid var(--border-strong);background:var(--rail-row);min-height:36px;color:var(--rail-text);font:inherit;cursor:pointer;border-radius:999px;padding:0 12px;font-weight:700}.otb-mic.live{border-color:var(--accent);background:var(--accent);color:var(--accent-text);animation:1.6s ease-in-out infinite otb-pulse}.otb-mic:disabled{opacity:.5;cursor:default}@keyframes otb-pulse{50%{box-shadow:0 0 0 6px color-mix(in srgb, var(--accent) 25%, transparent)}}.otb-voice-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.otb-type{gap:6px;display:flex}.otb-type input{border:1px solid var(--border-strong);background:var(--field);min-width:0;color:var(--rail-text);font:inherit;border-radius:5px;flex:1;padding:8px 10px;font-size:15px}.otb-type button,.otb-actions button{border:1px solid var(--border-strong);background:var(--rail-row);min-height:36px;color:var(--rail-text);font:inherit;cursor:pointer;border-radius:5px;padding:0 12px}.otb-type button:disabled,.otb-actions button:disabled{opacity:.45;cursor:default}.otb-type-error{color:var(--nag-inaccuracy);margin:0;font-size:12px}.otb-actions{grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:6px;display:grid}.otb-actions .otb-primary{border-color:var(--accent);color:var(--accent);font-weight:700}.mobile .otb-strip{box-sizing:border-box;width:calc(100vw - 20px);margin:8px 10px 0}.mobile .otb-actions button,.mobile .otb-mic,.mobile .otb-type button{min-height:44px}.playout-context{background:var(--rail-panel);border-radius:6px;gap:6px;padding:8px 10px;font-size:13px;display:grid}.playout-context p{margin:0}.playout-context-from,.playout-context-note,.playout-context-hint{color:var(--rail-muted)}.playout-context-note{font-style:italic}.playout-context-hint{font-size:12px}.playout-open-game{border:1px solid var(--border-strong);background:var(--rail-row);color:var(--rail-text);font:inherit;cursor:pointer;border-radius:5px;justify-self:start;padding:6px 10px;font-size:12px}
