@charset "UTF-8";
:root{--ink:#243b35;--muted:#7c8982;--green:#28634e;--lime:#dceca9;--paper:#fbfaf6;--line:#e6e8df;--orange:#dc8b53;--white:#fff;--font:"PingFang SC","Microsoft YaHei",system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:15px}button,input,select{font:inherit}button,a,input{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid #d68a51;outline-offset:4px}a{color:inherit;text-decoration:none}button{color:inherit}svg.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}.topbar{height:88px;padding:0 4.5%;background:#fffefa;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:12px;font-size:21px;font-weight:750;letter-spacing:1px}.brand small{display:block;font-size:13px;letter-spacing:2.8px;margin-top:4px;font-weight:500;color:#88938a}.brand-icon{width:42px;height:44px;display:grid;place-items:center;color:var(--green);background:#eaf0dc;border-radius:13px;transform:rotate(-7deg)}.brand-icon svg{width:29px;height:29px;transform:rotate(7deg)}.lesson-label{color:#7c877f;font-size:15px;display:flex;gap:14px;align-items:center}.lesson-label>span{height:12px;width:1px;background:#d4dace}.header-actions{display:flex;align-items:center;gap:24px}.role-switch{display:flex;background:#f0f1e9;padding:4px;border-radius:10px}.role-switch button{background:transparent;border:0;border-radius:7px;padding:9px 19px;color:#818b80;font-size:15px}.role-switch button.active{background:var(--green);color:white;box-shadow:0 2px 4px #1c443322}.avatar{border:1px solid #e1e5d8;background:#eeeadd;width:36px;height:36px;border-radius:50%;font-size:15px}main{max-width:1440px;margin:auto;padding:35px 4.5% 0}.lesson-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:29px}.eyebrow{display:flex;align-items:center;gap:7px;color:#75816f;font-size:15px;letter-spacing:2px}.tiny-square{width:6px;height:6px;background:#90ad56;transform:rotate(45deg)}h1{font-size:36px;font-weight:750;letter-spacing:2px;margin:10px 0 10px}.title-accent{position:relative;z-index:0}.title-accent:after{content:"";position:absolute;left:0;bottom:1px;width:100%;height:12px;background:#dfecb8;z-index:-1;transform:rotate(-3deg)}.title-spark{color:#a8bb74;font-size:34px;display:inline-block;margin-left:15px;vertical-align:middle;transform:rotate(12deg)}.lesson-heading p{margin:0;color:#8a9287;font-size:15px;letter-spacing:.2px}.class-meta{display:flex;flex-direction:column;align-items:flex-end;gap:14px}.class-tag{display:flex;align-items:center;gap:9px;border:1px solid #e3e6db;padding:10px 14px;border-radius:8px;background:#fffefa;font-size:15px}.class-tag b{font-weight:500}.class-tag svg{width:17px;height:17px;color:#8d9d79}.session-note{display:flex;gap:7px;align-items:center;color:#839078;font-size:15px}.session-note i{width:5px;height:5px;border-radius:50%;background:#7b9c50}.task-nav{display:grid;grid-template-columns:repeat(5,1fr) .9fr;gap:11px;margin-bottom:24px}.task-item{min-height:75px;display:flex;gap:11px;align-items:center;position:relative;text-align:left;padding:14px 15px;border:1px solid #e2e5d9;background:#fffefa;border-radius:12px;transition:background .2s,transform .2s}.task-item:hover{transform:translateY(-2px)}.task-item.active{background:var(--green);color:white;border-color:var(--green);box-shadow:0 5px 12px #285a4a18}.task-item .step-num{display:grid;place-items:center;font-size:18px;font-weight:550;flex-shrink:0;color:#94a38a;background:#f0f2e8;width:34px;height:34px;border-radius:10px}.task-item.active .step-num{background:#ffffff15;color:#dceca9}.task-item h3{font-size:16px;margin:0 0 5px;font-weight:600;white-space:nowrap}.task-item p{font-size:14px;margin:0;color:#9aa28e;white-space:nowrap}.task-item.active p{color:#bdd5c5}.step-status{position:absolute;right:9px;top:9px}.step-status svg{height:12px;width:12px;color:#aeb4a5}.step-status .live-dot{width:5px;height:5px;background:#d2e79f;display:block;border-radius:50%;margin:3px}.task-item.eval{background:#f1f0e6;border-style:dashed}.task-item.eval.active{background:var(--green);border-style:solid}.work-area{background:white;border:1px solid var(--line);border-radius:17px;overflow:hidden;box-shadow:0 4px 18px #354e3b03}.workspace-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:21px 25px;border-bottom:1px solid #edf0e7}.workspace-title{display:flex;gap:12px;align-items:center}.task-label{background:#edf3df;border-radius:5px;color:#68823e;padding:5px 8px;letter-spacing:1px;font-size:14px;white-space:nowrap}.workspace-title h2{font-size:20px;margin:0;font-weight:650}.small-tag{font-size:14px;border:1px solid #e6e9df;border-radius:5px;color:#a0a891;padding:5px 9px;white-space:nowrap}.workspace-body{display:grid;grid-template-columns:1.13fr 1fr;min-height:367px}.cube-pane{position:relative;margin:17px 0 17px 18px;border-radius:11px;overflow:hidden;background-color:#f6f8f0;background-image:radial-gradient(#dce4d3 .85px,transparent .85px);background-size:18px 18px;min-width:0;display:flex;flex-direction:column;align-items:center}.pane-kicker{position:absolute;left:18px;top:15px;display:flex;align-items:center;gap:6px;font-size:14px;color:#8e9c7f;z-index:1}.pane-kicker svg{width:14px;height:14px}.orbit-note{position:absolute;right:16px;top:18px;font-size:13px;letter-spacing:1.5px;color:#9ba58b}.cube-stage{width:100%;height:279px;flex:1;min-height:260px;touch-action:none;cursor:grab;user-select:none}.cube-stage:active{cursor:grabbing}.cube-stage polygon{stroke:#5c765b;stroke-width:1.3;stroke-linejoin:round;transition:fill .15s;cursor:pointer}.cube-stage polygon:hover{filter:brightness(1.06);stroke:#345e42;stroke-width:2.2}.cube-stage polygon.selected{stroke:var(--green);stroke-width:3;stroke-dasharray:6 3}.cube-stage text{font-family:var(--font);pointer-events:none;fill:#446348;font-size:15px}.cube-hint{position:absolute;bottom:64px;left:0;right:0;text-align:center;color:#7a8d69;font-size:14px;pointer-events:none}.cube-controls{display:flex;gap:7px;align-items:center;justify-content:center;padding:10px 0 14px;flex-shrink:0}.cube-controls button{height:30px;min-width:34px;padding:5px 10px;background:#ffffffbf;border:1px solid #e0e6d7;border-radius:6px;color:#697f5a;font-size:14px}.cube-controls svg{width:14px;height:14px}.cube-controls .control-divider{width:1px;height:15px;background:#dce3d3;margin:0 4px}.print-pane{padding:24px 26px 18px;display:flex;flex-direction:column;min-width:0}.print-pane-heading{display:flex;align-items:center;justify-content:space-between}.print-pane-heading h3{margin:0;font-size:16px;font-weight:600;display:flex;align-items:center;gap:8px}.print-pane-heading h3 svg{height:16px;width:16px;color:#86a259}.print-count{font-size:15px;color:#9aa38e}.print-count b{font-size:18px;color:var(--green);font-weight:600}.instruction{font-size:15px;color:#68785e;margin:12px 0 21px;line-height:1.7}.stamps{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;flex:1;min-height:142px}.stamp{position:relative;min-width:0;min-height:142px;border:1px dashed #dce2d1;background:#fdfdf9;border-radius:9px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;animation:appear .25s ease}.stamp.empty{color:#c1c8b5}.stamp.empty .empty-plus{font-size:25px;font-weight:200}.stamp.empty small{font-size:13px;letter-spacing:1px}.stamp.filled{border-style:solid;border-color:#dce6cc;background:#f6f9ee}.stamp-drawing{display:flex;align-items:center;justify-content:center;height:72px;width:85%;max-width:120px}.stamp-shape{border:1.3px solid #6a8958;background:#d7e7b8;box-shadow:3px 3px 0 #a2bb782b;position:relative}.stamp-shape::after{content:"";position:absolute;inset:5px;border:1px dashed #9fba7e;opacity:.55}.stamp small{font-size:14px;color:#7a8d67}.stamp-remove{position:absolute;right:5px;top:5px;width:23px;height:23px;display:grid;place-items:center;border:0;background:transparent;color:#91a27e;border-radius:4px}.stamp-remove:hover{background:#e4ecd7}.stamp-remove svg{height:13px;width:13px}.print-actions{display:flex;align-items:center;justify-content:space-between;margin-top:22px;gap:12px}.quiet-button{background:none;border:0;padding:7px 0;color:#718164;font-size:14px;display:flex;gap:5px;align-items:center}.quiet-button svg{width:13px;height:13px}.primary{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:38px;border:0;border-radius:7px;background:var(--green);color:white;padding:10px 19px;font-size:15px}.primary:hover{background:#1f523f}.primary svg{height:15px;width:15px}.secondary{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;border:1px solid #dce3d4;border-radius:7px;background:#fffefa;color:#547447;padding:9px 14px;font-size:15px}.secondary svg{width:14px;height:14px}.workspace-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 25px;background:#fdfdf9;border-top:1px solid #edf0e7;color:#6d7b63;font-size:14px}.workspace-footer>span{display:flex;align-items:center;gap:7px}.workspace-footer svg{width:13px;height:13px}.student-badge{color:var(--green)!important}.student-badge button{border:0;background:none;color:#718d58;font-size:14px;text-decoration:underline}.teacher-overview{margin-top:25px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.section-heading h2{font-size:18px;margin:0;display:flex;align-items:center;gap:10px}.section-heading h2 .icon{width:18px;height:18px;color:#6d8c57}.section-heading h2 small{font-size:13px;color:#9ba58d;font-weight:400;background:#eef1e6;border-radius:4px;padding:4px 7px}.overview-actions{display:flex;gap:15px;align-items:center}.text-button{border:0;background:none;color:#7f8e71;padding:5px 0;font-size:14px;display:inline-flex;align-items:center;gap:6px}.text-button svg{height:13px;width:13px}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat-card{border:1px solid var(--line);border-radius:11px;padding:16px 18px;background:#fffefa;position:relative}.stat-label{display:flex;justify-content:space-between;align-items:center;color:#929a88;font-size:14px}.stat-label svg{width:16px;height:16px;color:#9cac82}.stat-number{display:flex;align-items:baseline;gap:7px;margin:10px 0 8px;line-height:1}.stat-number b{font-size:32px;font-weight:550;font-family:system-ui,sans-serif;letter-spacing:-1px}.stat-number span{font-size:14px;color:#a4aa98}.stat-foot{font-size:13px;color:#748168}.stat-card.focus{background:#eef3e4;border-color:#e0e8d2}.stat-card.attention .stat-number b{color:#c58653}.class-details{display:grid;grid-template-columns:.82fr 1.7fr;gap:17px;margin-top:17px}.distribution,.student-list{background:#fffefa;border:1px solid var(--line);border-radius:11px;padding:18px 19px}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.panel-title h3{margin:0;font-size:15px;font-weight:600}.panel-title small{font-size:13px;color:#75826a}.distribution-row{display:grid;grid-template-columns:83px 1fr 29px;gap:9px;align-items:center;margin-top:16px;font-size:14px;color:#8d9881}.dist-bar{height:5px;border-radius:3px;background:#eff1e8;overflow:hidden}.dist-bar i{display:block;height:100%;border-radius:3px;background:#9fb978}.distribution-row:nth-of-type(3) .dist-bar i{background:#d4af81}.distribution-row:nth-of-type(4) .dist-bar i{background:#cbd2bd}.distribution-row b{font-size:14px;font-weight:500;text-align:right;color:#7b8d68}.distribution-note{line-height:1.8;font-size:13px;color:#77836d;background:#f6f7ef;padding:11px;border-radius:6px;margin:19px 0 0}.list-filter{display:flex;gap:3px}.list-filter button{border:0;background:transparent;color:#a2aa96;font-size:13px;border-radius:4px;padding:4px 7px}.list-filter button.active{color:#597244;background:#eaf0dd}table{width:100%;border-collapse:collapse;font-size:14px;text-align:left}th{font-size:13px;font-weight:400;color:#738167;padding:0 4px 10px;border-bottom:1px solid #edf0e7}td{padding:10px 4px;border-bottom:1px solid #f0f1eb;color:#88947a}td:first-child{color:#536c4b;font-weight:500}tbody tr:last-child td{border:0}tbody tr{cursor:pointer}tbody tr:hover{background:#f4f7ec}.status-pill{display:inline-flex;align-items:center;gap:4px;font-size:13px;color:#92a078}.status-pill i{height:4px;width:4px;border-radius:50%;background:#b5c0a0}.status-pill.submitted{color:#6c8b4d}.status-pill.submitted i{background:#92ad68}.status-pill.warn{color:#bd915f}.status-pill.warn i{background:#c49b67}.small-faces{display:flex;gap:4px;align-items:center}.small-face{height:13px;background:#e1eacb;border:1px solid #a5b981;border-radius:1px;display:block}.row-link{border:0;background:none;color:#7c9464;padding:2px;font-size:13px}footer{display:flex;justify-content:space-between;gap:15px;margin:25px 0 20px;font-size:13px;color:#7c8872;align-items:center}footer>span{display:flex;gap:7px;align-items:center}.footer-mark{font-size:21px;color:#acbc8e}footer button{font-size:13px;display:flex;gap:6px;align-items:center;border:0;background:transparent;color:#718066}footer svg{width:12px!important;height:12px!important}.modal-backdrop{position:fixed;inset:0;background:#1e382c55;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:30;padding:20px}.modal{width:460px;max-width:100%;background:#fffefa;border:1px solid #e5e9dc;border-radius:19px;padding:29px;box-shadow:0 20px 90px #1e382c22;max-height:90vh;overflow:auto;position:relative}.modal.wide{width:560px}.modal-close{position:absolute;top:16px;right:16px;border:0;border-radius:6px;background:#f1f3e9;color:#8e9e7e;height:28px;width:28px}.modal-close svg{width:15px;height:15px}.modal h2{font-size:25px;margin:8px 0 11px}.modal .eyebrow{font-size:13px}.modal p{font-size:15px;line-height:1.9;color:#6d7f60}.modal label{display:block;font-size:15px;color:#6d815c;margin:21px 0 8px}.modal input{width:100%;padding:13px 14px;border-radius:8px;border:1px solid #d8e0cc;background:#fff;font-size:15px;color:var(--ink)}.modal .primary{width:100%;margin-top:23px;min-height:43px}.modal-note{background:#f1f5e8;border-radius:8px;padding:11px 14px;font-size:14px!important}.modal-error{color:#b9784e!important;min-height:20px;margin:6px 0 0!important;font-size:15px!important}.modal .stamp{min-height:120px}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;z-index:60;background:#244b3d;color:#fff;border-radius:9px;padding:13px 21px;box-shadow:0 8px 30px #233f3425;transition:all .2s;font-size:15px;max-width:90%;text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}.empty-task{min-height:350px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:35px;gap:10px}.empty-task .placeholder-icon{height:70px;width:70px;background:#edf3e0;color:#91a56e;display:grid;place-items:center;border-radius:22px;margin-bottom:7px}.placeholder-icon svg{height:33px;width:33px}.empty-task h2{font-size:24px;margin:7px 0}.empty-task p{font-size:15px;line-height:1.9;color:#718164;max-width:390px;margin:0 0 12px}.release-strip{display:flex;gap:12px;align-items:center}.locked-notice{background:#f5f3e9;color:#9b9378;padding:10px 15px;border-radius:7px;font-size:15px;display:flex;gap:8px;align-items:center}.release-strip .primary{min-height:31px;padding:7px 12px;font-size:14px}.released-chip{font-size:14px;color:#82a256;display:flex;align-items:center;gap:5px}.released-chip svg{height:13px;width:13px}.evaluation{padding:30px;display:grid;grid-template-columns:.9fr 1.1fr;gap:30px;min-height:340px}.self-review{padding:24px;border-radius:12px;background:#f3f6e9}.self-review h3{font-size:21px;margin:6px 0 9px}.self-review p{font-size:15px;line-height:1.9;color:#8f9d80}.stars{display:flex;gap:7px;margin:20px 0}.stars button{font-size:36px;line-height:1;border:0;padding:4px;background:none;color:#d9dfc9}.stars button.chosen{color:#d6a655}.review-chips{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:15px}.review-chips button{border:1px solid #dce4cd;background:white;border-radius:6px;padding:8px;font-size:14px;color:#9aa788}.review-chips button.chosen{background:#e0ebc8;border-color:#a8bd81;color:#567143}.review-result{display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.review-result h3{font-size:20px;margin:10px 0}.review-result p{font-size:15px;color:#6e7f61;line-height:2}.report-badge{display:flex;gap:6px;align-items:center;color:#91a66e;font-size:14px}.report-badge svg{width:16px;height:16px}.result-quote{padding:18px;background:#f8f9f1;border-left:3px solid #afc58b;border-radius:0 8px 8px 0}.report-limit{font-size:13px!important;color:#7a866f!important}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:15px 0}.detail-grid>div{background:#f1f5e8;border-radius:8px;padding:12px}.detail-grid small{display:block;color:#94a181;font-size:14px;margin-bottom:6px}.detail-grid b{font-size:16px;font-weight:500}.modal-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:19px}.modal-actions .secondary{flex:1}.empty-table{text-align:center;padding:28px;color:#a4ad97}.teacher-notice{margin-top:17px;border:1px solid #e3e9d8;background:#f4f7ee;padding:15px 18px;border-radius:9px;font-size:15px;line-height:1.9;color:#8b9b7c}.pagination-note{margin-top:7px;color:#718066;font-size:13px;text-align:right}.face-key{display:flex;align-items:center;gap:5px;font-size:14px;margin-top:9px;color:#91a079}.face-key span{height:6px;width:6px;background:#b4ca8f;border-radius:50%}@keyframes appear{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1500px){main{padding-top:45px}.workspace-body{min-height:410px}.cube-stage{min-height:300px}.stamps{min-height:160px}.task-item{min-height:83px}.lesson-heading{margin-bottom:34px}.teacher-overview{margin-top:30px}}
@media(max-width:1100px){.task-item{padding:12px 10px;gap:8px}.task-item .step-num{width:28px;height:30px;font-size:16px}.task-item h3{font-size:15px}.task-item p{font-size:13px}.task-nav{gap:7px}.print-pane{padding:23px 18px 18px}.stamps{gap:7px}.workspace-body{grid-template-columns:1.05fr 1fr}.class-details{grid-template-columns:.9fr 1.5fr}}
@media(max-width:820px){.topbar{height:74px;padding:0 4%;gap:10px}.lesson-label{display:none}.brand{font-size:18px;gap:8px}.brand small{font-size:12px;letter-spacing:2px}.brand-icon{width:34px;height:36px}.header-actions{gap:12px}.role-switch button{padding:8px 12px}main{padding:26px 4% 0}h1{font-size:32px}.class-tag{font-size:14px}.lesson-heading p{font-size:15px}.task-nav{grid-template-columns:repeat(3,1fr);gap:8px}.task-item{min-height:63px;padding:11px 14px}.task-item .step-num{width:31px;height:31px}.workspace-body{grid-template-columns:1fr 1fr;min-height:330px}.cube-pane{margin:12px 0 12px 12px}.cube-stage{height:240px;min-height:230px}.workspace-title h2{font-size:17px}.workspace-header{padding:18px}.stamps{grid-template-columns:1fr;gap:6px;min-height:0}.stamp{min-height:55px;flex-direction:row;gap:12px;justify-content:flex-start;padding:7px 12px}.stamp-drawing{height:37px;width:72px}.stamp.empty{flex-direction:row;justify-content:center;gap:9px}.stamp.empty .empty-plus{font-size:20px}.stamp-remove{right:4px;top:calc(50% - 11px)}.stamp-shape{max-height:35px;max-width:60px}.instruction{margin:10px 0 13px;font-size:14px}.print-pane{padding:19px 17px 15px}.print-actions{margin-top:14px}.primary{padding:9px 13px;font-size:15px}.stat-grid{gap:9px}.stat-card{padding:14px}.stat-number b{font-size:28px}.stat-label{font-size:13px}.stat-foot{font-size:12px}.class-details{grid-template-columns:1fr}.distribution{display:none}.modal .stamps{grid-template-columns:repeat(3,1fr)}.modal .stamp{flex-direction:column;padding:15px 5px;justify-content:center}.modal .stamp-drawing{height:65px;width:80%}.evaluation{padding:21px;gap:20px}.stars{gap:1px}.stars button{font-size:30px}}
@media(max-width:560px){.topbar{height:69px}.avatar{display:none}.brand{font-size:17px}.brand small{font-size:11px}.role-switch button{font-size:14px;padding:8px 10px}main{padding-top:22px}.lesson-heading{align-items:flex-start;gap:10px;margin-bottom:21px}.eyebrow{font-size:13px;letter-spacing:1px}h1{font-size:28px;letter-spacing:1px;margin-top:9px}.title-spark{font-size:24px;margin-left:9px}.lesson-heading p{font-size:14px;max-width:215px;line-height:1.8}.class-meta{gap:8px;margin-top:20px}.class-tag{padding:7px;font-size:13px;gap:4px}.class-tag svg{display:none}.session-note{font-size:12px;gap:4px}.task-nav{gap:6px;margin-bottom:17px}.task-item{padding:10px;min-height:58px;gap:8px;border-radius:9px}.task-item h3{font-size:15px}.task-item p{font-size:12px}.task-item .step-num{width:24px;height:27px;font-size:15px}.step-status{top:5px;right:5px}.step-status svg{width:9px;height:9px}.workspace-header{align-items:flex-start;padding:15px;gap:8px}.workspace-title{gap:7px;align-items:flex-start}.workspace-title h2{font-size:15px;line-height:1.6}.task-label{font-size:12px;padding:4px 5px;margin-top:2px}.small-tag{font-size:12px;padding:5px}.workspace-body{grid-template-columns:1fr}.cube-pane{margin:12px 12px 0}.cube-stage{min-height:235px;height:235px}.print-pane{padding:20px 16px}.stamps{grid-template-columns:repeat(3,1fr);gap:7px;min-height:125px}.stamp{flex-direction:column;justify-content:center;padding:12px 3px;gap:12px}.stamp.empty{flex-direction:column;gap:12px}.stamp-drawing{width:85%;height:57px}.stamp-shape{max-height:57px;max-width:90px}.stamp-remove{top:3px;right:3px}.print-actions{margin-top:18px}.workspace-footer{font-size:13px;padding:11px 15px;flex-wrap:wrap}.teacher-overview{margin-top:22px}.section-heading h2{font-size:15px;gap:6px}.section-heading h2 small{font-size:12px}.overview-actions{gap:9px}.overview-actions .text-button{font-size:13px}.stat-grid{grid-template-columns:1fr 1fr;gap:9px}.stat-card{padding:13px 15px}.stat-number{margin:10px 0 7px}.stat-number b{font-size:30px}.stat-foot{font-size:13px}.stat-label{font-size:14px}.student-list{padding:16px 12px}.panel-title small{font-size:12px}.list-filter button{padding:4px 6px}td,th{font-size:13px}.student-list td:nth-child(3),.student-list th:nth-child(3){display:none}footer{font-size:12px;margin:20px 0;align-items:flex-start}footer button{font-size:12px;max-width:150px}.evaluation{grid-template-columns:1fr;padding:17px;gap:10px}.evaluation .primary{width:100%}.self-review{padding:18px}.review-result{padding:10px 5px}.modal{padding:24px}.modal h2{font-size:23px}.modal-actions{gap:7px}.release-strip{gap:6px}.release-strip .primary{font-size:13px;padding:6px 8px}.released-chip{font-size:12px}.class-details{margin-top:12px}.empty-task{min-height:320px;padding:25px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
.ai-error{color:#ac714b!important;background:#faf0e5;padding:12px 14px;border-radius:7px;font-size:15px!important}.stars button:disabled{opacity:.6}@media(pointer:coarse){.cube-controls button{min-height:44px;min-width:44px}.cube-hint{bottom:77px}.stamp-remove{width:30px;height:30px}.stars button{min-width:40px;min-height:44px}.review-chips button{min-height:40px}}
.decorative-stars span{font-size:36px;line-height:1;padding:4px;color:#d9dfc9}.decorative-stars span.chosen{color:#d6a655}

/* Comfortable classroom type: 14–15px body and 16px action buttons. */
body{font-size:15px;line-height:1.6}
.topbar{min-height:88px;height:auto;padding-top:13px;padding-bottom:13px}
.brand{font-size:21px}.brand small{font-size:11px;letter-spacing:2.4px}
.lesson-label,.class-tag,.session-note{font-size:14px}
.role-switch button{font-size:16px;min-height:40px}.lesson-heading p{font-size:15px;line-height:1.8}
.task-item{min-height:84px}.task-item h3{font-size:16px;line-height:1.45}.task-item p{font-size:14px;line-height:1.5;white-space:normal}.task-item:disabled{opacity:.7}
.workspace-header{flex-wrap:wrap;row-gap:10px}.workspace-title{min-width:0}.workspace-title h2{font-size:20px;line-height:1.6}
.task-label,.small-tag,.released-chip{font-size:14px}.release-strip .primary{font-size:16px;min-height:40px}
.pane-kicker,.orbit-note,.cube-hint{font-size:14px}.orbit-note{letter-spacing:.5px}.cube-stage text{font-size:16px}
.cube-controls button{font-size:14px;min-height:40px;min-width:40px}.cube-hint{bottom:73px}
.print-pane-heading h3{font-size:18px}.print-count{font-size:15px}.print-count b{font-size:22px}
.instruction{font-size:15px;line-height:1.85;margin:14px 0 21px;color:#68785e}
.stamp small,.stamp.empty small{font-size:14px;letter-spacing:.5px}
.primary,.secondary{font-size:16px;min-height:44px}.quiet-button{font-size:14px;min-height:40px}
.workspace-footer,.workspace-footer button{font-size:14px;line-height:1.7}.workspace-footer{flex-wrap:wrap;padding:13px 25px}
.section-heading{flex-wrap:wrap;row-gap:10px}.section-heading h2{font-size:20px}.section-heading h2 small{font-size:13px}.text-button{font-size:14px;min-height:36px}
.stat-label{font-size:14px}.stat-number b{font-size:32px}.stat-number span,.stat-foot{font-size:13px}.stat-foot{line-height:1.8}
.panel-title{flex-wrap:wrap}.panel-title h3{font-size:16px}.panel-title small{font-size:13px}
.distribution-row{font-size:14px;grid-template-columns:100px 1fr 36px;gap:8px}.distribution-row b{font-size:14px}.distribution-note{font-size:14px;line-height:1.85}
.student-list{min-width:0;overflow-x:auto}.list-filter button{font-size:14px;min-height:34px;padding:5px 8px}
table,td{font-size:14px;line-height:1.7}th{font-size:13px}.status-pill,.row-link{font-size:14px}.row-link{min-height:32px;white-space:nowrap}.pagination-note{font-size:13px;line-height:1.8}
footer,footer button{font-size:13px;line-height:1.8}
.modal p,.modal label{font-size:15px}.modal input{font-size:16px;min-height:46px}.modal-note,.modal-error{font-size:14px!important}.report-limit{font-size:13px!important}.ai-error{font-size:14px!important}
.self-review p,.review-result p{font-size:15px;line-height:1.95}.self-review h3,.review-result h3{font-size:21px}.review-chips button{font-size:14px;min-height:40px}.report-badge{font-size:14px}
.detail-grid small{font-size:14px}.detail-grid b{font-size:16px}.empty-task p{font-size:15px}.locked-notice{font-size:15px}
@media(max-width:1000px){.task-nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.class-details{grid-template-columns:1fr}.distribution{display:block}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.brand{font-size:20px}.brand small{font-size:10px}.role-switch button{font-size:16px}.task-item h3{font-size:16px}.task-item p{font-size:14px}.workspace-title h2{font-size:20px}.instruction{font-size:15px}.primary,.secondary{font-size:16px}.cube-stage{min-height:265px}.stamp,.stamp.empty{min-height:70px}.stamp-drawing{height:45px;width:80px}.stat-label{font-size:14px}.stat-foot{font-size:13px}.student-list table{min-width:500px}.evaluation{grid-template-columns:1fr}}
@media(max-width:700px){.workspace-body{grid-template-columns:1fr}.cube-pane{margin:14px 14px 0}.cube-stage{min-height:280px;height:280px}.stamps{grid-template-columns:repeat(3,minmax(0,1fr));min-height:140px;gap:9px}.stamp,.stamp.empty{flex-direction:column;justify-content:center;padding:14px 5px;min-height:140px}.stamp-drawing{height:65px;width:90%}.stamp-remove{top:4px;right:4px}}
@media(max-width:560px){
 .topbar{padding:12px 4%;gap:8px}.brand{font-size:17px}.brand small{font-size:10px;letter-spacing:1.8px}.brand-icon{width:30px;height:34px}.header-actions{gap:0}.role-switch button{font-size:15px;padding:7px 10px}
 .lesson-heading{flex-direction:column;gap:13px}.lesson-heading p{max-width:none;font-size:15px}.class-meta{margin-top:0;flex-direction:row;align-items:flex-start;flex-wrap:wrap;gap:9px}.class-tag,.session-note{font-size:13px}h1{font-size:30px}.eyebrow{font-size:13px}
 .task-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.task-item{min-height:80px;padding:11px 10px}.task-item h3{font-size:16px}.task-item p{font-size:13px}.task-item .step-num{font-size:18px;width:29px;height:33px}
 .workspace-title{flex-wrap:wrap;gap:8px}.workspace-title h2{font-size:20px}.task-label,.small-tag,.released-chip{font-size:13px}.release-strip .primary{font-size:16px}
 .pane-kicker,.orbit-note{font-size:13px}.cube-hint{font-size:14px}.cube-controls{gap:6px}.cube-controls button{font-size:14px;padding:7px}.cube-controls .control-divider{margin:0}
 .print-pane-heading h3{font-size:18px}.print-count{font-size:15px}.instruction{font-size:15px}.stamp small,.stamp.empty small{font-size:14px}.workspace-footer,.workspace-footer button{font-size:14px}
 .section-heading h2{font-size:20px}.section-heading h2 small{font-size:12px}.overview-actions{gap:15px;flex-wrap:wrap}.overview-actions .text-button{font-size:14px}
 .stat-label{font-size:14px}.stat-number b{font-size:32px}.stat-foot,.stat-number span{font-size:13px}.panel-title h3{font-size:16px}.panel-title small{font-size:12px}
 .list-filter button{font-size:14px}.student-list td:nth-child(3),.student-list th:nth-child(3){display:table-cell}td{font-size:14px}th{font-size:13px}.pagination-note{font-size:13px}
 footer{flex-direction:column;align-items:flex-start;gap:8px}footer,footer button{font-size:13px}footer button{max-width:none}
 .modal h2{font-size:25px}.modal p,.modal label{font-size:15px}.modal-note{font-size:14px!important}.review-chips button{font-size:14px}.report-limit{font-size:13px!important}
}
