.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}
