:root{--bg:#f4f5f9;--card:#fff;--text:#3a3d7a;--text-strong:#23266e;--muted:#6e71a0;--muted-2:#a9abcb;--muted-3:#9295bc;--line:#e6e8f0;--line-2:#d5d7ea;--accent:#23266e;--accent-soft:#f1f2fa;--accent-2:#dadcee;--accent-3:#b9bbd6;--navy-2:#2e3283;--link:#3b3fa8;--green:#2e8b6a;--green-soft:#e3f3ec;--green-text:#1f6b50;--red:#c4574f;--red-soft:#fbe9e6;--red-text:#9b3f38;--orange:#3b3fa8;--orange-soft:#eeeff7;--blush:#e7b9b3;--pink:#f49ac1;--gray-btn:#dadcee;--note-bg:#dadcee;--note-text:#23266e;--radius:16px;--radius-lg:22px;--shadow:0 6px 24px #23266e12;--shadow-pop:0 16px 40px #14164629;--glass-rose:#e7b9b352;--glass-rose-solid:#f7e5e2;--glass-blur:blur(18px) saturate(160%);--glass-edge:inset 0 0 0 1px #fff9, inset 0 1px 0 #fffc;--glass-shadow:0 16px 40px #1416461f;--font:"Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:"Unbounded", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text-strong);font:15px/normal var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0}a{color:var(--link);text-decoration:none}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:0}input,textarea,select{font:inherit;color:inherit}img,input[type=file]{max-width:100%}h1,h2,h3,h4{color:var(--text-strong);text-wrap:balance;margin:0}p,li,.html{line-height:1.55}p{text-wrap:pretty}h1,h2,.display{font-family:var(--font-display);font-weight:700}.muted{color:var(--muted)}.row{align-items:center;gap:10px;display:flex}.spacer{flex:1}.error{color:var(--red);font-size:14px}.eyebrow{text-transform:uppercase;color:var(--link);font-size:12px;font-weight:700}.logo-lockup{flex-direction:column;align-self:flex-start;align-items:flex-start;gap:2px;width:fit-content;padding-right:14px;line-height:1;display:inline-flex}.logo-lockup .lb-wrap{display:block;position:relative}.logo-lockup .lb-wrap-2{align-self:flex-end;margin-right:-14px}.logo-lockup .lb{font-family:var(--font-display);align-items:center;display:flex}.logo-lockup .lb-text{white-space:nowrap;line-height:1}.logo-lockup .lb-1{background:var(--text-strong);color:#f4f5f9;font-weight:600}.logo-lockup .lb-2{font:500 16px/normal var(--font);background:var(--accent-2);color:var(--text-strong);display:block}.logo-lockup .lb-2 .lb-text{font-family:var(--font-display)}.logo-lockup .lb-dot{background:var(--blush);border-radius:50%;flex:none}.logo-lockup .lb-tail{display:block;position:absolute;bottom:0}.logo-lockup .lb-wrap:first-child .lb-tail{fill:var(--text-strong)}.logo-lockup .lb-wrap-2 .lb-tail{fill:var(--accent-2);transform:scaleX(-1)}.logo-lockup.dark .lb-1{color:var(--text-strong);background:#f4f5f9}.logo-lockup.dark .lb-wrap:first-child .lb-tail{fill:#f4f5f9}.logo-icon{border-radius:22%;flex:none;display:block}.btn{white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 20px;font-size:14px;font-weight:600;transition:filter .15s,background .15s,box-shadow .15s;display:inline-flex}.btn:hover{filter:brightness(1.06)}.btn:disabled{opacity:.45;cursor:default;filter:none}.btn:focus-visible,.icon-btn:focus-visible{outline-offset:2px;outline:3px solid #3b3fa859}.btn-primary{background:var(--accent);color:#f4f5f9}.btn-green{background:var(--green);color:#fff}.btn-gray{background:var(--accent-2);color:var(--text-strong)}.btn-gray:hover{filter:brightness(.97)}.btn-red{background:var(--red);color:#fff}.btn-soft-red{background:var(--red-soft);color:var(--red-text)}.btn-outline{color:var(--text-strong);box-shadow:inset 0 0 0 1.5px var(--text-strong);background:#fff}.btn-light{color:var(--text-strong);background:#f4f5f9}.btn-ghost{color:var(--muted)}.btn-ghost:hover{color:var(--text-strong);background:var(--accent-soft);filter:none}.btn-sm{min-height:36px;padding:0 14px;font-size:13px}.btn-block{width:100%}.icon-btn{width:40px;height:40px;color:var(--muted);border-radius:12px;flex:none;place-items:center;display:inline-grid}.icon-btn:hover{color:var(--text-strong);background:var(--accent-soft)}.icon-btn.active{color:var(--text-strong);background:var(--accent-2)}.icon-btn:disabled{opacity:.35;cursor:default;background:0 0}.icon-btn.accent{color:var(--link)}.pill{white-space:nowrap;background:var(--accent-soft);color:var(--text-strong);border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-size:13px;font-weight:600;display:inline-flex}.pill.navy{background:var(--accent);color:#f4f5f9}.pill.lav{background:var(--accent-2)}.pill.line{box-shadow:inset 0 0 0 1px var(--line);background:#fff}.pill.green{background:var(--green-soft);color:var(--green-text)}.pill.red{background:var(--red-soft);color:var(--red-text)}.pill.indigo{background:var(--orange-soft);color:var(--link)}.count{background:var(--pink);min-width:22px;height:22px;color:var(--accent);border-radius:11px;place-items:center;padding:0 6px;font-size:12px;font-weight:700;display:inline-grid}.badge-new{background:var(--link);color:#fff;vertical-align:2px;border-radius:999px;margin-left:6px;padding:2px 7px;font-size:10px;font-weight:700}.avatar{border-radius:50%;flex:none;place-items:center;width:32px;height:32px;font-size:14px;font-weight:700;display:inline-grid}.card,.card-line{background:var(--card);border-radius:var(--radius-lg);border:1px solid var(--line)}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field label{color:var(--text-strong);font-size:14px;font-weight:600}.input{border:1px solid var(--line-2);width:100%;min-height:48px;color:var(--text-strong);background:#fff;border-radius:14px;outline:none;padding:0 16px;font-weight:500}textarea.input{padding:12px 16px}select.input{padding-right:8px}.input:focus{border:1.5px solid var(--link);box-shadow:0 0 0 4px #3b3fa81f}.input::placeholder{color:var(--muted-2);font-weight:500}.input.bare{box-shadow:none;background:0 0;border:0;min-height:40px;padding-left:0}.input.ok-input{border-color:var(--green);background:var(--green-soft)}.input.bad-input{border-color:var(--red);background:var(--red-soft)}.search{position:relative}.search svg{color:var(--link);pointer-events:none;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.search .input{border-radius:999px;padding-left:44px}.table{border-collapse:collapse;width:100%}.table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);padding:10px 8px;font-size:13px;font-weight:600}.table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:12px 8px}.seg{background:#f4f5f9;border:1px solid #e6e3ee;border-radius:12px;flex:none;gap:2px;padding:3px;display:inline-flex}.seg button{color:var(--text-strong);white-space:nowrap;border-radius:10px;padding:7px 14px;font-size:13px;font-weight:700;transition:background .15s,color .15s}.seg button:hover:not(:disabled):not(.sel):not(.ok):not(.bad){background:#fff}.seg button.sel{background:var(--accent);color:#f4f5f9}.seg button.ok{background:var(--green);color:#fff}.seg button.bad{background:var(--red);color:#fff}.seg button.free{background:var(--accent-2);color:var(--text-strong);box-shadow:inset 0 0 0 1.5px var(--link)}.seg button:disabled{cursor:default}.tabs{background:var(--accent-soft);border-radius:999px;gap:4px;padding:4px;display:flex}.tabs button{min-height:40px;color:var(--muted);border-radius:999px;flex:1;font-size:14px;font-weight:600}.tabs button.sel{color:var(--text-strong);background:#fff;box-shadow:0 2px 8px #23266e14}.underline-tabs{border-bottom:1px solid var(--line);gap:24px;display:flex}.underline-tabs button,.underline-tabs a{color:var(--muted);border-bottom:3px solid #0000;margin-bottom:-1px;padding:12px 2px;font-weight:700;transition:color .15s}.underline-tabs button:hover,.underline-tabs a:hover{color:var(--text-strong)}.underline-tabs .sel,.underline-tabs .active{color:var(--text-strong);border-bottom-color:var(--text-strong)}.modal-back{z-index:50;background:#14164659;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{width:min(900px,100%);max-height:90vh;box-shadow:var(--shadow-pop);background:#fff;border-radius:24px;padding:24px;overflow-y:auto}.modal h2{margin-bottom:16px;font-size:22px}.sheet-grip,.sheet-handle{display:none}.progress{background:var(--accent-soft);border-radius:4px;height:8px;overflow:hidden}.progress>div{background:var(--link);border-radius:4px;height:100%}.progress.on-navy{background:#ffffff2e}.progress.on-navy>div{background:#f4f5f9}.cabinet{min-height:100%;display:flex}body:has(.cab-nav){--cab-offset:256px}.cab-nav{border-right:1px solid var(--line);background:#fff;flex-direction:column;flex:none;gap:26px;width:256px;height:100vh;padding:22px 16px;display:flex;position:sticky;top:0}.cab-logo{padding:0 6px}.cab-links{flex-direction:column;gap:4px;display:flex}.cab-links a,.cab-links button{min-height:46px;color:var(--text-strong);text-align:left;border-radius:14px;align-items:center;gap:12px;width:100%;padding:0 14px;font-size:15px;font-weight:600;display:flex}.cab-links svg{color:var(--link);flex:none}.cab-links a:hover,.cab-links button:hover{background:var(--accent-soft)}.cab-links a.active{background:var(--accent);color:#f4f5f9}.cab-links a.active svg{color:#f4f5f9}.cab-links .count{margin-left:auto}.cab-me{background:var(--bg);border-radius:16px;align-items:center;gap:10px;margin-top:auto;padding:12px;display:flex}.cab-me .avatar{width:36px;height:36px}.cab-me b{color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;font-size:14px;display:block;overflow:hidden}.cab-me span{color:var(--muted);font-size:12px}.cab-me .icon-btn{width:30px;height:30px;color:var(--muted);flex:none;margin:-6px -6px -6px 0}.cab-main{box-sizing:border-box;flex-direction:column;flex:1;gap:20px;width:100%;min-width:0;max-width:1440px;margin:0 auto;padding:32px clamp(16px,2.5vw,36px);display:flex}.cab-main:has(>.cab-split){padding-right:clamp(16px,1.95vw,28px)}.cab-main>.card{padding:28px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.page-title{font-family:var(--font-display);color:var(--text-strong);margin:0 0 20px;font-size:32px;font-weight:700;line-height:1.12}.page-head .page-title{margin:0}.page-date{color:var(--muted);font-size:14px}.page-title-sm{white-space:nowrap;text-overflow:ellipsis;font-size:28px;line-height:normal;overflow:hidden}.search-pill{border:1px solid var(--line-2);width:334px;min-height:48px;color:var(--link);background:#fff;border-radius:999px;flex:none;align-items:center;gap:10px;padding:0 16px;transition:border-color .15s,box-shadow .15s;display:flex}.search-pill:focus-within{border-color:var(--link);box-shadow:0 0 0 4px #3b3fa81f}.search-pill svg{flex:none}.search-pill input{min-width:0;color:var(--text-strong);background:0 0;border:0;outline:0;flex:1;padding:0;font-size:14px;font-weight:500}.search-pill input::placeholder{color:var(--muted-2);font-weight:400}.grid-cards{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:16px;display:grid}.class-card{border-radius:var(--radius-lg);border:1px solid var(--line);cursor:pointer;background:#fff;flex-direction:column;transition:border-color .15s,transform .15s;display:flex;overflow:hidden}.class-card:hover{border-color:var(--line-2)}.class-card .cover{color:#f4f5f9;background-position:50%;background-size:cover;flex:none;align-items:flex-end;height:132px;padding:14px 18px;display:flex;position:relative;overflow:hidden}.class-card .cover .label{font-family:var(--font-display);white-space:nowrap;text-overflow:ellipsis;font-size:34px;font-weight:700;line-height:1;overflow:hidden}.class-card .cover.c0,.class-card .cover.c6{background-color:var(--accent)}.class-card .cover.c1,.class-card .cover.c2,.class-card .cover.c7{background-color:var(--accent-2);color:var(--text-strong)}.class-card .cover.c3{color:var(--text-strong);border-bottom:1px solid var(--line);background-color:#f4f5f9}.class-card .cover.c4{background-color:var(--navy-2)}.class-card .cover.c5{color:var(--text-strong);background-color:#eceef4}.class-card .cover .tag{color:var(--text-strong);background:#fff;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:700;position:absolute;top:14px;left:14px}.class-card .body{flex-direction:column;gap:10px;padding:14px 16px 16px;display:flex}.class-card .who{align-items:center;gap:10px;min-width:0;display:flex}.class-card .who-t{flex-direction:column;align-items:flex-start;min-width:0;display:flex}.class-card .name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:15px;font-weight:700;overflow:hidden}.class-card .sub{color:var(--muted);font-size:13px}.class-card .meta{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:flex}.cc-progress{color:var(--muted);align-items:center;gap:10px;font-size:12px;font-weight:700;display:flex}.cc-progress .bar{background:#efedf6;border-radius:3px;flex:1;height:6px;overflow:hidden}.cc-progress .bar i{background:var(--link);border-radius:3px;height:100%;display:block}.notice{background:var(--accent);color:#f4f5f9;border-radius:18px;align-items:center;gap:12px;padding:14px 16px;display:flex}.notice .muted{color:var(--accent-2)}.notice-light{background:var(--accent-2);color:var(--text-strong);border-radius:18px;align-items:center;gap:12px;padding:14px 16px;display:flex}.cab-split{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:36px;display:grid}.side-card{flex-direction:column;gap:14px;padding:22px;display:flex}.side-card .list-row,.side-card .list-row:first-of-type{border-top:1px solid var(--line)}.side-card .list-row .t b{font-weight:600}.side-card .list-row .t>span{font-weight:500;display:block}.hw-check{align-items:center;gap:12px;display:flex}.hw-check .ic{background:var(--accent-2);width:44px;height:44px;color:var(--text-strong);border-radius:22px;flex:none;place-items:center;display:grid}.hw-check b{font-size:15px;display:block}.hw-check span span{color:var(--muted);font-size:13px;display:block}.quiet-card{background:var(--accent);color:#f4f5f9;border-radius:var(--radius-lg);text-align:left;flex-direction:column;align-items:flex-start;gap:10px;min-height:156px;padding:22px;transition:filter .15s;display:flex;position:relative;overflow:hidden}.quiet-card:hover{filter:brightness(1.08)}.quiet-card b{font-family:var(--font-display);max-width:170px;font-size:17px;font-weight:600}.quiet-card span{color:var(--accent-2);max-width:170px;font-size:13px;line-height:1.5}.quiet-card img{width:auto;height:140px;position:absolute;bottom:0;right:-4px}.side-col{flex-direction:column;gap:16px;display:flex}.list-row{border-top:1px solid var(--line);align-items:center;gap:12px;padding:12px 0;display:flex}.list-row:first-of-type{border-top:0}.list-row .t{flex:1;min-width:0}.list-row .t b{color:var(--text-strong);font-size:14px;display:block}.list-row .t span{color:var(--muted);font-size:12px}.card-title{font-family:var(--font-display);color:var(--text-strong);font-size:17px;font-weight:600}.card-pad{padding:22px}.login{min-height:100%;display:flex}.login-brand{background:var(--accent);color:#f4f5f9;flex-direction:column;flex:1.15;gap:28px;padding:56px 64px;display:flex;position:relative;overflow:hidden}.login-brand .rings{position:absolute;bottom:-200px;right:-180px}.login-hero{flex-direction:column;gap:18px;max-width:480px;margin-top:60px;display:flex;position:relative}.login-brand h1{color:#f4f5f9;font-size:48px;line-height:1.08}.login-brand p{color:var(--accent-2);margin:0;font-size:18px;line-height:1.7}.login-brand .chips{flex-wrap:wrap;gap:8px;display:flex}.login-brand .chips span{background:var(--navy-2);white-space:nowrap;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;line-height:normal}.login-brand .mascot{width:340px;height:auto;position:absolute;bottom:0;right:40px}.login-brand .spark{position:absolute}.login-brand .spark-1{bottom:300px;right:360px}.login-brand .spark-2{top:180px;right:120px}.swash{white-space:nowrap;display:inline-block;position:relative}.swash svg{width:104%;height:.36em;position:absolute;bottom:-.18em;left:-2%;overflow:visible}.login-form{flex:1;place-items:center;padding:40px;display:grid}.login-card{flex-direction:column;gap:18px;width:min(420px,100%);display:flex}.login-card h2{font-size:32px;line-height:normal}.login-card .btn{min-height:54px;font-size:16px;line-height:normal}.login-title{flex-direction:column;gap:8px;line-height:normal;display:flex}.login-title span{color:var(--muted);font-size:15px}.login-field{color:var(--text-strong);flex-direction:column;gap:6px;font-size:14px;font-weight:600;line-height:normal;display:flex}.login-field .input{min-height:54px;font-size:14px}.login-pass{position:relative}.login-pass .input{padding-right:100px}.login-pass button{color:var(--link);padding:0;font-size:13px;font-weight:600;line-height:normal;position:absolute;top:50%;right:16px;transform:translateY(-50%)}.login-forgot{color:var(--muted);font-size:14px;line-height:normal}.login-forgot a{font-weight:600;text-decoration:underline}.login-foot{color:var(--muted);align-items:center;gap:12px;margin-top:24px;font-size:13px;line-height:normal;display:flex}.room{flex-direction:column;height:100vh;display:flex;overflow:hidden}.room-top{border-bottom:1px solid var(--line);z-index:5;background:#fff;flex:none;align-items:center;gap:18px;height:68px;padding:0 max(22px,50% - 698px);display:flex;position:relative}.room-top .who-chip{color:var(--text-strong);border-radius:999px;align-items:center;gap:8px;font-size:14px;font-weight:600;transition:background .15s;display:inline-flex}.room-top .who-chip.sel{padding:4px 10px 4px 4px}.room-top .btn-sm{min-height:38px}.room-course{white-space:nowrap;font-size:14px;font-weight:600}.room-top .who-chip.pickable{cursor:pointer}.room-top .who-chip.sel{background:var(--accent-soft)}.lesson-chip{display:none}.room-tabs{align-self:stretch;align-items:flex-end;gap:26px;margin-left:24px;display:flex;position:relative}.room-tab{color:var(--muted);border-bottom:3px solid #0000;align-items:center;gap:6px;padding:12px 2px;font-size:15px;font-weight:700;transition:color .15s;display:flex}.room-tab:hover{color:var(--text-strong)}.room-right{align-items:center;gap:12px;margin-left:auto;display:flex}.room-right .pill{background:var(--bg);padding:6px 12px}.room-right .room-exit{width:30px;height:30px;color:var(--muted);margin:0 -5px}.room-tab.active{color:var(--text-strong);border-bottom-color:var(--text-strong)}.room-body{box-sizing:border-box;flex:1;gap:18px;width:100%;max-width:1440px;min-height:0;margin:0 auto;padding:18px 22px;display:flex}.left-bar{box-sizing:border-box;border-radius:22px;flex-direction:column;flex:none;align-self:flex-start;align-items:center;gap:6px;width:64px;padding:10px 8px;display:flex}.left-bar,.card.call-card,.call-pop{background:var(--glass-rose);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--glass-edge)}.call-pop{box-shadow:var(--glass-edge), var(--glass-shadow)}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){:root{--glass-rose:var(--glass-rose-solid)}}@media (prefers-reduced-transparency:reduce){:root{--glass-rose:var(--glass-rose-solid);--glass-blur:none}}.left-bar .icon-btn{color:#4b4e86;border-radius:14px;width:48px;height:48px;position:relative}.left-bar .icon-btn:hover{color:var(--text-strong);background:#ffffff80}.left-bar .icon-btn.active{color:var(--text-strong);background:#ffffffd9;box-shadow:0 2px 8px #c0786e33}.left-bar .points-btn{width:48px;color:var(--text-strong);cursor:pointer;background:#ffffff8c;border:0;border-radius:14px;flex-direction:column;align-items:center;gap:2px;margin-top:14px;padding:8px 0;font-size:13px;font-weight:700;display:flex}.left-bar .points-btn svg{color:#c0786e}.left-bar .points-btn:hover{background:#ffffffbf}.left-bar .points-btn.active{background:#ffffffd9;box-shadow:0 2px 8px #c0786e33}.left-bar .points-num{font:700 13px/normal var(--font)}.left-bar .icon-btn:focus-visible,.left-bar .points-btn:focus-visible{outline-offset:2px;outline:2px solid #3b3fa8}.tool-dot{background:var(--text-strong);color:#fff;border-radius:8px;place-items:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;display:grid;position:absolute;top:6px;right:6px}.center{border:1px solid var(--line);scroll-behavior:smooth;background:#fff;border-radius:26px;flex:1;min-width:0;overflow-y:auto}.center-inner{padding:32px 40px 80px}.center.with-follow .center-inner{padding-bottom:140px}.section-head{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;display:flex}.section-eyebrow{text-transform:uppercase;color:var(--link);margin-bottom:6px;font-size:13px;font-weight:700}.section-title{font-family:var(--font-display);margin:0 0 24px;font-size:30px;font-weight:700;line-height:normal}.section-head .section-title{margin:0}.section-foot{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding-top:20px;font-size:13px;display:flex}.right-panel{scrollbar-width:none;flex-direction:column;flex:none;gap:14px;width:300px;display:flex;overflow-y:auto}.right-panel::-webkit-scrollbar{display:none}.right-panel .card{border:1px solid var(--line);border-radius:22px;padding:18px}.card.call-card{--call-title:var(--text-strong);--call-sub:#4b4e86;--call-btn:#ffffffd9;--call-btn-hover:#fff;--call-btn-ink:var(--text-strong);--call-btn-off:#fff6;--call-btn-off-ink:var(--muted)}.call-card{color:var(--text-strong);border:0!important;padding:14px!important}.call-box{text-align:center;color:var(--call-sub,var(--accent-2));padding:14px 6px 6px;font-size:14px;font-weight:500}.call-box .phone{color:var(--call-sub,var(--accent-2));margin-bottom:6px}.call-box b{color:var(--call-title,#fff);margin-bottom:12px;font-size:15px;display:block}.call-video{background:var(--navy-2);aspect-ratio:4/3;border-radius:16px;position:relative;overflow:hidden}.call-name{color:#fff;background:#1416468c;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:600;position:absolute;bottom:8px;left:8px}.call-timer{color:#fff;font-variant-numeric:tabular-nums;background:#1416468c;border-radius:999px;align-items:center;gap:6px;padding:3px 9px;font-size:12px;font-weight:700;display:inline-flex;position:absolute;top:8px;left:8px}.call-timer:before{content:"";background:var(--red);border-radius:50%;width:6px;height:6px}.call-controls{--lk-control-bg:var(--call-btn,#ffffff24);--lk-control-hover-bg:var(--call-btn-hover,#ffffff38);--lk-control-active-bg:var(--call-btn,#ffffff24);--lk-control-active-hover-bg:var(--call-btn-hover,#ffffff38);--lk-control-fg:var(--call-btn-ink,#fff);justify-content:center;gap:8px;margin-top:10px;display:flex}.call-controls .lk-button,.call-controls .lk-disconnect-button,.call-controls .call-btn{background:var(--call-btn,#ffffff24);width:40px;min-width:40px;height:40px;color:var(--call-btn-ink,#fff);border:0;border-radius:50%;place-items:center;padding:0;display:grid}.call-controls .lk-button[data-lk-enabled=false]{background:var(--call-btn-off,#ffffff0f);color:var(--call-btn-off-ink,var(--accent-3))}.call-controls .lk-disconnect-button,.call-controls .call-btn.end{background:var(--red);color:#fff}.call-controls .lk-button svg,.call-controls .lk-disconnect-button svg,.call-controls .call-btn svg{width:18px;height:18px}.call-wait{color:var(--call-sub,var(--accent-2));text-align:center;font-size:13px}.sections-list{flex-direction:column;gap:10px;display:flex}.sections-list h3{font-family:var(--font-display);margin:0;font-size:16px;font-weight:600}.sec-items{flex-direction:column;gap:2px;display:flex}.sec-item{min-height:40px;color:var(--text);cursor:pointer;transition:background-color .15s var(--ease);border-radius:12px;align-items:center;gap:10px;padding:0 10px;font-size:14px;font-weight:600;display:flex}.sec-item .sec-name{flex:1;min-width:0;padding:8px 0}.sec-item:hover{background:var(--bg)}.sec-item.active,.sec-item.done{color:var(--text-strong)}.sec-item.active{background:var(--bg)}.sec-item .dot,.sec-item .check{box-sizing:border-box;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;display:grid}.sec-item .dot{border:2px solid var(--line-2)}.sec-item.active .dot{border-color:var(--text-strong)}.sec-item .check{background:var(--green);color:#fff}.sec-mark{cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;padding:0;display:grid}.sec-mark:hover .dot{border-color:var(--green)}button.unit-mark{cursor:pointer;color:inherit;background:0 0;padding:0}button.unit-mark:not(.done):hover{border-color:var(--accent)}button.unit-mark.done{background:var(--accent)}.panel-link{color:var(--link);cursor:pointer;text-align:left;align-items:center;gap:10px;width:100%;padding:0;font-size:14px;font-weight:600;display:flex}.panel-link svg{color:var(--link);flex:none}.panel-link:hover{color:var(--text-strong)}.panel-foot{border-top:1px solid var(--line);flex-direction:column;gap:8px;padding-top:10px;display:flex}.panel-foot .lesson-done{border-top:0;margin-top:4px;padding-top:0}.panel-link.active{color:var(--link)}.panel-sep{border-top:1px solid var(--line);margin:10px 0 6px}.hw-row{border:1.5px dashed var(--line-2);cursor:pointer;min-height:43px;color:var(--text-strong);border-radius:12px;align-items:center;gap:10px;padding:0 10px;font-size:14px;font-weight:600;transition:background .15s;display:flex}.hw-row svg{color:var(--link);flex:none}.hw-row:hover,.hw-row.active{background:var(--bg)}.hw-assign{background:var(--accent);color:#f4f5f9;border-radius:999px;flex:none;padding:5px 10px;font-size:12px;font-weight:700;transition:filter .15s}.hw-assign:hover:not(:disabled){filter:brightness(1.15)}.hw-assign:disabled{background:var(--accent-2);color:var(--text-strong);cursor:default}.teacher-only{color:var(--muted);font-size:11px;font-weight:500}.hw-banner{background:var(--accent);color:#f4f5f9;border-radius:18px;align-items:center;gap:12px;margin-bottom:20px;padding:12px 12px 12px 14px;display:flex}.hw-banner .ic{background:#ffffff1f;border-radius:12px;flex:none;place-items:center;width:36px;height:36px;display:grid}.hw-banner b{font-size:14px;display:block}.hw-banner span{color:var(--accent-2);font-size:12px}.hw-banner .icon-btn{color:var(--accent-2)}.hw-banner .icon-btn:hover{color:#fff;background:#ffffff1f}.preview-bar{background:var(--link);color:#fff;border-radius:16px;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;padding:12px 14px;display:flex}.preview-bar .pv-text{flex-direction:column;flex:260px;gap:2px;min-width:0;display:flex}.preview-bar b{font-size:14px}.preview-bar .pv-text span{color:var(--accent-2);font-size:12px}.preview-bar .btn{gap:6px;min-height:40px;padding:0 16px;font-size:13px}.preview-bar .pv-pin{color:var(--accent);background:#fff}.preview-bar .pv-back{background:var(--navy-2);color:#fff}.ex-tools{align-items:center;gap:4px;display:flex}.pin-ex{color:var(--link);font:700 13px var(--font);cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:6px;padding:6px 8px;display:inline-flex}.pin-ex:hover{background:var(--accent-soft)}.lesson-done{border-top:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:8px;margin-top:8px;padding-top:12px;display:flex}.lesson-done .btn{white-space:normal;gap:8px;max-width:100%;min-height:42px;padding:0 16px;font-size:13px}.lesson-done .muted{font-size:12px}.done-mark{color:var(--green);align-items:center;gap:6px;font-size:14px;font-weight:700;display:inline-flex}.link-btn{color:var(--link);font:600 13px var(--font);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.follow-dock{z-index:30;flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:fixed;bottom:28px;right:calc(max(0px,50vw - 720px) + 328px)}.follow-btn{background:var(--accent);color:#fff;gap:10px;min-height:52px;padding:0 20px 0 8px;font-size:15px;font-weight:700;box-shadow:0 16px 34px #23266e59}.follow-ic{background:var(--accent-2);width:38px;height:38px;color:var(--accent);border-radius:50%;place-items:center;display:grid}.follow-where{background:var(--accent-soft);color:#3a3d7a;box-shadow:var(--shadow);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600}.follow-note{z-index:40;background:var(--accent);color:#fff;border-radius:14px;padding:10px 14px;font-size:13px;font-weight:600;position:fixed;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 12px 26px #23266e40}.answering{background:var(--accent-soft);color:var(--text-strong);border-radius:12px;align-items:center;gap:8px;margin-top:12px;padding:8px 12px;font-size:12px;font-weight:600;display:flex}.answering:before{content:"";background:var(--green);border-radius:50%;width:7px;height:7px;animation:1.4s infinite blink}@keyframes blink{50%{opacity:.3}}.call-cover{z-index:100;background:radial-gradient(circle,#23266e14 0 300px,#15173f73 700px);place-items:center;padding:16px;display:grid;position:fixed;inset:0}.call-pop{width:min(360px,100%);color:var(--text-strong);text-align:center;border-radius:28px;flex-direction:column;align-items:center;gap:10px;padding:30px 26px 24px;display:flex}.call-pop-label{color:#4b4e86;text-transform:uppercase;font-size:12px;font-weight:700}.call-pop-avatar{background:var(--glass-rose-solid);border-radius:50%;width:108px;height:108px;margin:34px 0 30px;position:relative}.call-pop-avatar:before,.call-pop-avatar:after{content:"";border:2px solid #ffffffb3;border-radius:50%;position:absolute;inset:-18px}.call-pop-avatar:after{border-color:#fff6;inset:-38px}.call-pop-avatar img{object-fit:cover;object-position:50% 4%;border-radius:50%;width:108px;height:108px;position:relative}.call-pop-initial{width:108px;height:108px;font:700 44px/1 var(--font-display);color:var(--text-strong);border-radius:50%;place-items:center;display:grid;position:relative}.call-mini{left:calc(20px + var(--cab-offset,0px));z-index:90;background:var(--glass-rose);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--glass-edge), var(--glass-shadow);color:#4b4e86;border-radius:999px;align-items:center;gap:10px;padding:8px 8px 8px 16px;font-size:14px;font-weight:500;display:flex;position:fixed;bottom:20px}.call-mini b{color:var(--text-strong);font-weight:700}.call-mini-icon{color:var(--text-strong);flex:none}.call-mini .call-answer{background:var(--text-strong);color:#fff;gap:6px;min-height:40px}.call-pop h2{color:var(--text-strong);font-family:var(--font-display);margin:0;font-size:22px;font-weight:700}.call-pop-sub{color:#4b4e86;font-size:14px}.call-pop-actions{gap:10px;width:100%;margin-top:10px;display:flex}.call-pop-actions .btn{gap:8px;min-height:50px}.call-pop .call-answer{background:var(--text-strong);color:#fff;flex:1}.call-pop .call-later{color:var(--text-strong);background:#ffffffb3}.pin-badge{background:var(--accent-2);max-width:100%;color:var(--text-strong);font:600 12px/1.4 var(--font);white-space:nowrap;text-overflow:ellipsis;vertical-align:middle;border-radius:999px;flex:none;align-items:center;gap:5px;padding:4px 10px;display:inline-flex;overflow:hidden}.pin-badge svg{flex:none}.pin-badge.on-cover{background:#fff;max-width:calc(100% - 20px);padding:4px 9px;font-size:11px;font-weight:700;position:absolute;bottom:32px;left:10px;box-shadow:0 6px 14px #23266e33}.lesson-row.pinned{background:var(--accent-soft)}.cover-clip{position:relative}.lib-page{flex-direction:column;gap:20px;display:flex}.lib-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.lib-title{font-size:32px;line-height:normal}.lib-search{width:374px;max-width:100%}.chip-row{flex-wrap:wrap;gap:8px;display:flex}.chip-row button{color:var(--text-strong);white-space:nowrap;background:#fff;border:1px solid #e6e3ee;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;transition:background .15s,border-color .15s,color .15s}.chip-row button:hover:not(.on){background:var(--bg);border-color:var(--line-2)}.chip-row button.on{background:var(--accent);border-color:var(--accent);color:#f4f5f9}.book-item{text-align:left;color:var(--text-strong);flex-direction:column;gap:10px;padding:0;display:flex}.book-item>b{font-size:14px;line-height:1.3}.book-tile{aspect-ratio:3/4;background:var(--accent);color:#f4f5f9;border-radius:18px;flex-direction:column;justify-content:space-between;align-items:flex-start;padding:16px;transition:transform .2s;display:flex;position:relative;overflow:hidden}.book-item:hover .book-tile{transform:translateY(-3px)}.book-tile img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.book-tile .letter{font:700 44px/1 var(--font-display)}.book-tile .ring{border:1.5px solid #fbf6ec4d;border-radius:50%;width:93px;height:93px;position:absolute;bottom:-16px;right:-16px}.book-tile .count{opacity:.8;margin-top:auto;font-size:12px;font-weight:700;position:relative}.book-tile.t1{background:var(--navy-2)}.book-tile.t2{background:var(--accent-2);color:var(--text-strong)}.book-tile.t3{color:var(--text-strong);border:1px solid var(--line);background:#eceef4}.book-tile.t2 .ring,.book-tile.t3 .ring{border-color:#23266e26}.book-tile.has-img .count{opacity:1;color:#f4f5f9;background:#23266ecc;border-radius:999px;padding:4px 10px;font-size:11px}.book-tile .pin-badge.on-cover{bottom:46px}.pin-choose{background:var(--accent-soft);border-radius:16px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;padding:10px 12px;font-size:14px;display:flex}.pin-choose .pill{align-items:center;gap:4px;display:inline-flex}.access-modal{flex-direction:column;gap:12px;width:min(470px,100%);padding:22px;display:flex}.access-head{align-items:center;gap:12px;display:flex}.access-head>span:not(.avatar){flex-direction:column;flex:1;min-width:0;display:flex}.access-head b{font-family:var(--font-display);color:var(--text-strong);font-size:18px;font-weight:600}.access-head small{color:var(--muted);font-size:13px}.access-x{background:var(--accent-soft);border-radius:50%;width:36px;height:36px}.access-field{flex-direction:column;gap:6px;display:flex}.access-label{color:var(--muted);font-size:12px;font-weight:700}.access-box{border:1px solid var(--line-2);background:#fff;border-radius:12px;align-items:center;gap:8px;min-height:46px;padding:0 6px 0 14px;display:flex}.access-box>span{min-width:0;color:var(--text-strong);overflow-wrap:anywhere;flex:1;font-size:15px;font-weight:600}.access-box .mono,.saved-pass .mono{font-family:ui-monospace,SF Mono,Menlo,monospace}.access-copy{background:var(--accent-soft);width:36px;height:36px;color:var(--text-strong);cursor:pointer;border:0;border-radius:10px;flex:none;place-items:center;display:grid}.access-copy:hover{background:var(--accent-2)}.saved-pass{border:1px solid var(--line-2);background:#fff;border-radius:14px;align-items:center;gap:8px;min-height:44px;padding:0 8px 0 16px;display:flex}.saved-pass>span{min-width:0;color:var(--text-strong);overflow-wrap:anywhere;flex:1;font-weight:600}.saved-pass>.btn{flex:none}.saved-access{align-self:flex-start}.access-msg{background:var(--accent-soft);color:#3a3d7a;overflow-wrap:anywhere;white-space:pre-line;border-radius:14px;padding:12px 14px;font-size:13px;line-height:1.55}.access-actions{gap:8px;display:flex}.access-actions .btn{gap:8px;min-height:48px}.access-actions .btn-primary{flex:1}.btn-soft{background:var(--accent-soft);color:var(--text-strong)}.access-note{color:var(--muted);font-size:12px;line-height:1.55}.lightbox{z-index:120;-webkit-backdrop-filter:blur(6px);cursor:zoom-out;background:#15173f99;place-items:center;padding:56px 24px 24px;display:grid;position:fixed;inset:0}.lightbox img{object-fit:contain;cursor:default;background:#fff;border-radius:16px;max-width:min(1100px,100%);max-height:calc(100dvh - 96px);box-shadow:0 30px 70px #15173f73}.lightbox-close{top:calc(14px + env(safe-area-inset-top));width:44px;height:44px;color:var(--accent);cursor:pointer;box-shadow:var(--shadow-pop);background:#fff;border:0;border-radius:50%;place-items:center;display:grid;position:fixed;right:14px}.lightbox-close:hover{background:var(--accent-2)}.chat-img-btn{cursor:zoom-in;background:0 0;border:0;padding:0;display:block}.notice-toasts{z-index:110;flex-direction:column;gap:10px;width:min(360px,100vw - 32px);display:flex;position:fixed;top:16px;right:16px}.notice-toast{border:1px solid var(--line);background:#fff;border-radius:16px;align-items:flex-start;gap:4px;padding:6px;display:flex;box-shadow:0 16px 30px #23266e29}.notice-toast .nt-main{text-align:left;cursor:pointer;min-width:0;color:var(--text-strong);background:0 0;border:0;border-radius:12px;flex:1;align-items:center;gap:12px;padding:6px;display:flex}.notice-toast .nt-main:hover{background:var(--bg)}.notice-toast .nt-ic{background:var(--accent-2);width:36px;height:36px;color:var(--accent);border-radius:50%;flex:none;place-items:center;display:grid}.notice-toast .nt-text{flex-direction:column;min-width:0;line-height:1.3;display:flex}.notice-toast .nt-text b{font-size:14px}.notice-toast .nt-text span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.notice-toast .nt-close{width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;display:grid}.notice-toast .nt-close:hover{background:var(--bg);color:var(--accent)}.av-wrap{flex:none;display:inline-flex;position:relative}.online-dot{box-sizing:border-box;background:var(--green);border:2.5px solid #fff;border-radius:50%;width:13px;height:13px;position:absolute;bottom:-1px;right:-1px}.online-dot.away{background:#c9ccdf}.online-text{color:var(--muted);align-items:center;gap:5px;font-size:12px;font-weight:600;display:inline-flex}.online-text.on{color:var(--green)}.online-text.on:before{content:"";background:currentColor;border-radius:50%;width:8px;height:8px}.online-pill{color:#1f6b50;white-space:nowrap;background:#e3f3ec;border-radius:999px;align-self:flex-start;width:fit-content;margin-top:4px;padding:4px 10px;font-size:12px;font-weight:600;line-height:1.4;display:inline-flex}.online-away{color:var(--muted);margin-top:2px;font-size:12px;display:block}.list-row .t .online-pill{color:#1f6b50;font-size:12px}.room-top .who-name{align-items:center;gap:8px;display:flex}.ex{margin-bottom:24px;font-size:16px;position:relative}.ex-head{align-items:flex-start;gap:10px;margin-bottom:14px;padding-right:40px;display:flex}.ex-num{background:var(--accent-2);color:var(--text-strong);font-family:var(--font-display);border-radius:8px;flex:none;padding:4px 8px;font-size:13px;font-weight:600;line-height:normal}.ex-title{color:var(--text-strong);font-size:16px;font-weight:700;line-height:1.5}.ex-title p{margin:0}.ex-hidden{opacity:.55}.ex-hidden-tag{color:var(--link);background:var(--accent-soft);border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-size:12px;font-weight:600;display:flex;position:absolute;top:4px;right:44px}.html{overflow-wrap:anywhere}.html table{border-collapse:separate;border-spacing:6px;width:100%}.html td{background:var(--accent-soft);vertical-align:top;border-radius:10px;padding:10px 12px}.html p{margin:0 0 8px}.html mark,.html .hl{background:var(--accent-2);color:var(--text-strong);border-radius:4px;padding:0 3px}.note-block{background:var(--note-bg);color:var(--note-text);border-radius:16px;padding:14px 42px 14px 48px;font-size:14px;line-height:1.6;position:relative}.note-block .html{line-height:1.6}.note-block .i{color:var(--link);position:absolute;top:16px;left:16px}.note-block .eye{color:var(--link);position:absolute;top:16px;right:16px}.note-block .eye-btn{border-radius:10px;place-items:center;width:30px;height:30px;padding:0;transition:background .15s;display:grid;top:10px;right:10px}.note-block .eye-btn:hover{background:#fff9}.note-block.pupil{background:var(--orange-soft);color:var(--link)}.note-block [style*=color]{color:inherit!important}.topic-block{color:var(--text);font-size:16px;line-height:1.7}.topic-block h1,.topic-block h2,.topic-block h3{font-family:var(--font-display);color:var(--text-strong);margin:4px 0 10px;font-size:19px;font-weight:600;line-height:normal}.topic-block p{margin:0 0 10px}.topic-block ul,.topic-block ol{margin:0 0 10px;padding-left:20px}.topic-block b,.topic-block strong{color:var(--text-strong)}.ex-actions{gap:8px;margin-top:14px;display:flex}.ex-divider{border:0;border-top:1.5px solid var(--line);margin:4px 0}.ex-hint{color:var(--muted);align-items:center;gap:6px;margin:-6px 0 12px;font-size:13px;display:flex}.ex-hint svg{color:var(--link);flex:none}.ex-hint.phone-only{display:none}.bank-wrap{flex-direction:column;display:flex}.line-input{color:var(--text-strong);line-height:2.7}.line-input p{margin:0 0 14px}.line-input p:last-child{margin-bottom:0}.gap-shell{vertical-align:middle;align-items:center;display:inline-flex;position:relative}.gap-shell>.gap-input,.gap-shell>.dd-wrap,.gap-shell>.gap-drop{vertical-align:middle}.gap-input{border:1.5px solid var(--line-2);min-width:110px;height:34px;color:var(--text-strong);vertical-align:middle;background:#fff;border-radius:10px;outline:none;margin:0 2px;padding:0 12px;font-size:15px;font-weight:600;display:inline-block}.gap-input:focus{border-color:var(--link);box-shadow:0 0 0 4px #3b3fa81f}.gap-input::placeholder{color:var(--muted-2);opacity:1;font-weight:500}.gap-input:disabled{color:var(--text-strong);background:#fff}.gap-input.ok,.dd.ok{background:var(--green-soft);color:var(--green-text);border:1.5px solid var(--green)!important}.gap-input.bad,.dd.bad{background:var(--red-soft);color:var(--red-text);border:1.5px solid var(--red)!important}.gap-input.reveal,.gap-drop.reveal,.dd.reveal{color:var(--text-strong);background:#fff;border:2px dashed var(--green)!important}.gap-input.free,.dd.free,.gap-drop.free{background:var(--orange-soft);color:var(--text-strong);border:1.5px solid var(--link)!important}.gap-drop{white-space:nowrap;border:1.5px solid var(--line-2);vertical-align:middle;cursor:pointer;min-width:110px;height:34px;min-height:34px;color:var(--text-strong);background:#fff;border-radius:10px;justify-content:flex-start;align-items:center;margin:0 2px;padding:0 12px;font-size:15px;font-weight:600;line-height:normal;transition:border-color .15s,background .15s;display:inline-flex}.gap-drop.filled{border:1.5px solid var(--line-2);background:#fff}.gap-drop.target{border-style:dashed;border-color:var(--link);background:#f1f2fa}.gap-drop.target:hover{background:var(--orange-soft)}.gap-drop.ok{background:var(--green-soft);color:var(--green-text);border:1.5px solid var(--green)!important}.gap-drop.bad{background:var(--red-soft);color:var(--red-text);border:1.5px solid var(--red)!important}.gap-drop.hint{background:#fff;border:1.5px dashed var(--green)!important}.word-bank{background:var(--bg);border-radius:16px;flex-wrap:wrap;align-items:center;gap:8px;min-height:60px;margin-bottom:14px;padding:12px;display:flex}.word-bank.sticky{z-index:5;position:sticky;top:0;box-shadow:0 6px 16px #23266e14}.word-bank.seq-built{border:1px solid var(--line);cursor:default;background:#fff}.word-bank.ok{background:var(--green-soft);border:1.5px solid var(--green)!important}.word-bank.bad{background:var(--red-soft);border:1.5px solid var(--red)!important}.word-bank.reveal{background:#fff;border:1.5px dashed var(--green)!important}.chip{border:1.5px solid var(--line-2);cursor:pointer;-webkit-user-select:none;user-select:none;min-height:36px;color:var(--text-strong);background:#fff;border-radius:10px;align-items:center;padding:0 12px;font-size:14px;font-weight:600;transition:border-color .15s,background .15s;display:inline-flex}.chip:not(.used):not(.selected):not(.ok):not(.bad):hover{border-color:var(--link)}.chip.selected{background:var(--accent);border-color:var(--accent);color:#f4f5f9}.chip.used{cursor:default;color:var(--accent-3);border:1.5px dashed var(--line-2);background:#f4f5f9}.chip.ok{background:var(--green-soft);color:var(--green-text);border:1.5px solid var(--green)!important}.chip.bad{background:var(--red-soft);color:var(--red-text);border:1.5px solid var(--red)!important}.letters{flex-wrap:wrap;gap:6px;margin:6px 0;display:flex}.letter{border:1px solid var(--line-2);cursor:pointer;text-transform:lowercase;width:40px;height:40px;color:var(--text-strong);background:#fff;border-radius:10px;place-items:center;font-size:16px;font-weight:700;display:grid}.letter.used{opacity:.3;cursor:default;background:var(--accent-soft)}.word-bank .letter{background:var(--accent-2);border-color:var(--accent-2)}.check-row{flex-wrap:wrap;align-items:center;gap:12px;margin-top:14px;display:flex}.check-row .btn{min-height:40px;padding:0 18px;font-size:13px}.tries{color:var(--muted);font-size:13px}.tries.ok{color:var(--green-text);font-weight:700}.teacher-answer{color:var(--green-text);margin-left:4px;font-size:13px}.answer-bubble{background:var(--green-soft);color:var(--green-text);white-space:nowrap;pointer-events:none;opacity:0;z-index:6;border-radius:10px;padding:5px 12px;font-size:14px;font-weight:700;transition:opacity .12s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 4px 14px #23266e1a}.answer-bubble:after{content:"";border:6px solid #0000;border-top-color:var(--green-soft);position:absolute;top:100%;left:50%;transform:translate(-50%)}.gap-shell:hover>.answer-bubble{opacity:1}.gap-history{display:inline-flex;position:relative}.gap-dots{vertical-align:middle;border-radius:4px;flex-direction:column;gap:2px;margin:0 4px 0 0;padding:2px 1px;display:inline-flex}.gap-dots:hover{background:var(--accent-soft)}.gap-dots i{background:var(--line-2);border-radius:50%;width:4px;height:4px;display:block}.gap-dots i.ok{background:var(--green)}.gap-dots i.bad{background:var(--red)}.history-pop{z-index:20;width:230px;box-shadow:var(--shadow-pop);background:#fff;border-radius:14px;flex-direction:column;gap:6px;padding:12px 14px;font-size:13px;line-height:1.4;display:flex;position:absolute;top:calc(100% + 6px);left:-10px}.history-pop b{color:var(--text-strong)}.history-row{border-left:3px solid var(--line);color:var(--text-strong);justify-content:space-between;gap:8px;padding-left:8px;font-weight:600;display:flex}.history-row.ok{border-left-color:var(--green)}.history-row.bad{border-left-color:var(--red)}.dots-key{z-index:20;box-shadow:var(--shadow-pop);white-space:nowrap;background:#fff;border-radius:12px;padding:10px 12px;font-size:14px;position:absolute;top:calc(100% + 6px);left:0}.dd-wrap{vertical-align:middle;max-width:100%;display:inline-block;position:relative}.dd{border:1.5px solid var(--line-2);min-width:110px;height:34px;color:var(--link);text-align:left;background:#fff;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;max-width:100%;height:auto;min-height:34px;margin:0 2px;padding:0 10px 0 12px;font-size:15px;font-weight:600;display:inline-flex}.dd .dd-val{color:var(--text-strong);white-space:normal;overflow-wrap:anywhere;min-width:0;padding:4px 0;line-height:1.25}.dd.open{border-color:var(--link);box-shadow:0 0 0 4px #3b3fa81f}.dd.ok .dd-val{color:var(--green-text)}.dd.bad .dd-val{color:var(--red-text)}.dd:disabled{cursor:default}.dd-list{z-index:25;background:#fff;border-radius:12px;flex-direction:column;min-width:100%;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 14px 30px #23266e29}.dd-opt{text-align:left;white-space:nowrap;color:var(--text-strong);border-radius:8px;padding:6px 10px;font-size:14px;font-weight:600;line-height:1.4}.dd-opt:hover,.dd-opt.sel{background:var(--accent-2)}.sheet-q{display:none}.test-box{border:1px solid var(--line);background:#fff;border-radius:20px;padding:2px 22px}.test-q{padding:18px 0}.test-q+.test-q{border-top:1px solid var(--line)}.test-q .q{color:var(--text-strong);margin-bottom:10px;font-size:16px;font-weight:700;line-height:1.45}.test-options{flex-direction:column;gap:2px;display:flex}.test-box .option{background:0 0;border:0;border-radius:12px;min-height:44px;margin:0 -12px;padding:8px 12px;font-size:15px;font-weight:500;line-height:1.4}.test-box .option:not(.locked):hover{background:#f4f5f9}.test-box .option .radio{margin-top:0}.test-box .option.sel{background:var(--orange-soft);color:var(--text-strong);border:0}.test-box .option.sel .radio{border-color:var(--text-strong)}.test-box .option.ok,.test-box .option.ok:hover{background:var(--green-soft);color:var(--green-text);border:0}.test-box .option.bad,.test-box .option.bad:hover{background:var(--red-soft);color:var(--red-text);border:0}.test-box .option.free,.test-box .option.free:hover{background:var(--orange-soft);box-shadow:inset 0 0 0 1.5px var(--link);border:0}.test-box .option.key:not(.ok):not(.bad){box-shadow:none}.test-box .option.key:not(.ok):not(.bad) .radio{background:var(--green-soft);border-color:#9fd3be}.option{background:var(--bg);cursor:pointer;min-height:46px;color:var(--text-strong);border:1.5px solid #e6e3ee;border-radius:14px;align-items:center;gap:12px;padding:6px 14px;font-size:15px;font-weight:600;transition:border-color .15s,background .15s;display:flex}.option:not(.locked):hover{border-color:var(--link)}.option.sel{border:1.5px solid var(--text-strong);background:#fff}.option.ok{border:1.5px solid var(--green);background:var(--green-soft);color:var(--green-text)}.option.bad{border:1.5px solid var(--red);background:var(--red-soft);color:var(--red-text)}.option.free{border:1.5px solid var(--link);background:var(--orange-soft)}.option.locked{cursor:default}.option .radio{border:2px solid var(--accent-3);background:#fff;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;display:grid}.option .radio.box{border-radius:6px}.option .radio.on{border-color:currentColor}.option .radio.on:after{content:"";border-radius:inherit;background:currentColor;width:10px;height:10px}.option.key:not(.ok):not(.bad){box-shadow:inset 3px 0 0 var(--green)}.tf-row{border-top:1px solid var(--line);align-items:center;gap:12px;padding:10px 0;display:flex}.tf-row>.muted{flex:none;width:16px;font-size:13px}.tf-row .q{flex:1;font-size:15px;line-height:1.5}.mt{flex-direction:column;gap:8px;display:flex}.mt-row{grid-template-columns:1fr 30px 1.4fr;align-items:stretch;display:grid}.mt-cell{text-align:center;min-height:48px;color:var(--text-strong);background:#fff;border:1.5px solid #e6e3ee;border-radius:14px;justify-content:center;align-items:center;padding:6px 12px;font-size:14px;font-weight:600;transition:border-color .15s,background .15s,opacity .15s,box-shadow .15s;display:flex}.mt-cell.right{text-align:left;justify-content:flex-start;font-weight:400}.mt-cell.pick{cursor:pointer}.mt-cell.pick:hover{border-color:var(--link)}.mt-cell.target:hover{background:var(--accent-soft)}.mt-cell.selected{border-color:var(--text-strong);background:#fff;box-shadow:0 10px 20px #23266e1f}.mt-cell.dim{opacity:.55}.mt-cell.bad{background:var(--red-soft);color:var(--red-text);border-color:var(--red)!important}.mt-cell.ok{border-color:var(--green);background:var(--green-soft);color:var(--green-text)}.mt-cell.reveal{border:1.5px dashed var(--green);background:#fff}.mt-dots{justify-content:center;align-items:center;display:flex;position:relative}.mt-link{background:var(--green);height:2px;position:absolute;top:50%;left:-2px;right:-2px}.mt-cell.free{border:1.5px solid var(--link);background:var(--orange-soft);cursor:pointer}.mt-link.free{background:var(--link)}.chip.free{border:1.5px solid var(--link);background:var(--orange-soft);cursor:pointer}.mt-link.reveal{background:repeating-linear-gradient(90deg, var(--green) 0 4px, transparent 4px 7px)}.mt-link+.gap-history{z-index:1;background:#fff;border-radius:6px;position:relative}.order-list{flex-direction:column;gap:8px;display:flex}.order-item{border:1px solid var(--line-2);background:#fff;border-radius:14px;align-items:center;gap:12px;min-height:52px;padding:8px 8px 8px 14px;display:flex}.order-item .n{font-family:var(--font-display);color:var(--text-strong);flex:none;width:18px;font-weight:600}.order-item .order-text{flex:1;min-width:0}.order-item .order-arrows{flex:none;align-items:center;gap:4px;margin-left:auto;display:flex}.order-item .order-arrows .icon-btn{background:var(--accent-soft);width:32px;height:32px;color:var(--text-strong);border-radius:50%}.order-item .order-arrows .icon-btn:disabled{opacity:.3}.order-item .grip{color:var(--muted-2);touch-action:none;cursor:grab;padding:6px 2px;display:flex}.order-item.ok{background:var(--green-soft);color:var(--green-text);border:1.5px solid var(--green)!important}.order-item.bad{background:var(--red-soft);color:var(--red-text);border:1.5px solid var(--red)!important}.order-item .key-n{color:var(--green-text);background:var(--green-soft);border-radius:999px;flex:none;padding:2px 8px;font-size:11px;font-weight:700}.order-item .place-n{color:var(--red-text);background:#fff;border-radius:999px;flex:none;padding:2px 8px;font-size:11px;font-weight:700}.order-item.draggable{cursor:grab}.order-list.dragging-now,.order-list.dragging-now *{-webkit-user-select:none;user-select:none}.order-item.dragging{cursor:grabbing;border-color:var(--text-strong);z-index:2;position:relative;box-shadow:0 8px 22px #23266e29}.group-cols{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.group-col{background:#fff;border:1.5px solid #e6e3ee;border-radius:16px;min-height:110px;padding:12px}.group-col h4{color:var(--text-strong);text-align:center;margin:0 0 8px;font-size:14px;font-weight:700}.group-col.target{border:1.5px dashed var(--link);background:var(--orange-soft);cursor:pointer}.img-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;display:grid}.img-grid figure{min-width:0;margin:0}.img-grid img{border-radius:14px;width:100%;display:block}.img-grid figcaption{text-align:center;margin-top:6px;font-size:14px}.images-full img{border-radius:16px;max-height:640px;margin:0 auto 12px;display:block}.label-grid{grid-template-columns:repeat(auto-fill,minmax(150px,180px));gap:16px}.label-grid .gap-drop{white-space:normal;text-align:center;overflow-wrap:anywhere;justify-content:center;height:auto;min-height:34px;padding:6px 10px;line-height:1.25}.label-grid figure>img,.label-grid .paint-box img{object-fit:contain;background:var(--accent-soft);width:100%;height:auto;max-height:200px}.media-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.media-grid .paint{width:100%;display:block}.media-grid .paint-box img{object-fit:contain;width:100%;height:auto;max-height:560px}.img-select{align-items:center;gap:2px;width:100%;margin-top:8px;display:flex!important}.img-select .dd-wrap{flex:1;min-width:0}.img-select .dd{width:100%;min-width:0!important}.gallery-swipe{display:none}.slides{outline:none;flex-direction:column;gap:10px;display:flex}.slides-stage{background:var(--bg);border-radius:16px;justify-content:center;align-items:center;min-height:320px;padding:8px;display:flex;position:relative}.slides-stage .paint{width:fit-content;margin:0 auto;display:block}.slides-stage .paint-box img{max-height:560px}.slides-arrow{width:44px;height:44px;color:var(--text-strong);z-index:3;background:#fff;border-radius:50%;place-items:center;transition:background .15s,color .15s;display:grid;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 6px 18px #23266e29}.slides-arrow:hover{background:var(--accent);color:#f4f5f9}.slides-arrow.prev{left:12px}.gallery-arrows{justify-content:center;gap:16px;margin-top:10px;display:flex}.gallery-arrows .slides-arrow{position:static;transform:none}.gallery-arrows .slides-arrow:disabled{opacity:.35;cursor:default;color:var(--text-strong);background:#fff}.slides-arrow.next{right:12px}.slides-count{color:#f4f5f9;z-index:3;font-variant-numeric:tabular-nums;background:#23266ecc;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;position:absolute;top:12px;right:12px}.slides-caption{text-align:center;font-size:14px}.slides-dots{justify-content:center;gap:6px;display:flex}.slides-dots button{background:var(--line-2);border-radius:4px;width:8px;height:8px;padding:0;transition:width .2s,background .2s}.slides-dots button.on{background:var(--text-strong);width:20px}.ev-audio{background:var(--bg);border-radius:18px;margin-bottom:10px;padding:14px 16px}.ev-audio-top{align-items:center;gap:12px;min-height:28px;display:flex}.ev-audio-title{color:var(--muted);font-size:12px;font-weight:700}.ev-audio-time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px;font-weight:700}.ev-audio-shared{color:var(--text-strong);background:var(--accent-2);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.ev-audio-bar{align-items:center;gap:12px;margin-top:6px;display:flex}.ev-play{color:#f4f5f9;background:var(--accent);border-radius:50%;flex:none;place-items:center;width:46px;height:46px;transition:filter .15s;display:grid}.ev-play:hover{filter:brightness(1.15)}.ev-icon{color:var(--muted);border-radius:999px;place-items:center;min-width:36px;height:36px;font-size:12px;font-weight:700;display:grid}.ev-icon:hover,.ev-icon.on{color:var(--text-strong);background:#fff}.ev-icon.script{color:var(--text-strong);background:#fff;border:1px solid #e6e3ee;height:auto;padding:6px 12px;font-size:13px;font-weight:600}.ev-icon.script.on{background:var(--accent);border-color:var(--accent);color:#f4f5f9}.ev-progress{cursor:pointer;background:#e6e3ee;border-radius:3px;flex:1;height:6px;overflow:hidden}.ev-progress>div{background:var(--link);border-radius:3px;height:100%}.ev-audio-menu{z-index:20;width:240px;box-shadow:var(--shadow-pop);background:#fff;border-radius:16px;flex-direction:column;gap:8px;padding:14px 16px;display:flex;position:absolute;top:calc(100% + 8px);right:0}.ev-audio-menu label{color:var(--text-strong);font-size:14px;font-weight:600}.ev-audio-menu .seg button{justify-content:center;align-items:center;gap:4px;padding:0 8px;font-size:12px;display:inline-flex}.script{background:#fff;border-radius:12px;margin-top:10px;padding:12px;font-size:15px}.video-wrap{background:var(--accent);border-radius:18px;margin-bottom:10px;padding-top:56.25%;position:relative;overflow:hidden}.video-wrap iframe,.video-wrap video{border:0;width:100%;height:100%;position:absolute;inset:0}.embed-box{position:relative}.embed-full{z-index:2;position:absolute;top:10px;right:10px}.embed-fullscreen{z-index:90;background:var(--accent);flex-direction:column;display:flex;position:fixed;inset:0}.embed-fullscreen .bar{color:#f4f5f9;justify-content:space-between;align-items:center;padding:10px 14px;font-weight:600;display:flex}.embed-fullscreen iframe{background:#fff;border:0;flex:1;width:100%}.essay{border:1.5px solid var(--line-2);resize:vertical;width:100%;min-height:110px;color:var(--text-strong);border-radius:16px;outline:none;padding:14px 16px;font-size:15px;line-height:1.6}.essay:focus{border:1.5px solid var(--link);box-shadow:0 0 0 4px #3b3fa81a}.essay-meta{color:var(--muted);justify-content:space-between;gap:10px;margin-top:6px;font-size:13px;display:flex}.essay-meta .saved{color:var(--green-text)}.teacher-comment{background:var(--accent-2);color:var(--text-strong);border-radius:14px;margin-top:10px;padding:12px 14px;font-size:14px}.rec-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.rec-time{font-family:var(--font-display);color:var(--red);font-variant-numeric:tabular-nums;font-weight:600}.rec-limit{color:var(--muted);font-size:13px}.vocab-row{border-top:1px solid var(--line);align-items:center;gap:14px;padding:10px 0;display:flex}.vocab-row .say{background:var(--accent-2);width:38px;height:38px;color:var(--text-strong);border-radius:50%;flex:none;place-items:center;display:grid}.vocab-row .say:hover{background:var(--accent);color:#fff}.vocab-row .w{color:var(--text-strong);flex:none;width:150px;font-size:15px;font-weight:700}.vocab-row .tr{color:var(--text);flex:1;font-size:14px}.vocab-row .in-dict{color:var(--green-text);align-items:center;gap:4px;font-size:12px;font-weight:700;display:inline-flex}.vocab-row .add{width:34px;height:34px;box-shadow:inset 0 0 0 1.5px var(--text-strong);color:var(--text-strong);border-radius:50%;place-items:center;display:grid}.vocab-row b,.vocab-row span{color:var(--text-strong)}.paint{max-width:100%;display:inline-block;position:relative}.images-full .paint{width:fit-content;margin:0 auto 12px;display:block}.paint-box{line-height:0;position:relative}.paint-box img{-webkit-user-select:none;user-select:none;border-radius:16px;max-width:100%;max-height:640px;display:block;margin:0!important}.img-grid .paint-box img{width:100%;max-height:none}.paint-box img.banner{width:855px}.paint.big .paint-box img{max-width:90vw;max-height:82vh}.paint-svg{pointer-events:none;position:absolute;inset:0;overflow:visible}.paint-tools{opacity:0;gap:6px;transition:opacity .15s;display:flex;position:absolute;bottom:10px;left:10px}.paint:hover .paint-tools,.paint.active .paint-tools,.paint.big .paint-tools{opacity:1}.paint-pen{background:#fff;border-radius:12px;display:flex;position:relative;box-shadow:0 4px 14px #23266e29}.paint-btn{width:40px;height:40px;color:var(--text-strong);background:#fff;border-radius:12px;place-items:center;display:grid;box-shadow:0 4px 14px #23266e29}.paint-pen .paint-btn{box-shadow:none}.paint-btn.caret{width:22px}.paint-btn.on{background:var(--accent);color:#f4f5f9}.paint-full{opacity:0;position:absolute;bottom:10px;right:10px}.paint:hover .paint-full{opacity:1}.paint-menu{width:260px;box-shadow:var(--shadow-pop);z-index:20;background:#fff;border-radius:16px;flex-direction:column;padding:10px;display:flex;position:absolute;bottom:calc(100% + 8px);left:0}.paint-menu.down{top:calc(100% + 8px);bottom:auto}.paint-menu .menu-item{font-size:15px}.paint-menu .menu-item.active{color:var(--link);background:var(--accent-soft)}.paint-menu .swatch,.board-tools .swatch{width:22px;height:22px;box-shadow:0 0 0 1px var(--line);border:2px solid #fff;border-radius:50%;flex:none}.paint-menu .swatch.sel,.board-tools .swatch.sel{box-shadow:0 0 0 2px var(--text-strong)}.paint-modal{background:#fff;border-radius:20px;max-width:95vw;max-height:95vh;padding:16px;position:relative}.paint-close{z-index:2;background:#fff;position:absolute;top:8px;right:8px}.paint-box.drawing{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 24 24' fill='white' stroke='%2323266E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21.17 6.81a1 1 0 0 0-3.99-3.99L3.84 16.17a2 2 0 0 0-.5.83l-1.32 4.35a.5.5 0 0 0 .62.62l4.35-1.32a2 2 0 0 0 .83-.5z'/%3E%3Cpath d='m15 5 4 4'/%3E%3C/svg%3E") 2 24,crosshair}.paint-box.erasing{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 24 24' fill='white' stroke='%23C4574F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 21-4.3-4.3c-1-1-1-2.5 0-3.4l9.6-9.6c1-1 2.5-1 3.4 0l5.6 5.6c1 1 1 2.5 0 3.4L13 21'/%3E%3Cpath d='M22 21H7'/%3E%3Cpath d='m5 11 9 9'/%3E%3C/svg%3E") 6 20,cell}@media (pointer:coarse){.paint-tools,.paint-full{opacity:1}}.tool-window{width:380px;max-height:calc(100vh - 100px);box-shadow:var(--shadow-pop);z-index:40;background:#fff;border-radius:22px;flex-direction:column;display:flex;position:fixed;top:80px;left:88px;overflow:hidden}.tool-window .tw-head{background:var(--accent);color:#f4f5f9;font-family:var(--font-display);cursor:move;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;padding:12px 12px 12px 18px;font-size:16px;font-weight:600;display:flex}.tool-window .tw-head .icon-btn{color:#f4f5f9;background:#ffffff1f;border-radius:50%;width:34px;height:34px}.tool-window .tw-body{flex:1;padding:14px 16px;overflow-y:auto}.chat-msgs{background:#f4f5f9;border-radius:16px;flex-direction:column;gap:10px;padding:12px;display:flex}.chat-day{color:var(--muted);background:var(--accent-soft);border-radius:999px;align-self:center;padding:3px 10px;font-size:11px;font-weight:700}.chat-msg{background:var(--accent);color:#f4f5f9;border-radius:16px 16px 16px 4px;align-self:flex-start;max-width:82%;padding:10px 12px;font-size:14px;line-height:1.45}.chat-msg.mine{background:var(--accent-2);color:var(--text-strong);border-radius:16px 16px 4px;align-self:flex-end}.chat-msg .who{opacity:.7;margin-bottom:2px;font-size:11px}.chat-msg .when{opacity:.7;text-align:right;margin-top:3px;font-size:11px}.chat-voice{align-items:center;gap:10px;min-width:180px;display:flex}.chat-voice .play{width:30px;height:30px;color:var(--accent);background:#f4f5f9;border-radius:50%;flex:none;place-items:center;display:grid}.chat-msg.mine .chat-voice .play{background:var(--accent);color:#f4f5f9}.chat-voice .wave{flex:1;align-items:center;gap:2px;height:22px;display:flex}.chat-voice .wave i{opacity:.55;background:currentColor;border-radius:2px;width:3px}.chat-voice .wave i.on{opacity:1}.chat-voice .len{font-variant-numeric:tabular-nums;font-size:12px;font-weight:700}.chat-input{border-top:1px solid var(--line);align-items:center;gap:8px;padding:10px 12px;display:flex}.chat-input .input{border-radius:999px;min-height:44px}.chat-input .send{background:var(--accent);color:#f4f5f9;border-radius:50%;flex:none;place-items:center;width:40px;height:40px;display:grid}.chat-input .send.rec{background:var(--red)}.chat-rec{color:var(--red);font-variant-numeric:tabular-nums;flex:1;align-items:center;gap:10px;font-weight:700;display:flex}.chat-html img{cursor:zoom-in;border-radius:10px;max-width:100%;display:block}.chat-html table{font-size:12px}.chat-html{max-width:100%;font-size:13px;overflow-x:auto}.chat-msg:has(.chat-html){max-width:95%;color:var(--text);border:1px solid var(--line);background:#fff}.chat-msg.mine:has(.chat-html){max-width:95%;color:var(--text);border:1px solid var(--line);background:#fff}.chat-msg{position:relative}.chat-actions{position:absolute;top:4px;left:-30px}.chat-more{width:26px;height:26px;color:var(--muted);opacity:0;border-radius:50%;place-items:center;padding:0;transition:opacity .15s,background .15s;display:grid}.chat-msg:hover .chat-more,.chat-more:focus-visible{opacity:1}.chat-actions:has(.chat-menu) .chat-more{opacity:1}.chat-more:hover{background:var(--accent-soft);color:var(--text-strong)}@media (pointer:coarse){.chat-more{opacity:1}}.chat-menu{z-index:5;min-width:140px;box-shadow:var(--shadow-pop);background:#fff;border-radius:12px;flex-direction:column;padding:4px;display:flex;position:absolute;top:28px;right:0}.chat-menu button{text-align:left;color:var(--text-strong);border-radius:8px;padding:8px 10px;font-size:14px;font-weight:600}.chat-menu button:hover{background:var(--accent-soft)}.chat-menu button.danger{color:var(--red)}.chat-msg.deleted{background:var(--bg);color:var(--muted);border:1px dashed var(--line-2)}.chat-gone{font-style:italic}.chat-history{opacity:.9;border-top:1px solid #dadcee66;flex-direction:column;gap:3px;margin-top:6px;padding-top:6px;font-size:13px;display:flex}.chat-msg.deleted .chat-history{border-top-color:var(--line);color:var(--text)}.chat-history b{margin-right:4px;font-weight:700}.chat-trace{color:inherit;margin-left:6px;padding:0;font-size:11px;font-weight:700;text-decoration:underline}.chat-editing{color:var(--link);border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:6px 12px 0;font-size:12px;font-weight:700;display:flex}.chat-editing+.chat-input{border-top:0}.chat-img{border-radius:12px;max-width:100%;max-height:260px;margin:2px 0 4px;display:block}.verbs-table{border-collapse:collapse;width:100%;font-size:14px}.verbs-table td,.verbs-table th{border-bottom:1px solid var(--line);text-align:left;padding:8px 6px}.verbs-table th{color:var(--muted);text-transform:uppercase;background:#fff;font-size:11px;font-weight:600;position:sticky;top:0}.verbs-table td:first-child{color:var(--text-strong);font-weight:700}.dict-lookup{background:var(--bg);border-radius:18px;margin-bottom:12px;padding:14px}.dict-head{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.dict-head b{font-family:var(--font-display);color:var(--text-strong);font-size:22px}.dict-head .ipa{color:var(--muted);font-size:13px}.dict-head .say-btn{color:var(--link);background:#fff;border-radius:50%;align-self:center;margin-left:auto}.dict-head .say-btn:hover{background:var(--accent-2);color:var(--accent)}.dict-head .pos{color:var(--muted);font-size:12px}.dict-example{background:#fff;border-radius:12px;margin-top:10px;padding:10px 12px;font-size:14px}.dict-example b{color:var(--text-strong);font-weight:600}.dict-example span{color:var(--muted);font-size:13px;display:block}.dict-option{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.dict-recent{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 12px;font-size:12px;display:flex}.dict-recent button{box-shadow:inset 0 0 0 1px var(--line);color:var(--text-strong);background:#fff;border-radius:999px;padding:4px 10px;font-weight:600}.dict-tabs{width:100%;margin:6px 0 8px;display:flex}.dict-goal{background:#dadcee;border-radius:16px;flex-direction:column;gap:10px;margin-bottom:12px;padding:12px 14px;display:flex}.dict-goal .dg-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.dict-goal .dg-head b{font-size:15px}.dict-goal .dg-head span{color:var(--text);white-space:nowrap;font-size:12px}.dict-search{margin-bottom:12px}.dict-search .input{border-radius:14px;min-height:46px;padding-right:116px;font-size:14px}.dict-search .dict-go{height:36px;min-height:36px;margin:auto 0;font-weight:700;position:absolute;top:0;bottom:0;right:5px}.dict-tabs{background:#f4f5f9;border-radius:12px;margin:12px 0 4px}.dict-tabs button{border-radius:9px;min-height:36px;font-size:13px;font-weight:700}.dict-row{align-items:center;gap:10px;padding:9px 0;display:flex}.dict-row+.dict-row{border-top:1px solid var(--line)}.dict-row.fresh{background:#f7e5e2;border-radius:12px;margin:0 -8px;padding-left:8px;padding-right:8px}.dict-row.fresh+.dict-row,.dict-row+.dict-row.fresh{border-top-color:#0000}.new-chip{vertical-align:2px;background:var(--text-strong);color:#fff;font:700 10px/1.5 var(--font);border-radius:999px;margin-left:8px;padding:1px 7px;display:inline-block}.dict-row .say{background:var(--accent-2);width:32px;height:32px;color:var(--text-strong);border-radius:50%;flex:none;place-items:center;transition:background .15s,color .15s;display:grid}.dict-row .say:hover{background:var(--accent);color:#fff}.dict-row .t{flex-direction:column;flex:1;min-width:0;display:flex}.dict-row .t b{color:var(--text-strong);overflow-wrap:anywhere;font-size:14px}.dict-row .t span{color:var(--muted);font-size:12px;line-height:1.55}.dict-row .tick{border:1.5px solid var(--line-2);width:30px;height:30px;color:var(--accent-3);border-radius:50%;flex:none;place-items:center;transition:border-color .15s,color .15s;display:grid}.dict-row .tick:hover{border-color:var(--green);color:var(--green)}.dict-row.learned .tick{background:var(--green-soft);border-color:var(--green-soft);color:var(--green)}.dict-row .del{width:30px;height:30px;color:var(--muted);border-radius:10px;flex:none;place-items:center;transition:background .15s,color .15s;display:grid}.dict-row .del:hover{background:var(--red-soft);color:var(--red)}.vocab-row.learned .tick{background:var(--green-soft);color:var(--green)}.tick{width:30px;height:30px;box-shadow:inset 0 0 0 1.5px var(--line-2);color:var(--muted-2);border-radius:50%;place-items:center;display:grid}.tool-page{max-width:640px;overflow:hidden}.tool-page .tw-body{padding:20px}.board-overlay{z-index:30;box-shadow:var(--shadow-pop);background:#fff;border-radius:24px;flex-direction:column;display:flex;position:fixed;inset:64px 304px 16px 88px;overflow:hidden}.board-tools{border-bottom:1px solid var(--line);align-items:center;gap:6px;padding:10px 12px;display:flex}.board-tools .icon-btn.active{background:var(--accent);color:#f4f5f9}.board-canvas{touch-action:none;cursor:crosshair;background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);background-size:32px 32px;flex:1}.tr-pop{z-index:60;background:var(--accent);color:#f4f5f9;width:320px;box-shadow:var(--shadow-pop);border-radius:18px;padding:12px 14px;position:fixed;overflow:hidden}.tr-pop:before{content:"";top:-8px;left:var(--arrow,50%);border:8px solid #0000;border-top:0;border-bottom-color:var(--accent);position:absolute;transform:translate(-50%)}.tr-pop.above{transform:translateY(-100%)}.tr-pop.above:before{border-bottom:0;border-top:8px solid var(--accent);top:auto;bottom:-8px}.tr-pop .tr-word{color:#fff;align-items:center;gap:8px;margin-bottom:4px;font-size:16px;font-weight:700;display:flex}.tr-pop .tr-word .ipa{color:var(--accent-2);font-size:13px;font-weight:500}.tr-pop .tr-word .icon-btn{color:var(--accent-2);width:32px;height:32px;margin-left:auto}.tr-pop .tr-word .icon-btn:hover{color:var(--accent);background:#f4f5f9}.tr-pop .tr-item{cursor:pointer;color:var(--accent-2);align-items:center;gap:10px;padding:6px 0;font-size:15px;display:flex}.tr-pop .tr-item:hover{color:#fff}.tr-pop .tr-actions{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.tr-pop .tr-actions button{background:var(--navy-2);color:#f4f5f9;border-radius:999px;min-height:32px;padding:0 12px;font-size:12px;font-weight:700}.tr-pop .tr-actions button.main{color:var(--accent);background:#f4f5f9}.tr-pop .tr-own{gap:6px;margin-top:8px;display:flex}.tr-pop .tr-own input{min-height:34px;color:var(--text-strong);border:0;border-radius:999px;outline:none;flex:1;padding:0 12px;font-size:14px}.tr-pop .muted{color:var(--accent-2)}.toasts{left:calc(16px + var(--cab-offset,0px));z-index:60;flex-direction:column;gap:10px;max-width:calc(100vw - 32px);display:flex;position:fixed;bottom:16px}body:has(.call-mini) .toasts{bottom:84px}.toast{background:var(--accent);color:#f4f5f9;border-radius:16px;width:320px;max-width:100%;padding:12px 14px;animation:.2s ease-out toast-in;box-shadow:0 16px 30px #23266e33}.toast.light{color:var(--text-strong);border:1px solid var(--line);background:#fff}.toast-head{justify-content:space-between;align-items:center;margin-bottom:6px;font-size:14px;font-weight:700;display:flex}.toast-head .icon-btn{color:var(--accent-2);width:30px;height:30px}.toast-body{align-items:center;gap:12px;font-size:14px;display:flex}.toast-body b{font-size:14px}.toast-icon{background:var(--accent-2);width:38px;height:38px;color:var(--text-strong);border-radius:50%;flex:none;place-items:center;display:grid}.toast-icon.book,.toast-icon.badge{background:var(--orange-soft);color:var(--link)}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.levelup-back{z-index:80}.levelup{background:var(--accent);color:#f4f5f9;border-radius:24px;flex-direction:column;gap:10px;width:calc(100vw - 32px);max-width:360px;min-height:230px;padding:24px;animation:.25s ease-out toast-in;display:flex;position:relative;overflow:hidden}.levelup .muted{color:var(--accent-2)}.levelup h2{color:#fff;margin:0;font-size:30px;line-height:1.1}.levelup img{width:auto;height:190px;position:absolute;bottom:0;right:-6px}.levelup .btn{color:var(--accent);background:#f4f5f9;align-self:flex-start;min-height:40px;margin-top:auto;position:relative}.levelup p{max-width:200px;color:var(--accent-2);margin:0;font-size:14px}.progress-card .pc-hero{background:var(--accent);color:#f4f5f9;border-radius:20px;align-items:center;gap:14px;margin-bottom:14px;padding:16px;display:flex}.progress-card .pc-hero img{object-fit:contain;flex:none}.progress-card .pc-points{font-family:var(--font-display);color:#fff;align-items:center;gap:8px;font-size:34px;font-weight:700;display:flex}.progress-card .pc-points svg{color:var(--accent-2)}.progress-card .pc-level{font-family:var(--font-display);color:var(--accent-2);margin:2px 0 8px;font-size:16px;font-weight:600}.progress-card .pc-bar{background:#ffffff2e;border-radius:4px;height:8px;overflow:hidden}.progress-card .pc-bar div{background:#f4f5f9;border-radius:4px;height:100%}.progress-card .pc-next{color:var(--accent-2);margin-top:6px;font-size:12px}.pc-levels{grid-template-columns:repeat(6,1fr);gap:4px;margin-bottom:14px;display:grid}.pc-levels span{color:var(--muted-2);text-align:center;flex-direction:column;align-items:center;gap:4px;font-size:10px;font-weight:600;line-height:1.2;display:flex}.pc-levels i{background:var(--accent-soft);width:26px;height:26px;color:var(--muted-2);border-radius:50%;place-items:center;font-size:11px;font-style:normal;font-weight:700;display:grid}.pc-levels .done{color:var(--text-strong)}.pc-levels .done i{background:var(--accent);color:#f4f5f9}.pc-levels .now{color:var(--text-strong)}.pc-levels .now i{box-shadow:inset 0 0 0 2px var(--text-strong);color:var(--text-strong);background:#fff}.progress-card .pc-say{background:var(--accent-soft);border-radius:14px;margin:0 0 12px;padding:10px 12px;font-size:14px}.progress-card .pc-streak{background:var(--accent-soft);color:var(--text-strong);border-radius:999px;align-items:center;gap:8px;margin-bottom:12px;padding:8px 14px;font-size:14px;font-weight:600;display:flex}.progress-card .pc-streak svg{color:var(--muted-2)}.progress-card .pc-streak svg.on{color:var(--link)}.progress-card .pc-stats{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px;display:grid}.progress-card .pc-stats div{background:var(--bg);text-align:center;border-radius:14px;padding:10px 8px}.progress-card .pc-stats b{font-family:var(--font-display);color:var(--text-strong);font-size:20px;display:block}.progress-card .pc-stats span{color:var(--muted);font-size:12px}.progress-card .pc-recent div{border-bottom:1px solid var(--line);justify-content:space-between;padding:6px 0;font-size:14px;display:flex}.progress-card .pc-recent b{color:var(--link)}.progress-card .pc-rules{color:var(--muted);margin-top:10px;font-size:13px}.progress-card .pc-rules summary{cursor:pointer}.progress-card .pc-rules ul{margin:6px 0 0;padding-left:18px}.progress-card .pc-week{margin-bottom:14px}.progress-card .pc-week-head{color:var(--text-strong);justify-content:space-between;align-items:center;margin-bottom:8px;font-size:13px;font-weight:700;display:flex}.progress-card .pc-week-head .done{color:var(--green-text)}.pc-days{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.pc-days span{aspect-ratio:1;background:var(--accent-soft);color:var(--muted-2);border-radius:50%;place-items:center;font-size:11px;font-weight:700;display:grid}.pc-days span.on{background:var(--accent);color:#f4f5f9}.pc-days span.today:not(.on){box-shadow:inset 0 0 0 2px var(--text-strong);color:var(--text-strong);background:#fff}.pc-days span.future{opacity:.7}.progress-card .pc-badges-head{color:var(--text-strong);justify-content:space-between;margin:4px 0 8px;font-size:13px;font-weight:700;display:flex}.progress-card .pc-badges{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px;display:grid}.progress-card .pc-badge{text-align:center;color:var(--muted-2);flex-direction:column;align-items:center;gap:4px;font-size:11px;font-weight:600;line-height:1.2;display:flex}.progress-card .pc-badge-icon{background:var(--accent-soft);width:46px;height:46px;color:var(--muted-2);border-radius:50%;place-items:center;display:grid}.progress-card .pc-badge.earned{color:var(--text-strong)}.progress-card .pc-badge.earned .pc-badge-icon{background:var(--accent-2);color:var(--text-strong)}.progress-card .pc-badge-progress{color:var(--muted-2);font-size:10px}.practice{position:relative}.practice-bar{background:var(--accent-soft);border-radius:3px;height:6px;overflow:hidden}.practice-bar>div{background:var(--accent);height:100%}.practice-opts{flex-direction:column;gap:8px;display:flex}.practice-opts .option{text-align:left;width:100%;font-size:15px}.flashcard{background:var(--bg);text-align:center;cursor:pointer;border-radius:22px;place-items:center;min-height:200px;margin:8px 0 12px;padding:22px;display:grid}.flashcard .w{font-family:var(--font-display);color:var(--text-strong);font-size:26px;font-weight:700}.flashcard .t{color:var(--muted);margin-top:8px;font-size:17px;font-weight:600}.flashcard .ipa{color:var(--muted);margin-top:4px;font-size:13px}.flashcard .hint{color:var(--link);margin-top:10px;font-size:13px;font-weight:600}.mode-row{border-bottom:1px solid var(--line);cursor:pointer;align-items:center;gap:12px;padding:8px 0;display:flex}.mode-row b{color:var(--text-strong);font-size:14px;display:block}.mode-row span{color:var(--muted);font-size:11px}.check-switch{border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:4px 0 8px;padding:12px 0}.check-switch span{font-size:12px}.switch{background:var(--line-2);border-radius:12px;flex:none;width:40px;height:24px;margin-left:auto;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;position:absolute;top:3px;left:3px}.switch.on{background:var(--accent)}.switch.on:after{transform:translate(16px)}.coin-burst{pointer-events:none;z-index:3;align-items:center;gap:6px;animation:.9s ease-out forwards coin-pop;display:flex;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%)}.coin-burst .coin{width:64px;height:64px;color:var(--link);background:#fff;border-radius:18px;place-items:center;display:grid;box-shadow:0 6px 18px #23266e2e}.coin-burst.lose .coin{color:var(--red);animation:.9s ease-in forwards coin-fall}.coin-burst .coin-text{font-family:var(--font-display);font-size:28px;font-weight:700}.coin-burst.win .coin-text{color:var(--green)}.coin-burst.lose .coin-text{color:var(--red)}.coin-burst .coin-x{font-size:30px}@keyframes coin-pop{0%{opacity:0;transform:translate(-50%,-20%)scale(.6)}25%{opacity:1;transform:translate(-50%,-60%)scale(1.1)}70%{opacity:1;transform:translate(-50%,-90%)scale(1)}to{opacity:0;transform:translate(-50%,-130%)scale(.95)}}@keyframes coin-fall{0%{transform:rotate(0)}to{opacity:.2;transform:translateY(40px)rotate(160deg)}}[data-ex].attention{border-radius:18px;animation:3s ease-out attention}@keyframes attention{0%,60%{box-shadow:0 0 0 3px var(--link), 0 0 0 10px #3b3fa829}to{box-shadow:0 0 #3b3fa800}}.ex-tools{z-index:4;position:absolute;top:0;right:0}.ex-tools:has(.menu-pop){z-index:40}.dots-btn{width:32px;height:32px;color:var(--muted);background:0 0;border-radius:10px;place-items:center;transition:background .15s,color .15s;display:grid}.dots-btn:hover,.dots-btn.open{color:var(--text-strong);background:#f4f5f9}.menu-wrap{position:relative}.menu-pop{z-index:30;background:#fff;border-radius:16px;flex-direction:column;width:280px;padding:6px;display:flex;position:absolute;top:36px;right:0;box-shadow:0 20px 44px #23266e33}.menu-item{text-align:left;color:var(--text-strong);border-radius:10px;align-items:center;gap:10px;padding:9px 10px;font-size:14px;font-weight:600;transition:background .15s;display:flex}.menu-item svg{color:var(--link);flex:none}.menu-item:hover{background:var(--accent-soft)}.menu-item.danger,.menu-item.danger svg{color:var(--red)}.menu-done{z-index:5;background:var(--accent);color:#f4f5f9;white-space:nowrap;border-radius:999px;padding:6px 12px;font-size:13px;position:absolute;top:38px;right:0}.add-line{align-items:center;gap:10px;height:26px;margin:-4px 0 20px;display:flex}.add-line:before,.add-line:after{content:"";background:var(--line);flex:1;height:1px}.add-line button{border:1px solid var(--line-2);width:26px;height:26px;color:var(--muted);background:#fff;border-radius:50%;flex:none;place-items:center;padding:0;transition:background .15s,color .15s,border-color .15s;display:grid}.add-line button:hover{background:var(--accent);border-color:var(--accent);color:#f4f5f9}.sec-item .menu-wrap{opacity:0;margin-left:4px}.sec-item:hover .menu-wrap{opacity:1}.sec-item .dots-btn{background:0 0;width:26px;height:26px}.tpl-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px;display:grid}.tpl{text-align:left;color:var(--text-strong);border-radius:12px;align-items:center;gap:10px;min-height:48px;padding:10px 12px;font-size:14px;font-weight:600;display:flex}.tpl:hover{background:var(--accent-2)}.tpl-ic{background:var(--accent-soft);width:32px;height:32px;color:var(--link);border-radius:10px;flex:none;place-items:center;display:grid}.rows{flex-direction:column;gap:10px;margin-bottom:12px;display:flex}.row-item{align-items:flex-start;gap:8px;display:flex}.rich{border:1px solid var(--line-2);background:#fff;border-radius:14px;overflow:hidden}.rich:focus-within{border:1.5px solid var(--link)}.rich-tools{border-bottom:1px solid var(--line);background:var(--bg);flex-wrap:wrap;gap:2px;padding:6px;display:flex}.rich-tools button{width:30px;height:28px;color:var(--text-strong);border-radius:8px;place-items:center;display:grid}.rich-tools button:hover{background:#fff}.rich-tools .rich-color{border-radius:50%;width:18px;height:18px;margin:5px 3px}.rich-area{outline:none;padding:10px 12px}.rich-area:empty:before{content:attr(data-placeholder);color:var(--muted-2)}.ex:has(.ex-tools) .note-block .eye{right:44px}.hw-item{text-align:left;cursor:pointer;width:100%;transition:background-color .15s var(--ease);background:0 0;border:0;border-radius:12px;align-items:center;gap:10px;padding:6px 8px;display:flex}.hw-item:hover,.hw-item.active{background:var(--bg)}.hw-name{color:var(--text-strong);flex-direction:column;flex:1;gap:2px;min-width:0;font-size:14px;font-weight:600;line-height:1.3;display:flex}.hw-sub{color:var(--muted);font-size:12px;font-weight:500}.hw-ico{border-radius:50%;flex:none;place-items:center;width:28px;height:28px;display:grid}.hw-ico.s-assigned{background:var(--red-soft);color:var(--red)}.hw-ico.s-submitted{color:#8a5d00;background:#fcefc7}.hw-ico.s-checked{background:var(--green-soft);color:var(--green)}.hw-status .hw-ico{background:0 0;width:22px;height:22px}.hw-status{background:var(--accent-soft);color:var(--muted);border-radius:999px;align-self:flex-start;align-items:center;gap:4px;padding:6px 12px;font-size:13px;font-weight:600;line-height:1.22;display:inline-flex}.hw-status.s-assigned{background:var(--accent-2);color:var(--text-strong)}.hw-status.s-submitted{background:var(--orange-soft);color:var(--link)}.hw-status.s-checked{background:var(--green-soft);color:var(--green-text)}.hw-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;display:flex}.hw-sent{background:var(--green-soft);color:var(--green-text);border-radius:14px;align-items:center;gap:10px;padding:10px 12px;font-size:13px;font-weight:600;display:flex}.score{color:var(--text-strong);background:var(--accent-soft);white-space:nowrap;font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.cover-ph{color:#f4f5f9;font-family:var(--font-display);background:var(--accent);place-items:center;font-size:26px;font-weight:700;display:grid;overflow:hidden}.cover-ph span{text-align:center;padding:0 6px}.book-cover{aspect-ratio:3/4;border-radius:18px;width:100%;height:auto;display:block}.lesson-thumb{object-fit:cover;border-radius:10px;flex:none;height:40px;font-size:13px;width:40px!important}.book-thumb{border-radius:10px;flex:none;width:48px;height:64px;font-size:16px}.unit-mark{border:1.5px solid var(--line-2);border-radius:50%;flex:none;place-items:center;width:22px;height:22px;display:grid}.unit-mark.done{background:var(--accent);border-color:var(--accent);color:#f4f5f9}.unit-mark.now{border:2px solid var(--text-strong)}.book-row{cursor:pointer;border-radius:14px;align-items:center;gap:14px;padding:10px;display:flex}.book-row:hover{background:var(--accent-soft)}.book-row img,.book-row .ph{object-fit:cover;background:var(--accent-2);border-radius:10px;flex:none;width:48px;height:64px}.lesson-row{cursor:pointer;border-radius:12px;align-items:center;gap:12px;padding:8px 10px;display:flex}.lesson-row:hover{background:var(--accent-soft)}.lesson-row img{object-fit:cover;border-radius:10px;width:40px;height:40px}.status-dot{background:var(--green);color:#fff;border-radius:50%;flex:none;place-items:center;width:20px;height:20px;font-size:11px;display:grid}.book-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:18px;display:grid}.book-tile{cursor:pointer;flex-direction:column;gap:10px;display:flex}.book-tile b{color:var(--text-strong);font-size:14px;line-height:1.3}.book-tile .muted{font-size:12px}.preview-wrap{align-items:flex-start;gap:16px;display:flex}.preview-main{flex:1;min-width:0;padding:28px 36px}.preview-sections{flex:none;width:272px;padding:18px;position:sticky;top:24px}.st-progress{white-space:nowrap;font-size:14px}.st-points{color:var(--text-strong);font-weight:700;font-family:var(--font-display);margin-right:10px}.st-streak{color:var(--muted)}.st-streak.on{color:var(--link);font-weight:700}.ov-list{flex-direction:column;gap:8px;display:flex}.ov-row{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:18px;grid-template-columns:minmax(120px,1.3fr) 70px 52px auto minmax(130px,1.2fr);align-items:center;gap:12px;padding:12px 16px;display:grid}.ov-row:hover{border-color:var(--link)}.ov-row.quiet{background:var(--accent-soft);border-color:var(--accent-2)}.ov-who{align-items:center;gap:10px;min-width:0;display:flex}.ov-who b{white-space:nowrap;text-overflow:ellipsis;color:var(--text-strong);display:block;overflow:hidden}.ov-who .muted{font-size:12px}.ov-num{color:var(--text-strong);font-weight:700;font-family:var(--font-display);align-items:center;gap:4px;font-size:14px;display:flex}.ov-num svg,.ov-num.hot svg{color:var(--link)}.ov-num:not(.hot):nth-child(3) svg{color:var(--muted-2)}.ov-week{align-items:center;gap:3px;display:flex}.ov-week span{background:var(--accent-soft);width:22px;height:22px;color:var(--muted);border-radius:50%;place-items:center;font-size:10px;font-weight:700;display:grid}.ov-week span.on{background:var(--accent);color:#f4f5f9}.ov-week span.future{opacity:.6}.ov-goal{border:1px solid var(--line-2);background:#fff;border-radius:999px;margin-left:6px;padding:2px 6px;font-size:12px}.ov-goal.met{border-color:var(--green);color:var(--green-text);font-weight:700}.ov-meta{flex-direction:column;gap:1px;font-size:12px;display:flex}.ov-meta .warn{color:var(--link);font-weight:700}.ov-pending{color:var(--link);font-weight:600}.ov-modal{width:min(460px,100%)}.notif-group{font-family:var(--font-display);color:var(--text-strong);margin:18px 0 8px;font-size:16px;font-weight:600}.notif-list{box-shadow:var(--shadow);background:#fff;border-radius:22px;padding:4px 16px}.notif{border-top:1px solid var(--line);cursor:pointer;text-align:left;align-items:flex-start;gap:12px;width:100%;padding:12px 0;display:flex}.notif:first-child{border-top:0}.notif .ic{background:var(--accent-soft);width:38px;height:38px;color:var(--link);border-radius:12px;flex:none;place-items:center;display:grid}.notif .t{flex:1;min-width:0}.notif .t b{color:var(--text-strong);font-size:14px;line-height:1.35;display:block}.notif .t span{color:var(--muted);font-size:12px}.notif .side{color:var(--muted);flex-direction:column;align-items:flex-end;gap:8px;font-size:11px;display:flex}.notif .unread{background:var(--link);border-radius:50%;width:8px;height:8px}.bell{position:relative}.bell .count{min-width:18px;height:18px;padding:0 4px;font-size:10px;position:absolute;top:0;right:0;box-shadow:0 0 0 2px #fff}.st-home{grid-template-rows:auto 1fr;grid-template-columns:1.5fr 1fr;gap:18px;display:grid}.hero{background:var(--accent);color:#f4f5f9;border-radius:28px;grid-column:1/-1;align-items:center;gap:24px;min-height:210px;padding:30px 34px;display:flex;position:relative;overflow:hidden}.hero-text{z-index:1;flex-direction:column;flex:1;gap:12px;display:flex;position:relative}.hero-eyebrow{color:var(--accent-2);font-size:14px}.hero h1{color:#f4f5f9;max-width:calc(100% - 300px);font-size:34px;line-height:1.1}.hero .row{flex-wrap:wrap}.hero .spark{position:absolute;top:30px;right:300px}.hero .mascot{width:auto;height:196px;position:absolute;bottom:0;right:60px}.btn-navy2{background:var(--navy-2);color:#f4f5f9}.lesson-hero{background:var(--accent);color:#f4f5f9;border-radius:22px;flex-direction:column;align-items:flex-start;gap:12px;padding:22px;display:flex}.lesson-hero .eyebrow{color:var(--accent-2);text-transform:none;font-size:13px;font-weight:600}.lesson-hero h1{color:#f4f5f9;font-size:24px;line-height:1.2}.lesson-hero p{color:var(--accent-2);margin:0;font-size:13px}.st-col{flex-direction:column;gap:18px;min-width:0;display:flex}.st-card{flex-direction:column;gap:14px;padding:22px;display:flex}.st-card-head{justify-content:space-between;align-items:center;display:flex}.st-card-head b{font-family:var(--font-display);font-size:18px;font-weight:600}.st-card-head button{color:var(--link);padding:0;font-size:13px;font-weight:600}.st-card-head button:hover{text-decoration:underline}.st-row{border-top:1px solid var(--line);text-align:left;width:100%;color:var(--text-strong);align-items:center;gap:14px;padding:12px 0;transition:background .15s;display:flex}.st-row:hover{background:linear-gradient(90deg, transparent, var(--accent-soft) 12%, var(--accent-soft) 88%, transparent)}.st-row .t{flex:1;min-width:0}.st-row .t b{font-size:15px;display:block}.st-row .t span{color:var(--muted);font-size:13px;display:block}.st-tile{width:44px;height:44px;color:var(--text-strong);border-radius:14px;flex:none;place-items:center;display:grid}.st-word{white-space:nowrap;font-size:13px;font-weight:700}.st-done{padding:10px 0}.st-done .date{font-family:var(--font-display);width:54px;color:var(--muted);flex:none;font-size:14px;font-weight:700}.st-done b{flex:1;min-width:0;font-size:14px;font-weight:600}.st-done svg{color:var(--muted);flex:none}.st-words{background:var(--accent-2);border-radius:var(--radius-lg);align-items:center;gap:18px;padding:22px;display:flex;position:relative;overflow:hidden}.st-words .t{flex-direction:column;flex:1;align-items:flex-start;gap:8px;display:flex}.st-words .t b{font-family:var(--font-display);font-size:18px;font-weight:600}.st-words .t>span{color:var(--text);font-size:14px}.st-words img{align-self:flex-end;width:auto;height:132px;margin:0 -6px -22px 0}.st-progress{flex-direction:column;gap:18px;min-height:120px;padding:22px;display:flex}.st-points{align-items:center;gap:16px;display:flex}.st-points .num{font-family:var(--font-display);align-items:center;gap:10px;font-size:44px;font-weight:700;line-height:1;display:flex}.st-points .num svg{color:var(--link)}.st-points .lvl{flex-direction:column;gap:4px;display:flex}.st-points .lvl b{font-size:16px}.st-points .lvl span{color:var(--muted);font-size:13px}.st-bar{background:#efedf6;border-radius:5px;height:10px;overflow:hidden}.st-bar i{background:linear-gradient(90deg,#3b3fa8,#23266e);border-radius:5px;height:100%;display:block}.st-streak{background:var(--orange-soft);color:var(--link);border-radius:14px;align-items:center;gap:10px;padding:10px 14px;font-size:14px;font-weight:600;display:flex}.st-block{flex-direction:column;gap:10px;display:flex}.st-block-head{justify-content:space-between;display:flex}.st-block-head b{font-size:14px}.st-block-head span{color:var(--muted);font-size:13px}.st-days{justify-content:space-between;display:flex}.st-days span{width:34px;height:34px;color:var(--muted-2);background:#efedf6;border-radius:50%;place-items:center;font-size:12px;font-weight:700;display:grid}.st-days span.on{background:var(--green);color:#fff}.st-days span.today:not(.on){color:var(--text-strong);box-shadow:inset 0 0 0 2px var(--text-strong);background:0 0}.st-badges{justify-content:space-between;display:flex}.st-badges>span{text-align:center;color:var(--muted-2);flex-direction:column;align-items:center;gap:6px;width:25%;font-size:11px;font-weight:600;display:flex}.st-badges i{background:#efedf6;border-radius:50%;place-items:center;width:52px;height:52px;display:grid}.st-badges .earned{color:var(--text-strong)}.st-badges .earned i{background:var(--accent-2)}.st-badges svg{stroke-width:1.7px}.tile{box-shadow:var(--shadow);text-align:left;background:#fff;border-radius:22px;flex-direction:column;gap:6px;padding:18px;display:flex}.tile.lav{background:var(--accent-2);box-shadow:none}.tile b{color:var(--text-strong);font-size:15px}.tile span{color:var(--muted);font-size:12px}.tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.lesson-list .row-date{background:var(--accent-soft);width:46px;height:46px;font-family:var(--font-display);color:var(--text-strong);border-radius:12px;flex-direction:column;flex:none;justify-content:center;align-items:center;font-size:16px;font-weight:700;line-height:1;display:flex}.lesson-list .row-date small{font-family:var(--font);color:var(--muted);margin-top:3px;font-size:10px;font-weight:600}.big-num{font-family:var(--font-display);color:var(--text-strong);font-size:40px;font-weight:700;line-height:1}.read-only{background:var(--accent-soft);color:var(--text-strong);border-radius:14px;align-items:center;gap:8px;margin-bottom:18px;padding:10px 14px;font-size:13px;font-weight:600;display:flex}.hw-player{background:var(--bg);min-height:100dvh;padding:calc(12px + env(safe-area-inset-top)) 16px calc(96px + env(safe-area-inset-bottom));max-width:720px;margin:0 auto}.hw-player .ex{background:#fff;border:0;border-radius:22px;margin-top:12px;padding:16px}.hw-player-bar{padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fff;gap:10px;max-width:720px;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}.show-sm,.cab-top,.cab-bottom,.sheet-head,.sheet-backdrop,.room-phone-bar,.call-strip{display:none}.nav-dot{background:var(--green);border-radius:50%;width:8px;height:8px;position:absolute;top:6px;right:6px}@media (width<=1100px){.right-panel{width:236px}.follow-dock{right:292px}.center-inner{padding:22px}.cab-split{grid-template-columns:minmax(0,1fr)}.cab-nav{width:220px}body:has(.cab-nav){--cab-offset:220px}}@media (width<=800px){body{font-size:16px}.hide-sm{display:none!important}.show-sm{display:inline-flex}.page-title{margin-bottom:14px;font-size:24px}.modal-back{align-items:end;padding:0}.modal{max-height:92dvh;padding:12px 18px calc(18px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;width:100%!important}.modal .sheet-grip,.sheet-grip{background:var(--line-2);border-radius:2px;width:40px;height:4px;margin:0 auto 12px;display:block}.btn:not(.btn-sm){min-height:44px}.icon-btn{width:44px;height:44px}.cabinet{flex-direction:column}.cab-nav{display:none}body:has(.cab-nav){--cab-offset:0px}.cab-top{padding:calc(2px + env(safe-area-inset-top)) 16px 6px 18px;background:var(--bg);z-index:10;align-items:center;gap:4px;display:flex;position:sticky;top:0}.cab-top .icon-btn{width:40px;height:40px}.cab-top .bell{color:var(--text-strong);border-radius:50%}.cab-top.cab-bar{border-bottom:1px solid var(--line);min-height:calc(54px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 16px 8px;background:#fff;align-items:center;gap:6px}.cab-bar .back{color:var(--text-strong);margin-left:-10px}.cab-bar .bar-t{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.cab-bar .bar-t small{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.cab-bar .bar-t b{white-space:nowrap;text-overflow:ellipsis;font-size:17px;line-height:1.25;overflow:hidden}.cabinet.inner .cab-main .page-title,.cabinet.inner .cab-main .lib-title{display:none}.cabinet.inner .cab-main{padding-top:12px;padding-left:14px;padding-right:14px}.cab-top .bell .count{min-width:16px;height:16px;box-shadow:none;padding:0 4px;font-size:10px;top:2px;right:2px}.cab-main{padding:4px 16px calc(84px + env(safe-area-inset-bottom));gap:14px;min-width:0;max-width:100vw;overflow-x:hidden}.cab-main>.card,.cab-main .card{padding:16px}.cab-bottom{z-index:20;border-top:1px solid var(--line);padding:8px 4px max(12px, env(safe-area-inset-bottom));background:#fff;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.cab-bottom a{width:68px;color:var(--muted-3);flex-direction:column;flex:none;align-items:center;gap:4px;font-size:11px;font-weight:600;display:flex;position:relative}.cab-bottom .tab-ic{border-radius:15px;place-items:center;width:52px;height:30px;display:grid}.cab-bottom a.active{color:var(--text-strong)}.cab-bottom a.active .tab-ic{background:var(--accent-2)}.cab-bottom .count{min-width:18px;height:18px;padding:0 5px;font-size:11px;position:absolute;top:-3px;left:40px;box-shadow:0 0 0 2px #fff}.grid-cards{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.class-card .cover{height:88px;font-size:24px}.table th,.table td{padding:8px 4px}.table td{overflow-wrap:anywhere}.st-home{grid-template-columns:minmax(0,1fr)}.lesson-hero{gap:8px;padding:18px}.lesson-hero .eyebrow{font-size:12px}.lesson-hero h1{font-size:18px;font-weight:600;line-height:1.25}.tc-phone{flex-direction:column;gap:12px;margin:0 -2px;display:flex}.tc-head{justify-content:space-between;align-items:center;display:flex}.tc-head b{font-family:var(--font-display);font-size:24px;font-weight:700}.tc-search{border:1px solid var(--line-2);min-height:48px;color:var(--link);background:#fff;border-radius:14px;align-items:center;gap:10px;padding:0 14px;display:flex}.tc-search:focus-within{border-color:var(--link);box-shadow:0 0 0 4px #3b3fa81f}.tc-search input{min-width:0;color:var(--text-strong);background:0 0;border:0;outline:0;flex:1;padding:0;font-size:15px;font-weight:500}.tc-search input::placeholder{color:var(--muted-2)}.tc-sec{justify-content:space-between;align-items:baseline;padding:6px 2px 0;display:flex}.tc-sec b{font-family:var(--font-display);font-size:16px;font-weight:600}.tc-sec span{color:var(--muted);font-size:12px;line-height:1.55}.tc-list{border:1px solid var(--line);background:#fff;border-radius:20px;flex-direction:column;padding:4px 16px;display:flex}.tc-row{text-align:left;width:100%;color:var(--text-strong);align-items:center;gap:12px;padding:11px 0;display:flex}.tc-row+.tc-row{border-top:1px solid var(--line)}.tc-row .t{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.tc-row .t b{font-size:15px}.tc-row .t span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;line-height:1.55;overflow:hidden}.tc-row>svg{color:var(--muted);flex:none}.cab-main .tool-page{background:0 0;border:0;border-radius:0;max-width:none;padding:0;overflow:visible}.tool-page .tw-body{padding:0}.tool-page .dict-goal{border:1px solid var(--line);background:#fff;border-radius:20px;gap:10px;padding:16px}.tool-page .dict-goal .dg-head span{color:var(--muted)}.tool-page .dict-goal .btn{width:100%}.tool-page .dict-search .input{min-height:48px;font-size:15px}.tool-page .dict-tabs{background:#e9ebf3;border-radius:14px;margin:0 0 10px}.tool-page .dict-tabs button{border-radius:11px;min-height:38px;font-size:14px}.tool-page .dict-list{border:1px solid var(--line);background:#fff;border-radius:20px;padding:2px 16px}.tool-page .dict-list:empty{display:none}.tool-page .dict-row{gap:12px}.tool-page .dict-row .say{width:36px;height:36px}.tool-page .dict-row .t b{font-size:15px}.tool-page .dict-row .tick{width:32px;height:32px}.tc-pill{background:var(--orange-soft);color:var(--link);white-space:nowrap;border-radius:999px;flex:none;padding:6px 12px;font-size:13px;font-weight:600}.ph-home{flex-direction:column;gap:12px;margin:2px -2px 0;display:flex}.ph-hero{background:var(--accent);color:#fff;border-radius:24px;flex-direction:column;align-items:flex-start;gap:8px;min-height:200px;padding:20px;display:flex;position:relative;overflow:hidden}.ph-hero .eyebrow{color:var(--accent-2);text-transform:none;font-size:12px;font-weight:600}.ph-hero>b{font-family:var(--font-display);max-width:170px;font-size:22px;line-height:1.15}.ph-hero .sub{color:var(--accent-2);max-width:160px;font-size:13px;line-height:1.5}.ph-hero .btn{z-index:1;margin-top:auto;position:relative}.ph-hero img{width:auto;height:172px;position:absolute;bottom:0;right:-4px}.btn-white{color:var(--text-strong);background:#fff}.ph-tiles{grid-template-columns:1fr 1fr;gap:10px;display:grid}.ph-tile{border:1px solid var(--line);text-align:left;color:var(--text-strong);background:#fff;border-radius:20px;flex-direction:column;align-items:flex-start;gap:6px;padding:14px;display:flex}.ph-tile svg{color:var(--link)}.ph-tile b{font-size:15px}.ph-tile span{color:var(--muted);font-size:12px;line-height:1.55}.ph-tile.lav{background:var(--accent-2);border-color:var(--accent-2)}.ph-tile.lav svg{color:var(--text-strong)}.ph-tile.lav span{color:var(--text);line-height:normal}.ph-card{border:1px solid var(--line);text-align:left;color:var(--text-strong);background:#fff;border-radius:20px;flex-direction:column;gap:10px;width:100%;padding:16px;display:flex}.ph-points .row1{align-items:center;gap:10px;display:flex}.ph-points .num{font-family:var(--font-display);align-items:center;gap:6px;font-size:26px;display:flex}.ph-points .num svg{color:var(--link)}.ph-points .row1>b:nth-child(2){font-size:15px}.ph-points .streak{white-space:nowrap;background:var(--orange-soft);color:var(--link);border-radius:999px;align-items:center;gap:4px;margin-left:auto;padding:5px 10px;font-size:12px;font-weight:700;display:inline-flex}.ph-points .bar{background:#e9ebf3;border-radius:4px;height:8px;display:block;overflow:hidden}.ph-points .bar i{background:var(--link);border-radius:4px;height:100%;display:block}.ph-points .sub,.ph-week .head>span{color:var(--muted);font-size:12px;line-height:1.55}.ph-week{gap:12px}.ph-week .head{justify-content:space-between;display:flex}.ph-week .head b{font-size:14px}.ph-week .days{justify-content:space-between;display:flex}.ph-week .days span{width:34px;height:34px;color:var(--muted-3);background:#e9ebf3;border-radius:50%;place-items:center;font-size:12px;font-weight:700;display:grid}.ph-week .days span.on{background:var(--accent);color:#fff}.ph-week .days span.today:not(.on){color:var(--text-strong);box-shadow:inset 0 0 0 2px var(--text-strong);background:0 0}.hero{border-radius:22px;padding:20px}.hero h1{max-width:none;font-size:26px}.hero .mascot,.hero .spark{display:none}.login{flex-direction:column}.login-brand{flex:none;gap:16px;padding:28px 20px}.login-brand h1{font-size:30px}.login-brand p{font-size:15px}.login-brand .mascot,.login-brand .chips,.login-brand .spark{display:none}.login-hero{gap:12px;margin-top:12px}.login-form{place-items:start center;padding:24px 16px}.login-card h2{font-size:26px}.room{height:100dvh}.room-top{height:auto;min-height:56px;padding:calc(6px + env(safe-area-inset-top)) 10px 6px;background:var(--accent);color:#f4f5f9;border:0;flex-wrap:wrap;gap:6px}.room-top .icon-btn{color:var(--accent-2)}.room-top .room-title{flex-direction:column;flex:1;min-width:0;line-height:1.2;display:flex}.room-top .room-title small{color:var(--accent-2);font-size:11px}.room-top .room-title b{font-family:var(--font-display);white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;overflow:hidden}.room-top .pill{color:#f4f5f9;background:#ffffff24}.room-top .who-chip,.room-top .room-tabs,.room-top .room-desk{display:none}.room-phone-tabs{background:#ffffff1a;border-radius:999px;gap:4px;width:100%;margin-top:4px;padding:3px;display:flex}.room-phone-tabs a{text-align:center;min-height:34px;color:var(--accent-2);border-radius:999px;flex:1;place-items:center;font-size:13px;font-weight:600;display:grid}.room-phone-tabs a.active{color:var(--text-strong);background:#f4f5f9}.call-strip{background:var(--accent);color:#f4f5f9;flex:none;align-items:center;gap:10px;padding:4px 10px 10px;display:flex}.room-top{transition:padding .2s var(--ease)}.room.compact .room-top{min-height:0;padding-top:calc(4px + env(safe-area-inset-top));padding-bottom:4px}.room.compact .room-phone-tabs,.room.compact .room-title small{display:none}.room.compact .room-title b{font-size:14px}.call-strip.tucked,.call-strip .call-controls [data-lk-source=screen_share],.room.call-only .room-top{display:none}.room.call-only .call-strip{padding-top:calc(10px + env(safe-area-inset-top))}.call-strip .call-video{aspect-ratio:4/3;border-radius:12px;flex:none;width:96px}.call-strip .call-controls{flex-wrap:nowrap;flex:1;justify-content:flex-end;gap:6px;margin:0}.call-strip .call-controls .lk-button,.call-strip .call-controls .lk-disconnect-button,.call-strip .call-controls .call-btn{width:36px;min-width:36px;height:36px}.call-strip .call-box{text-align:left;flex:1;align-items:center;gap:10px;padding:0;display:flex}.call-strip .call-box b{margin:0;font-size:14px}.call-strip .call-box .phone{display:none}.call-strip .call-box .btn{min-height:38px;margin-left:auto}.call-strip .call-who{flex-direction:column;min-width:0;font-size:13px;font-weight:700;display:flex}.call-strip .call-who span{color:var(--accent-2);font-size:11px;font-weight:600}.room-body{background:var(--bg);gap:0;padding:0}.center{box-shadow:none;background:var(--bg);border-radius:0}.center-inner{padding:16px 16px calc(84px + env(safe-area-inset-bottom))}.center.with-follow .center-inner{padding-bottom:calc(180px + env(safe-area-inset-bottom))}.section-title{margin-bottom:14px;font-size:22px}.section-head{flex-wrap:wrap;margin-bottom:14px}.underline-tabs{scrollbar-width:none;gap:16px;overflow-x:auto}.underline-tabs button,.underline-tabs a{white-space:nowrap;font-size:14px}.section-head .pill{white-space:normal}.ex{background:#fff;border:0;border-radius:22px;margin-bottom:12px;padding:14px 14px 16px}.ex:last-child{border-bottom:0}.ex-title{font-size:15px}.ex-head{gap:8px;margin-bottom:12px}.ex-tools{top:10px;right:10px}.html{overflow-x:auto}.html table{border-spacing:4px;font-size:14px}.note-block{padding:12px 14px 12px 42px;font-size:14px}.note-block .i{top:14px;left:14px}.line-input{line-height:2.7}.gap-input,.dd,.gap-drop{height:34px;min-height:34px}.dd,.label-grid .gap-drop{height:auto}.gap-input{max-width:100%;font-size:16px}.chip{min-height:44px;font-size:16px}.letter{width:44px;height:44px;font-size:18px}.option{min-height:52px}.test-box{background:0 0;border:0;border-radius:0;padding:0}.test-q{padding:14px 0}.test-q:first-child{padding-top:2px}.test-box .option{min-height:46px;margin:0 -10px;padding:8px 10px}.tf-row{flex-wrap:wrap}.tf-row .seg{width:100%}.tf-row .seg button{flex:1;min-height:40px}.vocab-row{flex-wrap:wrap}.vocab-row .w{min-width:0}.img-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.label-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.media-grid{grid-template-columns:1fr}.media-grid.swipe,.slides{display:none}.gallery-swipe{display:block;position:relative}.gallery-swipe .track{scroll-snap-type:x mandatory;scrollbar-width:none;gap:10px;display:flex;overflow-x:auto}.gallery-swipe .track::-webkit-scrollbar{display:none}.gallery-swipe .slide{scroll-snap-align:center;flex:0 0 100%}.gallery-swipe .counter{color:#fff;z-index:2;background:#14164699;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700;position:absolute;top:10px;right:10px}.gallery-swipe .dots{justify-content:center;gap:6px;margin-top:8px;display:flex}.gallery-swipe .dots i{background:var(--line-2);width:6px;height:6px;transition:transform .15s var(--ease), background-color .15s var(--ease);border-radius:3px}.gallery-swipe .dots i.on{background:var(--text-strong);transform:scale(1.4)}.mt-row{grid-template-columns:1fr 22px 1fr}.mt-cell{padding:8px;font-size:14px}.order-item{padding:8px 6px 8px 10px;font-size:15px}.order-item .order-arrows{flex-direction:column;gap:4px}.order-item .order-arrows .icon-btn{width:30px;height:30px}.order-item .grip{display:none}.order-item .order-arrows .grip{display:flex}.group-cols{grid-template-columns:1fr}.ex-hint{margin-top:-4px}.ex-hint.phone-only{display:flex}.bank-wrap>.word-bank.sticky{order:3;margin:12px 0 0}.word-bank.sticky{top:auto;bottom:calc(66px + env(safe-area-inset-bottom));z-index:6;border:1px solid var(--line);background:#fff;position:sticky;box-shadow:0 -6px 20px #23266e1f}.answer-bubble,.left-bar{display:none}.follow-dock{right:16px;bottom:calc(76px + env(safe-area-inset-bottom))}.follow-note{bottom:calc(76px + env(safe-area-inset-bottom))}.call-cover{background:var(--bg);padding:0}.call-pop{width:100%;height:100%;box-shadow:none;padding:calc(24px + env(safe-area-inset-top)) 24px calc(24px + env(safe-area-inset-bottom));border-radius:0;justify-content:center}.call-pop-actions{max-width:360px}.call-mini{left:12px;right:12px;bottom:calc(80px + env(safe-area-inset-bottom))}.call-mini-text{flex:1;min-width:0}.room-phone-bar{z-index:35;border-top:1px solid var(--line);padding:4px 4px calc(4px + env(safe-area-inset-bottom));background:#fff;display:flex;position:fixed;bottom:0;left:0;right:0}.room-phone-bar .icon-btn{color:var(--muted);border-radius:12px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;width:auto;height:54px;display:flex;position:relative}.room-phone-bar .icon-btn:after{content:attr(data-label);font-size:11px;font-weight:600}.room-phone-bar .icon-btn:hover,.room-phone-bar .icon-btn.active{color:var(--text-strong);background:0 0}.room-phone-bar .icon-btn.active svg{background:var(--accent-2);box-sizing:content-box;border-radius:999px;padding:3px 10px}.room-phone-bar .tool-dot{top:2px;right:calc(50% - 22px);box-shadow:0 0 0 2px #fff}.right-panel{z-index:45;width:auto;max-height:80dvh;padding:0 16px calc(16px + env(safe-area-inset-bottom));visibility:hidden;background:#fff;border-radius:24px 24px 0 0;transition:transform .25s;display:flex;position:fixed;bottom:0;left:0;right:0;transform:translateY(105%);box-shadow:0 -8px 40px #14164633}.right-panel.sheet-open{visibility:visible;transform:none}.right-panel .card{box-shadow:none;padding:0}.right-panel #call-box{display:none}.sheet-head{z-index:1;color:var(--text-strong);font-family:var(--font-display);background:#fff;justify-content:space-between;align-items:center;padding:14px 0 6px;font-size:17px;display:flex;position:sticky;top:0}.sheet-backdrop{z-index:44;background:#14164659;display:block;position:fixed;inset:0}.sec-item{min-height:48px;font-size:15px}.right-panel .sections-list h3{display:none}.tool-window{height:100dvh;max-height:none;box-shadow:none;background:var(--bg);z-index:45;border-radius:0;bottom:0;right:0;width:auto!important;top:0!important;left:0!important}.tool-window .tw-head{cursor:default;color:var(--text-strong);border-bottom:1px solid var(--line);min-height:calc(54px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 16px 8px;font-family:var(--font);background:#fff;align-items:center;gap:6px}.tool-window .tw-head .back{width:40px;height:40px;color:var(--text-strong);background:0 0;margin-left:-10px}.tw-title{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.tw-title small{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.tw-title b{white-space:nowrap;text-overflow:ellipsis;font-size:17px;line-height:1.25;overflow:hidden}.tool-window .tw-body{background:var(--bg);padding:14px 14px 12px}.tool-window .chat-msgs{background:0 0;border-radius:0;padding:0}.tool-window .chat-msg{max-width:270px;color:var(--text-strong);background:#fff;border-radius:18px 18px 18px 6px;padding:10px 12px;font-size:15px;line-height:1.5;box-shadow:0 2px 6px #23266e0d}.tool-window .chat-msg.mine{background:var(--accent);color:#fff;box-shadow:none;border-radius:18px 18px 6px}.tool-window .chat-msg .when{color:var(--muted);opacity:1}.tool-window .chat-msg.mine .when{color:var(--accent-2)}.tool-window .chat-msg:has(.chat-html){max-width:100%;color:var(--text);border:1px solid var(--line);box-shadow:none;background:#fff;border-radius:18px}.tool-window .chat-msg:has(.chat-html) .when{color:var(--muted)}.tool-window .chat-input{padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#fff}.tool-window .chat-input .input{background:var(--bg);min-height:44px;box-shadow:none;border:0;border-radius:22px}.tool-window .chat-input .icon-btn{color:var(--link)}.tool-window .chat-input .send{width:44px;height:44px}.board-overlay{inset:0 0 calc(62px + env(safe-area-inset-bottom)) 0;border-radius:0}.board-tools{flex-wrap:nowrap;gap:4px;padding:6px 8px;overflow-x:auto}.board-tools .icon-btn,.board-tools .swatch{flex:none}.tr-pop{width:auto;padding:16px 18px calc(18px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;bottom:0;right:0;top:auto!important;left:0!important;transform:none!important}.tr-pop:before{display:none}.toasts{left:16px;right:16px;bottom:calc(76px + env(safe-area-inset-bottom))}body:has(.call-mini) .toasts{bottom:calc(144px + env(safe-area-inset-bottom))}.toast{width:100%}.history-pop.as-sheet{z-index:70;width:auto;padding:12px 18px calc(18px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;gap:10px;font-size:15px;position:fixed;inset:auto 0 0;box-shadow:0 -8px 40px #14164640}.menu-pop.as-sheet,.dd-list.as-sheet{z-index:70;padding:12px 16px calc(16px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;min-width:0;position:fixed;inset:auto 0 0;transform:none;box-shadow:0 -8px 40px #14164640}.dd-list.as-sheet .dd-opt,.menu-pop.as-sheet .menu-item{border:1px solid var(--line);border-radius:14px;min-height:52px;margin-bottom:6px;padding:0 16px;font-size:16px}.dd-list.as-sheet .dd-opt.sel{border-color:var(--text-strong)}.sheet-handle{touch-action:none;cursor:grab;margin:-12px -18px 0;padding:12px 18px 2px;display:block}.sheet-q{background:var(--bg);color:var(--text-strong);border-radius:12px;margin-bottom:10px;padding:10px 12px;font-size:14px;display:block}.sheet-title{font-family:var(--font-display);color:var(--text-strong);margin-bottom:10px;font-size:18px;font-weight:600}.sheet-cover{z-index:69;background:#14164659;position:fixed;inset:0}.preview-wrap{flex-direction:column-reverse;align-items:stretch}.preview-sections{width:auto;position:static}.preview-main{padding:16px!important}.dots-btn,.sec-item .menu-wrap{opacity:1}.ov-row{grid-template-columns:1fr auto auto;grid-template-areas:"who pts str""week week week""meta meta meta"}.ov-who{grid-area:who}.ov-row>.ov-num:nth-child(2){grid-area:pts}.ov-row>.ov-num:nth-child(3){grid-area:str}.ov-week{grid-area:week}.ov-meta{grid-area:meta}}:root{--ease:cubic-bezier(.22, .61, .36, 1);--ease-sheet:cubic-bezier(.32, .72, 0, 1)}@keyframes rise-in{0%{opacity:0;translate:0 8px}}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}@keyframes pop-in{0%{opacity:0;scale:.96}}@keyframes pop-out{to{opacity:0;scale:.96}}@keyframes modal-in{0%{opacity:0;scale:.97}}@keyframes sheet-up{0%{translate:0 100%}}@keyframes sheet-down{to{translate:0 100%}}@keyframes page-in{0%{translate:100%}}@keyframes toast-slide{0%{opacity:0;translate:24px}}@keyframes toast-slide-left{0%{opacity:0;translate:-24px}}@keyframes fx-pop{50%{scale:1.03}}@keyframes fx-shake{17%,50%,83%{translate:-3px}33%,67%{translate:3px}}@keyframes bar-grow{0%{transform:scaleX(0)}}@keyframes level-in{0%{opacity:0;scale:.92}}@keyframes shimmer{to{transform:translate(100%)}}@keyframes vt-out{to{opacity:0}}@keyframes vt-in{0%{opacity:0;translate:0 8px}}@keyframes ring-wiggle{0%,40%,to{rotate:0deg}8%,24%{rotate:-14deg}16%,32%{rotate:14deg}}#root img:not(.ld){opacity:0}.cab-main,.room,.hw-player{view-transition-name:page}::view-transition-old(root){animation:none}::view-transition-new(root){animation:none}::view-transition-group(page){animation-duration:0s}.skeleton{flex-direction:column;gap:12px;max-width:720px;padding:4px 0;display:flex}.skeleton-card{border-radius:var(--radius-lg);box-shadow:var(--shadow);background:#fff;padding:24px}.skeleton i{background:var(--accent-soft);border-radius:8px;height:14px;display:block;position:relative;overflow:hidden}.skeleton .sk-title{width:45%;height:26px;margin-bottom:6px}.skeleton i:after{content:"";background:linear-gradient(90deg,#0000,#ffffff8c,#0000);position:absolute;inset:0;transform:translate(-100%)}:where(.has-ind){position:relative}.has-ind>.ind{pointer-events:none;opacity:var(--ind-o,0);position:absolute;top:0;left:0}.cab-links>.ind{width:var(--ind-w);height:var(--ind-h);transform:translateY(var(--ind-y));background:var(--accent);border-radius:14px}.cab-links>a{z-index:1;position:relative}.cab-links.has-ind>a.active{background:0 0}.cab-bottom>.ind{width:var(--ind-w);height:var(--ind-h);transform:translate(var(--ind-x), var(--ind-y));background:var(--accent-2);border-radius:999px}.cab-bottom>a{z-index:1;position:relative}.cab-bottom.has-ind>a.active .tab-ic{background:0 0}.room-tabs>.ind,.underline-tabs>.ind{transform-origin:0;width:100px;height:3px;transform:translateX(var(--ind-x)) scaleX(var(--ind-s));background:var(--text-strong);top:auto;bottom:0}.room-tabs.has-ind>.room-tab.active,.underline-tabs.has-ind>.sel{border-bottom-color:#0000}.tabs.has-ind>.ind{width:var(--ind-w);height:var(--ind-h);transform:translate(var(--ind-x), var(--ind-y));background:#fff;border-radius:999px;box-shadow:0 2px 8px #23266e14}.tabs.has-ind>button{z-index:1;position:relative}.tabs.has-ind>button.sel{box-shadow:none;background:0 0}.class-card{position:relative;overflow:visible}.class-card>.cover,.class-card>.cover-clip{border-radius:var(--radius-lg) var(--radius-lg) 0 0;overflow:hidden}.cover-clip{line-height:0;display:block}.class-card:after,.tile:after,.pc-badge-icon:after{content:"";border-radius:inherit;opacity:0;pointer-events:none;position:absolute;inset:0;box-shadow:0 14px 30px #23266e24}.tile,.pc-badge-icon{position:relative}@media (prefers-reduced-motion:no-preference){#root img{transition:opacity .3s var(--ease)}::view-transition-old(page){animation:vt-out .28s var(--ease) both}::view-transition-new(page){animation:vt-in .3s var(--ease) both}.page-in{animation:fade-in .2s var(--ease)}.fade-in{animation:fade-in .22s var(--ease)}.section-in{animation:fade-in .2s var(--ease)}.skeleton i:after{animation:1.2s linear infinite shimmer}:where(.btn){position:relative}.btn{transition:transform .15s var(--ease), background-color .15s var(--ease), color .15s var(--ease), filter .15s var(--ease), opacity .15s}.btn:after{content:"";border-radius:inherit;opacity:0;transition:opacity .15s var(--ease);pointer-events:none;position:absolute;inset:0;box-shadow:0 8px 18px #23266e33}.btn-ghost:after{display:none}.btn:not(:disabled):active{transform:scale(.97)}.btn .lucide-arrow-right{transition:transform .15s var(--ease)}.icon-btn,.points-btn,.dots-btn,.say,.add,.tick,.pill,.cab-links a,.cab-bottom a,.room-tab,.underline-tabs button,.tabs button,.seg button,.menu-item,.dd-opt,.tpl,.sec-item,.panel-link{transition:background-color .15s var(--ease), color .15s var(--ease)}.icon-btn svg,.dots-btn svg{transition:transform .12s var(--ease)}.icon-btn:active svg,.dots-btn:active svg{transform:scale(.92)}:where(button,a,input,textarea,select,[tabindex]):focus-visible{transition:outline-color .12s var(--ease)}.has-ind[data-ind-ready]>.ind{transition:transform .26s var(--ease), opacity .15s var(--ease)}.room-tabs.has-ind[data-ind-ready]>.ind,.underline-tabs.has-ind[data-ind-ready]>.ind,.tabs.has-ind[data-ind-ready]>.ind{transition-duration:.22s}@media (hover:hover){.btn:not(:disabled):hover{transform:translateY(-1px)}.btn:not(:disabled):hover:after{opacity:1}.btn:not(:disabled):active{transform:scale(.97)}.btn:hover .lucide-arrow-right{transform:translate(3px)}.class-card,.tile,.book-tile,.hw-item,button.list-row,.pc-badge,.pc-stats>div,.notif,.vocab-row,.lift{transition:transform .2s var(--ease), background-color .2s var(--ease)}.class-card:after,.tile:after,.pc-badge-icon:after{transition:opacity .2s var(--ease)}.class-card:hover,.tile:hover,.book-tile:hover,.hw-item:hover,button.list-row:hover,.pc-badge:hover,.pc-stats>div:hover,.notif:hover,.lift:hover{transform:translateY(-2px)}.class-card:hover:after,.tile:hover:after,.pc-badge:hover .pc-badge-icon:after{opacity:1}.cover-clip img,.book-tile img{transition:transform .4s var(--ease), opacity .3s var(--ease)}.class-card:hover .cover-clip img,.book-tile:hover img{transform:scale(1.03)}}.enter>*{animation:rise-in .26s var(--ease) backwards}.enter>:nth-child(2){animation-delay:40ms}.enter>:nth-child(3){animation-delay:80ms}.enter>:nth-child(4){animation-delay:.12s}.enter>:nth-child(5){animation-delay:.16s}.enter>:nth-child(6){animation-delay:.2s}.enter>:nth-child(7){animation-delay:.24s}.enter>:nth-child(n+8){animation-delay:.28s}.enter-ex>[data-ex]:nth-child(-n+4){animation:rise-in .26s var(--ease) backwards}.enter-ex>[data-ex]:nth-child(2){animation-delay:40ms}.enter-ex>[data-ex]:nth-child(3){animation-delay:80ms}.enter-ex>[data-ex]:nth-child(4){animation-delay:.12s}.menu-pop{transform-origin:100% 0;animation:pop-in .16s var(--ease) backwards}.dd-list{transform-origin:top;animation:pop-in .16s var(--ease) backwards}.history-pop,.paint-menu.down{transform-origin:0 0;animation:pop-in .16s var(--ease) backwards}.paint-menu{transform-origin:0 100%;animation:pop-in .16s var(--ease) backwards}.ev-audio-menu{transform-origin:100% 0;animation:pop-in .16s var(--ease) backwards}.tr-pop{transform-origin:var(--arrow,50%) top;animation:pop-in .16s var(--ease) backwards}.tr-pop.above{transform-origin:var(--arrow,50%) bottom}.menu-pop.leaving,.dd-list.leaving,.history-pop.leaving,.tr-pop.leaving{animation:pop-out .12s var(--ease) both}.modal-back{animation:fade-in .2s var(--ease)}.modal{animation:modal-in .22s var(--ease) backwards}.call-cover,.lightbox{animation:fade-in .2s var(--ease) backwards}.notice-toast{animation:toast-slide .24s var(--ease) backwards}.lightbox img{animation:modal-in .24s var(--ease-sheet) backwards}.call-pop{animation:modal-in .26s var(--ease-sheet) backwards}.call-box.incoming .phone,.call-mini-icon{animation:ring-wiggle 1.25s var(--ease) infinite}.call-mini{animation:toast-slide-left .24s var(--ease) backwards}.follow-btn{animation:pop-in .22s var(--ease-sheet) backwards;transform-origin:100% 100%}.follow-where{animation:fade-in .2s var(--ease) backwards}.follow-note{animation:rise-in .24s var(--ease) backwards}.levelup{animation:level-in .36s var(--ease) backwards}.levelup img{animation:fade-in .3s var(--ease) .15s backwards}.toast{animation:toast-slide-left .24s var(--ease) backwards}.toast.leaving{animation:fade-out .2s var(--ease) both}.notif-list .notif{animation:fade-in .2s var(--ease)}.gap-input,.dd,.gap-drop,.option,.chip,.letter,.mt-cell,.order-item,.word-bank.seq-built,.group-col,.seg button,.switch,.switch:after{transition:background-color .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease), transform .2s var(--ease)}.gap-dots i{transition:background-color .15s var(--ease)}.fx-ok{animation:fx-pop .18s var(--ease)}.fx-bad{animation:fx-shake .24s var(--ease)}.gap-input.reveal,.gap-drop.reveal,.dd.reveal,.mt-cell.reveal,.word-bank.reveal,.mt-row.done{animation:fade-in .2s var(--ease)}.progress>div,.pc-bar div,.practice-bar>div{transform-origin:0;animation:bar-grow .5s var(--ease) backwards;transition:width .5s var(--ease)}}@media (width<=800px) and (prefers-reduced-motion:no-preference){.modal,.menu-pop.as-sheet,.dd-list.as-sheet,.history-pop.as-sheet,.tr-pop{animation:sheet-up .28s var(--ease-sheet) backwards}.tool-window{animation:page-in .26s var(--ease) backwards}.menu-pop.as-sheet.leaving,.dd-list.as-sheet.leaving,.history-pop.as-sheet.leaving,.tr-pop.leaving{animation:sheet-down .22s var(--ease-sheet) both}.sheet-cover,.sheet-backdrop{animation:fade-in .28s var(--ease) backwards}.sheet-cover.leaving{animation:fade-out .22s var(--ease) both}.right-panel{transition:transform .28s var(--ease-sheet), visibility .28s}.toast{animation-name:rise-in}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;transition-delay:0s!important;animation-duration:1ms!important;animation-iteration-count:1!important;animation-delay:0s!important}::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}}
