.timetable-page .timetable-intro { padding: clamp(48px, 7vw, 82px) 0 clamp(35px, 5vw, 52px); background: linear-gradient(110deg, var(--ci-cream), #f8f8f5 65%, #e9eeea); }
.timetable-intro .section-kicker { margin-bottom: 12px; }
.timetable-intro h1 { margin: 0 0 10px; color: var(--navy); font-size: clamp(40px, 5vw, 64px); }
.timetable-section { padding: clamp(30px, 5vw, 52px) 0 clamp(58px, 8vw, 90px); background: #f9f9f9; }
.timetable-status { padding: 35px 24px; border: 1px solid #dbe5df; border-radius: 16px; background: #fff; color: #526962; text-align: center; }
.timetable-status[hidden], .timetable-scroll[hidden] { display: none; }
.timetable-scroll { overflow-x: auto; border: 1px solid #c7d7cf; border-radius: 17px; box-shadow: 0 14px 34px rgba(26, 61, 73, .08); background: #fff; }
.timetable-table { width: 100%; border-collapse: separate; border-spacing: 0; table-layout: fixed; color: var(--navy); }
.timetable-col-week { width: 12%; }
.timetable-col-date { width: 23%; }
.timetable-col-module { width: 25%; }
.timetable-col-topic { width: 40%; }
.timetable-table th { padding: 16px 18px; background: linear-gradient(110deg, var(--navy), var(--cyan)); color: #fff; font-size: 15px; font-weight: 700; text-align: left; }
.timetable-table th:not(:last-child), .timetable-table td:not(:last-child) { border-right: 1px solid rgba(26, 61, 73, .14); }
.timetable-table td { padding: 18px; border-bottom: 1px solid #d9e3dd; vertical-align: middle; font-size: 15px; line-height: 1.6; }
.timetable-table tbody tr:last-child td { border-bottom: 0; }
.timetable-table tbody tr:nth-child(even) .timetable-week,
.timetable-table tbody tr:nth-child(even) .timetable-date { background: #f0f5f2; }
.timetable-week { white-space: nowrap; font-weight: 700; }
.timetable-date { white-space: normal; }
.timetable-module { background: #eaf2ed; }
.timetable-module-content { display: grid; align-content: center; gap: 5px; min-height: 70px; }
.timetable-module-number { width: fit-content; padding: 3px 11px; border-radius: 999px; background: var(--navy); color: #fff; font-size: 12px; font-weight: 700; }
.timetable-module-primary { font-size: 17px; font-weight: 700; line-height: 1.45; }
.timetable-module-secondary { color: #587268; font-size: 13px; line-height: 1.5; }
.timetable-topic { background: #fff; font-weight: 600; font-size: 17px !important; }
.timetable-topic-content { display: flex; align-items: center; min-height: 55px; }
.timetable-note { margin: 16px 2px 0; color: #6a7972; font-size: 12px; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@media (max-width: 760px) {
  .timetable-scroll { margin-inline: -2px; }
  .timetable-table { min-width: 700px; }
  .timetable-table th, .timetable-table td { padding: 13px 12px; font-size: 13px; }
  .timetable-module-primary, .timetable-topic { font-size: 15px !important; }
}
