.ct-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:16px 0;flex-wrap:wrap}.ct-toolbar h2,.ct-toolbar h3{margin:0}.ct-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:24px}.ct-roster{border:1px solid #e1e9f3;border-radius:16px;padding:12px;max-height:850px;overflow:auto;background:#f8faff}.ct-roster>button{display:block;text-align:left;width:100%;border:1px solid transparent;border-radius:10px;background:transparent;padding:14px 10px;margin-bottom:4px;cursor:pointer;color:#304b6b}.ct-roster>button.active{background:#eef4ff;border-color:#bfd3ff;color:#1764ff}.ct-roster small,.ct-slot small{display:block;font-size:12px;margin-top:6px;color:#71839b}.ct-table table{min-width:710px;width:100%;table-layout:fixed}.ct-table th{font-size:12px}.ct-table td{padding:4px}.ct-slot{width:100%;min-height:42px;border:1px solid #e2e9f2;border-radius:7px;background:#fff;color:#6f8198;cursor:pointer;font:inherit;font-size:12px}.ct-slot:hover{border-color:#1764ff}.ct-ban{background:#fff1e6;color:#a34d13}.ct-slot.ct-ban{border-color:#ffd6b5;color:#a34d13}.ct-limited{background:#fffae6;color:#8d6a12}.ct-source{display:flex;align-items:center;gap:12px;padding:16px;border:1px solid #e1e9f3;border-radius:12px;margin:12px 0}.ct-source>div{flex:1;min-width:0}.ct-source p{margin:8px 0;font-size:13px}.ct-source small{color:#71839b;overflow-wrap:anywhere}.ct-chips{display:flex;flex-wrap:wrap;gap:6px;max-height:120px;overflow:auto;margin-bottom:12px}.ct-chips button{cursor:pointer}.ct-picks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:190px;overflow:auto;border:1px solid #e1e9f3;padding:12px;border-radius:10px;margin:12px 0}.ct-picks label{font-size:13px;display:flex;gap:6px;align-items:center}@media(max-width:1000px){.ct-layout{grid-template-columns:1fr}.ct-roster{max-height:230px}.ct-picks{grid-template-columns:repeat(2,minmax(0,1fr))}.ct-source{flex-wrap:wrap}}
/* 准备首页：学期与引导并入页头，移除原先独占一行的学期空白区。 */
#page .prep-welcome{align-items:flex-start;gap:24px;padding:0 0 22px;margin:0}
#page .prep-welcome h2{font-size:24px;line-height:1.4;margin:8px 0 10px}
#page .prep-welcome p{line-height:1.7;max-width:760px}
.prep-header-actions{display:flex;align-items:center;gap:16px;flex-shrink:0;padding-top:2px}
.prep-term{display:flex;align-items:center;gap:8px;font-size:12px;color:#728299;white-space:nowrap}
.prep-term select{font-size:13px;min-height:36px;max-width:230px}
#page .prep-journey{padding-top:24px}
@media(max-width:1150px){#page .prep-welcome{flex-direction:column;gap:16px}.prep-header-actions{width:100%;justify-content:space-between}}
@media(max-width:600px){.prep-header-actions{flex-wrap:wrap}.prep-term{flex-wrap:wrap}#page .prep-welcome h2{font-size:21px}}
/* 页头操作分层：学期在上，引导按钮与标题区齐平。 */
#page .prep-welcome{align-items:center;min-height:130px;padding-bottom:24px}
.prep-header-actions{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:14px;padding:0}
.prep-term{gap:10px}
.prep-term select{min-width:220px}
.prep-guide-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:42px;padding:10px 16px!important;font-size:14px;font-weight:500;border:1px solid #b9cefa!important;border-radius:8px!important;background:#f5f8ff!important;color:#1764ff!important;box-shadow:0 2px 5px rgba(23,100,255,.04)}
.prep-guide-button:hover{background:#eaf1ff!important;border-color:#86acf9!important}
.prep-guide-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:1.5px solid currentColor;border-radius:50%;font-size:13px;font-weight:600}
@media(max-width:1150px){#page .prep-welcome{align-items:stretch;min-height:0}.prep-header-actions{flex-direction:row;align-items:center;justify-content:space-between;gap:16px}}
@media(max-width:650px){.prep-header-actions{align-items:flex-start;flex-direction:column;gap:12px}.prep-guide-button{min-height:44px}}
/* 班级时间工作区：压缩页头，筛选归入班级导航，时间表为视觉中心。 */
#page.ct-workspace{padding:16px 20px 20px;min-height:0}
.ct-workspace>.sectionintro{display:flex;align-items:center;justify-content:space-between;padding:0 0 12px;margin:0;border-bottom:1px solid #e6ebf4;min-height:48px;gap:16px}
.ct-workspace>.sectionintro h2{font-size:19px;margin:0;line-height:1.4}
.ct-workspace>.sectionintro>div:last-child{display:flex;gap:14px;align-items:center}
.ct-workspace .ct-viewbar{margin:0 0 16px;min-height:56px;border-bottom:1px solid #e6ebf4}
.ct-workspace .ct-viewbar .subtabs{margin:0;border:0}
.ct-workspace .ct-viewbar .subtabs button{padding:16px 18px 14px}
.ct-workspace .ct-layout{grid-template-columns:240px minmax(0,1fr);gap:20px;align-items:start}
.ct-workspace .ct-roster{display:flex;flex-direction:column;height:calc(100vh - 280px);min-height:400px;max-height:none;padding:12px;border-radius:10px;background:#f8faff;overflow:hidden}
.ct-workspace .ct-roster>.filters{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0;padding-bottom:12px;border-bottom:1px solid #e2e9f3}
.ct-workspace .ct-roster .filters label{display:block;min-width:0;font-size:0}
.ct-workspace .ct-roster .filters label:nth-child(3){grid-column:1/-1}
.ct-workspace .ct-roster .filters select,.ct-workspace .ct-roster .filters input{width:100%;max-width:none;min-width:0;font-size:12px;border-radius:6px}
.ct-workspace .ct-roster .filters>.link{grid-column:1/-1;justify-self:end;font-size:12px;padding:0}
.ct-roster-count{margin:10px 0;font-size:12px}
.ct-roster-list{flex:1;overflow:auto;min-height:0;scrollbar-width:thin;padding-right:4px}
.ct-roster-list>button{display:block;width:100%;text-align:left;padding:11px 10px;border:1px solid transparent;border-radius:7px;margin-bottom:3px;color:#304b6b}
.ct-roster-list>button.active{background:#eaf1ff;border-color:#bfd3ff;color:#1764ff}
.ct-roster-list>button:hover{background:#edf3fc}
.ct-roster-list strong{font-size:13px;font-weight:500}.ct-roster-list small{display:block;font-size:11px;color:#7b8ca4;margin-top:4px;line-height:1.5}
.ct-workspace .ct-class-header{margin:0 0 10px;min-height:44px}.ct-class-header>div:last-child{display:flex;gap:8px;align-items:center}
.ct-workspace .ct-class-header h2{font-size:17px;margin:0 0 2px}.ct-class-header .btn{font-size:12px;padding:6px 12px;min-height:32px}
.ct-workspace [data-ct-personal]{margin-left:8px;background:#1764ff;color:white;border-color:#1764ff}
.ct-legend{display:flex;align-items:center;gap:16px;margin:10px 0 12px;font-size:12px;color:#6c7d93;flex-wrap:wrap}.ct-legend>span{display:flex;align-items:center;gap:6px}.ct-legend i{display:inline-block;width:12px;height:12px;border:1px solid #e0e6ee;border-radius:3px;background:white}.ct-legend i.ct-ban{background:#fff1e6;border-color:#ffd6b5}.ct-legend i.ct-limited{background:#fffae6;border-color:#f3e6b2}.ct-legend small{margin-left:auto;color:#93a0b1;font-size:11px}
.ct-workspace .ct-table{max-height:calc(100vh - 390px);min-height:300px;border-radius:8px;scrollbar-width:thin}
.ct-workspace .ct-table table{min-width:660px;table-layout:fixed}
.ct-workspace .ct-table thead th{position:sticky;top:0;z-index:2;background:#f3f6fb;padding:10px 8px;font-weight:500}
.ct-workspace .ct-table th:first-child{width:110px}
.ct-workspace .ct-table tbody th{padding:8px 10px;background:#fafbfd;font-weight:400;font-size:12px}
.ct-workspace .ct-table td{padding:2px;height:39px;border-color:#edf0f5}
.ct-workspace .ct-slot{min-height:34px;border:0;border-radius:4px;background:transparent;font-size:12px;color:#93a0b1}
.ct-workspace .ct-slot:hover{background:#edf3ff;outline:1px solid #bcd1ff}
.ct-workspace .ct-slot.ct-ban{background:#fff0e3;color:#aa581f}.ct-workspace .ct-slot.ct-limited{background:#fff8df;color:#98761f}.ct-available-mark{color:#c7d1df;font-size:17px}
.ct-source-details{margin-top:12px;border:1px solid #e5ebf3;border-radius:8px;padding:10px 14px}.ct-source-details summary{cursor:pointer;color:#63758b;font-size:12px}.ct-source-details .ct-source{border:0;border-top:1px solid #edf0f5;border-radius:0;padding:12px 0;margin:10px 0 0}
.ct-overview-scroll{max-height:calc(100vh - 350px);overflow:auto;scrollbar-width:thin}.ct-overview-scroll thead th{position:sticky;top:0;z-index:2}.ct-overview-scroll table th:first-child{position:sticky;left:0;z-index:1;background:#f3f6fb}.ct-overview-scroll thead th:first-child{z-index:3}.ct-shared-filter{margin:0 0 12px!important}
@media(max-width:1100px){.ct-workspace .ct-layout{grid-template-columns:210px minmax(0,1fr);gap:14px}.ct-class-header{flex-wrap:wrap}.ct-legend small{margin-left:0}.ct-workspace .ct-table{max-height:600px}.ct-workspace .ct-roster{height:650px}}
@media(max-width:760px){.ct-workspace .ct-layout{grid-template-columns:1fr}.ct-workspace .ct-roster{height:280px;min-height:0}.ct-workspace>.sectionintro{flex-wrap:wrap}.ct-workspace .ct-table{min-height:0;max-height:500px}.ct-workspace .ct-viewbar{gap:8px;padding-bottom:10px}.ct-class-header>div:last-child{flex-wrap:wrap}}
/* 时间设置将班级选择独立到窗口，主表单只保留选择结果。 */
.ct-target-summary{margin:18px 0;padding:16px;background:#f8faff;border:1px solid #e2eaf7;border-radius:10px}.ct-target-summary .ct-toolbar{margin:0 0 12px}.ct-target-summary h3{font-size:15px;margin:0}.ct-target-summary p{margin:6px 0 0}.ct-selected-preview{display:flex;gap:8px;flex-wrap:wrap}.ct-target-summary .tag{background:white;border:1px solid #dde6f5;color:#526887;padding:5px 9px;border-radius:6px}
.ct-picker-body{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:16px;min-height:360px}.ct-picker-body .ct-picks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;max-height:410px;margin:0;gap:6px}.ct-picker-body .ct-picks label{padding:9px 7px;border-radius:6px;cursor:pointer}.ct-picker-body .ct-picks label:has(input:checked){background:#edf3ff}.ct-picker-body .ct-picks small{display:block;color:#8291a6;font-size:11px;margin-top:4px}.ct-picked-panel{border:1px solid #e2eaf5;border-radius:10px;background:#f8faff;padding:14px}.ct-picked-panel h3{font-size:13px}.ct-picked-panel .ct-chips{display:flex;flex-direction:column;flex-wrap:nowrap;max-height:350px;margin:10px 0 0}.ct-picked-panel .ct-chips button{text-align:left;white-space:normal;padding:7px 9px;border-radius:5px;background:white;border:1px solid #e2eaf5;color:#526887}
@media(max-width:750px){.ct-picker-body{grid-template-columns:1fr}.ct-picked-panel .ct-chips{max-height:120px}.ct-picker-body .ct-picks{max-height:300px}}
.modal:has(.ct-target-summary) .ct-table td{height:36px;padding:2px}.modal:has(.ct-target-summary) .ct-table th{padding:8px 10px}.modal:has(.ct-target-summary) .ct-slot{min-height:30px}.modal:has(.ct-target-summary) .notice{margin-top:0}.modal:has(.ct-target-summary) .ct-toolbar{margin:12px 0}.modal:has(.ct-target-summary) .ct-target-summary .ct-toolbar{margin:0 0 10px}
.ct-overview-caption{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin:0 0 12px;color:#6f8198;font-size:12px}.ct-overview-caption label{display:flex;align-items:center;gap:6px}.ct-overview-caption .ct-legend{margin:0 0 0 auto}.ct-overview-table{max-height:calc(100vh - 390px);min-height:240px;border-radius:8px;scrollbar-width:thin}.ct-overview-table table{min-width:1060px;table-layout:fixed}.ct-overview-table thead th{position:sticky;top:0;z-index:3;background:#f3f6fb;padding:12px 10px;font-weight:500}.ct-overview-table th:first-child{width:170px;position:sticky;left:0;z-index:2;background:white}.ct-overview-table thead th:first-child{z-index:4;background:#f3f6fb}.ct-overview-table th:nth-child(2){width:86px}.ct-overview-table tbody th{padding:10px 12px;font-weight:400}.ct-overview-table tbody th small{display:block;margin-top:4px;color:#99a5b5;font-size:11px}.ct-overview-table td{padding:4px 6px;height:62px;border-color:#edf0f5}.ct-overview-table .ct-overview-group td{height:30px;padding:6px 12px;background:#f6f8fc;color:#60748f;font-size:12px}.ct-total{color:#75869c;text-align:center;font-size:12px}.ct-day-summary{display:block;width:100%;padding:7px 4px;text-align:left;border-radius:6px;cursor:pointer}.ct-day-summary:hover{background:#eef4ff;outline:1px solid #c6d8fb}.ct-day-count{display:block;font-size:11px;color:#9aa7b7;white-space:nowrap}.ct-day-count.has-ban{color:#b56a33}.ct-mini-slots{display:flex;gap:3px;margin-top:7px}.ct-mini-slots i{height:10px;flex:1;background:#eef2f7;border-radius:2px;min-width:3px}.ct-mini-slots i.ct-ban{background:#ffbf88}.ct-mini-slots i.ct-limited{background:#f7df8d}.ct-mini-slots i:nth-child(1),.ct-mini-slots i:nth-child(5),.ct-mini-slots i:nth-child(8){margin-right:3px}.ct-overview-note{font-size:11px;color:#8b9aaf;margin:10px 0 0;line-height:1.6}@media(max-width:1100px){.ct-overview-table{max-height:600px}.ct-overview-caption .ct-legend{margin-left:0}}
.stage-choice-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px}.stage-choices .stage-choice-footer b{margin:0}.stage-choice-footer .stage-choice-meta{color:#8b9bb0}
.stage-examples-text{margin:18px 0 0;color:#8a9ab0;font-size:12px;line-height:1.8;cursor:default}

.ct-overview-table table{min-width:1390px}.ct-overview-table th:nth-child(3){width:152px}.ct-capacity{color:#345c94;text-align:center}.ct-capacity strong{font-size:15px}.ct-capacity small{display:block;margin-top:4px;font-size:11px;color:#75869c}.ct-capacity small.ct-capacity-limited{color:#a87924}.ct-day-count{white-space:normal;line-height:1.5}

/* 首页学期归入左侧上下文，右侧只保留垂直居中的操作引导。 */
#page .prep-welcome{align-items:center}.prep-welcome>div:first-child{min-width:0}.prep-home-term{margin-top:16px;width:fit-content}.prep-welcome>.prep-header-actions{align-self:center;justify-content:center;width:auto;padding:0}.prep-home-term select{max-width:100%}@media(max-width:1150px){#page .prep-welcome{flex-direction:row;flex-wrap:nowrap;gap:24px}.prep-welcome>.prep-header-actions{flex-direction:row;flex-shrink:0}}@media(max-width:760px){#page .prep-welcome{flex-direction:column;align-items:flex-start;gap:18px}.prep-welcome>.prep-header-actions{align-self:flex-start}.prep-home-term{flex-wrap:wrap}}

/* 班级页沿用教师/课程页的学期行与准备导航。 */
#page.ct-workspace{padding:23px 24px 26px}.ct-workspace>.pagetop{margin-bottom:19px}.ct-workspace>.prep-nav{margin:6px 0 16px}.ct-workspace>.ct-page-heading{border:0;min-height:0;padding:0;margin:18px 0 0}.ct-workspace>.ct-page-heading h2{font-size:16px}.ct-workspace .ct-roster{height:calc(100vh - 385px);min-height:340px}.ct-workspace .ct-overview-table{max-height:calc(100vh - 480px)}
