.schedule-hero{padding-bottom:34px}
.schedule-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.schedule-shell{padding-bottom:64px}
.schedule-panel{overflow:hidden;padding:0;border-color:#b8d8ee}
.schedule-table-wrap{overflow:auto;border-radius:20px;border:2px solid #b8d8ee;background:#fff}
.schedule-table{width:100%;min-width:1120px;border-collapse:collapse;table-layout:fixed;background:#fff}
.schedule-table th,.schedule-table td{width:14.285%;border:1px solid #b8d8ee;padding:8px;vertical-align:middle}
.schedule-table th:last-child,.schedule-table td:last-child{border-right:0}
.schedule-table tr:last-child td{border-bottom:0}
.schedule-table thead th{position:sticky;top:0;z-index:2;background:#0b3764;color:#fff;font-size:15px;text-align:center}
.schedule-table tbody tr:nth-child(even) td{background:#f7fbff}
.schedule-table td:empty{background:linear-gradient(135deg,#f5faff 0,#f5faff 48%,#dcecf7 49%,#dcecf7 51%,#f5faff 52%,#f5faff 100%)}
.schedule-item{display:grid;place-items:center;align-content:center;gap:5px;min-height:58px;text-align:center}
.schedule-time{display:inline-flex;justify-content:center;min-width:70px;max-width:100%;padding:3px 6px;border-radius:999px;background:#eaf6ff;color:#0879c9;font-size:11px;font-weight:800;line-height:1.2;white-space:nowrap}
.schedule-title{color:#183650;font-size:12px;font-weight:800;line-height:1.22}
.schedule-note{color:#60778c;font-size:11px;line-height:1.3}
.day-tabs{display:none}
.day-panels{display:none}
.day-card{padding:22px;border:1px solid #dcecf7;border-radius:20px;background:#fff}
.day-card h2{display:flex;align-items:center;gap:10px;margin-bottom:18px}
.day-card h2 span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#eaf6ff;color:#0879c9;font-size:14px}
.mobile-list{display:grid;gap:10px}
.mobile-row{display:grid;grid-template-columns:112px minmax(0,1fr);gap:12px;padding:13px;border:1px solid #dcecf7;border-radius:14px;background:#fbfdff}
.mobile-row strong{color:#0879c9;font-size:13px;white-space:nowrap}
.mobile-row span{color:#183650;font-weight:700;line-height:1.35}
.mobile-row em{display:block;margin-top:4px;color:#60778c;font-size:13px;font-style:normal;font-weight:400}
.source-note{margin-top:18px;color:#60778c;font-size:14px}
@media(max-width:900px){
  .schedule-table-wrap{display:none}
  .day-tabs{display:flex;gap:8px;overflow:auto;padding:4px 0 14px;scrollbar-width:thin}
  .day-tab{flex:0 0 auto;border:1px solid #c9e1f1;border-radius:999px;background:#fff;color:#0b3764;padding:9px 14px;font-weight:800;cursor:pointer}
  .day-tab[aria-selected="true"]{background:#0879c9;border-color:#0879c9;color:#fff}
  .day-panels{display:block}
  .day-card[hidden]{display:none}
}
@media(max-width:560px){
  .schedule-actions .btn{width:100%}
  .mobile-row{grid-template-columns:1fr;gap:5px}
}

/* Each day flows independently, without empty timetable cells. */
.schedule-table td.schedule-day-column{padding:0;vertical-align:top;background:#fff}
.schedule-day-column .schedule-item{padding:10px 8px;border-bottom:1px solid #b8d8ee;min-height:76px;box-sizing:border-box}
.schedule-day-column .schedule-item:nth-child(even){background:#f7fbff}
.schedule-day-column .schedule-item:last-child{border-bottom:0}

