/* Новое расписание MIGX. Подключать после общих стилей сайта. */
.ds-schedule {
    --ds-border: #d5dce2;
    width: 100%;
    min-width: 0;
    margin: 35px 0;
}
.ds-schedule, .ds-schedule * { box-sizing: border-box; }
.ds-schedule .ds-schedule-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin: 0 0 16px;
}
.ds-schedule .ds-schedule-tab {
    display: block;
    padding: 10px 14px;
    border-radius: 5px;
    background: #e8ebed;
    color: #333;
    font-size: 13px;
    line-height: 1.4;
    text-decoration: none;
}
.ds-schedule .ds-schedule-tab:hover { background: #dceef5; }
.ds-schedule .ds-schedule-tab.is-active {
    background: #95be4d;
    color: #fff;
}
.ds-schedule .ds-schedule-tab.is-active[data-schedule-day="6"],
.ds-schedule .ds-schedule-tab.is-active[data-schedule-day="7"] {
    background: #d24051;
}
.ds-schedule .ds-schedule-panel { margin-bottom: 30px; }
.ds-schedule .ds-schedule-panel[hidden] { display: none !important; }
.ds-schedule .ds-schedule-day-title {
    margin: 0 0 12px;
    font-size: 20px;
    line-height: 1.4;
}
.ds-schedule .ds-schedule-empty { margin: 0 0 12px; }
.ds-schedule .ds-schedule-scroll {
    width: 100%;
    max-width: 100%;
    max-height: 75vh;
    max-height: 75dvh;
    overflow: auto;
    position: relative;
    isolation: isolate;
    border: 1px solid var(--ds-border);
    border-radius: 6px;
    -webkit-overflow-scrolling: touch;
}
.ds-schedule .ds-schedule-scroll:focus-visible,
.ds-schedule .ds-schedule-tab:focus-visible {
    outline: 2px solid #67b1c2;
    outline-offset: 2px;
}
.ds-schedule .ds-schedule-table {
    width: 100% !important;
    min-width: 710px !important;
    max-width: none !important;
    margin: 0 !important;
    border: 0 !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    table-layout: fixed !important;
    font-size: 13px;
    line-height: 1.45;
    color: #333;
    background: #fff;
}
.ds-schedule .ds-schedule-table > colgroup > col.ds-schedule-time-col {
    width: 50px !important;
}
.ds-schedule .ds-schedule-table > colgroup > col:not(.ds-schedule-time-col) {
    width: auto !important;
}
.ds-schedule .ds-schedule-table > :is(thead, tbody) > tr > :is(td, th) {
    width: auto !important;
    padding: 5px;
    border: 0 solid var(--ds-border) !important;
    border-right-width: 1px !important;
    border-bottom-width: 1px !important;
    vertical-align: middle;
    text-align: center;
    overflow-wrap: anywhere;
}
.ds-schedule .ds-schedule-table > thead > tr > th {
    position: sticky;
    top: 0;
    z-index: 3;
    padding: 12px 5px;
    font-weight: 600;
    background: #e8ebed;
}
.ds-schedule .ds-schedule-table > tbody > tr > th.ds-schedule-time,
.ds-schedule .ds-schedule-table > thead > tr > th.ds-schedule-time {
    position: sticky;
    left: 0;
    z-index: 2;
    padding: 5px 3px;
    background: #dceef5;
    text-align: right;
    font-size: 12px;
    font-weight: 400;
    white-space: nowrap;
}
.ds-schedule .ds-schedule-table > thead > tr > th.ds-schedule-time {
    z-index: 4;
    font-weight: 600;
}
.ds-schedule .ds-schedule-table > tbody > tr > td.ds-schedule-free {
    background: #fff;
}
.ds-schedule .ds-schedule-table > tbody > tr > td.ds-schedule-event-cell {
    padding: 0;
    background: var(--schedule-cell-bg, #fff);
}
.ds-schedule .ds-schedule-event {
    padding: 10px;
    background: var(--schedule-event-bg, #d6edf7);
}
.ds-schedule .ds-schedule-text-dark { color: #263238; }
.ds-schedule .ds-schedule-text-light { color: #fff; }
.ds-schedule .ds-schedule-event-text,
.ds-schedule .ds-schedule-event-text * {
    color: inherit;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
}
.ds-schedule .ds-schedule-event-text p { margin: 0 0 6px; }
.ds-schedule .ds-schedule-event-text p:last-child { margin-bottom: 0; }
.ds-schedule .ds-schedule-event-text a { text-decoration: underline; }
.ds-schedule .ds-schedule-event-text a:hover { text-decoration: none; }
.ds-schedule .ds-schedule-event-text ul,
.ds-schedule .ds-schedule-event-text ol { margin: 6px 0; padding-left: 20px; }
.ds-schedule-warnings {
    margin: 15px 0;
    padding: 15px;
    border: 1px solid #e2bf68;
    background: #fff8e6;
    color: #513e15;
}
@media (max-width: 600px) {
    .ds-schedule .ds-schedule-tab { padding: 8px 10px; font-size: 12px; }
}

/* После включения вкладок название дня уже видно в меню */
.ds-schedule[data-schedule-ready="1"] .ds-schedule-day-title {
    display: none;
}
.ds-schedule[data-schedule-ready="1"] .ds-schedule-panel {
    margin-bottom: 0;
}


/* Белая ячейка вокруг цветного блока */
.ds-schedule .ds-schedule-table > tbody > tr > td.ds-schedule-event-cell {
    position: relative;
    isolation: isolate;
    padding: 0;
    background: #fff;
}

/* Отдельные блоки, включая несколько занятий при конфликте */
.ds-schedule .ds-schedule-event {
    position: relative;
    margin: 3px;
    padding: 10px;
    border-radius: 5px;
    background: var(--schedule-event-bg, #d6edf7);
}

/*
 * Одиночное занятие: фон заполняет объединённую ячейку
 * с отступом 3 px, независимо от высоты текста.
 */
.ds-schedule .ds-schedule-event:only-child {
    position: static;
    background: transparent;
}

.ds-schedule .ds-schedule-event:only-child::before {
    content: "";
    position: absolute;
    inset: 3px;
    z-index: 0;
    border-radius: 9px;
    background: var(--schedule-event-bg, #d6edf7);
    pointer-events: none;
}

.ds-schedule .ds-schedule-event-text {
    position: relative;
    z-index: 1;
    font-family: inherit;
    font-size: 13px;
    line-height: 1.5;
}

/* Единая типографика без отмены жирности и курсива */
.ds-schedule .ds-schedule-event-text * {
    font-family: inherit !important;
    font-size: inherit !important;
    line-height: inherit !important;
}

.ds-schedule .ds-schedule-event-text strong,
.ds-schedule .ds-schedule-event-text b {
    font-weight: 700;
}

.ds-schedule .ds-schedule-event-text em,
.ds-schedule .ds-schedule-event-text i {
    font-style: italic;
}

/* Ссылки на светлом фоне */
.ds-schedule .ds-schedule-text-dark .ds-schedule-event-text a,
.ds-schedule .ds-schedule-text-dark .ds-schedule-event-text a:visited {
    color: #28556b !important;
}

/* Ссылки на тёмном фоне */
.ds-schedule .ds-schedule-text-light .ds-schedule-event-text a,
.ds-schedule .ds-schedule-text-light .ds-schedule-event-text a:visited {
    color: #fff !important;
}

/* Общий стиль ссылок */
.ds-schedule .ds-schedule-event-text a {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    transition: color 0.15s ease;
}

.ds-schedule .ds-schedule-text-dark .ds-schedule-event-text a:hover,
.ds-schedule .ds-schedule-text-dark .ds-schedule-event-text a:active {
    color: #c60b0b !important;
    text-decoration: underline;
}

.ds-schedule .ds-schedule-text-light .ds-schedule-event-text a:hover,
.ds-schedule .ds-schedule-text-light .ds-schedule-event-text a:active {
    color: #c60b0b !important;
    text-decoration: underline;
    text-decoration-thickness: 1px;
}

.ds-schedule .ds-schedule-event-text a:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 3px;
    border-radius: 2px;
}