:root{--ink:#263f3b;--muted:#84918a;--green:#285b4f;--deep:#214d43;--light:#eef3ee;--line:#e6ebe6;--paper:#f6f8f5;--gold:#c29456;--white:#fff;--radius:17px}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:'Segoe UI','Microsoft YaHei','PingFang SC',sans-serif;font-size:13px;background:var(--paper)}button,input,textarea,select{font:inherit}button{cursor:pointer;transition:background .18s,transform .18s}button:disabled{cursor:wait;opacity:.55}button:hover:not(:disabled){filter:brightness(.96)}button:focus-visible,a:focus-visible{outline:2px solid #83a796;outline-offset:3px}input,textarea,select{outline:none;color:var(--ink)}input:focus,textarea:focus,select:focus{border-color:#85a797!important;box-shadow:0 0 0 3px #285b4f0d}button{border:0}h1,h2,h3,p{margin:0}h1{font-size:27px;letter-spacing:-.5px;line-height:1.5;font-weight:650}h3{font-size:15px;font-weight:600}label{font-size:11px;color:#7b8c83}input,select{height:42px;padding:0 12px;background:#f9fbf8;border:1px solid #dfe7df;border-radius:8px;width:100%}textarea{resize:none}.primary{background:var(--deep);color:#fff;border:1px solid var(--deep);border-radius:8px;padding:11px 17px;font-weight:500}.secondary{background:#fff;color:var(--green);border:1px solid #dce5dc;border-radius:8px;padding:10px 14px}.text-button{color:var(--green);background:none;padding:5px 0;font-size:11px}.eyebrow{font-size:9px;font-weight:600;letter-spacing:2px;color:#8c9b8d;margin-bottom:10px}.headline-dot{color:#c29b60;margin-left:3px}.soft-tag{background:#eef3ee;color:#688074;font-size:10px;padding:6px 10px;border-radius:6px;white-space:nowrap}.brand-mark{display:inline-grid;place-items:center;background:#285b4f;color:#fff;width:34px;height:34px;flex-shrink:0;border-radius:10px;font-family:'Microsoft YaHei',sans-serif;font-size:19px;font-weight:600}.workspace{display:grid;grid-template-columns:190px minmax(360px,1fr) 230px;height:100vh;overflow:hidden}.sidebar{display:flex;flex-direction:column;border-right:1px solid var(--line);background:#fafcf9;padding:30px 20px 20px}.brand{display:flex;align-items:center;gap:9px;font-size:16px;font-weight:650;color:var(--ink);white-space:nowrap}.brand small{display:block;font-weight:400;font-size:9px;margin-top:5px;color:#8a988b;letter-spacing:.5px}.side-label{font-size:10px;color:#9aa49b;margin:40px 12px 14px}.sidebar nav{display:grid;gap:6px}.nav-item{display:flex;align-items:center;position:relative;gap:12px;width:100%;text-align:left;padding:12px 13px;border-radius:8px;background:none;color:#7c8c80;font-size:12px}.nav-item>span:first-child{font-size:17px;width:17px;text-align:center}.nav-item.active{color:var(--deep);background:#eaf1e9;font-weight:600}.nav-dot{height:6px;width:6px;border-radius:50%;background:#c29350;position:absolute;right:11px}.side-note{margin-top:auto;margin-bottom:35px;border:1px solid #e6e9dc;background:#f4f6eb;border-radius:12px;padding:17px 14px}.small-spark{display:block;font-size:23px;color:#a99e66;margin-bottom:9px}.side-note strong{font-size:11px;font-weight:500}.side-note p{font-size:10px;line-height:1.9;color:#8b957e;margin-top:7px}.side-footer{font-size:9px;color:#8c998b;display:flex;gap:7px;align-items:center;flex-wrap:wrap;padding:0 5px}.side-footer i,.presence-card i,.device-chip i{display:inline-block;height:6px;width:6px;background:#aab4a7;border-radius:50%;flex-shrink:0}.live{background:#5a9f72!important}.side-footer small{display:block;width:100%;margin-left:13px;font-size:8px;color:#afb7ac;margin-top:3px}.main-area{padding:29px 29px 24px;min-width:0;overflow:hidden}.page{display:none;height:100%;flex-direction:column;min-height:0}.page.active{display:flex}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px;gap:10px;flex-shrink:0}.page-header p{font-size:11px;color:#8a988d;line-height:1.8;margin-top:7px}.conversation{background:#fff;border:1px solid var(--line);border-radius:var(--radius);display:flex;flex:1;flex-direction:column;overflow:hidden;min-height:0}.conversation-head{height:73px;display:flex;align-items:center;gap:12px;padding:15px 20px;border-bottom:1px solid #edf0ea;flex-shrink:0}.mini-teacher,.message-avatar{background:#ecf1e8;border-radius:12px;overflow:hidden;flex-shrink:0}.mini-teacher{width:39px;height:41px}.mini-teacher img{width:54px;margin:-3px -7px}.conversation-head strong{font-weight:600;font-size:12px}.conversation-head>div>span{display:block;color:#95a092;font-size:10px;margin-top:5px}.classroom-pill{margin-left:auto;border:1px solid #e6ebe3;border-radius:6px;color:#8b9a87;font-size:9px;padding:5px 9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}.conversation-head>.soft-tag{margin-left:auto}.messages{flex:1;overflow:auto;padding:21px 20px 25px;min-height:160px;scrollbar-width:thin;scrollbar-color:#dce5da transparent}.date-divider{text-align:center;font-size:9px;color:#a7b1a2;margin-bottom:25px;margin-top:3px}.message{display:flex;align-items:flex-start;gap:10px;margin-bottom:21px}.message.own{flex-direction:row-reverse}.message-avatar{width:31px;height:33px;border-radius:9px;display:grid;place-items:center;font-size:12px;color:#778b78;background:#e9efe7}.message-avatar img{width:43px;margin-top:-2px}.message-content{max-width:calc(100% - 44px);display:flex;flex-direction:column;align-items:flex-start}.own .message-content{align-items:flex-end}.message-meta{color:#a1aa9b;font-size:9px;margin-bottom:6px}.message-box{padding:12px 15px;border-radius:0 12px 12px 12px;background:#f2f5ef;border:1px solid #edf0e9;max-width:100%;overflow:hidden}.message-box>p{font-size:12px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere}.own .message-box{border-radius:12px 0 12px 12px;background:#e6eee4;border-color:#e0e9de}.interaction-label{display:block;font-size:9px;color:#92a17a;margin-top:8px}.quick-prompts{display:flex;flex-wrap:wrap;gap:6px;padding:11px 16px 12px;border-top:1px solid #f0f3eb}.quick-prompts button{font-size:9px;color:#7b8d74;border-radius:6px;background:#f8faf6;border:1px solid #e9eee3;padding:6px 8px}.composer{padding:15px 17px;border-top:1px solid #e9eee5;flex-shrink:0}.composer textarea{width:100%;border:0;background:transparent;line-height:1.8;font-size:12px;padding:1px 2px;min-height:49px;max-height:100px;box-shadow:none!important}.composer textarea::placeholder{color:#b2bbad}.composer-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:9px}.composer-tools{display:flex;align-items:center;gap:11px}.composer-tools button{color:#7d8c76;font-size:10px;padding:4px 0;background:none;white-space:nowrap}.composer-tools span{font-size:8px;color:#bdc3b6}.send-button{padding:8px 12px;font-size:10px;white-space:nowrap}.recording{color:#b94c42!important}.empty-chat{height:100%;min-height:215px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#6c8774}.empty-icon{background:#eef3e8;width:51px;height:51px;display:grid;place-items:center;border-radius:17px;font-size:25px;color:#7c9977;margin-bottom:18px}.empty-chat h3{font-weight:500;font-size:14px}.empty-chat p{font-size:10px;line-height:1.9;color:#9aa695;max-width:270px;margin-top:11px}.teacher-card{border-left:1px solid #e8ece3;background:#f0f4ed;padding:30px 20px 20px;text-align:center;display:flex;flex-direction:column;align-items:center;overflow:auto}.card-eyebrow{font-size:10px;color:#839b7e;letter-spacing:1px}.teacher-portrait{position:relative;margin-top:20px;width:185px;height:225px;display:flex;justify-content:center;align-items:center}.teacher-portrait:before{content:'';position:absolute;width:154px;height:154px;border-radius:50%;background:#e4ecdf;top:39px;left:16px}.teacher-portrait img{position:relative;height:225px;width:193px;z-index:1}.portrait-orbit{position:absolute;border:1px solid #dce6d2;border-radius:50%;width:172px;height:172px;top:30px;left:7px}.orbit-two{height:190px;width:190px;top:21px;left:-2px;border-style:dashed;opacity:.5}.teacher-label{font-size:8px;letter-spacing:1px;background:#e3ebdc;color:#8d9d7a;padding:5px 10px;border-radius:15px;margin-top:5px}.teacher-card h2{font-size:23px;font-weight:600;margin-top:13px}.teacher-card>p{font-size:10px;color:#8d9d86;margin-top:7px}.teacher-quote{position:relative;font-family:'Microsoft YaHei',sans-serif;font-size:14px;color:#6c8361;line-height:1.9;margin:26px 0 25px;font-weight:400}.teacher-quote span{position:absolute;right:-28px;top:5px;color:#b8b17e;font-size:18px}.presence-card{display:flex;align-items:center;gap:10px;text-align:left;border:1px solid #e1e8da;padding:11px;border-radius:10px;background:#f6f8f1;width:100%}.presence-card strong{font-size:9px;color:#809576;font-weight:500}.presence-card span{display:block;font-size:8px;color:#a0ad95;margin-top:4px}.teacher-features{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:13px 5px;margin-top:25px;font-size:9px;color:#879c7c;text-align:left;padding:0 8px}.right-bottom{margin-top:auto;padding-top:25px;font-size:9px;line-height:1.9;color:#a0ac94;letter-spacing:1px}.right-bottom small{font-size:7px;letter-spacing:1.3px;color:#b6bea9}.file-list,.connection-cards{overflow:auto;min-height:0;scrollbar-width:thin;scrollbar-color:#dce5da transparent;padding-right:2px}.setting-card{padding:22px;background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:15px}.card-heading{display:flex;align-items:flex-start;gap:11px;margin-bottom:20px}.number-chip{background:#edf3e8;color:#839974;border-radius:9px;height:31px;width:31px;display:grid;place-items:center;font-size:11px;flex-shrink:0}.card-heading h3{font-size:13px;font-weight:600;margin-top:1px}.card-heading p,.compact-card p{font-size:10px;line-height:1.8;color:#93a087;margin-top:5px}.pairing-layout{display:flex;gap:19px;align-items:flex-start;margin-bottom:20px}.qr{width:125px;height:125px;object-fit:contain;flex-shrink:0;border:1px solid #e8ede4;border-radius:10px;padding:7px;background:#fff}.pairing-layout>div{flex:1;min-width:0}.pairing-layout label{display:block;margin-bottom:6px;font-size:9px}.pairing-layout select{height:34px;font-size:10px;background:#f8faf5}.pair-code{font-family:Consolas,monospace;letter-spacing:2px;font-size:20px;font-weight:600;color:#456d4d;margin:8px 0;overflow-wrap:anywhere}.muted{font-size:9px;line-height:1.9;color:#9ca890;margin-top:11px}.settings-form{display:flex;flex-direction:column;gap:8px}.settings-form label:not(:first-child){margin-top:7px}.settings-form input{font-size:11px}.form-actions{display:flex;gap:9px;margin-top:10px;flex-wrap:wrap}.form-actions button{font-size:10px}.compact-card{display:flex;align-items:center;justify-content:space-between}.compact-card h3{font-size:13px}.toggle input{position:absolute;opacity:0;width:1px;height:1px}.toggle span{display:block;width:35px;height:21px;border-radius:12px;background:#d9e2d2;position:relative;cursor:pointer}.toggle span:after{content:'';position:absolute;left:3px;top:3px;width:15px;height:15px;background:#fff;border-radius:50%;transition:left .2s}.toggle input:checked+span{background:#527f53}.toggle input:checked+span:after{left:17px}.toggle input:focus-visible+span{outline:2px solid #456d4d}.quiet-note{font-size:10px;color:#91a184;line-height:2;padding:12px 3px}.library-row{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid #e5ebe0;padding:18px;border-radius:12px;margin-bottom:11px}.library-detail{flex:1;min-width:0}.library-detail strong{font-size:12px;font-weight:500;display:block;overflow-wrap:anywhere}.library-detail span{display:block;font-size:9px;color:#9ca991;margin-top:6px}.library-row button{font-size:10px;flex-shrink:0}.file-symbol{width:34px;height:38px;display:grid;place-items:center;background:#f3f4e6;color:#ac9e69;border:1px solid #e9e9d7;border-radius:8px;font-size:22px;flex-shrink:0}.file-card{display:flex;align-items:center;gap:10px;max-width:100%;min-width:200px}.file-detail{flex:1;min-width:0}.file-detail strong{font-size:10px;font-weight:500;display:block;overflow-wrap:anywhere}.file-detail span{font-size:9px;color:#99a489;display:block;margin-top:4px}.file-save{background:#ffffff80;color:#748964;font-size:9px;white-space:nowrap;border:1px solid #dce5d2;border-radius:5px;padding:6px 8px}.attachment-image{max-width:100%;width:auto;max-height:230px;object-fit:contain;border-radius:7px;display:block;margin-bottom:10px}.attachment-media{width:100%;max-width:340px;max-height:250px;display:block;margin-bottom:11px;border-radius:7px}.empty-files{padding:65px 20px;text-align:center}.empty-files .empty-icon{margin-left:auto;margin-right:auto}.empty-files p{font-size:11px;color:#95a488;margin-top:12px;line-height:1.8}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#24483fee;color:#fff;box-shadow:0 5px 20px #163a3620;border-radius:10px;padding:12px 20px;max-width:calc(100vw - 30px);font-size:12px;z-index:100;line-height:1.7;text-align:center}.toast.error{background:#9c5146}.login-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:40px 20px 22px;background:radial-gradient(ellipse at 20% 15%,#eaf0e4,transparent 60%),#f7f9f5}.login-logo{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:600}.login-logo small{display:block;font-size:9px;color:#97a487;font-weight:400;margin-top:3px;letter-spacing:1px}.login-card{margin:35px 0 25px;max-width:430px;width:100%;background:#fff;border:1px solid #e3eada;border-radius:24px;padding:33px 36px;box-shadow:0 10px 55px #476b4710;text-align:center}.login-card .eyebrow{font-size:8px;letter-spacing:1.3px}.login-portrait{height:160px;width:160px;border-radius:50%;background:#f0f4e9;margin:20px auto 17px}.login-portrait img{width:140px;height:170px;margin-top:0}.login-card h1{font-size:24px}.login-card>p{font-size:11px;color:#94a388;line-height:1.9;margin:13px 0 25px}.login-card form{text-align:left}.login-card label{display:block;font-size:10px;margin-bottom:9px}.login-card input{height:46px}.login-card .primary{width:100%;margin-top:13px;font-size:12px;padding:13px}.login-error{font-size:11px;color:#ab6953;margin-top:9px;text-align:center;min-height:17px}.login-note{border-top:1px solid #edf1e7;padding-top:20px;margin-top:13px;font-size:10px;color:#a0ad91}.login-footer{font-size:10px;letter-spacing:2px;color:#a8b599}.teacher-app{min-height:100vh;display:flex;flex-direction:column}.mobile-header{height:80px;padding:0 40px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e6ece0;background:#fcfdfb}.mobile-header .login-logo{font-size:16px}.icon-button{background:#eff3e9;color:#889b79;border-radius:7px;padding:7px 11px;font-size:10px}.teacher-main{max-width:1080px;width:100%;margin:0 auto;padding:30px 30px 20px}.teacher-greeting{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:22px}.teacher-greeting h1{font-size:25px}.teacher-greeting p{font-size:11px;color:#94a487;margin-top:7px}.device-chip{display:flex;align-items:center;gap:7px;white-space:nowrap;font-size:10px;color:#8b9b7d;background:#eef3e7;padding:8px 11px;border-radius:18px}.teacher-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#edf2e5;border:1px solid #e1e8d6;border-radius:13px;padding:18px 22px;margin-bottom:20px}.action-intro{display:flex;gap:12px;align-items:center}.action-intro>span{font-size:27px;color:#aba567}.action-intro strong{font-size:12px;font-weight:500}.action-intro small{display:block;font-size:9px;color:#99a389;margin-top:5px}.action-buttons{display:flex;gap:8px}.action-buttons button{background:#fbfcf7;border:1px solid #dfe7d2;padding:9px 13px;display:flex;align-items:center;gap:6px;border-radius:7px;color:#809369;font-size:10px}.action-buttons button>span{font-size:15px}.teacher-grid{display:grid;grid-template-columns:minmax(300px,1fr) 260px;gap:20px;align-items:start}.teacher-grid>.conversation{height:570px}.student-symbol{height:36px;width:36px;background:#edf3e6;display:grid;place-items:center;color:#80956b;border-radius:10px;font-size:14px}.mobile-info{margin-bottom:0}.mobile-info .card-heading{gap:8px}.mobile-info .card-heading h3{font-size:12px}.mobile-info .settings-form button{margin-top:9px;font-size:11px}.mobile-info .quiet-note{border-top:1px solid #eaf0e0;margin-top:20px;padding-top:19px;font-size:9px}.mobile-footer{text-align:center;font-size:9px;color:#b2bba6;padding:20px;margin-top:auto;letter-spacing:1px}.upload-progress{font-size:10px;color:#8aa073;margin-top:10px}[hidden]{display:none!important}@media(max-width:1040px){.workspace{grid-template-columns:169px minmax(360px,1fr) 196px}.sidebar{padding:28px 14px 18px}.brand{font-size:14px;gap:7px}.brand-mark{height:31px;width:31px;font-size:18px}.brand small{font-size:8px}.main-area{padding:27px 21px 20px}.teacher-card{padding:30px 13px 18px}.teacher-portrait{width:163px;height:206px}.teacher-portrait img{height:206px;width:178px}.portrait-orbit{width:160px;height:160px;left:1px}.orbit-two{width:174px;height:174px;left:-6px}.teacher-portrait:before{width:144px;height:144px;left:9px}.composer-tools span{display:none}.page-header>.soft-tag{display:none}.pairing-layout{gap:12px}.qr{width:105px;height:105px}.teacher-card h2{font-size:21px}.teacher-quote{margin:22px 0}}@media(max-width:860px){.workspace{grid-template-columns:159px minmax(360px,1fr)}.teacher-card{display:none}.teacher-grid{grid-template-columns:minmax(300px,1fr) 230px;gap:15px}.teacher-main{padding:25px 20px}.teacher-greeting h1{font-size:22px}.teacher-actions{padding:15px}.action-intro small{display:none}.action-buttons button{padding:8px 9px}.mobile-header{padding:0 23px}}@media(max-width:650px){.teacher-grid{display:flex;flex-direction:column;gap:18px}.teacher-grid>.conversation{width:100%;height:61vh;min-height:450px}.mobile-info{width:100%}.teacher-main{padding:21px 14px 10px}.teacher-greeting{flex-wrap:wrap;gap:13px;margin-bottom:16px}.teacher-greeting h1{font-size:21px}.teacher-greeting .eyebrow{font-size:7px;letter-spacing:1.5px}.teacher-greeting p{font-size:10px}.mobile-header{height:69px;padding:0 18px}.teacher-actions{display:block;padding:15px}.action-intro{margin-bottom:13px;gap:9px}.action-intro>span{font-size:22px}.action-intro small{display:block}.action-buttons{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.action-buttons button{justify-content:center;font-size:10px;padding:10px 5px}.teacher-body .conversation-head{padding:14px 15px;height:69px}.teacher-body .messages{padding:18px 13px}.teacher-body .composer{padding:13px}.teacher-body .composer-tools{gap:10px}.teacher-body .composer-tools button{font-size:10px}.teacher-body .message-box{padding:11px}.teacher-body .message-box>p{font-size:12px}.teacher-body .file-card{min-width:0;max-width:270px}.teacher-body .file-save{font-size:8px}.teacher-body .file-symbol{width:27px;height:32px;font-size:17px}.teacher-body .file-detail strong{font-size:9px}.login-page{padding:30px 20px 20px}.login-card{padding:28px 25px;margin-top:26px}.login-card h1{font-size:22px}.login-card .eyebrow{font-size:7px}.mobile-info .settings-form{display:grid;grid-template-columns:1fr;gap:8px}.device-chip{font-size:9px;padding:6px 10px}.toast{bottom:calc(20px + env(safe-area-inset-bottom));font-size:11px}}
.student-body{overflow:hidden}.main-area,.sidebar,.teacher-card{min-height:0}.main-area{height:100%}

.student-camera-status{background:#ffe5df;color:#a32d24;padding:12px;font-size:13px}.student-camera-status[hidden]{display:none}.student-camera-status button{margin-left:8px}
.student-body:has(.student-camera-status:not([hidden])) .workspace{height:calc(100vh - 48px)}.student-camera-status{height:48px}