@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:#4f5660;--text-h:#171b20;--muted:#aba396;--bg:#151412;--panel:#f2eee5;--border:#3a352e;--border-strong:#4a4339;--selected:#ddd4c2;--input:#fffaf0;--code-bg:#1f1d1a;--accent:#7aa92c;--accent-text:#10120a;--focus:#6d9a2475;--rail:#151412;--rail-panel:#24221f;--rail-row:#302d29;--rail-text:#d8d1c6;--rail-muted:#9c958b;--field:#161513;--selection:#6fa8dc;--selection-text:#10120a;--gold:#d9c86a;--wood-l0:#47423a;--wood-l1:#476307;--wood-l2:#577522;--wood-l3:#698836;--wood-l4:#7b9b49;--wood-l5:#8dae5c;--wood-l6:#a0c270;--wood-l7:#b4d683;--wood-l8:#c8eb97;--nag-inaccuracy:#e8c25a;--nag-mistake:#f09a5b;--nag-blunder:#f2726f;--nag-theory:#b48fd6;--nag-novelty:#4fb6c9;--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:#e9e4d8;--border:#d8d0bf;--border-strong:#c0b7a3;--selected:#e6ddc8;--accent:#4b7010;--accent-text:#fff;--focus:#6d9a2466;--rail:#e9e4d8;--rail-panel:#f6f2e8;--rail-row:#fdfaf2;--rail-text:#3b362e;--rail-muted:#5f594c;--muted:#5f594c;--field:#fffdf6;--selection:#1f5c99;--selection-text:#fff;--gold:#8a6a00;--wood-l0:#d3c9b4;--wood-l1:#97b866;--wood-l2:#84a553;--wood-l3:#729140;--wood-l4:#607f2d;--wood-l5:#4f6c17;--wood-l6:#3f5a00;--wood-l7:#314800;--wood-l8:#243600;--nag-inaccuracy:#8a6a00;--nag-mistake:#9a4b06;--nag-blunder:#b12a26;--nag-theory:#7c4fb0;--nag-novelty:#0d6c7e}#root{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:#ded7cc;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(--accent);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}.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:#111;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:#f3efe6;font:inherit;cursor:pointer;background:#110e0ad1;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:#2b2419f0;border-color:#f6c85fbf}.branch-option.mainline{border-color:#f6c85fd9}.branch-option .branch-num{color:#f3efe68c;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,#e8e2d6 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)}.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:#111;border-radius:5px;flex:1;height:10px;overflow:hidden}.eval-fill{background:#e8e2d6;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}.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-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:#161513;border-radius:5px;width:100%;height:148px;display:block}.eval-area{fill:#e8e2d6d1}.eval-midline-halo{stroke:#0a0a098c;stroke-width:3px;vector-effect:non-scaling-stroke}.eval-midline{stroke:#fffaf0e6;stroke-width:1px;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}.eval-graph-wrap{position:relative}.eval-equal-label,.eval-side-label{color:#fffaf0eb;letter-spacing:.04em;pointer-events:none;background:#0a0a099e;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:#fffaf0b3;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:#6fa8dc}.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:#111;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:#26221d;background:#e8e2d6}.explorer-bar .wr-draw{color:#f0ece4;background:#6f6a61}.explorer-bar .wr-black{color:#d8d1c6;background:#2a2724}.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:#9fc36a;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:#161513;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:#6fa8dc}.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-feedback{background:var(--rail-row);color:var(--rail-text);border-radius:5px;min-height:20px;margin:0;padding:10px 12px}.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:#7cc46a;background:#78b9642e}.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-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:#7cc46a;background:#78b9642e}.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%,#2c2720 0%,#16130e 100%);position:relative;overflow:hidden}.board3d-canvas{cursor:grab;width:100%;height:100%}.board3d-canvas:active{cursor:grabbing}.board3d-lock{color:#f0e9dc;cursor:pointer;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#14110cb8;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%, #14110ccc)}.board3d-light{color:#f0e9dc;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#14110cb8;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:#17140f;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-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-notes{min-width:0}.learn-panel,.learn-notes{border:1px solid var(--border-strong);background:var(--rail);color:var(--rail-text);border-radius:6px;padding:16px}.learn-notes{max-height:calc(100vh - 120px);padding-bottom:120px;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:#7fb0d9}.learn-phase-drill{color:var(--gold)}.learn-phase-mastered{color:#7fba72}.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-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:#7fba72}.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:#7fba72;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 #7fba72;border-radius:4px;gap:6px;padding:12px;display:grid}.learn-mastered strong{color:#7fba72}.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:#7fba72;cursor:pointer;background:0 0;border:1px solid #7fba72;border-radius:4px;margin-top:4px;padding:9px;font-size:13px;font-weight:600}.learn-next:hover{background:#7fba721f}.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-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:#7fba72}.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:#d9c86a14}.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}@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-notes{grid-column:1/-1;max-height:60vh;padding-bottom:16px}}@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:#8fbc5a}.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:8px;padding:6px 8px;display:flex}.checklist-item.done{opacity:.72}.checklist-mark{text-align:center;width:16px;color:var(--rail-muted);font-weight:700}.checklist-item.done .checklist-mark{color:var(--accent)}.checklist-label{text-align:left;color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;flex:1;padding:0}.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}.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-input{width:100%;font:inherit;border:1px solid var(--border);background:var(--bg);color:inherit;resize:vertical;border-radius:6px;padding:6px 8px;font-size:.85rem}.focus-input:focus{border-color:var(--accent);outline:none}.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-add{gap:6px;display:flex}.focus-add button{white-space:nowrap;padding:4px 10px;font-size:.82rem}.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(320px, 400px) minmax(320px, var(--board-size,600px));width:min(100%, calc(var(--board-size,600px) + 440px));justify-content:center;align-items:start;gap:16px;margin:0 auto;display:grid}.wood-panel,.wood-board-column{min-width:0}.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-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-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-view.wood-reviewing{grid-template-columns:minmax(300px, 360px) minmax(320px, var(--board-size,600px)) minmax(300px, 420px);width:min(100%, calc(var(--board-size,600px) + 820px))}.wood-review h2{color:var(--rail-text);margin:0 0 8px;font-size:16px}.wood-solution{color:var(--rail-text);font-variant-numeric:tabular-nums;margin-bottom:8px;font-size:14px}.wood-solution-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-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-review .engine-panel{grid-template-rows:auto auto minmax(0,1fr);height:240px;margin-bottom:12px}.wood-review .engine-panel.engine-off{grid-template-rows:auto;height:auto}.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}@media (width<=1150px){.wood-view.wood-reviewing{grid-template-columns:minmax(300px,360px) minmax(320px,1fr)}.wood-review{grid-column:1/-1}}
