:root{color-scheme:dark;--font-sans: "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "Cascadia Mono", "SFMono-Regular", Consolas, monospace;--bg: #111118;--surface: #18181f;--surface-2: #202029;--surface-3: #2a2a35;--border: #2f2f3b;--text: #f4f4f6;--text-muted: #9c9cab;--accent: #e8294a;--accent-2: #ff5c77;--accent-soft: rgb(232 41 74 / .16);--success: #34d399;--danger: #ff6b4a;--info: #38bdf8;--sq-light: #e9e6ea;--sq-dark: #7c7a87;--hl-last: rgb(250 204 21 / .42);--hl-selected: rgb(232 41 74 / .45);--hl-premove: rgb(244 63 94 / .45);--hl-target: rgb(17 17 24 / .35);--hl-best: rgb(52 211 153 / .8);--mc-brilliant: #1fb8a8;--mc-great: #5b8dd6;--mc-best: #7cb342;--mc-excellent: #8fbf4f;--mc-good: #7a9a63;--mc-inaccuracy: #e8b923;--mc-mistake: #ea8a2a;--mc-miss: #e46b56;--mc-blunder: #d23b3b;--mc-forced: #8b8fa8;--eval-white: #f4f4f6;--eval-black: #26262f;--kc-backdrop: #030305;--kc-backdrop-2: #15151f;--kc-bar: #000000;--kc-text: #f4f4f6;--kc-muted: #8a8a99;--kc-flash: #ffffff;--kc-rec: #ff2d2d;--kc-beam: #ff1f3d;--kc-beam-core: #ffd6dc;--kc-glitch-a: rgb(255 0 80 / .8);--kc-glitch-b: rgb(0 230 255 / .8);--kc-piece-w: #f1efe9;--kc-piece-b: #1d1d24;--kc-win-1: #fff6d0;--kc-win-2: #ffc53d;--kc-win-3: #c96a10;--kc-loss-1: #ffd3da;--kc-loss-2: #ff4d6a;--kc-loss-3: #8f0b22;--kc-neutral-1: #ffffff;--kc-neutral-2: #b9c6ff;--kc-neutral-3: #5563c9;--kc-flag: #f7f6f0;--kc-pole: #8a6a45;--kc-sweat: #8fd3ff;--kc-rim: rgb(255 248 225 / .85);--kc-sand: #e3c27e;--kc-sand-dark: #a9823f;--kc-glass: rgb(220 235 255 / .12);--kc-glass-edge: rgb(220 235 255 / .55);--kc-spot: rgb(255 248 225 / .35);--kc-spot-beam: rgb(255 248 225 / .12);--radius: 12px;--shadow-lg: 0 12px 32px rgb(0 0 0 / .35);--scrollbar: #34343f;--scrollbar-hover: #4c4c5b}:root[data-theme=light]{color-scheme:light;--bg: #f6f6f8;--surface: #ffffff;--surface-2: #f0f0f3;--surface-3: #e4e4ea;--border: #dcdce3;--text: #111118;--text-muted: #5f5f6e;--accent-2: #c5233f;--success: #059669;--danger: #d9480f;--info: #0284c7;--shadow-lg: 0 12px 32px rgb(17 17 24 / .14);--scrollbar: #cfcfd8;--scrollbar-hover: #a8a8b6}*,*:before,*:after{box-sizing:border-box}.theme-switching *,.theme-switching *:before,.theme-switching *:after{transition:none!important}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:15px;line-height:1.5}a{color:var(--accent-2)}.link-btn{background:none;border:0;padding:0;font:inherit;color:var(--accent-2);text-decoration:underline;cursor:pointer}.link-btn:disabled{opacity:.5;cursor:default}h1{font-size:1.7rem;line-height:1.2}.page{max-width:1200px;margin:0 auto;padding:24px 20px 48px}.page.narrow{max-width:640px}.card{padding:20px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.muted{color:var(--text-muted)}.center{text-align:center}.page.center{display:grid;place-items:center;min-height:50vh}.row{display:flex;flex-wrap:wrap;gap:8px}.row.center{justify-content:center}.row-between{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:14px}.big-icon{font-size:3rem;line-height:1.2}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;border:1px solid transparent;border-radius:10px;background:var(--surface-2);color:var(--text);font:inherit;font-weight:600;text-decoration:none;cursor:pointer;transition:background .15s,border-color .15s,opacity .15s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--accent),#c5233f);color:#fff}.btn-primary:hover:not(:disabled){filter:brightness(1.1)}.btn-ghost{border-color:var(--border);background:transparent}.btn-ghost:hover:not(:disabled){background:var(--surface-2)}.btn-outline{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.btn-outline:hover:not(:disabled){filter:brightness(1.25)}.auth-switch{margin-top:12px}.btn-icon{flex:none;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.btn-danger{background:var(--danger);color:#fff}.btn-sm{padding:6px 10px;font-size:.9rem}.btn-thelis{background:linear-gradient(135deg,var(--accent),var(--accent-2));background-origin:border-box;color:#fff}.btn-thelis:hover{filter:brightness(1.1)}.btn-block{width:100%}.seg{display:flex;overflow:hidden;border:1px solid var(--border);border-radius:10px}.seg button{flex:1;padding:9px 8px;border:0;background:transparent;color:var(--text-muted);font:inherit;font-weight:600;cursor:pointer}.seg button+button{border-left:1px solid var(--border)}.seg button.active{background:var(--accent);color:#fff}.seg.variant-switch{max-width:340px;margin-bottom:12px}.tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.tabs button{padding:8px 14px;border:1px solid var(--border);border-radius:99px;background:transparent;color:var(--text-muted);font:inherit;font-weight:600;cursor:pointer}.tabs button.active{border-color:var(--accent);background:var(--accent);color:#fff}.badge{display:inline-block;padding:2px 8px;border-radius:6px;background:var(--surface-2);color:var(--text-muted);font-size:.8rem;font-weight:700}.badge.accent{background:var(--accent-soft);color:var(--accent)}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field>span{font-size:.9rem;font-weight:600}input[type=checkbox]{cursor:pointer}input:not([type=checkbox]):not([type=file]),select,textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);color:var(--text);font:inherit}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:2px solid var(--accent-soft)}input:disabled{opacity:.6}.check{display:inline-flex;align-items:center;gap:8px;margin-bottom:12px;cursor:pointer}.check input{width:16px;height:16px;accent-color:var(--accent)}.hint-error{display:block;margin:-8px 0 10px;color:var(--danger)}.alert{margin:0 0 14px;padding:10px 12px;border-radius:10px}.alert-error{background:color-mix(in srgb,var(--danger) 18%,transparent);color:var(--danger)}.alert-info{background:color-mix(in srgb,var(--info) 16%,transparent);color:var(--info)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track,::-webkit-scrollbar-corner{background:transparent}::-webkit-scrollbar-thumb{border:3px solid transparent;border-radius:99px;background:var(--scrollbar) padding-box}::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-hover)}@supports not selector(::-webkit-scrollbar){*{scrollbar-width:thin;scrollbar-color:var(--scrollbar) transparent}}app-root{display:flex;flex-direction:column;min-height:100vh}app-root>main{flex:1;min-height:100vh}.auth-page{display:grid;place-items:center;min-height:calc(100vh - 140px);padding:24px 16px}.auth-card{width:100%;max-width:420px}.auth-card h1{margin:0 0 4px}.auth-card>p.muted:first-of-type{margin-top:0}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:10px 12px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}.table th{color:var(--text-muted);font-size:.8rem;font-weight:700;text-transform:uppercase}.table .num{text-align:right}.table tr.clickable{cursor:pointer}.table tr.clickable:hover td{background:var(--surface-2)}.modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:16px;background:#08080c99;animation:fade .2s ease-out}.modal{width:100%;max-width:400px;box-shadow:var(--shadow-lg)}@keyframes fade{0%{opacity:0}}.spinner{width:36px;height:36px;margin:12px auto;border:3px solid var(--surface-3);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.spinner.small{flex:none;width:22px;height:22px;margin:0;border-width:2px}@keyframes spin{to{transform:rotate(360deg)}}.mc-badge{display:inline-grid;place-items:center;flex:none;width:1.45em;height:1.45em;border-radius:50%;background:var(--mc);color:#fff;font-family:var(--font-sans);font-size:.72em;font-weight:800;line-height:1;letter-spacing:-.05em}.mc-text{color:var(--mc);font-weight:700}.mc-brilliant{--mc: var(--mc-brilliant)}.mc-great{--mc: var(--mc-great)}.mc-best{--mc: var(--mc-best)}.mc-excellent{--mc: var(--mc-excellent)}.mc-good{--mc: var(--mc-good)}.mc-inaccuracy{--mc: var(--mc-inaccuracy)}.mc-mistake{--mc: var(--mc-mistake)}.mc-miss{--mc: var(--mc-miss)}.mc-blunder{--mc: var(--mc-blunder)}.mc-forced{--mc: var(--mc-forced)}
