.schedule-heading h2 br { display: none; }
.schedule-heading h2 em::before { content: ' '; }
.filters { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; padding: 16px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); margin: 0 auto 25px; max-width: 1160px; }
.filter-group { display: flex; align-items: center; gap: 12px; }
.filter-label { font-size: 12px; color: #c6c8c3; }
.filter-group select { border: 0; background: transparent; color: var(--paper); font-size: 15px; padding: 8px 0; }
.reset-filters { background: transparent; color: #fff; border: 0; padding: 8px 10px; font-size: 14px; font-weight: 600; }
.reset-filters:hover { color: var(--yellow); }
.week-grid { max-width: 1160px; margin: auto; }
.schedule-table { --day-column: minmax(112px,.78fr); width: 100%; display: grid; grid-template-columns: var(--day-column) repeat(var(--time-count),minmax(0,1fr)); border: 1px solid var(--line); border-radius: 7px; overflow: hidden; background: #ffffff05; }
.schedule-row { display: grid; grid-column: 1/-1; grid-template-columns: var(--day-column) repeat(var(--time-count),minmax(0,1fr)); min-width: 0; }
.schedule-row + .schedule-row { border-top: 1px solid var(--line); }
.schedule-day-head, .schedule-time-head { min-width: 0; display: flex; align-items: center; padding: 12px; color: var(--yellow); font-size: 12px; font-weight: 700; letter-spacing: .04em; }
.schedule-time-head, .schedule-slot { border-left: 1px solid var(--line); }
.schedule-day, .schedule-slot, .schedule-events-slot { min-width: 0; padding: 8px; }
.schedule-day { align-self: stretch; display: flex; align-items: center; color: #d2d2cc; font-size: 12px; font-weight: 700; letter-spacing: .04em; overflow-wrap: anywhere; }
.day-short { display: none; }
.schedule-slot, .schedule-events-slot { display: flex; align-items: stretch; gap: 7px; }
.schedule-slot:empty { min-height: 52px; }
.class-item { position: relative; min-width: 0; flex: 1 1 0; align-self: stretch; background: #ffffff0a; border-radius: 4px; padding: 9px 34px 9px 10px; }
.class-tag { display: inline-block; padding: 2px 5px; background: #dceba722; color: var(--yellow); font-size: 10px; line-height: 1.35; }
.class-item h3 { margin: 5px 0 3px; font-size: 13px; line-height: 1.3; overflow-wrap: anywhere; }
.class-level { display: block; font-size: 11px; line-height: 1.25; color: #c9cbc4; padding-right: 2px; }
.class-time { align-self: flex-start; white-space: nowrap; font-size: 12px; font-weight: 700; color: var(--paper); }
.event-item { display: grid; grid-template-columns: auto auto; align-content: center; justify-content: start; align-items: center; gap: 4px 9px; }
.event-item h3 { grid-column: 1; }
.event-item .class-level { grid-column: 1; }
.class-book { position: absolute; right: 6px; bottom: 6px; width: 26px; height: 26px; border: 0; border-radius: 4px; background: var(--yellow); color: var(--dark); display: grid; place-items: center; font-size: 19px; }
.schedule-footer { display: flex; justify-content: center; margin: 21px auto 0; }
.schedule-footer .button { min-width: 245px; }
#schedule-empty { text-align: center; }
@media(max-width:1000px) {
  .filters { gap: 12px 18px; }
  .schedule-table { --day-column: minmax(94px,.7fr); }
  .schedule-day-head, .schedule-time-head { padding: 10px 8px; }
  .schedule-day, .schedule-slot, .schedule-events-slot { padding: 6px; }
}
@media(max-width:600px) {
  .filters { gap: 8px 12px; padding: 10px 0; margin-bottom: 14px; }
  .filter-group { gap: 6px; }
  .filter-label { display: none; }
  .filter-group select { max-width: 112px; font-size: 12px; padding: 5px 0; }
  .reset-filters { font-size: 12px; padding: 5px 4px; }
  .schedule-table { --day-column: 62px; border-radius: 5px; }
  .schedule-day-head, .schedule-time-head { justify-content: center; padding: 8px 3px; font-size: 10px; }
  .schedule-day { justify-content: center; text-align: center; padding: 5px 2px; font-size: 9px; letter-spacing: 0; }
  .day-full { display: none; }
  .day-short { display: inline; }
  .schedule-slot, .schedule-events-slot { padding: 3px; }
  .schedule-slot:empty { min-height: 22px; }
  .schedule-events-slot { flex-direction: column; }
  .class-item { padding: 4px 22px 4px 4px; }
  .class-tag { padding: 2px 3px; font-size: 8px; }
  .class-item h3 { margin: 2px 0; font-size: 9px; line-height: 1.15; }
  .class-level { display: none; }
  .class-time { font-size: 10px; }
  .class-book { right: 3px; bottom: 3px; width: 20px; height: 20px; font-size: 15px; }
  .event-item { grid-template-columns: auto auto; gap: 3px 5px; }
}
