/* Scoped ZH calendar UI v4. Keep Laravel route/query semantics unchanged. */
.zh-exams-header h1,.zh-exams-header .h2{color:var(--color-text)!important;letter-spacing:-.035em;font-size:clamp(1.4rem,2vw,1.9rem);font-weight:680}
.zh-exams-header .bg-white,.zh-calendar-page .bg-white{background:var(--color-surface)!important;color:var(--color-text)!important}
.zh-exams-header .text-dark,.zh-calendar-page .text-dark{color:var(--color-text)!important}
.zh-exams-header .text-muted,.zh-calendar-page .text-muted{color:var(--color-text-muted)!important}
.zh-exams-header .text-primary,.zh-calendar-page .text-primary{color:var(--color-brand)!important}
.zh-exams-header .bg-primary-subtle,.zh-calendar-page .bg-primary-subtle{background:var(--color-brand-soft)!important;color:var(--color-brand-soft-text)!important}
.zh-exams-header .text-primary,.zh-calendar-page .text-primary{color:var(--color-brand)!important}
.zh-exams-header .rounded-3,.zh-calendar-page .rounded-3{border-radius:7px!important}
.zh-exams-header .shadow-sm,.zh-calendar-page .shadow-sm,.zh-calendar-page .shadow-xs{box-shadow:none!important}
.zh-exams-header .border,.zh-calendar-page .border{border-color:var(--color-border)!important}
.zh-exams-header .fs-5.fw-bold,.zh-calendar-page .fs-5.fw-bold{font-variant-numeric:tabular-nums}
.zh-calendar-page .card,.zh-calendar-page .modal-content{border:1px solid var(--color-border)!important;background:var(--color-surface)!important}
.zh-calendar-page .card-body{color:var(--color-text)}
.zh-calendar-page .btn-primary{background:#862633!important;color:white!important;border-color:#862633!important}
:root[data-theme='dark'] .zh-calendar-page .btn-primary{background:#96334c!important;border-color:#96334c!important}
.zh-calendar-page .btn-outline-primary{border-color:var(--color-border-strong)!important;background:var(--color-surface)!important;color:var(--color-brand)!important}
.zh-calendar-page .btn-outline-primary:hover{background:var(--color-brand-soft)!important}
.zh-calendar-page .form-label{color:var(--color-text-muted)!important}
.zh-calendar-page .form-select,.zh-calendar-page .form-control{background:var(--color-surface)!important;color:var(--color-text)!important;border:1px solid var(--color-border-strong)!important;min-height:39px}
.zh-calendar-page .btn-group .btn{border-radius:5px!important}
.zh-month-title{font-size:1.13rem;font-weight:650;color:var(--color-text);letter-spacing:-.015em}
.zh-calendar-page .zh-calendar-table{margin:0;border-collapse:separate;border-spacing:0;table-layout:fixed;min-width:840px;width:100%;--bs-table-bg:var(--color-surface);--bs-table-color:var(--color-text);--bs-table-border-color:var(--color-border)}
.zh-calendar-page .zh-calendar-table thead th{background:var(--color-surface-alt)!important;color:var(--color-text-muted)!important;text-align:left!important;font-size:.76rem;letter-spacing:.02em;font-weight:650;padding:12px 10px!important;border-color:var(--color-border)}
.zh-calendar-page .zh-calendar-table td{border-color:var(--color-border)!important;height:134px;padding:7px!important;background:var(--color-surface)!important;color:var(--color-text)}
.zh-calendar-page .zh-calendar-table td.zh-outside{background:var(--color-surface-alt)!important;opacity:.7}
.zh-calendar-page .zh-calendar-table td.zh-today{box-shadow:inset 0 0 0 2px var(--color-brand)!important}
.zh-calendar-page .zh-day-number{color:var(--color-text)!important;font-size:.79rem!important;font-weight:650;width:24px;height:24px;border-radius:5px;background:transparent}
.zh-calendar-page td.zh-today .zh-day-number{background:var(--color-brand-soft)!important;color:var(--color-brand)!important}
.zh-calendar-page .zh-calendar-table .event-card{display:block;width:100%;border-radius:5px;background:var(--color-surface-alt)!important;border:1px solid var(--color-border)!important;border-left:3px solid var(--color-brand)!important;box-shadow:none!important;transform:none!important;padding:6px 7px!important;font:inherit;text-align:left;min-height:45px;color:var(--color-text)!important;cursor:pointer}
.zh-calendar-page .zh-calendar-table .event-card:hover{border-color:var(--color-border-strong)!important;background:var(--color-brand-soft)!important}
.zh-calendar-page .zh-calendar-table .event-card .text-truncate{color:var(--color-text)!important;font-size:.72rem}
.zh-calendar-page .zh-calendar-table .event-card strong{color:var(--color-brand)!important}
.zh-calendar-page .zh-calendar-table .event-card .text-muted{font-size:.67rem;color:var(--color-text-muted)!important}
.zh-calendar-page .zh-calendar-table .event-card.zh-event--hf{border-left-color:#247764!important}
.zh-calendar-page .zh-calendar-table .event-card.zh-event--other{border-left-color:#a07027!important}
.zh-calendar-page .zh-calendar-table .event-card.zh-event--hf strong{color:var(--color-success-text)!important}
.zh-calendar-page .zh-calendar-table .event-card.zh-event--other strong{color:var(--color-warning-text)!important}
.zh-calendar-page .zh-calendar-table .event-card:focus-visible,.zh-mobile-event:focus-visible{outline:2px solid var(--color-brand)!important;outline-offset:2px}
.zh-calendar-page .zh-agenda-event{background:var(--color-surface)!important;border-color:var(--color-border)!important;border-left:3px solid var(--color-brand)!important;color:var(--color-text);border-radius:0}
.zh-calendar-page .zh-agenda-event.zh-event--hf{border-left-color:#247764!important}
.zh-calendar-page .zh-agenda-event.zh-event--other{border-left-color:#a07027!important}
.zh-calendar-page .zh-agenda-event:hover{background:var(--color-surface-alt)!important}
.zh-calendar-page .card-header,.zh-calendar-page .table-light{background:var(--color-surface-alt)!important;color:var(--color-text)!important}
.zh-calendar-page .badge.bg-dark{background:var(--color-surface-alt)!important;color:var(--color-text)!important;border:1px solid var(--color-border)!important}
.zh-calendar-page .badge.bg-danger,.zh-calendar-page .badge.bg-danger-subtle{background:var(--color-danger-soft)!important;color:var(--color-danger-text)!important}
.zh-calendar-page .badge.bg-success,.zh-calendar-page .badge.bg-success-subtle{background:var(--color-success-soft)!important;color:var(--color-success-text)!important}
.zh-calendar-page .badge.bg-warning,.zh-calendar-page .badge.bg-warning-subtle{background:var(--color-warning-soft)!important;color:var(--color-warning-text)!important}
.zh-calendar-page .badge.bg-secondary-subtle,.zh-calendar-page .badge.bg-light{background:var(--color-surface-alt)!important;color:var(--color-text-muted)!important}
.zh-calendar-page .zh-mobile-agenda{display:none}
.zh-calendar-page .zh-mobile-date{font-size:.8rem;font-weight:650;color:var(--color-text-muted);margin:18px 0 8px}
.zh-calendar-page .zh-mobile-event{width:100%;display:flex;align-items:center;gap:12px;text-align:left;background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-left:3px solid var(--color-brand);border-radius:6px;padding:12px;margin-bottom:7px;cursor:pointer}
.zh-calendar-page .zh-mobile-event.zh-event--hf{border-left-color:#247764}
.zh-calendar-page .zh-mobile-event.zh-event--other{border-left-color:#a07027}
.zh-mobile-event .zh-mobile-time{font-size:.75rem;font-weight:650;color:var(--color-text-muted);min-width:57px;font-variant-numeric:tabular-nums}
.zh-mobile-event .zh-mobile-course{display:block;font-weight:680;font-size:.82rem}
.zh-mobile-event .zh-mobile-subject{display:block;font-size:.8rem;color:var(--color-text-muted)}
/* Modal outside the .zh-calendar-page container — scoped by ID. */
#examDetailModal .modal-content,#dayAllModal .modal-content{background:var(--color-surface)!important;color:var(--color-text)!important;border:1px solid var(--color-border)!important}
#examDetailModal .modal-body .card{background:var(--color-surface-alt)!important;border-color:var(--color-border)!important}
#examDetailModal .text-dark,#dayAllModal .text-dark{color:var(--color-text)!important}
#examDetailModal .text-muted,#dayAllModal .text-muted{color:var(--color-text-muted)!important}
#examDetailModal .text-primary{color:var(--color-brand)!important}
#examDetailModal .btn-outline-success{color:var(--color-success-text)!important;border-color:var(--color-border-strong)!important}
#dayAllModal .list-group-item{background:var(--color-surface)!important;color:var(--color-text)!important;border-color:var(--color-border)!important}
@media(max-width:991.98px){.zh-calendar-page .zh-grid-desktop{display:none!important}.zh-calendar-page .zh-mobile-agenda{display:block}.zh-month-quick{display:none!important}}
@media(max-width:575.98px){.zh-exams-header .row .col-3 .p-2{padding:8px 3px!important}.zh-exams-header .row .col-3 .p-2 div:last-child{font-size:.64rem!important}.zh-calendar-page .btn-group .btn{font-size:.76rem}.zh-calendar-page .zh-month-nav{gap:8px}.zh-calendar-page .zh-month-nav .btn{padding:5px 9px}.zh-calendar-page .zh-month-title{order:-1;flex-basis:100%;text-align:center}.zh-calendar-page .timeline-container .list-group-item{display:block!important}}
