/* public/css/app.css — 课件互动组件、首页/落地页、实时课堂、复习作业作品、提示词库与教练、教师控制台、证书、响应式与打印（在 base.css 之后加载） */
/* ===== 课件互动组件 ===== */
.opts{display:grid;gap:10px;margin-top:22px;max-width:760px}
.opt{text-align:left;padding:14px 18px;border:1px solid var(--line);border-radius:10px;background:var(--raised);font-size:17px;color:var(--text);transition:.12s}
button.opt:hover:not(:disabled){border-color:var(--blue)}
.opt.sel{border-color:var(--blue);background:var(--blue2);font-weight:650}.opt.ok{border-color:var(--green);background:var(--green2)}.opt.bad{border-color:var(--red);background:var(--red2)}
.opt.static{color:var(--muted)}.opt:disabled{cursor:default}
.vote-q{font-size:20px;font-weight:700;margin:4px 0 6px}
.bars{display:grid;gap:9px;margin:14px 0;max-width:760px}
.bar{display:grid;grid-template-columns:minmax(90px,1.1fr) 2fr auto;gap:10px;align-items:center;font-size:15px}
.bar .bt{height:14px;background:var(--surface);border:1px solid var(--line);border-radius:999px;overflow:hidden}.bar .bt i{display:block;height:100%;background:var(--blue);border-radius:999px;transition:width .4s}
.bar.ok .bt i{background:var(--green)}.bar.mine .bl{font-weight:800}.bar.mine .bl:after{content:" ← 我";color:var(--blue);font-size:12px}
.bar b{font-variant-numeric:tabular-nums;white-space:nowrap}.bar small{color:var(--muted);font-weight:400}
.live-poll-head{font-size:14px;margin:8px 0}
.wall{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}
.wall-item{background:var(--orange2);border-radius:12px;padding:10px 14px;max-width:340px;font-size:15px}.wall-item small{display:block;color:var(--muted);font-size:12px;margin-top:4px}
.radar-wrap{display:grid;grid-template-columns:minmax(260px,380px) 1fr;gap:28px;align-items:center;margin-top:12px}
.radar-svg{width:100%;max-width:380px;display:block;margin:auto}
.radar-svg .rg{fill:none;stroke:var(--line)}.radar-svg .rl{font-size:11.5px;fill:var(--muted);text-anchor:middle;dominant-baseline:middle}.radar-svg .rs{stroke-width:2}
.legend{display:flex;gap:14px;justify-content:center;font-size:13px;margin-top:6px}.lg:before{content:"";display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.lg.o:before{background:var(--orange)}.lg.b:before{background:var(--blue)}.lg.g:before{background:var(--green)}
.slider-row{display:grid;grid-template-columns:150px 1fr 26px;gap:12px;align-items:center;margin:6px 0;color:var(--text);font-size:14px}
.slider-row small{display:block;color:var(--muted);font-size:11.5px;line-height:1.3}
.slider-row input{accent-color:var(--blue);width:100%}.slider-row output{font-weight:800;color:var(--blue);text-align:center}
.quiz-top{display:flex;align-items:center;gap:12px;margin-top:10px}
.qbar{flex:1;height:6px;background:var(--line);border-radius:999px;overflow:hidden;max-width:420px}.qbar i{display:block;height:100%;background:var(--blue);transition:width .25s}
.quiz-q{font-size:clamp(20px,2.6vw,30px);font-weight:700;max-width:780px;margin:18px 0}
.choice{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.choice button{padding:22px;text-align:left;border:1px solid var(--line);background:var(--raised);border-radius:12px;min-height:110px;font-size:17px}.choice button:hover{border-color:var(--blue);background:var(--blue2)}
.choice b{color:var(--blue);margin-right:6px}
.style-result{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:14px}.style-result .card{margin:0;padding:16px}
.scale{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;font-size:13px;margin:10px 0}
.scale b{position:relative;height:8px;border-radius:999px;background:linear-gradient(90deg,var(--blue),var(--orange))}.scale i{position:absolute;top:50%;width:16px;height:16px;border-radius:50%;background:var(--raised);border:3px solid var(--text);transform:translate(-50%,-50%)}
.sort-card{font-size:clamp(20px,2.6vw,28px);font-weight:700;padding:26px;border:2px dashed var(--line);border-radius:14px;margin:16px 0;background:var(--surface);max-width:760px}
.sort-btns{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:760px}.sort-btns .opt{text-align:center}
.sort-why{background:var(--surface);border-radius:10px;padding:12px 14px;max-width:760px}
.sort-done .list-item{max-width:760px}
.exit-card{background:var(--raised);border:2px solid var(--blue);border-radius:16px;padding:18px 20px;max-width:760px}
.exit-card.teacher ol{font-size:20px;line-height:1.7}
.exit-head{font-weight:800;font-size:18px;color:var(--blue)}.exit-head small{color:var(--muted);font-weight:400;margin-left:6px}
.exit-card label{color:var(--text)}
.stars{display:flex;gap:4px;margin-top:4px}.stars button{border:0;background:none;font-size:28px;color:var(--line);padding:0 2px;line-height:1}.stars button.on{color:#f5b301}
.nps{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}.nps button{width:38px;height:38px;border:1px solid var(--line);border-radius:8px;background:var(--raised)}.nps button.on{background:var(--blue);border-color:var(--blue);color:#fff}
.exit-row{border-bottom:1px solid var(--line);padding:10px 0}.quote-sm{margin:8px 0;padding:8px 12px;border-left:3px solid var(--blue);background:var(--surface);border-radius:0 8px 8px 0}

/* ===== 首页与学习路径 ===== */
.dash-top{display:grid;grid-template-columns:1.6fr 1fr;gap:16px;align-items:stretch}.dash-top .card{margin:0}
.hero-card h1{margin-bottom:0}
.next-steps{display:grid;gap:8px}
.next-step{display:flex;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:10px;color:var(--text);background:var(--surface)}
.next-step:hover{border-color:var(--blue);text-decoration:none}.next-step.hot{border-color:var(--red);background:var(--red2)}
.next-step small{display:block;color:var(--muted);font-size:13px}.next-step .arrow{margin-left:auto}
.ns-ico{font-size:22px;width:36px;text-align:center}
.progress-card{display:flex;gap:18px;align-items:center}
.ring{--p:0;width:110px;height:110px;flex:0 0 110px;border-radius:50%;background:conic-gradient(var(--blue) calc(var(--p)*1%),var(--line) 0);display:grid;place-items:center}
.ring span{width:84px;height:84px;border-radius:50%;background:var(--raised);display:grid;place-items:center;font-weight:800;font-size:20px}
.mini-stats{display:flex;gap:14px;flex-wrap:wrap;margin:8px 0;font-size:14px;color:var(--muted)}.mini-stats b{color:var(--text);font-size:18px}
.lesson-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.lesson-card{position:relative;color:var(--text);margin:0;transition:.15s}a.lesson-card:hover{border-color:var(--blue);text-decoration:none;transform:translateY(-1px)}
.lesson-card.locked{opacity:.6}.lesson-card.is-live{border-color:var(--red);box-shadow:0 0 0 3px var(--red2)}
.badge-big{font-size:30px;width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:var(--surface);filter:grayscale(1);opacity:.7;margin-bottom:8px}
.badge-big.lit,.lesson-head .badge-big,.demo .badge-big{filter:none;opacity:1;background:var(--blue2)}
.badge-big.lg{width:76px;height:76px;font-size:44px;flex:0 0 76px}.badge-big.sm{width:34px;height:34px;font-size:20px;display:inline-grid;margin:0 8px 0 0;filter:none;opacity:1}
.checks{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}.checks span{font-size:12px;padding:2px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}.checks span.on{background:var(--green2);color:var(--green);border-color:transparent}.checks span.on:before{content:"✓ "}
.class-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.class-card{color:var(--text);margin:0}a.class-card:hover{border-color:var(--blue);text-decoration:none}
.join-inline{display:flex;gap:10px;align-items:center;margin-top:20px;flex-wrap:wrap}.join-inline input{max-width:180px;margin:0!important}
.link-card{color:var(--text)}.link-card:hover{border-color:var(--blue);text-decoration:none}.link-card p{color:var(--muted)}
.lesson-head{display:flex;gap:20px;align-items:flex-start}
.scene-index{list-style:none;padding:0;margin:0;display:grid;gap:4px}.scene-index a{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:8px;color:var(--text)}.scene-index a:hover{background:var(--surface);text-decoration:none}.scene-index a.seen{color:var(--muted)}
.links{padding-left:1.2em}.links li{margin:6px 0}
.hw-link{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;margin-top:10px;border:1px solid var(--line);border-radius:10px;color:var(--text)}.hw-link:hover{border-color:var(--blue);text-decoration:none}
.filter{margin:6px 0 16px}.filter .search{max-width:220px}

/* ===== 落地页 ===== */
.land-hero{max-width:1180px;margin:0 auto;padding:56px 20px 30px}
.accent{color:var(--blue)}
.land-sec{max-width:1180px;margin:0 auto;padding:36px 20px}
.land-sec .agenda .card{min-height:150px}
.ticks{list-style:none;padding:0;margin:8px 0 0}.ticks li{padding:5px 0 5px 24px;position:relative;color:var(--muted);font-size:15px}.ticks li:before{content:"✓";position:absolute;left:0;color:var(--green);font-weight:800}
.refs{color:var(--muted);font-size:14px;padding-left:1.2em}
.quote-card{margin:0;font-size:17px;line-height:1.6}.quote-card footer{margin-top:10px;color:var(--muted);font-size:14px}
.land-cta{max-width:1140px;margin:20px auto 50px;text-align:center;padding:36px 20px;background:linear-gradient(145deg,var(--blue2),var(--surface))}

/* ===== 登录注册 ===== */
.auth{display:grid;place-items:center;padding:40px 16px 60px}
.auth-card{width:min(440px,100%)}.auth-card h2{margin-top:0}

/* ===== 实时课堂（学生）===== */
.live-page{max-width:880px;margin:0 auto;padding:16px 14px 80px;display:grid;gap:12px}
.live-page .card{margin:0}
.live-top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 16px}
.live-timer{font-size:20px;font-variant-numeric:tabular-nums;padding:4px 12px;border-radius:10px;background:var(--blue2);color:var(--blue)}.live-timer.warn{background:var(--red2);color:var(--red)}
.live-banner{padding:14px 18px;border-radius:12px;font-size:18px;text-align:center;font-weight:600}
.live-banner.pick{background:var(--orange2)}.live-banner.pick.me{background:var(--orange);color:#fff;animation:pulse 1.2s 3}
.live-banner.group{background:var(--green2)}
@keyframes pulse{50%{transform:scale(1.02)}}
.live-poll{border:2px solid var(--blue)}
.live-scene{font-size:15px}.live-scene .display{font-size:34px}.live-scene .section-title{font-size:26px}.live-scene .hero{grid-template-columns:1fr}.live-scene .hero-art{display:none}
.live-scene .grid,.live-scene .agenda{grid-template-columns:1fr 1fr}.live-scene .quote{font-size:24px}.live-scene .lead{font-size:17px}
.live-scene-head{margin:0 0 8px}
.ok-card{background:var(--green2);border-color:transparent;text-align:center;font-weight:650}
.react-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px}
.react-btn{border:1px solid var(--line);background:var(--raised);border-radius:12px;padding:10px 4px;font-size:24px;display:grid;gap:2px;transition:transform .15s}.react-btn span{font-size:12px;color:var(--muted)}.react-btn.pop{transform:scale(1.15)}
.qs{margin-top:10px;display:grid;gap:6px}
.q-item{display:flex;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:10px;font-size:15px}.q-item.done{opacity:.55}
.up-btn{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:4px 8px;font-size:13px;white-space:nowrap}.up-btn.on{background:var(--blue);color:#fff;border-color:var(--blue)}
.up-n{font-weight:800;color:var(--blue);font-size:13px;white-space:nowrap}

/* ===== 复习、作业、作品 ===== */
.review .card{padding:24px}
.hw-item{align-items:center}
.feedback.ok{border-color:var(--green);background:var(--green2)}.feedback.warn{border-color:var(--orange);background:var(--orange2)}
.rubric-view{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:14px;margin-bottom:8px}.rubric-view b{color:#f5b301;letter-spacing:1px}.rubric-view i{color:var(--line);font-style:normal}
.ai-note label{color:var(--text)}
.works-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.work-card{cursor:pointer;margin:0;display:flex;flex-direction:column;gap:4px}.work-card:hover{border-color:var(--blue)}.work-card.featured{border-color:var(--orange)}
.excerpt{color:var(--muted);font-size:14px;flex:1;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.like-btn{border:1px solid var(--line);background:var(--raised);border-radius:999px;padding:4px 12px;font-size:14px}.like-btn.on{background:var(--red2);color:var(--red);border-color:transparent}
.work-body{background:var(--surface);border-radius:10px;padding:12px 16px;max-height:420px;overflow:auto}
.ai-view{background:var(--surface);border-radius:10px;padding:10px 14px;margin:12px 0;font-size:14px}.ai-view summary{cursor:pointer;font-weight:650}
.comment{border-bottom:1px solid var(--line);padding:8px 0;font-size:14px}.comment p{margin:4px 0 0}
.badge-row{display:grid;grid-template-columns:repeat(8,1fr);gap:8px;margin:10px 0}
.badge-cell{text-align:center;padding:10px 4px;border-radius:12px;background:var(--surface);filter:grayscale(1);opacity:.5}.badge-cell.lit{filter:none;opacity:1;background:var(--blue2)}
.badge-cell span{font-size:30px;display:block}.badge-cell b{display:block;font-size:13px}.badge-cell small{color:var(--muted);font-size:11px}
.cert-prog{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;align-items:center;max-width:520px;font-size:14px}
.cert-prog i{--p:0%;height:10px;border-radius:999px;background:linear-gradient(90deg,var(--green) var(--p),var(--line) var(--p))}

/* ===== 提示词库 / AI 教练 / 教案 ===== */
.prompt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}.prompt-card{margin:0;display:flex;flex-direction:column;gap:6px}
.coach{display:grid;grid-template-columns:300px 1fr;gap:18px;align-items:start}
.coach-modes h2{margin-top:0}
.mode-card{display:block;width:100%;text-align:left;border:1px solid var(--line);background:var(--raised);border-radius:10px;padding:10px 12px;margin:8px 0}
.mode-card small{float:right;color:var(--muted);font-size:12px}.mode-card span{display:block;color:var(--muted);font-size:13px;margin-top:2px}.mode-card.on{border-color:var(--blue);background:var(--blue2)}
.chat{display:flex;flex-direction:column;height:calc(100vh - 150px);min-height:460px;padding:0;margin:0}
.chat-head{display:flex;gap:10px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line)}.chat-head .left{margin-left:auto}
.chat-log{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:10px}
.msg{max-width:82%;padding:10px 14px;border-radius:14px;font-size:15px;line-height:1.6}
.msg.me{align-self:flex-end;background:var(--blue);color:#fff;border-bottom-right-radius:4px}
.msg.ai{align-self:flex-start;background:var(--surface);border:1px solid var(--line);border-bottom-left-radius:4px}.msg.ai p{margin:.3em 0}
.chat-empty{margin:auto;text-align:center;max-width:420px;color:var(--muted)}.chat-empty b{color:var(--text);font-size:18px}
.chat-input{border-top:1px solid var(--line);padding:12px 16px}.chat-input textarea{margin:0}
.plan-html table{border-collapse:collapse;width:100%;margin:10px 0;font-size:14px}.plan-html th,.plan-html td{border:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top}.plan-html th{background:var(--surface)}
.plan-html h1,.plan-html h2,.plan-html h3{font-size:18px;margin:14px 0 6px}
.plan-lesson summary{cursor:pointer;display:flex;align-items:center;font-size:16px}.plan-lesson[open] summary{margin-bottom:10px}
.flow-table td{font-size:13.5px}
.sid-chip{display:inline-block;font:700 12px ui-monospace,Menlo,monospace;color:var(--blue);background:var(--blue2);border:0;padding:3px 7px;border-radius:6px;margin:1px}a.sid-chip:hover{text-decoration:none;filter:brightness(.95)}

/* ===== 教师控制台 ===== */
.kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin:8px 0 16px}
.kpi{background:var(--raised);border:1px solid var(--line);border-radius:var(--r);padding:14px}.kpi b{display:block;font-size:26px;letter-spacing:-.02em}.kpi span{color:var(--muted);font-size:13px}.kpi small{display:block;font-size:12px;color:var(--muted);margin-top:2px}
.next-class{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;background:linear-gradient(145deg,var(--blue2),var(--raised))}.next-class h2{margin:0 0 4px}
.matrix td,.matrix th{text-align:center;padding:7px 6px}.matrix td:first-child,.matrix th:first-child{text-align:left;white-space:nowrap}
.cell{display:inline-flex;gap:3px}
.cell i,.hint i{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--line)}
.dot-a{cursor:pointer}.dot-a.on{background:var(--blue)!important}.dot-e.on{background:var(--orange)!important}.dot-w.on{background:var(--green)!important}.dot-w.half{background:color-mix(in srgb,var(--green) 40%,var(--line))!important}
.risk{padding-left:1.1em}.risk li{margin:6px 0}
.lesson-row{align-items:center;flex-wrap:wrap}.lesson-row input[type=date]{width:150px;margin:0}
.sticky-save{position:sticky;bottom:0;background:color-mix(in srgb,var(--bg) 92%,transparent);padding:10px 0;margin-top:14px;border-top:1px solid var(--line)}
.code-big{font-size:40px;font-weight:800;letter-spacing:.18em;color:var(--blue);margin:6px 0}
.prep{display:grid;grid-template-columns:1.3fr 1fr;gap:18px;align-items:start}
.prep-side{position:sticky;top:76px}
.scene-admin{list-style:none;padding:0;margin:0;display:grid;gap:2px;font-size:14px;max-height:50vh;overflow:auto}
.scene-admin li{padding:6px 4px;border-bottom:1px solid var(--line)}.scene-admin li .row{margin:0}.scene-admin li.is-hidden{opacity:.5;text-decoration:line-through}
.poll-log{border-bottom:1px solid var(--line);padding:8px 0}.poll-log summary{cursor:pointer}
.cp{padding:12px 14px;display:grid;gap:10px}
.cp-sec{background:var(--raised);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:14px}.cp-sec .bars{gap:6px}.cp-sec .bar{font-size:13px;grid-template-columns:minmax(60px,1fr) 1.4fr auto}
.cp-sec .vote-q{font-size:15px}.cp-quick summary{cursor:pointer;color:var(--blue);margin-top:6px}.cp-quick form{margin-top:6px}
.react-stats{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-top:6px}
.cp-online{margin-top:6px;color:var(--muted);line-height:1.7}.cp-online sup{color:var(--blue);font-size:10px;margin-left:1px}
.g-size{width:64px!important;flex:0 0 64px!important}
.grade{display:grid;grid-template-columns:240px 1fr;gap:16px;align-items:start;margin-top:12px}
.grade-list{display:grid;gap:4px;max-height:75vh;overflow:auto;position:sticky;top:76px}
.grade-item{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--raised);text-align:left;font-size:14px}.grade-item.on{border-color:var(--blue);background:var(--blue2)}
.rubric{display:grid;gap:6px}.rubric-row{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:6px 0;border-bottom:1px solid var(--line)}.rubric-row span{flex:1;min-width:150px;color:var(--text)}.rubric-row label{display:flex;gap:4px;align-items:center;margin:0;color:var(--text)}
.check-list{display:grid;gap:4px;max-height:50vh;overflow:auto}

/* ===== 证书 ===== */
.cert-page{padding:30px 16px 60px}
.cert{max-width:760px;margin:0 auto 20px;background:var(--raised);border:10px double color-mix(in srgb,var(--blue) 45%,var(--line));border-radius:6px;padding:46px 40px;text-align:center}
.cert-org{font-weight:800;color:var(--blue);letter-spacing:.1em}.cert-title{font-size:15px;color:var(--muted);margin:6px 0 24px;letter-spacing:.06em}
.cert-name{font-size:44px;font-weight:800;letter-spacing:.02em;margin:8px 0 12px;font-family:Georgia,"Songti SC","Noto Serif CJK SC",serif}
.cert-badges{display:flex;justify-content:center;gap:10px;margin:20px 0 6px;font-size:30px}.cert-badge{filter:grayscale(1);opacity:.3}.cert-badge.on{filter:none;opacity:1}
.cert-foot{display:flex;justify-content:space-between;margin-top:30px;font-size:13px;color:var(--muted)}.cert-ok{margin-top:14px;color:var(--green);font-size:13px;font-weight:650}

/* ===== 响应式 ===== */
@media(max-width:1100px){.kpis{grid-template-columns:repeat(3,1fr)}.lesson-grid,.agenda{grid-template-columns:repeat(2,1fr)}.prep{grid-template-columns:1fr}.prep-side{position:static}.deck-side{position:absolute;right:0;top:60px;bottom:52px;z-index:5;box-shadow:var(--shadow)}}
@media(max-width:820px){
  .topbar{padding:0 12px}.main-nav{display:none;position:absolute;top:60px;left:0;right:0;flex-direction:column;background:var(--bg);border-bottom:1px solid var(--line);padding:8px;margin:0}
  body.nav-open .main-nav{display:flex}.menu-btn{display:inline-flex}
  .hide-sm{display:none!important}
  .hero,.radar-wrap,.two-col,.dash-top,.coach,.grade{grid-template-columns:1fr}.hero-art{max-width:360px;width:100%;margin:auto}
  .grid,.grid.two,.grid.four,.agenda,.style-result{grid-template-columns:1fr}.lesson-grid{grid-template-columns:1fr 1fr}
  .flow{flex-direction:column}.arrow{transform:rotate(90deg)}.choice,.form{grid-template-columns:1fr}.form .wide{grid-column:auto}
  .sort-btns{grid-template-columns:1fr 1fr}.badge-row{grid-template-columns:repeat(4,1fr)}
  .slide{padding:26px 18px 44px}.display{font-size:40px}.quote{font-size:27px}
  .footer{padding:0 12px}.dots,.toolbar-note,.module-title{display:none}.deck-lesson{max-width:160px}
  .deck-side{width:100%;flex-basis:auto;left:0}
  .chat{height:70vh}.grade-list{position:static;max-height:240px}
  .lesson-head{flex-direction:column}.kpis{grid-template-columns:repeat(2,1fr)}
  .slider-row{grid-template-columns:110px 1fr 24px}
  .cert{padding:30px 18px}.cert-name{font-size:32px}
}
@media(max-width:480px){.lesson-grid{grid-template-columns:1fr}.live-scene .grid,.live-scene .agenda{grid-template-columns:1fr}.react-btn{font-size:20px}.action-btn.lg{width:100%}.card{padding:16px}.choice button{min-height:90px;padding:16px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media print{
  .app-top,.app-foot,.class-bar,#announce,.no-print,.toast{display:none!important}
  body{background:#fff;color:#000}.card{break-inside:avoid;border-color:#ccc}
  .cert{border-color:#999}.page,.cert-page{padding:0}
}

.ico{width:18px;height:18px;display:block;flex:none}.icon-btn.sm .ico{width:14px;height:14px}