@charset "UTF-8";
:root{color-scheme:dark;--bg:#040d19;--surface:#091b2d;--text:#e6f4ff;--muted:#86a6bf;--cyan:#43e8f8;--border:#21445d;--green:#39e5af;--amber:#f4c255;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;font-synthesis:none;font-size:16px}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);line-height:1.5;min-width:320px}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid #a9f7ff;outline-offset:4px}h1,h2,h3,p{margin:0}svg{flex-shrink:0}.icon{height:22px;width:22px;display:inline-block;vertical-align:middle}.muted{color:var(--muted)}.sr-only{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}.eyebrow{font-size:12px;letter-spacing:2.1px;color:#5eacc9;font-weight:500}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:10px 18px;border-radius:6px;border:1px solid #335c77;font-size:14px;font-weight:550;white-space:nowrap;transition:background .18s,border-color .18s,box-shadow .18s}.primary{background:linear-gradient(135deg,#77f3fb,#28cbe9);border-color:#74f0fa;color:#04243a;box-shadow:inset 0 1px 1px #dcffff7a,0 0 18px #0cb9dc20}.primary:hover{background:linear-gradient(135deg,#acfbff,#3ee5f3);box-shadow:0 0 20px #34e7f540}.secondary{background:linear-gradient(140deg,#122d43aa,#0c1c2dbb);border-color:#476781;color:#d9edfc;box-shadow:inset 0 1px 1px #6aa5c222}.secondary:hover{border-color:#59b9d9;background:#15374e}.icon-button{display:inline-grid;place-items:center;min-width:36px;min-height:36px;border:0;border-radius:5px;background:transparent;color:#97b9d1}.icon-button:hover{background:#163349;color:var(--cyan)}.field{display:flex;flex-direction:column;gap:8px;min-width:0;font-size:14px;color:#a0bfd2}.input{width:100%;min-height:44px;border:1px solid #2b4c65;border-radius:5px;background:#071726;color:var(--text);padding:10px 12px;outline:0;font-size:16px;color-scheme:dark}.input:focus{border-color:#37d2e9;box-shadow:0 0 0 3px #23c9e31a}.input::placeholder{color:#607f97}textarea.input{resize:vertical}select option{background:#0d2033;color:#e2f3ff}.tech-panel{position:relative;border:1px solid #225372;background:linear-gradient(125deg,#0c2237d9,#071727f2);border-radius:9px;box-shadow:inset 0 1px 0 #3789a82b,0 8px 22px #0000001c}.tech-panel:before,.tech-panel:after{content:"";position:absolute;pointer-events:none;width:23px;height:14px;border-color:#44dcf4;opacity:.9}.tech-panel:before{top:-1px;left:-1px;border-top:2px solid;border-left:2px solid;border-top-left-radius:9px;filter:drop-shadow(0 0 5px #23d9ff)}.tech-panel:after{right:-1px;bottom:-1px;border-right:2px solid;border-bottom:2px solid;border-bottom-right-radius:9px;filter:drop-shadow(0 0 4px #23d9ff)}
.console-shell{max-width:1920px;margin:auto;min-height:100vh;background:radial-gradient(ellipse at 85% 0%,#063d602b,transparent 42%),radial-gradient(circle at 1px 1px,#19739055 .8px,transparent 1px);background-size:auto,24px 24px;padding:0 22px}.topbar{height:99px;display:flex;align-items:center;gap:32px;border-bottom:1px solid #23789b;padding:0 5px;position:relative}.topbar:after{content:"";position:absolute;bottom:-2px;left:30%;height:2px;width:25%;background:linear-gradient(90deg,transparent,#3ce3f6,transparent);box-shadow:0 0 13px #46defc55}.brand{display:flex;align-items:center;gap:13px;white-space:nowrap}.brand>.icon{width:48px;height:48px;color:#3fe3ed;filter:drop-shadow(0 0 9px #1edbf531)}.brand strong{display:block;font-size:25px;letter-spacing:.3px;color:#69eff9;font-weight:650}.brand small{display:block;font-size:12px;letter-spacing:2px;color:#7d9bb3;margin-top:4px}.main-nav{display:flex;gap:7px;align-self:stretch;align-items:center;flex:1;justify-content:center}.nav-item{height:57px;min-width:122px;padding:0 17px;border:1px solid transparent;border-radius:7px;background:transparent;color:#a6c1d6;display:flex;align-items:center;justify-content:center;gap:10px;font-size:16px;white-space:nowrap}.nav-item>.icon{width:25px;height:25px}.nav-item:hover{background:#0c2d42;color:#eefcff}.nav-item.active{color:#e7fcff;border-color:#187d9a;background:linear-gradient(180deg,#0a263a,#0e3c53);box-shadow:inset 0 -3px 0 #44e7f5,0 3px 13px #29d6f426}.nav-item.active>.icon{color:#44e9f1}.teacher-menu{display:flex;align-items:center;gap:10px;font-size:14px;white-space:nowrap}.teacher-avatar{background:linear-gradient(140deg,#388bac,#334b73);display:grid;place-items:center;height:35px;width:35px;border-radius:50%;border:1px solid #6fd5ec;color:#d0f7ff}.teacher-avatar>.icon{width:20px;height:20px}.today-layout{display:grid;grid-template-columns:215px minmax(0,1fr);gap:22px;padding-top:25px}.course-sidebar{padding:20px 16px;overflow:hidden;background:linear-gradient(165deg,#0a253ada,#03101edf);min-height:790px;display:flex;flex-direction:column}.side-title h1{font-size:26px;letter-spacing:2px;margin:6px 0 5px}.side-title p{font-size:12px;letter-spacing:1px;color:#92b7cb}.side-title .eyebrow{font-size:12px;letter-spacing:1px}.holo-cube{padding:13px 0 10px;text-align:center}.holo-cube>svg{width:157px;filter:drop-shadow(0 0 9px #15c8f070)}.holo-cube>span{display:block;font-size:12px;letter-spacing:1.2px;color:#467892;margin-top:-11px}.side-fields{display:flex;flex-direction:column;gap:15px;z-index:1}.side-field{display:flex;flex-direction:column;gap:9px;padding:13px 12px;border:1px solid #24445e;border-radius:6px;background:#0920358c}.side-field>span{font-size:13px;color:#84b3cf;display:flex;gap:8px;align-items:center}.side-field .icon{width:19px;height:19px;color:#35d9ed}.side-field strong{font-size:16px;font-weight:550;line-height:1.6}.side-field small{font-size:12px;color:#7695ad}.side-field .input{font-size:14px;background:#0c2238;border:0;min-height:32px;padding:0 17px 0 0;white-space:nowrap;text-overflow:ellipsis}.side-field .date-label{font-variant-numeric:tabular-nums;letter-spacing:1px;font-size:19px}.side-field .time-label{font-variant-numeric:tabular-nums;font-size:16px}.side-export{width:100%;margin-top:2px}.planet-art{position:absolute;width:320px;height:200px;bottom:-18px;left:-165px;overflow:hidden;transform:rotate(27deg);opacity:.48}.planet-art>span{position:absolute;top:20px;left:0;width:360px;height:310px;border-radius:50%;background:radial-gradient(ellipse at 77% 2%,#0ac6ff33,transparent 20%),repeating-radial-gradient(ellipse at 70% 0%,transparent 0 16px,#1d6b9630 17px 18px);border-top:2px solid #5cdfff;box-shadow:0 -6px 15px #1581ba80,inset 0 12px 18px #31c5ff29}.side-signature{margin-top:auto;padding-top:28px;position:relative;color:#92bcd0;font-size:15px;line-height:2;letter-spacing:3px}.classroom-workspace{min-width:0;display:flex;flex-direction:column;gap:18px}.workspace-title{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:0 4px}.workspace-title h2{font-size:22px;letter-spacing:.5px;margin-top:5px;font-weight:600}.publication-badge{font-size:12px;white-space:nowrap;padding:5px 11px;border:1px solid #6d5b31;background:#9b6c1119;border-radius:5px;color:#eac676}.publication-badge.published{color:#58d9c6;border-color:#256b64;background:#28b5a310}.attendance-overview{padding:17px;display:flex;gap:17px;align-items:center}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));flex:1;min-width:325px}.metric{display:flex;align-items:center;justify-content:center;gap:11px;border-right:1px solid #22527159}.metric:last-child{border:0}.metric>.icon{height:31px;width:31px;color:#5fcbef}.metric>div>span{display:block;font-size:13px;color:#9ab9d0}.metric>div>strong{display:block;font-size:29px;line-height:1.18;font-weight:650;color:#f4fbff;font-variant-numeric:tabular-nums}.metric.green>.icon{color:#40e2b3}.metric.amber>.icon{color:#e4b74d}.metric.muted>.icon{color:#7f9cbc}.leave-notice{display:flex;align-items:center;gap:9px;font-size:13px;border:1px solid #245163;background:#0e334040;border-radius:6px;padding:13px 10px;color:#88bdcc;max-width:260px}.leave-notice.has-leave{border-color:#8b6b2c;background:linear-gradient(130deg,#624d233b,#69522329);color:#edcb6e}.leave-notice>.icon{width:23px;height:23px}.bulk-arrival{display:flex;flex-direction:column;align-items:center;gap:5px;flex:none}.bulk-arrival .button{min-height:39px;padding:8px 14px;font-size:14px}.bulk-arrival small{color:#7494ae;font-size:12px}.work-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.18fr);gap:18px;flex:1}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:19px 19px 14px}.panel-heading h2{display:flex;align-items:center;gap:10px;font-size:19px;font-weight:600;white-space:nowrap}.panel-heading h2>.icon{color:#37def1;height:24px;width:24px}.panel-heading h2>span{font-weight:400;font-size:14px;color:#92b6cc}.helper,.roster-caption{color:#638aa5;font-size:12px;white-space:nowrap}.roster{display:flex;flex-direction:column;min-width:0}.roster .panel-heading{padding-bottom:12px}.roster-search{display:flex;align-items:center;gap:9px;margin:0 18px 14px;border:1px solid #1c3d54;border-radius:4px;padding:6px 10px;background:#06172688}.roster-search>.icon{width:16px;height:16px;color:#6a94ae}.roster-search>input{border:0;background:none;color:#d6f0ff;outline:0;min-width:0;width:100%;font-size:14px;height:26px}.roster-search>input::placeholder{color:#5b829b}.roster-labels{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(88px,.85fr) 82px;gap:7px;padding:0 18px 12px 44px;color:#7093ae;font-size:12px}.roster-labels>span:last-child{text-align:center}.student-list{flex:1;padding:0 10px}.student-row{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(87px,.85fr) 82px;gap:7px;align-items:center;min-height:76px;border-bottom:1px solid #1d3c515e;border-radius:5px;padding:10px 7px;position:relative}.student-row:last-child{border-bottom-color:transparent}.student-row.is-selected{border:1px solid #37d7ed;background:linear-gradient(90deg,#12719542,#1343635c);box-shadow:inset 0 0 17px #28c0e417,0 0 10px #23d8ef0e;padding:9px 6px}.student-identity{display:flex;align-items:center;gap:9px;min-width:0;border:0;background:none;padding:0;color:#e0f4ff;text-align:left}.selection-mark{width:17px;height:17px;flex:none;display:grid;place-items:center;border:1px solid #4c6a84;border-radius:3px;color:#00334b}.selection-mark>.icon{width:14px;height:14px;stroke-width:2.6}.is-selected .selection-mark{background:#40e3ee;border-color:#65f4ff;box-shadow:0 0 6px #1dc5da33}.kid-avatar{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:none;border-radius:50%;font-size:19px;font-weight:550;color:#ccfcff;border:2px solid #73bdd4;box-shadow:0 0 0 3px #25648227;position:relative;background:radial-gradient(circle at 30% 20%,#397c9c,#15335c)}.kid-avatar>img{width:100%;height:100%;border-radius:50%;object-fit:cover}.kid-avatar>i{height:7px;width:7px;border-radius:50%;background:#55eac7;border:2px solid #09243c;position:absolute;right:-2px;bottom:1px}.kid-avatar.tone-1,.kid-avatar.tone-5{border-color:#b4a2d6;background:linear-gradient(140deg,#74577d,#243c68)}.kid-avatar.tone-2{border-color:#d2b47f;background:linear-gradient(140deg,#8b7349,#33395b)}.kid-avatar.tone-3{border-color:#ca9bbd;background:linear-gradient(140deg,#8b567f,#2b3a63)}.kid-avatar.tone-4{border-color:#78afa9;background:linear-gradient(140deg,#376f78,#29365d)}.student-identity strong{display:block;white-space:nowrap;font-size:15px;font-weight:550}.student-identity small{display:block;font-size:12px;color:#6f9bb7;white-space:nowrap;max-width:80px;overflow:hidden;text-overflow:ellipsis}.student-number{font-size:12px;color:#8baac4;letter-spacing:.2px;font-family:ui-monospace,SFMono-Regular,monospace}.attendance-select{color:var(--green);border:1px solid transparent;border-radius:4px;background:#0c514622;min-height:37px;width:82px;padding:4px 5px;font-size:14px;cursor:pointer;outline:none}.attendance-select:hover,.attendance-select:focus{border-color:#3c8b95}.status-late,.status-leave{color:#f1c260;background:#85661f1a}.status-pending{color:#8badc5;background:#35516a30}.status-absent{color:#fa9daa;background:#7d345033}.attendance-note{grid-column:1/-1;color:#c1a766;font-size:12px;padding-left:26px;margin-top:-3px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.roster-bottom{border-top:1px solid #254056;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 15px;font-size:12px;color:#5c849f;margin-top:9px}.roster-bottom>span:first-child{color:#76c1d0;display:flex;gap:4px;align-items:center}.roster-bottom .icon{height:15px;width:15px}.roster-empty{padding:45px 10px;color:#8aafc4;text-align:center;font-size:14px}.edit-column{display:flex;flex-direction:column;gap:18px;min-width:0}.lesson-panel{padding-bottom:17px}.editor{display:block;background:linear-gradient(140deg,#051424aa,#0c22364d);color:#d7eaf6;border:1px solid #284861;border-radius:5px;padding:14px 16px;outline:0;line-height:1.9;font-size:16px;resize:vertical;width:100%;transition:border-color .2s}.editor:focus{border-color:#2faecc;box-shadow:0 0 0 2px #34dff710}.editor::placeholder{color:#628298}.lesson-editor{margin:0 18px;width:calc(100% - 36px);min-height:106px;height:122px}.review-panel{display:flex;flex-direction:column;flex:1;padding:19px 18px 15px;min-height:325px}.review-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:23px;flex-wrap:wrap}.review-heading>div:first-child{display:flex;align-items:center;gap:11px}.review-heading h2{font-size:18px;font-weight:550}.review-heading h2>small{display:block;font-size:12px;color:#7093b0;font-weight:400;margin-top:2px}.period-tabs{display:flex;border:1px solid #294b69;border-radius:6px;overflow:hidden;background:#07192c}.period-tabs button{padding:8px 11px;background:transparent;border:0;color:#a1bcd0;font-size:14px;min-height:38px}.period-tabs button.active{background:linear-gradient(140deg,#73f1f8,#26cce9);color:#043149;box-shadow:0 0 12px #2bdde923}.editor-label{font-size:14px;color:#8ab0c9;display:flex;align-items:center;gap:8px;margin-bottom:10px}.editor-label>span{font-size:12px;color:#5e859e}.editor-label .review-status{margin-left:auto;color:#618c9e}.tag-options{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.tag-option{display:flex;align-items:center;gap:5px;background:#102b40;border:1px solid #32536d;color:#89b0c9;border-radius:5px;padding:7px 9px;font-size:14px;min-height:36px}.tag-option>.icon{height:15px;width:15px}.tag-option.selected{color:#032b39;background:#58dae8;border-color:#66e8f0}.tag-option:hover{border-color:#52c9dd}.review-editor{flex:1;min-height:125px}.review-footnote{font-size:12px;color:#507b97;display:flex;justify-content:space-between;gap:12px;margin-top:10px}.review-footnote .icon{width:14px;height:14px}.review-footnote>span:first-child{display:flex;align-items:center;gap:5px}.review-range{display:flex;gap:10px;align-items:flex-end;margin-bottom:20px}.review-range .field{flex:1}.review-range>span{padding-bottom:10px;color:#5c849e}.review-range input{font-size:14px;min-height:39px;max-width:100%}.workspace-actions{display:grid;grid-template-columns:minmax(0,1.23fr) minmax(0,1fr);gap:18px}.parent-sharing{display:flex;align-items:center;gap:10px;padding:17px 16px;flex-wrap:wrap}.sharing-label{display:flex;align-items:center;gap:10px;flex:1;min-width:180px}.sharing-label>.icon{width:30px;height:30px;color:#42daea}.sharing-label strong{display:block;font-size:17px;font-weight:550;white-space:nowrap}.sharing-label small{display:block;font-size:12px;color:#7b9db7;margin-top:3px;white-space:nowrap}.parent-sharing .button{font-size:13px;padding:9px 11px;min-height:42px}.parent-sharing .copy-link{background:linear-gradient(140deg,#53e5f0,#2bc6e2);font-size:13px}.copy-link .icon{height:18px;width:18px}.publish-actions{padding:10px 17px 15px;display:flex;flex-direction:column;justify-content:center;gap:6px}.publish-actions>div{display:flex;gap:11px}.publish-actions .button{flex:1;padding:10px 12px}.publish-actions .primary{min-width:150px}.save-state{font-size:12px;line-height:1.2;color:#6b8fa9}.save-state.is-dirty{color:#e7c178}.console-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 3px;font-size:12px;color:#4e768f}.console-footer>span{display:flex;align-items:center;gap:7px}.console-footer b{font-weight:400;color:#268ba7}.connection-dot{height:5px;width:5px;border-radius:50%;background:#48c5a3;box-shadow:0 0 6px #36dba661}.empty-course{margin:35px auto;max-width:750px;padding:55px;text-align:center}.empty-course>div .icon{height:55px;width:55px;color:#3cddf4}.empty-course h1{margin:25px 0 14px}.empty-course p{color:#83a7c3;margin-bottom:26px}.no-students{padding:28px;flex:1}.no-students h2{font-size:18px}.no-students p{color:#819fb9;font-size:14px;margin-top:15px}.management-container{padding:30px 15px 20px;min-height:calc(100vh - 146px)}
dialog{border:1px solid #3b8baa;background:linear-gradient(140deg,#0d273c,#081727);color:var(--text);border-radius:12px;padding:0;width:min(650px,calc(100vw - 32px));max-height:90vh;box-shadow:0 0 50px #1fc9ec19,0 25px 110px #0009;overflow:auto}dialog::backdrop{background:#010811bb;backdrop-filter:blur(6px)}.modal-header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 25px;border-bottom:1px solid #2a5068}.modal-header h2{font-size:21px;letter-spacing:.5px}.modal-body{padding:22px 25px}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:17px 25px;border-top:1px solid #26465f;background:#091c2c}.modal-footer .button{min-width:90px}.form-error{font-size:14px;color:#ffb2a8;min-height:22px;margin:12px 0 0}.share-url{margin-top:18px;font-size:14px}.export-form{display:grid;grid-template-columns:1fr 1fr;gap:18px}.export-hint{margin-top:20px;font-size:14px}#toast-root{position:fixed;bottom:27px;left:50%;transform:translateX(-50%);z-index:10000;display:flex;flex-direction:column;gap:10px;pointer-events:none;max-width:calc(100vw - 32px)}.toast{background:#113342f2;border:1px solid #51abb7;box-shadow:0 5px 30px #0008;display:flex;align-items:center;justify-content:center;gap:10px;padding:13px 20px;border-radius:7px;font-size:14px;color:#d4f9f8;backdrop-filter:blur(14px)}.toast .icon{color:#69efd7;width:18px;height:18px}.toast-error{border-color:#ca7a70;background:#36252af2}.toast-error .icon{color:#ffb7a7}.initial-loading{display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:90vh;gap:23px;color:#9ec5db}.loading-orbit{display:block;width:44px;height:44px;border:1px solid #1f7187;border-top:2px solid #3ee6ec;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.login-page{min-height:100vh;display:grid;place-items:center;padding:35px;background:radial-gradient(ellipse at 25% 50%,#0d426e55,transparent 55%),radial-gradient(circle at 1px 1px,#17527b5e 1px,transparent 1px),#030c18;background-size:auto,25px 25px,auto}.login-grid{width:min(100%,1000px);display:grid;grid-template-columns:1fr 400px;gap:100px;align-items:center}.login-intro .brand{margin-bottom:25px}.login-intro .brand strong{font-size:28px}.login-intro .brand small{font-size:12px;letter-spacing:2px}.login-cube{max-width:300px;margin:0 0 -6px 25px;filter:drop-shadow(0 0 22px #16c1ff44)}.login-intro h1{font-size:31px;line-height:1.65;letter-spacing:1px;margin:11px 0 20px;font-weight:550}.login-intro p{line-height:2;color:#819fb9;font-size:16px}.login-card{padding:34px 31px}.login-card h2{font-size:26px;margin:12px 0}.login-card>p{font-size:14px;line-height:1.8}.login-card form{margin-top:28px}.login-card .field{margin-bottom:17px}.login-card .input{min-height:48px}.login-submit{width:100%;margin-top:12px}.demo-access{font-size:13px;color:#658aa3;border-top:1px solid #24475e;margin-top:25px;padding-top:17px}.demo-access>summary{cursor:pointer}.demo-access p{margin:12px 0 8px;color:#afc9da;font-size:14px;line-height:1.8}.demo-access small{font-size:12px;color:#729bb2}
@media(min-width:1650px){.topbar{gap:45px}.today-layout{grid-template-columns:245px minmax(0,1fr);gap:25px}.console-shell{padding:0 30px}.nav-item{min-width:160px}.attendance-overview{padding:21px}.student-row{min-height:87px}.kid-avatar{width:46px;height:46px}.student-number{font-size:14px}.student-identity strong{font-size:17px}.roster-labels,.student-row{grid-template-columns:minmax(0,1.4fr) minmax(110px,.85fr) 95px}.attendance-select{width:95px}.lesson-editor{height:135px}.review-editor{min-height:160px}.workspace-title h2{font-size:25px}.parent-sharing .button{font-size:14px}}
@media(max-width:1350px){.console-shell{padding:0 16px}.topbar{gap:15px}.brand strong{font-size:22px}.brand>.icon{width:41px;height:41px}.brand small{letter-spacing:1px}.nav-item{min-width:109px;font-size:14px;gap:7px;padding:0 12px}.teacher-menu>span:nth-child(2){display:none}.today-layout{grid-template-columns:190px minmax(0,1fr);gap:17px}.course-sidebar{padding:18px 13px}.metric-grid{min-width:275px}.metric{gap:7px}.metric>.icon{height:27px;width:27px}.attendance-overview{gap:12px;padding:13px}.leave-notice{max-width:210px;font-size:12px}.metric>div>span{font-size:12px}.metric>div>strong{font-size:26px}.work-columns{grid-template-columns:1fr 1.1fr;gap:14px}.roster-caption{display:none}.panel-heading{padding:17px 14px 13px}.panel-heading h2{font-size:17px}.roster-labels,.student-row{grid-template-columns:minmax(0,1fr) 84px 77px;gap:5px}.student-list{padding:0 7px}.student-row{padding:11px 5px}.student-row.is-selected{padding:10px 4px}.student-identity{gap:7px}.selection-mark{width:13px;height:13px}.kid-avatar{width:35px;height:35px;font-size:17px}.student-identity strong{font-size:14px}.student-identity small{display:none}.student-number{font-size:12px;letter-spacing:0}.attendance-select{width:77px;padding:4px;font-size:13px}.roster-labels{padding-left:34px;padding-right:14px}.roster-bottom>span:last-child{display:none}.workspace-actions{grid-template-columns:1fr 1fr;gap:14px}.parent-sharing{gap:8px;padding:12px}.sharing-label{flex-basis:100%}.sharing-label strong{font-size:15px}.sharing-label>.icon{width:24px}.sharing-label small{font-size:12px}.parent-sharing #parent-preview{min-height:35px;font-size:12px;padding:5px 12px}.parent-sharing .copy-link{flex:1;min-height:35px;font-size:12px;padding:5px 12px}.publish-actions{padding:12px}.publish-actions>div{gap:7px}.publish-actions .button{font-size:13px;padding:10px}.publish-actions .primary{min-width:130px}.review-heading{gap:10px;margin-bottom:17px}.review-heading h2{font-size:16px}.period-tabs button{padding:7px 9px;font-size:13px}.review-panel{padding:17px 15px 13px}.tag-options{gap:6px}.tag-option{font-size:13px;padding:6px 7px}.review-footnote>span:first-child{font-size:12px}}
@media(max-width:1100px){.main-nav{justify-content:flex-start;gap:2px}.nav-item{min-width:95px;padding:0 9px}.brand small{display:none}.teacher-menu{gap:4px}.topbar{gap:18px;height:85px}.today-layout{grid-template-columns:1fr;padding-top:20px}.course-sidebar{min-height:0;display:block;padding:16px}.side-title,.holo-cube,.planet-art,.side-signature{display:none}.side-fields{display:grid;grid-template-columns:1.6fr 1.1fr 1.1fr auto;gap:12px;align-items:center}.side-field{border:0;background:none;padding:0}.side-field>span{font-size:12px}.side-field strong,.side-field .date-label,.side-field .time-label{font-size:14px;line-height:1.3}.side-field small{display:none}.side-field .input{font-size:14px}.side-field .date-label{display:none}.side-export{margin:0;font-size:13px;padding:8px 12px}.attendance-overview{gap:20px;padding:17px}.metric-grid{min-width:320px}.metric>div>span{font-size:14px}.work-columns{grid-template-columns:1fr 1.1fr}.student-row{min-height:83px}.student-identity strong{font-size:16px}.kid-avatar{width:41px;height:41px}.student-number{font-size:13px}.roster-labels,.student-row{grid-template-columns:minmax(0,1fr) 92px 88px}.attendance-select{width:88px;font-size:14px}.review-panel{min-height:330px}.parent-sharing{flex-wrap:nowrap}.sharing-label{flex-basis:auto;min-width:165px}.parent-sharing #parent-preview{display:none}.parent-sharing .copy-link{flex:none;min-height:44px;font-size:13px}.workspace-actions{grid-template-columns:1.15fr 1fr}.course-sidebar:before,.course-sidebar:after{opacity:.5}.roster-labels{padding-left:32px}.console-footer>span:last-child{display:none}}
@media(max-width:850px){.topbar{height:auto;min-height:114px;padding:15px 0 0;display:flex;flex-wrap:wrap;gap:8px 18px}.brand{gap:10px}.brand strong{font-size:22px}.teacher-menu{margin-left:auto}.teacher-menu>span:nth-child(2){display:inline}.main-nav{order:3;flex-basis:100%;justify-content:space-between;height:54px}.nav-item{height:46px;flex:1;font-size:14px}.nav-item>.icon{width:20px;height:20px}.attendance-overview{flex-wrap:wrap;padding:16px;gap:14px}.metric-grid{flex-basis:100%;min-width:0}.metric{justify-content:flex-start;padding-left:12px}.leave-notice{max-width:none;flex:1;font-size:14px;min-height:43px}.bulk-arrival{flex-direction:row;gap:10px}.bulk-arrival small{display:none}.work-columns{grid-template-columns:1fr}.roster-labels,.student-row{grid-template-columns:minmax(0,1.5fr) 1fr 100px;gap:20px}.attendance-select{width:100px}.student-identity strong{font-size:17px}.student-identity small{display:block}.kid-avatar{width:44px;height:44px}.student-row{min-height:75px;padding:9px 16px}.student-row.is-selected{padding:8px 15px}.roster-labels{padding-left:57px;padding-right:35px;font-size:13px}.roster-bottom>span:last-child{display:block}.review-heading h2{font-size:19px}.review-heading h2>small{display:inline;margin-left:10px;font-size:14px}.period-tabs button{font-size:14px;padding:8px 14px}.review-panel{min-height:320px}.workspace-actions{grid-template-columns:1fr}.parent-sharing #parent-preview{display:block}.parent-sharing{padding:18px;gap:15px}.parent-sharing .copy-link{font-size:14px}.publish-actions{padding:15px 18px;gap:10px}.publish-actions .button{font-size:16px;min-height:48px}.side-fields{grid-template-columns:1.4fr 1fr auto}.side-fields>.side-field:nth-child(2){display:none}.workspace-title h2{font-size:22px}.console-footer{padding:18px 0;font-size:12px}.console-footer>span:nth-child(2){font-size:12px}.management-container{padding:25px 0}.login-grid{gap:35px;grid-template-columns:1fr 360px}.login-intro h1{font-size:26px}.login-intro .brand strong{font-size:25px}.login-intro .brand>.icon{width:38px}}
@media(max-width:540px){.console-shell{padding:0 12px}.brand>.icon{width:34px;height:34px}.brand strong{font-size:21px}.teacher-menu{font-size:12px;gap:6px}.teacher-avatar{width:29px;height:29px}.teacher-menu .icon-button{width:30px;min-width:30px}.teacher-menu>span:nth-child(2){display:none}.nav-item{font-size:13px;gap:5px;padding:0 6px;min-width:0}.nav-item>.icon{width:18px;height:18px}.course-sidebar{padding:13px}.side-fields{grid-template-columns:1fr auto;gap:12px}.side-fields>.side-field:nth-child(3){display:none}.side-export{font-size:13px;min-height:43px;padding:8px 10px}.side-export .icon{width:17px;height:17px}.today-layout{padding-top:16px;gap:17px}.workspace-title{align-items:flex-start;gap:10px}.workspace-title h2{font-size:19px;margin-top:5px}.workspace-title .eyebrow{font-size:12px;letter-spacing:1px}.publication-badge{font-size:12px;padding:4px 7px;margin-top:23px}.attendance-overview{padding:14px 10px}.metric{gap:7px;padding-left:7px}.metric>.icon{width:23px;height:23px}.metric>div>span{font-size:12px}.metric>div>strong{font-size:25px}.leave-notice{font-size:12px;padding:10px 7px;gap:6px}.leave-notice>.icon{height:20px;width:20px}.bulk-arrival .button{font-size:13px;padding:8px 10px}.bulk-arrival .icon{display:none}.panel-heading{padding:16px 14px}.panel-heading h2{font-size:18px}.panel-heading h2>span{font-size:14px}.roster-search{margin-left:14px;margin-right:14px}.roster-labels{grid-template-columns:minmax(0,1fr) 72px 82px;gap:8px;padding:0 23px 10px 35px;font-size:12px}.student-row{grid-template-columns:minmax(0,1fr) 72px 82px;gap:8px;padding:12px 7px;min-height:77px}.student-row.is-selected{padding:11px 6px}.selection-mark{width:13px;height:13px}.student-identity{gap:6px}.student-identity strong{font-size:15px}.student-identity small{font-size:12px;max-width:60px}.kid-avatar{width:34px;height:34px;font-size:16px}.student-number{font-size:12px;overflow-wrap:anywhere;word-break:break-all}.attendance-select{font-size:14px;width:82px;min-height:39px}.roster-bottom{font-size:12px;padding:12px 10px}.roster-bottom>span:last-child{font-size:12px}.review-heading{gap:16px}.review-heading>div:first-child{gap:9px}.review-heading h2{font-size:19px}.review-heading h2>small{font-size:13px;margin-left:8px}.period-tabs{width:100%}.period-tabs>button{flex:1;font-size:14px;min-height:42px}.tag-option{font-size:14px;min-height:39px;padding:7px 10px}.tag-options{gap:7px;margin-bottom:21px}.lesson-editor{margin:0 14px;width:calc(100% - 28px);height:160px;font-size:16px;padding:12px}.review-editor{min-height:170px;font-size:16px;padding:12px}.editor-label{font-size:14px}.editor-label .review-status{font-size:12px}.review-footnote>span:first-child{font-size:12px}.parent-sharing{padding:16px 12px;flex-wrap:wrap;gap:13px 8px}.sharing-label{flex-basis:100%}.sharing-label strong{font-size:17px}.sharing-label small{font-size:13px}.parent-sharing .copy-link{flex:1;font-size:14px;min-height:44px}.parent-sharing #parent-preview{font-size:14px;min-height:44px}.publish-actions>div{gap:10px}.publish-actions .button{font-size:14px;padding:11px 9px}.publish-actions .button .icon{height:20px;width:20px}.console-footer>span:nth-child(2){display:none}.console-footer{justify-content:center}.modal-header{padding:17px 19px}.modal-header h2{font-size:19px}.modal-body{padding:18px 19px}.modal-footer{padding:14px 19px}.export-form{grid-template-columns:1fr}.login-page{padding:25px 20px}.login-grid{display:flex;flex-direction:column;gap:30px;width:100%;max-width:420px}.login-intro{width:100%}.login-cube,.login-intro h1,.login-intro>p,.login-intro>.eyebrow{display:none}.login-intro .brand{justify-content:center;margin-bottom:0}.login-card{width:100%;padding:28px 24px}.login-intro .brand small{display:block}.login-card h2{font-size:25px}.review-range{gap:7px}.review-range input{font-size:14px;padding:9px 7px}}
.main-nav{min-width:0}
@media(max-width:420px){.main-nav{width:100%}.nav-item{font-size:14px;padding:0 5px;flex:1 1 0}.nav-item>.icon{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.workspace-title-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}
.workspace-title-actions .publication-badge{margin:0}
.workspace-title-actions .button{font-size:14px;white-space:nowrap}
.course-team-bar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:14px 17px;min-width:0}
.course-team-bar>label{display:flex;align-items:center;gap:7px;color:#a7d7e8;font-size:14px;white-space:nowrap}
.course-team-bar>select{width:auto;flex:1 1 190px;max-width:320px;min-width:0}
.course-team-bar>.team-scope-hint{color:#8aacc2;font-size:12px;flex:1 1 150px;overflow-wrap:anywhere}
.course-team-bar>.button{font-size:13px;white-space:nowrap}
.publish-scope-hint{font-size:12px;color:#87a6bc;line-height:1.5;margin-top:3px}
.student-identity>span:last-child{min-width:0}
.student-identity small{display:block;max-width:115px}
@media(max-width:540px){.course-team-bar{padding:13px;gap:10px}.course-team-bar>select{max-width:none;flex:1 1 170px}.course-team-bar>.team-scope-hint{flex-basis:160px}.course-team-bar>.button{padding:8px 10px}.lesson-panel .helper{font-size:12px}.student-identity small{max-width:68px}.publish-scope-hint{font-size:12px}}
.empty-course-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
.empty-course p{font-size:16px;line-height:1.8}
@media(max-width:700px){.workspace-title{flex-wrap:wrap}.workspace-title-actions{width:100%;justify-content:space-between}.empty-course{padding:30px 18px;margin:22px auto}}
