.asm-calendar-week-timeline {
    --asm-week-event-height: 94px;
    --asm-week-event-gap: 10px;
    border: 1px solid #d0d5dd;
    background: #fff;
    overflow: hidden;
}
.asm-calendar-week-scroll-hint {
    display: none;
    margin: 0;
    padding: 9px 12px;
    border-bottom: 1px solid #e4e7ec;
    background: #f8fafc;
    color: #475467;
    font-size: 13px;
}
.asm-calendar-week-scroll {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
}
.asm-calendar-week-times,
.asm-calendar-week-row {
    display: grid;
    grid-template-columns: 112px repeat(var(--asm-week-slot-count), minmax(96px, 1fr));
    min-width: max(100%, var(--asm-week-min-width));
}
.asm-calendar-week-times {
    position: sticky;
    top: 0;
    z-index: 2;
    border-bottom: 1px solid #d0d5dd;
    background: #f8fafc;
}
.asm-calendar-week-corner,
.asm-calendar-week-time {
    min-height: 42px;
    padding: 10px 8px;
    border-right: 1px solid #e4e7ec;
    font-size: 13px;
    line-height: 1.2;
    white-space: nowrap;
}
.asm-calendar-week-corner {
    background: #eef2f6;
}
.asm-calendar-week-row {
    border-bottom: 1px solid #e4e7ec;
}
.asm-calendar-week-row:last-child {
    border-bottom: 0;
}
.asm-calendar-week-day-label {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2px;
    min-height: 58px;
    margin: 0;
    padding: 10px 12px;
    border-right: 1px solid #d0d5dd;
    background: #f8fafc;
    font-size: 15px;
    line-height: 1.15;
}
.asm-calendar-week-day-label span {
    font-weight: 400;
    color: #475467;
}
.asm-calendar-week-day-label strong {
    font-size: 18px;
}
.asm-calendar-week-lane {
    position: relative;
    display: block;
    grid-column: 2 / -1;
    min-height: 58px;
    padding: 0;
    border-right: 1px solid #e4e7ec;
    background:
        repeating-linear-gradient(135deg, rgba(16,24,40,.035) 0, rgba(16,24,40,.035) 1px, transparent 1px, transparent 7px),
        linear-gradient(90deg, #e4e7ec 1px, transparent 1px);
    background-size: auto, calc(100% / var(--asm-week-slot-count)) 100%;
}
.asm-calendar-week-lane .asm-calendar-empty {
    margin: 0;
    padding: 20px 12px;
}
.asm-calendar-week-lane-stack {
    position: relative;
    min-height: var(--asm-week-lane-height, calc(20px + var(--asm-week-event-height)));
}
.asm-calendar-week-row.has-lessons .asm-calendar-week-day-label,
.asm-calendar-week-row.has-lessons .asm-calendar-week-lane {
    min-height: var(--asm-week-lane-height, calc(20px + var(--asm-week-event-height)));
}
.asm-calendar-week-event {
    position: absolute;
    top: var(--asm-event-top, 10px);
    left: var(--asm-event-left);
    width: max(24px, calc(var(--asm-event-width) - 8px));
    display: grid;
    gap: 2px;
    min-width: 0;
    height: var(--asm-week-event-height);
    margin: 0 4px;
    padding: 8px 10px;
    border: 1px solid #d0d5dd;
    border-left: 4px solid var(--asm-lesson-color, var(--asm-booking-primary));
    background: #fff;
    color: #1d2327;
    text-align: left;
    box-shadow: 0 1px 3px rgba(16,24,40,.08);
    cursor: pointer;
}
.asm-calendar-week-event:hover {
    border-color: var(--asm-lesson-color, var(--asm-booking-primary));
    box-shadow: 0 4px 12px rgba(16,24,40,.14);
}
.asm-calendar-week-event strong {
    font-size: 14px;
    line-height: 1.2;
    overflow-wrap: anywhere;
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
.asm-calendar-week-event span {
    color: #475467;
    font-size: 12px;
    line-height: 1.2;
    overflow-wrap: anywhere;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.asm-calendar-week-event.is-disabled {
    cursor: default;
    opacity: .72;
}
@media (max-width: 900px) {
    .asm-calendar-week-scroll-hint {
        display: block;
    }
    .asm-calendar-week-times,
    .asm-calendar-week-row {
        grid-template-columns: 96px repeat(var(--asm-week-slot-count), minmax(88px, 1fr));
    }
    .asm-calendar-week-corner,
    .asm-calendar-week-time {
        min-height: 40px;
        padding: 9px 7px;
        font-size: 12px;
    }
    .asm-calendar-week-day-label {
        padding: 9px 10px;
        font-size: 13px;
    }
    .asm-calendar-week-day-label strong {
        font-size: 16px;
    }
    .asm-calendar-week-event {
        min-height: 68px;
        padding: 8px;
    }
    .asm-calendar-week-timeline {
        display: none;
    }
    .asm-calendar-week-agenda {
        display: grid;
        gap: 10px;
    }
    .asm-calendar-week-agenda-day.is-empty {
        background: #f8fafc;
    }
    .asm-calendar-week-agenda-day .asm-calendar-empty {
        margin: 0;
    }
    .asm-calendar-week-agenda-day .asm-booking-lesson {
        box-shadow: none;
    }
}
