.class-dialog{width:min(620px,100%)}
.table-actions{white-space:nowrap}
.table-actions .btn{margin-right:6px}
.table-actions .btn:last-child{margin-right:0}
.table-actions small{margin-top:7px}
.attendance-dialog{width:min(720px,100%);max-height:calc(100vh - 40px);overflow:auto}
.attendance-list{border-top:1px solid var(--line);margin-top:6px}
.attendance-row{display:grid;grid-template-columns:minmax(90px,.55fr) 112px minmax(160px,1.45fr);gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #edf0f2}
.attendance-row b{font-size:13px}
.attendance-row select,.attendance-row input{border:1px solid var(--line);border-radius:3px;padding:7px 8px;min-width:0}
.session-edit-dialog{width:min(650px,100%)}
.class-schedule-panel{margin-top:18px}
.class-roster-panel{margin-top:18px}
.session-actions{white-space:nowrap}
.session-actions .btn{margin:0 5px 5px 0}
.enrollment-dialog{width:min(560px,100%)}
.operations-dashboard{margin:0 0 18px}
.operations-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.operations-head>div{display:grid;gap:3px}
.operations-head b{font-size:16px}
.operations-head span{font-size:12px;color:var(--muted)}
.operations-head .btn{margin-left:auto}
.operations-kpis{margin-bottom:14px}
.risk-list{border:1px solid #efd4c3;background:#fff8f2;padding:13px 15px;display:grid;gap:6px;color:#81491f;font-size:12px}
.risk-list b{font-size:13px;color:#6e3d19}
.operations-ok{border:1px solid #cde5df;background:#f3fbf8;padding:12px 14px;color:#187653;font-size:13px}
.risk-tag{display:inline-block;background:#fff0e4;color:#a85916;border:1px solid #f0c5a2;border-radius:3px;padding:2px 5px;font-size:11px}
@media(max-width:620px){.attendance-row{grid-template-columns:1fr 1fr}.attendance-row input{grid-column:1 / -1}}
@media(max-width:820px){.table-actions{min-width:180px}}
.notification-trigger{position:relative;border:1px solid var(--line);background:#fff;color:#40515e;border-radius:3px;padding:6px 9px;font-size:12px}.notification-trigger:hover{border-color:#8ba6a3;color:var(--teal)}.notification-trigger i{position:absolute;top:-8px;right:-9px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#c7473c;color:#fff;font:10px/17px "DM Mono",monospace;font-style:normal;text-align:center}.notification-drawer{position:fixed;z-index:18;right:18px;top:72px;width:min(400px,calc(100vw - 36px));max-height:calc(100vh - 92px);display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);box-shadow:0 14px 38px rgba(25,40,50,.16)}.notification-head{display:flex;align-items:center;gap:10px;padding:14px 15px;border-bottom:1px solid var(--line)}.notification-head>div{display:grid;gap:2px}.notification-head b{font-size:15px}.notification-head span{font-size:11px;color:var(--muted)}.notification-head .btn{margin-left:auto;padding:6px 8px;font-size:12px}.notification-list{overflow:auto}.notification-item{display:grid;grid-template-columns:70px 1fr;gap:11px;width:100%;text-align:left;border:0;border-bottom:1px solid #edf0f2;background:#f2fbf9;padding:13px 15px;color:var(--ink)}.notification-item:hover{background:#e8f5f2}.notification-item.read{background:#fff}.notification-item:last-child{border-bottom:0}.notification-item>div{min-width:0}.notification-item b{display:block;font-size:13px}.notification-item p{margin:4px 0;color:#52616e;font-size:12px;line-height:1.55}.notification-item small{font-size:11px;color:var(--muted)}.notification-type{align-self:start;color:#00746d;background:#dff2ed;border:1px solid #bfe1d9;border-radius:3px;padding:3px 5px;font-size:11px;text-align:center;white-space:nowrap}.notification-item.read .notification-type{color:#6b7985;background:#f1f4f5;border-color:#e1e6e9}.notification-empty{padding:32px 18px;text-align:center;color:var(--muted);font-size:13px}
.package-warning{color:#b35013;font-weight:700}.package-summary{border:1px solid var(--line);background:#fff;margin-top:18px}.package-kpis{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line)}.package-kpis>div{padding:14px 15px;border-right:1px solid var(--line)}.package-kpis>div:last-child{border-right:0}.package-kpis span{display:block;color:var(--muted);font-size:11px}.package-kpis b{display:block;margin-top:4px;font:20px "DM Mono",monospace;color:#25343d}.package-risk{display:grid;gap:6px;padding:12px 15px;background:#fff8f2;color:#81491f;font-size:12px}.package-risk span{padding-left:10px;border-left:2px solid #d96e13}@media(max-width:760px){.package-kpis{grid-template-columns:1fr 1fr}.package-kpis>div:nth-child(2){border-right:0}.package-kpis>div:nth-child(-n+2){border-bottom:1px solid var(--line)}}
.weekly-schedule{border:1px solid var(--line);background:#fff;margin:-4px 0 18px}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));overflow:auto}.week-day{min-height:170px;padding:11px;border-right:1px solid var(--line);background:#fbfcfc}.week-day:last-child{border-right:0}.week-day>b{display:block;font-size:13px}.week-day>b small{display:block;color:var(--muted);font-weight:400;margin-top:2px}.week-day>i{display:block;margin-top:20px;color:#a0abb3;font-size:12px;font-style:normal}.week-session{display:grid;gap:2px;margin-top:10px;padding:8px;border-left:3px solid var(--teal);background:#eaf6f4}.week-session span,.week-session small{font-size:11px;color:#546672}.week-session strong{font-size:12px;font-weight:600}
.classroom-dialog{width:min(700px,100%)}
.schedule-extra-fields{grid-column:1 / -1}
.duration-options{display:flex;gap:8px;flex-wrap:wrap}.duration-options label{display:flex;align-items:center;gap:6px;min-height:36px;padding:0 10px;border:1px solid var(--line);background:#fbfcfc;color:#40525d;font-size:13px}.duration-options input{accent-color:var(--teal)}
.season-access-strip{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:-4px 0 18px;padding:12px 14px;border:1px solid #cde4dd;background:#f5fbf9}.season-access-strip>div:first-child{display:grid;gap:3px}.season-access-strip b{font-size:13px;color:#173744}.season-access-strip div span,.season-access-strip>div:last-child{font-size:12px;color:#59706f}.season-access-strip>div:last-child{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.season-access-strip>div:last-child span{padding:4px 7px;border:1px solid #d6e3e1;background:#fff;color:#88969b}.season-access-strip>div:last-child span.active{border-color:#79b9ae;background:#e8f6f2;color:#176f69;font-weight:600}.season-access-strip>small{font-size:11px;color:var(--muted);white-space:nowrap}
.analytics-selector{margin-bottom:18px}.analytics-selector .horizontal{display:flex;gap:8px;overflow:auto;padding:2px}.analytics-selector .select-item{min-width:210px}.feedback-curve{margin-bottom:18px}.feedback-bars{min-height:220px;display:flex;gap:10px;align-items:end;overflow:auto;padding:16px 12px 12px;border-top:1px solid var(--line);background:#fbfcfc}.feedback-bar{position:relative;display:grid;grid-template-rows:1fr auto auto auto;justify-items:center;gap:5px;width:48px;height:185px;flex:none;color:#45606a}.feedback-bar>span{align-self:end;width:26px;min-height:2px;background:#1b8b80;border-radius:2px 2px 0 0}.feedback-bar>b{font:12px "DM Mono",monospace;color:#173744}.feedback-bar small,.feedback-bar em{font-size:10px;font-style:normal;color:var(--muted);white-space:nowrap}.feedback-bar.empty-bar>span{background:#c9d5d8}.feedback-bar.empty-bar>b{color:#9aa6ad}
.submission-links{display:grid;gap:6px;margin-top:8px;min-width:190px}.submission-links>span{display:grid;grid-template-columns:minmax(55px,1fr) auto auto;align-items:center;gap:6px;padding-top:5px;border-top:1px solid #edf0f2}.submission-links b{font-size:12px}.submission-links small{font-size:11px;color:var(--muted);white-space:nowrap}.submission-links .btn{padding:4px 7px;font-size:11px}.review-status{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;padding:10px 12px;margin-bottom:14px;background:#f5f8f8;border:1px solid var(--line);font-size:12px}.review-status span{color:var(--muted)}.review-status b{font-weight:500}.analytics-loading{min-height:120px}
@media(max-width:820px){.season-access-strip{align-items:flex-start;flex-direction:column}.season-access-strip>div:last-child{justify-content:flex-start}.season-access-strip>small{white-space:normal}}

.academic-queue{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);background:#fff}
.academic-queue-item{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;position:relative;min-height:112px;padding:14px;border:0;border-right:1px solid var(--line);background:#fff;color:var(--ink);text-align:left}
.academic-queue-item:last-child{border-right:0}.academic-queue-item:hover{background:#f6fbfa}.academic-queue-item.attention{background:#fffaf5}.academic-queue-item>span{width:26px;height:26px;display:grid;place-items:center;border:1px solid #bcd8d3;background:#eef8f6;color:var(--teal);font:11px "DM Mono",monospace}.academic-queue-item.attention>span{border-color:#ecc99f;background:#fff3e4;color:#a85916}.academic-queue-item>div{display:grid;align-content:start;gap:4px;min-width:0}.academic-queue-item b{font-size:13px}.academic-queue-item small{font-size:12px;line-height:1.5;color:var(--muted)}.academic-queue-item em{grid-column:2;color:var(--teal);font-size:12px;font-style:normal;font-weight:600}
.schedule-import-guide{margin-bottom:18px}.schedule-import-flow{display:flex;align-items:stretch;gap:9px;padding:2px 0;overflow:auto}.schedule-import-flow>span,.schedule-import-flow>strong{display:grid;gap:4px;min-width:170px;padding:11px 12px;border:1px solid var(--line);background:#fbfcfc;color:#596b76;font-size:12px;line-height:1.45}.schedule-import-flow b{color:var(--ink);font-size:13px}.schedule-import-flow>i{align-self:center;color:#8a9aa3;font-style:normal}.schedule-import-flow>strong{min-width:160px;border-color:#b9dcd5;background:#eff9f6;color:#176f69;font-size:13px}
.staff-import-panel{margin:18px 0}.staff-import-panel .table-sub{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.plan-table td{vertical-align:top}.plan-table .table-actions{min-width:106px}.schedule-plan-dialog{width:min(760px,100%);max-height:calc(100vh - 40px);overflow:auto}.schedule-plan-checks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:16px 0}.schedule-plan-checks>span{display:grid;grid-template-columns:1fr auto;gap:3px;padding:10px;border:1px solid var(--line);background:#fbfcfc}.schedule-plan-checks b{font-size:12px}.schedule-plan-checks em{font-size:11px;font-style:normal}.schedule-plan-checks small{grid-column:1 / -1;color:var(--muted);font-size:11px;line-height:1.45}.schedule-plan-checks .ready{border-color:#c8e3dc;background:#f2fbf8}.schedule-plan-checks .ready em{color:#177c69}.schedule-plan-checks .pending{border-color:#efd3b7;background:#fff9f3}.schedule-plan-checks .pending em{color:#a85916}
.schedule-plan-checks .waiting{border-color:#dbe3e6;background:#f7f9fa}.schedule-plan-checks .waiting em{color:#71818a}
@media(max-width:980px){.academic-queue{grid-template-columns:1fr 1fr}.academic-queue-item:nth-child(2){border-right:0}.academic-queue-item:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media(max-width:720px){.academic-queue{grid-template-columns:1fr}.academic-queue-item,.academic-queue-item:nth-child(2){border-right:0;border-bottom:1px solid var(--line)}.academic-queue-item:last-child{border-bottom:0}.schedule-plan-checks{grid-template-columns:1fr 1fr}.schedule-import-flow{padding-bottom:4px}.schedule-import-flow>span,.schedule-import-flow>strong{min-width:145px}}
@media(max-width:460px){.schedule-plan-checks{grid-template-columns:1fr}.schedule-plan-dialog{max-height:calc(100vh - 18px)}}
