:root{--cp-bg-layout: #f5f5f7;--cp-bg-container: #fff;--cp-bg-sidebar: #fbfbfd;--cp-bg-secondary: #f5f5f7;--cp-text-primary: #1d1d1f;--cp-text-secondary: #6e6e73;--cp-border: #d2d2d7;--cp-border-subtle: #e5e5ea;--cp-primary: #0a6be0;--cp-primary-hover: #0056c8;--cp-button-primary: #0a6be0;--cp-button-primary-hover: #0056c8;--cp-primary-soft: #e8f2ff;--cp-error: #ff3b30;--cp-error-soft: #fff0ef;--cp-radius-control: 8px;--cp-radius-card: 12px;--bg: var(--cp-bg-layout);--surface: var(--cp-bg-container);--surface-muted: var(--cp-bg-secondary);--border: var(--cp-border-subtle);--border-strong: var(--cp-border);--ink: var(--cp-text-primary);--ink-soft: var(--cp-text-primary);--muted: var(--cp-text-secondary);--primary: var(--cp-primary);--primary-strong: var(--cp-primary-hover);--primary-weak: var(--cp-primary-soft);--danger: var(--cp-error);--danger-weak: var(--cp-error-soft);--radius-sm: var(--cp-radius-control);--radius: var(--cp-radius-control);--radius-lg: var(--cp-radius-card);--shadow-sm: none;--shadow-md: 0 6px 20px rgba(0, 0, 0, .12);--shadow-lg: 0 18px 44px rgba(0, 0, 0, .2);color:var(--ink);background:var(--bg);font-family:Montserrat,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;color-scheme:light}:root[data-theme=dark]{--cp-bg-layout: #111113;--cp-bg-container: #1c1c1e;--cp-bg-sidebar: #161618;--cp-bg-secondary: #242426;--cp-text-primary: #f5f5f7;--cp-text-secondary: #a1a1a6;--cp-border: #3a3a3c;--cp-border-subtle: #2c2c2e;--cp-primary: #0a84ff;--cp-primary-hover: #59a9ff;--cp-primary-soft: rgba(10, 132, 255, .18);--cp-error: #ff6961;--cp-error-soft: #3a2020;--shadow-md: 0 8px 20px rgba(0, 0, 0, .5);--shadow-lg: 0 20px 48px rgba(0, 0, 0, .6);color-scheme:dark}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}.auth-modal--devices{max-height:min(90dvh,760px);overflow-y:auto}.auth-modal--devices .profile-card{min-width:0}button,input,textarea,select{font:inherit}button:disabled{cursor:not-allowed;opacity:.55}.cv-shell{display:grid;grid-template-columns:260px minmax(0,1fr);height:100vh;overflow:hidden}.cv-shell__nav{min-width:0;height:100vh;overflow-y:auto;border-right:1px solid var(--border);background:var(--cp-bg-sidebar)}.cv-shell__main{display:flex;flex-direction:column;min-width:0;min-height:0;height:100vh}.cv-shell__toolbar{position:sticky;top:0;z-index:10;border-bottom:1px solid var(--border);background:#fffffff0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.cv-shell__content{flex:1;min-height:0;padding:16px 18px;overflow:hidden}.side-nav{display:flex;flex-direction:column;gap:6px;min-height:100vh;padding:18px 14px}.side-nav__group{display:flex;flex-direction:column;gap:6px}.side-nav__footer{display:flex;flex-direction:column;gap:8px;margin-top:auto;padding-top:14px;border-top:1px solid var(--border)}.side-nav__user{display:flex;align-items:center;gap:10px;min-height:40px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-muted);color:var(--ink);cursor:pointer;text-align:left}.side-nav__user span{min-width:0;overflow:hidden;font-weight:600;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.side-nav__user:hover{border-color:var(--border-strong)}.side-nav__login{width:100%}.side-nav__theme{display:flex;gap:6px}.side-nav__theme .icon-button{flex:1}.auth-modal{display:flex;flex-direction:column;gap:14px;width:min(100%,400px);padding:20px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-lg)}.auth-modal__head{display:flex;align-items:center;justify-content:space-between}.auth-modal__head h2{margin:0;font-size:19px;font-weight:600;letter-spacing:-.01em}.auth-modal__brand{display:block;color:var(--muted);font-size:12px;font-weight:600;margin-bottom:5px}.auth-modal__field input:focus-visible,.library-edit__form input:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.auth-modal__form{display:flex;flex-direction:column;gap:12px}.auth-modal__field{display:flex;flex-direction:column;gap:5px;font-size:14px;font-weight:600;color:var(--ink)}.auth-modal__field input{min-height:46px;padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font-weight:500}.auth-modal__field select,.password-reset__form select{min-height:40px;max-width:100%;padding:0 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font:inherit}.auth-recovery-hint{margin:4px 0;color:var(--muted);font-size:12px;line-height:1.4}.auth-modal__links{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.modal-backdrop .account-panel{margin-top:0;width:min(100%,420px);max-height:min(88vh,680px);overflow:auto}.brand{display:flex;gap:10px;align-items:center;min-height:68px;margin-bottom:8px}.brand__mark{display:block;flex:0 0 42px;width:42px;height:42px}.brand strong,.brand small{display:block}.brand small{color:var(--muted);font-size:13px}.side-nav__item{display:flex;align-items:center;gap:10px;min-height:42px;padding:8px 12px;border-radius:var(--radius-sm);color:var(--ink-soft);font-weight:600;text-decoration:none;transition:background .12s ease,color .12s ease}.side-nav__item:hover:not(:disabled){background:var(--surface-muted);color:var(--ink)}.side-nav__item--active,.side-nav__item--active:hover{background:var(--surface);color:var(--primary);box-shadow:inset 0 0 0 1px var(--border)}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px;padding:0 18px}.toolbar__actions{display:flex;align-items:center;gap:8px}.session-controls{display:grid;grid-template-columns:minmax(120px,160px) minmax(110px,145px) 38px 38px minmax(0,130px);gap:8px;align-items:center}.session-controls--active{grid-template-columns:minmax(140px,220px) 38px 38px minmax(0,130px)}.session-controls input{width:100%;min-width:0;min-height:38px;padding:0 10px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--ink)}.session-user,.session-status{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-user{color:var(--ink);font-weight:900}.session-status{font-size:12px;font-weight:900;text-transform:uppercase}.session-status--ok{color:#216247}.session-status--error{color:var(--danger)}.cv-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:0 16px;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;font-weight:600;transition:background .12s ease,border-color .12s ease,box-shadow .12s ease,transform .05s ease}.cv-button:active:not(:disabled){transform:translateY(1px)}.cv-button--primary{background:var(--cp-button-primary);color:#fff;box-shadow:var(--shadow-sm)}.cv-button--primary:hover:not(:disabled){background:var(--cp-button-primary-hover)}.cv-button--secondary{border-color:var(--border-strong);background:var(--surface);color:var(--ink-soft)}.cv-button--secondary:hover:not(:disabled){border-color:var(--muted);background:var(--surface-muted)}.cv-button--quiet{background:transparent;color:var(--ink-soft)}.icon-button{display:inline-grid;width:38px;height:38px;place-items:center;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink-soft);cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}.icon-button:hover:not(:disabled){border-color:var(--muted);background:var(--surface-muted)}.icon-button--active{border-color:var(--primary);background:var(--primary-weak);color:var(--primary-strong)}.icon-button:disabled{cursor:not-allowed;opacity:.55}.icon-button--danger{border-color:#e3beb6;color:var(--danger)}.icon-button--danger:hover:not(:disabled){background:var(--danger-weak)}.segmented{display:inline-flex;min-height:38px;padding:3px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface-muted)}.segmented__item{min-width:88px;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;font-weight:800}.segmented__item--active{background:#253247;color:#fff}.workspace{display:grid;gap:12px;align-items:stretch;height:100%;min-height:0}.workspace--reader{grid-template-columns:248px minmax(0,1fr)}.reader-split{display:grid;min-width:0;min-height:0;height:100%}.reader-split--solo{grid-template-columns:minmax(0,1fr)}.workspace--training{grid-template-columns:minmax(360px,1.15fr) minmax(280px,.85fr)}.workspace--training .board-pane,.workspace--training .inspector-pane{min-height:0;overflow-y:auto}.diagram-column{display:flex;flex-direction:column;gap:8px;min-width:0;min-height:0;padding:12px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm)}.diagram-column__title{margin:0;flex:0 0 auto}.diagram-column .diagram-list{flex:1;min-height:0;max-height:none;overflow-y:auto}.split-handle{align-self:stretch;width:10px;margin:0 2px;border-radius:6px;background:#e2e7ec;cursor:col-resize;touch-action:none}.split-handle:hover{background:#c3ccd4}.board-column{display:flex;flex-direction:column;gap:10px;min-width:0;min-height:0;overflow-y:auto}.board-secondary__tabs{width:100%}.board-pane--chromeless{gap:0;padding:0}.analysis-bar{display:flex;flex-direction:column;gap:8px}.analysis-bar__row{display:flex;align-items:center;justify-content:space-between;gap:8px}.analysis-bar__nav{display:flex;align-items:center;justify-content:center;gap:2px;padding:2px;border-radius:8px;background:var(--surface-muted)}.analysis-bar__nav .move-nav__counter{min-width:52px;text-align:center}.analysis-bar__tools{display:flex;align-items:center;gap:6px}.board-top-bar{display:flex;align-items:center;justify-content:space-between;gap:4px;min-width:0;flex-wrap:wrap}.board-top-bar .side-to-move__options{min-height:30px}.board-top-bar .side-to-move__options .segmented__item{padding:4px 7px;font-size:11px}.board-search{position:relative}.board-search__count{position:absolute;right:-4px;top:-5px;padding:1px 3px;border-radius:8px;background:var(--primary);color:#fff;font-size:9px;line-height:1.2}.explorer-panel progress{width:100%;height:6px;accent-color:var(--primary)}.eval-toggle{display:inline-flex;align-items:center;gap:8px;min-width:84px;height:38px;padding:0 12px 0 8px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface-muted);color:var(--ink);cursor:pointer;font-weight:800;transition:border-color .12s ease,background .12s ease}.eval-toggle:hover:not(:disabled){border-color:var(--primary)}.eval-toggle:disabled{opacity:.5;cursor:not-allowed}.eval-toggle__switch{position:relative;display:inline-block;flex:0 0 auto;width:30px;height:18px;border-radius:999px;background:var(--border-strong);transition:background .15s ease}.eval-toggle__thumb{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0f172a4d;transition:transform .15s ease}.eval-toggle--on .eval-toggle__switch{background:var(--primary)}.eval-toggle--on .eval-toggle__thumb{transform:translate(12px)}.eval-toggle__value{font-variant-numeric:tabular-nums}.board-menu-button{display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:8px;background:var(--primary);color:#fff;cursor:pointer;transition:filter .12s ease}.board-menu-button:hover{filter:brightness(.95)}.board-menu-button--active{box-shadow:inset 0 0 0 2px #ffffff59}.engine-panel{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.engine-panel__head{display:flex;align-items:center;gap:10px}.engine-panel__dot{display:grid;place-items:center;width:26px;height:26px;border-radius:7px;background:var(--surface-muted);color:var(--muted)}.engine-panel__dot--ok{color:var(--primary)}.engine-panel__dot--bad{color:var(--danger)}.engine-panel__id{display:flex;min-width:0;flex:1;flex-direction:column;line-height:1.25}.engine-panel__id strong{font-size:14px;font-weight:750}.engine-panel__id small{color:var(--muted);font-size:12px}.engine-panel__head .analysis-line__score{font-size:15px;font-weight:800}.engine-panel__hint{margin:0;color:var(--muted);font-size:13px;line-height:1.4}.engine-panel__lines{display:grid;gap:8px}.board-tools{display:flex;flex-direction:column;gap:12px;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-muted)}.board-tools__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.board-tool{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--ink);cursor:pointer;font-size:13px;font-weight:700;text-align:left;transition:border-color .12s ease,background .12s ease,color .12s ease}.board-tool:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.board-tool--active{border-color:var(--primary);background:var(--primary-weak);color:var(--primary)}.board-tool:disabled{opacity:.5;cursor:not-allowed}.board-tools__section{display:flex;flex-direction:column;gap:6px}.board-tools__label{margin:0;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.move-panel{display:flex;flex-direction:column;gap:8px}.board-uncertainty-hint{display:flex;align-items:center;gap:6px;margin:0;padding:6px 8px;border-radius:8px;background:var(--danger-weak);color:var(--danger);font-size:12px;font-weight:700;line-height:1.3}.side-to-move{display:flex;align-items:center;gap:10px}.side-to-move__label{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.side-to-move__options{flex:1;min-height:34px}.side-to-move__options .segmented__item{flex:1;min-width:0}.analysis-bar .side-to-move{gap:5px}.analysis-bar .side-to-move__options{min-height:30px}.analysis-bar .side-to-move__options .segmented__item{padding:4px 7px;font-size:11px}.library-view{display:flex;flex-direction:column;gap:16px;min-width:0;min-height:0;height:100%;padding:20px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);overflow-y:auto}.library-view .book-list--rows{max-height:none}.library-view .book-list--cards{max-height:none;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.pane-heading__title{display:flex;align-items:center;gap:8px;min-width:0}.board-toolbar__spacer{flex:1}.board-editor{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted)}.board-editor__hint{margin:0;color:var(--muted);font-size:12px}.board-editor__palette{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.board-editor__piece{display:grid;place-items:center;aspect-ratio:1 / 1;min-height:34px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--ink);font-size:22px;line-height:1;cursor:pointer}.board-editor__piece--active{border-color:var(--primary);background:var(--primary-weak);box-shadow:0 0 0 2px #2f6f9f40}.board-editor__controls{display:flex;flex-wrap:wrap;gap:6px}.fen-readout{width:100%;min-height:34px;padding:6px 8px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface-muted);color:var(--ink-soft);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11px}.reader-pane,.board-pane,.inspector-pane{min-width:0;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm)}.reader-pane,.inspector-pane{display:flex;flex-direction:column;gap:14px;padding:16px}.reader-pane{min-height:0;gap:10px;padding:14px;overflow:hidden}.reader-pane .reader-surface{flex:1;min-height:0}.reader-pane .pane-heading,.reader-pane .processing-panel{flex:0 0 auto}.board-pane{display:flex;flex-direction:column;gap:14px;padding:16px}.pane-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.pane-heading__meta{display:flex;flex:0 0 auto;align-items:center;gap:12px}.switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:13px;font-weight:700;color:var(--ink)}.switch input{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.switch__track{position:relative;display:inline-block;flex:0 0 auto;width:38px;height:22px;border-radius:999px;background:var(--border-strong);transition:background .15s ease}.switch__thumb{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0f172a40;transition:transform .15s ease}.switch input:checked+.switch__track{background:var(--primary)}.switch input:checked+.switch__track .switch__thumb{transform:translate(16px)}.switch input:focus-visible+.switch__track{outline:2px solid var(--primary);outline-offset:2px}.switch__label{white-space:nowrap}.pane-heading h1,.pane-heading h2,.pane-heading p{margin:0}.pane-heading h1{margin-top:3px;color:var(--ink);font-size:20px;font-weight:750;line-height:1.2;letter-spacing:-.01em}.pane-heading h2{margin-top:3px;color:var(--ink);font-size:18px;font-weight:700;line-height:1.2;letter-spacing:-.01em}.eyebrow{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.status-badge{flex:0 0 auto;padding:5px 8px;border-radius:8px;font-size:12px;font-weight:800;text-transform:uppercase}.status-badge--uploaded{background:var(--surface-muted);color:var(--muted)}.status-badge--queued{background:#fff2d8;color:#85600f}.status-badge--processing{background:#e6f0fb;color:#2f5f8f}.status-badge--ready{background:#e8f4ed;color:#216247}.status-badge--failed{background:#fae7e3;color:var(--danger)}.source-strip{display:flex;gap:8px;min-height:24px;align-items:center;color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.source-strip span{padding:4px 7px;border-radius:8px;background:var(--surface-muted);color:var(--ink)}.source-strip strong{min-width:0;overflow:hidden;color:var(--danger);text-overflow:ellipsis;white-space:nowrap}.upload-controls{display:grid;grid-template-columns:minmax(0,1fr) 82px;gap:8px;align-items:center;padding-block:2px 4px}.upload-controls input,.upload-controls select{width:100%;min-width:0;min-height:38px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--ink)}.upload-controls input:not([type=file]),.upload-controls select{padding:0 10px}.upload-controls input[type=file]{grid-column:1 / -1;padding:7px;color:var(--muted)}.upload-controls .cv-button{min-width:0}.upload-meta{display:grid;grid-column:1 / -1;grid-template-columns:minmax(0,1fr) minmax(0,auto);gap:8px;align-items:center;min-height:20px;color:var(--muted);font-size:12px;font-weight:800}.upload-meta span,.upload-meta strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-status{text-transform:uppercase}.upload-status--ok{color:#216247}.upload-status--error{color:var(--danger)}.book-list{display:grid;max-height:176px;gap:8px;overflow:auto;padding-right:2px}.book-list__row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;min-height:52px;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--ink)}.book-list__row--active{border-color:var(--primary);background:var(--primary-weak)}.book-list__select{display:grid;grid-template-columns:minmax(0,1fr) 34px;gap:8px;align-items:center;min-width:0;border:0;background:transparent;color:inherit;cursor:pointer;padding:0;text-align:left}.book-list__row strong,.book-list__row small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-list__row strong{font-size:13px}.book-list__row small{margin-top:2px;color:var(--muted);font-size:12px;font-weight:800}.book-list__row em{display:grid;width:30px;height:30px;place-items:center;border-radius:8px;background:var(--surface-muted);color:var(--ink);font-size:12px;font-style:normal;font-weight:900}.book-list__actions{display:flex;gap:6px;align-items:center}.book-list__icon{display:grid;width:30px;height:30px;place-items:center;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--ink-soft);cursor:pointer}.book-list__icon--danger{color:var(--danger)}.book-list__edit{display:grid;grid-column:1 / -1;grid-template-columns:minmax(0,1fr) 30px 30px;gap:6px;align-items:center}.book-list__edit input{width:100%;min-width:0;min-height:30px;padding:0 8px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--ink)}.library-controls{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:8px}.library-controls__search{display:flex;flex:1 1 160px;align-items:center;gap:6px;min-width:0;padding:0 8px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--muted)}.library-controls__search input{width:100%;min-width:0;min-height:30px;border:0;background:transparent;color:var(--ink);font-size:12px}.library-controls__search input:focus{outline:none}.library-controls__field{display:flex;align-items:center;gap:4px;color:var(--muted)}.library-controls__field select{min-height:30px;padding:0 6px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--ink);font-size:12px;font-weight:700}.library-controls__view{display:flex;gap:4px;margin-left:auto}.library-controls__view-btn{display:grid;width:30px;height:30px;place-items:center;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--ink-soft);cursor:pointer}.library-controls__view-btn--active{border-color:var(--primary);background:var(--primary-weak);color:var(--primary-strong)}.book-list--cards{max-height:320px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.book-card{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;align-content:start;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--ink-soft);transition:border-color .12s ease,box-shadow .12s ease,transform .1s ease}.book-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.book-card--active{border-color:var(--primary);background:var(--primary-weak)}.book-card--active:hover{border-color:var(--primary)}.book-card__select{display:grid;gap:6px;justify-items:start;min-width:0;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.book-card__format{display:inline-grid;place-items:center;padding:1px 6px;border-radius:6px;background:var(--surface-muted);color:var(--ink-soft);font-size:10px;font-weight:900;letter-spacing:.04em}.book-card__format--pdf{background:#fdecea;color:var(--danger)}.book-card__format--epub{background:#e8f3ec;color:#2f7a52}.book-card__format--djvu{background:#eef0fb;color:#4a4fa3}.book-card__title{display:-webkit-box;overflow:hidden;font-size:13px;line-height:1.25;-webkit-box-orient:vertical;-webkit-line-clamp:2}.book-card__author{overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.book-card__meta{color:var(--muted);font-size:11px;font-weight:700}.book-card .book-list__actions{justify-content:flex-end}.processing-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted)}.processing-panel strong,.processing-panel span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis}.processing-panel strong{color:var(--ink);font-size:13px}.processing-panel span{margin-top:2px;color:var(--muted);font-size:12px;font-weight:700}.processing-panel--queued{border-color:#ead6a9;background:#fff9ed}.processing-panel--processing{border-color:#bdd3e8;background:#f0f6fc}.processing-panel--ready{border-color:#bfddcc;background:#f0f8f4}.processing-panel--failed{border-color:#e6b8ae;background:#fff3f0}.processing-panel__actions{display:flex;gap:8px;align-items:center}.processing-panel__status{grid-column:1 / -1;min-height:18px;font-size:12px;font-weight:900;text-transform:uppercase}.processing-panel__status--ok{color:#216247}.processing-panel__status--error{color:var(--danger)}.reader-surface{display:flex;flex:1;min-height:0;overflow:hidden;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted)}.reader-page{position:relative;min-height:310px;padding:18px;background:var(--surface)}.reader-page__line{width:70%;height:11px;margin-bottom:11px;border-radius:8px;background:#d9e0e8}.reader-page__line--long{width:88%}.reader-page__line--mid{width:58%;margin-top:22px}.reader-page__line--short{width:42%}.diagram-hotspot{display:grid;width:min(190px,72%);aspect-ratio:1;margin-top:18px;place-items:center;border:2px solid var(--primary);border-radius:8px;background:linear-gradient(45deg,#eef0e5 25%,transparent 25%),linear-gradient(-45deg,#eef0e5 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#eef0e5 75%),linear-gradient(-45deg,transparent 75%,#eef0e5 75%),#769079;background-position:0 0,0 14px,14px -14px,-14px 0;background-size:28px 28px;color:var(--ink);cursor:pointer;font-weight:900}.diagram-hotspot span{padding:5px 8px;border-radius:8px;background:#ffffffdb}.diagram-list{display:flex;flex-direction:column;gap:8px;align-content:start;overflow-y:auto}.empty-state{display:grid;min-height:72px;place-items:center;padding:12px;border:1px dashed var(--border-strong);border-radius:10px;color:var(--muted);font-weight:700;line-height:1.35;text-align:center}.diagram-card{position:relative;display:flex;align-items:stretch;gap:4px;padding:8px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--ink);transition:border-color .12s ease,background .12s ease,box-shadow .12s ease}.diagram-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.diagram-card--active{border-color:var(--primary);background:var(--primary-weak);box-shadow:inset 0 0 0 1px var(--primary)}.diagram-card__select{display:grid;flex:1;grid-template-columns:56px minmax(0,1fr);gap:10px;align-items:center;min-width:0;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;text-align:left}.diagram-card__body{display:flex;min-width:0;flex-direction:column;gap:3px}.diagram-card__topline{display:flex;align-items:center;justify-content:space-between;gap:6px;min-width:0}.diagram-card__page{overflow:hidden;color:var(--ink);font-weight:750;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.diagram-card__meta,.diagram-card__diagnostic{display:block;min-width:0;overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.diagram-card__diagnostic{color:var(--ink-soft)}.diagram-badge{flex:0 0 auto;padding:2px 7px;border-radius:999px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.diagram-badge--auto{background:var(--primary-weak);color:var(--primary)}.diagram-badge--warn{background:#fff2d8;color:#85600f}.diagram-badge--manual{background:#e6f0fb;color:#2f5f8f}.diagram-badge--muted{background:var(--surface-muted);color:var(--muted)}.diagram-card__delete{display:grid;flex:0 0 auto;place-items:center;width:26px;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;opacity:0;transition:opacity .12s ease,color .12s ease,background .12s ease}.diagram-card:hover .diagram-card__delete,.diagram-card--active .diagram-card__delete,.diagram-card__delete:focus-visible{opacity:1}.diagram-card__delete:hover{background:var(--danger-weak);color:var(--danger)}.diagram-column__header{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:0 0 auto}.diagram-column__heading{display:flex;align-items:center;gap:8px;min-width:0}.diagram-column__title{margin:0}.diagram-column__count{display:inline-grid;place-items:center;min-width:22px;height:20px;padding:0 6px;border-radius:999px;background:var(--surface-muted);color:var(--muted);font-size:12px;font-weight:800}.diagram-column__add{display:inline-flex;flex:0 0 auto;align-items:center;gap:5px;padding:6px 10px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--ink);cursor:pointer;font-size:13px;font-weight:700;transition:border-color .12s ease,background .12s ease}.diagram-column__add:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.diagram-column__add:disabled{opacity:.5;cursor:not-allowed}.diagram-thumb{display:grid;width:56px;height:56px;overflow:hidden;place-items:center;border-radius:8px;background:#253247;color:#fff;font-weight:900}.diagram-thumb--image{background:#f4f6f8}.diagram-thumb img{width:100%;height:100%;object-fit:cover}.diagram-thumb__fallback{display:block}.board-toolbar{display:flex;justify-content:flex-end;gap:8px}.board-frame{display:grid;width:min(100%,680px);aspect-ratio:1;align-self:center;place-items:stretch}.board-placeholder{display:grid;place-content:center;gap:10px;border:1px solid #e6b8ae;border-radius:8px;background:#fff3f0;color:var(--danger);font-weight:900;text-align:center}.board-placeholder--empty{border-color:var(--border-strong);background:var(--surface-muted);color:var(--muted)}.fen-strip{display:grid;grid-template-columns:minmax(0,1fr) 72px;gap:8px;align-items:center}.fen-strip input,.fen-editor,.notes-panel textarea{width:100%;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--ink)}.fen-strip input{min-height:38px;padding:0 10px;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:13px}.fen-state{display:inline-flex;align-items:center;justify-content:center;min-height:34px;border-radius:8px;font-size:12px;font-weight:900;text-transform:uppercase}.fen-state--ok{background:#e6f4ed;color:#216247}.fen-state--bad,.fen-state--invalid{background:#fae7e3;color:var(--danger)}.fen-state--empty{background:var(--surface-muted);color:var(--muted)}.san-strip{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.san-strip input{width:100%;min-width:0;min-height:38px;padding:0 10px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--ink);font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:13px}.san-strip .cv-button{min-width:0}.san-status{grid-column:1 / -1;min-height:16px;font-size:12px;font-weight:900;text-transform:uppercase}.san-status--ok{color:#216247}.san-status--error{color:var(--danger)}.move-nav{display:flex;gap:8px;align-items:center;justify-content:center}.move-nav__counter{min-width:64px;text-align:center;color:var(--ink-soft);font-size:13px;font-weight:800}.move-strip{display:flex;min-height:44px;gap:8px;align-items:center;overflow-x:auto;border-top:1px solid var(--border);padding-top:12px;flex-wrap:wrap}.move-strip__empty{color:#7b8795;font-weight:700}.move-pill{flex:0 0 auto;padding:6px 9px;border:1px solid transparent;border-radius:8px;background:var(--surface-muted);color:var(--ink);cursor:pointer;font-weight:800}.move-pill--active{border-color:var(--primary);background:#d4e8f5}.status-icon{display:grid;width:32px;height:32px;place-items:center;border-radius:50%}.status-icon--ok{background:#e6f4ed;color:#216247}.status-icon--bad{background:#fae7e3;color:var(--danger)}.fen-editor{min-height:150px;padding:10px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:13px;line-height:1.45}.form-error{margin:-4px 0 0;color:var(--danger);font-weight:800}.inspector-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.export-actions{display:grid;grid-template-columns:repeat(4,38px) minmax(0,1fr);gap:8px;align-items:center}.export-status{min-width:0;overflow:hidden;font-size:12px;font-weight:900;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.export-status--ok{color:#216247}.export-status--error{color:var(--danger)}.metadata-list{display:grid;gap:8px}.metadata-list div{display:flex;justify-content:space-between;gap:12px;min-height:36px;align-items:center;border-bottom:1px solid var(--border)}.metadata-list span{color:var(--muted);font-weight:700}.metadata-list strong{min-width:0;overflow:hidden;color:var(--ink);text-align:right;text-overflow:ellipsis;white-space:nowrap}.notes-panel{display:grid;gap:8px;margin-top:auto}.notes-panel__heading{display:flex;align-items:center;gap:8px;color:var(--ink);font-weight:900}.notes-panel textarea{min-height:104px;padding:10px;resize:vertical}.notes-bookmarks{display:grid;gap:12px;margin-top:auto;padding-top:12px;border-top:1px solid var(--border)}.notes-bookmarks__heading{display:flex;align-items:center;gap:8px;color:var(--ink);font-weight:900}.notes-bookmarks__heading small{margin-left:auto;color:var(--muted);font-size:12px;font-weight:700}.notes-bookmarks__hint{margin:0;color:var(--muted);font-size:12px;font-weight:700}.notes-bookmarks__bookmarks,.notes-bookmarks__notes{display:grid;gap:8px}.notes-bookmarks__bookmark-actions{display:flex;flex-wrap:wrap;gap:8px}.notes-bookmarks__bookmark-actions .cv-button{flex:1;min-width:0}.notes-bookmarks__search{display:grid;gap:4px}.notes-bookmarks__search span{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.notes-bookmarks__search input{width:100%;min-height:34px;padding:0 10px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--ink);font-size:13px}.notes-bookmarks__list{display:grid;gap:6px;max-height:220px;margin:0;padding:0;list-style:none;overflow:auto}.notes-bookmarks__list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:start;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.notes-bookmarks__item--editing{grid-template-columns:minmax(0,1fr)}.notes-bookmarks__list li strong{display:block;min-width:0;overflow:hidden;color:var(--ink);font-size:13px;font-weight:800;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.notes-bookmarks__list li small{display:block;margin-top:2px;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.notes-bookmarks__item-actions{display:flex;gap:4px;justify-content:flex-end}.notes-bookmarks__icon{display:grid;width:28px;height:28px;place-items:center;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--muted);cursor:pointer}.notes-bookmarks__icon--danger{color:var(--danger)}.notes-bookmarks__edit{display:grid;grid-column:1 / -1;gap:8px}.notes-bookmarks__edit textarea{width:100%;min-height:92px;padding:10px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--ink);resize:vertical;font-size:13px}.notes-bookmarks__edit-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.notes-bookmarks__editor{display:grid;gap:8px}.notes-bookmarks__editor textarea{width:100%;min-height:84px;padding:10px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--ink);resize:vertical;font-size:13px}.notes-bookmarks__editor-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}.notes-bookmarks__scope{display:grid;gap:4px;min-width:0}.notes-bookmarks__scope span{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.notes-bookmarks__scope select{min-width:0;min-height:34px;padding:0 8px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--ink)}.notes-bookmarks__status{margin:0;font-size:12px;font-weight:900;text-transform:uppercase}.notes-bookmarks__status--ok{color:#216247}.notes-bookmarks__status--error{color:var(--danger)}.training-pane{gap:12px}.training-create{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.training-create input{width:100%;min-width:0;min-height:38px;padding:0 10px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--ink)}.training-create .cv-button{min-width:0}.training-import{display:grid;gap:10px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted)}.training-import__heading{display:flex;align-items:center;gap:8px;color:var(--ink);font-weight:900}.training-import__form{display:grid;gap:8px}.training-import__row{display:grid;grid-template-columns:minmax(0,1fr) minmax(140px,auto);gap:8px}.training-import__row input,.training-import__row select,.training-import__textarea{width:100%;min-width:0;min-height:38px;padding:8px 10px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--ink)}.training-import__textarea{min-height:110px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px;line-height:1.4}.training-import__url{width:100%;min-width:0;min-height:38px;padding:0 10px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--ink);font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px}.training-import__source{align-self:start}.training-stats{display:grid;gap:10px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.training-stats__heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px;color:var(--ink);font-weight:900}.training-stats__heading small{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.training-stats__hint,.training-stats__error{margin:0;font-size:12px;font-weight:700}.training-stats__hint{color:var(--muted)}.training-stats__error{color:var(--danger)}.training-stats__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0}.training-stats__grid div{display:grid;gap:2px;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted)}.training-stats__grid dt{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.training-stats__grid dd{margin:0;color:var(--ink);font-size:16px;font-weight:900}.training-stats__calendar{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:4px;align-items:end;height:110px;padding:6px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted)}.training-stats__calendar-day{display:grid;grid-template-rows:1fr auto auto;gap:2px;align-items:end;justify-items:center;min-width:0}.training-stats__calendar-bar{width:70%;min-height:2px;border-radius:3px 3px 0 0;background:#769079;transition:height .12s ease-out}.training-stats__calendar-day small{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:0}.training-stats__calendar-day em{color:var(--ink);font-size:11px;font-style:normal;font-weight:900}.training-stats__scope{align-self:start}.training-stats__weak,.training-stats__mistakes{display:grid;gap:6px;margin-top:4px;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.training-stats__weak header,.training-stats__mistakes header{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.training-stats__weak header strong,.training-stats__mistakes header strong{color:var(--ink);font-weight:900}.training-stats__weak header small,.training-stats__mistakes header small{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.training-stats__weak ul,.training-stats__mistakes ul{display:grid;gap:6px;margin:0;padding:0;list-style:none;max-height:200px;overflow:auto}.training-stats__weak-row,.training-stats__mistake-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:6px 8px;border:1px solid var(--border);border-radius:6px;background:var(--surface-muted)}.training-stats__weak-row strong,.training-stats__mistake-row strong{display:block;min-width:0;overflow:hidden;color:var(--ink);font-size:12px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.training-stats__weak-row small,.training-stats__mistake-row small{display:block;color:var(--muted);font-size:11px;font-weight:700}.training-stats__weak-row-metrics,.training-stats__mistake-row-metrics{display:grid;gap:2px;justify-items:end}.training-stats__weak-row-metrics em,.training-stats__mistake-row-metrics em{color:var(--danger);font-size:15px;font-style:normal;font-weight:900}.training-stats__weak-row-metrics small,.training-stats__mistake-row-metrics small{color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase}@media(max-width:560px){.training-stats__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.training-stats__calendar{grid-template-columns:repeat(7,minmax(0,1fr));height:90px}.training-stats__calendar-day:nth-child(n+8){display:none}}.training-import__preview{display:grid;gap:8px;padding:10px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface)}.training-import__preview-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;align-items:center}.training-import__preview-head strong{color:var(--ink);font-size:13px;font-weight:900}.training-import__preview-head span{grid-column:1 / 2;color:var(--muted);font-size:12px;font-weight:700}.training-import__preview-toggles{grid-column:2 / 3;grid-row:1 / 3;display:flex;gap:6px;align-items:center}.training-import__preview-toggle{padding:4px 8px;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface);color:var(--ink);cursor:pointer;font-size:11px;font-weight:800;text-transform:uppercase}.training-import__preview-list{display:grid;gap:6px;max-height:260px;margin:0;padding:0;list-style:none;overflow:auto}.training-import__preview-row label{display:grid;grid-template-columns:20px minmax(0,1fr);gap:8px;align-items:start;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:var(--surface);cursor:pointer}.training-import__preview-row input[type=checkbox]{margin-top:2px}.training-import__preview-row strong{display:block;min-width:0;overflow:hidden;color:var(--ink);font-size:13px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.training-import__preview-row small{display:block;margin-top:2px;color:var(--muted);font-size:11px;font-weight:700}.training-import__preview-line{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.training-import__actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.training-import__actions small{flex:1 1 220px;min-width:160px;overflow:hidden;color:var(--muted);font-size:11px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.training-import__job{display:grid;gap:6px;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted)}.training-import__job-head{display:flex;justify-content:space-between;gap:12px;color:#243142;font-size:12px;font-weight:900}.training-import__job-head span{color:#3b668f}.training-import__job-bar{position:relative;height:7px;overflow:hidden;border-radius:999px;background:var(--border)}.training-import__job-bar span{display:block;height:100%;border-radius:inherit;background:#3b668f;transition:width .18s ease}.training-import__job small{overflow:hidden;color:var(--muted);font-size:11px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.training-import__summary{display:grid;gap:6px;padding:10px;border:1px solid #bfddcc;border-radius:8px;background:#f0f8f4}.training-import__summary strong{color:#1f4a36;font-size:13px;font-weight:900}.training-import__summary ul{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}.training-import__summary li{padding:4px 8px;border-radius:6px;background:var(--surface);color:#1f4a36;font-size:12px;font-weight:800}.training-import__summary em{font-style:normal;font-weight:900}.training-course-list,.training-chapter-list{display:grid;gap:8px;overflow:auto}.training-course-list{max-height:220px}.training-chapter-list{max-height:180px}.training-course-row{display:grid;grid-template-columns:minmax(0,1fr) 34px;gap:8px;align-items:center;min-height:58px;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--ink);cursor:pointer;text-align:left}.training-course-row--active{border-color:var(--primary);background:var(--primary-weak)}.training-course-row strong,.training-course-row small,.training-chapter-row strong,.training-chapter-row small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.training-course-row strong,.training-chapter-row strong{color:var(--ink);font-size:13px;font-weight:900}.training-course-row small,.training-chapter-row small{margin-top:2px;color:var(--muted);font-size:12px;font-weight:800}.training-course-row em{display:grid;width:30px;height:30px;place-items:center;border-radius:8px;background:var(--surface-muted);color:var(--ink);font-size:12px;font-style:normal;font-weight:900}.training-save{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted)}.training-save strong,.training-save span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.training-save strong{color:var(--ink);font-size:13px;font-weight:900}.training-save span{margin-top:2px;color:var(--muted);font-size:12px;font-weight:800}.training-context{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.training-context div{min-width:0;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.training-context span,.training-context strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.training-context span{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.training-context strong{margin-top:3px;color:var(--ink);font-size:12px;font-weight:900}.training-chapter-row{min-height:48px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--ink);cursor:pointer;text-align:left}.training-chapter-row--active{border-color:var(--primary);background:var(--primary-weak)}.training-lines{display:grid;gap:10px;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.training-lines__head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}.training-lines__head strong,.training-lines__head span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.training-lines__head strong{color:var(--ink);font-size:13px;font-weight:900}.training-lines__head span{margin-top:2px;color:var(--muted);font-size:12px;font-weight:800}.training-line-list{display:grid;max-height:220px;gap:8px;overflow:auto}.training-line-row{display:grid;gap:8px;padding:9px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted)}.training-line-row strong,.training-line-row small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.training-line-row strong{color:var(--ink);font-size:12px;font-weight:900}.training-line-row small{margin-top:2px;color:var(--muted);font-size:11px;font-weight:800}.training-line-badges{display:grid;grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:6px}.training-line-badges span{min-width:0;padding:5px 6px;overflow:hidden;border-radius:6px;background:var(--surface-muted);color:var(--muted);font-size:10px;font-weight:900;text-align:center;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.training-line-footer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.training-line-actions{display:inline-grid;grid-template-columns:repeat(2,32px);gap:6px}.training-line-actions .icon-button{width:32px;height:32px}.training-review{display:grid;gap:10px;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.training-review__head,.training-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}.training-review__head strong,.training-review__head span,.training-summary strong,.training-summary span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.training-review__head strong,.training-summary strong{color:var(--ink);font-size:13px;font-weight:900}.training-review__head span,.training-summary span{margin-top:2px;color:var(--muted);font-size:12px;font-weight:800}.training-due-list{display:grid;gap:6px}.training-due-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted)}.training-due-row strong,.training-due-row small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.training-due-row strong{color:var(--ink);font-size:12px;font-weight:900}.training-due-row small,.training-due-row em{color:var(--muted);font-size:11px;font-weight:800}.training-due-row em{font-style:normal;text-transform:uppercase}.training-session,.training-prompt{display:grid;gap:10px}.training-session__meta,.training-card-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.training-session__meta span,.training-card-meta span{min-width:0;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted);color:var(--ink);font-size:11px;font-weight:900;text-align:center}.training-session__meta strong,.training-session__meta small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.training-session__meta strong{color:var(--ink);font-size:14px}.training-session__meta small{margin-top:2px;color:var(--muted);font-size:10px;text-transform:uppercase}.training-feedback{display:grid;gap:3px;padding:8px;border-radius:8px;font-size:12px;font-weight:900}.training-feedback strong,.training-feedback span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.training-feedback--ok{border:1px solid #b8d5c6;background:#edf8f1;color:#216247}.training-feedback--error{border:1px solid #e3beb6;background:#fff0ed;color:var(--danger)}.training-review-board{width:min(100%,260px);justify-self:center}.training-answer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.training-answer input{width:100%;min-width:0;min-height:38px;padding:0 10px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--ink)}.training-review-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.training-review-actions .cv-button{min-width:0;padding-inline:8px}.training-hint{margin:0;padding:8px;border:1px dashed #c3ccd5;border-radius:8px;color:var(--muted);font-size:12px;font-weight:800}.training-session-empty{display:grid;gap:8px}.training-status{margin:0;min-height:18px;font-size:12px;font-weight:900;text-transform:uppercase}.training-status--ok{color:#216247}.training-status--error{color:var(--danger)}.analysis-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px}.analysis-field{display:grid;gap:4px}.analysis-field>span{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.analysis-field input,.analysis-field select{width:100%;min-height:38px;padding:0 10px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--ink)}.analysis-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.analysis-status{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-muted)}.analysis-status div{display:flex;justify-content:space-between;gap:8px;min-width:0}.analysis-status span{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.analysis-status strong{color:var(--ink);font-weight:900}.analysis-lines{display:grid;gap:8px}.analysis-line{padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.analysis-line header{display:flex;align-items:center;gap:10px}.analysis-line__rank{color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase}.analysis-line__depth{margin-left:auto;color:var(--muted);font-size:12px;font-weight:800}.analysis-line__score{padding:2px 6px;border-radius:6px;background:var(--surface-muted);color:var(--ink);font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px;font-weight:900}.analysis-line__score--good{background:#e6f4ed;color:#1d5d3c}.analysis-line__score--bad{background:#fae7e3;color:var(--danger)}.analysis-line__pv{margin:6px 0 0;color:var(--ink);font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:13px;line-height:1.5;overflow-wrap:anywhere}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:18px;background:#17202c6b}.modal-dialog{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;width:min(100%,440px);padding:16px;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:0 24px 70px #17202c3d}.modal-dialog__icon{display:grid;width:42px;height:42px;place-items:center;border-radius:8px;background:var(--surface-muted);color:var(--ink)}.modal-dialog__icon--danger{background:#fae7e3;color:var(--danger)}.modal-dialog__body{min-width:0}.modal-dialog__body h2,.modal-dialog__body p{margin:0}.modal-dialog__body h2{margin-top:4px;overflow-wrap:anywhere;color:var(--ink);font-size:18px;line-height:1.25}.modal-dialog__body p:not(.eyebrow){margin-top:8px;color:var(--muted);font-size:13px;font-weight:700;line-height:1.45}.modal-dialog__actions{display:flex;grid-column:1 / -1;justify-content:flex-end;gap:8px}.modal-dialog__actions .cv-button--primary{background:var(--danger)}@media(max-width:1200px){.toolbar{align-items:flex-start;flex-wrap:wrap;padding:12px 18px}.workspace{grid-template-columns:minmax(280px,.8fr) minmax(420px,1.2fr)}.inspector-pane{grid-column:1 / -1}}@media(max-width:920px){.cv-shell{grid-template-columns:1fr;width:100%;max-width:100vw}.cv-shell__nav{width:100%;max-width:100vw;overflow-x:auto;border-right:0;border-bottom:1px solid var(--border)}.cv-shell__main,.cv-shell__content,.workspace,.reader-pane,.board-pane,.inspector-pane{width:100%;max-width:100%;min-width:0}.side-nav{width:max-content;min-width:100%;flex-direction:row;overflow-x:auto}.brand{min-width:190px;margin-bottom:0}.workspace{grid-template-columns:1fr}.session-controls{grid-template-columns:minmax(120px,1fr) minmax(110px,1fr) 38px 38px;width:100%}.session-controls--active{grid-template-columns:minmax(0,1fr) 38px 38px}.session-status{grid-column:1 / -1}.board-frame{width:min(100%,560px)}}@media(max-width:560px){.cv-shell__content{padding:12px}.toolbar{align-items:stretch;flex-direction:column;padding:12px}.toolbar__actions{justify-content:space-between}.segmented{width:100%}.segmented__item{min-width:0;flex:1}.session-controls,.session-controls--active{grid-template-columns:1fr 1fr}.session-controls .session-status,.session-controls--active .session-user,.session-controls--active .session-status{grid-column:1 / -1}.upload-controls,.upload-meta,.processing-panel{grid-template-columns:1fr}.processing-panel__actions{display:grid;grid-template-columns:38px minmax(0,1fr)}.inspector-actions,.export-actions,.fen-strip,.training-create,.training-save,.training-context,.training-line-footer,.training-lines__head,.training-review__head,.training-answer,.training-summary,.training-import__row,.training-import__actions,.training-session__meta,.training-card-meta,.training-line-badges,.training-review-actions{grid-template-columns:1fr}.training-review-board{width:min(100%,240px)}.export-status{min-height:20px}}.admin-panel{margin:0 0 16px;padding:16px;border:1px solid rgba(23,32,28,.12);border-radius:12px;background:var(--surface);box-shadow:0 8px 24px #17201c14;overflow-x:auto}.admin-panel__header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.admin-panel__title{margin:0;font-size:18px}.admin-panel__subtitle{margin:20px 0 8px;font-size:14px}.admin-panel__search{display:flex;gap:8px}.admin-panel__search input{padding:6px 8px;border:1px solid rgba(23,32,28,.16);border-radius:8px;font:inherit}.admin-panel__button{padding:5px 10px;border:1px solid rgba(23,32,28,.16);border-radius:8px;background:#f3f5f7;font:inherit;cursor:pointer}.admin-panel__button:disabled{opacity:.5;cursor:not-allowed}.admin-panel__button--danger{border-color:#c0442f;color:var(--danger)}.admin-panel__table{width:100%;border-collapse:collapse;font-size:13px}.admin-panel__table th,.admin-panel__table td{padding:6px 8px;text-align:left;border-bottom:1px solid rgba(23,32,28,.08);vertical-align:top}.admin-panel__row--blocked{background:#c0442f0f}.admin-panel__tag{margin-left:6px;padding:1px 6px;border-radius:999px;background:var(--danger);color:#fff;font-size:11px}.admin-panel__link{padding:0;border:none;background:none;color:#2f6f4f;font:inherit;text-decoration:underline;cursor:pointer}.admin-panel__sub-edit{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.admin-panel__sub-edit input,.admin-panel__sub-edit select{padding:4px 6px;border:1px solid rgba(23,32,28,.16);border-radius:6px;font:inherit}.admin-panel__actions{display:flex;gap:6px}.admin-panel__audit{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.admin-panel__audit-row{display:flex;flex-wrap:wrap;gap:8px;padding:4px 0;font-size:12px;border-bottom:1px solid rgba(23,32,28,.06)}.admin-panel__audit-action{font-weight:600}.admin-panel__audit-meta{color:#17201c99}.admin-panel__audit-reason{color:#17201cbf;font-style:italic}.admin-panel__status--ok{color:#2f6f4f}.admin-panel__status--error{color:var(--danger)}.admin-panel__empty{color:#17201c99;font-size:13px}.side-nav__item--button{border:none;background:none;width:100%;text-align:left;cursor:pointer;font:inherit}.account-panel{display:flex;flex-direction:column;gap:8px;padding:12px;margin-top:8px;min-width:280px;max-width:360px;border:1px solid rgba(23,32,28,.12);border-radius:10px;background:var(--surface);box-shadow:0 8px 24px #17201c1f}.account-panel__header{display:flex;align-items:center;justify-content:space-between}.account-panel__title{font-weight:600;font-size:13px}.account-panel__email{margin:0;font-weight:600}.account-panel__link{align-self:flex-start;padding:0;border:none;background:none;color:var(--primary);font:inherit;text-decoration:underline;cursor:pointer}.account-panel__subscription{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid rgba(23,32,28,.12);border-radius:10px;background:var(--surface-muted)}.account-panel__sub-head{display:flex;align-items:baseline;gap:8px}.account-panel__sub-head small{color:#17201c99}.account-panel__usage,.account-panel__limits{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.account-panel__limits{padding-top:6px;border-top:1px solid rgba(23,32,28,.08);font-size:12px;color:#17201cbf}.account-panel__usage li,.account-panel__limits li{display:flex;justify-content:space-between;gap:12px}.account-panel__usage em,.account-panel__limits em{font-style:normal;font-weight:600}.account-panel__ml{padding:12px;border:1px solid rgba(47,111,79,.24);border-radius:8px;background:#2f6f4f0f}.account-panel__toggle{display:flex;align-items:flex-start;gap:10px;font-size:12px}.account-panel__toggle input{margin-top:2px}.account-panel__toggle span{display:flex;flex-direction:column;gap:3px}.account-panel__toggle strong{color:#244236}.account-panel__toggle small{color:#17201cad;line-height:1.35}.account-panel__danger{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid rgba(192,68,47,.4);border-radius:8px;background:#c0442f0d}.account-panel__danger strong{color:var(--danger)}.account-panel__danger p{margin:0;font-size:12px;color:#17201cbf}.account-panel__confirm{display:flex;flex-direction:column;gap:4px;font-size:12px}.account-panel__confirm input{padding:6px 8px;border:1px solid rgba(23,32,28,.16);border-radius:8px;font:inherit}.account-panel__delete{padding:8px 10px;border:none;border-radius:8px;background:#c0442f;color:#fff;font:inherit;font-weight:600;cursor:pointer}.account-panel__delete:disabled{opacity:.5;cursor:not-allowed}.book-reader{display:flex;flex:1;flex-direction:column;gap:8px;width:100%;min-height:0}.book-reader .pdf-reader,.book-reader .epub-reader{display:flex;flex:1;flex-direction:column;min-height:0}.book-reader .pdf-reader__canvas-wrap{flex:1;max-height:none}.book-reader .pdf-native{flex:1;height:auto;min-height:0}.book-reader--empty,.book-reader--error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:32px 16px;color:#17201ca6;text-align:center}.book-reader--error{color:var(--danger)}.book-reader__actions{display:flex;justify-content:flex-end}.book-reader__download{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:1px solid rgba(23,32,28,.16);border-radius:8px;background:#f3f5f7;font:inherit;cursor:pointer}.pdf-reader{display:flex;flex-direction:column;gap:8px}.pdf-reader__toolbar{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid rgba(23,32,28,.1);border-radius:8px;background:var(--surface)}.book-reader .djvu-reader .pdf-reader__canvas-wrap,.book-reader .epub-reader .epub-reader__body,.book-reader .epub-reader .pdf-reader__state{order:1}.book-reader .djvu-reader .pdf-reader__toolbar,.book-reader .epub-reader>.pdf-reader__toolbar{order:2;flex:0 0 auto;margin-top:2px}.pdf-reader__spacer{flex:1}.pdf-reader__page{display:inline-flex;align-items:center;gap:4px;font-size:13px}.pdf-reader__page input{width:56px;padding:4px 6px;border:1px solid rgba(23,32,28,.16);border-radius:6px;font:inherit}.pdf-reader__zoom{min-width:44px;text-align:center;font-size:13px}.pdf-reader__canvas-wrap{position:relative;display:flex;justify-content:safe center;align-items:safe center;max-height:70vh;overflow:auto;padding:12px;border:1px solid rgba(23,32,28,.1);border-radius:8px;background:#eef0e5}@media(hover:hover)and (pointer:fine){.pdf-reader__canvas-wrap--pannable .pdf-reader__page-box,.pdf-reader__canvas-wrap--pannable .pdf-reader__marker{cursor:grab}.pdf-reader__canvas-wrap--dragging,.pdf-reader__canvas-wrap--dragging *{cursor:grabbing!important;-webkit-user-select:none;user-select:none}}.pdf-reader__canvas{max-width:100%;height:auto;box-shadow:0 8px 24px #17201c2e}.pdf-reader__page-box{position:relative;display:inline-block;line-height:0}.pdf-reader__page-box--fit-height{display:block;flex:0 0 auto}.pdf-reader__page-box--fit-height .pdf-reader__canvas{display:block;width:auto;max-width:none;height:100%}.djvu-reader__page{display:block;width:auto;height:100%;box-shadow:0 8px 24px #17201c2e}.djvu-reader__page--pending{position:absolute;inset:0 auto auto 0;visibility:hidden;pointer-events:none}.djvu-reader .pdf-reader__canvas-wrap{display:flex;justify-content:safe center;align-items:safe center;overflow:auto;padding:10px}.djvu-reader .pdf-reader__page-box{display:block;flex:0 0 auto}.djvu-reader__loading-note{position:absolute;top:.5rem;left:.5rem;padding:.35rem .5rem;border-radius:.35rem;background:var(--surface, #fff);color:var(--text, #222);font-size:.75rem;line-height:1.3;pointer-events:none}.pdf-native{width:100%;height:78vh;min-height:480px;border:1px solid rgba(23,32,28,.1);border-radius:8px;background:#eef0e5}.reader-waiting{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;flex:1;width:100%;min-height:min(360px,100%);padding:24px 16px;color:var(--ink);background:var(--surface-muted);text-align:center}.reader-waiting__page{display:flex;flex-direction:column;gap:8px;width:100px;height:128px;padding:25px 17px;border:1px solid var(--border-strong);border-radius:4px;background:var(--surface);animation:reader-waiting-pulse 2s ease-in-out infinite}.reader-waiting__page span{width:100%;height:4px;border-radius:2px;background:var(--border-strong)}.reader-waiting__page span:nth-child(2){width:72%}.reader-waiting__page span:nth-child(4){width:55%}.reader-waiting__copy{max-width:400px}.reader-waiting__copy h2{margin:0 0 8px;font-size:17px;line-height:1.35;font-weight:600}.reader-waiting__copy p{margin:0;color:var(--muted);font-size:13px;line-height:1.6}.pdf-reader:not(.djvu-reader) .pdf-reader__canvas-wrap>.reader-waiting{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}@keyframes reader-waiting-pulse{50%{opacity:.55}}@media(prefers-reduced-motion:reduce){.reader-waiting__page{animation:none}}.pdf-reader__markers{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.pdf-reader__marker{position:absolute;padding:0;border:2px solid #2f6f4f;border-radius:4px;background:#2f6f4f1f;cursor:pointer;pointer-events:auto;transition:background .12s ease}.pdf-reader__marker:hover,.pdf-reader__marker:focus-visible{background:#2f6f4f47;outline:none}.pdf-reader__state{padding:24px;color:#17201c99}.pdf-reader__state--error{color:var(--danger)}.epub-reader{display:flex;flex-direction:column;gap:8px}.epub-reader__body{display:flex;gap:8px;height:70vh;border:1px solid rgba(23,32,28,.1);border-radius:8px;background:var(--surface);overflow:hidden}.epub-reader__toc{flex:0 0 220px;max-width:45%;overflow-y:auto;padding:8px;border-right:1px solid rgba(23,32,28,.1)}.epub-reader__toc ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.epub-reader__toc button{width:100%;padding:5px 8px;border:none;border-radius:6px;background:none;font:inherit;font-size:13px;text-align:left;cursor:pointer}.epub-reader__toc button:hover{background:#eef0e5}.epub-reader__viewer{flex:1;min-width:0;height:100%}:root[data-theme=dark] .status-badge--queued{background:#33290f;color:#e7c274}:root[data-theme=dark] .status-badge--processing{background:#122f47;color:#7fb6e2}:root[data-theme=dark] .status-badge--ready{background:var(--primary-weak);color:#6fca9c}:root[data-theme=dark] .status-badge--failed{background:var(--danger-weak);color:var(--danger)}:root[data-theme=dark] .processing-panel--queued{border-color:#4a3c17;background:#241d0c}:root[data-theme=dark] .processing-panel--processing{border-color:#234156;background:#0f2233}:root[data-theme=dark] .processing-panel--ready{border-color:#274c39;background:#12271d}:root[data-theme=dark] .processing-panel--failed{border-color:#533029;background:#2a1714}:root[data-theme=dark] .board-placeholder{border-color:#533029;background:#2a1714}:root[data-theme=dark] .status-icon--ok{background:var(--primary-weak);color:#6fca9c}:root[data-theme=dark] .status-icon--bad{background:var(--danger-weak);color:var(--danger)}:root[data-theme=dark] .move-pill--active{background:var(--primary-weak)}:root[data-theme=dark] .session-status--ok,:root[data-theme=dark] .upload-status--ok,:root[data-theme=dark] .san-status--ok,:root[data-theme=dark] .export-status--ok,:root[data-theme=dark] .processing-panel__status--ok{color:#6fca9c}:root[data-theme=dark] .book-card__format,:root[data-theme=dark] .book-list__row em{background:var(--surface-muted);color:var(--ink-soft)}:root[data-theme=dark] .reader-surface{border-color:var(--border)}.toast-stack{position:fixed;top:16px;right:16px;z-index:60;display:flex;flex-direction:column;gap:10px;width:min(360px,calc(100vw - 32px));pointer-events:none}.toast{display:grid;grid-template-columns:20px minmax(0,1fr) 22px;gap:10px;align-items:start;padding:12px 14px;border:1px solid var(--border);border-left:4px solid var(--muted);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-md);pointer-events:auto;animation:toast-in .18s ease}@keyframes toast-in{0%{transform:translateY(-6px);opacity:0}}.toast--success{border-left-color:var(--primary)}.toast--error{border-left-color:var(--danger)}.toast--warning{border-left-color:#c98a25}.toast--info{border-left-color:#3b7ab5}.toast__icon{margin-top:1px;color:var(--muted)}.toast--success .toast__icon{color:var(--primary)}.toast--error .toast__icon{color:var(--danger)}.toast__body{display:flex;flex-direction:column;gap:2px;min-width:0}.toast__body strong{color:var(--ink);font-size:13px}.toast__body span{color:var(--muted);font-size:12px;line-height:1.35}.toast__close{display:grid;place-items:center;width:22px;height:22px;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer}.toast__close:hover{background:var(--surface-muted);color:var(--ink)}.reader-review{display:grid;gap:10px;padding:14px;color:var(--ink);background:var(--surface);border-bottom:1px solid var(--border)}.board-column>.board-pane{flex-shrink:0}.reader-review__status{font-weight:600}.reader-review__actions{display:flex;flex-wrap:wrap;gap:8px}.fenshot-panel{min-width:0}.fenshot-panel summary{cursor:pointer;font-size:13px;font-weight:600}.fenshot-panel[open]{display:grid;gap:10px}.fenshot-panel small{display:block;overflow-wrap:anywhere}.fenshot-proposal{display:grid;gap:10px;min-width:0}.fenshot-proposal>label{flex-wrap:wrap}.fenshot-proposal input{width:100%;font-family:monospace}.fenshot-panel>button{justify-self:start}.fenshot-panel>label{flex-wrap:wrap}.fenshot-panel>label:has(select){flex-direction:column;align-items:stretch}.fenshot-panel select{max-width:100%;width:100%}.fenshot-panel .cv-button{max-width:100%;white-space:normal;text-align:left}.fenshot-preview{margin:0;width:min(100%,280px)}.fenshot-preview svg{width:100%;display:block}.fenshot-preview figcaption{font-size:12px;color:var(--muted);line-height:1.4}.reader-review small{color:var(--muted);line-height:1.45}.reader-review label{display:flex;align-items:center;gap:8px;font-size:13px}.reader-review input,.reader-review select{color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:5px;min-width:0}.reader-review input[type=checkbox]{flex-shrink:0}:root[data-theme=dark] .reader-review .cv-button--primary{color:#fff}.review-fen{display:flex;flex-wrap:wrap;gap:8px}.review-fen label{flex:1 1 200px;flex-direction:column;align-items:stretch}.review-fen input{width:100%;font-family:monospace}.review-original{min-width:0;padding:12px}.reader-source-switch{display:flex;flex-wrap:wrap;gap:8px}.reader-document{display:flex;flex:1;min-width:0;min-height:0}.reader-document[hidden],.reader-mobile-jump{display:none}.diagram-review-filter{padding:4px 12px;font-size:13px}.diagram-review-filter select{color:var(--ink);background:var(--surface);border:1px solid var(--border);width:100%;min-height:34px}.diagram-card__topline{flex-wrap:wrap}.diagram-badge{max-width:100%;white-space:normal;font-size:11px}.board-editor__palette{grid-template-columns:repeat(7,minmax(0,1fr));max-width:338px}.review-original summary{cursor:pointer}.review-original__viewport{overflow:auto;max-height:65vh;margin:8px 0}.review-original__viewport .diagram-thumb{width:100%;height:auto;border-radius:0;display:block}.review-original__viewport .diagram-thumb img{width:100%;height:auto;object-fit:contain}.review-original__viewport .diagram-thumb__fallback{display:block;min-height:48px}@media(max-width:640px){.reader-review{padding:12px}.reader-review .cv-button,.reader-review select{min-height:44px}.reader-mobile-jump{display:inline-flex}}@media(max-width:920px){.cv-shell{grid-template-rows:auto minmax(0,1fr)}.cv-shell__nav{height:auto;max-height:160px}.side-nav{display:grid;grid-template-columns:auto minmax(0,1fr);min-height:0;height:auto;width:100%;gap:8px;align-items:center;padding:8px 12px}.side-nav .brand{min-width:0;grid-column:1;grid-row:1}.side-nav__group{grid-column:1 / -1;flex-direction:row;flex-wrap:nowrap;overflow-x:auto}.side-nav__group .side-nav__item{width:auto;flex-shrink:0;min-height:44px;padding:6px 8px;font-size:13px}.side-nav__footer{grid-column:2;grid-row:1;justify-self:end;flex-direction:row;align-items:center;margin:0;padding:0;border:0}.side-nav__footer .side-nav__user span,.side-nav__footer .session-status{display:none}.side-nav__footer .side-nav__item{width:auto;font-size:12px;padding:6px}.side-nav__footer .side-nav__user{padding:6px}.side-nav__theme{flex-shrink:0}.cv-shell__main{height:100%;overflow:hidden}.cv-shell__content{overflow-y:auto;padding:16px}.workspace--reader{display:flex;flex-direction:column;height:auto}.workspace--reader .diagram-column{max-height:190px;flex-shrink:0}.workspace--reader .reader-split{display:flex!important;flex-direction:column;height:auto}.workspace--reader .reader-pane{height:65vh;min-height:340px;flex-shrink:0}.workspace--reader .split-handle{display:none}.workspace--reader .board-column{overflow:visible;height:auto}.reader-source-switch .cv-button{min-height:40px}}.cell-review-panel{margin:12px 0;padding:12px;border:1px solid var(--border, #d1d5db);border-radius:8px;font-size:14px;overflow-wrap:anywhere}.cell-review-panel summary{cursor:pointer;font-weight:600;min-height:28px}.cell-review-panel p{margin:12px 0}.cell-review-panel small{display:block;line-height:1.5}.cell-review__navigation{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px}.cell-review__picker{display:grid;gap:6px;margin:12px 0;min-width:0}.cell-review__picker select{width:100%;min-width:0;min-height:44px;color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:6px}.cell-review__images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.cell-review__images figure{margin:0;min-width:0}.cell-review__images img,.cell-review__images svg{display:block;width:100%;aspect-ratio:1}.cell-review__images figcaption{margin:6px 0 12px;line-height:1.4}.cell-review__patch{image-rendering:pixelated}.cell-review__source{width:100%;height:auto;max-height:70vh;object-fit:contain}.cell-review-panel fieldset{border:0;padding:12px 0;min-width:0}.cell-review__classes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:8px 0 12px}.cell-review__classes button:last-child{grid-column:1 / -1}.cell-review-panel .cv-button{min-height:44px;white-space:normal}.cell-review__classes [aria-pressed=true]{outline:2px solid currentColor;outline-offset:-2px;font-weight:700}.workspace--reader{position:relative;display:flex;flex-direction:column;gap:6px}.reader-options{display:flex;align-items:center;gap:8px;flex:none}.reader-options details{position:relative}.reader-options summary,.board-column summary{cursor:pointer}.reader-catalog{position:absolute;z-index:10;top:100%;left:0;width:min(320px,85vw);max-height:60vh;overflow:auto;background:var(--surface);border:1px solid var(--border);padding:8px}.reader-catalog button{display:flex;align-items:center;gap:8px;width:100%;background:transparent;color:inherit;border:0;cursor:pointer}.reader-catalog button>:first-child{width:54px;height:54px;flex:none}.workspace--reader>.diagram-column{position:absolute;z-index:9;top:45px;bottom:0;left:0;width:min(320px,90vw)}.reader-split{flex:1;overflow:hidden}.board-column{overflow-y:auto}.board-column>.board-pane{position:sticky;top:0;z-index:2;background:var(--surface)}.personal-editor-actions{display:flex;flex-wrap:wrap;gap:6px}.reader-mobile-tab{display:none}.reader-focus .cv-shell{grid-template-columns:minmax(0,1fr)}.reader-focus .cv-shell__nav{display:none}[hidden]{display:none!important}@media(max-width:800px){.reader-mobile-tab{display:inline-flex}.workspace--reader{height:100%}.workspace--reader .reader-split,.workspace--reader .reader-pane{height:100%;min-height:0}.workspace--reader .reader-split--book .board-column,.workspace--reader .reader-split--board .reader-pane{display:none}.workspace--reader .reader-split--board .board-column{height:100%;overflow-y:auto}}.pdf-reader__marker--selected{outline:2px solid var(--primary);outline-offset:2px}.book-reader .pdf-reader .pdf-reader__canvas-wrap{order:1}.book-reader .pdf-reader .pdf-reader__toolbar{order:2;flex:0 0 auto;margin-top:2px}.djvu-reader .pdf-reader__canvas-wrap{padding:12px}.reader-split:fullscreen{background:var(--bg);padding:12px;width:100vw;height:100vh}.library-view .book-list--cards{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;overflow:visible;align-items:stretch}.book-card{padding:10px;gap:8px}.book-card__select{display:flex;flex-direction:column;align-items:flex-start;width:100%;gap:7px}.book-card__select:focus-visible{outline:3px solid var(--primary);outline-offset:3px}.book-cover{display:grid;place-items:center;width:100%;aspect-ratio:3 / 4;overflow:hidden;background:var(--surface-muted, var(--bg));color:var(--muted)}.book-cover--loading{background:var(--border)}.book-cover img{width:100%;height:100%;object-fit:contain}.book-cover__placeholder{max-width:90%;padding:12px;text-align:center;overflow-wrap:anywhere}.book-card__title{font-size:14px;min-height:2.5em;max-width:100%}.book-card__author{font-size:12px}.book-card__format{margin-top:auto}@media(max-width:600px){.library-view .book-list--cards{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}}.book-cover .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.library-recent{display:flex;gap:22px;align-items:center;padding:18px;margin:20px 0;border:1px solid var(--border);border-radius:var(--radius-lg);background:#edf4ef}:root[data-theme=dark] .library-recent{background:#253830}.modal-dialog.library-edit{width:min(480px,calc(100vw - 32px));grid-template-columns:minmax(0,1fr)}.library-edit .modal-dialog__actions .cv-button--primary{background:var(--cp-button-primary)}.library-edit__form{display:grid;gap:18px;margin-top:20px}.library-edit__form label{display:grid;gap:8px;font-size:13px;font-weight:600}.library-edit__form input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;color:var(--ink);background:var(--surface);font:inherit}.library-edit__form fieldset{border:0;padding:0;margin:0}.library-edit__form legend{font-size:13px;font-weight:600}.library-edit__form .library-category-filter{margin:10px 0 0}.library-recent>.book-cover{width:116px;flex:0 0 116px;border-radius:var(--radius-sm);background:var(--bg)}.library-recent__body{min-width:0;flex:1;max-width:560px}.library-recent__body>span{color:var(--primary);font-size:12px;font-weight:700}.library-recent__body h2{margin:5px 0;font-size:20px;overflow-wrap:anywhere}.library-recent__body p{margin:0 0 8px;color:var(--muted)}.library-recent__body .cv-button{margin-top:12px}.library-category-filter{display:flex;flex-wrap:wrap;gap:6px;margin:18px 0}.library-category-filter button,.book-categories__options button{border:1px solid var(--border);border-radius:999px;padding:6px 11px;background:var(--surface);color:var(--ink-soft);cursor:pointer;font:inherit;font-size:12px}.library-category-filter button[aria-pressed=true],.book-categories__options button[aria-pressed=true]{border-color:var(--primary);background:var(--primary-weak);color:var(--primary-strong)}.library-category-filter button:focus-visible,.book-categories summary:focus-visible,.book-categories button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.reading-progress{min-width:0;width:100%}.reading-progress__label{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--muted)}.reading-progress__label strong{color:var(--ink-soft)}.reading-progress__track{height:5px;margin-top:5px;overflow:hidden;border-radius:99px;background:var(--border)}.reading-progress__track>span{display:block;height:100%;border-radius:inherit;background:var(--primary)}.book-categories{position:relative;width:100%;font-size:12px}.book-categories summary{color:var(--muted);cursor:pointer;padding:4px 0}.book-categories__options{display:flex;flex-wrap:wrap;gap:5px;padding:5px 0}.book-list__row>.reading-progress{max-width:160px}@media(max-width:600px){.library-recent{gap:14px;padding:12px;align-items:flex-start}.library-recent>.book-cover{width:78px;flex-basis:78px}.library-recent__body h2{font-size:16px}.book-list__row>.reading-progress{max-width:none}}.library-view{--library-ground: var(--surface-muted);gap:20px;padding:clamp(20px,2.3vw,36px);overflow-x:hidden}.cv-shell__content:has(>.library-view){display:flex;flex-direction:column;overflow:hidden}.cv-shell__content:has(>.library-view)>.position-search-tabs{flex:none}.cv-shell__content>.library-view{flex:1 1 0;height:auto;overflow:hidden}.library-view>:not(.library-scroll){flex-shrink:0}.library-scroll{flex:1 1 0;min-height:0;min-width:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.library-scroll::-webkit-scrollbar{width:6px}.library-scroll::-webkit-scrollbar-track{background:transparent}.library-scroll::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:6px}.library-scroll::-webkit-scrollbar-thumb:hover{background:var(--muted)}.library-view .library-scroll .book-list{max-height:none;overflow:visible}.library-controls__filters{display:flex;flex:1 1 auto;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}@media(max-width:600px){.cv-shell__content>.library-view{gap:8px;padding:12px}.library-view>.library-recent{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:4px 10px;min-height:0;padding:8px}.library-view>.library-recent>.book-cover{width:44px;height:58px}.library-view>.library-recent>.cv-button{grid-column:3;margin:0;min-height:36px;padding:0 8px;font-size:12px;white-space:nowrap}.library-view>.library-recent h2{display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}.library-view>.library-category-filter{flex-wrap:nowrap;overflow-x:auto;margin:0;scrollbar-width:thin}.library-view>.library-category-filter button{flex:none;white-space:nowrap}.library-view>.library-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.library-view .library-controls__search{grid-column:1 / -1}.library-view .library-controls__filters{grid-column:1 / -1;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin}.library-view .library-controls__filters>*{flex:none}.library-view .library-controls__field select{width:100%;max-width:none}.library-view .library-controls__view{margin-left:0}}.library-header{display:flex;align-items:center;justify-content:space-between;gap:20px}.library-header__title h1{margin:0;color:var(--ink);font-size:clamp(24px,2vw,30px);letter-spacing:-.025em;line-height:1.2}.library-header__title p{margin:7px 0 0;color:var(--muted);font-size:14px}.library-add{display:inline-flex;justify-content:center;align-items:center;flex:0 0 auto;gap:8px;min-height:42px;padding:0 15px;border:1px solid var(--cp-button-primary);border-radius:8px;background:var(--cp-button-primary);color:#fff;font-size:14px;font-weight:600;cursor:pointer}.library-add:hover{background:var(--cp-button-primary-hover)}.library-add:focus-visible,.library-controls__view-btn:focus-visible,.book-list__icon:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.library-view .upload-controls{grid-template-columns:minmax(180px,1fr) minmax(110px,.55fr) minmax(180px,1fr) auto;padding:16px;gap:10px;border:1px solid var(--border);border-radius:10px;background:var(--library-ground)}.library-view .upload-controls input[type=file]{grid-column:auto;padding:5px;font-size:13px}.library-view .upload-controls input[type=file]::file-selector-button{margin-right:8px;padding:4px 9px;border:1px solid var(--border-strong);border-radius:5px;background:var(--surface);color:var(--ink);cursor:pointer}.library-view .upload-controls .cv-button{min-height:38px}.library-view .upload-meta{min-height:0;font-weight:500}.library-view .upload-status{text-transform:none}.library-view .library-controls{gap:8px;margin:0}.library-view .library-controls__search{flex:1 1 260px;min-height:42px;padding:0 12px;background:var(--library-ground);border-color:transparent}.library-view .library-controls__search:focus-within{outline:2px solid var(--primary);outline-offset:1px}.library-view .library-controls__search input{min-height:40px;font-size:14px}.library-view .library-controls__field select,.library-view .library-controls__view-btn{min-height:40px;font-size:13px;font-weight:500}.library-view .library-controls__field select{padding:0 10px}.library-view .library-controls__view-btn{width:40px}.library-results{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:4px}.library-results h2{margin:0;color:var(--ink);font-size:16px;font-weight:700}.library-results span{color:var(--muted);font-size:13px}.library-view .book-list--cards{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.library-view .book-card{display:flex;flex-direction:column;gap:10px;min-width:0;padding:10px;border-radius:10px;background:var(--surface);box-shadow:none}.library-view .book-card:hover{border-color:var(--primary);box-shadow:none;transform:none}.library-view .book-card--active{border-color:var(--primary);background:var(--surface)}.library-view .book-card__select{flex:1;gap:9px}.library-view .book-cover{background:var(--library-ground);border-radius:5px}.library-view .book-card__title{min-height:2.7em;color:var(--ink);font-size:14px;line-height:1.35}.library-view .book-card__author{font-size:13px}.library-view .book-card__details{display:flex;align-items:center;gap:9px;margin-top:auto;color:var(--muted);font-size:12px}.library-view .book-card__format{margin:0;background:var(--library-ground);color:var(--ink-soft);font-size:11px;letter-spacing:0}.library-view .book-card .book-list__actions{margin-top:auto}@media(max-width:1000px){.library-view .upload-controls{grid-template-columns:minmax(0,1fr) 110px}.library-view .upload-controls input[type=file]{grid-column:1 / -1}}@media(max-width:600px){.library-view{padding:18px 14px;gap:16px}.library-header{align-items:flex-start}.library-header__title h1{font-size:23px}.library-header__title p{font-size:12px}.library-add{padding:0 10px;font-size:13px}.library-view .library-controls__search{flex-basis:100%}.library-view .library-controls__field select{max-width:140px}.library-view .book-list--cards{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.library-view .book-card{padding:8px}}.reader-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border)}.reader-tabs button{border:0;background:transparent;color:var(--muted);padding:8px 12px;cursor:pointer}.reader-tabs button[aria-selected=true]{color:var(--ink);border-bottom:2px solid var(--primary)}.reader-tabs button:focus-visible{outline:2px solid var(--primary)}.explorer-panel{display:grid;gap:8px;min-width:0;padding:10px;background:var(--surface);color:var(--ink);font-size:13px}.explorer-panel label{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.explorer-panel input,.explorer-panel select{min-width:0;max-width:100%}.explorer-panel fieldset{display:flex;flex-wrap:wrap;gap:8px;border:1px solid var(--border)}.explorer-panel ul{margin:0;padding-left:18px;overflow-wrap:anywhere}.explorer-panel li{margin:5px 0}.explorer-panel p{margin:0}.explorer-bar{display:flex;height:10px;overflow:hidden;border:1px solid var(--border-strong)}.explorer-bar span:nth-child(1){background:#f0f1ed}.explorer-bar span:nth-child(2){background:#9ba7a0}.explorer-bar span:nth-child(3){background:#38453e}.reader-board-fixed{position:sticky;top:0;z-index:3;flex:none;display:grid;gap:5px;padding-bottom:6px;background:var(--surface)}.reader-board-fixed .board-pane{width:min(100%,calc(100dvh - 245px));margin-inline:auto}.reader-board-fixed .analysis-bar__row{gap:3px;justify-content:space-between;flex-wrap:nowrap}.reader-board-fixed .analysis-bar__nav{gap:1px;padding:0;background:transparent}.reader-board-fixed .analysis-bar__nav .icon-button,.reader-board-fixed .analysis-bar__tools .icon-button,.reader-board-fixed .board-menu-button{width:31px;height:31px}.reader-board-fixed .analysis-bar__tools{gap:3px}.reader-board-fixed .eval-toggle{min-width:50px;padding:2px 5px}.move-nav__empty{min-width:64px;color:var(--muted);text-align:center;font-size:11px}.reader-tabs{flex:none;padding-inline:4px;background:var(--surface)}.reader-tabs button{flex:1;font-weight:600}.explorer-panel{display:flex;flex-direction:column;gap:10px;padding:10px;border:1px solid var(--border);border-radius:var(--radius);font-size:13px;overflow-wrap:anywhere}.explorer-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.explorer-source{min-height:34px;min-width:146px;padding:2px;flex:1 1 146px}.explorer-source .segmented__item{min-width:0;flex:1;padding:5px 9px;font-size:12px;white-space:nowrap}.explorer-search{min-height:34px;padding:0 9px;font-size:12px;white-space:nowrap}.explorer-filter-button{width:34px;height:34px;position:relative}.explorer-filter-count{position:absolute;right:-3px;top:-3px;min-width:15px;height:15px;border-radius:50%;background:var(--primary);color:#fff;font-size:10px;line-height:15px}.explorer-context,.explorer-filters__heading,.explorer-filters__actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}.explorer-context,.explorer-label,.explorer-muted,.explorer-empty{color:var(--muted);font-size:12px}.explorer-link{display:inline-flex;align-items:center;gap:4px;padding:2px 0;border:0;background:transparent;color:var(--primary-strong);cursor:pointer;font-size:12px;font-weight:650;text-align:left}.explorer-link:disabled{color:var(--muted)}.explorer-filters,.explorer-metadata{display:grid;gap:8px;padding:10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.explorer-period{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.explorer-period label,.explorer-metadata label{display:flex;align-items:center;gap:6px;color:var(--muted)}.explorer-period input,.explorer-metadata input,.explorer-metadata select{width:100%;min-width:0;padding:6px 8px;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface);color:var(--ink)}.explorer-chips{display:flex;flex-wrap:wrap;gap:5px}.explorer-chip{padding:5px 8px;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface);color:var(--ink-soft);cursor:pointer;font-size:12px}.explorer-chip--active{border-color:var(--primary);background:var(--primary-weak);color:var(--primary-strong)}.explorer-filters__actions{justify-content:flex-end}.explorer-filters__actions .cv-button,.explorer-metadata .cv-button{min-height:32px;padding:0 10px;font-size:12px}.explorer-error,.explorer-error-state{color:var(--danger)}.explorer-error-state{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;font-size:12px}.explorer-loading{color:var(--muted)}.explorer-stats,.explorer-section{display:grid;gap:7px;min-width:0}.explorer-section h3{margin:0;font-size:13px}.explorer-stats__total{color:var(--ink-soft)}.explorer-bar{height:9px;border-radius:4px}.explorer-stats__legend{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;color:var(--muted);font-size:11px}.explorer-stats__legend span{display:grid;gap:2px}.explorer-stats__legend strong{color:var(--ink);font-size:12px}.explorer-stats__legend span:last-child{text-align:right}.explorer-moves{width:100%;table-layout:fixed;border-collapse:collapse;font-size:11px;font-variant-numeric:tabular-nums}.explorer-moves th,.explorer-moves td{padding:5px 1px;text-align:right;border-bottom:1px solid var(--border);overflow:hidden;text-overflow:ellipsis}.explorer-moves th{color:var(--muted);font-size:10px;font-weight:500}.explorer-moves th:first-child,.explorer-moves td:first-child{text-align:left;width:19%}.explorer-move{border:0;background:transparent;color:var(--primary-strong);padding:2px 0;font-weight:700;cursor:pointer}.explorer-games{list-style:none;padding:0!important;margin:0}.explorer-game{display:flex;align-items:center;justify-content:space-between;gap:6px;border-bottom:1px solid var(--border);padding:7px 0}.explorer-game__info{display:grid;min-width:0;gap:3px}.explorer-game__info strong{font-size:12px;overflow-wrap:anywhere}.explorer-game__info span{color:var(--muted);font-size:11px}.explorer-game__actions{display:flex;flex:none;gap:3px}.explorer-game__actions .icon-button{width:30px;height:30px}.explorer-panel button:focus-visible,.explorer-panel input:focus-visible,.explorer-panel select:focus-visible,.explorer-panel a:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media(max-width:600px){.reader-board-fixed .board-pane{width:min(100%,calc(100dvh - 270px))}}.reader-mobile-modes,.reader-mobile-short,.reader-current-diagram{display:none}@media(max-width:800px){.reader-mobile-modes{display:flex;flex:1 1 auto;min-width:0}.reader-mobile-modes button{flex:1;min-width:0;min-height:44px;padding:4px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--ink);font:inherit}.reader-mobile-modes button[aria-pressed=true]{border-bottom-color:var(--primary);font-weight:700}.reader-options{flex-wrap:wrap}.reader-options>.cv-button{min-height:44px}.workspace--reader .reader-split--together{display:flex!important}.workspace--reader .reader-split--together .reader-pane,.workspace--reader .reader-split--together .board-column{min-width:0;min-height:0}.workspace--reader .reader-split--together .split-handle{display:block;flex:0 0 16px}.workspace--reader .reader-split--book .split-handle,.workspace--reader .reader-split--board .split-handle{display:none}.reader-board-fixed .analysis-bar__nav .icon-button,.reader-board-fixed .analysis-bar__tools .icon-button,.reader-board-fixed .board-menu-button{min-width:44px;min-height:44px}.reader-board-fixed .analysis-bar__row{flex-wrap:wrap}.book-reader .pdf-reader__canvas-wrap{touch-action:pan-x pan-y pinch-zoom;overscroll-behavior:contain}.reader-pane{padding-bottom:max(8px,env(safe-area-inset-bottom))}.reader-split--book .reader-current-diagram{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:44px;padding:8px 12px;border:0;background:var(--surface);color:var(--ink);font:inherit;font-weight:600}}@media(max-width:800px)and (orientation:portrait){.workspace--reader .reader-split--together{flex-direction:column}.workspace--reader .reader-split--together .board-column{order:-2;flex:0 1 var(--mobile-board-ratio, 55%);overflow-y:auto}.workspace--reader .reader-split--together .split-handle{order:-1;width:auto;margin:2px 20%;cursor:row-resize}.workspace--reader .reader-split--together .reader-pane{flex:1 1 45%;height:auto}.workspace--reader .reader-split--together .reader-board-fixed .board-pane{width:min(100%,27dvh)}.reader-pane .pane-heading__title h1{font-size:14px;line-height:1.2}.reader-pane .pane-heading__title .eyebrow,.reader-pane .pane-heading__meta .status-badge,.reader-pane .pane-heading__meta .toggle-switch{display:none}}@media(max-width:800px)and (orientation:landscape){.workspace--reader .reader-split--together{flex-direction:row}.workspace--reader .reader-split--together .reader-pane,.workspace--reader .reader-split--together .board-column{flex:1 1 0;height:100%}}@media(max-width:800px)and (max-height:600px){.reader-mobile-short{display:block;margin:0;font-size:12px;color:var(--muted)}}.reader-board-extra{display:flex;flex-direction:column;gap:10px;min-width:0}.reader-together-header,.reader-together-extra-controls,.reader-together-book-title{display:none}@media(max-width:800px){body.reader-together .cv-shell{height:100dvh}body.reader-together .side-nav{display:flex;flex-direction:row;flex-wrap:nowrap;gap:4px;padding:0 6px;overflow-x:auto}body.reader-together .side-nav .brand{display:none}body.reader-together .side-nav__group{flex:1 0 auto}body.reader-together .side-nav__group .side-nav__item{width:44px;justify-content:center;font-size:0;gap:0}body.reader-together .side-nav__footer{flex:0 0 auto}body.reader-together .cv-shell__content{padding:0 4px env(safe-area-inset-bottom);overflow:hidden}body.reader-together .workspace--reader{gap:0}body.reader-together .reader-options{min-height:44px;gap:2px}body.reader-together .reader-options>.cv-button{display:none}body.reader-together .reader-options>details{flex:none;font-size:12px}.reader-split--together .reader-together-header{display:flex;align-items:center;justify-content:space-between;min-height:40px;padding-left:8px;font-size:14px;font-weight:600}.reader-together-header button,.reader-together-extra-heading button{display:grid;place-items:center;min-width:44px;min-height:40px;border:0;background:transparent;color:inherit;cursor:pointer}.reader-split--together .reader-board-fixed>.board-top-bar,.reader-split--together .reader-board-fixed>.analysis-bar{display:none}.workspace--reader .reader-split--together .board-column{position:relative;overflow:visible;gap:0}.reader-split--together .reader-board-fixed{position:static;display:flex;flex-direction:column;align-items:stretch;gap:0;height:100%;min-height:0;padding:0}.workspace--reader .reader-split--together .reader-board-fixed .board-pane{flex:0 1 auto;width:auto;height:calc(100% - 40px);max-width:100%;min-height:0;aspect-ratio:1;padding:0;border:0;border-radius:0;box-shadow:none}.reader-split--together .board-frame{width:100%;max-height:100%}.reader-split--together .reader-board-extra{display:none}.reader-split--together .reader-board-extra--open{display:block;position:fixed;z-index:100;top:max(8px,env(safe-area-inset-top));right:8px;width:min(360px,calc(100vw - 16px));max-height:calc(100dvh - 16px - env(safe-area-inset-bottom));overflow:auto;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:0 8px 28px #0005}.reader-split--together .reader-together-extra-controls{display:grid;gap:8px}.reader-together-extra-heading{display:flex;align-items:center;justify-content:space-between}.reader-split--together .reader-together-book-title{display:flex;flex:none;justify-content:space-between;gap:8px;align-items:center;min-height:28px;padding:0 8px;font-size:13px}.reader-together-book-title span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reader-together-book-title span:last-child{flex:none}.reader-split--together .reader-pane{gap:0;padding:0;border:0;border-radius:0;box-shadow:none}.reader-split--together .reader-pane>.pane-heading,.reader-split--together .reader-processing{display:none}.reader-split--together .pdf-reader__canvas-wrap{border:0;border-radius:0}}@media(max-width:800px)and (orientation:portrait){.workspace--reader .reader-split--together .split-handle{position:relative;flex-basis:18px;width:100%;margin:0;background:transparent}.reader-split--together .split-handle:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:var(--border)}.reader-split--together .split-handle:after{content:"";position:absolute;top:calc(50% - 2px);left:calc(50% - 18px);width:36px;height:4px;border-radius:4px;background:var(--muted)}.workspace--reader .reader-split--together .reader-pane{min-height:100px}}.position-search-tabs{display:flex;gap:1rem;padding:.7rem 1rem;border-bottom:1px solid var(--border, #d9e0e5)}.position-search-tabs button{border:0;background:transparent;color:inherit;padding:.55rem .2rem;cursor:pointer}.position-search-tabs button[aria-selected=true]{color:var(--primary, #367e5e);border-bottom:2px solid currentColor}.position-search{display:grid;grid-template-columns:minmax(260px,420px) minmax(0,1fr);gap:2rem;padding:1rem;align-items:start}.position-search__editor{position:sticky;top:1rem;min-width:0}.position-search__editor .board-pane{padding:0;min-height:0}.position-search__editor .board-frame{max-width:100%}.position-search__actions{display:flex;flex-wrap:wrap;gap:.45rem;margin:.6rem 0}.position-search__fen{display:grid;gap:.3rem;margin-top:.8rem}.position-search__fen input{width:100%;min-width:0;padding:.5rem;border:1px solid var(--border, #d9e0e5);border-radius:6px;background:transparent;color:inherit}.position-search details{margin:.7rem 0}.position-search details label{display:block;margin:.6rem 0}.position-search__results{min-width:0}.position-results__group{margin:1.5rem 0 2rem}.position-result{display:grid;grid-template-columns:72px minmax(0,1fr);gap:1rem;padding:1rem 0;border-bottom:1px solid var(--border, #d9e0e5)}.position-result__cover{width:72px;aspect-ratio:3/4;overflow:hidden}.position-result__cover .book-cover{width:100%;height:100%}.notation-table{border-radius:var(--radius-sm)}.notation-row{display:grid;grid-template-columns:3.5em minmax(0,1fr) minmax(0,1fr);align-items:center;min-height:32px}.notation-group:nth-child(odd)>.notation-row{background:var(--surface-muted, var(--bg))}.notation-number{padding:4px 8px;color:var(--muted);font-variant-numeric:tabular-nums}.notation-cell{align-self:stretch;border:0;border-radius:4px;padding:5px 9px;background:transparent;color:var(--ink);text-align:left;font:inherit;cursor:pointer}.notation-cell:hover,.notation-cell--active{background:var(--primary-weak);color:var(--primary-strong)}.notation-cell:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.notation-empty{color:var(--muted);font-size:13px}.variation-list{display:grid;gap:4px;padding:4px 8px;font-size:13px}.variation-branch{margin:4px 0 4px 10px;padding-left:8px;border-left:2px solid var(--border)}.variation-branch>summary{color:var(--muted);cursor:pointer}.variation-node{display:inline;line-height:2}.variation-line{overflow-wrap:anywhere}.variation-branch .variation-branch{margin-left:min(10px,2vw)}.variation-actions{display:flex;gap:6px;flex-wrap:wrap}.variation-actions button{border:0;background:transparent;color:var(--muted);font:inherit;cursor:pointer}.engine-multipv{display:flex;align-items:center;gap:5px;margin-left:auto;white-space:nowrap;font-size:12px}.engine-multipv button{min-width:32px;min-height:32px;border:1px solid var(--border);border-radius:5px;background:var(--surface);color:var(--ink);cursor:pointer}.engine-multipv button:disabled{opacity:.45;cursor:default}.engine-panel__lines .analysis-line{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;padding:3px 0;border:0;background:transparent}.engine-panel__lines .analysis-line header{display:flex;gap:6px}.engine-panel__lines .analysis-line__pv{flex:1 1 160px;min-width:0;margin:0;overflow-wrap:anywhere}.engine-panel__lines .notation-cell{padding:2px 3px}.library-view .book-list--rows{max-height:none;overflow:visible;display:grid;gap:6px}.library-list-item{position:relative;display:flex;align-items:center;min-width:0;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.library-list-item:hover,.library-list-item--active{border-color:var(--primary);background:var(--primary-weak)}.library-list-item__open{display:grid;grid-template-columns:46px minmax(0,1fr) minmax(140px,190px);align-items:center;gap:14px;flex:1;min-width:0;min-height:74px;padding:5px 10px;border:0;background:transparent;color:var(--ink);text-align:left;cursor:pointer;font:inherit}.library-list-item__open:focus-visible,.library-list-menu summary:focus-visible,.library-list-menu button:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.library-list-item__open>.book-cover{width:46px;height:62px;aspect-ratio:auto}.library-list-item__open .book-cover__placeholder{padding:2px;font-size:8px;line-height:1.1;max-height:100%;overflow:hidden}.library-list-item__identity{min-width:0;display:grid;gap:4px}.library-list-item__identity strong{display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:14px;line-height:1.25}.library-list-item__identity>span,.library-list-progress,.library-list-progress__empty{color:var(--muted);font-size:12px;line-height:1.3}.library-list-progress{width:100%;min-width:0}.library-list-menu{position:relative;flex:none;margin-right:6px}.library-list-menu summary{display:grid;place-items:center;width:40px;height:40px;list-style:none;cursor:pointer;border-radius:6px}.library-list-menu summary::-webkit-details-marker{display:none}.library-list-menu summary:hover{background:var(--border)}.library-list-menu__content{position:absolute;z-index:20;top:100%;right:0;display:grid;width:220px;padding:5px;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:0 8px 24px #0002}.library-list-menu__content button{padding:10px;border:0;border-radius:5px;text-align:left;color:var(--ink);background:transparent;font:inherit;cursor:pointer}.library-list-menu__content button:hover{background:var(--primary-weak)}.library-list-menu__content button:disabled{opacity:.5;cursor:default}.library-recent{min-height:104px;gap:14px;margin:0;padding:10px 14px;background:var(--surface);border-left:3px solid var(--primary)}:root[data-theme=dark] .library-recent{background:var(--surface)}.library-recent>.book-cover{width:62px;height:82px;flex-basis:62px;aspect-ratio:auto}.library-recent__body{max-width:460px}.library-recent__body h2{font-size:16px;margin:3px 0}.library-recent__body p{margin:0 0 4px;font-size:12px}.library-recent>.cv-button{margin-left:auto}@media(max-width:600px){.library-list-item__open{grid-template-columns:44px minmax(0,1fr);gap:2px 10px;padding:6px}.library-list-item__open>.book-cover{width:44px;height:60px;grid-row:span 2}.library-list-progress{grid-column:2}.library-list-menu summary{width:44px;height:44px}.library-recent{align-items:center;flex-wrap:wrap}.library-recent>.book-cover{width:54px;height:72px;flex-basis:54px}.library-recent>.cv-button{margin-left:auto}}@media(max-width:400px){.library-header{flex-wrap:wrap;gap:10px}.library-header__title{flex:1 1 100%}.library-add{max-width:100%}}@media(max-width:600px)and (max-height:700px){.cv-shell:has(.library-view) .side-nav{display:flex;flex-direction:row;flex-wrap:nowrap;gap:4px;padding:0 6px}.cv-shell:has(.library-view) .side-nav .brand{display:none}.cv-shell:has(.library-view) .side-nav__group{flex:1 1 auto;min-width:0}.cv-shell:has(.library-view) .side-nav__group .side-nav__item,.cv-shell:has(.library-view) .side-nav__footer>.side-nav__item{flex:none;width:44px;min-height:44px;justify-content:center;font-size:0;gap:0}.cv-shell:has(.library-view) .side-nav__footer{flex:none}.cv-shell__content:has(>.library-view)>.position-search-tabs{padding:4px 8px}.cv-shell__content:has(>.library-view)>.position-search-tabs button{padding:5px 2px}.cv-shell__content>.library-view{gap:6px}.library-view>.library-recent .library-recent__body>span{white-space:nowrap;font-size:10px}.library-view>.library-recent .library-recent__body h2{font-size:13px}.library-header{flex-wrap:nowrap;gap:6px}.library-header__title{flex:1 1 auto;min-width:0}.library-header__title h1{font-size:15px;white-space:nowrap}.library-header__title p{font-size:10px;white-space:nowrap}.library-header>.cv-button{flex:none;padding:0 6px;font-size:11px}}.position-result p{margin:.3rem 0}.position-result__pages{display:flex;flex-wrap:wrap;gap:.35rem}@media(max-width:760px){.position-search{grid-template-columns:minmax(0,1fr);gap:1rem}.position-search__editor{position:static}}.position-search{max-width:1560px;margin:0 auto;grid-template-columns:minmax(300px,460px) minmax(0,1fr);gap:clamp(24px,3vw,48px);padding:24px clamp(16px,2vw,32px) 48px}.position-search{max-width:none;margin:0;padding:clamp(20px,2.3vw,36px);column-gap:clamp(24px,3vw,48px);row-gap:20px}.position-search__header{grid-column:1 / -1}.position-search h2{margin:0 0 16px;font-size:20px}.position-search__editor .board-pane{gap:10px}.position-search__editor .board-frame{width:min(100%,440px)}.position-search__editor .board-editor{padding:0;border:0;background:transparent}.position-search__editor .board-editor__palette{max-width:none;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.position-search__editor .board-editor__piece{min-height:40px;aspect-ratio:auto}.position-search__toolbar{display:flex;align-items:center;gap:4px;margin:8px 0 12px;flex-wrap:wrap}.position-search__toolbar .icon-button{width:40px;height:40px}.position-search__start,.position-search__link,.position-result__more{border:0;background:none;color:var(--primary);cursor:pointer;font:inherit}.position-search__start{margin-left:auto;font-size:12px}.position-search__submit{width:100%;min-height:44px;justify-content:center;gap:8px}.position-search__secondary{display:flex;gap:20px;padding:13px 0 0}.position-search__link{display:inline-flex;align-items:center;gap:6px;font-weight:600}.position-search__filter-dot{width:7px;height:7px;border-radius:50%;background:var(--primary)}.position-search__disclosure{padding:12px;margin-top:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.position-search__disclosure label{display:block;margin:5px 0}.position-search__disclosure select{max-width:100%;padding:6px;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface);color:var(--ink)}.position-search__disclosure input[type=checkbox]{accent-color:var(--primary)}.position-search__results h2{margin-bottom:6px}.position-results__summary{color:var(--muted);font-size:13px}.position-results__stale{padding:10px 12px;background:var(--surface-muted);border-radius:8px}.position-search__empty{display:flex;align-items:center;gap:12px;color:var(--muted);padding:24px 0}.position-results__heading{display:flex;gap:10px;align-items:baseline;margin-bottom:12px}.position-results__heading h3{margin:0;font-size:16px}.position-results__heading span{color:var(--muted);font-size:13px}.position-results__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr));gap:12px}.position-result{grid-template-columns:72px minmax(0,1fr);margin:0;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.position-result__body{min-width:0;overflow-wrap:anywhere}.position-result__body strong{display:block;line-height:1.35}.position-result__body p{color:var(--muted);font-size:12px}.position-result__pages{margin-top:8px;gap:5px}.position-result__occurrence{display:inline-flex;align-items:center;gap:3px;border:1px solid var(--border);border-radius:6px;padding:2px 4px 2px 7px}.position-result__page{background:transparent;color:var(--ink);cursor:pointer;font:inherit;font-size:12px;padding:6px 9px}.position-result__more{display:block;margin:8px 0 0;padding:2px 0;font-size:12px}.position-preview-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#0006;display:grid;place-items:center;padding:16px}.position-preview-dialog{width:min(100%,620px);max-height:90dvh;overflow:auto;padding:20px;border-radius:12px;background:var(--surface);color:var(--ink);box-shadow:0 16px 44px #00000038}.position-preview__header{display:flex;justify-content:space-between;gap:12px}.position-preview__header p{margin:4px 0 12px;color:var(--muted)}.position-preview__boards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:16px;margin:8px 0 16px}.position-preview__boards span{display:block;margin-bottom:6px;font-size:12px;color:var(--muted)}.position-preview__boards .board-pane{padding:0;gap:0}.position-preview__boards .board-frame{width:100%}@media(max-height:850px){.position-search__editor{position:static}}@media(max-width:900px){.position-search{grid-template-columns:minmax(0,1fr);max-width:700px}.position-search__editor{position:static;max-width:460px}}@media(max-width:400px){.position-search__editor .board-editor__palette{grid-template-columns:repeat(6,minmax(0,1fr))}.position-search__editor .board-editor__piece{min-height:44px}}@media(min-width:901px){.reader-split{--reader-header-height: 54px;--reader-panel-padding: 14px}.reader-split>.reader-pane,.reader-split>.board-column{min-height:0;padding:var(--reader-panel-padding);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.reader-pane>.pane-heading,.reader-board-fixed>.board-top-bar{min-height:var(--reader-header-height);align-items:center}.reader-pane .pane-heading__title{min-width:0}.reader-pane .pane-heading__title>div{min-width:0}.reader-pane .pane-heading__title h1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reader-board-fixed{gap:10px}.reader-split>.split-handle{position:relative;width:10px;margin:0;border-radius:0;background:transparent}.reader-split>.split-handle:before{content:"";position:absolute;inset:0 auto 0 50%;width:1px;background:var(--border)}.reader-split>.split-handle:hover:before{background:var(--border-strong)}.reader-split .board-column,.reader-split .pdf-reader__canvas-wrap{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;scrollbar-gutter:stable}.reader-split .board-column::-webkit-scrollbar,.reader-split .pdf-reader__canvas-wrap::-webkit-scrollbar{width:6px;height:6px}.reader-split .board-column::-webkit-scrollbar-track,.reader-split .pdf-reader__canvas-wrap::-webkit-scrollbar-track{background:transparent}.reader-split .board-column::-webkit-scrollbar-thumb,.reader-split .pdf-reader__canvas-wrap::-webkit-scrollbar-thumb{border-radius:6px;background:var(--border-strong)}.reader-split .board-column::-webkit-scrollbar-thumb:hover,.reader-split .pdf-reader__canvas-wrap::-webkit-scrollbar-thumb:hover{background:var(--muted)}}.auth-lichess{display:grid;gap:10px;margin:16px 0;padding-top:16px;border-top:1px solid var(--border)}.auth-lichess label{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:var(--ink)}.auth-lichess input{accent-color:var(--primary)}.profile-page{height:100%;overflow-y:auto;padding:16px clamp(8px,3vw,40px) 48px;color:var(--ink)}.profile-page__header{max-width:1120px;margin:0 auto 28px}.profile-page__header h1{margin:0 0 6px;font-size:26px}.profile-page__header p{margin:0;color:var(--muted)}.profile-page__layout{display:grid;grid-template-columns:190px minmax(0,1fr);align-items:start;gap:32px;max-width:1120px;margin:auto}.profile-navigation{display:flex;flex-direction:column;gap:4px}.profile-navigation a{display:block;padding:12px;border-radius:var(--radius-sm);color:var(--ink);text-decoration:none}.profile-navigation a:hover,.profile-navigation a[aria-current=page]{background:var(--surface-muted);font-weight:600}.profile-navigation a:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.profile-content{display:grid;gap:16px;min-width:0;max-width:820px}.profile-card{min-width:0;padding:22px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.profile-card h2,.profile-card h3{margin:0 0 12px;font-size:18px}.profile-card p{line-height:1.5}.profile-card .auth-modal__form{max-width:520px}.profile-card .account-panel__toggle{font-size:14px}.profile-card .account-panel__toggle strong{color:var(--ink)}.profile-card .account-panel__toggle small{color:var(--muted);font-size:13px}.profile-card .account-panel__usage,.profile-card .account-panel__limits{gap:10px}.profile-card .account-panel__limits{color:var(--muted);border-color:var(--border)}.profile-danger{display:grid;gap:12px}.profile-danger>strong{color:var(--danger);font-size:18px}.profile-danger>p{margin:0}.profile-danger .account-panel__confirm{max-width:360px;font-size:14px}.profile-danger .account-panel__confirm input{color:var(--ink);background:var(--surface);border-color:var(--border)}.profile-danger .account-panel__delete{justify-self:start}.profile-identity{font-weight:600}@media(max-width:720px){.profile-page{padding:12px 2px 32px}.profile-page__layout{grid-template-columns:minmax(0,1fr);gap:18px}.profile-navigation{flex-direction:row;overflow-x:auto}.profile-navigation a{flex:0 0 auto;min-height:44px}.profile-card{padding:16px}}.profile-plan{padding:16px 0;border-top:1px solid var(--border)}.profile-plan button{min-height:40px;padding:6px 12px;margin:0 8px 6px 0;color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer}.profile-plan button[aria-pressed=true]{border-color:var(--primary);color:var(--primary);font-weight:600}.profile-plan__current{display:inline-block;margin-left:12px;color:var(--muted);font-size:13px}@media(max-width:720px){.profile-navigation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}.profile-navigation a{text-align:center;padding:12px 4px}.profile-card .account-panel__usage li{flex-wrap:wrap}}.subscription-admin-header{max-width:1300px;margin:0 auto 24px}.subscription-admin-header h2{margin:0 0 8px;font-size:24px}.subscription-admin-header p,.plan-help,.plan-editor__head p{color:var(--muted);line-height:1.5}.subscription-admin-tabs,.plan-selector,.plan-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.subscription-admin-tabs{margin-top:20px;border-bottom:1px solid var(--border)}.subscription-admin-tabs button,.plan-selector button{min-height:42px;padding:8px 16px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink);cursor:pointer}.subscription-admin-tabs button[aria-pressed=true],.plan-selector button[aria-pressed=true]{background:var(--surface-muted);color:var(--primary);font-weight:600}.plan-editor{max-width:1300px;margin:auto}.plan-selector{margin-bottom:18px}.plan-editor__head{display:flex;justify-content:space-between;align-items:start;flex-wrap:wrap;gap:16px}.plan-editor__head h3{margin:0;font-size:20px}.plan-editor__head p{margin:5px 0;font-size:13px}.plan-help{font-size:13px;margin:8px 0 18px}.plan-editor__grid{display:grid;grid-template-columns:minmax(0,760px) minmax(240px,320px);gap:20px;align-items:start}.plan-editor__form{display:grid;gap:16px;min-width:0}.plan-card,.plan-preview{padding:22px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:0}.plan-card h3,.plan-preview h3{margin:0 0 18px;font-size:17px}.plan-card>label,.plan-limit>label:first-child,.plan-price>label:not(.plan-switch){display:grid;gap:7px;margin:0 0 16px;font-size:14px;font-weight:600}.plan-card input:not([type=checkbox]),.plan-card textarea,.plan-card select,.subscription-user-filter select{width:100%;min-width:0;min-height:40px;padding:8px 11px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font:inherit}.plan-card textarea{min-height:85px;resize:vertical}.plan-card small,.plan-preview p,.plan-help{color:var(--muted);font-size:12px;font-weight:400}.plan-card .plan-error{color:var(--danger)}.plan-switch{display:flex;align-items:flex-start;gap:10px;margin:10px 0;line-height:1.4;font-size:14px}.plan-switch input{width:18px;height:18px;accent-color:var(--primary);flex:0 0 auto}.plan-switch span{display:grid;gap:4px}.plan-limit{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:end;border-top:1px solid var(--border);padding:16px 0 0}.plan-storage{display:grid;grid-template-columns:minmax(0,1fr) 80px;gap:8px}.plan-prices{display:grid;gap:8px}.plan-price{display:grid;grid-template-columns:100px minmax(120px,1fr) minmax(120px,1fr) minmax(150px,1fr);gap:12px;align-items:center;padding:15px 0;border-top:1px solid var(--border)}.plan-price>label:not(.plan-switch){margin:0}.plan-price>label:last-child{grid-column:2 / -1}.plan-price>span{font-size:13px;color:var(--muted)}.plan-preview{position:sticky;top:12px;background:var(--surface-muted)}.plan-preview ul{padding-left:20px;line-height:1.8;font-size:14px}.plan-history{margin-top:16px;max-width:760px}.plan-history summary{cursor:pointer;font-weight:600}.plan-history article{border-top:1px solid var(--border);padding:12px 0;font-size:13px}.plan-publish{display:block;max-width:600px}.plan-publish li{margin:8px 0}.subscription-user-filter{display:flex;align-items:center;gap:10px;margin-bottom:16px}.subscription-user-filter select{width:auto}@media(max-width:1050px){.plan-editor__grid{grid-template-columns:minmax(0,1fr)}.plan-preview{position:static}.plan-price{grid-template-columns:repeat(2,minmax(0,1fr))}.plan-price>label:last-child{grid-column:auto}}@media(max-width:600px){.plan-card,.plan-preview{padding:16px}.plan-limit,.plan-price{grid-template-columns:minmax(0,1fr);gap:8px}.plan-price>label:last-child{grid-column:auto}.plan-actions{width:100%}.plan-actions button{flex:1 1 auto}.admin-panel__table{display:block;overflow-x:auto}}.admin-panel{height:100%;overflow-y:auto}@media(max-width:720px){.admin-panel{height:auto;overflow:visible}}.auth-modal--reset{width:min(100%,460px);padding:24px;gap:16px;max-height:calc(100dvh - 36px);overflow-y:auto}.password-reset__intro{margin:0;color:var(--muted);font-size:14px;line-height:1.5}.password-reset__methods{display:flex;gap:4px;padding:4px;border-radius:var(--radius-sm);background:var(--surface-muted)}.password-reset__methods button{flex:1;min-width:0;min-height:40px;padding:8px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--muted);font-size:13px;font-weight:600;cursor:pointer}.password-reset__methods button[aria-pressed=true]{background:var(--surface);color:var(--ink)}.password-reset__form{display:grid;gap:14px}.password-reset__form .auth-modal__field select{width:100%;min-height:46px}.password-reset__form input,.password-reset__form select{width:100%;min-width:0}.password-reset__form select:focus-visible,.password-reset__form button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.password-reset__password{display:flex;align-items:center;position:relative}.password-reset__password input{padding-right:52px}.password-reset__password button{position:absolute;right:5px;width:40px;height:40px;display:grid;place-items:center;color:var(--muted)}.password-reset__hint,.password-reset__error{font-size:12px;font-weight:400;line-height:1.4}.password-reset__hint{color:var(--muted)}.password-reset__error{color:var(--danger)}.password-reset__alert{margin:0;padding:10px 12px;border-radius:var(--radius-sm);color:var(--danger);background:var(--danger-weak);font-size:13px;line-height:1.45}.password-reset__primary{width:100%;min-height:46px;justify-content:center}.password-reset__back{justify-self:center;min-height:40px;padding:6px 12px;border:0;background:transparent;color:var(--muted);cursor:pointer}.password-reset__back:hover{color:var(--ink)}.password-reset__success{display:grid;gap:14px}.password-reset__success h3,.password-reset__success p{margin:0}.password-reset__success p{color:var(--muted);font-size:14px;line-height:1.5}.password-reset__success button{justify-content:center;min-height:46px}@media(max-width:480px){.auth-modal--reset{padding:20px}}body.auth-dialog-open .cv-shell__content,body.auth-dialog-open .cv-shell__nav{overflow:hidden}.recovery-code-display pre{white-space:pre-wrap;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;padding:14px;border-radius:var(--radius-sm);background:var(--surface-muted);color:var(--ink)}.recovery-code-actions{display:flex;gap:8px;flex-wrap:wrap}.legal-page{flex:1;min-width:0;min-height:0;overflow-y:auto;padding:24px clamp(10px,3vw,40px) 48px;color:var(--ink)}.profile-page .legal-page{padding:0;overflow:visible}.legal-page__heading{max-width:1100px;margin:0 auto 26px}.legal-page__heading h1{margin:0 0 8px;font-size:26px}.legal-page__heading p{margin:0;color:var(--muted);line-height:1.5}.legal-page__layout{display:grid;grid-template-columns:minmax(185px,240px) minmax(0,1fr);gap:28px;align-items:start;max-width:1100px;margin:auto}.legal-navigation{display:flex;flex-direction:column;gap:4px}.legal-navigation a{padding:12px;border-radius:var(--radius-sm);color:var(--ink);text-decoration:none;line-height:1.4;font-size:14px}.legal-navigation a[aria-current=page],.legal-navigation a:hover{background:var(--surface-muted);font-weight:600}.legal-navigation a:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.legal-document{max-width:900px;min-width:0;padding:clamp(20px,3vw,36px);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);overflow-wrap:anywhere}.legal-document__header{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;align-items:start}.legal-document__header h2{margin:0;font-size:22px;line-height:1.3}.legal-document__body{max-width:760px;margin-top:28px;font-size:16px;line-height:1.75}.legal-document__body p{margin:0 0 1.15em}.auth-lichess a{color:var(--primary)}@media(max-width:900px){.legal-page__layout{grid-template-columns:minmax(0,1fr);gap:18px}.legal-navigation{flex-direction:row;flex-wrap:wrap}.legal-navigation a{flex:1 1 160px}}@media(max-width:480px){.legal-page{padding:12px 2px 32px}.legal-page__heading h1{font-size:22px}.legal-document{padding:18px}.legal-document__header h2{font-size:19px}}@media print{body,.cv-shell,.cv-shell__main,.cv-shell__content,.profile-page,.profile-page__layout,.legal-page,.legal-page__layout{display:block!important;height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;padding:0!important;margin:0!important;background:#fff!important;color:#000!important}.cv-shell__nav,.profile-page__header,.profile-navigation,.legal-page__heading,.legal-navigation,.legal-document__print,.notification-toasts{display:none!important}.legal-document{border:0;padding:0;max-width:none;color:#000;background:#fff}.legal-document__body{max-width:none;color:#000}@page{margin:18mm}}.legal-page__heading h2{margin:0 0 8px;font-size:24px}.legal-document__header h3{margin:0;font-size:22px;line-height:1.3}@media(max-width:480px){.legal-page__heading h2{font-size:22px}.legal-document__header h3{font-size:19px}}.promo-admin{max-width:1250px;display:grid;gap:18px}.promo-heading,.promo-search,.promo-pagination{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.promo-heading{justify-content:space-between}.promo-heading h3{margin:0}.promo-form{display:grid;gap:14px;max-width:540px}.promo-form h3{margin:0}.promo-form label input[type=checkbox]{accent-color:var(--primary)}.promo-search input,.promo-search select{min-height:40px;padding:8px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink)}.promo-table-wrap{max-width:100%;overflow-x:auto}.promo-pagination button{min-height:36px;color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 12px}.promo-redeem{display:flex;flex-wrap:wrap;gap:12px;align-items:end}.promo-redeem label{flex:1 1 220px}.promo-redeem button{min-height:46px}.promo-limit{display:flex;gap:5px;align-items:center;font-size:12px;margin-top:5px}.promo-limit input{width:80px;min-height:32px;background:var(--surface);color:var(--ink);border:1px solid var(--border-strong);border-radius:var(--radius-sm)}.promo-admin .admin-panel__button,.promo-table-wrap td>button{color:var(--ink);background:var(--surface-muted);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:5px 9px;cursor:pointer}@media(max-width:720px){.promo-table-wrap{overflow:visible}.promo-table-wrap table,.promo-table-wrap tbody,.promo-table-wrap tr,.promo-table-wrap td{display:block;width:100%}.promo-table-wrap thead{display:none}.promo-table-wrap tr{margin:12px 0;padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm);overflow-wrap:anywhere}.promo-table-wrap td{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px}.promo-table-wrap td:before{content:attr(data-label);color:var(--muted);font-weight:600}}@media(min-width:721px){.promo-table-wrap table{table-layout:fixed;min-width:900px}.promo-table-wrap td{overflow-wrap:anywhere}}.auth-modal--account{position:relative;width:min(100%,410px);max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain;padding:24px;gap:14px}.auth-modal__identity{display:grid;justify-items:center;gap:5px;text-align:center}.auth-modal__close{position:absolute;top:12px;right:12px}.auth-modal__logo{width:60px;height:60px;object-fit:contain}.auth-modal__name{color:var(--ink);font-size:16px;font-weight:700}.auth-modal__identity h2{margin:0;color:var(--muted);font-size:14px;font-weight:500}.auth-modal__wide,.auth-modal__form>.cv-button{width:100%;min-height:46px;justify-content:center}.auth-modal__divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px}.auth-modal__divider:before,.auth-modal__divider:after{content:"";height:1px;flex:1;background:var(--border)}.auth-modal__field-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.auth-modal__field-head .account-panel__link{font-size:12px}.auth-modal__field .password-reset__password input{width:100%;min-width:0}.auth-modal__switch{text-align:center;color:var(--muted);font-size:13px}.auth-modal__legal{margin:0;color:var(--muted);font-size:12px;line-height:1.45;text-align:center}.auth-modal__legal a{color:var(--primary)}@media(max-width:480px),(max-height:700px){.auth-modal--account{padding:18px;gap:10px}.auth-modal__logo{width:46px;height:46px}}
