:root{--bg:#f5f5f5;--surface:#fff;--surface-2:#f0efe9;--text:#262626;--text-strong:#000;--text-muted:#7c7f84;--line:#0000001a;--accent:#a731c5;--accent-dark:#7e2396;--success:#1e7a34;--success-bg:#e6f4ea;--warning:#a15a00;--warning-bg:#fdf1e3;--danger:#c0392b;--danger-dark:#9c3123;--danger-bg:#fbe9e7;--info:#2456a6;--info-bg:#e8f0fb;--star:#d97706;--serif:"Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--sans:"Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--space-card-padding:20px;--space-section-gap:28px;--fs-2xs:11px;--fs-xs:12px;--fs-sm:13px;--fs-base:14px;--fs-md:15px;--fs-lg:16px;--fs-xl:18px;--fs-2xl:20px;--fs-3xl:22px;--fs-4xl:24px;--fs-5xl:28px;--fs-6xl:32px;--fs-display:46px;--fs-display-sm:34px}*{box-sizing:border-box}.text-xs{font-size:var(--fs-xs)}.text-sm{font-size:var(--fs-sm)}html{height:100%}body{min-height:100%}html{scrollbar-gutter:stable;overflow-y:scroll}body{background:var(--bg);color:var(--text);font-family:var(--sans);margin:0;line-height:1.5}.cta-wrap{position:relative}.cta-create{white-space:nowrap}.dropdown-menu{background:var(--surface);border:1px solid var(--line);z-index:30;border-radius:8px;min-width:180px;padding:6px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 10px 24px #00000024}.dropdown-menu a{font-size:var(--fs-base);color:var(--text);cursor:pointer;border-radius:5px;padding:9px 12px;text-decoration:none;display:block}.dropdown-menu a:hover{background:var(--surface-2);color:var(--accent)}.cta-menu{min-width:200px}button{font-family:var(--sans);cursor:pointer}.btn{background:var(--accent);color:#fff;font-size:var(--fs-base);border:none;border-radius:4px;padding:9px 16px;font-weight:600}.btn:hover{background:var(--accent-dark)}.btn.ghost{color:var(--text);border:1px solid var(--line);background:0 0;font-weight:500}.btn.ghost.danger{color:var(--danger)}.btn.ghost.danger:hover{color:var(--danger-dark);background:var(--danger-bg);border-color:#0000}.text-danger{color:var(--danger)}.btn.ghost:hover{border-color:var(--text-muted);background:var(--surface-2)}.btn.accent{background:var(--accent);color:#fff}.btn.accent:hover{background:var(--accent-dark)}.btn.small{font-size:var(--fs-sm);padding:6px 11px}.btn:disabled{opacity:.5;cursor:not-allowed}select{font-family:var(--sans);font-size:var(--fs-base);border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:4px;padding:7px 9px}.progress-bar{background:var(--surface-2);border-radius:3px;height:6px;overflow:hidden}.progress-bar-fill{background:var(--accent);border-radius:3px;height:100%}.task-condition{font-family:var(--sans);font-weight:500;font-size:var(--fs-2xl);color:var(--text-strong);overflow-wrap:break-word;margin-bottom:20px}.task-note{font-size:var(--fs-xs);color:var(--text-muted);text-align:center;max-width:340px;margin-top:14px}.progress-bar.small{height:5px}.table-scroll{overflow-x:auto}@keyframes examPulse{0%,to{opacity:1}50%{opacity:.55}}.student-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0;display:grid}@media (width<=700px){.student-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.summary-stat{background:var(--surface);border-radius:10px;padding:16px 18px}.summary-stat-big{font-size:var(--fs-5xl);color:var(--text-strong);font-weight:700}.summary-stat-label{font-size:var(--fs-sm);color:var(--text-muted);margin-top:2px}.summary-stat-date{font-size:var(--fs-xl);line-height:1.4}.icon-btn{background:var(--surface);border:1px solid var(--line);width:34px;height:34px;color:var(--text-strong);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-btn svg{width:20px;height:20px}.icon-btn:hover{background:var(--surface-2);border-color:var(--text-muted)}.icon-btn.danger{color:var(--danger)}.icon-btn.danger:hover{background:var(--danger-bg);border-color:var(--danger)}@keyframes scan-spin{to{transform:rotate(360deg)}}.toast-host{z-index:2000;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;color:#fff;min-width:260px;max-width:min(560px,100vw - 32px);font-size:var(--fs-base);background:#2b2b2b;border-radius:8px;align-items:center;gap:12px;padding:10px 12px 10px 16px;animation:.2s ease-out toast-in;display:flex;box-shadow:0 8px 24px #00000038}.toast-success{border-left:4px solid #5aa845}.toast-error{border-left:4px solid #e06a4f}.toast span{flex:1}.toast button{color:#fff;font:inherit;font-size:var(--fs-sm);cursor:pointer;background:0 0;border:1px solid #ffffff59;border-radius:4px;padding:4px 10px}.toast .toast-close{opacity:.7;border:0;padding:4px 6px}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.toast{animation:none}}.muted{color:var(--text-muted)}body.auth-mode{background:var(--bg)}@keyframes queenFlash{50%{box-shadow:0 0 0 4px #c0392b59}}@keyframes artFlash{0%,60%{box-shadow:0 0 0 3px #a731c573}to{box-shadow:0 1px 2px #0000000d}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#161512;--surface:#262421;--surface-2:#302e2b;--text:#cfcdca;--text-strong:#efeeec;--text-muted:#9a9894;--line:#ffffff1a;--accent:#a731c5;--accent-dark:#c77ddb;--success:#7cc48a;--success-bg:#22332a;--warning:#e3a45a;--warning-bg:#3a2e1f;--danger:#f07c6e;--danger-dark:#ff9a8e;--danger-bg:#3d2522;--info:#8ab4f0;--info-bg:#1f2a3a}:root[data-theme=dark] body{background:var(--bg);color:var(--text)}:root[data-theme=dark] input,:root[data-theme=dark] select,:root[data-theme=dark] textarea{color:var(--text);background-color:var(--surface)}:root{--save:#2e7d32;--save-dark:#1f5f23}:root[data-theme=dark]{--save:#3f9a45;--save-dark:#57b35d}.btn.btn-save{background:var(--save);border-color:var(--save);color:#fff}.btn.btn-save:hover:not(:disabled){background:var(--save-dark);border-color:var(--save-dark)}.btn.btn-save:disabled{opacity:.5}.btn.btn-cancel{color:var(--danger);background:0 0;border:1px solid}.btn.btn-cancel:hover{background:var(--danger-bg);color:var(--danger-dark)}:root{--star:#f5b50a;--star-off:#d9d4c7}:root[data-theme=dark]{--star-off:#4a4640}@keyframes kidFade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}:root{--topbar-h:64px;--sidebar-w:248px;--sidebar-w-collapsed:68px}.cta-split{display:flex}.cta-split #cta-main{border-radius:9px 0 0 9px;align-items:center;gap:8px;padding-left:14px;padding-right:16px;display:flex}.cta-split .cta-more{border-left:1px solid #ffffff47;border-radius:0 9px 9px 0;padding:0 10px}.cta-split .cta-menu{right:0}@media (width<=720px){:root{--topbar-h:56px}.cta-split .cta-text{display:none}.cta-split #cta-main{padding:0 10px}}.is-clickable{cursor:pointer;outline-offset:-1px;outline:1px solid #0000;transition:outline-color .12s,background-color .12s}.is-clickable:hover{outline-color:var(--accent)}.is-clickable:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}:root{--ok:#2e9d4f;--ok-soft:#2e9d4f24;--bad:#d64541;--bad-soft:#d6454124}@keyframes badge-pop{0%{opacity:0;transform:translate(-62%,-38%)scale(.4)}to{opacity:1;transform:translate(-62%,-38%)scale(1)}}.cta-split #cta-main svg{width:20px;height:20px}#app{max-width:1120px;min-height:100vh;margin:0 auto;padding:8px 24px 80px}.topbar{z-index:20;background:var(--bg);border-bottom:1px solid var(--line);transition:transform .22s;position:sticky;top:0}.topbar.topbar-hidden{transform:translateY(-100%)}.topbar-inner{flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:18px;max-width:1120px;margin:0 auto;padding:14px 24px;display:flex}.topbar-left{flex-shrink:0;align-items:center;gap:18px;min-width:0;display:flex}.topbar-right{flex:auto;justify-content:flex-end;align-items:center;gap:10px;min-width:0;display:flex}.brand{cursor:pointer;flex-shrink:0;align-items:center;padding:2px 0;transition:transform .12s;display:flex}.brand:hover{transform:scale(1.05)}.brand-logo{display:block}.nav-group{position:relative}.nav-group-menu{display:none;top:calc(100% + 2px)}.nav-group:hover .nav-group-menu,.nav-group-menu.force-open{display:block}.nav-group:after{content:"";height:6px;position:absolute;top:100%;left:0;right:0}.crumb{font-size:var(--fs-base);color:var(--text-muted);align-items:center;gap:6px;display:flex}.crumb a{color:var(--text-muted);cursor:pointer;text-decoration:none}.crumb a:hover{color:var(--accent)}.page-crumbs{font-size:var(--fs-xs);align-items:center;gap:6px;padding:20px 0 12px;display:flex}.page-crumbs a{color:var(--accent);cursor:pointer;text-decoration:none}.page-crumbs a:hover{text-decoration:underline}.page-crumbs .crumb-sep{color:var(--text-muted);font-size:10px}.page-crumbs .crumb-current{color:var(--text-muted)}.section-heading{justify-content:space-between;align-items:baseline;margin-bottom:14px;display:flex}.section-heading h2{font-family:var(--sans);font-weight:700;font-size:var(--fs-xl);color:var(--text-strong);margin:0}.section-heading a{font-size:var(--fs-sm);color:var(--accent);cursor:pointer;text-decoration:none}.section-heading a:hover{text-decoration:underline}.search-understood{font-size:var(--fs-sm);color:var(--text-muted);margin:-12px 0 14px}.search-understood strong{color:var(--text-strong);font-weight:600}.search-box{position:relative}.topbar-search{flex:0 340px;min-width:120px;display:flex}.search-box-compact{flex:auto;width:100%;min-width:0}.search-box-large{width:100%}.search-input{width:100%;font-family:var(--sans);font-size:var(--fs-base);color:var(--text);background:var(--surface);border:1px solid var(--line);box-sizing:border-box;border-radius:8px;padding:10px 14px}.search-box-large .search-input{font-size:var(--fs-md);border-radius:10px;padding:16px 90px 16px 18px}.search-kbd{font-family:var(--mono);font-size:var(--fs-2xs);color:var(--text-muted);background:var(--surface-2);pointer-events:none;border-radius:4px;padding:3px 7px;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.search-dropdown{background:var(--surface);border:1px solid var(--line);z-index:40;border-radius:8px;max-height:360px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto;box-shadow:0 12px 28px #00000024}.search-group{margin-bottom:4px}.search-group-label{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);padding:8px 10px 4px}.search-result{text-align:left;cursor:pointer;width:100%;font-family:var(--sans);font-size:var(--fs-base);color:var(--text);background:0 0;border:none;border-radius:6px;justify-content:space-between;align-items:center;gap:10px;padding:9px 10px;display:flex}.search-result:hover{background:var(--surface-2)}.search-result-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.search-result-sub{font-size:var(--fs-xs);color:var(--text-muted);flex-shrink:0}.search-empty{color:var(--text-muted);font-size:var(--fs-sm);padding:14px 10px}.profile-chip-wrap{flex-shrink:0;position:relative}.profile-chip{background:var(--surface-2);cursor:pointer;font-family:var(--sans);border:none;border-radius:20px;align-items:center;gap:8px;padding:6px 10px 6px 6px;display:flex}.profile-chip:hover{background:var(--line)}.profile-menu{min-width:170px}.profile-menu-label{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);padding:6px 12px 4px}@media (width<=1180px){.topbar .profile-chip{padding:4px}}@media (width<=900px){.search-box-compact,.topbar-search{display:none}}.saved-searches-row{align-items:center;gap:10px;margin-bottom:16px;display:flex}.saved-search-item{border-radius:5px;justify-content:space-between;align-items:center;gap:8px;display:flex}.saved-search-item a{font-size:var(--fs-base);color:var(--text);cursor:pointer;flex:1;padding:9px 12px;text-decoration:none;display:block}.saved-search-item a:hover{color:var(--accent)}.saved-search-remove{color:var(--text-muted);cursor:pointer;font-size:var(--fs-xs);background:0 0;border:none;padding:4px 10px 4px 0}.saved-search-remove:hover{color:var(--danger)}.editor-crumbs-row{justify-content:space-between;align-items:center;gap:12px;display:flex}@media (width<=720px){.topbar-inner{flex-wrap:wrap;gap:10px;padding:8px 14px}.topbar-left{flex:100%;gap:8px}.topbar-right{flex:100%;min-width:0}.brand-logo{width:36px;height:36px}.search-box-compact{flex:auto;width:auto;min-width:0}.editor-crumbs-row{flex-wrap:wrap;row-gap:4px}.editor-crumbs-row .page-crumbs{min-width:0}}.profile-menu-sync{font-size:var(--fs-xs);color:var(--text-muted);border-bottom:1px solid var(--line);max-width:280px;margin-bottom:4px;padding:6px 10px 8px;line-height:1.4}.profile-menu-sync.bad,.profile-menu a.danger{color:var(--danger)}.profile-chip{position:relative}@media (width<=720px){.topbar-left{align-items:flex-start}}.topbar{z-index:40;height:var(--topbar-h);background:var(--bg);border-bottom:1px solid var(--line);position:sticky;top:0}.topbar .topbar-inner{box-sizing:border-box;flex-wrap:nowrap;align-items:center;gap:20px;max-width:none;height:100%;margin:0;padding:0 20px 0 10px;display:flex}.topbar .topbar-left{width:calc(var(--sidebar-w) - 10px);flex:none;align-items:center;gap:8px;min-width:0;display:flex}.topbar .topbar-search{flex:520px;min-width:0;max-width:640px}.topbar .topbar-right{flex:none;align-items:center;gap:12px;margin-left:auto;display:flex}.sidebar-toggle{width:40px;height:40px;color:var(--text-strong);border-radius:10px;flex:none;justify-content:center;align-items:center;display:flex}.sidebar-toggle:hover{background:var(--surface-2)}.topbar .brand{align-items:center;gap:10px;min-width:0;text-decoration:none;display:flex}.topbar .brand:hover{transform:none}.topbar .brand-logo{width:40px;height:40px}.brand-name{font-weight:700;font-size:var(--fs-2xl);letter-spacing:.1px;color:var(--text-strong);white-space:nowrap}#shell{align-items:flex-start;display:flex}#app{flex:auto;min-width:0;max-width:1200px}.sidebar{top:var(--topbar-h);height:calc(100vh - var(--topbar-h));width:var(--sidebar-w);flex:0 0 var(--sidebar-w);box-sizing:border-box;border-right:1px solid var(--line);background:var(--bg);padding:16px 12px 24px;transition:width .18s,flex-basis .18s,padding .18s;position:sticky;overflow:hidden auto}body.no-sidebar .sidebar{display:none}body.no-sidebar .topbar .topbar-left{width:auto}.sidenav{flex-direction:column;gap:2px;display:flex}.sidenav-item{color:var(--text);cursor:pointer;font-size:var(--fs-md);white-space:nowrap;border-radius:10px;align-items:center;gap:12px;padding:10px 12px;font-weight:500;line-height:22px;text-decoration:none;display:flex}.sidenav-item:hover{background:var(--surface-2);color:var(--text-strong)}.sidenav-item.active{background:var(--accent);color:#fff}.sidenav-icon{width:22px;height:22px;color:var(--text-muted);flex:0 0 22px;justify-content:center;align-items:center;display:flex}.sidenav-item:hover .sidenav-icon{color:var(--text-strong)}.sidenav-item.active .sidenav-icon{color:#fff}.sidenav-group{color:var(--text-muted);font-size:var(--fs-base);white-space:nowrap;align-items:center;gap:12px;padding:18px 12px 6px;font-weight:600;display:flex}.sidenav-children{border-left:1px solid var(--line);flex-direction:column;gap:2px;margin-left:22px;padding-left:12px;display:flex}.sidenav-children .sidenav-item{font-size:var(--fs-md);padding:9px 12px}.sidebar-backdrop{display:none}@media (width>=721px){body.sidebar-collapsed .topbar .topbar-left{width:auto}body.sidebar-collapsed .sidebar{width:var(--sidebar-w-collapsed);flex-basis:var(--sidebar-w-collapsed);padding:12px 8px 20px}body.sidebar-collapsed .sidenav-label{display:none}body.sidebar-collapsed .sidenav-item{justify-content:center;padding:11px 0}body.sidebar-collapsed .sidenav-group{border-top:1px solid var(--line);height:0;margin:10px 10px 6px;padding:0;overflow:hidden}body.sidebar-collapsed .sidenav-children{border-left:none;margin-left:0;padding-left:0}}@media (width<=1100px){.brand-name{font-size:var(--fs-xl)}}@media (width<=720px){.topbar .topbar-inner{flex-wrap:nowrap;gap:8px;padding:0 10px 0 6px}.topbar .topbar-left{flex:auto;gap:4px;width:auto}.topbar .topbar-right{gap:6px}.topbar .brand-logo{width:34px;height:34px}.brand-name{font-size:var(--fs-lg);text-overflow:ellipsis;overflow:hidden}.sidebar{z-index:60;flex-basis:auto;width:280px;height:100vh;padding-top:20px;transition:transform .2s;position:fixed;top:0;left:0;transform:translate(-102%);box-shadow:0 0 40px #00000059}body.sidebar-open .sidebar{transform:none}body.sidebar-open .sidebar-backdrop{z-index:55;background:#00000073;display:block;position:fixed;inset:0}.topbar.topbar-hidden{transform:translateY(-100%)}}.topbar{transition:transform .18s}body.header-hidden .sidebar{height:100vh;top:0}@media (width>=721px){.sidebar{transition:top .18s,height .18s,width .18s,flex-basis .18s,padding .18s}}.sidebar{scrollbar-width:thin;scrollbar-color:var(--line) transparent;flex-direction:column;display:flex}.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}.sidenav{flex:1 0 auto}.sidebar-collapse-btn{width:100%;font:inherit;font-size:var(--fs-base);color:var(--text-muted);text-align:left;border:none;border-top:1px solid var(--line);background:0 0;border-radius:0 0 10px 10px;margin-top:16px;padding-top:14px}.sidebar-collapse-btn:hover{color:var(--text-strong)}.topbar .topbar-inner{gap:28px}.topbar .topbar-left{width:auto;min-width:calc(var(--sidebar-w) - 10px);padding-left:8px}body.no-sidebar .topbar .topbar-left{min-width:0}@media (width>=721px){.sidebar-toggle{display:none}body.sidebar-collapsed .sidebar-collapse-btn{border-radius:10px;justify-content:center;padding:11px 0}}@media (width<=720px){.sidebar-collapse-btn{display:none}.topbar .topbar-left{min-width:0;padding-left:0}.topbar .topbar-inner{gap:8px}}.sidebar{padding-bottom:0}.sidebar-collapse-btn{background:var(--bg);z-index:1;margin-bottom:0;padding-bottom:14px;position:sticky;bottom:0}.sidebar-collapse-btn:hover{background:var(--surface-2)}.cg-wrap,.cg-wrap *{box-sizing:content-box}.position-preview-tip{z-index:200;background:var(--surface);pointer-events:none;border-radius:8px;padding:8px;position:fixed;box-shadow:0 12px 32px #00000038}.position-preview-tip[hidden]{display:none}.mini-board{background:#f0d9b5 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8' preserveAspectRatio='none'%3E%3Crect width='8' height='8' fill='%23f0d9b5'/%3E%3Cpath fill='%23b58863' d='M1 0h1v1h-1zM3 0h1v1h-1zM5 0h1v1h-1zM7 0h1v1h-1zM0 1h1v1h-1zM2 1h1v1h-1zM4 1h1v1h-1zM6 1h1v1h-1zM1 2h1v1h-1zM3 2h1v1h-1zM5 2h1v1h-1zM7 2h1v1h-1zM0 3h1v1h-1zM2 3h1v1h-1zM4 3h1v1h-1zM6 3h1v1h-1zM1 4h1v1h-1zM3 4h1v1h-1zM5 4h1v1h-1zM7 4h1v1h-1zM0 5h1v1h-1zM2 5h1v1h-1zM4 5h1v1h-1zM6 5h1v1h-1zM1 6h1v1h-1zM3 6h1v1h-1zM5 6h1v1h-1zM7 6h1v1h-1zM0 7h1v1h-1zM2 7h1v1h-1zM4 7h1v1h-1zM6 7h1v1h-1z'/%3E%3C/svg%3E") 0 0/100% 100% no-repeat;border-radius:3px;overflow:hidden}.position-preview-caption{font-size:var(--fs-xs);color:var(--text-muted);text-align:center;margin-top:6px}.position-preview-caption strong{color:var(--text-strong);font-weight:600}.board-frame-outer{padding:10px 10px 38px 26px}.board-frame{aspect-ratio:1;width:420px;max-width:100%}@media (width<=720px){.board-frame{width:320px}}.cg-wrap cg-board{background-color:#f0d9b5!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8' preserveAspectRatio='none'%3E%3Crect width='8' height='8' fill='%23f0d9b5'/%3E%3Cpath fill='%23b58863' d='M1 0h1v1h-1zM3 0h1v1h-1zM5 0h1v1h-1zM7 0h1v1h-1zM0 1h1v1h-1zM2 1h1v1h-1zM4 1h1v1h-1zM6 1h1v1h-1zM1 2h1v1h-1zM3 2h1v1h-1zM5 2h1v1h-1zM7 2h1v1h-1zM0 3h1v1h-1zM2 3h1v1h-1zM4 3h1v1h-1zM6 3h1v1h-1zM1 4h1v1h-1zM3 4h1v1h-1zM5 4h1v1h-1zM7 4h1v1h-1zM0 5h1v1h-1zM2 5h1v1h-1zM4 5h1v1h-1zM6 5h1v1h-1zM1 6h1v1h-1zM3 6h1v1h-1zM5 6h1v1h-1zM7 6h1v1h-1zM0 7h1v1h-1zM2 7h1v1h-1zM4 7h1v1h-1zM6 7h1v1h-1z'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-size:100% 100%!important}.cg-wrap coords{opacity:1;font-family:var(--sans);font-weight:400;font-size:var(--fs-2xs)}.cg-wrap coords coord{color:var(--text-muted)!important}.cg-wrap coords.ranks{top:0;left:-18px}.cg-wrap coords.files{bottom:-24px;left:0}.engine-panel{background:var(--surface);border:1px solid var(--line);border-radius:10px;margin:12px 0;padding:12px 14px}.engine-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.engine-eval{font-size:var(--fs-5xl);min-width:78px;color:var(--text-strong);font-variant-numeric:tabular-nums;font-weight:700}.engine-status{color:var(--text-muted)}.engine-lines{flex-direction:column;gap:6px;display:flex}.engine-line{font-size:var(--fs-sm);align-items:baseline;gap:8px;line-height:1.7;display:flex}.engine-line-eval{font-variant-numeric:tabular-nums;min-width:54px;font-weight:700}.engine-line-moves{flex:1;min-width:0}.engine-move{cursor:pointer;font-family:var(--sans);font-size:var(--fs-sm);color:var(--text-strong);background:0 0;border:none;border-radius:4px;padding:1px 3px}.engine-move:hover{background:var(--surface-2)}.engine-move.selected{background:var(--accent);color:#fff}.engine-move.selected .engine-num{color:#fffc}.engine-num{color:var(--text-muted);margin-right:2px}.engine-preview-bar{background:var(--surface-2);font-size:var(--fs-sm);border-radius:6px;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;padding:8px 10px;display:flex}.engine-preview-bar span{flex:auto}.engine-unavailable{background:var(--warning-bg);color:var(--text-strong);font-size:var(--fs-sm);border-radius:6px;padding:10px 12px}.engine-panel{background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:8px;margin:14px 0 0;padding:0;overflow:hidden}.engine-head{background:var(--surface-2);border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:8px 10px;display:flex}.engine-panel.off .engine-head{border-bottom:none}.engine-panel.off{background:var(--surface-2)}.engine-panel [data-engine-lines]:empty,.engine-panel [data-engine-preview]:empty{display:none}.engine-panel.on .engine-head{box-shadow:inset 0 2px #629924}.engine-switch{cursor:pointer;background:#c9c9c9;border:none;border-radius:12px;flex-shrink:0;width:44px;height:24px;padding:2px;transition:background .2s;position:relative}.engine-switch.on{background:#629924}.engine-switch-knob{color:#8a8a8a;width:20px;height:20px;font-size:var(--fs-xs);background:#fff;border-radius:50%;justify-content:center;align-items:center;font-weight:700;transition:left .2s;display:flex;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000026}.engine-switch.on .engine-switch-knob{color:#629924;left:22px}.engine-panel .engine-eval{font-size:var(--fs-3xl);color:var(--text-strong);font-variant-numeric:tabular-nums;min-width:auto;font-weight:700}.engine-id{min-width:0;font-size:var(--fs-xs);flex:1;line-height:1.35}.engine-id-name{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.engine-id-sub{color:var(--text-muted)}.engine-lines{display:block}.engine-lines-empty{font-size:var(--fs-sm);color:var(--text-muted);padding:8px 10px}.engine-panel .engine-line{border-bottom:1px solid var(--line);font-size:var(--fs-sm);align-items:flex-start;gap:8px;padding:5px 8px 5px 10px;line-height:1.55;display:flex}.engine-panel .engine-line:last-child{border-bottom:none}.engine-panel .engine-line-eval{color:var(--text-strong);min-width:40px;font-weight:700}.engine-panel .engine-line-moves{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.engine-panel .engine-line.open .engine-line-moves{white-space:normal}.engine-panel .engine-move{color:var(--text);font-size:var(--fs-sm);padding:0 2px}.engine-panel .engine-move:hover{background:var(--surface-2);color:var(--text-strong)}.engine-panel .engine-move.selected{background:var(--accent);color:#fff}.engine-panel .engine-num{color:var(--text-muted)}.engine-line-toggle{color:var(--text-muted);cursor:pointer;font-size:var(--fs-2xs);background:0 0;border:none;flex-shrink:0;padding:2px 4px}.engine-line-toggle:hover{color:var(--text-strong)}.engine-panel .engine-preview-bar{background:var(--surface-2);border-radius:0;margin:0}.engine-panel .engine-unavailable{margin:8px 10px}.move-list{border:1px solid var(--line);background:var(--surface);border-radius:8px;margin-top:10px;overflow:hidden}.ml-body{max-height:220px;overflow-y:auto}.ml-row{font-size:var(--fs-base);grid-template-columns:40px 1fr 1fr;display:grid}.ml-num{background:var(--surface-2);color:var(--text-muted);text-align:center;font-size:var(--fs-sm);padding:5px 0}.ml-move{text-align:left;font-family:var(--sans);font-size:var(--fs-base);color:var(--text-strong);cursor:pointer;background:0 0;border:none;padding:5px 10px}.ml-move:hover{background:var(--surface-2)}.ml-move.active{color:#fff;background:#3692e7;font-weight:600}.ml-move.ml-empty{cursor:default;color:var(--text-muted)}.ml-empty-hint{font-size:var(--fs-sm);color:var(--text-muted);padding:10px 12px}.ml-nav{border-top:1px solid var(--line);background:var(--bg);grid-template-columns:repeat(4,1fr);display:grid}.ml-nav-btn{cursor:pointer;color:var(--text-strong);background:0 0;border:none;justify-content:center;align-items:center;padding:6px 0;display:flex}.ml-nav-btn svg{width:22px;height:22px}.ml-nav-btn:hover:not(:disabled){background:var(--surface-2)}.ml-nav-btn:disabled{color:var(--line);cursor:default}.mini-board .mb-last{background:#9bc70069;width:12.5%;height:12.5%;position:absolute}.engine-line-action{border:1px solid var(--line);background:var(--surface);width:22px;height:22px;color:var(--text-strong);border-radius:4px;flex-shrink:0;padding:0;font-weight:700;line-height:1}.engine-line-action:hover{background:var(--accent);color:#fff;border-color:var(--accent)}:root[data-theme=dark] .engine-switch-knob{background:#e8e6e3}:root[data-theme=dark] .mini-board,:root[data-theme=dark] cg-board{filter:brightness(.92)}.fig{font-variant-emoji:text;font-family:Segoe UI Symbol,DejaVu Sans,"Noto Sans Symbols 2",Arial Unicode MS,sans-serif;font-size:1.12em;line-height:1}.engine-arrows-btn{border:1px solid var(--line);background:var(--surface);width:30px;height:28px;color:var(--text-muted);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;padding:0;display:inline-flex}.engine-arrows-btn.on{color:#629924;border-color:#629924}.engine-arrows-btn:not(.on){opacity:.6}.engine-arrows-btn:hover{opacity:1;color:var(--text-strong)}.theme-tile-board .mini-board{border-radius:6px}.mini-board .mb-arrow{color:#15781bd9;pointer-events:none;z-index:3;width:100%;height:100%;position:absolute;inset:0}.puzzle-of-day-board cg-container,.puzzle-of-day-board cg-board{border-radius:6px;overflow:hidden}@media (width<=720px){.cg-wrap coords{opacity:1;font-size:10px;font-weight:700}.cg-wrap coords.ranks{width:12.5%;height:100%;top:0!important;left:0!important}.cg-wrap coords.ranks coord{text-align:left;padding:2px 0 0 3px;line-height:1;transform:none}.cg-wrap coords.files{align-items:flex-end;width:100%;height:auto;bottom:0!important;left:0!important}.cg-wrap coords.files coord{text-align:right;padding:0 3px 2px 0;line-height:1}.cg-wrap.orientation-white coords.ranks coord:nth-child(odd),.cg-wrap.orientation-black coords.ranks coord:nth-child(2n),.cg-wrap.orientation-white coords.files coord:nth-child(odd),.cg-wrap.orientation-black coords.files coord:nth-child(2n){color:#f0d9b5!important}.cg-wrap.orientation-white coords.ranks coord:nth-child(2n),.cg-wrap.orientation-black coords.ranks coord:nth-child(odd),.cg-wrap.orientation-white coords.files coord:nth-child(2n),.cg-wrap.orientation-black coords.files coord:nth-child(odd){color:#b58863!important}}.diff-stars{align-items:center;gap:2px;display:inline-flex}.diff-star{cursor:pointer;width:24px;height:24px;color:var(--line);background:0 0;border:none;border-radius:6px;padding:1px;display:flex}.diff-star svg{fill:currentColor;width:22px;height:22px}.diff-star.on{color:var(--star,#f5b50a)}.diff-star.hover{color:var(--star,#f5b50a);opacity:.75}.diff-star:focus-visible{outline:2px solid var(--accent)}.diff-stars-label{font-size:var(--fs-sm);color:var(--text-muted);white-space:nowrap;margin-left:8px}.pod-empty .diff-stars{margin:4px 0 8px}.move-badge-layer{pointer-events:none;z-index:5;position:absolute}.move-badge{aspect-ratio:1;border-radius:50%;justify-content:center;align-items:center;width:5.2%;min-width:20px;animation:.18s ease-out badge-pop;display:flex;position:absolute;transform:translate(-62%,-38%);box-shadow:0 1px 4px #00000059}.move-badge svg{fill:#fff;width:72%;height:72%}.move-badge-ok{background:var(--ok)}.move-badge-bad{background:var(--bad)}.catalog-heading{margin-bottom:20px}.catalog-heading h1{font-family:var(--sans);font-weight:700;font-size:var(--fs-display);color:var(--text-strong);margin:0;line-height:54px}.catalog-heading .count{font-weight:300;font-size:var(--fs-base);color:var(--text);margin-top:4px}.catalog-toolbar{align-items:center;gap:16px;margin-bottom:24px;display:flex}.catalog-toolbar label{font-weight:500;font-size:var(--fs-2xl);color:var(--text-strong)}.sort-select{background:var(--surface);border:1px solid var(--line);font-size:var(--fs-lg);font-family:var(--sans);color:var(--text-strong);cursor:pointer;border-radius:8px;min-width:288px;height:48px;padding:12px 16px;font-weight:500}.book-list{flex-direction:column;gap:8px;display:flex}.book-row{background:var(--surface);cursor:pointer;border-radius:8px;align-items:flex-start;gap:16px;padding:16px;transition:box-shadow .15s;display:flex}.book-row-cover{flex-direction:column;flex-shrink:0;gap:8px;width:110px;display:flex}.cover-thumb-list{color:#fff;background-position:50%;background-size:cover;border-radius:4px;justify-content:center;align-items:center;width:110px;height:172px;font-size:34px;display:flex;box-shadow:inset 0 0 0 1px #0000000f}.stars{align-items:center;gap:0;display:flex}.stars button{width:22px;height:22px;color:var(--line);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:1px;display:flex}.stars button.filled{color:var(--star)}.stars button:hover{color:var(--star);opacity:.7}.book-row-body{flex-direction:column;flex:1;gap:9px;min-width:0;display:flex}.book-row-top{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.book-row-title{font-size:var(--fs-2xl);color:var(--text-strong);margin:0;font-weight:500;line-height:24px}.bookmark-btn{cursor:pointer;color:var(--text-muted);background:0 0;border:none;flex-shrink:0;margin-top:2px;padding:2px}.bookmark-btn:hover,.bookmark-btn.active{color:var(--accent)}.book-row-author{font-size:var(--fs-base);color:var(--accent);align-items:center;gap:4px;display:flex}.book-row-author .title-badge{font-weight:400}.book-row-desc{font-size:var(--fs-base);color:var(--text);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;line-height:20px;display:-webkit-box;overflow:hidden}.book-row-meta{font-weight:300;font-size:var(--fs-base);color:var(--text);gap:8px;display:flex}.add-book-row{background:var(--surface);border:1.5px dashed var(--line);text-align:center;color:var(--text-muted);cursor:pointer;font-size:var(--fs-base);border-radius:8px;padding:20px}.book-header{grid-template-columns:220px 1fr;align-items:start;gap:32px;margin:20px 0 36px;display:grid}.cover-big{color:#f4f1e9;background-position:50%;background-size:cover;border-radius:4px 4px 10px 10px;flex-direction:column;justify-content:space-between;min-height:300px;padding:20px;display:flex;box-shadow:inset 0 0 0 1px #0000000f,0 10px 22px #0000001f}.cover-big .mark{font-size:44px}.cover-big .title{font-family:var(--serif);font-size:var(--fs-2xl);font-weight:600}.swatches{gap:8px;display:flex}.swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:26px;height:26px}.swatch-custom{display:inline-block;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #00000026}.swatch.active{border-color:var(--text-strong)}.cover-thumb{border:1px solid var(--line);background-position:50%;background-size:cover;border-radius:4px;flex-shrink:0;width:56px;height:56px}.toc{border-top:1px solid var(--line);padding-top:20px}.toc h2{font-family:var(--sans);font-weight:700;font-size:var(--fs-2xl);color:var(--text-strong);margin:0 0 16px}.chapter{margin-bottom:22px;position:relative}.toc-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.toc-head h2{margin:0!important}.chapter.is-collapsed{margin-bottom:10px}.chapter-drag{width:24px;height:26px;color:var(--text-muted);cursor:grab;opacity:.55;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;margin-left:-4px;padding:0;display:inline-flex}.chapter-drag:hover,.chapter-drag:focus-visible{opacity:1;background:var(--surface-2);color:var(--text-strong)}.chapter-drag:active{cursor:grabbing}.chapter-collapse{width:26px;height:26px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;padding:0;transition:transform .15s;display:inline-flex}.chapter-collapse:hover{background:var(--surface-2);color:var(--text-strong)}.chapter.is-collapsed .chapter-collapse{transform:rotate(-90deg)}.chapter-title[data-collapse-chapter]{cursor:pointer}.chapter-count{font-size:var(--fs-xs);color:var(--text-muted);font-variant-numeric:tabular-nums}.chapter.is-dragging{opacity:.4}.chapter.drop-before:before,.chapter.drop-after:after{content:"";background:var(--accent);border-radius:2px;height:3px;position:absolute;left:0;right:0}.chapter.drop-before:before{top:-12px}.chapter.drop-after:after{bottom:-12px}.chapter.is-collapsed.drop-after:after{bottom:-6px}.chapter-title-row{align-items:center;gap:8px;margin-bottom:8px;display:flex}.chapter-title{font-weight:600;font-size:var(--fs-base);color:var(--accent)}.chapter-edit-btn{color:var(--text-muted);font-size:var(--fs-sm);opacity:0;background:0 0;border:none;padding:2px 4px;transition:opacity .1s}.chapter-title-row:hover .chapter-edit-btn{opacity:1}.chapter-edit-btn:hover{color:var(--accent)}.chapter-title-edit{align-items:center;gap:8px;margin-bottom:10px;display:flex}.chapter-title-edit input{font-size:var(--fs-base);border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:4px;flex:1;max-width:320px;padding:6px 9px}.task-row{cursor:pointer;font-size:var(--fs-md);background:var(--surface);border-radius:4px;justify-content:space-between;align-items:center;margin-bottom:4px;padding:10px 12px;display:flex}.task-row .tname{flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.task-row .tnum{color:var(--text-muted);font-family:var(--mono);font-size:var(--fs-xs);width:22px}.task-row .diff{font-size:var(--fs-2xs);color:var(--text-muted)}.task-row{position:relative}.task-row.has-drag .tname{flex:1;min-width:0}.task-drag{width:22px;height:26px;color:var(--text-muted);cursor:grab;opacity:0;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;margin:-4px 4px -4px -6px;padding:0;transition:opacity .12s;display:inline-flex}.task-row:hover .task-drag,.task-drag:focus-visible{opacity:.8}.task-drag:hover,.task-drag:focus-visible{opacity:1;background:var(--surface-2);color:var(--text-strong)}.task-drag:active{cursor:grabbing}@media (hover:none){.task-drag{opacity:.6}}.task-row.is-dragging{opacity:.4}.task-row.is-selecting .tname{flex:1;min-width:0}.task-drag-spacer{flex-shrink:0;width:22px;margin:-4px 4px -4px -6px}.task-side-checkbox{margin:0;padding:4px;position:absolute;top:50%;left:-32px;transform:translateY(-50%)}.task-side-checkbox input{cursor:pointer;width:16px;height:16px}.task-row.is-picked{box-shadow:inset 0 0 0 1.5px var(--accent)}@media (width<=760px){.task-side-checkbox{margin:-4px 4px -4px -6px;padding:0 3px;position:static;transform:none}.task-row.is-selecting .task-drag-spacer{display:none}}.task-row.drop-before:before,.task-row.drop-after:after{content:"";background:var(--accent);pointer-events:none;border-radius:2px;height:3px;position:absolute;left:0;right:0}.task-row.drop-before:before{top:-4px}.task-row.drop-after:after{bottom:-4px}.chapter.drop-into{outline:2px dashed var(--accent);outline-offset:4px;border-radius:6px}.add-task-row{font-size:var(--fs-base);color:var(--text-muted);cursor:pointer;border-radius:4px;padding:10px 12px}.open-book{background:var(--surface);border-radius:6px;grid-template-columns:240px minmax(0,1fr) 320px;align-items:stretch;gap:0;max-width:100%;display:grid;position:relative;overflow:hidden;box-shadow:0 10px 28px #0000001a}.side-left{border-right:1px solid var(--line);min-width:0;min-height:560px;padding:34px 24px}.side-right{border-left:1px solid var(--line);overflow-wrap:break-word;min-width:0;min-height:560px;padding:34px}.board-center{flex-direction:column;justify-content:flex-start;align-items:center;min-width:0;padding:34px 34px 12px;display:flex}.side-book-title{font-family:var(--serif);font-size:var(--fs-lg);color:var(--text-strong);font-weight:600;line-height:1.3}.side-book-author{font-size:var(--fs-sm);color:var(--text-muted);margin-top:4px}.side-chapter{font-size:var(--fs-sm);color:var(--accent);border-top:1px solid var(--line);margin-top:16px;padding-top:16px}.side-progress{margin-top:16px}.side-progress-label{font-size:var(--fs-sm);color:var(--text-muted);margin-bottom:8px}.right-controls{flex-wrap:wrap;gap:10px;margin-top:22px;display:flex}@media (width<=900px){.open-book{grid-template-columns:1fr}.side-left,.side-right{border:none;border-top:1px solid var(--line);min-height:auto}}@media (width<=720px){.book-header{grid-template-columns:1fr}.book-row{flex-direction:column}}.status-badge{font-size:var(--fs-2xs);white-space:nowrap;border-radius:10px;padding:3px 8px;font-weight:600}.status-badge.status-active{color:#2f5b40;background:#eaf1ec}.status-badge.status-overdue{background:var(--danger-bg);color:var(--danger)}.status-badge.status-done{background:var(--warning-bg);color:var(--accent-dark)}.empty-hint{color:var(--text-muted);font-size:var(--fs-base);padding:16px 0}.exercises-toolbar{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:center;gap:8px;margin-bottom:20px;display:grid}.exercises-toolbar input[type=text]{border:1px solid var(--line);background:var(--surface);min-width:0;font-size:var(--fs-base);border-radius:6px;grid-column:1/-1;padding:8px 12px}.exercises-toolbar select{border:1px solid var(--line);background:var(--surface);width:100%;min-width:0;font-size:var(--fs-sm);text-overflow:ellipsis;border-radius:6px;padding:7px 24px 7px 10px}.exercises-toolbar .btn{white-space:nowrap;justify-self:start}.exercises-toolbar .tag-multiselect{grid-column:span 2;min-width:0}.exercises-toolbar .tag-multiselect-placeholder{white-space:nowrap;font-size:var(--fs-sm)}@media (width<=520px){.exercises-toolbar .tag-multiselect{grid-column:1/-1}}.exercises-toolbar .tag-multiselect-chips{min-height:0;font-size:var(--fs-sm);padding:5px 26px 5px 10px}.exercise-row-meta{align-items:center;gap:12px;display:flex}.exercise-book{font-size:var(--fs-xs);color:var(--text-muted)}.collections-grid{margin-top:6px}.tag-chip{background:var(--surface-2);font-size:var(--fs-xs);color:var(--text);border-radius:12px;margin:2px 4px 2px 0;padding:3px 10px;display:inline-block}.side-hints{margin-top:16px}.exercise-checkbox{cursor:pointer;align-items:center;margin-right:4px;display:flex}.exercise-tags{flex-wrap:wrap;gap:4px;margin-left:0;display:inline-flex}.exercise-row .tname{cursor:pointer;flex-wrap:wrap;flex:1;align-items:center;gap:4px;min-width:0;display:flex}.exercise-row{align-items:center}.bulk-bar{background:var(--surface);box-shadow:inset 0 0 0 1px var(--accent);border-radius:8px;margin-bottom:16px;padding:14px 16px}.bulk-bar-top{font-size:var(--fs-base);color:var(--text);flex-wrap:wrap;align-items:center;gap:8px;font-weight:600;display:flex}.bulk-panel{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.status-badge.tone-danger{background:var(--danger-bg);color:var(--danger)}.status-badge.tone-warn{background:var(--warning-bg);color:var(--warning)}.status-badge.tone-info{background:var(--info-bg);color:var(--info)}.status-badge.tone-ok{background:var(--success-bg);color:var(--success)}.tag-chip-row{flex-wrap:wrap;gap:6px;display:flex}.add-book-row-group{gap:12px;display:flex}.add-book-row-group .add-book-row{flex:1}.visibility-chip{background:var(--surface-2);font-size:var(--fs-2xs);color:var(--accent-dark);border-radius:10px;padding:3px 9px;font-weight:600;display:inline-block}.visibility-chip.muted{color:var(--text-muted);font-weight:500}.filter-chips-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.filter-chip{background:var(--surface-2);color:var(--text);font-size:var(--fs-sm);font-family:var(--sans);cursor:default;border:none;border-radius:14px;align-items:center;gap:6px;padding:5px 6px 5px 12px;display:inline-flex}.filter-chip button{width:16px;height:16px;color:var(--text-muted);cursor:pointer;background:#00000014;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:10px;display:flex}.filter-chip button:hover{background:var(--danger);color:#fff}.filter-chip-clear-all{color:var(--accent);cursor:pointer;background:0 0;padding:5px 10px;text-decoration:underline}.collection-tile.archived{opacity:.55}.collection-thumb{color:#ffffffeb;justify-content:center;align-items:center;display:flex}.collection-thumb-icon{width:30px;height:30px}.collection-rule{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.status-badge.status-manual{background:var(--surface-2);color:var(--text-muted)}.collection-facts{grid-template-columns:auto 1fr}.collection-footer{font-size:var(--fs-sm);color:var(--text-muted);border-top:1px solid var(--line);margin-top:auto;padding-top:10px}.tag-chip.muted{opacity:.7}.task-nav-arrows{justify-content:center;gap:12px;margin-top:6px;display:flex}.collection-info-card{background:var(--surface-2);border-radius:8px;flex-direction:column;gap:18px;min-height:300px;padding:20px;display:flex;box-shadow:0 1px 2px #0000000a}.collection-info-row{flex-direction:column;gap:6px;display:flex}.collection-info-label{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.collection-info-value{font-size:var(--fs-base);color:var(--text-strong);font-weight:600;line-height:1.4}.collection-info-stars{font-size:var(--fs-2xl);letter-spacing:2px;color:var(--star)}.collection-info-sub{font-size:var(--fs-xs);color:var(--text-muted)}.stars-empty{color:var(--line)}.library-tabs{border-bottom:1px solid var(--line);gap:4px;margin:20px 0 18px;display:flex}.library-tab{font-family:var(--sans);font-size:var(--fs-md);color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;margin-right:20px;padding:10px 6px;display:flex}.library-tab:hover{color:var(--text-strong)}.library-tab.active{color:var(--text-strong);border-bottom-color:var(--accent);font-weight:600}.library-tab-count{background:var(--surface-2);color:var(--text-muted);font-size:var(--fs-xs);border-radius:10px;padding:1px 8px;font-weight:600}.library-tab.active .library-tab-count{background:var(--accent);color:#fff}.tag-multiselect{flex:220px;min-width:180px;position:relative}.tag-multiselect-chips{box-sizing:border-box;border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:4px;flex-wrap:wrap;align-items:center;gap:4px;min-height:38px;padding:5px 8px;display:flex}.tag-multiselect-chips .tag-chip{margin:0}.tag-multiselect-placeholder{color:var(--text-muted);font-size:var(--fs-base)}.tag-multiselect-arrow{color:var(--text-muted);font-size:var(--fs-2xs);margin-left:auto}.tag-multiselect-menu{min-width:260px;max-width:320px;padding:8px;left:0;right:auto}.tag-multiselect-menu #tag-search-input{box-sizing:border-box;border:1px solid var(--line);width:100%;font-family:var(--sans);font-size:var(--fs-base);border-radius:4px;margin-bottom:6px;padding:7px 9px}.tag-multiselect-list{flex-direction:column;max-height:220px;display:flex;overflow-y:auto}.exercises-toolbar-additional{margin-top:-10px;padding-top:0}.catalog-toolbar .view-toggle{border:1px solid var(--line);border-radius:6px;margin-left:auto;display:inline-flex;overflow:hidden}.view-toggle button{background:var(--surface);font-family:var(--sans);font-size:var(--fs-base);color:var(--text-muted);cursor:pointer;border:none;padding:8px 14px}.view-toggle button+button{border-left:1px solid var(--line)}.view-toggle button.active{background:var(--accent);color:#fff}.library-filters{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:center;gap:8px;margin:-8px 0 20px;display:grid}.library-filters select{width:100%;min-width:0;font-size:var(--fs-sm);text-overflow:ellipsis;padding:7px 24px 7px 10px}.library-filters .saved-filter-btn{justify-content:center;height:100%}.library-filters-reset{grid-column:1/-1;justify-self:start}.saved-filter-btn{align-items:center;gap:6px;display:inline-flex}.saved-filter-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.library-filters-reset{font-size:var(--fs-sm);color:var(--accent);cursor:pointer;margin-left:4px;text-decoration:underline}.book-difficulty{font-size:var(--fs-sm);color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.book-difficulty.muted{opacity:.8}.book-difficulty-label{text-transform:uppercase;letter-spacing:.04em;font-size:var(--fs-2xs)}.stars-fraction{font-size:var(--fs-lg);letter-spacing:1px;line-height:1;display:inline-block;position:relative}.stars-fraction-bg{color:var(--line)}.stars-fraction-fg{white-space:nowrap;color:var(--star);position:absolute;top:0;left:0;overflow:hidden}.book-tiles{grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:18px;display:grid}@media (width<=1100px){.book-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=800px){.book-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=520px){.book-tiles{grid-template-columns:1fr}}.book-tile{background:var(--surface);cursor:pointer;border-radius:8px;flex-direction:column;min-width:0;transition:box-shadow .15s;display:flex;overflow:hidden;box-shadow:0 1px 2px #0000000a}.book-tile-cover{background:var(--surface-2);flex-shrink:0;height:170px;position:relative;overflow:hidden}.book-tile-cover-blur{filter:blur(16px)saturate(1.1);opacity:.85;background-position:50%;background-size:cover;position:absolute;inset:-20px}.book-tile-cover-img{filter:drop-shadow(0 4px 10px #00000040);background-position:50%;background-repeat:no-repeat;background-size:contain;position:absolute;inset:10px 0}.book-tile-cover-color{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.book-tile-mark{color:#ffffffe6;font-size:52px}.book-tile-bookmark{z-index:1;background:#ffffffeb;border-radius:6px;padding:3px 5px;display:flex;position:absolute;top:8px;right:8px}.book-tile-bookmark .bookmark-btn{margin:0}.book-tile-body{flex-direction:column;flex:1;gap:6px;min-width:0;padding:12px 14px 14px;display:flex}.book-tile-title{font-size:var(--fs-lg);color:var(--text-strong);-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;height:2.6em;margin:0;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.book-tile-author{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.book-tile-author span{display:inline}.book-tile-desc{font-size:var(--fs-sm);color:var(--text);-webkit-line-clamp:2;-webkit-box-orient:vertical;height:2.8em;margin:0;line-height:1.4;display:-webkit-box;overflow:hidden}.book-tile .book-difficulty{white-space:nowrap;flex-wrap:nowrap}.book-tile-footer{flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:6px;margin-top:auto;padding-top:4px;display:flex}.book-tile-footer .stars button svg{width:16px;height:16px}.book-tile-footer .visibility-chip{white-space:nowrap}.book-tiles+.add-book-row-group,.book-list+.add-book-row-group{margin-top:16px}.open-book{position:relative}.open-book-zen{z-index:2;color:var(--text-muted);background:0 0;border-color:#0000;position:absolute;top:12px;right:12px}.open-book-zen:hover{color:var(--text-strong)}@media (width<=720px){.library-tabs{scrollbar-width:none;overflow-x:auto}.library-tab{white-space:nowrap;flex-shrink:0;margin-right:12px}.catalog-toolbar{flex-wrap:wrap;gap:10px}.catalog-toolbar .sort-select{flex:180px;min-width:0}.catalog-toolbar .view-toggle{margin-left:0}}.select-all-row{font-size:var(--fs-base);color:var(--text-muted);cursor:pointer;align-items:center;gap:10px;padding:8px 12px;display:flex}.show-more{margin:14px auto 0;display:block}.status-badge.status-warn{background:var(--warning-bg);color:var(--warning)}.book-reactions{justify-content:center;gap:4px;margin-top:6px;display:flex}.book-react{font-size:var(--fs-xs);color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;padding:1px 7px;line-height:1.6}.book-react span{font-variant-numeric:tabular-nums}.book-react:hover{border-color:var(--line);background:var(--surface-2);color:var(--text-strong)}.book-react.is-on{background:var(--success-bg);color:var(--success);border-color:#0000}.book-react.is-on.is-down{background:var(--danger-bg);color:var(--danger)}.book-tile-reactions .book-reactions{margin:6px 0 0}.public-book-cover{flex-direction:column;align-items:center;display:flex}.book-cover-col{flex-direction:column;align-items:stretch;gap:6px;min-width:0;display:flex}.book-cover-col .book-reactions{justify-content:center}.exercise-owner{font-size:var(--fs-2xs);background:var(--accent);color:#fff;white-space:nowrap;border-radius:10px;margin-right:6px;padding:1px 7px;display:inline-block}.catalog-heading.heading-with-action{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:14px;display:flex}.themes-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:18px;display:flex}.themes-toolbar #themes-search{flex:220px;min-width:0;max-width:360px}.themes-toolbar .muted{opacity:.65;font-size:var(--fs-sm);margin-left:auto}.themes-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.theme-tile{background:var(--surface);border:1px solid var(--line);border-radius:10px;flex-direction:column;min-width:0;transition:box-shadow .15s,border-color .15s;display:flex;overflow:hidden}.theme-tile.is-empty{opacity:.72}.theme-tile-board{padding:12px 12px 0}.theme-tile-noboard{aspect-ratio:1;background:var(--surface-2);color:var(--text);opacity:.6;font-size:var(--fs-sm);border-radius:6px;justify-content:center;align-items:center;display:flex}.theme-tile-body{flex-direction:column;flex:1;gap:6px;padding:12px 14px 14px;display:flex}.theme-kind{font-size:var(--fs-2xs);border-radius:10px;align-self:flex-start;padding:2px 8px;font-weight:600}.theme-kind.kind-motif{color:var(--accent);background:#a731c51f}.theme-kind.kind-mate{color:var(--danger);background:#c0392b1f}.theme-tile-title{font-size:var(--fs-xl);margin:2px 0 0;line-height:1.25}.theme-tile-desc{font-size:var(--fs-base);flex:1;margin:0;line-height:1.45}.theme-tile-desc .muted{opacity:.55}.theme-tile-foot{font-size:var(--fs-sm);justify-content:space-between;align-items:center;gap:8px;display:flex}.theme-count{font-weight:600}a.theme-count,.theme-article{cursor:pointer;color:var(--accent)}a.theme-count:hover,.theme-article:hover{text-decoration:underline}.theme-tile-actions{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.theme-edit{border-top:1px solid var(--line);background:var(--surface-2);flex-direction:column;gap:8px;padding:12px 14px 14px;display:flex}.theme-edit-label{font-size:var(--fs-sm);flex-direction:column;gap:4px;font-weight:600;display:flex}.theme-edit-label textarea,.theme-edit-label select{width:100%;min-width:0;font-weight:400}.theme-edit .muted{font-size:var(--fs-xs);opacity:.7}.tag-chip.train-chip{cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-sm)}.tag-chip.train-chip.on{background:var(--accent);border-color:var(--accent);color:#fff}.tag-chip.train-chip.on .muted{color:#fff;opacity:.8}.public-book-cover{align-items:stretch;gap:6px}.chapter-title-edit .chapter-delete-btn{margin-left:auto}#ex-search,#themes-search,#art-search,#as-task-search,#picker-search,[data-picker-search]{font-family:var(--sans);font-size:var(--fs-base);color:var(--text);background:var(--surface);border:1px solid var(--line);box-sizing:border-box;appearance:none;border-radius:8px;outline:none;padding:9px 14px}#ex-search::placeholder,#themes-search::placeholder,#art-search::placeholder,#as-task-search::placeholder,#picker-search::placeholder,[data-picker-search]::placeholder,.search-input::placeholder{color:var(--text-muted);opacity:1}#ex-search:focus,#themes-search:focus,#art-search:focus,#as-task-search:focus,#picker-search:focus,[data-picker-search]:focus,.search-input:focus{border-color:var(--accent);outline:none}.themes-toolbar .view-toggle{border:1px solid var(--line);border-radius:8px;display:inline-flex;overflow:hidden}.themes-toolbar select{border-radius:8px;padding:8px 10px}.catalog-heading .count a{color:var(--accent)}.visibility-chip.mine-chip{color:var(--accent);background:#a731c529;font-weight:600}.demo-list{font-size:var(--fs-base);margin:0 0 14px;padding-left:18px;line-height:1.7}.rights-anon-note{background:var(--info-bg);color:var(--text);font-size:var(--fs-sm);border-radius:8px;flex-basis:100%;margin-top:4px;padding:10px 12px;line-height:1.5}.rights-anon-preview{color:var(--text-strong);font-weight:600}.visibility-chip.chip-anon{background:var(--info-bg);color:var(--info);cursor:help}.col-filters{flex-wrap:wrap;align-items:flex-end;gap:10px 16px;margin:0 0 16px;display:flex}.col-filters label{font-size:var(--fs-xs);color:var(--text-muted);flex-direction:column;gap:4px;display:flex}.col-filters select{min-width:150px}.col-filters-reset{font-size:var(--fs-sm);color:var(--accent);cursor:pointer;padding-bottom:8px}.cover-preview-row{align-items:center;gap:10px;display:flex}.palette-below{grid-template-columns:repeat(6,40px);justify-content:start;gap:6px;margin-top:16px;display:grid}.palette-below .cell{border:1px solid var(--line);background:var(--surface-2);cursor:grab;width:40px;height:40px;color:var(--text-strong);border-radius:4px;justify-content:center;align-items:center;font-size:26px;display:flex}.palette-below .cell:active{cursor:grabbing}.palette-below .cell.armed{background:var(--accent);color:#fff;box-shadow:0 0 0 2px var(--accent-dark)}.palette-below .eraser-cell{font-size:var(--fs-2xl)}.position-warning{background:var(--warning-bg);color:var(--warning);font-size:var(--fs-sm);border-radius:6px;margin-top:12px;padding:10px 12px;line-height:1.5}.tab-btn{font-size:var(--fs-base);color:var(--text-muted);background:0 0;border:none;border-bottom:2px solid #0000;margin-right:14px;padding:8px 4px}.tab-btn.active{color:var(--text-strong);border-bottom-color:var(--accent);font-weight:600}.tab-btn:hover{color:var(--text-strong)}.fen-row{gap:8px;min-width:0;margin-bottom:10px;display:flex}.fen-row input{min-width:0;font-family:var(--mono);font-size:var(--fs-sm);border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:4px;flex:1;padding:7px 9px}.turn-toggle{font-size:var(--fs-sm);color:var(--text-muted);align-items:center;gap:6px;margin-bottom:12px;display:flex}.turn-toggle button{background:var(--surface-2);border:1px solid var(--line);color:var(--text-strong);border-radius:4px;padding:5px 10px}.turn-toggle button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.wizard-shell{background:var(--surface);border-radius:8px;margin-top:12px;box-shadow:0 10px 28px #00000014}.wizard-topbar{border-bottom:1px solid var(--line);flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:8px 12px;padding:14px 20px;display:flex}.wizard-steps{scrollbar-width:none;flex-wrap:nowrap;align-items:center;gap:0;min-width:0;display:flex;overflow-x:auto}.wizard-topbar-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.wizard-actions-sep{background:var(--line);width:1px;height:22px;margin:0 4px}.wizard-step{cursor:pointer;white-space:nowrap;background:0 0;border:none;flex-shrink:0;align-items:center;gap:5px;padding:6px 3px;display:flex}.wizard-step-num{background:var(--surface-2);width:22px;height:22px;color:var(--text-muted);font-size:var(--fs-xs);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.wizard-step-label{font-size:var(--fs-sm);color:var(--text-muted)}.wizard-step.active .wizard-step-num{background:var(--accent);color:#fff}.wizard-step.active .wizard-step-label{color:var(--text-strong);font-weight:600}.wizard-step.done .wizard-step-num{background:var(--success-bg);color:var(--success)}.wizard-step-sep{background:var(--line);flex-shrink:0;width:10px;height:1px;margin:0 2px}.wizard-body{min-height:520px;padding:28px}.wizard-step-grid{grid-template-columns:1fr 1fr;align-items:start;gap:32px;display:grid}.wizard-board-col{flex-direction:column;align-items:center;display:flex}.wizard-side-col{min-width:0}.wizard-side-col h3{font-size:var(--fs-lg);color:var(--text-strong);font-family:var(--sans);margin:0 0 16px}.wizard-single-col{max-width:640px}.wizard-single-col h3{font-size:var(--fs-lg);color:var(--text-strong);font-family:var(--sans);margin:0 0 8px}.goal-options{flex-direction:column;gap:8px;margin-top:16px;display:flex}.goal-option{background:var(--surface-2);cursor:pointer;font-size:var(--fs-base);color:var(--text);border-radius:6px;align-items:center;gap:10px;padding:12px 14px;display:flex}.goal-option.active{background:var(--warning-bg);color:var(--accent-dark);font-weight:600}.condition-preview{font-size:var(--fs-base);color:var(--text);background:var(--surface-2);border-radius:6px;margin-top:16px;padding:12px 14px}.solution-tree{background:var(--surface-2);max-height:340px;font-family:var(--mono);font-size:var(--fs-sm);border-radius:6px;padding:12px 14px;overflow-y:auto}.tree-node-line{align-items:center;gap:6px;padding:2px 0;display:flex}.tree-children{border-left:1px dashed var(--line);margin-left:18px;padding-left:10px}.tree-node{cursor:pointer;color:var(--text);font-family:var(--mono);font-size:var(--fs-sm);background:0 0;border:none;border-radius:4px;padding:2px 6px}.tree-node.current{background:var(--accent);color:#fff}.tree-node.root{color:var(--text-muted);font-style:italic}.tree-leaf-mark{color:var(--success);font-weight:700}.difficulty-picker{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.diff-pill{border:1px solid var(--line);background:var(--surface);min-width:32px;height:32px;color:var(--text);font-size:var(--fs-sm);white-space:nowrap;cursor:pointer;font-variant-numeric:tabular-nums;border-radius:16px;justify-content:center;align-items:center;padding:0 9px;font-weight:600;line-height:1;display:inline-flex}.diff-pill.filled{background:var(--accent);border-color:var(--accent);color:#fff}.diff-label{font-size:var(--fs-sm);color:var(--text-muted);margin-left:8px}@media (width<=900px){.wizard-step-grid{grid-template-columns:1fr}.wizard-topbar{flex-direction:column;align-items:stretch}}.castling-dropdown{display:inline-block;position:relative}.castling-menu{width:min(320px,100vw - 32px);min-width:220px;padding:6px 0;left:0;right:auto}.castling-menu .checklist-item{padding:7px 10px}.castling-menu .checklist-item.is-disabled{color:var(--text-muted);cursor:default}.castling-menu-hint{font-size:var(--fs-sm);color:var(--text-muted);margin:4px 10px 8px;line-height:1.45}.castling-menu-label{font-size:var(--fs-2xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;margin:8px 10px 2px}.castling-menu-note{font-size:var(--fs-sm);color:var(--text-muted);padding:0 10px 6px}.castling-menu-note .checklist-item{color:var(--text);padding:4px 0}.draft-status{font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap;margin-right:4px}.draft-status.saved{color:var(--success)}.draft-recovery-banner{background:var(--info-bg);color:var(--info);font-size:var(--fs-base);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 20px;display:flex}.draft-recovery-banner span{flex:auto}.promotion-picker{z-index:1000;background:#00000059;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.promotion-picker-box{background:var(--surface);border-radius:10px;flex-direction:column;align-items:center;gap:12px;padding:18px 20px;display:flex;box-shadow:0 12px 32px #0003}.promotion-picker-title{color:var(--text-strong);font-weight:600}.promotion-picker-options{gap:8px;display:flex}.promotion-picker-options button{border:1px solid var(--line);background:var(--surface-2);cursor:pointer;width:58px;height:58px;color:var(--text-strong);border-radius:8px;font-size:40px;line-height:1}.promotion-picker-options button:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.hint-level{border-top:1px solid var(--line);padding:12px 0}.hint-level:first-of-type{border-top:none}.hint-level-title{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:8px;font-weight:600}.editor-crumbs-row .draft-status{margin-right:0}@media (width<=720px){.wizard-steps{max-width:100%}}.queen-check{background:var(--danger-bg);color:var(--danger);font-size:var(--fs-base);border-radius:8px;margin:0 0 12px;padding:10px 12px;line-height:1.45}.queen-check[hidden]{display:none}.queen-check .btn{margin-top:8px}.queen-check.flash{animation:.9s 2 queenFlash}.solution-engine .engine-panel{margin-top:16px}.solution-engine .engine-panel .engine-eval{font-size:var(--fs-xl)}.solution-engine .engine-panel .engine-line{font-size:var(--fs-sm);padding:4px 6px 4px 8px}.number-dup-row[hidden]{display:none}.number-dup{font-size:var(--fs-sm);color:var(--warning);background:var(--warning-bg);border-radius:6px;padding:6px 10px}#wizard-cancel:hover{color:var(--danger);border-color:var(--danger);background:var(--danger-bg)}.solution-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.solution-head h3{margin:0}.wizard-step.wizard-step-position .wizard-step-num{background:0 0;border:1px dashed}.meta-comment-wrap{flex-direction:column;flex:320px;gap:8px;min-width:0;display:flex}.meta-comment-wrap textarea{box-sizing:border-box;width:100%}.meta-comment-tools{flex-wrap:wrap;align-items:center;gap:10px 14px;display:flex}.meta-comment-badge{font-size:var(--fs-sm)}.pos-transform{border:1px dashed var(--line);border-radius:10px;flex-wrap:wrap;align-items:center;gap:6px 8px;margin-top:10px;padding:10px 12px;display:flex}.pos-transform-label{font-size:var(--fs-sm);color:var(--text-muted);flex-basis:100%}.adv-settings{border:1px solid var(--line);background:var(--surface);border-radius:10px;margin-top:14px}.adv-settings>summary{cursor:pointer;font-size:var(--fs-base);color:var(--text-strong);border-radius:10px;align-items:center;gap:8px;padding:9px 12px;font-weight:600;list-style:none;display:flex}.adv-settings>summary::-webkit-details-marker{display:none}.adv-settings>summary:hover{background:var(--surface-2)}.adv-icon{color:var(--text-muted);display:inline-flex}.adv-summary{font-size:var(--fs-xs);color:var(--text-muted);margin-left:auto;font-weight:400}.adv-chevron{color:var(--text-muted);transition:transform .15s}.adv-settings[open] .adv-chevron{transform:rotate(180deg)}.adv-body{border-top:1px solid var(--line);flex-direction:column;gap:12px;padding:4px 12px 12px;display:flex}.adv-body .pos-transform{margin-top:10px}.adv-section.castling-menu{width:auto;min-width:0;padding:0}.adv-section-title{font-size:var(--fs-sm);color:var(--text-muted);margin-bottom:2px}.adv-section .castling-menu-hint,.adv-section .castling-menu-label,.adv-section .castling-menu-note{margin-left:0;margin-right:0;padding-left:0}.adv-section .checklist-item{padding:4px 0}.palette-below .cell{background:#f0d9b5;border-color:#0000002e;padding:0;transition:transform .1s,box-shadow .1s;position:relative}.palette-below .cell:hover{transform:translateY(-1px);box-shadow:0 2px 6px #00000040}.palette-below .cell.armed{box-shadow:0 0 0 3px var(--accent), 0 2px 8px #0000004d;background:#f0d9b5}.palette-below .eraser-cell{background:var(--surface-2)}.palette-below .eraser-cell.armed{background:var(--accent);color:#fff}.pal-piece{pointer-events:none;width:34px;height:34px;display:block;position:relative}.pal-piece piece{background-size:cover;width:34px;height:34px;position:absolute;top:0;left:0;transform:none!important}.metrics-row{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:22px;display:grid}.metric-card{background:var(--surface);cursor:pointer;border-radius:8px;padding:20px;box-shadow:0 1px 2px #0000000a}.metric-value{font-size:var(--fs-5xl);color:var(--text-strong);font-weight:700;font-family:var(--sans)}.metric-label{font-size:var(--fs-sm);color:var(--text-muted);margin-top:4px}.metric-card .metric-label{-webkit-line-clamp:2;-webkit-box-orient:vertical;padding-right:40px;display:-webkit-box;overflow:hidden}.metric-card.is-static{cursor:default}.dash-columns{grid-template-columns:2fr 1fr;align-items:start;gap:28px;display:grid}.dash-cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.dash-card{background:var(--surface);cursor:pointer;border-radius:8px;flex-direction:column;gap:8px;padding:20px;display:flex;box-shadow:0 1px 2px #0000000a}.dash-card-meta{font-size:var(--fs-sm);color:var(--text-muted)}.dash-card-pct{font-size:var(--fs-xs);color:var(--text-muted)}.dash-student{background:var(--surface);cursor:pointer;border-radius:8px;align-items:center;gap:12px;padding:12px 14px;display:flex;box-shadow:0 1px 2px #0000000a}.dash-student-avatar{color:#fff;width:38px;height:38px;font-weight:700;font-size:var(--fs-sm);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.dash-student-avatar.big{width:56px;height:56px;font-size:var(--fs-xl)}.dash-student-name{font-weight:600;font-size:var(--fs-base);color:var(--text-strong)}.dash-student-meta{font-size:var(--fs-xs);color:var(--text-muted);margin-top:2px}.stat-bars{flex-direction:column;gap:12px;display:flex}.stat-bar-row{grid-template-columns:140px 1fr 90px;align-items:center;gap:10px;display:grid}.stat-bar-label{font-size:var(--fs-sm);color:var(--text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.stat-bar-value{font-size:var(--fs-sm);color:var(--text-muted);text-align:right}@media (width<=900px){.dash-columns{grid-template-columns:1fr}.stat-bar-row{grid-template-columns:100px 1fr 70px}}.dash-hero{padding:0 0 4px}.dash-hero h1{font-family:var(--sans);font-weight:700;font-size:var(--fs-display);color:var(--text-strong);margin:0 0 6px;line-height:54px}.dash-hero p{color:var(--text-muted);font-size:var(--fs-md);margin:0}.metric-card{background:var(--surface);position:relative;box-shadow:0 1px 2px #0000000a}.metric-card-icon{width:44px;height:44px;color:var(--text-muted);opacity:.35;transition:color .15s,opacity .15s;position:absolute;top:14px;right:14px}.metric-card-icon svg{width:100%;height:100%;display:block}.metric-card.is-clickable:hover .metric-card-icon{opacity:1;color:var(--accent)}.arow-title{font-size:var(--fs-base);color:var(--text-strong);font-weight:600}.arow-students{font-size:var(--fs-xs);color:var(--text-muted);margin-top:2px}.arow-progress-frac{font-size:var(--fs-sm);color:var(--text);margin-bottom:5px}.arow-due{text-align:right}.arow-due-date{font-size:var(--fs-sm);color:var(--text-muted);margin-bottom:4px}.attention-list{flex-direction:column;gap:8px;display:flex}.attention-row{cursor:pointer}.recent-card{background:var(--surface);cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:12px;display:flex;box-shadow:0 1px 2px #0000000a}.recent-icon{color:#fff;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;display:flex}.recent-body{min-width:0}.recent-title{font-size:var(--fs-sm);color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.recent-sub{font-size:var(--fs-xs);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (width<=900px){.arow-due{text-align:left}}.puzzle-of-day-card{background:var(--surface);cursor:pointer;border-radius:8px;align-items:stretch;gap:20px;padding:18px;display:flex;box-shadow:0 1px 2px #0000000a}.puzzle-of-day-board{border-radius:6px;flex-shrink:0;width:200px;height:200px;overflow:hidden;box-shadow:0 1px 2px #0000000a}.puzzle-of-day-board #pod-board{width:100%;height:100%}.puzzle-of-day-info{flex-direction:column;flex:1;min-width:0;min-height:200px;display:flex}.pod-title{font-family:var(--sans);font-size:var(--fs-2xl);color:var(--text-strong);border-bottom:1px solid var(--line);margin:0;padding-bottom:10px;font-weight:700;line-height:26px}.pod-condition{font-size:var(--fs-base);color:var(--text-strong);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:12px;font-weight:600;line-height:20px;display:-webkit-box;overflow:hidden}.pod-source{font-size:var(--fs-sm);color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:4px;line-height:18px;display:-webkit-box;overflow:hidden}.pod-turn{font-size:var(--fs-xs);color:var(--text-muted);opacity:.75;align-items:center;gap:6px;margin-top:10px;display:flex}.pod-turn-mark{color:var(--text-strong);flex-shrink:0}.pod-actions{flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:14px;display:flex}@media (width<=720px){.puzzle-of-day-card{flex-direction:column;align-items:stretch}.puzzle-of-day-info{min-height:0}.puzzle-of-day-board{aspect-ratio:1;width:100%;height:auto}}.dash-student-avatar{background-position:50%;background-size:cover}.dash-student-avatar.small{width:28px;height:28px;font-size:var(--fs-2xs)}.my-hero{align-items:center;gap:16px;margin:8px 0 24px;display:flex}.my-hero h1{font-size:var(--fs-6xl);margin:0}.my-section{margin-bottom:28px}.my-section h2{font-size:var(--fs-2xl);align-items:center;gap:8px;display:flex}.my-hero{margin:0;display:block}.my-hero h1{font-size:var(--fs-display)}.my-section .section-heading h2{align-items:center;gap:8px;display:flex}#random-task-slot>.puzzle-of-day-card{box-sizing:border-box;height:100%}.notif-wrap{margin-right:8px;position:relative}.notif-bell{width:38px;height:38px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:relative}.notif-bell:hover,.notif-bell[aria-expanded=true]{background:var(--surface-2);color:var(--text-strong)}.notif-badge{box-sizing:border-box;background:var(--accent);color:#fff;min-width:17px;height:17px;font-size:var(--fs-2xs);text-align:center;box-shadow:0 0 0 2px var(--bg);border-radius:9px;padding:0 4px;font-weight:700;line-height:17px;position:absolute;top:3px;right:2px}.notif-menu{width:360px;max-width:calc(100vw - 24px);padding:0;left:auto;right:0;overflow:hidden}.notif-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.notif-readall{color:var(--accent);font:inherit;font-size:var(--fs-sm);cursor:pointer;background:0 0;border:0}.notif-list{max-height:420px;overflow-y:auto}.notif-item{border:0;border-bottom:1px solid var(--line);text-align:left;width:100%;font:inherit;cursor:pointer;color:var(--text);background:0 0;gap:10px;padding:10px 14px;display:flex}.notif-item:hover{background:var(--surface-2)}.notif-item.unread{background:var(--info-bg)}.notif-item.unread .notif-title:after{content:"";background:var(--accent);vertical-align:middle;border-radius:50%;width:7px;height:7px;margin-left:6px;display:inline-block}.notif-icon{font-size:18px;line-height:22px}.notif-body{flex-direction:column;gap:2px;min-width:0;display:flex}.notif-title{font-weight:600;font-size:var(--fs-base);color:var(--text-strong)}.notif-text{font-size:var(--fs-sm);color:var(--text-muted);text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.notif-time{font-size:var(--fs-xs);color:var(--text-muted);opacity:.8}.notif-empty{font-size:var(--fs-sm);color:var(--text-muted);text-align:center;padding:24px 16px}.recent-stack{flex-direction:column;gap:8px;display:flex}.recent-stack .recent-card{padding:10px 12px}.recent-stack .empty-hint{padding:8px 0}.continue-card{background:var(--surface);cursor:pointer;border-radius:8px;align-items:center;gap:12px;padding:12px;transition:box-shadow .15s;display:flex;box-shadow:0 1px 2px #0000000a}.continue-card.is-loading{color:var(--text-muted);font-size:var(--fs-sm);cursor:default}.continue-icon{background:var(--surface-2) center/cover no-repeat;width:44px;height:44px;color:var(--text-muted);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.continue-icon svg{width:24px;height:24px}.continue-body{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.continue-title{color:var(--text-strong);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.continue-sub{font-size:var(--fs-sm);color:var(--text-muted)}.dash-layout{--dash-gap:14px;flex-direction:column;gap:28px;margin-top:20px;display:flex}.dash-band{column-gap:var(--dash-gap);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}.dash-stack{flex-direction:column;gap:28px;min-width:0;display:flex}.dash-full>.dash-widget>.dash-widget-body>.metrics-row{margin:0}.dash-layout .metrics-row{gap:var(--dash-gap);grid-template-columns:repeat(4,minmax(0,1fr));margin:0}.tool-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:12px;min-width:0;padding:16px;display:flex}.tool-head{align-items:center;gap:12px;display:flex}.tool-card-icon{background:var(--surface-2);width:38px;height:38px;color:var(--text-muted);border-radius:10px;flex:0 0 38px;justify-content:center;align-items:center;display:flex}.tool-card-icon svg{width:22px;height:22px}.metric-tone-warn .tool-card-icon{background:var(--warning-bg);color:var(--warning)}.metric-tone-ok .tool-card-icon{background:var(--success-bg);color:var(--success)}.metric-tone-info .tool-card-icon{background:var(--info-bg);color:var(--info)}.tool-head-text{flex:1;min-width:0}.tool-value{font-size:var(--fs-4xl);color:var(--text-strong);font-weight:700;line-height:1.1}.tool-label{font-size:var(--fs-sm);color:var(--text-muted)}.tool-link,.tool-more{font-size:var(--fs-sm);color:var(--accent);cursor:pointer;white-space:nowrap}.tool-more{align-self:flex-start}.tool-body{flex-direction:column;gap:8px;min-width:0;display:flex}.tool-avatars{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.tool-avatar{cursor:pointer;background:0 0;border:none;border-radius:50%;padding:0;transition:transform .12s}.tool-avatar:hover{transform:translateY(-2px)}.tool-avatar .dash-student-avatar{width:36px;height:36px;font-size:var(--fs-sm);box-shadow:0 0 0 2px var(--surface)}.tool-avatar:hover .dash-student-avatar{box-shadow:0 0 0 2px var(--accent)}.tool-avatar-more{font-size:var(--fs-sm);color:var(--text-muted);cursor:pointer;padding:0 4px;font-weight:600}.tool-meta{font-size:var(--fs-xs);color:var(--text-muted)}.tool-list{flex-direction:column;gap:2px;display:flex}.tool-item{cursor:pointer;border-radius:8px;align-items:center;gap:10px;min-width:0;margin:0 -8px;padding:7px 8px;display:flex}.tool-item:hover,.tool-deadline:hover{background:var(--surface-2)}.tool-item .dash-student-avatar{width:30px;height:30px;font-size:var(--fs-2xs);flex:0 0 30px}.tool-item-main{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.tool-item-title{font-size:var(--fs-sm);color:var(--text-strong);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.tool-item-sub{font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tool-item-pct{font-size:var(--fs-xs);color:var(--text-muted);font-variant-numeric:tabular-nums;font-weight:700}.tool-item .status-badge{flex-shrink:0}.tool-bad{color:var(--danger);font-weight:600}.tool-deadline{cursor:pointer;border-radius:8px;flex-direction:column;gap:4px;min-width:0;margin:-8px;padding:8px;display:flex}.tool-deadline .tool-list{gap:6px;margin-top:6px}.tool-mini{align-items:center;gap:8px;min-width:0;display:flex}.tool-mini .dash-student-avatar{width:24px;height:24px;font-size:var(--fs-2xs);flex:0 0 24px}.tool-mini-name{min-width:0;font-size:var(--fs-sm);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.tool-mini-frac{font-size:var(--fs-xs);color:var(--text-muted);font-variant-numeric:tabular-nums;font-weight:700}.tool-mini-frac.is-done{color:var(--success)}.dash-widget{min-width:0;position:relative}.dash-widget .section-heading{align-items:center;min-height:26px;margin-bottom:12px}.dash-layout .section-heading h2,.dash-widget .section-heading h2{font-size:var(--fs-xl);font-weight:700;line-height:24px}.dash-widget #random-task-slot>.puzzle-of-day-card{height:auto}@media (width<=900px){.dash-band{grid-template-columns:1fr;row-gap:28px}.dash-layout .metrics-row{grid-template-columns:repeat(2,minmax(0,1fr))}}.dash-hero-title h1{margin:0}.dash-edit-btn{width:36px;height:36px;color:var(--text-muted)}.dash-edit-btn svg{width:20px;height:20px}.dash-edit-btn:hover,.dash-edit-btn.is-on{color:var(--accent);border-color:var(--accent)}.dash-edit-btn.is-on{background:var(--warning-bg)}.dash-edit-bar{z-index:6;background:var(--surface);border:1px solid var(--accent);font-size:var(--fs-base);border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;margin-top:16px;padding:10px 14px;display:flex;position:sticky;top:8px;box-shadow:0 6px 18px #0000001a}.dash-edit-bar>span:first-child{flex:320px}.dash-edit-icon{vertical-align:-3px;color:var(--text-muted);display:inline-flex}.dash-layout.is-editing .dash-widget{outline:1.5px dashed var(--line);outline-offset:6px;border-radius:6px}.dash-layout.is-editing .dash-widget:hover{outline-color:var(--accent)}.dash-layout.is-editing .dash-widget-body{pointer-events:none;-webkit-user-select:none;user-select:none}.dash-widget.is-hidden .dash-widget-body{opacity:.35;filter:grayscale()}.dash-widget.is-dragging{opacity:.4}.dash-hidden-note{font-size:var(--fs-xs);color:var(--text-muted);background:var(--surface-2);vertical-align:middle;border-radius:10px;margin-left:6px;padding:1px 8px;font-weight:600}.dash-widget-tools{align-items:center;gap:4px;margin-left:auto;display:inline-flex}.dash-eye,.dash-drag{border:1px solid var(--line);background:var(--surface);width:32px;height:30px;color:var(--text-muted);border-radius:6px;justify-content:center;align-items:center;padding:0;display:inline-flex}.dash-eye svg{width:18px;height:18px}.dash-eye:hover{color:var(--text-strong);border-color:var(--text-muted)}.dash-drag{cursor:grab}.dash-drag:hover,.dash-drag:focus-visible{color:var(--text-strong);border-color:var(--text-muted)}.dash-drag:active{cursor:grabbing}.dash-widget.drop-before:before,.dash-widget.drop-after:after{content:"";background:var(--accent);pointer-events:none;border-radius:2px;height:4px;position:absolute;left:0;right:0}.dash-widget.drop-before:before{top:-16px}.dash-widget.drop-after:after{bottom:-16px}.dash-drop-end{border:1.5px dashed var(--line);text-align:center;font-size:var(--fs-sm);color:var(--text-muted);border-radius:8px;padding:14px}.dash-drop-end.is-over{border-color:var(--accent);color:var(--accent);background:var(--warning-bg)}.puzzle-of-day-card{gap:18px}.puzzle-of-day-info{gap:0}.pod-condition{font-size:var(--fs-lg);-webkit-line-clamp:3;margin-top:2px;font-weight:600;line-height:22px}.pod-source{font-size:var(--fs-sm);margin-top:6px;line-height:18px}.pod-chips{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.pod-chip{font-size:var(--fs-xs);background:var(--surface-2);color:var(--text);white-space:nowrap;border-radius:11px;align-items:center;gap:5px;padding:2px 9px;line-height:18px;display:inline-flex}.pod-chip.pod-turn{opacity:1;color:var(--text);margin:0}.pod-chip-tag{color:var(--text-muted)}.pod-actions{padding-top:16px}.train-hero h1{margin:0 0 6px}.train-hero p{margin:0 0 16px}.btn.train-start{font-size:var(--fs-xl);background:var(--save);border-color:var(--save);color:#fff;padding:12px 26px}.btn.train-start:hover:not(:disabled){background:var(--save-dark);border-color:var(--save-dark)}.train-summary{font-size:var(--fs-sm);opacity:.85;margin-top:10px}.train-summary a,.my-hero-actions a,#train-reset{cursor:pointer;color:var(--accent);text-decoration:underline}.train-settings{border-top:1px solid var(--line);flex-direction:column;gap:12px;margin-top:14px;padding-top:14px;display:flex}.train-more{font-size:var(--fs-sm);color:var(--text-muted);margin-top:12px}.train-more a{cursor:pointer;color:var(--accent);text-decoration:underline}.train-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.train-row-top{align-items:flex-start}.train-label{min-width:110px;font-weight:600;font-size:var(--fs-base)}.train-row .tag-chip-row{flex:1;min-width:0}.my-hero-actions{font-size:var(--fs-sm);flex-wrap:wrap;align-items:center;gap:14px;margin-top:14px;display:flex}.continue-icon.continue-icon-wide{width:78px;height:44px}.catalog-heading,.dash-hero,.dash-hero.my-hero{margin:0 0 20px;padding:0;display:block}.catalog-heading h1,.dash-hero h1,.dash-hero.my-hero h1{font-family:var(--sans);font-weight:700;font-size:var(--fs-display);color:var(--text-strong);margin:0;line-height:54px}.catalog-heading .count,.dash-hero>p,.dash-hero.my-hero>p{font-family:var(--sans);font-size:var(--fs-md);color:var(--text-muted);max-width:900px;margin:6px 0 0;font-weight:400;line-height:22px}.dash-hero-title{align-items:center;gap:12px;display:flex}.train-hero{margin:0 0 22px}@media (width<=640px){.catalog-heading h1,.dash-hero h1,.dash-hero.my-hero h1{font-size:var(--fs-display-sm);line-height:40px}}.dash-layout+.my-section{margin-top:28px}.my-section .section-heading h2{font-size:var(--fs-xl);font-weight:700;line-height:24px}.my-section+.my-section{margin-top:28px}.dash-student-body{flex:1;min-width:0}.attention-row .status-badge{flex-shrink:0;margin-left:auto}.dash-layout .status-badge{text-align:center;box-sizing:border-box;min-width:84px;display:inline-block}@media (width<=720px){.notif-wrap{position:static}.notif-menu{top:calc(var(--topbar-h) + 4px);width:auto;max-width:none;position:fixed;left:8px;right:8px}.notif-list{max-height:calc(100vh - var(--topbar-h) - 90px)}}.pod-difficulty{flex-wrap:wrap;align-items:center;gap:10px;margin-top:auto;padding-top:8px;display:flex}.pod-pool{font-size:var(--fs-sm);color:var(--text-muted);opacity:.8}.onboarding{background:var(--surface);border:1px solid color-mix(in srgb, var(--accent) 35%, var(--line));border-radius:12px;margin:0 0 18px;padding:16px 18px}.ob-head{flex-wrap:wrap;align-items:flex-start;gap:12px 16px;display:flex}.ob-head>div{flex:1;min-width:220px}.ob-head h2{font-size:var(--fs-xl);margin:0 0 4px}.ob-head p{font-size:var(--fs-base);color:var(--text-muted);margin:0}.ob-count{color:var(--accent);font-variant-numeric:tabular-nums;padding-top:2px;font-weight:700}.ob-hide{color:var(--text-muted);padding-top:3px}.ob-bar{background:var(--surface-2);border-radius:2px;height:4px;margin:12px 0 10px;overflow:hidden}.ob-bar span{background:var(--accent);height:100%;transition:width .3s;display:block}.ob-steps{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.ob-step{border-radius:8px;align-items:center;gap:12px;padding:8px 10px;display:flex}.ob-step.is-current{background:color-mix(in srgb, var(--accent) 8%, transparent)}.ob-num{height:28px;font-weight:700;font-size:var(--fs-sm);color:var(--text-muted);border:1.5px solid var(--line);border-radius:50%;flex:0 0 28px;justify-content:center;align-items:center;display:flex}.ob-step.is-current .ob-num{color:#fff;background:var(--accent);border-color:var(--accent)}.ob-step.is-done .ob-num{color:#fff;background:var(--success);border-color:var(--success)}.ob-body{flex:1;min-width:0}.ob-title{color:var(--text-strong);font-weight:600}.ob-step.is-done .ob-title{color:var(--text-muted);text-decoration:line-through;-webkit-text-decoration-color:color-mix(in srgb, var(--text-muted) 50%, transparent);text-decoration-color:color-mix(in srgb, var(--text-muted) 50%, transparent)}.ob-text{font-size:var(--fs-sm);color:var(--text-muted);margin-top:2px;line-height:1.4}.onboarding.is-complete{border-color:color-mix(in srgb, var(--success) 45%, var(--line))}.ob-check{background:var(--success);color:#fff;border-radius:50%;flex:0 0 32px;justify-content:center;align-items:center;height:32px;display:flex}@media (width<=560px){.ob-step{flex-wrap:wrap}.ob-step .btn{margin-left:40px}}.today-grid{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:14px;margin:4px 0 14px;display:grid}.today-row{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);align-items:start;gap:14px;margin:0 0 26px;display:grid}@media (width<=980px){.today-grid,.today-row{grid-template-columns:minmax(0,1fr)}}.today-task{background:var(--surface);border:1px solid var(--line);border-radius:10px;gap:20px;min-width:0;padding:18px;display:flex}.today-task-board{aspect-ratio:1;flex:none;width:min(340px,100%)}.today-task-board #today-board{width:100%;height:100%}.today-task-board cg-container,.today-task-board cg-board{border-radius:6px;overflow:hidden}.today-task-side{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex}.today-task-cond{flex-direction:column;gap:4px;display:flex}.today-task-cond b{font-size:var(--fs-xl);color:var(--text-strong);line-height:1.3}.today-task-turn{font-size:var(--fs-sm);color:var(--text-muted)}.today-task-status{min-height:24px;font-size:var(--fs-md);color:var(--text-muted);font-weight:600}.today-task-status.is-ok{color:var(--success)}.today-task-status.is-bad{color:var(--danger)}.today-task-status.is-hint{color:var(--warning)}.today-task-status .kid-stars{margin-top:6px}.today-task-actions{flex-wrap:wrap;gap:8px;margin-top:auto;display:flex}@media (width<=640px){.today-task{flex-direction:column;padding:14px}.today-task-board{width:100%}}.today-panel{gap:14px;padding:18px}.today-goal{align-items:center;gap:16px;display:flex}.today-ring-wrap{flex:0 0 88px;width:88px;height:88px;position:relative}.today-ring{width:100%;height:100%}.today-ring-bg{fill:none;stroke:var(--surface-2);stroke-width:9px}.today-ring-fg{fill:none;stroke:var(--accent);stroke-width:9px;stroke-linecap:round;transition:stroke-dasharray .5s}.today-ring-fg.is-full{stroke:var(--success)}.today-ring-fg.is-empty{opacity:0}.today-ring-num{flex-direction:column;justify-content:center;align-items:center;line-height:1.1;display:flex;position:absolute;inset:0}.today-ring-num b{font-size:var(--fs-3xl);color:var(--text-strong)}.today-ring-num span{font-size:var(--fs-xs);color:var(--text-muted)}.today-goal-title{font-size:var(--fs-lg);color:var(--text-strong);font-weight:700}.today-goal-sub{font-size:var(--fs-sm);color:var(--text-muted)}.today-goal-pick{gap:4px;margin-top:6px;display:inline-flex}.today-goal-pick button{border:1px solid var(--line);color:var(--text-muted);font:inherit;font-size:var(--fs-xs);cursor:pointer;background:0 0;border-radius:999px;padding:1px 10px}.today-goal-pick button.active{background:var(--accent);border-color:var(--accent);color:#fff}.today-streak{background:var(--warning-bg);color:var(--text-strong);font-size:var(--fs-md);border-radius:10px;flex-wrap:wrap;align-items:center;gap:4px 8px;padding:10px 12px;display:flex}.today-streak b{font-size:var(--fs-xl)}.today-streak-fire{font-size:var(--fs-2xl);line-height:1}.today-streak-sub{font-size:var(--fs-xs);color:var(--text-muted);flex-basis:100%}.today-streak.is-zero{background:var(--surface-2)}.today-streak.is-zero .today-streak-fire{filter:grayscale();opacity:.5}.today-badge{align-items:center;gap:10px;display:flex}.today-badge-icon{font-size:var(--fs-4xl);line-height:1}.today-badge-main{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.today-badge-text{font-size:var(--fs-sm);color:var(--text-strong);font-weight:600}.today-earned{font-size:var(--fs-lg);flex-wrap:wrap;align-items:center;gap:4px;display:flex}.today-earned .muted{font-size:var(--fs-xs);margin-left:4px}.today-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:auto;display:flex}.today-actions a{cursor:pointer;color:var(--accent);font-size:var(--fs-sm);text-decoration:underline}.plan-card{gap:2px}.plan-head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.plan-left{font-size:var(--fs-xs);color:var(--text-muted)}.plan-item{border-top:1px solid var(--line);align-items:center;gap:12px;padding:9px 0;display:flex}.plan-item:first-of-type{border-top:none}.plan-check{border:2px solid var(--line);width:24px;height:24px;font-size:var(--fs-sm);color:#fff;border-radius:50%;flex:0 0 24px;justify-content:center;align-items:center;font-weight:700;display:flex}.plan-item.is-done .plan-check{background:var(--success);border-color:var(--success)}.plan-main{flex:1;min-width:0}.plan-title{font-size:var(--fs-md);color:var(--text-strong);font-weight:600}.plan-item.is-done .plan-title{color:var(--text-muted);text-decoration:line-through;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line)}.plan-sub{font-size:var(--fs-xs);color:var(--text-muted)}.plan-item .btn{flex-shrink:0}.my-last{margin-top:6px}.my-lessons{margin-top:16px}.my-online{flex-direction:column;gap:2px;margin-bottom:12px;display:flex}.my-online-row{border-bottom:1px solid var(--line);font-size:var(--fs-base);gap:12px;padding:6px 4px;display:flex}.my-online-date{flex:0 0 110px;font-weight:600}.my-online-main{color:var(--text-muted)}.my-online-main b{color:var(--text-strong)}.my-topics-label{margin:6px 0 8px}.tj-summary{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.tj-item-ro{grid-template-columns:44px minmax(0,1fr)}.my-train-card{border-color:color-mix(in srgb, var(--accent) 45%, var(--line));background:color-mix(in srgb, var(--accent) 6%, var(--surface))}.my-train-card .prep-actions{align-items:center}.my-train-card .prep-actions a{font-size:var(--fs-sm);color:var(--accent);cursor:pointer}.my-done>summary{cursor:pointer;list-style:none}.my-done>summary::-webkit-details-marker{display:none}.my-done>summary h2:after{content:" ▾";font-size:var(--fs-base);color:var(--text-muted)}.my-done[open]>summary h2:after{content:" ▴"}.my-chain-next{margin-top:-4px}.mode-chip{background:var(--surface-2);font-size:var(--fs-2xs);color:var(--text-muted);border-radius:10px;padding:2px 8px;font-weight:600;display:inline-block}.share-link{font-family:var(--mono);font-size:var(--fs-md);color:var(--accent);margin:6px 0}.share-qr{box-shadow:inset 0 0 0 1px var(--line);background:#fff;border-radius:6px;flex-shrink:0;padding:6px}.assignment-list{background:var(--surface);border-radius:8px;overflow:visible;box-shadow:0 1px 2px #0000000a}.assignment-row{border-bottom:1px solid var(--line);cursor:pointer;grid-template-columns:1fr 140px 130px;align-items:center;gap:16px;padding:16px 18px;display:grid;position:relative}.assignment-row:last-child{border-bottom:none}@media (width<=900px){.assignment-row{grid-template-columns:1fr;row-gap:8px}}.order-preview{background:var(--surface-2);border-radius:6px;margin-top:6px;padding:12px 14px}.results-table,.matrix-table{border-collapse:collapse;background:var(--surface);width:100%;font-size:var(--fs-base);border-radius:8px}.results-table th,.matrix-table th{text-align:left;font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:10px 12px;font-weight:600}.results-table td,.matrix-table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:10px 12px}.results-student{align-items:center;gap:10px;display:flex}.results-student a,.matrix-task a{cursor:pointer;color:var(--text-strong)}.results-bar{max-width:120px;margin-top:4px}.matrix-cell{white-space:nowrap}.tasks-toc>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;list-style:none;display:flex}.tasks-toc>summary::-webkit-details-marker{display:none}.tasks-toc>summary h2{align-items:center;gap:8px;margin:0;display:flex}.tasks-toc-toggle{font-size:var(--fs-sm);color:var(--accent);white-space:nowrap}.tasks-toc:not([open]) .when-open,.tasks-toc[open] .when-closed{display:none}.matrix-legend{font-size:var(--fs-sm);color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:6px 18px;margin:0 0 12px;display:flex}.matrix-legend>span{align-items:center;gap:6px;display:inline-flex}.matrix-legend .matrix-mark{transform:scale(.85)}.how-tiles{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;margin:0 0 18px;display:grid}.how-tile{border:1px solid var(--line);background:var(--surface);border-radius:10px;align-items:center;gap:10px;min-width:0;padding:12px 14px;display:flex}.how-tile-icon{background:var(--surface-2);width:34px;height:34px;color:var(--text-muted);border-radius:9px;flex:0 0 34px;justify-content:center;align-items:center;display:flex}.how-tile-icon svg{width:20px;height:20px}.how-tile.is-on .how-tile-icon{background:var(--success-bg);color:var(--success)}.how-tile.is-accent .how-tile-icon{background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--accent)}.how-tile.is-deadline .how-tile-icon{background:var(--info-bg);color:var(--info)}.how-tile.is-off .how-tile-value{color:var(--text-muted)}.how-tile-label{font-size:var(--fs-xs);color:var(--text-muted)}.how-tile-value{font-size:var(--fs-base);color:var(--text-strong);font-weight:600}.how-tile-sub{font-size:var(--fs-xs);font-weight:600;display:block}.how-tile-sub.tone-soon{color:var(--warning)}.how-tile-sub.tone-overdue{color:var(--danger)}.how-tile-sub.tone-ok,.how-tile-sub.tone-done{color:var(--success)}.assignment-comment{background:var(--surface);border:1px solid var(--line);border-radius:10px;margin:0 0 18px;padding:12px 14px}.matrix-mark{width:24px;height:24px;font-weight:700;font-size:var(--fs-sm);border-radius:50%;justify-content:center;align-items:center;margin-right:6px;display:inline-flex}.matrix-mark.ok{background:var(--success-bg);color:var(--success)}.matrix-mark.partial{background:var(--warning-bg);color:var(--warning)}.matrix-mark.manual,.matrix-mark.manual-off{background:var(--info-bg);color:var(--info)}.matrix-mark.none{color:var(--text-muted)}.matrix-override{width:auto;font-size:var(--fs-xs);padding:3px 22px 3px 6px}.assignment-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}@media (width<=800px){.assignment-cards{grid-template-columns:1fr}}.assignment-card{background:var(--surface);cursor:pointer;border-radius:10px;flex-direction:column;gap:14px;min-width:0;padding:20px 22px;transition:box-shadow .15s;display:flex;box-shadow:0 1px 2px #0000000a}.assignment-card-top{align-items:flex-start;gap:14px;display:flex}.assignment-card-head{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.assignment-card-title{font-size:var(--fs-2xl);color:var(--text-strong);font-weight:600;line-height:1.3}.assignment-card-badges{align-items:center;gap:6px;margin-top:4px;display:flex}.as-book-thumb{background:var(--surface-2);border-radius:6px;flex-shrink:0;width:64px;height:86px;position:relative;overflow:hidden;box-shadow:0 2px 6px #0000001f}.as-book-thumb-blur{filter:blur(8px);opacity:.85;background-position:50%;background-size:cover;position:absolute;inset:-8px}.as-book-thumb-img{background-position:50%;background-repeat:no-repeat;background-size:contain;position:absolute;inset:0}.as-book-thumb-color{color:#ffffffe6;font-size:var(--fs-5xl);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.as-students{flex-wrap:wrap;gap:8px;display:flex}.as-student-chip{background:var(--surface-2);font-size:var(--fs-base);color:var(--text-strong);border-radius:20px;align-items:center;gap:8px;padding:3px 12px 3px 3px;display:inline-flex}.as-student-chip:hover{background:var(--line)}.assignment-card-facts{grid-template-columns:auto 1fr;align-items:end;gap:28px;margin-top:auto;display:grid}.assignment-add{justify-content:center;align-items:center;min-height:120px;display:flex}.my-card .assignment-card-head{gap:6px}.results-actions{white-space:nowrap}.results-actions .btn+.btn{margin-left:6px}.share-qr svg{width:98px;height:98px;display:block}.as-filter{margin:0 0 14px}.as-filter-count{font-size:var(--fs-xs);opacity:.7;margin-left:2px}.as-filter-note{text-align:left;max-width:none;margin:-4px 0 14px}.as-fact-big.tone-archived{color:var(--text-muted)}.status-badge.status-archived{background:var(--surface-2);color:var(--text-muted)}.chain-chip{background:var(--info-bg);color:var(--info)}.chain-maps{margin:0 0 20px}.chain-maps>summary{cursor:pointer;list-style:none}.chain-maps>summary::-webkit-details-marker{display:none}.chain-maps-note{text-align:left;max-width:none;margin:0 0 12px}.chain-map{background:var(--surface);border:1px solid var(--line);border-radius:10px;margin-bottom:12px;padding:12px;overflow-x:auto}.chain-row{grid-template-columns:180px repeat(var(--chain-steps), minmax(150px, 1fr));border-top:1px solid var(--line);align-items:center;gap:8px;min-width:max-content;padding:6px 0;display:grid}.chain-row.chain-head{border-top:none;padding-top:0}.chain-step{text-align:left;border:1px solid var(--line);background:var(--surface-2);color:var(--text);font:inherit;cursor:pointer;border-radius:8px;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;padding:8px 10px;display:flex;position:relative}.chain-step:hover{border-color:var(--accent)}.chain-step-num{font-size:var(--fs-2xs);color:var(--accent);font-weight:700}.chain-step-title{font-size:var(--fs-sm);color:var(--text-strong);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-weight:600;overflow:hidden}.chain-step-sub{font-size:var(--fs-xs);color:var(--text-muted)}.chain-student{font-size:var(--fs-sm);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.chain-cell{width:28px;height:28px;font-size:var(--fs-sm);background:var(--surface-2);color:var(--text-muted);border-radius:50%;justify-content:center;justify-self:center;align-items:center;font-weight:700;display:inline-flex}.chain-cell.is-done{background:var(--success-bg);color:var(--success)}.chain-cell.is-progress{background:var(--warning-bg);color:var(--warning)}.chain-cell.is-new{background:var(--info-bg);color:var(--info)}.chain-cell.is-none{background:0 0}.chain-strip{flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 18px;display:flex}.chain-strip .collection-info-label{flex-basis:100%;margin:0}.chain-strip-steps{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.chain-pill{border:1px solid var(--line);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-sm);cursor:pointer;border-radius:999px;padding:4px 12px}.chain-pill.is-current{background:var(--accent);border-color:var(--accent);color:#fff;cursor:default}.chain-arrow{color:var(--text-muted)}.chain-strip-hint{font-size:var(--fs-xs)}.as-issue{flex-direction:column;gap:8px;display:flex}.as-issue-row{font-size:var(--fs-sm);flex-wrap:wrap;align-items:center;gap:10px;display:flex}.as-after-select{max-width:420px}.matrix-task[data-preview-task]{cursor:default}.field-row{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;margin-bottom:10px;display:flex}.field-row>label{font-size:var(--fs-xs);color:var(--text-muted);flex-shrink:0;width:90px}.field-row input[type=text],.field-row input:not([type]),.field-row textarea,.field-row select,.field-row input[type=number],.field-row input[type=date]{font-family:var(--sans);font-size:var(--fs-base);border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:4px;flex:120px;min-width:0;padding:7px 9px}.field-row input::placeholder,.field-row textarea::placeholder{color:var(--text-muted)}.field-row input[type=file]{color:var(--text-muted);font-size:var(--fs-sm);flex:120px;min-width:0}textarea.comment-edit{box-sizing:border-box;overflow-wrap:break-word;word-break:break-word;width:100%;min-width:0;min-height:70px}.inline-create-form{background:var(--surface);border-radius:8px;margin-bottom:20px;padding:22px;box-shadow:0 1px 2px #0000000a}.inline-create-form h3{font-size:var(--fs-lg);color:var(--text-strong);margin:0 0 14px}.checklist{background:var(--surface-2);border-radius:6px;flex-direction:column;flex:1;gap:6px;min-width:0;max-height:220px;padding:10px;display:flex;overflow-y:auto}.checklist-item{font-size:var(--fs-base);color:var(--text);cursor:pointer;align-items:center;gap:8px;display:flex}.checklist-sub{color:var(--text-muted);font-size:var(--fs-xs)}.picker-box{background:var(--surface-2);border-radius:8px;margin-top:10px;padding:14px}.picker-list{max-height:280px;margin-top:8px;overflow-y:auto}.tag-checklist{grid-template-columns:repeat(2,1fr);gap:4px 14px;max-height:300px;display:grid}.themes-toolbar .checklist-item{font-size:var(--fs-sm);margin:0}.train-settings .checklist-item{margin:0}.fc-section{margin-top:26px}.fc-section h2{font-size:var(--fs-xl);margin:0 0 12px}.form-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px 22px}.fc-step{border-top:1px solid var(--line);padding:14px 0}.form-card h2+.fc-step{border-top:none;padding-top:4px}.fc-step-label{font-weight:600;font-size:var(--fs-md);color:var(--text-strong);margin-bottom:10px}.fc-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.fc-option{text-align:left;border:1px solid var(--line);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:12px;grid-template-rows:auto auto;grid-template-columns:auto 1fr;gap:3px 12px;padding:14px;display:grid}.fc-option.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:#a731c514}.fc-option-icon{background:var(--surface-2);width:38px;height:38px;color:var(--accent);border-radius:10px;grid-row:1/3;justify-content:center;align-items:center;display:flex}.fc-option-title{color:var(--text-strong);font-weight:700}.fc-option-text{font-size:var(--fs-sm);color:var(--text-muted);line-height:1.4}.fc-row{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:12px;display:flex}.fc-row-top{align-items:flex-start}.fc-label{width:110px;font-size:var(--fs-base);color:var(--text-muted);flex:0 0 110px}.fc-seg{border:1px solid var(--line);border-radius:8px;display:inline-flex;overflow:hidden}.fc-chips{flex-wrap:wrap;flex:300px;align-items:center;gap:6px;display:flex}.fc-chip{border:1px solid var(--line);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-sm);cursor:pointer;border-radius:999px;padding:4px 11px}.fc-chip span{color:var(--text-muted);font-size:var(--fs-xs)}.fc-chip.on{background:var(--accent);border-color:var(--accent);color:#fff}.fc-chip.on span{color:#ffffffbf}.fc-chip-clear{color:var(--accent);font:inherit;font-size:var(--fs-sm);cursor:pointer;background:0 0;border:none}.fc-note{text-align:left;max-width:none;margin:0 0 10px}.fc-actions{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding-top:16px;display:flex}@media (width<=720px){.fc-options{grid-template-columns:1fr}.fc-label{flex-basis:100%;width:auto}.form-card{padding:16px 14px}}.form-card,.inline-create-form,.form-card-inline{background:var(--surface);border:1px solid var(--line);box-shadow:none;border-radius:14px;padding:20px 22px}.form-card>h2,.inline-create-form>h3,.form-card-inline>h2{font-size:var(--fs-xl);color:var(--text-strong);font-family:var(--sans);margin:0 0 6px}.form-card-inline{margin-top:4px}.fc-subtitle{font-size:var(--fs-base);color:var(--text-muted);margin:0 0 6px}:is(.form-card,.inline-create-form,.form-card-inline) .field-row{gap:14px;margin-bottom:12px}:is(.form-card,.inline-create-form,.form-card-inline) .field-row>label:first-child,.fc-label{width:130px;font-size:var(--fs-base);color:var(--text-muted);flex:0 0 130px}:is(.form-card,.inline-create-form,.form-card-inline) :is(input[type=text],input:not([type]),input[type=number],input[type=date],input[type=time],input[type=search],select,textarea){font-family:var(--sans);font-size:var(--fs-base);color:var(--text);background:var(--surface);border:1px solid var(--line);box-sizing:border-box;border-radius:8px;outline:none;padding:8px 12px}:is(.form-card,.inline-create-form,.form-card-inline) :is(input,select,textarea):focus{border-color:var(--accent)}:is(.form-card,.inline-create-form,.form-card-inline) :is(input[type=text],input:not([type]),textarea){flex:260px;min-width:0;max-width:520px}:is(.form-card,.inline-create-form,.form-card-inline) textarea{resize:vertical;min-height:76px}.fc-seg{border:1px solid var(--line);border-radius:8px;flex-wrap:wrap;display:inline-flex;overflow:hidden}.fc-seg>label{margin:0;position:relative}.fc-seg>label>input{opacity:0;pointer-events:none;position:absolute}.fc-seg>label>span,.fc-seg>button{background:var(--surface);font-family:var(--sans);font-size:var(--fs-base);color:var(--text-muted);cursor:pointer;border:none;padding:8px 14px;display:block}.fc-seg>label+label>span,.fc-seg>button+button{border-left:1px solid var(--line)}.fc-seg>label>input:checked+span,.fc-seg>button.active{background:var(--accent);color:#fff}.fc-seg>label>input:disabled+span{opacity:.5;cursor:not-allowed}.fc-seg>label>input:focus-visible+span{outline:2px solid var(--accent);outline-offset:-2px}label.fc-option{position:relative}label.fc-option>input{opacity:0;pointer-events:none;position:absolute}label.fc-option:has(input:checked){border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:#a731c514}label.fc-option:has(input:disabled){opacity:.55;cursor:not-allowed}.fc-option-text b{color:var(--text-strong)}label.fc-chip{align-items:center;gap:7px;display:inline-flex;position:relative}label.fc-chip>input{opacity:0;pointer-events:none;position:absolute}label.fc-chip:has(input:checked){background:var(--accent);border-color:var(--accent);color:#fff}label.fc-chip:has(input:disabled){opacity:.6;cursor:not-allowed}label.fc-chip .avatar,label.fc-chip .student-avatar{width:22px;height:22px;font-size:10px}.fc-check{font-size:var(--fs-base);cursor:pointer;align-items:flex-start;gap:9px;display:flex}.fc-check input{accent-color:var(--accent);margin-top:3px}.fc-check small{color:var(--text-muted);font-size:var(--fs-sm);display:block}.fc-picker{flex:420px;min-width:0;max-width:640px}.fc-picker-list{border:1px solid var(--line);border-radius:10px;max-height:280px;margin-top:8px;overflow-y:auto}.fc-picker-list .checklist-item{border-top:1px solid var(--line);gap:9px;margin:0;padding:8px 12px;display:flex}.fc-picker-list .checklist-item:first-child{border-top:none}.fc-picker-list .checklist-item:hover{background:var(--surface-2)}.fc-picker-list input{accent-color:var(--accent)}.fc-summary{font-size:var(--fs-base);grid-template-columns:130px 1fr;gap:8px 14px;display:grid}.fc-summary dt{color:var(--text-muted);font-size:var(--fs-base)}.fc-summary dd{color:var(--text-strong);min-width:0;margin:0}.fc-summary .fc-summary-list{max-height:200px;color:var(--text);flex-direction:column;gap:3px;font-weight:400;display:flex;overflow-y:auto}.fc-error{color:var(--danger);font-size:var(--fs-base);margin-top:10px}.fc-actions,:is(.inline-create-form,.form-card-inline) .field-row.fc-actions{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;margin:6px 0 0;padding-top:16px;display:flex}.fc-actions .btn{font-size:var(--fs-md);padding:10px 18px}.fc-actions .fc-actions-end{margin-left:auto}@media (width<=720px){:is(.form-card,.inline-create-form,.form-card-inline) .field-row>label:first-child,.fc-label{flex-basis:100%;width:auto}.fc-summary{grid-template-columns:1fr}.form-card,.inline-create-form,.form-card-inline{padding:16px 14px}}.fc-picker input[type=search]{width:100%;max-width:none}.book-meta{min-height:300px}.book-meta h1{font-family:var(--sans);font-weight:700;font-size:var(--fs-5xl);color:var(--text-strong);margin:0 0 6px}.book-meta .author{color:var(--accent);font-size:var(--fs-md);margin-bottom:14px}.book-meta .desc{font-size:var(--fs-md);color:var(--text);max-width:60ch;margin-bottom:18px}.preview-block{flex-direction:column;gap:12px;display:flex}.preview-row{font-size:var(--fs-base);color:var(--text);border-bottom:1px solid var(--line);padding-bottom:10px}.preview-label{font-size:var(--fs-2xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;display:block}.recommendation-card{background:var(--surface);border-radius:8px;flex-direction:column;gap:10px;margin-bottom:10px;padding:14px 16px;display:flex;box-shadow:0 1px 2px #0000000a}.as-fact-big.as-fact-mid{font-size:var(--fs-xl);padding-top:5px;line-height:1.25}.cover-big.student-cover{justify-content:center;align-items:center;display:flex}.student-cover-initials{color:#ffffffeb;letter-spacing:2px;font-size:64px;font-weight:700}.order-preview-title{font-size:var(--fs-sm);color:var(--text-muted);margin-bottom:6px}.invite-row{background:var(--surface);border-radius:8px;align-items:flex-start;gap:14px;margin-bottom:10px;padding:14px 16px;display:flex}.invite-body{flex:1;min-width:0}.invite-link-row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;display:flex}.invite-link-row code{overflow-wrap:anywhere}.invite-pin{background:var(--warning-bg);font-size:var(--fs-base);border-radius:6px;margin-top:8px;padding:8px 10px}.invite-pin strong{font-size:var(--fs-2xl);letter-spacing:3px;font-family:var(--mono,monospace)}.invite-status-active{color:var(--success)}.invite-status-revoked,.invite-status-locked,.invite-status-expired{color:var(--danger)}.as-fact-big{font-size:var(--fs-4xl);color:var(--text-strong);font-weight:700;line-height:1.15}.as-fact-big.tone-soon{color:var(--warning)}.as-fact-big.tone-overdue{color:var(--danger)}.as-fact-big.tone-done{color:var(--success)}.as-fact-label{font-size:var(--fs-sm);color:var(--text-muted);margin-top:2px}.my-profile{align-items:flex-start;gap:32px;margin-top:22px;display:flex}.my-profile .cover-big{border-radius:20px;flex:0 0 160px;width:160px;height:160px;min-height:0;padding:0}.my-profile .student-cover-initials{font-size:48px}.my-profile{align-items:center;margin-bottom:24px}.my-profile-main{flex:1;min-width:0}.my-profile-main h2{margin:0 0 12px}.my-tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:620px;display:grid}.my-tiles.is-four{grid-template-columns:repeat(4,minmax(0,1fr));max-width:820px;margin:4px 0 14px}@media (width<=900px){.my-tiles.is-four{grid-template-columns:repeat(2,minmax(0,1fr))}}.my-tile{border:1px solid var(--line);background:var(--surface);border-radius:12px;align-items:center;gap:10px;padding:12px 14px;display:flex}.my-tile-icon{font-size:22px;line-height:1}.my-tile,.my-tile>div{min-width:0}.my-tile-value{font-size:var(--fs-lg);color:var(--text-strong);white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.my-tile-label{font-size:var(--fs-xs);color:var(--text-muted)}.my-profile-note{font-size:var(--fs-xs);margin-top:8px}@media (width<=560px){.my-tiles{grid-template-columns:1fr}}.analytics-period-bar{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin:32px 0 8px;padding-top:24px;display:flex}.analytics-period-bar h2{font-size:var(--fs-3xl);margin:0}.analytics-q{min-width:0;margin:14px 0 18px}.analytics-q-title{font-weight:700;font-size:var(--fs-xl);color:var(--text-strong);align-items:center;gap:10px;margin-bottom:10px;display:flex}.analytics-q-num{background:var(--accent);color:#fff;width:26px;height:26px;font-size:var(--fs-base);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.analytics-summary{grid-template-columns:repeat(5,minmax(0,1fr));margin:0}@media (width<=900px){.analytics-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}.analytics-columns{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start;gap:28px;display:grid}@media (width<=900px){.analytics-columns{grid-template-columns:minmax(0,1fr)}}.topic-profile{flex-direction:column;gap:4px;display:flex}.topic-row{background:var(--surface);cursor:pointer;text-align:left;font-family:var(--sans);font-size:var(--fs-base);color:var(--text-strong);border:1px solid #0000;border-radius:8px;grid-template-rows:auto auto;grid-template-columns:minmax(0,1.3fr) 90px auto;align-items:center;column-gap:12px;padding:8px 12px;display:grid}.topic-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.topic-bar{background:var(--surface-2);border-radius:3px;height:6px;overflow:hidden}.topic-bar span{background:var(--success);border-radius:3px;height:100%;display:block}.topic-row.tone-mid .topic-bar span{background:var(--warning)}.topic-row.tone-weak .topic-bar span{background:var(--danger)}.topic-row.tone-weak .topic-value strong{color:var(--danger)}.topic-row.tone-few{opacity:.6}.topic-value{white-space:nowrap;font-size:var(--fs-sm)}.topic-extra{font-size:var(--fs-xs);color:var(--text-muted);grid-column:1/-1}.rec-v2{background:var(--surface);border-radius:10px;margin-bottom:10px;padding:14px 16px;display:block}.rec-topic{font-weight:700;font-size:var(--fs-lg);color:var(--text-strong)}.rec-basis{color:var(--danger);font-weight:600}.rec-advice{font-size:var(--fs-base);margin-top:4px}.rec-tasks{font-size:var(--fs-sm);margin:8px 0 0;padding-left:18px;line-height:1.6}.repeat-plan{background:var(--surface);border-left:3px solid var(--accent);border-radius:10px;margin-bottom:10px;padding:12px 14px}.repeat-plan-reason{font-size:var(--fs-base);color:var(--text-strong);font-weight:600;line-height:1.45}.repeat-plan-tasks{font-size:var(--fs-sm);margin:6px 0 0;padding-left:18px;line-height:1.6}.repeat-row td{background:var(--surface-2)}.repeat-banner{background:var(--info-bg);border-radius:10px;margin-bottom:12px;padding:14px 16px}.repeat-banner a{cursor:pointer;color:var(--accent)}.repeat-banner-reason{font-size:var(--fs-base);color:var(--text-strong);margin:4px 0 8px}.repeat-compare{font-size:var(--fs-base);margin-top:4px}.repeat-delta{margin-left:4px;font-weight:700}.repeat-delta.up{color:var(--success)}.repeat-delta.down{color:var(--danger)}.repeat-dash-list{flex-direction:column;gap:10px;margin-bottom:24px;display:flex}.repeat-dash-item{background:var(--surface);border-radius:10px;padding:12px 14px}.repeat-dash-head{align-items:center;gap:10px;margin-bottom:8px;font-weight:600;display:flex}.repeat-dash-head a{cursor:pointer;color:var(--text-strong)}.repeat-dash-item .repeat-plan{background:0 0;border-left:none;margin:0;padding:0}.repeat-section{border-top:1px solid var(--line);margin-top:28px;padding-top:22px}@media (width<=720px){.my-profile{flex-direction:column;align-items:stretch;gap:18px}.my-profile .cover-big{flex-basis:auto;width:120px;height:120px}}.acct-row{flex-wrap:wrap;align-items:center;gap:6px;margin-top:2px;display:flex}.acct-row-profile{margin:6px 0 12px}.acct-link{background:var(--surface-2);color:var(--text-strong);font-size:var(--fs-sm);border-radius:14px;align-items:center;gap:6px;max-width:100%;padding:3px 10px 3px 4px;line-height:20px;text-decoration:none;display:inline-flex}.acct-link:hover{background:var(--line)}.acct-mark{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.acct-mark svg{width:14px;height:14px}.acct-lichess .acct-mark,.acct-mark.acct-lichess{color:#000;background:#fff;box-shadow:inset 0 0 0 1px #0000001f}.acct-chesscom .acct-mark,.acct-mark.acct-chesscom{color:#81b64c;background:#fff;box-shadow:inset 0 0 0 1px #0000001f}.acct-lichess .acct-mark svg,.acct-mark.acct-lichess svg{width:17px;height:17px}.acct-chesscom .acct-mark svg,.acct-mark.acct-chesscom svg{width:15px;height:15px}.acct-platform{color:var(--text-muted)}.acct-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.acct-add{border:1px dashed var(--line);font:inherit;font-size:var(--fs-xs);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:14px;padding:2px 10px;line-height:20px}.acct-add:hover{border-color:var(--accent);color:var(--accent)}.acct-editor{background:var(--surface-2);cursor:default;border-radius:6px;flex-direction:column;gap:8px;max-width:460px;margin-top:4px;padding:12px;display:flex}.acct-editor-row{grid-template-columns:110px 1fr;align-items:center;gap:8px;display:grid}.acct-editor-label{font-size:var(--fs-sm);color:var(--text-strong);align-items:center;gap:6px;font-weight:600;display:inline-flex}.acct-editor-row input{border:1px solid var(--line);background:var(--surface);min-width:0;color:var(--text);font:inherit;font-size:var(--fs-sm);border-radius:4px;padding:6px 8px}.acct-editor-error{color:var(--danger);font-size:var(--fs-sm);min-height:0}.acct-editor-error:empty{display:none}.acct-editor-actions{gap:6px;display:flex}.student-form-preview{align-items:center;gap:12px;display:flex}.student-form-avatar{color:#fff;width:56px;height:56px;font-weight:600;font-size:var(--fs-xl);background-position:50%;background-size:cover;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex;box-shadow:0 1px 3px #00000026}.student-tile-avatar{flex-shrink:0;width:56px!important;height:56px!important;font-size:var(--fs-xl)!important}.student-facts{grid-template-columns:repeat(3,auto);justify-content:start;column-gap:36px}.student-tile .progress-bar{margin:0}.student-tile .collection-footer{margin-top:0}.invite-block{background:var(--surface-2);border-radius:8px;margin:14px 0;padding:14px 16px}.invite-block .collection-info-label{margin-top:0}.invite-block .muted,.invite-block .task-note{font-size:var(--fs-sm);line-height:1.5}.invite-block .task-note{margin:4px 0 8px}.profile-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:16px;margin:16px 0;display:grid}.profile-col{flex-direction:column;gap:16px;min-width:0;display:flex}@media (width<=860px){.profile-grid{grid-template-columns:minmax(0,1fr)}}.profile-block{background:var(--surface);border:1px solid var(--line);border-radius:8px;min-width:0;padding:16px 18px}.profile-grid .toc.profile-block{border-top:1px solid var(--line);padding-top:16px}.profile-block h2{font-size:var(--fs-xl);margin:0}.profile-block-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.profile-block .muted,.topics-compare .muted{color:var(--text);opacity:.65;font-size:var(--fs-sm)}.cal{max-width:360px}.cal-head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.cal-grid{grid-template-columns:repeat(7,1fr);gap:3px;display:grid}.cal-wd{font-size:var(--fs-2xs);text-align:center;opacity:.6;padding:2px 0}.cal-cell{aspect-ratio:1;background:var(--surface-2);color:var(--text);font:inherit;font-size:var(--fs-sm);cursor:pointer;border:1px solid #0000;border-radius:6px;padding:0;position:relative}.cal-empty{cursor:default;background:0 0}.cal-today{border-color:var(--text);font-weight:700}.cal-picked{outline:2px solid var(--accent);outline-offset:-2px}.cal-lesson{background:var(--accent);color:#fff}.cal-lesson-past{background:#a731c559}.cal-next{box-shadow:0 0 0 2px var(--save)}.cal-due-dot{background:var(--danger);border-radius:50%;width:5px;height:5px;margin-left:-2.5px;display:inline-block;position:absolute;bottom:3px;left:50%}.cal-legend{font-size:var(--fs-xs);opacity:.75;gap:14px;margin-top:6px;display:flex}.cal-legend span{align-items:center;gap:5px;display:inline-flex}.cal-legend .cal-due-dot{margin:0;position:static}.cal-sw{border-radius:3px;width:10px;height:10px;display:inline-block}.cal-sw-lesson{background:var(--accent)}.topics-compare{margin-bottom:20px}.topics-compare h2{margin-bottom:10px}.topics-matrix td.tm-yes{color:var(--save);text-align:center;font-weight:700}.topics-matrix td.tm-no{opacity:.35;text-align:center}.topics-matrix th:not(:first-child){text-align:center}.free-train-block{margin:0 0 16px}.kids-row{font-size:var(--fs-base);flex-wrap:wrap;align-items:center;gap:10px;margin:10px 0 14px;display:flex}.kids-row .muted{opacity:.7;font-size:var(--fs-sm)}.kr-rows{flex-direction:column;gap:10px;margin:12px 0;display:flex}.kr-row{border:1px solid var(--line);border-radius:8px;align-items:center;gap:14px;padding:10px;display:flex}.kr-img{object-fit:contain;background:var(--surface-2);border-radius:6px;flex-shrink:0;width:84px;height:84px}.kr-fields{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.kr-from{font-size:var(--fs-sm)}.kr-from input{width:64px;margin:0 4px}.kr-title{max-width:320px}.kr-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.sa-row{border-top:1px solid var(--line);cursor:pointer;border-radius:4px;grid-template-columns:minmax(0,1fr) 116px;align-items:center;gap:14px;padding:10px 8px;display:grid}.toc h2+.sa-row{border-top:none}.sa-title{font-size:var(--fs-md);color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sa-stars{font-size:var(--fs-base);font-variant-numeric:tabular-nums;align-items:center;gap:4px;display:flex}.sa-stars svg{width:16px;height:16px;fill:var(--star);flex-shrink:0}.sa-stars .muted{opacity:.6}.sa-done{font-size:var(--fs-sm);color:var(--text-muted);font-variant-numeric:tabular-nums;flex-direction:column;gap:5px;display:flex}.sa-done b{color:var(--text-strong);font-size:var(--fs-base)}.sa-done .progress-bar{width:100%;display:block}.sa-done .progress-bar-fill{height:100%;display:block}@media (width<=720px){.analytics-columns>*{min-width:0}}.kr-preview{flex-wrap:wrap;gap:16px;margin-top:6px;display:flex}.kr-preview figure{text-align:center;font-size:var(--fs-sm);color:var(--text-muted);margin:0;line-height:1.35}.kr-preview .kr-img{object-fit:contain;width:72px;height:72px;margin:0 auto 4px;display:block}.book-meta .kids-rewards-card{margin-top:14px}[data-lesson-for-student] svg{vertical-align:-4px;width:18px;height:18px}.topic-row{grid-template-columns:minmax(0,1fr) 120px 132px}.topic-bar{width:100%}.topic-value{text-align:right;font-variant-numeric:tabular-nums}@media (width<=720px){.topic-row{grid-template-columns:minmax(0,1fr) 70px 112px}}.schedule-block .profile-block-head{justify-content:space-between}.sched-add-wrap{margin-left:auto;position:relative}.sched-add{align-items:center;gap:6px;display:inline-flex}.sched-add svg{width:18px;height:18px}.sched-pop{flex-direction:column;gap:8px;width:min(300px,100vw - 32px);padding:12px;display:flex}.sched-pop[hidden]{display:none}.sched-pop-row{font-size:var(--fs-sm);grid-template-columns:52px minmax(0,1fr);align-items:center;gap:8px;display:grid}.sched-pop-row label{color:var(--text-muted)}.sched-pop-row input{width:100%;min-width:0}.sched-pop-weekly{font-size:var(--fs-sm)}.sched-pop .sched-pop-note{font-size:var(--fs-xs)}.sched-pop-actions{gap:8px;display:flex}.sched-body{grid-template-columns:minmax(0,236px) minmax(0,1fr);align-items:start;gap:16px;display:grid}@media (width<=520px){.sched-body{grid-template-columns:minmax(0,1fr)}}.sched-body .cal{max-width:none}.sched-body .cal-grid{gap:2px}.sched-body .cal-cell{font-size:var(--fs-xs);border-radius:5px}.sched-body .cal-legend{font-size:var(--fs-2xs);flex-wrap:wrap;gap:4px 10px}.cal-online{background:var(--info);color:#fff}.cal-sw-online{background:var(--info)}.sched-side{flex-direction:column;gap:4px;min-width:0;display:flex}.sched-side-title{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);justify-content:space-between;gap:8px;margin:4px 0 2px;font-weight:700;display:flex}.sched-side-title:first-child{margin-top:0}.sched-side-close{text-transform:none;letter-spacing:0;color:var(--accent);cursor:pointer;font-weight:500}.sched-side .btn{align-self:flex-start;margin-top:4px}.sched-event{background:var(--surface-2);border-radius:7px;align-items:center;gap:8px;min-width:0;padding:6px 8px;display:flex}.sched-event[data-open-online]{cursor:pointer}.sched-event[data-open-online]:hover{background:var(--info-bg)}.sched-event-icon{flex:none;font-size:14px}.sched-event-body{flex-direction:column;flex:1;min-width:0;display:flex}.sched-event-when{font-size:var(--fs-sm);color:var(--text-strong);font-weight:600}.sched-event-title{font-size:var(--fs-sm);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sched-event-go{color:var(--text-muted);font-size:var(--fs-xl)}.sched-event.kind-online .sched-event-when,.sched-event.kind-online-planned .sched-event-when{color:var(--info)}.lesson-topic-card{border:1px solid var(--line);background:var(--surface);text-align:left;border-radius:10px;margin-top:14px;padding:12px 14px}.lesson-topic-card label{margin-bottom:6px;font-weight:600;display:block}.lesson-topic-row{gap:8px;display:flex}.lesson-topic-row input{flex:1;min-width:0}.connect-row{font-size:var(--fs-sm);flex-wrap:wrap;align-items:center;gap:8px 10px;margin:0 0 12px;display:flex}.connect-btn{align-items:center;gap:6px;display:inline-flex}.connect-btn svg{width:18px;height:18px}.connect-chip{font-size:var(--fs-sm);border-radius:999px;align-items:center;gap:4px;padding:3px 10px;display:inline-flex}.connect-chip.is-linked{background:var(--success-bg);color:var(--success)}.connect-chip.is-linked b{color:inherit}.connect-chip.is-waiting{background:var(--surface-2);color:var(--text-muted)}.connect-help{border:1px solid var(--line);width:20px;height:20px;font-size:var(--fs-xs);color:var(--text-muted);cursor:help;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.link-btn{font:inherit;font-size:var(--fs-sm);color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0}.link-btn:hover{text-decoration:underline}.link-btn.danger{color:var(--danger)}.sa-row{grid-template-columns:minmax(0,1fr) 116px 30px}.sa-row.with-stars{grid-template-columns:minmax(0,1fr) 78px 116px 30px}.sa-link{width:30px;height:30px;color:var(--text-muted)}.sa-link svg{width:16px;height:16px}.sa-link:hover{color:var(--accent)}.sa-link.is-off{opacity:.45}.sa-link:disabled{cursor:not-allowed}.sa-pin{background:var(--warning-bg);font-size:var(--fs-sm);border-radius:6px;margin-top:8px;padding:8px 10px}.act-block{margin:0 0 16px}.act-hint{font-size:var(--fs-sm);color:var(--text-muted);margin:-6px 0 10px}.act-rows{flex-direction:column;gap:6px;display:flex}.act-group{border:1px solid var(--line);background:var(--surface);border-radius:10px;transition:border-color .15s;overflow:hidden}.act-group:hover,.act-group.is-open{border-color:color-mix(in srgb, var(--accent) 45%, var(--line))}.act-row{align-items:center;gap:12px;padding:9px 12px;display:flex}.act-row[role=button]{cursor:pointer}.act-row[role=button]:hover{background:var(--surface-2)}.act-row-date{font-weight:600;font-size:var(--fs-base);flex:0 0 118px}.act-row-main{min-width:0;font-size:var(--fs-base);color:var(--text-muted);flex:1}.act-row-main b{color:var(--text-strong);font-weight:600}.act-row-pct{color:var(--text-strong);font-variant-numeric:tabular-nums;font-weight:700}.act-row-toggle{font-size:var(--fs-sm);color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent);border-radius:999px;flex:none;align-items:center;gap:4px;padding:3px 9px;font-weight:600;display:inline-flex}.act-row-toggle i{font-style:normal}.act-tasks{border-top:1px solid var(--line);background:var(--surface-2);flex-direction:column;gap:2px;padding:4px;display:flex}.act-task,.hist-row{cursor:pointer;border-radius:7px;align-items:center;gap:10px;min-width:0;padding:7px 10px;display:flex}.act-task:hover,.hist-row:hover{background:var(--surface);box-shadow:inset 0 0 0 1px var(--line)}.act-task:hover .act-task-title,.hist-row:hover .act-task-title{color:var(--accent)}.act-task.is-missing,.hist-row.is-missing{cursor:default;opacity:.6}.act-task.is-missing:hover,.hist-row.is-missing:hover{box-shadow:none;background:0 0}.act-task-main{flex-direction:column;flex:1;min-width:0;display:flex}.act-task-title{font-size:var(--fs-base);color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;transition:color .12s;overflow:hidden}.act-task-sub{font-size:var(--fs-xs);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.act-task-meta{font-size:var(--fs-sm);color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.act-task-go{color:var(--text-muted);flex:0 0 18px;display:inline-flex}.act-task:hover .act-task-go,.hist-row:hover .act-task-go{color:var(--accent)}.res-chip{font-size:var(--fs-xs);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:2px 9px;font-weight:600;display:inline-flex}.res-chip b{font-weight:700}.res-chip.tone-ok{background:var(--success-bg);color:var(--success)}.res-chip.tone-mid{background:var(--warning-bg);color:var(--warning)}.res-chip.tone-bad{background:var(--danger-bg);color:var(--danger)}.res-chip.tone-none{background:var(--surface);color:var(--text-muted);font-weight:500}.hist-filters{border:1px solid var(--line);border-radius:6px;flex-wrap:wrap;margin-bottom:10px;display:inline-flex;overflow:hidden}.hist-head,.hist-row{grid-template-columns:118px minmax(0,1fr) 150px 80px 96px 18px;align-items:center;gap:10px;display:grid}.hist-head{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);border-bottom:1px solid var(--line);padding:0 10px 6px;font-weight:700}.hist-rows{flex-direction:column;gap:1px;margin-top:4px;display:flex}.hist-when{font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.hist-task{flex-direction:column;min-width:0;display:flex}.hist-time,.hist-help{font-size:var(--fs-sm);color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.hist-more{margin-top:8px}@media (width<=760px){.hist-head{display:none}.hist-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"task res""when meta";row-gap:2px}.hist-task{grid-area:task}.hist-res{grid-area:res}.hist-when{font-size:var(--fs-xs);color:var(--text-muted);grid-area:when}.hist-time{grid-area:meta;justify-self:end}.hist-help,.hist-row .act-task-go{display:none}.act-row{flex-wrap:wrap}.act-row-date{flex-basis:auto}}.lesson-topic-title{color:var(--text-strong);margin-bottom:8px;font-weight:600}#lesson-topic-msg{font-size:var(--fs-sm);margin-top:6px}.cal-cell{transition:transform .1s,box-shadow .1s}.cal-cell:hover:not(.cal-empty){border-color:var(--text-muted)}.cal-cell.cal-picked{background:var(--text-strong);color:var(--surface);z-index:1;outline:none;font-weight:700;transform:scale(1.08);box-shadow:0 2px 8px #00000040}.cal-cell.cal-picked.cal-lesson,.cal-cell.cal-picked.cal-online,.cal-cell.cal-picked.cal-lesson-past{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--text-strong);color:#fff}.cal-cell.cal-picked.cal-lesson{background:var(--accent)}.cal-cell.cal-picked.cal-online{background:var(--info)}.cal-cell.cal-picked.cal-lesson-past{background:#a731c58c}.cal-due:not(.cal-lesson):not(.cal-online):not(.cal-lesson-past):not(.cal-picked){background:var(--danger-bg);color:var(--danger)}.cal-due .cal-due-dot{width:6px;height:6px;margin-left:-3px}.cal-sw-due{background:var(--danger-bg);box-shadow:inset 0 0 0 1px var(--danger)}.sched-event.kind-due{cursor:pointer;background:var(--danger-bg)}.sched-event.kind-due .sched-event-when{color:var(--danger)}.sched-event.kind-due.is-finished{background:var(--success-bg)}.sched-event.kind-due.is-finished .sched-event-when{color:var(--success)}.sched-event.kind-due:hover{filter:brightness(1.06)}.error-work{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:16px 18px}.ew-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px 20px;margin-bottom:14px;display:flex}.ew-head h2{font-size:var(--fs-xl);margin:0 0 6px}.ew-flow{font-size:var(--fs-sm);color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:4px 6px;display:flex}.ew-flow span{background:var(--surface-2);border-radius:999px;padding:2px 8px}.ew-flow span.ok{background:var(--success-bg);color:var(--success)}.ew-flow b{opacity:.6;font-weight:400}.ew-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ew-actions .btn,.btn-error-training{align-items:center;gap:6px;display:inline-flex}.ew-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}@media (width<=640px){.ew-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.ew-stat{background:var(--surface-2);border-radius:10px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.ew-stat b{font-size:var(--fs-3xl);color:var(--text-strong);font-variant-numeric:tabular-nums}.ew-stat span{font-size:var(--fs-xs);color:var(--text-muted);line-height:1.3}.ew-stat.tone-bad b{color:var(--danger)}.ew-stat.tone-mid b{color:var(--warning)}.ew-stat.tone-ok b{color:var(--success)}.ew-list{flex-direction:column;gap:2px;margin-bottom:8px;display:flex}.ew-row{cursor:pointer;border-radius:8px;grid-template-columns:30px minmax(0,1fr) 170px 190px;align-items:center;gap:10px;padding:7px 10px;display:grid}.ew-row:hover{background:var(--surface-2)}.ew-row:hover .act-task-title{color:var(--accent)}.ew-dots{gap:3px;display:inline-flex}.ew-dots i{border:1.5px solid var(--text-muted);border-radius:50%;width:9px;height:9px}.ew-dots i.on{background:var(--success);border-color:var(--success)}.ew-task{flex-direction:column;min-width:0;display:flex}.ew-problem{font-size:var(--fs-sm);color:var(--danger);white-space:nowrap}.ew-next{font-size:var(--fs-sm);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ew-next.is-due{color:var(--danger);font-weight:700}.ew-next.is-assigned{color:var(--info)}.ew-next.is-fixed{color:var(--success);font-weight:600}.ew-fixed-toggle{margin:6px 0 4px}.ew-topics{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;display:grid}@media (width<=760px){.ew-row{grid-template-columns:24px minmax(0,1fr)}.ew-problem,.ew-next{grid-column:2}}.profile-tabs{border-bottom:1px solid var(--line);scrollbar-width:none;gap:4px;margin:18px 0 16px;display:flex;overflow-x:auto}.profile-tabs::-webkit-scrollbar{display:none}.profile-tab{font:inherit;font-size:var(--fs-md);color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 14px;font-weight:600}.profile-tab:hover{color:var(--text-strong)}.profile-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.profile-tab-panel>.profile-block,.profile-tab-panel>.act-block{margin-bottom:16px}.prep-cards{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.6fr);gap:12px;margin-bottom:16px;display:grid}@media (width<=980px){.prep-cards{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.prep-card-wide{grid-column:1/-1}}@media (width<=560px){.prep-cards{grid-template-columns:minmax(0,1fr)}}.prep-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:4px;min-width:0;padding:14px 16px;display:flex}.prep-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:700}.prep-big{font-size:var(--fs-2xl);color:var(--text-strong);font-weight:700;line-height:1.25}.prep-big.is-empty{color:var(--text-muted)}.prep-sub{font-size:var(--fs-sm);color:var(--text-muted)}.prep-actions{flex-wrap:wrap;gap:12px;margin-top:auto;padding-top:8px;display:flex}.prep-results{flex-direction:column;gap:1px;margin:2px 0;display:flex}.prep-res{cursor:pointer;border-radius:6px;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;padding:4px 6px;display:grid}.prep-res:hover{background:var(--surface-2)}.prep-res:hover .prep-res-title{color:var(--accent)}.prep-res.is-missing{cursor:default;opacity:.6}.prep-res .res-chip{justify-content:center;padding:2px 7px}.prep-res-title{font-size:var(--fs-base);color:var(--text-strong);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.prep-res-when{font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap;font-variant-numeric:tabular-nums}.topics-block .profile-block-head{flex-wrap:wrap}.tj-head-actions{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.tj-filter{border:1px solid var(--line);border-radius:6px;flex-wrap:wrap;margin-bottom:12px;display:inline-flex;overflow:hidden}.tj-filter button:disabled{opacity:.45;cursor:default}.tj-form{border:1px solid color-mix(in srgb, var(--accent) 40%, var(--line));background:var(--surface-2);border-radius:10px;flex-direction:column;gap:8px;margin:0 0 12px;padding:12px;display:flex}.tj-form-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tj-form-row input[type=date]{width:auto}.tj-form textarea{resize:vertical;min-height:52px;font:inherit}.tj-form-actions{gap:8px;display:flex}.tj-list{flex-direction:column;display:flex}.tj-month{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:12px 0 4px;font-weight:700}.tj-month:first-child{margin-top:0}.tj-item{border-left:3px solid #0000;border-radius:8px;grid-template-columns:44px minmax(0,1fr) auto;align-items:start;gap:12px;padding:10px 8px;display:grid}.tj-item+.tj-item{border-top:1px solid var(--line)}.tj-item:hover{background:var(--surface-2)}.tj-item.kind-tactics{border-left-color:var(--accent)}.tj-item.kind-games{border-left-color:var(--info)}.tj-item.kind-play{border-left-color:var(--success)}.tj-item.is-flash{animation:1.4s tjFlash}@keyframes tjFlash{0%,40%{background:color-mix(in srgb, var(--accent) 18%, transparent)}to{background:0 0}}.tj-date{flex-direction:column;align-items:center;padding-top:2px;line-height:1.1;display:flex}.tj-date b{font-size:var(--fs-xl);color:var(--text-strong)}.tj-date span{font-size:var(--fs-xs);color:var(--text-muted)}.tj-body{flex-direction:column;gap:2px;min-width:0;display:flex}.tj-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tj-kind-badge{font-size:var(--fs-xs);background:var(--surface-2);color:var(--text-muted);border-radius:999px;padding:1px 8px;font-weight:600}.kind-tactics .tj-kind-badge{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}.kind-games .tj-kind-badge{color:var(--info);background:var(--info-bg)}.kind-play .tj-kind-badge{color:var(--success);background:var(--success-bg)}.tj-src{font-size:var(--fs-xs);color:var(--text-muted)}.tj-title{color:var(--text-strong);font-weight:600}.tj-note{font-size:var(--fs-sm);color:var(--text);white-space:pre-wrap;line-height:1.45}.tj-add-note{font-size:var(--fs-sm);opacity:.8;align-self:flex-start}.tj-actions{opacity:.55;gap:4px;display:flex}.tj-item:hover .tj-actions{opacity:1}.tj-actions .icon-btn{width:28px;height:28px;font-size:13px}.cal-topic:not(.cal-online):after{content:"";opacity:.7;background:currentColor;border-radius:50%;width:5px;height:5px;position:absolute;top:3px;right:3px}.prep-form{flex-direction:column;gap:8px;margin-top:6px;display:flex}.prep-form .sched-pop-note{font-size:var(--fs-xs)}.prep-form .sched-pop-row input,.prep-form .sched-pop-row select,.sched-pop-row select{width:100%;min-width:0}.overview-assignments{margin-top:16px}.progress-block .profile-block-head{justify-content:space-between}.pg-period{border:1px solid var(--line);border-radius:6px;display:inline-flex;overflow:hidden}.pg-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}@media (width<=640px){.pg-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.pg-stats>div{background:var(--surface-2);border-radius:10px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.pg-stats b{font-size:var(--fs-3xl);color:var(--text-strong);font-variant-numeric:tabular-nums}.pg-stats span{font-size:var(--fs-xs);color:var(--text-muted)}.pg-stats.pg-stats-3{grid-template-columns:repeat(3,minmax(0,1fr))}.pg-legend{font-size:var(--fs-xs);color:var(--text-muted);flex-wrap:wrap;gap:6px 16px;margin:0 0 8px;display:flex}.pg-legend span{align-items:center;gap:6px;display:inline-flex}.pg-legend i{border-radius:3px;width:10px;height:10px}.pg-legend i.tone-ok{background:var(--success)}.pg-legend i.tone-mid{background:var(--warning)}.pg-trend{font-style:normal;font-weight:700}.pg-trend.up{color:var(--success)}.pg-trend.down{color:var(--danger)}.pg-controls{font-size:var(--fs-sm);color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:10px;display:flex}.pg-controls label{align-items:center;gap:6px;display:inline-flex}.pg-controls select{font-size:var(--fs-sm);width:auto;padding:4px 6px}.pg-series{flex-wrap:wrap;gap:6px;display:inline-flex}.pg-chip{border:1px solid var(--line);color:var(--text-muted);font:inherit;font-size:var(--fs-xs);cursor:pointer;opacity:.6;background:0 0;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;display:inline-flex}.pg-chip.on{opacity:1;color:var(--text-strong);background:var(--surface-2)}.pg-chip i{border-radius:3px;width:10px;height:10px;display:inline-block}.pg-chip.tone-ok i{background:var(--success)}.pg-chip.tone-mid i{background:var(--warning)}.pg-chip.tone-bad i{background:var(--danger)}.pg-chip-line i{background:var(--accent);border-radius:2px;height:3px}.pg-chart{position:relative}.pg-svg{width:100%;height:auto;display:block;overflow:visible}.pg-grid{stroke:var(--line);stroke-width:1px}.pg-axis{fill:var(--text-muted);font-size:var(--fs-2xs);font-family:var(--sans)}.pg-axis-line{fill:var(--accent);opacity:.8}.pg-bar.tone-ok{fill:var(--success)}.pg-bar.tone-mid{fill:var(--warning)}.pg-bar.tone-bad{fill:var(--danger)}.pg-line{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linejoin:round}.pg-dot{fill:var(--surface);stroke:var(--accent);stroke-width:2px}.pg-hit{fill:#0000;cursor:default}.pg-hit.is-hover{fill:color-mix(in srgb, var(--text) 6%, transparent)}.pg-tip{z-index:5;pointer-events:none;background:var(--surface);border:1px solid var(--line);min-width:170px;font-size:var(--fs-sm);color:var(--text);border-radius:8px;padding:8px 10px;position:absolute;box-shadow:0 6px 18px #0000002e}.pg-tip b{color:var(--text-strong);margin-bottom:4px;display:block}.pg-tip i{border-radius:2px;width:8px;height:8px;margin-right:6px;display:inline-block}.pg-tip i.tone-ok{background:var(--success)}.pg-tip i.tone-mid{background:var(--warning)}.pg-tip i.tone-bad{background:var(--danger)}.pg-tip-acc{color:var(--accent);margin-top:4px;font-weight:600}.tj-kind-badge.kind-tactics{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}.tj-kind-badge.kind-games{color:var(--info);background:var(--info-bg)}.tj-kind-badge.kind-play{color:var(--success);background:var(--success-bg)}.move-feedback{box-sizing:border-box;text-align:center;height:26px;font-weight:700;font-size:var(--fs-sm);color:#0000;background:0 0;border-radius:6px;justify-content:center;align-items:center;width:100%;max-width:420px;margin-top:6px;padding:4px 6px;display:flex}.move-feedback.correct{background:var(--success-bg);color:var(--success)}.move-feedback.wrong{background:var(--danger-bg);color:var(--danger)}.move-feedback.done{background:var(--success-bg);color:var(--success)}.solution-box{background:var(--surface-2);border-left:3px solid var(--accent);font-size:var(--fs-md);border-radius:2px;margin-top:18px;padding:14px 16px;display:none}.solution-box.open{display:block}.solution-box .moves{font-family:var(--mono);color:var(--text-strong);margin-bottom:8px;font-weight:600}.solution-box .comment{color:var(--text);font-size:var(--fs-base)}.solution-box .comment:before{content:"— комментарий автора";font-size:var(--fs-2xs);color:var(--text-muted);margin-bottom:4px;display:block}.hints-block{margin-top:14px}.hint-item{font-size:var(--fs-base);color:var(--text);background:var(--surface-2);border-radius:6px;margin-bottom:6px;padding:8px 10px}.student-shell{max-width:900px;margin:0 auto;padding-top:24px}.student-topbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;display:flex}.student-progress-label{font-family:var(--sans);font-weight:600;font-size:var(--fs-lg);color:var(--text-strong)}.student-timer{font-family:var(--mono);font-size:var(--fs-2xl);color:var(--accent-dark);text-align:center;min-width:60px;font-weight:700}.student-comment{background:var(--warning-bg);color:var(--accent-dark);font-size:var(--fs-base);border-radius:6px;margin:16px 0;padding:12px 14px}.student-main{grid-template-columns:1fr 1fr;align-items:start;gap:32px;margin-top:20px;display:grid}.student-board-col{flex-direction:column;align-items:center;display:flex}.student-side-col{padding-top:8px}.student-complete{text-align:center;padding:60px 20px}.student-complete-icon{background:var(--success-bg);width:64px;height:64px;color:var(--success);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 20px;font-size:32px;display:flex}.student-complete h2{font-family:var(--sans);font-size:var(--fs-4xl);color:var(--text-strong);margin:0 0 8px}.student-complete p{color:var(--text-muted)}@media (width<=720px){.student-main{grid-template-columns:1fr}}.student-score{font-size:var(--fs-2xl);color:var(--accent-dark);margin-top:10px;font-weight:700}.student-recap{text-align:left;max-width:640px;margin:20px auto 0}.student-recap-block{background:var(--surface);border-radius:8px;margin-bottom:14px;padding:20px;box-shadow:0 1px 2px #0000000a}.student-recap-block h3{font-size:var(--fs-base);color:var(--text-strong);margin:0 0 10px}.review-list{flex-direction:column;gap:8px;max-height:420px;display:flex;overflow-y:auto}.review-item{background:var(--surface);border-radius:8px;align-items:flex-start;gap:12px;padding:12px 14px;display:flex;box-shadow:0 1px 2px #0000000a}.review-item.excluded{opacity:.5}.review-item input[type=checkbox]{margin-top:10px}.review-item-body{flex:1;min-width:0}.review-item-body input[type=text]{width:100%;font-size:var(--fs-base);border:1px solid var(--line);background:var(--surface-2);color:var(--text);box-sizing:border-box;border-radius:4px;margin-bottom:6px;padding:6px 9px}.review-item-fen{font-family:var(--mono);font-size:var(--fs-xs);color:var(--text-muted);word-break:break-all}.zen-shell{z-index:1000;color:#f0ede6;font-family:var(--sans);background:#141414;position:fixed;inset:0}.zen-topbar{height:36px;position:absolute;top:20px;left:24px;right:24px}.zen-progress{white-space:nowrap;line-height:36px;position:absolute;top:0;left:50%;transform:translate(-50%)}#zen-solution-toggle:disabled{opacity:.4;cursor:not-allowed}.zen-shell .btn.ghost{color:#f0ede6;background:#ffffff14;border-color:#ffffff40}.zen-shell .btn.ghost:hover{background:#ffffff29}.zen-shell .btn.ghost:disabled{opacity:.35}.zen-progress{font-size:var(--fs-base);color:#f0ede699}.zen-center-stage{flex-direction:column;align-items:center;gap:14px;width:100%;padding:0 24px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.zen-condition{font-size:var(--fs-xl);text-align:center;color:#f0ede6bf;max-width:800px;font-weight:500}.zen-board-wrap{flex-direction:column;align-items:center;display:flex}.zen-board{aspect-ratio:1;width:min(65vh,720px);max-width:88vw}.zen-hint{font-size:var(--fs-xs);color:#f0ede666;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}@media (width<=720px){.zen-condition{font-size:var(--fs-base)}.zen-board{width:min(55vh,420px)}}.zen-board.cg-wrap coords coord{color:#f0ede68c!important}.order-preview-list{font-size:var(--fs-base);margin:0;padding:0;line-height:1.7;list-style:none}.exam-summary-row{border-bottom:1px solid var(--line)}.exam-summary-mark{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-weight:700;display:inline-flex}.exam-summary-mark.ok{background:var(--success-bg);color:var(--success)}.exam-summary-mark.fail{background:var(--danger-bg);color:var(--danger)}.join-shell{justify-content:center;align-items:center;min-height:80vh;display:flex}.join-card{background:var(--surface);text-align:center;border-radius:12px;flex-direction:column;align-items:stretch;gap:12px;width:100%;max-width:380px;padding:32px 36px;display:flex;box-shadow:0 12px 32px #00000014}.join-card h1{font-size:var(--fs-3xl);margin:0}.join-logo{font-size:40px}.join-pin-input{text-align:center;font-size:var(--fs-5xl);letter-spacing:8px;padding:10px}.join-error{color:var(--danger);font-size:var(--fs-sm);min-height:18px}.exam-timer{background:var(--surface-2);border-radius:4px;height:8px;margin:8px 0 4px;overflow:hidden}.exam-timer-fill{background:var(--success);border-radius:4px;height:100%;transition:width 1s linear,background-color .4s}.exam-timer-fill[data-zone=warn]{background:var(--warning)}.exam-timer-fill[data-zone=danger]{background:var(--danger);animation:1s ease-in-out infinite examPulse}.student-timer[data-zone=ok]{color:var(--success)}.student-timer[data-zone=warn]{color:var(--warning)}.student-timer[data-zone=danger]{color:var(--danger);animation:1s ease-in-out infinite examPulse}.pre-session{background:var(--surface);border-radius:12px;max-width:760px;padding:28px 32px}.pre-session h1{font-size:var(--fs-5xl);margin:0 0 18px}.pre-session-facts{flex-wrap:wrap;gap:40px;margin-bottom:20px;display:flex}.pre-session-comment{background:var(--info-bg);color:var(--text-strong);border-radius:8px;margin-bottom:16px;padding:12px 14px}.pre-session-comment .collection-info-label{margin-bottom:4px;display:block}.pre-session-rules{margin-bottom:18px}.pre-session-rules ul{margin:6px 0 0;padding-left:20px;line-height:1.7}.student-progress-title{font-size:var(--fs-xs);color:var(--text-muted);margin-top:2px;font-weight:400;display:block}.student-topbar-actions{align-items:center;gap:8px;display:flex}.result-panel{border-radius:8px;margin:12px 0;padding:12px 14px}.result-panel.ok{background:var(--success-bg)}.result-panel.fail{background:var(--danger-bg)}.result-panel-title{font-weight:700;font-size:var(--fs-xl);margin-bottom:8px}.result-panel.ok .result-panel-title{color:var(--success)}.result-panel.fail .result-panel-title{color:var(--danger)}.review-list{flex-direction:column;gap:8px;display:flex}.review-item{background:var(--surface-2);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}body.student-zen{background:#161512}body.student-zen #site-header{display:none!important}body.student-zen .student-shell{color:#f0ede6}body.student-zen .student-shell .progress-bar{background:#ffffff1f}body.student-zen .task-condition{color:#f0ede6}body.student-zen .student-progress-title,body.student-zen .task-note{color:#f0ede699}body.student-zen .btn.ghost{color:#f0ede6;background:#ffffff14;border-color:#ffffff40}body.student-zen .board-frame{width:min(640px,70vh)}body.student-zen .cg-wrap coords coord{color:#f0ede68c!important}body.student-zen .result-panel.ok{background:#228b222e}body.student-zen .result-panel.fail{background:#c828282e}body.student-zen .hint-item,body.student-zen .solution-box{color:#f0ede6}.student-side-col.has-error #student-give-up,.student-side-col.has-error #student-hint-btn{display:none}body.student-zen .student-progress-label{color:#f0ede6}body.student-zen .student-comment{color:#f0ede6cc;background:#ffffff0f}body.student-zen .move-feedback.done,body.student-zen .move-feedback.correct{color:#9be29b;background:#228b2238}body.student-zen .move-feedback.wrong{color:#ff9c9c;background:#c8282838}.student-shell .student-recap{max-width:none;margin-left:0;margin-right:0}.dash-card,.metric-card,.recent-card,.dash-student,.review-item{transition:box-shadow .15s}.kid-stars{justify-content:center;gap:10px;margin:6px 0 12px;display:flex}.kid-star svg{fill:var(--star-off);display:block}.kid-stars-big .kid-star svg{width:52px;height:52px}.kid-star.on svg{fill:var(--star);filter:drop-shadow(0 2px 3px #d99a0673)}.kid-star.pop{opacity:0;animation:.55s cubic-bezier(.2,1.6,.4,1) forwards kidStarPop;transform:scale(.2)rotate(-40deg)}@keyframes kidStarPop{60%{opacity:1;transform:scale(1.25)rotate(8deg)}to{opacity:1;transform:scale(1)rotate(0)}}.result-panel.kid-result{text-align:center}.result-panel.kid-result .result-panel-title{font-size:var(--fs-xl)}.kid-total{font-size:var(--fs-base);color:var(--text-strong);background:#f5b50a29;border-radius:14px;align-items:center;gap:4px;padding:3px 10px 3px 6px;font-weight:700;display:inline-flex}.kid-total svg{width:18px;height:18px;fill:var(--star)}.kid-total.bump{animation:.5s kidBump}@keyframes kidBump{40%{transform:scale(1.25)}to{transform:scale(1)}}.kid-inline{font-size:var(--fs-sm);align-items:center;gap:3px;margin-right:8px;font-weight:600;display:inline-flex}.kid-inline svg{width:14px;height:14px;fill:var(--star)}.kid-reward{text-align:center;padding:26px 16px 10px}.kid-reward-img{object-fit:contain;width:min(260px,70vw);height:auto;max-height:300px;animation:.8s cubic-bezier(.2,1.4,.4,1) both kidReward}@keyframes kidReward{0%{opacity:0;transform:scale(.3)rotate(-12deg)}to{opacity:1;transform:scale(1)rotate(0)}}.kid-reward-title{font-size:var(--fs-6xl);margin:10px 0 6px;animation:.5s .45s both kidFade}.kid-reward-count{font-size:var(--fs-xl);align-items:center;gap:6px;animation:.5s .7s both kidFade;display:inline-flex}.kid-reward-count svg{width:24px;height:24px;fill:var(--star)}.kid-reward p{animation:.5s .85s both kidFade}@media (prefers-reduced-motion:reduce){.kid-star.pop,.kid-reward-img,.kid-reward-title,.kid-reward-count,.kid-reward p,.kid-total.bump{opacity:1;animation:none;transform:none}}@media (width<=720px){.student-shell{padding-top:12px}.student-topbar{flex-wrap:wrap;gap:8px}.student-topbar-actions{flex-wrap:wrap}.student-main{grid-template-columns:minmax(0,1fr);gap:16px;margin-top:12px}.student-board-col{width:100%;min-width:0}.student-board-col .board-frame-outer{box-sizing:border-box;max-width:100%;padding:6px 4px 30px 22px}}.student-condition-top{display:none}@media (width<=720px){.student-condition-top{margin:10px 0 0;display:block}.student-side-col>.task-condition{display:none}}body.chrome-hidden .sidebar,body.chrome-hidden #site-header,body.student-zen .sidebar{display:none!important}.zen-toolbar{gap:10px;display:flex;position:absolute;bottom:52px;left:50%;transform:translate(-50%)}.zen-tool{color:#f0ede6;font:inherit;font-size:var(--fs-md);cursor:pointer;white-space:nowrap;background:#ffffff12;border:1px solid #ffffff2e;border-radius:10px;align-items:center;gap:8px;padding:9px 16px;font-weight:500;display:flex}.zen-tool:hover:not(:disabled){background:#ffffff26}.zen-tool:disabled{opacity:.32;cursor:default}.zen-tool.active{border-color:var(--accent);color:#fff;background:#a731c547}.zen-tool-icon{width:22px;height:22px;display:flex}.zen-tool-icon svg{width:22px;height:22px}#zen-exit .zen-tool-icon{color:#f0ede6bf}@media (width<=720px){.zen-topbar{top:max(12px, env(safe-area-inset-top));height:24px;left:12px;right:12px}.zen-progress{text-align:center;line-height:24px;font-size:var(--fs-sm);text-overflow:ellipsis;position:static;overflow:hidden;transform:none}.zen-center-stage{gap:10px;padding:0;top:calc(50% - 34px)}.zen-condition{font-size:var(--fs-md);padding:0 16px}.zen-board{width:min(100vw,100vh - 250px);max-width:100vw}.zen-hint{display:none}.zen-toolbar{padding:6px 4px calc(6px + env(safe-area-inset-bottom));background:#1e1e1e;border-top:1px solid #ffffff14;grid-template-columns:repeat(5,1fr);gap:0;display:grid;bottom:0;left:0;right:0;transform:none}.zen-tool{font-size:var(--fs-xs);color:#f0ede6cc;background:0 0;border:none;border-radius:10px;flex-direction:column;gap:3px;padding:6px 2px}.zen-tool-icon,.zen-tool-icon svg{width:26px;height:26px}.zen-tool:hover:not(:disabled){background:#ffffff0f}.zen-tool.active{color:#fff;background:#a731c540}}.tool-icon,.tool-short,.sm-top,.sm-turn,.sm-bar{display:none}@media (width<=720px){.student-solving{z-index:50;background:var(--bg);flex-direction:column;max-width:none;margin:0;display:flex;position:fixed;inset:0;overflow:hidden;padding:0!important}.student-solving>.student-topbar,.student-solving>.student-condition-top,.student-solving>.student-comment,.student-solving .student-side-col>.task-condition,.student-solving #student-flip-board,.student-solving #student-hint-btn{display:none!important}.student-solving>.progress-bar{border-radius:0;flex:none;height:3px;margin:0}.student-solving>.exam-timer{border-radius:0;flex:none;margin:0}.sm-top{flex:none;align-items:center;gap:6px;height:52px;padding:0 10px 0 4px;display:flex}.sm-back{width:44px;height:44px;color:var(--text-strong);cursor:pointer;background:0 0;border:none;border-radius:10px;flex:0 0 44px;justify-content:center;align-items:center;display:flex}.sm-back:active{background:var(--surface-2)}.sm-title{flex-direction:column;flex:1;min-width:0;line-height:1.25;display:flex}.sm-title b{font-size:var(--fs-lg);color:var(--text-strong)}.sm-title span{font-size:var(--fs-sm);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sm-turn{box-sizing:border-box;flex:none;align-items:center;gap:12px;min-height:58px;padding:6px 14px 10px;display:flex}.sm-king{background:var(--surface-2);border-radius:10px;flex:0 0 44px;width:44px;height:44px;position:relative}.sm-king piece{background-size:cover;width:36px;height:36px;position:absolute;top:4px;left:4px;transform:none!important}.sm-turn-body{min-width:0}.sm-turn-title{font-weight:700;font-size:var(--fs-lg);color:var(--text-strong);line-height:1.2}.sm-turn-text{font-size:var(--fs-base);color:var(--text-muted);line-height:1.3}.sm-turn.is-ok .sm-turn-title{color:var(--ok)}.sm-turn.is-bad .sm-turn-title{color:var(--bad)}.student-solving .student-main{flex-direction:column;flex:auto;gap:0;min-height:0;margin:0;display:flex}.student-solving .student-board-col{flex:none;width:100vw;margin:0;padding:0}.student-solving .board-frame-outer{width:100vw;box-shadow:none;background:0 0;border-radius:0;margin:0;padding:0}.student-solving .board-frame{max-width:none;margin:0;width:100vw!important;height:100vw!important}.student-solving .student-side-col{box-sizing:border-box;flex:auto;max-width:none;min-height:0;margin:0;padding:10px 14px 6px;overflow-y:auto;width:100%!important}.student-solving .student-side-col .result-panel{margin:0 0 8px}.student-solving .result-panel.ok .task-note{display:none}.student-solving #student-give-up{justify-content:center;width:100%;padding:10px;margin:6px 0 0!important}.student-solving #student-give-up[hidden]{display:none}.student-solving .tool-full{display:inline}.student-solving .tool-icon,.student-solving .tool-short{display:none}.sm-bar{padding:4px 4px calc(4px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);flex:none;grid-template-columns:repeat(3,1fr);display:grid}.sm-tool{height:56px;color:var(--text);font:inherit;font-size:var(--fs-xs);cursor:pointer;background:0 0;border:none;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.sm-tool svg{fill:currentColor;width:26px;height:26px}.sm-tool:disabled{opacity:.32;cursor:default}.sm-tool:not(:disabled):active{background:var(--surface-2)}body.student-zen .student-solving{background:#161512}}.zen-shell{--ok:#5bc27a;--ok-soft:#5bc27a24;--bad:#ff6b63;--bad-soft:#ff6b6324}.zen-board-box{position:relative}.zen-status{height:28px;font-size:var(--fs-xl);text-align:center;white-space:nowrap;margin-top:14px;font-weight:600;line-height:28px}.zen-status.is-ok{color:var(--ok)}.zen-status.is-bad{color:var(--bad)}.zen-result{z-index:6;box-sizing:border-box;color:#f0ede6;background:#1f1f1f;border:1px solid #ffffff1a;border-radius:14px;width:clamp(190px,50vw - min(65vh,720px)/2 - 64px,290px);padding:18px 18px 14px;animation:.2s ease-out result-in;position:absolute;top:50%;left:calc(50% + min(65vh,720px)/2 + 36px);transform:translateY(-50%);box-shadow:0 10px 30px #00000059}.zen-result[hidden]{display:none}@keyframes result-in{0%{opacity:0;margin-top:8px}to{opacity:1;margin-top:0}}.zen-result-head{align-items:center;gap:12px;display:flex}.zen-result-icon{background:var(--ok);border-radius:50%;flex:0 0 44px;justify-content:center;align-items:center;height:44px;display:flex}.zen-result-icon svg{fill:#fff;width:28px;height:28px}.zen-result.is-mistakes .zen-result-icon{background:var(--ok);opacity:.75}.zen-result.is-shown .zen-result-icon{background:#6b6b6b}.zen-result-title{font-size:var(--fs-3xl);color:var(--ok);font-weight:700;line-height:1.15}.zen-result.is-shown .zen-result-title{color:#f0ede6}.zen-result-sub{font-size:var(--fs-sm);color:#f0ede699;margin-top:3px}.zen-result-series{font-size:var(--fs-sm);color:#f0ede6d9;background:#ffffff0f;border-radius:8px;margin-top:12px;padding:8px 10px}.zen-result-actions{flex-direction:column;gap:8px;margin-top:16px;display:flex}.zen-result-actions .btn{width:100%;font-size:var(--fs-md);justify-content:center;padding:10px 14px}.zen-result .btn.ghost{color:#f0ede6;background:#ffffff0f;border-color:#ffffff2e}.zen-result-key{text-align:center;font-size:var(--fs-xs);color:#f0ede666;margin-top:8px}@media (width<=720px),(aspect-ratio<=1){.zen-result{width:auto;top:auto;left:12px;right:12px;bottom:calc(84px + env(safe-area-inset-bottom));padding:12px 14px;transform:none}.zen-result-actions{flex-direction:row-reverse;margin-top:10px}.zen-result-actions .btn{width:auto;font-size:var(--fs-base);flex:1 1 0;padding:9px 10px}.zen-result-icon{flex-basis:38px;height:38px}.zen-result-key{display:none}.zen-status{font-size:var(--fs-md);margin-top:8px}}.zen-result.is-revealed .zen-result-icon{background:var(--bad)}.zen-result.is-revealed .zen-result-title{color:var(--bad)}.zen-answer{background:#ffffff0f;border:1px solid #ffffff14;border-radius:10px;margin-top:14px;padding:10px 12px}.zen-answer-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;color:#f0ede680;margin-bottom:4px}.zen-answer-line{font-size:var(--fs-md);color:#f0ede6;font-weight:600}@media (width<=720px),(aspect-ratio<=1){.zen-answer{margin-top:10px;padding:8px 10px}}.task-result{border:1px solid var(--line);background:var(--surface);border-radius:14px;margin:14px 0 12px;padding:16px;animation:.2s ease-out result-in}.task-result[hidden]{display:none}.task-result .zen-result-sub{color:var(--text-muted)}.task-result.is-revealed .zen-result-icon{background:var(--bad)}.task-result.is-revealed .zen-result-title{color:var(--bad)}.task-result-actions{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.task-result-actions .btn{flex:auto;justify-content:center}.zen-status,.student-board-col>.move-feedback{display:none!important}.solution-box .comment:empty,.sm-progress,.zen-giveup,.sm-fs{display:none}.kid-stars-small{gap:2px;margin:0}.kid-stars-small .kid-star svg{width:22px;height:22px}@media (width<=720px){.sm-fs{width:40px;height:40px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:10px;flex:0 0 40px;justify-content:center;align-items:center;padding:0;display:flex}.sm-fs:active{background:var(--surface-2)}.sm-fs svg{width:24px;height:24px}.sm-turn-stars{flex:none;margin-left:auto}.student-solving .student-main{padding-top:clamp(4px,2vh,20px)}.student-solving .student-side-col .result-panel.ok{background:0 0;padding:0}.student-solving .result-panel.ok .result-panel-title,.student-solving .result-panel.kid-result .kid-stars{display:none}.student-solving #student-next{justify-content:center;width:100%;padding:11px 14px}.zen-shell.student-solving{background:var(--bg);color:var(--text);z-index:1000}.zen-shell.student-solving>.zen-topbar,.zen-shell.student-solving .zen-condition,.zen-shell.student-solving>.zen-toolbar,.zen-shell.student-solving>.zen-hint{display:none!important}.zen-shell .sm-progress{background:var(--line);flex:none;height:3px;display:block}.zen-shell .sm-progress span{background:var(--accent);height:100%;display:block}.zen-shell.student-solving .zen-center-stage{flex:none;gap:0;width:100vw;padding:clamp(4px,2vh,20px) 0 0;position:static;transform:none}.zen-shell.student-solving .zen-board{width:100vw;max-width:none;height:100vw}.zen-shell .zen-below{box-sizing:border-box;flex:auto;min-height:0;padding:10px 14px 6px;overflow-y:auto}.zen-shell .zen-giveup{justify-content:center;width:100%;padding:10px;display:flex}.zen-shell .zen-giveup[hidden]{display:none}.zen-shell.student-solving .btn.ghost{background:var(--surface);color:var(--text);border-color:var(--line)}.zen-shell.student-solving .zen-result{width:auto;box-shadow:none;color:var(--text);background:0 0;border:none;padding:0;animation:none;position:static;bottom:auto;left:auto;right:auto;transform:none}.zen-shell.student-solving .zen-result-actions{margin-top:0}.zen-shell.student-solving .zen-result-series{background:var(--surface-2);color:var(--text);margin:0 0 8px}.zen-shell.student-solving .zen-answer{background:var(--surface-2);border-color:var(--line)}.zen-shell.student-solving .zen-answer-label{color:var(--text-muted)}.zen-shell.student-solving .zen-answer-line{color:var(--text-strong)}.zen-shell.student-solving .zen-result:not([hidden]){flex-direction:column;display:flex}.zen-shell.student-solving .zen-result-actions{order:-1;margin-bottom:8px}}.exam-summary-head{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:10px 6px;display:flex}.exam-summary-head:hover{background:var(--surface-2)}.exam-summary-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.exam-summary-open{font-size:var(--fs-sm);color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent);border-radius:999px;flex:none;padding:3px 9px;font-weight:600}.exam-summary-open i{font-style:normal}.exam-summary-row.is-open .exam-summary-open i{display:inline-block;transform:rotate(180deg)}.exam-summary-detail{padding:4px 6px 14px 40px}.exam-detail{flex-wrap:wrap;align-items:flex-start;gap:18px;display:flex}.exam-detail-board{flex:none;width:260px;max-width:100%}.exam-detail-side{flex-direction:column;flex:1;gap:8px;min-width:200px;display:flex}.exam-detail-moves{font-size:var(--fs-md);color:var(--text-strong);font-weight:600}.exam-detail-nav{align-items:center;gap:10px;display:flex}@media (width<=560px){.exam-summary-detail{padding-left:6px}.exam-detail-board{width:100%}}.lesson-form,.topic-form{flex-wrap:wrap;align-items:center;gap:6px;margin:12px 0 8px;display:flex}.lesson-form #lesson-note{flex:160px;min-width:0}.lesson-form .checklist-item{font-size:var(--fs-sm);margin:0}.lesson-row{border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:7px 8px;display:flex}.lesson-row+.lesson-row{border-top:1px solid var(--line)}.lesson-next{background:#2e7d321a}.lesson-when{font-weight:600}.lp-select{min-width:260px;font-size:var(--fs-md);border-radius:8px;padding:9px 12px}.lp-student-info{background:var(--surface-2);font-size:var(--fs-base);border-radius:10px;align-items:flex-start;gap:14px;margin-top:12px;padding:12px 14px;display:flex}.lp-facts{flex-direction:column;gap:5px;display:flex}.lp-weak{border:1px solid var(--line);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-sm);cursor:pointer;border-radius:999px;padding:1px 9px}.lp-weak:hover{border-color:var(--accent);color:var(--accent)}.lp-count{border:1px solid var(--line);background:var(--surface);width:80px;color:var(--text);font:inherit;border-radius:8px;padding:7px 10px}.lp-any{font-size:var(--fs-sm)}.lp-info{font-size:var(--fs-sm);margin-left:12px}.lp-tasks{flex-direction:column;gap:6px;margin:0 0 10px;padding:0;list-style:none;display:flex}.lp-task{border:1px solid var(--line);background:var(--surface);border-radius:10px;align-items:center;gap:12px;padding:9px 12px;display:flex}.lp-task-num{text-align:right;width:24px;color:var(--text-muted);font-weight:700}.lp-task-body{flex-direction:column;flex:1;min-width:0;display:flex}.lp-task-title{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.lp-task-meta{font-size:var(--fs-sm);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.lp-task-tools{gap:4px;display:flex}.lp-start{font-size:var(--fs-md);align-items:center;gap:8px;padding:11px 18px;display:flex}.lp-start svg{width:20px;height:20px}.lp-or{color:var(--text-muted);font-size:var(--fs-sm)}.lp-date{font-size:var(--fs-base);color:var(--text-muted)}.lp-date input{border:1px solid var(--line);background:var(--surface);color:var(--text);font:inherit;border-radius:8px;padding:7px 9px}.lp-planned{flex-direction:column;gap:8px;display:flex}.lp-planned-row{border:1px solid var(--line);background:var(--surface);border-radius:12px;align-items:center;gap:12px;padding:10px 14px;display:flex}.lp-planned-body{flex:1;min-width:0}.lp-planned-title{font-weight:600}.lp-planned-meta{font-size:var(--fs-sm);color:var(--text-muted)}.lesson-marks{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:14px;display:grid}.lesson-mark{color:inherit;font:inherit;font-size:var(--fs-sm);cursor:pointer;background:#ffffff0d;border:1px solid #ffffff2e;border-radius:8px;padding:7px 6px}.lesson-mark:hover{border-color:var(--accent)}.lesson-mark.on{background:var(--accent);border-color:var(--accent);color:#fff}.lesson-summary{max-width:760px;margin:30px auto}body.lesson-console-body #shell{display:block}body.lesson-console-body #app{max-width:none}.lc{max-width:560px;margin:0 auto;padding:14px 14px 80px}.lc-head{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.lc-title{font-size:var(--fs-xl);color:var(--text-strong);font-weight:700}.lc-muted{font-size:var(--fs-sm);color:var(--text-muted)}.lc-clock{text-align:right;font-variant-numeric:tabular-nums}.lc-clock #lc-time{font-size:var(--fs-3xl);color:var(--text-strong);font-weight:700;display:block}.lc-link{font-size:var(--fs-xs)}.lc-link.on{color:var(--ok)}.lc-link.off{color:var(--bad)}.lc-card{border:1px solid var(--line);background:var(--surface);border-radius:12px;margin-bottom:10px;padding:12px}.lc-current{border-color:var(--accent)}.lc-card-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:8px}.lc-current-row{align-items:flex-start;gap:12px;display:flex}.lc-mini{flex:0 0 150px;width:150px;height:150px}.lc-mini-small{flex-basis:96px;width:96px;height:96px}.lc-current-info{flex:1;min-width:0}.lc-cond{color:var(--text-strong);font-weight:600}.lc-meta{font-size:var(--fs-sm);color:var(--text-muted);margin-top:2px}.lc-solution{font-size:var(--fs-base);color:var(--text-strong);margin-top:8px;font-weight:600}.lc-solution .lc-muted{font-weight:400}.lc-buttons{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.lc-marks .lesson-mark{border-color:var(--line);background:var(--surface-2);color:var(--text)}.lc-marks .lesson-mark.on{background:var(--accent);border-color:var(--accent);color:#fff}.lc-next{cursor:pointer}.lc-list{border:1px solid var(--line);background:var(--surface);border-radius:12px;margin:0;padding:0;list-style:none;overflow:hidden}.lc-item{border-top:1px solid var(--line);cursor:pointer;align-items:center;gap:10px;padding:8px 12px;display:flex}.lc-item:first-child{border-top:none}.lc-item:hover{background:var(--surface-2)}.lc-item.active{background:var(--accent);color:#fff}.lc-item.active .lc-item-sub,.lc-item.active .lc-num{color:#fffc}.lc-num{text-align:right;width:22px;color:var(--text-muted);font-variant-numeric:tabular-nums;font-weight:700}.lc-item-title{min-width:0;font-weight:600;font-size:var(--fs-base);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.lc-item-sub{font-weight:400;font-size:var(--fs-xs);color:var(--text-muted);text-overflow:ellipsis;display:block;overflow:hidden}.lc-res{text-align:center;width:22px;font-weight:700}.lc-item.res-solved .lc-res,.lc-item.res-mistakes .lc-res{color:var(--ok)}.lc-item.res-hint .lc-res{color:#d4a017}.lc-item.res-failed .lc-res{color:var(--bad)}.lc-item.active .lc-res{color:#fff}.lc-foot{background:var(--bg);border-top:1px solid var(--line);justify-content:center;gap:8px;padding:10px;display:flex;position:fixed;bottom:0;left:0;right:0}.lesson-row{border:1px solid var(--line);background:var(--surface);border-radius:10px;align-items:center;gap:12px;padding:9px 12px;display:flex}.lesson-overlap{border:1px solid var(--warning,#d4a017);font-size:var(--fs-base);background:#d4a0171a;border-radius:10px;margin-top:14px;padding:12px 14px}.lesson-overlap-title{color:var(--text-strong);margin-bottom:4px;font-weight:700}.lesson-overlap ul{margin:0 0 10px;padding-left:18px}.sched-event .lesson-del{width:26px;height:26px;font-size:var(--fs-xs);opacity:.6}.sched-event .lesson-del:hover{opacity:1;color:var(--danger)}.lp-cols-wrap{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.lp-cols{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;display:grid}.lp-col{text-align:left;border:1px solid var(--line);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:10px;flex-direction:column;gap:3px;padding:10px 12px;display:flex}.lp-col:hover{border-color:var(--text-muted)}.lp-col.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:color-mix(in srgb, var(--accent) 7%, var(--surface))}.lp-col-title{color:var(--text-strong);font-weight:600}.lp-col-auto{font-size:var(--fs-2xs);color:var(--info);background:var(--info-bg);border-radius:999px;margin-left:4px;padding:1px 6px;font-weight:600}.lp-col-meta{font-size:var(--fs-sm);color:var(--text-muted)}.lp-cols-more{font-size:var(--fs-sm);color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:6px;display:flex}.lp-cols-empty{border:1px dashed var(--line);font-size:var(--fs-base);border-radius:10px;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 14px;display:flex}.lp-cols-empty>div{flex:1;min-width:220px}.lp-skip-seen{margin:2px 0 10px}.lp-skip-seen small{color:var(--text-muted);display:block}.lesson-draft-banner{background:color-mix(in srgb, var(--accent) 10%, var(--surface));border:1px solid color-mix(in srgb, var(--accent) 35%, var(--line));font-size:var(--fs-base);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px 16px;margin:0 0 16px;padding:10px 14px;display:flex}.lesson-draft-banner span{flex:1;min-width:220px}.analysis-book .side-left{flex-direction:column;gap:14px;padding:24px 20px;display:flex}.analysis-book .side-right{flex-direction:column;gap:10px;min-height:0;padding:24px 20px;display:flex}.analysis-book .board-center{padding:34px 30px 12px}.an-box{flex-direction:column;gap:6px;display:flex}.an-box-title{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:700}.an-box-hint{font-size:var(--fs-xs);color:var(--text-muted);margin:0}.an-box-pgn{flex:1;min-height:0}.an-fen,.an-pgn{box-sizing:border-box;width:100%;font-family:var(--mono);font-size:var(--fs-xs);border:1px solid var(--line);background:var(--surface);color:var(--text);resize:none;border-radius:4px;padding:7px 8px;line-height:1.45}.an-fen{word-break:break-all;height:68px}.an-pgn{flex:1;height:0;min-height:120px}.an-pgn-actions{gap:6px;display:flex}.an-io-msg{font-size:var(--fs-sm);color:var(--success);min-height:1.2em}.an-io-msg.is-error{color:var(--danger)}.an-frame{position:relative}.an-evalbar{background:#403d39;border-radius:3px;width:12px;position:absolute;top:10px;bottom:38px;left:-16px;overflow:hidden;box-shadow:inset 0 0 0 1px #0003}.an-evalbar.is-empty{visibility:hidden}.an-evalbar-fill{background:#f0f0f0;transition:height .4s;position:absolute;bottom:0;left:0;right:0}.an-evalbar.flipped{transform:rotate(180deg)}.an-evalbar-text{text-align:center;color:#f0f0f0;writing-mode:vertical-rl;font-size:8px;font-weight:700;position:absolute;top:4px;left:0;right:0;transform:rotate(180deg)}.an-evalbar-text.on-white{color:#403d39;top:auto;bottom:4px}.an-evalbar.flipped .an-evalbar-text{transform:none}.analysis-book .palette-below{grid-template-columns:repeat(7,40px);margin-top:4px}.an-side .engine-head{margin-bottom:0}.an-side .engine-panel{flex-shrink:0;margin:0}.an-side .engine-panel.on .engine-lines{min-height:92px}.analysis-book.is-editing .an-side{overflow-y:auto}#app:has(.analysis-book){min-height:0;padding-bottom:12px}.an-moves{background:var(--surface-2);height:0;min-height:0;font-size:var(--fs-base);border-radius:6px;flex:1 1 0;overflow-y:auto}.an-moves-empty{color:var(--text-muted);font-size:var(--fs-sm);text-align:center;padding:24px 16px}.an-moves-grid{grid-template-columns:34px 1fr 1fr;display:grid}.an-index{background:var(--line);color:var(--text-muted);font-size:var(--fs-sm);justify-content:center;align-items:center;display:flex}.an-move{text-align:left;font:inherit;color:var(--text-strong);cursor:pointer;background:0 0;border:0;border-radius:0;padding:5px 10px;font-weight:500}.an-move:hover{background:var(--info-bg)}.an-move.active{background:var(--accent);color:#fff}.an-move-empty{color:var(--text-muted);cursor:default}.an-move-empty:hover{background:0 0}.an-vars{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:var(--fs-sm);grid-column:1/-1;padding:6px 10px 8px 12px}.an-var{line-height:1.9}.an-var+.an-var{border-top:1px dashed var(--line)}.an-vars .an-move,.an-sub .an-move{border-radius:3px;padding:1px 3px;font-weight:400}.an-num{color:var(--text-muted);font-size:var(--fs-sm);margin:0 2px 0 4px}.an-sub{color:var(--text-muted)}.an-toolbar{flex-shrink:0;align-items:center;gap:4px;display:flex}.an-controls{flex:1;justify-content:center;gap:2px;display:flex}.an-controls .icon-btn:disabled{opacity:.35;cursor:default}.an-burger-wrap,.an-export-wrap{position:relative}.an-burger-menu{min-width:250px;padding:6px;inset:auto 0 calc(100% + 6px) auto}.an-burger-wrap .an-burger-menu{left:0;right:auto}.an-menu-item{width:100%;font:inherit;font-size:var(--fs-base);color:var(--text-strong);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:10px;padding:5px 8px;display:flex}.an-menu-item:hover{background:var(--surface-2)}.an-menu-item .icon-btn{pointer-events:none}.an-menu-item kbd{font-family:var(--mono);font-size:var(--fs-2xs);color:var(--text-muted);border:1px solid var(--line);border-radius:3px;margin-left:auto;padding:0 5px}.an-export{z-index:40;background:var(--surface);width:340px;box-shadow:0 10px 28px #00000029, inset 0 0 0 1px var(--line);border-radius:8px;padding:14px;position:absolute;bottom:calc(100% + 6px);right:0}.an-context-menu{z-index:1000;flex-direction:column;width:max-content;min-width:190px;max-width:260px;padding:4px;display:flex;position:fixed;bottom:auto;right:auto}.an-context-menu button{text-align:left;font:inherit;font-size:var(--fs-base);color:var(--text-strong);cursor:pointer;background:0 0;border:0;border-radius:4px;padding:7px 10px}.an-context-menu button:hover{background:var(--surface-2)}.an-context-menu button.danger{color:var(--danger)}.an-context-title{font-size:var(--fs-xs);color:var(--text-muted);border-bottom:1px solid var(--line);margin-bottom:3px;padding:5px 10px 3px}.an-editor h3{margin-top:0}.an-ed-error{color:var(--danger);font-size:var(--fs-sm);min-height:0;margin-bottom:6px}.an-ed-error:empty{display:none}.an-ed-actions{align-items:center;gap:8px;margin-top:4px;display:flex}.an-exp-solution{font-size:var(--fs-sm);margin:4px 0 10px}.an-export-actions{gap:6px;display:flex}.an-article-bar{background:#a731c514;border:1px solid #a731c559;border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin:0 0 14px;padding:12px 16px;display:flex}.an-article-hint{font-size:var(--fs-sm);color:var(--text-muted);max-width:640px;margin-top:2px}.an-article-actions{flex-shrink:0;gap:8px;display:flex}.dropzone{border:2px dashed var(--line);text-align:center;background:var(--surface);border-radius:10px;padding:40px 20px;transition:border-color .15s,background .15s}.dropzone.dragover{border-color:var(--accent);background:var(--surface-2)}.dropzone-empty{color:var(--text-muted);font-size:var(--fs-base)}.dropzone-icon{color:var(--text-muted);margin-bottom:10px;font-size:32px}.dropzone-file{text-align:left;align-items:center;gap:14px;display:flex}.dropzone-thumb{object-fit:cover;border-radius:6px;width:56px;height:56px}.dropzone-file-icon{font-size:32px}.dropzone-filename{font-size:var(--fs-base);color:var(--text-strong);word-break:break-all;margin-bottom:6px;font-weight:600}.rights-options{flex-direction:column;flex:1 1 0;align-items:stretch;gap:8px;width:100%;min-width:0;display:flex}.rights-options.compact{flex-flow:wrap;align-items:flex-start;gap:8px}.rights-option{background:var(--surface-2);cursor:pointer;font-size:var(--fs-sm);color:var(--text);box-sizing:border-box;border-radius:6px;align-self:stretch;align-items:flex-start;gap:10px;width:100%;padding:10px 12px;display:flex}.rights-options.compact .rights-option{align-self:auto;width:auto;padding:7px 10px}.rights-option.active{background:var(--warning-bg);box-shadow:inset 0 0 0 1px var(--accent)}.rights-option.disabled{opacity:.45;cursor:not-allowed}.rights-option input{margin-top:2px}.rights-option-desc{font-size:var(--fs-xs);color:var(--text-muted);margin-top:2px}.scan-hint{font-size:var(--fs-sm);color:var(--text-muted);margin-top:6px}.scan-label{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-weight:600}.scan-subtitle{font-size:var(--fs-xl);color:var(--text-strong);margin:32px 0 10px}.scan-loading{color:var(--text-muted);padding:48px 0}.scan-health{background:var(--warning-bg);color:var(--warning);font-size:var(--fs-base);border-radius:6px;margin-bottom:14px;padding:10px 14px}.scan-health.is-error{background:var(--danger-bg);color:var(--danger)}.scan-intake{max-width:720px}.scan-drop{cursor:pointer;display:block}.scan-meter,.scan-progress{background:var(--line);border-radius:2px;height:4px;margin-top:14px;overflow:hidden}.scan-meter>span,.scan-progress>span{background:var(--accent);width:0;height:100%;transition:width .3s ease-out;display:block}.scan-progress{margin:0 0 16px}.scan-message{min-height:1.4em;font-size:var(--fs-base);color:var(--text-muted)}.scan-message.is-error,.scan-book-state.is-error{color:var(--danger)}.scan-books{border-top:1px solid var(--line);max-width:720px}.scan-book-row{border-bottom:1px solid var(--line);align-items:center;gap:8px;display:flex}.scan-book-open{font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;justify-content:space-between;gap:16px;padding:12px 4px;display:flex}.scan-book-open:hover .scan-book-name{color:var(--accent)}.scan-book-name{overflow-wrap:anywhere;font-weight:500}.scan-book-state{color:var(--text-muted);font-size:var(--fs-sm);white-space:nowrap}.scan-title{overflow-wrap:anywhere;font-size:var(--fs-6xl)!important;line-height:40px!important}.scan-book-actions{margin-bottom:12px}.scan-thumbs{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:16px 12px;margin:0;padding:0;list-style:none;display:grid}.scan-thumb button{width:100%;font:inherit;color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;border:0;gap:6px;padding:0;display:grid}.scan-thumb-frame{aspect-ratio:3/4;background:var(--surface);border:1px solid var(--line);border-radius:3px;display:block;overflow:hidden}.scan-thumb-frame img{object-fit:contain;width:100%;height:100%;display:block}.scan-thumb button:hover .scan-thumb-frame{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.scan-thumb.is-pending .scan-thumb-frame{background:var(--surface-2);border-style:dashed}.scan-thumb.is-broken .scan-thumb-frame{background:repeating-linear-gradient(45deg, var(--surface-2) 0 6px, var(--surface) 6px 12px)}.scan-thumb-no{font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.scan-thumb-no b{color:var(--accent)}.scan-page-head{flex-wrap:wrap;align-items:center;gap:10px 18px;margin:4px 0 14px;display:flex}.scan-pager{align-items:center;gap:6px;display:flex}.scan-page-label{text-align:center;font-variant-numeric:tabular-nums;min-width:150px;font-weight:600}.scan-page-info{color:var(--text-muted);font-size:var(--fs-base);flex:1;min-width:220px}#scan-manual.is-on{border-color:var(--accent);color:var(--accent);background:var(--surface)}.scan-workspace{grid-template-columns:minmax(0,1fr) 400px;align-items:start;gap:24px;display:grid}@media (width<=1100px){.scan-workspace{grid-template-columns:1fr}}.scan-sheet{background:var(--surface-2);border-radius:8px;justify-content:center;padding:16px;display:flex}.scan-sheet-inner{max-width:100%;line-height:0;position:relative}.scan-sheet-inner img{-webkit-user-select:none;user-select:none;background:#fff;max-width:100%;max-height:calc(100vh - 170px);display:block;box-shadow:0 1px 4px #0000002e}.scan-sheet-inner.is-selecting{cursor:crosshair}.scan-sheet-inner.is-selecting .scan-box{pointer-events:none;opacity:.45}.scan-overlay{position:absolute;inset:0}.scan-box{border:2px solid var(--accent);cursor:pointer;background:#a731c50f;border-radius:2px;padding:0;transition:background .12s;position:absolute}.scan-box:hover{background:#a731c524}.scan-box.is-recognized{border-color:var(--info);background:#2456a60f}.scan-box.is-imported{border-color:var(--success);background:#1e7a3414}.scan-box.is-active{border-color:var(--accent);background:0 0;box-shadow:0 0 0 3px #a731c559}.scan-box.is-manual{cursor:default;border-style:dashed}.scan-box-label{background:var(--accent);color:#fff;font:600 11px/1 var(--sans);border-radius:3px 3px 0 0;padding:3px 6px;position:absolute;top:-2px;left:-2px;transform:translateY(-100%)}.scan-box.is-recognized .scan-box-label{background:var(--info)}.scan-box.is-imported .scan-box-label{background:var(--success)}.scan-select-rect{border:2px dashed var(--accent);pointer-events:none;background:#a731c514;position:absolute}.scan-panel{background:var(--surface);border-radius:8px;padding:18px;position:sticky;top:12px;box-shadow:0 10px 28px #00000014}.scan-panel-empty{color:var(--text-muted);text-align:center;font-size:var(--fs-base);padding:36px 8px}.scan-panel-empty.is-error{color:var(--danger)}.scan-spinner{vertical-align:-2px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:14px;height:14px;margin-right:8px;animation:.8s linear infinite scan-spin;display:inline-block}.scan-result-head{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.scan-result-head h3{font-size:var(--fs-xl);margin:0 0 6px}.scan-number{color:var(--text-muted);font-weight:400}.scan-chip{font-size:var(--fs-xs);border-radius:10px;padding:3px 8px;font-weight:600;display:inline-block}.scan-chip.is-good{background:var(--success-bg);color:var(--success)}.scan-chip.is-warn{background:var(--warning-bg);color:var(--warning)}.scan-chip.is-bad{background:var(--danger-bg);color:var(--danger)}.scan-board-wrap{width:100%}.scan-board{aspect-ratio:1;width:100%}.scan-board cg-board square.scan-doubt{box-shadow:inset 0 0 0 3px var(--accent);background:#a731c54d}cg-board square.scan-queen{background:#dc262659;box-shadow:inset 0 0 0 3px #dc2626}.scan-issues li .btn{vertical-align:baseline;margin-left:6px}.scan-palette{grid-template-columns:repeat(7,1fr)!important;margin-top:26px!important}.scan-doubts{flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px;display:flex}.scan-doubts .scan-label{width:100%;margin:0}.scan-doubt-chip{font-size:var(--fs-sm);background:var(--warning-bg);color:var(--warning);border-radius:4px;padding:3px 8px}.scan-field{margin-top:14px}.scan-field .scan-hint{display:block}.scan-source{text-transform:none;letter-spacing:0;margin-left:6px;font-weight:400}.scan-source.is-warn{color:var(--warning);font-weight:600}.scan-segmented{border:1px solid var(--line);border-radius:4px;display:inline-flex;overflow:hidden}.scan-segmented button{background:var(--surface);font:inherit;font-size:var(--fs-sm);cursor:pointer;color:var(--text);border:0;padding:7px 14px}.scan-segmented button+button{border-left:1px solid var(--line)}.scan-segmented button.active{background:var(--accent);color:#fff;font-weight:600}.scan-fen-row{gap:6px;display:flex}.scan-fen{min-width:0;font-family:var(--mono);font-size:var(--fs-sm);border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:4px;flex:1;padding:7px 8px}.scan-issues{font-size:var(--fs-sm);margin:8px 0 0;padding:0;list-style:none}.scan-issues li{padding:2px 0 2px 18px;position:relative}.scan-issues li:before{position:absolute;left:0}.scan-issues .is-error{color:var(--danger)}.scan-issues .is-error:before{content:"✕"}.scan-issues .is-warning{color:var(--warning)}.scan-issues .is-warning:before{content:"!";font-weight:700;left:4px}.scan-issues .is-ok{color:var(--success)}.scan-issues .is-ok:before{content:"✓"}.scan-import{border-top:1px solid var(--line);margin-top:18px;padding-top:14px}.scan-target{grid-template-columns:1fr 1fr;gap:6px;margin-bottom:10px;display:grid}.scan-target select{border:1px solid var(--line);background:var(--surface);min-width:0;color:var(--text);font:inherit;font-size:var(--fs-sm);border-radius:4px;padding:6px}.scan-import .btn{width:100%}.scan-import .btn:disabled{opacity:.5;cursor:not-allowed}.scan-imported{background:var(--success-bg);color:var(--success);font-size:var(--fs-sm);border-radius:4px;margin-bottom:10px;padding:8px 10px}.scan-imported a{cursor:pointer;text-decoration:underline}.scan-meta-line{font-size:var(--fs-xs);color:var(--text-muted);overflow-wrap:anywhere;margin-top:12px}.drafts-banner{background:var(--warning-bg);color:var(--warning);font-size:var(--fs-base);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:10px 14px;display:flex}.draft-count{color:var(--warning);font-weight:600}.draft-row{cursor:pointer;border:1.5px dashed var(--line)!important;box-shadow:none!important;background:0 0!important}.draft-row .task-num{color:var(--text-muted)}.draft-row-text{min-width:0;color:var(--text-muted);font-size:var(--fs-base);flex-wrap:wrap;flex:1;align-items:center;gap:8px;display:flex}.draft-badge{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.04em;background:var(--warning-bg);color:var(--warning);border-radius:4px;padding:2px 7px;font-weight:700}.draft-issue{color:var(--danger);font-size:var(--fs-sm)}.draft-row-action{color:var(--accent);font-size:var(--fs-sm);white-space:nowrap;font-weight:600}.draft-delete{font-size:var(--fs-sm);width:28px!important;height:28px!important}.scan-draft-banner{background:var(--warning-bg);color:var(--warning)}.scan-head-actions{flex-wrap:wrap;gap:6px;display:flex}#scan-select-mode.is-on{border-color:var(--accent);color:var(--accent);background:var(--surface)}.scan-box.is-drafted{border-color:var(--warning);background:#b4780014}.scan-box.is-drafted .scan-box-label{background:var(--warning)}.scan-box.is-selectable{cursor:pointer}.scan-box.is-picked{border-width:3px;border-color:var(--accent);background:#a731c52e}.scan-box.is-picked .scan-box-label{background:var(--accent)}.scan-tray{z-index:50;background:var(--surface);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;width:min(980px,100vw - 32px);padding:12px 16px;display:flex;position:fixed;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 12px 32px #0003}.scan-tray[hidden]{display:none}.scan-tray-text{min-width:0;font-size:var(--fs-base);flex:260px}.scan-tray-text .scan-hint{margin-top:2px;display:block}.scan-tray-target{flex:0 330px;margin:0}.scan-tray-meter{background:var(--line);border-radius:2px;flex:200px;height:4px;overflow:hidden}.scan-tray-meter>span{background:var(--accent);height:100%;transition:width .3s;display:block}.scan-source{background:var(--surface-2);box-sizing:border-box;border-radius:8px;width:100%;max-width:480px;margin-top:14px;padding:8px 10px 10px}.scan-source-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.scan-source-title{font-size:var(--fs-sm);color:var(--text-muted);font-weight:600}.scan-source-actions{gap:2px;display:flex}.scan-source-tab{font-size:var(--fs-sm);color:var(--text-muted);background:0 0;border:none;border-radius:5px;padding:3px 8px}.scan-source-tab.active{background:var(--surface);color:var(--text-strong);font-weight:600;box-shadow:0 1px 2px #00000014}.scan-source-body{margin-top:8px}.scan-source-crop{background-color:#fff;background-repeat:no-repeat;border-radius:4px;width:100%;box-shadow:0 1px 3px #0000001f}.scan-source-page{background:#fff;border-radius:4px;max-height:560px;position:relative;overflow:auto}.scan-source-page img{width:100%;display:block}.scan-source-mark{border:2px solid var(--accent);pointer-events:none;background:#a731c514;border-radius:2px;position:absolute}.scan-source-loading{font-size:var(--fs-sm);color:var(--text-muted);padding:14px 4px}.scan-source-foot{font-size:var(--fs-sm);color:var(--text-muted);margin-top:6px}.scan-source-foot a{color:var(--accent);cursor:pointer}:root[data-theme=dark] .scan-source-crop,:root[data-theme=dark] .scan-source-page img{filter:brightness(.9)}.continue-bar,.scan-summary-bar{background:var(--surface-2);border-radius:2px;height:4px;margin-top:3px;display:block;overflow:hidden}.continue-bar span,.scan-summary-bar span{background:var(--accent);border-radius:2px;height:100%;display:block}.scan-summary{background:var(--surface);font-size:var(--fs-base);border-radius:8px;margin:0 0 14px;padding:12px 14px}.scan-summary[hidden]{display:none}.scan-summary-stats{flex-wrap:wrap;gap:6px 22px;display:flex}.scan-summary-bar{height:6px;margin:10px 0 6px}.scan-summary-list{font-size:var(--fs-sm);color:var(--text-muted);line-height:1.5}.scan-source-inner{position:relative}.bm-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:24px;margin-top:16px;display:grid}@media (width<=900px){.bm-grid{grid-template-columns:minmax(0,1fr)}}.bm-source{flex-direction:column;gap:8px;display:flex}.bm-crop{border:1px solid var(--line);image-rendering:auto;background:#fff;border-radius:6px;width:100%;max-width:520px}.bm-meta{font-size:var(--fs-base)}.bm-hint,.bm-help{font-size:var(--fs-sm);color:var(--text-muted);margin:0}.bm-issues{font-size:var(--fs-sm);color:var(--warning);margin:0;padding-left:18px}.bm-saved{font-size:var(--fs-sm);color:var(--save);font-weight:600}.bm-editor{flex-direction:column;gap:12px;min-width:0;display:flex}.bm-board{aspect-ratio:1;width:min(100%,440px)}.bm-palette{flex-wrap:wrap;gap:4px;max-width:440px;display:flex}.bm-piece{border:1px solid var(--line);background:var(--surface);cursor:pointer;color:#111;border-radius:6px;width:34px;height:34px;font-size:24px;line-height:1}.bm-piece.armed{outline:2px solid var(--accent);background:#a731c51f}.bm-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.bm-nav .muted{text-align:center;min-width:60px}.bm-page-wrap{border:1px solid var(--line);background:#fff;border-radius:6px;max-height:80vh;overflow:auto}.bm-page-inner{position:relative}.bm-page-inner img{width:100%;display:block}.bm-box{border:2px solid var(--accent);pointer-events:none;background:#a731c514;position:absolute}.bm-box b{background:var(--accent);color:#fff;font-size:var(--fs-xs);border-radius:0 0 4px;padding:0 5px;position:absolute;top:-2px;left:-2px}:is(.book-row,.add-book-row,.task-row,.add-task-row,.metric-card,.dash-card,.dash-student,.tree-node,.assignment-row,.recent-card,.qa-tile,.puzzle-of-day-card,.book-tile,.assignment-card,.topic-row,.draft-row,.role-card,.art-row,.art-card,.continue-card,.cal-cell,.theme-tile,.sa-row):not(.is-clickable){cursor:default}:is(.form-card,.inline-create-form,.form-card-inline) .rights-options{border:1px solid var(--line);border-radius:8px;flex-wrap:wrap;gap:0;display:inline-flex;overflow:hidden}:is(.form-card,.inline-create-form,.form-card-inline) .rights-option{background:var(--surface);font-size:var(--fs-base);color:var(--text-muted);cursor:pointer;border:none;border-radius:0;margin:0;padding:8px 14px}:is(.form-card,.inline-create-form,.form-card-inline) .rights-option+.rights-option{border-left:1px solid var(--line)}:is(.form-card,.inline-create-form,.form-card-inline) .rights-option strong{font-weight:500}:is(.form-card,.inline-create-form,.form-card-inline) .rights-option.active{background:var(--accent);color:#fff}:is(.form-card,.inline-create-form,.form-card-inline) .rights-option:has(input:checked){background:var(--accent);color:#fff}:is(.form-card,.inline-create-form,.form-card-inline) .rights-option input{opacity:0;pointer-events:none;position:absolute}:is(.form-card,.inline-create-form,.form-card-inline) .rights-option.disabled{opacity:.45;cursor:not-allowed}.articles-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.articles-lead{color:var(--text-muted);max-width:720px;margin:6px 0 0}.articles-tabs{margin-top:16px}.art-list{flex-direction:column;gap:8px;display:flex}.art-row{background:var(--surface);cursor:pointer;border-radius:8px;align-items:center;gap:14px;padding:10px 12px;display:flex;box-shadow:0 1px 2px #0000000a}.art-row-thumb{background:var(--surface-2) center/cover no-repeat;width:72px;height:48px;color:var(--text-muted);border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.art-row-thumb svg{width:24px;height:24px}.art-row-body{flex:1;min-width:0}.art-row-title{color:var(--text-strong);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.art-row-meta{font-size:var(--fs-sm);color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:3px;display:flex}.art-row-link{color:var(--accent)}.art-status{font-size:var(--fs-xs);background:var(--surface-2);color:var(--text-muted);white-space:nowrap;border-radius:10px;padding:2px 8px;font-weight:600}.art-status-published{background:var(--success-bg);color:var(--success)}.art-status-changed{background:var(--warning-bg);color:#7a5634}.art-search{border:1px solid var(--line);background:var(--surface);width:100%;max-width:420px;font-size:var(--fs-base);border-radius:6px;margin-bottom:14px;padding:8px 12px}.art-cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.art-card{background:var(--surface);color:inherit;border-radius:8px;flex-direction:column;text-decoration:none;transition:box-shadow .15s;display:flex;overflow:hidden;box-shadow:0 1px 2px #0000000a}.art-card-cover{aspect-ratio:16/9;background:var(--surface-2) center/cover no-repeat;color:var(--text-muted);justify-content:center;align-items:center;display:flex}.art-card-cover svg{opacity:.5;width:40px;height:40px}.art-card-body{flex-direction:column;gap:6px;padding:12px 14px 14px;display:flex}.art-card-title{font-weight:700;font-size:var(--fs-lg);color:var(--text-strong)}.art-card-desc{font-size:var(--fs-base);color:var(--text);-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.art-card-meta{font-size:var(--fs-xs);color:var(--text-muted)}.art-page{max-width:760px;margin:0 auto}.art-header{margin:8px 0 18px}.art-title{color:var(--text-strong);margin:6px 0 10px;font-size:38px;line-height:1.15}.art-byline{font-size:var(--fs-base);color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:6px;display:flex}.art-byline .btn{align-items:center;gap:4px;margin-left:auto;display:inline-flex}.art-byline .btn svg{width:16px;height:16px}.art-author{color:var(--text-strong);font-weight:600}.art-lead{font-size:var(--fs-xl);color:var(--text);margin:14px 0 0;line-height:1.5}.art-cover{border-radius:8px;width:100%;margin:0 0 22px;display:block}.art-body{font-size:var(--fs-lg);color:var(--text);line-height:1.7}.art-text h2{font-size:var(--fs-4xl);color:var(--text-strong);margin:30px 0 10px}.art-text h3{font-size:var(--fs-2xl);color:var(--text-strong);margin:24px 0 8px}.art-text p{margin:0 0 14px}.art-text ul{margin:0 0 14px;padding-left:22px}.art-text blockquote{background:var(--surface-2);border-left:3px solid var(--accent);border-radius:0 6px 6px 0;margin:0 0 14px;padding:10px 14px}.art-text a,.art-caption a,.art-figure-meta a{color:var(--accent)}.art-figure{background:var(--surface);border-radius:10px;margin:22px 0;padding:14px;box-shadow:0 1px 2px #0000000d}.art-figure-title{color:var(--text-strong);font-weight:600;font-size:var(--fs-md);margin-bottom:10px}.art-figure-event{font-weight:400;font-size:var(--fs-sm);color:var(--text-muted);display:block}.art-viewer{grid-template-columns:minmax(0,360px) minmax(0,1fr);align-items:start;gap:16px;display:grid}.art-board .mini-board{box-shadow:0 2px 6px #00000026}.art-side{flex-direction:column;gap:10px;min-width:0;display:flex}.art-controls{gap:4px;display:flex}.art-controls button{border:1px solid var(--line);background:var(--surface);max-width:56px;height:34px;font-size:var(--fs-base);color:var(--text-strong);border-radius:6px;flex:1}.art-controls button:disabled{opacity:.35;cursor:default}.art-controls button:not(:disabled):hover{background:var(--surface-2)}.art-moves{font-size:var(--fs-md);line-height:1.9}.art-move-num{color:var(--text-muted);margin-right:1px}.art-move{font-size:var(--fs-md);color:var(--text-strong);background:0 0;border:none;border-radius:4px;padding:1px 4px}.art-move:hover{background:var(--surface-2)}.art-move.active{background:var(--accent);color:#fff}.art-figure figcaption{font-size:var(--fs-base);margin-top:10px}.art-caption p{margin:0 0 6px}.art-figure-meta{font-size:var(--fs-sm);color:var(--text-muted)}.art-footer{border-top:1px solid var(--line);font-size:var(--fs-base);color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:30px;padding-top:14px;display:flex}.art-footer a{color:var(--accent)}@media (width<=640px){.art-title{font-size:var(--fs-5xl)}.art-viewer{grid-template-columns:1fr}}.art-editor-bar{z-index:5;background:var(--bg);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;padding:10px 0;display:flex;position:sticky;top:0}.art-editor-bar .btn{align-items:center;gap:4px;display:inline-flex}.art-editor-bar .btn svg{width:16px;height:16px}.art-editor-bar-spacer{flex:1}.art-editor-saved{font-size:var(--fs-sm);color:var(--text-muted)}.art-publish-msg{font-size:var(--fs-base);border-radius:8px;margin-bottom:14px;padding:10px 14px}.art-publish-msg.ok{background:var(--success-bg);color:var(--success)}.art-publish-msg.ok a{color:inherit;font-weight:600}.art-publish-msg.is-error{background:var(--danger-bg);color:var(--danger)}.art-editor-grid{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:24px;display:grid}@media (width<=960px){.art-editor-grid{grid-template-columns:1fr}}.art-title-input{width:100%;font-size:var(--fs-5xl);border:none;border-bottom:2px solid var(--line);color:var(--text-strong);font-weight:700;font-family:var(--sans);background:0 0;margin-bottom:16px;padding:6px 0}.art-title-input:focus{border-bottom-color:var(--accent);outline:none}.art-block{background:var(--surface);border-radius:8px;margin-bottom:12px;padding:10px 12px 12px;box-shadow:0 1px 2px #0000000a}.art-block-head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.art-block-kind{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:600}.art-block-tools{gap:2px;display:flex}.art-block-tools button{width:28px;height:26px;color:var(--text-muted);background:0 0;border:none;border-radius:4px}.art-block-tools button:hover:not(:disabled){background:var(--surface-2);color:var(--text-strong)}.art-block-tools button:disabled{opacity:.3;cursor:default}.art-block-text{box-sizing:border-box;border:1px solid var(--line);width:100%;font:inherit;font-size:var(--fs-md);resize:vertical;background:var(--surface);color:var(--text);border-radius:6px;padding:9px 11px;line-height:1.6}.art-pgn-input{font-family:var(--mono,monospace);font-size:var(--fs-base)}.art-caption-input,.art-side-card input,.art-side-card textarea,.art-picker input{box-sizing:border-box;border:1px solid var(--line);width:100%;font:inherit;font-size:var(--fs-base);background:var(--surface);color:var(--text);border-radius:6px;margin-top:8px;padding:7px 10px}.art-side-card textarea{resize:vertical}.art-hint{font-size:var(--fs-sm);color:var(--text-muted);margin-top:6px;line-height:1.45}.art-hint.is-error{color:var(--danger)}.art-add-row{font-size:var(--fs-base);color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px;padding:6px 0 20px;display:flex}.art-pos-chosen{align-items:flex-start;gap:14px;display:flex}.art-pos-board{flex-shrink:0}.art-pos-info{flex-direction:column;gap:4px;min-width:0;display:flex}.art-pos-info .checklist-item{font-size:var(--fs-base);padding:4px 0}.art-pos-info .btn{align-self:flex-start}.art-pos-title{color:var(--text-strong);font-weight:600}.art-picker{margin-top:10px}.art-picker-list{border:1px solid var(--line);border-radius:6px;max-height:300px;margin-top:6px;overflow-y:auto}.art-picker-item{text-align:left;background:var(--surface);border:none;border-bottom:1px solid var(--line);align-items:center;gap:10px;width:100%;padding:6px 8px;display:flex}.art-picker-item:last-child{border-bottom:none}.art-picker-item:hover{background:var(--surface-2)}.art-picker-board{flex-shrink:0}.art-picker-text{font-size:var(--fs-base);flex-direction:column;min-width:0;display:flex}.art-picker-text span{color:var(--text-muted);font-size:var(--fs-sm)}.art-side-card{background:var(--surface);font-size:var(--fs-base);border-radius:8px;margin-bottom:12px;padding:12px 14px;box-shadow:0 1px 2px #0000000a}.art-side-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:600}.art-slug-row{font-size:var(--fs-base);color:var(--text-muted);align-items:center;gap:2px;margin-top:8px;display:flex}.art-slug-row input{font-family:var(--mono,monospace);font-size:var(--fs-sm);margin-top:0}.art-cover-preview{border-radius:6px;width:100%;margin-top:8px;display:block}.art-cover-actions{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.art-file-btn{cursor:pointer}.art-preview{background:var(--surface);border-radius:10px;padding:24px}.art-preview .art-figure{background:var(--bg)}.art-serp{border-top:1px solid var(--line);max-width:760px;margin:30px auto 0;padding-top:16px;font-family:Arial,sans-serif}.art-serp-url{font-size:var(--fs-sm);color:#4d5156;margin-top:8px}.art-serp-title{font-size:var(--fs-2xl);color:#1a0dab;margin:2px 0}.art-serp-desc{font-size:var(--fs-base);color:#4d5156;line-height:1.5}.art-callout{border:1px solid #e2c3ec;border-left:4px solid var(--accent);background:#f6eaf9;border-radius:8px;margin:0 0 16px;padding:12px 16px 4px}.art-callout-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--accent);margin-bottom:4px;font-weight:700}.art-callout p{margin:0 0 8px}.art-move-link{color:var(--accent);cursor:pointer;border-bottom:1px dashed;font-weight:600;text-decoration:none}.art-move-link:hover{border-bottom-style:solid}.art-figure.art-flash{animation:1.2s artFlash}.art-image{margin:22px 0}.art-image img{border-radius:8px;max-width:100%;margin:0 auto;display:block}.art-image figcaption{text-align:center;font-size:var(--fs-base);color:var(--text-muted);margin-top:8px}.art-format-bar{background:var(--surface-2);border-radius:6px;flex-wrap:wrap;align-items:center;gap:2px;margin-bottom:6px;padding:4px;display:flex}.art-format-bar button{min-width:30px;height:28px;font-size:var(--fs-sm);color:var(--text-strong);white-space:nowrap;background:0 0;border:none;border-radius:4px;padding:0 8px}.art-format-bar button:hover:not(:disabled){background:var(--surface);box-shadow:0 1px 2px #00000014}.art-format-bar button:disabled{opacity:.4;cursor:default}.art-format-sep{background:var(--line);width:1px;height:18px;margin:0 4px}.art-move-picker{border:1px solid var(--line);background:var(--surface);border-radius:8px;max-height:260px;margin-bottom:8px;padding:8px 10px;overflow-y:auto}.art-move-picker[hidden]{display:none}.art-move-picker-head{font-size:var(--fs-sm);color:var(--text-muted);justify-content:space-between;gap:8px;margin-bottom:6px;display:flex}.art-move-picker-close{color:var(--text-muted);background:0 0;border:none}.art-move-picker-game{margin-bottom:8px}.art-move-picker-title{font-size:var(--fs-sm);color:var(--text-strong);margin-bottom:4px;font-weight:600}.art-move-picker-moves{flex-wrap:wrap;gap:4px;display:flex}.art-move-picker-moves button{border:1px solid var(--line);background:var(--surface);font-size:var(--fs-sm);color:var(--text-strong);border-radius:4px;padding:2px 7px}.art-move-picker-moves button:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.art-image-drop{border:2px dashed var(--line);cursor:pointer;text-align:center;font-size:var(--fs-base);color:var(--text);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:28px 12px;display:flex}.art-image-drop:hover,.art-image-drop.is-over{border-color:var(--accent);background:#f6eaf9}.art-image-preview{border-radius:6px;max-width:100%;max-height:360px;display:block}.art-seo-card .art-serp-mini{border:1px solid var(--line);border-top:1px solid var(--line);background:#fff;border-radius:8px;max-width:none;margin:8px 0 10px;padding:10px 12px}.art-serp-mini .art-serp-url{font-size:var(--fs-xs);margin-top:0}.art-serp-mini .art-serp-title{font-size:var(--fs-md);line-height:1.3}.art-serp-mini .art-serp-desc{font-size:var(--fs-sm)}.art-serp-auto{font-size:var(--fs-xs);color:var(--text-muted);font-style:italic;font-family:var(--sans);margin-top:4px}.art-seo-field{font-size:var(--fs-sm);color:var(--text-strong);font-weight:600;display:block}.art-seo-field em{color:var(--text-muted);font-weight:400}.art-seo-note{font-size:var(--fs-sm);color:var(--text);background:var(--info-bg);border-radius:6px;margin-top:8px;padding:8px 10px;line-height:1.45}:root[data-theme=dark] .art-callout{background:#2a1f2e;border-color:#5c3569}:root[data-theme=dark] .art-image-drop:hover,:root[data-theme=dark] .art-image-drop.is-over{background:#2a1f2e}:root[data-theme=dark] .art-seo-card .art-serp-mini,:root[data-theme=dark] .art-serp{background:var(--surface)}:root[data-theme=dark] .art-serp-title{color:#8ab4f8}:root[data-theme=dark] .art-serp-url,:root[data-theme=dark] .art-serp-desc{color:#bdc1c6}.art-page{max-width:none}.art-cover{object-fit:cover;width:50%;max-height:380px}@media (width<=640px){.art-cover{width:100%}}.art-cover,.art-cover-preview{aspect-ratio:16/9;object-fit:cover}.art-row-thumb{width:80px;height:45px}.catalog-heading.heading-with-action,.catalog-heading.articles-heading{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:14px;display:flex}.profile-avatar{background:var(--accent);color:#fff;width:26px;height:26px;font-size:var(--fs-xs);border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:flex}.profile-name{font-size:var(--fs-sm);color:var(--text);white-space:nowrap;text-overflow:ellipsis;max-width:160px;font-weight:500;overflow:hidden}@media (width<=1180px){.topbar .profile-name{display:none}}.assignment-settings-card{background:var(--surface);font-size:var(--fs-base);border-radius:8px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px 24px;margin-bottom:8px;padding:16px 18px;display:grid}.assignment-settings-card .collection-info-label{margin-bottom:4px;display:block}@media (width<=720px){.profile-name{display:none}}.backup-overlay{z-index:1500;background:#00000059;justify-content:center;align-items:flex-start;padding:60px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.backup-dialog{background:var(--surface);border-radius:10px;width:min(620px,100%);padding:20px 22px;box-shadow:0 20px 50px #00000040}.backup-head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.backup-head h2{font-size:var(--fs-2xl);margin:0}.backup-dialog h3{font-size:var(--fs-md);margin:18px 0 8px}.backup-actions{flex-wrap:wrap;gap:8px;display:flex}.backup-actions label.btn{cursor:pointer}.backup-msg{min-height:1.2em;font-size:var(--fs-sm);margin-top:8px}.backup-msg.is-error{color:var(--danger)}.audit-list,.backup-errors ol{border-top:1px solid var(--line);max-height:260px;font-size:var(--fs-sm);margin:0;padding:0;list-style:none;overflow-y:auto}.audit-list li,.backup-errors li{border-bottom:1px solid var(--line);grid-template-columns:92px 1fr;gap:2px 10px;padding:7px 2px;display:grid}.audit-list time,.backup-errors time{color:var(--text-muted);font-variant-numeric:tabular-nums;grid-row:span 2}.audit-action{color:var(--text-strong);font-weight:600}.audit-detail{color:var(--text-muted);overflow-wrap:anywhere}.backup-errors{font-size:var(--fs-sm);margin-top:14px}.backup-errors summary{cursor:pointer;color:var(--text-muted)}.auth-page{justify-content:center;padding:32px 0 48px;display:flex}.auth-card{background:var(--surface);border-radius:10px;width:min(420px,100%);padding:28px 30px 24px;box-shadow:0 10px 28px #00000014}.auth-card.wide{width:min(620px,100%)}.auth-brand{color:var(--text-strong);align-items:center;gap:10px;margin-bottom:14px;font-weight:700;display:flex}.auth-card h1{font-size:var(--fs-4xl);margin:0 0 16px;line-height:30px}.auth-form{flex-direction:column;gap:12px;display:flex}.auth-field{font-size:var(--fs-sm);color:var(--text-muted);flex-direction:column;gap:5px;font-weight:600;display:flex}.auth-field input{font:inherit;font-size:var(--fs-md);color:var(--text);border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:10px 12px;font-weight:400}.auth-field input:focus{outline:2px solid var(--accent);outline-offset:0;border-color:#0000}.password-wrap{display:flex;position:relative}.password-wrap input{flex:1;min-width:0;padding-right:42px!important}.password-eye{width:34px;height:34px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:5px;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.password-eye:hover{color:var(--text-strong);background:var(--surface-2)}.password-eye svg{width:20px;height:20px}.account-password .password-wrap{flex:180px}.account-password .password-eye{width:28px;height:28px}.account-password .password-eye svg{width:18px;height:18px}.auth-submit{width:100%;font-size:var(--fs-md);margin-top:4px;padding:11px}.auth-submit:disabled{opacity:.6;cursor:progress}.auth-error{background:var(--danger-bg);color:var(--danger);font-size:var(--fs-base);border-radius:6px;margin:4px 0;padding:9px 12px}.auth-error[hidden]{display:none}.auth-note{background:var(--warning-bg);color:var(--warning);font-size:var(--fs-base);border-radius:6px;margin-bottom:12px;padding:9px 12px}.auth-note.ok{background:var(--success-bg);color:var(--success)}.auth-text{font-size:var(--fs-md);color:var(--text);margin:0 0 14px;line-height:1.55}.auth-text.muted,.auth-hint{color:var(--text-muted);font-size:var(--fs-sm)}.auth-hint{margin:14px 0 0;line-height:1.5}.auth-links{font-size:var(--fs-base);color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:18px;display:flex}.auth-links a{color:var(--accent);cursor:pointer}.role-card{text-align:left;border:1.5px solid var(--line);background:var(--surface);font:inherit;color:var(--text);cursor:pointer;border-radius:10px;flex-direction:column;align-items:flex-start;gap:6px;padding:18px;display:flex}.role-card strong{font-size:var(--fs-xl);color:var(--text-strong)}.role-card span{font-size:var(--fs-sm);color:var(--text-muted);line-height:1.45}.sync-dot{background:var(--danger);width:9px;height:9px;box-shadow:0 0 0 2px var(--bg);border-radius:50%;position:absolute;top:4px;left:28px}.sync-dot[hidden]{display:none}.settings-card{background:var(--surface);border-radius:10px;max-width:860px;margin-bottom:16px;padding:20px 22px;box-shadow:0 1px 2px #0000000a}.settings-card h2{font-size:var(--fs-xl);margin:0 0 8px}.sync-rows{flex-direction:column;margin:10px 0;display:flex}.sync-row{border-top:1px solid var(--line);font-size:var(--fs-base);justify-content:space-between;align-items:center;gap:16px;padding:10px 0;display:flex}.sync-row .muted{font-size:var(--fs-sm)}.sync-row.bad,.bad{color:var(--danger)}.sync-state{white-space:nowrap;font-size:var(--fs-sm);font-weight:600}.sync-state.ok{color:var(--success)}.sync-state.bad{color:var(--danger);white-space:normal;text-align:right}.sync-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.history-list{flex-direction:column;max-height:420px;display:flex;overflow-y:auto}.history-row{border-top:1px solid var(--line);font-size:var(--fs-base);grid-template-columns:1fr auto auto;align-items:center;gap:8px;padding:8px 0;display:grid}.history-row .muted{font-size:var(--fs-sm)}.account-name-row input,.account-password input{font:inherit;font-size:var(--fs-base);border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:5px;min-width:0;padding:6px 9px}.account-password{flex-wrap:wrap;gap:6px;display:flex}.account-msg{font-size:var(--fs-sm);min-height:1.2em;margin-top:6px}.account-msg.ok{color:var(--success)}.account-msg.is-error{color:var(--danger)}.sync-conflict{z-index:1200;background:var(--surface);border-left:4px solid var(--warning);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;width:min(900px,100vw - 32px);padding:12px 16px;display:flex;position:fixed;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 12px 32px #00000038}.sync-conflict-text{font-size:var(--fs-base);flex:360px;line-height:1.45}.sync-conflict-text .muted{font-size:var(--fs-sm);display:block}.role-card.is-busy{opacity:.6;cursor:progress}.role-card:disabled{cursor:progress}.prefs-controls{flex-direction:column;gap:8px;display:flex}.profile-prefs{border-top:1px solid var(--line);margin-top:6px;padding:10px 12px 6px}.pref-row{font-size:var(--fs-base);color:var(--text);justify-content:space-between;align-items:center;gap:12px;display:flex}.pref-switch{cursor:pointer;background:#b9b9b9;border:none;border-radius:11px;flex-shrink:0;width:38px;height:22px;padding:0;transition:background .2s;position:relative}.pref-switch span{background:#fff;border-radius:50%;width:16px;height:16px;transition:left .2s;position:absolute;top:3px;left:3px}.pref-switch.on{background:var(--accent)}.pref-switch.on span{left:19px}.pref-seg{border:1px solid var(--line);border-radius:6px;display:inline-flex;overflow:hidden}.pref-seg button{background:var(--surface);color:var(--text);font-size:var(--fs-sm);cursor:pointer;border:none;padding:4px 9px}.pref-seg button+button{border-left:1px solid var(--line)}.pref-seg button.active{background:var(--accent);color:#fff}.settings-prefs{max-width:360px}.trainer-photo-row{align-items:center;gap:16px;margin-top:8px;display:flex}.trainer-photo{background:var(--accent) center/cover no-repeat;color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:84px;height:84px;font-size:28px;font-weight:700;display:flex}.trainer-photo-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.profile-avatar.has-photo{background-position:50%;background-size:cover}.kids-settings-link{cursor:pointer;color:var(--accent);font-size:var(--fs-sm)}.settings-card.profile-card{border:1px solid var(--line);border-radius:14px}.settings-note{text-align:left;max-width:none;margin:0 0 14px}.profile-rows .fc-row{margin-bottom:10px}.profile-input{border:1px solid var(--line);background:var(--surface);max-width:360px;color:var(--text);font:inherit;border-radius:8px;flex:260px;padding:8px 12px}.profile-input:focus{border-color:var(--accent);outline:none}.account-password{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.account-msg:empty{display:none}.account-msg{max-width:860px;margin:-6px 0 16px}.profile-card .account-msg{margin:0 0 10px}.acc-pass-box{flex:260px}.acc-pass-box>summary{list-style:none;display:inline-flex}.acc-pass-box>summary::-webkit-details-marker{display:none}.acc-pass-box[open]>summary{margin-bottom:10px}.acc-pass-note{font-size:var(--fs-xs);margin-top:6px}.acc-logout-row{border-top:1px solid var(--line);justify-content:flex-end;margin-top:4px;padding-top:12px;display:flex}.acc-links-flat .acc-link-row{padding:6px 0}.acc-links-box{border:1px solid var(--line);background:var(--surface);border-radius:12px}.acc-links-box>summary{cursor:pointer;align-items:center;gap:12px;padding:10px 14px;list-style:none;display:flex}.acc-links-box>summary::-webkit-details-marker{display:none}.acc-links-box[open]>summary{border-bottom:1px solid var(--line)}.acc-links-box.is-empty>summary{cursor:default}.acc-links-box.is-empty .acc-links-arrow{display:none}.acc-links-arrow{color:var(--text-muted);margin-left:auto;transition:transform .15s}.acc-links-box[open] .acc-links-arrow{transform:rotate(180deg)}.acc-links-avatars{display:flex}.acc-links-avatars .acc-avatar+.acc-avatar{margin-left:-8px}.acc-links-avatars .acc-avatar{box-shadow:0 0 0 2px var(--surface)}.acc-avatar{color:#fff;width:32px;height:32px;font-size:var(--fs-sm);border-radius:50%;flex:0 0 32px;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.acc-links-list{flex-direction:column;display:flex}.acc-link-row{border-top:1px solid var(--line);align-items:center;gap:12px;padding:9px 14px;display:flex}.acc-link-row:first-child{border-top:none}.acc-link-name{font-weight:600}.acc-link-mail{font-size:var(--fs-sm)}.sound-settings{flex-direction:column;gap:12px;display:flex}.sound-settings.is-off .sound-row:not(:first-child),.sound-settings.is-off .sound-volume{opacity:.45}.sound-row{align-items:center;gap:14px;display:flex}.sound-row-title{font-weight:600;font-size:var(--fs-md)}.sound-row-sub{font-size:var(--fs-sm)}.sound-volume{margin:4px 0 0}.sound-volume input[type=range]{accent-color:var(--accent);flex:0 240px}.legal-page{max-width:820px;margin:0 auto 40px}.legal-nav{flex-wrap:wrap;gap:6px;margin:4px 0 18px;display:flex}.legal-nav a{border:1px solid var(--line);color:var(--text);font-size:var(--fs-sm);border-radius:999px;padding:6px 12px;text-decoration:none}.legal-nav a.active{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent)}.legal-page h1{font-size:var(--fs-5xl);margin:0 0 6px}.legal-meta{font-size:var(--fs-sm);color:var(--text-muted);margin-bottom:18px}.legal-body{font-size:var(--fs-md);color:var(--text);line-height:1.65}.legal-body h2{font-size:var(--fs-xl);color:var(--text-strong);margin:22px 0 8px}.legal-body p{margin:0 0 10px}.legal-body a{color:var(--accent)}.legal-todo{color:#5a4500;background:#fff3b0;border-radius:3px;padding:0 4px;font-size:.95em}.legal-links{text-align:center;font-size:var(--fs-sm);color:var(--text-muted);margin:18px auto 8px}.legal-links a{color:var(--text-muted)}.legal-links a:hover{color:var(--accent)}.legal-settings-links{font-size:var(--fs-base);flex-direction:column;gap:6px;display:flex}.legal-settings-links a{color:var(--accent)}.legal-consent{text-align:left;flex-direction:column;gap:8px;margin:4px 0 2px;display:flex}.legal-check{font-size:var(--fs-sm);cursor:pointer;align-items:flex-start;gap:8px;line-height:1.4;display:flex}.legal-check input{flex:none;width:16px;height:16px;margin-top:2px}.legal-check a{color:var(--accent)}.legal-check[hidden],.legal-parent-name[hidden]{display:none}.legal-who{border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:6px;margin:0;padding:8px 12px 10px;display:flex}.legal-who legend{font-size:var(--fs-sm);color:var(--text-muted);padding:0 4px}.legal-who label{font-size:var(--fs-base);cursor:pointer;align-items:flex-start;gap:8px;display:flex}.legal-who label input{margin-top:3px}.legal-who small{color:var(--text-muted);font-size:var(--fs-xs);display:block}.legal-gate{z-index:2000;background:#0000008c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0;overflow:auto}.legal-gate-card{background:var(--surface);color:var(--text);border-radius:14px;width:100%;max-width:520px;padding:20px 22px;box-shadow:0 20px 50px #00000059}.legal-gate-card h2{font-size:var(--fs-2xl);margin:0 0 8px}.legal-gate-card p{font-size:var(--fs-base);margin:0 0 10px;line-height:1.5}.legal-gate-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.student-card-note{text-align:left;max-width:none;margin:0 0 10px}@media print{.sidebar,.topbar,.legal-nav,.legal-meta button{display:none!important}.legal-page{max-width:none}}.sidenav-item.is-locked{color:var(--text-muted);opacity:.55}.sidenav-item.is-locked .sidenav-icon{color:var(--text-muted)}.sidenav-item.is-locked:hover{opacity:.85;background:var(--surface-2)}.sidenav-lock{font-size:var(--fs-xs);opacity:.8;margin-left:auto}body.sidebar-collapsed .sidenav-lock{display:none}.guest-actions{gap:8px;display:flex}.guest-actions .btn{text-decoration:none}.guest-hero{border:1px solid var(--line);background:linear-gradient(135deg, #a731c538, #a731c50a 60%), var(--surface);border-radius:18px;margin:6px 0 26px;padding:28px 30px}.guest-hero h1{margin:0 0 10px;font-size:clamp(28px,4vw,42px);line-height:1.1}.guest-hero p{font-size:var(--fs-lg);color:var(--text-muted);max-width:680px;margin:0 0 18px;line-height:1.5}.guest-hero-actions{flex-wrap:wrap;gap:10px;display:flex}.guest-hero-actions .btn{font-size:var(--fs-lg);padding:12px 20px;text-decoration:none}.guest-hero-stars{font-size:var(--fs-base);margin-top:14px}.guest-hero-stars a:not(.btn),.guest-locked a:not(.btn),.zen-guest-cta a:not(.btn){color:var(--accent)}.guest-themes{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.guest-theme{border:1px solid var(--line);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-base);cursor:pointer;text-align:left;border-radius:10px;justify-content:space-between;gap:8px;padding:10px 12px;display:flex}.guest-theme:hover{border-color:var(--accent)}.guest-empty{margin:20px 0}.guest-why{border:1px solid var(--line);background:var(--surface);border-radius:16px;margin:30px 0 10px;padding:22px 24px}.guest-why h2{font-size:var(--fs-2xl);margin:0 0 14px}.guest-why-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.guest-why-card h3{font-size:var(--fs-lg);color:var(--accent);margin:0 0 6px}.guest-why-card ul{line-height:1.7;font-size:var(--fs-base);margin:0;padding-left:18px}.guest-why-actions{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.guest-why-actions .btn,.guest-cta-actions .btn{text-decoration:none}.guest-cta-overlay{z-index:2000;background:#0000008c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.guest-cta{background:var(--surface);border:1px solid var(--line);border-radius:18px;width:min(460px,100%);padding:26px 26px 22px;animation:.18s ease-out result-in;position:relative;box-shadow:0 20px 60px #0006}.guest-cta h2{font-size:var(--fs-3xl);margin:6px 0 8px}.guest-cta-close{color:var(--text-muted);font-size:var(--fs-xl);cursor:pointer;background:0 0;border:none;position:absolute;top:12px;right:12px}.guest-cta-badge{font-size:var(--fs-xs);color:var(--accent);background:#a731c529;border-radius:999px;padding:3px 10px;font-weight:600;display:inline-block}.guest-cta-text{color:var(--text-muted);font-size:var(--fs-md);margin:0 0 10px;line-height:1.5}.guest-cta-stars{margin:6px 0 10px;font-weight:600}.guest-cta-benefits{font-size:var(--fs-base);margin:6px 0 16px;padding-left:18px;line-height:1.7}.guest-cta-actions{flex-direction:column;gap:8px;display:flex}.guest-cta-actions .btn{justify-content:center;padding:11px 16px}.guest-locked{text-align:center;max-width:560px;margin:40px auto}.guest-locked h1{font-size:var(--fs-5xl);margin:10px 0}.guest-locked-icon{width:64px;height:64px;color:var(--accent);background:#a731c524;border-radius:18px;justify-content:center;align-items:center;margin:0 auto 10px;display:flex}.guest-locked-icon svg{width:34px;height:34px}.guest-locked .guest-cta-actions{max-width:320px;margin:18px auto 14px}.zen-guest-stars{justify-content:center;margin-top:12px;display:flex}.zen-guest-stars .kid-stars{transform-origin:50%;margin:-8px 0;transform:scale(.7)}.zen-guest-cta{font-size:var(--fs-sm);color:#f0ede6b3;margin-top:8px;line-height:1.45}@media (width<=720px){.guest-why-grid,.guest-themes{grid-template-columns:1fr}.guest-hero{padding:20px 18px}.guest-actions .btn.ghost,.zen-shell.student-solving .zen-result-head,.zen-shell.student-solving .zen-guest-stars{display:none}.zen-shell.student-solving .zen-guest-cta{color:var(--text-muted)}}
