:root{color:#172033;font-synthesis:none;background:#f4f6f9;font-family:Microsoft YaHei,PingFang SC,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}.auth-layout{background:#fff;grid-template-columns:minmax(420px,1.15fr) minmax(420px,.85fr);min-height:100vh;display:grid}.brand-panel{color:#fff;background:radial-gradient(circle at 15% 18%,#3d70ec 0,#0000 35%),linear-gradient(145deg,#173fa9,#10285f 72%);flex-direction:column;justify-content:center;padding:clamp(56px,8vw,116px);display:flex}.eyebrow{color:#2b63e7;letter-spacing:.12em;margin:0 0 14px;font-size:12px;font-weight:900}.brand-panel .eyebrow{color:#bcd0ff}.brand-panel h1{letter-spacing:-.04em;max-width:780px;margin:0;font-size:clamp(38px,5.5vw,68px);line-height:1.18}.brand-panel>p:not(.eyebrow){color:#dce6ff;max-width:650px;margin:28px 0;font-size:18px;line-height:1.8}.trust-list{flex-wrap:wrap;gap:10px;display:flex}.trust-list span{color:#eaf0ff;border:1px solid #668ce8;border-radius:999px;padding:9px 13px;font-size:13px}.auth-card{width:min(100%,560px);margin:auto;padding:48px clamp(28px,5vw,64px)}.tabs{border-bottom:1px solid #dde3ed;gap:28px;margin-bottom:38px;display:flex}.tabs button{color:#697386;background:0 0;border:0;border-bottom:3px solid #0000;padding:12px 2px;font-weight:800}.tabs button.active{color:#172033;border-color:#2b63e7}form{gap:18px;display:grid}form h2{margin:6px 0 4px;font-size:30px}form small{color:#7a8497}label{color:#475267;gap:8px;font-size:14px;font-weight:700;display:grid}input,select,textarea{color:#172033;background:#fff;border:1px solid #ced6e4;border-radius:10px;outline:none;width:100%;padding:12px 13px;transition:border-color .2s,box-shadow .2s}input:focus,select:focus,textarea:focus{border-color:#2b63e7;box-shadow:0 0 0 3px #2b63e71b}.two-fields{grid-template-columns:1fr 1fr;gap:14px;display:grid}.primary,.secondary,.danger{border-radius:9px;min-height:42px;padding:10px 16px;font-weight:800}.primary{color:#fff;background:#2b63e7;border:1px solid #2b63e7}.primary:hover{background:#1f51c8}.secondary{color:#26334a;background:#fff;border:1px solid #ced6e4}.danger{color:#b42335;background:#fff4f5;border:1px solid #f0c6cb}button:disabled{cursor:not-allowed;opacity:.55}.alert{border-radius:9px;margin:18px 0 0;padding:12px 14px;line-height:1.55}.alert.error{color:#a52231;background:#fff3f4;border:1px solid #f1c6ca}.alert.success{color:#146b4d;background:#eefaf5;border:1px solid #b8e0cd}.hint,.empty{color:#798398;text-align:center}.app-shell{grid-template-columns:248px 1fr;min-height:100vh;display:grid}aside{color:#fff;background:#14213d;flex-direction:column;min-height:100vh;padding:28px 18px;display:flex;position:sticky;top:0}.logo{align-items:center;gap:12px;padding:0 10px 30px;display:flex}.logo>b{background:#2b63e7;border-radius:11px;place-items:center;width:42px;height:42px;display:grid}.logo span{font-weight:800;display:grid}.logo small{color:#9facc5;margin-top:3px;font-weight:500}nav{gap:7px;margin-bottom:12px;display:grid}nav button{color:#bcc7da;text-align:left;background:0 0;border:0;border-radius:9px;justify-content:space-between;padding:12px 14px;font-weight:700;display:flex}nav button.active,nav button:hover{color:#fff;background:#ffffff14}nav i{color:#fff;text-align:center;background:#2b63e7;border-radius:999px;min-width:24px;padding:2px 6px;font-size:11px;font-style:normal}.account{border-top:1px solid #ffffff1c;gap:5px;margin-top:auto;padding:18px 10px 0;display:grid}.account span{color:#aebbd1;text-overflow:ellipsis;font-size:12px;overflow:hidden}.account button{color:#d8e1f1;text-align:left;background:0 0;border:0;margin-top:12px;padding:0}.workspace{min-width:0;padding:34px clamp(24px,4vw,56px) 64px}.topbar,.section-heading{justify-content:space-between;align-items:center;gap:20px;display:flex}.topbar{border-bottom:1px solid #dce2ec;padding-bottom:26px}.topbar p{color:#687489;margin:0}.topbar h1{margin:4px 0 0;font-size:30px}.status-chip{color:#687489;background:#eef1f6;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:900;display:inline-flex}.status-chip.active{color:#107451;background:#e6f7ef}.status-chip.pending{color:#956300;background:#fff4d8}.status-chip.rejected,.status-chip.disabled{color:#a52231;background:#ffebed}.section-heading{margin:32px 0 18px}.section-heading h2,.section-heading h3{margin:0}.section-heading p:not(.eyebrow){color:#687489;margin:7px 0 0}.section-heading.compact{align-items:flex-start;margin:0 0 20px}.panel,.table-card,.context-card,.approval-card{background:#fff;border:1px solid #d8dee8;border-radius:14px;box-shadow:0 10px 30px #20304b08}.panel{padding:22px}.panel h3{margin:0 0 20px}.choice-group{border:0;grid-template-columns:1fr 1fr;gap:10px;margin:0;padding:0;display:grid}.choice-group legend{color:#475267;grid-column:1/-1;margin-bottom:8px;font-size:14px;font-weight:700}.choice-card,.choice-line{cursor:pointer;background:#fff;border:1px solid #d7deea;border-radius:10px;align-items:flex-start;gap:10px;padding:12px;display:flex}.choice-card.active{background:#f4f7ff;border-color:#2b63e7;box-shadow:0 0 0 2px #2b63e710}.choice-card input,.choice-line input{accent-color:#2b63e7;width:auto;margin:3px 0 0;padding:0}.choice-card span,.choice-line span{gap:4px;display:grid}.choice-card small,.choice-line small{color:#788398;font-size:11px;font-weight:500;line-height:1.45}.enrollment-choices{grid-template-columns:1fr}.split-layout{grid-template-columns:minmax(300px,.75fr) minmax(420px,1.25fr);align-items:start;gap:18px;display:grid}.class-management-layout{grid-template-columns:minmax(430px,1fr) minmax(430px,1.08fr)}.group-form{gap:12px;padding:18px}.group-form h3{margin-bottom:2px}.group-form .choice-group{gap:7px}.group-form .choice-group legend{margin-bottom:3px}.group-form .choice-card{padding:9px 10px}.group-form .choice-line{padding:8px 10px}.group-form input,.group-form select{padding:10px 11px}.course-layout{grid-template-columns:330px 1fr}.course-grid{grid-template-columns:repeat(2,minmax(240px,1fr));gap:14px;display:grid}.course-card{min-height:190px;color:inherit;text-align:left;background:#fff;border:1px solid #d8dee8;border-radius:14px;flex-direction:column;padding:22px;display:flex;position:relative}.course-card:hover{border-color:#2b63e7;box-shadow:0 12px 30px #244a9e14}.course-open{color:inherit;text-align:left;background:0 0;border:0;flex:1;padding:0}.course-open>span{color:#2b63e7;font-size:12px;font-weight:800}.course-card h3{margin:20px 0 8px;font-size:21px}.course-card p{color:#687489;margin:0;line-height:1.6}.course-card footer{color:#687489;border-top:1px solid #edf0f4;align-items:center;gap:6px;margin-top:auto;padding-top:18px;display:flex}.course-card footer .text-link{margin-left:auto}.text-link{color:#2b63e7;background:0 0;border:0;padding:2px 0;font-size:12px;font-weight:800}.course-delete{position:absolute;top:12px;right:12px}.context-card{border-left:4px solid #2b63e7;justify-content:space-between;align-items:center;margin-bottom:18px;padding:22px 24px;display:flex}.context-card span,.context-card p{color:#687489}.context-card h3{margin:7px 0;font-size:24px}.context-card p{margin:0}.context-card>strong{font-size:18px}.course-section-tabs{background:#e9edf4;border:1px solid #d8dee8;border-radius:13px;grid-template-columns:repeat(5,1fr);gap:5px;margin:0 0 18px;padding:5px;display:grid}.course-section-tabs button{color:#637087;text-align:left;background:0 0;border:0;border-radius:9px;justify-content:flex-start;align-items:center;gap:9px;min-height:52px;padding:9px 13px;font-size:14px;font-weight:900}.course-section-tabs button:hover{color:#25334c;background:#ffffff8f}.course-section-tabs button.active{color:#174ebd;background:#fff;box-shadow:0 3px 10px #20304b12}.course-section-tabs button>span{color:#60708b;background:#dce4f3;border-radius:7px;place-items:center;width:27px;height:27px;font-size:10px;display:grid}.course-section-tabs button.active>span{color:#fff;background:#2b63e7}.course-section-tabs button i{color:#68758b;background:#e9eef6;border-radius:999px;margin-left:auto;padding:3px 7px;font-size:10px;font-style:normal}.list{gap:9px;display:grid}.list article,.group-row{width:100%;color:inherit;text-align:left;background:#fff;border:1px solid #e0e5ed;border-radius:10px;justify-content:space-between;align-items:center;gap:16px;padding:14px;display:flex}.group-row{min-height:91px;position:relative}.list article div,.group-row div,td{min-width:0}.list article span,.group-row span,td small{color:#788398;margin-top:5px;font-size:12px;display:block}.group-row:hover,.group-row.selected{background:#f5f8ff;border-color:#2b63e7}.group-row div>small{color:#2b63e7;margin-top:6px;font-size:11px;display:block}.group-open{width:100%;min-width:0;color:inherit;text-align:left;background:0 0;border:0;flex:1;justify-content:space-between;align-items:center;gap:14px;padding:0 72px 0 0;display:flex}.group-open>div{min-width:0}.row-actions{flex:none;gap:6px;display:flex}.icon-actions{z-index:1;position:absolute;top:10px;right:10px}.icon-action{color:#5d687b;opacity:.76;background:#f3f5f8;border:1px solid #0000;border-radius:8px;place-items:center;width:30px;height:30px;padding:0;font-family:Microsoft YaHei,sans-serif;font-size:15px;line-height:1;display:grid}.icon-action:hover,.icon-action:focus-visible{opacity:1;background:#fff;border-color:#cbd4e2;box-shadow:0 3px 10px #20304b18}.icon-action.icon-edit:hover,.icon-action.icon-edit:focus-visible{color:#2458c4}.icon-action.icon-delete:hover,.icon-action.icon-delete:focus-visible{color:#b42335;background:#fff4f5;border-color:#efc8cd}.group-browser-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.group-browser-head h3{margin:0}.filter-tabs{background:#f0f3f8;border-radius:9px;gap:4px;padding:3px;display:flex}.filter-tabs button{color:#687489;background:0 0;border:0;border-radius:7px;padding:7px 10px;font-size:12px;font-weight:800}.filter-tabs button.active{color:#174ebd;background:#fff;box-shadow:0 2px 8px #20304b12}.period-filter{grid-template-columns:auto minmax(180px,1fr);align-items:center;margin-bottom:14px}.period-filter select{padding-block:9px}.roster-panel{margin-top:18px;padding:18px 20px}.roster-heading{margin-bottom:12px!important}.roster-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.template-downloads{white-space:nowrap;margin-left:6px;display:inline}.template-downloads a{color:#2458c4;text-underline-offset:3px;font-weight:800}.template-downloads a:hover{color:#1745a8}.upload-button{color:#fff;cursor:pointer;background:#2b63e7;border-radius:9px;place-items:center;min-height:42px;padding:10px 16px;display:inline-grid}.roster-import{white-space:nowrap;width:176px;min-height:40px;padding-inline:22px}.upload-button input{display:none}.join-code{background:#f6f8fc;border:1px solid #e1e7f0;border-radius:11px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:10px;padding:11px 13px;display:flex}.join-code-copy{gap:5px;min-width:0;display:grid}.join-code span{color:#687489;letter-spacing:.08em;font-size:12px;font-weight:800}.join-code strong{font-size:16px}.join-code code{overflow-wrap:anywhere;color:#174ebd}.join-code small{color:#a52231}.join-code img{background:#fff;border:1px solid #d5ddea;border-radius:9px;flex:none;width:106px;height:106px;padding:5px}.import-result{background:#f1faf6;border:1px solid #cce5d9;border-radius:9px;flex-wrap:wrap;gap:12px;margin-bottom:10px;padding:10px 12px;display:flex}.import-result .bad{color:#b42335}.import-result ul{color:#9b2938;width:100%;margin:0}.roster-summary{color:#435069;text-align:left;background:#fbfcfe;border:1px solid #dbe2ed;border-radius:9px;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:42px;padding:9px 13px;display:flex}.roster-summary:hover,.roster-summary:focus-visible{color:#174ebd;background:#f5f8ff;border-color:#9eb6e8}.roster-summary>strong{color:#2458c4;font-size:13px}.roster-table{margin-top:9px}.roster-empty{color:#788398;text-align:center;border:1px dashed #d6deea;border-radius:9px;margin:0;padding:10px 13px}.activity-library{margin-top:18px}.library-count{color:#2458c4;background:#eef3ff;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:900}.activity-layout{grid-template-columns:minmax(310px,.78fr) minmax(420px,1.22fr);align-items:start;gap:18px;display:grid}.activity-form{background:#f8faff;border:1px solid #dbe2ed;border-radius:12px;padding:18px}.activity-form h4{margin:0;font-size:18px}.activity-type-picker{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.activity-type-picker button{color:#3f4b62;text-align:left;background:#fff;border:1px solid #d8e0ec;border-radius:9px;gap:2px;min-height:52px;padding:8px 10px;display:grid}.activity-type-picker button.active{color:#174ebd;background:#edf3ff;border-color:#2b63e7;box-shadow:inset 0 0 0 1px #2b63e7}.activity-type-picker small{color:#7d8799;font-size:10px;font-weight:500}.option-editor{gap:8px;display:grid}.option-editor label{grid-template-columns:30px 1fr;align-items:center}.option-editor label span{color:#2458c4;background:#e5edff;border-radius:8px;place-items:center;width:30px;height:30px;display:grid}.fixed-options{grid-template-columns:1fr 1fr;gap:8px;display:grid}.fixed-options span{background:#fff;border:1px solid #dbe2ed;border-radius:9px;align-items:center;gap:9px;padding:12px;display:flex}.fixed-options b{color:#2458c4;background:#e5edff;border-radius:7px;place-items:center;width:28px;height:28px;display:grid}.correct-multiple{color:#465167;flex-wrap:wrap;align-items:center;gap:9px;font-size:13px;font-weight:800;display:flex}.correct-multiple>span{width:100%}.correct-multiple label{background:#fff;border:1px solid #d8e0ec;border-radius:8px;align-items:center;gap:6px;min-width:48px;padding:8px 10px;display:flex}.correct-multiple label.disabled{opacity:.45}.correct-multiple input{width:17px;min-height:17px}.activity-form-note{color:#647188;background:#eef3fb;border-radius:9px;margin:0;padding:11px 12px;font-size:12px;line-height:1.6}.activity-list{gap:10px;display:grid}.activity-card{background:#fff;border:1px solid #dce2eb;border-radius:12px;padding:17px}.activity-card-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.activity-card-head>span{color:#107451;background:#e9f7f1;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:900}.activity-card-head>div{gap:5px;display:flex}.activity-card h4{margin:10px 0 6px;font-size:18px}.activity-card>p{color:#57637a;margin:0;line-height:1.55}.activity-card ol{grid-template-columns:1fr 1fr;gap:7px;margin:13px 0;padding:0;list-style:none;display:grid}.activity-card li{background:#f6f8fb;border-radius:8px;gap:8px;padding:8px 10px;font-size:13px;display:flex}.activity-card li b{color:#2458c4}.activity-card .text-wall-preview{color:#6946b6;background:#f4f1ff;border-radius:8px;margin:13px 0;padding:11px;font-size:13px}.activity-card footer{color:#788398;border-top:1px solid #e9edf3;justify-content:space-between;align-items:center;gap:12px;padding-top:10px;font-size:11px;display:flex}.activity-card footer code{color:#2458c4;text-overflow:ellipsis;max-width:68%;overflow:hidden}.activity-empty{border:1px dashed #ccd5e3;border-radius:12px;padding:50px 24px;line-height:1.7}.courseware-builder{gap:22px;display:grid}.builder-heading{margin-bottom:0!important}.builder-saved{color:#107451;white-space:nowrap;background:#eaf7f1;border-radius:999px;padding:7px 11px;font-size:11px;font-weight:900}.builder-steps{grid-template-columns:repeat(3,1fr);gap:8px;margin:0;padding:0;list-style:none;display:grid}.builder-steps li{color:#7a8598;background:#f4f6f9;border-radius:11px;align-items:center;gap:10px;padding:12px;display:flex;position:relative}.builder-steps li b{background:#dfe4ec;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-size:11px;display:grid}.builder-steps li span{gap:2px;font-weight:900;display:grid}.builder-steps li small{color:#8a94a5;font-size:10px;font-weight:500}.builder-steps li.active{color:#174ebd;background:#edf3ff}.builder-steps li.active b{color:#fff;background:#2b63e7}.outline-help{color:#667287;background:#fafbfc;border:1px solid #e2e7ef;border-radius:11px;padding:11px 15px;font-size:12px}.outline-help summary{color:#59667a;cursor:pointer;font-weight:800}.outline-help>div{gap:10px;padding-top:12px;display:grid}.outline-help p{margin:0;line-height:1.7}.outline-help textarea{color:#4d5a70;resize:vertical;background:#fff;min-height:150px;font-size:11px;line-height:1.65}.outline-help .text-link{justify-self:start}.placement-mode-picker{border:0;grid-template-columns:1fr 1fr;gap:10px;margin:0;padding:0;display:grid}.placement-mode-picker legend{color:#26334a;grid-column:1/-1;margin-bottom:4px;font-size:15px;font-weight:900}.placement-mode-picker>label{cursor:pointer;background:#fff;border:1px solid #dce3ed;border-radius:12px;align-items:flex-start;gap:11px;min-width:0;padding:16px;display:flex}.placement-mode-picker>label.active{background:#f2f6ff;border-color:#2b63e7;box-shadow:inset 3px 0 #2b63e7}.placement-mode-picker input{accent-color:#2b63e7;width:17px;min-height:17px;margin-top:3px}.placement-mode-picker span{gap:4px;display:grid}.placement-mode-picker b{color:#26334a;font-size:14px}.placement-mode-picker small{color:#6d788c;font-size:11px;line-height:1.6}.outline-placement-layout{align-items:start;gap:14px;display:grid}.outline-placement-layout.manual{grid-template-columns:minmax(0,1.45fr) minmax(310px,.55fr)}.outline-editor{gap:8px;min-width:0;display:grid}.outline-editor>span{color:#26334a;justify-content:space-between;align-items:center;gap:12px;font-size:16px;display:flex}.outline-editor>span small{color:#2b63e7;font-size:11px;font-weight:700}.outline-editor textarea{resize:vertical;min-height:410px;padding:17px;font-family:Microsoft YaHei,sans-serif;font-size:14px;line-height:1.75}.marker-error{color:#a52231;background:#fff0f2;border-radius:8px;padding:9px 11px;font-size:11px;font-style:normal}.builder-activity-picker{background:#fbfcfe;border:1px solid #dce3ed;border-radius:13px;padding:20px}.outline-placement-layout.manual .builder-activity-picker{max-height:540px;position:sticky;top:18px;overflow:auto}.builder-activity-picker h4,.generated-output h4,.builder-delivery h4,.courseware-checks h4{margin:4px 0 6px;font-size:18px}.builder-activity-picker>div:first-child>p,.generated-output header p,.builder-delivery p{color:#69758a;margin:0;font-size:12px;line-height:1.6}.builder-activity-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:15px;display:grid}.builder-activity-list label{cursor:pointer;background:#fff;border:1px solid #dce3ed;border-radius:10px;align-items:flex-start;gap:10px;min-width:0;padding:13px;display:flex}.builder-activity-list label.selected{background:#f1f5ff;border-color:#2b63e7;box-shadow:inset 3px 0 #2b63e7}.builder-activity-list input{accent-color:#2b63e7;width:17px;min-height:17px;margin-top:3px}.builder-activity-list span{gap:4px;min-width:0;display:grid}.builder-activity-list small{color:#2458c4;font-size:10px;font-weight:900}.builder-activity-list b{color:#26334a;text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.builder-activity-list em{color:#768196;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-style:normal;font-weight:500;overflow:hidden}.manual-activity-list{gap:8px;margin-top:15px;display:grid}.manual-activity-list button{color:#26334a;text-align:left;background:#fff;border:1px solid #dce3ed;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:12px;display:flex}.manual-activity-list button:hover{background:#f7f9fd;border-color:#9db4e9}.manual-activity-list button.inserted{background:#f1fbf6;border-color:#86cdb1}.manual-activity-list button>span{gap:3px;min-width:0;display:grid}.manual-activity-list small{color:#2458c4;font-size:10px;font-weight:900}.manual-activity-list b{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.manual-activity-list em{color:#768196;text-overflow:ellipsis;white-space:nowrap;max-width:340px;font-size:10px;font-style:normal;font-weight:500;overflow:hidden}.manual-activity-list i{color:#2458c4;background:#edf3ff;border-radius:999px;flex:none;padding:5px 7px;font-size:10px;font-style:normal;font-weight:900}.manual-activity-list button.inserted i{color:#0d7650;background:#dff4e9}.builder-no-activity{color:#718097;text-align:center;border:1px dashed #cdd6e5;border-radius:10px;margin-top:14px;padding:18px}.builder-actions{justify-content:flex-end;gap:10px;padding-top:4px;display:flex}.generated-output{background:#f6f9ff;border:1px solid #b8ccef;border-radius:13px;overflow:hidden}.generated-output header{justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;display:flex}.generated-output header>div:last-child{gap:8px;display:flex}.generated-output textarea{color:#e8effc;resize:vertical;background:#101827;border-width:1px 0;border-radius:0;min-height:390px;font-family:Consolas,monospace;font-size:12px;line-height:1.65}.credential-note{color:#7d5a09;background:#fff7df;gap:12px;padding:13px 18px;font-size:11px;line-height:1.55;display:flex}.builder-delivery{grid-template-columns:1fr 1fr;gap:12px;display:grid}.builder-delivery article{background:#fff;border:1px solid #dce3ed;border-radius:13px;padding:20px}.builder-delivery article>span{color:#2458c4;letter-spacing:.08em;font-size:10px;font-weight:900}.builder-delivery button,.builder-delivery .html-check{width:max-content;margin-top:14px}.html-check{min-height:42px}.courseware-checks{border:1px solid #dce3ed;border-radius:13px;overflow:hidden}.courseware-checks header{background:#f7f9fc;justify-content:space-between;align-items:center;gap:12px;padding:15px 18px;display:flex}.courseware-checks header span{color:#647188;font-size:12px;font-weight:900}.courseware-checks ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:12px;list-style:none;display:grid}.courseware-checks li{border:1px solid #dde4ed;border-radius:9px;align-items:center;gap:9px;padding:10px;display:flex}.courseware-checks li>b{background:#eef1f5;border-radius:50%;flex:none;place-items:center;width:24px;height:24px;display:grid}.courseware-checks li>span{gap:2px;min-width:0;display:grid}.courseware-checks li small{color:#758094;font-weight:500}.courseware-checks li.pass>b{color:#087550;background:#e2f6ec}.courseware-checks li.warn>b{color:#946300;background:#fff3cf}.courseware-checks li.fail>b{color:#a52231;background:#ffeaed}.sdk-help{color:#5d6980;background:#f8fafc;border:1px solid #dce3ed;border-radius:11px;padding:15px 17px;font-size:12px;line-height:1.7}.sdk-help summary{color:#30405a;cursor:pointer;font-weight:900}.sdk-help code{color:#174ebd;overflow-wrap:anywhere;background:#e9eef7;border-radius:8px;padding:10px;display:block}.gradebook-panel{gap:18px;display:grid}.gradebook-heading{align-items:flex-end!important;margin-bottom:0!important}.gradebook-heading>label{min-width:280px}.gradebook-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.gradebook-metrics article{background:#f8faff;border:1px solid #dce3ed;border-radius:11px;gap:6px;padding:16px;display:grid}.gradebook-metrics span{color:#68758b;font-size:11px;font-weight:900}.gradebook-metrics b{color:#1d3157;font-size:28px}.gradebook-metrics small{color:#8490a2;font-size:10px}.grading-settings,.grade-table-section{border:1px solid #dce3ed;border-radius:13px;overflow:hidden}.grading-settings>header,.grade-table-section>header{background:#f8faff;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;display:flex}.grading-settings h4,.grade-table-section h4{margin:0 0 5px;font-size:18px}.grading-settings header p,.grade-table-section header p{color:#69758a;margin:0;font-size:11px}.grading-settings header>span{color:#2458c4;font-size:11px;font-weight:900}.grading-item-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px;display:grid}.grading-item-list article{background:#fff;border:1px solid #dfe5ed;border-radius:10px;align-items:center;gap:11px;min-width:0;padding:12px;display:flex}.grading-item-list article.included{background:#f4f7ff;border-color:#a9c0ed}.grading-item-list article.unscorable{opacity:.78;background:#f7f8fa}.grading-toggle{flex:none;display:block}.grading-toggle input{opacity:0;pointer-events:none;position:absolute}.grading-toggle span{background:#cbd3df;border-radius:999px;width:38px;height:22px;transition:background .2s;display:block;position:relative}.grading-toggle span:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 2px 5px #26344c30}.grading-toggle input:checked+span{background:#2b63e7}.grading-toggle input:checked+span:after{transform:translate(16px)}.grading-toggle input:disabled+span{opacity:.55}.grading-item-main{flex:1;gap:3px;min-width:0;display:grid}.grading-item-main small{color:#2458c4;font-size:9px;font-weight:900}.grading-item-main strong{color:#2d3950;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.grading-item-main em{color:#8490a2;font-size:9px;font-style:normal}.points-input{color:#748096;flex:none;width:85px;font-size:9px}.points-input input{padding:7px 8px;font-size:12px}.unscorable-note{color:#7c8799;text-align:right;max-width:94px;font-size:9px;line-height:1.45}.grade-table-section>header>div:last-child{gap:8px;display:flex}.export-button{place-items:center;font-size:12px;text-decoration:none;display:inline-grid}.grade-table{box-shadow:none;border:0;border-radius:0}.grade-table table{min-width:760px}.grade-table th{vertical-align:bottom;text-align:center;min-width:118px}.grade-table th span,.grade-table th small{display:block}.grade-table th span{color:#3b485f;text-overflow:ellipsis;white-space:nowrap;max-width:150px;overflow:hidden}.grade-table th small{color:#8691a3;margin-top:4px;font-size:9px;font-weight:500}.grade-table td{text-align:center}.grade-table .sticky-name{z-index:2;text-align:left;background:#fff;min-width:150px;position:sticky;left:0;box-shadow:5px 0 8px #20304b08}.grade-table thead .sticky-name{z-index:3;background:#f8f9fb}.grade-table .sticky-name strong,.grade-table .sticky-name small{display:block}.grade-table .sticky-name small{color:#7d889a;margin-top:4px;font-size:10px}.score-cell{padding-inline:10px}.score-cell b,.total-score b{font-size:15px}.score-cell small,.total-score small{color:#8994a5;margin-top:3px;font-size:9px;display:block}.score-cell.correct{color:#087550;background:#f0faf6}.score-cell.wrong{color:#aa293b;background:#fff5f6}.score-cell.missing{color:#a0a9b7}.total-score{color:#174ebd}.percent-chip{border-radius:999px;min-width:52px;padding:5px 8px;font-size:11px;font-weight:900;display:inline-block}.percent-chip.high{color:#087550;background:#e3f7ed}.percent-chip.medium{color:#8a5b00;background:#fff3d1}.percent-chip.low{color:#a52231;background:#ffeaed}.grading-rule-note{color:#54627a;background:#edf3ff;border-left:4px solid #2b63e7;border-radius:9px;gap:12px;padding:13px 15px;font-size:11px;line-height:1.6;display:flex}.grading-rule-note b{color:#174ebd;flex:none}.gradebook-empty{color:#748096;text-align:center;border:1px dashed #cad5e5;border-radius:12px;padding:55px 24px}.gradebook-empty span{color:#354158;font-size:19px;font-weight:900}.record-library{margin-top:18px}.record-heading{align-items:flex-end}.record-filter{min-width:210px}.record-filter select{min-height:40px}.record-layout{grid-template-columns:minmax(300px,.8fr) minmax(430px,1.2fr);align-items:start;gap:16px;display:grid}.record-list{gap:8px;max-height:650px;padding-right:3px;display:grid;overflow-y:auto}.record-row{color:#263249;text-align:left;background:#fff;border:1px solid #dce3ed;border-radius:11px;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px;width:100%;min-height:82px;padding:12px;display:grid}.record-row:hover,.record-row.selected{background:#f5f8ff;border-color:#82a2e8;box-shadow:inset 3px 0 #2b63e7}.record-type{color:#2458c4;white-space:nowrap;background:#edf3ff;border-radius:7px;padding:5px 7px;font-size:10px;font-weight:900}.record-main{gap:5px;min-width:0;display:grid}.record-main strong,.record-main small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.record-main small{color:#778297;font-size:11px;font-weight:500}.record-row-metrics{color:#7a8496;white-space:nowrap;gap:3px;font-size:10px;display:grid}.record-row-metrics b{color:#354158;font-size:12px}.record-row>i{color:#657086;white-space:nowrap;background:#eef1f5;border-radius:999px;padding:5px 7px;font-size:10px;font-style:normal;font-weight:900}.record-row>i.open{color:#087550;background:#e6f7ef}.record-detail{background:#fff;border:1px solid #dbe2ed;border-radius:13px;min-height:330px;overflow:hidden}.record-detail>header{background:#f8faff;border-bottom:1px solid #e6eaf0;justify-content:space-between;align-items:flex-start;gap:15px;padding:17px 18px;display:flex}.record-detail>header span{color:#2458c4;font-size:11px;font-weight:900}.record-detail>header h4{margin:7px 0 4px;font-size:19px}.record-detail>header p{color:#667287;margin:0;line-height:1.55}.record-metrics{border-bottom:1px solid #e8ecf2;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 18px;display:flex}.record-metrics>span{color:#6a7589;background:#f3f6fb;border-radius:8px;padding:7px 9px;font-size:11px}.record-metrics b{color:#24334e;margin-right:3px;font-size:15px}.run-export{color:#2458c4;margin-left:auto;font-size:12px;font-weight:900;text-decoration:none}.run-export:hover{text-decoration:underline}.answer-detail-list{gap:8px;max-height:480px;padding:12px;display:grid;overflow-y:auto}.answer-detail-list>article{background:#fff;border:1px solid #e0e5ed;border-radius:10px;padding:12px}.answer-detail-list>article.hidden{opacity:.62;background:#f3f4f6}.answer-student{align-items:center;gap:8px;display:flex}.answer-student span{color:#7b8698;font-size:11px}.answer-student i{border-radius:999px;margin-left:auto;padding:4px 7px;font-size:10px;font-style:normal;font-weight:900}.answer-student i.correct{color:#087550;background:#e6f7ef}.answer-student i.wrong{color:#a7283a;background:#fff0f2}.answer-detail-list article>p{color:#334057;white-space:pre-wrap;margin:10px 0;line-height:1.65}.answer-detail-list article>footer{color:#8490a2;text-align:left;justify-content:space-between;align-items:center;gap:10px;padding:0;font-size:10px;display:flex}.record-placeholder{color:#69768d;text-align:center;border:1px dashed #ccd6e5;border-radius:13px;align-content:center;place-items:center;gap:8px;min-height:330px;padding:40px;display:grid}.record-placeholder>span{color:#2458c4;background:#edf3ff;border-radius:14px;place-items:center;width:52px;height:52px;font-size:25px;display:grid}.record-placeholder p{max-width:330px;margin:0;font-size:12px;line-height:1.6}.record-empty{border:1px dashed #ccd6e5;border-radius:11px;padding:44px 20px;line-height:1.7}.pairing-modal{text-align:center;width:min(100%,560px)}.pairing-modal>p:not(.eyebrow){color:#5f6b80;line-height:1.7}.pairing-modal>label{text-align:left;margin:26px 0 16px}.pairing-modal .modal-actions{justify-content:center}.pairing-mark{color:#fff;background:#2b63e7;border-radius:14px;place-items:center;width:54px;height:54px;margin:0 auto 15px;font-weight:900;display:grid}.pairing-note{background:#f3f6fb;border-radius:9px;padding:12px;font-size:13px}.table-card{overflow-x:auto}.table-card.inner{box-shadow:none}table{border-collapse:collapse;width:100%}th,td{text-align:left;white-space:nowrap;border-bottom:1px solid #e8ecf2;padding:14px 16px}th{color:#687489;background:#f8f9fb;font-size:12px}td{font-size:14px}.source-chip{color:#536078;background:#eef2f7;border-radius:999px;margin:0;padding:5px 8px;font-size:11px;font-weight:800;display:inline-flex}.source-chip.roster{color:#2458c4;background:#e8f0ff}.source-chip.self_join{color:#107451;background:#e6f7ef}.actions{gap:7px;display:flex}.mini{min-height:32px;padding:6px 10px;font-size:12px}.approval-card{text-align:center;max-width:720px;margin:54px auto;padding:42px}.approval-card>span{color:#8a5b00;background:#fff2ce;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:900;display:inline-block}.approval-card h2{margin:20px 0 12px}.approval-card p{color:#687489;line-height:1.7}.approval-card blockquote{color:#68501c;text-align:left;background:#fff9e9;border-left:3px solid #e0ab30;margin:20px 0;padding:14px}.password-panel{max-width:560px;margin-top:34px}.password-panel>h2{margin-bottom:8px}.password-panel>p:not(.eyebrow){color:#687489}.password-panel form{margin-top:26px}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#111a2d99;place-items:center;padding:24px;display:grid;position:fixed;inset:0;overflow-y:auto}.modal-card{background:#fff;border:1px solid #d8dee8;border-radius:16px;width:min(100%,680px);max-height:calc(100vh - 48px);padding:28px;overflow-y:auto;box-shadow:0 28px 80px #0d18334d}.modal-card h2{margin:0}.modal-heading{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px;display:flex}.modal-heading .eyebrow{margin-bottom:7px}.modal-close{color:#687489;background:#fff;border:1px solid #d8dee8;border-radius:9px;width:36px;height:36px;padding:0;font-size:24px;line-height:1}.modal-actions{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.confirm-modal{text-align:center;width:min(100%,500px)}.confirm-modal h2{margin:18px 0 10px}.confirm-modal p{color:#5f6b80;margin:0;line-height:1.7}.confirm-modal .safe-delete-note{color:#788398;background:#f5f7fa;border-radius:9px;margin-top:12px;padding:10px 12px;font-size:13px}.confirm-modal .modal-actions{justify-content:center;margin-top:24px}.warning-mark{color:#b42335;background:#fff0f1;border-radius:50%;place-items:center;width:48px;height:48px;margin:auto;font-size:28px;font-weight:900;display:grid}.solid-danger{color:#fff;background:#b42335;border-color:#b42335}.solid-danger:hover{background:#941b2b}.busy-overlay{z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);cursor:wait;background:#f4f6f9b8;place-items:center;display:grid;position:fixed;inset:0}.busy-card{color:#24324a;background:#fff;border:1px solid #d6deeb;border-radius:16px;justify-items:center;gap:9px;min-width:250px;padding:24px 28px;display:grid;box-shadow:0 20px 55px #17284b26}.busy-card small{color:#788398;font-size:12px}.busy-spinner{border:4px solid #dbe5fa;border-top-color:#2b63e7;border-radius:50%;width:34px;height:34px;margin-bottom:3px;animation:.75s linear infinite busy-spin}@keyframes busy-spin{to{transform:rotate(360deg)}}code{font-family:Consolas,monospace}@media (width<=980px){.auth-layout{grid-template-columns:1fr}.brand-panel{min-height:360px;padding:48px 28px}.app-shell{grid-template-columns:82px 1fr}aside{padding-inline:10px}.logo span,.account span,.account strong{display:none}.logo{justify-content:center;padding-inline:0}nav button{text-align:center;justify-content:center}.account button{text-align:center;font-size:12px}.split-layout,.course-layout,.activity-layout,.record-layout,.outline-placement-layout.manual{grid-template-columns:1fr}.outline-placement-layout.manual .builder-activity-picker{max-height:none;position:static}.record-list{max-height:420px}.course-section-tabs{grid-template-columns:repeat(3,1fr)}.gradebook-metrics{grid-template-columns:1fr 1fr}.grading-item-list{grid-template-columns:1fr}}@media (width<=680px){.brand-panel{min-height:300px}.brand-panel h1{font-size:34px}.auth-card{padding:34px 20px}.app-shell{display:block}aside{flex-direction:row;align-items:center;gap:8px;min-height:auto;padding:12px;position:static;overflow-x:auto}.logo{padding:0}.logo>b{width:36px;height:36px}aside nav{margin:0;display:flex}nav button{white-space:nowrap}.account{border:0;margin:0 0 0 auto;padding:0}.workspace{padding:24px 14px 48px}.two-fields,.course-grid,.choice-group,.activity-card ol,.placement-mode-picker,.builder-activity-list,.builder-delivery,.courseware-checks ul{grid-template-columns:1fr}.topbar,.section-heading,.context-card,.join-code,.group-browser-head,.generated-output header,.gradebook-heading,.grading-settings>header,.grade-table-section>header{flex-direction:column;align-items:flex-start}.course-section-tabs{grid-template-columns:1fr 1fr}.course-section-tabs button{min-height:46px}.builder-steps{grid-template-columns:1fr}.builder-steps li{padding:9px}.outline-editor>span{flex-direction:column;align-items:flex-start}.generated-output header>div:last-child{width:100%}.credential-note,.grading-rule-note{display:grid}.gradebook-heading>label{width:100%;min-width:0}.gradebook-metrics{grid-template-columns:1fr 1fr}.grade-table-section>header>div:last-child{width:100%}.roster-actions{justify-content:flex-start}.join-code img{align-self:center}.table-card{margin-inline:-4px}.record-filter{width:100%;min-width:0}.record-row{grid-template-columns:auto minmax(0,1fr) auto}.record-row-metrics{display:none}.record-detail>header{padding:15px}.record-metrics{padding:10px 15px}.run-export{width:100%;margin-left:0}.modal-backdrop{padding:12px}.modal-card{max-height:calc(100vh - 24px);padding:22px}}
