@import"https://fonts.googleapis.com/css2?family=Noto+Color+Emoji&display=swap";.engine-loader{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:16px;color:var(--text, #e8e8ee);background:#1416248c;border:1px solid rgba(120,140,200,.18);border-radius:10px;text-align:center;font-family:inherit;box-sizing:border-box}.engine-loader--inline{padding:10px 12px;gap:6px;font-size:13px}.engine-loader--block{padding:20px 18px;font-size:14px}.engine-loader__title{font-weight:600;font-size:1em;color:var(--text, #e8e8ee)}.engine-loader__title--error{color:#f4a4a4}.engine-loader__bar{width:100%;max-width:320px;height:8px;border-radius:6px;background:#ffffff14;overflow:hidden}.engine-loader__bar-fill{height:100%;background:linear-gradient(90deg,#4a8eff,#6aa3ff);border-radius:6px;transition:width .2s ease-out}.engine-loader__percent{font-variant-numeric:tabular-nums;font-size:.85em;color:var(--text-muted, #a9aebf)}.engine-loader__hint{font-size:.85em;color:var(--text-muted, #a9aebf);max-width:320px;line-height:1.35}.engine-loader__text{font-size:.95em;color:var(--text, #e8e8ee);max-width:360px;line-height:1.4}.engine-loader__retry{margin-top:4px;padding:8px 14px;border-radius:6px;border:1px solid rgba(120,140,200,.35);background:#4a8eff1f;color:#cfe0ff;cursor:pointer;font-size:.9em;font-weight:500;font-family:inherit;transition:background .12s ease,border-color .12s ease}.engine-loader__retry:hover{background:#4a8eff38;border-color:#a0b4e68c}.engine-loader__retry:active{background:#4a8eff4d}.saved-filters-dropdown{position:relative;display:inline-block;font-family:inherit}.saved-filters-dropdown .sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.saved-filters-dropdown__toggle{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;background:var(--bg-surface);border:1px solid var(--border-mid);border-radius:14px;color:var(--text-primary);font-family:inherit;font-size:12px;font-weight:500;line-height:1;cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease}.saved-filters-dropdown__toggle:hover{background:var(--bg-elevated);border-color:var(--border-strong)}.saved-filters-dropdown__toggle:focus-visible{outline:2px solid var(--accent-primary);outline-offset:1px}.saved-filters-dropdown[data-state=open] .saved-filters-dropdown__toggle{background:var(--accent-soft);border-color:var(--accent-primary);color:var(--text-primary)}.saved-filters-dropdown__popover{position:absolute;top:calc(100% + 6px);left:0;z-index:60;display:flex;flex-direction:column;box-sizing:border-box;width:320px;padding:0;background:var(--bg-surface);border:1px solid var(--border-mid);border-radius:8px;box-shadow:var(--shadow-lg);color:var(--text-primary);animation:saved-filters-fade-in .12s ease-out}@keyframes saved-filters-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.saved-filters-dropdown__search{position:sticky;top:0;z-index:2;box-sizing:border-box;width:100%;padding:10px 12px;background:var(--bg-surface);border:0;border-bottom:1px solid var(--border-subtle);border-radius:0;color:var(--text-primary);font-family:inherit;font-size:13px;line-height:1.2;outline:none}.saved-filters-dropdown__search::placeholder{color:var(--text-muted)}.saved-filters-dropdown__search:focus{border-bottom-color:var(--accent-primary);box-shadow:inset 0 -1px 0 0 var(--accent-primary)}.saved-filters-dropdown__save-row{flex-shrink:0;padding:8px 10px;background:var(--ov-white-03);border-bottom:1px solid var(--border-subtle)}.saved-filters-dropdown__save-btn{display:inline-flex;align-items:center;gap:6px;width:100%;height:32px;padding:0 10px;background:transparent;border:1px dashed var(--border-mid);border-radius:6px;color:var(--text-secondary);font-family:inherit;font-size:12px;font-weight:500;cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease}.saved-filters-dropdown__save-btn:before{content:"+";font-size:14px;font-weight:700;line-height:1}.saved-filters-dropdown__save-btn:hover{background:var(--accent-soft);border-color:var(--accent-primary);border-style:solid;color:var(--text-primary)}.saved-filters-dropdown__save-btn:focus-visible{outline:2px solid var(--accent-primary);outline-offset:1px}.saved-filters-dropdown__save-form{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.saved-filters-dropdown__save-input{flex:1 1 140px;min-width:0;height:32px;padding:0 10px;background:var(--bg-input);border:1px solid var(--border-mid);border-radius:6px;color:var(--text-primary);font-family:inherit;font-size:12px;outline:none}.saved-filters-dropdown__save-input::placeholder{color:var(--text-muted)}.saved-filters-dropdown__save-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-soft)}.saved-filters-dropdown__save-input[aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 2px var(--danger-soft)}.saved-filters-dropdown__save-confirm,.saved-filters-dropdown__save-cancel{flex-shrink:0;height:32px;padding:0 10px;border-radius:6px;font-family:inherit;font-size:12px;font-weight:500;cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease,opacity .12s ease}.saved-filters-dropdown__save-confirm{background:var(--accent-primary);border:1px solid var(--accent-primary);color:var(--text-on-accent)}.saved-filters-dropdown__save-confirm:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.saved-filters-dropdown__save-confirm:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.saved-filters-dropdown__save-confirm:disabled{opacity:.45;cursor:not-allowed}.saved-filters-dropdown__save-cancel{background:transparent;border:1px solid var(--border-mid);color:var(--text-secondary)}.saved-filters-dropdown__save-cancel:hover{background:var(--ov-white-06);border-color:var(--border-strong);color:var(--text-primary)}.saved-filters-dropdown__save-cancel:focus-visible{outline:2px solid var(--accent-primary);outline-offset:1px}.saved-filters-dropdown__save-error{flex-basis:100%;margin-top:2px;color:var(--danger);font-size:11px;line-height:1.3}.saved-filters-dropdown__loading,.saved-filters-dropdown__empty{padding:18px 16px;color:var(--text-muted);font-size:12px;text-align:center;line-height:1.4}.saved-filters-dropdown__empty{padding:24px 16px}.saved-filters-dropdown__list{flex:1 1 auto;margin:0;padding:4px 0;list-style:none;overflow:visible}.saved-filters-dropdown__item{position:relative;display:flex;align-items:stretch;margin:0;padding:0}.saved-filters-dropdown__item:hover,.saved-filters-dropdown__item:focus-within{background:var(--ov-white-06)}.saved-filters-dropdown__item--active{background:var(--accent-soft)}.saved-filters-dropdown__item--active:hover,.saved-filters-dropdown__item--active:focus-within{background:var(--accent-soft-strong)}.saved-filters-dropdown__item-name{flex:1 1 auto;display:inline-flex;align-items:center;gap:6px;min-width:0;height:36px;padding:0 10px 0 12px;background:transparent;border:0;color:var(--text-primary);font-family:inherit;font-size:13px;font-weight:400;line-height:1.2;text-align:left;cursor:pointer}.saved-filters-dropdown__item-name:focus-visible{outline:2px solid var(--accent-primary);outline-offset:-2px;border-radius:4px}.saved-filters-dropdown__item-check{flex-shrink:0;width:14px;color:var(--accent-primary);font-size:13px;font-weight:700;line-height:1;text-align:center}.saved-filters-dropdown__item--active .saved-filters-dropdown__item-name{font-weight:500}.saved-filters-dropdown__item-text{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.saved-filters-dropdown__item-kebab{flex-shrink:0;width:28px;height:36px;padding:0;background:transparent;border:0;color:var(--text-muted);font-family:inherit;font-size:18px;line-height:1;cursor:pointer;opacity:0;transition:opacity .12s ease,color .12s ease,background-color .12s ease}.saved-filters-dropdown__item:hover .saved-filters-dropdown__item-kebab,.saved-filters-dropdown__item:focus-within .saved-filters-dropdown__item-kebab,.saved-filters-dropdown__item-kebab[aria-expanded=true]{opacity:1}.saved-filters-dropdown__item-kebab:hover{background:var(--ov-white-10);color:var(--text-primary)}.saved-filters-dropdown__item-kebab:focus-visible{outline:2px solid var(--accent-primary);outline-offset:-2px;opacity:1}.saved-filters-dropdown__item:has(.saved-filters-dropdown__item-kebab[aria-expanded=true]){z-index:5}.saved-filters-dropdown__kebab-menu{position:absolute;top:100%;right:6px;z-index:20;min-width:180px;margin-top:2px;padding:4px 0;background:var(--bg-elevated);border:1px solid var(--border-mid);border-radius:6px;box-shadow:var(--shadow-md);animation:saved-filters-fade-in .1s ease-out}.saved-filters-dropdown__kebab-item{display:block;width:100%;padding:8px 12px;background:transparent;border:0;color:var(--text-primary);font-family:inherit;font-size:12px;font-weight:400;line-height:1.2;text-align:left;cursor:pointer;transition:background-color .12s ease,color .12s ease}.saved-filters-dropdown__kebab-item:hover{background:var(--accent-soft)}.saved-filters-dropdown__kebab-item:focus-visible{outline:2px solid var(--accent-primary);outline-offset:-2px}.saved-filters-dropdown__kebab-item:last-child{color:var(--danger)}.saved-filters-dropdown__kebab-item:last-child:hover{background:var(--danger-soft)}.saved-filters-dropdown__rename-form{flex:1 1 auto;display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px 6px 12px}.saved-filters-dropdown__rename-input{flex:1 1 120px;min-width:0;height:30px;padding:0 8px;background:var(--bg-input);border:1px solid var(--border-mid);border-radius:5px;color:var(--text-primary);font-family:inherit;font-size:12px;outline:none}.saved-filters-dropdown__rename-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-soft)}.saved-filters-dropdown__rename-input[aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 2px var(--danger-soft)}.saved-filters-dropdown__rename-confirm,.saved-filters-dropdown__rename-cancel{flex-shrink:0;height:30px;padding:0 10px;border-radius:5px;font-family:inherit;font-size:12px;font-weight:500;cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease,opacity .12s ease}.saved-filters-dropdown__rename-confirm{background:var(--accent-primary);border:1px solid var(--accent-primary);color:var(--text-on-accent)}.saved-filters-dropdown__rename-confirm:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.saved-filters-dropdown__rename-confirm:disabled{opacity:.45;cursor:not-allowed}.saved-filters-dropdown__rename-confirm:focus-visible,.saved-filters-dropdown__rename-cancel:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.saved-filters-dropdown__rename-cancel{background:transparent;border:1px solid var(--border-mid);color:var(--text-secondary)}.saved-filters-dropdown__rename-cancel:hover{background:var(--ov-white-06);border-color:var(--border-strong);color:var(--text-primary)}.saved-filters-dropdown__rename-error{flex-basis:100%;margin-top:2px;color:var(--danger);font-size:11px;line-height:1.3}.saved-filters-dropdown__toast{position:absolute;top:calc(100% + 6px);left:0;z-index:70;max-width:320px;padding:8px 12px;background:var(--bg-elevated);border:1px solid var(--border-mid);border-radius:6px;box-shadow:var(--shadow-md);color:var(--text-primary);font-size:12px;line-height:1.35;animation:saved-filters-fade-in .12s ease-out}.saved-filters-dropdown__toast--error{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}@media(max-width:640px){.saved-filters-dropdown__popover{position:fixed;inset:auto 0 0 0;top:auto;left:0;z-index:1100;width:100vw;max-height:min(85vh,560px);margin:0;border:0;border-top:1px solid var(--border-mid);border-radius:16px 16px 0 0;box-shadow:0 -4px 16px var(--ov-black-50);padding-bottom:env(safe-area-inset-bottom);animation:saved-filters-sheet-up .18s cubic-bezier(0,0,.2,1)}@keyframes saved-filters-sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.saved-filters-dropdown__search{padding:14px 16px;font-size:14px}.saved-filters-dropdown__save-row{padding:10px 14px}.saved-filters-dropdown__save-btn,.saved-filters-dropdown__save-confirm,.saved-filters-dropdown__save-cancel,.saved-filters-dropdown__rename-confirm,.saved-filters-dropdown__rename-cancel,.saved-filters-dropdown__save-input{height:40px;font-size:13px}.saved-filters-dropdown__rename-input{height:38px;font-size:13px}.saved-filters-dropdown__item-kebab{width:44px;height:44px;font-size:20px;opacity:1}.saved-filters-dropdown__item-name{height:44px;padding:0 6px 0 14px;font-size:14px}.saved-filters-dropdown__kebab-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:4px;right:8px;min-width:200px}.saved-filters-dropdown__kebab-item{padding:12px 14px;font-size:14px}.saved-filters-dropdown__toast{position:fixed;bottom:calc(16px + env(safe-area-inset-bottom));left:16px;right:16px;top:auto;max-width:none}}@media(prefers-reduced-motion:reduce){.saved-filters-dropdown__popover,.saved-filters-dropdown__kebab-menu,.saved-filters-dropdown__toast{animation:none}.saved-filters-dropdown__toggle,.saved-filters-dropdown__save-btn,.saved-filters-dropdown__save-confirm,.saved-filters-dropdown__save-cancel,.saved-filters-dropdown__save-input,.saved-filters-dropdown__rename-confirm,.saved-filters-dropdown__rename-cancel,.saved-filters-dropdown__rename-input,.saved-filters-dropdown__item-kebab,.saved-filters-dropdown__kebab-item{transition:none}}.workshop-saved-filters-row{display:flex;align-items:center;margin-bottom:8px}.review-move-list-wrapper{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.review-game-info{padding:8px 10px 6px;border-bottom:1px solid var(--c-333);flex-shrink:0}.review-game-info-opening{font-size:12px;color:var(--c-90caf9);margin-bottom:5px;font-style:italic}.review-game-info-players{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:13px}.review-game-info-player{display:flex;align-items:center;gap:4px;color:var(--c-e0e0e0);font-weight:500}.review-game-info-color{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0}.review-game-info-color--white{background:var(--c-f0d9b5);border:1px solid var(--c-888)}.review-game-info-color--black{background:var(--c-b58863);border:1px solid var(--c-555)}.review-game-info-rating{color:var(--c-aaa);font-weight:400;font-size:12px}.review-game-info-result{margin-top:4px;font-size:13px;font-weight:600;color:var(--c-e0e0e0)}.review-moves-container{width:100%;flex:1;overflow-y:auto;overflow-x:hidden;min-height:0;padding:8px 8px 44px;box-sizing:border-box;overscroll-behavior:contain;scrollbar-color:var(--c-7c83ff) var(--c-2a3a5e);scrollbar-width:auto;scrollbar-gutter:stable}.review-moves-container::-webkit-scrollbar{width:8px}.review-moves-container::-webkit-scrollbar-track{background:var(--c-2a3a5e);border-radius:4px}.review-moves-container::-webkit-scrollbar-thumb{background:var(--c-7c83ff);border-radius:4px;min-height:30px}.review-moves-container::-webkit-scrollbar-thumb:hover{background:var(--c-9ba0ff)}@media(max-width:768px){.review-moves-container{overflow-y:scroll;scrollbar-color:var(--ov-white-35) var(--ov-white-08);scrollbar-width:auto}.review-moves-container::-webkit-scrollbar{width:6px}.review-moves-container::-webkit-scrollbar-track{background:var(--ov-white-08);border-radius:3px}.review-moves-container::-webkit-scrollbar-thumb{background:var(--ov-white-35);border-radius:3px}.review-moves-container::-webkit-scrollbar-thumb:active{background:var(--ov-white-50)}}.review-moves-list{font-size:calc(15px * var(--analysis-sidebar-font-scale, 1));line-height:1.6;white-space:normal;word-wrap:break-word;overflow-wrap:break-word;color:var(--c-e0e0e0)}.review-no-moves{padding:16px;color:var(--c-888);font-size:calc(14px * var(--analysis-sidebar-font-scale, 1))}.move-item{display:inline;cursor:pointer;padding:1px 3px;border-radius:3px;transition:background-color .1s ease;color:var(--c-e0e0e0);user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:manipulation}.move-item:not(.variation-move){font-weight:500}.move-item.variation-move{font-weight:400;font-size:.9em}.move-item.current{background-color:var(--c-1565c0)!important;color:var(--c-fff)!important;font-weight:700!important;border-radius:4px!important;padding:2px 6px!important;margin:1px 2px!important;box-shadow:0 2px 4px var(--ov-info-40)!important}.move-item.current .review-clock,.move-item.current .review-eval,.move-item.current .review-nag{color:var(--c-fff)!important}.move-item.current .review-eval{background:#ffffff2e!important}.move-item:hover:not(.current){background-color:var(--ov-white-10)}.variation-level-1{color:var(--c-subline-1)}.variation-level-2{color:var(--c-subline-2)}.variation-level-3{color:var(--c-subline-3)}.variation-level-4{color:var(--c-subline-4)}.variation-bracket{display:inline;color:var(--c-888);font-size:.85em;margin:0 1px}.variation-bracket-open{margin-right:2px}.variation-bracket-close{margin-left:0;margin-right:4px}.variation-bracket.variation-level-1{color:var(--c-subline-1)}.variation-bracket.variation-level-2{color:var(--c-subline-2)}.variation-bracket.variation-level-3{color:var(--c-subline-3)}.variation-bracket.variation-level-4{color:var(--c-subline-4)}.variation-color-green{color:var(--c-vc-green)}.variation-color-blue{color:var(--c-vc-blue)}.variation-color-yellow{color:var(--c-vc-yellow)}.variation-color-red{color:var(--c-vc-red)}.review-context-menu{position:fixed;z-index:1000;background:var(--c-1e1e2e);border:1px solid var(--c-444);border-radius:6px;box-shadow:0 4px 16px var(--ov-black-50);min-width:140px;overflow:hidden;padding:4px 0}.review-context-menu__item{display:block;width:100%;padding:8px 14px;text-align:left;background:none;border:none;color:var(--c-e0e0e0);font-size:13px;cursor:pointer;transition:background-color .1s ease}.review-context-menu__item:hover{background:var(--c-2a2a3e);color:var(--c-fff)}.review-context-menu__item--danger{color:var(--c-f44336)}.review-context-menu__item--danger:hover{background:var(--ov-danger-15);color:var(--c-f44336)}.review-context-menu__label{padding:4px 14px 2px;font-size:11px;color:var(--c-888);text-transform:uppercase;letter-spacing:.5px}.review-context-menu__nag-row{display:flex;gap:4px;padding:4px 10px 6px;flex-wrap:wrap}.review-nag-btn{width:28px;height:28px;padding:0;font-size:13px;font-weight:600;border:1px solid var(--c-444);border-radius:4px;background:none;color:var(--c-e0e0e0);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .1s ease,border-color .1s ease}.review-nag-btn:hover{background:var(--c-2a2a3e);border-color:var(--c-666)}.review-nag-btn--active{background:var(--c-1565c0);border-color:var(--c-1976d2);color:var(--c-fff)}.review-nag-btn--active[data-nag="1"],.review-nag-btn--active[data-nag="3"]{background:var(--ov-success-20-emerald);border-color:var(--c-16a34a);color:var(--c-16a34a)}.review-nag-btn--active[data-nag="2"],.review-nag-btn--active[data-nag="4"]{background:var(--ov-danger-20-r600);border-color:var(--c-dc2626);color:var(--c-dc2626)}.review-nag-btn--active[data-nag="5"],.review-nag-btn--active[data-nag="6"]{background:var(--ov-warning-20-amber);border-color:var(--c-f59e0b);color:var(--c-f59e0b)}.review-nag-btn--active:hover{filter:brightness(1.1)}.review-context-menu__divider{height:1px;background:var(--c-333);margin:2px 0}.review-nag{font-weight:600;margin-left:1px}.review-nag--good{color:var(--c-16a34a)}.review-nag--bad{color:var(--c-dc2626)}.review-nag--interesting{color:var(--c-f59e0b)}.review-eval{font-size:.75em;font-weight:600;margin-left:3px;padding:0 3px;border-radius:3px;color:var(--c-888);background:var(--ov-white-05);vertical-align:middle}.review-eval--white{color:var(--c-4caf50)}.review-eval--black{color:var(--c-f44336)}.review-clock{font-size:.7em;color:var(--c-666);margin-left:3px;vertical-align:middle}.review-comment{display:-webkit-inline-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;font-size:12px;font-style:italic;color:var(--c-94a3b8);cursor:pointer;word-break:break-word;line-height:1.3;max-width:100%}.review-comment:before{content:"{ "}.review-comment:after{content:" }"}.review-comment:hover{color:var(--c-cbd5e1)}.review-comment--expanded{-webkit-line-clamp:unset;display:inline;overflow:visible}.review-comment-editor{display:inline-flex;align-items:flex-start;gap:4px;margin:2px 0;vertical-align:top}.review-comment-textarea{width:180px;min-height:60px;padding:6px 8px;font-size:13px;font-family:inherit;background:var(--c-151525);color:var(--c-e0e0e0);border:1px solid var(--c-334155);border-radius:4px;resize:vertical;line-height:1.4;box-sizing:border-box}.review-comment-textarea:focus{outline:none;border-color:var(--c-4a6fa5)}.review-comment-textarea::placeholder{color:var(--c-555)}.review-comment-delete-btn{padding:2px 6px;font-size:12px;background:none;border:1px solid var(--c-555);border-radius:4px;color:var(--c-f44336);cursor:pointer;flex-shrink:0}.review-comment-delete-btn:hover{background:var(--ov-danger-15)}.review-editor-panel{position:absolute;bottom:0;left:0;right:0;z-index:10;padding:4px 8px;background:var(--c-1a1a2e);border-top:1px solid var(--c-333);display:flex;gap:4px;flex-wrap:wrap}.review-editor-btn{padding:3px 8px;font-size:12px;cursor:pointer;border-radius:4px;border:1px solid var(--c-444);background:var(--c-2a2a3e);color:var(--c-ccc);transition:background-color .1s ease;display:flex;align-items:center;gap:3px}.review-editor-btn:hover:not(:disabled){background:var(--c-3a3a5e);color:var(--c-fff)}.review-editor-btn:disabled{opacity:.4;cursor:not-allowed}.review-editor-btn.promote-btn:hover:not(:disabled){border-color:var(--c-4caf50);color:var(--c-4caf50)}.review-editor-btn.delete-variation-btn:hover:not(:disabled){border-color:var(--c-f44336);color:var(--c-f44336)}.review-editor-btn.delete-remaining-btn:hover:not(:disabled){border-color:var(--c-ff9800);color:var(--c-ff9800)}@media(max-width:768px){.review-game-info-players{display:none!important}.review-moves-container{padding:4px 6px 40px}.review-moves-list{font-size:13px;line-height:1.35}.review-game-info{padding:4px 8px 3px}.review-game-info-opening{font-size:11px;margin-bottom:2px}.review-game-info-result{margin-top:2px;font-size:12px}.review-comment{display:block;width:100%;margin:2px 0}.review-comment:not(.review-comment--expanded){display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.play-page{max-width:1000px;margin:0 auto;padding:24px 16px}.play-page__title{font-size:28px;font-weight:700;color:var(--c-e0e0e0);margin:0 0 24px;text-align:center}.play-page__grid{display:grid;grid-template-columns:3fr 2fr;gap:24px;align-items:start}.play-section{background:var(--c-1e1e2e);border-radius:12px;padding:20px;border:1px solid var(--c-333)}.play-section__title{font-size:18px;font-weight:600;color:var(--c-e0e0e0);margin:0 0 16px}.play-tc-tabs{display:flex;gap:4px;margin-bottom:12px;flex-wrap:wrap}.play-tc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}.play-tc-btn{padding:12px 8px;font-size:15px;font-weight:600;border:1px solid var(--c-444);border-radius:8px;background:var(--c-2a2a3e);color:var(--c-ccc);cursor:pointer;transition:background-color .15s,border-color .15s,transform .1s}.play-tc-btn:hover{background:var(--c-3a3a5e);color:var(--c-e0e0e0);transform:translateY(-1px)}.play-tc-btn.active{background:var(--tab-active-bg);border-color:var(--tab-active-border);color:var(--tab-active-fg);box-shadow:0 0 0 2px var(--ov-accent-35)}.play-tc-btn.active:hover{background:var(--tab-active-hover-bg);border-color:var(--tab-active-border)}.play-selected-tc{text-align:center;font-size:20px;font-weight:700;color:var(--c-7c83ff);margin:12px 0;padding:8px;background:var(--ov-accent-10);border-radius:8px}.play-btn--big{width:100%;padding:18px;font-size:22px;font-weight:700;border-radius:10px;margin-top:12px;background:var(--c-7c83ff);color:var(--c-fff);border:none;cursor:pointer;transition:background-color .15s,box-shadow .15s,transform .1s;letter-spacing:.5px}.play-btn--big:hover{background:var(--c-6b72ee);box-shadow:0 4px 16px var(--ov-accent-35);transform:translateY(-1px)}.play-btn--big:active{transform:translateY(0);box-shadow:none}@keyframes play-pulse{0%,to{box-shadow:0 0 0 0 var(--ov-accent-50)}50%{box-shadow:0 0 0 10px var(--ov-accent-00)}}.play-btn--big.searching{animation:play-pulse 1.5s ease-in-out infinite;background:var(--c-5a60dd)}.play-section--right{background:none;border:none;padding:0;display:flex;flex-direction:column;gap:16px}.play-card{background:var(--c-1e1e2e);border-radius:12px;border:1px solid var(--c-333);overflow:hidden}.play-card__header{width:100%;display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:none;border:none;color:var(--c-e0e0e0);cursor:pointer;text-align:left;font-family:inherit}.play-card__header:hover{background:var(--ov-white-03)}.play-card__title{font-size:16px;font-weight:600;margin:0}.play-card__toggle{font-size:12px;color:var(--c-888);transition:transform .2s}.play-card__body{max-height:0;overflow:hidden;transition:max-height .3s ease}.play-card__body--open{max-height:500px;padding:0 16px 16px}.play-card__loading{color:var(--c-888);font-size:14px}.play-card__empty{text-align:center;color:var(--c-888);font-size:14px;padding:12px 0}.play-card__link{color:var(--c-7c83ff);text-decoration:none;display:inline-block;margin-top:8px}.play-card__link:hover{color:var(--c-a0a5ff)}.play-friends-list{list-style:none;margin:0;padding:0}.play-friend-item{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--c-2a2a3e)}.play-friend-item:last-child{border-bottom:none}.play-friend-status{width:8px;height:8px;border-radius:50%;background:var(--c-4caf50);flex-shrink:0}.play-friend-name{color:var(--c-e0e0e0);text-decoration:none;flex:1;font-size:14px}.play-friend-name:hover{color:var(--c-7c83ff)}.play-friend-rating{color:var(--c-888);font-size:13px}.play-friend-invite{padding:4px 10px;font-size:12px;background:var(--c-2a2a3e);border:1px solid var(--c-444);border-radius:6px;color:var(--c-7c83ff);cursor:pointer;flex-shrink:0;transition:background-color .15s}.play-friend-invite:hover{background:var(--c-3a3a5e);color:var(--c-a0a5ff)}@media(min-width:1024px){.play-card__body{max-height:none;padding:0 16px 16px}.play-card__toggle{display:none}.play-card__header{cursor:default}.play-card__header:hover{background:none}}@media(max-width:1023px){.play-page__grid{grid-template-columns:1fr}.play-page__title{font-size:22px;margin-bottom:16px}}@media(max-width:480px){.play-page{padding:16px 12px}.play-section{padding:16px}.play-tc-grid{gap:6px}.play-tc-btn{padding:10px 6px;font-size:14px}.play-btn--big{padding:14px;font-size:18px}}.nag-palette{box-sizing:border-box;min-width:320px;max-width:380px;padding:8px;background:var(--c-1e1e2e);border:1px solid var(--c-444);border-radius:6px;box-shadow:0 4px 16px var(--ov-black-50);color:var(--c-e0e0e0);font-family:inherit;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;animation:nag-palette-fade-in .1s ease-out}@keyframes nag-palette-fade-in{0%{opacity:0}to{opacity:1}}.nag-palette__group{padding:4px 6px 6px}.nag-palette__group+.nag-palette__group{border-top:1px solid var(--c-333);margin-top:2px;padding-top:6px}.nag-palette__group-label{margin:0 0 4px;font-size:11px;font-weight:500;letter-spacing:.5px;text-transform:uppercase;color:var(--text-secondary)}.nag-palette__buttons{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.nag-palette__btn{flex-shrink:0;width:32px;height:32px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-family:inherit;font-size:14px;font-weight:600;line-height:1;background:transparent;border:1px solid var(--border-strong);border-radius:4px;color:var(--text-primary);cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease}.nag-palette__btn:hover{background:var(--c-2a2a3e);border-color:var(--c-666)}.nag-palette__btn:focus-visible{outline:2px solid var(--c-90caf9);outline-offset:1px}.nag-palette__btn:active{background:var(--ov-white-15);transition:background-color 80ms ease}.nag-palette__btn--active[data-nag="1"],.nag-palette__btn--active[data-nag="3"]{background:var(--ov-success-20-emerald);border-color:var(--c-16a34a);color:var(--c-16a34a)}.nag-palette__btn--active[data-nag="2"],.nag-palette__btn--active[data-nag="4"]{background:var(--ov-danger-20-r600);border-color:var(--c-dc2626);color:var(--c-dc2626)}.nag-palette__btn--active[data-nag="5"],.nag-palette__btn--active[data-nag="6"]{background:var(--ov-warning-20-amber);border-color:var(--c-f59e0b);color:var(--c-f59e0b)}.nag-palette__btn--active[data-nag="10"],.nag-palette__btn--active[data-nag="13"]{background:var(--ov-info-20);border-color:var(--c-666);color:var(--c-e0e0e0)}.nag-palette__btn--active[data-nag="14"],.nag-palette__btn--active[data-nag="16"],.nag-palette__btn--active[data-nag="18"]{background:var(--ov-info-20);border-color:var(--c-f0d9b5);color:var(--c-e0e0e0)}.nag-palette__btn--active[data-nag="15"],.nag-palette__btn--active[data-nag="17"],.nag-palette__btn--active[data-nag="19"]{background:var(--ov-info-20);border-color:var(--c-b58863);color:var(--c-e0e0e0)}.nag-palette__btn--active:hover{filter:brightness(1.12)}.nag-palette__divider{height:1px;margin:6px 0;background:var(--c-333)}.nag-palette__delete{display:block;width:100%;padding:6px 10px;background:transparent;border:1px solid var(--c-444);border-radius:4px;font-family:inherit;font-size:12px;font-weight:500;color:var(--c-f44336);text-align:center;cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease}.nag-palette__delete:hover:not(:disabled){background:var(--ov-danger-15);border-color:var(--c-f44336)}.nag-palette__delete:focus-visible{outline:2px solid var(--c-f44336);outline-offset:1px}.nag-palette__delete:disabled{opacity:.4;cursor:not-allowed}.nag-palette__variation-swatches{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.nag-palette__variation-swatch{flex-shrink:0;width:28px;height:28px;padding:0;background:var(--c-444);border:1px solid var(--ov-black-30);border-radius:6px;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.nag-palette__variation-swatch--green{background:var(--c-vc-green)}.nag-palette__variation-swatch--blue{background:var(--c-vc-blue)}.nag-palette__variation-swatch--yellow{background:var(--c-vc-yellow)}.nag-palette__variation-swatch--red{background:var(--c-vc-red)}.nag-palette__variation-swatch:hover{transform:scale(1.08);border-color:var(--c-fff)}.nag-palette__variation-swatch:focus-visible{outline:2px solid var(--c-90caf9);outline-offset:2px}.nag-palette__variation-swatch:active{transform:scale(.94);transition-duration:80ms}.nag-palette__variation-swatch--active{border-color:var(--c-fff);box-shadow:inset 0 0 0 1px var(--c-fff),0 0 0 2px var(--c-7c83ff)}.nag-palette__variation-swatch--active:hover{transform:scale(1.08)}.nag-palette__variation-clear{margin-left:auto;padding:6px 10px;font-family:inherit;font-size:12px;font-weight:500;background:transparent;border:1px solid var(--c-444);border-radius:4px;color:var(--c-888);cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease}.nag-palette__variation-clear:hover:not(:disabled){background:var(--c-2a2a3e);border-color:var(--c-666);color:var(--c-e0e0e0)}.nag-palette__variation-clear:focus-visible{outline:2px solid var(--c-90caf9);outline-offset:1px}.nag-palette__variation-clear:disabled{opacity:.4;cursor:not-allowed}.nag-palette__hint{margin-top:8px;padding:4px 6px 0;font-size:11px;color:var(--text-muted);text-align:center;letter-spacing:.2px}@media(prefers-reduced-motion:reduce){.nag-palette{animation:none}.nag-palette__btn,.nag-palette__delete,.nag-palette__variation-swatch,.nag-palette__variation-clear{transition:none}}@media(min-width:769px)and (max-width:1024px){.nag-palette{min-width:320px;max-width:320px}}@media(max-width:768px){.nag-palette{min-width:280px;max-width:calc(100vw - 16px)}.nag-palette__buttons{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;padding-bottom:4px;scrollbar-width:thin}.nag-palette__buttons::-webkit-scrollbar{height:4px}.nag-palette__buttons::-webkit-scrollbar-thumb{background:var(--ov-white-20);border-radius:2px}}.nag-palette-sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;display:flex;align-items:flex-end;justify-content:center;background:var(--ov-black-40);animation:nag-sheet-backdrop-in .2s cubic-bezier(0,0,.2,1)}@keyframes nag-sheet-backdrop-in{0%{opacity:0}to{opacity:1}}.nag-palette-sheet{position:relative;box-sizing:border-box;width:100vw;max-height:var(--nag-sheet-max-height, 80vh);min-height:280px;padding:0 16px calc(24px + env(safe-area-inset-bottom));background:var(--c-1a1a2e);border-top-left-radius:16px;border-top-right-radius:16px;box-shadow:0 -4px 16px var(--ov-black-50);color:var(--c-e0e0e0);font-family:inherit;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;transform:translateY(var(--nag-sheet-drag, 0px));transition:transform .2s ease-out;animation:nag-sheet-slide-up .2s cubic-bezier(0,0,.2,1)}.nag-palette-sheet[data-dragging=true]{transition:none}@media(min-height:700px){.nag-palette-sheet{min-height:360px}}@keyframes nag-sheet-slide-up{0%{transform:translateY(100%)}to{transform:translateY(var(--nag-sheet-drag, 0px))}}.nag-palette-sheet__handle{display:flex;align-items:center;justify-content:center;width:100%;padding:8px 0;background:transparent;border:0;cursor:grab;touch-action:none;font:inherit;color:inherit}.nag-palette-sheet__handle:active{cursor:grabbing}.nag-palette-sheet__handle:focus-visible{outline:2px solid var(--c-90caf9);outline-offset:2px;border-radius:4px}.nag-palette-sheet__handle-bar{display:block;width:36px;height:4px;border-radius:2px;background:var(--c-666)}.nag-palette-sheet__header{margin-bottom:12px;padding-top:4px;text-align:left}.nag-palette-sheet__title{font-size:16px;font-weight:600;line-height:1.25;color:var(--c-e0e0e0)}.nag-palette-sheet__content{display:flex;flex-direction:column}.nag-palette-sheet__content .nag-palette{position:static;z-index:auto;min-width:0;max-width:none;padding:0;background:transparent;border:none;border-radius:0;box-shadow:none;animation:none}.nag-palette-sheet__content .nag-palette__group{padding:6px 0 8px}.nag-palette-sheet__content .nag-palette__group+.nag-palette__group{margin-top:4px;padding-top:8px}.nag-palette-sheet__content .nag-palette__group-label{margin-bottom:6px;font-size:12px}.nag-palette-sheet__content .nag-palette__buttons{gap:6px}.nag-palette-sheet__content .nag-palette__btn{width:48px;height:48px;font-size:16px;border-radius:6px}.nag-palette-sheet__content .nag-palette__divider{margin:8px 0}.nag-palette-sheet__content .nag-palette__delete{margin-top:8px;min-height:48px;padding:12px 16px;font-size:14px;border-radius:6px}.nag-palette-sheet__content .nag-palette__variation-swatches{gap:10px}.nag-palette-sheet__content .nag-palette__variation-swatch{width:48px;height:48px;border-radius:8px}.nag-palette-sheet__content .nag-palette__variation-clear{margin-left:0;margin-top:6px;flex-basis:100%;min-height:44px;padding:12px 16px;font-size:14px;border-radius:6px;text-align:center}.nag-palette-sheet__content .nag-palette__hint{display:none}.nag-palette-sheet__actions{display:flex;flex-direction:column;gap:2px;margin-top:8px;padding-top:8px;border-top:1px solid var(--c-333)}.nag-palette-sheet__actions .review-context-menu__item{min-height:44px;padding:12px 14px;font-size:14px}.nag-palette-sheet__actions .review-context-menu__divider{margin:4px 0}@media(prefers-reduced-motion:reduce){.nag-palette-sheet,.nag-palette-sheet-backdrop{animation:none;transition:none}}.board-image-dropzone{display:flex;flex-direction:column;gap:12px;font-family:inherit;color:var(--text, #e8e8ee)}.board-image-dropzone__columns{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}@media(max-width:720px){.board-image-dropzone__columns{grid-template-columns:1fr}}.board-image-dropzone__drop{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:280px;padding:16px;border:2px dashed rgba(120,140,200,.45);border-radius:10px;background:#14162459;text-align:center;transition:border-color .12s ease,background .12s ease}.board-image-dropzone__drop.has-image{border-style:solid}.board-image-dropzone__drop.is-busy{opacity:.7}.board-image-dropzone__preview{max-width:100%;max-height:320px;border-radius:6px;object-fit:contain;background:#111}.board-image-dropzone__hint-main{font-size:1em;font-weight:600}.board-image-dropzone__hint-sub{font-size:.85em;color:var(--text-muted, #a9aebf);max-width:320px;line-height:1.35}.board-image-dropzone__file-label{margin-top:4px;padding:8px 14px;border-radius:6px;border:1px solid rgba(120,140,200,.35);background:#4a8eff1f;color:#cfe0ff;cursor:pointer;font-size:.9em;font-weight:500;font-family:inherit;line-height:inherit;-moz-appearance:none;appearance:none;-webkit-appearance:none}.board-image-dropzone__file-label:hover{background:#4a8eff38}.board-image-dropzone__file-label:disabled{opacity:.5;cursor:progress}.board-image-dropzone__file-input{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.board-image-dropzone__busy{position:absolute;bottom:8px;right:12px;font-size:.8em;color:var(--text-muted, #a9aebf)}.board-image-dropzone__board-col{display:flex;flex-direction:column;gap:10px}.board-image-dropzone__board{width:100%;max-width:320px;border-radius:6px}.board-image-dropzone__controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.board-image-dropzone__btn{padding:6px 14px;border-radius:6px;border:1px solid var(--border-mid, rgba(120, 140, 200, .45));background:var(--bg-input, #2a2a3e);color:var(--text-primary, #e8e8ee);cursor:pointer;font-size:.85em;font-family:inherit;font-weight:500;transition:background .12s,border-color .12s,filter .12s}.board-image-dropzone__btn:hover{filter:brightness(1.15);border-color:var(--accent-primary, #7c83ff)}.board-image-dropzone__btn:focus-visible{outline:2px solid var(--accent-primary, #7c83ff);outline-offset:2px}.board-image-dropzone__btn.is-active{background:var(--accent-primary, #7c83ff);border-color:var(--accent-primary, #7c83ff);color:#fff}.board-image-dropzone__side{display:inline-flex;align-items:center;gap:6px;font-size:.85em}.board-image-dropzone__side select{padding:4px 8px;background:#ffffff0d;color:var(--text, #e8e8ee);border:1px solid rgba(120,140,200,.35);border-radius:4px;font-family:inherit}.board-image-dropzone__fen-row{display:flex;flex-direction:column;gap:6px}.board-image-dropzone__fen{font-size:.8em;word-break:break-all;color:var(--text-muted, #a9aebf);background:#ffffff0a;padding:6px 8px;border-radius:4px}.board-image-dropzone__fen-input{width:100%;padding:6px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em;background:#ffffff0a;color:var(--text, #e8e8ee);border:1px solid rgba(120,140,200,.35);border-radius:4px}.board-image-dropzone__error{color:#f4a4a4;font-size:.85em;line-height:1.3}.board-image-dropzone__warnings{margin:0;padding-left:18px;color:#f4cf8a;font-size:.8em}.board-image-dropzone__crop-frame{position:relative;width:100%;max-width:320px;aspect-ratio:1 / 1;background:#111;border-radius:6px;overflow:hidden;touch-action:none}.board-image-dropzone__crop-frame>div{position:absolute!important;top:0;right:0;bottom:0;left:0}.board-image-dropzone__crop-close{position:absolute;top:6px;right:6px;z-index:5;width:28px;height:28px;border-radius:50%;border:1px solid rgba(255,255,255,.4);background:#0000008c;color:#fff;font-size:14px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;transition:background .12s,border-color .12s}.board-image-dropzone__crop-close:hover{background:#dc2626d9;border-color:#ffffffb3}.board-image-dropzone__crop-close:focus-visible{outline:2px solid var(--accent-primary, #7c83ff);outline-offset:2px}.board-image-dropzone__crop-hint{border-left:3px solid #6c8cd0;background:#6c8cd01f;padding:8px 10px;border-radius:4px;color:#cfe0ff;font-size:.85em;line-height:1.35}.board-image-dropzone__sanity-warning{border-left:3px solid #e6b95a;background:#e6b95a1f;padding:8px 10px;border-radius:4px;color:#f4cf8a;font-size:.85em;line-height:1.35}.board-image-dropzone__sanity-warning-head{font-weight:600;margin-bottom:4px}.board-image-dropzone__sanity-warning-list{margin:0;padding-left:18px}.board-image-dropzone__meta{font-size:.75em;color:var(--text-muted, #a9aebf)}.board-image-dropzone__crop-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;aspect-ratio:1 / 1;max-width:320px;padding:16px;border:1px dashed var(--border-mid, rgba(120, 140, 200, .45));border-radius:6px;color:var(--text-secondary, #a9aebf);background:#ffffff05;text-align:center;box-sizing:border-box}.board-image-dropzone__crop-placeholder span{font-size:1.8em;line-height:1}.board-image-dropzone__crop-placeholder p{margin:0;font-size:.85em;line-height:1.4}.board-image-dropzone--multi{display:flex;flex-direction:column;gap:12px;width:100%}.board-image-dropzone__multi-header{padding:8px 12px;background:#7c83ff1f;border-left:3px solid var(--accent-primary, #7c83ff);border-radius:4px;color:var(--text-primary, #e8e8ee);font-size:.95em;line-height:1.4}.board-image-dropzone__multi-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.board-image-dropzone__multi-card{display:flex;flex-direction:column;gap:6px;padding:8px;background:var(--bg-input, #2a2a3e);border:1px solid var(--border-mid, rgba(120, 140, 200, .45));border-radius:6px;cursor:pointer;color:var(--text-primary, #e8e8ee);text-align:left;font-family:inherit;transition:background .12s,border-color .12s,transform .05s}.board-image-dropzone__multi-card:hover{background:var(--bg-input, #2a2a3e);border-color:var(--accent-primary, #7c83ff);filter:brightness(1.1)}.board-image-dropzone__multi-card:active{transform:translateY(1px)}.board-image-dropzone__multi-card:focus-visible{outline:2px solid var(--accent-primary, #7c83ff);outline-offset:2px}.board-image-dropzone__multi-thumb{aspect-ratio:1 / 1;width:100%;overflow:hidden;border-radius:4px}.board-image-dropzone__multi-meta{display:flex;align-items:center;gap:6px;min-width:0}.board-image-dropzone__multi-index{flex-shrink:0;width:22px;height:22px;border-radius:50%;background:var(--accent-primary, #7c83ff);color:#fff;font-size:.8em;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.board-image-dropzone__multi-fen{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:.72em;color:var(--text-secondary, #a9aebf);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.board-image-dropzone__actions{display:flex;justify-content:flex-end;gap:8px;border-top:1px solid rgba(120,140,200,.18);padding:12px 0 4px;flex-wrap:wrap;position:sticky;bottom:0;background:var(--c-1a1a2e, #1a1a2e);margin-top:8px;z-index:2}.board-image-dropzone__cancel{padding:8px 16px;border-radius:6px;border:1px solid var(--border-mid, rgba(120, 140, 200, .45));background:var(--bg-input, #2a2a3e);color:var(--text-primary, #e8e8ee);cursor:pointer;font-family:inherit;font-size:.9em;font-weight:500;transition:background .12s,border-color .12s,color .12s}.board-image-dropzone__cancel:hover{background:var(--bg-input, #2a2a3e);border-color:var(--accent-primary, #7c83ff);color:var(--text-primary, #ffffff);filter:brightness(1.15)}.board-image-dropzone__cancel:focus-visible{outline:2px solid var(--accent-primary, #7c83ff);outline-offset:2px}.board-image-dropzone__apply{padding:8px 18px;border-radius:6px;border:1px solid transparent;background:var(--accent-primary, #7c83ff);color:#fff;cursor:pointer;font-family:inherit;font-size:.9em;font-weight:600;box-shadow:0 1px 2px #00000040;transition:background .12s,box-shadow .12s,filter .12s,transform .05s}.board-image-dropzone__apply:hover:not(:disabled){filter:brightness(1.12);box-shadow:0 2px 6px #7c83ff73}.board-image-dropzone__apply:active:not(:disabled){transform:translateY(1px)}.board-image-dropzone__apply:focus-visible{outline:2px solid var(--accent-primary, #7c83ff);outline-offset:2px}.board-image-dropzone__apply:disabled{opacity:.55;cursor:not-allowed}.date-range-picker{position:relative;display:inline-block;font-family:inherit}.date-range-picker__trigger{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;min-height:32px;background:var(--c-1e293b, #1e293b);color:var(--c-e2e8f0, #e2e8f0);border:1px solid var(--c-2a2a4e, #2a2a4e);border-radius:6px;font-size:13px;font-family:inherit;cursor:pointer;white-space:nowrap}.date-range-picker__trigger:hover{background:#7c83ff14;border-color:#a0b4e68c}.date-range-picker__trigger-icon{font-size:14px;opacity:.8}.date-range-picker__trigger-text{font-variant-numeric:tabular-nums}.date-range-picker__popup{position:absolute;top:calc(100% + 4px);left:0;z-index:50;width:304px;padding:12px;background:var(--c-0f172a, #0f172a);color:var(--c-e2e8f0, #e2e8f0);border:1px solid var(--c-2a2a4e, #2a2a4e);border-radius:8px;box-shadow:0 10px 30px #0006}@media(max-width:640px){.date-range-picker__popup{position:fixed;top:auto;bottom:12px;left:12px;right:12px;width:auto;max-width:none;max-height:calc(100vh - 24px);overflow-y:auto;z-index:100;box-shadow:0 10px 30px #00000073,0 0 0 100vmax #00000080;clip-path:inset(-100vmax round 8px)}}.date-range-picker__nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.date-range-picker__nav-btn{width:28px;height:28px;font-size:18px;line-height:1;background:transparent;color:var(--c-e2e8f0, #e2e8f0);border:1px solid rgba(120,140,200,.25);border-radius:4px;cursor:pointer}.date-range-picker__nav-btn:hover{background:#7c83ff1f}.date-range-picker__month-label{font-weight:600;font-size:14px;text-transform:capitalize}.date-range-picker__weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;margin-bottom:4px}.date-range-picker__weekday{text-align:center;font-size:11px;color:var(--c-94a3b8, #94a3b8);text-transform:uppercase}.date-range-picker__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}.date-range-picker__day{height:32px;display:inline-flex;align-items:center;justify-content:center;background:transparent;color:var(--c-e2e8f0, #e2e8f0);border:0;border-radius:4px;font-size:13px;font-family:inherit;font-variant-numeric:tabular-nums;cursor:pointer}.date-range-picker__day:hover{background:#7c83ff2e}.date-range-picker__day.is-outside{color:#94a3b873}.date-range-picker__day.is-today{outline:1px dashed rgba(124,131,255,.5)}.date-range-picker__day.is-start,.date-range-picker__day.is-end{background:var(--accent-primary, #7c83ff);color:#fff;font-weight:600}.date-range-picker__day.is-in-range{background:#7c83ff38;border-radius:0}.date-range-picker__day.is-start{border-top-right-radius:0;border-bottom-right-radius:0}.date-range-picker__day.is-end{border-top-left-radius:0;border-bottom-left-radius:0}.date-range-picker__footer{display:flex;justify-content:flex-end;gap:8px;margin-top:12px;border-top:1px solid rgba(120,140,200,.18);padding-top:12px}.date-range-picker__btn{padding:6px 12px;border-radius:6px;border:1px solid rgba(120,140,200,.35);background:#ffffff0a;color:var(--c-e2e8f0, #e2e8f0);cursor:pointer;font-size:13px;font-family:inherit}.date-range-picker__btn--apply{background:var(--accent-primary, #7c83ff);border-color:var(--accent-primary, #7c83ff);color:#fff;font-weight:600}.date-range-picker__btn--reset:hover{background:#ffffff14}.date-range-picker__btn--apply:hover{background:#5d65e6;border-color:#5d65e6}:root,:root[data-theme=dark]{color-scheme:dark;--c-0b0c12: #0b0c12;--c-0d0d1a: #0d0d1a;--c-0f0f1a: #0f0f1a;--c-0f0f1e: #0f0f1e;--c-0f172a: #0f172a;--c-111827: #111827;--c-12122a: #12122a;--c-131a2e: #131a2e;--c-16162a: #16162a;--c-161632: #161632;--c-16213e: #16213e;--c-1a1a1a: #1a1a1a;--c-1a1a2e: #1a1a2e;--c-1a1a3a: #1a1a3a;--c-1a1a3e: #1a1a3e;--c-1a2436: #1a2436;--c-1b2a4e: #1b2a4e;--c-1e1e2e: #1e1e2e;--c-1e1e38: #1e1e38;--c-1e1e3a: #1e1e3a;--c-1e1e3e: #1e1e3e;--c-1e293b: #1e293b;--c-1e2a4a: #1e2a4a;--c-1e2d50: #1e2d50;--c-1e3a2f: #1e3a2f;--c-1e3a5f: #1e3a5f;--c-1f2937: #1f2937;--c-222: #222;--c-222240: #222240;--c-252540: #252540;--c-262648: #262648;--c-2a1a4e: #2a1a4e;--c-2a1e4a: #2a1e4a;--c-2a2a3e: #2a2a3e;--c-2a2a4a: #2a2a4a;--c-2a2a4e: #2a2a4e;--c-2a2a5e: #2a2a5e;--c-2a2d3e: #2a2d3e;--c-2a3a5e: #2a3a5e;--c-2a3a6a: #2a3a6a;--c-2e0a0a: #2e0a0a;--c-2e2e4e: #2e2e4e;--c-312e2b: #312e2b;--c-333: #333;--c-334155: #334155;--c-3a3a50: #3a3a50;--c-3a3a5a: #3a3a5a;--c-3a3a5e: #3a3a5e;--c-3a3a6a: #3a3a6a;--c-3a3a6e: #3a3a6e;--c-3c4043: #3c4043;--c-444: #444;--c-454240: #454240;--c-475569: #475569;--c-4a4a6e: #4a4a6e;--c-4a4a7e: #4a4a7e;--c-4a4a8e: #4a4a8e;--c-555: #555;--c-5a5a7e: #5a5a7e;--c-606078: #606078;--c-606080: #606080;--c-64748b: #64748b;--c-666: #666;--c-6a6562: #6a6562;--c-6b7280: #6b7280;--c-7080a0: #7080a0;--c-777: #777;--c-808090: #808090;--c-808098: #808098;--c-8080a0: #8080a0;--c-80a0b0: #80a0b0;--c-888: #888;--c-8888aa: #8888aa;--c-94a3b8: #94a3b8;--c-9ca3af: #9ca3af;--c-9e9e9e: #9e9e9e;--c-999: #999;--c-a0a0c0: #a0a0c0;--c-aaa: #aaa;--c-b0b0c8: #b0b0c8;--c-b8b8cc: #b8b8cc;--c-bbb: #bbb;--c-c0c0d0: #c0c0d0;--c-c0c0d8: #c0c0d8;--c-c0c0e0: #c0c0e0;--c-c0c0ff: #c0c0ff;--c-c8d0ff: #c8d0ff;--c-cbd5e1: #cbd5e1;--c-ccc: #ccc;--c-d0d0e0: #d0d0e0;--c-e0e0e0: #e0e0e0;--c-e0e0f0: #e0e0f0;--c-e0e0ff: #e0e0ff;--c-e0f2fe: #e0f2fe;--c-e2e8f0: #e2e8f0;--c-e8e8e8: #e8e8e8;--c-f0f0f0: #f0f0f0;--c-f1f1f1: #f1f1f1;--c-f1f5f9: #f1f5f9;--c-fff: #fff;--c-4f46e5: #4f46e5;--c-5555aa: #5555aa;--c-5a60dd: #5a60dd;--c-5d65ff: #5d65ff;--c-6366f1: #6366f1;--c-6a72e8: #6a72e8;--c-6b71e8: #6b71e8;--c-6b72ee: #6b72ee;--c-7c83ff: #7c83ff;--c-8080cc: #8080cc;--c-9ca3ff: #9ca3ff;--c-a0a0ee: #a0a0ee;--c-a0a0ff: #a0a0ff;--c-a0a4ff: #a0a4ff;--c-a0a5ff: #a0a5ff;--c-8b5cf6: #8b5cf6;--c-0a2e1a: #0a2e1a;--c-15803d: #15803d;--c-16a34a: #16a34a;--c-22c55e: #22c55e;--c-48c774: #48c774;--c-4ade80: #4ade80;--c-4caf50: #4caf50;--c-6a9a3a: #6a9a3a;--c-81b64c: #81b64c;--c-81c784: #81c784;--c-86efac: #86efac;--c-a5d6a7: #a5d6a7;--c-b91c1c: #b91c1c;--c-ca3431: #ca3431;--c-dc2626: #dc2626;--c-e53935: #e53935;--c-e55: #e55;--c-ef4444: #ef4444;--c-ef5350: #ef5350;--c-ef9a9a: #ef9a9a;--c-f44336: #f44336;--c-f87171: #f87171;--c-fca5a5: #fca5a5;--c-e6912c: #e6912c;--c-f59e0b: #f59e0b;--c-f7c631: #f7c631;--c-fbbf24: #fbbf24;--c-ffb74d: #ffb74d;--c-ffc107: #ffc107;--c-ffe082: #ffe082;--c-1565c0: #1565c0;--c-1877f2: #1877f2;--c-2563eb: #2563eb;--c-2aabee: #2aabee;--c-3b82f6: #3b82f6;--c-60a5fa: #60a5fa;--c-90caf9: #90caf9;--c-1976d2: #1976d2;--c-4a6fa5: #4a6fa5;--c-9ba0ff: #9ba0ff;--c-151525: #151525;--c-ff9800: #ff9800;--c-vc-green: #4ade80;--c-vc-blue: #60a5fa;--c-vc-yellow: #fbbf24;--c-vc-red: #f87171;--c-4b7399: #4b7399;--c-6b3a2a: #6b3a2a;--c-86a666: #86a666;--c-b58863: #b58863;--c-d4b896: #d4b896;--c-dde6ef: #dde6ef;--c-f0d9b5: #f0d9b5;--c-ffffdd: #ffffdd;--ov-black-08: rgba(0, 0, 0, .08);--ov-black-15: rgba(0, 0, 0, .15);--ov-black-20: rgba(0, 0, 0, .2);--ov-black-25: rgba(0, 0, 0, .25);--ov-black-30: rgba(0, 0, 0, .3);--ov-black-35: rgba(0, 0, 0, .35);--ov-black-40: rgba(0, 0, 0, .4);--ov-black-50: rgba(0, 0, 0, .5);--ov-black-55: rgba(0, 0, 0, .55);--ov-black-60: rgba(0, 0, 0, .6);--ov-black-70: rgba(0, 0, 0, .7);--ov-black-75: rgba(0, 0, 0, .75);--ov-black-80: rgba(0, 0, 0, .8);--ov-black-85: rgba(0, 0, 0, .85);--ov-white-03: rgba(255, 255, 255, .03);--ov-white-04: rgba(255, 255, 255, .04);--ov-white-05: rgba(255, 255, 255, .05);--ov-white-06: rgba(255, 255, 255, .06);--ov-white-08: rgba(255, 255, 255, .08);--ov-white-10: rgba(255, 255, 255, .1);--ov-white-15: rgba(255, 255, 255, .15);--ov-white-20: rgba(255, 255, 255, .2);--ov-white-35: rgba(255, 255, 255, .35);--ov-white-50: rgba(255, 255, 255, .5);--ov-accent-00: rgba(124, 131, 255, 0);--ov-accent-05: rgba(124, 131, 255, .05);--ov-accent-06: rgba(124, 131, 255, .06);--ov-accent-08: rgba(124, 131, 255, .08);--ov-accent-10: rgba(124, 131, 255, .1);--ov-accent-12: rgba(124, 131, 255, .12);--ov-accent-15: rgba(124, 131, 255, .15);--ov-accent-18: rgba(124, 131, 255, .18);--ov-accent-20: rgba(124, 131, 255, .2);--ov-accent-25: rgba(124, 131, 255, .25);--ov-accent-30: rgba(124, 131, 255, .3);--ov-accent-35: rgba(124, 131, 255, .35);--ov-accent-50: rgba(124, 131, 255, .5);--ov-success-12: rgba(76, 175, 80, .12);--ov-success-15: rgba(76, 175, 80, .15);--ov-success-20: rgba(76, 175, 80, .2);--ov-success-25: rgba(76, 175, 80, .25);--ov-success-30: rgba(76, 175, 80, .3);--ov-success-35: rgba(76, 175, 80, .35);--ov-success-15-alt: rgba(34, 197, 94, .15);--ov-success-15-alt2: rgba(72, 199, 116, .15);--ov-success-10-emerald: rgba(22, 163, 74, .1);--ov-success-20-emerald: rgba(22, 163, 74, .2);--ov-danger-10: rgba(244, 67, 54, .1);--ov-danger-15: rgba(244, 67, 54, .15);--ov-danger-20: rgba(244, 67, 54, .2);--ov-danger-25: rgba(244, 67, 54, .25);--ov-danger-30: rgba(244, 67, 54, .3);--ov-danger-15-r400: rgba(248, 113, 113, .15);--ov-danger-25-r400: rgba(248, 113, 113, .25);--ov-danger-08-r400: rgba(248, 113, 113, .08);--ov-danger-40-r400: rgba(248, 113, 113, .4);--ov-danger-15-r500: rgba(239, 68, 68, .15);--ov-danger-25-r500: rgba(239, 68, 68, .25);--ov-danger-30-r500: rgba(239, 68, 68, .3);--ov-danger-15-r400b: rgba(239, 83, 80, .15);--ov-danger-10-r600: rgba(220, 38, 38, .1);--ov-danger-20-r600: rgba(220, 38, 38, .2);--ov-danger-20-burgundy: rgba(202, 52, 49, .2);--ov-warning-08: rgba(255, 193, 7, .08);--ov-warning-10: rgba(255, 193, 7, .1);--ov-warning-15: rgba(255, 193, 7, .15);--ov-warning-20: rgba(255, 193, 7, .2);--ov-warning-25: rgba(255, 193, 7, .25);--ov-warning-20-orange: rgba(230, 145, 44, .2);--ov-warning-20-yellow: rgba(247, 198, 49, .2);--ov-warning-20-amber: rgba(245, 158, 11, .2);--ov-info-15: rgba(21, 101, 192, .15);--ov-info-20: rgba(21, 101, 192, .2);--ov-info-40: rgba(21, 101, 192, .4);--ov-slate-50: rgba(15, 23, 42, .5);--ov-slate-85: rgba(15, 23, 42, .85);--ov-slate-50-gray: rgba(31, 41, 55, .5);--ov-slate-60-gray: rgba(31, 41, 55, .6);--ov-slate-70-gray: rgba(55, 65, 81, .7);--ov-neutral-08: rgba(158, 158, 158, .08);--ov-neutral-15: rgba(158, 158, 158, .15);--ov-neutral-20: rgba(158, 158, 158, .2);--ov-neutral-25: rgba(158, 158, 158, .25);--ov-text-muted-15: rgba(160, 160, 192, .15);--ov-text-muted-20: rgba(160, 160, 192, .2);--bg-canvas: var(--c-1a1a2e);--bg-deep: var(--c-16213e);--bg-surface: var(--c-2a2a4e);--bg-surface-alt: var(--c-2a2a4a);--bg-muted: var(--c-1e293b);--bg-elevated: var(--c-3a3a6e);--bg-input: var(--c-0f172a);--text-primary: var(--c-e0e0e0);--text-secondary: var(--c-a0a0c0);--text-muted: var(--c-888);--text-dim: var(--c-666);--text-on-accent: var(--c-fff);--text-link: var(--c-7c83ff);--border-subtle: var(--c-333);--border-mid: var(--c-444);--border-strong: var(--c-555);--border-accent: var(--c-7c83ff);--border-slate: var(--c-334155);--accent-primary: var(--c-7c83ff);--accent-hover: var(--c-6366f1);--accent-active: var(--c-4f46e5);--accent-soft: var(--ov-accent-15);--accent-soft-strong: var(--ov-accent-30);--success: var(--c-4caf50);--success-strong: var(--c-16a34a);--success-soft: var(--ov-success-15);--danger: var(--c-ef4444);--danger-strong: var(--c-dc2626);--danger-soft: var(--ov-danger-15-r500);--warning: var(--c-f59e0b);--warning-strong: var(--c-d97706, #d97706);--warning-soft: var(--ov-warning-15);--info: var(--c-3b82f6);--info-soft: var(--ov-info-40);--shadow-sm: 0 1px 4px var(--ov-black-30);--shadow-md: 0 2px 8px var(--ov-black-40);--shadow-lg: 0 4px 16px var(--ov-black-60);--scrollbar-track: var(--c-1a1a2e);--scrollbar-thumb: var(--c-4a4a7e);--scrollbar-thumb-hover: var(--c-7c83ff);--tab-active-bg: #ffffff;--tab-active-fg: #4f46e5;--tab-active-border: #ffffff;--tab-active-hover-bg: #f1f5f9;--c-mainline: var(--c-e0e0e0);--c-subline-1: var(--c-90caf9);--c-subline-2: var(--c-a5d6a7);--c-subline-3: var(--c-ffe082);--c-subline-4: var(--c-ef9a9a);--c-subline-bg: var(--ov-white-05)}:root[data-theme=light]{color-scheme:light;--c-0b0c12: #ffffff;--c-0d0d1a: #fbfbfd;--c-0f0f1a: #fbfbfd;--c-0f0f1e: #fbfbfd;--c-0f172a: #f1f5f9;--c-111827: #f3f4f6;--c-12122a: #f8f8fc;--c-131a2e: #eef2f7;--c-16162a: #f5f6fb;--c-161632: #f5f6fb;--c-16213e: #eef2ff;--c-1a1a1a: #f5f5f5;--c-1a1a2e: #f6f7fb;--c-1a1a3a: #eef0fa;--c-1a1a3e: #eef0fa;--c-1a2436: #eef2f8;--c-1b2a4e: #e7ecf6;--c-1e1e2e: #f1f2f6;--c-1e1e38: #ecedf7;--c-1e1e3a: #ecedf7;--c-1e1e3e: #ecedf7;--c-1e293b: #e2e8f0;--c-1e2a4a: #e3eaf5;--c-1e2d50: #dfe7f2;--c-1e3a2f: #e7f5ec;--c-1e3a5f: #dbeafe;--c-1f2937: #e5e7eb;--c-222: #ededed;--c-222240: #e9ecf6;--c-252540: #ebedf6;--c-262648: #e9ecf6;--c-2a1a4e: #ece5f5;--c-2a1e4a: #ede6f5;--c-2a2a3e: #e7e8ee;--c-2a2a4a: #e8eaf3;--c-2a2a4e: #ebedf5;--c-2a2a5e: #e6e8f2;--c-2a2d3e: #e6e8ef;--c-2a3a5e: #dde4ef;--c-2a3a6a: #dae1ed;--c-2e0a0a: #fde8e8;--c-2e2e4e: #e2e4ef;--c-312e2b: #ece8e3;--c-333: #cfd4dd;--c-334155: #cbd5e1;--c-3a3a50: #c8cad6;--c-3a3a5a: #c5c8d4;--c-3a3a5e: #c4c7d2;--c-3a3a6a: #bfc3d2;--c-3a3a6e: #bfc3d2;--c-3c4043: #c8cbd0;--c-444: #b8bcc6;--c-454240: #c5c1bc;--c-475569: #94a3b8;--c-4a4a6e: #b1b5c6;--c-4a4a7e: #afb3c6;--c-4a4a8e: #adb1ca;--c-555: #a3a8b3;--c-5a5a7e: #a4a8bd;--c-606078: #6e7384;--c-606080: #6e7384;--c-64748b: #64748b;--c-666: #6b7280;--c-6a6562: #6e6964;--c-6b7280: #6b7280;--c-7080a0: #4f5b75;--c-777: #6b7280;--c-808090: #5e6470;--c-808098: #5e6478;--c-8080a0: #4f5b75;--c-80a0b0: #46586a;--c-888: #5b6270;--c-8888aa: #5e6478;--c-94a3b8: #475569;--c-9ca3af: #4b5563;--c-9e9e9e: #6b6b6b;--c-999: #5e5e5e;--c-a0a0c0: #4a5163;--c-aaa: #555a64;--c-b0b0c8: #475569;--c-b8b8cc: #4b5263;--c-bbb: #4f545d;--c-c0c0d0: #3f4654;--c-c0c0d8: #3d4452;--c-c0c0e0: #3a4256;--c-c0c0ff: #3f3f9c;--c-c8d0ff: #3f3f9c;--c-cbd5e1: #64748b;--c-ccc: #3a3f48;--c-d0d0e0: #2f3441;--c-e0e0e0: #1f2937;--c-e0e0f0: #1f2937;--c-e0e0ff: #232a4d;--c-e0f2fe: #e0f2fe;--c-e2e8f0: #334155;--c-e8e8e8: #1f2937;--c-f0f0f0: #1f2937;--c-f1f1f1: #1f2937;--c-f1f5f9: #1f2937;--c-fff: #ffffff;--c-4f46e5: #4f46e5;--c-5555aa: #5555aa;--c-5a60dd: #4338ca;--c-5d65ff: #4f46e5;--c-6366f1: #4f46e5;--c-6a72e8: #4338ca;--c-6b71e8: #4338ca;--c-6b72ee: #4338ca;--c-7c83ff: #4f46e5;--c-8080cc: #5b63b8;--c-9ca3ff: #4f46e5;--c-a0a0ee: #4f46e5;--c-a0a0ff: #4f46e5;--c-a0a4ff: #4f46e5;--c-a0a5ff: #4f46e5;--c-8b5cf6: #6d28d9;--c-0a2e1a: #d4edd9;--c-15803d: #15803d;--c-16a34a: #15803d;--c-22c55e: #16a34a;--c-48c774: #16a34a;--c-4ade80: #16a34a;--c-4caf50: #2e7d32;--c-6a9a3a: #4d7a26;--c-81b64c: #5e9c2e;--c-81c784: #2e7d32;--c-86efac: #16a34a;--c-a5d6a7: #2e7d32;--c-b91c1c: #b91c1c;--c-ca3431: #b91c1c;--c-dc2626: #dc2626;--c-e53935: #c1272d;--c-e55: #c1272d;--c-ef4444: #dc2626;--c-ef5350: #c62828;--c-ef9a9a: #b71c1c;--c-f44336: #d32f2f;--c-f87171: #dc2626;--c-fca5a5: #dc2626;--c-e6912c: #b45309;--c-f59e0b: #b45309;--c-f7c631: #a16207;--c-fbbf24: #b45309;--c-ffb74d: #b45309;--c-ffc107: #b45309;--c-ffe082: #92400e;--c-1565c0: #1565c0;--c-1877f2: #1565c0;--c-2563eb: #1d4ed8;--c-2aabee: #0284c7;--c-3b82f6: #1d4ed8;--c-60a5fa: #1d4ed8;--c-90caf9: #1d4ed8;--c-1976d2: #1565c0;--c-4a6fa5: #4a6fa5;--c-9ba0ff: #4f46e5;--c-151525: #f4f5fa;--c-ff9800: #c26100;--c-vc-green: #15803d;--c-vc-blue: #1d4ed8;--c-vc-yellow: #a16207;--c-vc-red: #b91c1c;--c-4b7399: #4b7399;--c-6b3a2a: #6b3a2a;--c-86a666: #86a666;--c-b58863: #b58863;--c-d4b896: #d4b896;--c-dde6ef: #dde6ef;--c-f0d9b5: #f0d9b5;--c-ffffdd: #ffffdd;--ov-black-08: rgba(15, 23, 42, .06);--ov-black-15: rgba(15, 23, 42, .1);--ov-black-20: rgba(15, 23, 42, .12);--ov-black-25: rgba(15, 23, 42, .15);--ov-black-30: rgba(15, 23, 42, .18);--ov-black-35: rgba(15, 23, 42, .22);--ov-black-40: rgba(15, 23, 42, .25);--ov-black-50: rgba(15, 23, 42, .32);--ov-black-55: rgba(15, 23, 42, .35);--ov-black-60: rgba(15, 23, 42, .4);--ov-black-70: rgba(15, 23, 42, .5);--ov-black-75: rgba(15, 23, 42, .55);--ov-black-80: rgba(15, 23, 42, .6);--ov-black-85: rgba(15, 23, 42, .65);--ov-white-03: rgba(15, 23, 42, .02);--ov-white-04: rgba(15, 23, 42, .03);--ov-white-05: rgba(15, 23, 42, .04);--ov-white-06: rgba(15, 23, 42, .05);--ov-white-08: rgba(15, 23, 42, .06);--ov-white-10: rgba(15, 23, 42, .08);--ov-white-15: rgba(15, 23, 42, .12);--ov-white-20: rgba(15, 23, 42, .16);--ov-white-35: rgba(15, 23, 42, .3);--ov-white-50: rgba(15, 23, 42, .4);--ov-accent-00: rgba(79, 70, 229, 0);--ov-accent-05: rgba(79, 70, 229, .06);--ov-accent-06: rgba(79, 70, 229, .07);--ov-accent-08: rgba(79, 70, 229, .09);--ov-accent-10: rgba(79, 70, 229, .11);--ov-accent-12: rgba(79, 70, 229, .13);--ov-accent-15: rgba(79, 70, 229, .15);--ov-accent-18: rgba(79, 70, 229, .18);--ov-accent-20: rgba(79, 70, 229, .2);--ov-accent-25: rgba(79, 70, 229, .25);--ov-accent-30: rgba(79, 70, 229, .3);--ov-accent-35: rgba(79, 70, 229, .35);--ov-accent-50: rgba(79, 70, 229, .45);--ov-success-12: rgba(46, 125, 50, .12);--ov-success-15: rgba(46, 125, 50, .15);--ov-success-20: rgba(46, 125, 50, .2);--ov-success-25: rgba(46, 125, 50, .25);--ov-success-30: rgba(46, 125, 50, .3);--ov-success-35: rgba(46, 125, 50, .35);--ov-success-15-alt: rgba(22, 163, 74, .15);--ov-success-15-alt2: rgba(22, 163, 74, .15);--ov-success-10-emerald: rgba(22, 163, 74, .12);--ov-success-20-emerald: rgba(22, 163, 74, .22);--ov-danger-10: rgba(220, 38, 38, .1);--ov-danger-15: rgba(220, 38, 38, .15);--ov-danger-20: rgba(220, 38, 38, .2);--ov-danger-25: rgba(220, 38, 38, .25);--ov-danger-30: rgba(220, 38, 38, .3);--ov-danger-15-r400: rgba(220, 38, 38, .15);--ov-danger-25-r400: rgba(220, 38, 38, .25);--ov-danger-08-r400: rgba(220, 38, 38, .1);--ov-danger-40-r400: rgba(220, 38, 38, .35);--ov-danger-15-r500: rgba(220, 38, 38, .15);--ov-danger-25-r500: rgba(220, 38, 38, .25);--ov-danger-30-r500: rgba(220, 38, 38, .28);--ov-danger-15-r400b: rgba(220, 38, 38, .15);--ov-danger-10-r600: rgba(220, 38, 38, .1);--ov-danger-20-r600: rgba(220, 38, 38, .18);--ov-danger-20-burgundy: rgba(185, 28, 28, .2);--ov-warning-08: rgba(180, 83, 9, .1);--ov-warning-10: rgba(180, 83, 9, .12);--ov-warning-15: rgba(180, 83, 9, .15);--ov-warning-20: rgba(180, 83, 9, .2);--ov-warning-25: rgba(180, 83, 9, .25);--ov-warning-20-orange: rgba(180, 83, 9, .22);--ov-warning-20-yellow: rgba(180, 83, 9, .22);--ov-warning-20-amber: rgba(180, 83, 9, .22);--ov-info-15: rgba(21, 101, 192, .1);--ov-info-20: rgba(21, 101, 192, .14);--ov-info-40: rgba(21, 101, 192, .2);--ov-slate-50: rgba(255, 255, 255, .55);--ov-slate-85: rgba(255, 255, 255, .85);--ov-slate-50-gray: rgba(255, 255, 255, .5);--ov-slate-60-gray: rgba(255, 255, 255, .6);--ov-slate-70-gray: rgba(15, 23, 42, .1);--ov-neutral-08: rgba(100, 116, 139, .08);--ov-neutral-15: rgba(100, 116, 139, .15);--ov-neutral-20: rgba(100, 116, 139, .2);--ov-neutral-25: rgba(100, 116, 139, .25);--ov-text-muted-15: rgba(100, 116, 139, .15);--ov-text-muted-20: rgba(100, 116, 139, .2);--shadow-sm: 0 1px 4px var(--ov-black-15);--shadow-md: 0 2px 8px var(--ov-black-20);--shadow-lg: 0 4px 16px var(--ov-black-30);--scrollbar-track: #eef0f5;--scrollbar-thumb: #b0b6c4;--scrollbar-thumb-hover: #4f46e5;--tab-active-bg: #4f46e5;--tab-active-fg: #ffffff;--tab-active-border: #4f46e5;--tab-active-hover-bg: #4338ca}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:var(--scrollbar-track)}*::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:5px}*::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}*{scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}:is(.precision-tab--active,.precision-objective-segment--active,.precision-subnav__item--active,.precision-subnav__item[data-active=true],.precision-attempts__filter--active,.precision-trends__toggle-btn--active,.puzzle-browser-tab.active,.puzzle-gen-engine-tab.active,.puzzle-filters__theme-chip.active,.filter-btn.active,.puzzle-sort-btn.active,.players-tab.active,.players-rating-btn.active,.challenge-preset-btn.active,.rating-history__filter.active,.workshop-section-tab.active,.workshop-mode-tab.active,.workshop-category-tab.active,.workshop-tag-chip--active,.lobby-mode-tab.active,.tc-btn.active,.tc-tab.active,.rating-filter__mode-btn.active,.color-btn.active,.tnr-status-tab.active,.tnr-chip.active,.tcm-tc-cat.active,.tcm-preset.active,.tournament-type-tab.active,.tournament-round-tab.active,.tournament-tab--active,.set-position-tab.active,.analysis-mobile-tab.active,.lessons-tab--active,.players-authors-tab__sort-btn.active,.user-course-editor__mobile-tabs button[aria-selected=true],.diagram-editor__mode-btn--active,.broadcast-round-btn--active,.broadcast-round-tab--active,.broadcast-tab--active,.drill-count-attackers__btn--active,.drill-count-attackers__btn[data-active=true],.drill-leaderboard__filter-btn[aria-pressed=true],.drill-leaderboard__filter-btn--active,.engine-source-btn.active,.play-tc-btn.active,.feedback-type-btn.active,.precision-chip--active):is(:hover,:active,:focus,:focus-visible){background:var(--tab-active-bg)!important;color:var(--tab-active-fg)!important;border-color:var(--tab-active-border)!important;-webkit-tap-highlight-color:transparent}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--c-1a1a2e);color:var(--c-e0e0e0);min-height:100vh;min-height:100dvh;overflow-x:hidden}.emoji-icon,.sidebar-icon,.lobby-teaser__image,.lobby-feedback-teaser__icon,.dash-action-icon,.mobile-bar-icon,.chat-widget-btn{font-family:"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji",sans-serif}.guest-banner{background:var(--c-2a2a4e);border:1px solid var(--c-4a4a7e);border-radius:6px;padding:8px 16px;margin-bottom:12px;text-align:center;font-size:14px}.guest-banner a{color:var(--c-7c83ff);text-decoration:none;font-weight:600}.guest-banner a:hover{text-decoration:underline}body:has(.game-page){overflow:hidden}body:has(.analysis-page){overflow:hidden}a{color:var(--c-7c83ff);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;border:none;border-radius:6px;padding:10px 20px;font-size:14px;font-weight:600;background:var(--c-7c83ff);color:var(--c-fff);transition:background .2s;font-family:inherit}button:hover{background:var(--c-6366f1)}button:disabled{opacity:.5;cursor:not-allowed}input:not([type=range]):not([type=checkbox]):not([type=radio]){padding:10px 14px;border:1px solid var(--c-333);border-radius:6px;background:var(--c-16213e);color:var(--c-e0e0e0);font-size:14px;outline:none}input:not([type=range]):not([type=checkbox]):not([type=radio]):focus{border-color:var(--c-7c83ff)}input[type=range]{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;background:transparent;border:none;padding:0}.help-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--ov-accent-15);color:var(--c-7c83ff);font-size:13px;font-weight:700;text-decoration:none;margin-left:8px;vertical-align:middle;transition:background .2s;flex-shrink:0}.help-btn:hover{background:var(--ov-accent-30);text-decoration:none}.ks-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:var(--c-0f172a);color:var(--c-e0e0e0);border:1px solid var(--c-334155);border-radius:6px;padding:8px 32px 8px 12px;font-size:13px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23888'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;transition:border-color .15s,box-shadow .15s}.ks-select:hover{border-color:var(--c-7c83ff)}.ks-select:focus{border-color:var(--c-7c83ff);box-shadow:0 0 0 2px var(--ov-accent-20);outline:none}.ks-range{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:4px;background:var(--c-334155);border-radius:2px;outline:none;cursor:pointer}.ks-range::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--c-7c83ff);cursor:pointer;border:none;box-shadow:0 1px 4px var(--ov-black-30)}.ks-range::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--c-7c83ff);cursor:pointer;border:none;box-shadow:0 1px 4px var(--ov-black-30)}.ks-range::-moz-range-track{background:var(--c-334155);height:4px;border-radius:2px;border:none}.reconnect-toast{position:fixed;top:16px;left:50%;transform:translate(-50%);background:var(--c-1e293b);color:var(--c-f1f5f9);padding:8px 20px;border-radius:6px;font-size:14px;z-index:10000;box-shadow:0 2px 8px var(--ov-black-40);animation:reconnect-fade 4s ease-out forwards}@keyframes reconnect-fade{0%,70%{opacity:1}to{opacity:0}}.server-busy-banner{display:flex;align-items:center;gap:10px;background:var(--c-1e3a5f);color:var(--c-e0f2fe);padding:10px 16px;border-radius:6px;font-size:14px;margin-bottom:12px;border:1px solid var(--c-2563eb)}.server-busy-banner__spinner{width:16px;height:16px;border:2px solid var(--c-60a5fa);border-top-color:transparent;border-radius:50%;animation:busy-spin .8s linear infinite;flex-shrink:0}@keyframes busy-spin{to{transform:rotate(360deg)}}.test-mode-banner{display:flex;align-items:center;justify-content:center;gap:8px;height:36px;background:var(--c-f59e0b);color:var(--c-1a1a2e);font-size:13px;font-weight:500;z-index:10001;position:relative}.test-mode-banner a{color:var(--c-1e3a5f);text-decoration:underline;font-weight:600}.test-mode-banner__close{position:absolute;right:12px;background:none;border:none;color:var(--c-1a1a2e);font-size:18px;cursor:pointer;line-height:1;opacity:.7}.test-mode-banner__close:hover{opacity:1}.feedback-modal{max-width:480px}.feedback-form{padding:16px;display:flex;flex-direction:column;gap:14px}.feedback-field{display:flex;flex-direction:column;gap:4px}.feedback-field label{font-size:13px;color:var(--c-94a3b8)}.feedback-field input,.feedback-field textarea{background:var(--c-0f172a);border:1px solid var(--c-334155);border-radius:6px;color:var(--c-e2e8f0);padding:8px 10px;font-size:13px;font-family:inherit}.feedback-field textarea{resize:vertical}.feedback-type-btns{display:flex;gap:6px}.feedback-type-btn{flex:1;padding:6px 10px;border-radius:6px;border:1px solid var(--c-334155);background:var(--c-1e293b);color:var(--c-e2e8f0);font-size:13px;cursor:pointer}.feedback-type-btn.active{border-color:var(--tab-active-border);background:var(--tab-active-bg);color:var(--tab-active-fg)}.feedback-submit-btn{background:var(--c-7c83ff);color:var(--c-fff);border:none;padding:10px;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer}.feedback-submit-btn:disabled{opacity:.5}.feedback-error{color:var(--c-f87171);font-size:13px}.feedback-success{padding:30px;text-align:center;color:var(--c-4ade80);font-size:15px}.feedback-done-btn{margin-top:16px;background:var(--c-7c83ff);color:var(--c-fff);border:none;padding:8px 24px;border-radius:6px;cursor:pointer;font-size:14px}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}.skeleton-pulse{animation:skeleton-pulse 1.5s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.skeleton-pulse{animation:none}}.header{position:fixed;top:0;left:0;right:0;z-index:100}.app{padding-top:48px;display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.header-nav{display:flex;align-items:center;justify-content:space-between;padding:0 20px;background:var(--c-16213e);border-bottom:1px solid var(--c-1a1a3e);height:48px}.header-left{display:flex;align-items:center;flex-shrink:0}.logo{font-size:20px;font-weight:700;color:var(--c-fff)}.logo:hover{text-decoration:none}.header-center{display:flex;align-items:center;gap:4px}.header-nav-link{color:var(--c-8888aa);text-decoration:none;font-size:14px;font-weight:500;padding:12px 14px;border-bottom:2px solid transparent;transition:color .15s,border-color .15s;line-height:22px}.header-nav-link:hover{color:var(--c-c0c0e0);text-decoration:none}.header-nav-link.active{color:var(--c-fff);border-bottom-color:var(--c-7c83ff)}.header-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.header-icon-btn{position:relative;background:none;border:none;color:var(--c-8888aa);cursor:pointer;padding:8px;border-radius:6px;display:inline-flex;align-items:center;transition:color .15s,background .15s}.header-icon-btn:hover{color:var(--c-fff);background:var(--ov-white-08);text-decoration:none}.header-icon-badge{position:absolute;top:2px;right:0;background:var(--c-e53935);color:var(--c-fff);font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 3px}.online-counter{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--c-666);font-weight:400;padding:0 6px}.online-counter__dot{width:6px;height:6px;border-radius:50%;background:var(--c-4caf50);display:inline-block}.active-game-btn{display:inline-flex;align-items:center;gap:4px;background:var(--ov-success-20);color:var(--c-4caf50);font-size:12px;font-weight:700;padding:4px 10px;border-radius:4px;text-decoration:none;animation:active-game-pulse 2s ease-in-out infinite}.active-game-btn:hover{background:var(--ov-success-35);text-decoration:none}@keyframes active-game-pulse{0%,to{opacity:1}50%{opacity:.7}}.lang-switcher{background:var(--ov-accent-15);color:var(--c-7c83ff);font-size:11px;font-weight:700;padding:3px 8px;border-radius:4px;cursor:pointer;border:none;letter-spacing:.5px;transition:background .2s}.lang-switcher:hover{background:var(--ov-accent-30)}.hamburger{display:none;flex-direction:column;gap:4px;background:transparent;padding:8px;border-radius:4px}.hamburger span{display:block;width:20px;height:2px;background:var(--c-e0e0e0);border-radius:1px}.hamburger:hover{background:var(--ov-white-10)}.social-login-buttons{display:flex;align-items:center;gap:8px}.social-login-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--ov-white-10);color:var(--c-fff);text-decoration:none;transition:background .2s}.social-login-btn:hover{background:var(--ov-white-20)}.dropdown{position:relative}.dropdown-toggle{background:transparent;color:var(--c-7c83ff);padding:6px 12px;font-size:14px;display:flex;align-items:center;gap:4px}.dropdown-toggle:hover{color:var(--c-fff);background:var(--ov-white-10)}.dropdown-toggle.nav-user{color:var(--c-a0a0c0)}.dropdown-toggle.nav-user:hover{color:var(--c-fff)}.nav-user__icon{display:none;font-size:20px}.dropdown-arrow{font-size:10px}.dropdown-menu{position:absolute;top:100%;left:0;margin-top:4px;background:var(--c-1e2a4a);border:1px solid var(--c-2a3a5e);border-radius:8px;min-width:180px;padding:4px 0;z-index:100;box-shadow:0 8px 24px var(--ov-black-30)}.dropdown-menu--right{left:auto;right:0}.dropdown-menu a,.dropdown-menu button{display:block;width:100%;padding:10px 16px;color:var(--c-e0e0e0);background:transparent;border:none;border-radius:0;text-align:left;font-size:14px;font-weight:400;cursor:pointer}.dropdown-menu a:hover,.dropdown-menu button:hover{background:var(--ov-accent-15);color:var(--c-fff);text-decoration:none}.nav-btn{background:transparent;color:var(--c-a0a0c0);padding:6px 12px}.nav-btn:hover{color:var(--c-fff);background:var(--ov-white-10)}.main{max-width:1200px;margin:0 auto;padding:24px}.app:has(.game-page){display:flex;flex-direction:column;height:100dvh;overflow:hidden}.main:has(.game-page){max-width:none;padding:0;flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.app:has(.analysis-page){display:flex;flex-direction:column;height:100dvh}.main:has(.analysis-page){max-width:none;margin:0;padding:0;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}body.has-analysis-page .main{max-width:none;margin:0;padding:0;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.nav-notification-wrapper{position:relative;display:inline-flex}.nav-notification-btn{background:none;border:none;cursor:pointer;position:relative}.nav-notification-badge{position:absolute;top:-4px;right:-6px;background:var(--c-e53935);color:var(--c-fff);font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 3px}.notification-dropdown{position:absolute;top:100%;right:0;width:320px;max-height:400px;background:var(--c-1e1e3a);border:1px solid var(--c-333);border-radius:8px;box-shadow:0 8px 24px var(--ov-black-50);z-index:1000;overflow:hidden;margin-top:8px}.notification-dropdown__header{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-bottom:1px solid var(--c-333)}.notification-dropdown__title{font-weight:600;font-size:14px;color:var(--c-e0e0ff)}.notification-dropdown__mark-all{background:none;border:none;color:var(--c-7c83ff);font-size:12px;cursor:pointer}.notification-dropdown__mark-all:hover{text-decoration:underline}.notification-dropdown__list{max-height:340px;overflow-y:auto}.notification-dropdown__empty{padding:24px;text-align:center;color:var(--c-888);font-size:13px}.notification-item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;cursor:pointer;border-bottom:1px solid var(--c-2a2a4a)}.notification-item:hover{background:var(--c-2a2a4a)}.notification-item--unread{background:var(--c-1a1a3e);border-left:3px solid var(--c-7c83ff)}.notification-item__icon{font-size:16px;flex-shrink:0;margin-top:2px}.notification-item__body{flex:1;min-width:0}.notification-item__text{display:block;font-size:13px;color:var(--c-ccc);line-height:1.3}.notification-item--unread .notification-item__text{color:var(--c-e0e0ff);font-weight:500}.notification-item__time{display:block;font-size:11px;color:var(--c-666);margin-top:2px}.app-body{display:flex;flex:1;min-height:0}.app-body:has(>.sidebar){padding-left:88px}.app-body>.main{flex:1;min-width:0;overflow-y:auto}.sidebar{position:fixed;top:48px;left:0;bottom:0;width:88px;background:var(--c-0f0f1e);border-right:1px solid var(--c-2a2a4e);display:flex;flex-direction:column;align-items:center;padding:16px 0;z-index:90;box-sizing:border-box;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;-ms-overflow-style:none}.sidebar::-webkit-scrollbar{width:0;height:0;display:none}.sidebar-main{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%}.sidebar-spacer{flex:1 1 auto}.sidebar-footer{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%}button.sidebar-item{background:transparent;border:none;cursor:pointer;font-family:inherit;padding:0}.sidebar-item{width:60px;height:60px;display:flex;align-items:center;justify-content:center;border-radius:12px;text-decoration:none;color:var(--c-9e9e9e);font-size:38px;position:relative;transition:background .15s,color .15s}.sidebar-item[title]:hover:after{content:attr(title);position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);background:var(--c-1a1a2e);border:1px solid var(--c-2a2a4e);color:var(--c-e0e0e0);font-size:12px;padding:4px 8px;border-radius:4px;white-space:nowrap;z-index:200;pointer-events:none;box-shadow:0 2px 8px var(--ov-black-30)}.sidebar-item:hover,.sidebar-item:focus,.sidebar-item:focus-visible{background:var(--ov-accent-10);color:var(--c-e0e0e0);text-decoration:none}.sidebar-item:hover .sidebar-icon,.sidebar-item:focus .sidebar-icon{text-decoration:none}.sidebar-item--active{color:var(--c-7c83ff);background:var(--ov-accent-12)}.sidebar-item--active:before{content:"";position:absolute;left:-14px;top:10px;bottom:10px;width:3px;background:var(--c-7c83ff);border-radius:0 2px 2px 0}.sidebar-icon{font-size:38px;line-height:1;display:inline-flex;align-items:center;justify-content:center}.sidebar-divider{width:44px;height:1px;background:var(--c-2a2a4e);margin:8px 0;flex-shrink:0}@media(max-width:768px){.sidebar{display:none}.app-body:has(>.sidebar){padding-left:0}}.sidebar-submenu{position:relative;width:100%;display:flex;justify-content:center}.sidebar-submenu__parent{position:relative}.sidebar-submenu__chevron{position:absolute;right:4px;bottom:3px;font-size:14px;line-height:1;color:var(--c-9e9e9e);transition:transform .15s ease,color .15s;pointer-events:none}.sidebar-submenu__parent:hover .sidebar-submenu__chevron,.sidebar-submenu__parent--open .sidebar-submenu__chevron{color:var(--c-7c83ff)}.sidebar-submenu__parent--open .sidebar-submenu__chevron{transform:rotate(90deg)}.sidebar-submenu__popover{z-index:150;min-width:200px;margin-left:8px;padding:6px 0;background:var(--c-1a1a2e);border:1px solid var(--c-2a2a4e);border-radius:10px;box-shadow:0 8px 24px var(--ov-black-40);animation:sidebar-submenu__popover-enter .15s cubic-bezier(.2,.8,.2,1)}@keyframes sidebar-submenu__popover-enter{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:translate(0)}}.sidebar-submenu__item{display:flex;align-items:center;gap:10px;padding:8px 14px;color:var(--c-e0e0e0);font-size:14px;border-left:3px solid transparent;transition:background .15s,color .15s,border-color .15s}.sidebar-submenu__item:hover,.sidebar-submenu__item:focus,.sidebar-submenu__item:focus-visible{background:var(--ov-accent-10);color:var(--c-fff);outline:none}.sidebar-submenu__item,.sidebar-submenu__item:hover,.sidebar-submenu__item:focus,.sidebar-submenu__item:focus-visible,.sidebar-submenu__item:active,.sidebar-submenu__item:visited{text-decoration:none}.sidebar-submenu__item--active{color:var(--c-7c83ff);background:var(--ov-accent-12);border-left-color:var(--c-7c83ff)}.sidebar-submenu__item-icon{font-size:18px;line-height:1;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:22px}.sidebar-submenu__item-label{font-size:14px;line-height:1.2}.header-nav-menu{display:flex;align-items:center;gap:2px}.nav-menu-item{padding:8px 14px;color:var(--c-9e9e9e);text-decoration:none;font-size:14px;font-weight:500;border:none;background:none;cursor:pointer;border-bottom:2px solid transparent;transition:color .15s,border-color .15s;margin-bottom:-1px}.nav-menu-item:hover{color:var(--c-e0e0e0);border-bottom-color:var(--ov-accent-30)}.nav-menu-item--active{color:var(--c-7c83ff);border-bottom-color:var(--c-7c83ff)}.nav-menu-dropdown{position:relative}.nav-dropdown-panel{position:absolute;top:100%;left:0;background:var(--c-1a1a2e);border:1px solid var(--c-2a2a4e);border-radius:6px;padding:4px 0;min-width:160px;z-index:100;box-shadow:0 4px 12px var(--ov-black-40);animation:dropdown-fade .15s ease}@keyframes dropdown-fade{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.nav-dropdown-panel a{display:block;padding:8px 16px;color:var(--c-ccc);text-decoration:none;font-size:13px}.nav-dropdown-panel a:hover{background:var(--ov-accent-10);color:var(--c-e0e0e0)}@media(max-width:768px){.header-nav-menu{display:none}}.mobile-bottom-bar{display:none;position:fixed;bottom:0;left:0;right:0;height:56px;background:var(--c-0f0f1e);border-top:1px solid var(--c-2a2a4e);z-index:90;padding:4px 0;padding-bottom:env(safe-area-inset-bottom,0)}@media(max-width:768px){.mobile-bottom-bar{display:flex;justify-content:space-around}.main{padding-bottom:80px}}.mobile-bar-item{display:flex;flex-direction:column;align-items:center;padding:4px 8px;color:var(--c-9e9e9e);text-decoration:none;font-size:10px;border:none;background:none;cursor:pointer;gap:2px}.mobile-bar-item,.mobile-bar-item:hover,.mobile-bar-item:focus,.mobile-bar-item:focus-visible,.mobile-bar-item:active,.mobile-bar-item:visited,.mobile-bar-item .mobile-bar-label,.mobile-bar-item:hover .mobile-bar-label,.mobile-bar-item:focus .mobile-bar-label,.mobile-bar-item:active .mobile-bar-label{text-decoration:none}.mobile-bar-item--active{color:var(--c-7c83ff)}.mobile-bar-icon{font-size:18px}.mobile-bar-label{font-size:10px}.mobile-more-menu{position:absolute;bottom:100%;right:8px;background:var(--c-1a1a2e);border:1px solid var(--c-2a2a4e);border-radius:8px;padding:4px 0;min-width:220px;max-width:calc(100vw - 16px);max-height:70vh;overflow-y:auto;box-shadow:0 -4px 12px var(--ov-black-40)}.mobile-more-menu a,.mobile-more-feedback-btn{display:block;padding:10px 16px;color:var(--c-ccc);text-decoration:none;font-size:14px}.mobile-more-menu a:hover,.mobile-more-feedback-btn:hover,.mobile-more-feedback-btn:focus,.mobile-more-feedback-btn:focus-visible{background:var(--ov-accent-10)}.mobile-more-menu a,.mobile-more-menu a:hover,.mobile-more-menu a:focus,.mobile-more-menu a:focus-visible,.mobile-more-menu a:active,.mobile-more-menu a:visited{text-decoration:none}.mobile-more-group{padding:2px 0}.mobile-more-group+.mobile-more-group{border-top:1px solid var(--c-2a2a4e);margin-top:4px;padding-top:6px}.mobile-more-group__title{padding:6px 16px 4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--c-9e9e9e)}.mobile-more-feedback-btn{width:100%;text-align:left;background:transparent;border:none;font-family:inherit;font-weight:400;cursor:pointer}@media(max-width:360px){.mobile-more-menu{min-width:200px}.mobile-more-menu a,.mobile-more-feedback-btn{padding:8px 12px;font-size:13px}.mobile-more-group__title{padding:4px 12px 2px;font-size:10px}.mobile-more-group+.mobile-more-group{margin-top:2px;padding-top:4px}}.dashboard-page{max-width:900px;margin:0 auto;padding:24px 16px}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:768px){.dashboard-grid{grid-template-columns:1fr}}.dashboard-col{display:flex;flex-direction:column;gap:16px}.dashboard-card{background:var(--c-1a1a2e);border:1px solid var(--c-2a2a4e);border-radius:8px;padding:16px;transition:border-color .15s}.dashboard-card:hover{border-color:var(--c-3a3a6e)}.dashboard-card h2{margin:0 0 12px;font-size:16px;color:var(--c-e0e0e0)}.dashboard-active-game{display:block;padding:10px;background:var(--ov-success-15);border:1px solid var(--ov-success-30);border-radius:6px;color:var(--c-4caf50);text-decoration:none;font-weight:600;margin-bottom:12px;text-align:center}.dashboard-tc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px;margin-bottom:12px}.dashboard-tc-btn{display:flex;flex-direction:column;align-items:center;padding:12px 8px;background:var(--c-12122a);border:1px solid var(--c-2a2a4e);border-radius:6px;color:var(--c-e0e0e0);text-decoration:none;transition:border-color .15s}.dashboard-tc-btn:hover{border-color:var(--c-7c83ff)}.dashboard-tc-label{font-size:16px;font-weight:700}.dashboard-tc-type{font-size:11px;color:var(--c-9e9e9e)}.dashboard-play-links,.dashboard-puzzle-links,.dashboard-workshop-links{display:flex;flex-direction:column;gap:6px}.dashboard-link{color:var(--c-7c83ff);text-decoration:none;font-size:14px;padding:4px 0}.dashboard-link:hover{text-decoration:underline}.dashboard-link--all{margin-top:8px;font-weight:500}.dashboard-empty{color:var(--c-9e9e9e);font-size:13px}.dashboard-tournament-list{display:flex;flex-direction:column;gap:6px}.dashboard-tournament-item{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;background:var(--c-12122a);border-radius:4px;text-decoration:none;color:var(--c-e0e0e0);font-size:13px}.dashboard-tournament-item:hover{background:var(--c-1e1e3a)}.dashboard-tournament-name{flex:1}.dashboard-tournament-status{font-size:11px;padding:2px 6px;border-radius:3px;text-transform:uppercase;font-weight:600}.dashboard-tournament-status--active{background:var(--ov-success-20);color:var(--c-4caf50)}.dashboard-tournament-status--upcoming{background:var(--ov-warning-20);color:var(--c-ffc107)}.dashboard-ratings{display:grid;grid-template-columns:1fr 1fr;gap:8px}.dashboard-rating-item{display:flex;justify-content:space-between;padding:8px 10px;background:var(--c-12122a);border-radius:4px}.dashboard-rating-label{color:var(--c-9e9e9e);font-size:13px}.dashboard-rating-value{color:var(--c-e0e0e0);font-weight:600;font-size:14px}.dashboard-action-cards{display:flex;flex-direction:column;gap:8px}.dash-action-card{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--c-12122a);border:1px solid var(--c-2a2a4e);border-radius:8px;text-decoration:none;color:var(--c-e0e0e0);transition:border-color .15s,background .15s;cursor:pointer}.dash-action-card:hover{border-color:var(--c-7c83ff);background:var(--c-1a1a3a)}.dash-action-card--compact{margin-top:10px;padding:10px 14px}.dash-action-icon{font-size:22px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--ov-accent-10);border-radius:8px;flex-shrink:0}.dash-action-text{display:flex;flex-direction:column;gap:2px;min-width:0}.dash-action-title{font-size:14px;font-weight:600;color:var(--c-e0e0e0)}.dash-action-desc{font-size:12px;color:var(--c-9e9e9e)}.sidebar-spacer{flex:1}.sidebar-feedback-btn{background:none;border:none;cursor:pointer;padding:8px;opacity:.6}.sidebar-feedback-btn:hover{opacity:1}.logo-beta{font-size:10px;font-weight:600;background:var(--c-f59e0b);color:var(--c-1a1a2e);padding:1px 5px;border-radius:4px;vertical-align:super;margin-left:2px;text-transform:uppercase}@media(max-width:480px){.logo{font-size:16px}.logo-beta{font-size:8px;padding:0 3px}.nav-user__icon{display:inline}.nav-user__text{display:none}}.header--focus-compact{display:none}@media(max-width:767px){.app.focus-mode-active>.header:not(.header--focus-compact){display:none}.app.focus-mode-active>.header.header--focus-compact{display:flex;align-items:center;justify-content:flex-start;padding:0 4px;background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);z-index:100;padding-top:env(safe-area-inset-top,0px);min-height:calc(44px + env(safe-area-inset-top,0px));height:calc(44px + env(safe-area-inset-top,0px))}.app.focus-mode-active{padding-top:calc(44px + env(safe-area-inset-top,0px))}.header--focus-compact__back{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--text-primary);font-size:14px;font-weight:600;cursor:pointer;min-height:44px;min-width:44px;padding:0 12px 0 8px;display:inline-flex;align-items:center;gap:6px;border-radius:6px;transition:background-color .12s ease}.header--focus-compact__back:hover{background:var(--ov-white-08)}.header--focus-compact__back:active{background:var(--ov-white-15)}.header--focus-compact__back:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.app.focus-mode-active .mobile-bottom-bar{display:none}.app.focus-mode-active .main{padding:0}}.auth-page{display:flex;justify-content:center;padding-top:60px}.auth-form{display:flex;flex-direction:column;gap:16px;width:100%;max-width:380px;padding:32px;background:var(--c-16213e);border-radius:12px}.auth-form h1{text-align:center;margin-bottom:8px}.auth-form p{text-align:center;color:var(--c-a0a0c0);font-size:14px}.oauth-buttons{display:flex;flex-direction:column;gap:12px}.oauth-button{display:flex;align-items:center;justify-content:center;gap:10px;padding:12px 20px;border:none;border-radius:8px;font-size:15px;font-weight:500;cursor:pointer;transition:opacity .2s,transform .1s;width:100%}.oauth-button:hover{opacity:.9;transform:translateY(-1px)}.oauth-button:active{transform:translateY(0)}.oauth-button--google{background:var(--c-fff);color:var(--c-3c4043)}.oauth-button--facebook{background:var(--c-1877f2);color:var(--c-fff)}.oauth-button--telegram{background:var(--c-2aabee);color:var(--c-fff)}.telegram-widget-container{display:flex;justify-content:center}.oauth-spinner{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:oauth-spin .7s linear infinite;flex-shrink:0}@keyframes oauth-spin{to{transform:rotate(360deg)}}.error{background:var(--ov-danger-15-r500);color:var(--c-ef4444);padding:10px;border-radius:6px;font-size:14px;text-align:center}.lobby-page{text-align:center;padding:16px 24px 24px;max-width:none;width:100%;box-sizing:border-box}.lobby-teasers{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:16px}@media(min-width:900px){.lobby-teasers{grid-template-columns:repeat(4,1fr)}}@media(max-width:480px){.lobby-teasers{grid-template-columns:1fr}}.lobby-teaser{background:var(--c-16213e);border:1px solid transparent;border-radius:16px;padding:18px 18px 16px;display:flex;flex-direction:column;align-items:center;gap:8px;transition:transform .15s,box-shadow .15s,background .15s,border-color .15s;text-decoration:none;color:inherit}.lobby-teaser--clickable{cursor:pointer}.lobby-teaser--clickable:hover{transform:translateY(-3px);background:var(--c-1b2a4e);border-color:var(--ov-accent-35);box-shadow:0 10px 28px var(--ov-black-35)}.lobby-teaser--clickable:focus-visible{outline:none;border-color:var(--c-7c83ff);box-shadow:0 0 0 3px var(--ov-accent-35)}.lobby-teaser:hover,.lobby-teaser:focus,.lobby-teaser:focus-visible,.lobby-teaser:hover .lobby-teaser__title,.lobby-teaser:hover .lobby-teaser__desc,.lobby-teaser:hover .lobby-teaser__image,.lobby-teaser:focus .lobby-teaser__title,.lobby-teaser:focus .lobby-teaser__desc,.lobby-teaser:focus .lobby-teaser__image{text-decoration:none}.lobby-teaser__image{font-size:40px;line-height:1;margin-bottom:0}.lobby-teaser__title{font-size:18px;font-weight:700;color:var(--c-e0e0e0);margin:0}.lobby-teaser__desc{font-size:14px;color:var(--c-a0a0c0);line-height:1.5;flex:1;margin:0}.lobby-teaser__btn{margin-top:4px;padding:8px 20px;background:var(--c-7c83ff);color:var(--c-fff);border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s;width:100%}.lobby-teaser__btn:hover{background:var(--c-6366f1)}.lobby-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--ov-black-70);display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.lobby-modal{background:var(--c-0f172a);border-radius:16px;padding:32px 24px 24px;position:relative;max-width:480px;width:100%;max-height:90vh;overflow-y:auto}.lobby-modal__close{position:absolute;top:12px;right:16px;background:transparent;border:none;color:var(--c-a0a0c0);font-size:24px;cursor:pointer;line-height:1;padding:4px 8px}.lobby-modal__close:hover{color:var(--c-fff)}.lobby-modal__desc{color:var(--c-a0a0c0);font-size:14px;margin-bottom:16px}.lobby-layout{display:flex;flex-direction:column;gap:24px;align-items:stretch}@media(min-width:1024px){.lobby-layout{display:grid;grid-template-columns:450px 1fr;gap:32px;align-items:start}}.lobby-play-area{min-width:0}.lobby-side-panel{display:flex;flex-direction:column;gap:0}.lobby-widget{background:var(--c-16213e);border-radius:12px;padding:20px;margin-bottom:16px;text-align:left}.lobby-widget__title{font-size:16px;font-weight:700;margin-bottom:12px;color:var(--c-e0e0e0)}.lobby-widget__loading{color:var(--c-a0a0c0);font-size:13px;margin-bottom:12px}.lobby-widget__content{margin-bottom:12px}.lobby-widget__stat{font-size:14px;color:var(--c-c0c0d8);margin-bottom:4px}.lobby-widget__themes{font-size:13px;color:var(--c-8080a0);margin-bottom:4px;text-transform:capitalize}.lobby-widget__actions{display:flex;gap:8px;flex-wrap:wrap}.lobby-widget__btn{display:inline-block;padding:8px 16px;background:var(--c-7c83ff);color:var(--c-fff);border-radius:6px;font-size:13px;font-weight:600;text-decoration:none;transition:background .2s}.lobby-widget__btn:hover{background:var(--c-6366f1);text-decoration:none}.lobby-widget__btn--secondary{background:var(--c-2a2a4a);color:var(--c-a0a0c0)}.lobby-widget__btn--secondary:hover{background:var(--c-3a3a5a)}.lobby-widget__game-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--c-2a2a4a);font-size:13px;color:var(--c-c0c0d8);text-decoration:none}.lobby-widget__game-row:last-child{border-bottom:none}.lobby-widget__game-row:hover{color:var(--c-fff);text-decoration:none}.lobby-widget__game-icon{flex-shrink:0}.lobby-widget__game-opponent{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lobby-widget__game-meta{color:var(--c-7080a0);text-transform:capitalize;flex-shrink:0}.lobby-widget__game-date{color:var(--c-606080);flex-shrink:0;font-size:12px}.lobby-page h1{margin-top:0;margin-bottom:4px;font-size:24px}.user-info{color:var(--c-a0a0c0);margin:0 0 12px;font-size:13px}.lobby-mode-tabs{display:flex;gap:0;justify-content:center;margin-bottom:24px;border-bottom:2px solid var(--c-2a2a4a)}.lobby-mode-tab{background:transparent;color:var(--c-a0a0c0);padding:12px 24px;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;font-size:16px;font-weight:600;cursor:pointer}.lobby-mode-tab.active{background:var(--tab-active-bg);color:var(--tab-active-fg);border-bottom-color:var(--tab-active-border);border-radius:6px 6px 0 0}.lobby-mode-tab:hover:not(.active){color:var(--c-ccc)}.lobby-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start;max-width:1200px;margin:0 auto}.lobby-column{min-width:0}.lobby-panel{background:var(--c-16213e);border-radius:16px;padding:20px 16px}.lobby-panel__title{margin-bottom:16px;font-size:18px}@media(min-width:769px){.lobby-mode-tabs{display:none}.lobby-mode-tabs--modal{display:flex}}@media(max-width:768px){.lobby-columns{grid-template-columns:1fr;gap:0}.lobby-column{display:none}.lobby-column--active{display:block}}.time-controls{display:flex;gap:12px;justify-content:center;margin-bottom:16px;flex-wrap:wrap}.tc-btn{background:var(--c-16213e);color:var(--c-a0a0c0);padding:8px 14px;border:2px solid transparent;font-weight:500;transition:background .15s,border-color .15s,color .15s}.tc-btn:hover:not(:disabled):not(.active){border-color:var(--c-7c83ff);color:var(--c-e0e0e0)}.tc-btn.active{background:var(--tab-active-bg);border-color:var(--tab-active-border);color:var(--tab-active-fg);font-weight:600}.tc-btn.active:hover:not(:disabled){background:var(--tab-active-hover-bg);border-color:var(--tab-active-border)}.play-btn{font-size:18px;padding:14px 48px}.tc-tabs{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;margin-bottom:16px}.tc-tab{background:transparent;color:var(--c-a0a0c0);padding:8px 16px;border-bottom:2px solid transparent;border-radius:0;font-size:14px}.tc-tab.active{background:var(--tab-active-bg);color:var(--tab-active-fg);border-bottom-color:var(--tab-active-border);border-radius:6px 6px 0 0;font-weight:600}.tc-tab:hover:not(:disabled){color:var(--c-e0e0e0)}.selected-tc-info{font-size:20px;font-weight:700;color:var(--c-7c83ff);margin-bottom:16px}.custom-tc-section{margin-bottom:24px}.custom-tc-btn{background:var(--c-16213e);color:var(--c-a0a0c0);padding:12px 24px;margin-bottom:16px}.custom-tc-btn:hover{color:var(--c-e0e0e0);border-color:var(--c-7c83ff)}.custom-tc-form{background:var(--c-16213e);border-radius:12px;padding:24px;max-width:360px;margin:0 auto 16px;text-align:left}.custom-tc-form h3{text-align:center;margin-bottom:16px;font-size:16px}.custom-tc-fields{display:flex;gap:16px;margin-bottom:16px}.custom-tc-fields label{display:flex;flex-direction:column;justify-content:flex-end;gap:6px;flex:1;font-size:13px;color:var(--c-a0a0c0)}.custom-tc-fields input[type=number]{width:100%;box-sizing:border-box;-moz-appearance:textfield;text-align:center;padding:8px;font-size:16px;background:var(--c-16213e);border:1px solid var(--c-333);border-radius:6px;color:var(--c-e0e0e0)}.custom-tc-fields input[type=number]:focus{border-color:var(--c-7c83ff);outline:none}.custom-tc-fields input[type=number]::-webkit-inner-spin-button,.custom-tc-fields input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.custom-tc-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.custom-tc-actions .cancel-btn{background:transparent;color:var(--c-a0a0c0)}.saved-controls{margin-bottom:16px}.saved-controls h3{font-size:14px;color:var(--c-a0a0c0);margin-bottom:8px}.saved-control-item{display:inline-flex;align-items:center;gap:4px;margin:0 4px 4px 0}.delete-btn{background:transparent;color:var(--c-666);padding:4px 8px;font-size:12px;line-height:1}.delete-btn:hover{color:var(--c-ef4444)}.searching{margin-top:16px;color:var(--c-a0a0c0);animation:pulse 1.5s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.rating-filter{margin-bottom:16px;max-width:360px;margin-left:auto;margin-right:auto}.rating-filter__header{margin-bottom:8px}.rating-filter__toggle{display:inline-flex;align-items:center;gap:8px;color:var(--c-a0a0c0);font-size:14px;cursor:pointer}.rating-filter__toggle input[type=checkbox]{width:auto;cursor:pointer}.rating-filter__body{background:var(--c-1a1a3a);border-radius:8px;padding:12px}.rating-filter__modes{display:flex;gap:4px;margin-bottom:12px}.rating-filter__mode-btn{flex:1;background:transparent;color:var(--c-a0a0c0);padding:6px 12px;font-size:13px;border:1px solid var(--c-2a2a4a);border-radius:6px}.rating-filter__mode-btn.active{color:var(--tab-active-fg);border-color:var(--tab-active-border);background:var(--tab-active-bg)}.rating-filter__fields{display:flex;gap:12px}.rating-filter__fields label{display:flex;align-items:center;gap:6px;flex:1;font-size:14px;color:var(--c-a0a0c0)}.rating-filter__fields label span{min-width:20px;text-align:center;font-weight:600}.rating-filter__fields input{width:100%}.bot-option{margin-bottom:12px}.bot-option label{display:block;color:var(--c-a0a0c0);margin-bottom:8px;font-size:14px}.bot-level-picker{display:flex;align-items:center;justify-content:center;gap:12px}.bot-level-picker input[type=range]{width:200px;accent-color:var(--c-7c83ff)}.bot-level-value{font-size:20px;font-weight:700;color:var(--c-7c83ff);min-width:24px}.color-picker{display:flex;gap:8px;justify-content:center}.color-btn{background:var(--c-16213e);color:var(--c-a0a0c0);padding:8px 16px;border:2px solid transparent;transition:border-color .15s,box-shadow .15s,transform .1s}.color-btn:hover:not(:disabled):not(.active){border-color:var(--c-7c83ff);transform:translateY(-1px)}.color-btn.active{border-color:var(--tab-active-border);background:var(--tab-active-bg);color:var(--tab-active-fg);box-shadow:0 0 0 3px var(--ov-accent-35)}.color-btn--icon{width:52px;height:52px;padding:0;font-size:26px;display:flex;align-items:center;justify-content:center;border-radius:10px}.color-btn--white{background:#2a2a4a;color:#fff}.color-btn--black{background:#f1f1f1;color:#0d0d1a}.color-btn--random{background:linear-gradient(135deg,#2a2a4a 50%,#f1f1f1 50%);color:#fff;text-shadow:0 0 2px rgba(0,0,0,.6)}.bot-tc-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--ov-black-70);display:flex;align-items:center;justify-content:center;z-index:1000}.bot-tc-modal{background:var(--c-16213e);border-radius:16px;padding:28px 24px;min-width:280px;max-width:400px;width:90%;text-align:center}.bot-tc-modal__title{font-size:16px;font-weight:700;margin-bottom:16px;color:var(--c-e0e0e0)}.lobby-feedback-teaser{display:flex;align-items:center;gap:12px;background:var(--c-1e293b);border:1px solid var(--c-334155);border-radius:8px;padding:8px 14px;margin-bottom:0;text-decoration:none;color:var(--c-e2e8f0);transition:border-color .15s}.lobby-feedback-teaser,.lobby-feedback-teaser:hover,.lobby-feedback-teaser:focus,.lobby-feedback-teaser:focus-visible{text-decoration:none}.lobby-feedback-teaser:hover{border-color:var(--c-7c83ff)}.lobby-feedback-teaser__icon{font-size:20px}.lobby-feedback-teaser__text{display:flex;flex-direction:column;gap:1px;flex:1;text-align:left}.lobby-feedback-teaser__text strong{font-size:13px;text-decoration:none}.lobby-feedback-teaser__text span{font-size:12px;color:var(--c-94a3b8);text-decoration:none}.lobby-feedback-teaser__arrow{font-size:18px;color:var(--c-64748b)}.no-opponents-block{background:var(--c-16213e);border:1px solid var(--c-334155);border-radius:12px;padding:20px 16px;margin-top:16px;text-align:center}.no-opponents-block__title{font-size:18px;font-weight:700;color:var(--c-e0e0e0);margin:0 0 6px}.no-opponents-block__subtitle{font-size:14px;color:var(--c-94a3b8);margin:0 0 16px}.no-opponents-block__actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.no-opponents-block__btn{padding:10px 18px;font-size:14px}.play-btn.play-btn--secondary{background:transparent;border:1px solid var(--c-334155);color:var(--c-e0e0e0)}.play-btn.play-btn--secondary:hover:not(:disabled){border-color:var(--c-7c83ff)}.game-page{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:stretch;justify-content:center;gap:16px;height:100%;padding:16px;position:relative;overflow:hidden}html:has(.game-page),body:has(.game-page),.app:has(.game-page),.app-body:has(.game-page){overflow:hidden!important}.main:has(.game-page){overflow:hidden!important}.game-page>.back-nav-link{position:fixed;top:56px;left:16px;z-index:5;display:inline-flex;align-items:center;gap:6px;width:auto;flex-basis:auto;padding:6px 14px;border-radius:999px;background:var(--bg-elevated);border:1px solid var(--border-mid);color:var(--accent-primary, var(--c-7c83ff));font-size:13px;font-weight:500;text-decoration:none;white-space:nowrap;max-width:280px;box-shadow:0 2px 6px #00000014}.game-page>.back-nav-link:hover{background:var(--c-1e2d50);text-decoration:none}.game-page>.help-btn{position:fixed;top:56px;right:16px;z-index:5;margin-left:0;box-shadow:0 2px 6px #00000014}.game-board-area{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;contain:layout style;flex:1 1 auto;min-width:0;min-height:0;overflow:hidden;padding-top:32px}.player-info{display:flex;align-items:center;gap:12px;background:var(--bg-elevated, var(--c-16213e));border:1px solid var(--border-mid);padding:10px 16px;border-radius:10px;width:100%;max-width:var(--board-area-height, 560px);min-width:0;box-sizing:border-box}.color-indicator{width:14px;height:14px;border-radius:50%;flex-shrink:0}.color-indicator.white{background:var(--c-f0f0f0);border:1px solid var(--c-999)}.color-indicator.black{background:var(--c-333);border:1px solid var(--c-555)}.player-name{font-size:15px;font-weight:600;flex:1}.clock{font-size:24px;font-weight:700;font-variant-numeric:tabular-nums;min-width:70px;text-align:right}.board-container{border-radius:4px;overflow:hidden;aspect-ratio:1;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;will-change:transform;position:relative;max-width:100%;max-height:calc(100dvh - 200px);flex-shrink:1}.board-container [data-piece]{cursor:grab}.board-container.dragging,.board-container.dragging [data-piece]{cursor:grabbing}.promotion-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:transparent;display:flex;align-items:center;justify-content:center;z-index:1000}.promotion-dialog{display:flex;gap:6px;background:#1f1d1b;border:1px solid rgba(255,255,255,.12);padding:10px;border-radius:10px;box-shadow:0 8px 28px #0000008c}.promotion-piece{width:64px;height:64px;font-size:52px;line-height:64px;text-align:center;background:#3a3735;border:2px solid transparent;border-radius:6px;cursor:pointer;padding:0;transition:background .12s,border-color .12s,transform .05s}.promotion-piece:hover{background:#5a5552;border-color:#ffffff59}.promotion-piece:active{transform:scale(.96)}.promotion-piece:focus-visible{outline:none;border-color:#7c83ff;box-shadow:0 0 0 3px #7c83ff73}.promotion-piece--white{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.6)}.promotion-piece--black{color:#111;text-shadow:0 0 2px rgba(255,255,255,.8),0 0 6px rgba(255,255,255,.5)}.promotion-piece--svg{padding:4px;line-height:0}.promotion-piece__svg{width:100%;height:100%;object-fit:contain;display:block;pointer-events:none;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}.game-sidebar{display:flex;flex-direction:column;gap:12px;width:300px!important;flex-shrink:0;min-width:0;overflow:hidden;height:100%;min-height:0;padding-top:32px}.game-h-resizer{display:none}.move-list{background:var(--c-16213e);border-radius:8px;padding:16px;flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column}.move-list h3{margin-bottom:8px;font-size:14px;color:var(--c-a0a0c0)}.moves{display:flex;flex-wrap:wrap;align-content:flex-start;gap:2px}.move-pair{display:inline-flex;align-items:center;gap:4px;font-size:14px;padding:2px 4px}.move-number{color:var(--c-666);min-width:24px;flex-shrink:0}.move{min-width:0;flex:1}.game-moves-inline{display:block!important;font-size:15px;line-height:1.6;color:var(--c-e0e0e0);word-wrap:break-word;overflow-wrap:break-word}.game-move-item{display:inline;cursor:default;padding:1px 3px;border-radius:3px;color:var(--c-e0e0e0);font-weight:500}.game-move-item.current{background-color:var(--c-1565c0);color:var(--c-fff);font-weight:700;border-radius:4px;padding:2px 6px;margin:1px 2px;box-shadow:0 2px 4px var(--ov-info-40)}.game-actions-top{display:flex;justify-content:flex-end;gap:8px}.mute-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:36px;min-width:36px;padding:6px 12px;background:var(--bg-elevated, var(--c-16213e));border:1px solid var(--border-mid);color:var(--text-secondary);font-size:1rem;cursor:pointer;border-radius:999px;line-height:1;transition:background .15s,color .15s,border-color .15s}.mute-toggle:hover{background:var(--c-1e2d50);color:var(--text-primary);border-color:var(--accent-primary)}.mute-toggle.muted{opacity:.6}.game-actions{display:flex;flex-wrap:wrap;gap:8px}.game-actions button{flex:1 1 auto;min-height:36px;padding:8px 16px;background:var(--bg-elevated, var(--c-16213e));color:var(--text-primary);border:1px solid var(--border-mid);border-radius:999px;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.game-actions button:hover{color:var(--c-fff);background:var(--c-1e2d50);border-color:var(--accent-primary)}.draw-offer{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;background:var(--ov-warning-15);border:1px solid var(--c-fbbf24);border-radius:10px}.draw-offer p{flex:1 1 100%;margin:0;font-size:13px;color:var(--c-fbbf24);font-weight:500}.draw-offer button{flex:1 1 auto;min-height:36px;padding:8px 16px;border-radius:999px;border:1px solid var(--border-mid);background:var(--bg-elevated);color:var(--text-primary);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.draw-offer button:nth-of-type(1){background:var(--accent-primary, var(--c-7c83ff));color:var(--c-fff);border-color:var(--accent-primary, var(--c-7c83ff))}.draw-offer button:nth-of-type(1):hover{background:var(--c-6366f1);border-color:var(--c-6366f1)}.draw-offer button:nth-of-type(2):hover{background:var(--c-1e2d50);border-color:var(--accent-primary);color:var(--c-fff)}.game-result{background:var(--c-16213e);padding:16px;border-radius:8px;text-align:center}.game-result h3{margin-bottom:4px}.game-result-rating{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:8px;font-size:18px;font-weight:700}.rating-before{color:var(--c-a0a0c0)}.rating-arrow{color:var(--c-666)}.rating-after{color:var(--c-fff)}.rating-diff{font-size:14px;font-weight:600}.rating-diff.positive{color:var(--c-22c55e)}.rating-diff.negative{color:var(--c-ef4444)}.game-result-actions{display:flex;gap:8px;margin-top:12px;justify-content:center}.result-btn{display:inline-block;padding:8px 16px;background:var(--c-16213e);color:var(--c-a0a0c0);border-radius:6px;font-size:14px;font-weight:600;text-decoration:none}.result-btn:hover{background:var(--c-1e2d50);color:var(--c-fff);text-decoration:none}.result-btn-primary{background:var(--c-7c83ff);color:var(--c-fff)}.result-btn-primary:hover{background:var(--c-6366f1)}.game-result-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--ov-black-60);display:flex;align-items:center;justify-content:center;z-index:2000}.game-result-modal{background:var(--c-1e2a4a);border-radius:16px;width:360px;max-width:90vw;overflow:hidden;box-shadow:0 12px 40px var(--ov-black-50)}.result-modal-header{padding:20px 24px;text-align:center}.result-modal-header.win{background:var(--ov-success-15-alt)}.result-modal-header.win h2{color:var(--c-22c55e)}.result-modal-header.loss{background:var(--ov-danger-15-r500)}.result-modal-header.loss h2{color:var(--c-ef4444)}.result-modal-header.draw{background:var(--ov-accent-15)}.result-modal-header.draw h2{color:var(--c-7c83ff)}.result-modal-body{padding:16px 24px;text-align:center}.result-modal-detail{color:var(--c-a0a0c0);font-size:14px;margin-bottom:16px}.result-modal-rating{display:flex;flex-direction:column;align-items:center;gap:8px}.result-modal-rating .rating-label{color:var(--c-a0a0c0);font-size:13px}.rating-change-display{display:flex;align-items:center;gap:8px;font-size:24px;font-weight:700}.rating-change-display .rating-diff{font-size:18px}.result-modal-actions{display:flex;gap:8px;padding:16px 24px 20px;justify-content:center}.analysis-ratings{display:flex;flex-direction:column;gap:6px;margin-top:10px}.analysis-rating-row{display:flex;align-items:center;gap:8px;font-size:13px}.rating-change-inline{margin-left:auto;font-weight:600;font-size:13px}.analysis-link{display:inline-block;margin-top:8px;padding:8px 20px;background:var(--c-7c83ff);color:var(--c-fff);border-radius:6px;font-weight:600;font-size:14px}.analysis-link:hover{background:var(--c-6366f1);text-decoration:none}.review-moves{display:flex;flex-direction:column;gap:2px;max-height:400px;overflow-y:auto}.review-move{cursor:pointer;padding:2px 6px;border-radius:4px}.review-move:hover{background:var(--ov-accent-15)}.review-move.active{background:var(--c-7c83ff);color:var(--c-fff)}.review-controls{display:flex;gap:8px;justify-content:center}.review-controls button{flex:1;padding:10px;font-size:18px;background:var(--c-16213e);color:var(--c-e0e0e0);border:1px solid var(--c-333)}.review-controls button:hover:not(:disabled){background:var(--c-7c83ff);color:var(--c-fff);border-color:var(--c-7c83ff)}.review-back-link{display:block;text-align:center;padding:8px;color:var(--c-a0a0c0);font-size:14px}.game-record-link{text-decoration:none;color:inherit;transition:background .2s}.game-record-link:hover{background:var(--c-1a1a3e);text-decoration:none}.chat{background:var(--bg-elevated, var(--c-16213e));border:1px solid var(--border-mid);border-radius:12px;padding:12px 14px;padding-bottom:max(12px,env(safe-area-inset-bottom));display:flex;flex-direction:column;flex-shrink:0;min-height:180px;max-height:320px;gap:8px}.chat h3{font-size:13px;font-weight:600;color:var(--text-secondary);margin:0;text-transform:uppercase;letter-spacing:.04em}.chat-messages{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.chat-msg{font-size:13px;line-height:1.4;word-break:break-word}.chat-msg.own{color:var(--accent-primary, var(--c-7c83ff))}.chat-input{display:flex;gap:8px;align-items:stretch}.chat-input input{flex:1;min-width:0;min-height:36px;padding:8px 14px;font-size:13px;border-radius:999px;border:1px solid var(--border-mid);background:var(--c-0f172a, var(--bg-elevated));color:var(--text-primary)}.chat-input input:focus{outline:none;border-color:var(--accent-primary)}.chat-input button{min-height:36px;padding:8px 18px;font-size:13px;font-weight:600;border-radius:999px;border:1px solid var(--accent-primary, var(--c-7c83ff));background:var(--accent-primary, var(--c-7c83ff));color:var(--c-fff);cursor:pointer;transition:background .15s,border-color .15s}.chat-input button:hover{background:var(--c-6366f1);border-color:var(--c-6366f1)}@media(max-width:899px){.game-page{flex-direction:column;flex-wrap:nowrap;align-items:center;gap:12px;padding:48px 12px 12px;overflow-y:auto;height:auto;min-height:100%}.game-page>.help-btn{top:10px;right:12px}.game-page>.back-nav-link{top:10px;left:12px}.game-board-area{width:100%;align-items:center;flex:0 0 auto;overflow:visible;padding-top:0}.game-sidebar{width:100%!important;max-width:560px;margin:0 auto;flex:1 1 auto;height:auto;overflow:visible;gap:12px;padding-top:0}.game-actions button,.draw-offer button,.mute-toggle,.chat-input button,.chat-input input{min-height:44px}.chat{max-height:360px}.player-info{max-width:100%}}@media(max-width:414px){.game-page{padding:8px;gap:10px}}.bot-fallback-banner{display:flex;align-items:center;justify-content:center;gap:10px;padding:6px 14px;background:var(--c-f59e0b);color:var(--c-1a1a2e);font-size:13px;border-radius:6px;margin-bottom:8px}.bot-fallback-banner button{background:none;border:none;color:var(--c-1a1a2e);font-size:16px;cursor:pointer;opacity:.7;line-height:1}.bot-fallback-banner button:hover{opacity:1}.bot-debug-panel{position:fixed;bottom:0;left:0;right:0;background:var(--ov-black-70);color:var(--c-4ade80);font-family:monospace;font-size:11px;padding:4px 8px;z-index:9999;white-space:nowrap;overflow:hidden}.settings-page{max-width:500px;margin:0 auto;padding-top:20px}.settings-page h1{margin-bottom:24px}.settings-section{background:var(--c-16213e);border-radius:12px;padding:24px;margin-bottom:16px}.settings-section h2{font-size:16px;margin-bottom:16px;color:var(--c-a0a0c0)}.settings-field{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--ov-white-06)}.settings-field:last-child{border-bottom:none}.settings-label{color:var(--c-a0a0c0);font-size:14px}.settings-value{font-size:14px}.settings-section select{width:100%;padding:10px 14px;border:1px solid var(--c-333);border-radius:6px;background:var(--c-1a1a2e);color:var(--c-e0e0e0);font-size:14px;outline:none}.settings-section select:focus{border-color:var(--c-7c83ff)}.settings-form{display:flex;flex-direction:column;gap:12px}.board-theme-options{display:flex;gap:16px;flex-wrap:wrap;margin-top:8px}.board-theme-option{display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer}.board-theme-option input[type=radio]{display:none}.board-theme-preview{display:block;width:48px;height:48px;border-radius:4px;border:3px solid transparent;transition:border-color .15s}.board-theme-option.active .board-theme-preview{border-color:var(--c-81b64c)}.board-theme-label{font-size:12px;color:var(--c-ccc)}.settings-empty{color:var(--c-808098);font-size:14px}.settings-blocked-list{display:flex;flex-direction:column;gap:8px}.settings-blocked-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--c-16213e);border:1px solid var(--c-2a2a4e);border-radius:6px}.settings-blocked-name{color:var(--c-c0c0ff);text-decoration:none}.settings-blocked-name:hover{text-decoration:underline}.settings-unblock-btn{background:var(--c-16a34a);color:var(--c-fff);border:none;padding:5px 14px;border-radius:6px;font-size:13px;cursor:pointer}.settings-unblock-btn:hover{background:var(--c-15803d)}.game-meta-bar__mobile{display:none}.game-meta-bar__desktop{padding:6px 14px;border-bottom:1px solid var(--c-333)}.game-meta-bar__players{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.game-meta-bar__player{display:inline-flex;align-items:center;gap:4px}.game-meta-bar__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.game-meta-bar__dot--white{background:var(--c-f0f0f0);border:1px solid var(--c-999)}.game-meta-bar__dot--black{background:var(--c-333);border:1px solid var(--c-666)}.game-meta-bar__name{font-weight:600;font-size:13px;color:var(--c-e0e0e0)}.game-meta-bar__rating{font-size:11px;color:var(--c-999)}.game-meta-bar__result-badge{font-size:12px;font-weight:700;color:var(--c-7c83ff)}.game-meta-bar__opening{margin-top:4px;font-size:11px;color:var(--c-aaa)}.game-meta-bar__meta{margin-top:2px;font-size:11px;color:var(--c-777)}.game-meta-bar__result{font-size:12px;font-weight:700;color:var(--c-7c83ff);margin:0 2px}@media(max-width:768px){.game-meta-bar__desktop{display:none}.game-meta-bar__mobile{display:flex;align-items:center;gap:4px;padding:2px 8px;font-size:12px;overflow:hidden;white-space:nowrap;flex-shrink:0;height:20px}.game-meta-bar__mobile .game-meta-bar__dot{width:7px;height:7px}.game-meta-bar__mobile .game-meta-bar__name{font-size:12px}.game-meta-bar__mobile .game-meta-bar__rating{font-size:10px}}.analysis-page{display:flex;gap:0;justify-content:flex-start;align-items:stretch;overflow:hidden;width:100%;flex:1;min-height:0;padding:8px 8px 0;box-sizing:border-box}.analysis-board-area{display:flex;flex-direction:column;gap:0;align-items:stretch;overflow:hidden;flex:0 0 auto;min-width:0;max-width:65%}.eval-bar-container{width:44px;flex-shrink:0;display:flex;align-items:stretch}.eval-bar{width:44px;background:#262626;border-radius:4px;overflow:hidden;position:relative;display:flex;flex-direction:column-reverse}.eval-bar-white{background:#f5f5f5;height:100%;transform-origin:bottom center;transition:transform .3s ease;will-change:transform}.eval-bar-label{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:15px;font-weight:800;letter-spacing:.02em;color:#f0f0f5;text-shadow:0 0 1px rgba(0,0,0,.95),0 0 3px rgba(0,0,0,.7),0 0 6px rgba(0,0,0,.5);writing-mode:vertical-rl;text-orientation:mixed;white-space:nowrap}.analysis-board-wrapper{display:flex;flex-direction:column;align-items:stretch;gap:4px;flex:1;min-height:0;min-width:0;overflow:visible}.analysis-eval-board-row{display:flex;flex:0 1 auto;gap:0;align-items:stretch;min-height:0;min-width:0;overflow:visible;width:100%;padding-right:16px;box-sizing:border-box}.analysis-page .board-container{flex:1 1 0%;max-width:calc((100vh - 240px) * var(--analysis-board-size-scale, .92));min-width:0;align-self:flex-start}body[data-board-size=sm]{--analysis-board-size-scale: .78}body[data-board-size=md]{--analysis-board-size-scale: .92}body[data-board-size=lg]{--analysis-board-size-scale: 1}body[data-sidebar-font-size=sm]{--analysis-sidebar-font-scale: .85}body[data-sidebar-font-size=md]{--analysis-sidebar-font-scale: 1}body[data-sidebar-font-size=lg]{--analysis-sidebar-font-scale: 1.18}.sidebar-font-size{position:relative;display:inline-flex;align-items:center;flex-shrink:0}.sidebar-font-size__trigger{display:inline-flex;align-items:baseline;justify-content:center;gap:1px;width:30px;height:24px;padding:0 4px;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--c-a0a0c0);cursor:pointer;font-family:inherit;font-weight:700;line-height:1;transition:background .12s,border-color .12s,color .12s}.sidebar-font-size__trigger:hover,.sidebar-font-size__trigger[aria-expanded=true]{background:var(--ov-white-10, rgba(255, 255, 255, .08));border-color:var(--border-mid, var(--c-4a4a7e));color:var(--c-fff)}.sidebar-font-size__trigger:focus-visible{outline:2px solid var(--accent-primary, var(--c-7c83ff));outline-offset:2px}.sidebar-font-size__a{font-size:14px}.sidebar-font-size__a--small{font-size:10px}.sidebar-font-size__menu{position:absolute;top:calc(100% + 4px);right:0;display:inline-flex;background:var(--c-111827, #111827);border:1px solid var(--border-mid, var(--c-4a4a7e));border-radius:6px;box-shadow:0 6px 20px #00000073;overflow:hidden;z-index:50}.sidebar-font-size__item{min-width:32px;padding:6px 10px;background:transparent;border:none;color:var(--c-a0a0ff, #a0a0ff);cursor:pointer;font-family:inherit;font-size:13px;font-weight:700;border-left:1px solid var(--c-2a2a4e, #2a2a4e);transition:background .1s,color .1s}.sidebar-font-size__item:first-child{border-left:none}.sidebar-font-size__item:hover{background:var(--c-1a2436, #1a2436)}.sidebar-font-size__item.is-active{background:var(--accent-primary, var(--c-7c83ff));color:var(--c-fff, #ffffff)}.analysis-player-info{display:flex;align-items:center;gap:10px;background:var(--c-16213e);padding:8px 16px;border-radius:8px;min-width:280px;width:100%}.accuracy-badge{margin-left:auto;font-size:13px;font-weight:600;color:var(--c-7c83ff)}.analysis-board-controls{display:flex;gap:8px;justify-content:center;flex-shrink:0;position:relative;z-index:2;padding:4px 0}.analysis-board-controls button{background:var(--c-2a2a4e);color:var(--c-a0a0ff);border:1px solid var(--c-4a4a7e);border-radius:6px;padding:6px 14px;font-size:16px;min-width:40px;cursor:pointer;transition:background .15s}.analysis-board-controls button:hover:not(:disabled){background:var(--c-3a3a6e)}.analysis-board-controls button:disabled{opacity:.3;cursor:default}.analysis-controls-spacer{width:8px}.analysis-flip-btn{font-size:16px!important;padding:6px 10px!important}.analysis-board-size{display:inline-flex;align-items:stretch;gap:0;border:1px solid var(--c-4a4a7e);border-radius:6px;overflow:hidden;flex-shrink:0}.analysis-board-controls .analysis-board-size__btn{background:var(--c-2a2a4e);color:var(--c-a0a0ff);border:none!important;border-left:1px solid var(--c-4a4a7e)!important;border-radius:0!important;padding:6px 10px!important;min-width:28px;font-size:12px!important;font-weight:700;letter-spacing:.04em;cursor:pointer;transition:background .15s,color .15s}.analysis-board-controls .analysis-board-size__btn:first-child{border-left:none!important}.analysis-board-controls .analysis-board-size__btn:hover:not(:disabled){background:var(--c-3a3a6e)}.analysis-board-controls .analysis-board-size__btn.is-active{background:var(--c-7c83ff);color:var(--c-fff)}.analysis-export-btn{font-size:12px!important;padding:6px 10px!important;white-space:nowrap}.analysis-copy-msg{font-size:12px;margin-left:6px;padding:4px 8px;border-radius:4px;background:#0000000f;color:var(--color-text, #333);white-space:nowrap}.analysis-inline-eval{display:none}.analysis-overflow-wrapper{display:inline-block;position:relative}.analysis-overflow-btn{background:var(--c-fff, #fff);color:var(--text-secondary, #6b7280);border:1px solid var(--border-subtle, #e5e7eb);border-radius:4px;padding:4px 10px;font-size:16px;line-height:18px;cursor:pointer;height:28px}.analysis-overflow-btn:hover{background:var(--bg-tertiary, #f3f4f6);color:var(--text-primary, #111827)}.analysis-overflow-menu{position:absolute;bottom:100%;top:auto;right:0;background:var(--bg, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:6px;padding:4px 0;z-index:200;min-width:200px;box-shadow:0 -4px 12px #0000001f;margin-bottom:4px}.analysis-overflow-menu button{display:block;width:100%;padding:8px 14px;background:transparent;border:none;color:inherit;font-size:13px;text-align:left;cursor:pointer;white-space:nowrap}.analysis-overflow-menu button:hover:not(:disabled){background:var(--bg-tertiary, #f3f4f6)}.analysis-overflow-menu button:disabled{opacity:.4;cursor:default}.analysis-page{gap:8px}.analysis-v-resizer{height:8px;flex-shrink:0;cursor:row-resize;background:transparent;position:relative}.analysis-v-resizer:after{content:"";position:absolute;top:3px;left:0;right:0;height:2px;background:var(--c-1e2d50);border-radius:1px;transition:background .15s}.analysis-v-resizer:hover:after{background:var(--c-7c83ff)}.stockfish-panel{background:var(--c-16213e);border-radius:8px;padding:12px;box-sizing:border-box;overflow:hidden;contain:layout;flex-shrink:0;display:flex;flex-direction:column}.stockfish-panel-header{display:flex;align-items:center;justify-content:space-between;font-size:14px;color:var(--c-a0a0c0)}.stockfish-lines{display:flex;flex-direction:column;gap:8px;margin-top:8px;overflow-y:auto;overflow-x:hidden;width:100%;min-height:99px}.stockfish-line{display:flex;gap:8px;font-size:calc(14px * var(--analysis-sidebar-font-scale, 1));align-items:flex-start;width:100%;min-width:0}.stockfish-eval{min-width:44px;font-weight:700;color:var(--c-a0a0c0);font-variant-numeric:tabular-nums;flex-shrink:0;padding-top:1px}.stockfish-eval.best{color:var(--c-e0e0e0)}.stockfish-eval.mate{color:var(--c-ef4444)}.stockfish-pv{color:var(--c-a0a0c0);white-space:nowrap;line-height:1.4;overflow-x:auto;flex:1;min-width:0;scrollbar-width:thin;scrollbar-color:var(--c-3a3a5e) transparent;height:calc(1.4em + 8px)}.stockfish-pv::-webkit-scrollbar{height:3px}.stockfish-pv::-webkit-scrollbar-track{background:transparent}.stockfish-pv::-webkit-scrollbar-thumb{background:var(--c-3a3a5e);border-radius:2px}.stockfish-pv::-webkit-scrollbar-thumb:hover{background:var(--c-5a5a7e)}.review-game-info{padding:8px 12px;border-bottom:1px solid var(--c-333);font-size:13px}.review-game-info-opening{color:var(--c-7c83ff);font-size:12px;margin-bottom:4px}.review-game-info-players{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.review-game-info-player{display:flex;align-items:center;gap:4px;color:var(--c-e0e0e0)}.review-game-info-color{width:10px;height:10px;border-radius:2px}.review-game-info-color--white{background:var(--c-fff);border:1px solid var(--c-555)}.review-game-info-color--black{background:var(--c-333);border:1px solid var(--c-555)}.review-game-info-rating{color:var(--c-888);font-size:11px}.review-game-info-vs{color:var(--c-666);font-size:11px}.review-game-info-result{color:var(--c-aaa);font-size:12px;margin-top:2px}.review-game-info-meta{color:var(--c-666);font-size:11px;margin-top:2px}.analysis-sidebar{display:flex;flex-direction:column;gap:0;flex:1;min-width:280px;min-height:0;align-self:stretch;overflow:hidden;padding-bottom:env(safe-area-inset-bottom,0px);contain:inline-size;--analysis-sidebar-engine-share: 25%;--analysis-sidebar-archive-share: 30%;--analysis-sidebar-moves-share: 45%}.analysis-sidebar>.analysis-panel:not(.analysis-panel--flex){flex:0 0 auto;min-height:0}.analysis-sidebar>.analysis-panel:not(.analysis-panel--flex):has(>.analysis-panel-body){flex:0 0 var(--analysis-sidebar-engine-share)}.analysis-sidebar>.analysis-panel:not(.analysis-panel--flex)>.analysis-panel-body{flex:1 1 auto;min-height:0;max-height:none}.analysis-sidebar>.analysis-desktop-only:has(.archive-tree-panel){flex:0 0 auto;display:flex;flex-direction:column;min-height:0}.analysis-sidebar>.analysis-desktop-only:has(.archive-tree-panel__body){flex:0 0 var(--analysis-sidebar-archive-share)}.analysis-sidebar>.analysis-desktop-only>.archive-tree-panel{flex:1 1 auto;height:auto;max-height:none;min-height:0}.analysis-sidebar>.analysis-panel--flex{flex:1 1 var(--analysis-sidebar-moves-share);min-height:0}.analysis-sidebar>.analysis-panel--flex:not(:has(>.analysis-panel-body)){flex:0 0 auto}.analysis-panel{display:flex;flex-direction:column;border-bottom:1px solid var(--c-1e2d50);flex-shrink:0;overflow:hidden;width:100%}.analysis-panel--flex{flex:1;min-height:0;position:relative}.analysis-panel--flex:after{content:"";position:absolute;bottom:0;left:0;right:0;height:56px;background:linear-gradient(to bottom,transparent 0%,var(--ov-slate-50) 40%,var(--ov-slate-85) 70%,var(--c-0f172a) 100%);pointer-events:none;z-index:2}.analysis-panel-header{display:flex;align-items:center;justify-content:space-between;padding:0 12px;height:40px;background:var(--c-111827);cursor:pointer;-webkit-user-select:none;user-select:none;flex-shrink:0}.analysis-panel-header:hover{background:var(--c-1a2436)}.analysis-panel-header-left{display:flex;align-items:center;gap:8px;min-width:0;overflow:hidden}.analysis-panel-header-right{display:flex;align-items:center;gap:8px;margin-left:auto;flex-shrink:0}.analysis-panel-icon{font-size:14px;color:var(--c-7c83ff);flex-shrink:0}.analysis-panel-title{font-size:calc(13px * var(--analysis-sidebar-font-scale, 1));font-weight:600;color:var(--c-c0c0d0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.analysis-panel-chevron{font-size:12px;color:var(--c-6b7280);flex-shrink:0}.analysis-panel-back-link{font-size:12px;color:var(--c-7c83ff);text-decoration:none;white-space:nowrap}.analysis-panel-back-link:hover{text-decoration:underline}.analysis-panel-body{padding:10px 12px;background:var(--c-0f172a);overflow-y:auto;min-height:calc(132px * var(--analysis-sidebar-font-scale, 1));max-height:calc(132px * var(--analysis-sidebar-font-scale, 1))}.analysis-panel-body--scroll{display:flex;flex-direction:column;flex:1;min-height:0;max-height:none;overflow-y:auto;padding:0;scrollbar-gutter:stable;overscroll-behavior:contain}.analysis-player-row{display:flex;align-items:center;gap:8px;height:32px;padding:0 4px;background:var(--c-0f172a);border-radius:4px;width:100%;box-sizing:border-box}.analysis-player-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.analysis-player-dot--white{background:var(--c-f0f0f0);border:1px solid var(--c-666)}.analysis-player-dot--black{background:var(--c-1a1a1a);border:1px solid var(--c-555)}.analysis-player-name{font-size:13px;font-weight:600;color:var(--c-e0e0f0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.analysis-player-rating{font-size:12px;color:var(--c-7c83ff);margin-left:4px;flex-shrink:0}.analysis-game-players{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.analysis-game-player{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.analysis-game-player-name{font-size:13px;font-weight:600;color:var(--c-e0e0f0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.analysis-result-badge{font-size:14px;font-weight:700;color:var(--c-e0e0e0);background:var(--c-1e2d50);padding:2px 8px;border-radius:4px;white-space:nowrap;flex-shrink:0}.analysis-progress{background:var(--c-16213e);border-radius:8px;padding:12px}.analysis-progress-text{font-size:13px;color:var(--c-a0a0c0);margin-bottom:8px}.analysis-progress-bar{height:4px;background:var(--c-333);border-radius:2px;overflow:hidden}.analysis-progress-fill{height:100%;background:var(--c-7c83ff);transition:width .2s}.analysis-summary{background:var(--c-16213e);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:8px}.analysis-summary-player{display:flex;align-items:center;gap:8px}.accuracy-score{margin-left:auto;font-size:16px;font-weight:700;color:var(--c-7c83ff)}.analysis-error-counts{display:flex;gap:8px;padding-left:22px;margin-bottom:4px}.error-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;border-radius:4px;font-size:13px;font-weight:600;padding:0 6px}.error-count.inaccuracy{background:var(--ov-warning-20-yellow);color:var(--c-f7c631)}.error-count.mistake{background:var(--ov-warning-20-orange);color:var(--c-e6912c)}.error-count.blunder{background:var(--ov-danger-20-burgundy);color:var(--c-ca3431)}.analysis-error-legend{display:flex;gap:12px;font-size:12px;color:var(--c-a0a0c0);padding:0 4px}.legend-item{display:flex;align-items:center;gap:4px}.legend-dot{width:8px;height:8px;border-radius:50%}.legend-dot.inaccuracy{background:var(--c-f7c631)}.legend-dot.mistake{background:var(--c-e6912c)}.legend-dot.blunder{background:var(--c-ca3431)}.analysis-moves{background:var(--c-16213e);border-radius:8px;padding:12px;flex:1;min-height:0;overflow-y:auto;display:flex;flex-wrap:wrap;align-content:flex-start;gap:2px}.analysis-move-pair{display:inline-flex;align-items:center;gap:4px;font-size:14px;padding:2px 4px}.analysis-move-pair .move-number{color:var(--c-666);min-width:28px}.analysis-move{padding:3px 8px;border-radius:4px;cursor:pointer;min-width:56px;position:relative;border-bottom:2px solid transparent}.analysis-move:hover{background:var(--ov-white-08)}.analysis-move.active{background:var(--ov-accent-20);color:var(--c-e0e0e0)}.analysis-moves--variants{display:flex;flex-direction:column;padding:0;overflow:hidden;position:relative}.vml-container{flex:1;overflow-y:auto;padding:8px 12px;min-height:0}.vml-moves{font-size:14px;line-height:1.7;white-space:pre-wrap;word-wrap:break-word;color:var(--c-e0e0e0)}.vml-move{display:inline;cursor:pointer;padding:1px 4px;border-radius:3px;transition:background-color .1s}.vml-move:hover:not(.active){background:var(--ov-white-10)}.vml-move.active{background:var(--ov-accent-35);color:var(--c-e0e0e0);font-weight:700;border-radius:4px}.vml-move.variation{font-weight:400;font-size:.9em}.vml-bracket{display:inline;color:var(--c-666);font-size:.85em;margin:0 1px}.vml-bracket-close{margin-left:0;margin-right:4px}.vml-empty{padding:12px;color:var(--c-666);font-size:13px}.review-move-list{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.review-move-list__moves{flex:1;overflow-y:auto;padding:8px 12px;padding-bottom:max(64px,calc(env(safe-area-inset-bottom,0px) + 64px));font-size:calc(14px * var(--analysis-sidebar-font-scale, 1));line-height:1.7;white-space:pre-wrap;word-wrap:break-word;color:var(--c-e0e0e0);min-height:0}.review-move-list__empty{padding:12px;color:var(--c-666);font-size:13px}.review-move{display:inline;cursor:pointer;padding:1px 4px;border-radius:3px;transition:background-color .1s}.review-move:hover:not(.active){background:var(--ov-white-10)}.review-move.active{background:var(--ov-accent-35);color:var(--c-e0e0e0);font-weight:700}.review-move.variation{font-size:.9em}.review-level-1{color:var(--c-90caf9)}.review-level-2{color:var(--c-a5d6a7)}.review-level-3{color:var(--c-ffe082)}.review-level-4{color:var(--c-ef9a9a)}.review-bracket{display:inline;color:var(--c-666);font-size:.85em;margin:0 1px}.review-editor-panel{position:absolute;bottom:0;left:0;right:0;z-index:10;display:flex;gap:4px;flex-wrap:wrap;padding:4px 8px;border-top:1px solid var(--c-2a2a4e);background:var(--c-16213e)}.review-editor-btn{padding:3px 8px;font-size:12px;cursor:pointer;border-radius:4px;border:1px solid var(--c-444);background:var(--c-1e1e3a);color:var(--c-ccc);transition:background-color .1s,border-color .1s,color .1s}.review-editor-btn:hover{background:var(--c-2a2a5e);color:var(--c-fff)}.review-editor-btn--danger:hover{border-color:var(--c-f44336);color:var(--c-f44336)}.analysis-variant-editor{flex:0 0 auto;display:flex;gap:4px;flex-wrap:wrap;padding:4px 8px;border-top:1px solid var(--c-2a2a4e);background:var(--c-16213e)}.analysis-variant-btn{padding:3px 8px;font-size:12px;cursor:pointer;border-radius:4px;border:1px solid var(--c-444);background:var(--c-1e1e3a);color:var(--c-ccc);transition:background-color .1s,border-color .1s,color .1s}.analysis-variant-btn:hover{background:var(--c-2a2a5e);color:var(--c-fff)}.classification-dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-left:4px;vertical-align:middle}.move-eval{margin-left:auto;font-size:11px;color:var(--c-666);font-variant-numeric:tabular-nums}.analysis-result{background:var(--c-16213e);padding:12px;border-radius:8px;text-align:center;font-weight:600;margin-bottom:8px;flex-shrink:0}.analysis-back-link{display:block;text-align:center;padding:10px;background:var(--c-16213e);border-radius:8px;color:var(--c-7c83ff);font-size:14px}.analysis-back-link:hover{background:var(--c-1e2d50);text-decoration:none}.analysis-back-link+.analysis-back-link{margin-top:8px}.analysis-back-link--top{display:flex;align-items:center;gap:6px;font-size:13px;padding:8px 12px;background:var(--c-16213e);border-radius:8px;color:var(--c-7c83ff);text-decoration:none;flex-shrink:0;margin-bottom:8px}.analysis-back-link--top:before{content:"←";font-size:16px;line-height:1}.analysis-back-link--top:hover{background:var(--c-1e2d50);text-decoration:none}.back-nav-link{display:block;width:100%;color:var(--c-7c83ff);font-size:14px;text-decoration:none;flex-basis:100%}.back-nav-link:hover{text-decoration:underline}.bridge-promo{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;margin:0 0 4px;background:linear-gradient(135deg,var(--c-1e2a4a) 0%,var(--c-2a1e4a) 100%);border:1px solid var(--c-4a4a8e);border-radius:8px;font-size:13px}.bridge-promo__text{display:flex;flex-direction:column;gap:2px}.bridge-promo__text strong{color:var(--c-c0c0ff)}.bridge-promo__text span{color:var(--c-808098);font-size:12px}.bridge-promo__actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.bridge-promo__link{color:var(--c-7c83ff);font-size:12px;white-space:nowrap}.bridge-promo__dismiss{background:transparent;border:none;color:var(--c-666);font-size:14px;padding:2px 4px;cursor:pointer;line-height:1}.bridge-promo__dismiss:hover{color:var(--c-aaa)}.set-position-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--ov-black-70);display:flex;align-items:center;justify-content:center;z-index:1000}.set-position-modal{background:var(--c-1a1a2e);border:1px solid var(--c-2a2a4e);border-radius:12px;width:500px;max-width:90vw;display:flex;flex-direction:column;max-height:min(90vh,100dvh - 32px);overflow:hidden}.set-position-header{flex:0 0 auto;display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--c-2a2a4e)}.set-position-header h3{margin:0;font-size:18px}.set-position-close{background:transparent;color:var(--c-888);border:none;font-size:18px;padding:4px 8px;cursor:pointer}.set-position-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:20px}.set-position-body[hidden]{display:none!important}.set-position-label{display:block;color:var(--c-a0a0c0);font-size:13px;margin-bottom:6px}.set-position-input{width:100%;padding:10px 12px;background:var(--c-16213e);border:1px solid var(--c-2a2a4e);border-radius:6px;color:var(--c-e0e0e0);font-family:monospace;font-size:13px}.set-position-input:focus{border-color:var(--c-7c83ff);outline:none}.set-position-error{color:var(--c-ef4444);font-size:13px;margin-top:8px}.set-position-copy-msg{font-size:13px;margin-top:8px;color:var(--c-a0a0ff, #a0a0ff)}.set-position-presets{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.set-position-preset{background:var(--c-2a2a4e);color:var(--c-a0a0ff);border:1px solid var(--c-4a4a7e);border-radius:6px;padding:6px 12px;font-size:12px;cursor:pointer}.set-position-preset:hover{background:var(--c-3a3a6e)}.set-position-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.set-position-cancel{background:var(--c-2a2a4e);color:var(--c-a0a0c0);border:1px solid var(--c-4a4a7e);padding:8px 20px;border-radius:6px;font-size:14px}.set-position-apply{background:var(--c-7c83ff);color:var(--c-fff);border:none;padding:8px 20px;border-radius:6px;font-size:14px;font-weight:600}.set-position-apply:hover{background:var(--c-6366f1)}.set-position-modal--wide{width:640px}.set-position-tabs{flex:0 0 auto;display:flex;border-bottom:1px solid var(--c-2a2a4e)}.set-position-tab{flex:1;padding:10px;background:transparent;border:none;color:var(--c-808098);font-size:14px;cursor:pointer;border-bottom:2px solid transparent}.set-position-tab.active{background:var(--tab-active-bg);color:var(--tab-active-fg);border-bottom-color:var(--tab-active-border);border-radius:6px 6px 0 0}.set-position-editor{display:flex;gap:16px}.set-position-editor__board{flex-shrink:0;touch-action:none;position:relative}.set-position-grid{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);width:280px;height:280px;border-radius:4px;overflow:hidden}.set-position-grid__cell{display:flex;align-items:center;justify-content:center;cursor:pointer;touch-action:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.set-position-grid__piece{width:80%;height:80%;pointer-events:none}.set-position-editor__controls{flex:1;display:flex;flex-direction:column;gap:12px;min-width:0}.set-position-palette__label{font-size:12px;color:var(--c-808098);margin-bottom:4px}.set-position-palette__grid{display:flex;flex-direction:column;gap:4px}.set-position-palette__row{display:flex;align-items:center;gap:4px}.set-position-palette__color-label{width:16px;font-size:11px;font-weight:700;color:var(--c-808098);text-align:center;flex-shrink:0}.set-position-palette__piece{width:34px;height:34px;font-size:22px;line-height:1;display:flex;align-items:center;justify-content:center;background:var(--c-16213e);border:1px solid var(--c-2a2a4e);border-radius:4px;cursor:pointer;padding:0;color:var(--c-e0e0e0)}.set-position-palette__piece:hover{border-color:var(--c-7c83ff)}.set-position-palette__piece.active{background:var(--c-7c83ff);border-color:var(--c-7c83ff)}.set-position-palette__piece--white{background:var(--c-e8e8e8);color:var(--c-333);border-color:var(--c-bbb)}.set-position-palette__piece--white:hover{border-color:var(--c-7c83ff)}.set-position-palette__piece--white.active{background:var(--c-7c83ff);color:var(--c-fff);border-color:var(--c-7c83ff)}.set-position-palette__piece--black{background:var(--c-2a2a3e);color:var(--c-e0e0e0);border-color:var(--c-444)}.set-position-palette__piece--black:hover{border-color:var(--c-7c83ff)}.set-position-palette__piece--black.active{background:var(--c-7c83ff);color:var(--c-fff);border-color:var(--c-7c83ff)}.set-position-palette__eraser{font-size:14px;color:var(--c-888)}.set-position-options{display:flex;flex-direction:column;gap:8px}.set-position-option{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--c-a0a0c0)}.set-position-option select{padding:4px 8px;background:var(--c-16213e);border:1px solid var(--c-2a2a4e);border-radius:4px;color:var(--c-e0e0e0);font-size:13px}.set-position-castling-input{width:80px;padding:4px 8px;font-family:monospace;font-size:13px}.set-position-editor__fen{font-size:11px;color:var(--c-666);word-break:break-all}.set-position-editor__fen-label{margin-right:4px}.set-position-editor__fen-value{color:var(--c-888)}@keyframes spin{to{transform:rotate(360deg)}}.pgn-headers-modal{background:var(--c-1e1e3e);border:1px solid var(--c-4a4a7e);border-radius:10px;width:420px;max-width:92vw;max-height:85vh;overflow-y:auto;box-shadow:0 8px 32px var(--ov-black-50)}.pgn-headers-modal__header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px 10px;border-bottom:1px solid var(--c-333)}.pgn-headers-modal__header h3{margin:0;font-size:16px;color:var(--c-e0e0e0)}.pgn-headers-modal__close{background:none;border:none;color:var(--c-888);font-size:22px;cursor:pointer;padding:0 4px;line-height:1}.pgn-headers-modal__close:hover{color:var(--c-fff)}.pgn-headers-modal__body{padding:14px 18px;display:flex;flex-direction:column;gap:10px}.pgn-headers-modal__row{display:flex;gap:10px}.pgn-headers-modal__row label{display:flex;flex-direction:column;gap:3px;flex:1}.pgn-headers-modal__row label span{font-size:12px;color:var(--c-999);font-weight:600}.pgn-headers-modal__row input,.pgn-headers-modal__row select{background:var(--c-2a2a4e);border:1px solid var(--c-4a4a7e);border-radius:4px;color:var(--c-e0e0e0);padding:6px 8px;font-size:14px;outline:none}.pgn-headers-modal__row input:focus,.pgn-headers-modal__row select:focus{border-color:var(--c-7c83ff)}.pgn-headers-modal__row--players{display:grid;grid-template-columns:1fr auto;gap:8px}.pgn-headers-modal__elo{width:70px}.pgn-headers-modal__row--half{display:grid;grid-template-columns:1fr 1fr}.pgn-headers-modal__extra{margin-top:4px}.pgn-headers-modal__extra summary{cursor:pointer;color:var(--c-7c83ff);font-size:13px;-webkit-user-select:none;user-select:none;margin-bottom:8px}.pgn-headers-modal__extra summary:hover{color:var(--c-a0a4ff)}.pgn-headers-modal__footer{display:flex;justify-content:flex-end;gap:8px;padding:10px 18px 14px;border-top:1px solid var(--c-333)}.pgn-headers-modal__cancel{background:transparent;border:1px solid var(--c-555);border-radius:4px;color:var(--c-aaa);padding:6px 16px;font-size:13px;cursor:pointer}.pgn-headers-modal__cancel:hover{background:var(--c-2a2a4e)}.pgn-headers-modal__apply{background:var(--c-7c83ff);border:none;border-radius:4px;color:var(--c-fff);padding:6px 16px;font-size:13px;font-weight:600;cursor:pointer}.pgn-headers-modal__apply:hover{background:var(--c-6b72ee)}.analysis-split-panel,.analysis-mobile-panel,.analysis-mobile-engine-controls,.analysis-mobile-engine-meta{display:none}@media(max-width:768px){.analysis-desktop-only{display:none!important}.analysis-board-controls{height:44px;gap:6px;align-items:center;justify-content:center;padding:0 4px}.analysis-board-controls button{padding:8px 0;font-size:18px;min-width:48px;height:40px;flex:1;max-width:64px}.analysis-flip-btn{font-size:18px!important;padding:8px 0!important;flex:1!important;max-width:64px!important}.analysis-controls-spacer{display:none}.analysis-inline-eval{display:none!important}.analysis-overflow-btn{background:var(--c-2a2a4e);color:var(--c-a0a0ff);border:1px solid var(--c-4a4a7e)}.analysis-overflow-menu{background:var(--c-1e1e3e);border:1px solid var(--c-4a4a7e);box-shadow:0 4px 12px var(--ov-black-40)}.analysis-overflow-menu button{color:var(--c-ccc)}.analysis-overflow-menu button:hover{background:var(--c-2a2a5e)}.analysis-mobile-panel{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;width:100%;max-width:100%;box-sizing:border-box}.analysis-mobile-panel__tabs{display:flex;flex-shrink:0;height:32px;border-bottom:1px solid var(--c-333)}.analysis-mobile-tab{flex:1;padding:0 8px;background:transparent;border:none;color:var(--c-777);font-size:13px;font-weight:600;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;text-align:center;line-height:30px}.analysis-mobile-tab.active{background:var(--tab-active-bg);color:var(--tab-active-fg);border-bottom-color:var(--tab-active-border);border-radius:6px 6px 0 0}.analysis-board-size{display:none}.analysis-mobile-panel__content{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;width:100%;max-width:100%}.analysis-mobile-panel__content .analysis-panel-body{flex:1;overflow-y:auto;overflow-x:hidden;min-height:0;width:100%;max-width:100%;box-sizing:border-box;padding:6px 8px}.analysis-mobile-panel__content .analysis-panel-body--scroll{overflow-y:auto;width:100%;box-sizing:border-box}.analysis-mobile-engine-controls{display:flex;align-items:center;gap:6px;padding:4px 6px;flex-shrink:0;border-bottom:1px solid var(--c-333);width:100%;box-sizing:border-box}.analysis-mobile-engine-meta{display:block;padding:4px 8px;font-size:13px;font-weight:600;line-height:1.35;color:var(--c-c0c0d0);border-bottom:1px solid var(--c-333);overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.analysis-mobile-section{display:none}.analysis-mobile-section.active{display:flex;flex-direction:column}.analysis-mobile-section--engine{flex-shrink:0;flex-grow:0}.analysis-mobile-section--moves{flex:1;min-height:0;overflow-y:auto}.stockfish-lines{min-height:0;overflow-y:auto;overflow-x:hidden;gap:2px;margin-top:2px}.stockfish-pv{white-space:nowrap;overflow-x:hidden;text-overflow:ellipsis;font-size:12px}.stockfish-line{flex-wrap:nowrap;gap:4px;font-size:12px}.analysis-breadcrumbs,.analysis-workshop-shortcut,.analysis-player-row{display:none}.analysis-players-combined{display:flex}.review-game-info-players,.analysis-pgn-players{display:none}}.analysis-players-combined{display:none;align-items:center;gap:6px;height:24px;padding:0 4px;background:var(--c-0f172a);border-radius:4px;width:100%;box-sizing:border-box}.analysis-players-vs{font-size:11px;color:var(--c-666);flex-shrink:0}.analysis-pgn-headers{padding:8px 10px;border-bottom:1px solid var(--ov-white-08);margin-bottom:4px}.analysis-pgn-players{display:flex;align-items:center;gap:6px;font-size:13px;flex-wrap:wrap}.analysis-pgn-white,.analysis-pgn-black{color:var(--c-e0e0e0);font-weight:600}.analysis-pgn-vs{color:var(--c-9e9e9e);font-size:11px}.analysis-pgn-result{color:var(--c-7c83ff);font-weight:700;margin-left:auto}.analysis-pgn-meta{display:flex;gap:10px;font-size:11px;color:var(--c-9e9e9e);margin-top:4px}.material-balance{display:flex;align-items:center;gap:4px;padding:4px 8px;background:var(--c-e2e8f0);border-radius:4px;margin:4px 0}.material-balance__side{display:flex;align-items:center;gap:0}.material-balance__piece{width:30px;height:30px;margin-right:-6px}.variation-chooser-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--ov-black-55);display:flex;align-items:center;justify-content:center;z-index:2000;animation:variation-chooser-fade .12s ease-out}@keyframes variation-chooser-fade{0%{opacity:0}to{opacity:1}}.variation-chooser-dialog{background:var(--c-1e1e2e);border:1px solid var(--c-3a3a50);border-radius:8px;box-shadow:0 8px 32px var(--ov-black-60);min-width:280px;max-width:90vw;padding:14px 16px 12px;color:var(--c-e0e0e0);font-size:14px}.variation-chooser-title{font-size:13px;font-weight:600;color:var(--c-b8b8cc);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.variation-chooser-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.variation-chooser-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:5px;cursor:pointer;transition:background-color .1s;-webkit-user-select:none;user-select:none}.variation-chooser-item:hover{background:var(--ov-white-06)}.variation-chooser-item.active{background:var(--ov-accent-25);color:var(--c-e0e0e0)}.variation-chooser-index{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:3px;background:var(--ov-white-08);font-size:11px;color:var(--c-aaa);flex-shrink:0}.variation-chooser-item.active .variation-chooser-index{background:var(--ov-accent-50);color:var(--c-fff)}.variation-chooser-label{flex:1;font-weight:500}.variation-chooser-hint{margin-top:10px;font-size:11px;color:var(--c-777);text-align:center}.archive-tree-panel{display:flex;flex-direction:column;background:var(--c-0f172a);border:1px solid var(--c-1f2937);border-radius:6px;overflow:hidden;flex-shrink:0;margin-bottom:8px;height:auto}.archive-tree-panel:has(.archive-tree-panel__body){height:auto}.archive-tree-panel__header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 12px;height:40px;background:var(--c-111827);cursor:pointer;-webkit-user-select:none;user-select:none;flex-shrink:0}.archive-tree-panel__header:hover{background:var(--c-1a2436)}.archive-tree-panel__header-left{display:flex;align-items:center;gap:8px;min-width:0;flex:1;overflow:hidden}.archive-tree-panel__icon{font-size:14px;color:var(--c-7c83ff);flex-shrink:0}.archive-tree-panel__title{font-size:calc(13px * var(--analysis-sidebar-font-scale, 1));font-weight:600;color:var(--c-c0c0d0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.archive-tree-panel__chevron{font-size:12px;color:var(--c-6b7280);flex-shrink:0}.archive-tree-panel__body{padding:10px 12px;background:var(--c-0f172a);display:flex;flex-direction:column;gap:8px;flex:1;min-height:0;overflow-y:auto}.bucket-select{background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-primary);font-size:12px;padding:4px 8px;cursor:pointer;max-width:140px;flex-shrink:0;transition:border-color .15s ease,box-shadow .15s ease}.bucket-select:hover{border-color:var(--border-mid)}.bucket-select:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-soft)}.bucket-select option{background:var(--bg-input);color:var(--text-primary)}.archive-tree-panel__opening{font-size:calc(12px * var(--analysis-sidebar-font-scale, 1));font-weight:500;color:var(--c-c0c0d0);line-height:1.4}.archive-tree-panel__stats{font-size:calc(11px * var(--analysis-sidebar-font-scale, 1));color:var(--c-6b7280);margin-top:-2px}.archive-tree-panel__table{width:100%;border-collapse:collapse;font-size:calc(14px * var(--analysis-sidebar-font-scale, 1));color:var(--c-c0c0d0);table-layout:auto}.archive-tree-panel__table thead th{text-align:left;font-weight:600;font-size:calc(11px * var(--analysis-sidebar-font-scale, 1));text-transform:uppercase;letter-spacing:.04em;color:var(--c-6b7280);padding:6px;border-bottom:1px solid var(--c-1f2937);white-space:nowrap}.archive-tree-panel__table thead th:nth-child(2),.archive-tree-panel__table thead th:nth-child(4),.archive-tree-panel__table thead th:nth-child(5){text-align:right}.archive-tree-panel__table tbody tr{border-bottom:1px solid var(--ov-slate-50-gray);cursor:pointer;transition:background-color .1s ease}.archive-tree-panel__table tbody tr:last-child{border-bottom:none}.archive-tree-panel__table tbody tr:hover{background:var(--ov-accent-10)}.archive-tree-panel__table td{padding:6px;vertical-align:middle;white-space:nowrap}.archive-tree-panel__san{font-weight:700;font-size:calc(14px * var(--analysis-sidebar-font-scale, 1));color:var(--c-e0e0ff);width:1%;padding-right:10px}.archive-tree-panel__total,.archive-tree-panel__avg-elo,.archive-tree-panel__last-seen{font-family:SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:13px;color:var(--c-a0a0c0);text-align:right;width:1%}.archive-tree-panel__wdl{width:auto;padding-right:6px;padding-left:6px}.archive-tree-panel__footer{display:flex;justify-content:flex-end;padding-top:4px}.archive-tree-panel__view-games{background:transparent;border:1px solid var(--c-2a2a4e);border-radius:4px;color:var(--c-7c83ff);font-size:11px;padding:4px 10px;cursor:pointer}.archive-tree-panel__view-games:hover:not(:disabled){background:var(--ov-accent-10);border-color:var(--c-7c83ff)}.archive-tree-panel__view-games:disabled{opacity:.45;cursor:not-allowed}.archive-tree-panel__empty{padding:14px 4px;font-size:12px;color:var(--c-6b7280);text-align:center}.archive-tree-panel__error{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px;font-size:12px;color:var(--c-f87171);background:var(--ov-danger-08-r400);border:1px solid var(--ov-danger-25-r400);border-radius:4px}.archive-tree-panel__retry{background:transparent;border:1px solid var(--ov-danger-40-r400);border-radius:4px;color:var(--c-fca5a5);font-size:11px;padding:3px 10px;cursor:pointer;flex-shrink:0}.archive-tree-panel__retry:hover{background:var(--ov-danger-15-r400);color:var(--c-fff)}.archive-tree-panel__skeleton{display:flex;flex-direction:column;gap:6px;padding:4px 0}.archive-tree-panel__skeleton-row{height:18px;border-radius:3px;background:linear-gradient(90deg,var(--ov-slate-60-gray) 0%,var(--ov-slate-70-gray) 50%,var(--ov-slate-60-gray) 100%);background-size:200% 100%;animation:archive-tree-shimmer 1.4s ease-in-out infinite}@keyframes archive-tree-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.wdl-bar{display:flex;width:128px;height:18px;border-radius:4px;overflow:hidden;background:var(--c-1f2937);box-shadow:inset 0 0 0 1px var(--ov-black-25)}.wdl-bar__segment{display:flex;align-items:center;justify-content:center;height:100%;min-width:0;overflow:hidden;transition:width .15s ease}.wdl-bar__segment--white{background:var(--c-f1f1f1);color:var(--c-111827);box-shadow:inset 0 -1px 0 var(--ov-black-08)}.wdl-bar__segment--draw{background:var(--c-9ca3af);color:var(--c-0f172a)}.wdl-bar__segment--black{background:var(--c-111827);color:var(--c-f1f1f1);box-shadow:inset 0 0 0 1px var(--ov-white-08)}.wdl-bar__label{font-size:11px;font-weight:700;line-height:1;letter-spacing:-.02em;white-space:nowrap;pointer-events:none}@media(max-width:768px){.archive-tree-panel{border-radius:4px;margin-bottom:6px;height:auto}.analysis-panel-body{min-height:0;max-height:none}.archive-tree-panel__header{padding:0 10px;height:36px}.archive-tree-panel__body{padding:8px 10px;gap:6px}.archive-tree-panel__table{font-size:13px}.archive-tree-panel__table thead th,.archive-tree-panel__table td{padding:5px 6px}.archive-tree-panel__total,.archive-tree-panel__avg-elo,.archive-tree-panel__last-seen{font-size:12px}.wdl-bar{width:96px;height:16px}.wdl-bar__label{font-size:10px}.bucket-select{font-size:11px;max-width:120px}}.analysis-share{display:contents}.analysis-share__trigger{display:none}.analysis-share__icon{flex-shrink:0;display:block;pointer-events:none}.analysis-share__trigger-text{font-size:inherit;line-height:inherit}.analysis-share__popup{position:fixed;right:16px;bottom:24px;min-width:320px;max-width:calc(100vw - 32px);background:var(--bg, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:8px;padding:12px 14px;box-shadow:0 4px 12px #00000026;z-index:100;font-size:14px;display:flex;flex-direction:column;gap:10px}.analysis-share__status{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.analysis-share__badge{font-size:12px;padding:2px 8px;border-radius:999px;border:1px solid currentColor}.analysis-share__badge--public{color:#166534;background:#dcfce7;border-color:#86efac}.analysis-share__badge--private{color:#92400e;background:#fef3c7;border-color:#fcd34d}.analysis-share__hint{margin:0;font-size:12px;color:var(--text-secondary, #6b7280);flex-basis:100%}.analysis-share__url-row{display:flex;flex-direction:column;gap:4px}.analysis-share__url-label{font-size:12px;color:var(--text-secondary, #6b7280)}.analysis-share__url{font-family:monospace;font-size:12px;padding:6px 8px;border:1px solid var(--border-color, #e5e7eb);border-radius:4px;background:var(--bg-secondary, #f9fafb);color:inherit;width:100%;box-sizing:border-box}.analysis-share__actions{display:flex;gap:8px;justify-content:flex-end}.analysis-share__copy,.analysis-share__toggle{cursor:pointer;padding:6px 12px;border-radius:6px;font-size:13px;border:1px solid var(--border-color, #e5e7eb);background:var(--bg-secondary, #f9fafb);color:inherit;white-space:normal;overflow-wrap:normal;word-break:keep-all;line-height:1.25}.analysis-share__copy:hover,.analysis-share__toggle:hover:not(:disabled){background:var(--bg-tertiary, #f3f4f6)}.analysis-share__toggle:disabled{opacity:.6;cursor:not-allowed}.analysis-share__toast{margin:0;font-size:12px;padding:6px 8px;border-radius:4px}.analysis-share__toast--success{background:#dcfce7;color:#166534}.analysis-share__toast--error{background:#fee2e2;color:#991b1b}.analysis-share__toast--info{background:#dbeafe;color:#1e40af}@media(max-width:768px){.analysis-share__trigger{display:none}.analysis-share__popup{position:fixed;right:8px;left:8px;bottom:calc(68px + env(safe-area-inset-bottom,0px));top:auto;min-width:auto;max-width:calc(100vw - 16px);max-height:calc(100dvh - 136px - env(safe-area-inset-bottom,0px));overflow-y:auto;z-index:100}.analysis-share__popup .analysis-share__actions{flex-direction:column;align-items:stretch;justify-content:flex-start;gap:8px}.analysis-share__popup .analysis-share__copy,.analysis-share__popup .analysis-share__toggle{width:100%;max-width:none;flex:0 0 auto;text-align:center;padding:10px 12px;min-height:40px;height:auto;font-size:14px}}.analysis-mobile-panel__handle{display:none}@media(max-width:767px){.app.focus-mode-active .analysis-mobile-panel[data-focus-sheet=true]{position:fixed;left:0;right:0;bottom:0;border-top:1px solid var(--border-subtle);background:var(--bg-surface);box-shadow:0 -8px 24px var(--ov-black-40);z-index:70;transition:height .22s cubic-bezier(.32,.72,0,1);padding-bottom:env(safe-area-inset-bottom,0px);box-sizing:border-box;border-radius:14px 14px 0 0}.app.focus-mode-active .analysis-mobile-panel[data-focus-sheet=true][data-snap=peek]{height:calc(64px + env(safe-area-inset-bottom,0px))}.app.focus-mode-active .analysis-mobile-panel[data-focus-sheet=true][data-snap=half]{height:50dvh}.app.focus-mode-active .analysis-mobile-panel[data-focus-sheet=true][data-snap=full]{height:85dvh}.app.focus-mode-active .analysis-mobile-panel[data-focus-sheet=true] .analysis-mobile-panel__handle{display:flex;align-items:center;justify-content:center;height:32px;flex-shrink:0;touch-action:none;cursor:ns-resize;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.app.focus-mode-active .analysis-mobile-panel[data-focus-sheet=true] .analysis-mobile-panel__handle:focus-visible{outline:2px solid var(--accent-primary);outline-offset:-4px;border-radius:14px 14px 0 0}.app.focus-mode-active .analysis-mobile-panel[data-focus-sheet=true] .analysis-mobile-panel__handle-bar{width:44px;height:4px;border-radius:2px;background:var(--text-muted);opacity:.55;transition:opacity .12s ease,transform .12s ease}.app.focus-mode-active .analysis-mobile-panel[data-focus-sheet=true] .analysis-mobile-panel__handle:hover .analysis-mobile-panel__handle-bar,.app.focus-mode-active .analysis-mobile-panel[data-focus-sheet=true] .analysis-mobile-panel__handle:active .analysis-mobile-panel__handle-bar{opacity:.85;transform:scaleX(1.05)}.app.focus-mode-active .analysis-mobile-panel[data-focus-sheet=true] .analysis-mobile-panel__tabs{height:44px}.app.focus-mode-active .analysis-mobile-panel[data-focus-sheet=true] .analysis-mobile-tab{line-height:42px;font-size:14px;min-height:44px}.app.focus-mode-active .lesson-game-step__viewer{--sheet-h: 64px}.lesson-game-step[data-sheet-snap=peek]{--focus-board-h: calc(100dvh - 212px - env(safe-area-inset-bottom, 0px)) }.lesson-game-step[data-sheet-snap=half]{--focus-board-h: calc(50dvh - 136px) }.lesson-game-step[data-sheet-snap=full]{--focus-board-h: max(200px, calc(15dvh - 134px) )}.lesson-game-step[data-sheet-snap] .analysis-eval-board-row{flex:0 0 auto;justify-content:center;align-items:stretch;width:100%}.lesson-game-step[data-sheet-snap] .analysis-board-wrapper{width:100%;margin:0 auto}}.puzzle-board-area{display:flex;flex-direction:column;align-items:center;gap:12px}.puzzle-header{text-align:center}.puzzle-header h1{font-size:22px;margin-bottom:4px}.puzzle-rating{font-size:14px;color:var(--c-a0a0c0)}.puzzle-status{min-height:36px;display:flex;align-items:center}.puzzle-hint{font-size:16px;font-weight:600;color:var(--c-a0a0c0)}.puzzle-result{font-size:18px;font-weight:700;padding:8px 24px;border-radius:6px}.puzzle-correct{background:var(--ov-success-15-alt);color:var(--c-22c55e)}.puzzle-wrong{background:var(--ov-danger-15-r500);color:var(--c-ef4444)}.puzzle-sidebar{display:flex;flex-direction:column;gap:16px;width:280px;min-width:0;flex-shrink:1}.puzzle-themes{background:var(--c-16213e);border-radius:8px;padding:12px}.puzzle-themes h3{font-size:14px;color:var(--c-a0a0c0);margin-bottom:8px}.theme-tags{display:flex;flex-wrap:wrap;gap:6px}.theme-tag{background:var(--ov-accent-15);color:var(--c-7c83ff);padding:4px 10px;border-radius:4px;font-size:12px;font-weight:600}.puzzle-actions{display:flex;gap:8px}.puzzle-actions button{flex:1}.show-solution-btn{background:var(--c-16213e);color:var(--c-a0a0c0)}.show-solution-btn:hover{color:var(--c-fff);background:var(--c-1e2d50)}body:has(.puzzle-rush-board){overflow:hidden}.puzzle-rush-page{text-align:center;padding-top:40px}.puzzle-rush-page h1{margin-bottom:16px}.puzzle-rush-description{color:var(--c-a0a0c0);margin-bottom:24px;font-size:15px}.puzzle-rush-time-select{margin-bottom:24px}.puzzle-rush-time-select h3{font-size:14px;color:var(--c-a0a0c0);margin-bottom:12px}.puzzle-rush-highscores{margin-bottom:24px}.puzzle-rush-highscores h3{font-size:14px;color:var(--c-a0a0c0);margin-bottom:12px}.highscore-list{display:flex;flex-direction:column;gap:6px;max-width:300px;margin:0 auto}.highscore-item{display:flex;align-items:center;gap:12px;background:var(--c-16213e);padding:8px 16px;border-radius:6px;font-size:14px}.highscore-rank{color:var(--c-666);min-width:28px}.highscore-solved{font-weight:700;color:var(--c-7c83ff);flex:1;text-align:left}.highscore-date{color:var(--c-666);font-size:12px}.puzzle-rush-header{display:flex;justify-content:center;align-items:center;gap:32px;margin-bottom:16px}.rush-time{font-size:32px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--c-fff)}.rush-time-low{color:var(--c-ef4444);animation:pulse 1s infinite}.puzzle-rush-score{display:flex;align-items:center;gap:8px;font-size:20px;font-weight:600}.rush-solved-label{color:var(--c-999);font-size:14px;font-weight:400}.rush-solved{color:var(--c-22c55e)}.rush-separator{color:var(--c-666)}.rush-failed{color:var(--c-ef4444)}.puzzle-rush-board{display:flex;flex-direction:column;align-items:center;gap:8px;min-height:0;flex-shrink:0}.puzzle-board-placeholder{background:var(--c-16213e);display:flex;align-items:center;justify-content:center;width:400px;height:400px;max-width:100%;aspect-ratio:1;cursor:pointer}.puzzle-fen-display{font-size:11px;color:var(--c-666);word-break:break-all;padding:16px}.puzzle-feedback{font-size:18px;font-weight:700;padding:8px 24px;border-radius:6px;min-height:38px;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.puzzle-feedback.correct{background:var(--ov-success-15-alt);color:var(--c-22c55e)}.puzzle-feedback.wrong{background:var(--ov-danger-15-r500);color:var(--c-ef4444)}.rush-leaderboard-link{display:inline-block;margin-top:16px;margin-left:20px;color:var(--c-7c83ff);font-size:15px;font-weight:600}.rush-leaderboard-link:hover{text-decoration:underline}.puzzle-rush-page:has(.puzzle-rush-time-select){max-width:560px;margin:40px auto;padding:32px 32px 40px;background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:16px;box-shadow:var(--shadow-md);position:relative;overflow:hidden}.puzzle-rush-page:has(.puzzle-rush-time-select):before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:linear-gradient(90deg,var(--accent-primary),var(--c-8b5cf6))}.puzzle-rush-page:has(.puzzle-rush-time-select) h1{display:flex;align-items:center;justify-content:center;gap:10px;font-size:28px;margin:8px 0;color:var(--text-primary)}.puzzle-rush-page:has(.puzzle-rush-time-select) h1:before{content:"⚡";font-size:28px;color:var(--accent-primary);line-height:1}.puzzle-rush-page:has(.puzzle-rush-time-select) .puzzle-rush-description{max-width:380px;margin:0 auto 28px;font-size:15px;line-height:1.5;color:var(--text-secondary)}.puzzle-rush-page:has(.puzzle-rush-time-select) .puzzle-rush-time-select{margin-bottom:28px}.puzzle-rush-page:has(.puzzle-rush-time-select) .puzzle-rush-time-select h3{font-size:12px;letter-spacing:.6px;text-transform:uppercase;color:var(--text-secondary);margin-bottom:14px}.puzzle-rush-page:has(.puzzle-rush-time-select) .play-btn{display:inline-flex;align-items:center;gap:8px;font-size:17px;font-weight:700;padding:14px 40px;border-radius:999px;background:linear-gradient(135deg,var(--accent-primary),var(--accent-active));border:0;color:var(--text-on-accent);box-shadow:0 8px 24px var(--ov-accent-30);transition:transform .12s ease,box-shadow .12s ease}.puzzle-rush-page:has(.puzzle-rush-time-select) .play-btn:before{content:"▶";font-size:13px;line-height:1}.puzzle-rush-page:has(.puzzle-rush-time-select) .play-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 28px var(--ov-accent-35)}.puzzle-rush-page:has(.puzzle-rush-time-select) .play-btn:active:not(:disabled){transform:translateY(0);box-shadow:0 6px 18px var(--ov-accent-25)}.puzzle-rush-page:has(.puzzle-rush-time-select) .play-btn:focus-visible{outline:none;box-shadow:0 0 0 4px var(--ov-accent-25, rgba(124, 131, 255, .35)),0 8px 24px var(--ov-accent-30)}.puzzle-rush-page:has(.puzzle-rush-time-select) .rush-leaderboard-link{margin-top:20px}@media(max-width:640px){.puzzle-rush-page:has(.puzzle-rush-time-select){margin:24px 16px;padding:24px 20px 32px;border-radius:12px}.puzzle-rush-page:has(.puzzle-rush-time-select) h1{font-size:24px}.puzzle-rush-page:has(.puzzle-rush-time-select) h1:before{font-size:24px}.puzzle-rush-page:has(.puzzle-rush-time-select) .play-btn{width:100%;justify-content:center}.puzzle-rush-page:has(.puzzle-rush-time-select) .rush-leaderboard-link{display:block;margin-left:0;margin-top:16px}}.rush-leaderboard-page{text-align:center;padding-top:40px;max-width:600px;margin:0 auto}.rush-leaderboard-page h1{margin-bottom:20px}.rush-lb-mode-tabs{display:flex;gap:12px;justify-content:center;margin-bottom:24px}.rush-lb-empty{color:var(--c-666);padding:40px}.rush-lb-table{text-align:left;margin-bottom:24px}.rush-lb-header-row{display:flex;padding:8px 16px;font-size:13px;color:var(--c-666);border-bottom:1px solid var(--c-2a2a4a)}.rush-lb-row{display:flex;align-items:center;padding:10px 16px;font-size:14px;border-bottom:1px solid var(--ov-white-04)}.rush-lb-row:hover{background:var(--ov-white-04)}.rush-lb-row-current{background:var(--ov-accent-12);border-radius:6px}.rush-lb-row-current:hover{background:var(--ov-accent-18)}.rush-lb-col-rank{min-width:40px;color:var(--c-666);font-weight:600}.rush-lb-col-name{flex:1}.rush-lb-col-score{min-width:60px;text-align:right;font-weight:700;color:var(--c-7c83ff)}.rush-lb-back-link{display:inline-block;padding:10px 24px;background:var(--c-16213e);border-radius:8px;color:var(--c-7c83ff);font-size:14px;margin-top:8px}.rush-lb-back-link:hover{background:var(--c-1e2d50);text-decoration:none}.puzzle-rush-result{padding-top:20px}.puzzle-rush-result h2,.rush-final-score{margin-bottom:24px}.rush-score-big{font-size:64px;font-weight:700;color:var(--c-7c83ff);line-height:1}.rush-score-label{font-size:16px;color:var(--c-a0a0c0);margin-top:4px}.rush-stats{display:flex;justify-content:center;gap:32px;margin-bottom:24px}.rush-stat{display:flex;flex-direction:column;align-items:center;gap:4px}.rush-stat-value{font-size:24px;font-weight:700;color:var(--c-fff)}.rush-stat-label{font-size:13px;color:var(--c-a0a0c0)}.profile-page{max-width:1100px;margin:0 auto;padding-top:24px}.profile-layout{display:flex;flex-direction:column;gap:24px}.profile-header{margin-bottom:32px}.profile-header h1{font-size:28px;margin-bottom:4px}.profile-member-since{color:var(--c-a0a0c0);font-size:14px}.profile-ratings{margin-bottom:32px}.profile-ratings h2{font-size:18px;margin-bottom:12px}.ratings-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.rating-card{display:flex;justify-content:space-between;align-items:center;background:var(--c-16213e);padding:14px 18px;border-radius:8px}.rating-label{color:var(--c-a0a0c0);font-size:14px}.rating-value{font-size:20px;font-weight:700;color:var(--c-fff)}.profile-section-header{display:flex;align-items:center;gap:16px;margin-bottom:12px}.profile-section-header h2{margin-bottom:0}.profile-section-link{font-size:14px;color:var(--c-81b64c);text-decoration:none;white-space:nowrap}.profile-section-link:hover{text-decoration:underline}.profile-action-btn{display:inline-block;background:var(--c-7c83ff);color:var(--c-fff);text-decoration:none;padding:10px 20px;border-radius:6px;font-size:14px;font-weight:600;white-space:nowrap;transition:background .15s,transform .15s}.profile-action-btn:hover{background:var(--c-6366f1);transform:translateY(-1px)}.profile-action-btn--green{background:var(--c-81b64c)}.profile-action-btn--green:hover{background:var(--c-6a9a3a);transform:translateY(-1px)}@media(max-width:600px){.profile-action-btn{padding:8px 14px;font-size:13px}}.profile-puzzle-rush{margin-bottom:32px}.profile-puzzle-rush h2{font-size:18px;margin-bottom:12px}.rush-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.rush-stat-card{display:flex;flex-direction:column;align-items:center;background:var(--c-16213e);padding:14px 18px;border-radius:8px}.rush-stat-label{color:var(--c-a0a0c0);font-size:13px;margin-bottom:6px}.rush-stat-value{font-size:22px;font-weight:700;color:var(--c-fff)}.profile-games h2{font-size:18px;margin-bottom:12px}.games-list{display:flex;flex-direction:column;gap:8px}.game-record{display:flex;align-items:center;gap:10px;background:var(--c-16213e);padding:12px 16px;border-radius:8px;font-size:14px;flex-wrap:wrap}.game-opponent{color:var(--c-e0e0e0)}.game-tc{color:var(--c-a0a0c0)}.game-result-badge{font-weight:700;font-size:12px;padding:2px 6px;border-radius:4px;text-align:center;white-space:nowrap}.game-result-badge--win{background:var(--ov-success-20);color:var(--c-4caf50)}.game-result-badge--loss{background:var(--ov-danger-20);color:var(--c-f44336)}.game-result-badge--draw{background:var(--ov-text-muted-20);color:var(--c-a0a0c0)}.game-rating-diff{font-weight:600;font-size:13px}.rating-positive{color:var(--c-4caf50)}.rating-negative{color:var(--c-f44336)}.game-date{color:var(--c-666);font-size:13px}.game-color-indicator{width:14px;height:14px;border-radius:50%;flex-shrink:0;border:1px solid var(--c-444)}.game-color-indicator.color-white{background:var(--c-f0f0f0)}.game-color-indicator.color-black{background:var(--c-333)}.game-opponent-rating{color:var(--c-a0a0c0);font-size:12px}.game-opening{display:flex;align-items:center;gap:4px;color:var(--c-a0a0c0);font-size:12px;min-width:0}.game-eco{font-weight:600;color:var(--c-81b64c);white-space:nowrap}.game-opening-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-moves-count,.game-duration{color:var(--c-a0a0c0);font-size:12px;white-space:nowrap}.games-filters{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.games-filter-input{background:var(--c-16213e);border:1px solid var(--c-2a2a4a);border-radius:6px;color:var(--c-e0e0e0);padding:8px 12px;font-size:13px;flex:1;min-width:120px}.games-filter-input::placeholder{color:var(--c-666)}.games-filter-input:focus{outline:none;border-color:var(--c-7c83ff)}.games-filter-eco{max-width:80px;min-width:80px;flex:0}.games-filter-select{background:var(--c-16213e);border:1px solid var(--c-2a2a4a);border-radius:6px;color:var(--c-e0e0e0);padding:8px 12px;font-size:13px;cursor:pointer}.games-filter-select:focus{outline:none;border-color:var(--c-7c83ff)}.games-empty{text-align:center;color:var(--c-a0a0c0);padding:24px;font-size:14px}.games-load-more{text-align:center;padding:16px;color:var(--c-a0a0c0);font-size:13px}@media(min-width:900px){.profile-layout{display:grid;grid-template-columns:280px 1fr;gap:32px;align-items:start}}@media(min-width:768px){.game-record{display:grid;grid-template-columns:56px 20px 1fr 1fr 64px 48px 56px 56px 80px;flex-wrap:unset;gap:0 12px}.game-opponent{flex:unset}.game-opening-name{max-width:none}}@media(max-width:767px){.game-opening,.game-duration,.game-rating-diff{display:none}}.nav-user{color:var(--c-a0a0c0);text-decoration:none}.nav-user:hover{color:var(--c-fff);text-decoration:none}.loading{text-align:center;padding:40px;color:var(--c-a0a0c0)}.success{background:var(--ov-success-15-alt);color:var(--c-22c55e);padding:10px;border-radius:6px;font-size:14px;text-align:center}.puzzle-browser-page{padding-top:20px}.puzzle-browser-page h1{text-align:center;margin-bottom:8px}.puzzle-filters{background:var(--c-16213e);border-radius:12px;padding:24px;margin-bottom:24px}.filter-section{margin-bottom:20px}.filter-section:last-child{margin-bottom:0}.filter-section h3{font-size:14px;color:var(--c-a0a0c0);margin-bottom:12px}.difficulty-filters{display:flex;gap:8px;flex-wrap:wrap}.filter-btn{background:var(--c-1a1a2e);color:var(--c-a0a0c0);padding:8px 16px;border:2px solid transparent;font-size:13px}.filter-btn.active{border-color:var(--tab-active-border);background:var(--tab-active-bg);color:var(--tab-active-fg)}.filter-btn:hover:not(.active){color:var(--c-fff)}.theme-category-tabs{display:flex;gap:4px;margin-bottom:12px}.theme-filters{display:flex;gap:6px;flex-wrap:wrap}.theme-btn{padding:6px 12px;font-size:12px}.puzzle-results-info{text-align:center;color:var(--c-a0a0c0);font-size:14px;margin-bottom:16px}.puzzle-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-bottom:24px}.puzzle-card{background:var(--c-16213e);border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:10px}.puzzle-card-header{display:flex;justify-content:space-between;align-items:center}.puzzle-id{color:var(--c-666);font-size:13px}.puzzle-rating{font-size:16px;font-weight:700;color:var(--c-7c83ff)}.puzzle-card-themes{display:flex;gap:4px;flex-wrap:wrap}.puzzle-theme-tag{background:var(--ov-accent-15);color:var(--c-a0a0c0);padding:2px 8px;border-radius:4px;font-size:11px}.puzzle-theme-tag.more{background:var(--ov-white-06)}.puzzle-solve-btn{margin-top:auto;padding:8px;font-size:13px}.puzzle-empty{text-align:center;color:var(--c-666);padding:40px}.puzzle-pagination{display:flex;justify-content:center;align-items:center;gap:16px}.page-info{color:var(--c-a0a0c0);font-size:14px}.puzzle-page{display:flex;flex-direction:column;align-items:center;padding-top:20px;width:100%}.puzzle-breadcrumbs{align-self:stretch;display:flex;align-items:center;gap:6px;font-size:14px;margin-bottom:12px;flex-wrap:wrap}.puzzle-breadcrumbs__link{color:var(--c-7c83ff);text-decoration:none}.puzzle-breadcrumbs__link:hover{text-decoration:underline}.puzzle-breadcrumbs__current{color:var(--c-a0a0c0)}.puzzle-breadcrumbs__sep{color:var(--c-4a4a6e)}.puzzle-page .board-container{width:min(calc(100vh - 310px),calc(100vw - 32px))}.puzzle-rush-page .board-container{width:min(calc(100dvh - 320px),calc(100vw - 32px))}.puzzle-page h1{margin-bottom:12px}.puzzle-stats{display:flex;gap:20px;color:var(--c-a0a0c0);font-size:14px;margin-bottom:16px}.puzzle-board-area{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%}.puzzle-status-bar{min-height:38px;display:flex;align-items:center}.puzzle-hint{color:var(--c-a0a0c0);font-size:16px}.puzzle-correct{color:var(--c-22c55e);font-size:18px;font-weight:700}.puzzle-incorrect{color:var(--c-ef4444);font-size:18px;font-weight:700}.puzzle-actions{display:flex;gap:12px;min-height:48px;align-items:center}.puzzle-info-slot{min-height:28px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px}.puzzle-actions-slot{min-height:40px;display:flex;align-items:center;justify-content:center;gap:8px;padding:4px 0}.puzzle-indicator{width:14px;height:14px;border-radius:50%;position:absolute;bottom:6px;left:6px;z-index:5;opacity:0;transition:opacity .3s,background-color .3s,box-shadow .3s}.puzzle-indicator--thinking{background:transparent;opacity:0}.puzzle-indicator--correct{background:var(--c-22c55e);box-shadow:0 0 10px var(--c-22c55e);opacity:1;animation:puzzle-lamp-flash 2s ease-out forwards}.puzzle-indicator--incorrect{background:var(--c-ef4444);box-shadow:0 0 10px var(--c-ef4444);opacity:1;animation:puzzle-lamp-flash 2s ease-out forwards}@keyframes puzzle-lamp-flash{0%{opacity:1}70%{opacity:1}to{opacity:0}}.puzzle-turn-indicator{position:absolute;top:6px;right:6px;z-index:5;font-size:0;line-height:0;color:transparent;overflow:hidden;width:14px;height:14px;border-radius:50%;padding:0;box-shadow:0 1px 4px var(--ov-black-40)}.puzzle-turn-indicator:before{display:none}.puzzle-turn-indicator--white{background:var(--c-fff);border:1px solid var(--c-aaa)}.puzzle-turn-indicator--black{background:var(--c-222);border:1px solid var(--c-555)}.puzzle-eval-info{display:flex;gap:12px;justify-content:center;padding:6px 0;font-size:13px;color:var(--c-aaa);flex-wrap:wrap}.puzzle-eval-best{color:var(--c-4ade80);font-weight:600}.puzzle-eval-second{color:var(--c-f59e0b)}.puzzle-eval-gap{color:var(--c-888);font-variant-numeric:tabular-nums}.puzzle-filter-toggle{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--c-aaa);cursor:pointer;margin-bottom:8px}.puzzle-rating-range{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.puzzle-rating-range input[type=range]{flex:1;min-width:100px;accent-color:var(--c-7c83ff)}.puzzle-rating-range__label{font-size:13px;color:var(--c-ccc);font-variant-numeric:tabular-nums;min-width:100px;text-align:center}.puzzle-selected-themes{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.puzzle-theme-chip{display:inline-flex;align-items:center;gap:4px;background:var(--c-3a3a6e);color:var(--c-c0c0ff);padding:2px 8px;border-radius:12px;font-size:11px}.puzzle-theme-chip button{background:none;border:none;color:var(--c-888);cursor:pointer;font-size:13px;padding:0 2px}.puzzle-clear-filters{background:transparent;border:1px solid var(--c-555);color:var(--c-aaa);padding:4px 12px;border-radius:6px;font-size:12px;cursor:pointer;margin-top:8px}.puzzle-clear-filters:hover{border-color:var(--c-888);color:var(--c-fff)}.puzzle-browser-tabs{display:flex;gap:0;border-bottom:2px solid var(--c-333);margin-bottom:16px}.puzzle-browser-tab{padding:8px 20px;background:transparent;border:none;color:var(--c-888);font-size:14px;font-weight:600;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;border-radius:6px}.generate-puzzles-section{display:flex;align-items:center;gap:8px;padding:8px 12px;flex-wrap:wrap}.generate-puzzles-btn{background:var(--c-7c83ff);color:var(--c-fff);border:none;padding:6px 16px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer}.generate-puzzles-btn:disabled{opacity:.6;cursor:not-allowed}.generate-puzzles-result{color:var(--c-4ade80);font-size:13px}.generate-puzzles-error{color:var(--c-ef4444);font-size:13px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--ov-black-60);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--c-1a1a2e);border:1px solid var(--c-2a2a4e);border-radius:12px;padding:20px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.modal-header h2{margin:0;font-size:18px;color:var(--c-e0e0e0)}.modal-close{background:none;border:none;color:var(--c-888);font-size:24px;cursor:pointer;padding:0 4px}.puzzle-generator-modal{max-width:600px;width:90vw}.puzzle-generator-upload{display:flex;align-items:center;gap:12px;margin-bottom:8px}.puzzle-generator-file{font-size:13px;color:var(--c-aaa)}.puzzle-generator-or{color:var(--c-666);font-size:12px}.puzzle-generator-textarea{width:100%;background:var(--c-0f172a);color:var(--c-e0e0e0);border:1px solid var(--c-333);border-radius:6px;padding:8px;font-family:monospace;font-size:12px;resize:vertical;box-sizing:border-box}.puzzle-generator-start{background:var(--c-7c83ff);color:var(--c-fff);border:none;padding:8px 20px;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;margin-top:8px}.puzzle-generator-start:disabled{opacity:.5}.puzzle-generator-progress{text-align:center;padding:20px 0}.puzzle-generator-progress-text{font-size:16px;color:var(--c-e0e0e0);margin-bottom:8px}.puzzle-generator-progress-detail{font-size:13px;color:var(--c-888);margin-bottom:12px}.puzzle-generator-progress-bar{height:6px;background:var(--c-1a1a2e);border-radius:3px;overflow:hidden;margin-bottom:8px}.puzzle-generator-progress-fill{height:100%;background:var(--c-7c83ff);transition:width .3s}.puzzle-generator-progress-found{font-size:14px;color:var(--c-4ade80);margin-bottom:12px}.puzzle-generator-abort{background:var(--c-dc2626);color:var(--c-fff);border:none;padding:6px 16px;border-radius:6px;cursor:pointer}.puzzle-generator-result{padding:12px 0}.puzzle-generator-result-count{font-size:16px;color:var(--c-e0e0e0);margin-bottom:12px;font-weight:600}.puzzle-generator-result-list{display:flex;flex-direction:column;gap:4px;max-height:200px;overflow-y:auto;margin-bottom:12px}.puzzle-generator-result-item{display:flex;gap:12px;font-size:13px;color:var(--c-ccc);padding:4px 8px;background:var(--c-1a1a2e);border-radius:4px}.puzzle-generator-result-more{color:var(--c-888);font-size:12px;padding:4px}.puzzle-generator-save{background:var(--c-16a34a);color:var(--c-fff);border:none;padding:8px 20px;border-radius:6px;font-weight:600;cursor:pointer;margin-right:8px}.puzzle-generator-saved{display:flex;flex-direction:column;gap:10px;margin-top:8px;padding:14px;border:1px solid var(--c-4ade80);border-radius:8px;background:#4ade8014}.puzzle-generator-saved__title{margin:0;font-size:15px;font-weight:600;color:var(--c-4ade80)}.puzzle-generator-saved__hint{margin:0;font-size:13px;line-height:1.4;color:var(--c-aaa)}.puzzle-generator-saved__actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px}.puzzle-generator-saved button{flex:1 1 140px;min-height:44px;padding:10px 16px;font-family:inherit;font-size:14px;font-weight:500;background:var(--c-7c83ff);color:var(--c-fff);border:none;border-radius:6px;cursor:pointer;transition:background-color .12s ease,filter .12s ease,transform .1s ease}.puzzle-generator-saved button:hover:not(:disabled){filter:brightness(1.08)}.puzzle-generator-saved button:active:not(:disabled){transform:scale(.98)}.puzzle-generator-saved button:focus-visible{outline:2px solid var(--c-7c83ff);outline-offset:2px}.puzzle-generator-saved button:disabled{opacity:.6;cursor:not-allowed}.puzzle-generator-saved__publish{background:var(--c-4ade80)!important;color:var(--c-111)!important;font-weight:700!important}.puzzle-generator-saved__publish:focus-visible{outline-color:var(--c-4ade80)}.puzzle-gen-toggle{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:2px 8px;align-items:start;font-size:13px;color:var(--c-ccc);cursor:pointer}.puzzle-gen-toggle input[type=checkbox]{grid-row:1 / 3;margin-top:2px;width:18px;height:18px;cursor:pointer;accent-color:var(--c-7c83ff)}.puzzle-gen-toggle input[type=checkbox]:focus-visible{outline:2px solid var(--c-7c83ff);outline-offset:2px}.puzzle-gen-toggle>span:first-of-type{grid-column:2;font-weight:500}.puzzle-gen-toggle .puzzle-gen-filter-hint{grid-column:2;font-size:11px;line-height:1.4;color:var(--c-f59e0b)}.puzzle-gen-param-hint{margin:4px 0 0;font-size:12px;line-height:1.4;color:var(--c-aaa)}.puzzle-generator-retry{background:transparent;border:1px solid var(--c-555);color:var(--c-aaa);padding:6px 14px;border-radius:6px;cursor:pointer;margin-top:8px}.puzzle-generator-error{color:var(--c-ef4444);font-size:13px;margin-top:8px}.puzzle-generator-action{margin-top:16px;text-align:center}.puzzle-themes-inline{color:var(--c-7c83ff);font-size:12px}.puzzle-card-actions{display:flex;gap:6px;align-items:center}.puzzle-delete-btn{background:transparent;border:1px solid var(--c-555);color:var(--c-888);width:28px;height:28px;border-radius:4px;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center}.puzzle-delete-btn:hover{border-color:var(--c-dc2626);color:var(--c-dc2626)}.puzzle-delete-all-btn{background:transparent;border:1px solid var(--c-dc2626);color:var(--c-dc2626);padding:6px 16px;border-radius:6px;font-size:13px;cursor:pointer}.puzzle-delete-all-btn:hover{background:var(--ov-danger-10-r600)}.puzzle-card-title{font-size:12px;color:var(--c-aaa);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.puzzle-browser-tabs{display:flex;gap:0;margin-bottom:12px;border-bottom:1px solid var(--c-333)}.puzzle-browser-tab{padding:8px 16px;background:none;border:none;border-bottom:2px solid transparent;color:var(--c-888);font-size:13px;font-weight:600;cursor:pointer;border-radius:6px}.puzzle-browser-tab.active{background:var(--tab-active-bg);color:var(--tab-active-fg);border-bottom-color:var(--tab-active-border)}.puzzle-share-btn{background:none;border:none;font-size:14px;cursor:pointer;padding:2px 6px;border-radius:4px;opacity:.6}.puzzle-share-btn:hover,.puzzle-share-btn.shared{opacity:1}.puzzle-publish-all-btn{background:var(--ov-success-15);color:var(--c-4caf50);border:none;padding:4px 10px;border-radius:4px;font-size:12px;cursor:pointer}.puzzle-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px;flex-wrap:wrap}.puzzle-toolbar__left,.puzzle-toolbar__right{display:flex;align-items:center;gap:8px}.puzzle-toolbar__total{font-size:13px;color:var(--c-888)}.puzzle-sort-btn{background:transparent;border:1px solid var(--c-444);color:var(--c-888);padding:4px 10px;border-radius:4px;font-size:12px;cursor:pointer}.puzzle-sort-btn.active{border-color:var(--tab-active-border);background:var(--tab-active-bg);color:var(--tab-active-fg)}.puzzle-pagination{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:16px;padding:8px 0}.puzzle-pagination button{background:transparent;border:1px solid var(--c-555);color:var(--c-ccc);padding:4px 12px;border-radius:4px;cursor:pointer;font-size:13px}.puzzle-pagination button:disabled{opacity:.4;cursor:not-allowed}.puzzle-pagination__info{font-size:13px;color:var(--c-888)}.puzzle-gen-advanced{margin-top:8px}.puzzle-gen-advanced__toggle{background:none;border:none;color:var(--c-888);font-size:12px;cursor:pointer;padding:4px 0}.puzzle-gen-advanced__body{margin-top:8px;padding:8px;background:var(--ov-black-20);border-radius:6px}.puzzle-gen-section-title{font-size:10px;font-weight:700;letter-spacing:1.5px;color:var(--c-666);margin:12px 0 6px;text-transform:uppercase}.puzzle-gen-section-title:first-child{margin-top:0}.puzzle-gen-engine-tabs{display:flex;gap:0;border-radius:6px;overflow:hidden;border:1px solid var(--c-333)}.puzzle-gen-engine-tab{flex:1;padding:6px 12px;font-size:12px;font-weight:600;background:transparent;color:var(--c-888);border:none;border-radius:0;cursor:pointer;transition:background .15s,color .15s}.puzzle-gen-engine-tab.active{background:var(--tab-active-bg);color:var(--tab-active-fg)}.puzzle-gen-engine-tab:disabled{opacity:.4;cursor:not-allowed}.puzzle-gen-engine-hint{font-size:11px;color:var(--c-666);margin-top:4px}.puzzle-gen-params{display:grid;grid-template-columns:1fr 1fr;gap:8px}.puzzle-gen-param{display:flex;flex-direction:column;gap:3px}.puzzle-gen-param label{font-size:11px;color:var(--c-aaa)}.puzzle-gen-param input[type=number]{width:100%;background:var(--c-0f172a);color:var(--c-e0e0e0);border:1px solid var(--c-333);border-radius:4px;padding:4px 6px;font-size:12px}.puzzle-gen-param input[type=range]{width:100%;height:24px;margin:4px 0 6px;accent-color:var(--c-7c83ff);cursor:pointer}.puzzle-gen-param input[type=range]:focus-visible{outline:2px solid var(--c-7c83ff);outline-offset:2px;border-radius:4px}.puzzle-gen-param input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:22px;height:22px;border-radius:50%;background:var(--c-7c83ff);border:2px solid var(--c-fff);box-shadow:0 1px 3px #00000059;cursor:pointer}.puzzle-gen-param input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--c-7c83ff);border:2px solid var(--c-fff);box-shadow:0 1px 3px #00000059;cursor:pointer}@media(max-width:480px){.puzzle-gen-param input[type=range]{height:44px}.puzzle-gen-param input[type=range]::-webkit-slider-thumb{width:26px;height:26px}.puzzle-gen-param input[type=range]::-moz-range-thumb{width:26px;height:26px}}.puzzle-gen-filters{display:flex;flex-direction:column;gap:8px}.puzzle-gen-filter{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:0 8px;align-items:start;font-size:12px;color:var(--c-ccc);cursor:pointer}.puzzle-gen-filter input[type=checkbox]{grid-row:1 / 3;margin-top:2px}.puzzle-gen-filter-hint{grid-column:2;font-size:10px;color:var(--c-666);line-height:1.3}.puzzle-gen-filter-hint--warning{color:var(--c-f59e0b)}.puzzle-gen-settings-reset{margin-top:12px;background:none;border:none;color:var(--c-666);font-size:11px;cursor:pointer;text-decoration:underline;padding:0}.puzzle-gen-settings-reset:hover{color:var(--c-aaa)}.puzzle-rating-change{font-size:14px;font-weight:600;margin-left:8px}.puzzle-rating-change.positive{color:var(--c-4ade80)}.puzzle-rating-change.negative{color:var(--c-ef4444)}.puzzle-stats-page{max-width:800px;margin:0 auto;padding:20px}.puzzle-stats-page h1{margin-bottom:4px}.puzzle-stats-page h2{margin:24px 0 12px;font-size:16px;color:var(--c-cbd5e1)}.puzzle-stats-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-top:16px}.puzzle-stats-card{background:var(--c-1e293b);border-radius:8px;padding:14px;text-align:center}.puzzle-stats-card__value{font-size:24px;font-weight:700;color:var(--c-7c83ff)}.puzzle-stats-card__label{font-size:12px;color:var(--c-94a3b8);margin-top:4px}.puzzle-stats-section{margin-top:8px}.puzzle-stats-chart{background:var(--c-1e293b);border-radius:8px;padding:16px}.puzzle-stats-themes{display:flex;flex-direction:column;gap:8px}.puzzle-stats-theme__header{display:flex;justify-content:space-between;font-size:13px;margin-bottom:2px}.puzzle-stats-theme__name{color:var(--c-e2e8f0)}.puzzle-stats-theme__rate{color:var(--c-94a3b8)}.puzzle-stats-theme__bar{height:6px;background:var(--c-334155);border-radius:3px;overflow:hidden}.puzzle-stats-theme__fill{height:100%;background:var(--c-7c83ff);border-radius:3px}.puzzle-stats-attempts{display:flex;flex-direction:column;gap:4px}.puzzle-stats-attempt{display:flex;align-items:center;gap:12px;padding:6px 10px;background:var(--c-1e293b);border-radius:4px;font-size:13px}.puzzle-stats-attempt__link{color:var(--c-7c83ff);text-decoration:none}.puzzle-stats-attempt__link:hover{text-decoration:underline}.puzzle-stats-attempt__result.correct{color:var(--c-4ade80)}.puzzle-stats-attempt__result.wrong{color:var(--c-f87171)}.puzzle-stats-attempt__time{color:var(--c-94a3b8)}.puzzle-stats-attempt__rating{color:var(--c-cbd5e1);margin-left:auto}.puzzle-stats-attempt__date{color:var(--c-64748b);font-size:11px}.puzzle-stats-attempt__analyze{background:transparent;border:1px solid transparent;color:var(--c-94a3b8);cursor:pointer;padding:2px 6px;border-radius:4px;font-size:14px;line-height:1}.puzzle-stats-attempt__analyze:hover{background:var(--c-334155);color:var(--c-e2e8f0);border-color:var(--c-475569)}.puzzle-review-label{text-align:center;padding:8px;color:var(--c-94a3b8);font-size:14px}.puzzle-card-status{font-size:16px;margin-right:4px}.puzzle-card-status--solved{color:var(--c-4ade80)}.puzzle-card-status--failed{color:var(--c-f87171)}.puzzle-card--solved{border-left:3px solid var(--c-4ade80)}.puzzle-card--failed{border-left:3px solid var(--c-f87171)}.puzzle-hide-solved{display:flex;align-items:center;gap:4px;font-size:13px;color:var(--c-94a3b8);cursor:pointer}.puzzle-hide-solved input{cursor:pointer}.puzzle-indicator--checking{position:absolute;top:0;left:0;right:0;height:3px;background:var(--c-f59e0b);animation:checking-pulse 1s ease-in-out infinite;z-index:10}@keyframes checking-pulse{0%,to{opacity:.4}50%{opacity:1}}.puzzle-alt-move-msg{text-align:center;padding:8px 12px;background:var(--c-1e3a2f);border:1px solid var(--c-4ade80);border-radius:6px;color:var(--c-86efac);font-size:13px;margin-bottom:8px}.puzzle-checking-msg{text-align:center;padding:8px;color:var(--c-f59e0b);font-size:13px;animation:checking-pulse 1s ease-in-out infinite}.puzzle-engine-runner{display:flex;flex-direction:column;gap:12px;width:100%}.puzzle-engine-runner__layout{display:flex;gap:12px;align-items:stretch}.puzzle-engine-runner__board-col{display:flex;flex-direction:column;gap:10px;flex:1;min-width:0}.puzzle-engine-runner__progress{display:flex;align-items:center;gap:12px}.puzzle-engine-runner__progress-bar{position:relative;flex:1;height:10px;background:var(--bg-muted, var(--c-2a2a4e, #2a2a4e));border:1px solid var(--border-mid, var(--c-334155, #334155));border-radius:999px;overflow:hidden}.puzzle-engine-runner__progress-fill{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,var(--accent-primary, #7c83ff),var(--success, #4caf50));transition:width .2s ease;border-radius:inherit}.puzzle-engine-runner__progress-label{font-size:13px;font-weight:600;color:var(--text-primary, var(--c-e0e0e0));white-space:nowrap;font-variant-numeric:tabular-nums}.puzzle-engine-runner__hint{margin:0;padding:8px 12px;background:var(--ov-warning-15, rgba(255, 193, 7, .12));border-left:3px solid var(--c-ffc107, #ffc107);border-radius:4px;color:var(--c-e0e0e0);font-size:13px;line-height:1.4}.puzzle-engine-runner__result{display:flex;flex-direction:column;gap:10px;padding:14px 16px;background:var(--bg-canvas, var(--c-1a1a2e));border:1px solid var(--border-mid, var(--c-2a2a4e));border-radius:8px}.puzzle-engine-runner__objective-row{display:flex;justify-content:flex-start}.puzzle-objective-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;line-height:1.4;background:var(--c-1f2244, rgba(124, 131, 255, .12));color:var(--c-c0c0e0);border:1px solid var(--c-7c83ff44, rgba(124, 131, 255, .3));white-space:nowrap}.puzzle-objective-badge--sm{padding:2px 8px;font-size:11px}.puzzle-objective-badge--convertAdvantage{background:#f5c5181f;border-color:#f5c51859}.puzzle-objective-badge--saveEquality{background:#80c8ff1f;border-color:#80c8ff59}.puzzle-objective-badge__icon{font-size:14px;line-height:1}.puzzle-objective-badge__label{letter-spacing:.01em}.puzzle-engine-runner__result-label{font-size:18px;font-weight:800;letter-spacing:.2px;margin-bottom:2px}.puzzle-engine-runner__result-label--win{color:var(--success-strong, var(--c-4caf50, #4caf50))}.puzzle-engine-runner__result-label--lose{color:var(--danger-strong, var(--c-f44336, #f44336))}.puzzle-engine-runner__result-endnote{font-size:13px;font-weight:600;color:var(--text-secondary, var(--c-94a3b8));text-align:center}.puzzle-engine-runner__result-endnote--win{color:var(--success-strong, #4ade80)}.puzzle-engine-runner__result-endnote--lose{color:var(--danger-strong, #f87171)}.puzzle-engine-runner__final-wdl{font-size:13px;color:var(--c-c0c0c0, #c0c0c0)}.puzzle-engine-runner__wdl-summary{margin:8px 0 0;padding:10px 12px;border-radius:8px;background:var(--bg-muted, var(--c-1e293b, #1e293b));border:1px solid var(--border-mid, var(--c-334155, #334155));text-align:left}.puzzle-engine-runner__wdl-summary-header{font-size:13px;font-weight:700;letter-spacing:.3px;margin-bottom:6px}.puzzle-engine-runner__wdl-summary--lost .puzzle-engine-runner__wdl-summary-header{color:var(--danger, #dc2626)}.puzzle-engine-runner__wdl-summary--preserved .puzzle-engine-runner__wdl-summary-header{color:var(--success, #16a34a)}.puzzle-engine-runner__wdl-summary-line{font-size:13px;color:var(--text-primary, var(--c-e0e0e0));font-variant-numeric:tabular-nums}.puzzle-engine-runner__wdl-summary[data-mode=permille] .puzzle-engine-runner__wdl-summary-line{display:flex;flex-direction:column;gap:4px;font-variant-numeric:tabular-nums;font-size:14px;line-height:1.45}.puzzle-engine-runner__wdl-summary[data-mode=permille] .puzzle-engine-runner__wdl-summary-line>div{padding:6px 10px;border-radius:5px;border-left:3px solid currentColor;font-weight:600}.puzzle-engine-runner__wdl-summary[data-mode=permille] [data-testid=puzzle-engine-wdl-row-win],.puzzle-engine-runner__wdl-row--win{color:var(--success-strong, #15803d);background:var(--ov-success-15, rgba(34, 197, 94, .15))}.puzzle-engine-runner__wdl-summary[data-mode=permille] [data-testid=puzzle-engine-wdl-row-draw],.puzzle-engine-runner__wdl-row--draw{color:var(--text-secondary, var(--c-94a3b8, #94a3b8));background:var(--ov-neutral-15, rgba(148, 163, 184, .12))}.puzzle-engine-runner__wdl-summary[data-mode=permille] [data-testid=puzzle-engine-wdl-row-loss],.puzzle-engine-runner__wdl-row--loss{color:var(--danger-strong, #b91c1c);background:var(--ov-danger-15, rgba(220, 38, 38, .15))}:root[data-theme=dark] .puzzle-engine-runner__wdl-summary[data-mode=permille] [data-testid=puzzle-engine-wdl-row-win],:root[data-theme=dark] .puzzle-engine-runner__wdl-row--win{color:#4ade80}:root[data-theme=dark] .puzzle-engine-runner__wdl-summary[data-mode=permille] [data-testid=puzzle-engine-wdl-row-draw],:root[data-theme=dark] .puzzle-engine-runner__wdl-row--draw{color:#cbd5e1}:root[data-theme=dark] .puzzle-engine-runner__wdl-summary[data-mode=permille] [data-testid=puzzle-engine-wdl-row-loss],:root[data-theme=dark] .puzzle-engine-runner__wdl-row--loss{color:#f87171}@media(max-width:480px){.puzzle-engine-runner__wdl-summary[data-mode=permille] .puzzle-engine-runner__wdl-summary-line{gap:3px;font-size:13px}.puzzle-engine-runner__wdl-summary[data-mode=permille] .puzzle-engine-runner__wdl-summary-line>div{padding:5px 8px}}.puzzle-engine-runner__error{padding:8px 12px;background:var(--ov-error-15, rgba(244, 67, 54, .15));color:var(--c-f44336, #f44336);border-radius:4px;font-size:13px}@media(min-width:769px){.puzzle-engine-runner__layout{align-items:flex-start}.puzzle-engine-runner .eval-bar-container,.puzzle-engine-runner .eval-bar{height:min(70vh,560px)}.puzzle-engine-runner__board-col{display:grid;grid-template-columns:min(70vh,560px) minmax(260px,1fr);grid-template-rows:min-content min-content min-content min-content 1fr;align-items:start;gap:10px 16px}.puzzle-engine-runner__board-col>.board-container{grid-column:1;grid-row:1 / -1;align-self:start;width:100%;max-width:min(70vh,560px)}.puzzle-engine-runner__board-col>.puzzle-engine-runner__progress{grid-column:2;grid-row:1}.puzzle-engine-runner__board-col>.puzzle-engine-runner__hint{grid-column:2;grid-row:2}.puzzle-engine-runner__board-col>.puzzle-engine-runner__actions{grid-column:2;grid-row:3}.puzzle-engine-runner__board-col>.puzzle-engine-runner__result,.puzzle-engine-runner__board-col>.puzzle-engine-runner__error{grid-column:2;grid-row:4}}@media(max-width:768px){.puzzle-engine-runner__layout{flex-direction:row;gap:8px;width:100%;min-width:0;box-sizing:border-box}.puzzle-engine-runner .eval-bar-container,.puzzle-engine-runner .eval-bar{flex:0 0 20px;width:20px;min-width:0;display:flex}.puzzle-engine-runner .eval-bar-label{font-size:12px}.puzzle-engine-runner__progress-label{font-size:11px}.puzzle-engine-runner__board-col{flex:1 1 0;min-width:0;width:100%;overflow:hidden}.puzzle-engine-runner__board-col>.board-container,.puzzle-engine-runner .board-container{width:100%!important;max-width:100%!important;height:auto!important;aspect-ratio:1 / 1;box-sizing:border-box}}@media(max-width:360px){.puzzle-engine-runner__layout{gap:6px}.puzzle-engine-runner .eval-bar-container,.puzzle-engine-runner .eval-bar{flex:0 0 16px;width:16px}.puzzle-engine-runner .eval-bar-label{font-size:10px}}.play-vs-engine-puzzles{max-width:1100px;margin:0 auto;padding:24px 16px 48px;color:var(--text-primary, #f1f5f9)}.play-vs-engine-puzzles__header h1{margin:0 0 6px;font-size:24px}.play-vs-engine-puzzles__intro{margin:0 0 12px;color:var(--text-secondary, #94a3b8);font-size:14px;line-height:1.5}.play-vs-engine-puzzles__nav{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px}.precision-tabs{display:inline-flex;align-items:center;gap:8px;margin-bottom:16px;padding:4px;background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:10px}.precision-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;background:transparent;color:var(--text-secondary);border-radius:8px;padding:6px 14px;font-size:14px;font-weight:600;line-height:1.2;cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.precision-tab:hover:not(.precision-tab--active){color:var(--text-primary);background:var(--bg-surface)}.precision-tab:focus-visible{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--ov-accent-15, rgba(124, 131, 255, .25))}.precision-tab--active{color:var(--tab-active-fg);background:var(--tab-active-bg);border-color:var(--tab-active-border)}@media(max-width:480px){.precision-tabs{width:100%;display:flex}.precision-tab{flex:1 1 0;text-align:center}}.precision-objective-segments{display:inline-flex;align-items:center;gap:8px;margin-bottom:16px;padding:4px;background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:10px}.precision-objective-segment{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;background:transparent;color:var(--text-secondary);border-radius:8px;padding:6px 14px;font-size:13px;font-weight:600;line-height:1.2;cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.precision-objective-segment:hover:not(.precision-objective-segment--active){color:var(--text-primary);background:var(--bg-surface)}.precision-objective-segment:focus-visible{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--ov-accent-15, rgba(124, 131, 255, .25))}.precision-objective-segment--active{color:var(--tab-active-fg);background:var(--tab-active-bg);border-color:var(--tab-active-border)}@media(max-width:480px){.precision-objective-segments{width:100%;display:flex}.precision-objective-segment{flex:1 1 0;text-align:center}}.precision-show-solved{display:inline-flex;align-items:center;gap:8px;margin:8px 0 16px;padding:6px 12px;background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:999px;font-size:13px;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .12s ease,border-color .12s ease,color .12s ease}.precision-show-solved:hover{background:var(--bg-surface);color:var(--text-primary)}.precision-show-solved input[type=checkbox]{margin:0;cursor:pointer;accent-color:var(--accent-primary)}.precision-show-solved:focus-within{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--ov-accent-15, rgba(124, 131, 255, .25));color:var(--text-primary)}@media(max-width:640px){.precision-show-solved{width:100%;justify-content:flex-start;border-radius:8px}}.precision-elo-filter{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:8px 0 16px;font-size:13px}.precision-elo-filter__label{color:var(--text-secondary);font-weight:500}.precision-elo-filter__value{color:var(--text-primary);font-weight:600;font-variant-numeric:tabular-nums;min-width:96px}.precision-elo-filter__slider{--p-min: 0;--p-max: 1;position:relative;flex:1 1 240px;max-width:360px;min-width:200px;height:24px;display:flex;align-items:center}.precision-elo-filter__slider:before{content:"";position:absolute;left:0;right:0;top:50%;height:4px;background:var(--border-mid);border-radius:999px;transform:translateY(-50%);pointer-events:none}.precision-elo-filter__slider:after{content:"";position:absolute;top:50%;height:4px;left:calc(var(--p-min) * 100%);right:calc((1 - var(--p-max)) * 100%);background:var(--accent-primary);border-radius:999px;transform:translateY(-50%);pointer-events:none}input[type=range].precision-elo-filter__range{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;padding:0;border:0;background:transparent;accent-color:transparent;pointer-events:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=range].precision-elo-filter__range:focus{outline:none}input[type=range].precision-elo-filter__range::-webkit-slider-runnable-track{background:transparent;height:4px;border-radius:999px}input[type=range].precision-elo-filter__range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;pointer-events:auto;width:16px;height:16px;margin-top:-6px;border-radius:50%;background:var(--accent-primary);border:2px solid var(--bg-canvas);box-shadow:0 1px 4px var(--ov-black-30);cursor:grab;transition:transform .1s ease,box-shadow .1s ease}input[type=range].precision-elo-filter__range::-webkit-slider-thumb:hover{transform:scale(1.08)}input[type=range].precision-elo-filter__range::-webkit-slider-thumb:active{cursor:grabbing;transform:scale(1.12)}input[type=range].precision-elo-filter__range:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px var(--ov-accent-25, rgba(124, 131, 255, .35))}input[type=range].precision-elo-filter__range::-moz-range-track{background:transparent;border:0;height:4px;border-radius:999px}input[type=range].precision-elo-filter__range::-moz-range-progress{background:transparent;height:4px}input[type=range].precision-elo-filter__range::-moz-range-thumb{pointer-events:auto;width:16px;height:16px;border-radius:50%;background:var(--accent-primary);border:2px solid var(--bg-canvas);box-shadow:0 1px 4px var(--ov-black-30);cursor:grab;transition:transform .1s ease,box-shadow .1s ease}input[type=range].precision-elo-filter__range::-moz-range-thumb:hover{transform:scale(1.08)}input[type=range].precision-elo-filter__range::-moz-range-thumb:active{cursor:grabbing;transform:scale(1.12)}input[type=range].precision-elo-filter__range:focus-visible::-moz-range-thumb{box-shadow:0 0 0 4px var(--ov-accent-25, rgba(124, 131, 255, .35))}@media(max-width:640px){.precision-elo-filter{gap:6px 10px}.precision-elo-filter__slider{flex:1 1 100%;max-width:none;height:32px}input[type=range].precision-elo-filter__range::-webkit-slider-thumb{width:22px;height:22px;margin-top:-9px}input[type=range].precision-elo-filter__range::-moz-range-thumb{width:22px;height:22px}}.precision-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;margin:0 0 24px;padding:24px 20px;background:var(--bg-muted);border:1px dashed var(--border-mid);border-radius:12px;text-align:center}.precision-empty__title{margin:0;font-size:14px;color:var(--text-secondary);line-height:1.4}.precision-empty__cta{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:10px 22px;border:0;border-radius:8px;background:var(--accent-primary);color:var(--text-on-accent);font-size:14px;font-weight:600;cursor:pointer;transition:background .12s ease,transform .12s ease}.precision-empty__cta:hover{background:var(--accent-hover)}.precision-empty__cta:active{transform:translateY(1px)}.precision-empty__cta:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ov-accent-25, rgba(124, 131, 255, .35))}@media(max-width:640px){.precision-empty{padding:20px 16px}}.precision-subnav{display:flex;align-items:stretch;gap:4px;margin:-24px -16px 20px;padding:0 16px;background:var(--bg-canvas);border-bottom:1px solid var(--border-subtle);position:sticky;top:0;z-index:40}.precision-subnav__item{position:relative;padding:12px 18px;font-size:14px;font-weight:600;line-height:1.2;color:var(--text-secondary);text-decoration:none;border-bottom:2px solid transparent;transition:color .12s ease,border-color .12s ease,background .12s ease}.precision-subnav__item:hover{color:var(--text-primary);background:var(--ov-white-04)}.precision-subnav__item:active{background:var(--ov-white-08)}.precision-subnav__item:focus-visible{outline:none;color:var(--text-primary);box-shadow:inset 0 0 0 2px var(--accent-primary);border-radius:2px}.precision-subnav__item--active,.precision-subnav__item[data-active=true]{background:var(--tab-active-bg);color:var(--tab-active-fg);border-bottom-color:var(--tab-active-border);border-radius:6px 6px 0 0}.precision-subnav__item--active:hover,.precision-subnav__item[data-active=true]:hover{background:var(--tab-active-hover-bg);color:var(--tab-active-fg)}@media(max-width:640px){.precision-subnav{gap:0;margin:-24px -16px 16px;padding:0}.precision-subnav__item{flex:1 1 0;text-align:center;padding:12px 6px;font-size:13px}}.precision-compact-stats{display:flex;align-items:center;gap:24px;margin:0 0 16px;padding:8px 14px;min-height:48px;background:var(--ov-white-03);border:1px solid var(--border-subtle);border-radius:8px}.precision-compact-stats__cell{position:relative;display:flex;align-items:baseline;gap:8px}.precision-compact-stats__cell+.precision-compact-stats__cell{padding-left:24px}.precision-compact-stats__cell+.precision-compact-stats__cell:before{content:"";position:absolute;left:0;top:50%;height:20px;width:1px;background:var(--border-subtle);transform:translateY(-50%)}.precision-compact-stats__value{font-size:16px;font-weight:700;line-height:1.1;color:var(--text-primary);font-variant-numeric:tabular-nums;white-space:nowrap}.precision-compact-stats__label{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-secondary);white-space:nowrap}.precision-compact-stats__full-link{margin-left:auto;font-size:13px;font-weight:600;color:var(--accent-primary);text-decoration:none;white-space:nowrap;transition:color .12s ease}.precision-compact-stats__full-link:hover{color:var(--accent-hover);text-decoration:underline}.precision-compact-stats__full-link:focus-visible{outline:none;box-shadow:0 0 0 2px var(--ov-accent-25, rgba(124, 131, 255, .35));border-radius:4px}@media(max-width:640px){.precision-compact-stats{gap:10px;padding:8px 10px;min-height:40px}.precision-compact-stats__cell{min-width:0;gap:6px}.precision-compact-stats__cell+.precision-compact-stats__cell{padding-left:10px}.precision-compact-stats__value{font-size:14px}.precision-compact-stats__label{font-size:10px;letter-spacing:.03em}.precision-compact-stats__full-link{display:none}}@media(max-width:360px){.precision-compact-stats__label{text-transform:none;letter-spacing:0;font-weight:500}}.precision-stats-page,.precision-history-page{max-width:1100px;margin:0 auto;padding:24px 16px 48px;color:var(--text-primary)}.precision-stats-page__header,.precision-history-page__header{margin:0 0 16px}.precision-history-page__header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.precision-stats-page__title,.precision-history-page__title{margin:0;font-size:24px;font-weight:700;line-height:1.2;color:var(--text-primary)}.precision-history-page__start-cta{font-size:14px;font-weight:600;color:var(--accent-primary);text-decoration:none;white-space:nowrap;transition:color .12s ease}.precision-history-page__start-cta:hover{color:var(--accent-hover);text-decoration:underline}.precision-history-page__start-cta:focus-visible{outline:none;box-shadow:0 0 0 2px var(--ov-accent-25, rgba(124, 131, 255, .35));border-radius:4px}.precision-stats-page__guest,.precision-history-page__guest{display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin:0 0 24px;padding:20px;background:var(--bg-deep);border:1px solid var(--border-subtle);border-radius:10px}.precision-stats-page__guest-message,.precision-history-page__guest-message{margin:0;font-size:14px;color:var(--text-secondary)}.precision-stats-page__guest-cta,.precision-history-page__guest-cta{display:inline-block;padding:8px 16px;background:var(--accent-primary);color:var(--text-on-accent);font-size:14px;font-weight:600;text-decoration:none;border-radius:8px;transition:background .12s ease}.precision-stats-page__guest-cta:hover,.precision-history-page__guest-cta:hover{background:var(--accent-hover)}.precision-stats-page__guest-cta:focus-visible,.precision-history-page__guest-cta:focus-visible{outline:none;box-shadow:0 0 0 2px var(--ov-accent-25, rgba(124, 131, 255, .35))}@media(max-width:640px){.precision-stats-page__title,.precision-history-page__title{font-size:20px}}.precision-stats{display:flex;flex-wrap:wrap;gap:16px;margin:0 0 20px;padding:12px 16px;background:var(--c-1e293b);border-radius:6px;border:1px solid var(--c-2a2a4e, #2a2a4e)}.precision-stats__cell{display:flex;flex-direction:column;gap:2px;min-width:80px}.precision-stats__value{font-size:22px;font-weight:700;color:var(--c-e2e8f0);font-variant-numeric:tabular-nums}.precision-stats__label{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--c-94a3b8)}.precision-stats__hint{font-size:11px;color:var(--c-64748b, #64748b)}.precision-stats__placeholder{margin:0;color:var(--c-94a3b8);font-size:13px}.precision-stats__cell--avg-score{min-width:160px}.precision-stats__stack-bar{display:flex;width:100%;height:8px;margin-top:6px;background:#94a3b81f;border-radius:4px;overflow:hidden}.precision-stats__stack-seg{display:block;height:100%;transition:width .25s ease}.precision-stats__stack-seg:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px}.precision-stats__stack-seg:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}.precision-stats[data-state=empty]{justify-content:center}.precision-hide-preserved{display:inline-flex;align-items:center;gap:8px;margin:0 0 16px;font-size:13px;color:var(--c-e2e8f0);cursor:pointer}.precision-hide-preserved input{cursor:pointer}.precision-trends,.precision-breakdowns{margin:0 0 24px;padding:12px 16px;background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:8px;color:var(--text-primary)}.precision-trends__header,.precision-breakdowns__header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:12px}.precision-trends__title,.precision-breakdowns__title{margin:0;font-size:16px;font-weight:600}.precision-trends__toggle{display:inline-flex;gap:4px;background:var(--bg-elevated);border-radius:6px;padding:2px}.precision-trends__toggle-btn{background:transparent;border:0;padding:4px 12px;font-size:12px;border-radius:4px;color:var(--text-secondary);cursor:pointer}.precision-trends__toggle-btn--active{background:var(--tab-active-bg);color:var(--tab-active-fg)}.precision-trends__svg{width:100%;height:140px;display:block}.precision-trends__skeleton,.precision-breakdowns__skeleton{height:140px;border-radius:6px;background:var(--bg-elevated);opacity:.5;animation:precision-skeleton 1.2s ease-in-out infinite alternate}.precision-trends__msg,.precision-breakdowns__msg{margin:0;font-size:13px;color:var(--text-secondary)}.precision-trends__retry,.precision-breakdowns__retry{margin-top:8px;background:transparent;color:var(--accent-primary);border:1px solid var(--accent-primary);padding:4px 10px;border-radius:4px;cursor:pointer}.precision-breakdowns__grid{display:grid;grid-template-columns:1fr;gap:16px}@media(min-width:768px){.precision-breakdowns__grid{grid-template-columns:1fr 1fr}}.precision-breakdowns__card{background:var(--bg-deep);border:1px solid var(--border-subtle);border-radius:6px;padding:10px 12px;color:var(--text-primary)}.precision-breakdowns__card-title{margin:0 0 8px;font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.precision-breakdowns__bars,.precision-breakdowns__themes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.precision-breakdowns__bars-row,.precision-breakdowns__themes-row{display:grid;grid-template-columns:96px 1fr auto;gap:8px;align-items:center;font-size:13px}.precision-breakdowns__themes-row{grid-template-columns:1fr 1fr auto}.precision-breakdowns__bars-track,.precision-breakdowns__themes-track{height:10px;background:var(--bg-elevated);border-radius:4px;overflow:hidden}.precision-breakdowns__bars-fill{display:block;height:100%;border-radius:4px}.precision-breakdowns__bars-fill--opening{background:var(--c-3b82f6)}.precision-breakdowns__bars-fill--middlegame{background:var(--c-7c83ff)}.precision-breakdowns__bars-fill--endgame{background:var(--c-22c55e)}.precision-breakdowns__themes-fill{display:block;height:100%;background:linear-gradient(90deg,var(--c-f59e0b),var(--c-dc2626));border-radius:4px}.precision-breakdowns__bars-meta,.precision-breakdowns__themes-meta{font-variant-numeric:tabular-nums;color:var(--text-secondary);font-size:12px}.precision-breakdowns__themes-label{color:var(--text-primary)}.precision-attempts{margin:0 0 24px;color:var(--c-e2e8f0)}.precision-attempts__header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.precision-attempts__title{margin:0;font-size:16px;font-weight:600}.precision-attempts__filters{display:inline-flex;gap:4px;background:var(--c-1e293b);border:1px solid var(--c-2a2a4e, #2a2a4e);border-radius:6px;padding:2px}.precision-attempts__filter{background:transparent;border:0;color:var(--c-94a3b8);padding:4px 10px;font-size:12px;border-radius:4px;cursor:pointer}.precision-attempts__filter--active{background:var(--tab-active-bg);color:var(--tab-active-fg)}.precision-attempts__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.precision-attempts__row{background:var(--c-1e293b);border:1px solid var(--border-subtle);border-radius:10px;overflow:hidden;transition:transform .12s ease,box-shadow .12s ease}.precision-attempts__row:hover{transform:translateY(-2px);box-shadow:0 4px 18px #00000040}.precision-attempts__row--skeleton{min-height:280px;opacity:.5;animation:precision-skeleton 1.2s ease-in-out infinite alternate}@keyframes precision-skeleton{0%{opacity:.35}to{opacity:.65}}.precision-attempts__row--preserved{border-left:3px solid var(--success)}.precision-attempts__row--lost{border-left:3px solid var(--danger)}.precision-attempts__row-btn{display:flex;flex-direction:column;gap:8px;width:100%;background:transparent;border:0;padding:0;text-align:left;cursor:pointer;color:inherit;text-decoration:none}.precision-attempts__row-btn:hover{background:#7c83ff0f}.precision-attempts__row-btn:focus-visible{outline:2px solid var(--accent-primary, #7c83ff);outline-offset:2px;border-radius:8px}.precision-attempts__preview{display:block;width:100%;aspect-ratio:1 / 1;flex-shrink:0;background:var(--c-0f172a, #0f172a);pointer-events:none;touch-action:manipulation}.precision-attempts__main{display:flex;flex-direction:column;gap:6px;padding:8px 12px 10px;font-size:13px}.precision-attempts__accuracy{font-variant-numeric:tabular-nums}.precision-attempts__halfmoves{color:var(--c-94a3b8);font-size:12px}.precision-attempts__date{color:var(--c-94a3b8);font-size:11px;text-align:right}.precision-attempts__badges{display:inline-flex;gap:4px}.precision-attempts__badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:18px;padding:0 5px;border-radius:4px;font-size:11px;font-weight:700;color:#0b1220}.precision-attempts__badge--best{background:#27ae60}.precision-attempts__badge--good{background:#7fbf7f}.precision-attempts__badge--inaccuracy{background:#f1c40f}.precision-attempts__badge--mistake{background:#e67e22}.precision-attempts__badge--blunder{background:#c0392b;color:#fef2f2}.precision-attempts__more{margin:12px auto 0;display:block;background:var(--c-1e293b);color:var(--c-e2e8f0);border:1px solid var(--c-2a2a4e, #2a2a4e);padding:8px 16px;border-radius:6px;cursor:pointer}.precision-attempts__more:disabled{opacity:.5;cursor:default}.precision-attempts__loading-more{margin:12px 0;text-align:center;color:var(--c-94a3b8);font-size:13px}.precision-attempts__empty,.precision-attempts__error{margin:8px 0 0;color:var(--c-94a3b8);font-size:13px}.precision-attempts__error-detail{margin:4px 0 0;color:var(--c-94a3b8);font-size:11px;opacity:.7;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-all}.precision-attempts__retry{margin-top:8px;background:transparent;color:var(--accent-primary, #7c83ff);border:1px solid var(--accent-primary, #7c83ff);padding:4px 10px;border-radius:4px;cursor:pointer}@media(max-width:640px){.precision-attempts__main{grid-template-columns:1fr;gap:4px}.precision-attempts__date{text-align:left}}.precision-attempt-page{max-width:920px;margin:0 auto;padding:24px 16px;color:var(--c-e2e8f0)}.precision-attempt-page__back{color:var(--accent-primary, #7c83ff);text-decoration:none;font-size:14px}.precision-attempt-page__header h1{margin:8px 0 16px;font-size:22px}.precision-attempt-page__summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:24px;padding:12px 16px;background:var(--c-1e293b);border-radius:6px;border:1px solid var(--c-2a2a4e, #2a2a4e)}.precision-attempt-page__summary-cell{display:flex;flex-direction:column;gap:2px}.precision-attempt-page__summary-label{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--c-94a3b8)}.precision-attempt-page__summary-value{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}.precision-attempt-page__chart{margin-bottom:24px}.precision-attempt-page__chart-title{font-size:14px;font-weight:600;margin:0 0 8px;color:var(--c-94a3b8)}.precision-attempt-page__sparkline{width:100%;height:80px;background:var(--c-1e293b);border-radius:6px;padding:8px;box-sizing:border-box}.precision-attempt-page__sparkline-labels{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px;font-size:12px;line-height:1.3}.precision-attempt-page__sparkline-label{display:inline-block;padding:3px 8px;background:var(--c-1e293b);color:var(--c-94a3b8);border-radius:999px;font-variant-numeric:tabular-nums;white-space:nowrap}.precision-attempt-page__bars{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.precision-attempt-page__bars-row{display:grid;grid-template-columns:96px 1fr 36px;gap:8px;align-items:center;font-size:13px}.precision-attempt-page__bars-track{height:10px;background:var(--c-2a2a4e, #2a2a4e);border-radius:4px;overflow:hidden}.precision-attempt-page__bars-fill{display:block;height:100%;border-radius:4px}.precision-attempt-page__bars-count{text-align:right;font-variant-numeric:tabular-nums;color:var(--c-94a3b8)}.precision-attempt-page__review{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}@media(min-width:768px){.precision-attempt-page__review{grid-template-columns:360px minmax(0,1fr)}}.precision-attempt-page__open-workshop{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:600;color:var(--text-on-accent, #fff);background:var(--accent-primary, #7c83ff);border:1px solid var(--accent-primary, #7c83ff);border-radius:8px;cursor:pointer;text-decoration:none;transition:background .12s ease,border-color .12s ease,transform .05s ease}.precision-attempt-page__open-workshop:hover{background:var(--accent-hover, #6366f1);border-color:var(--accent-hover, #6366f1)}.precision-attempt-page__open-workshop:active{transform:translateY(1px)}.precision-attempt-page__open-workshop:disabled{opacity:.55;cursor:default}.precision-attempt-page__open-workshop:focus-visible{outline:2px solid var(--accent-primary, #7c83ff);outline-offset:2px}.precision-attempt-review{padding:12px 14px;background:var(--bg-muted, var(--c-1e293b));border:1px solid var(--border-mid, var(--c-2a2a4e));border-radius:8px}.precision-attempt-review__title{margin:0 0 10px;font-size:15px;font-weight:700;letter-spacing:.2px;color:var(--text-primary, var(--c-e0e0e0))}.precision-attempt-review__pgn{font-size:14px;line-height:1.75;font-variant-numeric:tabular-nums;color:var(--text-primary, var(--c-e2e8f0));word-spacing:2px}.precision-attempt-review__movenum{color:var(--text-secondary, var(--c-94a3b8));font-weight:700}.precision-attempt-review__move{padding:1px 3px;font-weight:600;border-radius:3px}.precision-attempt-review__move:hover{background:var(--ov-white-08, rgba(255, 255, 255, .06))}.precision-attempt-review__move--user{color:var(--text-primary, var(--c-e2e8f0))}.precision-attempt-review__move--engine{color:var(--text-secondary, var(--c-94a3b8))}.precision-attempt-review__move--best{color:var(--success-strong, #4ade80)}.precision-attempt-review__move--good{color:var(--text-primary, var(--c-e2e8f0))}.precision-attempt-review__move--inaccuracy{color:#ca8a04}.precision-attempt-review__move--mistake{color:#c2410c}.precision-attempt-review__move--blunder{color:var(--danger-strong, #f87171)}:root[data-theme=dark] .precision-attempt-review__move--inaccuracy{color:#facc15}:root[data-theme=dark] .precision-attempt-review__move--mistake{color:#f97316}:root[data-theme=dark] .precision-attempt-review__move--blunder{color:#f87171}.precision-score-block{--tone-color: #94a3b8;--tone-bg: rgba(148, 163, 184, .1);padding:14px 16px;background:var(--tone-bg);border:1px solid var(--tone-color);border-radius:10px;color:var(--text-primary, var(--c-e2e8f0))}.precision-score-block--emerald{--tone-color: #10b981;--tone-bg: rgba(16, 185, 129, .12)}.precision-score-block--lime{--tone-color: #84cc16;--tone-bg: rgba(132, 204, 22, .12)}.precision-score-block--amber{--tone-color: #f59e0b;--tone-bg: rgba(245, 158, 11, .14)}.precision-score-block--orange{--tone-color: #f97316;--tone-bg: rgba(249, 115, 22, .14)}.precision-score-block--red{--tone-color: #ef4444;--tone-bg: rgba(239, 68, 68, .14)}.precision-score-block--unavailable{--tone-color: #94a3b8;--tone-bg: rgba(148, 163, 184, .08)}.precision-score-badge{--tone-color: #94a3b8;display:inline-flex;align-items:center;gap:1px;color:var(--tone-color);line-height:0}.precision-score-badge--emerald{--tone-color: #10b981}.precision-score-badge--lime{--tone-color: #84cc16}.precision-score-badge--amber{--tone-color: #f59e0b}.precision-score-badge--orange{--tone-color: #f97316}.precision-score-badge--red{--tone-color: #ef4444}.precision-score-badge--unavailable{--tone-color: #94a3b8;letter-spacing:2px;font-size:14px;font-weight:700}.precision-score-badge__star{display:block}.precision-score-badge__star--empty{opacity:.55}.precision-score-badge__dash{display:inline-block;min-width:5em;text-align:center;line-height:1}.precision-score-block__stars--unavailable{font-size:22px;font-weight:700;letter-spacing:4px;color:var(--tone-color)}.precision-score-block__dash{display:inline-block;min-width:96px}.precision-score-block__row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.precision-score-block__stars{display:inline-flex;align-items:center;gap:2px;color:var(--tone-color);line-height:0}.precision-score-block__star{display:block}.precision-score-block__star--empty{opacity:.55}.precision-score-block__accuracy{font-size:15px;font-weight:700;letter-spacing:.2px;color:var(--tone-color);font-variant-numeric:tabular-nums}.precision-score-block__interpretation{margin:8px 0 0;font-size:13px;line-height:1.45;color:var(--text-secondary, var(--c-94a3b8))}.precision-score-block__subtitle{margin:2px 0 0;font-size:12px;line-height:1.4;color:var(--text-muted, var(--c-64748b));font-style:italic}@media(max-width:480px){.precision-score-block{padding:12px 14px}.precision-score-block__accuracy{font-size:14px}}.play-vs-engine-puzzles__back-link{display:inline-flex;align-items:center;gap:4px;padding:6px 14px;border:1px solid var(--border-mid);border-radius:6px;background:transparent;color:var(--accent-primary);text-decoration:none;font-size:13px;font-weight:600;line-height:1.2;transition:background .12s ease,border-color .12s ease,color .12s ease}.play-vs-engine-puzzles__back-link:hover{background:var(--ov-accent-08);border-color:var(--accent-primary);color:var(--accent-hover);text-decoration:none}.play-vs-engine-puzzles__back-link:focus-visible{outline:none;box-shadow:0 0 0 2px var(--ov-accent-25, rgba(124, 131, 255, .35))}.play-vs-engine-puzzles__status{margin:24px 0;padding:16px 20px;background:var(--bg-surface, #1f2937);border:1px solid var(--border-mid, #334155);border-radius:10px;color:var(--text-secondary, #94a3b8);text-align:center}.play-vs-engine-puzzles__status--error{border-color:var(--danger-strong, #dc2626);color:var(--danger-strong, #dc2626)}.play-vs-engine-puzzles__status--error button{margin-top:10px;padding:8px 14px;background:transparent;border:1px solid currentColor;border-radius:6px;color:inherit;cursor:pointer}.play-vs-engine-puzzles__list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.play-vs-engine-card{display:flex;flex-direction:column;background:var(--bg-surface, #1f2937);border:1px solid var(--border-mid, #334155);border-radius:10px;overflow:hidden;transition:border-color .12s ease,transform .12s ease}.play-vs-engine-card:hover{border-color:var(--accent-primary, #7c83ff);transform:translateY(-1px)}.play-vs-engine-card__board-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;padding:0;width:100%;aspect-ratio:1;cursor:pointer;display:block;color:inherit;text-decoration:none}.play-vs-engine-card__board-btn:focus-visible{outline:2px solid var(--accent-primary, #7c83ff);outline-offset:2px}.play-vs-engine-card__board-btn>*{pointer-events:none}.play-vs-engine-card__body{display:flex;flex-direction:column;gap:6px;padding:10px 12px 12px}.play-vs-engine-card__title{font-size:13px;font-weight:600;color:var(--text-primary, #f1f5f9);font-family:ui-monospace,SF Mono,Menlo,monospace}.play-vs-engine-card__themes{display:flex;flex-wrap:wrap;gap:4px}.play-vs-engine-card__theme-tag{font-size:11px;padding:2px 8px;border-radius:999px;background:var(--ov-accent-15, rgba(124, 131, 255, .15));color:var(--accent-primary, #7c83ff)}.play-vs-engine-card__meta{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--text-secondary, #94a3b8);align-items:center;justify-content:space-between}.play-vs-engine-card__side{font-size:11px;padding:2px 6px;border-radius:4px;background:var(--bg-elevated, #0f172a);color:var(--text-secondary, #94a3b8)}.play-vs-engine-card__source{display:flex;flex-direction:column;gap:2px;min-width:0;margin-top:2px}.play-vs-engine-card__source-players{font-size:11px;line-height:1.35;color:var(--text-secondary);display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.play-vs-engine-card__source-blunder{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:600;line-height:1.3;color:var(--danger);font-variant-numeric:tabular-nums}.play-vs-engine-card__source-blunder:before{content:"⚠";font-size:12px;line-height:1;color:var(--warning)}@media(max-width:640px){.play-vs-engine-card__source-players{font-size:10px}.play-vs-engine-card__source-blunder{font-size:12px}.play-vs-engine-card__source-blunder:before{font-size:11px}}.play-vs-engine-card__solve-btn{margin-top:4px;padding:8px 12px;font-size:13px;font-weight:600;background:var(--accent-primary, #7c83ff);color:var(--text-on-accent, #0f172a);border:0;border-radius:6px;cursor:pointer}.play-vs-engine-card__solve-btn:hover{background:var(--accent-hover, #6b72e6)}@media(max-width:600px){.play-vs-engine-puzzles__list{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.play-vs-engine-card__body{padding:8px 10px 10px}}.puzzle-engine-runner__actions{display:flex;justify-content:stretch;margin-top:8px}.puzzle-engine-runner__workshop-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:10px 18px;font-size:14px;font-weight:600;color:var(--text-on-accent, #fff);background:var(--accent-primary, #7c83ff);border:1px solid var(--accent-primary, #7c83ff);border-radius:8px;text-decoration:none;text-align:center;transition:background .12s ease,border-color .12s ease,transform .05s ease}.puzzle-engine-runner__workshop-link:after{content:"↗";font-size:13px;opacity:.9}.puzzle-engine-runner__workshop-link:hover{background:var(--accent-hover, #6366f1);border-color:var(--accent-hover, #6366f1);color:var(--text-on-accent, #fff)}.puzzle-engine-runner__workshop-link:active{transform:translateY(1px)}.puzzle-engine-runner__workshop-link:focus-visible{outline:2px solid var(--accent-primary, #7c83ff);outline-offset:2px}.puzzle-source-game{display:flex;flex-direction:column;gap:6px;margin-top:16px;padding:10px 14px;background:var(--bg-surface, #1f2937);border:1px solid var(--border-mid, #334155);border-radius:8px}.puzzle-source-game__header{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary, #94a3b8)}.puzzle-source-game__headers{margin:0;font-size:14px;line-height:1.4;color:var(--text-primary, #f1f5f9)}.puzzle-source-game__links{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}.puzzle-source-game__link{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;font-size:13px;color:var(--accent-primary, #7c83ff);background:var(--ov-accent-15, rgba(124, 131, 255, .15));border:1px solid var(--ov-accent-20, rgba(124, 131, 255, .2));border-radius:6px;text-decoration:none;transition:background .12s ease,color .12s ease}.puzzle-source-game__link--external:after{content:"↗";font-size:11px;opacity:.7}.puzzle-source-game__link:hover{background:var(--ov-accent-20, rgba(124, 131, 255, .25))}.puzzle-source-game__link:focus-visible{outline:2px solid var(--accent-primary, #7c83ff);outline-offset:2px}.modes-breakdown{margin:24px 0}.modes-breakdown__title{margin:0 0 12px;font-size:18px;font-weight:600;color:var(--text-primary, #f1f5f9)}.modes-breakdown__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.modes-breakdown__card{display:flex;flex-direction:column;gap:12px;padding:16px 18px;background:var(--bg-surface, #1f2937);border:1px solid var(--border-mid, #334155);border-radius:10px;color:var(--text-primary, #f1f5f9);text-decoration:none;transition:border-color .12s ease,transform .12s ease}.modes-breakdown__card:hover{border-color:var(--accent-primary, #7c83ff);transform:translateY(-1px)}.modes-breakdown__card-title{margin:0;font-size:16px;font-weight:600}.modes-breakdown__card-description{margin:4px 0 0;font-size:13px;line-height:1.4;color:var(--text-secondary, #94a3b8)}.modes-breakdown__metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 16px;margin:0}.modes-breakdown__metric{display:flex;flex-direction:column;gap:2px}.modes-breakdown__metric dt{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary, #94a3b8)}.modes-breakdown__metric dd{margin:0;font-size:16px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-primary, #f1f5f9)}.modes-breakdown__cta{margin-top:auto;font-size:13px;font-weight:600;color:var(--accent-primary, #7c83ff)}.post-game-review{margin-top:4px;padding:12px 14px;background:var(--bg-muted, var(--c-1e293b));border:1px solid var(--border-mid, var(--c-2a2a4e));border-radius:8px;text-align:left}.post-game-review__title{margin:0 0 10px;font-size:15px;font-weight:700;letter-spacing:.2px;color:var(--text-primary, var(--c-e0e0e0))}.post-game-review__pgn{font-size:14px;line-height:1.75;font-variant-numeric:tabular-nums;color:var(--text-primary, var(--c-e2e8f0));word-spacing:2px}.post-game-review__movenum{color:var(--text-secondary, var(--c-94a3b8));font-weight:700;margin-right:1px}.post-game-review__move{display:inline;padding:1px 3px;background:transparent;border:0;color:inherit;font:inherit;font-weight:600;cursor:pointer;border-radius:3px}.post-game-review__move--user{font-weight:700}.post-game-review__move:not(.post-game-review__move--user){font-weight:400;color:var(--text-secondary, var(--c-94a3b8))}.post-game-review__move:hover{background:var(--ov-white-08, rgba(255, 255, 255, .06))}.post-game-review__move:focus-visible{outline:2px solid var(--accent-primary, #7c83ff);outline-offset:1px}.post-game-review__move--best,.post-game-review__move--good,.post-game-review__move--inaccuracy,.post-game-review__move--mistake,.post-game-review__move--blunder{color:inherit}.post-game-review__nag{font-weight:700;font-size:1.05em;margin-left:1px}.post-game-review__eval-meta{display:inline-block;font-size:12px;font-weight:600;color:var(--text-primary, var(--c-e2e8f0));margin:0 2px 0 4px;padding:1px 7px;background:var(--ov-accent-15, rgba(124, 131, 255, .15));border:1px solid var(--ov-accent-20, rgba(124, 131, 255, .2));border-radius:999px;font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;letter-spacing:0;white-space:nowrap;vertical-align:baseline}.post-game-review__variation{display:inline;padding:1px 3px;margin:0 2px;background:transparent;border:0;color:var(--text-secondary, var(--c-94a3b8));font:inherit;font-style:italic;cursor:pointer;border-radius:3px}.post-game-review__variation:hover{background:var(--ov-white-08, rgba(255, 255, 255, .06))}.post-game-review__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.post-game-review__row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:5px 10px;border-radius:4px;font-size:13px;background:#ffffff05;transition:background-color .12s ease}.post-game-review__row:hover{background-color:#ffffff0f}.post-game-review__half{color:var(--c-94a3b8);min-width:24px;font-variant-numeric:tabular-nums}.post-game-review__san{font-weight:600;color:var(--c-e2e8f0);min-width:56px}.post-game-review__class{font-size:12px;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.post-game-review__best{flex-basis:100%;font-size:12px;color:var(--c-94a3b8);margin-left:32px}.post-game-review__row--best{border-left:3px solid #4ade80;background:#4ade8012}.post-game-review__row--good{border-left:3px solid #94a3b8;background:#94a3b80d}.post-game-review__row--inaccuracy{border-left:3px solid #facc15;background:#facc1514}.post-game-review__row--mistake{border-left:3px solid #f97316;background:#f973161a}.post-game-review__row--blunder{border-left:3px solid #f87171;background:#f871711f}.post-game-review__row--best:hover{background:#4ade8021}.post-game-review__row--good:hover{background:#94a3b81a}.post-game-review__row--inaccuracy:hover{background:#facc1524}.post-game-review__row--mistake:hover{background:#f9731629}.post-game-review__row--blunder:hover{background:#f871712e}.post-game-review__row--best .post-game-review__class{color:#4ade80}.post-game-review__row--good .post-game-review__class{color:#94a3b8}.post-game-review__row--inaccuracy .post-game-review__class{color:#facc15}.post-game-review__row--mistake .post-game-review__class{color:#f97316}.post-game-review__row--blunder .post-game-review__class{color:#f87171}.post-game-review__row--clickable{padding:0}.post-game-review__row-btn{display:flex;align-items:center;flex-wrap:wrap;gap:8px;width:100%;padding:4px 8px;background:transparent;border:0;color:inherit;font:inherit;cursor:pointer;text-align:left}.post-game-review__row-btn:focus-visible{outline:2px solid var(--accent-primary, #7c83ff);outline-offset:-2px}@media(prefers-reduced-motion:reduce){.post-game-review__row{transition:none}}@media(max-width:640px){.post-game-review{padding:8px 10px}.post-game-review__row{gap:6px;padding:5px 8px;font-size:12px}.post-game-review__half{min-width:20px}.post-game-review__san{min-width:48px}.post-game-review__class{font-size:11px}.post-game-review__best{margin-left:26px;font-size:11px}}.puzzle-filters__rating{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin-bottom:12px}.puzzle-filters__field{display:flex;flex-direction:column;gap:4px;min-width:110px}.puzzle-filters__field-label{font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:var(--c-94a3b8)}.puzzle-filters__field input[type=number]{background:var(--c-1a1a2e);border:1px solid var(--c-2a2a4e, #2a2a4e);color:var(--c-e2e8f0);border-radius:4px;padding:6px 8px;font-size:14px;width:100%;font-variant-numeric:tabular-nums}.puzzle-filters__hide-solved{display:inline-flex;align-items:center;gap:6px;color:var(--c-cbd5e1);font-size:13px;-webkit-user-select:none;user-select:none}.puzzle-filters__reset{background:transparent;color:var(--c-94a3b8);border:1px solid var(--c-2a2a4e, #2a2a4e);border-radius:4px;padding:6px 12px;cursor:pointer}.puzzle-filters__reset:hover{color:var(--c-e2e8f0);border-color:var(--c-475569, #475569)}.puzzle-filters__themes{display:flex;flex-wrap:wrap;gap:6px}.puzzle-filters__theme-chip{background:var(--c-1a1a2e);color:var(--c-cbd5e1);border:1px solid var(--c-2a2a4e, #2a2a4e);border-radius:16px;padding:4px 12px;font-size:12px;cursor:pointer}.puzzle-filters__theme-chip:hover{border-color:var(--c-475569, #475569)}.puzzle-filters__theme-chip.active{background:var(--tab-active-bg);color:var(--tab-active-fg);border-color:var(--tab-active-border)}.puzzle-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:16px}.puzzle-card__board-btn{background:transparent;border:0;padding:0;width:100%;cursor:pointer;border-radius:6px;overflow:hidden;aspect-ratio:1 / 1;display:block}.puzzle-mini-board{display:block;width:100%;height:100%}.puzzle-card__board-btn:hover{outline:2px solid var(--accent-primary, #7c83ff)}.puzzle-card__board-btn:focus-visible{outline:2px solid var(--accent-primary, #7c83ff);outline-offset:2px}.puzzle-card__meta{display:flex;align-items:center;gap:8px;padding:4px 8px;font-size:13px}.puzzle-card__rating{font-weight:700;color:var(--c-e2e8f0);font-variant-numeric:tabular-nums}.puzzle-card__side{font-size:16px;color:var(--c-cbd5e1)}.puzzle-card__status--solved{color:#4ade80}.puzzle-card__status--failed{color:#f87171}.puzzle-card__owner-actions{display:flex;gap:4px;padding:0 8px 6px}.puzzle-browser-sentinel{width:100%;height:1px}.puzzle-browser-loading-more,.puzzle-browser-end{text-align:center;color:var(--c-94a3b8);font-size:13px;padding:12px 0}.precision-card__badge{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;line-height:1.3;letter-spacing:.3px;text-transform:uppercase;vertical-align:middle;white-space:nowrap}.precision-card__badge--draft{background:#fcdc582e;color:#d4a017;border:1px solid #d4a017}.precision-card__badge--published{background:#4ade802e;color:#16a34a;border:1px solid #16a34a}.play-vs-engine-card__actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.precision-card__publish-btn{flex:0 0 auto;min-height:36px;padding:7px 14px;font-family:inherit;font-size:13px;font-weight:600;background:var(--c-4ade80, #4ade80);color:var(--c-111, #111);border:none;border-radius:6px;cursor:pointer;transition:filter .12s ease,transform .1s ease,box-shadow .12s ease}.precision-card__publish-btn:hover:not(:disabled){filter:brightness(1.08);box-shadow:0 2px 6px #4ade8040}.precision-card__publish-btn:active:not(:disabled){transform:scale(.97)}.precision-card__publish-btn:focus-visible{outline:2px solid var(--c-4ade80, #4ade80);outline-offset:2px}.precision-card__publish-btn:disabled{opacity:.6;cursor:not-allowed}@media(max-width:480px){.precision-card__publish-btn{flex:1 1 100%;min-height:44px;font-size:14px}.precision-card__badge{padding:1px 6px;letter-spacing:.2px}}@media(prefers-reduced-motion:reduce){.precision-card__publish-btn,.puzzle-generator-saved button{transition:none}}.precision-card__icon-action{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid var(--border-subtle);border-radius:6px;background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;position:relative;transition:background .12s ease,border-color .12s ease,color .12s ease}.precision-card__icon-action:hover:not(:disabled){color:var(--text-primary);background:var(--bg-elevated, var(--bg-surface));border-color:var(--text-secondary)}.precision-card__icon-action:focus-visible{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--ov-accent-15, rgba(124, 131, 255, .25));color:var(--text-primary)}.precision-card__icon-action:disabled{opacity:.5;cursor:not-allowed}.precision-card__icon{width:18px;height:18px;flex-shrink:0;display:block;pointer-events:none}.precision-card__icon-action--solve{background:var(--accent-primary, #7c83ff);border-color:var(--accent-primary, #7c83ff);color:var(--text-on-accent, #fff)}.precision-card__icon-action--solve:hover:not(:disabled){background:var(--accent-hover, #6b72e6);border-color:var(--accent-hover, #6b72e6);color:var(--text-on-accent, #fff)}.precision-card__icon-action--delete{color:var(--danger, #dc2626)}.precision-card__icon-action--delete:hover:not(:disabled){color:var(--danger, #dc2626);background:var(--danger-soft, rgba(220, 38, 38, .12));border-color:var(--danger, #dc2626)}.precision-card__icon-action--publish{background:var(--c-4ade80, #4ade80);border-color:var(--c-4ade80, #4ade80);color:var(--c-111, #111)}.precision-card__icon-action--publish:hover:not(:disabled){filter:brightness(.95);background:var(--c-4ade80, #4ade80);border-color:var(--c-4ade80, #4ade80);color:var(--c-111, #111)}@media(hover:hover){.precision-card__icon-action:after{content:attr(aria-label);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%) translateY(2px);padding:4px 8px;font-size:12px;font-weight:500;line-height:1.2;color:var(--text-on-accent, #fff);background:var(--c-1e293b, #1e293b);border-radius:4px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .12s ease,transform .12s ease;z-index:5}.precision-card__icon-action:hover:after,.precision-card__icon-action:focus-visible:after{opacity:1;transform:translate(-50%) translateY(0)}}@media(max-width:600px){.precision-card__icon-action{width:44px;height:44px}.precision-card__icon{width:22px;height:22px}.play-vs-engine-card__actions{flex-wrap:nowrap;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.play-vs-engine-card__actions::-webkit-scrollbar{display:none}}.precision-filter-chips-bar{display:none}.precision-subnav__mobile-actions{display:none;position:relative}@media(max-width:767px){.play-vs-engine-puzzles__header h1,.play-vs-engine-puzzles__intro,.play-vs-engine-puzzles__nav,.precision-tabs,.precision-objective-segments,.precision-show-solved,.precision-elo-filter{display:none}.precision-rating-sheet .precision-elo-filter{display:block}.precision-filter-chips-bar{display:flex;gap:8px;align-items:center;padding:8px max(12px,env(safe-area-inset-left,0px)) 8px max(12px,env(safe-area-inset-right,0px));overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;background:var(--bg-surface, #1a1a2e);border-bottom:1px solid var(--border-subtle, #2a2a3e);position:sticky;top:0;z-index:30;-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 24px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 24px),transparent)}.precision-filter-chips-bar::-webkit-scrollbar{display:none;height:0}.precision-subnav__mobile-actions{display:inline-flex;gap:4px;margin-left:auto;align-items:center}.precision-compact-stats{display:flex;flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:8px;padding:6px 12px;font-size:13px;line-height:1.4}.precision-compact-stats__cell{display:inline;margin:0}.precision-compact-stats__value{font-weight:600;margin-right:4px}.precision-compact-stats__label{opacity:.75;font-size:12px}.precision-compact-stats__cell:after{content:" · ";margin-left:4px;opacity:.5}.precision-compact-stats__cell:last-of-type:after{content:""}}.precision-chip{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg-elevated, #25253d);color:var(--text-primary, #e0e0e0);border:1px solid var(--border-subtle, #2a2a3e);border-radius:999px;padding:6px 12px;font-size:13px;white-space:nowrap;cursor:pointer;transition:background .12s ease,border-color .12s ease;flex-shrink:0;min-height:32px}.precision-chip:hover{background:var(--bg-hover, #2c2c47)}.precision-chip--active{background:var(--tab-active-bg);color:var(--tab-active-fg);border-color:var(--tab-active-border)}.precision-chip--rating{font-weight:500}.precision-chip--reset{font-size:16px;padding:6px 10px;min-width:32px}.precision-chips__separator{display:inline-block;width:1px;height:20px;background:var(--border-subtle, #2a2a3e);margin:0 4px;flex-shrink:0}.precision-rating-sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;align-items:flex-end;justify-content:stretch;animation:precision-rating-sheet-fade .18s cubic-bezier(.32,.72,0,1)}@keyframes precision-rating-sheet-fade{0%{opacity:0}to{opacity:1}}.precision-rating-sheet__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--ov-black-40, rgba(0, 0, 0, .5));border:0;padding:0;cursor:pointer;touch-action:none}.precision-rating-sheet__panel{position:relative;width:100%;max-width:100%;background:var(--bg-surface, #1a1a2e);border-radius:14px 14px 0 0;padding:16px max(16px,env(safe-area-inset-right,0px)) calc(72px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));box-shadow:0 -8px 24px var(--ov-black-40, rgba(0, 0, 0, .4));display:flex;flex-direction:column;gap:12px;animation:precision-rating-sheet-slide .22s cubic-bezier(.32,.72,0,1);will-change:transform}@keyframes precision-rating-sheet-slide{0%{transform:translateY(100%)}to{transform:translateY(0)}}.precision-rating-sheet__header{display:flex;align-items:center;justify-content:space-between}.precision-rating-sheet__title{font-size:16px;font-weight:600;margin:0}.precision-rating-sheet__close{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--text-primary, #e0e0e0);font-size:24px;line-height:1;padding:4px 12px;cursor:pointer;min-height:44px;min-width:44px}.precision-rating-sheet__footer{display:flex;justify-content:flex-end}.precision-rating-sheet__done{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--accent-primary, #7c83ff);color:#fff;border:0;border-radius:6px;padding:10px 18px;font-size:14px;font-weight:600;cursor:pointer;min-height:44px}.precision-subnav__icon-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--text-primary, #e0e0e0);font-size:18px;line-height:1;padding:8px 10px;cursor:pointer;min-height:44px;min-width:44px;border-radius:6px}.precision-subnav__icon-btn:hover{background:var(--ov-white-08, rgba(255, 255, 255, .08))}.precision-subnav__popover,.precision-subnav__menu{position:absolute;right:0;top:calc(100% + 6px);min-width:220px;max-width:280px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:8px;padding:10px 12px;box-shadow:0 6px 18px var(--ov-black-40, rgba(0, 0, 0, .4));z-index:200;font-size:13px;line-height:1.45;color:var(--text-primary, #e0e0e0)}.precision-subnav__menu{padding:4px 0;display:flex;flex-direction:column}.precision-subnav__menu-item{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:inherit;text-align:left;padding:10px 14px;font-size:14px;cursor:pointer;text-decoration:none;display:block}.precision-subnav__menu-item:hover,.precision-subnav__menu-item:focus-visible{background:var(--ov-white-08, rgba(255, 255, 255, .08));outline:none}@media(max-width:899px){.board-container{max-width:100%}.moves{max-height:150px}}@media(max-width:414px){.player-info{padding:6px 12px;gap:8px}.clock{font-size:20px;min-width:58px}.player-name{font-size:13px}}@media(max-width:375px){.player-info{padding:5px 10px}.clock{font-size:18px;min-width:52px}}@media(max-width:320px){.player-info{padding:4px 8px;gap:6px}.clock{font-size:16px;min-width:46px}.color-indicator{width:10px;height:10px}.player-name{font-size:12px}}@media(max-width:899px)and (orientation:landscape){.game-page{flex-direction:row;flex-wrap:nowrap;align-items:stretch;gap:8px;padding:36px 8px 8px;overflow:hidden;height:100%;min-height:0}.game-page>.game-sidebar{width:260px!important;padding-top:0}.game-board-area{gap:4px}.clock{font-size:16px;min-width:46px}.player-name{font-size:12px}.game-sidebar{height:100%;overflow:hidden}.chat{max-height:none}}@media(max-width:768px){.hamburger{display:flex}.header-center{display:none;position:absolute;top:48px;left:0;right:0;background:var(--c-16213e);border-bottom:1px solid var(--c-1a1a3e);flex-direction:column;padding:8px 16px;gap:0}.header-center--open{display:flex}.header-nav-link{border-bottom:none;padding:10px 12px;border-radius:6px}.header-nav-link.active{background:var(--ov-accent-15);border-bottom:none}.header-nav{flex-wrap:nowrap}.online-counter{display:none}.dropdown-menu{position:absolute;top:100%;right:0;left:auto;background:var(--c-1e2a4a);border:1px solid var(--c-2a3a5e);border-radius:8px;box-shadow:0 8px 24px var(--ov-black-50);margin-top:4px;z-index:200}.main{padding:16px;padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}.analysis-page{flex-direction:column;align-items:center}.analysis-sidebar{width:100%!important;max-width:100%}.puzzle-sidebar{width:100%!important;max-width:480px}.analysis-page .board-container{flex:none}body.has-analysis-page{overflow:hidden!important;height:100vh;height:100dvh}.app.has-analysis-page{height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}body.has-analysis-page .main{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding:0;margin:0;max-width:none;width:100%}.analysis-page{flex:1;min-height:0;height:auto;overflow:hidden;flex-direction:column;align-items:stretch;padding:0 0 56px}.analysis-board-area{flex:0 1 auto;width:100%;max-width:100%!important;overflow:visible;min-height:0;padding:0}.analysis-board-wrapper{overflow:visible}.analysis-eval-board-row{padding-right:0}.analysis-page .board-container{width:calc(100vw - 16px)!important;max-width:calc(100vw - 16px)!important;height:auto!important;aspect-ratio:1 / 1;margin:0 auto}.eval-bar-container{display:none}.analysis-workshop-shortcut,.analysis-breadcrumbs{display:none!important}.analysis-player-row{height:28px;padding:0 8px;gap:6px;font-size:12px}.analysis-player-name{font-size:12px}.analysis-player-rating{font-size:11px}.analysis-player-dot{width:8px;height:8px}.analysis-board-wrapper>.analysis-player-row:last-of-type{height:24px}.analysis-board-controls{flex:none;height:44px;display:flex;align-items:center;justify-content:center;gap:6px;padding:0 4px;margin-top:4px;overflow-x:visible;flex-wrap:nowrap}.analysis-board-controls button{min-width:48px;min-height:40px;font-size:18px;padding:8px 0;flex:1;max-width:64px}.analysis-export-btn{font-size:11px!important;padding:2px 6px!important;min-width:auto!important}.analysis-sidebar{flex:1;min-height:0;overflow:hidden;width:100%!important;max-width:100%!important;min-width:0!important;contain:none;margin-top:0;box-sizing:border-box}.analysis-sidebar *{box-sizing:border-box}.analysis-panel,.analysis-panel--flex{width:100%!important;max-width:100%!important}.bridge-promo{display:none}.analysis-sidebar>.analysis-panel:has(.stockfish-lines){order:1}.analysis-sidebar>.analysis-panel--flex{order:2}.analysis-sidebar>.analysis-panel:first-child{order:3}.analysis-panel--flex{flex:1;min-height:0;overflow:hidden}.analysis-panel-body--scroll{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.puzzle-list{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.difficulty-filters{flex-wrap:wrap}.lobby-page{padding-top:16px}}@media(max-width:480px){.notification-dropdown{position:fixed;top:48px;right:4px;left:4px;width:auto;max-width:none}.main{padding:8px;padding-bottom:calc(72px + env(safe-area-inset-bottom,0px));overflow-x:hidden}.header-nav{padding:0 12px;font-size:13px;flex-wrap:wrap}.logo{font-size:16px}.analysis-page{gap:4px}.puzzle-page{gap:12px}.puzzle-page .board-container{width:min(calc(100vh - 310px),calc(100vw - 16px))}.puzzle-rush-page .board-container{width:min(calc(100dvh - 280px),calc(100vw - 16px))}.puzzle-rush-header{gap:16px}.rush-time{font-size:24px}.puzzle-rush-page{padding-top:16px}.puzzle-board-placeholder{width:100%;height:auto}.analysis-sidebar{gap:0}.puzzle-sidebar{gap:10px}.clock{font-size:22px}.game-board-area{width:100%}.board-container{max-width:calc(100vw - 16px)}.game-actions button{min-height:44px}.game-sidebar{max-height:none}.moves{max-height:100px}.chat{max-height:180px}.time-controls{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.tc-btn{text-align:center}.lobby-panel{padding:20px 16px}.rush-stats-grid{grid-template-columns:repeat(2,1fr)}.settings-section{padding:16px}.set-position-modal--wide{width:calc(100vw - 16px);max-width:100%;max-height:90vh;overflow-y:auto}.set-position-editor{flex-direction:column}.set-position-editor__board{width:100%}.set-position-editor__board .board-container{width:calc(100vw - 64px)!important;max-width:320px;margin:0 auto}.set-position-editor__controls{width:100%}.set-position-editor__fen{word-break:normal;overflow-x:auto;white-space:nowrap;font-size:10px}.set-position-palette__row{flex-wrap:wrap}.analysis-panel-header{height:34px;padding:0 8px}.analysis-panel-body{padding:6px 8px}.analysis-panel-title{font-size:12px}.analysis-page .stockfish-panel{height:auto!important;padding:8px!important}.analysis-page .analysis-v-resizer{display:none}.analysis-page .analysis-result{padding:6px 8px;margin-bottom:4px}.analysis-page .analysis-result h3{display:inline;font-size:13px;font-weight:600}.analysis-page .analysis-result h3:after{content:" · ";font-weight:400}.analysis-page .analysis-result>p{display:inline;font-size:13px;font-weight:400}.analysis-page .analysis-ratings{margin-top:4px;font-size:12px}.analysis-page .analysis-back-link--top{padding:5px 10px;margin-bottom:4px}body:has(.game-page){overflow:hidden}.game-page{height:100%;overflow:hidden;padding:8px;gap:8px}.game-sidebar{flex:1;min-height:0;height:auto;max-height:none;width:100%;overflow-y:auto;gap:4px}.game-sidebar .move-list{padding:8px;min-height:60px}.game-sidebar .move-list h3{margin-bottom:4px;font-size:13px}.moves{max-height:150px}.game-actions button{min-height:44px;padding:10px 12px}.chat-input button{min-height:44px;padding:8px 14px}.chat-input input{min-height:44px}.chat{max-height:140px}.chat h3{margin-bottom:4px;font-size:13px}}[data-board-theme=green] .board-square-light{background-color:var(--c-ffffdd)}[data-board-theme=green] .board-square-dark{background-color:var(--c-86a666)}[data-board-theme=blue] .board-square-light{background-color:var(--c-dde6ef)}[data-board-theme=blue] .board-square-dark{background-color:var(--c-4b7399)}[data-board-theme=brown] .board-square-light{background-color:var(--c-d4b896)}[data-board-theme=brown] .board-square-dark{background-color:var(--c-6b3a2a)}.board-container,.board-image-dropzone__board{background-color:#d3b08c}[data-board-theme=green] .board-container,[data-board-theme=green] .board-image-dropzone__board{background-color:#c3d3a2}[data-board-theme=blue] .board-container,[data-board-theme=blue] .board-image-dropzone__board{background-color:#94adc4}[data-board-theme=brown] .board-container,[data-board-theme=brown] .board-image-dropzone__board{background-color:#9f7960}.piece-set-options{display:flex;gap:16px;flex-wrap:wrap;margin-top:8px}.piece-set-option{display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer}.piece-set-preview{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:4px;border:3px solid transparent;background:var(--c-2a2a4a);overflow:hidden;transition:border-color .15s}.piece-set-preview img{width:40px;height:40px;object-fit:contain}.piece-set-option.active .piece-set-preview{border-color:var(--c-81b64c)}.piece-set-label{font-size:12px;color:var(--c-ccc)}.analysis-moves--variants{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;padding:0;background:var(--c-16213e);border-radius:8px;position:relative}.vml-container{flex:1;overflow-y:auto;padding:10px 12px;padding-bottom:max(64px,calc(env(safe-area-inset-bottom,0px) + 64px));box-sizing:border-box}.vml-moves{font-size:14px;line-height:1.7;color:var(--c-e0e0e0)}.vml-empty{padding:16px;color:var(--c-666);font-size:14px}.vml-move{display:inline;cursor:pointer;padding:2px 5px;border-radius:3px;transition:background-color .1s ease}.vml-move:hover:not(.active){background:var(--ov-white-08)}.vml-move.active{background:var(--ov-accent-30);color:var(--c-fff);font-weight:600}.vml-move.variation{font-size:13px}.vml-bracket{display:inline;color:var(--c-666);font-size:12px;margin:0 1px}.vml-bracket-open{margin-right:2px}.vml-bracket-close{margin-left:0;margin-right:3px}.vml-level-1{color:var(--c-90caf9)}.vml-level-2{color:var(--c-a5d6a7)}.vml-level-3{color:var(--c-ffe082)}.vml-level-4{color:var(--c-ef9a9a)}.analysis-variant-editor{flex:0 0 auto;padding:4px 8px;background:var(--c-1a1a2e);border-top:1px solid var(--c-2a2a4a);display:flex;gap:4px;flex-wrap:wrap}.analysis-variant-btn{padding:3px 8px;font-size:12px;cursor:pointer;border-radius:4px;border:1px solid var(--c-444);background:var(--c-2a2a3e);color:var(--c-ccc);transition:background-color .1s ease}.analysis-variant-btn:hover{background:var(--c-3a3a5e);color:var(--c-fff)}.analysis-variant-btn--danger:hover{border-color:var(--c-f44336);color:var(--c-f44336)}.puzzle-rush-review-page{max-width:1100px;margin:0 auto;padding:24px 16px}.rush-review-header{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:24px}.rush-review-header h1{margin:0;font-size:24px}.rush-review-meta{display:flex;gap:12px;align-items:center}.rush-review-score{font-size:16px;font-weight:600;color:var(--c-7c83ff)}.rush-review-back-link{margin-left:auto;color:var(--c-a0a0c0);text-decoration:none;font-size:14px}.rush-review-back-link:hover{color:var(--c-fff)}.rush-review-layout{display:grid;grid-template-columns:260px 1fr;gap:24px;align-items:start}.rush-review-list{background:var(--c-1a1a2e);border-radius:8px;padding:16px}.rush-review-list h2{font-size:14px;color:var(--c-a0a0c0);text-transform:uppercase;letter-spacing:.05em;margin:0 0 12px}.rush-review-puzzle-item{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;border-radius:6px;border:1px solid transparent;background:transparent;cursor:pointer;text-align:left;transition:background .15s;margin-bottom:4px;color:var(--c-e0e0e0);font-size:14px}.rush-review-puzzle-item:hover{background:var(--c-2a2a3e)}.rush-review-puzzle-item.active{background:var(--c-2a2a3e);border-color:var(--c-7c83ff)}.rush-review-puzzle-item.solved .rush-review-puzzle-status{color:var(--c-4caf50);font-weight:700}.rush-review-puzzle-item.failed .rush-review-puzzle-status{color:var(--c-f44336);font-weight:700}.rush-review-puzzle-num{color:var(--c-a0a0c0);min-width:28px}.rush-review-puzzle-status{font-size:16px;min-width:20px}.rush-review-puzzle-rating{color:var(--c-a0a0c0);margin-left:auto;font-size:13px}.rush-review-board-panel{background:var(--c-1a1a2e);border-radius:8px;padding:16px;min-height:300px;display:flex;flex-direction:column;align-items:center}.rush-review-board-panel .board-container{width:min(calc(100dvh - 380px),100%)}.rush-review-placeholder{color:var(--c-a0a0c0);text-align:center;padding:48px 16px;font-size:15px}.rush-review-puzzle-info{margin-bottom:12px;width:100%}.rush-review-result-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:13px;font-weight:600}.rush-review-result-badge.solved{background:var(--ov-success-20);color:var(--c-4caf50)}.rush-review-result-badge.failed{background:var(--ov-danger-20);color:var(--c-f44336)}.rush-review-board-loading{color:var(--c-a0a0c0);padding:32px}.rush-review-board-panel .analysis-board-controls{margin-top:12px}.rush-review-moves{display:flex;flex-wrap:wrap;gap:4px;margin-top:12px;padding:8px;background:var(--c-16162a);border-radius:6px;max-height:120px;overflow-y:auto}.rush-review-move-btn{background:none;border:none;color:var(--c-c0c0e0);padding:3px 6px;border-radius:4px;font-size:14px;cursor:pointer;font-family:inherit}.rush-review-move-btn:hover{background:var(--c-2a2a4e)}.rush-review-move-btn.active{background:var(--c-3a3a6e);color:var(--c-fff);font-weight:600}.rush-review-move-btn.setup{color:var(--c-808098);font-style:italic}.rush-review-move-num{color:var(--c-808098);margin-right:2px;font-size:12px}.rush-review-best-move-hint{margin-top:12px;color:var(--c-a0a0c0);font-size:13px;text-align:center}.rush-review-btn{display:block;width:100%;padding:12px;margin-top:12px;background:var(--c-2a2a4e);color:var(--c-a0a0ff);border:1px solid var(--c-4a4a7e);border-radius:8px;font-size:15px;cursor:pointer;transition:background .15s}.rush-review-btn:hover{background:var(--c-3a3a6e);color:var(--c-c0c0ff)}@media(max-width:700px){.rush-review-layout{grid-template-columns:1fr}}.workshop-breadcrumbs{display:flex;align-items:center;gap:4px;margin-bottom:16px;font-size:14px}.workshop-breadcrumbs__link{background:none;border:none;padding:0;color:var(--c-8080cc);font-size:14px;cursor:pointer;transition:color .15s}.workshop-breadcrumbs__link:hover{color:var(--c-a0a0ee);text-decoration:underline}.workshop-breadcrumbs__sep{color:var(--c-666)}.workshop-breadcrumbs__current{color:var(--c-c0c0e0);font-weight:600}.workshop-section-tabs{display:flex;gap:0;margin-bottom:24px;border-bottom:1px solid var(--c-2e2e4e)}.workshop-section-tab{background:none;color:var(--c-808098);border:none;border-bottom:2px solid transparent;padding:10px 20px;font-size:14px;font-weight:600;cursor:pointer;transition:color .15s,border-color .15s}.workshop-section-tab:hover{color:var(--c-c0c0d0)}.workshop-section-tab.active{background:var(--tab-active-bg);color:var(--tab-active-fg);border-bottom-color:var(--tab-active-border);border-radius:6px 6px 0 0}.workshop-section-block__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.workshop-section-block__header .workshop-section-block__title{margin-bottom:0}.workshop-pgn-files-list{display:flex;flex-direction:column;gap:4px}.workshop-pgn-file-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--c-1e2a4a);border-radius:8px;cursor:pointer;transition:background .15s}.workshop-pgn-file-item:hover{background:var(--c-2a3a6a)}.workshop-pgn-file-item__name{font-size:14px;font-weight:600;color:var(--c-e0e0e0)}.workshop-pgn-file-item__meta{display:flex;gap:16px;align-items:center}.workshop-pgn-file-item__games{font-size:12px;color:var(--c-a0a0c0)}.workshop-pgn-file-item__date{font-size:12px;color:var(--c-808090)}.workshop-pgn-games-list{display:flex;flex-direction:column;gap:4px}.workshop-pgn-game-item{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--c-1e2a4a);border-radius:8px;cursor:pointer;transition:background .15s;font-size:14px}.workshop-pgn-game-item:hover{background:var(--c-2a3a6a)}.workshop-pgn-game-item__players{color:var(--c-e0e0e0);font-weight:500}.workshop-pgn-game-item__meta{display:flex;gap:12px;align-items:center}.workshop-pgn-game-item__result{color:var(--c-a0a0c0);font-size:13px}.workshop-pgn-game-item__date{color:var(--c-808090);font-size:12px}.workshop-page{max-width:900px;margin:0 auto;padding:24px 16px}.workshop-page__title{font-size:28px;font-weight:700;margin-bottom:24px;color:var(--c-e0e0e0)}.workshop-page__content{display:flex;flex-direction:column;gap:32px}.workshop-section-block{background:var(--c-16213e);border:1px solid var(--c-2a2a4e);border-radius:12px;padding:24px}.workshop-section-block__title{font-size:18px;font-weight:600;margin-bottom:16px;color:var(--c-c0c0ff)}.workshop-section-block__loading,.workshop-section-block__empty{color:var(--c-a0a0c0);font-size:14px}.workshop-section-block__error{color:var(--c-f44336);font-size:14px}.workshop-section-block__desc{color:var(--c-a0a0c0);font-size:14px;margin-bottom:16px}.workshop-mode-tabs{display:flex;gap:8px;margin-bottom:16px}.workshop-mode-tab{background:var(--c-2a2a4e);color:var(--c-a0a0c0);border:1px solid var(--c-3a3a6e);border-radius:8px;padding:8px 20px;font-size:14px;font-weight:600;transition:background .15s,color .15s}.workshop-mode-tab:hover{background:var(--c-3a3a6e);color:var(--c-e0e0ff)}.workshop-mode-tab.active{background:var(--tab-active-bg);color:var(--tab-active-fg);border-color:var(--tab-active-border)}.workshop-tc-panel{display:flex;flex-direction:column;gap:12px}.workshop-games-list{display:flex;flex-direction:column;gap:4px}.workshop-game-list-item{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--c-1e2a4a);border-radius:8px;text-decoration:none;color:var(--c-e0e0e0);transition:background .15s;font-size:14px}.workshop-game-list-item:hover{background:var(--c-2a3a6a);text-decoration:none}.workshop-game-list-item__result{font-size:16px;min-width:20px;text-align:center}.workshop-game-list-item__result--win{color:var(--c-4caf50)}.workshop-game-list-item__result--loss{color:var(--c-f44336)}.workshop-game-list-item__result--draw{color:var(--c-a0a0c0)}.workshop-game-list-item__opponent{flex:1;font-weight:500}.workshop-game-list-item__rating{color:var(--c-a0a0c0);font-size:12px;font-weight:400}.workshop-game-list-item__tc{color:var(--c-a0a0c0);font-size:13px;min-width:40px;text-align:center}.workshop-game-list-item__result-label{font-size:12px;min-width:60px;text-align:right}.workshop-game-list-item__moves{color:var(--c-a0a0c0);font-size:12px;min-width:60px;text-align:right}.workshop-game-list-item__opening{color:var(--c-a0a0c0);font-size:12px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workshop-game-list-item__eco{background:var(--c-2a2a4e);border-radius:4px;padding:1px 5px;margin-right:4px;font-size:11px;color:var(--c-7c83ff)}.workshop-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:12px}.workshop-pagination__btn{background:var(--c-2a2a4e);color:var(--c-a0a0ff);border:1px solid var(--c-4a4a7e);border-radius:6px;padding:6px 16px;font-size:13px}.workshop-pagination__btn:hover:not(:disabled){background:var(--c-3a3a6e)}.workshop-pagination__info{color:var(--c-a0a0c0);font-size:13px}.workshop-tournaments-list{display:flex;flex-direction:column;gap:16px}.workshop-tournament-card{background:var(--c-1e2a4a);border-radius:8px;padding:16px}.workshop-tournament-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;flex-wrap:wrap;gap:8px}.workshop-tournament-card__name{font-size:15px;font-weight:600;color:var(--c-e0e0e0)}.workshop-tournament-card__meta{display:flex;gap:12px;font-size:13px;color:var(--c-a0a0c0)}.workshop-tournament-card__games{list-style:none;display:flex;flex-direction:column;gap:6px}.workshop-tournament-card__game{font-size:13px}.workshop-tournament-card__game-link{display:flex;align-items:center;gap:8px;padding:6px 8px;background:var(--c-16213e);border-radius:6px;text-decoration:none;color:var(--c-c0c0ff);transition:background .15s}.workshop-tournament-card__game-link:hover{background:var(--c-2a3a6a);text-decoration:none}.workshop-tournament-card__player{flex:1}.workshop-tournament-card__player-rating{color:var(--c-a0a0c0);font-size:12px;margin-left:4px}.workshop-tournament-card__vs{color:var(--c-a0a0c0);font-size:12px}.workshop-pgn-upload{display:flex;gap:12px;flex-wrap:wrap}.workshop-pgn-upload__btn{background:var(--c-7c83ff);color:var(--c-fff);border:none;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s}.workshop-pgn-upload__btn:hover{background:var(--c-6366f1)}.workshop-pgn-upload__btn--secondary{background:var(--c-2a2a4e);color:var(--c-a0a0ff);border:1px solid var(--c-4a4a7e)}.workshop-pgn-upload__btn--secondary:hover{background:var(--c-3a3a6e)}.workshop-import-btn{background:var(--ov-accent-15);color:var(--c-9ca3ff);border:none;border-radius:6px;padding:8px 14px;font-size:13px;cursor:pointer}.workshop-import-btn:hover{background:var(--ov-accent-25)}.import-form{display:flex;flex-direction:column;gap:10px}.import-field{display:flex;flex-direction:column;gap:4px}.import-field label{font-size:12px;color:var(--c-aaa)}.import-btn{background:var(--c-7c83ff);color:var(--c-fff);border:none;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:600;cursor:pointer}.import-result{text-align:center;padding:16px}.import-result p{color:var(--c-4caf50);font-size:16px;margin-bottom:12px}.workshop-analyses-list{display:flex;flex-direction:column;gap:6px}.workshop-analysis-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:6px;background:var(--c-1e1e2e);border:1px solid var(--c-2e2e4e);cursor:pointer;transition:background .15s}.workshop-analysis-item:hover{background:var(--c-252540)}.workshop-analysis-item__main{flex:1;min-width:0}.workshop-analysis-item__title{display:flex;align-items:baseline;gap:4px;font-size:14px;font-weight:600;color:var(--c-e0e0f0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.workshop-analysis-item__player-white,.workshop-analysis-item__player-black{font-weight:600}.workshop-analysis-item__elo{font-size:12px;font-weight:400;color:var(--c-999)}.workshop-analysis-item__result{font-weight:700;color:var(--c-7c83ff);margin:0 2px}.workshop-analysis-item__vs{font-weight:400;color:var(--c-777);font-size:12px}.workshop-analysis-item__pgn-date{font-size:11px;font-weight:400;color:var(--c-666);margin-left:4px}.workshop-analysis-item__meta{display:flex;gap:8px;margin-top:3px;flex-wrap:wrap}.workshop-analysis-item__date{font-size:12px;color:var(--c-888)}.workshop-analysis-item__opening{font-size:12px;color:var(--c-a0a0c0)}.workshop-analysis-item__players{font-size:12px;color:var(--c-80a0b0)}.workshop-analysis-item__delete{flex-shrink:0;background:none;border:none;color:var(--c-666);font-size:18px;line-height:1;cursor:pointer;padding:2px 4px;border-radius:3px;transition:color .15s,background .15s}.workshop-analysis-item__delete:hover{color:var(--c-f44336);background:var(--ov-danger-10)}.workshop-category-tabs{display:flex;gap:0;margin-bottom:10px;border-bottom:1px solid var(--c-333)}.workshop-category-tab{padding:6px 14px;background:none;border:none;border-bottom:2px solid transparent;color:var(--c-888);font-size:12px;font-weight:600;cursor:pointer;border-radius:0}.workshop-category-tab.active{background:var(--tab-active-bg);color:var(--tab-active-fg);border-bottom-color:var(--tab-active-border);border-radius:6px 6px 0 0}.workshop-search{margin-bottom:10px}.workshop-search input{width:100%;padding:6px 10px;font-size:13px;background:var(--c-0f172a);border:1px solid var(--c-333);border-radius:4px;color:var(--c-e0e0e0)}.workshop-tag-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px;align-items:center}.workshop-tag-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--ov-accent-12);color:var(--c-9ca3ff);font-size:11px;border-radius:10px;cursor:pointer}.workshop-tag-chip button{background:none;border:none;color:inherit;font-size:12px;cursor:pointer;padding:0 2px;opacity:.6;border-radius:0}.workshop-tag-chip button:hover{opacity:1}.workshop-tag-chip--active{background:var(--tab-active-bg);color:var(--tab-active-fg)}.workshop-tag-clear{background:none;border:none;color:var(--c-666);font-size:11px;cursor:pointer;padding:2px 4px;border-radius:0}.workshop-tag-add{background:var(--ov-accent-10);border:1px dashed var(--c-555);color:var(--c-888);width:22px;height:22px;border-radius:50%;font-size:14px;cursor:pointer;padding:0;display:inline-flex;align-items:center;justify-content:center}.workshop-tag-input-wrap{display:inline-flex}.workshop-tag-input{width:80px;padding:2px 6px!important;font-size:11px!important;border-radius:10px!important}.workshop-analysis-item__tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px;align-items:center}.workshop-analysis-item__cat-icon{margin-right:6px;font-size:13px}.workshop-analyses-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:8px}.workshop-analyses-new-btn{background:var(--c-7c83ff);color:var(--c-fff);border:none;padding:6px 16px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer}.workshop-analyses-new-btn:hover{background:var(--c-6366f1)}.workshop-analyses-toolbar__spacer{flex:1}.workshop-analyses-select-btn,.workshop-analyses-cancel-btn{background:var(--c-3a3a6e);color:var(--c-c0c0ff);border:1px solid var(--c-4a4a8e);padding:5px 14px;border-radius:6px;font-size:13px;cursor:pointer}.workshop-analyses-select-btn:hover,.workshop-analyses-cancel-btn:hover{background:var(--c-4a4a8e)}.workshop-analyses-cancel-btn{margin-left:auto}.workshop-analyses-select-all{display:flex;align-items:center;gap:8px;color:var(--c-a0a0c0);font-size:13px;cursor:pointer}.workshop-analyses-select-all input[type=checkbox]{width:18px;height:18px;cursor:pointer}.workshop-analyses-export-btn{background:var(--c-16a34a);color:var(--c-fff);border:none;padding:6px 14px;border-radius:6px;font-size:13px;cursor:pointer}.workshop-analyses-export-btn:hover{background:var(--c-15803d)}.workshop-analyses-export-btn:disabled{opacity:.6;cursor:default}.workshop-analyses-delete-btn{background:var(--c-dc2626);color:var(--c-fff);border:none;padding:6px 14px;border-radius:6px;font-size:13px;cursor:pointer}.workshop-analyses-delete-btn:hover{background:var(--c-b91c1c)}.workshop-analyses-delete-btn:disabled{opacity:.6;cursor:default}.workshop-analysis-item__checkbox{flex-shrink:0;cursor:pointer;width:20px;height:20px;min-width:20px;padding:8px;margin:-8px 0 -8px -8px}.workshop-analysis-item--selected{border-color:var(--c-7c83ff);background:var(--ov-accent-05)}.analysis-breadcrumbs{display:flex;align-items:center;gap:4px;padding:6px 0 8px;width:100%;font-size:14px;flex-wrap:nowrap;overflow:hidden}.analysis-breadcrumbs__link{color:var(--c-8080cc);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:20ch;min-width:0;transition:color .15s}.analysis-breadcrumbs__link:hover{color:var(--c-a0a0ee);text-decoration:underline}.analysis-breadcrumbs__sep{color:var(--c-666);flex-shrink:0}.analysis-breadcrumbs__current{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--c-c0c0e0);cursor:pointer;border-bottom:1px dashed transparent;transition:border-color .15s,color .15s;min-width:0;overflow:hidden;max-width:25ch}.analysis-breadcrumbs__current-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1 1 0}.analysis-breadcrumbs__current:hover{color:var(--c-e0e0ff);border-bottom-color:var(--c-5555aa)}.analysis-breadcrumbs__current:hover .analysis-title__edit-icon{opacity:1}.analysis-breadcrumbs__input{flex:1;min-width:0}.analysis-workshop-shortcut{padding:4px 0 2px}.analysis-workshop-shortcut__link{font-size:12px;color:var(--c-666);text-decoration:none;transition:color .15s}.analysis-workshop-shortcut__link:hover{color:var(--c-8080cc);text-decoration:underline}.analysis-title{padding:6px 0 8px}.analysis-title__text{display:inline-flex;align-items:center;gap:6px;font-size:15px;font-weight:600;color:var(--c-c0c0e0);margin:0;cursor:pointer;border-bottom:1px dashed transparent;transition:border-color .15s,color .15s}.analysis-title__text:hover{color:var(--c-e0e0ff);border-bottom-color:var(--c-5555aa)}.analysis-title__edit-icon{font-size:13px;color:var(--c-666);opacity:0;transition:opacity .15s}.analysis-title__text:hover .analysis-title__edit-icon{opacity:1}.analysis-title__input{width:100%;background:var(--c-1a1a2e);border:1px solid var(--c-5555aa);border-radius:4px;color:var(--c-e0e0f0);font-size:15px;font-weight:600;padding:4px 8px;outline:none}.analysis-title__input:focus{border-color:var(--c-8080cc)}@media(max-width:768px){.workshop-analysis-item{padding:8px 10px;gap:8px}.workshop-analysis-item__title{white-space:normal;font-size:13px;line-height:1.3;display:flex;flex-wrap:wrap}.workshop-analysis-item__elo{font-size:11px}.workshop-analysis-item__pgn-date{display:none}.workshop-analysis-item__meta{margin-top:2px;gap:6px}.workshop-analysis-item__date{font-size:11px}.workshop-analysis-item__opening{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}.workshop-analysis-item__tags{margin-top:2px}.workshop-game-list-item{padding:8px 10px;gap:8px;font-size:13px}.workshop-game-list-item__opening,.workshop-game-list-item__moves{display:none}.workshop-game-list-item__tc{font-size:12px;min-width:32px}.workshop-tournament-card__header{flex-direction:column;align-items:flex-start}}.workshop-pgn-file-item__action{background:none;border:none;color:var(--c-888);cursor:pointer;font-size:14px;padding:2px 6px;border-radius:4px;flex-shrink:0}.workshop-pgn-file-item__action:hover{color:var(--c-ccc);background:var(--ov-white-05)}.workshop-pgn-file-item__action--delete:hover{color:var(--c-dc2626)}.workshop-pgn-file-item__edit{background:var(--c-0f172a);color:var(--c-e0e0e0);border:1px solid var(--c-7c83ff);border-radius:4px;padding:2px 8px;font-size:14px;flex:1;min-width:0}.workshop-pgn-games-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.workshop-pgn-games-header .workshop-section-block__title{display:flex;align-items:center;gap:6px;margin:0}.broadcasts-page{max-width:900px;margin:0 auto;padding:24px 16px}.broadcasts-page h1{margin-bottom:20px}.broadcasts-table-wrap{overflow-x:auto}.broadcasts-table{width:100%;border-collapse:collapse;font-size:14px}.broadcasts-th{padding:10px 16px;text-align:left;font-size:13px;color:var(--c-888);border-bottom:1px solid var(--c-2a2a4a);white-space:nowrap}.broadcasts-th--status,.broadcasts-th--date{width:110px}.broadcasts-tr{border-bottom:1px solid var(--ov-white-04);transition:background .15s}.broadcasts-tr:hover{background:var(--ov-white-04)}.broadcasts-td{padding:12px 16px;vertical-align:top}.broadcasts-title-link{color:var(--c-e0e0f0);text-decoration:none;font-weight:500}.broadcasts-title-link:hover{color:var(--c-7c83ff);text-decoration:underline}.broadcasts-desc{margin-top:4px;font-size:12px;color:var(--c-888)}.broadcasts-status{display:inline-block;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:600;white-space:nowrap}.broadcasts-status--active{background:var(--ov-success-15-alt2);color:var(--c-48c774)}.broadcasts-status--inactive{background:var(--ov-white-06);color:var(--c-888)}.broadcasts-td--date{color:var(--c-888);font-size:13px;white-space:nowrap}.broadcasts-empty{color:var(--c-888);margin-top:16px}.tournament-overview{background:var(--c-1a1a2e);border:1px solid var(--c-2a2a4e);border-radius:8px;padding:20px;margin-bottom:24px}.tournament-overview-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.tournament-overview-name{font-size:22px;font-weight:700;color:var(--c-e0e0ff);margin:0}.tournament-overview-details{display:flex;gap:16px;flex-wrap:wrap}.tournament-overview-detail{font-size:14px;color:var(--c-a0a0c0)}.tournament-rounds-list{margin-top:8px}.tournament-rounds-list h2{font-size:16px;color:var(--c-a0a0c0);margin:0 0 12px;text-transform:uppercase;letter-spacing:.5px}.tournament-rounds-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.tournament-round-card{background:var(--c-1a1a2e);border:1px solid var(--c-2a2a4e);border-radius:8px;padding:14px;cursor:pointer;text-align:left;color:var(--c-e0e0ff);transition:border-color .15s,background .15s}.tournament-round-card:hover{border-color:var(--c-7c83ff);background:var(--c-1e1e38)}.tournament-round-card--live{border-color:var(--c-4caf50)}.tournament-round-card-title{font-size:15px;font-weight:600;margin-bottom:6px}.tournament-round-card-info{font-size:12px;color:var(--c-808098);display:flex;align-items:center;gap:6px;flex-wrap:wrap}.tournament-round-live-dot{width:8px;height:8px;border-radius:50%;background:var(--c-4caf50);display:inline-block;animation:pulse-dot 1.5s infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.tournament-round-live-text{color:var(--c-4caf50);font-weight:600}.tournament-round-no-games{font-style:italic;color:var(--c-606078)}.broadcast-rounds-row{display:flex;flex-wrap:wrap;gap:6px}.broadcast-round-btn{padding:5px 14px;background:transparent;border:1px solid var(--c-2a2a4a);border-radius:6px;color:var(--c-b0b0c8);font-size:13px;cursor:pointer;transition:border-color .15s,color .15s,background .15s}.broadcast-round-btn:hover:not(:disabled){border-color:var(--c-7c83ff);color:var(--c-7c83ff)}.broadcast-round-btn--active{background:var(--tab-active-bg);border-color:var(--tab-active-border);color:var(--tab-active-fg)}.broadcast-round-btn:disabled{opacity:.6;cursor:not-allowed}.broadcast-rounds-select{display:none;align-items:center;gap:8px;margin:4px 0 8px}.broadcast-rounds-select__label{font-size:13px;color:var(--c-b0b0c8, #b0b0c8);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.broadcast-rounds-select__input{flex:1 1 auto;min-width:0;padding:6px 32px 6px 10px;background:var(--c-1a1a2e, #1a1a2e);border:1px solid var(--c-2a2a4a, #2a2a4a);border-radius:6px;color:var(--c-e0e0f0, #e0e0f0);font-size:14px;font-weight:600;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%237c83ff' d='M1 1.5L6 6.5L11 1.5' stroke='%237c83ff' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");background-repeat:no-repeat;background-position:right 10px center}.broadcast-rounds-select__input:focus{outline:none;border-color:var(--c-7c83ff, #7c83ff)}@media(max-width:768px){.broadcast-rounds-row{display:none}.broadcast-rounds-select{display:flex}}.broadcast-games-section{margin-top:4px}.broadcast-board-last-move{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;margin-top:4px;padding:2px 4px 0;min-height:22px}.broadcast-board-last-move__san{font-size:18px;font-weight:700;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--text-primary, var(--c-e0e0f0));line-height:1.1;letter-spacing:.02em}.broadcast-board-last-move__placeholder{font-size:13px;font-style:italic;color:var(--c-9e9e9e, #9e9e9e)}.broadcast-board-last-move__time{font-size:12px;color:var(--c-a0a0c0, #a0a0c0);font-variant-numeric:tabular-nums;cursor:help}.broadcast-player{font-size:14px;font-weight:500}.broadcast-player--white{color:var(--c-e0e0f0)}.broadcast-player--black{color:var(--c-b0b0c8)}.broadcast-game-result{font-size:13px;font-weight:600;color:var(--c-7c83ff);padding:1px 8px;border-radius:4px;background:var(--ov-accent-10)}.broadcast-boards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-top:4px}.broadcast-board-card{background:var(--c-1a1a2e);border:1px solid var(--c-2a2a4a);border-radius:8px;overflow:hidden;padding:10px;cursor:pointer;display:flex;flex-direction:column;gap:6px;transition:border-color .15s}.broadcast-board-card--clickable:hover{border-color:var(--c-7c83ff)}.broadcast-board-players{display:flex;align-items:center;gap:6px}.broadcast-player-result{font-size:13px;font-weight:700;color:var(--c-e0e0e0);min-width:16px;text-align:center}.broadcast-card-clock{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;min-width:48px;padding:1px 6px;border:1px solid var(--c-4a4a6e);border-radius:3px;background:var(--c-2a2a3e, #2a2a3e);color:var(--text-secondary);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.4}.broadcast-card-clock--active{border-color:var(--c-4caf50, #4caf50);color:var(--success, var(--c-4caf50));background:var(--ov-success-20, rgba(76, 175, 80, .18))}.broadcast-board-wrap{width:100%;display:flex;align-items:stretch;gap:4px;pointer-events:none}.broadcast-board-wrap__board{flex:1 1 auto;aspect-ratio:1;min-width:0}.broadcast-eval-bar{--eval-white: #f5f5f5;--eval-black: #1a1a1a;--eval-border: #606078;--eval-track-bg: #1a1a1a;--eval-pending-stripe: rgba(120, 130, 160, .6);--eval-pending-base: rgba(60, 65, 90, .5);position:relative;width:20px;flex:0 0 auto;align-self:stretch;border:1px solid var(--eval-border);border-radius:3px}:root[data-theme=light] .broadcast-eval-bar{--eval-white: #cdd2dc;--eval-black: #1f2937;--eval-border: #6e7384;--eval-track-bg: #1f2937;--eval-pending-stripe: rgba(110, 115, 132, .7);--eval-pending-base: rgba(180, 184, 200, .6)}@media(max-width:700px){.broadcast-eval-bar{width:24px}}.broadcast-eval-bar__track{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:2px;overflow:hidden;background:var(--eval-track-bg);display:flex;flex-direction:column}.broadcast-eval-bar__black{background:var(--eval-black);transition:height .3s ease}.broadcast-eval-bar__white{background:var(--eval-white);transition:height .3s ease}.broadcast-eval-bar__label{position:absolute;left:50%;bottom:2px;transform:translate(-50%);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:9px;font-weight:700;color:var(--eval-black);background:var(--eval-white);padding:0 1px;border-radius:2px;pointer-events:none;white-space:nowrap}.broadcast-eval-bar__label--top{bottom:auto;top:2px;color:var(--eval-white);background:var(--eval-black)}.broadcast-eval-bar--pending{background-image:repeating-linear-gradient(45deg,var(--eval-pending-stripe) 0,var(--eval-pending-stripe) 3px,var(--eval-pending-base) 3px,var(--eval-pending-base) 6px);opacity:.85}.broadcast-eval-bar--final{opacity:.85}.broadcast-board-footer{display:flex;align-items:center;justify-content:space-between}@media(max-width:600px){.broadcast-boards-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}}.broadcast-round-page{max-width:1200px;margin:0 auto;padding:24px 16px}.broadcast-round-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.broadcast-round-back{color:var(--c-7c83ff);font-size:14px}.broadcast-sound-unlock{display:inline-flex;align-items:center;gap:6px;margin:8px 0 12px;padding:6px 12px;background:var(--ov-success-20, rgba(76, 175, 80, .18));border:1px solid var(--c-4caf50, #4caf50);border-radius:6px;color:var(--c-e0e0e0);font-size:13px;font-weight:600;cursor:pointer}.broadcast-sound-unlock:hover{background:var(--ov-success-30, rgba(76, 175, 80, .28))}.broadcast-breadcrumbs{display:flex;align-items:center;gap:6px;font-size:14px;margin-bottom:16px;flex-wrap:wrap}.broadcast-breadcrumbs a{color:var(--c-7c83ff);text-decoration:none}.broadcast-breadcrumbs a:hover{text-decoration:underline}.broadcast-breadcrumbs span:last-child{color:var(--c-a0a0c0)}.broadcast-breadcrumb-sep{color:var(--c-4a4a6e)}.broadcast-round-status{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--c-aaa)}.broadcast-round-indicator{width:8px;height:8px;border-radius:50%}.broadcast-round-indicator--live{background:var(--c-4caf50);animation:blink 1.4s infinite}.broadcast-round-indicator--offline{background:var(--c-888)}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.broadcast-round-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}.broadcast-round-tab{padding:6px 14px;border-radius:6px;background:var(--c-2a2a4a);color:var(--c-ccc);font-size:13px;transition:background .2s}.broadcast-round-tab:hover{background:var(--c-3a3a6a);text-decoration:none}.broadcast-round-tab--active{background:var(--tab-active-bg);color:var(--tab-active-fg)}.broadcast-round-boards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.broadcast-round-board-card{background:var(--c-16213e);border-radius:10px;padding:12px;cursor:pointer;transition:transform .15s,box-shadow .15s;outline:none}.broadcast-round-board-card:hover,.broadcast-round-board-card:focus{transform:translateY(-2px);box-shadow:0 6px 20px var(--ov-black-40)}.broadcast-round-board-players{display:flex;align-items:center;gap:6px;font-size:12px;margin-bottom:8px;flex-wrap:wrap}.broadcast-round-board-players--large{font-size:16px;margin-bottom:16px;justify-content:center}.broadcast-round-player{font-weight:600}.broadcast-round-player--white{color:var(--c-f0d9b5)}.broadcast-round-player--black{color:var(--c-b58863)}.broadcast-round-player-sep{color:var(--c-666);font-size:11px}.broadcast-round-board-wrap{border-radius:4px;overflow:hidden}.broadcast-round-result{text-align:center;font-size:13px;font-weight:700;color:var(--c-e0e0e0);margin-top:8px}.broadcast-round-empty{text-align:center;color:var(--c-888);margin-top:40px;font-size:15px}.broadcast-round-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--ov-black-75);z-index:1000;display:flex;align-items:center;justify-content:center}.broadcast-round-expanded{background:var(--c-16213e);border-radius:12px;padding:24px;width:min(90vw,560px);position:relative}.broadcast-round-close{position:absolute;top:12px;right:12px;background:var(--c-2a2a4a);border:none;color:var(--c-ccc);width:30px;height:30px;border-radius:50%;font-size:14px;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s}.broadcast-round-close:hover{background:var(--c-3a3a6a)}.broadcast-round-expanded-board{border-radius:6px;overflow:hidden}@media(max-width:600px){.broadcast-round-boards{grid-template-columns:1fr 1fr}.broadcast-round-board-players{font-size:10px}}@media(max-width:768px){.broadcasts-page,.broadcast-round-page,.broadcast-lobby{padding-bottom:72px}}.broadcasts-featured-section{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.broadcast-featured-card{display:flex;align-items:center;gap:16px;padding:16px 20px;background:linear-gradient(135deg,var(--c-1a1a3e) 0%,var(--c-2a1a4e) 100%);border:1px solid var(--c-7c83ff);border-radius:10px;text-decoration:none;color:var(--c-e0e0e0);transition:transform .15s,box-shadow .15s}.broadcast-featured-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px var(--ov-accent-30);text-decoration:none}.broadcast-featured-badge{padding:4px 10px;background:var(--c-4caf50);color:var(--c-fff);font-size:11px;font-weight:700;border-radius:4px;text-transform:uppercase;animation:active-game-pulse 1.5s infinite;flex-shrink:0}.broadcast-featured-text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.broadcast-featured-title{margin:0;font-size:16px;font-weight:600}.broadcast-featured-source{color:var(--c-9e9e9e);font-size:12px;flex-shrink:0}.broadcast-featured-meta{display:flex;align-items:center;gap:10px;flex-shrink:0}.broadcast-featured-elo{color:var(--c-ffb74d);font-size:12px;font-weight:600;white-space:nowrap}.broadcasts-lichess-section{margin-bottom:24px}.broadcasts-lichess-section h2{font-size:18px;margin-bottom:12px}.broadcasts-lichess-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}.broadcast-lichess-card{display:flex;justify-content:space-between;align-items:flex-start;padding:12px 14px;background:var(--c-1a1a2e);border:1px solid var(--c-2a2a4e);border-radius:6px;text-decoration:none;color:var(--c-e0e0e0);transition:border-color .15s}.broadcast-lichess-card:hover{border-color:var(--c-7c83ff);text-decoration:none}.broadcast-lichess-card-text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.broadcast-lichess-title{margin:0;font-size:13px;font-weight:500;min-width:0;white-space:normal;overflow-wrap:anywhere;word-break:break-word;line-height:1.3}.broadcast-top-players{font-size:11px;color:var(--c-888);line-height:1.3;white-space:normal;overflow-wrap:anywhere}.broadcast-top-players--featured{font-size:12px;margin-top:2px;color:var(--c-bbb)}.broadcast-lichess-status{font-size:10px;padding:2px 6px;border-radius:3px;font-weight:600;text-transform:uppercase;background:var(--ov-neutral-20);color:var(--c-9e9e9e);flex-shrink:0;margin-left:8px}.broadcast-lichess-status--active,.broadcast-lichess-status--live{background:var(--ov-success-20);color:var(--c-4caf50)}.broadcast-lichess-status--upcoming{background:var(--ov-warning-20, rgba(255, 193, 7, .15));color:var(--c-ffc107, #ffc107)}.broadcast-lichess-status--finished{background:var(--ov-neutral-20);color:var(--c-9e9e9e)}.broadcasts-finished-header{margin:0 0 12px}.broadcasts-finished-toggle{display:inline-flex;align-items:center;gap:8px;background:none;border:none;padding:0;font:inherit;font-size:1.2em;font-weight:600;color:inherit;cursor:pointer}.broadcasts-finished-toggle:hover{color:var(--c-4caf50)}.broadcasts-finished-count{font-size:.85em;color:var(--c-9e9e9e);font-weight:400}.broadcasts-finished-caret{font-size:.8em;color:var(--c-9e9e9e)}.broadcast-lobby{max-width:1100px;margin:0 auto}.broadcast-hero{border-radius:12px;padding:32px 28px;background:linear-gradient(135deg,#1a1a3e,#12122a);margin-bottom:0}.broadcast-hero__content{max-width:700px}.broadcast-hero__badge-row{margin-bottom:8px}.broadcast-hero__live-badge{display:inline-block;padding:3px 10px;background:var(--c-4caf50);color:var(--c-fff);font-size:11px;font-weight:700;border-radius:4px;text-transform:uppercase;animation:active-game-pulse 1.5s infinite}.broadcast-hero__title{margin:0 0 10px;font-size:24px;color:#fff;font-weight:700}.broadcast-hero__meta{display:flex;flex-wrap:wrap;gap:12px;font-size:13px;color:#bbb;margin-bottom:14px}.broadcast-hero__links{display:flex;gap:10px;flex-wrap:wrap}.broadcast-hero__link{padding:5px 12px;border:1px solid #444;border-radius:5px;color:#aaa;text-decoration:none;font-size:12px;transition:border-color .15s,color .15s}.broadcast-hero__link:hover{border-color:var(--c-7c83ff);color:#e0e0e0}.broadcast-tabs{display:flex;border-bottom:2px solid var(--ov-white-10);margin-bottom:16px}.broadcast-tab{padding:10px 20px;background:none;border:none;color:var(--c-9e9e9e);font-size:14px;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s}.broadcast-tab:hover{color:var(--c-e0e0e0)}.broadcast-tab--active{background:var(--tab-active-bg);color:var(--tab-active-fg);border-bottom-color:var(--tab-active-border);border-radius:6px 6px 0 0}.broadcast-tab-content{min-height:200px}.broadcast-tab-panel{animation:tab-fade-in .15s ease}.broadcast-tab-empty{color:var(--c-9e9e9e);text-align:center;padding:32px 0}.broadcast-standings-scroll{overflow-x:auto}.broadcast-standings-table{width:100%;border-collapse:collapse;font-size:13px;white-space:nowrap}.broadcast-standings-table th{padding:6px 8px;text-align:center;color:var(--c-9e9e9e);border-bottom:1px solid var(--ov-white-10);font-weight:500;font-size:12px}.broadcast-standings-table td{padding:6px 8px;border-bottom:1px solid var(--ov-white-05);text-align:center}.broadcast-st-rank{width:30px}.broadcast-st-name{text-align:left!important;min-width:140px;font-weight:500;color:var(--c-e0e0e0);position:sticky;left:0;background:var(--c-12122a);z-index:1}.broadcast-st-pts{font-weight:700;width:40px}.broadcast-st-num{width:35px;color:var(--c-9e9e9e)}.broadcast-st-cell{width:40px}.broadcast-st-diag{background:var(--ov-white-03);color:var(--c-555)}.broadcast-st-score{margin:0 1px}.broadcast-st-score--clickable{cursor:pointer;padding:1px 3px;border-radius:3px}.broadcast-st-score--clickable:hover{background:var(--ov-accent-20);text-decoration:underline}.broadcast-st-win{color:var(--c-4caf50)}.broadcast-st-loss{color:var(--c-f44336)}.broadcast-st-draw{color:var(--c-9e9e9e)}.broadcast-round-status{font-size:11px;text-transform:uppercase;font-weight:600}.broadcast-round-status--finished{color:var(--c-9e9e9e)}.broadcast-round-status--active{color:var(--c-4caf50)}.broadcast-round-status--pending{color:var(--c-ffc107)}.broadcast-round-date{color:var(--c-9e9e9e);font-size:12px;margin-left:6px}.broadcast-info-panel{max-width:700px}.broadcast-info-section{margin-bottom:20px}.broadcast-info-section h3{font-size:15px;margin:0 0 8px;color:var(--c-e0e0e0)}.broadcast-info-desc{color:var(--c-bbb);font-size:14px;line-height:1.6;white-space:pre-wrap}.broadcast-info-players{display:flex;flex-wrap:wrap;gap:6px}.broadcast-info-player{padding:4px 10px;background:var(--c-1a1a2e);border:1px solid var(--c-2a2a4e);border-radius:4px;font-size:13px;color:var(--c-e0e0e0)}.broadcast-info-schedule{display:flex;flex-direction:column;gap:4px}.broadcast-info-schedule-row{display:flex;gap:12px;padding:6px 10px;background:var(--c-1a1a2e);border-radius:4px;font-size:13px}.broadcast-info-schedule-name{flex:1;color:var(--c-e0e0e0)}.broadcast-info-schedule-date{color:var(--c-9e9e9e)}.broadcast-info-schedule-status{text-transform:uppercase;font-size:11px;font-weight:600}.broadcast-info-schedule-status--finished{color:var(--c-9e9e9e)}.broadcast-info-schedule-status--active{color:var(--c-4caf50)}.broadcast-info-schedule-status--pending{color:var(--c-ffc107)}.broadcast-xt-scroll{overflow-x:auto;max-width:100%;background:var(--c-1a1a2e);border:1px solid var(--c-2a2a4e);border-radius:8px}.broadcast-xt-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;color:var(--c-e0e0e0);white-space:nowrap}.broadcast-xt-table th,.broadcast-xt-table td{padding:8px 10px;text-align:center;vertical-align:middle;border-bottom:1px solid var(--ov-white-05)}.broadcast-xt-table thead th{position:sticky;top:0;z-index:2;background:var(--c-12122a);color:var(--c-9e9e9e);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid var(--c-2a2a4e)}.broadcast-xt-table tbody tr{transition:background .12s}.broadcast-xt-table tbody tr:hover td{background:var(--ov-white-03)}.broadcast-xt-th-rank,.broadcast-xt-td-rank{width:36px;color:var(--c-9e9e9e);font-weight:600}.broadcast-xt-th-name,.broadcast-xt-td-name{width:200px;min-width:160px;max-width:220px;text-align:left;font-weight:500}.broadcast-xt-th-fed,.broadcast-xt-td-fed{width:44px;color:var(--c-a0a0c0);font-size:12px;text-transform:uppercase}.broadcast-xt-th-num,.broadcast-xt-td-num{width:48px;color:var(--c-c0c0d0);font-variant-numeric:tabular-nums}.broadcast-xt-td-pts{color:var(--c-e0e0f0);font-weight:700}.broadcast-xt-title{display:inline-block;padding:1px 6px;margin-right:6px;background:var(--ov-warning-20);color:var(--c-ffc107);font-size:11px;font-weight:700;border-radius:3px;letter-spacing:.3px}.broadcast-xt-name-text{color:var(--c-e0e0f0)}.broadcast-xt-sticky{position:sticky;background:var(--c-12122a);z-index:1}.broadcast-xt-table thead .broadcast-xt-sticky{z-index:3}.broadcast-xt-th-rank.broadcast-xt-sticky,.broadcast-xt-td-rank.broadcast-xt-sticky{left:0}.broadcast-xt-th-name.broadcast-xt-sticky,.broadcast-xt-td-name.broadcast-xt-sticky{left:36px;box-shadow:1px 0 0 var(--c-2a2a4e)}.broadcast-xt-scroll--round-robin .broadcast-xt-th-rank,.broadcast-xt-scroll--round-robin .broadcast-xt-td-rank{position:sticky;left:0;background:var(--c-12122a);z-index:1}.broadcast-xt-scroll--round-robin thead .broadcast-xt-th-rank{z-index:3}.broadcast-xt-scroll--round-robin .broadcast-xt-th-name,.broadcast-xt-scroll--round-robin .broadcast-xt-td-name{position:sticky;left:36px;background:var(--c-12122a);z-index:1;box-shadow:1px 0 0 var(--c-2a2a4e)}.broadcast-xt-scroll--round-robin thead .broadcast-xt-th-name{z-index:3}.broadcast-xt-th-rr{width:32px;color:var(--c-808098);font-size:11px;font-weight:600}.broadcast-xt-cell{width:42px;min-width:42px;padding:6px 4px;border-left:1px solid var(--ov-white-04);font-variant-numeric:tabular-nums}.broadcast-xt-cell--diag{background:var(--ov-white-06);color:var(--c-555)}.broadcast-xt-cell--clickable{cursor:pointer;transition:background .1s}.broadcast-xt-cell--clickable:hover{background:var(--ov-accent-20)}.broadcast-xt-cell--clickable:focus-visible{outline:2px solid var(--c-7c83ff);outline-offset:-2px}.broadcast-xt-cell--win{color:var(--c-4caf50);font-weight:700}.broadcast-xt-cell--loss{color:var(--c-f44336);font-weight:700}.broadcast-xt-cell--draw{color:var(--c-9e9e9e)}.broadcast-xt-cell--bye{background:var(--ov-white-04);color:var(--c-808098)}.broadcast-xt-cell--forfeit{background:var(--ov-warning-10);color:var(--c-ffb74d);font-weight:700}.broadcast-xt-cell--multi{width:80px;min-width:80px;padding:4px}.broadcast-xt-cell-games{display:inline-flex;flex-direction:row;align-items:center;justify-content:center;flex-wrap:nowrap;gap:5px;font-size:12px;line-height:1.1}.broadcast-xt-cell-game{display:inline-flex;align-items:center;gap:2px;padding:1px 3px;border-radius:4px;font-variant-numeric:tabular-nums}.broadcast-xt-cell-game--win{color:var(--c-4caf50);font-weight:700}.broadcast-xt-cell-game--loss{color:var(--c-f44336);font-weight:700}.broadcast-xt-cell-game--draw{color:var(--c-9e9e9e)}.broadcast-xt-cell-game--bye{color:var(--c-808098)}.broadcast-xt-cell-game--forfeit{color:var(--c-ffb74d);font-weight:700}.broadcast-xt-cell-game--clickable{cursor:pointer;transition:background .1s}.broadcast-xt-cell-game--clickable:hover{background:var(--ov-accent-20)}.broadcast-xt-cell-game--clickable:focus-visible{outline:2px solid var(--c-7c83ff);outline-offset:-2px}.broadcast-xt-cell-game__sym{display:inline-block}.broadcast-xt-cell-game__color{display:inline-block;width:9px;height:9px;margin-left:1px;padding:0;border-radius:50%;border:1px solid var(--c-808098, #808098);flex-shrink:0;font-size:0;line-height:0;color:transparent;overflow:hidden}.broadcast-xt-cell-game__color--white{background:#fff;border-color:#6b6b6b}.broadcast-xt-cell-game__color--black{background:#1a1a1a;border-color:#b0b0b0}.broadcast-xt-th-round{width:56px;color:var(--c-808098);font-size:11px}.broadcast-xt-cell--swiss{width:56px;min-width:56px;padding:6px;font-size:12px}.broadcast-xt-swiss-op{color:var(--c-c0c0d0);margin-right:1px}.broadcast-xt-swiss-col{color:var(--c-808098);font-size:10px;text-transform:lowercase;margin-right:1px}.broadcast-xt-swiss-res{font-weight:700}.broadcast-xt-team-table{width:100%}.broadcast-xt-team-row{transition:background .1s}.broadcast-xt-team-row--open>td{background:var(--ov-accent-08);border-bottom-color:transparent}.broadcast-xt-team-toggle-cell{width:36px;text-align:center}.broadcast-xt-team-toggle{width:22px;height:22px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:var(--c-2a2a4a);border:1px solid var(--c-3a3a6a);border-radius:4px;color:var(--c-e0e0f0);font-size:14px;line-height:1;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.broadcast-xt-team-toggle:hover{background:var(--c-3a3a6a);border-color:var(--c-7c83ff);color:var(--c-7c83ff)}.broadcast-xt-team-toggle:focus-visible{outline:2px solid var(--c-7c83ff);outline-offset:1px}.broadcast-xt-team-members-row>td{background:var(--ov-accent-05)}.broadcast-xt-team-members-cell{padding:10px 14px 12px!important}.broadcast-xt-team-members-table{width:100%;border-collapse:collapse;font-size:12px;color:var(--c-c0c0d0);background:var(--c-1a1a2e);border-radius:4px}.broadcast-xt-team-members-table th{padding:6px 8px;text-align:center;color:var(--c-808098);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid var(--ov-white-05)}.broadcast-xt-team-members-table td{padding:6px 8px;text-align:center;border-bottom:1px solid var(--ov-white-03)}.broadcast-xt-team-members-table tr:last-child td{border-bottom:none}.broadcast-xt-team-members-table th.broadcast-xt-th-name,.broadcast-xt-team-members-table td.broadcast-xt-td-name{text-align:left}@media(max-width:768px){.broadcast-xt-table{font-size:12px}.broadcast-xt-table th,.broadcast-xt-table td{padding:6px 7px}.broadcast-xt-th-rank,.broadcast-xt-td-rank{width:28px}.broadcast-xt-th-name,.broadcast-xt-td-name{min-width:110px}.broadcast-xt-th-fed,.broadcast-xt-td-fed{width:36px;font-size:11px}.broadcast-xt-th-num,.broadcast-xt-td-num{width:38px}.broadcast-xt-cell{width:28px;min-width:28px;padding:5px 2px}.broadcast-xt-cell--multi{width:64px;min-width:64px;padding:4px 3px}.broadcast-xt-cell-games{flex-direction:row;flex-wrap:nowrap;gap:2px;font-size:11px}.broadcast-xt-cell--swiss{width:46px;min-width:46px;font-size:11px;padding:5px 4px}.broadcast-xt-th-round{width:46px}.broadcast-xt-th-name.broadcast-xt-sticky,.broadcast-xt-td-name.broadcast-xt-sticky,.broadcast-xt-scroll--round-robin .broadcast-xt-th-name,.broadcast-xt-scroll--round-robin .broadcast-xt-td-name{left:28px;min-width:100px}.broadcast-xt-team-toggle-cell{width:30px}.broadcast-xt-team-toggle{width:24px;height:24px;font-size:15px}.broadcast-xt-team-members-cell{padding:8px 8px 10px!important}}.playoff-bracket{display:flex;flex-direction:column;gap:20px;padding:12px;position:relative}.playoff-bracket--empty{color:var(--text-secondary);font-style:italic;padding:20px;text-align:center}.playoff-bracket__links{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:visible;z-index:0}.playoff-bracket__link{fill:none;stroke-width:2;stroke-linecap:round}.playoff-bracket__link--winner{stroke:var(--success, #1f7a3a)}.playoff-bracket__link--loser{stroke:var(--warning, #9a6c14);stroke-dasharray:6 4}.playoff-bracket__track{display:flex;flex-direction:column;gap:10px;position:relative;z-index:1}.playoff-bracket__track--winners,.playoff-bracket__track--losers{border:1px solid var(--border-subtle);border-radius:10px;padding:10px 12px;background:var(--bg-card)}.playoff-bracket__track--winners{border-left:4px solid var(--success, #1f7a3a)}.playoff-bracket__track--losers{border-left:4px solid var(--warning, #9a6c14)}.playoff-bracket__track-header{font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.playoff-bracket__stages{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;align-items:stretch}.playoff-bracket__stage{background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:8px;padding:10px;display:flex;flex-direction:column;gap:8px}.playoff-bracket__stage-title{margin:0;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-primary)}.playoff-bracket__pairs{display:flex;flex-direction:column;justify-content:space-around;gap:8px;flex:1;min-height:0}.playoff-bracket__pair{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px;padding:8px 10px}.playoff-bracket__pair-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px}.playoff-bracket__pair-player{font-weight:600;color:var(--text-primary);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.playoff-bracket__pair-player:last-child{text-align:right}.playoff-bracket__pair-score{padding:2px 8px;background:var(--accent-soft, #e9eaff);border-radius:999px;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:13px}.playoff-bracket__games{margin-top:6px;font-size:13px}.playoff-bracket__games summary{cursor:pointer;color:var(--text-link)}.playoff-bracket__game-list{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.playoff-bracket__game button{width:100%;display:flex;justify-content:space-between;align-items:center;background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:4px;padding:4px 8px;cursor:pointer;font:inherit;color:var(--text-primary)}.playoff-bracket__game button:disabled{opacity:.55;cursor:not-allowed}.playoff-bracket__game button:not(:disabled):hover{border-color:var(--accent)}.playoff-bracket__boards{margin-top:8px;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.playoff-bracket__game-result{font-variant-numeric:tabular-nums;font-weight:600;color:var(--text-secondary)}@media(max-width:640px){.playoff-bracket__stages{grid-template-columns:1fr}.playoff-bracket__pair-header{grid-template-columns:1fr;row-gap:4px;text-align:center}.playoff-bracket__pair-player:last-child{text-align:center}.playoff-bracket__links{display:none}}.broadcast-live-game-page{max-width:1100px;margin:0 auto;padding:16px}.broadcast-live-game{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;margin-top:16px;align-items:start}.broadcast-live-game__board-col{display:flex;flex-direction:column;gap:8px;min-width:0}.broadcast-live-game__board{width:100%;max-width:640px}.broadcast-live-game__player{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--c-e0e0e0)}.broadcast-live-game__player-name{display:inline-flex;align-items:center;gap:6px;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.broadcast-live-game__player-piece{font-size:16px;line-height:1}.broadcast-live-game__result{color:var(--c-9e9e9e);font-weight:500}.broadcast-live-game__clock{display:inline-flex;align-items:center;justify-content:center;min-width:64px;padding:3px 10px;border:1px solid var(--c-4a4a6e);border-radius:4px;background:var(--c-2a2a3e, #2a2a3e);color:var(--c-c0c0c0, #c0c0c0);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.4}.broadcast-live-game__clock--active{border-color:var(--c-4caf50, #4caf50);color:var(--c-fff, #fff);background:var(--ov-success-20, rgba(76, 175, 80, .18))}.broadcast-live-game__live-pill{display:inline-flex;align-items:center;gap:8px;padding:4px 10px;background:var(--ov-success-20, rgba(76, 175, 80, .18));color:var(--c-4caf50, #4caf50);font-size:12px;font-weight:600;border-radius:4px;text-transform:uppercase;align-self:flex-start;margin-top:4px}.broadcast-live-game__live-dot{width:8px;height:8px;border-radius:50%;background:var(--c-4caf50, #4caf50);animation:active-game-pulse 1.5s infinite}.broadcast-live-game__side-col{display:flex;flex-direction:column;gap:16px;min-width:0}.broadcast-live-game__open-analysis{padding:10px 14px;background:var(--c-7c83ff, #7c83ff);color:var(--c-fff, #fff);font-size:14px;font-weight:600;border:none;border-radius:6px;cursor:pointer;transition:filter .15s}.broadcast-live-game__open-analysis:hover:not(:disabled){filter:brightness(1.1)}.broadcast-live-game__open-analysis:disabled{opacity:.5;cursor:not-allowed}.broadcast-live-game__moves-block{background:var(--c-1a1a2e);border:1px solid var(--c-2a2a4e);border-radius:6px;padding:12px 14px}.broadcast-live-game__moves-block h3{margin:0 0 8px;font-size:14px;color:var(--c-e0e0e0)}.broadcast-live-game__moves{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 8px;font-family:var(--font-mono, ui-monospace, monospace);font-size:13px;color:var(--c-e0e0e0)}.broadcast-live-game__moves-empty{font-size:13px;color:var(--c-9e9e9e);margin:0}.broadcast-live-game__move{display:inline-flex;align-items:baseline;gap:4px}.broadcast-live-game__move-num{color:var(--c-9e9e9e);font-size:12px}.broadcast-live-game__move-san{font-weight:500}.broadcast-live-game__move--last .broadcast-live-game__move-san{background:var(--ov-accent-30, rgba(124, 131, 255, .2));border-radius:3px;padding:0 4px}@media(max-width:900px){.broadcast-live-game{grid-template-columns:1fr}.broadcast-live-game__side-col{margin-top:8px}}.broadcast-standings{display:flex;flex-direction:column;gap:24px}.broadcast-playoff-section{display:flex;flex-direction:column;gap:12px}.broadcast-playoff-section__title{margin:0;font-size:18px;font-weight:700;color:var(--c-e2e8f0, #e2e8f0)}.broadcasts-loading{margin-top:16px}.broadcasts-loading__sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.broadcasts-skeleton-card{background:var(--c-1e293b, #1e293b);border:1px solid var(--c-2a2a3e, #2a2a3e);border-radius:8px;padding:14px 16px;display:flex;flex-direction:column;gap:8px;min-height:64px}.broadcasts-skeleton-line{height:14px;background:linear-gradient(90deg,var(--c-2a2a3e, #2a2a3e) 0%,var(--c-3a3a4e, #3a3a4e) 50%,var(--c-2a2a3e, #2a2a3e) 100%);background-size:200% 100%;border-radius:4px;animation:broadcasts-skeleton-shimmer 1.4s ease-in-out infinite}.broadcasts-skeleton-line--title{width:70%}.broadcasts-skeleton-line--subtitle{width:45%;height:11px;opacity:.85}@keyframes broadcasts-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.broadcasts-skeleton-line{animation:none}}.broadcasts-error{margin-top:24px;padding:16px 20px;background:var(--c-1e293b, #1e293b);border:1px solid var(--c-ef4444-30, rgba(239, 68, 68, .3));border-radius:8px;color:var(--c-e2e8f0, #e2e8f0);display:flex;flex-direction:column;gap:10px;align-items:flex-start}.broadcasts-error p{margin:0}.broadcasts-error__retry{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--accent-primary, #7c83ff);color:#fff;border:0;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:600;cursor:pointer;min-height:36px}.broadcasts-error__retry:hover{background:var(--accent-primary-hover, #6b73ff)}.username-setup-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--ov-black-85);display:flex;align-items:center;justify-content:center;z-index:9999;padding:16px}.username-setup-modal{background:var(--c-0f172a);border:1px solid var(--c-1e293b);border-radius:16px;padding:32px 28px 28px;width:100%;max-width:400px}.username-setup-modal__title{font-size:1.4rem;font-weight:700;color:var(--c-f1f5f9);margin:0 0 24px;text-align:center}.username-setup-modal__field{display:flex;flex-direction:column;gap:6px;margin-bottom:20px}.username-setup-modal__label{font-size:.875rem;color:var(--c-94a3b8);font-weight:500}.username-setup-modal__input{background:var(--c-1e293b);border:1px solid var(--c-334155);border-radius:8px;padding:10px 14px;font-size:1rem;color:var(--c-f1f5f9);outline:none;transition:border-color .15s}.username-setup-modal__input:focus{border-color:var(--c-6366f1)}.username-setup-modal__status{font-size:.8rem;color:var(--c-94a3b8)}.username-setup-modal__status--available{color:var(--c-22c55e)}.username-setup-modal__status--taken{color:var(--c-ef4444)}.username-setup-modal__error{color:var(--c-ef4444);font-size:.875rem;margin:0 0 16px;text-align:center}.username-setup-modal__save-btn{width:100%;padding:12px;background:var(--c-6366f1);color:var(--c-fff);border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s,opacity .15s}.username-setup-modal__save-btn:disabled{opacity:.45;cursor:not-allowed}.username-setup-modal__save-btn:not(:disabled):hover{background:var(--c-4f46e5)}.players-page{max-width:900px;margin:0 auto;padding:24px 16px}.players-page h1{margin:0 0 20px;font-size:24px}.players-tabs{display:flex;gap:4px;margin-bottom:20px;border-bottom:2px solid var(--c-2a2a4e)}.players-tab{background:none;border:none;color:var(--c-a0a0c0);padding:10px 20px;font-size:15px;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s}.players-tab:hover{color:var(--c-fff)}.players-tab.active{background:var(--tab-active-bg);color:var(--tab-active-fg);border-bottom-color:var(--tab-active-border);border-radius:6px 6px 0 0}.players-section{margin-top:8px}.players-rating-types{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.players-rating-btn{background:var(--c-1a1a2e);border:1px solid var(--c-3a3a5e);color:var(--c-a0a0c0);padding:6px 14px;border-radius:6px;font-size:14px;cursor:pointer;transition:background .15s,color .15s}.players-rating-btn:hover{background:var(--c-2a2a4e);color:var(--c-fff)}.players-rating-btn.active{background:var(--tab-active-bg);color:var(--tab-active-fg);border-color:var(--tab-active-border)}.players-table{width:100%;border-collapse:collapse}.players-table th{text-align:left;color:var(--c-808098);font-size:12px;text-transform:uppercase;padding:8px 12px;border-bottom:1px solid var(--c-2a2a4e)}.players-table td{padding:10px 12px;border-bottom:1px solid var(--c-1a1a2e);font-size:14px}.players-table tbody tr:hover{background:var(--c-1a1a2e)}.players-rank{color:var(--c-808098);min-width:32px}.players-rating{font-variant-numeric:tabular-nums;color:var(--c-c0c0e0)}.players-games{color:var(--c-808098)}.players-link{color:var(--c-7c83ff);text-decoration:none}.players-link:hover{text-decoration:underline;color:var(--c-a0a4ff)}.players-loading{padding:32px;text-align:center;color:var(--c-a0a0c0)}.players-empty{padding:32px;text-align:center;color:var(--c-808098)}.players-total{padding:12px;text-align:center;color:var(--c-808098);font-size:13px}.players-load-more{text-align:center;padding:16px 0}.players-load-more-btn{background:var(--c-3a3a6e);color:var(--c-c0c0ff);border:1px solid var(--c-4a4a8e);padding:10px 32px;border-radius:8px;font-size:14px;cursor:pointer;transition:background .15s}.players-load-more-btn:hover{background:var(--c-4a4a8e);color:var(--c-fff)}.players-load-more-btn:disabled{opacity:.6;cursor:default}.players-online-count{margin-bottom:12px;color:var(--c-4caf50);font-size:14px;font-weight:600}.players-search-input{width:100%;max-width:400px;padding:10px 14px;background:var(--c-1a1a2e);border:1px solid var(--c-3a3a5e);border-radius:8px;color:var(--c-e0e0ff);font-size:15px;margin-bottom:16px;outline:none}.players-search-input:focus{border-color:var(--c-7c83ff)}.players-search-hint{font-style:italic}@media(max-width:600px){.players-rating-types{gap:4px}.players-rating-btn{padding:5px 10px;font-size:12px}.players-table th,.players-table td{padding:8px 6px;font-size:13px}}.player-profile-page{max-width:900px;margin:0 auto;padding:24px 16px}.player-profile-back{color:var(--c-a0a0c0);text-decoration:none;font-size:14px;display:inline-block;margin-bottom:16px}.player-profile-back:hover{color:var(--c-fff)}.player-profile-header{display:flex;align-items:center;gap:16px;margin-bottom:28px}.player-profile-avatar{width:64px;height:64px;border-radius:50%;background:var(--c-3a3a6e);color:var(--c-fff);display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;flex-shrink:0}.player-profile-info{flex:1}.player-profile-username{margin:0;font-size:24px;display:flex;align-items:center;gap:10px}.player-profile-status{font-size:12px;padding:2px 8px;border-radius:10px;font-weight:500}.player-profile-status.online{background:var(--ov-success-20);color:var(--c-4caf50)}.player-profile-status.offline{background:var(--ov-text-muted-15);color:var(--c-808098)}.player-profile-meta{color:var(--c-808098);font-size:13px;margin-top:4px}.player-profile-lastseen{color:var(--c-666)}.player-profile-section{margin-bottom:28px}.player-profile-section h2{font-size:16px;color:var(--c-a0a0c0);margin:0 0 12px;text-transform:uppercase;letter-spacing:.5px}.player-profile-ratings{display:flex;gap:12px;flex-wrap:wrap}.player-profile-rating-card{background:var(--c-1a1a2e);border:1px solid var(--c-2a2a4e);border-radius:8px;padding:12px 20px;text-align:center;min-width:120px;flex:1}.player-profile-rating-label{font-size:13px;color:var(--c-808098);margin-bottom:4px}.player-profile-rating-value{font-size:22px;font-weight:700;color:var(--c-e0e0ff);font-variant-numeric:tabular-nums}.player-profile-stats{display:flex;gap:16px;flex-wrap:wrap}.player-profile-stat{background:var(--c-1a1a2e);border-radius:8px;padding:12px 20px;text-align:center;flex:1;min-width:80px}.player-profile-stat-value{display:block;font-size:20px;font-weight:700;color:var(--c-e0e0ff);font-variant-numeric:tabular-nums}.player-profile-stat.win .player-profile-stat-value{color:var(--c-4caf50)}.player-profile-stat.loss .player-profile-stat-value{color:var(--c-f44336)}.player-profile-stat.draw .player-profile-stat-value{color:var(--c-a0a0c0)}.player-profile-stat-label{font-size:12px;color:var(--c-808098);margin-top:2px}.player-profile-games-table{width:100%;border-collapse:collapse}.player-profile-games-table th{text-align:left;color:var(--c-808098);font-size:12px;text-transform:uppercase;padding:8px 12px;border-bottom:1px solid var(--c-2a2a4e)}.player-profile-games-table td{padding:10px 12px;border-bottom:1px solid var(--c-1a1a2e);font-size:14px}.player-profile-games-table tbody tr:hover{background:var(--c-1a1a2e)}.player-profile-game-result{font-weight:600;font-size:13px}.player-profile-game-result.win{color:var(--c-4caf50)}.player-profile-game-result.loss{color:var(--c-f44336)}.player-profile-game-result.draw,.player-profile-tc{color:var(--c-a0a0c0)}.player-profile-date{color:var(--c-808098)}.player-profile-analyze-link{color:var(--c-7c83ff);text-decoration:none;font-size:13px}.player-profile-analyze-link:hover{text-decoration:underline}.player-profile-empty{padding:24px;text-align:center;color:var(--c-808098)}.player-profile-not-found{text-align:center;padding:48px 16px}.player-profile-not-found h2{color:var(--c-a0a0c0);margin-bottom:16px}@media(max-width:600px){.player-profile-ratings,.player-profile-stats{flex-direction:column}.player-profile-header{flex-direction:column;text-align:center}.player-profile-username{justify-content:center}.player-profile-games-table th,.player-profile-games-table td{padding:8px 6px;font-size:13px}}.drill-stats-panel{margin:0 0 24px}.drill-stats-panel__heading{font-size:14px;font-weight:600;color:var(--text-secondary);margin:0 0 12px;text-transform:uppercase;letter-spacing:.5px}.drill-stats-panel__summary{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px}.drill-stats-panel__summary-card{background:var(--c-1a1a2e);border:1px solid var(--c-2a2a4e);border-radius:8px;padding:12px 20px;text-align:center;min-width:120px;flex:1;display:flex;flex-direction:column;gap:4px}.drill-stats-panel__summary-label{font-size:13px;color:var(--c-808098)}.drill-stats-panel__summary-value{font-size:22px;font-weight:700;color:var(--c-e0e0ff);font-variant-numeric:tabular-nums}.drill-stats-panel__table{width:100%;border-collapse:collapse;font-size:13px;color:var(--c-e0e0ff)}.drill-stats-panel__table thead th{padding:10px 12px;text-align:right;font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--c-808098);border-bottom:1px solid var(--c-2a2a4e);white-space:nowrap}.drill-stats-panel__table thead th:first-child{text-align:left}.drill-stats-panel__table tbody td{padding:10px 12px;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;border-bottom:1px solid var(--c-2a2a4e)}.drill-stats-panel__table tbody td:first-child{text-align:left;white-space:normal;font-variant-numeric:normal}.drill-stats-panel__table tbody tr:nth-child(2n) td{background:var(--ov-white-03)}.drill-stats-panel__table tbody tr:hover td{background:var(--ov-white-05)}.drill-stats-panel__row--locked td{opacity:.65}.drill-stats-panel__cell-type{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.drill-stats-panel__badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;line-height:1.4;white-space:nowrap}.drill-stats-panel__badge--unlocked{background:var(--ov-success-15-alt);color:var(--c-22c55e)}.drill-stats-panel__badge--locked{background:var(--ov-neutral-15);color:var(--c-808098)}.drill-stats-panel__empty,.drill-stats-panel__error{margin:0 0 12px;color:var(--c-a0a0c0);font-size:14px}.drill-stats-panel__cta{display:inline-block;margin-top:4px;padding:8px 16px;background:var(--accent-primary);color:var(--text-on-accent);border-radius:8px;font-size:13px;font-weight:600;text-decoration:none;transition:background .12s ease}.drill-stats-panel__cta:hover{background:var(--accent-hover);text-decoration:none}.drill-stats-panel__cta:focus-visible{outline:none;box-shadow:0 0 0 2px var(--ov-accent-25, rgba(124, 131, 255, .35))}@media(max-width:640px){.drill-stats-panel{overflow-x:auto;-webkit-overflow-scrolling:touch}.drill-stats-panel__table{min-width:560px}.drill-stats-panel__summary{flex-direction:column}}.nav-messages-link{position:relative;display:inline-flex;align-items:center}.nav-messages-badge{position:absolute;top:-6px;right:-8px;background:var(--c-f44336);color:var(--c-fff);font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px;line-height:1}.player-profile-message-btn{margin-top:10px;background:var(--c-3a3a6e);color:var(--c-c0c0ff);border:1px solid var(--c-4a4a8e);padding:6px 16px;border-radius:6px;font-size:13px;cursor:pointer;transition:background .15s}.player-profile-message-btn:hover{background:var(--c-4a4a8e);color:var(--c-fff)}.player-profile-friend-btn{margin-top:10px;margin-left:8px;background:var(--c-16a34a);color:var(--c-fff);border:none;padding:6px 16px;border-radius:6px;font-size:13px;cursor:pointer;transition:background .15s}.player-profile-friend-btn:hover{background:var(--c-15803d)}.player-profile-friend-btn--pending{background:var(--c-4a4a8e);cursor:default;opacity:.7}.player-profile-friend-btn--remove{background:var(--c-dc2626)}.player-profile-friend-btn--remove:hover{background:var(--c-b91c1c)}.player-profile-block-btn{margin-top:10px;margin-left:8px;background:var(--c-4a4a6e);color:var(--c-a0a0c0);border:1px solid var(--c-555);padding:6px 16px;border-radius:6px;font-size:13px;cursor:pointer;transition:background .15s}.player-profile-block-btn:hover,.player-profile-block-btn--unblock{background:var(--c-dc2626);color:var(--c-fff);border-color:var(--c-dc2626)}.player-profile-block-btn--unblock:hover{background:var(--c-4a4a6e);color:var(--c-a0a0c0);border-color:var(--c-555)}.friends-item--blocked{border-color:var(--c-dc2626);opacity:.7}.messages-page{display:grid;grid-template-columns:300px 1fr;height:calc(100vh - 56px);height:calc(100dvh - 56px);max-width:1200px;margin:0 auto}.messages-sidebar{background:var(--c-1a1a2e);border-right:1px solid var(--c-2a2a4e);display:flex;flex-direction:column;overflow-y:auto}.messages-sidebar h2{padding:16px;margin:0;font-size:18px;border-bottom:1px solid var(--c-2a2a4e)}.messages-conv-list{flex:1;overflow-y:auto}.messages-conv-item{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;background:none;border:none;border-bottom:1px solid var(--c-16162a);color:var(--c-c0c0e0);cursor:pointer;text-align:left;transition:background .15s}.messages-conv-item:hover{background:var(--c-222240)}.messages-conv-item.active{background:var(--c-2a2a4e)}.messages-conv-item.unread .messages-conv-name{font-weight:700;color:var(--c-fff)}.messages-conv-avatar{width:36px;height:36px;border-radius:50%;background:var(--c-3a3a6e);color:var(--c-fff);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:600;flex-shrink:0}.messages-conv-info{flex:1;min-width:0}.messages-conv-name{font-size:14px;display:flex;align-items:center;gap:6px}.messages-conv-badge{background:var(--c-f44336);color:var(--c-fff);font-size:11px;min-width:18px;height:18px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px}.messages-conv-preview{font-size:12px;color:var(--c-808098);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.messages-conv-time{font-size:11px;color:var(--c-808098);flex-shrink:0}.messages-chat{display:flex;flex-direction:column;background:var(--c-12122a)}.messages-chat-placeholder{flex:1;display:flex;align-items:center;justify-content:center;color:var(--c-808098);font-size:16px}.messages-chat-header{padding:12px 16px;border-bottom:1px solid var(--c-2a2a4e);background:var(--c-1a1a2e)}.messages-chat-username{color:var(--c-7c83ff);text-decoration:none;font-weight:600;font-size:16px}.messages-chat-username:hover{text-decoration:underline}.messages-chat-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:8px}.messages-bubble{max-width:70%;padding:8px 12px;border-radius:12px;background:var(--c-1a1a2e);align-self:flex-start}.messages-bubble.own{background:var(--c-3a3a6e);align-self:flex-end}.messages-bubble-text{font-size:14px;color:var(--c-e0e0ff);word-break:break-word}.messages-bubble-time{font-size:11px;color:var(--c-808098);margin-top:4px;text-align:right}.messages-chat-input{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--c-2a2a4e);background:var(--c-1a1a2e)}.messages-chat-input input{flex:1;background:var(--c-12122a);border:1px solid var(--c-3a3a5e);border-radius:8px;padding:10px 14px;color:var(--c-e0e0ff);font-size:14px;outline:none}.messages-chat-input input:focus{border-color:var(--c-7c83ff)}.messages-chat-input button{background:var(--c-7c83ff);color:var(--c-fff);border:none;border-radius:8px;padding:10px 20px;font-size:14px;cursor:pointer;transition:background .15s}.messages-chat-input button:hover:not(:disabled){background:var(--c-6a72e8)}.messages-chat-input button:disabled{opacity:.4;cursor:default}.messages-loading,.messages-empty{padding:24px;text-align:center;color:var(--c-808098)}@media(max-width:700px){.messages-page{grid-template-columns:1fr}.messages-sidebar{border-right:none;border-bottom:1px solid var(--c-2a2a4e);max-height:200px}}.live-games-page{max-width:1000px;margin:0 auto;padding:24px 16px}.live-games-page h1{margin:0 0 20px;font-size:24px}.live-games-filters{display:flex;gap:16px;margin-bottom:20px;flex-wrap:wrap;align-items:center}.live-games-tc-filters{display:flex;gap:8px;flex-wrap:wrap}.live-games-count{color:var(--c-4caf50);font-size:14px;font-weight:600;margin-bottom:12px}.live-games-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.live-game-card{background:var(--c-1a1a2e);border:1px solid var(--c-2a2a4e);border-radius:8px;padding:16px;text-decoration:none;color:var(--c-e0e0ff);transition:border-color .15s,background .15s;display:block}.live-game-card:hover{border-color:var(--c-7c83ff);background:var(--c-1e1e38)}.live-game-players{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.live-game-player{display:flex;align-items:center;gap:4px}.live-game-color{font-size:16px}.live-game-name{font-weight:600;font-size:14px}.live-game-rating{color:var(--c-808098);font-size:13px}.live-game-vs{color:var(--c-808098);font-size:12px}.live-game-meta{display:flex;gap:12px;margin-top:8px;font-size:13px;color:var(--c-808098)}.live-game-tc{background:var(--c-2a2a4e);padding:2px 8px;border-radius:4px}.watch-game-page{max-width:1100px;margin:0 auto;padding:24px 16px}.watch-game-layout{display:grid;grid-template-columns:1fr 280px;gap:24px;align-items:start}.watch-game-board-area{display:flex;flex-direction:column;align-items:center}.watch-game-player-info{display:flex;align-items:center;gap:8px;padding:8px 0;width:100%;max-width:560px}.watch-game-clock{margin-left:auto;font-family:Roboto Mono,monospace;font-size:16px;font-weight:600;color:var(--c-888);background:var(--c-1a1a2e);padding:2px 8px;border-radius:4px;min-width:50px;text-align:center}.watch-game-clock--active{color:var(--c-e0e0e0);background:var(--c-2a2a4e)}.watch-game-name{font-weight:600;font-size:16px}.watch-game-status{margin-top:8px;color:var(--c-a0a0c0);font-size:14px}.watch-game-result{margin-top:8px;font-size:16px;font-weight:700;color:var(--c-7c83ff)}.watch-game-termination{font-weight:400;font-size:13px;color:var(--c-999)}.watch-game-delay-notice{margin-top:8px;color:var(--c-808098);font-size:12px;font-style:italic}.watch-game-sidebar{background:var(--c-1a1a2e);border-radius:8px;padding:16px;max-height:600px;overflow-y:auto}.watch-game-sidebar h3{margin:0 0 12px;font-size:14px;color:var(--c-a0a0c0);text-transform:uppercase}.watch-game-no-moves{color:var(--c-808098);font-style:italic}@media(max-width:700px){.live-games-grid{grid-template-columns:1fr}}@media(max-width:768px){.watch-game-page{padding:4px 0;max-width:100%}.watch-game-layout{grid-template-columns:1fr;gap:0}.watch-game-board-area{align-items:stretch}.watch-game-page .board-container{width:calc(100vw - 16px)!important;max-width:calc(100vw - 16px)!important;height:auto!important;aspect-ratio:1 / 1;margin:0 auto}.watch-game-player-info{max-width:100%;padding:4px 8px;gap:6px}.watch-game-name{font-size:13px}.watch-game-clock{font-size:14px;padding:2px 6px}.watch-game-sidebar{max-height:none;flex:1;min-height:0;overflow-y:auto;border-radius:0;padding:8px}.watch-game-page .analysis-board-controls{margin-top:4px}.watch-game-result{margin-top:4px;font-size:14px}.watch-game-delay-notice{margin-top:2px;font-size:11px}.watch-game-status{margin-top:4px;font-size:13px}}.bot-error-message{margin-top:12px;padding:10px 14px;background:var(--ov-danger-15);border:1px solid var(--ov-danger-30);border-radius:8px;color:var(--c-f44336);font-size:14px;display:flex;align-items:center;gap:8px}.bot-error-message p{margin:0;flex:1}.bot-error-dismiss{background:none;border:none;color:var(--c-f44336);font-size:16px;cursor:pointer;padding:2px 6px;opacity:.7}.bot-error-dismiss:hover{opacity:1}.friends-page{max-width:700px;margin:0 auto;padding:24px 16px}.friends-page h1{font-size:24px;margin-bottom:24px}.friends-section{margin-bottom:24px}.friends-section h2{font-size:16px;color:var(--c-a0a0c0);margin-bottom:12px}.friends-list{display:flex;flex-direction:column;gap:8px}.friends-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--c-16213e);border-radius:8px;border:1px solid var(--c-2a2a4e)}.friends-item--request{border-color:var(--c-4a4a8e)}.friends-item__info{display:flex;align-items:center;gap:10px}.friends-item__name{color:var(--c-c0c0ff);font-weight:600;text-decoration:none}.friends-item__name:hover{text-decoration:underline}.friends-item__rating{color:var(--c-888);font-size:13px}.friends-item__actions{display:flex;gap:8px}.friends-status{width:10px;height:10px;border-radius:50%;display:inline-block}.friends-status--online{background:var(--c-16a34a)}.friends-status--offline{background:var(--c-555)}.friends-btn{padding:5px 14px;border-radius:6px;font-size:13px;border:none;cursor:pointer}.friends-btn--accept{background:var(--c-16a34a);color:var(--c-fff)}.friends-btn--accept:hover{background:var(--c-15803d)}.friends-btn--decline{background:var(--c-3a3a6e);color:var(--c-c0c0ff)}.friends-btn--decline:hover{background:var(--c-4a4a8e)}.friends-btn--remove{background:transparent;color:var(--c-888);font-size:16px;padding:4px 8px}.friends-btn--remove:hover{color:var(--c-dc2626)}.friends-empty{text-align:center;padding:40px 16px;color:var(--c-888)}.friends-link{display:inline-block;margin-top:12px;color:var(--c-7c83ff)}.friends-btn--challenge{background:var(--c-7c83ff);color:var(--c-fff)}.friends-btn--challenge:hover{background:var(--c-6366f1)}.challenge-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--ov-black-70);display:flex;align-items:center;justify-content:center;z-index:1000}.challenge-modal{background:var(--c-1a1a2e);border:1px solid var(--c-2a2a4e);border-radius:12px;width:400px;max-width:90vw}.challenge-modal__header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--c-2a2a4e)}.challenge-modal__header h3{font-size:18px;margin:0}.challenge-modal__close{background:transparent;color:var(--c-888);border:none;font-size:18px;padding:4px 8px;cursor:pointer}.challenge-modal__close:hover{color:var(--c-fff)}.challenge-modal__body{padding:20px}.challenge-modal__label{color:var(--c-a0a0c0);margin-bottom:12px;font-size:14px}.challenge-modal__presets{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}.challenge-preset-btn{padding:10px;border-radius:8px;border:1px solid var(--c-2a2a4e);background:var(--c-16213e);color:var(--c-c0c0ff);font-size:14px;font-weight:600;cursor:pointer;transition:all .15s}.challenge-preset-btn:hover{border-color:var(--c-7c83ff)}.challenge-preset-btn.active{background:var(--tab-active-bg);color:var(--tab-active-fg);border-color:var(--tab-active-border)}.challenge-modal__error{color:var(--c-ef4444);font-size:13px;margin-bottom:12px}.challenge-modal__actions{display:flex;justify-content:flex-end}.challenge-send-btn{background:var(--c-16a34a);color:var(--c-fff);padding:10px 24px;border-radius:8px;font-size:14px;font-weight:600;border:none;cursor:pointer}.challenge-send-btn:hover{background:var(--c-15803d)}.challenge-send-btn:disabled{background:var(--c-4a4a8e);cursor:default}.challenge-toast{position:fixed;top:60px;right:20px;background:var(--c-1a1a2e);border:2px solid var(--c-7c83ff);border-radius:12px;padding:16px 20px;z-index:1001;min-width:280px;box-shadow:0 4px 20px var(--ov-black-50);animation:slideIn .3s ease-out}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.challenge-toast__info{display:flex;align-items:center;gap:8px;margin-bottom:4px}.challenge-toast__tc{color:var(--c-a0a0c0);font-size:14px}.challenge-toast__text{color:var(--c-a0a0c0);font-size:13px;margin-bottom:12px}.challenge-toast__actions{display:flex;gap:8px}.challenge-toast__accept{flex:1;background:var(--c-16a34a);color:var(--c-fff);border:none;padding:8px;border-radius:6px;font-weight:600;cursor:pointer}.challenge-toast__accept:hover{background:var(--c-15803d)}.challenge-toast__decline{flex:1;background:var(--c-3a3a6e);color:var(--c-c0c0ff);border:none;padding:8px;border-radius:6px;font-weight:600;cursor:pointer}.challenge-toast__decline:hover{background:var(--c-4a4a8e)}.rating-history{background:var(--c-1a1a2e);border-radius:8px;padding:12px}.rating-history__header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;flex-wrap:wrap}.rating-history__title{margin:0;font-size:16px;color:var(--c-e0e0e0)}.rating-history__filters{display:flex;gap:4px}.rating-history__filter{background:transparent;border:1px solid var(--c-444);color:var(--c-888);padding:3px 10px;border-radius:12px;font-size:12px;cursor:pointer}.rating-history__filter.active{background:var(--tab-active-bg);color:var(--tab-active-fg);border-color:var(--tab-active-border);border-width:2px}.rating-history__filter:hover{border-color:var(--c-666);color:var(--c-ccc)}.rating-history__empty{color:var(--c-666);font-size:13px;text-align:center;padding:20px}.rating-history__chart{position:relative}.rating-history__svg{width:100%;height:120px;cursor:crosshair}.rating-history__labels{position:absolute;top:8px;right:4px;display:flex;flex-direction:column;justify-content:space-between;height:calc(100% - 40px);font-size:10px;color:var(--c-555);pointer-events:none}.rating-history__tooltip{position:absolute;top:4px;left:8px;background:var(--ov-black-80);padding:4px 8px;border-radius:4px;font-size:12px;color:var(--c-fff);display:flex;gap:8px;pointer-events:none}.rating-history__summary{display:flex;gap:16px;font-size:12px;color:var(--c-888);margin-top:4px}.bot-badge{display:inline-block;background:var(--c-7c83ff);color:var(--c-fff);font-size:9px;font-weight:700;padding:1px 4px;border-radius:3px;margin-left:4px;vertical-align:middle;text-transform:uppercase}.live-tournaments-page{max-width:900px;margin:0 auto;padding:24px 16px}.live-tournaments-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.live-tournaments-header h1{margin:0;font-size:24px}.live-tournaments-grid{display:flex;flex-direction:column;gap:12px}.live-tournament-card{background:var(--c-1a1a2e);border:1px solid var(--c-2a2a4e);border-radius:8px;padding:16px}.live-tournament-name{margin:0 0 6px;font-size:16px;color:var(--c-e0e0ff)}.live-tournament-desc{margin:0 0 8px;font-size:13px;color:var(--c-808098);line-height:1.4}.live-tournament-details{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:10px}.live-tournament-detail{font-size:13px;color:var(--c-a0a0c0)}.live-tournament-links{display:flex;gap:8px;flex-wrap:wrap}.live-tournament-watch-btn{background:var(--c-7c83ff);color:var(--c-fff);text-decoration:none;padding:6px 16px;border-radius:6px;font-size:13px;font-weight:600;transition:background .15s}.live-tournament-watch-btn:hover{background:var(--c-6a72e8)}.live-tournament-results-link{color:var(--c-a0a0c0);text-decoration:none;padding:6px 12px;border:1px solid var(--c-3a3a5e);border-radius:6px;font-size:13px;transition:color .15s,border-color .15s}.live-tournament-card--link,.live-tournament-card--link:hover,.live-tournament-card--link:visited{text-decoration:none;color:inherit;display:block;cursor:pointer;transition:border-color .15s,background .15s}.live-tournament-card--link:hover{border-color:var(--c-7c83ff);background:var(--c-1e1e38)}.live-tournament-meta{display:flex;gap:8px;align-items:center;margin-top:8px}.live-tournament-badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:4px;letter-spacing:.5px}.live-tournament-badge--live{background:var(--c-4caf50);color:var(--c-fff)}.live-tournament-badge--archived{background:var(--c-3a3a5e);color:var(--c-a0a0c0)}.broadcasts-archived-section{margin-top:32px}.broadcasts-archived-section h2{font-size:16px;color:var(--c-808098);margin:0 0 12px;text-transform:uppercase;letter-spacing:.5px}.broadcasts-live-section{margin-bottom:32px}.broadcasts-live-section h2{font-size:16px;color:var(--c-a0a0c0);margin:0 0 12px;text-transform:uppercase;letter-spacing:.5px}.broadcasts-manual-section{margin-top:24px}.broadcasts-manual-section h2{font-size:14px;color:var(--c-808098);margin:0 0 10px}.live-tournament-results-link:hover{color:var(--c-fff);border-color:var(--c-7c83ff)}.tournaments-page{max-width:960px;margin:0 auto;padding:16px 16px 24px}.tnr-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:12px;flex-wrap:wrap}.tnr-header h1{margin:0;font-size:24px;line-height:1.2}.tournaments-create-btn{background:var(--c-7c83ff);color:var(--c-fff);border:none;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:600;cursor:pointer}.tournaments-create-btn:hover{background:var(--c-6366f1)}.tournaments-list{display:flex;flex-direction:column;gap:8px}.tournaments-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;margin-top:12px;padding:56px 24px;min-height:60vh;background:var(--c-1e1e3e);border:1px dashed var(--c-3a3a5e);border-radius:12px;color:var(--c-aaa);font-size:15px;text-align:center}.tournaments-empty:before{content:"♚";font-size:56px;line-height:1;margin-bottom:4px;color:var(--c-7c83ff);opacity:.7}.tnr-filters{margin-bottom:12px}.tnr-status-tabs{display:flex;gap:0;border-bottom:1px solid var(--c-333);margin-bottom:8px}.tnr-status-tab{padding:8px 16px;background:none;border:none;border-bottom:2px solid transparent;color:var(--c-888);font-size:13px;font-weight:600;cursor:pointer;border-radius:0}.tnr-status-tab.active{background:var(--tab-active-bg);color:var(--tab-active-fg);border-bottom-color:var(--tab-active-border);border-radius:6px 6px 0 0}.tnr-chips-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.tnr-chip{padding:4px 12px;background:transparent;border:1px solid var(--c-444);border-radius:14px;color:var(--c-888);font-size:12px;cursor:pointer;transition:border-color .15s,background .15s,color .15s}.tnr-chip:hover{border-color:var(--c-7c83ff)}.tnr-chip.active{background:var(--tab-active-bg);border-color:var(--tab-active-border);color:var(--tab-active-fg)}.tnr-chips-sep{width:1px;height:16px;background:var(--c-333);margin:0 4px}.tnr-card{display:flex;flex-direction:column;gap:4px;padding:12px 16px;background:var(--c-1e1e3e);border-radius:8px;text-decoration:none;color:var(--c-e0e0e0);transition:background .15s}.tnr-card:hover{background:var(--c-262648);text-decoration:none}.tnr-card__row1{display:flex;align-items:center;gap:8px}.tnr-card__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.tnr-card__dot--active{background:var(--c-ef5350);animation:active-game-pulse 1.5s infinite}.tnr-card__dot--upcoming{background:var(--c-ffc107)}.tnr-card__dot--finished{background:var(--c-555)}.tnr-card__name{font-weight:700;font-size:15px;flex:1}.tnr-card__tc{color:var(--c-7c83ff);font-weight:700;font-size:14px}.tnr-card__row2{display:flex;gap:12px;font-size:12px;color:var(--c-aaa)}.tnr-card__row3{display:flex;gap:12px;font-size:11px;color:var(--c-777)}.tcm-modal{max-width:620px;width:90vw;background:var(--c-1a1a2e);border-radius:12px;padding:24px}.tcm-body{display:grid;grid-template-columns:220px 1fr;gap:24px}.tcm-types{display:flex;flex-direction:column;gap:8px}.tcm-type-card{padding:12px;border:1px solid var(--c-333);border-radius:8px;cursor:pointer;transition:border-color .15s,background .15s;background:transparent}.tcm-type-card:hover{border-color:var(--c-555)}.tcm-type-card--active{border-color:var(--c-7c83ff);background:var(--ov-accent-08)}.tcm-type-card__icon{font-size:20px;display:block;margin-bottom:6px}.tcm-type-card__name{font-weight:600;font-size:14px;color:var(--c-e0e0e0);display:block}.tcm-type-card__desc{font-size:12px;color:var(--c-888);line-height:1.4;display:block;margin-top:4px}.tcm-settings{display:flex;flex-direction:column;gap:12px}.tcm-field{display:flex;flex-direction:column;gap:4px}.tcm-field label{font-size:12px;color:var(--c-aaa)}.tcm-row{display:flex;gap:8px}.tcm-submit{background:var(--c-7c83ff);color:var(--c-fff);border:none;border-radius:6px;padding:10px 20px;font-size:14px;font-weight:600;cursor:pointer;margin-top:8px;transition:background .15s}.tcm-submit:hover:not(:disabled){background:var(--c-6a72e8)}.tcm-submit:disabled{opacity:.5;cursor:not-allowed}.tcm-invite-link{display:flex;gap:8px;align-items:center}.tcm-invite-link input{flex:1;background:var(--c-1a1a2e);border:1px solid var(--c-333);color:var(--c-e0e0e0);padding:6px 10px;border-radius:4px;font-size:13px}.tcm-invite-link button{background:var(--c-7c83ff);color:var(--c-fff);border:none;border-radius:4px;padding:6px 14px;font-size:13px;cursor:pointer;white-space:nowrap}.tcm-invite-link button:hover{background:var(--c-6a72e8)}.tnr-visibility-badge{margin-left:6px;font-size:14px;vertical-align:middle}.tcm-tc-cats{display:flex;gap:0;border-radius:6px;overflow:hidden;border:1px solid var(--c-333);margin-bottom:8px}.tcm-tc-cat{flex:1;padding:6px 8px;background:transparent;border:none;color:var(--c-888);font-size:12px;font-weight:600;cursor:pointer;border-radius:0;transition:background .15s,color .15s}.tcm-tc-cat.active{background:var(--tab-active-bg);color:var(--tab-active-fg)}.tcm-presets{display:flex;flex-wrap:wrap;gap:6px}.tcm-preset{padding:6px 14px;background:var(--ov-white-06);border:1px solid var(--c-333);border-radius:14px;color:var(--c-ccc);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}.tcm-preset:hover{border-color:var(--c-555)}.tcm-preset.active{background:var(--tab-active-bg);border-color:var(--tab-active-border);color:var(--tab-active-fg)}.tcm-custom{display:flex;flex-direction:column;gap:10px}.tcm-slider-row{display:flex;align-items:center;gap:10px}.tcm-slider-row input[type=range]{flex:1}.tcm-slider-val{min-width:48px;font-size:13px;color:var(--c-7c83ff);font-weight:700;text-align:right;font-variant-numeric:tabular-nums}.tcm-field .ks-select{width:100%}@media(max-width:600px){.tcm-body{display:flex;flex-direction:column;gap:16px}.tcm-types{flex-direction:row;overflow-x:auto;gap:6px;padding-bottom:4px}.tcm-type-card{flex:0 0 auto;padding:8px 12px;text-align:center;min-width:80px}.tcm-type-card__icon{margin-bottom:2px}.tcm-type-card__desc{display:none}}.tournament-lobby-page{max-width:800px;margin:0 auto;padding:24px 16px}.tournament-lobby-header{margin-bottom:16px}.tournament-lobby-header h1{margin-bottom:4px}.tournament-lobby-meta{display:flex;gap:12px;align-items:center}.tournament-lobby-tc{color:var(--c-7c83ff);font-weight:600}.tournament-lobby-status{font-size:12px;padding:2px 8px;border-radius:10px;font-weight:600}.tournament-lobby-status--active{background:var(--ov-success-20);color:var(--c-4caf50)}.tournament-lobby-status--upcoming{background:var(--ov-warning-20);color:var(--c-ffc107)}.tournament-lobby-status--finished{background:var(--ov-white-10);color:var(--c-888)}.tournament-lobby-timer{font-size:18px;font-weight:700;color:var(--c-e0e0e0);font-variant-numeric:tabular-nums}.tournament-lobby-actions{display:flex;gap:12px;align-items:center;margin-bottom:20px}.tournament-join-btn,.tournament-seek-btn{background:var(--c-7c83ff);color:var(--c-fff);border:none;border-radius:6px;padding:10px 20px;font-size:14px;font-weight:600;cursor:pointer}.tournament-seek-btn{background:var(--c-4caf50)}.tournament-seeking{display:flex;align-items:center;gap:8px;color:var(--c-4caf50);font-size:14px}.tournament-seeking__dot{width:8px;height:8px;border-radius:50%;background:var(--c-4caf50);animation:active-game-pulse 1.5s infinite}.tournament-leave-btn,.tournament-withdraw-btn{background:var(--ov-danger-15-r500);color:var(--c-ef5350);border:1px solid var(--ov-danger-30-r500);border-radius:6px;padding:8px 16px;font-size:13px;cursor:pointer}.tournament-leave-btn:hover,.tournament-withdraw-btn:hover{background:var(--ov-danger-25-r500)}.tournament-round-info{display:flex;flex-direction:column;gap:4px;padding:10px 16px;background:var(--ov-accent-08);border-radius:8px;border:1px solid var(--ov-accent-20)}.tournament-round-info__status{font-size:14px;font-weight:600;color:var(--c-e0e0e0)}.tournament-round-info__pair{font-size:13px;color:var(--c-4caf50)}.tournament-round-info__timer{font-size:14px;color:var(--c-ffc107);font-weight:600;font-variant-numeric:tabular-nums}.tournament-lobby-round-progress{font-size:13px;color:var(--c-aaa);font-weight:600}.tournament-standings{margin-top:16px}.tournament-standings h2{font-size:16px;margin-bottom:8px}.tournament-standings-empty{color:var(--c-666)}.tournament-standings-table{width:100%;border-collapse:collapse}.tournament-standings-table th{text-align:left;padding:6px 10px;color:var(--c-888);font-size:12px;border-bottom:1px solid var(--c-333)}.tournament-standings-table td{padding:8px 10px;border-bottom:1px solid var(--c-222);font-size:14px}.tournament-standings-table a{color:var(--c-7c83ff);text-decoration:none}.tournament-standings-self{background:var(--ov-accent-10)}.tournament-games-cell{display:flex;flex-wrap:wrap;gap:3px}.arena-game-cell{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:3px;font-size:11px;font-weight:700;cursor:pointer;transition:transform .1s}.arena-game-cell:hover{transform:scale(1.2)}.arena-game-cell--win{background:var(--ov-success-25);color:var(--c-4caf50)}.arena-game-cell--loss{background:var(--ov-danger-25);color:var(--c-ef5350)}.arena-game-cell--draw{background:var(--ov-neutral-25);color:var(--c-9e9e9e)}.arena-game-cell--active{background:var(--ov-warning-25);color:var(--c-ffc107);animation:active-game-pulse 1.5s ease-in-out infinite}.crosstable-wrapper{margin:16px 0}.crosstable-wrapper h2{font-size:16px;margin-bottom:8px}.crosstable-scroll{overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--c-334155) transparent}.crosstable-scroll::-webkit-scrollbar{height:6px}.crosstable-scroll::-webkit-scrollbar-track{background:transparent}.crosstable-scroll::-webkit-scrollbar-thumb{background:var(--c-334155);border-radius:3px}.crosstable{border-collapse:collapse;width:100%;min-width:300px;font-size:13px}.crosstable th,.crosstable td{padding:4px 8px;text-align:center;border:1px solid var(--c-1e293b)}.crosstable th{background:var(--c-111827);color:var(--c-888);font-weight:600;font-size:12px}.ct-rank{width:30px;color:var(--c-666)}.ct-name{text-align:left!important;font-weight:600;white-space:nowrap;color:var(--c-e0e0e0)}.ct-col-header{width:36px}.ct-total{font-weight:700;color:var(--c-7c83ff)}.ct-cell{width:36px;height:36px;font-weight:700;font-size:13px;transition:filter .1s}.ct-cell--diag{background:var(--c-1e293b);color:var(--c-334155)}.ct-cell--win{background:var(--ov-success-20-emerald);color:var(--c-4caf50)}.ct-cell--loss{background:var(--ov-danger-20);color:var(--c-ef5350)}.ct-cell--draw{background:var(--ov-neutral-15);color:var(--c-9e9e9e)}.ct-cell--active{background:var(--ov-warning-20);color:var(--c-ffc107);animation:active-game-pulse 1.5s infinite}.ct-cell--empty{color:var(--c-475569)}.ct-item--win{color:var(--c-4caf50)}.ct-item--loss{color:var(--c-ef5350)}.ct-item--draw{color:var(--c-9e9e9e)}.ct-item--active{color:var(--c-ffc107);animation:active-game-pulse 1.5s infinite}[class^=ct-item]+[class^=ct-item]{margin-left:2px}.ct-cell--clickable{cursor:pointer}.ct-cell--clickable:hover{filter:brightness(1.4)}.crosstable tr.ct-self{background:var(--ov-accent-06)}@media(max-width:600px){.crosstable{font-size:12px}.crosstable th,.crosstable td{padding:3px 4px}.ct-cell{width:28px;height:28px;font-size:11px}}@media(max-width:600px){.arena-game-cell{width:18px;height:18px;font-size:10px}.tournament-games-cell{gap:2px}}.tournament-type-tabs{display:flex;gap:0;margin-bottom:12px;border-radius:6px;overflow:hidden;border:1px solid var(--c-333)}.tournament-type-tab{flex:1;padding:8px;background:transparent;border:none;color:var(--c-888);font-size:13px;font-weight:600;cursor:pointer;border-radius:0}.tournament-type-tab.active{background:var(--tab-active-bg);color:var(--tab-active-fg)}.tournament-rounds-section{margin-bottom:20px}.tournament-round-tabs{display:flex;gap:0;margin-bottom:12px;border-bottom:1px solid var(--c-333)}.tournament-round-tab{padding:6px 14px;background:none;border:none;border-bottom:2px solid transparent;color:var(--c-888);font-size:12px;font-weight:600;cursor:pointer;border-radius:0}.tournament-round-tab.active{background:var(--tab-active-bg);color:var(--tab-active-fg);border-bottom-color:var(--tab-active-border);border-radius:6px 6px 0 0}.tournament-round-header{display:flex;align-items:center;gap:12px;margin-bottom:8px}.tournament-round-header h3{margin:0;font-size:15px}.tournament-round-status{font-size:11px;padding:2px 8px;border-radius:10px;font-weight:600}.tournament-round-status--active{background:var(--ov-success-20);color:var(--c-4caf50)}.tournament-round-status--finished{background:var(--ov-white-10);color:var(--c-888)}.tournament-round-status--pending{background:var(--ov-warning-15);color:var(--c-ffc107)}.tournament-pairings{display:flex;flex-direction:column;gap:4px}.tournament-pairing{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--c-1e1e3e);border-radius:6px;font-size:14px}.tournament-pairing--mine{background:var(--ov-accent-10);border:1px solid var(--ov-accent-30)}.tournament-pairing__board{width:24px;text-align:center;color:var(--c-666);font-size:12px}.tournament-pairing__player{flex:1}.tournament-pairing__player--winner{font-weight:700;color:var(--c-4caf50)}.tournament-pairing__result{width:60px;text-align:center;font-weight:600}.tournament-pairing__live{color:var(--c-4caf50);text-decoration:none;animation:active-game-pulse 1.5s infinite}.tournament-pairing__review{color:var(--c-7c83ff);text-decoration:none}.tournament-schedule{margin:16px 0}.tournament-schedule h2{font-size:16px;margin-bottom:8px;color:var(--c-e0e0e0)}.tournament-schedule-table{width:100%;border-collapse:collapse;font-size:14px}.tournament-schedule-table th{text-align:left;padding:6px 12px;color:var(--c-9e9e9e);border-bottom:1px solid var(--ov-white-10);font-weight:500}.tournament-schedule-table td{padding:8px 12px;border-bottom:1px solid var(--ov-white-05)}.schedule-row--clickable{cursor:pointer}.schedule-row--clickable:hover{background:var(--ov-accent-08)}.schedule-row--active{background:var(--ov-warning-08)}.schedule-round{width:40px;font-weight:600;color:var(--c-9e9e9e)}.schedule-opponent{color:var(--c-e0e0e0)}.schedule-color{width:50px;text-align:center;font-size:16px}.schedule-result{width:60px;text-align:center;font-weight:600}.schedule-result--win{color:var(--c-4caf50)}.schedule-result--loss{color:var(--c-f44336)}.schedule-result--draw{color:var(--c-9e9e9e)}.main:has(.tournament-lobby-page){overflow:clip}.tournament-header{position:sticky;top:48px;z-index:20;background:var(--c-1a1a2e);padding-top:8px;padding-bottom:8px;margin-bottom:0;border-bottom:1px solid var(--ov-white-10);box-shadow:0 4px 12px -8px var(--ov-black-60)}.tournament-header__top{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.tournament-header__name{margin:0;font-size:22px;color:var(--c-e0e0e0)}.tournament-header__meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:14px}.tournament-header__tc{color:var(--c-4caf50);font-weight:600}.tournament-header__rounds{color:var(--c-9e9e9e)}.tournament-header__status{padding:2px 8px;border-radius:4px;font-size:12px;font-weight:600;text-transform:uppercase}.tournament-header__status--active{background:var(--ov-success-20);color:var(--c-4caf50)}.tournament-header__status--upcoming{background:var(--ov-warning-20);color:var(--c-ffc107)}.tournament-header__status--finished{background:var(--ov-neutral-20);color:var(--c-9e9e9e)}.tournament-header__players{color:var(--c-9e9e9e)}.tournament-header__timer{color:var(--c-ffc107);font-weight:700;font-variant-numeric:tabular-nums}.tournament-header__actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}.tournament-header__round-status{color:var(--c-9e9e9e);font-size:13px}.tournament-tabs{display:flex;gap:0;border-bottom:2px solid var(--ov-white-10);margin-bottom:16px}.tournament-tab{padding:10px 20px;background:none;border:none;color:var(--c-9e9e9e);font-size:14px;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s}.tournament-tab:hover{color:var(--c-e0e0e0)}.tournament-tab--active{background:var(--tab-active-bg);color:var(--tab-active-fg);border-bottom-color:var(--tab-active-border);border-radius:6px 6px 0 0}.tournament-tab-content{min-height:200px}.tournament-tab-panel{animation:tab-fade-in .15s ease}@keyframes tab-fade-in{0%{opacity:0}to{opacity:1}}.tournament-tab-empty{color:var(--c-9e9e9e);text-align:center;padding:32px 0}@media(max-width:600px){.tournament-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}.tournament-tab{padding:8px 12px;font-size:12px;white-space:nowrap;flex-shrink:0}.tournament-lobby-header h1{font-size:18px}.tournament-lobby-meta{flex-wrap:wrap;gap:6px}.tournament-lobby-actions{flex-wrap:wrap}.tournament-pairing{flex-direction:column;gap:4px;padding:10px}.tournament-pairing__board{width:auto;text-align:left}}.crosstable .ct-rank,.crosstable .ct-name,.crosstable th:nth-child(1),.crosstable th:nth-child(2){position:sticky;z-index:1;background:inherit}.crosstable th:nth-child(1),.crosstable .ct-rank{left:0;background:var(--c-111827)}.crosstable th:nth-child(2),.crosstable .ct-name{left:30px;background:var(--c-0f172a)}.crosstable tr:nth-child(2n) .ct-rank,.crosstable tr:nth-child(2n) .ct-name{background:var(--c-0f172a)}.crosstable tr:nth-child(odd) .ct-rank,.crosstable tr:nth-child(odd) .ct-name{background:var(--c-111827)}.crosstable tr.ct-self .ct-rank,.crosstable tr.ct-self .ct-name{background:var(--c-161632)}.tournament-players-table{width:100%;border-collapse:collapse;font-size:14px}.tournament-players-table th{text-align:left;padding:6px 12px;color:var(--c-9e9e9e);border-bottom:1px solid var(--ov-white-10);font-weight:500}.tournament-players-table td{padding:8px 12px;border-bottom:1px solid var(--ov-white-05)}.tournament-player--withdrawn{opacity:.5}.tournament-player__withdrawn-badge{color:var(--c-f44336);font-size:12px}.tournament-rounds-accordion{margin-top:24px}.tournament-rounds-accordion h2{font-size:16px;margin-bottom:12px;color:var(--c-e0e0e0)}.swiss-standings-wrapper{margin:0}.swiss-standings-scroll{overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--c-334155) transparent}.swiss-standings-scroll::-webkit-scrollbar{height:6px}.swiss-standings-scroll::-webkit-scrollbar-track{background:transparent}.swiss-standings-scroll::-webkit-scrollbar-thumb{background:var(--c-334155);border-radius:3px}.swiss-standings-table{width:100%;border-collapse:collapse;font-size:13px;white-space:nowrap}.swiss-standings-table th{padding:6px 8px;text-align:left;color:var(--c-888);border-bottom:1px solid var(--c-1e293b);font-weight:600;font-size:12px;background:var(--c-111827)}.swiss-standings-table td{padding:6px 8px;border-bottom:1px solid var(--ov-white-05)}.swiss-th-rank,.swiss-td-rank{width:30px;text-align:center;color:var(--c-666)}.swiss-th-player{min-width:100px}.swiss-td-player{font-weight:600}.swiss-th-num,.swiss-td-num{width:40px;text-align:center}.swiss-th-round{width:50px;text-align:center}.swiss-td-pts{font-weight:700;color:var(--c-7c83ff)}.swiss-cell{text-align:center;font-size:12px;font-weight:600;transition:filter .1s}.swiss-cell--clickable{cursor:pointer}.swiss-cell--clickable:hover{filter:brightness(1.4)}.swiss-cell--win{color:var(--c-4caf50);background:var(--ov-success-10-emerald)}.swiss-cell--loss{color:var(--c-ef5350);background:var(--ov-danger-10)}.swiss-cell--draw{color:var(--c-9e9e9e);background:var(--ov-neutral-08)}.swiss-cell--bye{color:var(--c-7c83ff);font-style:italic}.swiss-cell--active{color:var(--c-ffc107);background:var(--ov-warning-10);animation:active-game-pulse 1.5s infinite}.swiss-row--self{background:var(--ov-accent-08)}.swiss-row--withdrawn{opacity:.5}.swiss-withdrawn-badge{color:var(--c-f44336);font-size:11px}@media(max-width:600px){.swiss-standings-table{font-size:12px}.swiss-standings-table th,.swiss-standings-table td{padding:4px 6px}.swiss-th-rank,.swiss-td-rank{position:sticky;left:0;z-index:1;background:var(--c-111827)}.swiss-th-player,.swiss-td-player{position:sticky;left:30px;z-index:1;background:var(--c-0f172a)}.swiss-row--self .swiss-td-rank,.swiss-row--self .swiss-td-player{background:var(--c-161632)}}.tnr-my-section{margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--c-2a2a3e)}.tnr-my-section__title{font-size:18px;font-weight:700;margin-bottom:12px;color:var(--c-e0e0e0)}.tnr-my-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.5px}.tnr-my-badge--creator{background:var(--ov-accent-20);color:var(--c-7c83ff)}.tnr-my-badge--joined{background:var(--ov-success-20);color:var(--c-4caf50)}.tnr-my-badge--invited{background:var(--ov-warning-20);color:var(--c-ffc107)}.manage-invites{margin-top:12px;padding:12px;background:var(--c-1a1a2e);border-radius:8px;border:1px solid var(--c-2a2a3e)}.manage-invites h3{font-size:14px;font-weight:600;margin:0 0 10px;color:var(--c-e0e0e0)}.manage-invites__form{display:flex;gap:8px;margin-bottom:8px}.manage-invites__form input{flex:1;background:var(--c-0f0f1a);border:1px solid var(--c-333);color:var(--c-e0e0e0);padding:6px 10px;border-radius:4px;font-size:13px}.manage-invites__form button{background:var(--c-7c83ff);color:var(--c-fff);border:none;border-radius:4px;padding:6px 14px;font-size:13px;cursor:pointer;white-space:nowrap}.manage-invites__form button:disabled{opacity:.5;cursor:not-allowed}.manage-invites__error{color:var(--c-ef5350);font-size:12px;margin-bottom:8px}.manage-invites__list{list-style:none;padding:0;margin:0}.manage-invites__item{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--c-222);font-size:13px}.manage-invites__item:last-child{border-bottom:none}.manage-invites__user{flex:1;color:var(--c-ccc)}.manage-invites__status{font-size:11px;padding:1px 6px;border-radius:8px;text-transform:capitalize}.manage-invites__status--pending{background:var(--ov-warning-15);color:var(--c-ffc107)}.manage-invites__status--accepted{background:var(--ov-success-15);color:var(--c-4caf50)}.manage-invites__status--declined{background:var(--ov-danger-15-r400b);color:var(--c-ef5350)}.manage-invites__remove{background:none;border:none;color:var(--c-888);cursor:pointer;font-size:14px;padding:2px 6px}.manage-invites__remove:hover{color:var(--c-ef5350)}.tnr-card__status{font-size:11px;font-weight:600;text-transform:capitalize}.tnr-card__status--active{color:var(--c-4caf50)}.tnr-card__status--upcoming{color:var(--c-ffc107)}.tnr-card__status--finished{color:var(--c-888)}.engine-settings-btn{background:none;border:none;color:var(--c-a0a0c0);cursor:pointer;font-size:16px;padding:2px 6px;margin-left:4px}.engine-settings-btn:hover{color:var(--c-fff)}.engine-status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-left:6px}.engine-status-dot--connected{background:var(--c-4caf50)}.engine-status-dot--connecting{background:var(--c-ffc107);animation:pulse-dot 1.5s infinite}.engine-status-dot--disconnected{background:var(--c-f44336)}.engine-settings-panel{background:var(--c-16162a);border:1px solid var(--c-2a2a4e);border-radius:6px;padding:12px;margin-bottom:8px}.engine-settings-sources{display:flex;gap:6px;margin-bottom:10px}.engine-source-btn{flex:1;padding:6px 10px;background:var(--c-1a1a2e);border:1px solid var(--c-3a3a5e);border-radius:4px;color:var(--c-a0a0c0);font-size:12px;cursor:pointer}.engine-source-btn.active{background:var(--tab-active-bg);color:var(--tab-active-fg);border-color:var(--tab-active-border)}.engine-settings-form{display:flex;flex-direction:column;gap:6px}.engine-settings-input{background:var(--c-1a1a2e);border:1px solid var(--c-3a3a5e);border-radius:4px;padding:6px 10px;color:var(--c-e0e0ff);font-size:12px}.engine-settings-input:focus{border-color:var(--c-7c83ff);outline:none}.engine-settings-actions{display:flex;gap:6px}.engine-connect-btn{flex:1;padding:6px;background:var(--c-16a34a);color:var(--c-fff);border:none;border-radius:4px;font-size:12px;cursor:pointer}.engine-save-btn{padding:6px 12px;background:var(--c-3a3a6e);color:var(--c-c0c0ff);border:1px solid var(--c-4a4a8e);border-radius:4px;font-size:12px;cursor:pointer}.engine-saved-list{margin-top:8px}.engine-saved-label{font-size:11px;color:var(--c-808098);margin-bottom:4px}.engine-saved-item{background:var(--c-1a1a2e);border:1px solid var(--c-2a2a4e);border-radius:4px;padding:4px 10px;color:var(--c-a0a0c0);font-size:12px;cursor:pointer;margin-right:4px;margin-bottom:4px}.engine-saved-item.active{border-color:var(--c-7c83ff);color:var(--c-fff)}.engine-saved-item:hover{background:var(--c-2a2a4e)}.engine-saved-row{display:inline-flex;align-items:center;gap:2px;margin-right:4px;margin-bottom:4px}.engine-saved-delete{background:none;border:none;color:var(--c-606078);font-size:10px;cursor:pointer;padding:2px 4px}.engine-saved-delete:hover{color:var(--c-f44336)}.engine-help-link{color:var(--c-7c83ff);text-decoration:none;font-size:12px;margin-top:8px;display:inline-block}.engine-help-link:hover{text-decoration:underline}.help-page{max-width:700px;margin:0 auto;padding:24px 16px}.help-page h1{margin:0 0 8px;font-size:24px}.help-intro{color:var(--c-a0a0c0);font-size:15px;margin-bottom:24px;line-height:1.5}.help-steps{display:flex;flex-direction:column;gap:16px}.help-step{display:flex;gap:16px;background:var(--c-1a1a2e);border:1px solid var(--c-2a2a4e);border-radius:8px;padding:16px}.help-step-number{width:32px;height:32px;border-radius:50%;background:var(--c-7c83ff);color:var(--c-fff);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;flex-shrink:0}.help-step-content{flex:1}.help-step-content h3{margin:0 0 6px;font-size:15px;color:var(--c-e0e0ff)}.help-step-content p{margin:0 0 8px;font-size:14px;color:var(--c-a0a0c0);line-height:1.4}.help-link{color:var(--c-7c83ff);text-decoration:none;font-size:13px}.help-link:hover{text-decoration:underline}.help-code{display:inline-block;background:var(--c-12122a);border:1px solid var(--c-2a2a4e);border-radius:4px;padding:4px 10px;font-family:monospace;font-size:13px;color:var(--c-c0c0e0)}.help-faq{margin-top:32px;padding-top:24px;border-top:1px solid var(--c-2a2a4e)}.help-faq h2{margin:0 0 16px}.help-faq h3{margin:20px 0 8px}.help-faq h4{margin:16px 0 6px;color:var(--c-a0a0c0)}.help-code-block{display:block;background:var(--c-12122a);border:1px solid var(--c-2a2a4e);border-radius:6px;padding:12px 16px;font-family:monospace;font-size:13px;color:var(--c-c0c0e0);white-space:pre;overflow-x:auto;margin:0}.help-note{font-size:13px;color:var(--c-a0a0c0);margin:6px 0 0;font-style:italic}.engine-load-config-btn{width:100%;padding:8px;background:var(--c-1a1a2e);border:1px dashed var(--c-4a4a8e);border-radius:6px;color:var(--c-a0a0c0);font-size:12px;cursor:pointer;transition:border-color .15s,color .15s}.engine-load-config-btn:hover{border-color:var(--c-7c83ff);color:var(--c-e0e0ff)}.engine-error-detail{font-size:11px;color:var(--c-f44336);margin-left:8px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.engine-uci-options{margin-top:10px;padding-top:8px;border-top:1px solid var(--c-2a2a4e)}.engine-uci-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px}.engine-uci-row label{font-size:12px;color:var(--c-a0a0c0);min-width:70px}.engine-uci-input{width:80px;background:var(--c-1a1a2e);border:1px solid var(--c-3a3a5e);border-radius:4px;padding:4px 8px;color:var(--c-e0e0ff);font-size:12px;text-align:right}.engine-uci-input:focus{border-color:var(--c-7c83ff);outline:none}.engine-uci-row--depth{flex-direction:column;align-items:stretch;gap:6px}.engine-depth-slider-wrap{display:flex;align-items:center;gap:10px}.engine-depth-slider{flex:1;height:24px;accent-color:var(--c-7c83ff);cursor:pointer}.engine-depth-value{min-width:26px;text-align:center;font-variant-numeric:tabular-nums;font-weight:600;color:var(--c-e0e0ff);background:#7c83ff29;border-radius:4px;padding:2px 8px}.engine-depth-hint{margin:0;font-size:11px;line-height:1.35;color:var(--c-94a3b8, #94a3b8)}.engine-depth-reset{display:inline;background:transparent;border:0;padding:0;color:var(--c-7c83ff, #7c83ff);cursor:pointer;font-size:11px;font-family:inherit;text-decoration:underline}.engine-depth-reset:hover{color:#a3a9ff}.engine-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--ov-black-60);display:flex;align-items:center;justify-content:center;z-index:1000}.engine-modal{background:var(--c-1a1a2e);border:1px solid var(--c-2a2a4e);border-radius:10px;padding:20px;width:420px;max-width:90vw;max-height:85vh;overflow-y:auto}.engine-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.engine-modal-header h3{margin:0;font-size:16px;color:var(--c-e0e0ff)}.engine-modal-close{background:none;border:none;color:var(--c-808098);font-size:18px;cursor:pointer}.engine-modal-close:hover{color:var(--c-fff)}.engine-multipv-controls{display:inline-flex;align-items:center;gap:2px;margin-right:4px}.engine-multipv-btn{background:var(--c-2a2a4e);border:1px solid var(--c-3a3a5e);color:var(--c-a0a0c0);width:20px;height:20px;border-radius:3px;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;line-height:1}.engine-multipv-btn:hover:not(:disabled){background:var(--c-3a3a6e);color:var(--c-fff)}.engine-multipv-btn:disabled{opacity:.3;cursor:default}.engine-multipv-value{font-size:11px;color:var(--c-a0a0c0);min-width:14px;text-align:center}.engine-connection-status{padding:8px 12px;border-radius:6px;font-size:13px;text-align:center;margin:8px 0}.engine-status--connecting{background:var(--c-1e2a4a);color:var(--c-a0a0c0);border:1px solid var(--c-4a4a8e)}.engine-status--connected{background:var(--c-0a2e1a);color:var(--c-16a34a);border:1px solid var(--c-16a34a)}.engine-status--error{background:var(--c-2e0a0a);color:var(--c-ef4444);border:1px solid var(--c-ef4444)}.engine-saved-url{display:block;font-size:11px;color:var(--c-666);font-weight:400}.engine-add-btn{width:100%;padding:8px;margin-top:4px;background:transparent;border:1px dashed var(--c-4a4a8e);color:var(--c-7c83ff);border-radius:6px;font-size:13px;cursor:pointer}.engine-add-btn:hover{background:var(--c-1e2a4a);border-color:var(--c-7c83ff)}.main:has(.features-page){padding:0;max-width:none}.features-page{width:100%;margin:0;padding:0;overflow-x:hidden}.features-hero{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 24px;box-sizing:border-box;background:radial-gradient(ellipse at 50% 30%,var(--ov-accent-12) 0%,transparent 70%)}.features-hero__title{font-size:28px;font-weight:800;color:var(--c-e0e0ff);margin:0 0 16px;letter-spacing:-.5px;line-height:1.2}.features-hero__subtitle{font-size:16px;color:var(--c-808098);margin:0 0 32px;max-width:480px;line-height:1.6}.features-hero__cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.features-quick-links{padding:0 20px 32px;max-width:800px;margin:0 auto}.features-quick-links__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}@media(max-width:600px){.features-quick-links__grid{grid-template-columns:repeat(2,1fr)}}.features-quick-link{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 12px;background:var(--c-1e1e3e);border:1px solid var(--c-333);border-radius:10px;text-decoration:none;color:var(--c-e0e0e0);transition:background .15s,border-color .15s,transform .15s}.features-quick-link,.features-quick-link:visited,.features-quick-link:hover,.features-quick-link:focus,.features-quick-link:focus-visible,.features-quick-link:active,.features-quick-link__label,.features-quick-link:hover .features-quick-link__label{text-decoration:none}.features-quick-link:hover{background:var(--c-2a2a4e);border-color:var(--c-7c83ff);transform:translateY(-2px)}.features-quick-link:focus-visible{outline:none;border-color:var(--c-7c83ff);box-shadow:0 0 0 3px var(--ov-accent-15)}.features-quick-link__icon{font-size:28px}.features-quick-link__label{font-size:14px;font-weight:600}.features-btn{padding:12px 28px;border-radius:8px;font-size:15px;font-weight:600;text-decoration:none;cursor:pointer;border:none;transition:transform .15s,box-shadow .15s,background .15s;display:inline-block}.features-btn--primary{background:var(--c-7c83ff);color:var(--c-fff)}.features-btn--primary:hover{background:var(--c-6b72ee);transform:translateY(-2px);box-shadow:0 6px 20px var(--ov-accent-35)}.features-btn--secondary{background:transparent;border:1px solid var(--c-4a4a6e);color:var(--c-c0c0e0)}.features-btn--secondary:hover{border-color:var(--c-7c83ff);color:var(--c-fff);transform:translateY(-2px)}.features-section{padding:48px 24px;box-sizing:border-box}.features-section:nth-child(odd){background:var(--c-0f172a)}.features-section:nth-child(2n){background:var(--c-131a2e)}.features-section__inner{max-width:640px;margin:0 auto;text-align:center}.features-section__icon{font-size:40px;display:block;margin-bottom:12px;line-height:1}.features-section__title{font-size:22px;font-weight:700;color:var(--c-e0e0ff);margin:0 0 12px}.features-section__desc{font-size:15px;color:var(--c-808098);line-height:1.7;max-width:520px;margin:0 auto}.features-cta-footer{text-align:center;padding:64px 24px;background:radial-gradient(ellipse at 50% 70%,var(--ov-accent-10) 0%,transparent 70%)}.features-cta-footer__title{font-size:24px;font-weight:700;color:var(--c-e0e0ff);margin:0 0 24px}@media(min-width:768px){.features-hero__title{font-size:48px;letter-spacing:-1px}.features-hero__subtitle{font-size:18px;max-width:560px}.features-section{padding:72px 40px}.features-section__icon{font-size:48px;margin-bottom:16px}.features-section__title{font-size:28px}.features-section__desc{font-size:16px}.features-cta-footer{padding:80px 40px}.features-cta-footer__title{font-size:32px}.features-btn{padding:14px 36px;font-size:16px}}@media(min-width:1200px){.features-hero__title{font-size:56px}.features-section{padding:96px 40px}.features-section__title{font-size:32px}.features-section__desc{font-size:17px;max-width:600px}}@media(max-width:375px){.features-hero{padding:32px 16px}.features-hero__title{font-size:24px}.features-hero__subtitle{font-size:14px}.features-btn{padding:10px 20px;font-size:14px}.features-section{padding:36px 16px}}.features-section__inner{animation:features-fade-up .6s ease-out both}@keyframes features-fade-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.features-section__guide{text-align:left;font-size:14px;color:var(--c-bbb);line-height:1.7;max-width:700px;margin:0 auto}.features-section__guide p{margin:0}.features-section__spacer{height:8px}.chat-widget-btn{position:fixed;bottom:20px;right:20px;width:48px;height:48px;border-radius:50%;background:var(--c-7c83ff);border:none;font-size:22px;cursor:pointer;box-shadow:0 2px 12px var(--ov-black-30);z-index:9000;display:flex;align-items:center;justify-content:center}.chat-widget-btn:hover{background:var(--c-6b71e8)}@media(max-width:768px){.chat-widget-btn{bottom:72px}}.chat-panel{position:fixed;bottom:0;right:0;width:360px;height:500px;background:var(--c-1e293b);border:1px solid var(--c-334155);border-radius:12px 12px 0 0;display:flex;flex-direction:column;z-index:9001;box-shadow:0 -4px 24px var(--ov-black-40)}@media(max-width:480px){.chat-panel{width:100%;height:100%;border-radius:0}}.chat-panel__header{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--c-334155);flex-shrink:0}.chat-panel__title{font-weight:600;font-size:14px;color:var(--c-e2e8f0)}.chat-panel__actions{display:flex;gap:6px}.chat-panel__actions button{background:none;border:none;color:var(--c-94a3b8);font-size:16px;cursor:pointer;padding:2px 6px;border-radius:4px}.chat-panel__actions button:hover{background:var(--c-334155);color:var(--c-e2e8f0)}.chat-panel__messages{flex:1;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:8px}.chat-panel__welcome{text-align:center;color:var(--c-64748b);font-size:13px;margin-top:40px}.chat-msg{max-width:85%;padding:8px 12px;border-radius:10px;font-size:13px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.chat-msg--user{align-self:flex-end;background:var(--c-3b82f6);color:var(--c-fff);border-bottom-right-radius:2px}.chat-msg--assistant{align-self:flex-start;background:var(--c-334155);color:var(--c-e2e8f0);border-bottom-left-radius:2px}.chat-panel__input{display:flex;align-items:flex-end;gap:6px;padding:8px 10px;border-top:1px solid var(--c-334155);flex-shrink:0}.chat-panel__input textarea{flex:1;background:var(--c-0f172a);border:1px solid var(--c-334155);border-radius:8px;color:var(--c-e2e8f0);padding:8px 10px;font-size:13px;resize:none;font-family:inherit;max-height:80px}.chat-send-btn{background:var(--c-7c83ff);border:none;color:var(--c-fff);width:34px;height:34px;border-radius:8px;font-size:16px;cursor:pointer;flex-shrink:0}.chat-send-btn:disabled{opacity:.4}.chat-panel__history{flex:1;overflow-y:auto;padding:8px}.chat-panel__empty{text-align:center;color:var(--c-64748b);font-size:13px;margin-top:30px}.chat-history-item{display:flex;justify-content:space-between;width:100%;padding:10px 12px;background:none;border:none;border-bottom:1px solid var(--c-1e293b);color:var(--c-e2e8f0);font-size:13px;cursor:pointer;text-align:left}.chat-history-item:hover{background:var(--c-334155)}.chat-history-item__date{color:var(--c-64748b);font-size:11px}.chat-msg__md p{margin:0 0 6px}.chat-msg__md p:last-child{margin-bottom:0}.chat-msg__md strong{font-weight:600}.chat-msg__md code{background:var(--c-1e293b);padding:1px 4px;border-radius:3px;font-size:12px}.chat-msg__md pre{background:var(--c-0f172a);padding:8px;border-radius:6px;overflow-x:auto;margin:6px 0}.chat-msg__md pre code{background:none;padding:0;font-size:12px}.chat-msg__md ul{margin:4px 0;padding-left:18px}.chat-msg__md li{margin:2px 0}.chat-msg__md a{color:var(--c-7c83ff);text-decoration:underline}.chat-msg__md h3,.chat-msg__md h4,.chat-msg__md h5{margin:8px 0 4px;font-size:13px}.chat-usage-badge{font-size:10px;color:var(--c-64748b);background:var(--c-1e293b);padding:2px 6px;border-radius:4px;flex-shrink:0;align-self:center}.chat-rate-limit{text-align:center;font-size:12px;color:var(--c-f59e0b);padding:4px 8px}.chat-tool-calls{list-style:none;margin:0 0 6px;padding:4px 8px;border-left:2px solid var(--c-3a3a4e, #3a3a4e);background:var(--c-2a2a3e, rgba(255, 255, 255, .04));border-radius:4px;font-size:12px;opacity:.92}.chat-tool-call{display:flex;align-items:center;gap:6px;padding:2px 0;line-height:1.4}.chat-tool-call__icon{flex-shrink:0}.chat-tool-call__icon--ok{color:var(--c-4ade80, #4ade80)}.chat-tool-call__icon--error{color:var(--c-ef4444, #ef4444)}.chat-tool-call__text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.chat-tool-call--error .chat-tool-call__text{color:var(--c-ef4444, #ef4444)}.chat-tool-call__spinner{display:inline-block;width:12px;height:12px;border:2px solid var(--c-555, #555);border-top-color:var(--c-7c83ff, #7c83ff);border-radius:50%;animation:chat-tool-call-spin .9s linear infinite;flex-shrink:0}@keyframes chat-tool-call-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.chat-tool-call__spinner{animation:none}}.fb-board-page,.fb-detail-page{max-width:800px;margin:0 auto;padding:20px}.fb-board-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.fb-board-header h1{font-size:22px}.fb-new-btn{background:var(--c-7c83ff);color:var(--c-fff);border:none;padding:8px 16px;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer}.fb-filters{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.fb-filters select{background:var(--c-1e293b);color:var(--c-e2e8f0);border:1px solid var(--c-334155);border-radius:6px;padding:6px 10px;font-size:13px}.fb-loading,.fb-empty{text-align:center;color:var(--c-64748b);padding:30px}.fb-list{display:flex;flex-direction:column;gap:8px}.fb-post-card{display:flex;gap:12px;background:var(--c-1e293b);border-radius:8px;padding:12px}.fb-vote-btn{display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:1px solid var(--c-334155);border-radius:6px;padding:6px 10px;cursor:pointer;color:var(--c-94a3b8);min-width:44px}.fb-vote-btn:hover{border-color:var(--c-7c83ff);color:var(--c-7c83ff)}.fb-vote-btn.voted{border-color:var(--c-7c83ff);color:var(--c-7c83ff);background:var(--c-1e2a4a)}.fb-vote-btn:disabled{cursor:default;opacity:.5}.fb-vote-btn--lg{padding:10px 14px}.fb-vote-arrow{font-size:14px}.fb-vote-count{font-size:14px;font-weight:600}.fb-post-body{flex:1;min-width:0}.fb-post-title{color:var(--c-e2e8f0);text-decoration:none;font-size:15px;font-weight:500;display:block;margin-bottom:6px}.fb-post-title:hover{color:var(--c-7c83ff)}.fb-post-type{margin-right:4px}.fb-post-meta{display:flex;gap:10px;font-size:12px;color:var(--c-64748b);align-items:center;flex-wrap:wrap}.fb-post-status{padding:2px 8px;border-radius:10px;color:var(--c-fff);font-size:11px;font-weight:600;text-transform:uppercase}.fb-detail-card{background:var(--c-1e293b);border-radius:8px;padding:16px;margin-bottom:20px}.fb-detail-header{display:flex;gap:14px;align-items:flex-start;margin-bottom:12px}.fb-detail-title{font-size:18px;margin:0 0 6px;color:var(--c-e2e8f0)}.fb-detail-meta{display:flex;gap:10px;font-size:12px;color:var(--c-64748b);align-items:center}.fb-detail-message{font-size:14px;color:var(--c-cbd5e1);line-height:1.6;white-space:pre-wrap}.fb-comments-section h2{font-size:16px;color:var(--c-cbd5e1);margin-bottom:12px}.fb-comment{background:var(--c-1e293b);border-radius:6px;padding:10px 12px;margin-bottom:8px}.fb-comment-meta{display:flex;gap:10px;font-size:12px;color:var(--c-64748b);margin-bottom:4px}.fb-comment-body{font-size:13px;color:var(--c-e2e8f0);white-space:pre-wrap}.fb-comment-form{display:flex;flex-direction:column;gap:8px;margin-top:12px}.fb-comment-form textarea{background:var(--c-0f172a);border:1px solid var(--c-334155);border-radius:6px;color:var(--c-e2e8f0);padding:8px 10px;font-size:13px;font-family:inherit;resize:vertical}.fb-comment-form button{align-self:flex-end;background:var(--c-7c83ff);color:var(--c-fff);border:none;padding:8px 16px;border-radius:6px;font-size:13px;cursor:pointer}.fb-comment-form button:disabled{opacity:.5}.feedback-public-check{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--c-94a3b8);cursor:pointer}.fb-vote-group{display:flex;flex-direction:column;align-items:center;gap:0;min-width:44px}.fb-vote-group .fb-vote-btn{border:none;padding:4px 10px;border-radius:4px}.fb-vote-group .fb-vote-count{font-size:14px;font-weight:600;color:var(--c-e2e8f0)}.fb-vote-group--lg .fb-vote-btn{padding:6px 14px}.fb-vote-group--lg .fb-vote-count{font-size:16px}.fb-vote-btn--down .fb-vote-arrow{display:inline-block}.fb-vote-btn.voted-down,.fb-vote-btn.voted-down:hover{color:var(--c-f87171)}.fb-vote-group .fb-vote-btn{display:flex;align-items:center;gap:4px}.fb-vote-count--up{color:var(--c-4ade80);font-size:12px}.fb-vote-count--down{color:var(--c-f87171);font-size:12px}.fb-comment--support{border-left:3px solid var(--c-7c83ff);background:var(--c-1e2a4a)}.fb-support-badge{background:var(--c-7c83ff);color:var(--c-fff);font-size:10px;font-weight:600;padding:1px 6px;border-radius:8px;text-transform:uppercase}.archive-games-page{max-width:1200px;margin:0 auto;padding:24px 20px 48px;color:var(--text-primary);display:flex;flex-direction:column;gap:20px}.archive-games-page--missing-fen{max-width:640px;padding:48px 20px;text-align:center;color:var(--text-secondary)}.archive-games-header{display:flex;align-items:flex-start;gap:20px;padding:16px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:10px}.archive-games-header__board{width:180px;height:180px;flex-shrink:0;border-radius:6px;overflow:hidden;background:var(--bg-muted)}.archive-games-header__info{display:flex;flex-direction:column;gap:10px;min-width:0;flex:1}.archive-games-header__opening{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:14px;color:var(--text-secondary)}.archive-games-header__eco{display:inline-block;padding:2px 8px;border:1px solid var(--border-subtle);border-radius:4px;background:var(--accent-soft);color:var(--accent-primary);font-family:SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px;font-weight:600;letter-spacing:.02em}.archive-games-header__opening-name{font-weight:500;color:var(--text-primary)}.archive-games-header__fen{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted);min-width:0;overflow:hidden}.archive-games-header__fen-label{color:var(--text-muted);font-weight:600;flex-shrink:0;text-transform:uppercase;letter-spacing:.04em}.archive-games-header__fen code{display:inline-block;min-width:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-secondary);font-family:SF Mono,Menlo,Consolas,Liberation Mono,monospace}.archive-games-header__total{display:inline-flex;align-items:center;align-self:flex-start;padding:4px 12px;background:var(--accent-soft);border:1px solid var(--accent-soft-strong);border-radius:999px;color:var(--accent-primary);font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}.archive-games-filters{display:flex;flex-wrap:wrap;gap:12px;padding:14px 16px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:10px}.archive-games-filters__field{display:flex;flex-direction:column;gap:4px;min-width:0}.archive-games-filters__label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-weight:600}.archive-games-filters__select,.archive-games-filters__input{background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-primary);font-size:13px;padding:6px 8px;height:32px;min-width:130px;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}.archive-games-filters__select{cursor:pointer}.archive-games-filters__select:hover,.archive-games-filters__input:hover{border-color:var(--border-mid)}.archive-games-filters__select:focus,.archive-games-filters__input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-soft)}.archive-games-filters__input::placeholder{color:var(--text-muted)}.archive-games-filters__input--eco{min-width:80px;max-width:90px;text-transform:uppercase;font-family:SF Mono,Menlo,Consolas,Liberation Mono,monospace}.archive-games-filters__presets{display:flex;gap:4px;flex-wrap:wrap}.archive-games-filters__preset{background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:6px;color:var(--text-secondary);font-size:12px;font-weight:500;padding:6px 10px;height:32px;cursor:pointer;white-space:nowrap;transition:background .15s ease,border-color .15s ease,color .15s ease}.archive-games-filters__preset:hover{border-color:var(--accent-primary);color:var(--text-primary)}.archive-games-filters__preset.is-active{background:var(--accent-soft);border-color:var(--accent-primary);color:var(--accent-primary)}.archive-games-filters__preset:focus-visible{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-soft)}.archive-games-list{display:flex;flex-direction:column;gap:12px}.archive-games-list__rows{display:flex;flex-direction:column;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:10px;overflow:hidden}.archive-game-row{display:grid;grid-template-columns:64px minmax(0,2fr) 60px 60px minmax(0,1.4fr) 140px 90px;align-items:center;gap:12px;padding:10px 14px;background:transparent;border:none;border-bottom:1px solid var(--border-subtle);color:var(--text-primary);text-align:left;font-size:13px;line-height:1.4;cursor:pointer;width:100%;transition:background-color .12s ease;font-family:inherit}.archive-game-row:last-child{border-bottom:none}.archive-game-row:hover{background:var(--accent-soft)}.archive-game-row:focus-visible{outline:2px solid var(--accent-primary);outline-offset:-2px}.archive-game-row__result{justify-self:center;padding:4px 6px;border-radius:4px;font-weight:700;font-size:11px;min-width:56px;text-align:center;letter-spacing:.02em;font-family:SF Mono,Menlo,Consolas,Liberation Mono,monospace}.archive-game-row__result--white{background:var(--c-f1f1f1);color:var(--c-111827);box-shadow:inset 0 -1px 0 var(--ov-black-08)}.archive-game-row__result--black{background:var(--c-111827);color:var(--c-f1f1f1);box-shadow:inset 0 0 0 1px var(--ov-white-15)}.archive-game-row__result--draw{background:var(--c-9ca3af);color:var(--c-111827)}.archive-game-row__result--unknown{background:transparent;color:var(--text-muted);box-shadow:inset 0 0 0 1px var(--border-subtle)}.archive-game-row__players{min-width:0;overflow:hidden;line-height:1.35;white-space:nowrap;text-overflow:ellipsis}.archive-game-row__player{font-weight:600;color:var(--text-primary)}.archive-game-row__elo{color:var(--text-muted);font-weight:400;font-size:12px}.archive-game-row__vs{color:var(--text-muted);margin:0 2px;font-weight:400}.archive-game-row__eco{color:var(--accent-primary);font-size:11px;font-family:SF Mono,Menlo,Consolas,Liberation Mono,monospace;padding:2px 6px;background:var(--accent-soft);border-radius:4px;text-align:center;justify-self:start;font-weight:600}.archive-game-row__date{color:var(--text-secondary);font-size:12px;font-variant-numeric:tabular-nums}.archive-game-row__event{color:var(--text-secondary);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.archive-game-row__reached{color:var(--text-muted);font-size:11px;text-align:right;font-style:italic}.archive-game-row__next-move{color:var(--accent-primary);font-size:12px;font-weight:600;text-align:right;font-family:SF Mono,Menlo,Consolas,Liberation Mono,monospace;white-space:nowrap}.archive-games-list--loading{display:flex;flex-direction:column;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:10px;overflow:hidden}.archive-games-list__skeleton-row{height:48px;border-bottom:1px solid var(--border-subtle);background:linear-gradient(90deg,var(--bg-muted) 0%,var(--bg-elevated) 50%,var(--bg-muted) 100%);background-size:200% 100%;animation:archive-games-shimmer 1.4s ease-in-out infinite}.archive-games-list__skeleton-row:last-child{border-bottom:none}@keyframes archive-games-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.archive-skeleton-block{background:linear-gradient(90deg,var(--bg-muted) 0%,var(--bg-elevated) 50%,var(--bg-muted) 100%);background-size:200% 100%;animation:archive-games-shimmer 1.4s ease-in-out infinite;border-radius:8px}.archive-games-list--empty{display:flex;flex-direction:column;align-items:center;gap:14px;padding:56px 20px;background:var(--bg-surface);border:1px dashed var(--border-mid);border-radius:10px;color:var(--text-secondary);text-align:center;font-size:14px}.archive-games-list__reset-filters{background:transparent;border:1px solid var(--accent-primary);color:var(--accent-primary);font-size:13px;font-weight:500;padding:6px 16px;border-radius:6px;cursor:pointer;transition:background .15s ease,color .15s ease}.archive-games-list__reset-filters:hover{background:var(--accent-soft)}.archive-games-list__reset-filters:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.archive-games-list--error{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;background:var(--danger-soft);border:1px solid var(--danger);border-radius:10px;color:var(--danger);font-size:14px}.archive-games-list__inline-error{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;color:var(--danger);background:var(--danger-soft);border:1px solid var(--danger);border-radius:8px;font-size:13px}.archive-games-list__retry{background:transparent;border:1px solid var(--danger);color:var(--danger);font-size:12px;font-weight:500;padding:4px 14px;border-radius:6px;cursor:pointer;flex-shrink:0;transition:background .15s ease,color .15s ease}.archive-games-list__retry:hover{background:var(--danger);color:var(--text-on-accent)}.archive-games-list__sentinel{height:1px;width:100%}.archive-games-list--loading-more{margin-top:0;border-top:none;border-top-left-radius:0;border-top-right-radius:0}.archive-games-metadata__end{text-align:center;padding:24px 0 8px;color:var(--text-secondary);font-size:13px}.archive-games-metadata__footer{display:flex;justify-content:flex-end;padding:16px 0}.archive-games-list__load-more{background:transparent;border:1px solid var(--accent-primary);border-radius:8px;color:var(--accent-primary);font-size:13px;font-weight:500;padding:10px 24px;align-self:center;cursor:pointer;transition:background .15s ease,color .15s ease}.archive-games-list__load-more:hover:not(:disabled){background:var(--accent-soft)}.archive-games-list__load-more:disabled{opacity:.55;cursor:not-allowed}@media(max-width:1024px){.archive-games-page{padding:20px 16px 40px}.archive-game-row{grid-template-columns:60px minmax(0,2fr) 54px 60px 120px 90px;gap:10px;padding:10px 12px}.archive-game-row__event{display:none}}@media(max-width:768px){.archive-games-page{padding:14px 12px 32px;gap:14px}.archive-games-header{flex-direction:column;align-items:stretch;gap:14px;padding:12px}.archive-games-header__board{width:100%;max-width:260px;height:auto;aspect-ratio:1 / 1;align-self:center}.archive-games-header__fen code{font-size:11px}.archive-games-filters{padding:10px;gap:10px}.archive-games-filters__field{flex:1 1 140px}.archive-games-filters__select,.archive-games-filters__input{min-width:0;width:100%}.archive-games-filters__input--eco{max-width:none}.archive-games-filters__presets{gap:6px}.archive-games-list__rows{background:transparent;border:none;border-radius:0;overflow:visible;gap:8px}.archive-game-row{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto auto auto;gap:6px 10px;padding:12px 14px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:10px;font-size:13px}.archive-game-row:hover{background:var(--bg-elevated)}.archive-game-row__players{grid-column:1;grid-row:1;white-space:normal}.archive-game-row__result{grid-column:2;grid-row:1;justify-self:end;align-self:start;min-width:52px;padding:4px 8px}.archive-game-row__eco{grid-column:1;grid-row:2;justify-self:start;align-self:center}.archive-game-row__date{grid-column:2;grid-row:2;justify-self:end;align-self:center}.archive-game-row__event{display:block;grid-column:1 / -1;grid-row:3}.archive-game-row__reached{grid-column:1;grid-row:4;justify-self:start;text-align:left}.archive-game-row__next-move{grid-column:2;grid-row:4;justify-self:end}.archive-games-list--empty{padding:40px 16px}.archive-games-list--error,.archive-games-list__inline-error{flex-wrap:wrap}}@media(max-width:380px){.archive-game-row{padding:10px 12px;gap:4px 8px}.archive-game-row__players{font-size:13px}}.archive-games-metadata{max-width:1200px;margin:0 auto;padding:24px 20px 48px;display:flex;flex-direction:column;gap:16px}.archive-games-metadata__header{display:flex;flex-direction:column;gap:4px}.archive-games-metadata__fen-chip{display:inline-flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:8px;padding:6px 10px;background:var(--c-1e293b, #1e293b);border:1px solid var(--c-2a2a4e, #2a2a4e);border-radius:8px;max-width:100%}.archive-games-metadata__fen-chip-board{width:144px;height:144px;flex-shrink:0;border-radius:4px;overflow:hidden;background:var(--c-0f172a, #0f172a)}@media(max-width:640px){.archive-games-metadata__fen-chip-board{width:clamp(120px,42vw,160px);height:clamp(120px,42vw,160px)}}.archive-games-metadata__fen-chip-info{display:flex;flex-direction:column;min-width:0;gap:2px}.archive-games-metadata__fen-chip-label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--c-94a3b8, #94a3b8)}.archive-games-metadata__fen-chip-value{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:var(--c-e2e8f0, #e2e8f0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px}.archive-games-metadata__fen-chip-clear{margin-left:auto;width:24px;height:24px;background:transparent;color:var(--c-94a3b8, #94a3b8);border:1px solid rgba(120,140,200,.25);border-radius:4px;cursor:pointer;font-size:16px;line-height:1}.archive-games-metadata__fen-chip-clear:hover{background:#7c83ff1f;color:var(--c-e2e8f0, #e2e8f0)}.archive-games-metadata__search-by-position{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--c-1e293b, #1e293b);color:var(--c-e2e8f0, #e2e8f0);border:1px solid var(--c-2a2a4e, #2a2a4e);border-radius:6px;font-size:13px;font-family:inherit;cursor:pointer}.archive-games-metadata__search-by-position:hover{background:#7c83ff14;border-color:#a0b4e68c}.archive-games-metadata__title{margin:0;font-size:22px;font-weight:700}.archive-games-metadata__summary{margin:0;color:var(--text-secondary);font-size:14px}.archive-games-metadata__total{margin:0;color:var(--text-muted);font-size:13px;font-variant-numeric:tabular-nums}.archive-games-metadata__pagination{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:10px;flex-wrap:wrap}.archive-games-metadata__pagination button{min-width:90px;padding:8px 14px;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:8px;cursor:pointer;font-size:14px;color:var(--text-primary);transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}.archive-games-metadata__pagination button:not(:disabled):hover{background:var(--accent-soft);border-color:var(--accent-primary);color:var(--accent-primary)}.archive-games-metadata__pagination button:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-soft);border-color:var(--accent-primary)}.archive-games-metadata__pagination button:disabled{opacity:.4;cursor:not-allowed}.archive-games-metadata__page-info{font-size:13px;color:var(--text-secondary);font-variant-numeric:tabular-nums}.archive-games-metadata__page-size{display:inline-flex;align-items:center;gap:8px;margin-left:auto;font-size:13px;color:var(--text-secondary)}.archive-games-metadata__page-size select{padding:4px 8px;border:1px solid var(--border-subtle);background:var(--bg-surface);border-radius:6px;font-size:13px;color:var(--text-primary)}.archive-games-filters__input--narrow{max-width:100px}.archive-games-filters__field--players{display:flex;flex-direction:column;gap:6px;min-width:240px}.archive-games-filters__chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px;order:2}.archive-games-filters__chip{display:inline-flex;align-items:center;gap:6px;padding:4px 6px 4px 10px;background:var(--accent-soft);border:1px solid var(--accent-soft-strong);border-radius:999px;font-size:13px;color:var(--accent-primary);font-weight:500}.archive-games-filters__chip-remove{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:none;background:transparent;color:var(--accent-primary);border-radius:50%;font-size:14px;line-height:1;cursor:pointer;transition:background-color .12s ease,color .12s ease}.archive-games-filters__chip-remove:hover{background:var(--accent-primary);color:var(--text-on-accent, #fff)}.archive-games-filters__chip-remove:focus-visible{outline:none;box-shadow:0 0 0 2px var(--accent-primary)}.archive-games-filters__chip-input--solo{width:100%;order:1}@media(max-width:600px){.archive-games-metadata__pagination{justify-content:center}.archive-games-metadata__page-size{margin-left:0}}.archive-lobby-page{max-width:1200px;margin:0 auto;padding:24px 20px 48px;display:flex;flex-direction:column;gap:20px}.archive-lobby__header h1{margin:0 0 4px;font-size:24px;font-weight:700}.archive-lobby__subtitle{margin:0;color:var(--text-secondary);font-size:14px}.archive-lobby__section-title{margin:0 0 8px;font-size:18px;font-weight:600}.archive-lobby__search-form{display:flex;flex-direction:column;gap:12px;padding:16px 18px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:12px}.archive-lobby__search-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;align-items:start}.archive-lobby__search-actions{display:flex;gap:10px;flex-wrap:wrap}.archive-lobby__search-submit{padding:10px 18px;background:var(--accent-primary);color:var(--text-on-accent, #fff);border:1px solid transparent;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:background-color .15s ease,box-shadow .15s ease}.archive-lobby__search-submit:hover{background:var(--accent-hover, var(--accent-primary))}.archive-lobby__search-submit:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.archive-lobby__search-reset{padding:10px 14px;background:transparent;border:1px solid var(--border-subtle);border-radius:8px;color:var(--text-primary);font-size:14px;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.archive-lobby__search-reset:hover{background:var(--bg-muted);border-color:var(--border-mid)}.archive-lobby__search-reset:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-soft);border-color:var(--accent-primary)}.archive-lobby__by-position{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;background:var(--accent-soft);border:1px solid var(--accent-primary);border-radius:12px;flex-wrap:wrap}.archive-lobby__by-position-text h2{margin:0 0 4px;font-size:16px;font-weight:600;color:var(--text-primary)}.archive-lobby__by-position-text p{margin:0;font-size:13px;color:var(--text-secondary)}.archive-lobby__by-position-cta{padding:10px 18px;background:var(--accent-primary);color:var(--text-on-accent, #fff);border-radius:8px;text-decoration:none;font-weight:600;font-size:14px;transition:background-color .15s ease,box-shadow .15s ease}.archive-lobby__by-position-cta:hover{background:var(--accent-hover, var(--accent-primary))}.archive-lobby__by-position-cta:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.archive-autocomplete{position:relative;display:flex;flex-direction:column;gap:4px}.archive-autocomplete__dropdown{position:absolute;top:100%;left:0;right:0;margin:4px 0 0;padding:4px 0;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:10px;list-style:none;z-index:60;max-height:280px;overflow-y:auto;box-shadow:0 12px 32px #00000038;animation:archive-autocomplete-in .14s ease-out;transform-origin:top center}@keyframes archive-autocomplete-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.archive-autocomplete__item{display:flex;flex-direction:column;align-items:stretch;gap:2px;padding:8px 12px;cursor:pointer;font-size:14px;color:var(--text-primary);transition:background-color .12s ease}.archive-autocomplete__item--active,.archive-autocomplete__item:hover{background:var(--accent-soft);color:var(--accent-primary)}.archive-autocomplete__label{font-weight:600;min-width:0;white-space:normal;overflow-wrap:break-word;word-break:normal;line-height:1.3}.archive-autocomplete__meta{font-size:12px;color:var(--text-secondary);font-variant-numeric:tabular-nums;line-height:1.2}.archive-autocomplete__item--active .archive-autocomplete__meta,.archive-autocomplete__item:hover .archive-autocomplete__meta{color:var(--accent-primary)}.archive-autocomplete__hint{padding:8px 12px;font-size:13px;color:var(--text-secondary)}.archive-autocomplete__hint--error{color:var(--danger)}@media(max-width:700px){.archive-lobby__by-position{flex-direction:column;align-items:flex-start}}.archive-player-profile-page{max-width:1200px;margin:0 auto;padding:24px 20px 48px;display:flex;flex-direction:column;gap:16px}.archive-player-profile-page__header{display:flex;flex-direction:column;gap:12px;padding:16px 18px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:12px}.archive-player-profile-page__title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.archive-player-profile-page__name{margin:0;font-size:24px;font-weight:700}.archive-player-profile-page__back{font-size:14px;color:var(--text-link, var(--accent-primary));text-decoration:none}.archive-player-profile-page__back:hover{text-decoration:underline}.archive-player-profile-page__stats{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;font-size:14px}.archive-player-profile-page__stats>div{display:flex;flex-direction:column;gap:2px}.archive-player-profile-page__stats dt{color:var(--text-secondary);font-size:12px;text-transform:uppercase;letter-spacing:.04em;margin:0}.archive-player-profile-page__stats dd{margin:0;font-size:18px;font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums}.archive-player-profile-page__by-color{display:flex;gap:16px;font-size:13px;color:var(--text-secondary);font-variant-numeric:tabular-nums}.archive-player-profile-page__by-result{display:flex;flex-direction:column;gap:6px}.archive-player-profile-page__by-result-bar{display:flex;width:100%;height:10px;border-radius:6px;overflow:hidden;background:var(--bg-muted)}.archive-player-profile-page__by-result-segment{display:block;height:100%}.archive-player-profile-page__by-result-segment--win{background:var(--success, #1f7a3a)}.archive-player-profile-page__by-result-segment--draw{background:var(--text-muted, #888)}.archive-player-profile-page__by-result-segment--loss{background:var(--danger, #c33)}.archive-player-profile-page__by-result-legend{display:flex;gap:16px;font-size:13px;color:var(--text-secondary);font-variant-numeric:tabular-nums;flex-wrap:wrap}.archive-player-profile-page__filters-row{display:flex;flex-direction:column;gap:8px}@media(max-width:600px){.archive-player-profile-page__stats{grid-template-columns:1fr 1fr}.archive-player-profile-page__name{font-size:20px}}.archive-game-page{max-width:1200px;margin:0 auto;padding:24px 20px 48px}.archive-game-page__header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}.archive-game-page__title{margin:0;font-size:22px;font-weight:700}.archive-game-page__back{font-size:14px;color:var(--text-link, var(--accent-primary));text-decoration:none}.archive-game-page__back:hover{text-decoration:underline}.archive-game-page__body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,380px);gap:24px;align-items:start}@media(max-width:900px){.archive-game-page__body{grid-template-columns:1fr}}.archive-game-page__board-col{display:flex;flex-direction:column;gap:12px;min-width:0}.archive-game-page__board{width:100%;max-width:560px;aspect-ratio:1 / 1;background:var(--bg-muted);border-radius:8px;overflow:hidden}.archive-game-page__nav{display:inline-flex;align-items:center;gap:8px;padding:6px 8px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:8px;width:max-content}.archive-game-page__nav button{min-width:36px;padding:6px 10px;background:transparent;border:1px solid transparent;border-radius:6px;font-size:14px;cursor:pointer;color:var(--text-primary)}.archive-game-page__nav button{transition:background-color .15s ease,color .15s ease,box-shadow .15s ease}.archive-game-page__nav button:not(:disabled):hover{background:var(--accent-soft);color:var(--accent-primary)}.archive-game-page__nav button:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-soft);border-color:var(--accent-primary)}.archive-game-page__nav button:disabled{opacity:.4;cursor:not-allowed}.archive-game-page__counter{font-variant-numeric:tabular-nums;font-size:13px;color:var(--text-secondary);padding:0 4px}.archive-game-page__side-col{display:flex;flex-direction:column;gap:16px;min-width:0}.archive-game-page__meta{margin:0;padding:12px 14px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:10px;display:flex;flex-direction:column;gap:6px;font-size:14px}.archive-game-page__meta-row{display:grid;grid-template-columns:100px 1fr;gap:12px}.archive-game-page__meta-row dt{color:var(--text-secondary);font-weight:500;margin:0}.archive-game-page__meta-row dd{margin:0;color:var(--text-primary);word-break:break-word}.archive-game-page__elo{color:var(--text-secondary)}.archive-game-page__moves{list-style:none;margin:0;padding:12px 14px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:10px;display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;font-size:14px;max-height:280px;overflow-y:auto}.archive-game-page__move{display:inline-flex;align-items:center;gap:4px}.archive-game-page__move-number{color:var(--text-muted);font-variant-numeric:tabular-nums}.archive-game-page__move-btn{background:transparent;border:1px solid transparent;padding:2px 6px;border-radius:4px;cursor:pointer;font:inherit;color:var(--text-primary)}.archive-game-page__move-btn:hover{background:var(--bg-muted)}.archive-game-page__move--current .archive-game-page__move-btn{background:var(--accent-soft);color:var(--accent-primary);font-weight:600}.archive-game-page__moves-empty{color:var(--text-muted);font-style:italic}.archive-game-page__actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.archive-game-page__action{padding:8px 14px;border:1px solid var(--border-subtle);background:var(--bg-input);color:var(--text-primary);border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}.archive-game-page__action:hover{background:var(--accent-soft);border-color:var(--accent-primary);color:var(--accent-primary)}.archive-game-page__action:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-soft);border-color:var(--accent-primary)}.archive-game-page__action--primary{background:var(--accent-primary);color:var(--text-on-accent, #fff);border-color:transparent}.archive-game-page__action--primary:hover{background:var(--accent-hover, var(--accent-primary));color:var(--text-on-accent, #fff);border-color:transparent}.archive-game-page__action-msg{font-size:13px;color:var(--text-secondary)}.archive-other-games{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:10px}.archive-other-games__toggle{display:flex;align-items:center;gap:8px;width:100%;padding:12px 14px;background:transparent;border:none;cursor:pointer;font-size:14px;color:var(--text-primary);text-align:left}.archive-other-games__toggle{transition:background-color .15s ease;border-radius:10px}.archive-other-games__toggle:hover{background:var(--bg-muted)}.archive-other-games__toggle:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--accent-primary)}.archive-other-games__chevron{font-size:12px;color:var(--text-secondary);width:12px;text-align:center}.archive-other-games__body{padding:0 14px 12px;display:flex;flex-direction:column;gap:8px}.archive-other-games__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.archive-other-games__loading,.archive-other-games__empty,.archive-other-games__error{margin:0;font-size:13px;color:var(--text-secondary)}.archive-other-games__error{color:var(--danger)}.archive-other-games__footer{display:flex;justify-content:flex-end}.archive-other-games__see-all{font-size:13px;color:var(--text-link, var(--accent-primary));text-decoration:none}.archive-other-games__see-all:hover{text-decoration:underline}@media(max-width:1024px){.archive-lobby-page,.archive-games-metadata,.archive-player-profile-page,.archive-game-page{padding:20px 16px 40px}.archive-lobby__search-fields{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.archive-game-page__body{grid-template-columns:minmax(0,1fr) minmax(0,320px);gap:18px}}@media(max-width:760px){.archive-lobby-page,.archive-games-metadata,.archive-player-profile-page,.archive-game-page{padding:14px 12px 32px;gap:14px}.archive-lobby__header h1{font-size:20px}.archive-lobby__search-form{padding:12px}.archive-lobby__search-fields{grid-template-columns:1fr;gap:10px}.archive-lobby__search-actions{flex-direction:column;align-items:stretch}.archive-lobby__search-submit,.archive-lobby__search-reset{width:100%;text-align:center}.archive-player-profile-page__header{padding:12px}.archive-game-page__body{grid-template-columns:1fr;gap:16px}.archive-game-page__board-col{align-items:center}.archive-game-page__board{max-width:100%}.archive-game-page__nav{width:100%;justify-content:center}.archive-game-page__nav button{min-width:44px;min-height:44px}.archive-game-page__counter{font-size:14px}.archive-game-page__meta-row{grid-template-columns:90px 1fr;gap:8px}.archive-game-page__actions{flex-direction:column;align-items:stretch}.archive-game-page__action{width:100%;text-align:center;min-height:44px}.archive-game-page__action-msg{text-align:center}.archive-game-page__moves{max-height:220px;padding:10px 12px}.archive-other-games__toggle{min-height:44px}.archive-games-header__board{max-width:220px}.archive-games-filters__field{flex:1 1 130px}.archive-games-metadata__pagination{gap:8px}.archive-games-metadata__pagination button{min-width:0;flex:1 1 100px;min-height:44px}.archive-games-metadata__page-size{width:100%;justify-content:space-between;margin-left:0}}@media(prefers-reduced-motion:reduce){.archive-games-list__skeleton-row,.archive-skeleton-block,.archive-autocomplete__dropdown{animation:none}}.lessons-page,.course-page,.lesson-page{max-width:1040px;margin:0 auto;padding:24px 20px 48px;color:var(--text-primary);box-sizing:border-box;min-width:0;width:100%;overflow-x:clip;overflow-y:visible}.lessons-page h1,.course-page h1,.lesson-page h1{margin:0 0 8px;font-size:28px;font-weight:700;line-height:1.2}.lessons-page h2,.course-page h2{margin:0 0 16px;font-size:20px;font-weight:600;line-height:1.3}.lessons-page h3,.course-page h3{margin:0 0 6px;font-size:17px;font-weight:600;line-height:1.3}.lessons-header{margin-bottom:28px}.lessons-subtitle{margin:0;color:var(--text-secondary);font-size:15px}.lessons-empty,.lessons-page .loading,.course-page .loading,.lesson-page .loading{padding:32px 20px;text-align:center;color:var(--text-secondary);background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:10px}.lessons-page .error,.course-page .error,.lesson-page .error{padding:16px 20px;color:var(--danger);background:var(--danger-soft);border:1px solid var(--danger);border-radius:8px}.lessons-level-section{margin-bottom:28px}.lessons-level-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.lessons-recommended-badge{display:inline-flex;align-items:center;padding:3px 10px;font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--text-on-accent);background:var(--accent-primary);border-radius:999px;white-space:nowrap}.lessons-course-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.lessons-course-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:12px;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease;overflow:hidden}.lessons-course-card:hover{border-color:var(--border-accent);transform:translateY(-2px);box-shadow:var(--shadow-md)}.lessons-course-link{display:flex;flex-direction:column;gap:8px;padding:18px 18px 16px;color:inherit;text-decoration:none}.lessons-course-link:hover,.lessons-course-link:focus-visible{text-decoration:none;outline:none}.lessons-course-title{font-size:18px;font-weight:600;color:var(--text-primary);margin:0}.lessons-course-description{margin:0;color:var(--text-secondary);font-size:14px;line-height:1.45;min-height:2.9em}.lessons-course-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:10px;font-size:13px;color:var(--text-muted)}.lessons-course-progress{font-weight:600;color:var(--accent-primary)}.course-header{margin-bottom:24px}.course-back-link,.lesson-back-link{display:inline-flex;align-items:center;gap:4px;margin-bottom:12px;font-size:14px;color:var(--text-secondary);text-decoration:none}.course-back-link:hover,.lesson-back-link:hover{color:var(--accent-primary)}.course-description{margin:0 0 16px;color:var(--text-secondary);font-size:15px;line-height:1.5}.course-lesson-progress{grid-column:1 / -1;display:flex;align-items:center;gap:8px;margin-top:4px;width:100%}.course-lesson-progress-bar{position:relative;flex:1;height:6px;background:var(--bg-muted);border-radius:999px;overflow:hidden;min-width:0}.course-lesson-progress-fill{display:block;height:100%;background:linear-gradient(90deg,var(--accent-primary),var(--accent-hover));border-radius:inherit;transition:width .3s ease}.course-progress,.lesson-progress{display:flex;align-items:center;gap:12px;margin-top:10px}.lesson-progress-sticky{position:sticky;top:48px;z-index:50;background:var(--bg-base, var(--bg-surface));border-bottom:1px solid var(--border-subtle);padding:8px 0;margin:0 0 16px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.app-body>.main:has(.lesson-page),.app-body>.main:has(.user-lesson-page){overflow-y:visible}.lesson-progress-sticky>.lesson-progress,.lesson-progress-sticky>.user-lesson-page__progress{margin:0}.course-progress-bar,.lesson-progress-bar{position:relative;flex:1;height:8px;background:var(--bg-muted);border-radius:999px;overflow:hidden;min-width:0}.course-progress-fill,.lesson-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent-primary),var(--accent-hover));border-radius:inherit;transition:width .3s ease}.course-progress-text,.lesson-progress-text{font-variant-numeric:tabular-nums;font-size:13px;color:var(--text-secondary);white-space:nowrap}.course-active-hero{display:flex;flex-direction:column;gap:12px;padding:24px 28px;margin:0 0 18px;background:linear-gradient(135deg,var(--accent-primary, #4f7cff) 0%,var(--accent-primary-hover, #3d63cc) 100%);color:var(--text-on-accent, #fff);border-radius:16px;box-shadow:0 8px 24px #0000002e}.course-active-hero--completed{background:linear-gradient(135deg,var(--success, #1f7a3a) 0%,color-mix(in srgb,var(--success, #1f7a3a) 75%,#000) 100%)}.course-active-hero__eyebrow{font-size:13px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;opacity:.85}.course-active-hero__title{margin:0;display:flex;flex-direction:column;gap:4px;font-size:26px;font-weight:700;line-height:1.2}.course-active-hero__lesson-position{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;opacity:.85}.course-active-hero__lesson-title{font-size:26px;font-weight:700}.course-active-hero__subtitle{margin:0;font-size:15px;opacity:.92;line-height:1.5}.course-active-hero__progress{display:flex;flex-direction:column;gap:6px}.course-active-hero__progress-bar{width:100%;height:8px;background:#ffffff40;border-radius:999px;overflow:hidden}.course-active-hero__progress-fill{display:block;height:100%;background:var(--text-on-accent, #fff);border-radius:999px;transition:width .18s ease}.course-active-hero__progress-text{font-size:13px;font-variant-numeric:tabular-nums;opacity:.9}.course-active-hero__cta{align-self:flex-start;padding:12px 24px;background:var(--text-on-accent, #fff);color:var(--accent-primary, #3d63cc);border-radius:10px;font-weight:700;font-size:16px;text-decoration:none;transition:transform .12s ease,box-shadow .12s ease;margin-top:4px}.course-active-hero__cta:hover{transform:translateY(-1px);box-shadow:0 6px 18px #00000038}.course-active-hero__badge{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:#fff3;font-size:18px;font-weight:700}@media(max-width:760px){.course-active-hero{padding:18px;border-radius:12px}.course-active-hero__title,.course-active-hero__lesson-title{font-size:20px}.course-active-hero__cta{align-self:stretch;text-align:center;padding:14px 20px;font-size:15px}}.course-lesson-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;counter-reset:lesson}.course-lesson-item{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:10px;transition:border-color .15s ease,background .15s ease}.course-lesson-item:hover{border-color:var(--border-accent)}.course-lesson-link{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:12px;padding:14px 16px;color:inherit;text-decoration:none}.course-lesson-order{font-size:14px;font-weight:700;color:var(--text-muted);font-variant-numeric:tabular-nums;min-width:1.8em;text-align:right}.course-lesson-title{font-size:15px;font-weight:500;color:var(--text-primary);min-width:0;overflow-wrap:anywhere}.course-lesson-state{padding:3px 10px;font-size:12px;font-weight:600;border-radius:999px;white-space:nowrap;background:var(--bg-muted);color:var(--text-secondary);border:1px solid var(--border-subtle)}.course-lesson-state--in_progress{color:var(--accent-primary);background:var(--accent-soft);border-color:var(--accent-primary)}.course-lesson-state--completed{color:var(--success);background:var(--success-soft);border-color:var(--success)}.course-lesson-state--failed{color:var(--danger);background:var(--danger-soft);border-color:var(--danger)}.course-lesson-step-count{font-size:12px;color:var(--text-muted);white-space:nowrap;font-variant-numeric:tabular-nums}.course-lesson-item--completed{border-left:3px solid var(--success)}.course-lesson-item--in_progress{border-left:3px solid var(--accent-primary)}.course-lesson-item--failed{border-left:3px solid var(--danger)}.lesson-header{margin-bottom:20px}.lesson-summary{margin:0;color:var(--text-secondary);font-size:15px;line-height:1.5}.lesson-step-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px;min-width:0;max-width:100%;width:100%}.lesson-step-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0 8px;padding:0 4px}.lesson-step-nav__btn{min-width:96px;padding:8px 14px;border:1px solid var(--border-subtle);background:var(--bg-surface);border-radius:8px;cursor:pointer;font-size:14px;color:var(--text-primary)}.lesson-step-nav__btn:disabled{opacity:.4;cursor:not-allowed}.lesson-step-nav__btn:not(:disabled):hover{background:var(--bg-muted)}.lesson-step-nav__counter{font-variant-numeric:tabular-nums;font-size:13px;color:var(--text-secondary)}@media(max-width:760px){.lesson-step-nav{gap:8px}.lesson-step-nav__btn{min-width:0;flex:1;padding:8px 10px;font-size:13px}}.lesson-step{position:relative;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:12px;padding:18px 20px;scroll-margin-top:100px;transition:border-color .15s ease,box-shadow .15s ease;min-width:0;overflow-x:hidden}.lesson-step[data-step-state=in-progress],.lesson-step[data-step-state=in_progress]{border-color:var(--accent-primary);box-shadow:0 0 0 1px var(--accent-soft)}.lesson-step[data-step-state=done]{border-color:var(--success);background:linear-gradient(180deg,var(--success-soft),var(--bg-surface) 40%)}.lesson-step[data-step-state=failed]{border-color:var(--danger);background:linear-gradient(180deg,var(--danger-soft),var(--bg-surface) 40%)}.lesson-step:after{content:"";position:absolute;top:14px;right:14px;width:14px;height:14px;border-radius:50%;background:var(--bg-muted);border:2px solid var(--border-mid)}.lesson-step[data-step-state=in-progress]:after,.lesson-step[data-step-state=in_progress]:after{background:var(--accent-primary);border-color:var(--accent-primary);box-shadow:0 0 0 4px var(--accent-soft)}.lesson-step[data-step-state=done]:after{background:var(--success);border-color:var(--success);box-shadow:0 0 0 4px var(--success-soft)}.lesson-step[data-step-state=failed]:after{background:var(--danger);border-color:var(--danger);box-shadow:0 0 0 4px var(--danger-soft)}.lesson-step__header{display:flex;align-items:center;gap:10px;margin-bottom:12px;padding-right:32px}.lesson-step-order{font-size:13px;font-weight:700;color:var(--text-muted);font-variant-numeric:tabular-nums}.lesson-step-type{padding:2px 10px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--accent-primary);background:var(--accent-soft);border-radius:999px}.lesson-text-step{display:block}.lesson-text-step>*+*{margin-top:14px}.lesson-text-step:after{content:"";display:block;clear:both}.lesson-text-step__md{color:var(--text-primary);font-size:15px;line-height:1.6}.lesson-text-step__md p{margin:0 0 10px}.lesson-text-step__md p:last-child{margin-bottom:0}.lesson-text-step__md strong{color:var(--text-primary);font-weight:700}.lesson-text-step__md a{color:var(--text-link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}.lesson-text-step__md code{padding:1px 6px;font-size:.92em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:4px}.lesson-text-step__md ul,.lesson-text-step__md ol{margin:0 0 10px;padding-left:22px}.lesson-text-step__md li{margin-bottom:4px}.lesson-text-step__diagram{margin:0 18px 12px 0;float:left;clear:left;width:320px;max-width:100%;box-sizing:border-box}.lesson-text-step__actions{clear:both}.lesson-text-step__diagram>:first-child{width:100%!important;max-width:100%!important;aspect-ratio:1 / 1;box-sizing:border-box}.lesson-text-step__caption{margin-top:6px;font-size:13px;color:var(--text-secondary);font-style:italic}.lesson-text-step__i18n-stub{margin:0;color:var(--text-muted);font-style:italic}.lesson-text-step__actions,.lesson-quiz-step__actions,.lesson-puzzle-step__actions,.lesson-video-step__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.lesson-video-step{display:flex;flex-direction:column;gap:12px}.lesson-video-step__title{margin:0;font-size:16px;font-weight:600;color:var(--text-primary)}.lesson-video-step__frame{position:relative;width:100%;aspect-ratio:16 / 9;background:#000;border-radius:10px;overflow:hidden;border:1px solid var(--border-subtle)}.lesson-video-step__frame iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0;display:block}.lesson-video-step__invalid{padding:14px 16px;background:var(--danger-soft);border:1px solid var(--danger);border-radius:10px;color:var(--text-primary);font-size:14px}.lesson-video-step__next{padding:8px 18px;border-radius:8px;border:1px solid var(--border-subtle);background:var(--accent);color:var(--accent-contrast, #fff);font-weight:600;font-size:14px;cursor:pointer;transition:filter .15s ease}.lesson-video-step__next:hover{filter:brightness(1.05)}.reviews-due-block{background:var(--bg-card);border:1px solid var(--border-subtle);border-left:4px solid var(--accent);border-radius:10px;padding:14px 16px;margin-bottom:16px;display:flex;flex-direction:column;gap:12px}.reviews-due-block__header{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}.reviews-due-block__title{margin:0;font-size:16px;font-weight:600;color:var(--text-primary)}.reviews-due-block__count{font-size:13px;color:var(--text-secondary);font-variant-numeric:tabular-nums}.reviews-due-block__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.reviews-due-block__item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:8px}.reviews-due-block__item-text{display:flex;flex-direction:column;gap:2px;min-width:0}.reviews-due-block__course{font-size:12px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em}.reviews-due-block__lesson{font-weight:600;color:var(--text-primary);font-size:15px}.reviews-due-block__meta{font-size:13px;color:var(--text-secondary)}.reviews-due-block__cta{padding:6px 14px;border-radius:8px;background:var(--accent);color:var(--accent-contrast, #fff);font-weight:600;font-size:14px;text-decoration:none;transition:filter .15s ease;white-space:nowrap}.reviews-due-block__cta:hover{filter:brightness(1.05)}.lesson-opening-step{display:grid;grid-template-columns:minmax(280px,1fr) 260px;gap:16px;align-items:start}.lesson-opening-step__board{width:100%;max-width:480px}.lesson-opening-step__side{display:flex;flex-direction:column;gap:12px;padding:10px 12px;background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:8px}.lesson-opening-step__status{font-size:14px;font-weight:600;color:var(--text-primary)}.lesson-opening-step[data-status=line_complete] .lesson-opening-step__status{color:var(--success, #1f7a3a)}.lesson-opening-step[data-status=engine_lost] .lesson-opening-step__status,.lesson-opening-step[data-status=deviated_correction] .lesson-opening-step__status{color:var(--danger, #ca3431)}.lesson-opening-step[data-status=engine_punish] .lesson-opening-step__status{color:var(--warning, #9a6c14)}.lesson-opening-step__correction{padding:8px 10px;background:var(--warning-soft, #fff3d0);border:1px solid var(--warning, #9a6c14);border-radius:6px;font-size:14px}.lesson-opening-step__stats{font-size:13px;color:var(--text-secondary);font-variant-numeric:tabular-nums}.lesson-opening-step__controls{display:flex;gap:8px;flex-wrap:wrap}.lesson-opening-step__retry,.lesson-opening-step__restart,.lesson-opening-step__next{padding:6px 12px;border-radius:6px;font-weight:600;font-size:13px;cursor:pointer;border:1px solid var(--border-subtle);background:var(--bg-card);color:var(--text-primary)}.lesson-opening-step__next{background:var(--accent);color:var(--accent-contrast, #fff);border-color:var(--accent)}@media(max-width:640px){.lesson-opening-step{grid-template-columns:1fr}}.lesson-endgame-step{display:grid;grid-template-columns:minmax(280px,1fr) 260px;gap:16px;align-items:start}.lesson-endgame-step__board{width:100%;max-width:480px}.lesson-endgame-step__side{display:flex;flex-direction:column;gap:12px;padding:10px 12px;background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:8px}.lesson-endgame-step__status{font-size:14px;font-weight:600;color:var(--text-primary)}.lesson-endgame-step[data-status=player_won] .lesson-endgame-step__status{color:var(--success, #1f7a3a)}.lesson-endgame-step[data-status=engine_won] .lesson-endgame-step__status,.lesson-endgame-step[data-status=max_moves] .lesson-endgame-step__status,.lesson-endgame-step[data-status=resigned] .lesson-endgame-step__status{color:var(--danger, #ca3431)}.lesson-endgame-step__counter{font-size:13px;color:var(--text-secondary);font-variant-numeric:tabular-nums}.lesson-endgame-step__history h4{margin:0 0 6px;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.lesson-endgame-step__history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;max-height:240px;overflow:auto;font-variant-numeric:tabular-nums}.lesson-endgame-step__history-list button{background:none;border:0;text-align:left;cursor:pointer;color:var(--text-link);font:inherit;padding:2px 6px;border-radius:4px}.lesson-endgame-step__history-list button:hover{background:var(--bg-card)}.lesson-endgame-step__history-item--black button{color:var(--text-primary)}.lesson-endgame-step__controls{display:flex;gap:8px;flex-wrap:wrap}.lesson-endgame-step__resign,.lesson-endgame-step__hint,.lesson-endgame-step__restart,.lesson-endgame-step__next{padding:6px 12px;border-radius:6px;font-weight:600;font-size:13px;cursor:pointer;border:1px solid var(--border-subtle);background:var(--bg-card);color:var(--text-primary)}.lesson-endgame-step__resign{color:var(--danger, #ca3431);border-color:var(--danger, #ca3431)}.lesson-endgame-step__next{background:var(--accent);color:var(--accent-contrast, #fff);border-color:var(--accent)}@media(max-width:640px){.lesson-endgame-step{grid-template-columns:1fr}}.lesson-editor{display:flex;flex-direction:column;gap:16px;padding:16px;max-width:960px;margin:0 auto}.lesson-editor--denied{padding:32px;text-align:center}.lesson-editor__header h1{margin:6px 0}.lesson-editor__subtitle{margin:0;color:var(--text-secondary);font-size:14px}.lesson-editor__back{color:var(--text-link);font-size:14px;text-decoration:none}.lesson-editor__course,.lesson-editor__lessons,.lesson-editor__lesson-editor{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:10px;padding:12px 14px}.lesson-editor__course-fields,.lesson-editor__lesson-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.lesson-editor__course-fields label,.lesson-editor__lesson-fields label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-secondary)}.lesson-editor__section-header{display:flex;justify-content:space-between;align-items:center;margin-top:10px}.lesson-editor__lesson-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.lesson-editor__lesson-item{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:8px}.lesson-editor__lesson-item--active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.lesson-editor__lesson-select{flex:1;text-align:left;background:none;border:0;cursor:pointer;color:var(--text-primary);font:inherit;padding:4px 0}.lesson-editor__lesson-remove,.editor-step__remove{color:var(--danger, #ca3431);background:none;border:1px solid var(--danger, #ca3431);padding:2px 8px;border-radius:6px;cursor:pointer}.lesson-editor__step-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.editor-step{background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.editor-step__header{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.editor-step__meta{display:flex;gap:12px;align-items:center;font-weight:600}.editor-step__actions{display:flex;gap:4px}.editor-step__fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}.editor-step__fields label{display:flex;flex-direction:column;gap:3px;font-size:13px;color:var(--text-secondary)}.editor-step__fields textarea{font-family:JetBrains Mono,Menlo,monospace;font-size:13px}.editor-step__body{grid-column:1 / -1;display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-secondary)}.editor-step__body-label{font-weight:500}.editor-md{display:flex;flex-direction:column;border:1px solid var(--border-subtle);border-radius:6px;background:var(--bg-card);overflow:hidden}.editor-md__toolbar{display:flex;flex-wrap:nowrap;gap:4px;padding:6px;border-bottom:1px solid var(--border-subtle);background:var(--bg-muted);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.editor-md__btn{flex:0 0 auto;min-width:32px;height:28px;padding:0 8px;border:1px solid var(--border-subtle);border-radius:4px;background:var(--bg-card);color:var(--text-primary);font-size:12px;font-weight:600;font-family:JetBrains Mono,Menlo,monospace;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.editor-md__btn:hover{background:var(--bg-muted);border-color:var(--accent, #4d8aff)}.editor-md__btn:active{transform:translateY(1px)}.editor-md__textarea{width:100%;min-height:30em;max-height:60vh;padding:10px;border:0;outline:none;resize:vertical;font-family:JetBrains Mono,Menlo,monospace;font-size:13px;line-height:1.5;background:var(--bg-card);color:var(--text-primary);box-sizing:border-box}.editor-md__textarea:focus{outline:2px solid var(--accent, #4d8aff);outline-offset:-2px}@media(max-width:640px){.editor-md__toolbar{padding:4px;gap:3px}.editor-md__btn{min-width:28px;height:26px;padding:0 6px;font-size:11px}.editor-md__textarea{min-height:24em;max-height:50vh;font-size:12px}}.editor-diagrams,.editor-quiz-questions{grid-column:1 / -1;display:flex;flex-direction:column;gap:8px;border-top:1px dashed var(--border-subtle);padding-top:8px}.editor-quiz-question,.editor-quiz-option{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:6px;padding:6px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px}.editor-diagram{display:flex;flex-direction:column;gap:6px;padding:6px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:6px}.editor-diagram--collapsed{padding:4px 6px}.editor-diagram__header{display:flex;align-items:center;gap:6px}.editor-diagram__toggle{background:transparent;border:none;cursor:pointer;font-size:13px;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-primary)}.editor-diagram__title{font-weight:600;font-size:13px}.editor-diagram__ref{font-family:JetBrains Mono,Menlo,monospace;font-size:11px;background:var(--bg-muted);border-radius:4px;padding:1px 6px;color:var(--text-secondary, var(--text-primary))}.editor-diagram__spacer{flex:1 1 auto}.editor-diagram__icon-btn{background:transparent;border:1px solid var(--border-subtle);border-radius:4px;padding:2px 6px;cursor:pointer;font-size:13px;color:var(--text-primary)}.editor-diagram__icon-btn:hover:not(:disabled){background:var(--bg-muted)}.editor-diagram__icon-btn:disabled{opacity:.4;cursor:not-allowed}.editor-diagram__icon-btn--danger{color:var(--danger, #ca3431);border-color:var(--danger, #ca3431)}.editor-diagram__body{display:flex;flex-direction:column;gap:8px}.editor-diagrams__warning{background:var(--warning-bg, rgba(252, 220, 88, .18));border:1px solid var(--warning, #d4a017);color:var(--warning-text, #6b4f00);padding:6px 8px;border-radius:6px;font-size:12px;margin:0}.editor-diagram__fen-label{grid-column:1 / -1}.editor-diagram__fen-row{display:flex;gap:6px;align-items:stretch}.editor-diagram__fen-row input{flex:1 1 auto;min-width:0;font-family:JetBrains Mono,Menlo,monospace;font-size:12px}.editor-diagram__edit-board{flex:0 0 auto;padding:4px 10px;border:1px solid var(--border-subtle);border-radius:4px;background:var(--bg-muted);color:var(--text-primary);font-size:12px;cursor:pointer;white-space:nowrap}.editor-diagram__edit-board:hover{background:var(--accent, #4d8aff);color:var(--accent-contrast, #fff);border-color:var(--accent, #4d8aff)}@media(max-width:640px){.editor-diagram__fen-row{flex-direction:column}.editor-diagram__edit-board{align-self:flex-start}}.user-course-editor__save-error{position:fixed;bottom:16px;left:50%;transform:translate(-50%);z-index:200;max-width:min(640px,calc(100vw - 32px));display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:var(--danger-soft, rgba(202, 52, 49, .1));border:1px solid var(--danger, #ca3431);border-radius:6px;color:var(--danger, #ca3431);font-size:13px;box-shadow:0 6px 20px #00000026}.user-course-editor__save-error button{background:transparent;border:0;color:inherit;cursor:pointer;font-size:14px;padding:2px 6px}.custom-puzzle-list__empty-hint{margin:0;padding:10px 12px;font-size:13px;color:var(--text-secondary);background:var(--bg-muted);border:1px dashed var(--border-subtle);border-radius:6px}.discover-courses-page{max-width:1100px;margin:0 auto;padding:24px 20px 80px}.discover-courses-page__breadcrumb{font-size:13px;color:var(--text-secondary);margin-bottom:8px}.discover-courses-page__breadcrumb a{color:var(--accent, #4d8aff);text-decoration:none}.discover-courses-page__sep{margin:0 6px}.discover-courses-page__header h1{margin:0;font-size:26px}.discover-courses-page__subtitle{margin:6px 0 16px;color:var(--text-secondary)}.community-strip-block{margin:16px 0}.community-strip-block__header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.community-strip-block__header h2{margin:0;font-size:18px}.community-strip-block__view-all{font-size:13px;color:var(--accent, #4d8aff);text-decoration:none;white-space:nowrap}.community-strip-block__view-all:hover{text-decoration:underline}.community-strip-block__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.community-strip-block__card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px}.community-strip-block__card:hover{border-color:var(--accent, #4d8aff)}.community-strip-block__link{display:block;padding:10px 12px;text-decoration:none;color:inherit}.community-strip-block__card-title{margin:0;font-size:14px;font-weight:600;line-height:1.3}.community-strip-block__badge-new{flex:0 0 auto;font-size:10px;font-weight:700;letter-spacing:.5px;color:var(--success-contrast, #fff);background:var(--success, #2e7d32);border-radius:999px;padding:1px 6px}.community-strip-block__card-footer{margin-top:4px;font-size:12px;color:var(--text-secondary)}@media(max-width:640px){.community-strip-block__list{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));overflow-x:auto;grid-auto-flow:column;grid-auto-columns:70%;grid-template-columns:none;-webkit-overflow-scrolling:touch;padding-bottom:4px}}.curriculum-pillar-block{margin:24px 0;padding:16px 0;border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle)}.curriculum-pillar-block__header{margin-bottom:12px}.curriculum-pillar-block__title{margin:0;font-size:20px;font-weight:700}.curriculum-pillar-block__subtitle{margin:4px 0 0;color:var(--text-secondary);font-size:14px}.curriculum-pillar-block--loading{min-height:200px}.curriculum-pillar-block__skeleton-title,.curriculum-pillar-block__skeleton-row{background:var(--bg-muted);border-radius:6px}.curriculum-pillar-block__skeleton-title{width:40%;height:24px;margin-bottom:12px}.curriculum-pillar-block__skeleton-row{width:100%;height:80px;margin-bottom:8px}.lessons-hero{display:flex;flex-direction:column;gap:8px;padding:20px 24px;margin:16px 0;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:12px}.lessons-hero__eyebrow{font-size:12px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--text-secondary)}.lessons-hero__title{margin:0;font-size:22px;font-weight:700;line-height:1.25;color:var(--text-primary)}.lessons-hero__subtitle{margin:0;font-size:14px;color:var(--text-secondary)}.lessons-hero__progress{display:flex;flex-direction:column;gap:4px;margin-top:8px;position:relative;height:22px;background:var(--bg-muted);border-radius:999px;overflow:hidden}.lessons-hero__progress-bar{position:absolute;inset:0 auto 0 0;background:var(--accent, #4d8aff);border-radius:999px;transition:width .24s ease}.lessons-hero__progress-text{position:relative;z-index:1;text-align:center;font-size:12px;line-height:22px;color:var(--text-primary);font-variant-numeric:tabular-nums}.lessons-hero__cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px}.lessons-hero__cta{display:inline-flex;align-items:center;justify-content:center;margin-top:8px;padding:10px 18px;background:var(--accent, #4d8aff);color:var(--accent-contrast, #fff);font-weight:600;border:1px solid var(--accent, #4d8aff);border-radius:8px;text-decoration:none;align-self:flex-start}.lessons-hero__cta:hover{background:var(--accent-hover, #3970d8)}.lessons-hero__cta--secondary{background:transparent;color:var(--accent, #4d8aff)}.lessons-hero__link{font-size:13px;color:var(--accent, #4d8aff);text-decoration:none}.lessons-hero__link:hover{text-decoration:underline}.lessons-hero--loading{min-height:180px}.lessons-hero__skeleton-block,.lessons-hero__skeleton-line,.lessons-hero__skeleton-cta{background:var(--bg-muted);border-radius:6px}.lessons-hero__skeleton-block{width:80px;height:16px}.lessons-hero__skeleton-line{width:60%;height:24px;margin-top:8px}.lessons-hero__skeleton-line--short{width:35%;height:14px}.lessons-hero__skeleton-cta{width:140px;height:38px;margin-top:10px}.latest-courses-block{margin:16px 0}.latest-courses-block__header{margin-bottom:8px}.latest-courses-block__header h2{margin:0;font-size:18px}.latest-courses-block__grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.latest-courses-block__card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;transition:border-color .12s ease}.latest-courses-block__card:hover{border-color:var(--accent, #4d8aff)}.latest-courses-block__link{display:block;padding:12px;color:inherit;text-decoration:none}.latest-courses-block__card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.latest-courses-block__card-title{margin:0;font-size:15px;font-weight:600;line-height:1.3}.latest-courses-block__badge-new{flex:0 0 auto;font-size:11px;font-weight:700;letter-spacing:.5px;color:var(--success-contrast, #fff);background:var(--success, #2e7d32);border-radius:999px;padding:2px 8px}.latest-courses-block__card-description{margin:6px 0 8px;font-size:13px;color:var(--text-secondary);line-height:1.45}.latest-courses-block__card-footer{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--text-secondary)}.latest-courses-block__card-author{font-style:italic}.course-authors-block{margin:16px 0}.course-authors-block__header{margin-bottom:8px}.course-authors-block__header h2{margin:0;font-size:18px}.course-authors-block__grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.course-authors-block__card{display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px}.course-authors-block__card-main{display:flex;gap:10px;align-items:center}.course-authors-block__avatar{flex:0 0 auto;width:36px;height:36px;border-radius:50%;overflow:hidden;background:var(--bg-muted);display:flex;align-items:center;justify-content:center}.course-authors-block__avatar img{width:100%;height:100%;object-fit:cover}.course-authors-block__avatar-fallback{font-size:16px;font-weight:600;color:var(--text-primary)}.course-authors-block__info{display:flex;flex-direction:column;gap:2px;min-width:0}.course-authors-block__username{font-weight:600;font-size:14px;color:var(--text-primary);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.course-authors-block__username:hover{color:var(--accent, #4d8aff)}.course-authors-block__count{font-size:12px;color:var(--text-secondary)}.course-authors-block__teaser{font-size:12px;color:var(--text-secondary);text-decoration:none;border-top:1px dashed var(--border-subtle);padding-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.course-authors-block__teaser:hover{color:var(--accent, #4d8aff)}.course-authors-block__footer{display:flex;justify-content:flex-end;margin-top:10px}.course-authors-block__all-link{font-size:13px;color:var(--accent, #4d8aff);text-decoration:none}.course-authors-block__all-link:hover{text-decoration:underline}@media(max-width:640px){.latest-courses-block__grid,.course-authors-block__grid{grid-template-columns:1fr}}.players-authors-tab{display:flex;flex-direction:column;gap:12px}.players-authors-tab__header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.players-authors-tab__sort{display:inline-flex;border:1px solid var(--border-subtle);border-radius:6px;overflow:hidden}.players-authors-tab__sort-btn{padding:6px 12px;border:0;background:transparent;color:var(--text-primary);font-size:13px;cursor:pointer}.players-authors-tab__sort-btn.active{background:var(--tab-active-bg);color:var(--tab-active-fg)}.players-authors-tab__total{font-size:12px;color:var(--text-secondary)}.players-authors-tab__avatar{display:inline-flex;width:28px;height:28px;border-radius:50%;overflow:hidden;background:var(--bg-muted);align-items:center;justify-content:center;margin-right:8px;vertical-align:middle}.players-authors-tab__avatar img{width:100%;height:100%;object-fit:cover}.players-authors-tab__avatar-fallback{font-size:13px;font-weight:600}.players-authors-tab__count{font-variant-numeric:tabular-nums}.players-authors-tab__error{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:var(--danger-soft, rgba(202, 52, 49, .1));border:1px solid var(--danger, #ca3431);border-radius:6px;color:var(--danger, #ca3431)}.players-authors-tab__sentinel td{text-align:center;color:var(--text-secondary);font-size:12px;padding:8px}.custom-puzzle-list{grid-column:1 / -1;display:flex;flex-direction:column;gap:12px}.custom-puzzle-list__footer{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.custom-puzzle-list__limit{font-size:12px;color:var(--text-secondary)}.custom-puzzle-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:10px}.custom-puzzle-card__header{display:flex;align-items:center;justify-content:space-between;gap:10px}.custom-puzzle-card__title{margin:0;font-size:15px;font-weight:600}.custom-puzzle-card__delete{font-size:12px;color:var(--danger, #ca3431);background:transparent;border:1px solid var(--danger, #ca3431);border-radius:4px;padding:4px 8px;cursor:pointer}.custom-puzzle-card__mode-toggle{display:flex;gap:12px;font-size:13px}.custom-puzzle-card__mode-toggle label{display:inline-flex;align-items:center;gap:4px;cursor:pointer}.custom-puzzle-card__fen-label{display:flex;flex-direction:column;gap:4px;font-size:13px}.custom-puzzle-card__fen-row{display:flex;gap:6px;align-items:stretch}.custom-puzzle-card__fen-row input{flex:1 1 auto;min-width:0;font-family:JetBrains Mono,Menlo,monospace;font-size:12px}.custom-puzzle-card__edit-board{flex:0 0 auto;padding:4px 10px;border:1px solid var(--border-subtle);border-radius:4px;background:var(--bg-muted);color:var(--text-primary);font-size:12px;cursor:pointer;white-space:nowrap}.custom-puzzle-card__edit-board:hover{background:var(--accent, #4d8aff);color:var(--accent-contrast, #fff);border-color:var(--accent, #4d8aff)}.custom-puzzle-card__body{display:grid;grid-template-columns:minmax(200px,320px) minmax(200px,1fr);gap:16px;align-items:start}.custom-puzzle-card__board{width:100%;max-width:320px}.custom-puzzle-card__moves{display:flex;flex-direction:column;gap:6px}.custom-puzzle-card__next-turn{font-size:13px;font-weight:600;color:var(--text-primary)}.custom-puzzle-card__warning{margin:0;font-size:12px;color:var(--text-secondary);font-style:italic}.custom-puzzle-card__error{margin:0;font-size:12px;color:var(--danger, #ca3431)}.custom-puzzle-card__move-list{margin:0;padding-left:24px;font-size:13px;font-family:JetBrains Mono,Menlo,monospace}.custom-puzzle-card__move-list code{font-family:inherit}.custom-puzzle-card__move-tag{font-family:var(--font-system, sans-serif);font-size:11px;color:var(--text-secondary);margin-left:6px}.custom-puzzle-card__uci-row{display:flex;gap:6px}.custom-puzzle-card__uci-row input{flex:1 1 auto;min-width:0;font-family:JetBrains Mono,Menlo,monospace;font-size:12px}.custom-puzzle-card__uci-row button{padding:4px 10px}.custom-puzzle-card__solution-actions{display:flex;gap:6px;flex-wrap:wrap}.custom-puzzle-card__solution-actions button{font-size:12px;padding:4px 8px}.custom-puzzle-card__meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px}.custom-puzzle-card__meta label{display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--text-secondary)}@media(max-width:640px){.custom-puzzle-card__body{grid-template-columns:1fr}.custom-puzzle-card__fen-row{flex-direction:column}.custom-puzzle-card__edit-board{align-self:flex-start}}.editor-endgame__fen-label{grid-column:1 / -1}.editor-endgame__fen-row{display:flex;gap:6px;align-items:stretch}.editor-endgame__fen-row input{flex:1 1 auto;min-width:0;font-family:JetBrains Mono,Menlo,monospace;font-size:12px}.editor-endgame__edit-board{flex:0 0 auto;padding:4px 10px;border:1px solid var(--border-subtle);border-radius:4px;background:var(--bg-muted);color:var(--text-primary);font-size:12px;cursor:pointer;white-space:nowrap}.editor-endgame__edit-board:hover{background:var(--accent, #4d8aff);color:var(--accent-contrast, #fff);border-color:var(--accent, #4d8aff)}@media(max-width:640px){.editor-endgame__fen-row{flex-direction:column}.editor-endgame__edit-board{align-self:flex-start}}.editor-hint{margin:0;color:var(--text-secondary);font-size:12px;grid-column:1 / -1}.editor-mini-board{grid-column:1 / -1;max-width:280px}.editor-step__preview{border-top:1px dashed var(--border-subtle);padding-top:8px}.editor-step__preview summary{cursor:pointer;font-weight:600;color:var(--text-link)}.editor-step__preview-body{padding:10px 0}.lesson-editor__footer{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.lesson-editor__export-btn{padding:10px 20px;border-radius:8px;background:var(--accent);color:var(--accent-contrast, #fff);font-weight:600;font-size:15px;border:0;cursor:pointer}.lesson-editor__export-btn:hover{filter:brightness(1.05)}.lesson-editor__status{margin:0;font-size:14px;color:var(--text-secondary)}.lesson-editor__empty{color:var(--text-secondary);font-style:italic}@media(max-width:640px){.editor-step__header{flex-direction:column;align-items:stretch}}.mistakes-diary-block{background:var(--bg-card);border:1px solid var(--border-subtle);border-left:4px solid var(--danger, #ca3431);border-radius:10px;padding:14px 16px;margin-bottom:16px;display:flex;flex-direction:column;gap:12px}.mistakes-diary-block__header{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}.mistakes-diary-block__title{margin:0;font-size:16px;font-weight:600}.mistakes-diary-block__total{font-size:13px;color:var(--text-secondary);font-variant-numeric:tabular-nums}.mistakes-diary-block__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.mistakes-diary-block__item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:8px}.mistakes-diary-block__item-text{display:flex;flex-direction:column;gap:2px;min-width:0}.mistakes-diary-block__theme{font-weight:600;color:var(--text-primary);font-size:15px}.mistakes-diary-block__meta{display:flex;gap:12px;flex-wrap:wrap;font-size:13px;color:var(--text-secondary)}.mistakes-diary-block__count{font-weight:600;color:var(--danger, #ca3431)}.mistakes-diary-block__cta{padding:6px 14px;border-radius:8px;background:var(--accent);color:var(--accent-contrast, #fff);font-weight:600;font-size:14px;text-decoration:none;transition:filter .15s ease;white-space:nowrap}.mistakes-diary-block__cta:hover{filter:brightness(1.05)}.mistakes-diary-block__footer{display:flex;justify-content:flex-end}.mistakes-diary-block__see-all{color:var(--text-link);font-size:14px;text-decoration:none}.mistakes-diary-block__see-all:hover{text-decoration:underline}@media(max-width:640px){.mistakes-diary-block__item{flex-direction:column;align-items:stretch}.mistakes-diary-block__cta{text-align:center}}.mistakes-page{display:flex;flex-direction:column;gap:12px;padding:16px}.mistakes-page__header h1{margin:6px 0}.mistakes-page__back-link{color:var(--text-link);text-decoration:none;font-size:14px}.mistakes-page__subtitle{margin:0;color:var(--text-secondary);font-size:14px}.mistakes-page__total{margin:0;color:var(--text-secondary);font-size:13px}.mistakes-page__table{width:100%;border-collapse:collapse;font-size:14px}.mistakes-page__table th,.mistakes-page__table td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--border-subtle)}.mistakes-page__table th{font-weight:600;color:var(--text-secondary);background:var(--bg-muted)}.mistakes-page__cta{padding:4px 10px;border-radius:6px;background:var(--accent);color:var(--accent-contrast, #fff);font-size:13px;font-weight:600;text-decoration:none}.mistakes-practice-page{display:flex;flex-direction:column;gap:12px;padding:16px}.mistakes-practice-page__back{color:var(--text-link);text-decoration:none;font-size:14px}.mistakes-practice-page__meta{margin:0;color:var(--text-secondary);font-size:13px}.mistakes-practice-page--empty,.mistakes-practice-page--not-found{align-items:flex-start}.course-lesson-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;margin-left:6px}.course-lesson-badge--mastered{background:var(--success-soft, #d5f1da);color:var(--success, #1f7a3a)}.course-lesson-badge--due{background:var(--warning-soft, #fff3d0);color:var(--warning, #9a6c14)}.lesson-review-banner{margin:8px 0 0;padding:8px 12px;background:var(--accent-soft, #e9eaff);border:1px solid var(--accent);border-radius:8px;color:var(--text-primary);font-size:14px}.lesson-page--review-result{display:flex;flex-direction:column;gap:14px}.lesson-review-result__score-value{font-size:28px;font-weight:700;color:var(--text-primary)}.lesson-review-result__explanation{margin:0;padding:10px 14px;border-radius:8px;font-size:15px}.lesson-review-result__explanation--mastered{background:var(--success-soft, #d5f1da);border:1px solid var(--success, #1f7a3a);color:var(--text-primary)}.lesson-review-result__explanation--reset{background:var(--warning-soft, #fff3d0);border:1px solid var(--warning, #9a6c14);color:var(--text-primary)}.lesson-review-result__next-due{margin:0;color:var(--text-secondary);font-size:13px}.lesson-review-result__actions{display:flex;gap:10px;margin-top:8px}.lesson-review-result__to-list{padding:8px 14px;border-radius:8px;background:var(--bg-card);border:1px solid var(--border-subtle);color:var(--text-link);text-decoration:none;font-weight:600;font-size:14px}@media(max-width:640px){.reviews-due-block__item{flex-direction:column;align-items:stretch}.reviews-due-block__cta{text-align:center}.lesson-review-result__to-list{width:100%;text-align:center}}.lesson-game-review-step{display:flex;flex-direction:column;gap:16px}.lesson-game-review-step__analysis,.lesson-game-review-step__pgn,.lesson-game-review-step__empty{display:flex;flex-direction:column;gap:10px}.lesson-game-review-step__pgn-text{max-height:280px;overflow:auto;padding:10px 12px;font-size:12px;line-height:1.5;font-family:JetBrains Mono,Menlo,monospace;background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:8px;white-space:pre-wrap;word-break:break-word}.inline-pgn-viewer{display:grid;grid-template-columns:max-content minmax(280px,1fr);grid-template-rows:auto auto auto auto;gap:12px 16px;align-items:start;outline:none}.inline-pgn-viewer__leading-slot{grid-column:1 / -1;grid-row:1;width:100%;min-width:0}.inline-pgn-viewer__board{grid-column:1;grid-row:2 / span 2}.inline-pgn-viewer__current-comment-slot{grid-column:1 / -1;grid-row:4;width:100%;min-width:0;min-height:5em;align-self:start}.inline-pgn-viewer__current-comment{margin:0;padding:8px 12px;font-size:14px;line-height:1.5;color:var(--text-primary);background:var(--bg-muted);border:1px solid var(--border-subtle);border-left:3px solid var(--accent-primary);border-radius:8px;white-space:pre-wrap;word-break:break-word}.inline-pgn-viewer__controls{grid-column:2;grid-row:2;display:flex;align-items:center;gap:6px}.inline-pgn-viewer__btn{min-width:32px;height:32px;padding:0 8px;border:1px solid var(--border-subtle);background:var(--bg-surface);border-radius:6px;cursor:pointer;font-size:14px}.inline-pgn-viewer__btn:disabled{opacity:.4;cursor:not-allowed}.inline-pgn-viewer__btn:not(:disabled):hover{background:var(--bg-muted)}.inline-pgn-viewer__counter{font-variant-numeric:tabular-nums;font-size:13px;color:var(--text-secondary);margin:0 4px}.inline-pgn-viewer__moves{grid-column:2;grid-row:3;list-style:none;margin:0;padding:8px 10px;max-height:260px;overflow-y:auto;background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:8px;font-variant-numeric:tabular-nums;font-size:13px;line-height:1.6}.inline-pgn-viewer__move-row{display:flex;gap:6px;align-items:baseline}.inline-pgn-viewer__move-number{color:var(--text-secondary);min-width:28px}.inline-pgn-viewer__move{background:transparent;border:1px solid transparent;padding:1px 6px;border-radius:4px;cursor:pointer;color:inherit;font:inherit}.inline-pgn-viewer__move:hover{background:var(--bg-surface)}.inline-pgn-viewer__move--current{background:var(--accent-primary);color:var(--c-fff);border-color:var(--accent-hover)}.inline-pgn-viewer__error{color:var(--text-secondary);font-style:italic}@media(max-width:760px){.inline-pgn-viewer{grid-template-columns:1fr;grid-template-rows:auto auto auto auto auto}.inline-pgn-viewer__leading-slot{grid-column:1;grid-row:1}.inline-pgn-viewer__board{grid-column:1;grid-row:2;justify-self:center}.inline-pgn-viewer__current-comment-slot{grid-column:1;grid-row:3;min-height:4em}.inline-pgn-viewer__controls{grid-column:1;grid-row:4;justify-content:center}.inline-pgn-viewer__moves{grid-column:1;grid-row:5;max-height:200px}}.lesson-game-review-step__pgn-hint,.lesson-game-review-step__empty-hint{margin:0;color:var(--text-secondary);font-size:14px}.lesson-game-review-step__deep-link{margin:0;font-size:14px}.lesson-game-review-step__empty-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.lesson-game-review-step__import-btn{padding:8px 14px;border-radius:8px;border:1px solid var(--border-subtle);background:var(--bg-card);color:var(--text-primary);font-size:14px;cursor:pointer;transition:border-color .15s ease}.lesson-game-review-step__import-btn:hover{border-color:var(--accent)}.lesson-game-review-step__library-link{padding:8px 14px;border-radius:8px;border:1px dashed var(--border-subtle);color:var(--text-link);text-decoration:none;font-size:14px}.lesson-game-review-step__empty-note{margin:8px 0 0;font-size:13px;color:var(--success)}.lesson-game-review-step__checklist{background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}.lesson-game-review-step__checklist-title{margin:0;font-size:15px;font-weight:600}.lesson-game-review-step__checklist-items{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.lesson-game-review-step__checklist-item label{display:flex;gap:8px;align-items:center;cursor:pointer;font-size:14px;color:var(--text-primary)}.lesson-game-review-step__actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.lesson-game-review-step__done{padding:8px 18px;border-radius:8px;border:1px solid var(--border-subtle);background:var(--accent);color:var(--accent-contrast, #fff);font-weight:600;font-size:14px;cursor:pointer;transition:filter .15s ease,opacity .15s ease}.lesson-game-review-step__done:disabled{opacity:.45;cursor:not-allowed}.lesson-game-review-step__done:not(:disabled):hover{filter:brightness(1.05)}.lesson-game-review-step__done-hint{font-size:13px;color:var(--text-secondary)}@media(max-width:640px){.lesson-game-review-step__done{width:100%}.lesson-game-review-step__actions{flex-direction:column;align-items:stretch}}.lesson-quiz-step{display:flex;flex-direction:column;gap:16px}.lesson-quiz-step__header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;font-size:13px;color:var(--text-secondary);font-variant-numeric:tabular-nums}.lesson-quiz-step__questions{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}.lesson-quiz-question{background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:10px;padding:14px 16px}.lesson-quiz-question--checked[data-correct=true]{border-color:var(--success);background:var(--success-soft)}.lesson-quiz-question--checked[data-correct=false]{border-color:var(--danger);background:var(--danger-soft)}.lesson-quiz-question__prompt{margin:0 0 10px;font-weight:600;color:var(--text-primary);font-size:15px;line-height:1.4}.lesson-quiz-question__diagram{margin:0 0 12px}.lesson-quiz-question__options{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:6px}.lesson-quiz-option{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:8px;transition:border-color .15s ease,background .15s ease}.lesson-quiz-option:hover:not(:has(input:disabled)){border-color:var(--border-accent)}.lesson-quiz-option label{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;cursor:pointer;font-size:14px;color:var(--text-primary);line-height:1.4}.lesson-quiz-option input{margin-top:2px;accent-color:var(--accent-primary);flex-shrink:0}.lesson-quiz-option--correct{border-color:var(--success);background:var(--success-soft)}.lesson-quiz-option--wrong{border-color:var(--danger);background:var(--danger-soft)}.lesson-quiz-option--missed{border-color:var(--warning);background:var(--warning-soft)}.lesson-quiz-question__check{margin-top:4px}.lesson-quiz-question__result{margin:10px 0 0;font-size:14px;font-weight:600}.lesson-quiz-question__result--correct{color:var(--success)}.lesson-quiz-question__result--incorrect{color:var(--danger)}.lesson-quiz-question__explanation{font-weight:400;color:var(--text-secondary)}.lesson-puzzle-step,.lesson-position-step{display:flex;flex-direction:column;gap:14px}.lesson-puzzle-step .board-container,.lesson-position-step .board-container{width:100%;max-width:500px;aspect-ratio:1;align-self:center}.lesson-puzzle-step__custom-note{margin:0;padding:6px 10px;font-size:13px;color:var(--text-secondary);background:var(--bg-muted);border:1px dashed var(--border-subtle);border-radius:6px}.lesson-puzzle-step__header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;font-size:13px;color:var(--text-secondary);font-variant-numeric:tabular-nums}.lesson-puzzle-step__loading,.lesson-puzzle-step__error{padding:24px 16px;text-align:center;color:var(--text-secondary);background:var(--bg-muted);border-radius:8px}.lesson-puzzle-step__error{color:var(--danger);background:var(--danger-soft)}.lesson-puzzle-step__result{margin:0;font-weight:600;font-size:15px}.lesson-puzzle-step__result--correct{color:var(--success)}.lesson-puzzle-step__result--incorrect{color:var(--danger)}.lesson-puzzle-step__hint{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}.lesson-puzzle-step__hint-btn{padding:6px 14px;background:transparent;border:1px solid var(--border-subtle);border-radius:8px;color:var(--text-link, var(--accent-primary));font-size:13px;font-weight:600;cursor:pointer}.lesson-puzzle-step__hint-btn:hover{background:var(--bg-muted)}.lesson-puzzle-step__hint-btn:disabled{opacity:.5;cursor:not-allowed}.lesson-puzzle-step__hint-text{font-size:13px;color:var(--text-secondary);font-variant-numeric:tabular-nums}.lesson-text-step__next,.lesson-quiz-question__check,.lesson-quiz-step__submit,.lesson-quiz-step__retry,.lesson-quiz-step__continue,.lesson-puzzle-step__next,.lesson-puzzle-step__complete,.lesson-complete-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 18px;font-size:14px;font-weight:600;color:var(--text-on-accent);background:var(--accent-primary);border:1px solid var(--accent-primary);border-radius:8px;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .05s ease;min-height:40px}.lesson-text-step__next:hover,.lesson-quiz-question__check:hover,.lesson-quiz-step__submit:hover,.lesson-quiz-step__continue:hover,.lesson-puzzle-step__next:hover,.lesson-puzzle-step__complete:hover,.lesson-complete-btn:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.lesson-text-step__next:active,.lesson-quiz-question__check:active,.lesson-quiz-step__submit:active,.lesson-quiz-step__continue:active,.lesson-puzzle-step__next:active,.lesson-puzzle-step__complete:active,.lesson-complete-btn:active{transform:translateY(1px)}.lesson-text-step__next:disabled,.lesson-quiz-question__check:disabled,.lesson-quiz-step__submit:disabled,.lesson-quiz-step__continue:disabled,.lesson-puzzle-step__next:disabled,.lesson-puzzle-step__complete:disabled,.lesson-complete-btn:disabled{background:var(--bg-elevated);border-color:var(--border-mid);color:var(--text-muted);cursor:not-allowed}.user-lesson-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px 24px;margin:24px 0;background:var(--bg-card);border:1px dashed var(--border-subtle);border-radius:10px;text-align:center}.user-lesson-empty__icon{font-size:48px;line-height:1}.user-lesson-empty__title{margin:0;font-size:18px;font-weight:600;color:var(--text-primary)}.user-lesson-empty__body{margin:0;max-width:480px;font-size:14px;color:var(--text-secondary);line-height:1.5}.user-lesson-empty__back{margin-top:8px;display:inline-flex;align-items:center;justify-content:center;padding:10px 20px;border-radius:8px;background:var(--accent-primary);color:var(--accent-contrast, #fff);font-weight:600;text-decoration:none;border:1px solid var(--accent-primary)}.user-lesson-empty__back:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.lesson-text-step__next--done{background:var(--bg-elevated);border-color:var(--border-mid);color:var(--text-secondary);cursor:default}.lesson-text-step__next--done:hover{background:var(--bg-elevated);border-color:var(--border-mid);color:var(--text-primary)}.lesson-quiz-step__retry{background:transparent;color:var(--accent-primary)}.lesson-quiz-step__retry:hover{background:var(--accent-soft);color:var(--accent-primary)}.lesson-footer{display:flex;flex-direction:column;gap:10px;margin-top:24px;padding-top:16px;border-top:1px solid var(--border-subtle);align-items:flex-start}.lesson-complete-btn{min-width:200px;padding:12px 24px;font-size:15px}.lesson-complete-msg{margin:0;font-size:14px;color:var(--text-secondary)}.lesson-sync-error{margin:0;font-size:13px;color:var(--warning)}.lesson-completion-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;background:color-mix(in srgb,var(--bg-base, #0b0d12) 80%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:lesson-completion-overlay-in .24s ease-out both;overflow:hidden}@keyframes lesson-completion-overlay-in{0%{opacity:0}to{opacity:1}}.lesson-completion-card{position:relative;z-index:2;max-width:440px;width:100%;padding:32px 28px 28px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:16px;box-shadow:0 24px 64px #00000052;text-align:center;animation:lesson-completion-card-pop .36s cubic-bezier(.18,1.2,.4,1) both}@keyframes lesson-completion-card-pop{0%{opacity:0;transform:translateY(24px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}.lesson-completion-icon{display:inline-flex;align-items:center;justify-content:center;width:80px;height:80px;margin:0 auto 16px;border-radius:50%;background:var(--success-soft, #d5f1da);color:var(--success, #1f7a3a);animation:lesson-completion-icon-pop .48s cubic-bezier(.18,1.4,.4,1) .16s both}@keyframes lesson-completion-icon-pop{0%{opacity:0;transform:scale(.4)}60%{opacity:1;transform:scale(1.15)}to{opacity:1;transform:scale(1)}}.lesson-completion-icon__ring{stroke:currentColor;opacity:.35}.lesson-completion-icon__check{stroke:currentColor;stroke-dasharray:60;stroke-dashoffset:60;animation:lesson-completion-check-draw .36s ease-out .42s forwards}@keyframes lesson-completion-check-draw{0%{stroke-dashoffset:60}to{stroke-dashoffset:0}}.lesson-completion-title{margin:0 0 8px;font-size:26px;font-weight:700;color:var(--text-primary)}.lesson-completion-subtitle{margin:0 0 24px;font-size:15px;color:var(--text-secondary);line-height:1.5}.lesson-completion-actions{display:flex;flex-direction:column;gap:10px}.lesson-completion-btn{display:inline-block;padding:12px 18px;border-radius:10px;font-weight:600;font-size:15px;text-decoration:none;text-align:center;border:1px solid transparent;transition:transform .12s ease,background .12s ease}.lesson-completion-btn:hover{transform:translateY(-1px)}.lesson-completion-btn--primary{background:var(--accent-primary);color:var(--text-on-accent, #fff)}.lesson-completion-btn--primary:hover{background:var(--accent-primary-hover, var(--accent-primary))}.lesson-completion-btn--secondary{background:transparent;border-color:var(--border-subtle);color:var(--text-link, var(--text-primary))}.lesson-completion-btn--secondary:hover{background:var(--bg-muted)}.lesson-completion-confetti{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1}.lesson-completion-confetti__piece{position:absolute;top:-24px;width:10px;height:14px;border-radius:2px;opacity:0;animation:lesson-completion-confetti-fall 1.8s linear both}.lesson-completion-confetti__piece--1{background:#f5b400}.lesson-completion-confetti__piece--2{background:#2bb673}.lesson-completion-confetti__piece--3{background:#4f7cff}.lesson-completion-confetti__piece--4{background:#ec5a8c}@keyframes lesson-completion-confetti-fall{0%{transform:translateY(-40px) rotate(0);opacity:0}10%{opacity:1}to{transform:translateY(105vh) rotate(720deg);opacity:0}}@media(prefers-reduced-motion:reduce){.lesson-completion-overlay,.lesson-completion-card,.lesson-completion-icon,.lesson-completion-icon__check,.lesson-completion-confetti__piece{animation:none!important}.lesson-completion-icon__check{stroke-dashoffset:0}}@media(max-width:480px){.lesson-completion-card{padding:24px 20px 20px}.lesson-completion-title{font-size:22px}}.lesson-quiz-step__empty{padding:16px;color:var(--text-muted);text-align:center;background:var(--bg-muted);border-radius:8px}@media(max-width:960px){.lessons-page,.course-page,.lesson-page{padding:20px 18px 40px}.lessons-course-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.lesson-step{padding:16px}}@media(max-width:640px){.lessons-page,.course-page,.lesson-page{padding:16px 12px 40px}.lessons-page h1,.course-page h1,.lesson-page h1{font-size:22px}.lessons-page h2,.course-page h2{font-size:18px}.lessons-course-grid{grid-template-columns:1fr;gap:12px}.lessons-course-description{min-height:0}.course-lesson-link{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:12px 14px}.course-lesson-order{min-width:1.6em;text-align:left;order:1}.course-lesson-title{flex:1 1 auto;font-size:14px;order:2}.course-lesson-state{order:3;flex-basis:100%;margin-right:auto}.course-lesson-step-count{order:4;margin-left:auto}.course-progress,.lesson-progress{flex-wrap:wrap}.course-progress-text,.lesson-progress-text{flex-basis:100%;text-align:right}.lesson-text-step__diagram,.lesson-quiz-question__diagram{width:100%!important;max-width:100%!important}.lesson-text-step__diagram{float:none;clear:none;margin:0}.lesson-step{padding:14px;border-radius:10px}.lesson-step__header{padding-right:28px}.lesson-step:after{top:12px;right:12px;width:12px;height:12px}.lesson-complete-btn,.lesson-text-step__next,.lesson-quiz-step__submit,.lesson-quiz-step__continue,.lesson-quiz-step__retry,.lesson-puzzle-step__next,.lesson-puzzle-step__complete,.lesson-video-step__next{width:100%;min-width:0}.lesson-text-step__actions,.lesson-quiz-step__actions,.lesson-puzzle-step__actions,.lesson-video-step__actions{flex-direction:column}.lesson-footer{align-items:stretch}.lesson-quiz-question{padding:12px}}.user-course-editor{max-width:1200px;margin:0 auto;padding:12px 20px 48px;display:flex;flex-direction:column;gap:12px;color:var(--text-primary);box-sizing:border-box}.user-course-editor__mobile-tabs{display:none}.user-course-editor__body{display:grid;grid-template-columns:320px minmax(0,1fr);gap:20px;align-items:start;transition:grid-template-columns .2s ease}.user-course-editor__outline,.user-course-editor__main{min-width:0;transition:opacity .15s ease}@media(max-width:960px){.user-course-editor{padding:12px 16px 40px}.user-course-editor__body{grid-template-columns:260px minmax(0,1fr);gap:16px}}@media(max-width:640px){.user-course-editor{padding:8px 12px 32px;gap:10px}.user-course-editor__mobile-tabs{display:flex;gap:4px;padding:4px;background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:10px;position:sticky;top:56px;z-index:15}.user-course-editor__mobile-tabs button{flex:1 1 0;padding:8px 12px;min-height:36px;border:0;background:transparent;color:var(--text-secondary);font:inherit;font-weight:600;font-size:14px;border-radius:8px;cursor:pointer;transition:background .15s ease,color .15s ease}.user-course-editor__mobile-tabs button:hover{color:var(--text-primary)}.user-course-editor__mobile-tabs button[aria-selected=true]{background:var(--tab-active-bg);color:var(--tab-active-fg);box-shadow:0 1px 2px #00000014}.user-course-editor__body{grid-template-columns:minmax(0,1fr);gap:12px}.user-course-editor__outline--mobile-hidden,.user-course-editor__main--mobile-hidden{display:none}}.lesson-overview__header{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end;margin-bottom:12px}.lesson-overview__title-label,.lesson-overview__est-label{display:flex;flex-direction:column;gap:4px}.lesson-overview__title-label{flex:1 1 320px;min-width:0}.lesson-overview__est-label{flex:0 0 auto;width:180px}.lesson-overview__title-label-text,.lesson-overview__est-label-text{font-size:.85em;color:var(--text-secondary, #666);font-weight:500}.lesson-overview__title-input,.lesson-overview__est-input{width:100%;box-sizing:border-box;padding:8px 10px;border:1px solid var(--border-color, #d0d0d8);border-radius:6px;background:var(--input-bg, #f5f6fa);color:var(--text-primary);font-size:.95em}.lesson-overview__title-input:focus,.lesson-overview__est-input:focus{outline:2px solid var(--accent, #4d6fff);outline-offset:1px}.lesson-overview__delete{flex:0 0 auto;align-self:flex-end;margin-left:auto}@media(max-width:768px){.lesson-overview__header{flex-direction:column;align-items:stretch;gap:10px;margin-bottom:10px}.lesson-overview__title-label,.lesson-overview__est-label{flex:1 1 auto;width:100%}.lesson-overview__delete{align-self:flex-start;margin-left:0}}.lessons-course-card--user{border-color:var(--accent-primary);box-shadow:inset 3px 0 0 0 var(--accent-primary)}.lessons-course-card--user:hover{border-color:var(--accent-primary);box-shadow:inset 3px 0 0 0 var(--accent-primary),var(--shadow-md)}.user-course-page{max-width:1040px;margin:0 auto;padding:24px 20px 48px;color:var(--text-primary);box-sizing:border-box;display:flex;flex-direction:column;gap:20px}.user-course-page__header{display:flex;flex-direction:column;gap:10px}.user-course-page__meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.user-course-page__meta h1{margin:0;font-size:28px;font-weight:700;line-height:1.2;flex:1 1 auto;min-width:0;overflow-wrap:anywhere}.user-course-page__badges{display:flex;gap:6px;flex-wrap:wrap}.user-course-page__badge{display:inline-flex;align-items:center;padding:3px 10px;font-size:12px;font-weight:600;letter-spacing:.02em;border-radius:999px;white-space:nowrap;border:1px solid transparent}.user-course-page__badge--public{color:var(--success);background:var(--success-soft);border-color:var(--success)}.user-course-page__badge--private{color:var(--text-secondary);background:var(--bg-muted);border-color:var(--border-subtle)}.user-course-page__description{margin:0;color:var(--text-secondary);font-size:15px;line-height:1.5;overflow-wrap:anywhere}.user-course-page__progress{margin:0;font-size:14px;color:var(--text-secondary);font-variant-numeric:tabular-nums}.user-course-page__completed-banner{display:inline-flex;align-items:center;gap:12px;padding:10px 14px;background:var(--success-soft, #dff7e6);color:var(--success, #2e7d32);border:1px solid var(--success, #2e7d32);border-radius:8px;font-size:14px}.user-course-page__completed-icon{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;background:var(--success, #2e7d32);color:var(--success-contrast, #fff);border-radius:50%}.user-course-page__completed-text{display:flex;flex-direction:column;line-height:1.25}.user-course-page__completed-text strong{font-size:15px}.user-course-page__completed-date{font-size:12px;opacity:.85}.user-course-page__stats{padding:12px 14px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:10px}.user-course-page__stats-title{margin:0 0 8px;font-size:14px;font-weight:600;color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px}.user-course-page__stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:0}.user-course-page__stats-item{display:flex;flex-direction:column;gap:2px;padding:8px 10px;background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:6px}.user-course-page__stats-item dt{font-size:12px;color:var(--text-secondary);margin:0}.user-course-page__stats-item dd{margin:0;font-size:22px;font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums}.user-course-page__stats-percent{font-size:14px;font-weight:500;color:var(--text-secondary)}.my-courses-block__card-stats{font-size:12px;color:var(--text-secondary);margin-left:auto;white-space:nowrap}.user-course-page__owner-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;background:var(--bg-card);border:1px solid var(--border-subtle);border-left:3px solid var(--accent-primary);border-radius:10px}.user-course-page__owner-actions:before{content:"⚙";font-size:14px;color:var(--text-muted);margin-right:2px}.user-course-page__owner-actions button{padding:6px 14px;border-radius:8px;border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-primary);font-size:14px;font-weight:500;cursor:pointer;transition:border-color .15s ease,background .15s ease;min-height:36px}.user-course-page__owner-actions button:hover:not(:disabled){border-color:var(--accent-primary);background:var(--accent-soft)}.user-course-page__owner-actions button:disabled{opacity:.55;cursor:not-allowed}.user-course-page__delete{color:var(--danger)!important;border-color:var(--danger)!important}.user-course-page__delete:hover:not(:disabled){background:var(--danger-soft)!important;border-color:var(--danger)!important}.user-course-page__owner-error{flex-basis:100%;margin:4px 0 0;padding:6px 10px;font-size:13px;color:var(--danger);background:var(--danger-soft);border:1px solid var(--danger);border-radius:6px}.user-course-page__lessons{display:flex;flex-direction:column;gap:12px}.user-course-page__lessons h2{margin:0;font-size:20px;font-weight:600;line-height:1.3}.user-course-page__count{font-weight:400;color:var(--text-secondary);font-size:15px}.user-course-page__empty{margin:0;padding:24px 20px;text-align:center;color:var(--text-secondary);background:var(--bg-surface);border:1px dashed var(--border-subtle);border-radius:10px}.user-course-page__lesson-grid{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;counter-reset:ucp-lesson}.user-course-page__lesson-card{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-left:3px solid var(--accent-primary);border-radius:10px;transition:border-color .15s ease,background .15s ease}.user-course-page__lesson-card:hover{border-color:var(--border-accent);border-left-color:var(--accent-primary)}.user-course-page__lesson-card:before{counter-increment:ucp-lesson;content:counter(ucp-lesson);flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 8px;font-size:13px;font-weight:700;color:var(--text-muted);background:var(--bg-muted);border-radius:999px;font-variant-numeric:tabular-nums}.user-course-page__lesson-meta{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.user-course-page__lesson-title{margin:0;font-size:15px;font-weight:600;color:var(--text-primary);overflow-wrap:anywhere}.user-course-page__lesson-steps{font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums}.user-course-page__lesson-cta{flex-shrink:0;padding:6px 14px;border-radius:8px;background:var(--accent-primary);color:var(--text-on-accent);font-size:14px;font-weight:600;text-decoration:none;border:1px solid var(--accent-primary);transition:background .15s ease,border-color .15s ease;white-space:nowrap;min-height:36px;display:inline-flex;align-items:center}.user-course-page__lesson-cta:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.user-course-404,.user-lesson-404{max-width:640px;margin:64px auto;padding:32px 24px;text-align:center;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:12px;color:var(--text-primary)}.user-course-404 h1,.user-lesson-404 h1{margin:0 0 10px;font-size:24px;font-weight:700}.user-course-404 p{margin:0 0 16px;color:var(--text-secondary);font-size:15px}.user-course-404 a,.user-lesson-404 a{color:var(--text-link);text-decoration:none;font-size:14px;font-weight:500}.user-course-404 a:hover,.user-lesson-404 a:hover{text-decoration:underline}.user-lesson-page{max-width:1040px;margin:0 auto;padding:24px 20px 48px;color:var(--text-primary);box-sizing:border-box;display:flex;flex-direction:column;gap:20px;min-width:0;width:100%;overflow-x:clip;overflow-y:visible}.user-lesson-page__breadcrumbs{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary);flex-wrap:wrap}.user-lesson-page__breadcrumbs a{color:var(--text-link);text-decoration:none}.user-lesson-page__breadcrumbs a:hover{text-decoration:underline}.user-lesson-page__sep{color:var(--text-muted);-webkit-user-select:none;user-select:none}.user-lesson-page__header{display:flex;flex-direction:column;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--border-subtle)}.user-lesson-page__header h1{margin:0;font-size:26px;font-weight:700;line-height:1.2;overflow-wrap:anywhere}.user-lesson-page__progress{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-secondary);font-variant-numeric:tabular-nums;flex-wrap:wrap}@media(max-width:960px){.user-course-page,.user-lesson-page{padding:20px 18px 40px}}@media(max-width:640px){.user-course-page,.user-lesson-page{padding:16px 12px 40px;gap:16px}.user-course-page__meta h1{font-size:22px;flex-basis:100%}.user-course-page__badges{flex-basis:100%}.user-course-page__lessons h2{font-size:18px}.user-course-page__owner-actions{padding:10px 12px;gap:8px}.user-course-page__owner-actions button{flex:1 1 calc(50% - 4px);min-width:0;text-align:center;justify-content:center}.user-course-page__delete{flex-basis:100%!important}.user-course-page__lesson-card{flex-wrap:wrap;padding:12px 14px;gap:10px}.user-course-page__lesson-meta{flex-basis:calc(100% - 40px)}.user-course-page__lesson-cta{flex-basis:100%;justify-content:center;padding:10px 14px}.user-lesson-page__header h1{font-size:20px}.user-lesson-page__header{position:sticky;top:0;z-index:2;background:var(--bg-canvas, var(--bg-surface));padding:8px 0 10px;margin:-8px 0 0;border-bottom:1px solid var(--border-subtle)}.user-course-404,.user-lesson-404{margin:32px 12px;padding:24px 16px}}.my-courses-block{margin-bottom:28px;display:flex;flex-direction:column;gap:14px}.my-courses-block__header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.my-courses-block__header h2{margin:0;font-size:20px;font-weight:600;line-height:1.3;color:var(--text-primary)}.my-courses-block__create{padding:8px 16px;border-radius:8px;background:var(--accent-primary);color:var(--text-on-accent);border:1px solid var(--accent-primary);font-size:14px;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .05s ease;min-height:38px;white-space:nowrap}.my-courses-block__create:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.my-courses-block__create:active:not(:disabled){transform:translateY(1px)}.my-courses-block__create:disabled{opacity:.55;cursor:not-allowed}.my-courses-block__error{margin:0;padding:8px 12px;font-size:14px;color:var(--danger);background:var(--danger-soft);border:1px solid var(--danger);border-radius:8px}.my-courses-block__loading{padding:20px;text-align:center;color:var(--text-secondary);background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:10px;font-size:14px}.my-courses-block__empty{margin:0;padding:32px 20px;text-align:center;color:var(--text-secondary);background:var(--bg-surface);border:1px dashed var(--border-subtle);border-radius:12px;font-size:15px;line-height:1.5}.my-courses-block__empty:before{content:"📚";display:block;margin:0 auto 10px;font-size:32px;line-height:1;opacity:.85}.my-courses-block__grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.my-courses-block__card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:12px;overflow:hidden;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease;box-shadow:inset 3px 0 0 0 var(--accent-primary)}.my-courses-block__card:hover{border-color:var(--border-accent);transform:translateY(-2px);box-shadow:inset 3px 0 0 0 var(--accent-primary),var(--shadow-md)}.my-courses-block__card:focus-within{border-color:var(--accent-primary)}.my-courses-block__link{display:flex;flex-direction:column;gap:8px;padding:18px 18px 16px;color:inherit;text-decoration:none;height:100%;box-sizing:border-box}.my-courses-block__link:hover,.my-courses-block__link:focus-visible{text-decoration:none;outline:none}.my-courses-block__card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.my-courses-block__card-title{margin:0;font-size:17px;font-weight:600;color:var(--text-primary);line-height:1.3;overflow-wrap:anywhere;min-width:0;flex:1 1 auto}.my-courses-block__badge{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;padding:3px 9px;font-size:11px;font-weight:600;letter-spacing:.02em;border-radius:999px;white-space:nowrap;border:1px solid transparent;text-transform:uppercase}.my-courses-block__badge:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.my-courses-block__badge--public{color:var(--success);background:var(--success-soft);border-color:var(--success)}.my-courses-block__badge--private{color:var(--text-secondary);background:var(--bg-muted);border-color:var(--border-subtle)}.my-courses-block__card-badges{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.my-courses-block__badge--completed{color:var(--success-contrast, #fff);background:var(--success, #2e7d32);border-color:var(--success, #2e7d32);font-weight:600}.my-courses-block__badge--completed:before{display:none}.my-courses-block__card--completed{border-color:var(--success, #2e7d32)}.my-courses-block__card-description{margin:0;color:var(--text-secondary);font-size:14px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-clamp:2;overflow:hidden;min-height:2.9em;overflow-wrap:anywhere}.my-courses-block__card-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:10px;font-size:13px;color:var(--text-muted);font-variant-numeric:tabular-nums}@media(max-width:960px){.my-courses-block__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}}@media(max-width:640px){.my-courses-block{margin-bottom:20px;gap:12px}.my-courses-block__header h2{font-size:18px;flex:1 1 auto}.my-courses-block__create{flex:1 1 auto;min-width:140px;text-align:center}.my-courses-block__grid{grid-template-columns:1fr;gap:12px}.my-courses-block__card-description{-webkit-line-clamp:3;line-clamp:3;min-height:0}.my-courses-block__empty{padding:24px 14px}.my-courses-block__empty:before{font-size:28px}}.editor-empty-state{display:flex;flex-direction:column;align-items:center;gap:12px;padding:28px 24px;text-align:center;background:var(--bg-surface);border:1px dashed var(--border-subtle);border-radius:12px;color:var(--text-primary);box-sizing:border-box}.editor-empty-state:before{display:block;font-size:36px;line-height:1;margin-bottom:2px;opacity:.9}.editor-empty-state--lessons:before{content:"📘"}.editor-empty-state--steps:before{content:"➕"}.editor-empty-state__title{margin:0;font-size:17px;font-weight:600;color:var(--text-primary);line-height:1.3}.editor-empty-state__subtitle{margin:0;max-width:520px;font-size:14px;color:var(--text-secondary);line-height:1.5}.editor-empty-state__cta{margin-top:4px;padding:10px 20px;border-radius:8px;border:1px solid var(--accent-primary);background:var(--accent-primary);color:var(--text-on-accent);font-size:14px;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .05s ease;min-height:40px}.editor-empty-state__cta:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.editor-empty-state__cta:active:not(:disabled){transform:translateY(1px)}.editor-empty-state__cta:disabled{opacity:.5;cursor:not-allowed}.step-type-picker{width:100%;max-width:640px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:4px 0 0}.step-type-picker__card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 12px;text-align:center;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:10px;color:var(--text-primary);cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .05s ease,box-shadow .15s ease;font:inherit;min-height:112px}.step-type-picker__card:hover:not(:disabled){border-color:var(--border-accent);background:var(--bg-surface);transform:translateY(-1px);box-shadow:var(--shadow-sm, 0 2px 6px rgba(0, 0, 0, .08))}.step-type-picker__card:focus-visible{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-soft)}.step-type-picker__card:disabled{opacity:.5;cursor:not-allowed;transform:none}.step-type-picker__card--selected,.step-type-picker__card[aria-checked=true]{border-color:var(--accent-primary);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent-primary)}.step-type-picker__card--selected:hover:not(:disabled),.step-type-picker__card[aria-checked=true]:hover:not(:disabled){background:var(--accent-soft)}.step-type-picker__icon{font-size:28px;line-height:1;margin-bottom:2px}.step-type-picker__title{font-size:14px;font-weight:600;color:var(--text-primary)}.step-type-picker__description{font-size:12px;color:var(--text-secondary);line-height:1.4;overflow-wrap:anywhere}@media(max-width:960px){.step-type-picker{gap:10px}.step-type-picker__card{padding:12px 10px;min-height:104px}}@media(max-width:640px){.editor-empty-state{padding:22px 16px;gap:10px}.editor-empty-state:before{font-size:32px}.editor-empty-state__title{font-size:16px}.editor-empty-state__subtitle{font-size:13px}.editor-empty-state__cta{width:100%;max-width:320px}.step-type-picker{grid-template-columns:1fr;gap:8px}.step-type-picker__card{flex-direction:row;align-items:center;text-align:left;gap:12px;padding:12px 14px;min-height:0}.step-type-picker__icon{font-size:24px;flex-shrink:0}.step-type-picker__title{font-size:14px;flex:1 1 auto}.step-type-picker__description{font-size:12px;flex-basis:100%;order:3}}.save-status-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;font-size:13px;line-height:1.3;font-weight:500;border-radius:999px;border:1px solid transparent;background:var(--bg-muted);color:var(--text-secondary);white-space:nowrap;min-height:26px;transition:background .15s ease,border-color .15s ease,color .15s ease}.save-status-pill__label{font-variant-numeric:tabular-nums}.save-status-pill--idle{background:var(--bg-muted);color:var(--text-muted);border-color:var(--border-subtle)}.save-status-pill--saving{background:var(--accent-soft);color:var(--accent-primary);border-color:var(--accent-primary)}.save-status-pill__spinner{width:12px;height:12px;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;animation:save-status-pill-spin .75s linear infinite;display:inline-block;flex-shrink:0}@keyframes save-status-pill-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.save-status-pill__spinner{animation:none;border-top-color:currentColor;opacity:.6}}.save-status-pill--saved{background:var(--success-soft);color:var(--success);border-color:var(--success)}.save-status-pill__check{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;background:var(--success);color:var(--text-on-accent, #fff);font-size:10px;font-weight:700;line-height:1;flex-shrink:0}.save-status-pill--error{background:var(--danger-soft);color:var(--danger);border-color:var(--danger)}.save-status-pill__warn{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;background:var(--danger);color:var(--text-on-accent, #fff);font-size:10px;font-weight:700;line-height:1;flex-shrink:0}.save-status-pill__retry{margin-left:4px;padding:2px 8px;font-size:12px;font-weight:600;color:var(--danger);background:transparent;border:1px solid var(--danger);border-radius:999px;cursor:pointer;transition:background .15s ease}.save-status-pill__retry:hover{background:var(--danger);color:var(--text-on-accent, #fff)}.save-status-pill__retry:focus-visible{outline:none;box-shadow:0 0 0 2px var(--danger-soft)}@media(max-width:640px){.save-status-pill{flex-wrap:wrap;max-width:100%}}.user-course-header{position:sticky;top:0;z-index:20;background:var(--bg-canvas, var(--bg-surface));padding:12px 20px 10px;margin:-12px -20px 16px;border-bottom:1px solid var(--border-subtle);box-shadow:0 1px 0 0 var(--border-subtle),0 2px 8px -4px #0000001f;display:flex;flex-direction:column;gap:8px;box-sizing:border-box}.user-course-header__breadcrumbs{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-muted);flex-wrap:wrap}.user-course-header__breadcrumbs a{color:var(--text-link);text-decoration:none}.user-course-header__breadcrumbs a:hover{text-decoration:underline}.user-course-header__sep{color:var(--text-muted);-webkit-user-select:none;user-select:none}.user-course-header__crumb-current{color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:50ch}.user-course-header__row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.user-course-header__title-group{flex:1 1 240px;min-width:0}.user-course-header__title,.user-course-header__title-input{margin:0;font-size:24px;font-weight:700;line-height:1.25;color:var(--text-primary);font-family:inherit;width:100%;box-sizing:border-box;overflow-wrap:anywhere}.user-course-header__title{cursor:text;padding:4px 6px;border:1px solid transparent;border-radius:6px;transition:background .15s ease,border-color .15s ease}.user-course-header__title:hover,.user-course-header__title:focus-visible{background:var(--bg-muted);border-color:var(--border-subtle);outline:none}.user-course-header__title-input{padding:4px 6px;border:1px solid var(--accent-primary);border-radius:6px;background:var(--bg-surface);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.user-course-header__actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex-shrink:0}@media(max-width:640px){.user-course-header{padding:10px 12px 8px;margin:-12px -12px 12px;gap:6px}.user-course-header__title,.user-course-header__title-input{font-size:20px}.user-course-header__row{gap:8px}.user-course-header__actions{width:100%;justify-content:flex-start;gap:8px}}.publish-toggle{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:1px solid var(--border-subtle);background:var(--bg-card);font-size:13px;color:var(--text-secondary);min-height:28px}.publish-toggle__label{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.publish-toggle__text{font-weight:500;color:var(--text-primary)}.publish-toggle--public{border-color:var(--success);background:var(--success-soft);color:var(--success)}.publish-toggle--public .publish-toggle__text{color:var(--success)}.publish-toggle__hint{display:none}.owner-actions-menu{position:relative;display:inline-flex}.owner-actions-menu__trigger{width:32px;height:32px;border:1px solid var(--border-subtle);background:var(--bg-card);border-radius:8px;cursor:pointer;font-size:18px;line-height:1;color:var(--text-secondary);transition:border-color .15s ease,background .15s ease}.owner-actions-menu__trigger:hover{border-color:var(--border-accent);background:var(--bg-surface);color:var(--text-primary)}.owner-actions-menu__dropdown{position:absolute;top:calc(100% + 4px);right:0;min-width:180px;padding:4px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:8px;box-shadow:0 8px 24px -6px #00000040;z-index:30;display:flex;flex-direction:column;gap:2px}.owner-actions-menu__dropdown button{padding:8px 12px;border:0;background:transparent;text-align:left;font:inherit;color:var(--text-primary);border-radius:6px;cursor:pointer;transition:background .1s ease}.owner-actions-menu__dropdown button:hover{background:var(--bg-muted)}.owner-actions-menu__delete{color:var(--danger)!important}.owner-actions-menu__delete:hover{background:var(--danger-soft)!important}.course-outline{width:260px;flex-shrink:0;max-height:calc(100vh - 120px);overflow-y:auto;padding:12px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:10px;display:flex;flex-direction:column;gap:8px;box-sizing:border-box;position:sticky;top:72px}.course-outline__header{padding:0 4px}.course-outline__title{margin:0;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.course-outline__empty{margin:0;padding:16px 8px;text-align:center;color:var(--text-muted);font-size:13px;font-style:italic}.course-outline__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.course-outline__item{border-radius:8px;transition:background .15s ease}.course-outline__item--active,.course-outline__item[data-active=true]{background:var(--accent-soft)}.course-outline__item[data-dragged-over=true]{background:var(--accent-soft);outline:1px dashed var(--accent-primary)}.course-outline__row{display:flex;align-items:center;gap:4px;padding:2px}.course-outline__drag-handle{flex-shrink:0;width:20px;height:28px;padding:0;border:0;background:transparent;color:var(--text-muted);font-size:14px;cursor:grab;border-radius:4px;transition:color .15s ease,background .15s ease}.course-outline__drag-handle:hover{color:var(--text-primary);background:var(--bg-muted)}.course-outline__drag-handle:active,.course-outline__drag-handle[data-dragging=true]{cursor:grabbing;color:var(--accent-primary);background:var(--accent-soft)}.course-outline__drag-handle:disabled{opacity:.4;cursor:not-allowed}.course-outline__lesson-btn{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:6px 8px;border:0;background:transparent;text-align:left;cursor:pointer;border-radius:6px;font:inherit;color:var(--text-primary);transition:background .15s ease}.course-outline__lesson-btn:hover{background:var(--bg-muted)}.course-outline__item--active .course-outline__lesson-btn{background:transparent}.course-outline__lesson-btn[aria-current=true] .course-outline__lesson-title{color:var(--accent-primary);font-weight:600}.course-outline__lesson-title{font-size:13px;font-weight:500;color:var(--text-primary);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.course-outline__lesson-count{font-size:11px;color:var(--text-muted);font-variant-numeric:tabular-nums}.course-outline__expand{flex-shrink:0;width:24px;height:28px;padding:0;border:0;background:transparent;color:var(--text-muted);font-size:12px;cursor:pointer;border-radius:4px;transition:background .15s ease,color .15s ease}.course-outline__expand:hover{background:var(--bg-muted);color:var(--text-primary)}.course-outline__steps{list-style:none;padding:0 0 0 28px;display:flex;flex-direction:column;gap:1px;border-left:1px dashed var(--border-subtle);margin:0 0 4px 14px}.course-outline__step button{display:flex;align-items:center;gap:6px;width:100%;padding:4px 6px;border:0;background:transparent;text-align:left;cursor:pointer;border-radius:4px;font:inherit;color:var(--text-primary);transition:background .1s ease}.course-outline__step button:hover{background:var(--bg-muted)}.course-outline__step-icon{font-size:13px;flex-shrink:0}.course-outline__step-order{font-size:11px;font-weight:700;color:var(--text-muted);font-variant-numeric:tabular-nums;flex-shrink:0}.course-outline__step-type{font-size:12px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.course-outline__step--empty{padding:6px 8px;font-size:12px;color:var(--text-muted);font-style:italic}.course-outline__footer{padding-top:4px;border-top:1px solid var(--border-subtle);margin-top:4px}.course-outline__add-lesson{width:100%;padding:8px 10px;border:1px dashed var(--border-subtle);background:transparent;color:var(--text-link);border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease}.course-outline__add-lesson:hover:not(:disabled){border-color:var(--accent-primary);background:var(--accent-soft);color:var(--accent-primary)}.course-outline__add-lesson:disabled{opacity:.5;cursor:not-allowed}@media(max-width:960px){.course-outline{width:100%;max-width:100%;max-height:none;position:static}}.step-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:10px;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;overflow:hidden}.step-card:hover{border-color:var(--border-accent)}.step-card--expanded,.step-card[data-expanded=true]{border-color:var(--accent-primary);box-shadow:0 0 0 1px var(--accent-soft)}.step-card[data-dragged-over=true]{border-color:var(--accent-primary);background:var(--accent-soft);outline:1px dashed var(--accent-primary);outline-offset:-4px}.step-card__header{display:flex;align-items:center;gap:10px;padding:10px 12px;position:relative;min-height:48px}.step-card__drag-handle{flex-shrink:0;width:24px;height:32px;padding:0;border:0;background:transparent;color:var(--text-muted);font-size:16px;cursor:grab;border-radius:4px;transition:color .15s ease,background .15s ease}.step-card__drag-handle:hover{color:var(--text-primary);background:var(--bg-muted)}.step-card__drag-handle:active{cursor:grabbing;color:var(--accent-primary)}.step-card__icon{flex-shrink:0;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;font-size:18px;line-height:1;background:var(--bg-muted);border-radius:8px}.step-card__title-group{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.step-card__order{font-size:12px;font-weight:700;color:var(--text-muted);font-variant-numeric:tabular-nums;flex-shrink:0}.step-card__type-label{font-size:13px;font-weight:600;color:var(--text-primary);flex-shrink:0}.step-card__preview{font-size:12px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1 1 auto}.step-card__status-dot{flex-shrink:0;width:10px;height:10px;border-radius:50%;background:var(--border-mid);transition:background .15s ease,box-shadow .15s ease}.step-card__status-dot--idle{background:var(--border-mid)}.step-card__status-dot--saving{background:var(--accent-primary);animation:step-card-dot-pulse 1.4s ease-in-out infinite}.step-card__status-dot--saved{background:var(--success);box-shadow:0 0 0 3px var(--success-soft)}.step-card__status-dot--error{background:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}@keyframes step-card-dot-pulse{0%,to{box-shadow:0 0 0 0 var(--accent-soft);opacity:1}50%{box-shadow:0 0 0 5px var(--accent-soft);opacity:.6}}@media(prefers-reduced-motion:reduce){.step-card__status-dot--saving{animation:none;box-shadow:0 0 0 3px var(--accent-soft)}}.step-card__menu-trigger,.step-card__chevron{flex-shrink:0;width:32px;height:32px;padding:0;border:1px solid transparent;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:6px;font-size:18px;line-height:1;transition:background .15s ease,border-color .15s ease,color .15s ease}.step-card__menu-trigger:hover,.step-card__chevron:hover{background:var(--bg-muted);border-color:var(--border-subtle);color:var(--text-primary)}.step-card__menu{position:absolute;top:calc(100% - 4px);right:48px;min-width:160px;padding:4px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:8px;box-shadow:0 8px 24px -6px #00000040;display:flex;flex-direction:column;gap:2px;z-index:30}.step-card__menu button{padding:8px 10px;border:0;background:transparent;text-align:left;font:inherit;color:var(--text-primary);border-radius:6px;cursor:pointer;transition:background .1s ease}.step-card__menu button:hover{background:var(--bg-muted)}.step-card__menu-delete{color:var(--danger)!important}.step-card__menu-delete:hover{background:var(--danger-soft)!important}.step-card__body{padding:12px 14px 14px;border-top:1px solid var(--border-subtle);background:var(--bg-card);display:flex;flex-direction:column;gap:12px;animation:step-card-expand .18s ease-out}@keyframes step-card-expand{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.step-card__body{animation:none}}.step-card__unsupported{margin:0;padding:10px 12px;color:var(--warning);background:var(--warning-soft);border:1px solid var(--warning);border-radius:6px;font-size:13px}.step-card__preview-toggle{display:flex;justify-content:flex-start}.step-card__preview-toggle button{padding:6px 12px;font-size:13px;border-radius:6px;border:1px dashed var(--border-subtle);background:transparent;color:var(--text-link);cursor:pointer;transition:border-color .15s ease,background .15s ease}.step-card__preview-toggle button:hover{border-color:var(--accent-primary);background:var(--accent-soft)}.step-card__preview-body{padding:12px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:8px}@media(max-width:640px){.step-card__header{flex-wrap:wrap;padding:8px 10px;gap:8px;min-height:56px}.step-card__drag-handle,.step-card__menu-trigger,.step-card__chevron{width:40px;height:40px;font-size:18px}.step-card__icon{width:32px;height:32px}.step-card__preview{flex-basis:100%;order:10}.step-card__menu{right:12px;left:12px;min-width:0}}.delete-course-dialog__overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;padding:16px;z-index:200;animation:delete-dialog-overlay-in .15s ease-out}@keyframes delete-dialog-overlay-in{0%{opacity:0}to{opacity:1}}.delete-course-dialog{width:100%;max-width:460px;background:var(--bg-surface);border:1px solid var(--danger);border-radius:14px;padding:22px 24px;box-shadow:0 16px 48px -8px #00000080;display:flex;flex-direction:column;gap:14px;box-sizing:border-box;animation:delete-dialog-pop-in .18s ease-out}@keyframes delete-dialog-pop-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.delete-course-dialog__overlay,.delete-course-dialog{animation:none}}.delete-course-dialog__title{margin:0;font-size:18px;font-weight:700;color:var(--danger);line-height:1.3}.delete-course-dialog__body{margin:0;font-size:14px;color:var(--text-primary);line-height:1.5;overflow-wrap:anywhere}.delete-course-dialog__field{display:flex;flex-direction:column;gap:6px}.delete-course-dialog__field span{font-size:13px;color:var(--text-secondary);line-height:1.4}.delete-course-dialog__field input{padding:10px 12px;border:1px solid var(--border-subtle);border-radius:8px;background:var(--bg-canvas, var(--bg-surface));color:var(--text-primary);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:15px;letter-spacing:.04em;box-sizing:border-box;transition:border-color .15s ease,box-shadow .15s ease}.delete-course-dialog__field input:focus{outline:none;border-color:var(--text-link);box-shadow:0 0 0 3px var(--accent-soft)}.delete-course-dialog__field input:not(:placeholder-shown):invalid{border-color:var(--border-subtle)}.delete-course-dialog__field input[value=""],.delete-course-dialog__field input:placeholder-shown{border-color:var(--border-subtle)}.delete-course-dialog:has(.delete-course-dialog__confirm:not(:disabled)) .delete-course-dialog__field input{border-color:var(--success);box-shadow:0 0 0 3px var(--success-soft)}.delete-course-dialog:has(.delete-course-dialog__confirm:disabled) .delete-course-dialog__field input:not(:placeholder-shown){border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}.delete-course-dialog__actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:4px}.delete-course-dialog__actions button{min-height:40px;padding:8px 18px;border-radius:8px;border:1px solid var(--border-subtle);background:var(--bg-card);color:var(--text-primary);font-size:14px;font-weight:600;cursor:pointer;transition:border-color .15s ease,background .15s ease}.delete-course-dialog__actions button:hover:not(:disabled){border-color:var(--border-accent)}.delete-course-dialog__actions button:disabled{opacity:.5;cursor:not-allowed}.delete-course-dialog__confirm{color:var(--text-on-accent, #fff)!important;background:var(--danger)!important;border-color:var(--danger)!important}.delete-course-dialog__confirm:hover:not(:disabled){filter:brightness(1.08)}.delete-course-dialog__confirm:disabled{background:var(--bg-muted)!important;color:var(--text-muted)!important;border-color:var(--border-subtle)!important}@media(max-width:640px){.delete-course-dialog__overlay{align-items:flex-end;padding:0}.delete-course-dialog{max-width:100%;width:100%;border-radius:16px 16px 0 0;padding:18px 16px 24px;border-bottom:0;border-left:0;border-right:0;animation:delete-dialog-slide-up .22s ease-out}@keyframes delete-dialog-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.delete-course-dialog__actions{flex-direction:column-reverse}.delete-course-dialog__actions button{width:100%}}.my-courses-block__grid--skeleton{pointer-events:none}.my-courses-block__card--skeleton{display:flex;flex-direction:column;gap:8px;padding:14px 16px;min-height:120px;background:var(--bg-card, #f1f5f9);border:1px solid var(--border-subtle, #e2e8f0);border-radius:10px}.my-courses-block__skeleton-heading{width:30%;height:18px;margin:4px 0;background:var(--bg-muted, #e2e8f0);border-radius:4px}.my-courses-block__skeleton-title{width:70%;height:16px;background:var(--bg-muted, #e2e8f0);border-radius:4px}.my-courses-block__skeleton-line{width:100%;height:12px;background:var(--bg-muted, #e2e8f0);border-radius:4px}.my-courses-block__skeleton-line--short{width:50%}.community-strip-block--skeleton,.community-strip-block--placeholder,.community-strip-block__list--skeleton{pointer-events:none}.community-strip-block__card--skeleton{display:flex;flex-direction:column;gap:8px;padding:12px 14px;min-width:200px;min-height:90px;background:var(--bg-card, #f1f5f9);border:1px solid var(--border-subtle, #e2e8f0);border-radius:10px}.community-strip-block__skeleton-heading{width:30%;height:18px;margin:4px 0;background:var(--bg-muted, #e2e8f0);border-radius:4px}.community-strip-block__skeleton-title{width:70%;height:14px;background:var(--bg-muted, #e2e8f0);border-radius:4px}.community-strip-block__skeleton-line{width:100%;height:10px;background:var(--bg-muted, #e2e8f0);border-radius:4px}.curriculum-pillar-block--placeholder{min-height:200px}.diagram-editor{display:flex;flex-direction:column;gap:12px;padding:12px;background:var(--bg-muted, #f1f5f9);border:1px solid var(--border-subtle, #d1d5db);border-radius:8px}.diagram-editor__board{width:100%;max-width:360px;align-self:center;user-select:none;-webkit-user-select:none}.diagram-editor__mode-toggle{display:flex;gap:6px;align-self:stretch;justify-content:center}.diagram-editor__mode-btn{flex:1 1 auto;min-height:44px;min-width:88px;padding:10px 14px;font-family:inherit;font-size:14px;font-weight:500;background:var(--bg-default, #ffffff);border:1px solid var(--border-subtle, #d1d5db);border-radius:8px;color:var(--text-default, #1f2937);cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease}.diagram-editor__mode-btn:hover:not(:disabled){background:var(--bg-hover, #e2e8f0);border-color:var(--accent, #3b82f6)}.diagram-editor__mode-btn:focus-visible{outline:2px solid var(--accent, #3b82f6);outline-offset:2px}.diagram-editor__mode-btn--active{background:var(--tab-active-bg);color:var(--tab-active-fg);border-color:var(--tab-active-border)}.diagram-editor__mode-btn--active:hover:not(:disabled){background:var(--tab-active-hover-bg);color:var(--tab-active-fg)}.diagram-editor__tools{display:flex;flex-wrap:wrap;gap:6px}.diagram-editor__tool-btn{min-height:36px;padding:6px 12px;font-family:inherit;font-size:13px;background:var(--bg-default, #ffffff);border:1px solid var(--border-subtle, #d1d5db);color:var(--text-default, #1f2937);border-radius:6px;cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease}.diagram-editor__tool-btn:hover{background:var(--bg-hover, #e2e8f0);border-color:var(--accent, #3b82f6);color:var(--accent, #3b82f6)}.diagram-editor__tool-btn:focus-visible{outline:2px solid var(--accent, #3b82f6);outline-offset:2px}.diagram-editor__meta{display:flex;flex-wrap:wrap;gap:10px}.diagram-editor__caption-field,.diagram-editor__orientation-field{display:flex;flex-direction:column;gap:4px;flex:1 1 160px;min-width:0}.diagram-editor__field-label{font-size:12px;font-weight:500;color:var(--text-muted, #6b7280)}.diagram-editor__caption-input,.diagram-editor__orientation-select{min-height:36px;padding:6px 10px;font-family:inherit;font-size:14px;background:var(--bg-default, #ffffff);border:1px solid var(--border-subtle, #d1d5db);border-radius:6px;color:var(--text-default, #1f2937)}.diagram-editor__caption-input:focus-visible,.diagram-editor__orientation-select:focus-visible{outline:2px solid var(--accent, #3b82f6);outline-offset:1px;border-color:var(--accent, #3b82f6)}@media(min-width:768px){.diagram-editor{display:grid;grid-template-columns:minmax(280px,360px) minmax(220px,1fr);grid-template-rows:auto;grid-template-areas:"board tools" "board meta" "board fill";gap:12px 16px;align-items:start}.diagram-editor__board{grid-area:board;align-self:start;max-width:100%;width:100%}.diagram-editor__mode-toggle{grid-column:2;align-self:start}.diagram-editor__tools{grid-area:tools}.diagram-editor__meta{grid-area:meta;flex-direction:column;align-items:stretch}.diagram-editor__caption-field,.diagram-editor__orientation-field{flex:0 0 auto}}@media(max-width:480px){.diagram-editor{padding:10px;gap:10px}.diagram-editor__tools{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.diagram-editor__tools::-webkit-scrollbar{display:none}.diagram-editor__tool-btn{flex:0 0 auto;white-space:nowrap}.diagram-editor__caption-field,.diagram-editor__orientation-field{flex:1 1 100%}}@media(prefers-reduced-motion:reduce){.diagram-editor__mode-btn,.diagram-editor__tool-btn{transition:none}}.quiz-step-editor{display:flex;flex-direction:column;gap:12px}.quiz-step-editor__threshold input{width:100px}.quiz-step-editor__questions{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.quiz-question{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px;padding:8px;display:flex;flex-direction:column;gap:8px}.quiz-question--invalid{border-color:var(--danger, #ca3431)}.quiz-question__header{display:flex;align-items:center;gap:6px}.quiz-question__handle,.quiz-option__handle{background:transparent;border:1px solid var(--border-subtle);border-radius:4px;padding:2px 6px;cursor:grab;font-size:14px;color:var(--text-secondary, var(--text-primary))}.quiz-question__handle:active,.quiz-option__handle:active{cursor:grabbing}.quiz-question__toggle{background:transparent;border:none;cursor:pointer;font-size:13px;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;color:var(--text-primary)}.quiz-question__title{font-weight:600;font-size:13px}.quiz-question__badge{font-size:11px;padding:1px 6px;border-radius:4px;background:var(--bg-muted)}.quiz-question__badge--invalid{background:var(--danger, #ca3431);color:#fff}.quiz-question__spacer{flex:1 1 auto}.quiz-question__icon-btn{background:transparent;border:1px solid var(--border-subtle);border-radius:4px;padding:2px 6px;cursor:pointer;font-size:12px;color:var(--text-primary)}.quiz-question__icon-btn:hover:not(:disabled){background:var(--bg-muted)}.quiz-question__icon-btn--danger{color:var(--danger, #ca3431);border-color:var(--danger, #ca3431)}.quiz-question__body{display:flex;flex-direction:column;gap:8px}.quiz-question__field{display:flex;flex-direction:column;gap:2px}.quiz-question__field-label{font-size:12px;color:var(--text-muted, #6b7280)}.quiz-question__field input,.quiz-question__field textarea{background:var(--bg-default, #ffffff);border:1px solid var(--border-subtle, #d1d5db);color:var(--text-default, #1f2937);padding:4px 8px;border-radius:6px;font-size:13px;font-family:inherit}.quiz-question__input--invalid,.quiz-option__input--invalid{border-color:var(--danger, #ca3431)}.quiz-question__fen-block{display:flex;flex-direction:column;gap:4px;background:var(--bg-muted);border-radius:6px;padding:6px}.quiz-question__fen-header{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:600}.quiz-question__add-fen,.quiz-question__add-option,.quiz-step-editor__add-question{align-self:flex-start;background:var(--bg-default, #ffffff);border:1px dashed var(--border-subtle, #d1d5db);color:var(--text-default, #1f2937);padding:4px 12px;border-radius:6px;cursor:pointer;font-size:12px}.quiz-question__add-option:disabled{opacity:.4;cursor:not-allowed}.quiz-question__options-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.quiz-option{display:flex;align-items:center;gap:6px;padding:4px;background:var(--bg-default, #ffffff);border:1px solid var(--border-subtle);border-radius:6px}.quiz-option__input{flex:1 1 auto;background:transparent;border:1px solid var(--border-subtle);border-radius:4px;padding:4px 6px;font-size:13px;min-width:0}.quiz-option__correct{display:inline-flex;align-items:center;gap:4px;font-size:12px;white-space:nowrap}.quiz-option__remove{background:transparent;border:1px solid var(--danger, #ca3431);color:var(--danger, #ca3431);border-radius:4px;padding:2px 8px;cursor:pointer;font-size:12px}.my-courses-page{display:flex;flex-direction:column;gap:18px;padding:16px;max-width:1200px;margin:0 auto}.my-courses-page__breadcrumb{font-size:13px;color:var(--text-secondary)}.my-courses-page__breadcrumb a{color:inherit;text-decoration:none}.my-courses-page__breadcrumb a:hover{color:var(--text-primary);text-decoration:underline}.my-courses-page__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.my-courses-page__title-block{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1 1 auto}.my-courses-page__header h1{margin:0;font-size:24px;font-weight:700;line-height:1.25;color:var(--text-primary)}.my-courses-page__subtitle{margin:0;color:var(--text-secondary);font-size:14px;line-height:1.4}.my-courses-page__card-description--clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-clamp:2;overflow:hidden}@media(max-width:720px){.my-courses-page .my-courses-block__grid{display:grid;grid-template-columns:minmax(0,1fr);overflow-x:visible;scroll-snap-type:none;padding:0;margin-left:0;margin-right:0}.my-courses-page .my-courses-block__grid>*{flex:initial;max-width:none;scroll-snap-align:none}.my-courses-page__header{flex-direction:column;align-items:stretch}.my-courses-page__header h1{font-size:22px}}@media(min-width:721px)and (max-width:960px){.my-courses-page .my-courses-block__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.my-courses-page .my-courses-block__card{overflow:visible}.my-courses-page__card:has(.my-courses-page__menu){z-index:25}.my-courses-page__menu-item--danger{margin-top:4px;padding-top:10px;border-top:1px solid var(--border-subtle);border-radius:0 0 6px 6px}.my-courses-page__menu-item:focus-visible{outline:none;background:var(--bg-elevated, var(--accent-soft, rgba(99, 102, 241, .12)));box-shadow:0 0 0 2px var(--ov-accent-15, rgba(124, 131, 255, .25))}.my-courses-page__menu-item--danger:focus-visible{background:var(--danger-soft, rgba(220, 38, 38, .12));box-shadow:0 0 0 2px var(--danger, #dc2626)}.my-courses-page__action:focus-visible{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--ov-accent-15, rgba(124, 131, 255, .25))}.my-courses-page__card{position:relative;display:flex;flex-direction:column;overflow:visible}.my-courses-page__card--menu-open{z-index:25}.my-courses-page__actions{display:flex;flex-wrap:wrap;gap:6px;padding:10px 14px 14px;border-top:1px solid var(--border-subtle)}.my-courses-page__action{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-primary);border-radius:6px;padding:6px 10px;font-size:13px;font-weight:500;cursor:pointer;transition:background .12s ease,border-color .12s ease}.my-courses-page__action:hover:not(:disabled){background:var(--bg-elevated, var(--bg-surface));border-color:var(--text-secondary)}.my-courses-page__action:disabled{opacity:.55;cursor:not-allowed}.my-courses-page__action--more{margin-left:auto;padding:6px 8px;font-weight:600}.my-courses-page__action--icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;font-size:0;line-height:1;color:var(--text-secondary)}.my-courses-page__action--icon:hover:not(:disabled){color:var(--text-primary);background:var(--bg-elevated, var(--bg-surface));border-color:var(--text-secondary)}.my-courses-page__action--icon:focus-visible{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--ov-accent-15, rgba(124, 131, 255, .25));color:var(--text-primary)}.my-courses-page__action-icon{width:18px;height:18px;flex-shrink:0;display:block;pointer-events:none}.my-courses-page__action--icon.my-courses-page__action--more{padding:0}.my-courses-page__action--icon{position:relative}.my-courses-page__action--icon:after{content:attr(aria-label);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%) translateY(2px);padding:4px 8px;font-size:12px;font-weight:500;line-height:1.2;color:var(--text-on-accent, #fff);background:var(--c-1e293b, #1e293b);border-radius:4px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .12s ease,transform .12s ease;z-index:5}.my-courses-page__action--icon:hover:after,.my-courses-page__action--icon:focus-visible:after{opacity:1;transform:translate(-50%) translateY(0)}.my-courses-page__menu-root{position:relative;margin-left:auto}.my-courses-page__menu{position:absolute;right:0;top:calc(100% + 4px);min-width:180px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:8px;box-shadow:0 4px 16px #0000002e;display:flex;flex-direction:column;padding:4px;z-index:20}.my-courses-page__menu-item{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;text-align:left;padding:8px 10px;font-size:13px;color:var(--text-primary);border-radius:6px;cursor:pointer}.my-courses-page__menu-item:hover:not(:disabled){background:var(--bg-elevated, var(--accent-soft, rgba(99, 102, 241, .12)))}.my-courses-page__menu-item:disabled{opacity:.5;cursor:not-allowed}.my-courses-page__menu-item--danger{color:var(--danger)}.my-courses-page__menu-item--danger:hover:not(:disabled){background:var(--danger-soft, rgba(220, 38, 38, .12))}.my-courses-page__toast{position:fixed;right:24px;bottom:24px;padding:10px 14px;border-radius:10px;font-size:14px;font-weight:500;box-shadow:0 8px 22px #00000038;background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-subtle);max-width:320px;z-index:30;animation:my-courses-toast-in .18s ease-out}.my-courses-page__toast--success{border-color:var(--success, #16a34a);background:var(--success-soft, rgba(22, 163, 74, .12))}.my-courses-page__toast--error{border-color:var(--danger, #dc2626);background:var(--danger-soft, rgba(220, 38, 38, .12))}.my-courses-page__toast--info{border-color:var(--info, #2563eb);background:var(--info-soft, rgba(37, 99, 235, .12))}@keyframes my-courses-toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:720px){.my-courses-page__actions{padding:10px 12px 12px}.my-courses-page__toast{right:12px;bottom:12px;left:12px;max-width:none}}.lessons-author-cta-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:16px 0}.lessons-author-cta-row>.create-course-cta{margin:0}.my-courses-entry-cta{display:inline-flex;align-items:center;gap:6px;padding:10px 14px;border-radius:8px;background:var(--bg-surface);border:1px solid var(--border-subtle);color:var(--text-primary);font-size:14px;font-weight:600;text-decoration:none;transition:border-color .15s ease,background .15s ease;min-height:38px}.my-courses-entry-cta:hover,.my-courses-entry-cta:focus-visible{border-color:var(--accent-primary);background:var(--bg-elevated, var(--bg-surface))}.my-courses-entry-cta__count{color:var(--text-secondary);font-weight:500}.my-courses-entry-cta__arrow{margin-left:4px;font-weight:700;color:var(--accent-primary)}.my-courses-page__create-sticky,.my-courses-page__menu-item--mobile-only{display:none}@media(max-width:560px){.my-courses-page__create-header{display:none}.my-courses-page__actions{padding:8px 12px 12px}.my-courses-page__action--copy{display:none}.my-courses-page__action--icon{width:44px;height:44px}.my-courses-page__action-icon{width:22px;height:22px}.my-courses-page__menu-item--mobile-only{display:block}.my-courses-page__create-sticky{display:block;position:fixed;left:0;right:0;bottom:calc(56px + env(safe-area-inset-bottom,0px));padding:10px 12px;background:linear-gradient(to bottom,transparent 0,var(--bg-page, var(--bg-surface)) 12px);z-index:28}.my-courses-page[data-state=empty] .my-courses-page__create-sticky{display:none}.my-courses-page__create-sticky-btn{width:100%;min-height:44px;font-size:15px}.my-courses-page .my-courses-block__grid{padding-bottom:80px}}.lessons-tabs{display:inline-flex;align-items:center;gap:8px;margin-top:8px;padding:4px;background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:10px}.lessons-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;background:transparent;color:var(--text-secondary);border-radius:8px;padding:6px 14px;font-size:14px;font-weight:600;line-height:1.2;cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.lessons-tab:hover:not(.lessons-tab--active){color:var(--text-primary);background:var(--bg-surface)}.lessons-tab:focus-visible{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--ov-accent-15, rgba(124, 131, 255, .25))}.lessons-tab--active{color:var(--tab-active-fg);background:var(--tab-active-bg);border-color:var(--tab-active-border)}@media(max-width:480px){.lessons-tabs{width:100%;display:flex}.lessons-tab{flex:1 1 0;text-align:center}}.game-step-editor{display:flex;flex-direction:column;gap:12px}.game-step-editor__source-tabs{display:inline-flex;background:var(--bg-elevated, rgba(120, 140, 200, .08));border:1px solid var(--border-subtle);border-radius:8px;padding:2px;align-self:flex-start}.game-step-editor__tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;padding:6px 14px;font-size:13px;color:var(--text-secondary, #a0a0c0);border-radius:6px;cursor:pointer}.game-step-editor__tab--active{background:var(--accent-soft);color:var(--text-primary, #e0e0e0);box-shadow:inset 0 0 0 1px var(--accent-primary)}.game-step-editor__label{font-size:13px;font-weight:600;color:var(--text-primary, #e0e0e0)}.game-step-editor__textarea{width:100%;min-height:180px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;line-height:1.45;background:var(--bg-input, #0f172a);color:var(--text-primary, #e0e0e0);border:1px solid var(--border-subtle);border-radius:8px;padding:10px 12px;resize:vertical}.game-step-editor__textarea[data-invalid=true]{border-color:var(--danger)}.game-step-editor__search{width:100%;font-size:13px;padding:8px 10px;border-radius:8px;border:1px solid var(--border-subtle);background:var(--bg-input, #0f172a);color:var(--text-primary, #e0e0e0)}.game-step-editor__error{margin:0;font-size:12px;color:var(--danger, #f87171)}.game-step-editor__hint{margin:0;font-size:12px;color:var(--text-muted, #888)}.game-step-editor__warn{margin:0;font-size:12px;color:var(--c-f59e0b, #f59e0b)}.game-step-editor__analyses-list{list-style:none;margin:0;display:flex;flex-direction:column;gap:6px;max-height:320px;overflow-y:auto;border:1px solid var(--border-subtle);border-radius:8px;padding:6px}.game-step-editor__analysis-row{border-radius:6px;background:var(--bg-elevated, transparent)}.game-step-editor__analysis-row--selected{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent-primary)}.game-step-editor__analysis-btn{width:100%;text-align:left;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:inherit;cursor:pointer;padding:8px 10px;display:flex;flex-direction:column;gap:2px;font-family:inherit}.game-step-editor__analysis-title{font-weight:600;font-size:13px;color:var(--text-primary, #e0e0e0)}.game-step-editor__analysis-subtitle{font-size:12px;color:var(--text-secondary, #a0a0c0);font-variant-numeric:tabular-nums}.game-step-editor__analysis-event{font-size:11px;color:var(--text-muted, #888)}.lesson-game-step{display:flex;flex-direction:column;gap:16px;min-width:0;max-width:100%;width:100%;overflow-x:hidden}.lesson-game-step__viewer{border:1px solid var(--border-subtle);border-radius:10px;overflow:hidden;display:flex;flex-direction:column;height:min(720px,calc(100vh - 220px));min-height:480px}.lesson-game-step__viewer>.analysis-page{padding:0 0 8px}@media(max-width:767px){.user-lesson-page--focus .lesson-game-step__viewer>.analysis-page{padding:0}.user-lesson-page--focus .lesson-game-step__viewer .analysis-board-wrapper,.user-lesson-page--focus .lesson-game-step__viewer .analysis-board-area{gap:0}}@media(max-width:768px){.lesson-game-step__viewer{height:auto;min-height:0;overflow-x:hidden;overflow-y:visible;min-width:0;max-width:100%}.lesson-game-step__viewer .analysis-page{flex:0 0 auto;flex-direction:column;height:auto;min-height:0;overflow:visible;gap:0}.lesson-game-step__viewer .analysis-sidebar{flex:0 0 auto;width:100%;min-width:0;min-height:0;overflow:visible;align-self:stretch}.lesson-game-step__viewer .analysis-board-area{flex:0 0 100%;max-width:100%;width:100%;overflow:visible;gap:0}.lesson-game-step__viewer .analysis-board-wrapper{flex:0 0 auto;width:100%;min-height:0;overflow:visible}.lesson-game-step__viewer .board-container{flex:1 1 0%;aspect-ratio:1 / 1;width:auto;min-width:0;max-width:100%;align-self:flex-start}.lesson-game-step[data-sheet-snap] .board-container{flex:0 0 auto!important;width:min(var(--focus-board-h, 100%),100%)!important;height:auto!important;max-width:100%!important;aspect-ratio:1 / 1!important;min-width:0!important;align-self:center!important}.lesson-game-step__viewer .analysis-eval-board-row{flex:0 0 auto;width:100%;padding-right:0;box-sizing:border-box}.lesson-game-step__viewer .analysis-mobile-panel{flex:0 0 auto;width:100%;min-width:0;max-width:100%;min-height:0;overflow:hidden}.lesson-game-step__viewer .analysis-mobile-panel__content,.lesson-game-step__viewer .analysis-mobile-panel__content .analysis-panel-body,.lesson-game-step__viewer .analysis-mobile-panel__content .analysis-panel-body--scroll{overflow-x:hidden;overflow-y:visible;max-height:none;min-width:0;width:100%}}.lesson-game-step__actions{display:flex;justify-content:flex-end}.lesson-game-step__done{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--accent-primary);color:var(--text-on-accent, #fff);border:0;border-radius:8px;padding:10px 18px;font-size:14px;font-weight:600;cursor:pointer}.lesson-game-step__done:disabled{background:var(--success);color:var(--text-on-accent, #fff);cursor:default}.lesson-game-step--empty{padding:12px;border:1px dashed var(--border-subtle);border-radius:8px;color:var(--text-muted, #888)}.lesson-progress-pill{display:none;align-items:center;gap:8px;height:28px;padding:4px 12px;border-bottom:1px solid var(--border-subtle);background:var(--bg-surface);position:sticky;top:calc(44px + env(safe-area-inset-top,0px));z-index:90}.lesson-progress-pill__label{font-size:12px;font-weight:600;color:var(--text-primary, #e0e0e0);white-space:nowrap}.lesson-progress-pill__bar{flex:1 1 auto;height:4px;background:var(--ov-white-10);border-radius:2px;overflow:hidden;position:relative}.lesson-progress-pill__fill{position:absolute;left:0;top:0;bottom:0;background:var(--accent-primary, #7c83ff);border-radius:2px;transition:width .2s ease-out}@media(max-width:767px){.user-lesson-page--focus .user-lesson-page__breadcrumbs,.user-lesson-page--focus .user-lesson-page__header,.user-lesson-page--focus .lesson-progress-sticky,.user-lesson-page--focus .lesson-step__header{display:none}.user-lesson-page--focus .lesson-progress-pill{display:flex;position:static;top:auto}.user-lesson-page--focus .lesson-game-step__actions{position:sticky;bottom:0;background:var(--bg-surface);border-top:1px solid var(--border-subtle);box-shadow:0 -4px 16px var(--ov-black-20);padding:8px 12px;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px));z-index:80;margin:0;justify-content:stretch}.user-lesson-page--focus .lesson-game-step__done{width:100%;min-height:44px;font-size:15px}.user-lesson-page--focus .lesson-game-step__done:focus-visible{outline:2px solid var(--text-on-accent, #fff);outline-offset:-4px}.user-lesson-page--focus .lesson-step-list,.user-lesson-page--focus .lesson-step{margin:0;padding:0;gap:0}.user-lesson-page--focus{padding:0;gap:0}.user-lesson-page--focus .lesson-step{border:0;background:transparent;border-radius:0}.user-lesson-page--focus .game-meta-bar__mobile{height:18px;font-size:11px;padding:1px 8px}.user-lesson-page--focus .game-meta-bar__mobile .game-meta-bar__name{font-size:11px;overflow:hidden;text-overflow:ellipsis;max-width:30vw}.user-lesson-page--focus .lesson-game-step{gap:0}.user-lesson-page--focus .lesson-game-step__viewer{border:0;border-radius:0}.user-lesson-page--focus .lesson-game-step__viewer{max-height:calc(100dvh - 188px);overflow:visible}.app.focus-mode-active .analysis-mobile-panel[data-focus-sheet=true] .analysis-mobile-panel__content{flex:1 1 auto;min-height:0;overflow:hidden}.app.focus-mode-active .analysis-mobile-panel[data-focus-sheet=true] .analysis-mobile-section.active{overflow-y:auto;-webkit-overflow-scrolling:touch}.user-lesson-page--focus .lesson-game-step[data-sheet-snap=half] .lesson-game-step__actions,.user-lesson-page--focus .lesson-game-step[data-sheet-snap=full] .lesson-game-step__actions{display:none}.user-lesson-page--focus .lesson-game-step[data-sheet-snap=peek]{--lesson-sheet-h: 64px}.user-lesson-page--focus .lesson-game-step[data-sheet-snap=half]{--lesson-sheet-h: 50dvh}.user-lesson-page--focus .lesson-game-step[data-sheet-snap=full]{--lesson-sheet-h: 75dvh}.user-lesson-page--focus .lesson-game-step .analysis-board-controls{position:fixed!important;display:flex!important;left:0;right:0;bottom:calc(var(--lesson-sheet-h, 64px) + env(safe-area-inset-bottom,0px));z-index:95;background:var(--c-0f0f1e);border-top:1px solid var(--border-subtle);padding:4px 6px;height:44px;transition:bottom .2s ease-out}}:root{--lobby-radius-lg: 18px;--lobby-radius-md: 14px;--lobby-radius-sm: 10px;--lobby-easing: cubic-bezier(.2, .8, .2, 1);--lobby-transition: .15s ease-out;--lobby-shadow-rest: 0 2px 8px var(--ov-black-25);--lobby-shadow-hover: 0 12px 28px var(--ov-black-40);--lobby-p1-from: var(--c-7c83ff);--lobby-p1-to: var(--c-4f46e5);--lobby-p1-text: var(--c-fff);--lobby-p2-from: #ffb74d;--lobby-p2-to: #f59e0b;--lobby-p2-text: var(--c-1a1a2e);--lobby-p3-from: #4a6fa5;--lobby-p3-to: #2a3a6a;--lobby-p3-text: var(--c-fff);--lobby-p4-from: #e8e8f0;--lobby-p4-to: #c8d0e0;--lobby-p4-text: var(--c-1a1a2e)}:root[data-theme=light]{--lobby-shadow-rest: 0 2px 8px var(--ov-black-15);--lobby-shadow-hover: 0 12px 28px var(--ov-black-25);--lobby-p4-from: #f8f9ff;--lobby-p4-to: #e6e8f5}@keyframes lobby-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton,.lessons-hero__skeleton-block,.lessons-hero__skeleton-line,.lessons-hero__skeleton-cta,.curriculum-pillar-block__skeleton-title,.curriculum-pillar-block__skeleton-row,.community-strip-block__skeleton-heading,.community-strip-block__skeleton-title,.community-strip-block__skeleton-line{background:var(--bg-surface);background-image:linear-gradient(90deg,transparent 0%,var(--ov-white-08) 30%,var(--ov-white-15) 50%,var(--ov-white-08) 70%,transparent 100%);background-size:200% 100%;background-repeat:no-repeat;animation:lobby-shimmer 1.6s linear infinite;border-radius:6px;color:transparent;-webkit-user-select:none;user-select:none;pointer-events:none}.skeleton--text{height:12px;width:80%;border-radius:4px;margin:6px 0}.skeleton--text-lg{height:22px;width:60%;border-radius:6px;margin:8px 0}.skeleton--circle{border-radius:50%}.lessons-hero{position:relative;display:flex;flex-direction:column;gap:14px;padding:32px 36px;border-radius:var(--lobby-radius-lg);border:1px solid var(--ov-white-08);box-shadow:var(--lobby-shadow-rest);overflow:hidden;isolation:isolate;min-height:220px;margin-bottom:28px;background:var(--bg-deep);color:var(--text-primary)}.lessons-hero:before{content:"";position:absolute;inset:-40% -10% auto auto;width:60%;height:180%;background:radial-gradient(closest-side,var(--ov-white-15),transparent 70%);pointer-events:none;z-index:0}.lessons-hero>*{position:relative;z-index:1}.lessons-hero__eyebrow{display:inline-block;align-self:flex-start;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:999px;background:var(--ov-white-15);color:inherit}.lessons-hero__title{font-size:32px;font-weight:800;line-height:1.15;margin:0;color:inherit}.lessons-hero__subtitle{font-size:16px;line-height:1.5;margin:0;opacity:.9;color:inherit}.lessons-hero__progress{position:relative;width:100%;max-width:480px;height:8px;border-radius:999px;background:var(--ov-white-25);overflow:visible;margin-top:36px}.lessons-hero__progress-bar{position:absolute;inset:0 auto 0 0;background:var(--c-fff);border-radius:999px;transition:width .3s var(--lobby-easing)}.lessons-hero__progress-text{position:absolute;bottom:calc(100% + 6px);left:0;font-size:12px;font-weight:500;color:inherit;opacity:.9;white-space:nowrap;line-height:1}.lessons-hero__cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 28px;border-radius:12px;border:1px solid transparent;background:#fff;color:#1a1a2e;font-size:16px;font-weight:700;text-decoration:none;cursor:pointer;align-self:flex-start;transition:transform var(--lobby-transition),background var(--lobby-transition),box-shadow var(--lobby-transition);box-shadow:0 4px 12px var(--ov-black-30);margin-top:24px}.lessons-hero__cta:hover{background:var(--c-e0e0ff);box-shadow:0 8px 20px var(--ov-black-40);transform:translateY(-1px);text-decoration:none;color:var(--c-1a1a2e)}.lessons-hero__cta:active{transform:scale(.98)}.lessons-hero__cta:focus-visible{outline:none;box-shadow:0 8px 20px var(--ov-black-40),0 0 0 3px var(--ov-accent-35)}.lessons-hero__cta--secondary{background:transparent;color:inherit;border:1px solid var(--ov-white-35);box-shadow:none}.lessons-hero__cta--secondary:hover{background:var(--ov-white-10);color:inherit;box-shadow:none}.lessons-hero__cta-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:20px}.lessons-hero__cta-row .lessons-hero__cta{margin-top:0}.lessons-hero__link{font-size:14px;color:inherit;opacity:.9;text-decoration:none;border-bottom:1px solid var(--ov-white-35);padding-bottom:1px}.lessons-hero__link:hover{opacity:1;color:inherit}.lessons-hero--continue,.lessons-hero[data-state=continue]{background:linear-gradient(135deg,var(--lobby-p1-from) 0%,var(--lobby-p1-to) 100%);color:var(--lobby-p1-text)}.lessons-hero--author,.lessons-hero[data-state=author]{background:linear-gradient(135deg,var(--lobby-p4-from) 0%,var(--lobby-p4-to) 100%);color:var(--lobby-p4-text);border-color:var(--ov-black-08)}.lessons-hero--author .lessons-hero__cta,.lessons-hero[data-state=author] .lessons-hero__cta{background:var(--accent-primary);color:var(--c-fff)}.lessons-hero--author .lessons-hero__cta:hover,.lessons-hero[data-state=author] .lessons-hero__cta:hover{background:var(--accent-hover);color:var(--c-fff)}.lessons-hero--author .lessons-hero__eyebrow,.lessons-hero[data-state=author] .lessons-hero__eyebrow{background:var(--ov-black-15)}.lessons-hero--author .lessons-hero__cta--secondary,.lessons-hero[data-state=author] .lessons-hero__cta--secondary{border-color:var(--ov-black-25)}.lessons-hero--start,.lessons-hero[data-state=start]{background:linear-gradient(135deg,var(--lobby-p2-from) 0%,var(--lobby-p2-to) 100%);color:var(--lobby-p2-text)}.lessons-hero--start .lessons-hero__cta,.lessons-hero[data-state=start] .lessons-hero__cta{background:var(--c-1a1a2e);color:var(--c-fff)}.lessons-hero--start .lessons-hero__cta:hover,.lessons-hero[data-state=start] .lessons-hero__cta:hover{background:var(--c-2a2a4e);color:var(--c-fff)}.lessons-hero--start .lessons-hero__eyebrow,.lessons-hero[data-state=start] .lessons-hero__eyebrow{background:var(--ov-black-15)}.lessons-hero--guest,.lessons-hero[data-state=guest]{background:linear-gradient(135deg,var(--lobby-p3-from) 0%,var(--lobby-p3-to) 100%);color:var(--lobby-p3-text)}.lessons-hero--loading,.lessons-hero[data-state=loading]{background:var(--bg-deep);color:transparent;border-color:var(--ov-white-08);display:flex;flex-direction:column;gap:12px}.lessons-hero--loading:before,.lessons-hero[data-state=loading]:before{display:none}.lessons-hero__skeleton-block{height:28px;width:30%;border-radius:6px}.lessons-hero__skeleton-line{height:16px;width:70%;border-radius:4px}.lessons-hero__skeleton-line--short{width:45%}.lessons-hero__skeleton-cta{height:44px;width:180px;border-radius:12px;margin-top:12px}.curriculum-pillar-block{position:relative;padding:24px 28px;border-radius:var(--lobby-radius-lg);background:linear-gradient(135deg,var(--bg-deep) 0%,var(--bg-surface) 100%);border:1px solid var(--ov-accent-15);box-shadow:var(--lobby-shadow-rest);margin-bottom:28px}.curriculum-pillar-block__header{display:flex;flex-direction:column;gap:4px;margin-bottom:20px}.curriculum-pillar-block__title{font-size:20px;font-weight:700;margin:0;color:var(--text-primary)}.curriculum-pillar-block__subtitle{font-size:14px;color:var(--text-secondary);margin:0}.curriculum-pillar-block .lessons-level-section+.lessons-level-section{margin-top:24px}.curriculum-pillar-block .lessons-level-section{background:transparent;padding:0}.curriculum-pillar-block--loading,.curriculum-pillar-block--placeholder,.curriculum-pillar-block[data-state=loading]{display:flex;flex-direction:column;gap:14px;min-height:180px}.curriculum-pillar-block__skeleton-title{height:24px;width:40%;border-radius:6px}.curriculum-pillar-block__skeleton-row{height:80px;width:100%;border-radius:12px}.curriculum-pillar-block[data-state=error] .error,.curriculum-pillar-block[data-state=empty] .lessons-empty{padding:16px;border-radius:8px;background:var(--bg-muted);color:var(--text-secondary);text-align:center}.community-strip-block{margin-bottom:28px}.community-strip-block__header{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:14px;flex-wrap:wrap}.community-strip-block__header h2{font-size:18px;font-weight:700;margin:0;color:var(--text-primary)}.community-strip-block__view-all{font-size:14px;color:var(--accent-primary);text-decoration:none;font-weight:600}.community-strip-block__view-all:hover{text-decoration:underline;color:var(--accent-hover)}.community-strip-block__list{list-style:none;margin:0;padding:4px 4px 12px;display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:4px;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--ov-white-15) transparent;overscroll-behavior-x:contain}.community-strip-block__list::-webkit-scrollbar{height:4px}.community-strip-block__list::-webkit-scrollbar-thumb{background:var(--ov-white-15);border-radius:999px}.community-strip-block__list::-webkit-scrollbar-track{background:transparent}.community-strip-block__list>*{flex:0 0 auto;scroll-snap-align:start;scroll-snap-stop:always}@media(max-width:768px){.community-strip-block__list{padding:4px 16px 12px;margin-left:-16px;margin-right:-16px;scroll-padding-inline:16px}.community-strip-block__card,.community-strip-block__card--skeleton{width:240px}}.community-strip-block__card{width:220px;min-height:120px;background:var(--bg-deep);border:1px solid var(--border-subtle);border-radius:var(--lobby-radius-md);padding:16px;box-shadow:var(--lobby-shadow-rest);transition:transform var(--lobby-transition),border-color var(--lobby-transition),box-shadow var(--lobby-transition)}.community-strip-block__card:hover{transform:translateY(-2px);border-color:var(--ov-accent-35);box-shadow:var(--lobby-shadow-hover)}.community-strip-block__link{display:flex;flex-direction:column;height:100%;gap:12px;text-decoration:none;color:inherit}.community-strip-block__link:hover{text-decoration:none;color:inherit}.community-strip-block__card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.community-strip-block__card-title{font-size:15px;font-weight:700;margin:0;color:var(--text-primary);line-height:1.3;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.community-strip-block__badge-new{font-size:10px;font-weight:700;letter-spacing:.04em;padding:2px 6px;border-radius:4px;background:var(--ov-accent-15);color:var(--accent-primary);white-space:nowrap;flex-shrink:0}.community-strip-block__card-footer{margin-top:auto;font-size:12px;color:var(--text-secondary)}.community-strip-block--skeleton .community-strip-block__skeleton-heading,.community-strip-block--placeholder .community-strip-block__skeleton-heading{height:22px;width:200px;border-radius:6px}.community-strip-block__list--skeleton{pointer-events:none}.community-strip-block__card--skeleton{background:var(--bg-deep);border-color:var(--border-subtle);display:flex;flex-direction:column;gap:8px;width:220px;min-height:120px;padding:16px}.community-strip-block__skeleton-title{height:16px;width:80%;border-radius:4px}.community-strip-block__skeleton-line{height:12px;width:60%;border-radius:4px}.my-courses-block__card,.enrolled-courses-block__card,.latest-courses-block__card,.course-authors-block__card,.author-courses-block__card,.lessons-course-card{transition:transform var(--lobby-transition),box-shadow var(--lobby-transition),border-color var(--lobby-transition),background var(--lobby-transition);will-change:transform}.my-courses-block__card:hover,.enrolled-courses-block__card:hover,.latest-courses-block__card:hover,.course-authors-block__card:hover,.author-courses-block__card:hover,.lessons-course-card:hover{transform:translateY(-2px);box-shadow:var(--lobby-shadow-hover)}@media(min-width:641px)and (max-width:1024px){.lessons-course-grid,.my-courses-block__grid,.latest-courses-block__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1025px){.lessons-course-grid,.my-courses-block__grid,.latest-courses-block__grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}}@media(max-width:640px){.my-courses-block__grid,.latest-courses-block__grid,.course-authors-block__grid,.lessons-course-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:12px;padding:4px 16px 12px;margin-left:-16px;margin-right:-16px;grid-template-columns:none}.my-courses-block__grid>*,.latest-courses-block__grid>*,.course-authors-block__grid>*,.lessons-course-grid>*{flex:0 0 78%;max-width:320px;scroll-snap-align:start}}@media(max-width:768px){.lessons-hero{padding:24px 22px;min-height:0}.lessons-hero__title{font-size:24px}.lessons-hero__subtitle{font-size:14px}.lessons-hero__cta{padding:12px 22px;font-size:15px}.curriculum-pillar-block{padding:20px 18px}.curriculum-pillar-block__title{font-size:18px}}.lessons-hero--continue,.lessons-hero[data-state=continue]{display:grid;grid-template-columns:minmax(220px,38%) 1fr;grid-template-rows:1fr;gap:28px;align-items:stretch;padding:28px}.lessons-hero__cover{position:relative;aspect-ratio:4 / 3;width:100%;border-radius:14px;overflow:hidden;background:var(--ov-white-15);display:flex;align-items:center;justify-content:center;align-self:flex-start;box-shadow:0 8px 24px var(--ov-black-25)}.lessons-hero__cover img{width:100%;height:100%;object-fit:cover;display:block}.lessons-hero__cover--placeholder{background:linear-gradient(135deg,var(--ov-white-15) 0%,var(--ov-white-08) 100%)}.lessons-hero__cover-figure{font-size:clamp(72px,10vw,128px);line-height:1;color:var(--c-fff);opacity:.6;-webkit-user-select:none;user-select:none}.lessons-hero__body{display:flex;flex-direction:column;gap:12px;min-width:0}.lessons-hero__lesson-of{font-size:14px;line-height:1.4;margin:0;opacity:.92;color:inherit;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.lessons-hero__last-activity{font-size:13px;line-height:1.3;margin:0;opacity:.78;color:inherit}.lessons-hero--continue .lessons-hero__progress,.lessons-hero[data-state=continue] .lessons-hero__progress{margin-top:18px;margin-bottom:4px}.lessons-hero--continue .lessons-hero__cta,.lessons-hero[data-state=continue] .lessons-hero__cta{margin-top:auto}@media(max-width:768px){.lessons-hero--continue,.lessons-hero[data-state=continue]{grid-template-columns:1fr;grid-template-rows:auto auto;gap:16px;padding:20px}.lessons-hero__cover{aspect-ratio:16 / 9;align-self:stretch}.lessons-hero__cover-figure{font-size:clamp(72px,18vw,120px)}.lessons-hero--continue .lessons-hero__cta,.lessons-hero[data-state=continue] .lessons-hero__cta{margin-top:8px;align-self:stretch;justify-content:center}}.lessons-hero--multi,.lessons-hero[data-state=multi]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 24px;min-height:0;padding:20px 28px;background:linear-gradient(135deg,var(--lobby-p1-from) 0%,var(--lobby-p1-to) 100%);color:var(--lobby-p1-text)}.lessons-hero--multi .lessons-hero__eyebrow,.lessons-hero[data-state=multi] .lessons-hero__eyebrow{flex-basis:100%;margin-bottom:-2px}.lessons-hero--multi .lessons-hero__title,.lessons-hero[data-state=multi] .lessons-hero__title{font-size:22px;line-height:1.25;flex:1 1 60%;min-width:0}.lessons-hero--multi .lessons-hero__cta,.lessons-hero[data-state=multi] .lessons-hero__cta{margin-top:0;flex-shrink:0}@media(max-width:768px){.lessons-hero--multi,.lessons-hero[data-state=multi]{flex-direction:column;align-items:stretch;padding:18px 22px;gap:10px}.lessons-hero--multi .lessons-hero__title,.lessons-hero[data-state=multi] .lessons-hero__title{flex:1 1 auto}.lessons-hero--multi .lessons-hero__cta,.lessons-hero[data-state=multi] .lessons-hero__cta{align-self:stretch;justify-content:center}}.lessons-hero--start .lessons-hero__cta,.lessons-hero--start .lessons-hero__cta:link,.lessons-hero--start .lessons-hero__cta:visited,.lessons-hero[data-state=start] .lessons-hero__cta,.lessons-hero[data-state=start] .lessons-hero__cta:link,.lessons-hero[data-state=start] .lessons-hero__cta:visited{background:#1a1a2e;color:#fff;border-color:transparent}.lessons-hero--start .lessons-hero__cta:hover,.lessons-hero[data-state=start] .lessons-hero__cta:hover{background:#2a2a4e;color:#fff}.lessons-hero--start .lessons-hero__cta:active,.lessons-hero[data-state=start] .lessons-hero__cta:active{color:#fff}.lessons-hero--loading .lessons-hero__skeleton-block,.lessons-hero--loading .lessons-hero__skeleton-line,.lessons-hero--loading .lessons-hero__skeleton-cta,.lessons-hero[data-state=loading] .lessons-hero__skeleton-block,.lessons-hero[data-state=loading] .lessons-hero__skeleton-line,.lessons-hero[data-state=loading] .lessons-hero__skeleton-cta{background-image:none;background-color:var(--ov-white-15);animation:skeleton-pulse 1.5s ease-in-out infinite}.course-card{position:relative;display:flex;flex-direction:column;background:var(--bg-deep);border:1px solid var(--border-subtle);border-radius:var(--lobby-radius-md);overflow:hidden;box-shadow:var(--lobby-shadow-rest);height:100%;isolation:isolate;transition:transform var(--lobby-transition),box-shadow var(--lobby-transition),border-color var(--lobby-transition);will-change:transform}.course-card:hover{transform:translateY(-3px);border-color:var(--ov-accent-35);box-shadow:var(--lobby-shadow-hover)}.course-card:focus-within{border-color:var(--accent-primary);box-shadow:var(--lobby-shadow-hover),0 0 0 3px var(--ov-accent-35)}.course-card__link{display:flex;flex-direction:column;height:100%;text-decoration:none;color:inherit}.course-card__link:hover,.course-card__link:focus-visible,.course-card__link:visited{text-decoration:none;color:inherit}.course-card__link:focus-visible{outline:none}.course-card__cover{position:relative;aspect-ratio:4 / 3;width:100%;background:var(--bg-surface);overflow:hidden;display:flex;align-items:center;justify-content:center}.course-card__cover img{width:100%;height:100%;object-fit:cover;display:block}.course-card__cover--placeholder{background:linear-gradient(135deg,var(--ov-white-15) 0%,var(--ov-white-08) 100%)}.course-card__cover--placeholder[data-level=beginner]{background:linear-gradient(135deg,#4ade8038,#4ade800f)}.course-card__cover--placeholder[data-level=intermediate]{background:linear-gradient(135deg,#7c83ff3d,#7c83ff0f)}.course-card__cover--placeholder[data-level=advanced]{background:linear-gradient(135deg,#f8717138,#f871710f)}.course-card__cover-figure{font-size:clamp(48px,8vw,88px);line-height:1;-webkit-user-select:none;user-select:none;color:var(--text-primary);opacity:.72;text-shadow:0 2px 4px var(--ov-black-25)}.course-card__body{display:flex;flex-direction:column;gap:8px;padding:14px 16px 16px;flex:1 1 auto;min-width:0}.course-card__badges{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:2px;min-height:22px}.course-card__badge{display:inline-flex;align-items:center;font-size:11px;font-weight:600;letter-spacing:.02em;padding:3px 8px;border-radius:999px;background:var(--ov-white-08);color:var(--text-secondary);border:1px solid var(--border-subtle);white-space:nowrap;line-height:1.2}.course-card__badge--level-beginner{background:#4ade8029;color:#4ade80;border-color:#4ade8052}.course-card__badge--level-intermediate{background:#7c83ff2e;color:#7c83ff;border-color:#7c83ff5c}.course-card__badge--level-advanced{background:#f8717129;color:#f87171;border-color:#f8717152}.course-card__badge--duration{background:var(--ov-white-08);color:var(--text-secondary)}.course-card__badge-stars{display:inline-flex;align-items:center;gap:1px;font-size:12px;line-height:1;padding:2px 4px}.course-card__star--filled{color:#f59e0b}.course-card__star--empty{color:var(--ov-white-25)}.course-card__title{font-size:15px;font-weight:700;line-height:1.3;margin:0;color:var(--text-primary);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;word-break:break-word;min-height:39px}.course-card__audience{font-size:12px;line-height:1.35;margin:0;color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.course-card__progress{display:flex;flex-direction:column;gap:4px;margin-top:4px}.course-card__progress-track{position:relative;width:100%;height:4px;background:var(--ov-white-15);border-radius:999px;overflow:hidden}.course-card__progress-fill{position:absolute;inset:0 auto 0 0;background:var(--accent-primary);border-radius:999px;transition:width .3s var(--lobby-easing)}.course-card__progress-text{font-size:11px;font-weight:600;color:var(--text-secondary);letter-spacing:.02em}.course-card__cta{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;border-radius:8px;font-size:13px;font-weight:700;background:var(--accent-primary);color:var(--c-fff);border:1px solid transparent;align-self:flex-start;margin-top:auto;transition:background var(--lobby-transition),box-shadow var(--lobby-transition),color var(--lobby-transition)}.course-card:hover .course-card__cta{background:var(--accent-hover)}.course-card__cta[data-variant=preview]{background:transparent;color:var(--accent-primary);border-color:var(--ov-accent-35)}.course-card:hover .course-card__cta[data-variant=preview]{background:var(--ov-accent-15);color:var(--accent-primary)}.course-card__cta[data-variant=continue]{background:var(--accent-primary);color:var(--c-fff)}.course-card__tags{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:4px}.course-card__tag{font-size:11px;color:var(--text-secondary);padding:2px 6px;background:var(--ov-white-08);border-radius:4px;line-height:1.4}.recommended-courses-block{position:relative;margin:28px 0;padding-top:18px;border-top:1px solid var(--border-subtle)}.recommended-courses-block:first-child{border-top:none;padding-top:0}.recommended-courses-block__header{display:flex;flex-direction:column;gap:4px;margin-bottom:14px}.recommended-courses-block__title{margin:0;font-size:20px;font-weight:700;line-height:1.25;color:var(--text-primary);display:inline-flex;align-items:center;gap:10px}.recommended-courses-block__subtitle{margin:0;font-size:13px;line-height:1.4;color:var(--text-secondary)}.recommended-courses-block__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:16px}.recommended-courses-block__item{list-style:none;min-width:0}@media(min-width:641px){.recommended-courses-block__list{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.recommended-courses-block__list:has(>:only-child){grid-template-columns:minmax(0,minmax(260px,540px))}}.lessons-course-card-item{list-style:none;min-width:0}.recommended-courses-block__skeleton-title{height:22px;width:200px;border-radius:6px;margin-bottom:14px;background:var(--ov-white-15);animation:skeleton-pulse 1.5s ease-in-out infinite}.recommended-courses-block__skeleton-row{height:220px;width:100%;border-radius:var(--lobby-radius-md);background:var(--ov-white-15);animation:skeleton-pulse 1.5s ease-in-out infinite}@media(max-width:768px){.recommended-courses-block{margin:20px 0}.recommended-courses-block__title{font-size:17px}.recommended-courses-block__list{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:16px;-webkit-overflow-scrolling:touch;gap:12px;padding:4px 16px 12px;margin-left:-16px;margin-right:-16px;grid-template-columns:none;scrollbar-width:thin;scrollbar-color:var(--ov-white-15) transparent;overscroll-behavior-x:contain}.recommended-courses-block__list::-webkit-scrollbar{height:4px}.recommended-courses-block__list::-webkit-scrollbar-thumb{background:var(--ov-white-15);border-radius:999px}.recommended-courses-block__list::-webkit-scrollbar-track{background:transparent}.recommended-courses-block__list>*{flex:0 0 78%;max-width:320px;scroll-snap-align:start;scroll-snap-stop:always}}.my-active-courses-page{max-width:1200px;margin:0 auto;padding:16px 0 32px;display:flex;flex-direction:column;gap:18px}.my-active-courses-page__breadcrumb{display:flex;align-items:center;gap:6px;font-size:13px;line-height:1.3;color:var(--text-secondary);flex-wrap:wrap}.my-active-courses-page__breadcrumb a{color:var(--accent-primary);text-decoration:none;border-bottom:1px solid transparent;transition:border-color var(--lobby-transition)}.my-active-courses-page__breadcrumb a:hover{border-bottom-color:var(--accent-primary);text-decoration:none}.my-active-courses-page__breadcrumb [aria-current=page]{color:var(--text-primary);font-weight:600}.my-active-courses-page__header{display:flex;flex-direction:column;gap:6px;margin-bottom:4px}.my-active-courses-page__header h1{margin:0;font-size:28px;font-weight:800;line-height:1.15;color:var(--text-primary)}.my-active-courses-page__subtitle{margin:0;font-size:14px;line-height:1.4;color:var(--text-secondary)}.my-active-courses-page__list,.my-active-courses-page__list--skeleton{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:16px}.my-active-courses-page__item,.my-active-courses-page__item--skeleton{list-style:none;min-width:0;display:flex;flex-direction:column;gap:6px}@media(min-width:641px)and (max-width:1024px){.my-active-courses-page__list,.my-active-courses-page__list--skeleton{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}}@media(min-width:1025px){.my-active-courses-page__list,.my-active-courses-page__list--skeleton{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}}.my-active-courses-page__last-activity{font-size:12px;line-height:1.3;color:var(--text-secondary);padding:0 4px}.my-active-courses-page__item--skeleton{border:1px solid var(--border-subtle);border-radius:var(--lobby-radius-md);background:var(--bg-deep);padding:14px;gap:10px}.my-active-courses-page__skeleton-cover{aspect-ratio:4 / 3;width:100%;border-radius:10px;background:var(--ov-white-15);animation:skeleton-pulse 1.5s ease-in-out infinite}.my-active-courses-page__skeleton-line{height:14px;width:80%;border-radius:4px;background:var(--ov-white-15);animation:skeleton-pulse 1.5s ease-in-out infinite}.my-active-courses-page__skeleton-line--short{width:50%;height:12px}.my-active-courses-page__empty{display:flex;flex-direction:column;align-items:center;gap:14px;padding:48px 24px;text-align:center;border:1px dashed var(--border-subtle);border-radius:var(--lobby-radius-lg);background:var(--bg-deep)}.my-active-courses-page__empty p{margin:0;font-size:15px;color:var(--text-secondary);max-width:480px}.my-active-courses-page__empty-cta{display:inline-flex;align-items:center;justify-content:center;padding:10px 22px;border-radius:8px;background:var(--accent-primary);color:var(--c-fff);font-weight:700;font-size:14px;text-decoration:none;transition:background var(--lobby-transition),box-shadow var(--lobby-transition)}.my-active-courses-page__empty-cta:hover{background:var(--accent-hover);color:var(--c-fff);text-decoration:none;box-shadow:0 4px 12px var(--ov-accent-35)}.my-active-courses-page__error{padding:16px 20px;border-radius:var(--lobby-radius-md);background:#f871711a;border:1px solid rgba(248,113,113,.32);color:#f87171;font-size:14px;line-height:1.4;text-align:center}@media(max-width:640px){.my-active-courses-page{gap:14px;padding:12px 0 24px}.my-active-courses-page__header h1{font-size:22px}.my-active-courses-page__empty{padding:32px 18px}}@media(prefers-reduced-motion:reduce){.lessons-hero__cta,.lessons-hero__progress-bar,.my-courses-block__card,.enrolled-courses-block__card,.latest-courses-block__card,.course-authors-block__card,.author-courses-block__card,.lessons-course-card,.course-card,.course-card__cta,.course-card__progress-fill,.community-strip-block__card{transition:none!important;animation:none!important}.skeleton,.lessons-hero__skeleton-block,.lessons-hero__skeleton-line,.lessons-hero__skeleton-cta,.curriculum-pillar-block__skeleton-title,.curriculum-pillar-block__skeleton-row,.community-strip-block__skeleton-heading,.community-strip-block__skeleton-title,.community-strip-block__skeleton-line{animation:none!important;background-image:none;background-color:var(--bg-surface)}.lessons-hero__cta:hover,.lessons-hero__cta:active,.my-courses-block__card:hover,.enrolled-courses-block__card:hover,.latest-courses-block__card:hover,.course-authors-block__card:hover,.author-courses-block__card:hover,.lessons-course-card:hover,.course-card:hover,.community-strip-block__card:hover{transform:none!important}}.lobby-page{max-width:960px;margin:0 auto;padding:24px 16px 48px}.lobby-page__header{margin-bottom:24px}.lobby-page__header h1{margin:0 0 6px;font-size:26px;font-weight:700;color:var(--text-primary, var(--c-e0e0f0, #e0e0f0))}.lobby-page__subtitle{margin:0;font-size:14px;color:var(--c-a0a0c0, #a0a0c0)}.lobby-page__coming-soon{padding:32px;text-align:center;font-style:italic;color:var(--c-9e9e9e, #9e9e9e);background:var(--c-1a1a2e, #1a1a2e);border:1px solid var(--c-2a2a4a, #2a2a4a);border-radius:10px}.lobby-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.lobby-card{display:flex;align-items:center;gap:14px;padding:16px 18px;background:var(--c-1a1a2e, #1a1a2e);border:1px solid var(--c-2a2a4a, #2a2a4a);border-radius:10px;color:inherit;transition:border-color .15s,background .15s,transform .05s}.lobby-card,.lobby-card:hover,.lobby-card:focus,.lobby-card:focus-visible,.lobby-card:active,.lobby-card:visited{text-decoration:none}.lobby-card:hover{border-color:var(--c-7c83ff, #7c83ff);background:var(--ov-accent-10, rgba(124, 131, 255, .1))}.lobby-card:active{transform:translateY(1px)}.lobby-card__icon{font-size:28px;line-height:1;flex-shrink:0}.lobby-card__text{display:flex;flex-direction:column;gap:4px;min-width:0}.lobby-card__title{font-size:15px;font-weight:600;color:var(--text-primary, var(--c-e0e0f0, #e0e0f0))}.lobby-card__desc{font-size:13px;color:var(--c-a0a0c0, #a0a0c0)}.lobby-card__title,.lobby-card__desc,.lobby-card:hover .lobby-card__title,.lobby-card:hover .lobby-card__desc{text-decoration:none}.nav-onboarding-tooltip{position:fixed;right:16px;bottom:96px;z-index:60;max-width:360px;display:flex;gap:8px;align-items:flex-start;padding:12px 14px;background:var(--c-1a1a2e, #1a1a2e);color:var(--text-primary, var(--c-e0e0f0, #e0e0f0));border:1px solid var(--c-7c83ff, #7c83ff);border-radius:8px;box-shadow:0 8px 24px var(--ov-black-40, rgba(0, 0, 0, .4));font-size:13px}.nav-onboarding-tooltip__body{flex:1 1 auto;min-width:0}.nav-onboarding-tooltip__body strong{display:block;margin-bottom:4px;font-size:14px;color:var(--c-7c83ff, #7c83ff)}.nav-onboarding-tooltip__body p{margin:0 0 6px;color:var(--text-primary, var(--c-e0e0f0, #e0e0f0));line-height:1.35}.nav-onboarding-tooltip__link{color:var(--c-7c83ff, #7c83ff);text-decoration:underline}.nav-onboarding-tooltip__close{flex-shrink:0;width:24px;height:24px;background:transparent;border:0;color:var(--c-a0a0c0, #a0a0c0);font-size:20px;line-height:1;cursor:pointer;border-radius:4px}.nav-onboarding-tooltip__close:hover{background:var(--c-2a2a4a, #2a2a4a);color:var(--text-primary, var(--c-e0e0f0, #e0e0f0))}@media(max-width:600px){.nav-onboarding-tooltip{right:8px;left:8px;bottom:76px;max-width:none}}.puzzle-stats-page .mistakes-diary-block{background:var(--c-1e293b);border:1px solid var(--c-334155);border-left:4px solid var(--accent-primary);border-radius:8px;padding:16px 18px;margin-top:8px}.puzzle-stats-page .mistakes-diary-block__title{font-size:16px;color:var(--c-cbd5e1);font-weight:600}.puzzle-stats-page .mistakes-diary-block__total{color:var(--c-94a3b8)}.puzzle-stats-page .mistakes-diary-block__item{background:var(--c-0f172a);border:1px solid var(--c-334155);transition:transform var(--lobby-transition, .15s ease-out),border-color var(--lobby-transition, .15s ease-out),box-shadow var(--lobby-transition, .15s ease-out)}.puzzle-stats-page .mistakes-diary-block__item:hover{transform:translateY(-1px);border-color:var(--accent-primary);box-shadow:0 4px 12px var(--ov-black-30)}.puzzle-stats-page .mistakes-diary-block__theme{color:var(--c-e2e8f0)}.puzzle-stats-page .mistakes-diary-block__count{color:var(--accent-primary);font-weight:700}.puzzle-stats-page .mistakes-diary-block__cta{background:var(--accent-primary);color:var(--c-fff);padding:8px 16px;border-radius:8px;font-weight:600;font-size:13px;text-decoration:none;transition:background var(--lobby-transition, .15s ease-out),transform var(--lobby-transition, .15s ease-out)}.puzzle-stats-page .mistakes-diary-block__cta:hover{background:var(--accent-hover);transform:translateY(-1px);text-decoration:none;filter:none}.puzzle-stats-page .mistakes-diary-block__cta:active{transform:scale(.98)}.puzzle-stats-page .mistakes-diary-block__see-all{color:var(--accent-primary)}.mistakes-diary-block--compact,.mistakes-diary-hint{display:flex;flex-direction:column;gap:6px;background:transparent;border:none;border-left:none;padding:8px 0 4px;margin:0;color:var(--text-secondary)}.mistakes-diary-block--compact .mistakes-diary-block__header,.mistakes-diary-hint__header{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.mistakes-diary-block--compact .mistakes-diary-block__title,.mistakes-diary-hint__title{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary);margin:0}.mistakes-diary-block--compact .mistakes-diary-block__total,.mistakes-diary-hint__total{font-size:11px;color:var(--text-muted)}.mistakes-diary-block--compact .mistakes-diary-block__list,.mistakes-diary-hint__chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.mistakes-diary-block--compact .mistakes-diary-block__item,.mistakes-diary-hint__chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:var(--ov-white-05);border:1px solid var(--border-subtle);border-radius:999px;font-size:12px;color:var(--text-secondary);text-decoration:none;white-space:nowrap;transition:background var(--lobby-transition, .15s ease-out),border-color var(--lobby-transition, .15s ease-out),color var(--lobby-transition, .15s ease-out),transform var(--lobby-transition, .15s ease-out);cursor:pointer}.mistakes-diary-block--compact .mistakes-diary-block__item{flex-direction:row;justify-content:flex-start;align-items:center;gap:4px;border-left:none;background:var(--ov-white-05)}.mistakes-diary-block--compact .mistakes-diary-block__item-text{flex-direction:row;align-items:center;gap:4px}.mistakes-diary-block--compact .mistakes-diary-block__theme{font-size:12px;font-weight:500;color:var(--text-secondary)}.mistakes-diary-block--compact .mistakes-diary-block__count{font-size:11px;color:var(--text-muted);font-weight:600}.mistakes-diary-block--compact .mistakes-diary-block__count:before{content:"("}.mistakes-diary-block--compact .mistakes-diary-block__count:after{content:")"}.mistakes-diary-block--compact .mistakes-diary-block__meta{display:inline;font-size:11px;color:var(--text-muted)}.mistakes-diary-block--compact .mistakes-diary-block__last,.mistakes-diary-block--compact .mistakes-diary-block__cta{display:none}.mistakes-diary-block--compact .mistakes-diary-block__footer,.mistakes-diary-hint__footer{margin-top:4px}.mistakes-diary-block--compact .mistakes-diary-block__see-all,.mistakes-diary-hint__see-all{font-size:11px;color:var(--text-link);text-decoration:none}.mistakes-diary-block--compact .mistakes-diary-block__item:hover,.mistakes-diary-hint__chip:hover{background:var(--ov-accent-10);border-color:var(--ov-accent-35);color:var(--text-primary);transform:translateY(-1px);text-decoration:underline}.mistakes-diary-block--compact .mistakes-diary-block__item:hover .mistakes-diary-block__theme,.mistakes-diary-hint__chip:hover .mistakes-diary-hint__theme{color:var(--text-primary)}.mistakes-diary-block--compact .mistakes-diary-block__item:focus-visible,.mistakes-diary-hint__chip:focus-visible{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--ov-accent-25);text-decoration:none}.mistakes-diary-block--compact .mistakes-diary-block__item:active,.mistakes-diary-hint__chip:active{transform:scale(.98)}.mistakes-diary-hint__see-all:hover{text-decoration:underline}@media(max-width:640px){.mistakes-diary-block--compact .mistakes-diary-block__list,.mistakes-diary-hint__chips{flex-wrap:wrap;flex-direction:row;gap:6px}.mistakes-diary-block--compact .mistakes-diary-block__item,.mistakes-diary-hint__chip{flex-direction:row;align-items:center;max-width:calc(50% - 3px);overflow:hidden;text-overflow:ellipsis}}.puzzle-board-area .mistakes-diary-block--compact,.puzzle-board-area .mistakes-diary-hint,.puzzle-page .mistakes-diary-block--compact,.puzzle-page .mistakes-diary-hint{max-width:560px;width:100%;margin:12px auto 0}@media(prefers-reduced-motion:reduce){.puzzle-stats-page .mistakes-diary-block__item,.puzzle-stats-page .mistakes-diary-block__cta,.mistakes-diary-block--compact .mistakes-diary-block__item,.mistakes-diary-hint__chip{transition:none!important;animation:none!important}.puzzle-stats-page .mistakes-diary-block__item:hover,.puzzle-stats-page .mistakes-diary-block__cta:hover,.puzzle-stats-page .mistakes-diary-block__cta:active,.mistakes-diary-block--compact .mistakes-diary-block__item:hover,.mistakes-diary-block--compact .mistakes-diary-block__item:active,.mistakes-diary-hint__chip:hover,.mistakes-diary-hint__chip:active{transform:none!important}}.docs-page{display:grid;grid-template-columns:minmax(220px,260px) minmax(0,1fr);gap:32px;max-width:1180px;margin:0 auto;padding:24px 20px 80px}.docs-page--error{grid-template-columns:1fr;text-align:center;padding-top:64px}.docs-toc{position:relative}.docs-toc__inner{position:sticky;top:16px;padding:12px 14px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:10px;max-height:calc(100vh - 32px);overflow-y:auto}.docs-toc__title{margin:0 0 8px;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary)}.docs-toc__list{margin:0;padding-left:20px;font-size:14px}.docs-toc__list li{margin:4px 0}.docs-toc__list a{color:var(--text-primary);text-decoration:none}.docs-toc__list a:hover{color:var(--accent-primary);text-decoration:underline}.docs-article{min-width:0}.docs-fallback-banner{margin-bottom:16px;padding:8px 12px;font-size:13px;color:var(--text-secondary);background:var(--bg-muted);border:1px solid var(--border-subtle);border-radius:6px}.docs-content{max-width:760px;font-size:15px;line-height:1.65;color:var(--text-primary)}.docs-content h1,.docs-content h2,.docs-content h3,.docs-content h4,.docs-content h5,.docs-content h6{margin:1.6em 0 .5em;font-weight:700;line-height:1.3;scroll-margin-top:16px}.docs-content h1{margin-top:.2em;font-size:28px}.docs-content h2{font-size:22px;border-bottom:1px solid var(--border-subtle);padding-bottom:6px}.docs-content h3{font-size:18px}.docs-content h4{font-size:16px;color:var(--text-secondary)}.docs-content p{margin:.8em 0}.docs-content a{color:var(--accent-primary);text-decoration:none}.docs-content a:hover{text-decoration:underline}.docs-content code{font-family:JetBrains Mono,Menlo,monospace;font-size:.9em;padding:1px 6px;border-radius:4px;background:var(--bg-muted);color:var(--text-primary)}.docs-content pre{margin:1em 0;padding:12px 14px;border-radius:8px;background:var(--bg-muted);border:1px solid var(--border-subtle);overflow-x:auto}.docs-content pre code{background:transparent;padding:0;font-size:13px;line-height:1.5;white-space:pre}.docs-content blockquote{margin:1em 0;padding:8px 14px;border-left:3px solid var(--accent-primary, #4d8aff);background:var(--bg-card);color:var(--text-secondary);border-radius:0 8px 8px 0}.docs-content blockquote p{margin:.4em 0}.docs-content ul,.docs-content ol{margin:.6em 0;padding-left:28px}.docs-content li{margin:4px 0}.docs-content li>ul,.docs-content li>ol{margin:4px 0}.docs-content hr{border:0;border-top:1px solid var(--border-subtle);margin:2em 0}.docs-content img{display:block;max-width:100%;height:auto;border-radius:8px;border:1px solid var(--border-subtle);margin:.5em 0}.docs-figure{margin:1.2em 0}.docs-figure figcaption{margin-top:6px;text-align:center;font-size:13px;color:var(--text-secondary);font-style:italic}.docs-table-wrap{margin:1em 0;overflow-x:auto;border:1px solid var(--border-subtle);border-radius:8px}.docs-table{width:100%;border-collapse:collapse;font-size:14px}.docs-table th,.docs-table td{padding:8px 12px;text-align:left;vertical-align:top;border-bottom:1px solid var(--border-subtle)}.docs-table th{background:var(--bg-muted);font-weight:600}.docs-table tr:last-child td{border-bottom:0}@media(max-width:900px){.docs-page{grid-template-columns:1fr;gap:16px;padding:16px 14px 64px}.docs-toc__inner{position:static;max-height:none}.docs-content{font-size:14px}.docs-content h1{font-size:24px}.docs-content h2{font-size:19px}}.admin-feature-flags-page{padding:24px 32px;max-width:960px;margin:0 auto;color:var(--c-e0e0e0)}.admin-feature-flags-page__header{margin-bottom:24px}.admin-feature-flags-page__header h1{font-size:24px;margin:0 0 6px}.admin-feature-flags-page__subtitle{color:var(--c-9aa);margin:0;font-size:14px}.admin-feature-flags-table{width:100%;border-collapse:collapse;font-size:14px}.admin-feature-flags-table th,.admin-feature-flags-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--c-1f2937);vertical-align:top}.admin-feature-flags-table th{background:var(--c-111827);font-weight:600;color:var(--c-e0e0e0)}.admin-feature-flags-table code{background:var(--c-1f2937);padding:2px 6px;border-radius:4px;font-size:13px}.admin-feature-flags-toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.admin-feature-flags-toggle input{width:18px;height:18px;cursor:pointer}.admin-feature-flags-saved{margin-left:10px;color:var(--c-16a34a, #16a34a);font-size:12px}:root{--drill-role-target: rgba(255, 230, 0, .45);--drill-role-correct: rgba(34, 197, 94, .4);--drill-role-missed: rgba(148, 163, 184, .45);--drill-role-wrong: rgba(220, 38, 38, .4);--drill-role-context: rgba(59, 130, 246, .3);--drill-arrow-correct-attack: #16a34a;--drill-arrow-missed-attack: #94a3b8;--drill-arrow-wrong-attack: #dc2626;--drill-arrow-correct-move: #16a34a;--drill-arrow-pin-line: #f97316;--drill-arrow-defense: #3b82f6;--drill-arrow-threat-target: #dc2626}html[data-theme=light]{--drill-role-target: rgba(234, 179, 8, .5);--drill-role-correct: rgba(22, 163, 74, .42);--drill-role-missed: rgba(100, 116, 139, .42);--drill-role-wrong: rgba(220, 38, 38, .42);--drill-role-context: rgba(37, 99, 235, .3);--drill-arrow-correct-attack: #15803d;--drill-arrow-missed-attack: #64748b;--drill-arrow-wrong-attack: #b91c1c;--drill-arrow-correct-move: #15803d;--drill-arrow-pin-line: #ea580c;--drill-arrow-defense: #1d4ed8;--drill-arrow-threat-target: #b91c1c}.drill-type-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;width:100%;min-height:120px;padding:16px 18px;background:var(--bg-surface);border:1px solid var(--border-mid);border-radius:10px;color:var(--text-primary);font-family:inherit;text-align:left;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,transform .12s ease,box-shadow .15s ease;box-shadow:var(--shadow-sm)}.drill-type-card:hover:not(:disabled){background:var(--bg-elevated);border-color:var(--border-accent);transform:translateY(-1px);box-shadow:var(--shadow-md)}.drill-type-card:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.drill-type-card:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-sm)}.drill-type-card:disabled,.drill-type-card[data-disabled=true]{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.drill-type-card__icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;background:var(--accent-soft);color:var(--accent-primary);font-size:22px;margin-bottom:2px;flex-shrink:0}.drill-type-card__preview{display:block;width:140px;height:140px;margin:0 auto 4px;border-radius:6px;overflow:hidden;background:var(--bg-surface, #f9fafb);flex-shrink:0;align-self:center}.drill-type-card__preview .puzzle-mini-board{width:100%;height:100%;display:block}.drill-type-card[data-has-preview=true]{align-items:center;text-align:center}.drill-type-card[data-has-preview=true] .drill-type-card__title,.drill-type-card[data-has-preview=true] .drill-type-card__desc{width:100%;text-align:center}.drill-type-card__title{font-size:16px;font-weight:600;line-height:1.25;color:var(--text-primary)}.drill-type-card__desc{font-size:13px;line-height:1.4;color:var(--text-secondary)}.drill-type-card__badge{position:absolute;top:12px;right:12px;padding:2px 8px;background:var(--accent-soft);color:var(--accent-primary);border-radius:999px;font-size:11px;font-weight:500;letter-spacing:.2px;text-transform:uppercase}.drill-board{position:relative;width:100%;aspect-ratio:1 / 1;max-width:640px;margin:0 auto}.drill-board__overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;display:flex;align-items:center;justify-content:center}.drill-feedback{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;border-radius:4px;animation:drill-feedback-in .2s ease-out}.drill-feedback--correct{background:#16a34a2e;box-shadow:inset 0 0 0 2px #16a34a8c}.drill-feedback--incorrect{background:#dc26262e;box-shadow:inset 0 0 0 2px #dc26268c}@keyframes drill-feedback-in{0%{opacity:0}to{opacity:1}}.drill-instructions{display:block;padding:12px 14px;border:1px solid var(--border-mid);border-radius:8px;background:var(--bg-surface);color:var(--text-primary);font-size:14px;line-height:1.45;border-left-width:4px}.drill-instructions--info{border-left-color:var(--accent-primary)}.drill-instructions--success{border-left-color:var(--success-strong);background:var(--ov-success-15-alt)}.drill-instructions--error{border-left-color:var(--danger-strong);background:var(--danger-soft)}.drill-count-attackers{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px}.drill-count-attackers__btn{flex-shrink:0;width:56px;height:56px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-family:inherit;font-size:22px;font-weight:600;line-height:1;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:10px;color:var(--text-primary);cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease,transform .1s ease}.drill-count-attackers__btn:hover:not(:disabled){background:var(--bg-elevated);border-color:var(--accent-primary)}.drill-count-attackers__btn:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.drill-count-attackers__btn:active:not(:disabled){transform:scale(.96)}.drill-count-attackers__btn--active,.drill-count-attackers__btn[data-active=true]{background:var(--tab-active-bg);border-color:var(--tab-active-border);color:var(--tab-active-fg)}.drill-count-attackers__btn:disabled{opacity:.4;cursor:not-allowed}.drill-runner__board-and-panel{display:flex;flex-direction:column;gap:16px;align-items:stretch}@media(min-width:768px){.drill-runner__board-and-panel{flex-direction:row;align-items:flex-start}.drill-runner__board-and-panel>.drill-board{flex:1 1 auto;min-width:0}}.drill-explanation-panel{display:flex;flex-direction:column;gap:12px;padding:14px 16px;background:var(--bg-surface);border:1px solid var(--border-mid);border-radius:10px;color:var(--text-primary);flex:1 1 auto;animation:drill-explanation-panel-in .2s ease-out}@media(min-width:768px){.drill-explanation-panel{flex:0 0 320px;max-width:360px;position:sticky;top:16px;align-self:flex-start}}.drill-explanation-panel--correct{border-left:4px solid var(--success-strong)}.drill-explanation-panel--incorrect{border-left:4px solid var(--danger-strong)}.drill-explanation-panel__title{margin:0;font-size:18px;font-weight:600;line-height:1.25}.drill-explanation-panel--correct .drill-explanation-panel__title{color:var(--success-strong)}.drill-explanation-panel--incorrect .drill-explanation-panel__title{color:var(--danger-strong)}.drill-explanation-panel__notes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.drill-explanation-panel__note{display:flex;align-items:flex-start;gap:10px;padding:8px 10px;background:var(--bg-elevated);border-radius:8px;font-size:14px;line-height:1.45}.drill-explanation-panel__note--success{border-left:3px solid var(--success-strong)}.drill-explanation-panel__note--missed{border-left:3px solid var(--text-muted, #94a3b8)}.drill-explanation-panel__note--wrong{border-left:3px solid var(--danger-strong)}.drill-explanation-panel__note--info{border-left:3px solid var(--accent-primary)}.drill-explanation-panel__note-glyph{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;font-size:14px;font-weight:700;line-height:1;margin-top:1px}.drill-explanation-panel__note--success .drill-explanation-panel__note-glyph{color:var(--success-strong)}.drill-explanation-panel__note--missed .drill-explanation-panel__note-glyph{color:var(--text-muted, #94a3b8)}.drill-explanation-panel__note--wrong .drill-explanation-panel__note-glyph{color:var(--danger-strong)}.drill-explanation-panel__note--info .drill-explanation-panel__note-glyph{color:var(--accent-primary)}.drill-explanation-panel__note-text{flex:1 1 auto;word-break:break-word}.drill-explanation-panel__next{align-self:stretch;padding:10px 16px;min-height:44px;font-family:inherit;font-size:14px;font-weight:600;background:var(--accent-primary);color:var(--text-on-accent);border:0;border-radius:8px;cursor:pointer;transition:background-color .12s ease,transform .1s ease}.drill-explanation-panel__next:hover:not(:disabled){background:var(--accent-hover)}.drill-explanation-panel__next:active:not(:disabled){transform:scale(.985)}.drill-explanation-panel__next:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}@keyframes drill-explanation-panel-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.drill-explanation-panel{animation:none}.drill-explanation-panel__next{transition:none}}.drill-runner__side,.find-all-checks-runner__side{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;min-height:32px;margin:0 0 8px;padding:6px 14px 6px 12px;background:var(--bg-elevated);border:1px solid var(--border-mid);border-radius:999px;font-size:13px;font-weight:500;line-height:1.2;color:var(--text-primary);text-transform:none;letter-spacing:0;box-sizing:border-box}.drill-runner__side:before,.find-all-checks-runner__side:before{content:"";display:inline-block;width:14px;height:14px;border-radius:50%;border:1px solid var(--border-strong);background:#fff;flex-shrink:0}.drill-runner__side[data-side=b]:before,.find-all-checks-runner__side[data-side=b]:before{background:#1a1a1a}.drill-runner__stats{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 12px;padding:10px 14px;background:var(--bg-elevated, var(--c-1e293b));border:1px solid var(--border-mid, var(--c-2a2a4e, #2a2a4e));border-radius:8px}.drill-runner__stats-cell{display:flex;flex-direction:column;gap:2px;min-width:72px;flex:1 1 auto}.drill-runner__stats-value{font-size:20px;font-weight:700;line-height:1.1;color:var(--text-primary, var(--c-e2e8f0));font-variant-numeric:tabular-nums}.drill-runner__stats-label{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--text-secondary, var(--c-94a3b8))}@media(max-width:480px){.drill-runner__stats{gap:8px;padding:8px 10px}.drill-runner__stats-cell{min-width:60px}.drill-runner__stats-value{font-size:17px}.drill-runner__stats-label{font-size:10px;letter-spacing:.5px}}.drill-runner__nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.drill-runner__nav-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:36px;padding:6px 12px;font-family:inherit;font-size:13px;font-weight:500;background:var(--bg-surface);border:1px solid var(--border-mid);border-radius:8px;color:var(--text-primary);cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease}.drill-runner__nav-btn:hover:not(:disabled){background:var(--bg-elevated);border-color:var(--accent-primary);color:var(--accent-primary)}.drill-runner__nav-btn:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.drill-runner__nav-btn:disabled{opacity:.4;cursor:not-allowed}@media(max-width:768px){.drill-runner__nav-btn{min-height:44px;padding:8px 14px;font-size:14px}}.drills-lobby{max-width:1080px;margin:0 auto;padding:24px 20px 48px;color:var(--text-primary)}.drills-lobby__title{margin:0 0 4px;font-size:28px;font-weight:700}.drills-lobby__subtitle{margin:0 0 24px;font-size:14px;color:var(--text-secondary)}.drills-lobby__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.drills-lobby__sprint-cta{display:grid;grid-template-columns:2fr 1fr;gap:12px;margin:0 0 24px}.drills-lobby__sprint-cta-card{display:flex;flex-direction:column;justify-content:space-between;gap:12px;padding:16px 18px;background:var(--bg-surface);border:1px solid var(--border-mid);border-radius:10px;box-shadow:var(--shadow-sm)}.drills-lobby__sprint-cta-card--primary{background:var(--accent-soft);border-color:var(--accent-primary);flex-direction:row;align-items:center;flex-wrap:wrap;gap:16px}.drills-lobby__sprint-cta-preview{width:120px;height:120px;flex-shrink:0;border-radius:6px;overflow:hidden}.drills-lobby__sprint-cta-preview .puzzle-mini-board{width:100%;height:100%;display:block}.drills-lobby__sprint-cta-card--primary .drills-lobby__sprint-cta-text{flex:1 1 auto;min-width:200px}.drills-lobby__sprint-cta-text{display:flex;flex-direction:column;gap:4px}.drills-lobby__sprint-cta-title{margin:0;font-size:18px;font-weight:600;color:var(--text-primary)}.drills-lobby__sprint-cta-description{margin:0;font-size:13px;line-height:1.4;color:var(--text-secondary)}.drills-lobby__sprint-cta-button{align-self:flex-start;padding:10px 18px;min-height:40px;font-family:inherit;font-size:14px;font-weight:600;background:transparent;border:1px solid var(--border-mid);border-radius:8px;color:var(--text-primary);cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease,transform .1s ease}.drills-lobby__sprint-cta-button:hover:not(:disabled){background:var(--bg-elevated);border-color:var(--accent-primary);color:var(--accent-primary)}.drills-lobby__sprint-cta-button:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.drills-lobby__sprint-cta-button:active:not(:disabled){transform:scale(.985)}.drills-lobby__sprint-cta-button--primary{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-on-accent)}.drills-lobby__sprint-cta-button--primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:var(--text-on-accent)}.drill-page{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;max-width:1080px;margin:0 auto;padding:16px 16px 32px;align-items:start}.drill-page__board{min-width:0}.drill-page__sidebar{display:flex;flex-direction:column;gap:12px}.drill-page__answer{display:flex;flex-direction:column;gap:10px}@media(max-width:768px){.drills-lobby{padding:16px 12px 32px}.drills-lobby__title{font-size:22px}.drills-lobby__grid{grid-template-columns:1fr;gap:12px}.drills-lobby__sprint-cta{grid-template-columns:1fr;gap:10px;margin-bottom:16px}.drills-lobby__sprint-cta-button{align-self:stretch;min-height:44px;text-align:center}.drill-type-card{min-height:88px;padding:14px 16px}.drill-type-card__title{font-size:15px}.drill-type-card__desc{font-size:13px}.drill-type-card__preview{width:min(140px,50%);height:auto;aspect-ratio:1 / 1;max-width:180px}.drill-page{grid-template-columns:minmax(0,1fr);padding:8px 8px 24px;gap:12px}.drill-page__sidebar{gap:10px}.drill-board{max-width:min(100vw - 16px,calc(100vh - 240px))}.drill-count-attackers{gap:10px}.drill-count-attackers__btn{width:64px;height:64px;font-size:24px;border-radius:12px}.drill-instructions{font-size:13px;padding:10px 12px}}.drill-sprint-setup{max-width:720px;margin:0 auto;padding:24px 20px 48px;color:var(--text-primary);display:flex;flex-direction:column;gap:20px}.drill-sprint-setup__header{display:flex;flex-direction:column;gap:4px}.drill-sprint-setup__title{margin:0;font-size:28px;font-weight:700}.drill-sprint-setup__subtitle{margin:0;font-size:14px;color:var(--text-secondary);line-height:1.4}.drill-sprint-setup__duration,.drill-sprint-setup__types{border:1px solid var(--border-mid);border-radius:10px;padding:14px 16px;background:var(--bg-surface)}.drill-sprint-setup__duration legend,.drill-sprint-setup__types legend{padding:0 6px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary)}.drill-sprint-setup__duration{display:flex;flex-wrap:wrap;gap:12px}.drill-sprint-setup__duration-option{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;min-height:44px;background:var(--bg-canvas);border:1px solid var(--border-mid);border-radius:8px;font-size:14px;cursor:pointer;transition:background-color .12s ease,border-color .12s ease}.drill-sprint-setup__duration-option:hover{background:var(--bg-elevated);border-color:var(--accent-primary)}.drill-sprint-setup__duration-option:has(input:checked){background:var(--accent-soft);border-color:var(--accent-primary);color:var(--accent-primary)}.drill-sprint-setup__types-actions{display:flex;gap:8px;margin:8px 0 12px}.drill-sprint-setup__types-actions button{padding:6px 12px;font-family:inherit;font-size:12px;background:transparent;border:1px solid var(--border-mid);border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:background-color .12s ease,color .12s ease}.drill-sprint-setup__types-actions button:hover:not(:disabled){background:var(--bg-elevated);color:var(--text-primary)}.drill-sprint-setup__types-actions button:disabled{opacity:.4;cursor:not-allowed}.drill-sprint-setup__types-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}.drill-sprint-setup__type-option{display:flex;align-items:center;gap:8px;padding:10px 12px;min-height:44px;background:var(--bg-canvas);border:1px solid var(--border-mid);border-radius:8px;font-size:13px;cursor:pointer;transition:background-color .12s ease,border-color .12s ease}.drill-sprint-setup__type-option:hover{background:var(--bg-elevated);border-color:var(--accent-primary)}.drill-sprint-setup__type-option--checked{background:var(--accent-soft);border-color:var(--accent-primary);color:var(--accent-primary);font-weight:500}.drill-sprint-setup__error{padding:10px 12px;background:var(--danger-soft);border:1px solid var(--danger-strong);border-radius:8px;color:var(--danger-strong);font-size:13px}.drill-sprint-setup__conflict{display:flex;flex-direction:column;gap:12px;padding:14px 16px;background:var(--ov-warning-15-alt, var(--accent-soft));border:1px solid var(--warning, var(--accent-primary));border-radius:10px}.drill-sprint-setup__conflict-message{margin:0;font-size:14px;line-height:1.45;color:var(--text-primary)}.drill-sprint-setup__conflict-actions{display:flex;flex-wrap:wrap;gap:8px}.drill-sprint-setup__resume,.drill-sprint-setup__force-start,.drill-sprint-setup__cancel{flex:1 1 auto;min-height:44px;padding:10px 16px;font-family:inherit;font-size:14px;font-weight:600;border-radius:8px;cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease,transform .1s ease}.drill-sprint-setup__resume{background:var(--accent-primary);color:var(--text-on-accent);border:0}.drill-sprint-setup__resume:hover:not(:disabled){background:var(--accent-hover)}.drill-sprint-setup__force-start{background:var(--bg-elevated);border:1px solid var(--border-mid);color:var(--text-primary)}.drill-sprint-setup__force-start:hover:not(:disabled){background:var(--bg-surface);border-color:var(--accent-primary);color:var(--accent-primary)}.drill-sprint-setup__cancel{background:transparent;border:1px solid var(--border-mid);color:var(--text-secondary)}.drill-sprint-setup__cancel:hover:not(:disabled){background:var(--bg-elevated);color:var(--text-primary)}.drill-sprint-setup__resume:disabled,.drill-sprint-setup__force-start:disabled,.drill-sprint-setup__cancel:disabled{opacity:.5;cursor:not-allowed}.drill-sprint-setup__resume:focus-visible,.drill-sprint-setup__force-start:focus-visible,.drill-sprint-setup__cancel:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.drill-sprint-setup__conflict-hint{font-size:13px;line-height:1.4;color:var(--text-secondary);padding:8px 10px;background:var(--bg-surface);border:1px solid var(--border-mid);border-radius:6px}.drill-sprint-setup__start{align-self:stretch;padding:14px 20px;min-height:48px;font-family:inherit;font-size:16px;font-weight:600;background:var(--accent-primary);color:var(--text-on-accent);border:0;border-radius:10px;cursor:pointer;transition:background-color .12s ease,transform .1s ease}.drill-sprint-setup__start:hover:not(:disabled){background:var(--accent-hover)}.drill-sprint-setup__start:active:not(:disabled){transform:scale(.985)}.drill-sprint-setup__start:disabled{opacity:.5;cursor:not-allowed}.drill-sprint-setup__start:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.drill-sprint-play{max-width:720px;margin:0 auto;padding:16px 16px 32px;display:flex;flex-direction:column;gap:12px;color:var(--text-primary)}.drill-sprint-play--loading{align-items:center;justify-content:center;min-height:320px;color:var(--text-secondary);font-size:14px}.drill-sprint-play__header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:var(--bg-surface);border:1px solid var(--border-mid);border-radius:10px;font-variant-numeric:tabular-nums}.drill-sprint-play__score{font-size:16px;font-weight:600;animation:drill-sprint-score-bump .24s ease-out}.drill-sprint-play__timer{font-size:16px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-primary);transition:color .15s ease}.drill-sprint-play__timer[data-warning=true]{color:var(--danger-strong);animation:drill-sprint-timer-warning 1s ease-in-out infinite}.drill-sprint-play__side{align-self:center;padding:4px 10px;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);background:var(--bg-elevated);border-radius:999px}.drill-sprint-play__controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px;margin-top:4px}.drill-sprint-play__squares-counter{display:inline-flex;align-items:center;padding:6px 12px;font-size:14px;font-weight:500;color:var(--text-secondary);background:var(--bg-surface);border:1px solid var(--border-mid);border-radius:8px;font-variant-numeric:tabular-nums}.drill-sprint-play__submit{padding:10px 20px;min-height:44px;font-family:inherit;font-size:14px;font-weight:600;background:var(--accent-primary);color:var(--text-on-accent);border:0;border-radius:8px;cursor:pointer;transition:background-color .12s ease,transform .1s ease}.drill-sprint-play__submit:hover:not(:disabled){background:var(--accent-hover)}.drill-sprint-play__submit:active:not(:disabled){transform:scale(.97)}.drill-sprint-play__submit:disabled{opacity:.5;cursor:not-allowed}.drill-sprint-play__submit:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.drill-sprint-play__move-hint{padding:6px 12px;font-size:14px;font-weight:500;color:var(--accent-primary);background:var(--accent-soft);border-radius:8px;font-family:ui-monospace,SF Mono,Menlo,monospace}.drill-sprint-results{max-width:720px;margin:0 auto;padding:24px 20px 48px;display:flex;flex-direction:column;gap:20px;color:var(--text-primary)}.drill-sprint-results--missing{align-items:center;text-align:center;gap:16px}.drill-sprint-results__title{margin:0;font-size:28px;font-weight:700}.drill-sprint-results__missing-msg{margin:0;font-size:14px;color:var(--text-secondary)}.drill-sprint-results__summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.drill-sprint-results__card{display:flex;flex-direction:column;gap:6px;padding:16px 18px;background:var(--bg-surface);border:1px solid var(--border-mid);border-radius:10px;box-shadow:var(--shadow-sm)}.drill-sprint-results__label{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.drill-sprint-results__value{font-size:32px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums;color:var(--text-primary);animation:drill-sprint-score-bump .32s ease-out}.drill-sprint-results__value--score{color:var(--accent-primary)}.drill-sprint-results__value--accuracy{color:var(--success-strong)}.drill-sprint-results__value--iou{color:var(--info)}.drill-sprint-results__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}.drill-sprint-results__play-again,.drill-sprint-results__share,.drill-sprint-results__leaderboard,.drill-sprint-results__lobby{display:inline-flex;align-items:center;justify-content:center;padding:12px 18px;min-height:44px;font-family:inherit;font-size:14px;font-weight:600;border-radius:10px;cursor:pointer;text-decoration:none;transition:background-color .12s ease,transform .1s ease,border-color .12s ease,color .12s ease}.drill-sprint-results__play-again{background:var(--accent-primary);color:var(--text-on-accent);border:0}.drill-sprint-results__play-again:hover{background:var(--accent-hover)}.drill-sprint-results__share{background:var(--bg-elevated);border:1px solid var(--border-mid);color:var(--text-primary)}.drill-sprint-results__share:hover:not(:disabled){background:var(--bg-surface);border-color:var(--accent-primary);color:var(--accent-primary)}.drill-sprint-results__share:disabled{opacity:.6;cursor:not-allowed}.drill-sprint-results__share[data-share-status=shared],.drill-sprint-results__share[data-share-status=copied]{background:var(--ov-success-15-alt);border-color:var(--success-strong);color:var(--success-strong)}.drill-sprint-results__share[data-share-status=failed]{background:var(--danger-soft);border-color:var(--danger-strong);color:var(--danger-strong)}.drill-sprint-results__leaderboard,.drill-sprint-results__lobby{background:transparent;border:1px solid var(--border-mid);color:var(--text-primary)}.drill-sprint-results__leaderboard:hover,.drill-sprint-results__lobby:hover{background:var(--bg-elevated);border-color:var(--accent-primary)}.drill-sprint-results__play-again:focus-visible,.drill-sprint-results__share:focus-visible,.drill-sprint-results__leaderboard:focus-visible,.drill-sprint-results__lobby:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.drill-sprint-results__play-again:active,.drill-sprint-results__share:active:not(:disabled),.drill-sprint-results__leaderboard:active,.drill-sprint-results__lobby:active{transform:scale(.985)}.drill-leaderboard{max-width:960px;margin:0 auto;padding:24px 20px 48px;color:var(--text-primary);display:flex;flex-direction:column;gap:20px}.drill-leaderboard__header{display:flex;flex-direction:column;gap:4px}.drill-leaderboard__title{margin:0;font-size:28px;font-weight:700}.drill-leaderboard__subtitle{margin:0;font-size:14px;color:var(--text-secondary)}.drill-leaderboard__filters{display:flex;flex-wrap:wrap;gap:12px}.drill-leaderboard__filter{flex:1 1 220px;min-width:200px;padding:10px 14px;background:var(--bg-surface);border:1px solid var(--border-mid);border-radius:10px;display:flex;flex-direction:column;gap:6px}.drill-leaderboard__filter legend{padding:0 6px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary)}.drill-leaderboard__option{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;min-height:36px;font-size:13px;border-radius:6px;cursor:pointer;color:var(--text-primary);transition:background-color .12s ease,color .12s ease}.drill-leaderboard__option:hover{background:var(--bg-elevated)}.drill-leaderboard__option:has(input:checked){background:var(--accent-soft);color:var(--accent-primary);font-weight:500}.drill-leaderboard__filter-btn{padding:8px 14px;min-height:36px;font-family:inherit;font-size:13px;background:transparent;border:1px solid var(--border-mid);border-radius:8px;color:var(--text-secondary);cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease}.drill-leaderboard__filter-btn:hover{background:var(--bg-elevated);color:var(--text-primary)}.drill-leaderboard__filter-btn[aria-pressed=true],.drill-leaderboard__filter-btn--active{background:var(--tab-active-bg);border-color:var(--tab-active-border);color:var(--tab-active-fg)}.drill-leaderboard__loading,.drill-leaderboard__error{padding:16px 18px;text-align:center;font-size:14px;background:var(--bg-surface);border:1px solid var(--border-mid);border-radius:10px}.drill-leaderboard__loading{color:var(--text-secondary)}.drill-leaderboard__error{color:var(--danger-strong);background:var(--danger-soft);border-color:var(--danger-strong)}.drill-leaderboard__back{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;padding:10px 14px;min-height:40px;font-size:14px;font-weight:500;color:var(--text-secondary);text-decoration:none;border-radius:8px;transition:color .12s ease,background-color .12s ease}.drill-leaderboard__back:hover{background:var(--bg-elevated);color:var(--text-primary)}.drill-leaderboard__table{width:100%;border-collapse:collapse;font-size:14px;background:var(--bg-surface);border:1px solid var(--border-mid);border-radius:10px;overflow:hidden}.drill-leaderboard__table th,.drill-leaderboard__table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--border-subtle)}.drill-leaderboard__table th{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);background:var(--bg-deep)}.drill-leaderboard__row{transition:background-color .12s ease}.drill-leaderboard__row:hover{background:var(--bg-elevated)}.drill-leaderboard__row--me,.drill-leaderboard__row--current{background:var(--accent-soft)}.drill-leaderboard__row--me:hover,.drill-leaderboard__row--current:hover{background:var(--accent-soft-strong)}.drill-leaderboard__rank{width:56px;font-variant-numeric:tabular-nums;font-weight:600;color:var(--text-secondary)}.drill-leaderboard__rank--top{color:var(--warning)}.drill-leaderboard__player{font-weight:500}.drill-leaderboard__score{width:80px;text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.drill-leaderboard__accuracy{width:80px;text-align:right;font-variant-numeric:tabular-nums;color:var(--text-secondary)}.drill-leaderboard__empty{padding:32px 16px;text-align:center;color:var(--text-muted);font-size:14px}@keyframes drill-sprint-score-bump{0%{transform:scale(.86);opacity:0}60%{transform:scale(1.08);opacity:1}to{transform:scale(1);opacity:1}}@keyframes drill-sprint-timer-warning{0%,to{opacity:1}50%{opacity:.55}}@media(max-width:768px){.drill-sprint-setup,.drill-sprint-results,.drill-leaderboard{padding:16px 12px 32px}.drill-sprint-setup__title,.drill-sprint-results__title,.drill-leaderboard__title{font-size:22px}.drill-sprint-setup__types-grid{grid-template-columns:1fr}.drill-sprint-play{padding:8px 8px 24px;gap:10px}.drill-sprint-play__header{padding:8px 12px}.drill-sprint-play__score,.drill-sprint-play__timer{font-size:15px}.drill-sprint-results__summary{grid-template-columns:1fr;gap:8px}.drill-sprint-results__value{font-size:28px}.drill-sprint-results__actions>*{flex:1 1 calc(50% - 5px)}.drill-leaderboard__table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}.drill-leaderboard__filters{flex-direction:column;gap:8px}.drill-leaderboard__filter{flex:1 1 auto;min-width:0}}@media(prefers-reduced-motion:reduce){.drill-type-card,.drill-count-attackers__btn,.drill-sprint-setup__duration-option,.drill-sprint-setup__type-option,.drill-sprint-setup__start,.drill-sprint-play__submit,.drill-sprint-results__play-again,.drill-sprint-results__share,.drill-sprint-results__leaderboard,.drill-sprint-results__lobby,.drill-leaderboard__option,.drill-leaderboard__back,.drill-leaderboard__filter-btn{transition:none}.drill-feedback,.drill-sprint-play__score,.drill-sprint-play__timer[data-warning=true],.drill-sprint-results__value{animation:none}}.drill-info-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9000;background:#0000008c;display:flex;align-items:center;justify-content:center;padding:16px}.drill-info-modal{background:var(--bg-surface, #1f2937);color:var(--text-primary, #f1f5f9);border:1px solid var(--border-mid, #334155);border-radius:12px;width:100%;max-width:520px;max-height:calc(100vh - 32px);overflow-y:auto;box-shadow:0 20px 50px #00000073;display:flex;flex-direction:column}.drill-info-modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px 8px;border-bottom:1px solid var(--border-mid, #334155)}.drill-info-modal__title{margin:0;font-size:20px;font-weight:600;line-height:1.3}.drill-info-modal__close{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;color:var(--text-secondary, #94a3b8);font-size:28px;line-height:1;cursor:pointer;padding:0 6px;min-width:32px;min-height:32px}.drill-info-modal__close:hover{color:var(--text-primary, #f1f5f9)}.drill-info-modal__body{padding:16px 20px;display:flex;flex-direction:column;gap:14px}.drill-info-modal__paragraph{margin:0;font-size:15px;line-height:1.55;color:var(--text-primary, #f1f5f9)}.drill-info-modal__paragraph--lead{font-weight:600;font-size:16px}.drill-info-modal__hint{margin:0;font-size:13px;color:var(--text-secondary, #94a3b8);font-style:italic}.drill-info-modal__section{display:flex;flex-direction:column;gap:6px}.drill-info-modal__subtitle{margin:0;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary, #94a3b8);font-weight:600}.drill-info-modal__footer{padding:12px 20px 18px;display:flex;justify-content:flex-end;border-top:1px solid var(--border-mid, #334155)}.drill-info-modal__confirm{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--accent-primary, #22d3ee);color:var(--accent-primary-contrast, #0f172a);border:none;border-radius:8px;padding:10px 22px;font-size:15px;font-weight:600;cursor:pointer;min-height:44px}.drill-info-modal__confirm:hover{filter:brightness(1.05)}.drill-info-modal__confirm:focus-visible{outline:2px solid var(--accent-primary, #22d3ee);outline-offset:2px}.drill-page__header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.drill-page__help{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg-elevated, #0f172a);color:var(--text-primary, #f1f5f9);border:1px solid var(--border-mid, #334155);border-radius:50%;width:36px;height:36px;font-size:18px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.drill-page__help:hover{border-color:var(--border-accent, #22d3ee);color:var(--accent-primary, #22d3ee)}.drill-page__help:focus-visible{outline:2px solid var(--accent-primary, #22d3ee);outline-offset:2px}.drills-lobby__about-link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:1px solid var(--border-mid, #334155);color:var(--accent-primary, #22d3ee);border-radius:6px;padding:8px 14px;font-size:14px;cursor:pointer;margin-top:12px;align-self:flex-start}.drills-lobby__about-link:hover{border-color:var(--border-accent, #22d3ee);background:var(--bg-elevated, #0f172a)}.drills-lobby__about-link:focus-visible{outline:2px solid var(--accent-primary, #22d3ee);outline-offset:2px}.drills-about{max-width:920px;margin:0 auto;padding:16px 16px 48px;color:var(--text-primary, #f1f5f9)}.drills-about__header{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.drills-about__back{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;color:var(--accent-primary, #22d3ee);font-size:14px;cursor:pointer;padding:4px 0;align-self:flex-start}.drills-about__back:hover{text-decoration:underline}.drills-about__title{margin:0;font-size:28px;font-weight:700;line-height:1.2}.drills-about__subtitle{margin:0;font-size:16px;color:var(--text-secondary, #94a3b8);line-height:1.5}.drills-about__intro{margin:12px 0 28px;padding:18px 20px;background:var(--bg-surface, #1f2937);border:1px solid var(--border-mid, #334155);border-radius:12px;display:flex;flex-direction:column;gap:10px}.drills-about__section-title{margin:0 0 12px;font-size:20px;font-weight:600}.drills-about__paragraph{margin:0;font-size:15px;line-height:1.6}.drills-about__paragraph--note{color:var(--text-secondary, #94a3b8);font-size:14px}.drills-about__paragraph--example{font-size:14px;line-height:1.55}.drills-about__cards{display:flex;flex-direction:column;gap:24px}.drills-about__card{background:var(--bg-surface, #1f2937);border:1px solid var(--border-mid, #334155);border-radius:12px;overflow:hidden}.drills-about__card-header{padding:16px 20px 12px;border-bottom:1px solid var(--border-mid, #334155)}.drills-about__card-title{margin:0 0 6px;font-size:22px;font-weight:600}.drills-about__card-oneliner{margin:0;font-size:14px;color:var(--text-secondary, #94a3b8);font-style:italic}.drills-about__card-body{padding:16px 20px 20px;display:flex;flex-direction:column;gap:18px}.drills-about__card-section{display:flex;flex-direction:column;gap:6px}.drills-about__card-subtitle{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary, #94a3b8);font-weight:600}.drills-about__example{display:grid;grid-template-columns:minmax(220px,280px) 1fr;gap:16px;align-items:start}.drills-about__example-board{width:100%;max-width:280px}.drills-about__card-cta{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--accent-primary, #22d3ee);color:var(--accent-primary-contrast, #0f172a);border:none;border-radius:8px;padding:10px 18px;font-size:14px;font-weight:600;cursor:pointer;align-self:flex-start;min-height:40px}.drills-about__card-cta:hover{filter:brightness(1.05)}.drills-about__card-cta:focus-visible{outline:2px solid var(--accent-primary, #22d3ee);outline-offset:2px}.drills-about__tips{margin-top:28px;padding:18px 20px;background:var(--bg-surface, #1f2937);border:1px solid var(--border-mid, #334155);border-radius:12px}.drills-about__tips-list{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:8px}.drills-about__tip-item{font-size:15px;line-height:1.55}@media(max-width:768px){.drills-about{padding:12px 12px 36px}.drills-about__title{font-size:24px}.drills-about__example{grid-template-columns:1fr}.drills-about__example-board{max-width:100%}.drills-about__card-title{font-size:20px}}
