.dashboard-card-maximize-btn i {
    font-size: 1rem;
    line-height: 1;
}

/* Карточка бронирования на весь вьюпорт (аналог панели с bi-fullscreen в админ-шаблонах).
 * Только inset:0 — высота задаёт рамкой вьюпорта (100lvh под фон body не использовать: на планшетах/UI
 * браузера это может давать лишнюю высоту и обрез). z-index поверх сайдбара в drawer (max-width ≤767 он 1040). */
.dashboard-card.dashboard-card--maximized {
    position: fixed;
    inset: 0;
    z-index: var(--viva-z-dashboard-card-fullscreen);
    /* Не width:100% — с inset:0 даёт горизонтальный вылез за вьюпорт (все карточки дашборда). */
    width: auto;
    height: auto;
    max-width: none;
    margin: 0;
    border-radius: 0;
    overflow: hidden;
    overflow-x: clip;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    padding: var(--booking-max-view-inset);
    background-color: rgba(29, 41, 53, 0.98);
    /* иначе transition: all у .dashboard-card ломает переход в fixed (зазоры/углы при развороте) */
    transition: none !important;
}

html:not([data-bs-theme="dark"]) .dashboard-card.dashboard-card--maximized {
    background-color: rgba(255, 255, 255, 0.98);
}

/*
 * Пробное бронирование: те же базовые цвета fullscreen, что у rgba(…, .98), но без альфы
 * (просвет контента под inset / расхождение тона с «Мои бронирования»).
 */
#sellerBookingCard.dashboard-card--maximized {
    background-color: rgb(29, 41, 53);
}

html:not([data-bs-theme="dark"]) #sellerBookingCard.dashboard-card--maximized {
    background-color: rgb(255, 255, 255);
}

.dashboard-card.dashboard-card--maximized .card-body {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    min-width: 0;
}

/* Скролл на .card-body — только там, где нет внутреннего scroll-контейнера */
.dashboard-card.dashboard-card--maximized:not(
    :is(
        #sellerBookingsCard,
        #sellerBookingCard,
        #providerBookingsCard,
        #providerSeatsAvailabilityCard,
        #sellerSeatsAvailabilityCard,
        #providerExcursionSettingsCard,
        #providerSelfExcursionsCard,
        #adminGeoSection
    )
) .card-body {
    overflow: auto;
}

/* Таблицы + «проба»: скролл не на .card-body; у #sellerBookingCard — внутри .seller-booking-scroll */
:is(
    #sellerBookingsCard,
    #sellerBookingCard,
    #providerBookingsCard,
    #providerSeatsAvailabilityCard,
    #sellerSeatsAvailabilityCard,
    #providerExcursionSettingsCard,
    #providerSelfExcursionsCard,
    #adminGeoSection
).dashboard-card--maximized .card-body {
    overflow: hidden;
    min-width: 0;
    min-height: 0;
    flex: 1;
    /* зазор над нижней рамкой карточки (::before), чтобы пагинация и линия не «съедались» при flex/clip */
    padding-bottom: max(0.35rem, 6px);
    padding-top: 1rem;
}

#sellerBookingCard.dashboard-card--maximized .seller-booking-scroll {
    flex: 1 1 0;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: 0;
    box-sizing: border-box;
    overflow-x: hidden;
    overflow-y: auto;
}

.seller-providers-fullscreen-host {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.seller-providers-fullscreen-host--maximized {
    position: fixed;
    inset: 0;
    z-index: var(--viva-z-dashboard-card-fullscreen);
    width: auto;
    height: auto;
    max-width: none;
    margin: 0;
    border-radius: 0;
    overflow-x: clip;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    box-sizing: border-box;
    padding: var(--booking-max-view-inset);
    background-color: rgba(29, 41, 53, 0.98);
}

html:not([data-bs-theme="dark"]) .seller-providers-fullscreen-host--maximized {
    background-color: rgba(255, 255, 255, 0.98);
}

/* Нижние уголки: в разметке они внутри .card-body (не прямой потомок .dashboard-card) */
.dashboard-card .card-body > .card-arrow-bottom-left,
.dashboard-card .card-body > .card-arrow-bottom-right {
    z-index: var(--viva-z-local-overlay);
}

/* Полноэкран: пагинация видима и не сжимается flex-колонкой .card-body (как у каталога экскурсий и др.) */
.dashboard-card.dashboard-card--maximized .pagination-wrapper {
    flex-shrink: 0;
}

:is(
    body.dashboard-booking-maximized,
    body.pes-tour-photos-sorting,
    body.pes-tour-photo-crop-open,
    body.tour-photo-lightbox-open
) {
    overflow: hidden;
}

/* Убираем полосу прокрутки/gutter на html — иначе fixed inset:0 не совпадает с видимой областью. */
html:has(body.dashboard-booking-maximized) {
    overflow: hidden;
    scrollbar-gutter: auto;
}

/* Линии ::before/::after в maximized совпадают с отступом и с углами .card-arrow */
.dashboard-card.dashboard-card--maximized::before {
    top: var(--booking-max-view-inset);
    bottom: var(--booking-max-view-inset);
    inset-inline-start: calc(var(--booking-max-view-inset) + 15px);
    inset-inline-end: calc(var(--booking-max-view-inset) + 15px);
}

.dashboard-card.dashboard-card--maximized::after {
    inset-inline-start: var(--booking-max-view-inset);
    inset-inline-end: var(--booking-max-view-inset);
    top: calc(var(--booking-max-view-inset) + 15px);
    bottom: calc(var(--booking-max-view-inset) + 15px);
}

/* Граница карточки как на сайте-примере */
.dashboard-card::before {
    content: "";
    position: absolute;
    inset-inline-start: 15px;
    inset-inline-end: 15px;
    top: 0;
    bottom: 0;
    z-index: 1;
    border-top: 1px solid var(--border-color);
    border-bottom: 1px solid var(--border-color);
    pointer-events: none;
}

.dashboard-card::after {
    content: "";
    position: absolute;
    top: 15px;
    bottom: 15px;
    inset-inline-start: 0;
    inset-inline-end: 0;
    z-index: 1;
    border-inline-start: 1px solid var(--border-color);
    border-inline-end: 1px solid var(--border-color);
    pointer-events: none;
}

/* Темная тема - белые границы и углы */
[data-bs-theme="dark"] .dashboard-card::before {
    border-top: 1px solid rgba(255, 255, 255, 0.3);
    border-bottom: 1px solid rgba(255, 255, 255, 0.3);
}

[data-bs-theme="dark"] .dashboard-card::after {
    border-inline-start: 1px solid rgba(255, 255, 255, 0.3);
    border-inline-end: 1px solid rgba(255, 255, 255, 0.3);
}

html:not([data-bs-theme="dark"]) .dashboard-card::before {
    border-top-color: var(--dashboard-frame-hairline);
    border-bottom-color: var(--dashboard-frame-hairline);
}

html:not([data-bs-theme="dark"]) .dashboard-card::after {
    border-inline-start-color: var(--dashboard-frame-hairline);
    border-inline-end-color: var(--dashboard-frame-hairline);
}
