*{box-sizing:border-box}
:root{font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;color-scheme:light;--purple:#7545e7;--purple-dark:#6031ca;--ink:#30283f;--muted:#82788f;--line:#eee8f4;--green:#079668;--blue:#2478d9;--orange:#c77311}
html{min-height:100%;scroll-padding-top:130px}
body{margin:0;min-height:100vh;min-height:100dvh;padding:0 clamp(16px,3vw,44px);color:var(--ink);background:#666c7b url("/static/campus.jpg") center/cover fixed no-repeat;font-size:14px;line-height:1.5}
.campus-shade{position:fixed;inset:0;background:rgba(29,32,56,.46);z-index:-1}
[hidden]{display:none!important}
button,input,textarea,select{font:inherit}
button,a,input,textarea,select,summary{-webkit-tap-highlight-color:transparent}
button,summary{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.55}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #bda0f8;outline-offset:4px}
.brandbar{max-width:1240px;margin:auto;min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:20px;color:#fff}
.brand{display:flex;align-items:center;gap:12px;min-width:0;color:inherit;text-decoration:none}
.brand img{width:48px;height:48px;object-fit:contain;border:3px solid #fff;border-radius:50%;background:#fff;flex:none}
.school-name{font-size:22px;font-weight:750;letter-spacing:.2px;white-space:nowrap}
.brand-separator{color:#e6d8ff;font-weight:400}
.product-name{font-weight:600}
.header-actions{display:flex;align-items:center;gap:14px;white-space:nowrap}
.teacher-label{font-size:12px;color:#ffffffd6}
.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:42px;padding:10px 20px;border:1px solid transparent;border-radius:11px;text-decoration:none;font-size:14px;font-weight:650;line-height:1.45;white-space:nowrap}
.primary{color:#fff;background:var(--purple)}
.primary:hover:enabled{background:var(--purple-dark)}
.student-link{background:#fff;color:#61428e;border-color:#ffffff70;font-size:13px;min-height:38px;padding:8px 14px}
.student-link:hover{background:#f4edff}
.logout{border:0;background:transparent;color:#fff;font-size:13px;padding:9px 0 9px 2px}
.logout:hover:enabled{color:#e9dcff}
.teacher-shell{max-width:1240px;margin:0 auto;padding-bottom:14px}
.surface{background:#fff;border:1px solid #ffffffa6;border-radius:18px;box-shadow:0 7px 28px #18122d0d}
.classroom-bar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:21px 26px;position:sticky;top:12px;z-index:5}
.title-row{display:flex;align-items:center;flex-wrap:wrap;gap:13px}
h1,h2,p{margin:0}
h1{font-size:25px;font-weight:750;line-height:1.35;letter-spacing:.3px}
.classroom-heading>p{margin-top:6px;color:var(--muted);font-size:13px;overflow-wrap:anywhere;max-width:36em}
.class-status{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:#f1eef5;color:#83738d;border-radius:99px;font-size:12px;line-height:1.3;white-space:nowrap}
.class-status i{width:6px;height:6px;border-radius:50%;background:#a195ad}
.class-status.open{background:#e4f7ed;color:#048a5d}
.class-status.open i{background:#13ae77}
.class-status.capacity{background:#fff0d9;color:#9e610b}
.class-status.capacity i{background:#e09c24}
.session-controls{display:flex;align-items:center;gap:24px;flex:none}
.control-buttons{display:flex;flex-direction:column;align-items:stretch;gap:7px}
.assistant-toggle{min-width:134px}
.timed-button{min-height:30px;padding:5px 12px;font-size:11px;color:#795e98;border-color:#e6dcef;background:#fcfaff}
.timed-button:hover:enabled{background:#f2eafb}
.timed-button.end-class{color:#c5541d;border-color:#f5d6c0;background:#fff1e6}
.clock-block{text-align:right;min-width:144px}
.clock-line{display:flex;align-items:baseline;justify-content:flex-end;gap:10px}
.clock-line>span{font-size:12px;color:var(--muted)}
#classClock{font-size:25px;line-height:1.2;color:var(--purple);font-variant-numeric:tabular-nums;font-weight:750;letter-spacing:.4px}
#clockCaption{display:block;font-size:11px;line-height:1.4;color:#91859e;margin-top:5px;max-width:230px}
.control-button{min-width:114px;min-height:44px}
.end-class{background:#fff1e6;color:#c5541d;border-color:#f5d6c0}
.end-class:hover:enabled{background:#ffe5d2;border-color:#eebd9a}
.api-note{margin:12px 0 0;padding:11px 16px;border:1px solid #f3d393;border-radius:12px;background:#fff7e5;color:#8b5c0a;font-size:13px}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0}
.stat{position:relative;min-width:0;padding:14px 20px 13px;border:1px solid #fff;border-radius:15px;background:#fff;box-shadow:0 4px 16px #18122d08;overflow:hidden}
.stat:before{content:"";position:absolute;left:0;top:17px;bottom:17px;width:4px;background:var(--accent);border-radius:0 5px 5px 0}
.stat.violet{--accent:var(--purple)}
.stat.green{--accent:var(--green)}
.stat.blue{--accent:var(--blue)}
.stat.orange{--accent:var(--orange)}
.stat-label{font-size:12px;color:#7d718d}
.stat-value{display:flex;align-items:baseline;gap:6px;margin-top:2px;white-space:nowrap}
.stat-value strong{font-size:29px;line-height:1.3;font-weight:750;letter-spacing:-.4px;color:var(--accent);font-variant-numeric:tabular-nums}
.stat-value>span{font-size:13px;color:#a497ae}
.stat small{font-size:10px;line-height:1.5;color:#a093ad;display:block;margin-top:1px}
.settings-panel{padding:20px 26px 0;overflow:hidden}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}
h2{font-size:17px;font-weight:700;line-height:1.4}
.section-heading>span{font-size:11px;color:#a193ac}
.settings-grid{display:grid;grid-template-columns:1.18fr 1fr;gap:30px}
.lesson-fields,.quota-fields{display:flex;flex-direction:column;gap:12px;min-width:0}
.lesson-row{display:grid;grid-template-columns:1.8fr 1fr;gap:14px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field{display:flex;flex-direction:column;gap:7px;min-width:0;font-size:12px;font-weight:650;color:#51435f}
.field input,.field select,.field textarea{width:100%;min-width:0;border:1px solid #e3dbee;background:#fcfbfe;border-radius:10px;padding:10px 12px;min-height:42px;outline:0;color:var(--ink);font-weight:500;font-size:14px;line-height:1.45}
.field input:focus,.field select:focus,.field textarea:focus{border-color:#a57bea;box-shadow:0 0 0 3px #7545e712;background:#fff}
.field input[type=number]{font-variant-numeric:tabular-nums}
.field textarea{resize:vertical;min-height:65px;max-height:200px;line-height:1.5}
.field textarea::placeholder{color:#b1a5bc;font-size:12px}
.field select{padding-right:26px}
.optional{font-size:10px;color:#9d90a7;font-weight:400;margin-left:4px}
.field-hint{font-size:10px;color:#9b8ba7;line-height:1.5;margin-top:-5px}
.field-group{min-width:0}
.field-group>.field-hint{margin-top:5px}
.background-hint{color:#806b94}
.thinking-note{padding:8px 11px;border-radius:9px;background:#fff4df;color:#98670e;font-size:11px;line-height:1.7}
.quota-fields .field-hint{margin-top:0}
.field>small{font-size:11px;font-weight:400;color:#95869f;line-height:1.6}
.advanced-settings{margin-top:16px;border-top:1px solid var(--line)}
summary{list-style:none}
summary::-webkit-details-marker{display:none}
.advanced-settings>summary{display:flex;align-items:center;gap:13px;min-height:50px;font-size:12px;line-height:1.5;color:#74607f}
.advanced-title{font-weight:650}
.advanced-description{font-size:11px;color:#aa9cb4}
.chevron{margin-left:auto;width:7px;height:7px;border-right:1.5px solid #9d8aab;border-bottom:1.5px solid #9d8aab;transform:rotate(45deg);margin-right:4px;align-self:center;translate:0 -2px}
.advanced-settings[open]>summary .chevron{transform:rotate(225deg);translate:0 2px}
.advanced-body{padding:0 0 20px}
.advanced-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.usage-help{margin-top:17px;padding:12px 15px;border-radius:10px;background:#f8f5fc;color:#83708e}
.usage-help>summary{display:flex;align-items:center;justify-content:space-between;font-size:12px}
.usage-help[open]>summary>span{transform:rotate(45deg)}
.usage-copy{font-size:11px;line-height:1.9;margin-top:10px;color:#8b7b97}
.usage-copy p+p{margin-top:7px}
.model-note{font-size:10px;color:#ac9fb5;margin-top:12px}
.savebar{position:sticky;bottom:14px;z-index:6;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:12px;padding:13px 22px;border-color:#e8dff4;box-shadow:0 4px 25px #281a421c}
.save-feedback{min-width:0}
.save-state{display:flex;align-items:center;gap:7px;color:#658876;font-size:12px;line-height:1.5}
.save-state i{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.save-state.dirty{color:#bd7819}
.save-state.error{color:#c64751}
.save-feedback>small{display:block;color:#ac9fb5;font-size:10px;margin-top:3px}
.privacy-note{text-align:center;font-size:10px;line-height:1.5;color:#ffffffba;padding:12px 0 0}
.login-panel{max-width:420px;margin:9vh auto;padding:34px}
.login-eyebrow{font-size:12px;color:var(--purple);font-weight:600}
.login-panel h1{font-size:23px;margin-top:10px;line-height:1.55}
.login-intro{color:var(--muted);font-size:13px;margin:9px 0 25px}
.login-panel .field{margin-top:16px}
.login-button{width:100%;margin-top:10px}
.form-error{font-size:12px;line-height:1.6;color:#bb394b;margin-top:10px}
.toast{position:fixed;left:50%;bottom:95px;transform:translateX(-50%);max-width:calc(100vw - 32px);padding:12px 18px;background:#30213f;color:#fff;border-radius:11px;font-size:13px;line-height:1.6;box-shadow:0 8px 28px #16102326;z-index:20;text-align:center}
@media(min-width:801px) and (max-height:780px){.brandbar{min-height:74px}.classroom-bar{padding:17px 22px}.stats{margin:11px 0}.stat{padding:11px 17px}.stat-value strong{font-size:26px}.settings-panel{padding:16px 22px 0}.section-heading{margin-bottom:11px}.lesson-fields,.quota-fields{gap:10px}.field input,.field select,.field textarea{min-height:39px;padding:9px 11px}.field textarea{min-height:62px}.advanced-settings{margin-top:12px}.advanced-settings>summary{min-height:43px}.savebar{padding:10px 20px;margin-top:10px}.privacy-note{padding-top:10px}}
@media(max-width:1000px){.school-name{font-size:19px}.teacher-label{display:none}.header-actions{gap:11px}.settings-grid{gap:22px}.field-row,.lesson-row{gap:11px}.classroom-bar{gap:16px}.session-controls{gap:16px}.title-row{gap:10px}h1{font-size:23px}.stat{padding-left:17px}.stat-value strong{font-size:27px}}
@media(max-width:800px){.brandbar{min-height:78px}.brand img{width:42px;height:42px}.school-name{font-size:17px}.header-actions{gap:10px}.student-link{font-size:12px;padding:8px 10px}.logout{font-size:12px}.classroom-bar{padding:18px 20px;gap:16px}.classroom-heading>p{font-size:12px}h1{font-size:21px}.class-status{font-size:11px}.session-controls{gap:13px}.clock-block{min-width:110px}.clock-line{gap:7px}#classClock{font-size:23px}#clockCaption{font-size:10px;max-width:156px}.button{padding:10px 16px}.control-button{min-width:98px}.stats{gap:10px;margin:12px 0}.stat{padding:12px 14px}.stat-value strong{font-size:25px}.stat-label{font-size:11px}.stat-value>span{font-size:11px}.stat small{font-size:9px}.settings-panel{padding:18px 20px 0}.settings-grid{gap:20px}.lesson-row{grid-template-columns:1.4fr 1fr}.field{font-size:11px}.field input,.field select,.field textarea{font-size:13px;padding:10px}.advanced-grid{gap:14px}.savebar{padding:12px 18px}}
@media(max-width:620px){body{padding:0 12px}.brandbar{min-height:82px;gap:8px}.brand{gap:8px}.brand img{width:38px;height:38px;border-width:2px}.school-name{font-size:15px;line-height:1.5;white-space:normal}.brand-separator{display:none}.product-name{display:block;font-size:11px;letter-spacing:1px;color:#eee1ff}.header-actions{gap:11px}.header-actions .student-link{min-height:34px;font-size:11px;padding:7px 9px}.logout{font-size:11px}.surface{border-radius:15px}.classroom-bar{padding:17px;top:8px;align-items:flex-start;flex-wrap:wrap;gap:15px}.classroom-heading{width:100%}.title-row{justify-content:space-between}h1{font-size:21px}.classroom-heading>p{margin-top:5px}.session-controls{justify-content:space-between;width:100%;gap:10px}.clock-block{text-align:left;min-width:0;flex:1}.clock-line{justify-content:flex-start}.clock-line>span{font-size:11px}#classClock{font-size:25px}#clockCaption{max-width:none}.control-button{min-width:112px;min-height:42px}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:10px 0}.stat{padding:12px 17px}.stat small{font-size:10px}.stat-value strong{font-size:28px}.stat-value>span{font-size:12px}.settings-panel{padding:19px 17px 0}.settings-grid{grid-template-columns:1fr;gap:17px}.lesson-fields,.quota-fields{gap:12px}.field{font-size:12px}.field input,.field select,.field textarea{font-size:14px;min-height:43px}.lesson-row{grid-template-columns:1.55fr 1fr}.field-row{gap:12px}.field-hint{font-size:10px}.section-heading{margin-bottom:16px}.section-heading>span{font-size:10px}.advanced-description{font-size:10px}.advanced-grid{grid-template-columns:1fr;gap:15px}.advanced-settings>summary{min-height:53px}.savebar{bottom:9px;margin-top:10px;padding:12px 15px;gap:12px}.savebar .button{min-height:42px;padding:10px 15px;font-size:13px}.save-state{font-size:11px}.save-feedback>small{font-size:9px;max-width:17em}.privacy-note{padding-top:11px}.login-panel{margin:6vh auto;padding:28px 24px}.login-panel h1{font-size:22px}html{scroll-padding-top:210px}.toast{bottom:92px}}
@media(min-width:801px) and (max-height:700px){.brandbar{min-height:68px}.classroom-bar{padding:15px 22px}.stats{margin:10px 0}.stat{padding:10px 17px}.stat small{display:none}.settings-panel{padding:14px 22px 0}.section-heading{margin-bottom:9px}.lesson-fields,.quota-fields{gap:9px}.field textarea{height:56px;min-height:56px}.advanced-settings{margin-top:10px}.advanced-settings>summary{min-height:40px}.savebar{padding:9px 20px}.savebar .button{min-height:38px;padding:8px 18px}.privacy-note{padding-top:6px}.teacher-shell{padding-bottom:8px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}

.switch-field{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px;min-height:20px;color:#796589;font-size:11px;cursor:pointer}
.switch-field input{appearance:none;position:relative;flex:none;width:32px;height:19px;margin:0;border:0;border-radius:99px;background:#d8cde4;cursor:pointer}
.switch-field input:before{content:"";position:absolute;left:2px;top:2px;width:15px;height:15px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #38234e26}
.switch-field input:checked{background:var(--purple)}
.switch-field input:checked:before{transform:translateX(13px)}
.switch-field input:focus-visible{outline:3px solid #bea2ed;outline-offset:3px}
