:root{--bg: #14171d;--panel: #1c2028;--card: #232833;--card-hover: #293040;--border: #313847;--text: #e9ecf2;--muted: #8b93a7;--accent: #3b9cff;--accent-dim: #2d6fb5;--green: #2ecc71;--red: #e5534b;--amber: #e8b339;--radius: 12px;--track: #171a21;--scrim: rgba(8, 10, 14, .72);--shadow: rgba(0, 0, 0, .45);--chip-bg: rgba(0, 0, 0, .25);--board-light: #c6d3e1;--board-dark: #4a6a8f;--outline: rgba(238, 243, 255, .5)}:root.has-custom-bg{background:var(--bg)}:root.has-custom-bg body{background:transparent}:root.has-custom-bg body:before,:root.has-custom-bg body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none}:root.has-custom-bg body:before{z-index:-2;background-image:var(--custom-bg);background-size:cover;background-position:center center;background-repeat:no-repeat}:root.has-custom-bg body:after{z-index:-1;background:var(--bg);opacity:var(--custom-bg-veil, .7)}:root.has-custom-bg .board-stack,:root.has-custom-bg .board-frame,:root.has-custom-bg .book-board,:root.has-custom-bg .cmp-board{border-radius:4px;box-shadow:0 0 0 2px var(--outline),0 10px 30px var(--shadow)}:root.has-custom-bg .eval-bar{box-shadow:0 0 0 1.5px var(--outline);border-radius:3px}:root.has-custom-bg .card,:root.has-custom-bg .panel,:root.has-custom-bg .chapter-card,:root.has-custom-bg .opening-row,:root.has-custom-bg .course-row,:root.has-custom-bg .modal,:root.has-custom-bg .sheet,:root.has-custom-bg .settings-section,:root.has-custom-bg .variation-list,:root.has-custom-bg .practice-status,:root.has-custom-bg .book-panel,:root.has-custom-bg .study-panel,:root.has-custom-bg .move-note{border-color:var(--outline);box-shadow:0 6px 22px var(--shadow)}:root.has-custom-bg .page>.page-head,:root.has-custom-bg .breadcrumb,:root.has-custom-bg .annotate-bar,:root.has-custom-bg .draw-hint,:root.has-custom-bg .settings-tabs,:root.has-custom-bg .analysis-board>.hint,:root.has-custom-bg .page>.hint,:root.has-custom-bg .page>p.muted-note,:root.has-custom-bg .roster-subtitle,:root.has-custom-bg .subvar-bar,:root.has-custom-bg .opening-stats,:root.has-custom-bg .board-editor-panel,:root.has-custom-bg .cv-bar,:root.has-custom-bg .empty-note{background:var(--panel);border:1px solid var(--outline);border-radius:var(--radius);padding:10px 14px;box-shadow:0 6px 22px var(--shadow)}:root.has-custom-bg .card,:root.has-custom-bg .panel,:root.has-custom-bg .chapter-card,:root.has-custom-bg .opening-row,:root.has-custom-bg .course-row,:root.has-custom-bg .settings-section,:root.has-custom-bg .variation-list,:root.has-custom-bg .practice-status,:root.has-custom-bg .book-panel,:root.has-custom-bg .study-panel,:root.has-custom-bg .annotate-bar,:root.has-custom-bg .draw-hint,:root.has-custom-bg .settings-tabs,:root.has-custom-bg .page>.page-head,:root.has-custom-bg .breadcrumb{background:color-mix(in srgb,var(--card) var(--surface-opacity, 100%),transparent);backdrop-filter:blur(10px) saturate(1.1);-webkit-backdrop-filter:blur(10px) saturate(1.1)}:root.has-custom-bg .panel,:root.has-custom-bg .study-panel,:root.has-custom-bg .settings-section,:root.has-custom-bg .page>.page-head,:root.has-custom-bg .breadcrumb,:root.has-custom-bg .annotate-bar,:root.has-custom-bg .settings-tabs,:root.has-custom-bg .draw-hint{background:color-mix(in srgb,var(--panel) var(--surface-opacity, 100%),transparent)}:root.has-custom-bg .board-stack,:root.has-custom-bg .board-frame,:root.has-custom-bg .cmp-board{opacity:var(--board-opacity, 1)}.chapter-video{margin:16px 0}.chapter-video.empty{margin:10px 0 16px}.cv-add-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;border:1px dashed var(--border);border-radius:var(--radius)}.cv-add-row input[type=text]{flex:1;min-width:220px}.cv-error{color:var(--red);margin:6px 0 0}.cv-player{position:relative;width:100%;aspect-ratio:16 / 9;background:#000;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border)}.cv-player video,.cv-player iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:none}.cv-bar{display:flex;align-items:center;gap:10px;margin-top:8px;flex-wrap:wrap}.cv-source{font-size:12.5px}.cv-time{font-variant-numeric:tabular-nums}.video-link-btn{display:inline-flex;align-items:center;gap:4px}.video-link-btn.on{color:var(--accent);border-color:var(--accent)}.video-link-time{font-size:11.5px;font-variant-numeric:tabular-nums}.side-tabs .tab-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-left:4px;vertical-align:middle}.annotate-pane{display:flex;flex-direction:column;gap:10px}.annotate-pane h3{display:flex;align-items:center;gap:8px;margin:0}.annotate-note-label{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted)}.annotate-textarea{width:100%;resize:vertical}.annotate-note-actions{display:flex;justify-content:flex-end;gap:8px}.annotate-note-status{min-height:16px;margin-top:-2px;font-size:12px}.annotate-mode{display:flex;gap:6px;align-items:baseline;margin:0 0 10px;padding:7px 10px;border-radius:8px;font-size:12.5px;background:var(--accent-soft, rgba(59, 156, 255, .1));color:var(--text)}.their-note{margin:8px 0;padding:8px 10px;border-left:3px solid var(--border);border-radius:6px;background:var(--card-hover);font-size:13px;color:var(--muted)}.their-note-who{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;margin-bottom:2px}.annotate-error{color:var(--red);font-size:13px;margin:8px 0 0}.annotate-foot{display:flex;gap:8px;flex-wrap:wrap}.annotate-pane .hint{margin:0}.moment-pip{display:inline-flex;align-items:center;justify-content:center;min-width:15px;height:15px;padding:0 3px;margin-left:3px;box-sizing:border-box;border-radius:8px;font-size:9.5px;font-weight:800;line-height:1;vertical-align:middle;font-variant-numeric:tabular-nums;flex:0 0 auto}.moment-pip.before{border:1.5px solid #e8b339;color:#e8b339;background:transparent}.moment-pip.after{background:#3b9cff;color:#fff}.moment-pip.better{background:#2ecc71;color:#fff}.moment-pip.pending{margin-left:0}.moments-panel{display:flex;flex-direction:column;gap:8px;padding-top:10px;border-top:1px solid var(--border)}.moments-head{display:flex;align-items:center;gap:6px;font-weight:700;font-size:13.5px}.moments-count{font-size:11px;font-weight:700;color:var(--muted);border:1px solid var(--border);border-radius:9px;padding:0 6px}.moments-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.moments-actions .moment-pip{margin-left:0}.moments-intro{font-size:12.5px;flex:1 1 180px}.moments-pending .hint{font-size:13px;margin:0 0 6px}.moment-card{border:1px solid var(--border);border-radius:10px;background:var(--card);overflow:hidden}.moment-card.open{border-color:var(--accent)}.moment-summary{display:flex;flex-direction:column;align-items:flex-start;gap:3px;width:100%;padding:8px 10px;border:0;border-radius:0;background:transparent;color:var(--text);text-align:left;cursor:pointer}.moment-summary:hover{background:var(--card-hover)}.moment-name{font-weight:700;font-size:13.5px}.moment-name.untitled{font-weight:600}.moment-places{font-size:12.5px;color:var(--muted)}.moment-places .moment-pip{margin-left:0}.moment-scores{display:flex;flex-wrap:wrap;gap:6px}.moment-score{font-size:11.5px;font-weight:700;font-variant-numeric:tabular-nums;padding:1px 7px;border-radius:9px;border:1px solid var(--border);color:var(--muted)}.moment-score.worse{color:var(--red);border-color:var(--red)}.moment-score.better{color:var(--green);border-color:var(--green)}.moment-body{display:flex;flex-direction:column;gap:8px;padding:0 10px 10px}.moment-jumps{display:flex;flex-wrap:wrap;gap:4px}.moment-jump .moment-pip{margin-left:0;margin-right:2px}.moment-jump.here{color:var(--text);border-color:var(--border)}.moment-between{margin:0;font-size:12.5px}.moment-title-input{width:100%;box-sizing:border-box}.moment-tip{margin:0;font-size:12px}.moment-note{margin:0;font-size:13.5px;line-height:1.45;white-space:pre-wrap}.moment-open{align-self:flex-start}.moments-read-panel .moments-panel{padding-top:0;border-top:0}.moment-boards{display:flex;flex-direction:column;gap:10px;max-width:100%}.moment-boards-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.moment-boards-title{font-weight:700;font-size:15px;min-width:0}.moment-boards-row{display:flex;align-items:flex-start}.moment-board{margin:0;display:flex;flex-direction:column;gap:6px;min-width:0}.moment-board-head{display:flex;align-items:center;gap:6px;min-height:26px;flex-wrap:wrap;font-size:13px}.moment-board-head .moment-pip{margin-left:0}.moment-board-label{font-weight:700}.moment-board-move{color:var(--muted)}.moment-board-foot{display:flex;align-items:center;gap:6px;min-height:26px}.moment-board-pick{margin-left:auto;padding:2px 8px;font-size:12px}.moment-board-frame{position:relative}.moment-board-change{font-size:12.5px}.moment-board.after .moment-board-frame{box-shadow:0 0 0 2px #3b9cff66;border-radius:2px}.moment-board.better .moment-board-frame{box-shadow:0 0 0 2px #2ecc7166;border-radius:2px}.moment-boards-between{margin:0;font-size:13px;color:var(--muted)}.moment-boards-between .moment-pip{margin-left:0}.moment-legend{margin:0;font-size:12px}.moment-tabs{display:flex;gap:4px}.moment-tabs button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:6px 8px;font-size:13px}.moment-tabs button.active{border-color:var(--accent);color:var(--text);font-weight:700}.moment-tabs .moment-pip{margin-left:0}.moment-board-cover{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:0;border-radius:2px;cursor:pointer;color:#fff;background:repeating-linear-gradient(45deg,#1d2633,#1d2633 14px,#222d3b 14px,#222d3b 28px);font-size:18px;font-weight:700}.moment-board-cover-q{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#3b9cff;font-size:34px}.moment-board-cover-tap{font-size:13px;font-weight:500;opacity:.75}.present{position:fixed;top:0;right:0;bottom:0;left:0;z-index:110;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;background:var(--bg);color:var(--text);overflow:auto}.present-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;width:100%;box-sizing:border-box;min-height:58px;padding:10px 16px}.present-count{font-size:13px;font-weight:700;color:var(--muted);white-space:nowrap}.present-title{font-size:20px;font-weight:800;min-width:0}.present-toggle{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);cursor:pointer}.present-boards{display:flex;align-items:flex-start;justify-content:center;padding:4px 16px 0}.present-boards.stacked{flex-direction:column;align-items:center}.present .moment-board-head{font-size:16px;min-height:30px}.present .moment-board-head .moment-pip{min-width:19px;height:19px;font-size:11.5px;border-radius:10px}.present .moment-score{font-size:14px;padding:2px 9px}.present-caption{margin:6px 0 0;padding:0 16px;max-width:1100px;box-sizing:border-box;text-align:center;font-size:17px;line-height:1.45;display:flex;flex-direction:column;gap:4px;align-items:center}.present-note{white-space:pre-wrap}.present-moves{font-size:14px;color:var(--muted)}.present-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;box-sizing:border-box;min-height:62px;padding:10px 16px}.present-nav{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:8px 18px;font-size:15px;font-weight:700}.present-dots{display:flex;flex-wrap:wrap;justify-content:center;gap:4px}.present-dot{padding:4px;border:0;background:transparent}.present-dot .moment-pip{margin-left:0;min-width:20px;height:20px;font-size:11px;border-radius:10px}.review-moments{display:flex;flex-direction:column;gap:6px;margin:0 0 10px;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--card)}.review-moments-head{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--muted)}.review-moments-list{display:flex;flex-wrap:wrap;gap:6px}.review-moment{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;font-size:13.5px;text-align:left}.review-moment .moment-pip{margin-left:0}@media (min-width: 601px){.present-foot{padding-right:calc(16px + 62px + var(--safe-right))}}.study-import{display:flex;gap:8px;margin-top:10px;width:100%}.study-url-input{flex:1;min-width:0}.study-error{color:var(--red);display:block;margin-top:6px}.study-games{margin-top:8px;display:flex;flex-direction:column;gap:6px}.study-games-list{display:flex;flex-wrap:wrap;gap:6px}.pgn-paste-row{display:flex;gap:8px;margin-top:8px;width:100%;align-items:flex-start}.pgn-paste-textarea{flex:1;min-width:0;resize:vertical;font-family:inherit}.pgn-upload-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;width:100%}.pgn-upload-row .muted-note{font-size:12.5px}.archive-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;width:100%;padding:6px 10px;border:1px solid var(--border);border-radius:10px;background:var(--card)}.archive-bar-name{min-width:0;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.archive-modal{max-width:760px;max-height:min(86vh,900px);gap:10px}.archive-head{display:flex;align-items:baseline;gap:10px}.archive-head h3{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.archive-note{font-size:12.5px}.archive-search{display:flex;align-items:center;gap:8px;padding:0 10px;color:var(--muted);border:1px solid var(--border);border-radius:10px;background:var(--card)}.archive-search input{flex:1;min-width:0;border:0;background:transparent;padding:9px 0}.archive-search input:focus{outline:none}.archive-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px}.archive-list{flex:1 1 auto;min-height:120px;overflow-y:auto;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:10px}.archive-row{display:flex;align-items:center;gap:4px;padding:0 6px 0 10px;border-bottom:1px solid var(--border)}.archive-row:last-child{border-bottom:0}.archive-row.picked{background:#3b9cff12}.archive-row.current{box-shadow:inset 3px 0 0 var(--accent)}.archive-row input[type=checkbox]{width:18px;height:18px;flex:0 0 auto}.archive-open{flex:1;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;padding:8px 6px;text-align:left;background:transparent;border:0;border-radius:0;color:var(--text)}.archive-open:hover{background:var(--card-hover)}.archive-players{font-weight:600;font-size:14px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.archive-elo{font-weight:400;color:var(--muted);font-size:12.5px}.archive-result{font-weight:700;font-variant-numeric:tabular-nums;font-size:13.5px}.archive-meta{grid-column:1 / -1;font-size:12.5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.archive-empty{padding:14px;margin:0}.archive-report{display:flex;align-items:baseline;gap:6px;margin:0;font-size:13px;color:var(--green)}.archive-save{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13.5px}.archive-save select{flex:1 1 160px;min-width:0}.analysis-page.file-dropping:after{content:"Drop a .pgn or .zip to open it";position:fixed;top:12px;right:12px;bottom:12px;left:12px;z-index:80;pointer-events:none;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;color:var(--text);border:3px dashed var(--accent);border-radius:18px;background:#14171d99}@media (max-width: 600px){.archive-modal{max-height:92vh;padding:16px}}.lichess-row{display:flex;flex-direction:column;gap:6px;margin:12px 0}.lichess-input{display:flex;gap:8px}.lichess-input input{flex:1;min-width:0}.lichess-error{color:var(--red);line-height:1.45}.move-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;font-weight:800;line-height:1;margin-left:4px;vertical-align:middle;flex:0 0 auto}.badge-picker{margin-bottom:10px}.badge-picker label{display:block;margin-bottom:5px}.badge-row{display:flex;flex-wrap:wrap;gap:6px}.badge-pick{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:20px;cursor:pointer;border:1px solid var(--border);background:var(--card);color:var(--text);font-size:12.5px}.badge-pick:hover{background:var(--card-hover)}.badge-pick.on{color:#fff;font-weight:700}.bp-glyph{font-weight:800}.share-modal{max-width:720px}.share-cols{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;margin:12px 0}.share-col-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.share-list{max-height:260px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius);padding:6px;display:flex;flex-direction:column;gap:2px}.share-item{display:flex;align-items:flex-start;gap:9px;padding:7px 8px;border-radius:8px;cursor:pointer}.share-item:hover{background:var(--card-hover)}.share-item.dimmed{opacity:.4;cursor:default}.share-item span{display:flex;flex-direction:column;line-height:1.35;min-width:0}.share-item strong{font-size:13.5px}.share-tree{max-height:320px}.tree-row{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:7px;cursor:pointer;font-size:13.5px}.tree-row:hover{background:var(--card-hover)}.tree-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-caret{width:18px;flex:0 0 auto;padding:0;background:none;border:none;color:var(--muted);cursor:pointer;font-size:11px}.tree-caret:hover{color:var(--text);background:none}.tree-chapter{margin-left:18px}.tree-line{margin-left:18px;font-size:13px;color:var(--muted)}.tree-line .tree-name{color:var(--text)}.share-col-head .muted-note{margin-left:auto;margin-right:8px;font-size:12px}.share-summary{border-top:1px solid var(--border);padding-top:10px;display:flex;flex-direction:column;gap:3px;font-size:13px}@media (max-width: 620px){.share-cols{grid-template-columns:1fr}}.lab-panel{display:flex;flex-direction:column;gap:9px;margin-top:12px}.lab-head{display:flex;align-items:center;gap:8px}.lab-head strong{font-size:15px}.lab-saved-pill{font-size:10.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--green);border:1px solid var(--green);border-radius:20px;padding:1px 7px}.lab-title{width:100%;font-size:14.5px;font-weight:600;padding:8px 11px;border-radius:9px;border:1px solid var(--border);background:var(--track);color:var(--text)}.lab-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.lab-panel .hint{margin:0}.group-row-lab{align-items:flex-start}.lab-row-main{display:flex;flex-direction:column;gap:2px;align-items:flex-start;background:none;border:none;padding:4px 0;text-align:left;color:inherit;cursor:pointer;min-width:0;flex:1}.lab-row-main:hover .lab-row-title{color:var(--accent)}.lab-row-title{font-weight:600;font-size:14.5px}.lab-row-meta{font-size:12px}.lab-row-note{font-size:13px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:70ch}.board-colours{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap}.board-preview{display:grid;grid-template-columns:44px 44px;grid-template-rows:44px 44px;border-radius:6px;overflow:hidden;border:1px solid var(--border);flex:0 0 auto}.bpv-sq{display:flex;align-items:center;justify-content:center}.colour-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:10px;flex:1;min-width:240px}.colour-field{display:flex;align-items:center;gap:10px;cursor:pointer}.colour-field input[type=color]{width:34px;height:34px;padding:0;flex:0 0 auto;border:1px solid var(--border);border-radius:8px;background:none;cursor:pointer}.cf-text{display:flex;flex-direction:column;line-height:1.3}.cf-text strong{font-size:13.5px}.cf-text .muted-note{font-size:11.5px;font-variant-numeric:tabular-nums}.board-preset{display:inline-flex;align-items:center;gap:7px;font-size:13px;padding:6px 11px;border:1px solid var(--border);border-radius:20px;background:var(--card);color:var(--text);cursor:pointer}.board-preset:hover{background:var(--card-hover)}.bp-swatch{width:15px;height:15px;border-radius:4px;border:1px solid var(--border)}.bg-preview{width:100%;height:132px;border-radius:var(--radius);border:1px solid var(--border);background-size:cover;background-position:center;margin-bottom:10px}.bg-veil-row{display:flex;align-items:center;gap:12px;margin:4px 0 12px}.bg-veil-row input[type=range]{flex:1}.bg-veil-row .val{min-width:42px;text-align:right;font-variant-numeric:tabular-nums;color:var(--muted);font-size:13px}:root[data-theme=light]{--bg: #f4f6fa;--panel: #ffffff;--card: #ffffff;--card-hover: #eef2f8;--border: #d7dded;--text: #1a1f29;--muted: #5d6577;--accent: #1f6fd0;--accent-dim: #2f80e0;--green: #1a9c53;--red: #d03a32;--amber: #b8820c;--track: #e3e8f1;--scrim: rgba(26, 31, 41, .35);--shadow: rgba(31, 41, 61, .18);--chip-bg: rgba(255, 255, 255, .7);--outline: rgba(18, 24, 36, .55);--text-halo: rgba(255, 255, 255, .88)}:root[data-theme=light] .chapter-card,:root[data-theme=light] .variation-row,:root[data-theme=light] .scope-card,:root[data-theme=light] .group-block,:root[data-theme=light] .cmp-side,:root[data-theme=light] .opening-row,:root[data-theme=light] .practice-status,:root[data-theme=light] .book-panel,:root[data-theme=light] .study-panel{box-shadow:0 1px 2px #1f293d0f}:root[data-theme=light] .topbar{box-shadow:0 1px 3px #1f293d12}:root[data-theme=light] .color-badge.white{background:#1a1f29;color:#fff}:root[data-theme=light] .color-badge.black{background:#1a1f29;color:#fff}*{box-sizing:border-box}[data-boardid],[data-boardid] *,.practice-board,.practice-board *,.analysis-board,.analysis-board *,.viewer-board,.viewer-board *,.book-board,.book-board *{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}[data-boardid] img,[data-boardid] svg{-webkit-user-drag:none}:root{--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--status-gap: min(var(--safe-top), 10px)}html{background:var(--bg)}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:15px;line-height:1.45}button{font:inherit;color:inherit;background:var(--card);border:1px solid var(--border);border-radius:8px;padding:7px 14px;cursor:pointer;transition:background .15s,border-color .15s}button:hover{background:var(--card-hover)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.primary:hover{background:#5af}button.danger:hover{border-color:var(--red);color:var(--red)}button.ghost{background:transparent;border-color:transparent;color:var(--muted)}button.ghost:hover{color:var(--text);background:var(--card)}button.small{padding:3px 10px;font-size:13px;border-radius:6px}input[type=text],input[type=password],textarea,select{font:inherit;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:8px 12px;outline:none}input:focus,textarea:focus,select:focus{border-color:var(--accent-dim)}textarea{width:100%;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.loading-screen{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--muted);font-size:18px}.ptr-indicator{position:fixed;left:50%;z-index:500;top:calc(var(--safe-top) + var(--status-gap) + 6px);margin-top:-46px;width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--card);color:var(--accent);border:1px solid var(--border);box-shadow:0 4px 14px var(--shadow);transform:translate(-50%);opacity:0;pointer-events:none}.ptr-indicator.visible{opacity:1}.ptr-icon{display:flex}.ptr-icon.spinning{animation:ptr-spin .7s linear infinite}@keyframes ptr-spin{to{transform:rotate(360deg)}}@media (display-mode: standalone){html,body{overscroll-behavior-y:contain}}.topbar{display:flex;align-items:center;gap:18px;padding:calc(12px + var(--safe-top) + var(--status-gap)) calc(24px + var(--safe-right)) 12px calc(24px + var(--safe-left));background:var(--panel);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}.topbar .logo{font-weight:800;font-size:18px;letter-spacing:.3px;display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;background:none;border:none;padding:0;color:inherit;font-family:inherit;line-height:inherit;flex:0 0 auto}.topbar .logo:hover{background:none}.topbar .logo:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:6px}.topbar .logo .knight{width:26px;height:26px;border-radius:7px;display:block;flex:0 0 auto;transition:transform .15s}.topbar .logo:hover .knight{transform:scale(1.08)}.topbar nav{display:flex;gap:4px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}.topbar nav::-webkit-scrollbar{display:none}.topbar nav button{flex:0 0 auto;background:transparent;border:none;color:var(--muted);font-weight:600;padding:8px 14px;border-radius:8px}.topbar nav button:hover{color:var(--text);background:var(--card)}.topbar nav button.active{color:#fff;background:var(--accent-dim)}.nav-divider{width:1px;align-self:stretch;margin:6px 6px 6px auto;background:var(--border);flex-shrink:0}.page{max-width:1180px;margin:0 auto;padding:26px calc(24px + var(--safe-right)) calc(80px + var(--safe-bottom)) calc(24px + var(--safe-left))}.page.wide{max-width:1360px}.page.wide.analysis-page{max-width:1424px}.page-head{display:flex;align-items:center;gap:14px;margin-bottom:20px;flex-wrap:wrap}.page-head h1{font-size:24px;margin:0;flex:1;min-width:200px}.review-summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 14px;margin:-8px 0 18px;border-radius:8px;background:var(--card);border:1px solid var(--border);font-size:13.5px}.rs-side{display:flex;align-items:center;gap:5px;font-weight:600}.rs-dot{width:9px;height:9px;border-radius:50%;display:inline-block}.rs-dot.white{background:#e9ecf2;border:1px solid #9aa3b2}.rs-dot.black{background:#14171d;border:1px solid #9aa3b2}.opening-section{margin-bottom:38px}.opening-head{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}.opening-head h2{margin:0;font-size:20px}.color-badge{font-size:11px;font-weight:700;letter-spacing:.5px;padding:3px 9px;border-radius:20px;cursor:pointer;border:1px solid var(--border);-webkit-user-select:none;user-select:none}.color-badge.white{background:#e9ecf2;color:#14171d}.color-badge.black{background:#0d0f13;color:#e9ecf2}.opening-head .spacer{flex:1}.chapter-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}.chapter-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px;cursor:pointer;display:flex;flex-direction:column;gap:12px;min-height:150px;transition:background .15s,transform .1s}.chapter-card:hover{background:var(--card-hover);transform:translateY(-2px)}.chapter-card h3{margin:0;font-size:16.5px;line-height:1.35;flex:1}.chapter-meta{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:14px}.chapter-meta .counts strong{color:var(--text)}.due-pill{color:var(--green);font-weight:700;display:flex;align-items:center;gap:4px}.progress-track{height:7px;background:var(--track);border-radius:6px;overflow:hidden}.progress-fill{height:100%;background:var(--accent);border-radius:6px}.progress-fill.done{background:var(--green)}.chapter-card .card-actions{display:flex;gap:8px}.add-card{border:1.5px dashed var(--border);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;color:var(--muted);cursor:pointer;min-height:150px;font-weight:600;background:transparent}.add-card:hover{color:var(--accent);border-color:var(--accent-dim);background:var(--card)}.breadcrumb{display:flex;align-items:center;gap:8px;color:var(--muted);margin-bottom:18px;font-size:14px}.breadcrumb a{color:var(--accent);cursor:pointer;text-decoration:none}.breadcrumb a:hover{text-decoration:underline}.variation-row{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;margin-bottom:14px}.variation-row .row-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.variation-row .row-head h3{margin:0;font-size:16px;flex:1}.variation-moves{font-size:15px;line-height:1.7;cursor:pointer;font-weight:600}.variation-moves .mvnum{color:var(--muted);font-weight:400;margin-right:1px}.variation-moves .mv{margin-right:6px}.variation-moves:hover{color:var(--accent)}.variation-row .row-foot,.game-card .row-foot{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:10px;flex-wrap:wrap}.game-card .row-foot .gi-peek{flex:1 1 220px;min-width:0}.learn-btn{position:relative;padding:8px 22px;font-weight:600}.learn-btn .badge{position:absolute;top:-9px;right:-9px;background:var(--accent);color:#fff;font-size:11.5px;font-weight:700;min-width:20px;height:20px;border-radius:10px;display:flex;align-items:center;justify-content:center;padding:0 5px}.learn-btn .badge.due{background:var(--green)}.viewer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);display:flex;align-items:center;justify-content:center;z-index:50;padding:calc(20px + var(--safe-top)) calc(20px + var(--safe-right)) calc(20px + var(--safe-bottom)) calc(20px + var(--safe-left))}.viewer-panel{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:20px;display:flex;gap:20px;max-width:950px;width:100%;max-height:92vh}.viewer-board{flex:0 0 auto}.viewer-side{flex:1;min-width:240px;display:flex;flex-direction:column;gap:12px;overflow:hidden}.viewer-panel.stacked{flex-direction:column;overflow-y:auto}.viewer-panel.stacked .viewer-board{align-self:center}.viewer-panel.stacked .viewer-side{min-width:0;overflow:visible}@media (max-width: 600px){.viewer-panel{flex-direction:column;overflow-y:auto}.viewer-side{min-width:0}.viewer-board{align-self:center}}.viewer-side h3{margin:0;font-size:17px}.viewer-moves{flex:1;overflow-y:auto;background:var(--bg);border-radius:10px;padding:12px;line-height:2;font-size:15px}.viewer-moves .mv{cursor:pointer;padding:2px 5px;border-radius:5px;font-weight:600}.viewer-moves .mv:hover{background:var(--card-hover)}.viewer-moves .mv.current{background:var(--accent-dim);color:#fff}.viewer-moves .mvnum{color:var(--muted);margin-right:1px}.viewer-controls{display:flex;gap:8px;justify-content:center}.tabs{display:flex;gap:6px;margin-bottom:20px;align-items:center}.tabs button{border-radius:8px;color:var(--muted);font-weight:600}.tabs button.active{background:var(--accent-dim);border-color:var(--accent-dim);color:#fff}.tabs select{border-radius:8px;font-weight:600;padding:7px 10px}.tabs select.active{background:var(--accent-dim);border-color:var(--accent-dim);color:#fff}.dropzone{border:2px dashed var(--border);border-radius:var(--radius);padding:44px 20px;text-align:center;color:var(--muted);cursor:pointer;transition:border-color .15s,background .15s;margin-bottom:20px}.dropzone.drag{border-color:var(--accent);background:#3b9cff0f;color:var(--text)}.dropzone strong{color:var(--text)}.import-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:16px;display:flex;gap:16px}.import-card img{width:130px;height:130px;object-fit:contain;background:#0e1014;border-radius:8px;flex:0 0 auto}.import-thumbs{display:flex;flex-direction:column;gap:6px;flex:0 0 auto}.rotate-row{display:flex;gap:4px;justify-content:center}.rotate-row button{font-size:16px;padding:2px 10px}.vision-setup{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-bottom:18px;display:flex;flex-direction:column;gap:10px}.vision-setup .settings-row{margin-bottom:0}.checkbox-inline{display:flex;align-items:center;gap:6px;font-size:13.5px;color:var(--muted);cursor:pointer}.setup-link{color:var(--accent);font-size:13.5px;text-decoration:none;white-space:nowrap}.setup-link:hover{text-decoration:underline}.import-card .import-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}.status-line{font-size:13.5px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.status-ok{color:var(--green);font-weight:600}.status-bad{color:var(--red);font-weight:600}.status-busy{color:var(--amber);font-weight:600}.corrections{color:var(--muted);font-size:12.5px}.assign-bar{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;position:sticky;bottom:calc(12px + var(--safe-bottom))}.assign-bar label{display:flex;flex-direction:column;gap:5px;font-size:12.5px;color:var(--muted);font-weight:600}.assign-bar .grow{flex:1;min-width:140px}.settings-row{display:flex;gap:10px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.practice-layout{display:flex;gap:26px;align-items:flex-start;flex-wrap:wrap}.practice-layout.with-list{gap:18px}.variation-list{flex:0 0 244px;width:244px;align-self:flex-start;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;overflow:hidden}.vl-head{display:flex;align-items:center;gap:10px;padding:12px 12px 10px}.vl-art{width:40px;height:40px;border-radius:8px;flex:0 0 auto;object-fit:cover}.vl-head-text{display:flex;flex-direction:column;min-width:0;flex:1}.vl-head-text strong{font-size:14px;line-height:1.25}.vl-head-text .muted-note{font-size:12px}.vl-collapse,.vl-reopen{background:none;border:1px solid var(--border);border-radius:7px;color:var(--muted);padding:1px 7px;font-size:13px;line-height:1.5;align-self:flex-start}.vl-collapse:hover,.vl-reopen:hover{color:var(--text);border-color:var(--accent)}.vl-reopen{flex:0 0 auto;margin-top:4px}.vl-chapter{display:flex;align-items:center;gap:10px;padding:10px 12px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--panel)}.vl-chapter-name{font-weight:700;font-size:13.5px;flex:1;min-width:0}.ring{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.ring-track{fill:none;stroke:var(--border);stroke-width:4}.ring-fill{fill:none;stroke:var(--accent);stroke-width:4;stroke-linecap:round}.ring-label{position:absolute;font-size:10.5px;font-weight:700;color:var(--muted)}.vl-items{overflow-y:auto;max-height:min(62vh,560px);position:relative}.vl-items:before{content:"";position:absolute;top:10px;bottom:10px;right:20px;border-right:2px dotted var(--border);pointer-events:none}.vl-item{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid var(--border);color:var(--text);font:inherit;font-size:13px;padding:10px 12px;border-radius:0}.vl-item:hover{background:var(--card-hover)}.vl-item.active{background:var(--accent);color:#fff}.vl-item.active .vl-dot{border-color:#fffc;color:#fff}.vl-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vl-dot{flex:0 0 auto;width:17px;height:17px;border-radius:50%;border:1.5px solid var(--border);color:var(--muted);display:inline-flex;align-items:center;justify-content:center;background:var(--card);position:relative;z-index:1}.vl-item.active .vl-dot{background:var(--accent)}.vl-dot.practiced,.vl-dot.done{border-color:var(--green);color:var(--green)}.vl-dot.due{border-color:var(--accent);color:var(--accent)}.vl-dot.learning{border-color:var(--muted);background:var(--border)}.practice-board{flex:0 0 auto;display:flex;flex-direction:column}.tag-chips{display:inline-flex;flex-wrap:wrap;gap:5px;vertical-align:middle}.tag-chip{display:inline-flex;align-items:center;gap:5px;background:#9b6bff29;color:#c4a5ff;border:1px solid rgba(155,107,255,.35);border-radius:20px;padding:1px 9px;font-size:11.5px;font-weight:600;white-space:nowrap}.tag-chip.more{background:transparent;color:var(--muted);border-color:var(--border)}.tag-chip.clickable{cursor:pointer}.tag-chip.clickable:hover{background:#9b6bff4d}.tag-chip.removable button{background:transparent;border:none;color:inherit;padding:0 0 0 2px;font-size:11px;cursor:pointer;line-height:1}.tag-current{display:flex;flex-wrap:wrap;gap:6px;min-height:24px;align-items:center}.tag-suggest{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.star-btn{background:transparent;border:none;padding:2px;font-size:18px;line-height:0;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center}.star-btn:hover{color:var(--amber);background:transparent}.star-btn.on{color:var(--amber)}.star-inline{color:var(--amber);margin-right:5px}.variation-nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.variation-nav button{padding:0 7px;font-size:11px}.search-overlay{align-items:flex-start;padding-top:calc(8vh + var(--safe-top))}.search-panel{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:18px;width:100%;max-width:760px;display:flex;flex-direction:column;gap:12px;max-height:82vh}.search-head{display:flex;align-items:center;gap:10px}.search-head .tabs{margin-bottom:0}.search-input{width:100%;font-size:15px;padding:11px 14px}.search-results{overflow-y:auto;display:flex;flex-direction:column;gap:8px}.search-hit{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:10px 14px;cursor:pointer}.search-hit:hover{background:var(--card-hover);border-color:var(--accent-dim)}.search-crumbs{font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);margin-bottom:3px}.search-title{font-size:15px;font-weight:600}.search-moves{font-size:13.5px;margin-top:5px;line-height:1.7}.search-moves .mv{font-weight:600}.search-moves .mv.current{background:var(--accent-dim);color:#fff;border-radius:4px;padding:1px 4px}.search-parsed{background:var(--card);border-radius:10px;padding:10px 14px;font-size:13.5px;line-height:1.7}.annotate-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;width:100%;margin-top:10px}.pens{display:inline-flex;gap:5px}.pen{width:22px;height:22px;padding:0;border-radius:50%;border:2px solid transparent;cursor:pointer}.pen:hover{transform:scale(1.1)}.pen.active{border-color:var(--text);box-shadow:0 0 0 2px var(--bg)}.review-bar{display:flex;align-items:center;gap:8px;margin-top:12px;padding:8px 12px;width:100%;background:#e8b3391a;border:1px solid rgba(232,179,57,.4);border-radius:10px;color:var(--amber);font-size:13.5px;font-weight:600}.board-next{margin-top:12px;width:100%;padding:12px;font-size:16px;font-weight:700}.practice-side{flex:1;min-width:320px;display:flex;flex-direction:column;gap:14px}.practice-status{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px}.practice-status h3{margin:0 0 6px}.practice-status .sub{color:var(--muted);font-size:14px}.feedback{font-size:16px;font-weight:700;min-height:24px}.feedback.good{color:var(--green)}.feedback.bad{color:var(--red)}.feedback.hint{color:var(--amber)}.practice-moves-played{background:var(--bg);border-radius:10px;padding:12px;line-height:1.9;font-size:14.5px;max-height:200px;overflow-y:auto}.scope-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;margin-bottom:12px;display:flex;align-items:center;gap:14px;cursor:pointer}.scope-card:hover{background:var(--card-hover)}.scope-card .scope-info{flex:1}.scope-card h3{margin:0;font-size:16px}.scope-card .sub{color:var(--muted);font-size:13.5px}.big-num{font-size:22px;font-weight:800;color:var(--green)}.big-num.zero{color:var(--muted)}.analysis-layout{display:grid;gap:22px;align-items:start}.analysis-layout.three-col{grid-template-columns:var(--board-col, minmax(0, 1fr)) minmax(300px,1fr) minmax(220px,260px)}.analysis-layout.three-col.tight{gap:14px;grid-template-columns:var(--board-col, minmax(0, 1fr)) minmax(268px,1fr) minmax(178px,210px)}.analysis-layout.compact .panel{padding:11px 12px}.analysis-layout.compact .analysis-engine,.analysis-layout.compact .analysis-cards{gap:10px}.analysis-layout.compact .analysis-moves-col>.panel+.panel{margin-top:10px}.analysis-layout.compact .engine-line{padding:5px 6px;font-size:13px;gap:7px}.analysis-layout.compact .engine-line .eval{min-width:46px}.analysis-layout.compact .analysed-game{gap:5px}.analysis-layout.compact .side-tabs{margin-bottom:8px}.analysis-layout.compact .side-tabs button{padding:5px 8px;font-size:13px}.analysis-layout.compact h3{font-size:15px}.analysis-layout.compact .panel h3{margin-bottom:8px}.analysis-layout.tight .mt-move{font-size:13px;padding:2px 5px}.analysis-layout.tight .mt-num{font-size:11.5px}.page.tight-page{padding-top:16px;padding-bottom:18px}.page.tight-page .page-head{margin-bottom:12px}.tight-page .draw-hint{font-size:12px;margin-top:2px}.tight-page .viewer-controls{margin-top:6px}.tight-page .fen-row{margin-top:8px}.tight-page .annotate-bar{margin-top:6px}.analysis-layout.two-col{grid-template-columns:var(--board-col, minmax(0, 1fr)) minmax(320px,1fr)}.analysis-layout.two-col .analysis-moves-col,.analysis-layout.three-col .analysis-moves-col,.analysis-layout.two-col .analysis-engine,.analysis-layout.three-col .analysis-engine{min-width:0}.analysis-layout.two-col{grid-template-rows:auto minmax(0,1fr)}.analysis-layout.two-col .analysis-board{grid-column:1;grid-row:1 / span 2}.analysis-layout.two-col .analysis-engine{grid-column:2;grid-row:1}.analysis-layout.two-col .analysis-moves-col{grid-column:2;grid-row:2}.analysis-layout.three-col .analysis-moves-col{max-height:max(var(--board-h, 520px),var(--side-h, 0px));overflow-y:auto}.analysis-layout.three-col .analysis-moves-col{scrollbar-width:thin;padding-right:2px}.analysis-layout.stacked{grid-template-columns:minmax(0,1fr)}.analysis-layout.stacked .analysis-board{justify-self:center}.analysis-engine,.analysis-moves-col{display:flex;flex-direction:column;gap:16px;min-width:0}.analysis-cards{display:grid;gap:16px;min-width:0;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr))}.analysis-cards>*{min-width:0}.analysis-layout.dock{display:flex;gap:0;align-items:flex-start}.dock-col{display:flex;flex-direction:column;gap:16px;min-width:0}.analysis-layout.compact .dock-col{gap:10px}.dock-col>.dock-group{min-width:0}.dock-col .panel h3{flex-wrap:wrap}.dock-col select{max-width:100%}.dock-divider{align-self:stretch;position:relative;min-height:40px}.dock-divider.live{cursor:col-resize;touch-action:none}.dock-divider.live:after{content:"";position:absolute;top:0;bottom:0;left:50%;width:4px;transform:translate(-50%);border-radius:2px;background:var(--border)}.dock-divider.live:hover:after,.dock-divider.live:active:after{background:var(--accent)}.analysis-layout.dock.dock-stacked{flex-direction:column;align-items:stretch;gap:16px}.dock-stacked .dock-col{width:100%}.dock-stacked .dock-board{align-self:center;max-width:100%}.dock-tabs .panel{background:none;border:0;padding:0;box-shadow:none;border-radius:0}.dock-card{min-width:0}.dock-placeholder{display:flex;flex-direction:column;gap:4px;border-style:dashed;opacity:.75}.dock-collapsed{width:100%;text-align:left;padding:8px 12px;font-weight:600;font-size:13.5px;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);color:var(--muted)}.dock-group.customizing{outline:1.5px dashed var(--border);outline-offset:3px;border-radius:var(--radius)}.dock-chrome{display:flex;align-items:center;gap:6px;min-height:32px;margin-bottom:6px;font-size:13px;font-weight:700;color:var(--muted)}.dock-grip{display:inline-flex;align-items:center;justify-content:center;width:34px;height:32px;padding:0;cursor:grab;touch-action:none;color:var(--muted);background:var(--panel);border:1px solid var(--border);border-radius:8px}.dock-grip:active{cursor:grabbing;color:var(--accent);border-color:var(--accent)}.dock-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dock-btn{width:32px;height:32px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border);border-radius:8px;color:var(--muted);font-size:13px}.dock-btn:hover{color:var(--text);border-color:var(--text)}.dock-tab-grab{touch-action:none;cursor:grab}.dock-dragging,.dock-dragging *{-webkit-user-select:none;user-select:none;cursor:grabbing}.dock-guide{position:fixed;z-index:95;pointer-events:none;background:var(--accent);border-radius:2px}.dock-guide.box{background:#3b9cff1f;border:2px solid var(--accent);border-radius:var(--radius)}.dock-ghost{position:fixed;z-index:96;pointer-events:none;padding:6px 10px;border-radius:8px;background:var(--panel);color:var(--text);border:1px solid var(--accent);font-size:13px;font-weight:700;box-shadow:0 6px 18px var(--shadow);white-space:nowrap}.ws-pick{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;flex:0 0 auto}.ws-name{max-width:140px;overflow:hidden;text-overflow:ellipsis}.tight-page .ws-name{display:none}@media (max-width: 1240px){.ws-name{display:none}}.ws-customize-bar{position:fixed;z-index:100;left:50%;transform:translate(-50%);bottom:calc(14px + var(--safe-bottom));display:flex;align-items:center;gap:8px;padding:8px 10px;max-width:calc(100vw - 96px - var(--safe-left) - var(--safe-right));background:var(--panel);border:1px solid var(--accent);border-radius:14px;box-shadow:0 8px 26px var(--shadow)}.modal-overlay.ws-dialog-overlay{z-index:110}.ws-customize-title{white-space:nowrap;font-size:14px}.ws-customize-hint{font-size:12.5px;min-width:0;flex:1 1 auto}.ws-customize-bar button{flex:0 0 auto;white-space:nowrap;display:inline-flex;align-items:center;gap:5px}@media (max-width: 900px){.ws-customize-hint{display:none}}@media (max-width: 600px){.ws-customize-bar{left:calc(8px + var(--safe-left));right:calc(8px + var(--safe-right));transform:none;max-width:none}.ws-customize-title{flex:1}}.dock-customizing{padding-bottom:72px}.board-with-eval{display:flex;gap:10px;align-items:stretch}.board-column{display:flex;flex-direction:column;gap:4px}.eval-bar{position:relative;width:16px;flex:0 0 auto;border-radius:4px;overflow:hidden;border:1px solid var(--border)}.eval-bar-black{position:absolute;top:0;right:0;bottom:0;left:0;background:#10151d}.eval-bar-white{position:absolute;left:0;right:0;bottom:0;background:#eef2f8;transition:height .25s ease}.eval-bar-label{position:absolute;left:0;right:0;text-align:center;font-size:9px;font-weight:800;letter-spacing:-.2px}.eval-bar-label.low{bottom:2px;color:#10151d}.eval-bar-label.high{top:2px;color:#eef2f8}.eval-bar.flipped .eval-bar-white{top:0;bottom:auto}.eval-bar.flipped .eval-bar-label.low{top:2px;bottom:auto}.eval-bar.flipped .eval-bar-label.high{bottom:2px;top:auto}.analysis-board{display:flex;flex-direction:column;gap:12px;min-width:0}.analysis-side{min-width:0;display:flex;flex-direction:column;gap:16px}.panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.panel h3{margin:0 0 12px;font-size:15px;display:flex;align-items:center;gap:10px}.panel h3 .spacer{flex:1}.game-notes-panel{display:flex;flex-direction:column;gap:8px}.game-notes-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13.5px}.game-notes-input{width:100%;resize:vertical;font-family:inherit;font-size:13.5px}.flag-picker{display:flex;flex-wrap:wrap;gap:6px}.flag-chip{border:1px solid var(--border);background:var(--panel);color:var(--muted);border-radius:999px;padding:4px 11px;font-size:12.5px;font-weight:600}.flag-chip.active{color:#fff}.flag-chip.add{color:var(--muted);border-style:dashed}.flag-add-input{border-radius:999px;padding:4px 11px;font-size:12.5px;width:130px}.engine-line{display:flex;gap:10px;align-items:baseline;padding:7px 8px;border-radius:8px;font-size:14px;cursor:pointer}.engine-line:hover{background:var(--card-hover)}.engine-line .eval{font-weight:800;min-width:56px;font-variant-numeric:tabular-nums}.engine-line .eval.white-good{color:var(--text)}.engine-line .eval.black-good{color:var(--muted)}.engine-line .pv{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.depth-tag{color:var(--muted);font-size:12.5px;font-weight:400}.explorer-table{width:100%;border-collapse:collapse;font-size:14px}.explorer-table th{text-align:left;color:var(--muted);font-weight:600;font-size:12.5px;padding:4px 8px}.explorer-table td{padding:6px 8px}.explorer-table tbody tr{cursor:pointer;border-radius:8px}.explorer-table tbody tr:hover td{background:var(--card-hover)}.explorer-table td:first-child{font-weight:700}.wdl-bar{display:flex;height:16px;border-radius:4px;overflow:hidden;min-width:120px;font-size:10.5px;line-height:16px}.wdl-bar .w{background:#e9ecf2;color:#14171d;text-align:center}.wdl-bar .d{background:#6b7385;color:#fff;text-align:center}.wdl-bar .b{background:#0d0f13;color:#cfd4de;text-align:center}.fen-row{display:flex;gap:8px}.fen-row input{flex:1;font-family:ui-monospace,Menlo,monospace;font-size:12.5px}.analysis-movelist{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:12px;line-height:2;font-size:14.5px;max-height:160px;overflow-y:auto}.analysis-movelist .mv{cursor:pointer;padding:2px 5px;border-radius:5px;font-weight:600}.analysis-movelist .mv:hover{background:var(--card-hover)}.analysis-movelist .mv.current{background:var(--accent-dim);color:#fff}.analysis-movelist .mvnum{color:var(--muted)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);display:flex;align-items:center;justify-content:center;z-index:60;padding:calc(20px + var(--safe-top)) calc(20px + var(--safe-right)) calc(20px + var(--safe-bottom)) calc(20px + var(--safe-left))}.modal{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:22px;width:100%;max-width:460px;display:flex;flex-direction:column;gap:14px}.modal h3{margin:0}.modal .modal-actions{display:flex;justify-content:flex-end;gap:10px}.modal p.hint{color:var(--muted);font-size:13.5px;margin:0}.modal.reset-board p{margin:0}.modal .reset-warn{display:flex;gap:8px;align-items:flex-start;font-size:13.5px;color:var(--amber)}.modal .reset-warn svg{flex:none;margin-top:2px}.empty-note{color:var(--muted);text-align:center;padding:40px 0}.mv.has-comment{border-bottom:2px dotted rgba(232,179,57,.7);cursor:help}.comment-box{background:#e8b33914;border:1px solid rgba(232,179,57,.35);border-radius:10px;padding:10px 14px;font-size:14px;line-height:1.55}.comment-editor{display:flex;flex-direction:column;gap:8px}.comment-editor label{font-size:12.5px;color:var(--muted);font-weight:600}.muted-note{color:var(--muted);font-size:13px}.roster-subtitle{color:var(--muted);margin-top:-8px}.phase-tag{display:inline-block;padding:2px 10px;border-radius:12px;font-size:11.5px;font-weight:700;letter-spacing:.3px;text-transform:uppercase}.phase-tag.phase-teach{background:#2ecc712e;color:var(--green)}.phase-tag.phase-recall{background:#3b9cff2e;color:var(--accent)}.phase-tag.phase-drill{background:#e8b3392e;color:var(--amber)}.phase-tag.phase-practice{background:#8b93a72e;color:var(--muted)}.bulk-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}.bulk-preview{margin:0;padding-left:22px;max-height:340px;overflow-y:auto;font-size:13px;color:var(--muted);line-height:1.5}.bulk-preview li{margin-bottom:6px}.bulk-preview li.changed{color:var(--green)}.bulk-moves{display:block;font-size:11.5px;opacity:.65}@media (max-width: 620px){.bulk-grid{grid-template-columns:1fr}}.verify-banner{border-radius:var(--radius);padding:12px 16px;margin-bottom:18px;font-size:14.5px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.verify-banner.clean{background:#2ecc711a;border:1px solid rgba(46,204,113,.4);color:var(--green)}.verify-banner.attention{background:#e8b3391a;border:1px solid rgba(232,179,57,.4);color:var(--amber)}.verify-banner strong{color:inherit}.verify-layout{display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap}.verify-photo{flex:1 1 300px;min-width:260px;display:flex;flex-direction:column;gap:10px}.verify-photo img{width:100%;border-radius:10px;border:1px solid var(--border);background:#0e1014}.verify-board{flex:0 0 auto}.verify-moves{flex:1 1 380px;min-width:320px;display:flex;flex-direction:column;gap:10px}.verify-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sheet-table{width:100%;border-collapse:collapse;font-size:14.5px}.sheet-table th{text-align:left;color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;padding:4px 8px}.sheet-table td{border:1px solid var(--border);padding:0}.sheet-num{width:38px;text-align:center;color:var(--muted);font-size:13px;background:var(--panel);padding:6px 4px!important}.sheet-actions{border:none!important;width:30px;text-align:center}.mv-cell{position:relative;cursor:pointer;padding:0!important}.mv-cell .mv-text{display:block;padding:8px 10px;font-weight:600;min-height:34px}.mv-cell.ok:hover{background:var(--card-hover)}.mv-cell.bad{background:#e5534b29}.mv-cell.bad .mv-text{color:var(--red)}.mv-cell.unknown{background:#e8b33929}.mv-cell.unknown .mv-text{color:var(--amber)}.mv-cell.blocked .mv-text{color:var(--muted);opacity:.6}.mv-cell.selected{outline:2px solid var(--accent);outline-offset:-2px}.mv-cell.empty{background:transparent}.mv-edit{position:absolute;top:4px;right:4px;background:transparent;border:none;color:var(--muted);font-size:12px;padding:2px 5px;opacity:0;cursor:pointer}.mv-cell:hover .mv-edit{opacity:1}.mv-edit:hover{color:var(--accent);background:transparent}.mv-input{width:100%;border:none;border-radius:0;background:var(--bg);padding:8px 10px;font-weight:600}.mv-suggest{position:absolute;z-index:30;top:100%;left:0;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:4px;display:flex;flex-wrap:wrap;gap:3px;min-width:160px;box-shadow:0 8px 20px var(--shadow)}.mv-suggest button{padding:3px 8px;font-size:13px;border-radius:5px}.verify-suggest{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:14px}.verify-suggest .book-hint{color:var(--green)}.verify-suggest .sep{width:1px;height:20px;background:var(--border);margin:0 4px}.verify-commit{position:sticky;bottom:calc(12px + var(--safe-bottom));margin-top:18px}.verify-count{font-size:14.5px;color:var(--muted)}.verify-count strong{color:var(--text);font-size:16px}.book-panel-summary{border-color:#2ecc7166}.book-panel-summary.unmatched{border-color:var(--border)}.book-match{font-size:15px}.deviation-note{margin-top:10px;padding:8px 12px;border-radius:8px;background:#e8b3391a;border:1px solid rgba(232,179,57,.35);font-size:13.5px;cursor:pointer}.deviation-note:hover{background:#e8b3392e}.engine-line.book-line{background:#2ecc7114}.engine-line.book-line:hover{background:#2ecc7129}.eval.book-eval{color:var(--green);font-size:11.5px;text-transform:uppercase;letter-spacing:.5px}.book-btn{padding:4px 8px;line-height:0}.book-btn.muted{opacity:.55}.book-btn.active{color:var(--accent);background:#3b9cff1f}.book-panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px;display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap}.book-panel .book-moves{flex:1;min-width:180px;display:flex;flex-direction:column;gap:10px;line-height:1.9;font-size:14px}.book-panel .mv{cursor:pointer;padding:1px 4px;border-radius:4px;font-weight:600}.book-panel .mv:hover{background:var(--card-hover)}.book-panel .mv.current{background:var(--accent-dim);color:#fff}.book-board{display:flex;flex-direction:column;gap:10px}.book-controls,.viewer-controls{display:flex;gap:8px;align-items:center;justify-content:center}.viewer-controls{flex-wrap:wrap}.book-controls button,.viewer-controls button{min-width:46px;min-height:44px;font-size:16px;padding:0 10px;white-space:nowrap}.book-count{min-width:58px;text-align:center;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.book-foot{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}@media (max-width: 720px){.book-panel{flex-direction:column}.book-board{width:100%;align-items:center}.book-controls button{flex:1;min-width:0}.book-controls{width:100%}.topbar{gap:10px;padding:calc(10px + var(--safe-top) + var(--status-gap)) calc(12px + var(--safe-right)) 10px calc(12px + var(--safe-left))}.topbar .logo{font-size:15px}.topbar nav button{padding:8px 11px;font-size:14px}.group-filter{max-width:none;width:100%}.group-head{gap:8px;padding:10px 12px}}.practice-title-row{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap}.practice-title-row h3{margin:0;flex:1 1 170px;min-width:0}.practice-title-row .row-icons{display:flex;gap:6px;margin-left:auto}@media (max-width: 720px){.practice-title-row h3{flex:1 1 100%}}.group-block{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;overflow:hidden}.group-block.open{border-color:var(--accent-dim)}.group-head{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;flex-wrap:wrap}.group-head:hover{background:var(--card-hover)}.group-head h2{margin:0;font-size:16px}.group-count{background:var(--accent-dim);color:#fff;border-radius:999px;padding:1px 9px;font-size:12px;font-weight:700}.group-body{border-top:1px solid var(--border);padding:6px 10px 10px}.group-actions{display:flex;gap:8px;flex-wrap:wrap;padding:8px 4px}.group-row{display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--border)}.group-row:last-child{border-bottom:none}.group-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;align-items:flex-start;text-align:left;background:transparent;border:none;padding:10px 6px;cursor:pointer}.group-row-main:hover{background:var(--card-hover)}.group-row-name{font-weight:600;font-size:14.5px}.group-row-crumbs{font-size:12px;color:var(--muted)}.group-row-moves{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.group-row-tail{display:flex;align-items:center;gap:8px;padding-right:6px}.group-row-tail button{min-width:42px;min-height:38px}.group-filter{max-width:200px}.group-icon{color:var(--muted);flex:0 0 auto}.group-icon.star{color:var(--amber)}.group-sublist{margin:4px 0 10px}.group-sublist-head{font-size:11.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);padding:8px 6px 4px;display:flex;gap:6px;align-items:center}.group-sublist-count{background:var(--bg);border-radius:999px;padding:0 7px;font-size:11px}.row-kind{font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;padding:1px 6px;border-radius:999px;margin-right:7px;border:1px solid var(--border);color:var(--muted)}.row-kind.opening{color:var(--accent);border-color:var(--accent-dim)}.row-kind.chapter{color:var(--green);border-color:#2ecc7166}.group-row-opening .group-row-main,.group-row-chapter .group-row-main{padding:12px 6px}.due-pill svg,.counts svg,.row-head svg,.page-head button svg,.group-head button svg,.card-actions svg,.comment-box svg,.book-foot svg,.tabs button svg,.modal-actions svg,.sub svg,.scope-info h3 svg{vertical-align:-3px}.done-tick{color:var(--green)}.warn-tick{color:var(--amber)}.star-btn.big{padding:2px 6px}.card-title-row{display:flex;align-items:flex-start;gap:6px}.card-title-row h3{flex:1}.card-title-row .star-btn{padding:0 2px;line-height:0}.tag-add-row{display:flex;gap:8px;align-items:center}.tag-add-row input{flex:1}.viewer-title{display:flex;align-items:center;gap:8px}.viewer-pager{display:flex;align-items:center;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--border)}.viewer-pager button{min-width:34px;min-height:30px;padding:0 8px;display:flex;align-items:center;justify-content:center}.tag-count{opacity:.65;font-size:11px}@font-face{font-family:"Press Start 2P";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/press-start-2p-400.woff2) format("woff2")}@font-face{font-family:Bebas Neue;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/bebas-neue-400.woff2) format("woff2")}@font-face{font-family:Jost;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jost-400.woff2) format("woff2")}@font-face{font-family:Jost;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jost-500.woff2) format("woff2")}@font-face{font-family:Jost;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/jost-600.woff2) format("woff2")}@font-face{font-family:Jost;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jost-700.woff2) format("woff2")}@font-face{font-family:Lilita One;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/lilita-one-400.woff2) format("woff2")}@font-face{font-family:Bodoni Moda;font-style:italic;font-weight:500 600;font-display:swap;src:url(/fonts/bodoni-moda-italic-500-600.woff2) format("woff2")}@font-face{font-family:EB Garamond;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/eb-garamond-400-600.woff2) format("woff2")}@font-face{font-family:EB Garamond;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/eb-garamond-italic-400.woff2) format("woff2")}:root[data-skin=bauhaus] body{font-family:Jost,system-ui,sans-serif}:root[data-skin=bauhaus]{--radius: 0px}:root[data-skin=bauhaus] .card,:root[data-skin=bauhaus] .panel,:root[data-skin=bauhaus] .chapter-card,:root[data-skin=bauhaus] .variation-row,:root[data-skin=bauhaus] .scope-card,:root[data-skin=bauhaus] .opening-row,:root[data-skin=bauhaus] .game-card,:root[data-skin=bauhaus] .settings-section,:root[data-skin=bauhaus] .modal,:root[data-skin=bauhaus] .viewer-panel,:root[data-skin=bauhaus] .skin-card{border-radius:0;border-width:2px}:root[data-skin=bauhaus] button,:root[data-skin=bauhaus] input,:root[data-skin=bauhaus] select,:root[data-skin=bauhaus] textarea{border-radius:0}:root[data-skin=gameboy] .topbar .logo,:root[data-skin=gameboy] .page-head h1,:root[data-skin=gameboy] .settings-head h2{font-family:"Press Start 2P",Courier New,monospace;letter-spacing:0;line-height:1.5}:root[data-skin=gameboy] .topbar .logo{font-size:12px}:root[data-skin=gameboy] .page-head h1{font-size:15px}:root[data-skin=gameboy] .settings-head h2{font-size:12px}:root[data-skin=gameboy]{--radius: 10px}:root[data-skin=gameboy] button,:root[data-skin=gameboy] input,:root[data-skin=gameboy] select,:root[data-skin=gameboy] textarea{border-radius:8px}:root[data-skin=outerspace] .topbar .logo,:root[data-skin=outerspace] .page-head h1,:root[data-skin=outerspace] .settings-head h2{font-family:Bebas Neue,Oswald,system-ui,sans-serif;letter-spacing:.04em;font-weight:400}:root[data-skin=outerspace] .page-head h1{font-size:30px}:root[data-skin=outerspace]{--radius: 6px}:root[data-skin=outerspace] button,:root[data-skin=outerspace] input,:root[data-skin=outerspace] select,:root[data-skin=outerspace] textarea{border-radius:3px}:root[data-skin=hustler]{--radius: 5px}:root[data-skin=hustler] button,:root[data-skin=hustler] input,:root[data-skin=hustler] select,:root[data-skin=hustler] textarea{border-radius:4px}:root[data-skin=drivethru] .topbar .logo,:root[data-skin=drivethru] .page-head h1,:root[data-skin=drivethru] .settings-head h2{font-family:Lilita One,Arial Rounded MT Bold,system-ui,sans-serif;font-weight:400;letter-spacing:.01em}:root[data-skin=drivethru]{--radius: 16px}:root[data-skin=drivethru] button,:root[data-skin=drivethru] input,:root[data-skin=drivethru] select,:root[data-skin=drivethru] textarea{border-radius:12px}:root[data-skin=drivethru] button.primary{border-radius:999px}:root[data-skin=rose] .topbar .logo,:root[data-skin=rose] .page-head h1,:root[data-skin=rose] .settings-head h2{font-family:Bodoni Moda,"Bodoni 72",Didot,Times New Roman,serif;font-style:italic;font-weight:600;letter-spacing:0}:root[data-skin=rose]{--radius: 14px}:root[data-skin=rose] button,:root[data-skin=rose] input,:root[data-skin=rose] select,:root[data-skin=rose] textarea{border-radius:10px}:root[data-skin=rose] button.primary{border-radius:999px}:root[data-skin=chessbook] body{font-family:EB Garamond,Garamond,Baskerville,Georgia,serif;font-size:16px}:root[data-skin=chessbook] .topbar .logo,:root[data-skin=chessbook] .page-head h1,:root[data-skin=chessbook] .settings-head h2{font-family:EB Garamond,Garamond,Baskerville,Georgia,serif;font-weight:600;letter-spacing:.01em}:root[data-skin=chessbook]{--radius: 4px}:root[data-skin=chessbook] button,:root[data-skin=chessbook] input,:root[data-skin=chessbook] select,:root[data-skin=chessbook] textarea{border-radius:3px}:root[data-skin] button.primary:hover{background:var(--accent-dim);border-color:var(--accent-dim);color:#fff}:root[data-skin=drivethru][data-theme=dark] :is(button.primary:not(:hover),.learn-btn .badge,.vl-item.active,.avatar-pick-badge,.mt-move.current,.link-pill.new),:root[data-skin=rose][data-theme=dark] :is(button.primary:not(:hover),.learn-btn .badge,.vl-item.active,.avatar-pick-badge,.mt-move.current,.link-pill.new),:root[data-skin=chessbook][data-theme=dark] :is(button.primary:not(:hover),.learn-btn .badge,.vl-item.active,.avatar-pick-badge,.mt-move.current,.link-pill.new),:root[data-skin=uptown][data-theme=dark] :is(button.primary:not(:hover),.learn-btn .badge,.vl-item.active,.avatar-pick-badge,.mt-move.current,.link-pill.new){color:var(--bg)}:root[data-skin=drivethru][data-theme=dark] .vl-item.active .vl-dot,:root[data-skin=rose][data-theme=dark] .vl-item.active .vl-dot,:root[data-skin=chessbook][data-theme=dark] .vl-item.active .vl-dot,:root[data-skin=uptown][data-theme=dark] .vl-item.active .vl-dot{border-color:var(--bg);color:var(--bg)}:root[data-skin=uptown] body{font-family:Helvetica Neue,Helvetica,Arial,sans-serif}:root[data-skin=uptown] .topbar .logo,:root[data-skin=uptown] .page-head h1,:root[data-skin=uptown] .settings-head h2{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;letter-spacing:-.01em}:root[data-skin=uptown]{--radius: 6px}:root[data-skin=uptown] button,:root[data-skin=uptown] input,:root[data-skin=uptown] select,:root[data-skin=uptown] textarea{border-radius:4px}:root[data-skin=uptown] button.primary,:root[data-skin=uptown] button.primary:hover{background-image:linear-gradient(currentColor,currentColor);background-size:100% 1.5px;background-position:0 3px;background-repeat:no-repeat}:root[data-skin=uptown] .topbar{--panel: #141517;--card: #24272c;--card-hover: #2a2d33;--border: #2e3238;--text: #f4f4f0;--muted: #b4b9c0;--accent: #ffb52e;--accent-dim: #2b6a80;background-color:#141517;color:var(--text);border-bottom-color:#2e3238;background-image:radial-gradient(circle at 6px 50%,#fff 0 3px,#141517 3.5px 5px,transparent 5.4px),radial-gradient(circle at calc(100% - 6px) 50%,#fff 0 3px,#141517 3.5px 5px,transparent 5.4px),radial-gradient(circle,#fff 0 2.2px,#141517 2.7px 3.8px,transparent 4.2px),linear-gradient(90deg,transparent 0 11px,#fff 11px 13px,transparent 13px),linear-gradient(#00933c,#00933c);background-size:100% 12px,100% 12px,96px 12px,24px 8px,calc(100% - 12px) 4px;background-position:0 100%,0 100%,12px 100%,0 calc(100% - 2px),6px calc(100% - 4px);background-repeat:no-repeat,no-repeat,repeat-x,repeat-x,no-repeat}:root[data-skin=gameboy]{--dmg-dot-a: rgba(0, 0, 0, .22);--dmg-dot-b: rgba(255, 255, 255, .05)}:root[data-skin=gameboy][data-theme=light]{--dmg-dot-a: rgba(15, 56, 15, .14);--dmg-dot-b: rgba(255, 255, 255, .16)}:root[data-skin=gameboy] [data-square-color=white]{background-image:radial-gradient(circle at 50% 50%,var(--dmg-dot-a) 0 1px,transparent 1.2px);background-size:4px 4px}:root[data-skin=gameboy] [data-square-color=black]{background-image:radial-gradient(circle at 50% 50%,var(--dmg-dot-b) 0 1px,transparent 1.2px);background-size:4px 4px}:root[data-skin=gameboy] [data-piece] svg{filter:sepia(1) saturate(6) hue-rotate(45deg) brightness(.75) contrast(1.1)}:root[data-skin=outerspace]{--scan-line: rgba(0, 0, 0, .22);--skin-focus: #5eead4}:root[data-skin=outerspace][data-theme=light]{--scan-line: rgba(0, 0, 0, .16);--skin-focus: #4fd6c4}:root[data-skin=outerspace] [data-square-color=white]{background-image:linear-gradient(rgba(255,255,255,.12),transparent 40%),repeating-linear-gradient(0deg,var(--scan-line) 0 1px,transparent 1px 3px)}:root[data-skin=outerspace] [data-square-color=black]{background-image:radial-gradient(ellipse 70% 50% at 50% 0%,rgba(255,90,54,.1),transparent 70%),repeating-linear-gradient(0deg,var(--scan-line) 0 1px,transparent 1px 3px)}:root[data-skin=outerspace] [data-piece] svg{filter:sepia(.3) saturate(1.5) hue-rotate(-6deg) contrast(1.1) brightness(1.03) drop-shadow(0 0 2px var(--skin-focus)) drop-shadow(0 0 5px var(--skin-focus))}:root[data-skin=bauhaus]{--board-rule: #0a0a0a}:root[data-skin=bauhaus][data-theme=light]{--board-rule: #141414}:root[data-skin=bauhaus] [data-square]{outline:1px solid var(--board-rule);outline-offset:-1px}:root[data-skin=bauhaus] [data-boardid]{box-shadow:0 0 0 3px var(--board-rule)}:root[data-skin=hustler] [data-square-color=white]{background-image:radial-gradient(ellipse 62% 46% at 24% 28%,rgba(90,132,108,.16),transparent 72%),radial-gradient(ellipse 52% 42% at 76% 74%,rgba(90,132,108,.12),transparent 74%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='hlv'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.012 0.05' numOctaves='3' seed='7' result='n'/%3E%3CfeDisplacementMap in='SourceGraphic' in2='n' scale='55'/%3E%3C/filter%3E%3Cg filter='url(%23hlv)'%3E%3Cline x1='-40' y1='40' x2='240' y2='130' stroke='%23a7a196' stroke-width='2.2' opacity='.5'/%3E%3Cline x1='-40' y1='150' x2='240' y2='30' stroke='%23bcb6a9' stroke-width='1.3' opacity='.4'/%3E%3Cline x1='30' y1='-40' x2='150' y2='240' stroke='%23928c7e' stroke-width='1' opacity='.35'/%3E%3Cline x1='-20' y1='190' x2='220' y2='110' stroke='%23c7c2b6' stroke-width='.8' opacity='.3'/%3E%3C/g%3E%3C/svg%3E");background-size:100% 100%,100% 100%,100% 100%;background-repeat:no-repeat,no-repeat,no-repeat}:root[data-skin=hustler] [data-square-color=black]{background-image:radial-gradient(ellipse 62% 46% at 30% 26%,rgba(110,158,132,.18),transparent 72%),radial-gradient(ellipse 52% 42% at 72% 76%,rgba(110,158,132,.13),transparent 74%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='hdv'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.012 0.05' numOctaves='3' seed='3' result='n'/%3E%3CfeDisplacementMap in='SourceGraphic' in2='n' scale='55'/%3E%3C/filter%3E%3Cg filter='url(%23hdv)'%3E%3Cline x1='-40' y1='60' x2='240' y2='150' stroke='%235c5c59' stroke-width='2.2' opacity='.55'/%3E%3Cline x1='-40' y1='170' x2='240' y2='50' stroke='%23464644' stroke-width='1.3' opacity='.42'/%3E%3Cline x1='10' y1='-40' x2='130' y2='240' stroke='%236e6e6a' stroke-width='1' opacity='.32'/%3E%3Cline x1='-20' y1='210' x2='220' y2='130' stroke='%233a3a38' stroke-width='.8' opacity='.3'/%3E%3C/g%3E%3C/svg%3E");background-size:100% 100%,100% 100%,100% 100%;background-repeat:no-repeat,no-repeat,no-repeat}:root[data-skin=hustler] [data-piece^=b] svg{filter:grayscale(.92) contrast(1.12) brightness(1.03) saturate(.85) drop-shadow(0 0 .8px rgba(255,255,255,.95)) drop-shadow(0 0 1.6px rgba(255,255,255,.55))}:root[data-skin=hustler] [data-piece^=w] svg{filter:grayscale(.92) contrast(1.12) brightness(1.03) saturate(.85) drop-shadow(0 0 .8px rgba(0,0,0,.75)) drop-shadow(0 0 1.6px rgba(0,0,0,.4))}:root[data-skin=drivethru]{--dt-frame: #e0a800}:root[data-skin=drivethru][data-theme=light]{--dt-frame: #ffc72c}:root[data-skin=drivethru] [data-boardid]{box-shadow:0 0 0 4px var(--dt-frame),0 0 0 5px #3a140859}:root[data-skin=drivethru] [data-piece] svg{filter:drop-shadow(0 0 1.3px rgba(255,250,240,.95)) drop-shadow(0 2px 0 rgba(90,20,8,.38))}:root[data-skin=rose]{--rose-rule: #12080d}:root[data-skin=rose][data-theme=light]{--rose-rule: #9c5a6e}:root[data-skin=rose] [data-boardid]{box-shadow:0 0 0 2px var(--rose-rule)}:root[data-skin=rose] [data-piece] svg{filter:drop-shadow(0 1px 1.5px rgba(120,20,60,.4))}:root[data-skin=chessbook]{--cb-paper: #e3dac6;--cb-rule: #0f0d0a;--cb-hatch: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6' height='6'%3E%3Cpath d='M-1 1L1-1M0 6L6 0M5 7L7 5' stroke='%231c1a17' stroke-width='.85' opacity='.78'/%3E%3C/svg%3E")}:root[data-skin=chessbook][data-theme=light]{--cb-paper: #f6f1e5;--cb-rule: #1c1a17}:root[data-skin=chessbook] [data-square-color=black]{background-color:var(--cb-paper)!important;background-image:var(--cb-hatch);background-size:6px 6px}:root[data-skin=chessbook] [data-boardid]{box-shadow:0 0 0 1.5px var(--cb-rule)}:root[data-skin=chessbook] [data-square]>div>div[style*="position: absolute"]{color:#5e574c!important}:root[data-skin=uptown]{--ux-sq-tile: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' preserveAspectRatio='none'%3E%3Cpath d='M0 1.6H48M0 13.1H48M0 25.1H48M0 37.1H48' stroke='%23fff' stroke-opacity='.5' stroke-width='.8'/%3E%3Cpath d='M0 .5H48M0 12H48M0 24H48M0 36H48M.5 0V12M24 0V12M12 12V24M36 12V24M.5 24V36M24 24V36M12 36V48M36 36V48' fill='none' stroke='%23141517' stroke-opacity='.1'/%3E%3C/svg%3E");--ux-sq-tile-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' preserveAspectRatio='none'%3E%3Cpath d='M0 .5H48M0 12H48M0 24H48M0 36H48M.5 0V12M24 0V12M12 12V24M36 12V24M.5 24V36M24 24V36M12 36V48M36 36V48' fill='none' stroke='%230B2A33' stroke-opacity='.2'/%3E%3C/svg%3E");--legal-dot: #141517;--legal-dot-edge: #f4f4f0;--legal-ring: rgba(20, 21, 23, .82);--last-move-edge: inset 0 4px 0 #fccc0a, inset 0 5.5px 0 #141517;--check-glow: radial-gradient(circle at center, rgba(255, 107, 94, .75) 0 30%, rgba(255, 107, 94, .42) 56%, transparent 76%);--check-ring: inset 0 0 0 1px #141517, inset 0 0 0 4px #ee352e, inset 0 0 0 5px #141517}:root[data-skin=uptown] [data-square-color=white]{background-image:var(--ux-sq-tile);background-size:100% 100%;--last-move-wash: rgba(252, 204, 10, .35)}:root[data-skin=uptown] [data-square-color=black]{background-image:var(--ux-sq-tile-dark);background-size:100% 100%;--last-move-wash: rgba(252, 204, 10, .18)}:root[data-skin=uptown] [data-boardid]{box-shadow:0 0 0 1px #f4f4f0,0 0 0 5px #141517}:root[data-skin=uptown] [data-square]>div>div[style*="position: absolute"]{color:#141517!important;font-family:Helvetica Neue,Helvetica,Arial,sans-serif}.line-signs{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none}.line-sign{position:absolute;display:flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;line-height:1;text-shadow:0 0 1px rgba(0,0,0,.35);-webkit-user-select:none;user-select:none}:root[data-skin=uptown] [data-piece] svg{filter:drop-shadow(0 1.2px 0 rgba(0,0,0,.3))}:root[data-skin=uptown] [data-piece^=b] svg{filter:drop-shadow(0 0 .8px rgba(244,244,240,.92)) drop-shadow(0 1.2px 0 rgba(0,0,0,.3))}:root[data-skin=uptown] [data-piece=bK]{--ux-pl: #ff6b5e}:root[data-skin=uptown] [data-piece=bQ]{--ux-pl: #e58bdd}:root[data-skin=uptown] [data-piece=bR]{--ux-pl: #7fa6ff}:root[data-skin=uptown] [data-piece=bB]{--ux-pl: #fccc0a}:root[data-skin=uptown] [data-piece=bN]{--ux-pl: #8fd16a}:root[data-skin=uptown] [data-piece$=K]{--ux-tab: #ee352e}:root[data-skin=uptown] [data-piece$=Q]{--ux-tab: #b933ad}:root[data-skin=uptown] [data-piece$=R]{--ux-tab: #0062cf}:root[data-skin=uptown] [data-piece$=B]{--ux-tab: #fccc0a}:root[data-skin=uptown] [data-piece$=N]{--ux-tab: #6cbe45}:root[data-skin=uptown] [data-square] [data-piece]{position:relative}:root[data-skin=uptown] [data-square] [data-piece]:not([data-piece$=P]):after{content:"";position:absolute;left:33%;right:33%;bottom:3%;height:5%;min-height:2px;border-radius:2px;background:var(--ux-tab);box-shadow:0 0 0 1px #141517e6;pointer-events:none}:root[data-skin=felt]:not(.has-custom-bg):not(.no-skin-wall),:root[data-skin=hustler]:not(.has-custom-bg):not(.no-skin-wall),:root[data-skin=outerspace]:not(.has-custom-bg):not(.no-skin-wall),:root[data-skin=bauhaus]:not(.has-custom-bg):not(.no-skin-wall),:root[data-skin=gameboy]:not(.has-custom-bg):not(.no-skin-wall),:root[data-skin=drivethru]:not(.has-custom-bg):not(.no-skin-wall),:root[data-skin=rose]:not(.has-custom-bg):not(.no-skin-wall),:root[data-skin=chessbook]:not(.has-custom-bg):not(.no-skin-wall),:root[data-skin=uptown]:not(.has-custom-bg):not(.no-skin-wall){background:var(--bg)}:root[data-skin=felt]:not(.has-custom-bg):not(.no-skin-wall) body,:root[data-skin=hustler]:not(.has-custom-bg):not(.no-skin-wall) body,:root[data-skin=outerspace]:not(.has-custom-bg):not(.no-skin-wall) body,:root[data-skin=bauhaus]:not(.has-custom-bg):not(.no-skin-wall) body,:root[data-skin=gameboy]:not(.has-custom-bg):not(.no-skin-wall) body,:root[data-skin=drivethru]:not(.has-custom-bg):not(.no-skin-wall) body,:root[data-skin=rose]:not(.has-custom-bg):not(.no-skin-wall) body,:root[data-skin=chessbook]:not(.has-custom-bg):not(.no-skin-wall) body,:root[data-skin=uptown]:not(.has-custom-bg):not(.no-skin-wall) body{background:transparent}:root[data-skin=felt]:not(.has-custom-bg):not(.no-skin-wall) body:before,:root[data-skin=hustler]:not(.has-custom-bg):not(.no-skin-wall) body:before,:root[data-skin=outerspace]:not(.has-custom-bg):not(.no-skin-wall) body:before,:root[data-skin=bauhaus]:not(.has-custom-bg):not(.no-skin-wall) body:before,:root[data-skin=gameboy]:not(.has-custom-bg):not(.no-skin-wall) body:before,:root[data-skin=drivethru]:not(.has-custom-bg):not(.no-skin-wall) body:before,:root[data-skin=rose]:not(.has-custom-bg):not(.no-skin-wall) body:before,:root[data-skin=chessbook]:not(.has-custom-bg):not(.no-skin-wall) body:before,:root[data-skin=uptown]:not(.has-custom-bg):not(.no-skin-wall) body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none}:root[data-skin=felt]{--felt-weave: rgba(0, 0, 0, .22);--felt-fleck: rgba(255, 255, 255, .03);--felt-nap: rgba(0, 0, 0, .22)}:root[data-skin=felt][data-theme=light]{--felt-weave: rgba(10, 24, 15, .11);--felt-fleck: rgba(255, 255, 255, .06);--felt-nap: rgba(9, 20, 13, .12)}:root[data-skin=felt]:not(.has-custom-bg):not(.no-skin-wall) body:before{background-image:repeating-linear-gradient(45deg,var(--felt-weave) 0 2px,transparent 2px 5px),repeating-linear-gradient(-45deg,var(--felt-weave) 0 2px,transparent 2px 5px),radial-gradient(circle at 20% 30%,var(--felt-fleck) 0 1px,transparent 1.6px),radial-gradient(circle at 66% 70%,var(--felt-nap) 0 .6px,transparent 1.3px),radial-gradient(circle at 42% 85%,var(--felt-fleck) 0 1px,transparent 1.6px);background-size:auto,auto,8px 8px,13px 13px,17px 17px}:root[data-skin=hustler]{--stone-vein: rgba(255, 255, 255, .07);--stone-cloud: rgba(0, 0, 0, .26);--grit-a: rgba(255, 255, 255, .035);--grit-b: rgba(0, 0, 0, .35)}:root[data-skin=hustler][data-theme=light]{--stone-vein: rgba(48, 44, 38, .17);--stone-cloud: rgba(255, 255, 255, .38);--grit-a: rgba(28, 30, 32, .055);--grit-b: rgba(255, 255, 255, .5)}:root[data-skin=hustler]:not(.has-custom-bg):not(.no-skin-wall) body:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='900' height='700'%3E%3Cfilter id='pv'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.006 0.018' numOctaves='4' seed='11' result='n'/%3E%3CfeDisplacementMap in='SourceGraphic' in2='n' scale='90'/%3E%3C/filter%3E%3Cg filter='url(%23pv)' fill='none'%3E%3Cline x1='-100' y1='120' x2='1000' y2='420' stroke='%23302c26' stroke-width='2.4' opacity='.16'/%3E%3Cline x1='-100' y1='480' x2='1000' y2='90' stroke='%23302c26' stroke-width='1.6' opacity='.12'/%3E%3Cline x1='150' y1='-80' x2='620' y2='780' stroke='%23302c26' stroke-width='1.4' opacity='.13'/%3E%3Cline x1='500' y1='-80' x2='950' y2='780' stroke='%23ffffff' stroke-width='1.8' opacity='.28'/%3E%3Cline x1='-100' y1='650' x2='800' y2='200' stroke='%23ffffff' stroke-width='1.2' opacity='.22'/%3E%3Cline x1='-60' y1='-40' x2='340' y2='380' stroke='%23302c26' stroke-width='1' opacity='.10'/%3E%3Cline x1='560' y1='560' x2='980' y2='740' stroke='%23ffffff' stroke-width='1' opacity='.16'/%3E%3C/g%3E%3C/svg%3E"),linear-gradient(45deg,var(--stone-vein) 25%,transparent 25%,transparent 75%,var(--stone-vein) 75%),linear-gradient(45deg,var(--stone-vein) 25%,transparent 25%,transparent 75%,var(--stone-vein) 75%),radial-gradient(ellipse 340px 220px at 20% 22%,var(--stone-cloud),transparent 68%),radial-gradient(ellipse 300px 240px at 78% 64%,var(--stone-cloud),transparent 70%),radial-gradient(ellipse 260px 200px at 46% 88%,var(--stone-cloud),transparent 66%),radial-gradient(circle at 18% 26%,var(--grit-a) 0 1px,transparent 1.6px),radial-gradient(circle at 68% 72%,var(--grit-b) 0 .5px,transparent 1.2px),radial-gradient(circle at 44% 88%,var(--grit-a) 0 1px,transparent 1.6px);background-position:0 0,0 0,130px 130px,0 0,0 0,0 0,0 0,0 0,0 0;background-size:1100px 860px,260px 260px,260px 260px,auto,auto,auto,9px 9px,14px 14px,19px 19px;background-repeat:repeat,repeat,repeat,no-repeat,no-repeat,no-repeat,repeat,repeat,repeat}:root[data-skin=outerspace]{--star-dim: rgba(255, 255, 255, .4);--star-bright: rgba(255, 255, 255, .85);--nebula-a: rgba(255, 106, 69, .12);--nebula-b: rgba(94, 234, 212, .09)}:root[data-skin=outerspace][data-theme=light]{--star-dim: rgba(255, 255, 255, .35);--star-bright: rgba(255, 255, 255, .75);--nebula-a: rgba(255, 90, 54, .1);--nebula-b: rgba(79, 214, 196, .08)}:root[data-skin=outerspace]:not(.has-custom-bg):not(.no-skin-wall) body:before{background-image:radial-gradient(ellipse 480px 320px at 18% 20%,var(--nebula-a),transparent 70%),radial-gradient(ellipse 420px 300px at 82% 70%,var(--nebula-b),transparent 72%),radial-gradient(circle at 8% 12%,var(--star-bright) 0 1px,transparent 1.6px),radial-gradient(circle at 32% 6%,var(--star-dim) 0 .6px,transparent 1.2px),radial-gradient(circle at 61% 15%,var(--star-dim) 0 .6px,transparent 1.2px),radial-gradient(circle at 78% 4%,var(--star-bright) 0 1px,transparent 1.6px),radial-gradient(circle at 91% 22%,var(--star-dim) 0 .6px,transparent 1.2px),radial-gradient(circle at 14% 38%,var(--star-dim) 0 .6px,transparent 1.2px),radial-gradient(circle at 46% 44%,var(--star-bright) 0 1px,transparent 1.6px),radial-gradient(circle at 69% 52%,var(--star-dim) 0 .6px,transparent 1.2px),radial-gradient(circle at 88% 60%,var(--star-bright) 0 1px,transparent 1.6px),radial-gradient(circle at 5% 68%,var(--star-dim) 0 .6px,transparent 1.2px),radial-gradient(circle at 25% 82%,var(--star-bright) 0 1px,transparent 1.6px),radial-gradient(circle at 55% 90%,var(--star-dim) 0 .6px,transparent 1.2px),radial-gradient(circle at 73% 84%,var(--star-dim) 0 .6px,transparent 1.2px),radial-gradient(circle at 95% 94%,var(--star-bright) 0 1px,transparent 1.6px);background-size:auto;background-repeat:no-repeat}:root[data-skin=bauhaus]{--skin-scrim: rgba(10, 13, 9, .85)}:root[data-skin=bauhaus][data-theme=light]{--skin-scrim: rgba(243, 237, 224, .8)}:root[data-skin=gameboy]{--skin-scrim: rgba(14, 17, 10, .66)}:root[data-skin=gameboy][data-theme=light]{--skin-scrim: rgba(201, 205, 182, .6)}:root[data-skin=bauhaus]:not(.has-custom-bg):not(.no-skin-wall) body:before,:root[data-skin=gameboy]:not(.has-custom-bg):not(.no-skin-wall) body:before{background-size:cover;background-position:center center;background-repeat:no-repeat}:root[data-skin=bauhaus]:not(.has-custom-bg):not(.no-skin-wall) body:before{background-image:linear-gradient(var(--skin-scrim),var(--skin-scrim)),url(/themes/bauhaus.svg)}:root[data-skin=gameboy]:not(.has-custom-bg):not(.no-skin-wall) body:before{background-image:linear-gradient(var(--skin-scrim),var(--skin-scrim)),url(/themes/gameboy.jpg)}:root[data-skin=drivethru]{--art-scrim: rgba(20, 14, 12, .74)}:root[data-skin=drivethru][data-theme=light]{--art-scrim: rgba(255, 244, 222, .72)}:root[data-skin=rose]{--art-scrim: rgba(30, 15, 23, .74)}:root[data-skin=rose][data-theme=light]{--art-scrim: rgba(251, 238, 241, .72)}:root[data-skin=chessbook]{--art-scrim: rgba(15, 13, 10, .8)}:root[data-skin=chessbook][data-theme=light]{--art-scrim: rgba(236, 228, 212, .7)}:root[data-skin=drivethru]:not(.has-custom-bg):not(.no-skin-wall):not(.skin-pattern) body:before,:root[data-skin=rose]:not(.has-custom-bg):not(.no-skin-wall):not(.skin-pattern) body:before,:root[data-skin=chessbook]:not(.has-custom-bg):not(.no-skin-wall):not(.skin-pattern) body:before{background-size:cover;background-position:center center;background-repeat:no-repeat}:root[data-skin=drivethru]:not(.has-custom-bg):not(.no-skin-wall):not(.skin-pattern) body:before{background-image:linear-gradient(var(--art-scrim),var(--art-scrim)),url(/themes/drivethru.svg)}:root[data-skin=rose]:not(.has-custom-bg):not(.no-skin-wall):not(.skin-pattern) body:before{background-image:linear-gradient(var(--art-scrim),var(--art-scrim)),url(/themes/rose.svg)}:root[data-skin=chessbook]:not(.has-custom-bg):not(.no-skin-wall):not(.skin-pattern) body:before{background-image:linear-gradient(var(--art-scrim),var(--art-scrim)),url(/themes/chessbook.svg)}:root[data-skin=drivethru]{--tray-liner: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cg fill='none' stroke-width='2' stroke-linejoin='round' opacity='.2'%3E%3Cg stroke='%23ffc72c'%3E%3Cpath d='M28 50V24M37 50V20M46 50V22M55 50V26'/%3E%3Cpath d='M104 40a22 15 0 0 1 44 0Z'/%3E%3Crect x='104' y='51' width='44' height='8' rx='4'/%3E%3Cpath d='M128 102L134 84'/%3E%3Cpath d='M40 124l3 8 8 3-8 3-3 8-3-8-8-3 8-3z'/%3E%3C/g%3E%3Cg stroke='%23ff5a47'%3E%3Cpath d='M20 46H64L58 84H26Z'/%3E%3Crect x='102' y='42' width='48' height='7' rx='3.5'/%3E%3Cpath d='M110 108H140L135 150H115Z'/%3E%3Crect x='108' y='102' width='34' height='6' rx='3'/%3E%3Ccircle cx='160' cy='22' r='3'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}:root[data-skin=drivethru][data-theme=light]{--tray-liner: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cg opacity='.17'%3E%3Cg fill='%23ffc72c'%3E%3Crect x='25' y='22' width='6' height='30' rx='2' transform='rotate(-8 28 37)'/%3E%3Crect x='34' y='18' width='6' height='32' rx='2'/%3E%3Crect x='43' y='20' width='6' height='30' rx='2' transform='rotate(6 46 35)'/%3E%3Crect x='52' y='24' width='6' height='27' rx='2' transform='rotate(12 55 37)'/%3E%3C/g%3E%3Cpath d='M20 46H64L58 84H26Z' fill='%23d62b1f'/%3E%3Cpath d='M104 40a22 15 0 0 1 44 0Z' fill='%23ffc72c'/%3E%3Crect x='102' y='42' width='48' height='7' rx='3.5' fill='%23d62b1f'/%3E%3Crect x='104' y='51' width='44' height='8' rx='4' fill='%23ffc72c'/%3E%3Cpath d='M110 108H140L135 150H115Z' fill='%23d62b1f'/%3E%3Crect x='108' y='102' width='34' height='6' rx='3' fill='%23d62b1f'/%3E%3Cpath d='M128 102L134 84' stroke='%23ffc72c' stroke-width='4' stroke-linecap='round'/%3E%3Cpath d='M40 124l3 8 8 3-8 3-3 8-3-8-8-3 8-3z' fill='%23ffc72c'/%3E%3Ccircle cx='160' cy='22' r='3' fill='%23d62b1f'/%3E%3Ccircle cx='82' cy='160' r='3' fill='%23ffc72c'/%3E%3C/g%3E%3C/svg%3E")}:root[data-skin=drivethru]:not(.has-custom-bg):not(.no-skin-wall) body:before{background-image:var(--tray-liner);background-size:180px 180px}:root[data-skin=rose]{--rose-bloom-a: rgba(244, 143, 177, .1);--rose-bloom-b: rgba(201, 140, 255, .07);--satin: rgba(255, 182, 207, .035)}:root[data-skin=rose][data-theme=light]{--rose-bloom-a: rgba(255, 196, 214, .55);--rose-bloom-b: rgba(255, 214, 196, .45);--satin: rgba(255, 255, 255, .28)}:root[data-skin=rose]:not(.has-custom-bg):not(.no-skin-wall) body:before{background-image:radial-gradient(ellipse 60% 45% at 14% 8%,var(--rose-bloom-a),transparent 70%),radial-gradient(ellipse 55% 40% at 86% 88%,var(--rose-bloom-b),transparent 72%),repeating-linear-gradient(115deg,transparent 0 52px,var(--satin) 52px 78px,transparent 78px 150px)}:root[data-skin=chessbook]{--paper-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .9 0 0 0 0 .85 0 0 0 0 .75 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E")}:root[data-skin=chessbook][data-theme=light]{--paper-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .36 0 0 0 0 .29 0 0 0 0 .19 0 0 0 .16 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E")}:root[data-skin=chessbook]:not(.has-custom-bg):not(.no-skin-wall) body:before{background-image:var(--paper-grain);background-size:220px 220px}:root[data-skin=uptown]{--ux-map: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='320' viewBox='0 0 320 320'%3E%3Cpath d='M0 0H20L320 300V320H300L0 20ZM0 300V320H20ZM300 0H320V20Z' fill='%231B2530' opacity='.7'/%3E%3Crect x='196' y='20' width='56' height='34' rx='3' fill='%2326282B' opacity='.6'/%3E%3Cg opacity='.18'%3E%3Cg fill='none' stroke-width='7' stroke-linejoin='round'%3E%3Cpath d='M0 64H96L160 128H224L288 64H320' stroke='%23EE352E'/%3E%3Cpath d='M0 232H64L128 168H192L256 232H320' stroke='%2300933C'/%3E%3Cpath d='M112 0V96L176 160V224L112 288V320' stroke='%230039A6'/%3E%3Cpath d='M272 0V80L240 112V256L272 288V320' stroke='%23FCCC0A'/%3E%3Cpath d='M0 320L320 0' stroke='%23B933AD'/%3E%3C/g%3E%3Cg fill='%23F4F4EF'%3E%3Ccircle cx='96' cy='64' r='4.5'/%3E%3Ccircle cx='224' cy='128' r='4.5'/%3E%3Ccircle cx='128' cy='168' r='4.5'/%3E%3Ccircle cx='112' cy='288' r='4.5'/%3E%3C/g%3E%3Cg fill='%230C0D0F' stroke='%23F4F4EF' stroke-width='2.5'%3E%3Ccircle cx='176' cy='168' r='7'/%3E%3Ccircle cx='240' cy='192' r='7'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");--ux-wall: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='24'%3E%3Cpath d='M0 .5H48M0 12.5H48M.5 0V12M24.5 0V12M12.5 12V24M36.5 12V24' fill='none' stroke='%23fff' stroke-opacity='.045'/%3E%3C/svg%3E")}:root[data-skin=uptown][data-theme=light]{--ux-map: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='320' viewBox='0 0 320 320'%3E%3Cpath d='M0 0H20L320 300V320H300L0 20ZM0 300V320H20ZM300 0H320V20Z' fill='%23E6DCC4' opacity='.55'/%3E%3Crect x='196' y='20' width='56' height='34' rx='3' fill='%23D3D4CF' opacity='.5'/%3E%3Cg opacity='.16'%3E%3Cg fill='none' stroke-width='7' stroke-linejoin='round'%3E%3Cpath d='M0 64H96L160 128H224L288 64H320' stroke='%23EE352E'/%3E%3Cpath d='M0 232H64L128 168H192L256 232H320' stroke='%2300933C'/%3E%3Cpath d='M112 0V96L176 160V224L112 288V320' stroke='%230039A6'/%3E%3Cpath d='M272 0V80L240 112V256L272 288V320' stroke='%23FCCC0A'/%3E%3Cpath d='M0 320L320 0' stroke='%23B933AD'/%3E%3C/g%3E%3Cg fill='%233A3D42'%3E%3Ccircle cx='96' cy='64' r='4.5'/%3E%3Ccircle cx='224' cy='128' r='4.5'/%3E%3Ccircle cx='128' cy='168' r='4.5'/%3E%3Ccircle cx='112' cy='288' r='4.5'/%3E%3C/g%3E%3Cg fill='%23FFFFFF' stroke='%233A3D42' stroke-width='2.5'%3E%3Ccircle cx='176' cy='168' r='7'/%3E%3Ccircle cx='240' cy='192' r='7'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");--ux-wall: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='24'%3E%3Cpath d='M0 1.5H48M0 13.5H48' stroke='%23fff' stroke-opacity='.6'/%3E%3Cpath d='M0 .5H48M0 12.5H48M.5 0V12M24.5 0V12M12.5 12V24M36.5 12V24' fill='none' stroke='%23141517' stroke-opacity='.07'/%3E%3C/svg%3E")}:root[data-skin=uptown]:not(.has-custom-bg):not(.no-skin-wall) body:before{background-image:var(--ux-map),var(--ux-wall);background-size:320px 320px,48px 24px}.square-flash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;pointer-events:none}.square-flash span{font-size:clamp(56px,11vw,128px);font-weight:800;letter-spacing:.04em;line-height:1;padding:18px 34px 22px;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 24px 60px var(--shadow);animation:square-flash 2s ease-in-out forwards}@keyframes square-flash{0%{opacity:0}14%{opacity:1}75%{opacity:1}to{opacity:0}}.send-modal{max-width:640px;max-height:88vh;display:flex;flex-direction:column}.pick-tree{flex:1;min-height:160px;max-height:42vh;overflow-y:auto;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:8px;margin:12px 0}.pick-opening{border-bottom:1px solid var(--border);padding:4px 0}.pick-opening:last-child{border-bottom:none}.pick-head{display:flex;align-items:center;gap:4px}.pick-chapter{margin-left:22px}.pick-line{margin-left:44px}.pick-row{display:flex;align-items:center;gap:8px;flex:1;padding:5px 6px;border-radius:7px;cursor:pointer;min-width:0}.pick-row:hover{background:var(--card-hover)}.pick-row input{flex:0 0 auto;width:16px;height:16px;accent-color:var(--accent)}.pick-label{flex:1 1 auto;min-width:0;font-weight:600;font-size:14px;line-height:1.25;overflow-wrap:anywhere}.pick-row .muted-note{flex:0 1 auto;min-width:0;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pick-some>.pick-label{color:var(--accent)}.pick-all>.pick-label{color:var(--accent)}.pick-line .pick-label{font-weight:500}@media (max-width: 560px){.pick-chapter{margin-left:14px}.pick-line{margin-left:28px}.pick-line .muted-note{display:none}}.account-form{display:flex;flex-direction:column;gap:10px;margin:12px 0;max-width:420px}.signed-out-note{display:flex;flex-direction:column;align-items:flex-start;gap:8px;max-width:560px;padding:12px 14px;border-radius:10px;border:1px solid var(--border);border-left:3px solid var(--amber);background:var(--card);font-size:14px}.signed-out-note p{margin:0}.field-row{display:flex;flex-direction:column;gap:5px}.field-row>span{font-size:13px;color:var(--muted)}.field-row input,.field-row textarea{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:9px 11px;font:inherit}.nav-icon.has-unread{color:var(--accent)}.unread-dot{position:absolute;top:2px;right:2px;min-width:15px;height:15px;padding:0 3px;border-radius:8px;background:var(--red);color:#fff;font-size:10px;font-weight:700;line-height:15px;text-align:center}.nav-icon{position:relative}.inbox-modal{max-width:560px;max-height:84vh;overflow-y:auto}.inbox-item{border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:12px;background:var(--card)}.inbox-item.done{opacity:.65}.inbox-item.unread{border-color:var(--accent)}.inbox-head{display:flex;align-items:baseline;gap:10px;margin-bottom:4px}.inbox-head strong{font-size:15px}.inbox-message{margin:8px 0;padding:9px 12px;background:var(--bg);border-left:3px solid var(--accent);border-radius:0 8px 8px 0;font-size:14px;line-height:1.5}.skin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin:14px 0 16px}.skin-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:14px;background:var(--card);border:2px solid var(--border);border-radius:var(--radius);text-align:left;cursor:pointer}.skin-card:hover{filter:brightness(1.06)}.skin-card.active{box-shadow:0 0 0 2px var(--accent) inset}.skin-card .board-preview{width:88px;height:88px}.skin-name{font-size:15px;font-weight:700}.skin-blurb{font-size:12.5px;line-height:1.45;color:var(--muted)}.skin-chips{display:flex;gap:4px;margin-top:2px}.skin-chip{width:18px;height:10px;border-radius:3px;box-shadow:inset 0 0 0 1px #80808059}.course-options{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 18px;margin-bottom:14px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}.course-options h4{margin:0;font-size:14px;letter-spacing:.02em}.co-link{background:none;border:none;padding:0;color:var(--accent);font-size:14px;font-weight:600;cursor:pointer}.co-link:hover{text-decoration:underline}.tree-path{display:flex;flex-wrap:wrap;gap:4px;background:var(--bg);border-radius:10px;padding:10px 12px;max-height:96px;overflow-y:auto;font-size:14px;font-weight:600}.tb-crumb{cursor:pointer;padding:2px 6px;border-radius:5px;white-space:nowrap}.tb-crumb:hover{background:var(--card-hover)}.tb-crumb.current{background:var(--accent-dim);color:#fff}.tb-crumb .mvnum{color:var(--muted);font-weight:400;margin-right:1px}.tb-crumb.current .mvnum{color:#ffffffbf}.tree-body{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.tb-heading{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.06em;margin-top:6px}.tb-move{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:9px 12px}.tb-san{font-size:16px;font-weight:700}.tb-san .mvnum{color:var(--muted);font-weight:400;margin-right:2px}.tb-meta{flex:1;text-align:right;color:var(--muted);font-size:13px}.tb-skip{align-self:flex-start}.tb-end{display:flex;align-items:center;gap:8px;background:var(--bg);border-radius:8px;padding:8px 12px}.tb-end-name{flex:1;display:flex;align-items:center;gap:6px;font-weight:600}.collapse-btn{background:transparent;border:none;color:var(--muted);font-size:15px;padding:2px 6px;cursor:pointer}.collapse-btn:hover{color:var(--text);background:transparent}.opening-row{display:flex;gap:18px;align-items:stretch;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px;margin-bottom:16px;flex-wrap:wrap}.opening-info{flex:1;min-width:280px;display:flex;flex-direction:column;gap:12px;justify-content:center}.opening-row .opening-head{margin-bottom:0}.opening-stats{display:flex;align-items:center;gap:14px;color:var(--muted);font-size:14px;flex-wrap:wrap}.opening-stats strong{color:var(--text);font-size:15px}.opening-progress{width:220px;max-width:38%}.section-block{margin-bottom:20px}.section-head{display:flex;align-items:center;gap:6px;margin:4px 0 12px;padding-left:2px}.section-title{font-size:13px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--muted)}.section-count{color:var(--muted);font-size:12.5px;margin-left:6px}.subsection-block{border-left:2px solid var(--border);padding-left:14px;margin:0 0 14px 4px}.subsection-head{display:flex;align-items:center;gap:6px;margin:0 0 10px}.subsection-title{font-size:12.5px;font-weight:700;letter-spacing:.4px;color:var(--text);opacity:.85}.topbar nav button.nav-icon{padding:8px 10px;line-height:0}.volume-row{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;margin-bottom:16px}.volume-row input[type=range]{flex:1;max-width:320px;accent-color:var(--accent)}.vol-icon{font-size:15px}.vol-value{color:var(--muted);font-size:13.5px;min-width:42px}.sound-list{display:flex;flex-direction:column;gap:10px}.sound-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px}.sound-info{display:flex;flex-direction:column;min-width:190px}.sound-info strong{font-size:15px}.sound-tag{font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;padding:2px 9px;border-radius:20px;background:#8b93a72e;color:var(--muted)}.sound-tag.custom{background:#2ecc712e;color:var(--green)}.sound-row .small{margin-left:auto}.sound-row .small~.small{margin-left:0}.chapter-card.just-visited{outline:2px solid var(--accent);outline-offset:-2px;animation:visited-fade 1.6s ease-out}@keyframes visited-fade{0%{background:#3b9cff47}to{background:var(--card)}}:root .chapter-card.folder-card{position:relative;overflow:hidden;padding-left:24px;border-color:var(--accent-dim);background-image:linear-gradient(180deg,color-mix(in srgb,var(--accent) 12%,transparent),transparent 70%)}:root .chapter-card.folder-card:hover{background-image:linear-gradient(180deg,color-mix(in srgb,var(--accent) 18%,transparent),transparent 70%)}:root .chapter-card.folder-card .card-actions{flex-wrap:wrap;justify-content:flex-end}:root .chapter-card.folder-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--accent)}:root[data-theme=light] .chapter-card.folder-card,:root[data-theme=light] .chapter-card.folder-card:hover{background-image:none}:root[data-theme=light] .chapter-card.folder-card{border-color:var(--accent-dim)}:root .chapter-card.folder-card.open{border-color:var(--accent)}:root .chapter-card.folder-card.practiced{border-color:#2ecc718c}:root .chapter-card.folder-card.practiced:before{background:var(--green)}:root .chapter-card.folder-card.practiced,:root[data-theme=light] .chapter-card.folder-card.practiced{background-image:linear-gradient(180deg,rgba(46,204,113,.1),transparent 70%)}:root .chapter-card.folder-card.practiced:hover,:root[data-theme=light] .chapter-card.folder-card.practiced:hover{background-image:linear-gradient(180deg,rgba(46,204,113,.16),transparent 70%)}.folder-card h3{color:var(--text)}.folder-card .sub-chip{border-color:var(--accent-dim)}.folder-caret{color:var(--muted);margin-right:7px;font-size:13px}.folder-card.open .folder-caret{color:var(--accent)}.folder-chips{display:flex;flex-wrap:wrap;gap:5px}.card-group-label{display:inline-block;align-self:flex-start;font-size:10.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--accent);background:#3b9cff1f;border-radius:20px;padding:2px 9px;margin-bottom:-4px}.folder-count{color:var(--muted);font-size:12.5px}.folder-open-panel{grid-column:1 / -1;border-left:2px solid var(--accent-dim);padding:4px 0 4px 16px;margin:0 0 6px 6px}.folder-open-panel.nested{border-left-color:var(--border)}.section-title.clickable,.subsection-title.clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.section-title.clickable:hover,.subsection-title.clickable:hover{color:var(--accent)}.group-summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:13.5px;padding:2px 0 10px 30px;cursor:pointer}.group-summary:hover{color:var(--text)}.sub-chips{display:inline-flex;gap:6px;flex-wrap:wrap}.sub-chip{background:var(--card);border:1px solid var(--border);border-radius:20px;padding:2px 10px;font-size:12px;color:var(--text)}.reorder{display:inline-flex;gap:1px}.reorder button{padding:1px 5px;font-size:10px;line-height:1.4;color:var(--muted);border-radius:4px}.reorder button:hover{color:var(--accent)}.add-card-row{min-height:64px;margin-top:4px}.opening-art{width:150px;height:150px;border-radius:12px;object-fit:cover;cursor:pointer;border:1px solid var(--border);flex:0 0 auto}.opening-art:hover{border-color:var(--accent);filter:brightness(1.08)}.opening-art:active{transform:scale(.99)}.art-add-tile{width:150px;height:150px;border-radius:12px;border:1.5px dashed var(--border);background:transparent;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font-size:26px;cursor:pointer;flex:0 0 auto}.art-add-tile span{font-size:12px;font-weight:600}.art-add-tile:hover{color:var(--accent);border-color:var(--accent-dim);background:var(--card-hover)}.artwork-medium{width:100%;max-width:650px;border-radius:12px;align-self:center}.scope-art{width:48px;height:48px;border-radius:10px;object-fit:cover;border:1px solid var(--border);flex:0 0 auto}.mode-tabs{display:flex;gap:4px;background:var(--card);border-radius:9px;padding:3px}.mode-tabs button{background:transparent;border:none;color:var(--muted);font-weight:600;font-size:13.5px;padding:6px 12px;border-radius:7px}.mode-tabs button.active{background:var(--accent-dim);color:#fff}@media (max-width: 600px){.mode-tabs{max-width:100%;overflow-x:auto;gap:2px}.mode-tabs button{white-space:nowrap;padding:6px 9px;font-size:13px;flex:0 0 auto}}.page.editor-page{padding-top:14px}.page.editor-page .page-head{margin-bottom:12px}@media (max-width: 560px){.page.editor-page{padding-left:calc(12px + var(--safe-left));padding-right:calc(12px + var(--safe-right))}}.board-editor{display:flex;gap:24px;flex-wrap:wrap;align-items:flex-start}.board-editor-stage{display:flex;gap:10px;align-items:flex-start;flex-shrink:0}.board-editor-board{flex-shrink:0;position:relative}.board-editor-board.drawing{cursor:crosshair}.editor-modes{display:flex;flex-direction:column;gap:6px;width:52px;flex-shrink:0}.editor-mode{width:52px;height:52px;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:10.5px;font-weight:600;line-height:1;background:var(--card);border:1px solid var(--border);border-radius:8px;color:var(--muted)}.editor-mode.active{border-color:var(--accent);background:var(--accent-dim);color:#fff}.editor-clear{color:var(--red)}.editor-pens{display:flex;flex-direction:column;align-items:center;gap:7px;padding:5px 0}.editor-pens .pen{width:24px;height:24px}.board-editor-panel{flex:1;min-width:300px;max-width:480px;display:flex;flex-direction:column;gap:12px}.editor-palette{display:flex;flex-direction:column;gap:6px}.editor-palette-row{display:flex;gap:4px}.editor-piece{width:38px;height:38px;padding:3px;display:flex;align-items:center;justify-content:center;background:var(--card);border:1px solid var(--border);border-radius:6px}.editor-piece.active{border-color:var(--accent);background:var(--accent-dim)}.editor-erase{font-size:15px;color:var(--red);width:fit-content;padding:3px 12px}.editor-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.editor-label{font-size:12.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}.editor-check{display:flex;align-items:center;gap:4px;font-size:13px;color:var(--muted)}.editor-presets{display:flex;flex-direction:column;gap:6px}.editor-presets button.active{color:var(--text);border-color:var(--accent);background:var(--accent-dim)}.editor-fen-row{display:flex;gap:8px}.editor-fen-row input{flex:1;min-width:0;font-family:monospace;font-size:12.5px}.editor-fen-error{color:var(--red)}.editor-save{display:flex;flex-direction:column;gap:8px}.editor-save input[type=text]{flex:1;min-width:0}.editor-folder-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.folder-chip{border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:20px;padding:4px 11px;font-size:13px;min-height:30px}.folder-chip.on{background:var(--accent-dim);border-color:var(--accent);color:#fff;font-weight:600}.folder-chip.new{border-style:dashed;color:var(--muted);background:transparent}.folder-chip-input{border-radius:20px;padding:4px 11px;font-size:13px;width:170px}.editor-saved-row select{flex:1 1 180px;min-width:0}.editor-copied{color:var(--green)}.sheet-check{margin-left:auto;color:var(--accent);font-weight:700;padding-left:10px}.editor-scope{margin-bottom:0;flex-wrap:wrap}.editor-scope select{flex:0 1 220px;min-width:0}.editor-scope-empty{margin:0}.recycle-new{display:flex;gap:8px;align-items:center;padding:4px 12px 8px;flex:0 0 auto}.recycle-new input{flex:1;min-width:0;font-size:16px}.recycle-send{display:flex;align-items:center;gap:10px;flex:0 0 auto;padding:4px 12px 10px;margin-bottom:4px;font-size:15px;color:var(--text);border-bottom:1px solid var(--border)}.recycle-send input{width:18px;height:18px;flex:0 0 auto}.recycle-note{margin:0;padding:2px 12px 10px;font-size:14px;color:var(--muted);flex:0 0 auto}.recycle-note.recycle-full{color:var(--text);padding-top:10px}.recycle-back{color:var(--muted)}.recycle-toast span{min-width:0;overflow-wrap:anywhere}.cmp-pickers{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:14px}.cmp-picker{display:flex;align-items:center;gap:6px;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:6px 8px;flex:1;min-width:300px}.cmp-picker select{flex:1;min-width:0}.cmp-side-tag{font-size:11px;font-weight:800;letter-spacing:.6px;color:#0d1016;border-radius:6px;padding:2px 7px;flex:0 0 auto}.cmp-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:linear-gradient(90deg,#3b9cff1a,#e8b3391a);border:1px solid var(--border);border-radius:12px;padding:12px 16px;margin-bottom:14px;font-size:15px}.cmp-banner.same{background:var(--card)}.cmp-banner svg{color:var(--muted);flex:0 0 auto}.cmp-split-move{font-weight:700;font-size:14.5px;border:1px solid;border-radius:8px;padding:2px 10px;background:var(--chip-bg)}.cmp-vs{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:1px}.cmp-scrub{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:16px}.cmp-scrub button{min-width:42px;min-height:38px}.cmp-scrub input[type=range]{flex:1;min-width:180px;accent-color:var(--accent);background:linear-gradient(90deg,var(--border) var(--split-pct),var(--amber) var(--split-pct),var(--amber) calc(var(--split-pct) + 2px),var(--border) calc(var(--split-pct) + 2px));height:6px;border-radius:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.cmp-scrub input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--text);border:3px solid var(--panel);cursor:pointer}.cmp-ply{display:flex;align-items:center;gap:4px}.cmp-state{font-weight:700;font-size:12px;letter-spacing:.5px;text-transform:uppercase}.cmp-state.same{color:var(--muted)}.cmp-state.diff{color:var(--amber)}.cmp-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}.cmp-side{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px;min-width:0}.cmp-side.side-a{border-top:3px solid #3b9cff}.cmp-side.side-b{border-top:3px solid #e8b339}.cmp-side-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:nowrap;min-width:0}.cmp-side-head strong,.cmp-side-head .muted-note{flex:0 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cmp-side-head button{flex:0 0 auto}.cmp-side-head strong{font-size:15px}.cmp-board{margin:0 auto}.cmp-line-meta{margin:8px 0 4px}.cmp-moves{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:1px;row-gap:3px;line-height:1.9;font-size:14.5px}.cmp-num{color:var(--muted);margin-right:2px;font-size:13px}.cmp-mv{cursor:pointer;padding:1px 5px;border-radius:5px;margin-right:4px;font-weight:600}.cmp-mv:hover{background:var(--card-hover)}.cmp-mv.shared{color:var(--muted);font-weight:500}.cmp-mv.split{font-weight:800;box-shadow:inset 0 0 0 2px currentColor;background:#ffffff0f}.cmp-mv.current{background:var(--accent-dim);color:#fff!important}.cmp-help{margin-top:16px}@media (max-width: 1000px){.cmp-grid{grid-template-columns:1fr}.cmp-picker{min-width:0}}.cmp-pasted-name{flex:1;min-width:0;font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--panel);border:1px dashed var(--border);border-radius:8px;padding:7px 10px}.cmp-paste-preview{background:var(--bg);border-radius:8px;padding:10px 12px;font-size:14px;line-height:1.9;max-height:150px;overflow-y:auto}.settings-section{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:18px 20px;margin-bottom:18px}.settings-section>.page-head{margin-bottom:14px}.settings-section h2{font-size:17px;margin:0;flex:1}.theme-choices{display:flex;gap:12px;flex-wrap:wrap}.theme-card{flex:1;min-width:150px;text-align:left;display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:var(--panel)}.theme-card.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.theme-swatch{width:100%;height:34px;border-radius:8px;margin-bottom:4px;border:1px solid var(--border)}.theme-swatch.dark{background:linear-gradient(135deg,#14171d 50%,#232833 50%)}.theme-swatch.light{background:linear-gradient(135deg,#f4f6fa 50%,#fff 50%)}.theme-swatch.auto{background:linear-gradient(135deg,#f4f6fa 50%,#14171d 50%)}.auto-hours{align-items:center;gap:8px;flex-wrap:wrap;margin-top:14px}.setting-toggle{display:flex;align-items:center;gap:14px;padding:12px 4px;cursor:pointer;border-top:1px solid var(--border)}.setting-toggle:first-of-type{border-top:none}.setting-toggle input{position:absolute;opacity:0;pointer-events:none}.setting-text{display:flex;flex-direction:column;gap:2px;flex:1}.setting-text .muted-note{font-size:13px}.switch{width:46px;height:27px;border-radius:999px;flex:0 0 auto;background:var(--track);border:1px solid var(--border);position:relative;transition:background .15s}.switch .knob{position:absolute;top:2px;left:2px;width:21px;height:21px;border-radius:50%;background:var(--muted);transition:transform .15s,background .15s}.setting-toggle.on .switch{background:var(--accent);border-color:var(--accent)}.setting-toggle.on .switch .knob{transform:translate(19px);background:#fff}.finish-bar{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}.finish-bar button{flex:1;min-width:120px;min-height:44px;font-weight:600}.avatar-frame{flex-shrink:0;border-radius:30%;object-fit:cover;background:var(--panel)}.avatar-pick-btn{position:relative;align-self:flex-start;padding:0;border:none;background:none;cursor:pointer;width:fit-content}.avatar-pick-badge{position:absolute;right:-4px;bottom:-4px;display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--accent);color:#fff;border:2px solid var(--panel)}.avatar-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.avatar-choice{padding:6px;border-radius:12px;border:2px solid transparent;background:var(--panel);cursor:pointer;display:flex;align-items:center;justify-content:center}.avatar-choice:hover{background:var(--card-hover)}.avatar-choice.active{border-color:var(--accent)}.avatar-picker{max-width:460px}.game-editor{max-width:660px}.game-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:12px}.game-fields label,.game-notes{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--muted);font-weight:600}.game-fields input,.game-fields select{font-size:14px}.game-notes{margin-top:12px}.result-pill{font-weight:700;font-size:12px;letter-spacing:.5px;border:1px solid var(--border);border-radius:999px;padding:1px 9px}input[type=date]{font:inherit;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:7px 10px}.chapter-card.practiced,.variation-row.practiced,.opening-row.practiced{border-color:#2ecc718c;background:linear-gradient(180deg,rgba(46,204,113,.1),transparent 70%),var(--card)}.chapter-card.practiced:hover{background:linear-gradient(180deg,rgba(46,204,113,.16),transparent 70%),var(--card-hover)}.chapter-card.practiced h3:after{content:"";display:inline-block;width:8px;height:8px;margin-left:8px;border-radius:50%;background:var(--green);vertical-align:middle}.variation-row.due{border-left:3px solid var(--green)}.practiced-pill{color:var(--green);font-weight:700;font-size:11.5px;text-transform:uppercase;letter-spacing:.4px;display:inline-flex;align-items:center;gap:4px;border:1px solid rgba(46,204,113,.4);border-radius:999px;padding:1px 8px}.srs-pill{font-size:11.5px;font-weight:700;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:1px 8px;white-space:nowrap}.chapter-progress{display:flex;align-items:center;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:14px;margin:-6px 0 16px}.chapter-progress strong{color:var(--text)}.player-summary{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:-6px 0 14px}.ps-record{font-size:15px;color:var(--muted)}.ps-record strong{color:var(--text);font-size:17px;margin-right:3px}.game-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:16px}.gf-search{display:flex;align-items:center;gap:8px;flex:1;min-width:220px;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:0 10px;color:var(--muted)}.gf-search input{flex:1;min-width:0;background:none;border:none;padding:8px 0;color:var(--text)}.gf-search input:focus{outline:none}.game-card{background:var(--card);border:1px solid var(--border);border-left:3px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-bottom:14px}.game-card.res-win{border-left-color:var(--green)}.game-card.res-loss{border-left-color:var(--red)}.game-card.res-draw{border-left-color:var(--muted)}.game-card-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.game-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.gh-side{display:flex;align-items:center;gap:6px}.gh-disc{width:12px;height:12px;border-radius:50%;border:1px solid var(--border);flex:0 0 auto}.gh-disc.white{background:#e9ecf2}.gh-disc.black{background:#14171d}.gh-player{font-size:15px}.gh-player.mine strong{color:var(--accent)}.gh-elo{font-size:12px;color:var(--muted);margin-left:5px;border:1px solid var(--border);border-radius:5px;padding:0 5px}.gh-result{font-weight:800;font-size:15px;color:var(--muted)}.gh-result.win{color:var(--green)}.gh-result.loss{color:var(--red)}.game-meta-row{display:flex;gap:7px;flex-wrap:wrap;align-items:center;color:var(--muted);font-size:13px;margin:8px 0}.result-pill.win{color:var(--green);border-color:#2ecc7173}.result-pill.loss{color:var(--red);border-color:#e5534b73}.result-pill.draw{color:var(--muted)}.game-cat-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0 10px}.cat-chip{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;border:1px solid var(--border);border-radius:999px;padding:2px 10px}.cat-chip.repertoire{color:var(--green);border-color:#2ecc7166}.cat-chip.offbeat{color:var(--amber);border-color:#e8b33966}.cat-chip.custom{color:var(--accent);border-color:var(--accent-dim)}.cat-select{font-size:12.5px;padding:4px 8px;max-width:220px}.game-info-box{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:12px 14px;margin:10px 0}.gi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px 16px;margin-bottom:10px}.gi-grid>div{display:flex;flex-direction:column}.gi-grid span{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:700}.gi-notes{border-top:1px solid var(--border);padding-top:10px}.gi-notes span{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:700}.gi-notes p{margin:4px 0 0;white-space:pre-wrap}.gi-peek{font-style:italic}.cat-manage-row{display:flex;align-items:center;gap:8px;padding:8px 2px;border-top:1px solid var(--border)}.field-pair{display:flex;gap:6px}.field-pair input{min-width:0;flex:1}.field-pair .elo{max-width:74px;flex:0 0 auto}.scoresheet-thumb{padding:0;border:1px solid var(--border);border-radius:6px;overflow:hidden;width:34px;height:34px;flex-shrink:0;line-height:0}.scoresheet-thumb img{width:100%;height:100%;object-fit:cover;display:block}.scoresheet-modal{max-width:min(90vw,640px);max-height:90vh;display:flex;flex-direction:column;gap:12px}.scoresheet-modal img{max-width:100%;max-height:70vh;object-fit:contain;border-radius:8px;align-self:center}.scoresheet-attach-row{display:flex;align-items:center;gap:10px;margin-top:4px}.scoresheet-unscanned{display:flex;align-items:center;gap:6px;color:var(--amber);font-size:13px;font-weight:600}.shuffle-toggle{display:inline-flex;align-items:center;gap:6px;cursor:pointer;padding:8px 13px;border-radius:8px;font-weight:600;font-size:13.5px;color:var(--muted);border:1px solid var(--border)}.shuffle-toggle input{position:absolute;opacity:0;pointer-events:none}.shuffle-toggle.on{color:#fff;background:var(--accent-dim);border-color:var(--accent-dim)}.tag-btn.on{color:var(--amber)}.tag-btn.on:hover{color:var(--amber);background:#e8b33924}.row-untag{flex:0 0 auto;padding:6px;margin-left:2px;border-radius:8px;background:transparent;border:none;display:inline-flex;align-items:center}.group-row{transition:opacity .35s ease,transform .35s ease,max-height .35s ease}.group-row.fading{opacity:0;transform:translate(18px);pointer-events:none}.course-block{margin:0 18px 14px 26px}.course-row{padding:10px 12px;gap:14px;border-radius:12px;background:var(--panel)}.course-row .opening-head h3{font-size:16.5px}.course-row .opening-stats{font-size:13px}.course-art{width:96px!important;height:96px!important;border-radius:10px}.art-add-tile.course-art{font-size:11px;gap:4px}.art-add-tile.course-art span{font-size:11px}.course-body{margin-top:12px}.add-course{display:block;width:100%;margin:4px 0 0 22px;background:transparent;border:1.5px dashed var(--border);border-radius:var(--radius);color:var(--muted);padding:10px;font-weight:600;text-align:center}.add-course:hover{color:var(--accent);border-color:var(--accent-dim);background:var(--card)}.course-chip{font-size:11px;font-weight:700;letter-spacing:.4px;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:1px 8px}@media (max-width: 720px){.course-block{margin:0 4px 12px 10px}.add-course{margin-left:8px}.course-art{width:78px!important;height:78px!important}}.course-picker{display:inline-flex;align-items:center;gap:6px}.course-picker select{font-size:13px;padding:5px 8px}.author-row{display:flex;align-items:center;gap:10px;padding:9px 4px;border-top:1px solid var(--border);cursor:pointer}.author-row input{width:17px;height:17px;accent-color:var(--accent)}.author-name{flex:1;font-weight:600}.profile-line{font-size:12.5px;color:var(--muted);margin-top:3px;display:flex;flex-wrap:wrap;gap:4px}.board-stack{position:relative}.promotion-scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;cursor:default}.promotion-picker{position:absolute;z-index:21;display:flex;flex-direction:column;border-radius:6px;overflow:hidden;box-shadow:0 6px 20px #0006}.promotion-option{border:none;padding:2px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:filter .1s ease}.promotion-option:hover,.promotion-option:focus-visible{filter:brightness(1.18);outline:2px solid var(--blue, #3b9cff);outline-offset:-2px}.wrong-ghost{position:absolute;left:0;top:0;pointer-events:none;z-index:12;display:flex;align-items:center;justify-content:center}.wrong-ghost svg,.wrong-ghost img{width:100%;height:100%}.game-card-body{display:flex;gap:16px;align-items:flex-start}.game-card-main{flex:1;min-width:0}.mini-board-btn{background:none;border:none;padding:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:5px;flex:0 0 auto}.mini-board-btn:hover{background:none}.mini-board-btn:hover .mini-board{border-color:var(--accent)}.mb-caption{font-size:11px;color:var(--muted)}.mini-board{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);border:1px solid var(--border);border-radius:6px;overflow:hidden;line-height:1}.mb-sq{background:var(--board-light);display:flex;align-items:center;justify-content:center}.mb-sq.dark{background:var(--board-dark)}.mb-piece.white{color:#fff;-webkit-text-stroke:.5px #1b2430;text-shadow:0 0 1px #24303f,0 1px 1px rgba(0,0,0,.45)}.mb-piece.black{color:#10151d;-webkit-text-stroke:.5px #eef2f7;text-shadow:0 1px 1px rgba(255,255,255,.18)}.material-bar{display:flex;align-items:center;min-height:20px;font-size:17px;line-height:1}.material-piece{margin-right:-4px}.material-piece.white{color:#fff;-webkit-text-stroke:.6px #1b2430;text-shadow:0 0 1px #24303f,0 1px 1px rgba(0,0,0,.45)}.material-piece.black{color:#10151d;-webkit-text-stroke:.6px #eef2f7;text-shadow:0 1px 1px rgba(255,255,255,.25)}.material-adv{margin-left:8px;font-size:12.5px;font-weight:700;color:var(--green)}@media (max-width: 620px){.game-card-body{flex-direction:column}.mini-board-btn{flex-direction:row;gap:10px;align-self:flex-start}}.analysis-movelist-panel{display:flex;flex-direction:column;gap:8px}.movelist-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;font-size:12px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}.movelist-head .muted-note{text-transform:none;letter-spacing:0;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.movelist-head button{flex-shrink:0}.analysed-game{display:flex;flex-direction:column;gap:8px}.analysed-game .game-meta-row{margin:0}.side-tabs-panel{padding-top:10px}.side-tabs{display:flex;gap:4px;margin-bottom:12px;background:var(--panel);border-radius:9px;padding:3px}.side-tabs button{flex:1;background:transparent;border:none;color:var(--muted);font-weight:600;font-size:13.5px;padding:6px 10px;border-radius:7px}.side-tabs button.active{background:var(--accent-dim);color:#fff}.side-tabs-panel h3{margin-top:0}.board-menu-wrap{position:relative;display:inline-flex}.board-menu{position:absolute;bottom:calc(100% + 8px);left:0;z-index:30;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:6px;min-width:190px;box-shadow:0 8px 20px var(--shadow)}.board-menu-row{display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:7px;cursor:pointer;font-size:13.5px;color:var(--muted)}.board-menu-row:hover{background:var(--card-hover)}.board-menu-row.on{color:var(--text);font-weight:600}.board-menu-row input{width:15px;height:15px;accent-color:var(--accent)}.board-menu-group{margin:2px 0 2px 12px;padding-left:8px;border-left:2px solid var(--border)}.board-menu-group.off{opacity:.4;pointer-events:none}.status-line.scanning{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.scan-progress{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.scan-track{fill:none;stroke:var(--border);stroke-width:5}.scan-fill{fill:none;stroke:var(--accent);stroke-width:5;stroke-linecap:round;transition:stroke-dasharray .9s linear}.scan-label{position:absolute;font-size:12px;font-weight:700;color:var(--muted)}.sheet-verify{display:grid;gap:16px;align-items:start;grid-template-columns:minmax(0,auto) minmax(220px,300px) minmax(240px,1fr)}@media (max-width: 1080px){.sheet-verify{grid-template-columns:1fr 1fr}}@media (max-width: 720px){.sheet-verify{grid-template-columns:1fr}}.sv-board{display:flex;flex-direction:column;gap:8px;align-items:center}.sv-board-note{font-size:13.5px;color:var(--muted)}.sv-step{display:flex;align-items:center;gap:10px}.sv-status{font-size:13px;display:flex;align-items:center;gap:6px}.sv-status.ok{color:var(--green)}.sv-status.bad{color:var(--amber, #e8b339)}.sv-lane{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:6px;max-height:620px;overflow-y:auto;position:relative}.sv-row{display:grid;grid-template-columns:2.2em 1fr 1fr;gap:6px;align-items:center;padding:3px 4px;border-radius:8px}.sv-row.current{background:var(--card-hover);box-shadow:inset 3px 0 0 var(--accent)}.sv-num{color:var(--muted);font-size:12px;text-align:right}.sv-chip{border:1px solid transparent;border-radius:7px;padding:5px 8px;font-weight:700;font-size:13.5px;text-align:center;width:100%;background:var(--panel);color:var(--text)}.sv-chip.ok{background:#3eb48938;border-color:#3eb48980}.sv-chip.unknown{background:#e8b33938;border-color:#e8b3398c}.sv-chip.bad{background:#e5534b47;border-color:#e5534b99}.sv-chip.blocked{opacity:.5}.sv-chip.empty{background:none;border:none}.sv-chip.selected{outline:2px solid var(--accent);outline-offset:1px}.sv-chip.editing{padding:0}.sv-chip input{width:100%;padding:4px 6px;font-weight:700}.sv-photo{display:flex;flex-direction:column;gap:8px;min-width:0}.sv-photo-head{display:flex;align-items:center;gap:8px}.sv-pages{display:flex;gap:4px}.sv-photo-wrap{position:relative;max-height:520px;overflow-y:auto;background:var(--panel);border:1px solid var(--border);border-radius:10px}.sv-photo-wrap img{display:block;width:100%}.sv-band{position:absolute;left:0;right:0;background:#3b9cff38;border-top:2px solid var(--accent);border-bottom:2px solid var(--accent);pointer-events:none}.sv-calib{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;font-size:12.5px}.sv-calib label{display:flex;align-items:center;gap:6px;color:var(--muted)}.sv-calib input[type=range]{width:110px}.sv-calib input[type=number]{width:62px;padding:3px 6px}.sv-suggest{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:10px 12px}.settings-head{display:flex;align-items:flex-start;gap:10px;width:100%;text-align:left;background:none;border:none;color:inherit;padding:4px 0 8px}.settings-head:hover{background:none}.settings-head .folder-caret{color:var(--muted);font-size:13px;padding-top:4px}.settings-head-text{display:flex;flex-direction:column;gap:2px}.settings-head h2{margin:0;font-size:18px}.settings-body{display:flex;flex-direction:column;gap:10px}.settings-tabs{display:flex;gap:6px;margin-bottom:18px;padding-bottom:2px;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--border)}.settings-tabs::-webkit-scrollbar{display:none}.settings-tab{flex:0 0 auto;background:none;border:none;border-bottom:2px solid transparent;border-radius:8px 8px 0 0;color:var(--muted);font-size:14px;font-weight:600;padding:9px 14px;cursor:pointer;white-space:nowrap}.settings-tab:hover{color:var(--text);background:var(--card-hover)}.settings-tab.active{color:var(--accent);border-bottom-color:var(--accent);background:none}.settings-head.static{cursor:default;padding-top:0}.speed-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.side-note{background:var(--panel);border-radius:var(--radius);padding:2px;margin-bottom:12px}.move-note{background:#3b9cff17;border:1px solid rgba(59,156,255,.32);border-left-width:3px;border-radius:10px;padding:10px 13px;margin:10px 0}.move-note.stale{opacity:.75}.mn-move{display:flex;align-items:center;gap:6px;color:var(--accent);font-size:12.5px;font-weight:700;letter-spacing:.3px;margin-bottom:3px}.mn-body{max-height:260px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(59,156,255,.45) transparent}.mn-body::-webkit-scrollbar{width:6px}.mn-body::-webkit-scrollbar-track{background:transparent}.mn-body::-webkit-scrollbar-thumb{background:#3b9cff59;border-radius:999px}.mn-body::-webkit-scrollbar-thumb:hover{background:#3b9cff8c}.move-note p{margin:0;font-size:14.5px;line-height:1.55}.mn-move-ref{background:none;border:none;padding:0;margin:0;font:inherit;font-weight:700;color:var(--accent);cursor:pointer;text-decoration:none}.mn-move-ref:hover{text-decoration:underline}.mn-move-ref:disabled{color:inherit;cursor:text}.mn-square-ref{font-weight:700}.move-note.called-out{background:#3b9cff29;border-color:#3b9cff99;animation:note-arrive .28s ease-out}@keyframes note-arrive{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.move-note.floating{animation:note-arrive .3s ease-out,note-float 3.6s ease-in-out .35s infinite}@keyframes note-float{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes note-highlight-pulse{0%{box-shadow:inset 0 0 0 3px var(--accent),0 0 22px 6px #3b9cffbf}to{box-shadow:inset 0 0 0 3px var(--accent),0 0 16px 3px #3b9cff80}}.move-timer{display:flex;align-items:center;gap:9px;margin:4px 0 2px}.move-timer .mt-track{flex:1;height:6px;border-radius:999px;background:var(--track, rgba(255, 255, 255, .09));overflow:hidden}.move-timer .mt-fill{height:100%;border-radius:999px;background:var(--accent, #3b9cff);transition:width .1s linear,background-color .2s ease}.move-timer .mt-count{min-width:30px;text-align:right;font-size:12.5px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--muted)}.move-timer.urgent .mt-fill{background:var(--red, #e5534b)}.move-timer.urgent .mt-count{color:var(--red, #e5534b)}.setting-children{margin-left:18px;padding-left:14px;border-left:2px solid var(--border)}.sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#00000080;display:flex;align-items:center;justify-content:center;padding:calc(20px + var(--safe-top)) calc(20px + var(--safe-right)) calc(20px + var(--safe-bottom)) calc(20px + var(--safe-left));animation:sheet-fade .15s ease-out}.sheet{width:min(560px,100%);max-height:min(85vh,720px);overflow-y:auto;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:10px 18px 18px;box-shadow:0 18px 44px var(--shadow);animation:sheet-rise .2s cubic-bezier(.22,.9,.3,1)}@keyframes sheet-fade{0%{opacity:0}to{opacity:1}}@keyframes sheet-rise{0%{transform:translateY(14px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@media (prefers-reduced-motion: reduce){.sheet,.sheet-overlay{animation:none}}.sheet-grab{display:block;width:42px;height:4px;border-radius:2px;background:var(--border);margin:2px auto 12px}.sheet h3{margin:0 0 2px}.sheet .hint{margin-top:0}.sheet-row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:11px 13px;margin-bottom:8px;color:inherit;font:inherit}.sheet-row:hover{background:var(--card-hover);border-color:var(--accent)}.sheet-row-text{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.sheet-row-text strong{font-size:15px}.scope-art.small{width:42px;height:42px;border-radius:9px}.scope-art.small.blank{display:flex;align-items:center;justify-content:center;background:var(--panel);color:var(--muted);border:1px solid var(--border)}.sheet .modal-actions{margin-top:4px}.scope-chevron{color:var(--muted);font-size:22px;margin-left:10px}.chapter-scope .sub-chip{margin-left:8px}.chapter-scope.has-due{border-color:var(--accent)}.practice-summary{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:-4px 0 14px;color:var(--muted);font-size:14px}.live-rating{display:inline-flex;align-items:center;gap:5px;flex-wrap:wrap;font-size:12.5px;margin-top:2px}.live-rating.loading{color:var(--muted)}.live-rating.good{color:var(--green, #3eb489)}.live-rating.bad{color:var(--red)}.game-fields label.wide{grid-column:1 / -1}.pv-dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto;margin-right:2px;align-self:center}.select-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:9px 12px;margin-bottom:12px;position:sticky;top:calc(62px + var(--safe-top) + var(--status-gap));z-index:5}.row-check{width:17px;height:17px;accent-color:var(--accent);flex:0 0 auto}.variation-row.chosen{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent);background:var(--card-hover)}.select-bar button.danger{color:var(--red);border-color:var(--red)}.select-bar button.danger:disabled{color:var(--muted);border-color:var(--border)}.confirm-list{margin:0 0 4px;padding-left:20px;max-height:190px;overflow-y:auto;color:var(--muted);font-size:14px}.pgn-import{max-width:680px}.pgn-import{max-height:100%;overflow-y:auto}.pgn-import>*{flex-shrink:0}.pgn-import .dropzone{display:flex;flex-direction:column;align-items:center;gap:4px;padding:16px;margin-bottom:12px}.pgn-import .dropzone.over{border-color:var(--accent);background:var(--accent-dim)}.paste-label{display:flex;flex-direction:column;gap:6px;font-size:13.5px;color:var(--muted)}.paste-label span{display:flex;align-items:center;gap:6px}.import-count{display:flex;align-items:center;gap:8px;margin:12px 0 6px;font-size:13.5px}.import-list{max-height:260px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.import-row{display:flex;align-items:center;gap:9px;padding:6px 8px;border-radius:8px;background:var(--panel)}.import-row.off{opacity:.45}.import-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent)}.import-name{flex:0 1 210px;min-width:0;font-weight:600}.import-moves{flex:1 1 auto;min-width:0;font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.import-warn{display:inline-flex;align-items:center;gap:5px;color:var(--warn, #e2a03f);font-size:13px}.import-groups{max-height:340px;overflow-y:auto;display:flex;flex-direction:column;gap:14px}.import-group-head{font-weight:700;font-size:13.5px;margin-bottom:6px}.import-group .import-list{max-height:none;overflow:visible}.line-picker{min-width:0;max-width:100%;flex:1 1 240px}.analysis-head .line-picker{flex-basis:160px}@media (min-width: 980px){.analysis-head h1{flex:0 0 auto;min-width:0}.analysis-head .line-picker{flex:1 1 110px;min-width:100px;max-width:380px}}@media (max-width: 1339px){.analysis-head .reset-board-label{display:none}}.linkish{background:none;border:none;padding:0;color:var(--accent);font:inherit;font-weight:600;text-decoration:underline;cursor:pointer}.move-table{display:grid;grid-template-columns:2.2em 1fr 1fr;align-items:center;gap:1px 4px;line-height:1.6}.movelist-scroll{position:relative;overflow-y:auto;max-height:320px}.mt-num{color:var(--muted);font-size:12.5px;text-align:right;padding-right:4px}.mt-branch{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:baseline;gap:1px 3px;margin:2px 0 2px 10px;padding:3px 6px 3px 8px;border-left:2px solid var(--border);border-radius:0 7px 7px 0;background:color-mix(in srgb,var(--panel) 70%,transparent);font-size:13px}.mt-branch .mt-move.inline{font-size:13px;font-weight:600;padding:1px 4px}.mt-inline-num{color:var(--muted);font-size:11.5px}.mt-nested{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:2px;color:var(--muted)}.mt-branch-menu{background:none;border:none;color:var(--muted);padding:0 3px;font-size:14px;line-height:1;cursor:pointer}.mt-branch-menu:hover{color:var(--text)}.menu-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70}.move-menu{position:fixed;z-index:71;min-width:190px;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:5px;box-shadow:0 10px 26px var(--shadow);display:flex;flex-direction:column;gap:2px}.move-menu button{background:none;border:none;text-align:left;color:var(--text);padding:8px 10px;border-radius:7px;font-size:13.5px;width:100%}.move-menu button:hover{background:var(--card-hover)}.move-menu button.danger{color:var(--red)}.mt-highlight-row{display:flex;gap:6px;padding:4px 6px 8px;border-bottom:1px solid var(--border);margin-bottom:3px}.mt-swatch{width:22px;height:22px;border-radius:999px;padding:0;border:2px solid transparent;cursor:pointer}.mt-swatch.on{border-color:var(--text)}.mt-swatch-clear{background:none;border:1px solid var(--border);color:var(--muted);font-size:11px;display:flex;align-items:center;justify-content:center;margin-left:auto}.mt-swatch-clear:disabled{opacity:.4;cursor:default}.mt-swatch-clear:not(:disabled):hover{color:var(--text);border-color:var(--text)}.shortcut-grid{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;align-items:center;font-size:14px}.shortcut-grid kbd,.kbd-edit{background:var(--panel);border:1px solid var(--border);border-bottom-width:2px;border-radius:6px;padding:2px 7px;font-size:12.5px;font-family:inherit;color:var(--text);justify-self:start}.kbd-edit{cursor:pointer;min-width:28px;text-align:center}.kbd-edit:hover{border-color:var(--accent-dim)}.kbd-edit.listening{border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 25%,transparent)}.mt-move{background:none;border:none;text-align:left;padding:3px 6px;border-radius:6px;font-weight:600;font-size:14px;color:var(--text)}.mt-move:hover{background:var(--card-hover)}.mt-move.current{background:var(--accent);color:#fff}.phone-row{display:flex;align-items:center;gap:12px;padding:10px 6px 10px 12px;margin-bottom:10px;border-radius:14px}.phone-row .opening-art,.phone-row .art-add-tile{width:64px;height:64px;border-radius:12px;gap:0}.phone-row .course-art{width:52px!important;height:52px!important}.phone-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px;cursor:pointer}.phone-title{display:flex;align-items:baseline;gap:6px;min-width:0}.phone-title h2,.phone-title h3{margin:0;font-size:17px;line-height:1.25;flex:1;min-width:0;overflow-wrap:anywhere}.phone-title h3{font-size:15.5px}.phone-star{color:var(--amber);display:inline-flex;margin-right:5px;vertical-align:-1px}.phone-caret{color:var(--muted);font-size:12px;flex:0 0 auto}.phone-facts{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:13px}.phone-facts .color-badge{font-size:10px;padding:2px 7px;cursor:default}.phone-bar{display:flex;align-items:center;gap:8px}.phone-bar .progress-track{flex:1;height:6px}.phone-count{color:var(--muted);font-size:12.5px;font-variant-numeric:tabular-nums;white-space:nowrap}.tap-btn{min-height:44px;padding:8px 14px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-weight:600;font-size:15px;white-space:nowrap}.tap-btn.icon{width:44px;padding:0;flex:0 0 auto}.tap-btn.grow{flex:1}.tap-btn.ghost{background:transparent;border-color:var(--border);color:var(--muted)}.more-btn{width:44px;height:44px;flex:0 0 auto;padding:0;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;color:var(--muted)}.more-btn:hover{color:var(--text);background:var(--card-hover)}.sheet-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:var(--scrim);display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:560px;max-height:calc(100vh - var(--safe-top) - 24px);background:var(--panel);border:1px solid var(--border);border-bottom:none;border-radius:18px 18px 0 0;padding:8px 10px calc(10px + var(--safe-bottom));display:flex;flex-direction:column;box-shadow:0 -10px 40px var(--shadow);animation:sheet-up .22s cubic-bezier(.2,.9,.3,1)}@keyframes sheet-up{0%{transform:translateY(40px);opacity:.6}to{transform:none;opacity:1}}.sheet-grip{width:36px;height:4px;border-radius:2px;background:var(--border);margin:2px auto 8px;flex:0 0 auto}.sheet-title{font-weight:700;font-size:14px;color:var(--muted);padding:2px 12px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:0 0 auto}.sheet-rows{overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;min-height:0}.sheet-row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;min-height:48px;padding:8px 12px;border-radius:10px;flex:0 0 auto;background:transparent;border:none;color:var(--text);font-size:16px}.sheet-row:hover{background:var(--card-hover)}.sheet-row:disabled{opacity:.4}.sheet-row.danger{color:var(--red)}.sheet-icon{width:24px;display:inline-flex;justify-content:center;align-items:center;color:var(--muted);font-size:14px;flex:0 0 auto}.sheet-row.danger .sheet-icon{color:var(--red)}.sheet-label{display:flex;flex-direction:column;min-width:0}.sheet-hint{color:var(--muted);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sheet-sep{height:1px;background:var(--border);margin:6px 12px;flex:0 0 auto}.sheet-cancel{margin-top:8px;min-height:46px;border-radius:12px;font-weight:600;font-size:16px;flex:0 0 auto}.color-dot{width:14px;height:14px;border-radius:50%;border:1px solid var(--border);display:inline-block}.color-dot.white{background:#e9ecf2}.color-dot.black{background:#0d0f13}.phone-chapter-head{margin-bottom:10px}.phone-chapter-head h1{font-size:20px;line-height:1.25;overflow-wrap:anywhere;min-width:0}.phone-toolbar{display:flex;gap:8px;align-items:center;margin-bottom:12px}.phone-course{display:flex;align-items:center;gap:8px;margin-bottom:12px}.phone-course select{flex:1;min-width:0}.variation-row .phone-line-head{align-items:flex-start;gap:6px;margin-bottom:4px}.variation-row .phone-line-head h3{font-size:16px;line-height:1.3;overflow-wrap:anywhere;padding-top:10px}.variation-row .phone-line-head .row-check{margin-top:13px}.phone-line-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-bottom:8px;font-size:13px;color:var(--muted)}@media (max-width: 600px){.page{padding:18px calc(14px + var(--safe-right)) calc(80px + var(--safe-bottom)) calc(14px + var(--safe-left))}.page-head{gap:10px;margin-bottom:14px}.page-head h1{font-size:21px}select{max-width:100%}.opening-section{margin-bottom:22px}.course-block{margin:0 0 10px 8px}.chapter-grid{gap:10px}.chapter-card{padding:14px;min-height:0;gap:10px}.chapter-card h3{font-size:15.5px}.chapter-card .card-actions{gap:8px;align-items:center}.chapter-card .card-actions .tap-btn:first-child{flex:1}.add-card{min-height:56px}.course-options{display:none}.chapter-progress{margin:0 0 12px}.variation-row{padding:12px 12px 12px 14px;margin-bottom:10px}.variation-moves{font-size:14.5px}.variation-row .row-foot{gap:8px;margin-top:6px}.variation-row .row-foot .learn-btn{flex:1;min-height:44px;padding:8px 12px}.import-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px}.import-tabs button{min-width:0;padding:9px 8px;font-size:14px}.vision-setup{padding:12px}.settings-section{padding:14px;border-radius:12px}.theme-choices{flex-wrap:nowrap;gap:8px}.theme-card{flex:1 1 0;min-width:0;padding:8px;gap:2px}.theme-card .muted-note{font-size:11.5px;line-height:1.3}.theme-swatch{height:24px}.breadcrumb{margin-bottom:10px;font-size:13px;gap:6px;white-space:nowrap}.breadcrumb .crumb-current{min-width:0;overflow:hidden;text-overflow:ellipsis}.btn-label{display:none}.board-editor-stage{flex-direction:column;align-items:stretch;gap:8px}.editor-modes{flex-direction:row;width:auto;align-items:center}.editor-mode{width:60px;height:44px;flex-direction:row;gap:5px;font-size:11.5px}.editor-pens{flex-direction:row;padding:0 4px}.practice-layout{gap:12px;justify-content:center}.practice-board{margin:0 auto;max-width:100%}.practice-side{flex:1 1 100%;min-width:0;gap:10px}.practice-side>.practice-status{order:-2;padding:10px 12px}.practice-actions{order:-1;gap:8px!important}.practice-actions>span{display:none}.practice-actions button{flex:1 1 0;min-width:0;min-height:44px;padding:8px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.practice-title-row{align-items:center;flex-wrap:nowrap}.practice-title-row h3{flex:1 1 0;min-width:0;margin:0;font-size:15.5px}.practice-status .sub{font-size:13px}.practice-status .sub[style]{margin:2px 0!important}.practice-status .progress-track[style]{margin:6px 0!important}.feedback{font-size:15px;min-height:20px}.practice-moves-played{padding:8px 10px;font-size:13.5px;line-height:1.7}.practice-moves-played.empty{display:none}}.link-pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:1px 8px;border-radius:999px;background:var(--card-hover);color:var(--muted);border:1px solid var(--border)}.link-pill.ok{color:var(--green);border-color:color-mix(in srgb,var(--green) 40%,transparent)}.link-pill.bad{color:var(--red);border-color:color-mix(in srgb,var(--red) 45%,transparent)}.link-pill.new{color:#fff;background:var(--accent);border-color:var(--accent);font-weight:600}.link-pill-btn{font:inherit;font-size:12px;font-weight:600;padding:0 4px;border:none;background:none;color:var(--accent);cursor:pointer}.coach-toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(18px + var(--safe-bottom));z-index:80;display:flex;align-items:center;gap:10px;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:12px;padding:10px 14px;box-shadow:0 10px 26px var(--shadow);max-width:min(520px,calc(100vw - 32px))}.reorder-sheet{max-width:620px;width:100%;max-height:88vh;display:flex;flex-direction:column}.reorder-tools{flex-wrap:wrap;gap:6px}.reorder-list{list-style:none;margin:10px 0;padding:0;flex:1;min-height:160px;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg)}.reorder-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-bottom:1px solid var(--border);background:var(--card)}.reorder-row:last-child{border-bottom:none}.reorder-row.dragging{background:var(--accent-dim);box-shadow:0 4px 14px var(--shadow);position:relative;z-index:1}.reorder-handle{touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;font-size:18px;line-height:1;padding:8px 10px;min-width:40px;background:none;border:none;color:var(--muted)}.reorder-row.dragging .reorder-handle{cursor:grabbing;color:var(--accent)}.reorder-num{width:2.2em;text-align:right;color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.reorder-text{flex:1;min-width:0;display:flex;flex-direction:column}.reorder-name{font-weight:600;font-size:14px;overflow-wrap:anywhere}.reorder-moves{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.device-list{list-style:none;margin:6px 0 0;padding:0}.device-list li{padding:6px 0;border-bottom:1px solid var(--border);font-size:14px}.device-list li:last-child{border-bottom:none}.nav-icon.has-alert{position:relative}.nav-icon.has-alert:after{content:"";position:absolute;top:4px;right:4px;width:8px;height:8px;border-radius:50%;background:var(--red, #e5484d);box-shadow:0 0 0 2px var(--bg)}@media (hover: none){.variation-row,.chapter-card{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}}.menu-pop-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90}.menu-pop{position:fixed;min-width:230px;max-width:320px;max-height:calc(100vh - 16px);overflow-y:auto;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:5px;box-shadow:0 10px 30px var(--shadow)}.menu-pop-title{font-size:12px;font-weight:700;color:var(--muted);padding:4px 10px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-pop .sheet-row{min-height:0;padding:6px 10px;font-size:14px;border-radius:6px;gap:8px}.menu-pop .sheet-icon{width:18px;font-size:12px}.menu-pop .sheet-hint{font-size:11.5px}.menu-pop .sheet-sep{margin:4px 6px}.parent-pick{list-style:none;margin:10px 0;padding:0;max-height:55vh;overflow-y:auto}.parent-pick li button{width:100%;text-align:left;display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:8px;margin-bottom:4px}.parent-pick li button.suggested{border-color:var(--accent)}.parent-pick .pick-moves{font-size:12px;color:var(--muted)}.subvar-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:-4px 0 12px;font-size:13.5px;color:var(--muted)}.subvar-bar a{cursor:pointer;color:var(--accent);font-weight:600}.subvar-links{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px}.sub-chip.link{cursor:pointer;font:inherit;font-size:12.5px}.sub-chip.link:hover{border-color:var(--accent);color:var(--accent)}.subvar-sent{display:inline-flex;align-items:center;gap:6px;color:var(--text);padding:2px 4px 2px 10px;border-radius:20px;border:1px solid var(--accent-dim)}.send-sub{max-width:560px;width:100%;max-height:90vh;display:flex;flex-direction:column;overflow-y:auto}.send-sub-section{margin:10px 0}.send-sub-label{font-weight:700;font-size:13px;margin-bottom:6px}.send-sub-dest{display:flex;align-items:center;gap:8px;padding:4px 0}.send-sub-dest input[type=text]{flex:1;min-width:0}.send-sub-quick{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.send-sub-lines{list-style:none;margin:0;padding:0;max-height:34vh;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius)}.send-sub-lines li{border-bottom:1px solid var(--border)}.send-sub-lines li:last-child{border-bottom:none}.send-sub-lines label{display:flex;gap:10px;align-items:flex-start;padding:7px 10px;cursor:pointer}.send-sub-lines input{margin-top:3px}.send-sub-text{display:flex;flex-direction:column;min-width:0}.send-sub-name{font-size:14px;font-weight:600;overflow-wrap:anywhere}.send-sub-text .muted-note{font-size:12px}.send-sub-preview{font-size:13.5px;padding:10px 12px;border-radius:var(--radius);border:1px dashed var(--border);margin-top:4px}.send-sub-indent{padding-left:22px}.send-sub-new{font-weight:700;color:var(--accent)}.send-sub .modal-actions{position:sticky;bottom:-22px;margin:0 -22px -22px;padding:12px 22px 16px;background:var(--panel);border-top:1px solid var(--border)}.study-controls{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:12px}.study-controls button{white-space:nowrap}.study-controls button{min-height:44px;display:inline-flex;align-items:center;gap:6px}.study-controls>button:nth-child(1),.study-controls>button:nth-child(2){width:52px;justify-content:center}.study-panel{display:flex;flex-direction:column;min-height:0;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.study-head{display:flex;align-items:flex-start;gap:10px;padding:14px 16px 12px;border-bottom:1px solid var(--border)}.study-head-text{flex:1;min-width:0}.study-head h3{margin:0 0 2px;font-size:17px;line-height:1.3;overflow-wrap:anywhere}.study-side-bar{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;padding:8px 16px;font-size:13.5px;border-bottom:1px solid var(--border);background:var(--card)}@supports (background: color-mix(in srgb,red 50%,blue)){.study-side-bar{background:color-mix(in srgb,var(--accent) 12%,var(--panel))}}.study-side-label{flex:1;min-width:0}.study-side-steps{display:inline-flex;gap:2px}.study-text{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px 20px 22px;font-size:16px;line-height:1.65}.study-moves{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 3px;margin:0 0 6px;font-weight:700;font-size:16.5px}.study-mv,.study-start{background:none;border:none;font:inherit;color:var(--text);cursor:pointer;padding:1px 5px;border-radius:5px;min-height:0}.study-mv:hover,.study-start:hover{background:var(--card-hover)}.study-mv.current,.study-start.current{background:var(--accent-dim);color:#fff}.study-num{color:var(--muted);font-weight:600;margin-right:3px}.study-mv.current .study-num{color:inherit;opacity:.85}.study-mv .move-badge,.study-mv svg{margin-left:2px;vertical-align:-1px}.study-start{color:var(--muted);display:inline-flex;align-items:center;padding:3px 5px}.study-note{margin:2px 0 18px;font-size:15.5px;color:var(--text);overflow-wrap:anywhere;padding-left:0;border-left:3px solid transparent;transition:border-color .15s,padding .15s}.study-note.current{border-left-color:var(--accent);padding-left:10px}.study-ref{background:none;border:none;padding:0 1px;margin:0;min-height:0;font:inherit;font-weight:600;color:var(--accent);cursor:pointer;border-radius:4px}.study-ref:hover{text-decoration:underline}.study-ref.current{background:var(--accent-dim);color:#fff;text-decoration:none}.study-ref.unplayable,.study-ref.loose{color:var(--text);font-weight:700}.study-ref.unplayable:hover,.study-ref.loose:hover{color:var(--accent)}.study-seq{white-space:normal}.study-seq-start{color:var(--accent);vertical-align:-1px;margin-right:3px}.study-end{display:flex;align-items:center;gap:10px;margin-top:12px}@media (max-width: 899px){.study-panel{width:100%}.study-text{max-height:46vh}}@media (max-width: 600px){.study-text{padding:12px 14px 18px;font-size:15.5px}.study-controls{flex-wrap:wrap}}.tb-offbook{font-size:13.5px;padding:8px 12px;border-radius:8px;border:1px solid var(--amber);color:var(--text)}@media (pointer: coarse){.study-start{padding:10px;margin:-7px -3px}.study-side-bar button{min-height:44px}.study-side-steps button{min-width:44px}.study-head .book-btn{min-width:44px;min-height:44px}}.modal.file-sub{max-height:100%;overflow-y:auto}.modal.file-sub .parent-pick{flex-shrink:0}.drag-item{position:relative}.drag-source{opacity:.35}.drag-item:not(.folder-card).drop-before:before,.drag-item:not(.folder-card).drop-after:after,.drag-item:not(.folder-card).drop-before-y:before,.drag-item:not(.folder-card).drop-after-y:after{content:"";position:absolute;z-index:5;border-radius:3px;background:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 30%,transparent)}.drag-item:not(.folder-card).drop-before:before{left:-12px;top:8px;bottom:8px;width:4px}.drag-item:not(.folder-card).drop-after:after{right:-12px;top:8px;bottom:8px;width:4px}.drag-item:not(.folder-card).drop-before-y:before{top:-8px;left:8px;right:8px;height:4px}.drag-item:not(.folder-card).drop-after-y:after{bottom:-8px;left:8px;right:8px;height:4px}:root .chapter-card.folder-card.drop-before{box-shadow:-8px 0 0 -4px var(--accent)}:root .chapter-card.folder-card.drop-after{box-shadow:8px 0 0 -4px var(--accent)}:root .chapter-card.folder-card.drop-before-y{box-shadow:0 -8px 0 -4px var(--accent)}:root .chapter-card.folder-card.drop-after-y{box-shadow:0 8px 0 -4px var(--accent)}.drop-into{outline:3px solid var(--accent);outline-offset:3px}.drag-grip{display:inline-flex;align-items:center;justify-content:center;align-self:flex-start;margin-left:auto;padding:4px 6px;border-radius:6px;flex:0 0 auto;color:var(--muted);cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}.drag-grip:hover{color:var(--accent);background:var(--card-hover)}@media (pointer: coarse){.drag-grip{min-width:44px;min-height:44px;padding:0;margin:-12px -10px -12px auto}}@media (hover: hover){.drag-item h3,.drag-item .card-title-text{user-select:none;-webkit-user-select:none}}.folder-card h3.card-title-flex{display:flex;align-items:flex-start;gap:2px;flex:0 0 auto;margin-bottom:auto}.card-title-flex .card-title-text{flex:1;min-width:0}.chapter-card.folder-card.practiced h3.card-title-flex:after{content:none}.chapter-card.folder-card.practiced .card-title-text:after{content:"";display:inline-block;width:8px;height:8px;margin-left:8px;border-radius:50%;background:var(--green);vertical-align:middle}.drag-ghost{position:fixed;left:0;top:0;z-index:300;pointer-events:none;max-width:min(300px,calc(100vw - 16px));padding:7px 12px;border-radius:8px;background:var(--panel);color:var(--text);border:1px solid var(--accent);box-shadow:0 8px 24px var(--shadow);font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.card-dragging,body.card-dragging *{cursor:grabbing!important;user-select:none!important;-webkit-user-select:none!important}.draw-bar{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap}.draw-pens{display:inline-flex;gap:6px}.draw-pen{width:22px;height:22px;min-height:0;padding:0;border-radius:50%;border:2px solid transparent;box-shadow:inset 0 0 0 2px var(--panel);cursor:pointer}.draw-pen.on{border-color:var(--text)}@media (pointer: coarse){.draw-pen{width:32px;height:32px}}.draw-hint-line{font-size:12px;margin:6px 0 0}button.arrow-profile,button.arrow-profile:hover{font:inherit;color:inherit;background:none;border:none;box-shadow:none;border-radius:0;padding:0;margin:0;min-height:0;cursor:pointer;text-align:left;display:inline-grid;white-space:nowrap;line-height:inherit;vertical-align:baseline}button.arrow-profile:hover{color:var(--text)}.arrow-profile>.arrow-profile-pv{grid-area:1 / 1;visibility:hidden}.arrow-profile>.arrow-profile-pv.on{visibility:visible}.arrow-profile:not(.is-default) .arrow-profile-name{color:var(--text);font-weight:600}.arrow-profile .pen-dot,.profile-dots .pen-dot,.hint .pen-dot{display:inline-block;width:8px;height:8px;border-radius:50%;vertical-align:middle;margin:0 1px}.profile-dots{white-space:nowrap}.draw-tap-from{position:absolute;z-index:3;pointer-events:none;box-sizing:border-box;border:4px solid var(--accent);border-radius:4px}.pgn-marks-hint{margin:8px 0 4px;font-size:13px;color:var(--muted)}.pgn-marks-hint summary{cursor:pointer}.pgn-marks-hint p{margin:6px 0}.pgn-marks-hint code{font-size:12px;background:var(--chip-bg);padding:1px 5px;border-radius:4px;word-break:break-word}.pgn-marks-hint>code{display:block;padding:6px 8px}.pgn-marks-hint ul{margin:6px 0 0;padding-left:18px}.pgn-marks-hint li{margin:3px 0}.import-marks{flex:none;font-size:12px;color:var(--green);white-space:nowrap}.from-position{font-size:12px;font-weight:600;color:var(--accent);white-space:nowrap}.tb-starts{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.tb-starts-count{opacity:.7;font-weight:400}.player-tabs{display:flex;gap:4px;margin:14px 0 16px;padding:4px;background:var(--track);border:1px solid var(--border);border-radius:12px;width:fit-content}.player-tabs button{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;padding:7px 14px;border-radius:9px;color:var(--muted);font-weight:600}.player-tabs button.on{background:var(--card);color:var(--text);box-shadow:0 1px 4px var(--shadow)}.player-tabs .muted-note{font-weight:500}.dash{display:flex;flex-direction:column;gap:16px}.dash-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;min-width:0}.dash-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}.dash-head h3{margin:0;font-size:15px;letter-spacing:.01em}.dash-head.sub{margin-top:16px}.dash-label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.dash-sub{font-size:12.5px;color:var(--muted);line-height:1.35}.dash-big,.dash-mid,.dash-event-rating,.dash-event-score,.dash-split-num,.rc-axis,.dash-rd{font-variant-numeric:tabular-nums}.dash-hero{position:relative;overflow:hidden;border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);padding:20px 22px 18px;background:var(--card);background:radial-gradient(120% 140% at 100% 0%,color-mix(in srgb,var(--accent) 22%,transparent) 0%,transparent 55%),linear-gradient(180deg,color-mix(in srgb,var(--accent) 7%,var(--card)) 0%,var(--card) 100%)}.dash-hero-top{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:flex-start}.dash-eyebrow{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.dash-name{margin:2px 0 8px;font-size:24px;line-height:1.15;text-wrap:balance}.dash-chips{display:flex;flex-wrap:wrap;gap:6px}.dash-chip{font-size:12px;padding:3px 9px;border-radius:999px;background:var(--chip-bg);border:1px solid var(--border);color:var(--text);text-decoration:none;white-space:nowrap}a.dash-chip:hover{border-color:var(--accent)}.dash-chip.warn{border-color:var(--amber);color:var(--amber)}.dash-hero-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.dash-seg{display:inline-flex;background:var(--track);border:1px solid var(--border);border-radius:10px;padding:3px}.dash-seg button{border:0;background:transparent;padding:5px 10px;border-radius:7px;font-size:13px;color:var(--muted);min-height:0}.dash-seg button.on{background:var(--card);color:var(--text);box-shadow:0 1px 3px var(--shadow)}.dash-ratings{display:grid;grid-template-columns:minmax(180px,1.4fr) repeat(3,minmax(120px,1fr));gap:12px;margin-top:18px}.dash-rating{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border-radius:var(--radius);background:var(--panel);background:color-mix(in srgb,var(--panel) 70%,transparent);border:1px solid var(--border);min-width:0}.dash-rating.live{background:var(--panel);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--panel));border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}.dash-big{font-size:46px;font-weight:800;line-height:1;letter-spacing:-.02em}.dash-mid{font-size:26px;font-weight:700;line-height:1.1}.dash-mid small{font-size:15px;font-weight:600;color:var(--muted)}.dash-rating.live{display:grid;grid-template-columns:auto 1fr;align-items:end;column-gap:10px}.dash-rating.live .dash-label,.dash-rating.live .dash-sub{grid-column:1 / -1}.dash-delta{font-size:13px;font-weight:700;padding:2px 8px;border-radius:999px;width:fit-content;margin-bottom:6px}.dash-delta.up{color:var(--green);background:color-mix(in srgb,var(--green) 16%,transparent)}.dash-delta.down{color:var(--red);background:color-mix(in srgb,var(--red) 16%,transparent)}.dash-delta.small{font-size:11.5px;padding:1px 6px;margin:0 0 0 6px}.dash-prov{display:flex;align-items:center;gap:10px;margin-top:12px;font-size:12.5px;color:var(--muted);flex-wrap:wrap}.dash-prov-bar,.dash-meter{position:relative;flex:1;min-width:80px;max-width:240px;height:6px;border-radius:99px;background:var(--track);overflow:hidden}.dash-prov-bar span,.dash-meter span{position:absolute;inset:0 auto 0 0;background:var(--accent);border-radius:99px}@media (max-width: 720px){.dash-ratings{grid-template-columns:1fr 1fr}.dash-rating.live{grid-column:1 / -1}.dash-big{font-size:40px}}.rating-chart{position:relative;width:100%;touch-action:pan-y}.rating-chart svg{display:block;overflow:visible}.rc-grid{stroke:var(--border);stroke-width:1}.rc-axis{fill:var(--muted);font-size:11px}.rc-line{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.rc-dot{fill:var(--card);stroke:var(--accent);stroke-width:2.5}.rc-dot.down{stroke:var(--red)}.rc-ring{fill:none;stroke:var(--green);stroke-width:2;opacity:.9}.rc-point{cursor:pointer}.rc-peak{stroke:var(--amber);stroke-width:1;stroke-dasharray:4 4;opacity:.8}.rc-peak-label{fill:var(--amber);font-size:11px;font-weight:600}.rc-cursor{stroke:var(--muted);stroke-width:1;stroke-dasharray:2 3;opacity:.6}.rc-tip{position:absolute;transform:translate(-50%);pointer-events:none;z-index:2;display:flex;flex-direction:column;gap:2px;min-width:160px;max-width:240px;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:8px 10px;box-shadow:0 6px 20px var(--shadow);font-size:12px;color:var(--muted)}.rc-tip strong{color:var(--text);font-size:12.5px;line-height:1.25}.rc-tip-rating{color:var(--text);font-variant-numeric:tabular-nums}.rc-tip-rating em{font-style:normal;font-weight:700;margin-left:6px}.rc-tip-rating em.up{color:var(--green)}.rc-tip-rating em.down{color:var(--red)}.rc-tip-note{color:var(--green)}.dash-tiles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.dash-tile{display:flex;flex-direction:column;gap:4px;padding:12px 14px;min-width:0;background:var(--card);border:1px solid var(--border);border-radius:var(--radius)}.dash-wdl{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.dash-wdl b{font-weight:700}.dash-wdl b.w{color:var(--green)}.dash-wdl b.d{color:var(--amber)}.dash-wdl b.l{color:var(--red)}.dash-form{display:flex;gap:4px;flex-wrap:wrap;min-height:26px;align-items:center}.dash-dot{width:12px;height:12px;border-radius:50%;background:var(--muted)}.dash-dot.W{background:var(--green)}.dash-dot.L{background:var(--red)}.dash-dot.D{background:var(--amber)}@media (max-width: 900px){.dash-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-tiles .dash-tile:last-child{grid-column:1 / -1}}.dash-notes{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.dash-notes li{font-size:13px;padding:7px 12px;border-radius:10px;border:1px solid var(--border);background:var(--card);border-left:4px solid var(--muted)}.dash-notes li.todo{border-left-color:var(--accent)}.dash-notes li.warn{border-left-color:var(--red)}.dash-notes li.good{border-left-color:var(--green)}.dash-notes li.info{border-left-color:var(--amber)}.dash-events{display:flex;flex-direction:column}.dash-event{border-top:1px solid var(--border)}.dash-event:first-child{border-top:0}.dash-event-head{width:100%;display:grid;grid-template-columns:118px minmax(0,1fr) auto 54px 92px;gap:12px;align-items:center;background:transparent;border:0;border-radius:10px;padding:11px 8px;text-align:left;color:var(--text);min-height:0}.dash-event-head:hover{background:var(--card-hover)}.dash-event-date{font-size:12.5px;color:var(--muted)}.dash-event-name{display:flex;flex-direction:column;min-width:0}.dash-event-name strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-event-name .muted-note{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-chips-row{display:flex;gap:3px;flex-wrap:wrap;justify-content:flex-end;max-width:240px}.dash-rchip{position:relative;width:20px;height:20px;border-radius:5px;display:inline-grid;place-items:center;font-size:11px;font-weight:800;color:#fff;background:var(--muted);opacity:.9}.dash-rchip.W,.dash-rchip.FW{background:var(--green)}.dash-rchip.L,.dash-rchip.FL{background:var(--red)}.dash-rchip.D{background:var(--amber)}.dash-rchip.BF,.dash-rchip.BH{background:transparent;color:var(--muted);box-shadow:inset 0 0 0 1.5px var(--border)}.dash-rchip.U{background:transparent;color:var(--muted);opacity:.6}.dash-rchip.FW,.dash-rchip.FL{opacity:.65}.dash-rchip.rec:after{content:"";position:absolute;right:-3px;top:-3px;width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px var(--card)}.dash-event-score{font-weight:700;text-align:right}.dash-event-score small{color:var(--muted);font-weight:600}.dash-event-rating{font-weight:700;text-align:right;white-space:nowrap}.dash-event-body{padding:4px 8px 16px}.dash-event-facts{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12.5px;color:var(--muted);margin-bottom:10px}.dash-event-facts b{color:var(--text)}.dash-event-facts a{color:var(--accent)}.dash-rounds{width:100%;border-collapse:collapse;font-size:13.5px}.dash-rounds th{text-align:left;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:700;padding:6px 8px;border-bottom:1px solid var(--border)}.dash-rounds td{padding:8px;border-bottom:1px solid color-mix(in srgb,var(--border) 60%,transparent);vertical-align:middle}.dash-rounds tr.quiet td{color:var(--muted)}.dash-rd{width:34px;color:var(--muted);font-weight:700}.dash-opp{display:inline-flex;align-items:center;gap:7px}.dash-side{width:11px;height:11px;border-radius:3px;box-shadow:inset 0 0 0 1.5px var(--muted);flex:none}.dash-side.white{background:#f2f2f2}.dash-side.black{background:#222}.dash-res{font-weight:700}.dash-res.W,.dash-res.FW{color:var(--green)}.dash-res.L,.dash-res.FL{color:var(--red)}.dash-res.D{color:var(--amber)}.dash-game-cell{width:1%;white-space:nowrap}.dash-game{display:inline-flex;gap:6px;align-items:center;flex-wrap:nowrap}.dash-game.suggest .muted-note{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-flag{display:inline-flex;gap:4px;align-items:center;font-size:12px;font-weight:600}.dash-flag.ok{color:var(--green)}.dash-flag.warn{color:var(--amber)}.dash-more{margin:8px auto 0;display:block}@media (max-width: 720px){.dash-event-head{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name rating" "date score" "chips chips";row-gap:6px}.dash-event-name{grid-area:name}.dash-event-rating{grid-area:rating}.dash-event-date{grid-area:date}.dash-event-score{grid-area:score}.dash-chips-row{grid-area:chips;justify-content:flex-start;max-width:none}.hide-narrow{display:none}}@media (max-width: 820px){.dash-game-cell{white-space:normal;width:auto}.dash-game{flex-wrap:wrap}.dash-game>button{white-space:nowrap}}@media (max-width: 560px){.dash-game-cell{width:1%}.dash-game>button{white-space:normal;text-align:left}.dash-opp{flex-wrap:wrap}}.dash-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}@media (max-width: 1000px){.dash-grid{grid-template-columns:1fr}}.dash-splits{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}.dash-splits li{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(60px,1fr) auto;gap:10px;align-items:center;font-size:13px}.dash-splits li.none{opacity:.5}.dash-splits li.offbeat .dash-split-label{color:var(--amber)}.dash-split-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-split-num{color:var(--muted);font-size:12.5px;white-space:nowrap}.dash-bar{display:flex;height:8px;border-radius:99px;overflow:hidden;background:var(--track);gap:1px}.dash-bar .w{background:var(--green)}.dash-bar .d{background:var(--amber)}.dash-bar .l{background:var(--red)}.dash-subhead{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:14px 0 6px}.dash-subhead:first-of-type{margin-top:0}.dash-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:13.5px}.dash-list li{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.dash-list.spare li{flex-direction:column;align-items:flex-start;gap:1px}.dash-gap{font-weight:700;font-variant-numeric:tabular-nums}.dash-gap.up{color:var(--green)}.dash-gap.down{color:var(--red)}button.link{background:none;border:0;padding:0;color:var(--accent);cursor:pointer;font:inherit;min-height:0;text-align:left}.dash-empty,.dash-loading{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:40px 20px;border:1px dashed var(--border);border-radius:var(--radius);color:var(--muted)}.dash-empty h3{margin:0;color:var(--text)}.dash-empty p{max-width:460px;margin:0}.dash-loading{flex-direction:row;justify-content:center;border-style:solid}.dash-spinner{width:16px;height:16px;border-radius:50%;border:2px solid var(--border);border-top-color:var(--accent);animation:dash-spin .8s linear infinite;display:inline-block;vertical-align:-3px}.dash-spinner.small{width:11px;height:11px;border-width:1.5px}@keyframes dash-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.dash-spinner{animation-duration:2.5s}}:root.has-custom-bg .dash-card,:root.has-custom-bg .dash-tile,:root.has-custom-bg .dash-hero,:root.has-custom-bg .dash-notes li,:root.has-custom-bg .player-tabs{border-color:var(--outline);box-shadow:0 6px 22px var(--shadow)}:root[data-skin=bauhaus] .dash-hero,:root[data-skin=bauhaus] .dash-rchip,:root[data-skin=bauhaus] .player-tabs,:root[data-skin=bauhaus] .player-tabs button{border-radius:0}.scout-form{display:flex;gap:8px;margin-bottom:10px}.scout-form input{flex:1;min-width:0}.scout-error{color:var(--red)}.scout-results{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:4px}.scout-results button{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:1px;text-align:left;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:8px 12px;min-height:0}.scout-results button.on,.scout-results button:hover{border-color:var(--accent)}.scout-card{display:flex;flex-direction:column;gap:12px}.scout-top{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:flex-start}.scout-name{font-size:18px;font-weight:700;margin-bottom:6px}.scout-rating{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.scout-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}@media (max-width: 720px){.scout-grid{grid-template-columns:1fr}.scout-rating{align-items:flex-start}}.scout-h2h{margin:0 0 6px;font-size:18px;font-weight:700;font-variant-numeric:tabular-nums}.scout-h2h b.w,.scout-stake b.w{color:var(--green)}.scout-h2h b.d,.scout-stake b.d{color:var(--amber)}.scout-h2h b.l,.scout-stake b.l{color:var(--red)}.scout-next p{margin:4px 0}.scout-stake{display:flex;gap:14px;flex-wrap:wrap;align-items:baseline;font-variant-numeric:tabular-nums}.dash-opp button.link{color:var(--text);text-decoration:underline dotted;text-underline-offset:3px}.dash-opp button.link:hover{color:var(--accent)}.est-inputs{display:flex;flex-wrap:wrap;gap:10px 14px;margin-bottom:12px}.est-inputs label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);font-weight:600}.est-inputs label.grow{flex:1;min-width:200px}.est-inputs input{width:130px;font-variant-numeric:tabular-nums}.est-rows{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:6px}.est-rows li{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.est-rows input{width:150px;font-variant-numeric:tabular-nums}.est-actions{display:flex;gap:8px;flex-wrap:wrap}.est-n{width:18px;text-align:right;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}.est-name{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.est-seg{display:inline-flex;background:var(--track);border:1px solid var(--border);border-radius:9px;padding:2px}.est-seg button{border:0;background:transparent;min-height:0;padding:4px 10px;border-radius:7px;font-weight:700;color:var(--muted)}.est-seg button.W.on{background:var(--green);color:#fff}.est-seg button.D.on{background:var(--amber);color:#fff}.est-seg button.L.on{background:var(--red);color:#fff}.est-result{display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center;margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.est-result>div{display:grid;grid-template-columns:auto auto;align-items:end;column-gap:10px}.est-result>div .dash-label{grid-column:1 / -1}.est-facts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px;font-size:13px;color:var(--muted)}.est-facts b{color:var(--text)}.est-check{flex-basis:100%;margin:0;font-size:13px;padding:8px 12px;border-radius:10px;background:var(--panel);border:1px solid var(--border)}:root.has-custom-bg .estimator,:root.has-custom-bg .scout{border-color:var(--outline);box-shadow:0 6px 22px var(--shadow)}.review-overlay{z-index:60;align-items:stretch;padding:calc(12px + var(--safe-top)) calc(12px + var(--safe-right)) calc(12px + var(--safe-bottom)) calc(12px + var(--safe-left))}.review-shell{background:var(--panel);border:1px solid var(--border);border-radius:14px;width:100%;max-width:1240px;margin:0 auto;height:100%;display:flex;flex-direction:column;overflow:hidden}.review-head{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border)}.review-head-text{flex:1;min-width:0}.review-head h2{margin:0;font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.review-switch{max-width:170px}.review-banner{display:flex;align-items:center;gap:8px;justify-content:space-between;padding:7px 16px;font-size:13px;background:var(--card-hover);border-bottom:1px solid var(--border)}.review-overlay:focus{outline:none}.review-banner.warn{color:var(--amber)}.review-empty{padding:24px 16px;color:var(--muted)}.review-body{flex:1;min-height:0;display:flex;gap:18px;padding:14px 16px}.review-shell.stacked .review-body{flex-direction:column;align-items:center;gap:10px;padding:10px 12px}.review-board-col{display:flex;flex-direction:column;gap:8px;flex:0 0 auto}.review-board-row{display:flex;gap:10px;align-items:stretch}.review-controls{display:flex;gap:6px;align-items:center}.review-controls button{min-width:44px;min-height:40px;display:inline-flex;align-items:center;justify-content:center}.review-controls .review-back-game{margin-left:auto;min-width:0}.review-side{flex:1;min-width:0;min-height:0;width:100%;display:flex;flex-direction:column;gap:10px}.review-moves{flex:0 1 auto;max-height:34%;overflow-y:auto;border:1px solid var(--border);border-radius:10px;padding:6px 8px}.review-shell.stacked .review-moves{max-height:none;flex:1;min-height:0}.review-text{flex:1;min-height:0;overflow-y:auto;padding:2px 6px 16px}.review-tabs{display:flex;gap:4px}.review-tabs button{flex:1;min-height:36px}.review-tabs button.on{background:var(--accent-dim);color:#fff}.study-moves-wrap{margin-bottom:4px}.review-line{margin:2px 0 8px 12px;padding-left:10px;font-size:.94em;border-left:2px solid var(--line-mark, var(--border))}.review-line .review-line{margin-left:6px}.review-note-who{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin-bottom:3px}.review-mine{display:block;margin-top:6px;font-size:12.5px;color:var(--muted)}.review-mine>span{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;margin-right:4px}@media (max-width: 600px){.review-head{padding:10px 12px}.review-head h2{font-size:16px}}.learn-btn.has-dot{position:relative}.learn-btn.has-dot:after{content:"";position:absolute;top:-3px;right:-3px;width:9px;height:9px;border-radius:50%;background:var(--red);box-shadow:0 0 0 2px var(--card)}.link-pill.review-status{margin-right:4px}.school-line{display:flex;align-items:center;gap:5px;font-size:13px;color:var(--text);margin:2px 0 1px}.school-line svg{color:var(--accent);flex:0 0 auto}.player-title{flex:1;min-width:200px}.player-title h1{margin:0}.player-title .school-line{font-size:14px;margin-top:3px}.tele-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:40;touch-action:none;cursor:crosshair;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.tele-item{position:absolute;left:0;top:0;pointer-events:none}.tele-item svg{pointer-events:none}.tele-square{position:absolute}@keyframes tele-fade{0%,80%{opacity:1}to{opacity:0}}.tele-fab{position:fixed;z-index:120;right:calc(16px + var(--safe-right));bottom:calc(16px + var(--safe-bottom));width:46px;height:46px;padding:0;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--panel);color:var(--muted);border:1px solid var(--border);box-shadow:0 4px 14px var(--shadow);opacity:.6}.tele-fab:hover{opacity:1}.tele-fab.active{opacity:1;background:var(--accent-dim);border-color:var(--accent);color:#fff}.tele-bar{position:fixed;z-index:120;left:50%;transform:translate(-50%);top:calc(6px + var(--safe-top) + var(--status-gap));display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--panel);border:1px solid var(--border);border-radius:14px;box-shadow:0 8px 26px var(--shadow);max-width:calc(100vw - 16px - var(--safe-left) - var(--safe-right))}.tele-pens{display:flex;gap:8px;padding-right:4px}.tele-pen{width:34px;height:34px;padding:0;border-radius:50%;border:3px solid transparent;box-shadow:0 0 0 1px var(--border)}.tele-pen.active{border-color:var(--text)}.tele-btn{min-height:40px;padding:6px 14px;font-weight:600}.tele-btn.done{background:var(--accent-dim);border-color:var(--accent);color:#fff}@media (max-width: 600px){.tele-fab:not(.active){display:none}.tele-bar{gap:6px;padding:6px 8px}.tele-pen{width:30px;height:30px}.tele-btn{padding:6px 10px}}.touch-stats{display:flex;flex-wrap:wrap;gap:8px 18px;margin:4px 0 12px;font-size:14px;color:var(--muted)}.touch-stats strong{color:var(--text)}.touch-pad{position:relative;width:100%;height:min(60vh,560px);background:var(--card);border:1px solid var(--border);border-radius:var(--radius);touch-action:none;overflow:hidden;cursor:crosshair;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.touch-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.touch-dot{position:absolute;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;border:2px solid var(--muted);pointer-events:none}.touch-dot:after{content:"";position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-2px 0 0 -2px;border-radius:50%;background:var(--text)}.touch-legend{margin-top:10px}.help-btn{padding:4px 7px;color:var(--muted)}.help-btn:hover{color:var(--text)}.annotate-help p{margin:0 0 10px;line-height:1.5}.reviews-progress{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;margin:0 0 16px}.reviews-progress-head{display:flex;align-items:center;gap:8px;margin-bottom:6px;color:var(--accent)}.reviews-progress-head h3{margin:0;font-size:16px;color:var(--text)}.reviews-progress ul{list-style:none;margin:0;padding:0}.reviews-progress-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--border)}.reviews-progress-row:first-child{border-top:none}.rp-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.rp-who{font-size:12px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.4px}.rp-game{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rp-meta{font-size:13px}.rp-actions{display:flex;gap:6px;flex-shrink:0}.review-done-note{color:var(--green)}@media (max-width: 600px){.reviews-progress-row{flex-direction:column;align-items:stretch;gap:8px}.rp-actions button{flex:1;min-height:40px}}.give-where{margin:-2px 0 10px;padding:0 12px}.give-row{align-items:center}.give-row:disabled{opacity:.6}.give-has{margin-left:auto;font-size:12px;font-weight:700;color:var(--green);border:1px solid var(--green);border-radius:20px;padding:2px 9px}.give-app{display:flex;align-items:center;gap:8px;padding:6px 4px 10px;font-size:14px;color:var(--muted)}.give-empty{padding:10px 4px}.give-done{padding:6px 6px 4px}.give-done p{margin:0 0 8px}.give-done-head{display:flex;align-items:center;gap:8px;font-weight:700;font-size:16px;color:var(--text)}.give-done-head svg,.give-sent svg{color:var(--green)}.give-sent{display:flex;align-items:center;gap:6px;color:var(--green);font-size:14px}.give-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:12px}.icn-practice{margin-bottom:16px;--icn: var(--muted)}.icn-practice .icn-head{align-items:center}.icn-practice .icn-head .small{display:inline-flex;align-items:center;gap:5px}.icn-error{display:flex;align-items:center;gap:6px;margin:0 0 10px;font-size:13px;color:var(--red)}.icn-hero{display:flex;flex-direction:column;gap:10px}.icn-hero-top{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}.icn-hero-fig{display:flex;flex-direction:column;gap:2px}.icn-hero-num{font-size:52px;font-weight:800;line-height:1;letter-spacing:-.02em;color:var(--text)}.icn-hero-label{font-size:12.5px;color:var(--muted)}.icn-status{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:13px;font-weight:700;color:var(--icn);border:1px solid var(--icn);background:color-mix(in srgb,var(--icn) 14%,transparent)}.icn-status.good,.icn-meter.good,.icn-chip.good,.icn-acc.good{--icn: var(--green)}.icn-status.near,.icn-meter.near,.icn-chip.near,.icn-acc.near{--icn: var(--amber)}.icn-status.low,.icn-meter.low,.icn-chip.low,.icn-acc.low{--icn: var(--red)}.icn-meter{position:relative;height:12px;margin:22px 0 2px;border-radius:99px;background:color-mix(in srgb,var(--icn) 20%,var(--track))}.icn-meter-fill{position:absolute;inset:0 auto 0 0;border-radius:99px;background:var(--icn)}.icn-meter-goal{position:absolute;top:-5px;bottom:-5px;width:2px;margin-left:-1px;background:var(--text);border-radius:2px}.icn-meter-goal-label{position:absolute;bottom:calc(100% + 3px);left:50%;transform:translate(-50%);font-size:11.5px;font-weight:700;color:var(--text);white-space:nowrap}.icn-hero-note{margin:0;font-size:13px;color:var(--muted)}.icn-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:16px}.icn-tile{display:flex;flex-direction:column;gap:3px;padding:10px 12px;min-width:0;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius)}.icn-tile-label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.icn-tile-value{font-size:26px;font-weight:700;line-height:1.1;color:var(--text)}.icn-tile-sub{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icn-weeks-wrap{margin-top:16px;overflow-x:auto}.icn-weeks{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}.icn-weeks caption{text-align:left;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding-bottom:6px}.icn-weeks th,.icn-weeks td{padding:7px 10px;text-align:right;border-top:1px solid var(--border);white-space:nowrap}.icn-weeks thead th{border-top:0;font-size:11.5px;font-weight:600;color:var(--muted)}.icn-weeks th[scope=row],.icn-weeks thead th:first-child{text-align:left;font-weight:600}.icn-weeks td.icn-acc{color:var(--text);font-weight:700}.icn-weeks td.icn-acc svg{color:var(--icn);vertical-align:-2px}.icn-weeks-note{margin:6px 0 0;font-size:12px}@media (max-width: 720px){.icn-tiles{grid-template-columns:1fr 1fr}.icn-hero-num{font-size:46px}}.icn-chip{display:inline-flex;align-items:center;gap:4px;margin-top:4px;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:700;color:var(--icn);border:1px solid var(--icn);background:color-mix(in srgb,var(--icn) 12%,transparent)}.icn-invite{display:flex;align-items:center;gap:8px;margin-bottom:16px;padding:10px 14px;font-size:13.5px;background:var(--card);border:1px dashed var(--border);border-radius:var(--radius)}.icn-invite>span:first-child{flex:1}.icn-invite .small{display:inline-flex;align-items:center;gap:5px}.modal.player-editor{max-height:100%;overflow-y:auto}.icn-link{display:flex;flex-direction:column;gap:6px;grid-column:1 / -1}.icn-link-title{font-size:12.5px;font-weight:600;color:var(--muted)}.icn-link-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.icn-link-row select{flex:0 0 auto}.icn-link-row input[type=text]{flex:1 1 180px;min-width:0}.icn-link-row .small{display:inline-flex;align-items:center;gap:5px}.game-fields .icn-link .icn-goal{display:inline-flex;flex-direction:row;align-items:center;gap:6px;font-size:13px}.game-fields .icn-link .icn-goal input{width:64px}.icn-picks{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.dash-opp:has(.dash-namefix){flex-wrap:wrap;row-gap:2px}.dash-namefix{flex-basis:100%;font-size:12.5px;color:var(--amber)}.dash-namefix button.link{color:var(--amber);font-size:12.5px;padding:0}
