/* Category colors are accents only. White has a thin gray outline for visibility. */
[data-calendar-category="lesson"]{--calendar-accent:#399463}
[data-calendar-category="event"]{--calendar-accent:#ffffff}
[data-calendar-category="exam"]{--calendar-accent:#d34c51}
[data-calendar-category="admin"]{--calendar-accent:#202329}
[data-calendar-category="faculty"]{--calendar-accent:#936342}
[data-calendar-category="rental"]{--calendar-accent:#e79334}
.week-class-card[data-calendar-category],button.month-event[data-calendar-category]{border:1px solid #dce3e9!important;border-left:5px solid var(--calendar-accent)!important;background:#fff!important;color:#273848;box-shadow:0 3px 10px #24394d08}
.week-class-card[data-calendar-category="event"],button.month-event[data-calendar-category="event"]{box-shadow:inset 1px 0 #cad3dc,-1px 0 #cad3dc,0 3px 10px #24394d08}
.week-class-card .calendar-card-people,button.month-event .calendar-card-people{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin:5px 0 3px;font:600 10px/1.2 inherit;color:#475d71}
.calendar-card-people .calendar-enrolled,.calendar-card-people .calendar-teacher-initials{display:inline-flex;align-items:center;justify-content:center;gap:3px;min-height:20px;padding:2px 5px;border:1px solid #e0e7ee;border-radius:6px;background:#f5f8fa;white-space:nowrap;font-size:10px;line-height:1.2;font-weight:700;font-variant-numeric:tabular-nums}
.calendar-card-people .calendar-teacher-initials{background:#eaf0f5;color:#4f718c;min-width:24px}
.calendar-card-people .calendar-teacher-initials.unassigned{color:#87949e;background:#f6f7f9}
.calendar-enrolled svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.5;flex:none}
.time-grid-compact[data-calendar-category] h3{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px;line-height:13px;margin-top:2px}
.time-grid-compact[data-calendar-category] .week-class-time{font-size:10px;line-height:12px;white-space:nowrap;flex-wrap:nowrap}
.time-grid-compact[data-calendar-category] .calendar-card-people{margin:3px 0 0;gap:3px;flex-wrap:nowrap;overflow:hidden}
.time-grid-compact[data-calendar-category] .calendar-enrolled,.time-grid-compact[data-calendar-category] .calendar-teacher-initials{min-height:18px;padding:1px 3px;font-size:9px}
.time-grid-compact[data-calendar-category] .bbs-program-badge{display:none}
#studentTableBody [data-open-student],#exitedStudentsPanel [data-open-student]{cursor:pointer}
#studentTableBody [data-open-student]:hover>td{background:#f0f5f9}
#studentTableBody [data-open-student]:focus-visible,#exitedStudentsPanel [data-open-student]:focus-visible{outline:2px solid #6e8ea8;outline-offset:-2px}
/* Student card: the invitation and mail status share one stable action area. */
#studentModal .modal-head{display:grid;grid-template-columns:minmax(0,1fr) auto 44px;align-items:start;gap:12px}
#studentModal .modal-head>div:first-child{min-width:0;overflow-wrap:anywhere}
#studentModal .student-modal-head-actions{grid-column:2;grid-row:1;display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;min-width:0}
#studentModal .student-modal-head-actions:not(:has(>button:not([hidden]))){display:none}
#studentModal .student-modal-head-actions>button{width:auto;height:auto;min-height:44px;padding:10px 14px;font-size:12px;line-height:1.35;white-space:normal;border-radius:10px}
#studentModal .modal-head>.close-student-modal{width:44px;height:44px;min-width:44px;padding:0;display:grid;place-items:center;grid-column:3;grid-row:1;line-height:1;font-size:24px}
@media(max-width:700px){#studentModal .modal-head{grid-template-columns:minmax(0,1fr) 44px}#studentModal .modal-head>.close-student-modal{grid-column:2;grid-row:1}#studentModal .student-modal-head-actions{grid-column:1/-1;grid-row:2;justify-content:stretch}#studentModal .student-modal-head-actions>button{flex:1 1 180px}}
@media(max-width:440px){#studentModal .student-modal-head-actions>button{flex-basis:100%}}

.actual-hours-panel,.calendar-waitlist{background:#f4f7fa;border:1px solid #dce4ed;border-radius:12px;padding:18px;margin:16px 0}.actual-hours-panel h3,.calendar-waitlist h3{margin:0 0 10px;color:#173763}.actual-hours-panel p,.calendar-waitlist small{font-size:12px;line-height:1.6;color:#718198}.actual-hours-panel label{display:block;margin:12px 0}.actual-hours-panel input:not([type=checkbox]){display:block;width:100%;padding:12px;border:1px solid #dce4ed;border-radius:8px;font-size:16px}.actual-hours-panel input[type=checkbox]{width:18px;height:18px;vertical-align:middle}

[data-calendar-category="online"]{--calendar-accent:#8064a2}
