.schedule-month-picker {
    display: flex;
    justify-content: center;
    gap: .5rem;
    margin: 1.4rem 0 1.6rem;
}
.schedule-month-button {
    border: 1px solid #d4e1ee;
    border-radius: .45rem;
    padding: .65rem 1.2rem;
    background: #fff;
    color: #365875;
    font-weight: 600;
}
.schedule-month-button:hover { background: #edf4fa; }
.schedule-month-button[aria-pressed="true"] {
    background: #285e89;
    border-color: #285e89;
    color: #fff;
}
.schedule-month-button:focus-visible { outline: 3px solid #80b5df; outline-offset: 3px; }
.schedule-month-title { font-size: 1.25rem; color: #285e89; margin-bottom: 1rem; }
.schedule-week { border: 1px solid #dbe5ed; border-radius: .5rem; margin-bottom: 1rem; }
.schedule-table { width: 100%; min-width: 640px; table-layout: fixed; text-align: center; border-collapse: collapse; color: #364653; }
.schedule-table th, .schedule-table td { padding: .55rem .25rem; border-right: 1px solid #e4ebf1; border-bottom: 1px solid #e4ebf1; vertical-align: middle; }
.schedule-table tr > :last-child { border-right: 0; }
.schedule-table tbody tr:last-child > * { border-bottom: 0; }
.schedule-table thead { background: #eaf2f9; color: #285e89; }
.schedule-table th:first-child { width: 64px; }
.schedule-table tbody th { background: #f5f8fb; font-weight: 600; color: #526a7e; }
.schedule-table tbody tr:nth-child(2) td:not(.schedule-empty) { background: #fcfdfe; }
.schedule-date { display: block; font-size: 1rem; }
.schedule-table small { display: block; font-size: .75rem; font-weight: 400; margin-top: .15rem; }
.schedule-table .schedule-weekend { color: #a85858; }
.schedule-table .schedule-empty { background: #fafbfc; }
.schedule-closed { color: #c43a3a; }
#schedule-status:empty { display: none; }
.schedule-mobile { display: none; }
.schedule-actions { text-align: right; margin: -.7rem 0 1rem; }
.schedule-today-button { border: 0; background: transparent; color: #285e89; padding: .4rem .2rem; text-decoration: underline; text-underline-offset: 3px; }
.schedule-today-badge { display: inline-block; font-size: .7rem; padding: .1rem .35rem; margin-left: .5rem; border-radius: .25rem; background: #285e89; color: white; vertical-align: middle; }
.schedule-table .schedule-table-today { background: #d7eafa; box-shadow: inset 0 3px #285e89; }
.schedule-table .schedule-table-today .schedule-today-badge { display: block; width: fit-content; margin: .2rem auto 0; }
@media (max-width: 767px) {
    .schedule-month > .schedule-week { display: none; }
    .schedule-mobile { display: block; }
    .schedule-week-picker { display: flex; align-items: center; justify-content: space-between; gap: .35rem; margin-bottom: .8rem; }
    .schedule-week-picker button { border: 1px solid #d4e1ee; border-radius: .4rem; padding: .55rem .5rem; background: white; color: #285e89; font-size: .85rem; white-space: nowrap; }
    .schedule-week-picker button:disabled { color: #8b99a4; background: #f5f7f9; }
    .schedule-week-picker button:focus-visible { outline: 3px solid #80b5df; outline-offset: 2px; }
    .schedule-week-range { color: #365875; font-size: .9rem; font-weight: 600; white-space: nowrap; }
    .schedule-day { border: 1px solid #dbe5ed; border-radius: .5rem; margin-bottom: .65rem; overflow: hidden; }
    .schedule-day h4 { font-size: .95rem; font-weight: 600; color: #285e89; background: #eaf2f9; margin: 0; padding: .5rem .75rem; }
    .schedule-day h4.schedule-weekend { color: #a85858; }
    .schedule-day dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .3rem 0; margin: 0; padding: .6rem .4rem; font-size: .95rem; text-align: center; }
    .schedule-day dt { grid-row: 1; color: #687d8d; font-weight: 400; }
    .schedule-day dd { grid-row: 2; margin: 0; color: #364653; padding: 0 .2rem; overflow-wrap: anywhere; }
    .schedule-day dt:nth-of-type(1), .schedule-day dd:nth-of-type(1) { grid-column: 1; }
    .schedule-day dt:nth-of-type(2), .schedule-day dd:nth-of-type(2) { grid-column: 2; }
    .schedule-day dt:nth-of-type(3), .schedule-day dd:nth-of-type(3) { grid-column: 3; }
    .schedule-day-today { border-color: #285e89; }
    .schedule-day-today h4 { background: #d7eafa; }
}
@media (max-width: 575px) {
    .schedule-month-picker { gap: .35rem; }
    .schedule-month-button { padding: .6rem .55rem; font-size: .9rem; }
    .schedule-table { min-width: 590px; font-size: .9rem; }
}
