:root{font-family:Microsoft YaHei UI,Microsoft YaHei,system-ui,sans-serif;color:#17352d;background:#eef0ec;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:1080px;min-height:100vh;background:#eef0ec}button,input,select{font:inherit}button{cursor:pointer}.app-shell{display:grid;grid-template-columns:266px minmax(0,1fr);min-height:100vh}.sidebar{min-height:100vh;padding:28px 18px 22px;background:#10271f;color:#d5e3dc;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:13px;padding:5px 9px 24px}.brand-mark{display:grid;width:49px;height:49px;place-items:center;border-radius:15px;background:#2f8165;color:#fff;font-size:28px;font-weight:800;box-shadow:inset 0 0 0 1px #61ad91}.brand strong{display:block;color:#fff;font-size:18px;letter-spacing:.01em}.brand small{display:block;color:#93aca1;font-size:12px;margin-top:5px}.rail-rule{height:1px;margin:0 3px 22px;background:#294439}.nav-group{margin:0 0 19px}.nav-group>span{display:block;padding:0 14px 8px;color:#779287;font-size:12px;font-weight:700}.nav-group button{position:relative;width:100%;display:flex;gap:12px;align-items:center;border:0;border-radius:11px;padding:12px 13px;color:#b5c6bf;background:transparent;text-align:left;font-size:15px;font-weight:650}.nav-group button:hover{background:#1b3b30;color:#fff}.nav-group button.active{background:#327e63;color:#fff;box-shadow:0 8px 18px #07150f66}.nav-group button.active:before{content:"";position:absolute;left:-18px;width:3px;height:23px;border-radius:4px;background:#e7ab3d}.nav-group i{width:18px;text-align:center;font-size:20px;font-style:normal}.nav-group em{margin-left:auto;padding:3px 6px;border-radius:6px;background:#e3a539;color:#3b2a08;font-size:10px;font-style:normal}.sidebar-foot{margin-top:auto;border-top:1px solid #294439;padding:18px 10px 0;color:#d6e4dd;font-size:13px;font-weight:700}.sidebar-foot small{display:block;margin:7px 0 0 20px;color:#80998d;font-size:11px;font-weight:400}.online-dot{display:inline-block;width:9px;height:9px;margin-right:8px;border-radius:50%;background:#5fcaac;box-shadow:0 0 0 5px #2d5749}.content{min-width:0}.topbar{height:100px;padding:22px 34px;border-bottom:1px solid #dfe5df;background:#fff;display:flex;align-items:center;justify-content:space-between}.breadcrumb,.eyebrow{color:#768c82;font-size:12px;font-weight:700}.topbar h1{margin:5px 0 0;color:#122b23;font-size:25px;letter-spacing:-.04em}.top-actions{display:flex;align-items:center;gap:11px}.mode-pill,.date-pill{display:inline-flex;align-items:center;min-height:38px;padding:0 13px;border:1px solid #dfe7e1;border-radius:10px;color:#5f786c;background:#fff;font-size:12px;font-weight:700}.mode-pill{color:#28755b;background:#eff8f2;border-color:#d3e7da}.user-avatar{width:39px;height:39px;border:0;border-radius:12px;background:#17352d;color:#fff;font-weight:800}.account-menu{position:fixed;z-index:60;top:78px;right:30px;display:none;width:210px;padding:8px;border:1px solid #dce5df;border-radius:13px;background:#fff;box-shadow:0 18px 45px #10271f2e}.account-menu.open{display:grid}.account-menu-identity{display:grid;gap:3px;margin-bottom:6px;padding:10px 11px 12px;border-bottom:1px solid #e5ebe7}.account-menu-identity strong{color:#19372d;font-size:14px}.account-menu-identity span{color:#7b8e85;font-size:11px}.account-menu>button{padding:10px 11px;border:0;border-radius:8px;color:#315448;background:transparent;text-align:left;font-size:13px;font-weight:750}.account-menu>button:hover{background:#eef6f1}.account-menu>button.danger{color:#b8453e}.account-menu>button.danger:hover{background:#fff0ee}.content-body{padding:26px 32px 44px}.hero-strip{min-height:153px;padding:25px 29px;border-radius:18px;background:linear-gradient(116deg,#122c23,#1d4739);color:#fff;display:flex;justify-content:space-between;gap:28px;box-shadow:0 13px 35px #2041371f}.hero-strip>div:first-child{max-width:670px}.hero-strip>div:first-child>span{color:#e1b767;font-size:12px;font-weight:800}.hero-strip h1{margin:8px 0;font-size:28px;letter-spacing:-.045em}.hero-strip p{margin:0;color:#b7c7c0;font-size:13px;line-height:1.65}.hero-stats{display:grid;grid-template-columns:repeat(3,minmax(92px,1fr));align-items:center;border:1px solid #3d6255;border-radius:13px;overflow:hidden;align-self:center}.hero-stats div{min-width:103px;padding:18px 17px;border-left:1px solid #3d6255}.hero-stats div:first-child{border:0}.hero-stats small{display:block;color:#9eb2a8;font-size:11px}.hero-stats b{display:block;margin-top:8px;color:#fff;font-size:25px}.hero-stats em{margin-left:3px;color:#9eb2a8;font-size:11px;font-style:normal}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:17px 0}.stat-card{min-height:116px;padding:18px;border:1px solid #e1e7e2;border-radius:15px;background:#fff;box-shadow:0 6px 18px #1c3c3010}.stat-card span,.stat-card small{display:block;color:#778c82;font-size:12px}.stat-card strong{display:block;margin:10px 0 7px;font-size:25px;letter-spacing:-.04em}.stat-card.forest strong{color:#20745b}.stat-card.amber strong{color:#a5660e}.stat-card.danger strong{color:#c74640}.stat-card.slate strong{color:#486b7a}.overview-grid{display:grid;grid-template-columns:minmax(0,1.48fr) minmax(300px,.85fr);gap:17px}.panel{border:1px solid #e0e7e1;border-radius:17px;background:#fff;box-shadow:0 8px 24px #1c3c3010}.workflow-card,.cross-card,.teachers-panel,.publish-panel,.versions-panel,.settings-panel{padding:23px}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.panel-head h2{margin:4px 0 0;color:#17352d;font-size:20px;letter-spacing:-.03em}.panel-head p{margin:7px 0 0;color:#788e84;font-size:13px;line-height:1.6}.primary,.secondary,.text-button{border-radius:10px;font-size:13px;font-weight:800;white-space:nowrap}.primary{border:1px solid #2c7d61;padding:11px 15px;background:#2f8064;color:#fff;box-shadow:0 7px 16px #28735628}.primary:hover{background:#246c53}.secondary{border:1px solid #b8d3c5;padding:10px 14px;background:#fff;color:#287159}.secondary:hover{background:#f1f8f3}.text-button{padding:5px 0;border:0;color:#27725a;background:transparent}.workflow-list{display:grid;gap:16px;margin:23px 0 0;padding:0;list-style:none}.workflow-list li{display:flex;align-items:center;gap:13px}.workflow-list b{display:grid;flex:none;width:25px;height:25px;place-items:center;border-radius:50%;background:#e4f1ea;color:#29765b;font-size:12px}.workflow-list strong,.workflow-list span{display:block}.workflow-list strong{color:#254137;font-size:14px}.workflow-list span{margin-top:4px;color:#7b9087;font-size:12px}.teacher-mini-list{margin-top:19px;display:grid;gap:10px}.teacher-mini{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid #e5ece6;border-radius:11px}.avatar{display:grid;width:31px;height:31px;place-items:center;border-radius:10px;background:#dfeee6;color:#257158;font-weight:800}.teacher-mini strong,.teacher-mini small{display:block}.teacher-mini small{margin-top:4px;color:#778d83;font-size:11px}.cross-tag{display:inline-block;margin-left:auto;padding:3px 7px;border-radius:7px;background:#fff0d7;color:#966215;font-size:10px;font-style:normal;font-weight:800}.publish-panel{min-height:440px}.grade-publish-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;margin-top:22px}.grade-publish-card{position:relative;padding:22px;border:1px solid #e2e9e3;border-radius:15px;background:#fdfefd}.grade-icon{display:grid;width:38px;height:38px;place-items:center;border-radius:11px;background:#e4f0e8;color:#26755a;font-size:19px;font-weight:800}.grade-publish-card h3{margin:16px 0 6px;font-size:21px}.grade-publish-card p,.grade-publish-card small{display:block;color:#6c8478;font-size:12px}.grade-publish-card small{margin:19px 0;color:#9aa9a1}.grade-publish-card .status{position:absolute;top:25px;right:20px}.status{display:inline-block;padding:4px 8px;border-radius:7px;font-size:11px;font-weight:800}.status.published{background:#e2f2e9;color:#28745a}.status.draft{background:#fff1d8;color:#9d6410}.info-strip{display:flex;justify-content:space-between;gap:18px;margin:20px 0 15px;padding:12px 14px;border:1px solid #d9e9de;border-radius:11px;color:#527064;background:#f2f8f3;font-size:12px}.info-strip b{color:#27745a}.data-table{overflow:hidden;border:1px solid #e2e8e3;border-radius:12px}.table-row{display:grid;grid-template-columns:1.1fr 1.35fr 1fr 1fr .9fr 62px;align-items:center;gap:12px;min-height:54px;padding:0 15px;border-top:1px solid #e8ede9;color:#526c60;font-size:13px}.table-row:first-child{border-top:0}.table-row strong{color:#213d33}.table-head{min-height:43px;color:#70877c;background:#f5f8f6;font-size:12px;font-weight:800}.number{font-variant-numeric:tabular-nums}.account-state{color:#28745a;font-size:12px}.table-row .cross-tag{margin-left:7px;vertical-align:middle}.table-action{border:1px solid #c8ddd2;border-radius:8px;padding:6px 9px;color:#287159;background:#f8fbf9;font-weight:800}.table-action:hover{background:#eaf5ee}.teacher-head-actions{display:flex;gap:9px}.teacher-editor-dialog{width:min(620px,calc(100vw - 32px))}.teacher-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:20px}.teacher-form-grid label>span,.teacher-form-grid legend{display:block;margin-bottom:7px;color:#536d62;font-size:12px;font-weight:800}.teacher-form-grid input[type=text],.teacher-form-grid input:not([type]){width:100%}.teacher-form-grid label input{width:100%;padding:11px 12px;border:1px solid #ccd9d1;border-radius:9px;outline:none}.teacher-form-grid label input:focus{border-color:#2f8064;box-shadow:0 0 0 3px #2f80641a}.teacher-form-grid .wide{grid-column:1 / -1}.teacher-form-grid fieldset{margin:0;padding:0;border:0}.grade-checks{display:flex;gap:10px}.grade-checks label{display:flex;align-items:center;justify-content:center;gap:7px;min-width:92px;padding:10px 14px;border:1px solid #d5e1da;border-radius:9px;color:#587065;background:#f8faf8;cursor:pointer}.grade-checks label.checked{border-color:#318264;color:#246c53;background:#eaf5ee;font-weight:800}.grade-checks input{width:auto!important}.course-card[draggable=true]{cursor:grab}.course-card[draggable=true]:active{cursor:grabbing}.schedule-page{display:grid;gap:15px}.scheduler-top{display:flex;align-items:center;gap:14px;padding:13px 15px}.grade-tabs{display:flex;padding:4px;border-radius:11px;background:#edf3ef}.grade-tabs button{padding:8px 13px;border:0;border-radius:8px;background:transparent;color:#698176;font-size:13px;font-weight:800}.grade-tabs button.active{background:#2b7a60;color:#fff;box-shadow:0 4px 11px #23624730}.top-summary{min-width:210px;margin-right:auto}.top-summary span,.top-summary small{display:block;color:#7e9188;font-size:11px}.top-summary b{display:block;margin:2px 0;color:#28443a;font-size:14px}.scheduler-layout{display:grid;grid-template-columns:254px minmax(0,1fr) 235px;gap:14px;align-items:start}.task-pool,.inspector{padding:16px}.task-pool .panel-head h2,.inspector h2{font-size:17px}.count-chip{padding:4px 8px;border-radius:7px;background:#e9f2ec;color:#2c765d;font-size:11px;font-weight:800}.muted{color:#7d9288;font-size:12px;line-height:1.55}.task-list{display:grid;gap:8px;margin-top:13px}.task-card{position:relative;display:block;width:100%;padding:11px;border:1px solid #dfe8e1;border-radius:10px;background:#fff;color:#355449;text-align:left}.task-card:hover,.task-card.selected{border-color:#4e9d7d;background:#f0f8f3;box-shadow:0 5px 12px #27745a12}.task-card.walk-task{border-left:4px solid #74857c}.task-card span,.task-card small{display:block}.task-subject{color:#1c5743;font-size:15px;font-weight:800}.task-class{margin:4px 0 5px;color:#4b6d60;font-size:12px}.task-card small{color:#8b9a92;font-size:11px}.task-card em{position:absolute;right:9px;top:10px;color:#69786f;font-size:10px;font-style:normal}.inspector p{color:#72887d;font-size:12px;line-height:1.5}.rule-status{margin-top:12px;padding:10px;border-radius:9px;background:#f4f7f5}.rule-status strong,.rule-status span{display:block}.rule-status strong{color:#36564a;font-size:12px}.rule-status span{margin-top:5px;color:#70857b;font-size:11px;line-height:1.45}.cross-preview{margin-top:16px;padding-top:14px;border-top:1px solid #e4ebe5}.cross-preview h3{margin:0 0 7px;font-size:13px}.cross-preview span,.cross-preview small{display:block}.cross-preview span{color:#2d765c;font-size:12px;font-weight:800}.cross-preview small{margin-top:8px;color:#87978f;font-size:11px;line-height:1.5}.empty-inspector{padding:42px 0;color:#778b82;text-align:center}.empty-inspector b,.empty-inspector span{display:block}.empty-inspector span{margin-top:8px;font-size:12px;line-height:1.5}.schedule-shell{min-width:0;padding:13px;overflow:auto;border:1px solid #dfe7e1;border-radius:17px;background:#fff;box-shadow:0 8px 24px #1c3c3010}.grid-caption{display:flex;align-items:center;gap:8px;padding:0 3px 11px;color:#6d8478;font-size:11px}.grid-caption b{color:#2a5948}.caption-sep{margin-right:auto}.legend{padding:3px 6px;border-radius:5px;font-size:10px}.legend.normal{color:#247057;background:#e5f2e9}.legend.walk{color:#62726a;background:#edf0ee}.schedule-grid{display:grid;min-width:1040px;grid-template-columns:78px repeat(12,minmax(74px,1fr));grid-template-rows:33px 37px repeat(14,59px);border-top:1px solid #dfe6e1;border-left:1px solid #e4eae6}.corner-cell,.week-band,.day-cell,.period-cell,.schedule-slot{border-right:1px solid #e4eae6;border-bottom:1px solid #e4eae6}.corner-cell{grid-column:1;grid-row:1 / span 2;display:grid;place-items:center;background:#f5f8f6;color:#5f786c;font-size:12px;font-weight:800}.week-band{display:flex;align-items:center;gap:7px;padding:0 11px;color:#27745a;background:#edf5ef;font-size:13px;font-weight:800}.week-band.rear{background:#f0f3ed;color:#536f63}.week-band small{color:#82958b;font-size:10px;font-weight:600}.day-cell{grid-row:2;display:grid;place-items:center;color:#536d61;background:#f9fbfa;font-size:12px;font-weight:800}.day-cell small{color:#87978f;font-size:8px;font-weight:600}.rear-day{background:#f6f8f5}.period-cell{display:grid;place-items:center;color:#456156;background:#fbfcfb;font-size:12px;font-weight:800}.schedule-slot{position:relative;padding:5px;background:#fff;transition:background .15s,box-shadow .15s}.schedule-slot.drop-ready{background:#f2fbf5;box-shadow:inset 0 0 0 1px #91c9a9}.schedule-slot.drop-blocked{background:#fff2f0}.schedule-slot.disabled{background:repeating-linear-gradient(135deg,#f2f4f2,#f2f4f2 5px,#edf0ed 5px,#edf0ed 10px)}.slot-mark,.no-slot{display:grid;height:100%;place-items:center;color:#b1beb7;font-size:12px}.drop-blocked .slot-mark{color:#cf675d;font-size:10px}.no-slot{color:#a4aea8}.course-card{width:100%;height:100%;min-height:46px;padding:4px;border:1px solid #74ad93;border-radius:8px;background:#e8f4ec;color:#24674f;text-align:center;overflow:hidden}.course-card:hover{box-shadow:0 0 0 2px #bdddc9}.course-card b,.course-card span{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.course-card b{font-size:12px}.course-card span{margin-top:3px;color:#5c8d79;font-size:10px}.course-card em{display:inline-block;margin-top:3px;padding:1px 4px;border-radius:3px;color:#62726a;background:#fff;font-size:9px;font-style:normal}.course-card.walk{border-color:#8a9690;background:#edf0ee;color:#53635b}.legend.pending{color:#805900;background:#fff0b7}.schedule-slot.move-target{cursor:pointer;background:#eff8f2;box-shadow:inset 0 0 0 2px #5cad80}.schedule-slot.add-target{cursor:pointer;background:#eef8fb;box-shadow:inset 0 0 0 2px #4389a0}.schedule-slot.move-source{background:#fff9dc;box-shadow:inset 0 0 0 2px #d6a72e}.schedule-slot.pending-change{background:#fffdf0;box-shadow:inset 0 0 0 2px #e0ad25}.move-target .slot-mark{color:#2d7a58;font-size:10px;font-weight:800}.add-target .slot-mark{color:#246d84;font-size:10px;font-weight:800}.move-hint{position:absolute;z-index:2;right:4px;bottom:3px;padding:2px 4px;border-radius:4px;color:#fff;background:#2e8060;font-size:8px;font-weight:800}.move-hint.add{background:#287e98}.course-card.pending-change{border:2px solid #e0ad25;box-shadow:0 0 0 2px #ffe9a2,0 4px 10px #c3911926}.course-card.selected-for-move{border:2px solid #b87a00;color:#6f4700;background:#fff0b5;box-shadow:0 0 0 3px #ffd95e;transform:translateY(-1px)}.schedule-slot.normal-empty{border-right-color:#e4eae6!important;border-bottom-color:#e4eae6!important;background:#fff!important;box-shadow:none!important}.schedule-slot:not(.move-target):not(.add-target):not(.move-source):not(.pending-change):not(.disabled){border-color:#e4eae6;background:#fff;box-shadow:none}.schedule-slot.disabled{border-color:#dfe5e1!important;background:repeating-linear-gradient(135deg,#f2f4f2,#f2f4f2 5px,#e9eeeb 5px,#e9eeeb 10px)!important;box-shadow:none!important}.settings-form{max-width:720px;display:grid;gap:15px;margin-top:25px}.settings-form label{display:grid;gap:7px;color:#506b5f;font-size:12px;font-weight:800}.settings-form select,.settings-form input{width:100%;min-height:43px;padding:0 12px;border:1px solid #d7e1db;border-radius:9px;outline-color:#3d8d6f;color:#29453a;background:#fff}.settings-form input:disabled{color:#9aaba2;background:#f2f5f3}.endpoint-contract{display:grid;grid-template-columns:auto repeat(2,1fr);gap:8px;align-items:center;padding:14px;border-radius:10px;background:#f3f7f4;color:#5e766b;font-size:12px}.endpoint-contract code{color:#477464;font-family:Consolas,monospace;font-size:11px}.loading-state,.error-state{min-height:360px;display:grid;place-content:center;gap:12px;border:1px solid #dfe7e1;border-radius:17px;background:#fff;color:#658076;text-align:center}.error-state b{color:#bd4b45}.toast{position:fixed;z-index:20;right:28px;bottom:26px;max-width:430px;padding:12px 16px;border-radius:10px;background:#17352d;color:#fff;box-shadow:0 15px 35px #0d241a40;font-size:13px;font-weight:700}.dialog-backdrop{position:fixed;z-index:30;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:25px;background:#0c2119aa}.dialog{position:relative;width:min(650px,100%);padding:27px;border-radius:17px;background:#fff;box-shadow:0 28px 70px #07150f61}.dialog h2{margin:6px 0;color:#17352d}.dialog>p{color:#71877d;font-size:13px;line-height:1.65}.dialog-close{position:absolute;top:14px;right:16px;border:0;background:none;color:#71857c;font-size:26px}.upload-zone{display:grid;gap:5px;margin-top:18px;padding:24px;border:1px dashed #87b6a1;border-radius:12px;background:#f5faf7;text-align:center;color:#2c765c;cursor:pointer}.upload-zone input{display:none}.upload-zone span{color:#81968b;font-size:12px}.form-error{margin-top:12px;padding:10px;border-radius:8px;background:#fff0ee;color:#be4c45;font-size:12px}.preview{margin-top:16px}.preview>b{color:#2d7059;font-size:13px}.preview-table{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:1px;margin-top:8px;overflow:hidden;border:1px solid #e0e8e2;border-radius:8px;background:#e0e8e2}.preview-table span{padding:8px 9px;background:#fff;color:#607a6f;font-size:12px}.preview-table span:nth-child(-n+3){background:#f3f7f4;color:#547065;font-weight:800}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:22px}.primary:disabled{opacity:.55;cursor:not-allowed}@media (max-width: 1250px){.app-shell{grid-template-columns:230px minmax(0,1fr)}.sidebar{padding-inline:13px}.scheduler-layout{grid-template-columns:225px minmax(0,1fr)}.inspector{display:none}.hero-stats div{min-width:86px;padding-inline:12px}.content-body{padding-inline:21px}}.primary.compact{min-height:38px;padding-block:8px}.import-flow{display:flex;align-items:center;gap:9px;margin:22px 0 0;padding:12px 14px;border:1px solid #e0e9e3;border-radius:11px;color:#668075;background:#f4f8f5;font-size:12px}.import-flow span{padding:5px 8px;border-radius:6px;background:#e1f0e6;color:#28735a;font-weight:800}.import-flow b{color:#9aab9f;font-size:11px}.import-flow b:after{content:"→";margin-left:9px;color:#a7b6ad}.import-flow b:last-child:after{display:none}.grade-card-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.master-import-dialog{width:min(780px,100%)}.master-preview{margin-top:16px}.preview-metrics{display:grid;grid-template-columns:repeat(4,1fr);overflow:hidden;border:1px solid #dfe8e2;border-radius:10px}.preview-metrics div{padding:11px 13px;border-left:1px solid #dfe8e2}.preview-metrics div:first-child{border-left:0}.preview-metrics small,.preview-metrics b{display:block}.preview-metrics small{color:#7f9289;font-size:10px}.preview-metrics b{margin-top:4px;color:#27715a;font-size:14px}.import-warning{margin:10px 0 0;padding:9px 10px;border-radius:8px;color:#8b5b13;background:#fff5e3;font-size:11px}.schedule-preview-table{grid-template-columns:.75fr 1.2fr .75fr 1fr 1fr;max-height:254px;overflow:auto}.schedule-preview-table span:nth-child(-n+5){background:#f3f7f4;color:#547065;font-weight:800}.scheduler-console{display:flex;align-items:end;gap:11px;padding:14px}.scheduler-console .grade-tabs{align-self:center}.scheduler-field{display:grid;min-width:145px;gap:5px;color:#6d8479;font-size:10px;font-weight:800}.scheduler-field input,.scheduler-field select,.import-grade-select select{height:38px;padding:0 10px;border:1px solid #d7e2db;border-radius:8px;outline-color:#3e8e70;color:#28463a;background:#fff}.scheduler-field.task-select{min-width:205px}.scheduler-check{flex:1;min-width:210px;padding:8px 11px;border-radius:9px;background:#f0f6f2}.scheduler-check b,.scheduler-check span{display:block}.scheduler-check b{color:#2c6451;font-size:12px}.scheduler-check span{margin-top:4px;color:#72877d;font-size:10.5px;line-height:1.4}.drag-course{min-height:38px;padding:0 11px;border:1px dashed #5a9d7f;border-radius:8px;color:#28735a;background:#e8f4ec;font-size:11px;font-weight:800}.drag-course:active{cursor:grabbing}.drop-replace{background:#eff9f2;box-shadow:inset 0 0 0 2px #4aab75}.drop-hint{position:absolute;z-index:2;left:4px;right:4px;bottom:4px;padding:3px;border-radius:4px;color:#fff;text-align:center;font-size:9px;font-weight:800}.drop-hint.replace{background:#2f8b63}.drop-hint.blocked{background:#c64c45}.empty-query{padding:80px 20px;color:#74897f;text-align:center}.import-grade-select{display:grid;grid-template-columns:80px 1fr;align-items:center;gap:10px;margin-top:15px;color:#517064;font-size:12px;font-weight:800}.import-grade-select select{width:170px}.scheduler-check.move-guide{min-width:245px;color:#725511;background:#fff8da}.scheduler-check.move-guide b{color:#7b5802}.scheduler-check.move-guide span{color:#92742a}.scheduler-check.move-guide.selecting{background:#fff0b7;box-shadow:inset 0 0 0 2px #e0ad25}.scheduler-add-course{flex:none;min-height:38px;padding:0 12px;border:1px solid #4d9079;border-radius:8px;color:#236a52;background:#fff;font-size:11px;font-weight:850;white-space:nowrap}.scheduler-add-course:hover:not(:disabled){color:#fff;background:#2f8163}.scheduler-add-course.active{color:#fff;border-color:#24778f;background:#287e98;box-shadow:0 0 0 3px #287e9818}.scheduler-add-course:disabled{opacity:.48;cursor:not-allowed}.schedule-save-actions{display:flex;align-items:center;gap:7px}.schedule-save-actions .primary{background:#b77708}.schedule-save-actions .primary:hover{background:#945c00}.schedule-shell{padding:9px;border-radius:15px}.grid-caption{gap:7px;padding:0 2px 8px;font-size:10px}.legend{padding:2px 5px;font-size:9px}.schedule-grid{min-width:890px;grid-template-columns:64px repeat(12,minmax(60px,1fr));grid-template-rows:28px 30px repeat(14,46px)}.corner-cell,.period-cell{font-size:11px}.week-band{gap:6px;padding:0 8px;font-size:12px}.week-band small{font-size:9px}.day-cell{font-size:11px}.schedule-slot{padding:3px}.slot-mark,.no-slot{font-size:10px}.drop-blocked .slot-mark{font-size:9px}.course-card{min-height:38px;padding:3px 2px;border-radius:7px}.course-card b{font-size:11px;line-height:15px}.course-card span{display:flex;align-items:center;justify-content:center;gap:3px;margin-top:0;font-size:9px;line-height:13px}.course-card em{display:inline;flex:none;margin:0;padding:0;border:0;border-radius:0;background:transparent;font-size:9px}.course-tone-red{color:#9e403a;background:#fff0ee;border-color:#efc3bf}.course-tone-blue{color:#32689e;background:#edf4ff;border-color:#bdd4f1}.course-tone-green{color:#367454;background:#edf8f0;border-color:#bfdfc8}.course-tone-violet{color:#67518e;background:#f2effb;border-color:#d5cbed}.course-tone-amber{color:#95611b;background:#fff6e5;border-color:#ead19b}.course-tone-teal{color:#256f6c;background:#e8f7f5;border-color:#b8ded9}.course-tone-clay{color:#96533b;background:#fff0ea;border-color:#ecc7b9}.course-tone-sand{color:#89652d;background:#fbf4e8;border-color:#e7d2ab}.course-tone-sky{color:#32748d;background:#e9f7fc;border-color:#badce8}.course-tone-lime{color:#5f7a35;background:#f2f8e7;border-color:#cfe1aa}.course-tone-rose{color:#96516f;background:#fdf0f5;border-color:#e9c4d4}.course-tone-neutral{color:#586963;background:#f1f4f2;border-color:#ced8d2}.course-grade-1{color:#245c42;background:#e8f2eb;border-color:#bad7c4}.course-grade-2{color:#795018;background:#fbf0dd;border-color:#e4c995}.course-grade-3{color:#554e83;background:#eeedf7;border-color:#cec9e5}.course-card.course-tone-red span,.course-card.course-tone-blue span,.course-card.course-tone-green span,.course-card.course-tone-violet span,.course-card.course-tone-amber span,.course-card.course-tone-teal span,.course-card.course-tone-clay span,.course-card.course-tone-sand span,.course-card.course-tone-sky span,.course-card.course-tone-lime span,.course-card.course-tone-rose span,.course-card.course-tone-neutral span,.course-card.course-grade-1 span,.course-card.course-grade-2 span,.course-card.course-grade-3 span{color:currentColor;opacity:.76}.course-card small{display:block;max-width:100%;overflow:hidden;color:currentColor;font-size:8px;font-weight:800;line-height:10px;text-overflow:ellipsis;white-space:nowrap;opacity:.9}.course-card.conflict{color:#a63631;background:#fff0ee;border-color:#df625a}.course-card.conflict b{margin-top:8px}.course-card.conflict small{position:absolute;top:0;left:0;right:0;height:11px;color:#fff;background:#cf514a;font-size:7px;line-height:11px}.legend.grade-1{color:#245c42;background:#e8f2eb}.legend.grade-2{color:#795018;background:#fbf0dd}.legend.grade-3{color:#554e83;background:#eeedf7}.legend.information{color:#2e5f91;background:#edf3ff}.legend.information-conflict{color:#a63631;background:#fff0ee}.course-card.info-teacher-1{color:#245c42;background:#e8f3ea;border-color:#9fc7aa}.course-card.info-teacher-2{color:#2e5f91;background:#edf3ff;border-color:#afc8ea}.course-card.info-teacher-3{color:#8a561b;background:#fff1e6;border-color:#e9c39b}.course-card.info-teacher-4{color:#5e4784;background:#f3eefc;border-color:#cbbbe7}.course-card.info-teacher-5{color:#216d69;background:#e7f7f6;border-color:#a9d9d5}.course-card.info-teacher-6{color:#8d4665;background:#fdebf3;border-color:#e8bdd0}.course-card.info-teacher-1 span,.course-card.info-teacher-2 span,.course-card.info-teacher-3 span,.course-card.info-teacher-4 span,.course-card.info-teacher-5 span,.course-card.info-teacher-6 span{color:currentColor;opacity:.78}.course-card.info-teacher-1.conflict,.course-card.info-teacher-2.conflict,.course-card.info-teacher-3.conflict,.course-card.info-teacher-4.conflict,.course-card.info-teacher-5.conflict,.course-card.info-teacher-6.conflict{color:#a63631;background:#fff0ee;border-color:#df625a}.scheduler-check.has-conflict{color:#a23f38;background:#fff0ee}.scheduler-check.has-conflict b,.scheduler-check.has-conflict span{color:#a23f38}.stat-card.clickable{width:100%;border:1px solid #e1e7e2;cursor:pointer;text-align:left}.stat-card.clickable:hover{border-color:#e59892;box-shadow:0 9px 22px #b84e461b;transform:translateY(-1px)}.stat-card.clickable:focus-visible{outline:3px solid #f1c5c1;outline-offset:2px}.query-export{min-height:38px;align-self:end}.information-query-toggle{min-height:38px;align-self:end;white-space:nowrap}.information-query-toggle.active{color:#2e5f91;border-color:#afc8ea;background:#edf3ff}.grade-publish-card.blocked{border-color:#edc4c0;background:snow}.publish-check{display:grid;gap:3px;margin:16px 0;padding:10px 11px;border-radius:9px;font-size:11px}.publish-check b,.publish-check span{display:block}.publish-check.passed{color:#256b50;background:#edf7f0}.publish-check.has-blocker{color:#a53f39;background:#fff0ee}.publish-check span{opacity:.78}.danger-outline{min-height:36px;padding:0 12px;border:1px solid #d96b64;border-radius:9px;color:#a83e38;background:#fff;font-weight:800}.grade-card-actions{flex-wrap:wrap;justify-content:flex-start}.grade-card-actions .primary,.grade-card-actions>:last-child{margin-left:auto}.clear-grade-button{border-color:#efb2ad;color:#bc433c;background:#fff8f7}.account-panel{padding:23px;min-height:520px}.account-notice{display:flex;gap:16px;align-items:center;margin:20px 0 16px;padding:13px 15px;border-radius:11px;background:#f2f7f3;color:#557267;font-size:12px}.account-notice b{color:#246d54}.staff-account-table .table-row{grid-template-columns:1fr 1.25fr 1fr 1.15fr 1.35fr}.staff-dialog{width:min(560px,100%)}.dialog-field{display:grid;gap:7px;margin-top:15px;color:#526a60;font-size:12px;font-weight:800}.dialog-field input{height:43px;padding:0 12px;border:1px solid #d5e0d8;border-radius:9px;outline:none}.dialog-field input:focus{border-color:#398568;box-shadow:0 0 0 3px #2f806414}.grade-checks{display:flex;gap:10px;margin:16px 0 0;padding:12px 14px;border:1px solid #dfe7e1;border-radius:10px}.grade-checks legend{padding:0 5px;color:#536e62;font-size:12px;font-weight:800}.grade-checks label{display:flex;align-items:center;gap:6px;padding:7px 10px;border-radius:8px;background:#f2f7f3;color:#2f6f58;font-size:12px;font-weight:800}.default-password-note{display:flex;justify-content:space-between;margin-top:14px;padding:11px 13px;border-radius:9px;background:#fff7e8;color:#9b6716;font-size:12px}.conflict-center{margin-top:12px;padding:16px;border-color:#ecc8c4;background:snow}.conflict-center-head{display:flex;justify-content:space-between;gap:20px}.conflict-center-head h2{margin:3px 0 2px;color:#873b36;font-size:18px}.conflict-center-head p{margin:0;color:#956e69;font-size:11px}.icon-button{width:32px;height:32px;border:1px solid #e3d8d6;border-radius:8px;color:#84645f;background:#fff;font-size:20px}.conflict-focus{display:grid;grid-template-columns:180px 1fr auto;align-items:center;gap:14px;margin-top:13px;padding:12px;border:1px solid #efcbc7;border-radius:11px;background:#fff2f0}.conflict-focus>div:first-child strong,.conflict-focus>div:first-child span{display:block}.conflict-focus>div:first-child strong{color:#8f342f}.conflict-focus>div:first-child span{margin-top:3px;color:#9d625d;font-size:11px}.conflict-courses{display:flex;flex-wrap:wrap;gap:6px}.conflict-courses span{display:grid;gap:2px;padding:6px 9px;border-radius:7px;color:#8f4039;background:#fff;font-size:10px}.conflict-nav{display:flex;align-items:center;gap:7px}.conflict-nav button,.conflict-list button{border:1px solid #e6d9d6;border-radius:7px;color:#76524e;background:#fff}.conflict-nav button{min-height:30px;padding:0 8px}.conflict-nav button:disabled{opacity:.4}.conflict-nav b{min-width:48px;color:#9d4a43;text-align:center;font-size:11px}.conflict-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;max-height:136px;margin-top:10px;overflow:auto}.conflict-list button{display:grid;grid-template-columns:24px 1fr;gap:7px;align-items:center;padding:7px;text-align:left}.conflict-list button.active{border-color:#d96760;background:#fff0ee;box-shadow:0 0 0 2px #f5d5d1}.conflict-list button>span{display:grid;width:22px;height:22px;place-items:center;border-radius:6px;color:#fff;background:#c9564f;font-size:10px;font-weight:800}.conflict-list button b,.conflict-list button small,.conflict-list button em{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conflict-list button b{color:#653d39;font-size:11px}.conflict-list button small{color:#9a7772;font-size:9px}.conflict-list button em{grid-column:1 / -1;color:#a24b44;font-size:9px;font-style:normal}.scheduler-check.actionable{border:0;text-align:left;cursor:pointer}.scheduler-check.actionable:hover{box-shadow:inset 0 0 0 1px #df8a83}.density-switch{display:flex;padding:2px;border-radius:7px;background:#edf2ee}.density-switch button{padding:3px 7px;border:0;border-radius:5px;color:#72857c;background:transparent;font-size:9px;font-weight:800}.density-switch button.active{color:#245e48;background:#fff;box-shadow:0 1px 4px #183a2e18}.schedule-grid.density-compact{min-width:840px;grid-template-columns:60px repeat(12,minmax(56px,1fr));grid-template-rows:25px 27px repeat(14,40px)}.schedule-grid.density-compact .schedule-slot{padding:2px}.schedule-grid.density-compact .course-card{min-height:34px;padding:2px 1px}.schedule-grid.density-compact .course-card b{font-size:10px;line-height:13px}.schedule-grid.density-compact .course-card span{font-size:8px;line-height:11px}.schedule-grid.density-standard{grid-template-rows:30px 32px repeat(14,52px)}.course-detail-dialog{width:min(560px,100%)}.course-detail-list{display:grid;gap:8px;margin-top:17px}.course-detail-list article{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 13px;border:1px solid #dce6df;border-radius:10px;background:#f7faf8}.course-detail-list article.conflict{border-color:#e08a84;background:#fff1ef}.course-detail-list article b{color:#24483a}.course-detail-list article span,.course-detail-list article small{color:#6e8479;font-size:11px}.course-detail-dialog>p{margin:6px 0 0;color:#70857b;font-size:12px}.course-detail-copy{display:grid;gap:4px;min-width:0}.course-delete-button{flex:0 0 auto;border:1px solid #e2aaa5;border-radius:8px;padding:7px 10px;color:#b83f36;background:#fff;font-size:12px;font-weight:800}.course-delete-button:hover{border-color:#cf665d;color:#fff;background:#c94f45}.teacher-compare-page{display:grid;gap:12px}.compare-console{display:grid;grid-template-columns:minmax(280px,1fr) 160px 160px 160px minmax(200px,.7fr);gap:12px;align-items:end;padding:16px}.compare-console h2{margin:3px 0;color:#193d30;font-size:18px}.compare-console p{margin:0;color:#758a80;font-size:11px}.compare-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.teacher-feature-toggle{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;padding:5px 8px;border:1px solid #d7e1db;border-radius:999px;color:#6a7f75;background:#fff;font-size:10px;font-weight:800}.teacher-feature-toggle i{position:relative;width:30px;height:17px;border-radius:999px;background:#c8d2cc;transition:background .18s ease}.teacher-feature-toggle i:after{content:"";position:absolute;top:3px;left:3px;width:11px;height:11px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #17352b35;transition:transform .18s ease}.teacher-feature-toggle b{min-width:30px;font-size:9px}.teacher-feature-toggle.enabled{border-color:#9fcab5;color:#246b50;background:#edf7f1}.teacher-feature-toggle.enabled i{background:#2d8464}.teacher-feature-toggle.enabled i:after{transform:translate(13px)}.overlap-summary{display:grid;gap:3px;padding:9px 11px;border-radius:9px;color:#2e6d55;background:#edf7f0;font-size:10px}.overlap-summary b{font-size:12px}.overlap-summary.has-overlap{color:#a43f39;background:#fff0ee}.overlap-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;padding:11px}.overlap-list button{display:grid;gap:3px;padding:8px 10px;border:1px solid #e6bab6;border-radius:8px;color:#9b3f39;background:#fff3f1;text-align:left}.overlap-list button span{overflow:hidden;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.compare-a-card{color:#246346;background:#e7f4eb;border-color:#77ad8d}.compare-b-card{color:#815b18;background:#fff4d9;border-color:#d8b96c}.compare-conflict-card,.course-card.compare-conflict-card.conflict{color:#9f332e;background:#ffe8e5;border-color:#d8514a}.legend.compare-a{color:#246346;background:#e7f4eb}.legend.compare-b{color:#815b18;background:#fff4d9}.legend.compare-conflict{color:#9f332e;background:#ffe8e5}.filter-bar{display:flex;align-items:end;gap:12px;margin:18px 0 13px;padding:10px;border-radius:11px;background:#f3f7f4}.filter-bar label{display:grid;gap:4px;color:#70877c;font-size:10px;font-weight:800}.filter-bar input,.filter-bar select{min-width:160px;height:36px;padding:0 10px;border:1px solid #d6e1da;border-radius:8px;color:#294b3d;background:#fff}.inline-search{margin-left:auto}.result-count{color:#6f8479;font-size:11px;font-weight:700}.section-title{margin:15px 0 9px;color:#315c4c;font-size:14px}.table-empty{padding:28px;color:#82958b;text-align:center;font-size:12px}.pending-teachers{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:18px;padding:16px;border:1px dashed #ddc38d;border-radius:12px;background:#fffaf0}.pending-teachers h3{margin:0;color:#76531c;font-size:14px}.pending-teachers p{margin:4px 0 0;color:#9a7d4d;font-size:11px}.pending-chip-list{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:7px;max-height:110px;overflow:auto}.pending-chip-list button{display:flex;align-items:center;gap:4px;padding:7px 9px;border:1px solid #ead9b5;border-radius:7px;color:#8c6d39;background:#fff;font-size:10px;text-align:left;cursor:pointer}.pending-chip-list button:hover{border-color:#c99f4f;background:#fff4d9;transform:translateY(-1px)}.pending-chip-list b{margin-right:2px;color:#60471f}.pending-chip-list em{margin-left:4px;color:#a16d13;font-style:normal;font-weight:800}.pending-actions{display:flex;align-items:center;gap:8px}.pending-download{border:1px solid #d5b674;border-radius:8px;padding:7px 10px;color:#805817;background:#fff;font-size:11px;font-weight:800}.pending-download:hover{border-color:#b9872c;background:#fff3d6}.teacher-batch-dialog{width:min(720px,100%)}.teacher-template-row{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:16px;padding:13px 14px;border:1px solid #d9e9de;border-radius:11px;background:#f2f8f3}.teacher-template-row b,.teacher-template-row span{display:block}.teacher-template-row b{color:#286e57;font-size:12px}.teacher-template-row span{margin-top:4px;color:#70877c;font-size:11px}.teacher-template-download{flex:none;border:1px solid #83b39e;border-radius:9px;padding:9px 12px;color:#236c53;background:#fff;font-size:12px;font-weight:800}.teacher-template-download:hover{border-color:#438c6e;background:#eaf5ee}.teacher-batch-preview{grid-template-columns:1fr 1fr 1.25fr 1fr;max-height:250px;overflow:auto}.teacher-batch-preview span:nth-child(-n+4){background:#f3f7f4;color:#547065;font-weight:800}.version-row{grid-template-columns:.6fr 1.55fr .7fr 1.25fr 1.1fr}.version-row span small{display:block;margin-top:3px;color:#93a198;font-size:9px}.row-actions{display:flex;gap:6px}.row-actions button{min-height:30px;padding:0 8px;border:1px solid #cddbd2;border-radius:7px;color:#2f7159;background:#fff;font-size:10px;font-weight:800}.row-actions button:disabled{color:#9aa8a0;background:#f3f5f3;cursor:not-allowed}.version-detail-dialog dl{display:grid;gap:1px;margin-top:17px;overflow:hidden;border:1px solid #dfe7e2;border-radius:10px;background:#dfe7e2}.version-detail-dialog dl div{display:grid;grid-template-columns:100px 1fr;background:#fff}.version-detail-dialog dt,.version-detail-dialog dd{margin:0;padding:10px 12px}.version-detail-dialog dt{color:#71857b;background:#f5f8f6;font-size:11px;font-weight:800}.version-detail-dialog dd{color:#294b3d;font-size:12px}.today-course-button{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:7px 11px;white-space:nowrap}.today-course-button small{color:#71877c;font-size:10px;font-weight:700}.today-course-button.is-override{border-color:#dba94e;color:#8a5c10;background:#fff9eb}.today-course-button.is-override small{color:#9a742e}.today-course-dialog{width:min(590px,100%)}.today-course-mode{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:18px;padding:5px;border-radius:11px;background:#eef3ef}.today-course-mode button{border:0;border-radius:8px;padding:10px 12px;color:#63786e;background:transparent;font-size:12px;font-weight:800}.today-course-mode button.active{color:#fff;background:#2d8062;box-shadow:0 4px 10px #2d806327}.today-course-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dialog-field select{height:43px;padding:0 12px;border:1px solid #d5e0d8;border-radius:9px;color:#294b3d;background:#fff;outline:none}.dialog-field select:focus{border-color:#398568;box-shadow:0 0 0 3px #2f806414}.today-course-note{display:grid;gap:5px;margin-top:17px;padding:12px 14px;border-radius:10px;color:#41665a;background:#eef7f1;font-size:12px}.today-course-note.override{color:#835a14;background:#fff7e6}.today-course-note span{font-size:11px}.arrangement-checks{display:flex;flex-wrap:wrap;gap:8px 12px;margin:14px 0 0;padding:10px 12px;border:1px solid #d8e4dc;border-radius:10px}.arrangement-checks legend{padding:0 4px;color:#527065;font-size:11px;font-weight:850}.arrangement-checks label{display:flex;align-items:center;gap:4px;color:#3f5d51;font-size:11px;font-weight:700}.arrangement-checks input{width:14px;height:14px}.arrangement-checks.is-locked{border-color:#d2dfd6;background:#f7fbf8}.arrangement-checks.is-locked label{color:#6c8176}.arrangement-list{display:grid;gap:7px;margin-top:15px;max-height:180px;overflow:auto}.arrangement-list>b{color:#315b4c;font-size:12px}.arrangement-list>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid #d8e4dc;border-radius:9px;background:#f8fbf9}.arrangement-list span,.arrangement-list small{color:#60776d;font-size:11px;line-height:1.45}.arrangement-list button{flex:none}@media (max-width:620px){.today-course-fields{grid-template-columns:1fr}.arrangement-checks{gap:8px}.arrangement-list>div{align-items:flex-start}.arrangement-list span{word-break:break-all}}@media (max-width: 1450px){.scheduler-console{flex-wrap:wrap}.scheduler-check{min-width:260px}.compare-console{grid-template-columns:1fr repeat(3,150px)}.compare-console>div:first-child,.overlap-summary{grid-column:1 / -1}.conflict-list,.overlap-list{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 720px){.compare-title-row{align-items:flex-start;flex-direction:column}}.workload-status-legend .public_leave{color:#28698a;background:#e5f3fa}.month-lesson.public_leave{border-color:#9ccbdd;color:#286480;background:#eef8fc}.workload-record-type{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}.workload-record-type button{display:grid;gap:3px;padding:10px 12px;border:1px solid #d9e2dc;border-radius:10px;color:#647970;background:#fff;text-align:left}.workload-record-type button b{font-size:12px}.workload-record-type button span{font-size:9px}.workload-record-type button.active{border-color:#bf943e;color:#81590f;background:#fff7e5;box-shadow:0 0 0 2px #c9953017}.workload-record-type button.active.public-leave{border-color:#61a2bf;color:#286783;background:#ecf7fb;box-shadow:0 0 0 2px #2e86a917}.workload-lock-note.public-leave{color:#2a6881;background:#eaf6fb}.schedule-scheme-dialog{max-width:660px}.scheme-list{display:grid;gap:12px;margin:22px 0}.scheme-list article{display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid #dbe7df;border-radius:13px;padding:16px;background:#fbfdfb}.scheme-list article.editing{border-color:#2b8768;box-shadow:0 0 0 3px #2b876817}.scheme-list article.active{background:#eff9f3}.scheme-list article>div:first-child{display:grid;gap:5px}.scheme-list b{color:#173d31}.scheme-list small{color:#708278;line-height:1.45}.scheme-list em{font-style:normal;color:#2b8768;font-size:12px;font-weight:800}.scheme-actions{display:flex;gap:8px;flex-shrink:0}.schedule-scheme-button small{white-space:nowrap}@media (max-width:720px){.scheme-list article{align-items:flex-start;flex-direction:column}.scheme-actions{width:100%}.scheme-actions button{flex:1}}.cloud-login{min-height:100vh;display:grid;grid-template-columns:48% 52%;background:#f3f5f1;color:#15382d}.cloud-login>section{padding:48px 58px;display:flex;flex-direction:column;color:#fff;background:radial-gradient(circle at 18% 18%,rgba(86,181,139,.3),transparent 35%),linear-gradient(145deg,#0d2e24,#174333)}.cloud-login-brand{display:flex;align-items:center;gap:14px}.cloud-login-brand>span{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;background:#2b8a69;font-size:29px;font-weight:900}.cloud-login-brand div{display:grid;gap:3px}.cloud-login-brand b{font-size:19px}.cloud-login-brand small{color:#9fc0b4}.cloud-login-copy{margin:auto 0}.cloud-login-copy em{font-style:normal;color:#77d1ae;font-size:13px;font-weight:800}.cloud-login-copy h1{font-size:42px;line-height:1.22;margin:20px 0}.cloud-login-copy p{color:#b6cec5;font-size:16px}.cloud-login>form{width:430px;align-self:center;justify-self:center;background:#fff;padding:36px;border-radius:22px;border:1px solid #dfe6e0;box-shadow:0 25px 65px #1c372b1c}.cloud-login form h2{font-size:28px;margin:20px 0 7px}.cloud-login form>p{color:#788a82;margin:0 0 24px}.cloud-login form label{display:grid;gap:8px;margin:15px 0;font-size:13px;font-weight:800;color:#526a60}.cloud-login form input{height:47px;border:1px solid #d7e0da;border-radius:11px;padding:0 13px;outline:none}.cloud-login form input:focus{border-color:#2b8768;box-shadow:0 0 0 3px #2b87681a}.cloud-login form .primary{width:100%;height:48px;margin-top:10px}.cloud-login .form-error{padding:10px 12px;border-radius:9px;background:#fff0ee;color:#b34239;font-size:12px}.workload-page{display:grid;gap:14px}.workload-head,.workload-filters,.workload-calendar{min-height:0;display:flex;align-items:center;justify-content:space-between;gap:18px}.workload-head h2,.workload-calendar h3{margin:4px 0 7px;color:#183f32}.workload-head p,.workload-calendar p{margin:0;color:#71867c;font-size:12px;line-height:1.6}.workload-filters{justify-content:flex-start}.workload-filters label,.workload-calendar label{display:grid;gap:6px;color:#60766b;font-size:11px;font-weight:800}.workload-filters input,.workload-filters select,.workload-calendar input,.workload-calendar select{height:38px;border:1px solid #d5e1d8;border-radius:8px;padding:0 10px;background:#fff;color:#244b3d;outline:none}.workload-filters select{min-width:190px}.workload-summary,.workload-detail{min-height:0}.workload-summary-table .workload-row{grid-template-columns:1.5fr repeat(5,.65fr) 1.2fr}.workload-summary-table button{width:100%;border:0;background:#fff;text-align:left;cursor:pointer}.workload-summary-table button:hover{background:#f0f8f3}.workload-detail-row{grid-template-columns:1.1fr 1.1fr 1.5fr 1fr 1fr}.workload-detail-row small{display:block;margin-top:3px;color:#84968c;font-size:10px}.workload-detail-row span.self{color:#5e756a}.workload-detail-row span.teacher_marked{color:#a36b12}.workload-detail-row span.admin_locked{color:#29735a;font-weight:800}.workload-detail-row button{border:1px solid #bfd5c8;border-radius:7px;padding:7px 9px;background:#fff;color:#267456;font-size:11px;font-weight:800}.workload-calendar{align-items:flex-end;flex-wrap:wrap}.workload-calendar>div:first-child{min-width:230px;max-width:370px}.workload-calendar .calendar-tags{width:100%;display:flex;gap:7px;flex-wrap:wrap}.calendar-tags span{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 9px;background:#edf6f0;color:#34735b;font-size:11px}.calendar-tags button{border:0;background:transparent;color:#8b544b;font-size:15px;line-height:1}.calendar-tags small{color:#84958c;font-size:11px}@media (max-width:1200px){.workload-head,.workload-filters,.workload-calendar{align-items:flex-start;flex-wrap:wrap}.workload-summary-table{overflow:auto}.workload-summary-table .workload-row,.workload-detail-row{min-width:760px}}.holiday-arrangement{display:grid;grid-template-columns:repeat(4,minmax(118px,1fr)) 1.1fr auto;gap:11px;align-items:end;padding:17px 18px;border-color:#d9d8ee;background:linear-gradient(135deg,#fbfbff,#f6f5fd)}.holiday-arrangement-copy{grid-column:1/-1;display:grid;gap:3px}.holiday-arrangement h3{margin:0;color:#393866;font-size:18px}.holiday-arrangement p{margin:0;color:#73728e;font-size:11px;line-height:1.6}.holiday-arrangement label,.holiday-arrangement fieldset{display:grid;gap:5px;margin:0;color:#60607a;font-size:10px;font-weight:850}.holiday-arrangement input,.holiday-arrangement select{height:38px;border:1px solid #d9d8e8;border-radius:8px;padding:0 10px;color:#39385c;background:#fff;font:inherit}.holiday-arrangement label small{min-height:12px;color:#9291a7;font-size:9px;font-weight:700}.holiday-grades{grid-column:span 2;grid-auto-flow:column;grid-template-columns:repeat(3,max-content);align-items:center;gap:10px!important;padding:8px 10px;border:1px solid #dddcea;border-radius:9px}.holiday-grades legend{padding:0 4px}.holiday-grades label{display:flex;align-items:center;gap:4px;color:#4d4c68}.holiday-grades input{width:14px;height:14px}.holiday-note{grid-column:span 2}.holiday-arrangement>button.primary{height:38px;white-space:nowrap}.holiday-arrangement-list{grid-column:1/-1;display:grid;gap:7px;padding-top:2px}.holiday-arrangement-list article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border:1px solid #dfdeed;border-radius:9px;background:#fff}.holiday-arrangement-list article div{display:grid;gap:3px}.holiday-arrangement-list b{color:#403e69;font-size:11px}.holiday-arrangement-list span,.holiday-arrangement-list small{color:#7d7c93;font-size:10px}.holiday-arrangement-list button{width:24px;height:24px;border:0;border-radius:50%;color:#9a5250;background:#f7edeb;font-size:16px;line-height:1;cursor:pointer}@media (max-width:720px){.holiday-arrangement{grid-template-columns:1fr}.holiday-grades,.holiday-note{grid-column:auto}.holiday-grades{grid-auto-flow:row;grid-template-columns:repeat(3,1fr)}.holiday-arrangement>button.primary{width:100%}}.pending-substitution-panel{min-height:0;padding:17px 18px;border-color:#e5d3a6;background:linear-gradient(135deg,#fffdf8,#fffaf0)}.pending-substitution-head{align-items:center;margin-bottom:12px}.pending-substitution-head .eyebrow{color:#9a742c}.pending-substitution-head h3{margin:4px 0;color:#5f4518;font-size:18px}.pending-substitution-head p{margin:0;color:#8e7a55;font-size:11px;line-height:1.55}.pending-substitution-count{flex:none;padding:7px 10px;border-radius:999px;color:#83590e;background:#f7dfaa;font-size:11px;font-weight:900}.pending-substitution-panel.is-clear{border-color:#dbe7df;background:#fbfdfb}.pending-substitution-panel.is-clear .pending-substitution-head .eyebrow{color:#6f887b}.pending-substitution-panel.is-clear .pending-substitution-head h3{color:#214a3b}.pending-substitution-panel.is-clear .pending-substitution-head p{color:#7d8f86}.pending-substitution-panel.is-clear .pending-substitution-count{color:#337058;background:#e6f3eb}.pending-substitution-list{max-height:310px;overflow:auto;border:1px solid #eadcb9;border-radius:11px;background:#fff}.pending-substitution-row{display:grid;grid-template-columns:1fr 1.05fr 1.25fr 1fr 108px;align-items:center;gap:13px;width:100%;min-width:920px;min-height:58px;padding:9px 13px;border:0;border-top:1px solid #eee6d4;color:#526c60;background:#fff;text-align:left}.pending-substitution-row:first-child{border-top:0}.pending-substitution-row:not(.pending-substitution-label):hover{background:#fff8e8}.pending-substitution-row>span{min-width:0}.pending-substitution-row strong,.pending-substitution-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pending-substitution-row strong{color:#344e43;font-size:12px}.pending-substitution-row small{margin-top:4px;color:#8a8f83;font-size:9px}.pending-substitution-label{position:sticky;z-index:2;top:0;min-height:37px;color:#88734b;background:#f8f3e7;font-size:10px;font-weight:900;cursor:default}.pending-substitution-action{justify-self:end;color:#986711;font-size:11px;font-weight:900;white-space:nowrap}.pending-substitution-empty{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:10px;color:#5e786d;background:#f1f7f3;font-size:11px}.pending-substitution-empty b{color:#2f6953}@media (max-width:1200px){.pending-substitution-list{overflow:auto}.pending-substitution-head{align-items:flex-start;flex-wrap:wrap}}.workload-head{padding:19px 22px}.workload-head-copy{min-width:0}.workload-head-copy .eyebrow{margin:0 0 7px;color:#6f8a7d}.workload-head-copy h2{margin:0 0 7px;font-size:23px;line-height:1.25}.workload-head-copy p{max-width:900px;line-height:1.65}.workload-head-copy p b{color:#2a7057}.workload-export{display:inline-flex;align-items:center;gap:6px;flex:none;white-space:nowrap}.workload-filters{padding:12px 16px}.workload-back{margin-left:auto;padding:8px 5px}.workload-section-head{margin-bottom:12px}.workload-section-head .eyebrow{margin-bottom:5px}.workload-section-head h3{margin:0;color:#1e493a}.workload-summary-table{max-height:520px;overflow:auto;border:1px solid #e1e8e3;border-radius:11px}.workload-summary-table .table-head{position:sticky;z-index:2;top:0}.workload-summary-table .workload-row{min-height:42px;padding-block:8px}.teacher-workload-view{display:grid;gap:12px}.teacher-workload-title{min-height:0;display:flex;align-items:center;justify-content:space-between;padding:15px 19px}.teacher-workload-title .eyebrow{margin:0 0 4px}.teacher-workload-title h3{margin:0;color:#193f32;font-size:20px}.teacher-workload-title h3 small{margin-left:8px;color:#74887e;font-size:11px;font-weight:600}.teacher-workload-title>span{padding:7px 10px;border-radius:8px;color:#287158;background:#edf6f0;font-size:12px;font-weight:800}.teacher-workload-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.teacher-workload-metrics article{position:relative;min-height:82px;padding:14px 16px;overflow:hidden;border:1px solid #dfe7e1;border-radius:13px;background:#fff}.teacher-workload-metrics article:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:#3a8a6b}.teacher-workload-metrics article:nth-child(3):before{background:#d39a36}.teacher-workload-metrics article:nth-child(5):before{background:#766bb0}.teacher-workload-metrics span{display:block;color:#71847a;font-size:11px}.teacher-workload-metrics b{display:block;margin-top:8px;color:#1c4637;font-size:24px}.teacher-workload-metrics small{font-size:11px}.month-workload-panel{position:relative;min-height:0;padding:17px}.workload-status-legend{display:flex;gap:7px;flex-wrap:wrap}.workload-status-legend span{padding:5px 8px;border-radius:999px;font-size:10px;font-weight:800}.workload-status-legend .self{color:#356c58;background:#eaf4ed}.workload-status-legend .teacher_marked{color:#936214;background:#fff3d9}.workload-status-legend .admin_locked{color:#574c91;background:#efedfa}.month-workload-grid{overflow:hidden;border:1px solid #dce5df;border-radius:12px}.month-weekdays,.month-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.month-weekdays b{padding:8px;border-right:1px solid #e2e9e4;color:#5e786c;background:#f2f6f3;text-align:center;font-size:11px}.month-weekdays b:last-child{border-right:0}.month-day{min-width:0;min-height:128px;padding:7px;border-top:1px solid #e2e9e4;border-right:1px solid #e2e9e4;background:#fbfcfb}.month-day:nth-child(7n){border-right:0}.month-day.blank{background:#f4f6f4}.month-day.has-lessons{background:#fff}.month-day header{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px}.month-day header b{display:grid;width:23px;height:23px;place-items:center;border-radius:7px;color:#254f40;background:#edf5ef;font-size:11px}.month-day header span{color:#91a098;font-size:9px}.month-day>div{display:grid;gap:3px;max-height:91px;overflow:auto;scrollbar-width:thin}.month-lesson{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:4px;width:100%;min-height:25px;padding:4px 6px;border:1px solid #cfe0d5;border-radius:6px;color:#2d634f;background:#f0f8f3;text-align:left}.month-lesson:hover{border-color:#398568;box-shadow:0 2px 7px #2c70551f}.month-lesson strong{font-size:9px;white-space:nowrap}.month-lesson span{overflow:hidden;font-size:10px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.month-lesson em{grid-column:1/-1;overflow:hidden;color:#7e5c1d;font-size:9px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.month-lesson.teacher_marked{border-color:#e0c282;color:#855910;background:#fff7e7}.month-lesson.admin_locked{border-color:#c9c1e7;color:#554b8b;background:#f3f0fb}.workload-loading{position:absolute;top:70px;right:17px;bottom:17px;left:17px;display:grid;place-items:center;border-radius:12px;color:#557568;background:#ffffffd9;font-size:12px;font-weight:800}.workload-substitution-dialog{width:min(590px,100%)}.workload-dialog-course{display:grid;gap:5px;margin:15px 0;padding:13px 14px;border-radius:10px;color:#2e604e;background:#f0f7f2}.workload-dialog-course span{color:#72877d;font-size:11px}.workload-substitution-dialog select{height:43px;padding:0 11px;border:1px solid #d5e0d8;border-radius:9px;color:#294b3d;background:#fff}.workload-substitution-dialog textarea{min-height:78px;padding:10px 11px;resize:vertical;border:1px solid #d5e0d8;border-radius:9px;color:#294b3d;font:inherit}.workload-lock-note{display:grid;gap:4px;margin-top:14px;padding:11px 13px;border-radius:9px;color:#755512;background:#fff5df;font-size:11px}.workload-lock-note.restore{color:#376b57;background:#edf6f0}.workload-lock-note span{opacity:.82}@media (max-width:1200px){.teacher-workload-metrics{grid-template-columns:repeat(3,1fr)}.month-workload-grid{overflow:auto}.month-weekdays,.month-days{min-width:920px}}.exam-workload-stack{display:grid;gap:12px}.exam-workload-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 19px;background:linear-gradient(135deg,#f8fbf8,#f4f8fc)}.exam-workload-head h3{margin:4px 0;color:#204a3b;font-size:19px}.exam-workload-head p{max-width:760px;margin:0;color:#71867c;font-size:11px;line-height:1.6}.exam-event-form,.invigilation-form{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:11px;align-items:end;padding:16px 18px}.exam-form-title{grid-column:1/-1;display:grid;gap:3px}.exam-form-title b{color:#254d3e;font-size:14px}.exam-form-title span{color:#758b80;font-size:11px}.exam-event-form label,.invigilation-form label{display:grid;gap:5px;color:#61786d;font-size:10px;font-weight:850}.exam-event-form input,.exam-event-form select,.invigilation-form input,.invigilation-form select{height:38px;border:1px solid #d4e0d8;border-radius:8px;padding:0 10px;color:#264c3d;background:#fff;font:inherit}.exam-event-form .wide,.invigilation-form .wide{grid-column:span 2}.exam-event-form fieldset{grid-column:span 2;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:8px 10px;border:1px solid #d9e4dd;border-radius:9px}.exam-event-form legend{padding:0 4px;color:#5e776b;font-size:10px;font-weight:850}.exam-event-form fieldset label{display:flex;align-items:center;gap:4px;color:#3d5d4f}.exam-event-form fieldset input{width:14px;height:14px}.exam-periods{grid-column:span 3!important}.exam-event-list{padding:15px 18px}.exam-event-list .panel-head{margin-bottom:10px}.exam-event-list h3{margin:3px 0;color:#244d3e;font-size:16px}.exam-event-list>article{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid #e7ede8}.exam-event-list>article:first-of-type{border-top:0}.exam-event-list article>button:first-child{display:grid;gap:4px;border:0;color:#385a4d;background:transparent;text-align:left}.exam-event-list article b{color:#244d3e;font-size:13px}.exam-event-list article span,.exam-event-list article small{color:#70877d;font-size:10px}.exam-event-list article.selected{margin-inline:-8px;padding-inline:8px;border-radius:8px;background:#edf7f0}.danger-text{border:0;color:#b45249;background:transparent;font-size:11px;font-weight:850}.invigilation-import{position:relative;display:grid!important;min-height:38px;place-content:center;border:1px dashed #91b9a4;border-radius:8px;color:#2c755a!important;background:#f4faf6;text-align:center;cursor:pointer}.invigilation-import input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.invigilation-list{padding:16px 18px}.invigilation-list h3{margin:3px 0;color:#244d3e}.invigilation-list>article{display:grid;grid-template-columns:1.25fr 1fr 1fr .5fr auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid #e7ede8;font-size:11px}.invigilation-list span{display:block;color:#71857b;font-size:10px}.invigilation-list em{color:#a06d14;font-style:normal;font-weight:850}.invigilation-correction-panel{padding:16px 18px;border-color:#e5d3a6;background:#fffdf8}.invigilation-correction-panel h3{margin:3px 0;color:#624a1e}.invigilation-correction-panel>article{display:grid;grid-template-columns:1fr 1fr 1.5fr auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid #eee3cc;font-size:11px}.invigilation-correction-panel span{display:block;color:#7d8578;font-size:10px}.invigilation-correction-panel em{color:#936214;font-style:normal;font-weight:850}.invigilation-correction-panel .row-actions{justify-content:flex-end}.workload-summary-table .workload-row{grid-template-columns:1.28fr .58fr .9fr .82fr .55fr .66fr .88fr 1.04fr}.workload-summary-table .workload-row small{display:block;margin-top:2px;color:#82958b;font-size:9px;white-space:nowrap}.teacher-workload-metrics{grid-template-columns:repeat(6,minmax(0,1fr))}.teacher-workload-metrics em{display:block;margin-top:3px;color:#71867c;font-size:10px;font-style:normal;font-weight:700}@media (max-width:1200px){.exam-event-form,.invigilation-form{grid-template-columns:repeat(3,minmax(150px,1fr))}.exam-periods{grid-column:span 3!important}.invigilation-list,.invigilation-correction-panel{overflow:auto}.invigilation-list>article,.invigilation-correction-panel>article{min-width:760px}.workload-summary-table .workload-row{min-width:900px}}.invigilation-row{grid-template-columns:1.25fr 1fr 1fr .5fr auto}.invigilation-row .row-actions{display:flex;gap:6px;justify-content:flex-end}.invigilation-row .row-actions button{border:1px solid #c8d9cf;border-radius:7px;padding:5px 7px;color:#33735a;background:#fff;font-size:10px;font-weight:850}.invigilation-row .row-actions .danger-text{border-color:#eed0ca;color:#b45149}@media (max-width:720px){.exam-workload-head{align-items:flex-start;flex-direction:column}.exam-event-form,.invigilation-form{grid-template-columns:1fr}.exam-event-form .wide,.invigilation-form .wide,.exam-event-form fieldset,.exam-periods{grid-column:auto!important}}.teacher-search-field{position:relative}.teacher-search-field input{min-width:220px;padding-right:34px!important}.teacher-search-field>button{position:absolute;right:7px;bottom:7px;width:24px;height:24px;border:0;border-radius:50%;color:#668076;background:#edf4ef;font-size:16px;line-height:1;cursor:pointer}.teacher-search-result{align-self:flex-end;margin-bottom:10px;color:#7c8f86;font-size:10px;white-space:nowrap}.exam-workload-collapsible{min-height:0;padding:0;overflow:hidden}.exam-workload-collapsible>summary{list-style:none;cursor:pointer}.exam-workload-collapsible>summary::-webkit-details-marker{display:none}.exam-workload-collapsible[open]>.exam-workload-head{border-bottom:1px solid #e1e9e3}.exam-workload-head{min-height:86px}.exam-workload-summary{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.exam-workload-summary>span{padding:6px 9px;border-radius:999px;color:#587266;background:#edf4ef;font-size:10px;font-weight:800;white-space:nowrap}.exam-workload-summary>span.has-pending{color:#855c12;background:#fff0cf}.exam-toggle-label{display:inline-flex;align-items:center;gap:7px;min-width:104px;padding:8px 11px;border:1px solid #bdd4c6;border-radius:8px;color:#2b775b;background:#fff;font-size:11px}.exam-toggle-label i,.exam-toggle-label em{font-style:normal}.exam-toggle-label em,.exam-workload-collapsible[open] .exam-toggle-label i{display:none}.exam-workload-collapsible[open] .exam-toggle-label em{display:inline}.exam-workload-collapsible[open] .exam-toggle-label{background:#edf6f0}.exam-workload-collapsible[open] .exam-toggle-label:last-child{transform:none}.exam-workload-stack{padding:12px;background:#f6f8f6}.exam-workload-tools{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:2px 4px}.exam-workload-tools p{margin:0;color:#71867c;font-size:11px}@media (max-width:900px){.workload-filters .teacher-search-field,.workload-filters .teacher-search-field input{width:100%}.exam-workload-summary{justify-content:flex-start}.teacher-search-result{align-self:center;margin:0}.exam-workload-tools{align-items:flex-start;flex-direction:column}}.teacher-directory-table .table-row{grid-template-columns:1.05fr 1.2fr 1fr .85fr 1.05fr 340px;min-width:1170px}.teacher-account-actions .reset-password-action{color:#8c5b13;border-color:#dfc17f;background:#fff9ec}.app-root{min-height:100vh}.mobile-admin-shell{display:none}@media (max-width:760px){.desktop-admin-shell{display:none}.mobile-admin-shell{display:flex;min-height:100vh;flex-direction:column;background:#f3f7f4;color:#173b2e}.mobile-admin-topbar{position:sticky;z-index:8;top:0;display:flex;align-items:center;justify-content:space-between;min-height:66px;padding:0 18px;border-bottom:1px solid #e1e9e3;background:#fff}.mobile-admin-brand{display:flex;align-items:center;gap:9px;min-width:0}.mobile-admin-brand>span{display:grid;width:34px;height:34px;place-items:center;border-radius:10px;color:#fff;background:#28745a;font-size:20px;font-weight:900}.mobile-admin-brand b,.mobile-admin-brand small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-admin-brand b{max-width:230px;color:#173b2e;font-size:14px}.mobile-admin-brand small{margin-top:2px;color:#789087;font-size:10px}.mobile-admin-account{display:grid;width:36px;height:36px;place-items:center;border:0;border-radius:50%;color:#fff;background:#194d3d;font-size:15px;font-weight:900}.mobile-admin-main{flex:1;padding:15px 14px 96px}.mobile-workbench,.mobile-task-page{display:grid;gap:13px}.mobile-workbench-hero{padding:19px;border-radius:19px;color:#fff;background:linear-gradient(135deg,#104635,#277458 65%,#43856b);box-shadow:0 12px 28px #174c3922}.mobile-workbench-hero>span{color:#f1cc71;font-size:10px;font-weight:900;letter-spacing:.08em}.mobile-workbench-hero h1{margin:7px 0 4px;font-size:28px;line-height:1.1}.mobile-workbench-hero>p{margin:0;color:#d7ebe0;font-size:12px}.mobile-today-action{display:grid;grid-template-columns:1fr auto;align-items:center;gap:3px;width:100%;margin-top:17px;padding:12px 13px;border:1px solid #ffffff38;border-radius:12px;color:#fff;background:#ffffff1c;text-align:left}.mobile-today-action b{font-size:13px}.mobile-today-action small{grid-column:1;color:#d7ebe0;font-size:10px}.mobile-today-action i{grid-column:2;grid-row:1/3;font-size:24px;font-style:normal}.mobile-today-action.is-override{border-color:#f2cd73;color:#fff4d7;background:#a36f0a3d}.mobile-workbench-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.mobile-workbench-stats article{min-height:72px;padding:11px 10px;border:1px solid #e0e9e3;border-radius:13px;background:#fff}.mobile-workbench-stats span,.mobile-workbench-stats b{display:block}.mobile-workbench-stats span{color:#788e83;font-size:10px}.mobile-workbench-stats b{margin-top:7px;color:#214b3b;font-size:13px;line-height:1.25}.mobile-workbench-stats b.alert{color:#b54842}.mobile-section,.mobile-page-title{padding:16px;border:1px solid #e0e8e2;border-radius:16px;background:#fff}.mobile-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-bottom:12px}.mobile-section-head span,.mobile-page-title span,.mobile-safety-note>span{display:block;color:#728b7d;font-size:10px;font-weight:850}.mobile-section-head h2,.mobile-page-title h1,.mobile-safety-note h2{margin:4px 0 0;color:#1a4435;font-size:19px}.mobile-section-head button{border:0;color:#287258;background:transparent;font-size:11px;font-weight:850}.mobile-grade-list,.mobile-more-list{display:grid;gap:8px}.mobile-grade-card,.mobile-more-list>button{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:62px;padding:10px;border:1px solid #dfe9e3;border-radius:12px;color:#24493b;background:#fbfdfc;text-align:left}.mobile-grade-icon{display:grid;width:35px;height:35px;place-items:center;border-radius:9px;color:#216a50;background:#e5f3e9;font-size:12px;font-style:normal;font-weight:900}.mobile-grade-icon.高二{color:#966115;background:#fff1d8}.mobile-grade-icon.高三{color:#5c518d;background:#efedfa}.mobile-grade-copy{display:grid;gap:4px;min-width:0}.mobile-grade-copy b{color:#254b3d;font-size:13px}.mobile-grade-copy small{overflow:hidden;color:#7c9087;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.mobile-grade-card em{padding:4px 6px;border-radius:6px;color:#a3433c;background:#fff0ee;font-size:9px;font-style:normal;font-weight:850;white-space:nowrap}.mobile-grade-card i,.mobile-more-list em{color:#87a094;font-size:23px;font-style:normal}.mobile-safety-note{border-style:dashed;background:#f8fbf9}.mobile-safety-note p{margin:8px 0 0;color:#70877c;font-size:11px;line-height:1.65}.mobile-more-workbench{gap:13px}.mobile-page-title p{margin:7px 0 0;color:#70867c;font-size:11px;line-height:1.6}.mobile-more-list>button{min-height:67px;background:#fff}.mobile-more-list i{display:grid;width:34px;height:34px;place-items:center;border-radius:9px;color:#2b7559;background:#e8f4ec;font-size:17px;font-style:normal}.mobile-more-list span{display:grid;gap:4px;min-width:0}.mobile-more-list b{color:#264c3d;font-size:13px}.mobile-more-list small{overflow:hidden;color:#7b9086;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.mobile-desktop-only{display:grid;gap:5px;padding:14px;border-radius:13px;color:#775a20;background:#fff7e7;font-size:11px;line-height:1.6}.mobile-desktop-only b{font-size:12px}.mobile-admin-bottom-nav{position:fixed;z-index:12;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(4,1fr);gap:2px;padding:8px max(12px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));border-top:1px solid #dfe8e2;background:#fffffff2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.mobile-admin-bottom-nav button{display:grid;gap:3px;min-height:49px;place-content:center;border:0;border-radius:10px;color:#698276;background:transparent;font-size:10px;font-weight:800}.mobile-admin-bottom-nav button i{font-size:18px;font-style:normal;line-height:1}.mobile-admin-bottom-nav button.active{color:#237055;background:#e5f2e9}.mobile-task-page>.panel,.mobile-task-page>.workload-page,.mobile-task-page>.teacher-compare-page{min-width:0}.mobile-task-page .panel{border-radius:15px}.mobile-task-page .workload-head,.mobile-task-page .workload-filters,.mobile-task-page .workload-calendar{align-items:stretch;flex-direction:column}.mobile-task-page .workload-filters label,.mobile-task-page .workload-filters input,.mobile-task-page .workload-filters select{width:100%;min-width:0}.mobile-task-page .teacher-workload-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-task-page .month-workload-grid,.mobile-task-page .schedule-shell,.mobile-task-page .teacher-directory-table{overflow:auto}.mobile-task-page .filter-bar{align-items:stretch;flex-direction:column}.mobile-task-page .filter-bar label,.mobile-task-page .filter-bar input,.mobile-task-page .filter-bar select{width:100%;min-width:0}.mobile-task-page .query-console,.mobile-task-page .compare-console{grid-template-columns:1fr}.dialog-backdrop{padding:14px}.dialog{max-height:calc(100vh - 28px);overflow:auto;padding:22px 18px}.today-course-fields{grid-template-columns:1fr}.toast{right:14px;bottom:82px;left:14px;max-width:none;text-align:center}.mobile-admin-shell button{touch-action:manipulation}}@media (max-width: 760px){html,body,#root{width:100%;min-width:0;max-width:100%;overflow-x:hidden}body{min-width:0;min-height:100dvh}.app-root,.mobile-admin-shell,.mobile-admin-main,.mobile-workbench,.mobile-task-page{width:100%;min-width:0;max-width:100%}.mobile-admin-main{overflow-x:hidden}.mobile-task-page>*,.mobile-task-page .panel,.mobile-task-page .workload-page,.mobile-task-page .teacher-compare-page,.mobile-task-page .schedule-page,.mobile-task-page .teacher-directory-page{min-width:0;max-width:100%}.mobile-task-page input,.mobile-task-page select,.mobile-task-page textarea,.mobile-task-page button{max-width:100%}.mobile-task-page .panel-head,.mobile-task-page .teacher-workload-title,.mobile-task-page .info-strip,.mobile-task-page .scheduler-top,.mobile-task-page .grid-caption,.mobile-task-page .teacher-directory-title{align-items:flex-start;flex-direction:column}.mobile-task-page .panel-head>*,.mobile-task-page .teacher-workload-title>*,.mobile-task-page .info-strip>*,.mobile-task-page .scheduler-top>*,.mobile-task-page .grid-caption>*,.mobile-task-page .teacher-directory-title>*{max-width:100%}.mobile-task-page .caption-sep,.mobile-task-page .top-summary,.mobile-task-page .workload-back{margin-right:0;margin-left:0}.mobile-task-page .workload-summary-table,.mobile-task-page .month-workload-grid,.mobile-task-page .schedule-shell,.mobile-task-page .teacher-directory-table,.mobile-task-page .invigilation-list,.mobile-task-page .invigilation-correction-panel,.mobile-task-page .data-table,.mobile-task-page .preview-table{width:100%;max-width:100%;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.mobile-task-page .data-table,.mobile-task-page .preview-table{overflow-x:auto}.mobile-task-page .grade-tabs,.mobile-task-page .teacher-head-actions,.mobile-task-page .schedule-save-actions,.mobile-task-page .dialog-actions{width:100%;flex-wrap:wrap}.mobile-task-page .grade-tabs button,.mobile-task-page .teacher-head-actions>*,.mobile-task-page .schedule-save-actions>*,.mobile-task-page .dialog-actions>*{flex:1 1 auto}.dialog-backdrop{align-items:end;padding:12px}.dialog{width:100%;max-width:100%;max-height:min(84dvh,calc(100vh - 24px));padding:21px 17px calc(21px + env(safe-area-inset-bottom));border-radius:18px 18px 12px 12px}.teacher-form-grid{grid-template-columns:1fr}.teacher-form-grid .wide{grid-column:auto}.grade-checks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.grade-checks label{min-width:0;padding-inline:6px}.cloud-login{display:flex;min-height:100dvh;flex-direction:column;overflow:hidden}.cloud-login>section{min-height:274px;padding:26px 24px 72px}.cloud-login-brand>span{width:42px;height:42px;border-radius:12px;font-size:23px}.cloud-login-brand b{font-size:16px}.cloud-login-brand small{font-size:11px}.cloud-login-copy{margin:37px 0 0}.cloud-login-copy h1{margin:12px 0 8px;font-size:clamp(25px,8vw,32px);line-height:1.25}.cloud-login-copy p{margin:0;font-size:13px;line-height:1.65}.cloud-login>form{width:calc(100% - 28px);margin:-46px auto 26px;padding:24px 20px;border-radius:18px}.cloud-login form h2{margin:5px 0 7px;font-size:23px}}.teacher-directory-tabs{display:flex;gap:9px;margin:20px 0 12px}.teacher-directory-tabs button{display:flex;align-items:center;gap:9px;padding:10px 13px;border:1px solid #d4e2d9;border-radius:10px;color:#557065;background:#f8fbf9;cursor:pointer}.teacher-directory-tabs button b{font-size:12px}.teacher-directory-tabs button span{padding:3px 7px;border-radius:999px;color:#789087;background:#edf3ef;font-size:10px}.teacher-directory-tabs button.active{border-color:#378568;color:#216d52;background:#eaf5ee;box-shadow:0 0 0 3px #2f806410}.teacher-directory-tabs button.active span{color:#256f54;background:#d8ecdf}.teacher-directory-title{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:18px 0 10px}.teacher-directory-title h3{margin:0;color:#1d4436;font-size:16px}.teacher-directory-title p{margin:4px 0 0;color:#7c9087;font-size:11px}.teacher-directory-title>span{padding:6px 9px;border-radius:999px;color:#4f7163;background:#edf5f0;font-size:10px;font-weight:850}.teacher-directory-table{overflow:auto}.teacher-directory-table .table-row{grid-template-columns:1.05fr 1.2fr 1fr .85fr 1.05fr 250px;min-width:1080px}.teacher-account-status{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:10px;font-style:normal;font-weight:850;white-space:nowrap}.teacher-account-status.active{color:#246f53;background:#e5f3e9}.teacher-account-status.disabled{color:#7e6960;background:#f1ece9}.teacher-account-status.manual{color:#8a6018;background:#fff1cf}.teacher-account-status.pending{color:#9a6a16;background:#fff4d9}.teacher-account-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px}.teacher-account-actions select{height:32px;min-width:130px;border:1px solid #ccdbd2;border-radius:8px;padding:0 8px;color:#385e4e;background:#fff;font-size:10px;font-weight:750}.teacher-account-actions .table-action{white-space:nowrap}@media (max-width:760px){.teacher-directory-tabs{align-items:stretch;flex-direction:column}.teacher-directory-tabs button{justify-content:space-between}.teacher-head-actions{align-items:stretch;flex-direction:column}.teacher-directory-title{align-items:flex-start}.teacher-directory-table{margin-inline:-8px}}.pre-schedule-page{display:grid;gap:15px}.pre-schedule-hero{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:22px}.pre-schedule-hero span,.section-heading>div>span,.pre-schedule-sync span{color:#638175;font-size:11px;font-weight:850}.pre-schedule-hero h2{margin:5px 0;color:#173d30;font-size:26px}.pre-schedule-hero p{max-width:720px;margin:0;color:#668076;font-size:12px;line-height:1.65}.pre-schedule-hero-actions,.pre-schedule-mode-actions,.pre-schedule-rule-actions{display:flex;flex-wrap:wrap;gap:9px}.pre-schedule-controls{display:flex;align-items:center;flex-wrap:wrap;gap:14px;padding:15px}.pre-schedule-controls .grade-tabs{align-self:center}.pre-schedule-hint{flex:1 1 360px;min-width:260px;margin:0;color:#6e887d;font-size:11px;line-height:1.55}.pre-schedule-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.pre-schedule-metrics>div{padding:16px 18px;border:1px solid #dce8e1;border-radius:13px;background:#fff;box-shadow:0 8px 20px #24513f08}.pre-schedule-metrics small,.pre-schedule-metrics b{display:block}.pre-schedule-metrics small{color:#748d81;font-size:11px}.pre-schedule-metrics b{margin-top:5px;color:#204e3d;font-size:18px}.pre-schedule-metrics .warn{border-color:#efc6bf;background:#fff9f7}.pre-schedule-metrics .warn b{color:#b45449}.pre-schedule-metrics .ok{border-color:#bfe0cd;background:#f5fbf7}.pre-schedule-metrics .ok b{color:#27805d}.pre-schedule-rules,.pre-schedule-preview,.pre-schedule-issues,.pre-schedule-sync{padding:18px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:14px}.section-heading h3,.pre-schedule-sync h3{margin:4px 0 0;color:#1e4637;font-size:18px}.section-heading p,.pre-schedule-sync p,.pre-schedule-issues p{margin:6px 0 0;color:#718b7f;font-size:11px;line-height:1.55}.section-heading label{display:grid;gap:5px;color:#678176;font-size:10px;font-weight:800}.section-heading select,.pre-schedule-rule-row select,.pre-schedule-rule-row input{height:36px;border:1px solid #cfded5;border-radius:8px;padding:0 9px;color:#294b3e;background:#fff;font:inherit}.pre-schedule-rule-table{overflow:auto;border:1px solid #e0eae4;border-radius:11px}.pre-schedule-rule-head,.pre-schedule-rule-row{display:grid;grid-template-columns:1fr minmax(155px,1.4fr) 100px 100px;align-items:center;gap:10px;min-width:620px;padding:9px 12px}.pre-schedule-rule-head{background:#f2f7f4;color:#6f887e;font-size:10px;font-weight:850}.pre-schedule-rule-row{border-top:1px solid #edf2ef;color:#385d4e;font-size:12px}.pre-schedule-rule-row b{color:#1c4b3a}.pre-schedule-rule-actions{justify-content:flex-end;margin-top:13px}.pre-schedule-issues{border-color:#efd2ca;background:#fffaf8}.pre-schedule-issues b{color:#a95549}.pre-schedule-issues ul{display:grid;gap:5px;margin:10px 0;padding-left:19px;color:#8b625b;font-size:12px;line-height:1.45}.pre-schedule-preview .schedule-shell{margin-top:8px}.pre-schedule-sync{display:flex;align-items:center;justify-content:space-between;gap:18px;border-color:#b9deca;background:linear-gradient(100deg,#eff8f2,#fff)}.pre-schedule-sync p{max-width:700px}.pre-schedule-sync .primary:disabled{background:#9ebcae;box-shadow:none}@media (max-width:760px){.pre-schedule-hero,.pre-schedule-sync{align-items:stretch;flex-direction:column}.pre-schedule-hero-actions,.pre-schedule-hero-actions button,.pre-schedule-mode-actions,.pre-schedule-mode-actions button,.pre-schedule-sync button{width:100%}.pre-schedule-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.pre-schedule-controls{align-items:stretch;flex-direction:column}.pre-schedule-controls .grade-tabs{width:100%}.section-heading{align-items:stretch;flex-direction:column}.section-heading label select{width:100%}.pre-schedule-rule-table{margin-inline:-3px}.pre-schedule-preview{padding-inline:11px}}
