/* ==========================================================
   A&I Luxury Hair — premium corrections
   Исправляет точечные побочные эффекты premium-polish.
   ========================================================== */

/* 1. Услуги на публичном сайте: убираем замыливание */
body:not(.admin-page) .services-grid,
body:not(.admin-page) .services-grid *,
body:not(.admin-page) .service-grid,
body:not(.admin-page) .service-grid *,
body:not(.admin-page) .service-card,
body:not(.admin-page) .service-card *,
body:not(.admin-page) .ai-service-photo-gallery,
body:not(.admin-page) .ai-service-photo-gallery *,
body:not(.admin-page) [class*="service-photo"],
body:not(.admin-page) [class*="service-photo"] *,
body:not(.admin-page) [class*="service-card"],
body:not(.admin-page) [class*="service-card"] * {
    filter: none !important;
    -webkit-filter: none !important;
    opacity: 1 !important;
}

body:not(.admin-page) .services-grid img,
body:not(.admin-page) .service-grid img,
body:not(.admin-page) .service-card img,
body:not(.admin-page) .ai-service-photo-gallery img,
body:not(.admin-page) [class*="service-photo"] img {
    filter: none !important;
    -webkit-filter: none !important;
    image-rendering: auto !important;
}

/* Если reveal-анимация не успела сработать — услуги всё равно читаемые */
body:not(.admin-page) .services-grid .ai-reveal,
body:not(.admin-page) .service-grid .ai-reveal,
body:not(.admin-page) .service-card.ai-reveal,
body:not(.admin-page) .ai-service-photo-gallery .ai-reveal {
    opacity: 1 !important;
    transform: none !important;
}

/* 2. Верхняя панель админки: убираем лишнее тёмное выделение */
.admin-page .top,
.admin-page .admin-topbar,
.admin-page .topbar,
.admin-page .admin-header {
    background: transparent !important;
    box-shadow: none !important;
    border-color: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

.admin-page .top::before,
.admin-page .admin-topbar::before,
.admin-page .topbar::before,
.admin-page .admin-header::before {
    display: none !important;
}

.admin-page .top .brand,
.admin-page .top .muted {
    background: transparent !important;
}

/* При этом сами кнопки в шапке остаются красивыми */
.admin-page .top .btn,
.admin-page .admin-topbar .btn,
.admin-page .topbar .btn,
.admin-page .admin-header .btn {
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

/* 3. Страница записи: календарные окна снова зелёные и читаемые */
.ai-booking-slot-btn {
    background:
        linear-gradient(135deg, rgba(246,240,230,.075), rgba(246,240,230,.026)),
        rgba(6, 48, 36, .84) !important;
    color: #F6F0E6 !important;
    border: 1px solid rgba(214,180,106,.22) !important;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.06),
        0 12px 28px rgba(0,0,0,.15) !important;
}

.ai-booking-slot-btn:hover {
    background:
        linear-gradient(135deg, rgba(214,180,106,.13), rgba(246,240,230,.04)),
        rgba(8, 60, 44, .90) !important;
    border-color: rgba(214,180,106,.36) !important;
}

.ai-booking-slot-btn.active,
.ai-booking-slot-btn.selected,
.ai-booking-slot-btn.is-active,
.ai-booking-slot-btn[aria-selected="true"] {
    background:
        radial-gradient(circle at 30% 15%, rgba(255,255,255,.22), transparent 30%),
        linear-gradient(135deg, #D6B46A, #F1DA89) !important;
    color: #041b13 !important;
    border-color: transparent !important;
}

.ai-booking-slot-btn:disabled,
.ai-booking-slot-btn.disabled,
.ai-booking-slot-btn.is-disabled,
.ai-booking-slot-btn[aria-disabled="true"] {
    opacity: .48 !important;
    filter: grayscale(.2) !important;
    cursor: not-allowed !important;
}

/* Текст внутри окон даты/времени */
.ai-booking-slot-btn *,
.ai-booking-slot-btn span,
.ai-booking-slot-btn small,
.ai-booking-slot-btn div {
    color: inherit !important;
    text-shadow: none !important;
}

/* 4. Выпадающие списки: возвращаем стрелочку */
select {
    appearance: none !important;
    -webkit-appearance: none !important;
    padding-right: 44px !important;
    background-image:
        linear-gradient(45deg, transparent 50%, #D6B46A 50%),
        linear-gradient(135deg, #D6B46A 50%, transparent 50%) !important;
    background-position:
        calc(100% - 20px) 52%,
        calc(100% - 14px) 52% !important;
    background-size:
        6px 6px,
        6px 6px !important;
    background-repeat: no-repeat !important;
}

/* Кастомные select-кнопки, если используются ai-premium-system */
.ai-select-button,
.ai-select .ai-select-button,
[role="combobox"],
button[aria-haspopup="listbox"] {
    position: relative !important;
    padding-right: 44px !important;
}

.ai-select-button::after,
.ai-select .ai-select-button::after,
[role="combobox"]::after,
button[aria-haspopup="listbox"]::after {
    content: "⌄";
    position: absolute;
    right: 17px;
    top: 50%;
    transform: translateY(-52%);
    color: #D6B46A;
    font-size: 17px;
    font-weight: 950;
    line-height: 1;
    pointer-events: none;
}

/* Чтобы стрелочка не дублировалась на обычных кнопках */
button:not([aria-haspopup="listbox"]).ai-premium-shine::after {
    animation: aiShine 4.8s ease-in-out infinite;
}

/* 5. В фильтре записей select снова читаемый, не похож на CTA */
.admin-page select,
.admin-page .ai-select-button,
.admin-page [role="combobox"],
.admin-page button[aria-haspopup="listbox"] {
    background-color: rgba(6, 48, 36, .82) !important;
    color: #F6F0E6 !important;
    border: 1px solid rgba(214,180,106,.24) !important;
}

/* Но выбранный пункт/активные фильтры остаются золотыми */
.admin-page .filter-active,
.admin-page .active:not(.ai-booking-slot-btn),
.admin-page button.active:not(.ai-booking-slot-btn) {
    background:
        linear-gradient(135deg, #D6B46A, #F1DA89) !important;
    color: #041b13 !important;
}

/* 6. Рабочее расписание: поле дня недели похоже на select и со стрелкой */
.admin-page .schedule select,
.admin-page [class*="schedule"] select,
.admin-page [class*="work"] select {
    background-color: rgba(6, 48, 36, .82) !important;
    color: #F6F0E6 !important;
}

/* 7. Убираем лишнее замыливание от backdrop на маленьких интерактивных элементах */
.admin-page input,
.admin-page select,
.admin-page textarea,
.admin-page button,
.admin-page .btn {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

/* ==========================================================
   FINAL EXACT FIX — booking dates/selects + promo blur
   Основано на реальных классах: .date-card, .time-chip, .ai-select-button,
   .promo-row-final, .promo-cell-final.
   ========================================================== */

/* ---------- Booking page: date and time buttons back to green ---------- */

.booking-page .date-card,
.booking-page button.date-card,
.booking-page .time-chip,
.booking-page button.time-chip {
    background:
        radial-gradient(circle at 26% 16%, rgba(255,255,255,.075), transparent 30%),
        linear-gradient(135deg, rgba(246,240,230,.055), rgba(246,240,230,.018)),
        rgba(6, 50, 37, .92) !important;
    color: #F6F0E6 !important;
    border: 1px solid rgba(214,180,106,.20) !important;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.055),
        0 10px 24px rgba(0,0,0,.13) !important;
    filter: none !important;
    -webkit-filter: none !important;
    text-shadow: none !important;
}

.booking-page .date-card *,
.booking-page .time-chip * {
    color: inherit !important;
    filter: none !important;
    -webkit-filter: none !important;
    text-shadow: none !important;
}

.booking-page .date-card:hover,
.booking-page button.date-card:hover,
.booking-page .time-chip:hover,
.booking-page button.time-chip:hover {
    background:
        radial-gradient(circle at 26% 16%, rgba(214,180,106,.12), transparent 32%),
        linear-gradient(135deg, rgba(246,240,230,.075), rgba(246,240,230,.028)),
        rgba(8, 62, 45, .96) !important;
    border-color: rgba(214,180,106,.34) !important;
    transform: translateY(-1px);
}

.booking-page .date-card.active,
.booking-page button.date-card.active,
.booking-page .time-chip.active,
.booking-page button.time-chip.active {
    background:
        radial-gradient(circle at 26% 16%, rgba(214,180,106,.18), transparent 33%),
        linear-gradient(135deg, rgba(15, 90, 65, .98), rgba(7, 58, 42, .98)) !important;
    color: #F6F0E6 !important;
    border: 1px solid rgba(241,218,137,.58) !important;
    box-shadow:
        0 0 0 3px rgba(214,180,106,.12),
        inset 0 1px 0 rgba(255,255,255,.07),
        0 14px 30px rgba(0,0,0,.18) !important;
}

.booking-page .date-card.active .date-day,
.booking-page .date-card.active .date-weekday,
.booking-page .date-card.active .date-month,
.booking-page .time-chip.active {
    color: #F6F0E6 !important;
}

/* ---------- Booking page: custom dropdown back to green ---------- */

.booking-page .ai-select-button,
.booking-page .ai-select .ai-select-button,
.booking-page button.ai-select-button,
.booking-page button[aria-haspopup="listbox"].ai-select-button {
    background:
        radial-gradient(circle at 26% 16%, rgba(255,255,255,.07), transparent 30%),
        linear-gradient(135deg, rgba(246,240,230,.055), rgba(246,240,230,.018)),
        rgba(6, 50, 37, .94) !important;
    color: #F6F0E6 !important;
    border: 1px solid rgba(214,180,106,.24) !important;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.055),
        0 10px 24px rgba(0,0,0,.13) !important;
}

.booking-page .ai-select-button:hover,
.booking-page .ai-select.open .ai-select-button,
.booking-page .ai-select-button:focus-visible {
    background:
        linear-gradient(135deg, rgba(246,240,230,.075), rgba(246,240,230,.028)),
        rgba(8, 62, 45, .98) !important;
    color: #F6F0E6 !important;
    border-color: rgba(214,180,106,.38) !important;
    box-shadow:
        0 0 0 3px rgba(214,180,106,.10),
        inset 0 1px 0 rgba(255,255,255,.06),
        0 12px 28px rgba(0,0,0,.16) !important;
}

.booking-page .ai-select-value,
.booking-page .ai-select-button .ai-select-value {
    color: #F6F0E6 !important;
}

.booking-page .ai-select-arrow,
.booking-page .ai-select-button::after {
    color: #D6B46A !important;
}

.booking-page .ai-select-menu {
    background:
        linear-gradient(135deg, rgba(246,240,230,.055), rgba(246,240,230,.018)),
        rgba(5, 42, 31, .98) !important;
    border: 1px solid rgba(214,180,106,.22) !important;
    box-shadow: 0 22px 48px rgba(0,0,0,.30) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

.booking-page .ai-select-option {
    color: rgba(246,240,230,.88) !important;
    background: transparent !important;
}

.booking-page .ai-select-option:hover,
.booking-page .ai-select-option.focused {
    background: rgba(214,180,106,.10) !important;
    color: #F6F0E6 !important;
}

.booking-page .ai-select-option.selected {
    background:
        linear-gradient(135deg, rgba(214,180,106,.16), rgba(246,240,230,.045)) !important;
    color: #F6F0E6 !important;
    border-color: rgba(214,180,106,.24) !important;
}

/* ---------- Native selects everywhere: green, not gold CTA ---------- */

select:not(.ai-native-select-hidden),
.admin-page select:not(.ai-native-select-hidden),
.booking-page select:not(.ai-native-select-hidden) {
    background-color: rgba(6, 50, 37, .94) !important;
    color: #F6F0E6 !important;
    border-color: rgba(214,180,106,.24) !important;
}

/* ---------- Promo page: remove blur/softness from list ---------- */

.promo-page #promos,
.promo-page #promos *,
.promo-page .promo-list-final,
.promo-page .promo-list-final *,
.promo-page .promo-row-final,
.promo-page .promo-row-final *,
.promo-page .promo-cell-final,
.promo-page .promo-actions-final,
.promo-page .promo-actions-final * {
    filter: none !important;
    -webkit-filter: none !important;
    text-shadow: none !important;
}

.promo-page .promo-list-final,
.promo-page .promo-row-final,
.promo-page .promo-cell-final,
.promo-page .promo-actions-final {
    opacity: 1 !important;
    transform: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

.promo-page .promo-row-final {
    background:
        linear-gradient(135deg, rgba(246,240,230,.050), rgba(246,240,230,.018)),
        rgba(8, 50, 38, .72) !important;
    box-shadow: none !important;
}

.promo-page .promo-row-final:hover {
    transform: translateY(-1px) !important;
    box-shadow: 0 14px 30px rgba(0,0,0,.14) !important;
}

.promo-page .promo-cell-final,
.promo-page .promo-cell-final *,
.promo-page .promo-head-final,
.promo-page .promo-head-final * {
    filter: none !important;
    -webkit-filter: none !important;
    opacity: 1 !important;
    text-rendering: geometricPrecision;
    -webkit-font-smoothing: antialiased;
}

.promo-page .promo-actions-final button {
    filter: none !important;
    -webkit-filter: none !important;
    text-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

/* На странице промокодов не применяем reveal-эффект к списку */
.promo-page #promos .ai-reveal,
.promo-page .promo-list-final.ai-reveal,
.promo-page .promo-row-final.ai-reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
}


/* ==========================================================
   ABSOLUTE FINAL BOOKING GREEN CONTROLS FIX
   Перебивает глобальные золотые button-правила.
   ========================================================== */

body.booking-page main.page section.booking-card form#booking-form button.date-card,
body.booking-page main.page section.booking-card form#booking-form .date-grid button.date-card,
body.booking-page main.page section.booking-card form#booking-form button.date-card.ai-booking-slot-btn,
body.booking-page main.page section.booking-card form#booking-form .date-grid button.date-card.ai-booking-slot-btn,
body.booking-page main.page section.booking-card form#booking-form button.time-chip,
body.booking-page main.page section.booking-card form#booking-form .time-grid button.time-chip,
body.booking-page main.page section.booking-card form#booking-form button.time-chip.ai-booking-slot-btn {
    background:
        radial-gradient(circle at 30% 18%, rgba(255,255,255,.070), transparent 32%),
        linear-gradient(135deg, rgba(246,240,230,.060), rgba(246,240,230,.020)),
        rgba(6, 50, 37, .96) !important;
    color: #F6F0E6 !important;
    border: 1px solid rgba(214,180,106,.22) !important;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.055),
        0 10px 24px rgba(0,0,0,.14) !important;
    filter: none !important;
    -webkit-filter: none !important;
    text-shadow: none !important;
}

body.booking-page main.page section.booking-card form#booking-form button.date-card *,
body.booking-page main.page section.booking-card form#booking-form button.time-chip * {
    color: #F6F0E6 !important;
    filter: none !important;
    -webkit-filter: none !important;
    text-shadow: none !important;
}

body.booking-page main.page section.booking-card form#booking-form button.date-card:hover,
body.booking-page main.page section.booking-card form#booking-form button.time-chip:hover {
    background:
        radial-gradient(circle at 30% 18%, rgba(214,180,106,.115), transparent 34%),
        linear-gradient(135deg, rgba(246,240,230,.078), rgba(246,240,230,.026)),
        rgba(8, 62, 45, .98) !important;
    color: #F6F0E6 !important;
    border-color: rgba(214,180,106,.36) !important;
    transform: translateY(-1px);
}

body.booking-page main.page section.booking-card form#booking-form button.date-card.active,
body.booking-page main.page section.booking-card form#booking-form button.time-chip.active {
    background:
        radial-gradient(circle at 30% 18%, rgba(214,180,106,.150), transparent 34%),
        linear-gradient(135deg, rgba(13, 82, 60, .98), rgba(7, 58, 42, .98)) !important;
    color: #F6F0E6 !important;
    border-color: rgba(241,218,137,.58) !important;
    box-shadow:
        0 0 0 3px rgba(214,180,106,.12),
        inset 0 1px 0 rgba(255,255,255,.070),
        0 14px 30px rgba(0,0,0,.18) !important;
}

/* Dropdown услуги — такой же зелёный, как обычные поля, а не золотая CTA-кнопка */
body.booking-page main.page section.booking-card form#booking-form .ai-select button.ai-select-button,
body.booking-page main.page section.booking-card form#booking-form button.ai-select-button,
body.booking-page main.page section.booking-card form#booking-form button.ai-select-button.ai-custom-select-arrow {
    background:
        radial-gradient(circle at 30% 18%, rgba(255,255,255,.065), transparent 32%),
        linear-gradient(135deg, rgba(246,240,230,.058), rgba(246,240,230,.020)),
        rgba(6, 50, 37, .96) !important;
    color: #F6F0E6 !important;
    border: 1px solid rgba(214,180,106,.24) !important;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.055),
        0 10px 24px rgba(0,0,0,.14) !important;
    filter: none !important;
    -webkit-filter: none !important;
    text-shadow: none !important;
}

body.booking-page main.page section.booking-card form#booking-form .ai-select button.ai-select-button *,
body.booking-page main.page section.booking-card form#booking-form button.ai-select-button * {
    color: #F6F0E6 !important;
    filter: none !important;
    -webkit-filter: none !important;
    text-shadow: none !important;
}

body.booking-page main.page section.booking-card form#booking-form .ai-select.open button.ai-select-button,
body.booking-page main.page section.booking-card form#booking-form button.ai-select-button:hover,
body.booking-page main.page section.booking-card form#booking-form button.ai-select-button:focus-visible {
    background:
        linear-gradient(135deg, rgba(246,240,230,.078), rgba(246,240,230,.026)),
        rgba(8, 62, 45, .98) !important;
    color: #F6F0E6 !important;
    border-color: rgba(214,180,106,.38) !important;
    box-shadow:
        0 0 0 3px rgba(214,180,106,.10),
        inset 0 1px 0 rgba(255,255,255,.060),
        0 12px 28px rgba(0,0,0,.16) !important;
}

body.booking-page main.page section.booking-card form#booking-form .ai-select-value {
    color: #F6F0E6 !important;
}

/* Убираем золотой shine с этих элементов */
body.booking-page main.page section.booking-card form#booking-form button.date-card::after,
body.booking-page main.page section.booking-card form#booking-form button.time-chip::after,
body.booking-page main.page section.booking-card form#booking-form button.ai-select-button::after {
    animation: none !important;
}

/* Меню dropdown тоже зелёное */
body.booking-page .ai-select-menu {
    background:
        linear-gradient(135deg, rgba(246,240,230,.055), rgba(246,240,230,.018)),
        rgba(5, 42, 31, .98) !important;
    border: 1px solid rgba(214,180,106,.22) !important;
}

body.booking-page .ai-select-option.selected {
    background:
        linear-gradient(135deg, rgba(214,180,106,.13), rgba(246,240,230,.040)),
        rgba(8, 62, 45, .92) !important;
    color: #F6F0E6 !important;
}


/* ==========================================================
   BOOKING SELECTED DAY/TIME — premium gold accent animation
   Обычные кнопки зелёные, выбранная получает золотое свечение.
   ========================================================== */

@keyframes aiBookingSelectedPulse {
    0% {
        box-shadow:
            0 0 0 0 rgba(214,180,106,.34),
            inset 0 1px 0 rgba(255,255,255,.08),
            0 12px 26px rgba(0,0,0,.16);
        transform: scale(1);
    }
    48% {
        box-shadow:
            0 0 0 8px rgba(214,180,106,.13),
            inset 0 1px 0 rgba(255,255,255,.10),
            0 18px 38px rgba(214,180,106,.16);
        transform: scale(1.025);
    }
    100% {
        box-shadow:
            0 0 0 3px rgba(214,180,106,.16),
            inset 0 1px 0 rgba(255,255,255,.08),
            0 14px 30px rgba(0,0,0,.18);
        transform: scale(1);
    }
}

@keyframes aiBookingGoldSweep {
    0% {
        transform: translateX(-120%) rotate(18deg);
        opacity: 0;
    }
    30% {
        opacity: .55;
    }
    100% {
        transform: translateX(220%) rotate(18deg);
        opacity: 0;
    }
}

body.booking-page main.page section.booking-card form#booking-form button.date-card.active,
body.booking-page main.page section.booking-card form#booking-form button.time-chip.active,
body.booking-page main.page section.booking-card form#booking-form button.date-card.is-selected,
body.booking-page main.page section.booking-card form#booking-form button.time-chip.is-selected {
    position: relative !important;
    overflow: hidden !important;

    background:
        radial-gradient(circle at 30% 18%, rgba(241,218,137,.22), transparent 34%),
        linear-gradient(135deg, rgba(14, 86, 62, .98), rgba(6, 55, 40, .98)) !important;

    color: #F6F0E6 !important;
    border: 1px solid rgba(241,218,137,.78) !important;

    box-shadow:
        0 0 0 3px rgba(214,180,106,.16),
        inset 0 1px 0 rgba(255,255,255,.08),
        0 14px 30px rgba(0,0,0,.18) !important;

    animation: aiBookingSelectedPulse .58s ease both !important;
}

body.booking-page main.page section.booking-card form#booking-form button.date-card.active::before,
body.booking-page main.page section.booking-card form#booking-form button.time-chip.active::before,
body.booking-page main.page section.booking-card form#booking-form button.date-card.is-selected::before,
body.booking-page main.page section.booking-card form#booking-form button.time-chip.is-selected::before {
    content: "";
    position: absolute;
    top: -45%;
    bottom: -45%;
    left: -40%;
    width: 34%;
    pointer-events: none;
    background: linear-gradient(90deg, transparent, rgba(241,218,137,.40), transparent);
    animation: aiBookingGoldSweep .78s ease both;
}

body.booking-page main.page section.booking-card form#booking-form button.date-card.active .date-weekday,
body.booking-page main.page section.booking-card form#booking-form button.date-card.active .date-day,
body.booking-page main.page section.booking-card form#booking-form button.date-card.active .date-month,
body.booking-page main.page section.booking-card form#booking-form button.date-card.is-selected .date-weekday,
body.booking-page main.page section.booking-card form#booking-form button.date-card.is-selected .date-day,
body.booking-page main.page section.booking-card form#booking-form button.date-card.is-selected .date-month,
body.booking-page main.page section.booking-card form#booking-form button.time-chip.active,
body.booking-page main.page section.booking-card form#booking-form button.time-chip.is-selected {
    color: #F6F0E6 !important;
}

body.booking-page main.page section.booking-card form#booking-form button.date-card.active .date-day,
body.booking-page main.page section.booking-card form#booking-form button.date-card.is-selected .date-day {
    color: #F1DA89 !important;
    text-shadow: 0 0 18px rgba(241,218,137,.22) !important;
}


/* ==========================================================
   DATE CARD SELECTED = TIME CHIP SELECTED
   Выбранный день теперь анимируется так же, как выбранное время.
   ========================================================== */

@keyframes aiDateCardSelectRing {
    0% {
        box-shadow:
            0 0 0 0 rgba(214,180,106,.00),
            inset 0 1px 0 rgba(255,255,255,.055),
            0 10px 24px rgba(0,0,0,.14);
        transform: scale(1);
    }

    45% {
        box-shadow:
            0 0 0 5px rgba(214,180,106,.20),
            inset 0 1px 0 rgba(255,255,255,.075),
            0 16px 34px rgba(0,0,0,.18);
        transform: scale(1.025);
    }

    100% {
        box-shadow:
            0 0 0 2px rgba(214,180,106,.24),
            inset 0 1px 0 rgba(255,255,255,.070),
            0 12px 28px rgba(0,0,0,.16);
        transform: scale(1);
    }
}

/* Обычный выбранный день — как выбранное время: зелёный + золотой контур */
body.booking-page main.page section.booking-card form#booking-form .date-grid button.date-card.active,
body.booking-page main.page section.booking-card form#booking-form .date-grid button.date-card.is-selected {
    background:
        radial-gradient(circle at 30% 18%, rgba(214,180,106,.13), transparent 34%),
        linear-gradient(135deg, rgba(16, 86, 63, .98), rgba(7, 58, 42, .98)) !important;

    color: #F6F0E6 !important;
    border: 1px solid rgba(241,218,137,.74) !important;

    box-shadow:
        0 0 0 2px rgba(214,180,106,.24),
        inset 0 1px 0 rgba(255,255,255,.070),
        0 12px 28px rgba(0,0,0,.16) !important;

    animation: aiDateCardSelectRing .46s ease both !important;
}

/* Текст внутри выбранного дня остаётся читаемым, без полного золота */
body.booking-page main.page section.booking-card form#booking-form .date-grid button.date-card.active .date-weekday,
body.booking-page main.page section.booking-card form#booking-form .date-grid button.date-card.active .date-day,
body.booking-page main.page section.booking-card form#booking-form .date-grid button.date-card.active .date-month,
body.booking-page main.page section.booking-card form#booking-form .date-grid button.date-card.is-selected .date-weekday,
body.booking-page main.page section.booking-card form#booking-form .date-grid button.date-card.is-selected .date-day,
body.booking-page main.page section.booking-card form#booking-form .date-grid button.date-card.is-selected .date-month {
    color: #F6F0E6 !important;
    text-shadow: none !important;
}

/* Небольшой золотой акцент только на числе */
body.booking-page main.page section.booking-card form#booking-form .date-grid button.date-card.active .date-day,
body.booking-page main.page section.booking-card form#booking-form .date-grid button.date-card.is-selected .date-day {
    color: #F1DA89 !important;
    text-shadow: 0 0 14px rgba(241,218,137,.20) !important;
}

/* Hover выбранного дня не превращает его в золотую кнопку */
body.booking-page main.page section.booking-card form#booking-form .date-grid button.date-card.active:hover,
body.booking-page main.page section.booking-card form#booking-form .date-grid button.date-card.is-selected:hover {
    background:
        radial-gradient(circle at 30% 18%, rgba(214,180,106,.16), transparent 34%),
        linear-gradient(135deg, rgba(18, 94, 68, .98), rgba(8, 64, 46, .98)) !important;

    border-color: rgba(241,218,137,.82) !important;
    color: #F6F0E6 !important;
    transform: translateY(-1px);
}

/* Отключаем старый sweep-эффект на дате, чтобы она вела себя как время */
body.booking-page main.page section.booking-card form#booking-form .date-grid button.date-card.active::before,
body.booking-page main.page section.booking-card form#booking-form .date-grid button.date-card.is-selected::before {
    display: none !important;
    animation: none !important;
}


/* ==========================================================
   BOOKING TIME SELECTED + DROPDOWN ARROW FINAL FIX
   1) Выбранное время получает золотистый текст, как выбранный день.
   2) Убираем лишнюю CSS-стрелку, оставляем родную SVG-стрелку .ai-select-arrow.
   ========================================================== */

/* Выбранное время: зелёная кнопка + золотистый текст */
body.booking-page main.page section.booking-card form#booking-form .time-grid button.time-chip.active,
body.booking-page main.page section.booking-card form#booking-form .time-grid button.time-chip.is-selected {
    background:
        radial-gradient(circle at 30% 18%, rgba(214,180,106,.13), transparent 34%),
        linear-gradient(135deg, rgba(16, 86, 63, .98), rgba(7, 58, 42, .98)) !important;

    color: #F1DA89 !important;
    border: 1px solid rgba(241,218,137,.74) !important;

    box-shadow:
        0 0 0 2px rgba(214,180,106,.24),
        inset 0 1px 0 rgba(255,255,255,.070),
        0 12px 28px rgba(0,0,0,.16) !important;

    text-shadow: 0 0 14px rgba(241,218,137,.20) !important;
}

/* Если внутри времени есть span/div — тоже золотой */
body.booking-page main.page section.booking-card form#booking-form .time-grid button.time-chip.active *,
body.booking-page main.page section.booking-card form#booking-form .time-grid button.time-chip.is-selected * {
    color: #F1DA89 !important;
    text-shadow: 0 0 14px rgba(241,218,137,.20) !important;
}

/* Hover выбранного времени не превращает кнопку в золото */
body.booking-page main.page section.booking-card form#booking-form .time-grid button.time-chip.active:hover,
body.booking-page main.page section.booking-card form#booking-form .time-grid button.time-chip.is-selected:hover {
    background:
        radial-gradient(circle at 30% 18%, rgba(214,180,106,.16), transparent 34%),
        linear-gradient(135deg, rgba(18, 94, 68, .98), rgba(8, 64, 46, .98)) !important;

    color: #F1DA89 !important;
    border-color: rgba(241,218,137,.82) !important;
}

/* Убираем лишнюю вторую стрелку, которую добавлял correction CSS через ::after */
body.booking-page main.page section.booking-card form#booking-form button.ai-select-button::after,
body.booking-page .ai-select-button::after,
body.booking-page .ai-select .ai-select-button::after,
body.booking-page button[aria-haspopup="listbox"].ai-select-button::after {
    content: none !important;
    display: none !important;
    animation: none !important;
}

/* Оставляем родную SVG-стрелку красивой */
body.booking-page .ai-select-arrow {
    display: inline-flex !important;
    color: #D6B46A !important;
    opacity: 1 !important;
}

body.booking-page .ai-select.open .ai-select-arrow {
    transform: rotate(180deg);
}


/* ==========================================================
   BOOKING PAGE HEADER FIX
   Убирает лишнюю тёмную полосу и нормализует логотип.
   ========================================================== */

body.booking-page .top {
    width: min(1180px, calc(100% - 40px)) !important;
    margin: 0 auto 24px !important;
    padding: 20px 0 8px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 18px !important;

    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

body.booking-page .top::before,
body.booking-page .top::after {
    display: none !important;
    content: none !important;
}

body.booking-page .top .brand,
body.booking-page .brand {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;

    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;

    color: #D6B46A !important;
    font-size: clamp(28px, 3.1vw, 42px) !important;
    font-weight: 950 !important;
    line-height: 1 !important;
    letter-spacing: -0.035em !important;
    word-spacing: 0 !important;
    white-space: nowrap !important;
    text-shadow: 0 10px 28px rgba(214,180,106,.10) !important;
}

body.booking-page .top-actions {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 12px !important;
    flex: 0 0 auto !important;
}

body.booking-page .top-actions .btn,
body.booking-page .top .btn {
    min-height: 44px !important;
    padding: 12px 18px !important;
    border-radius: 999px !important;

    background:
        linear-gradient(135deg, rgba(246,240,230,.105), rgba(246,240,230,.045)),
        rgba(6, 50, 37, .88) !important;

    color: #F6F0E6 !important;
    border: 1px solid rgba(214,180,106,.24) !important;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.06),
        0 12px 28px rgba(0,0,0,.14) !important;
}

body.booking-page .top-actions .btn:hover,
body.booking-page .top .btn:hover {
    background:
        linear-gradient(135deg, rgba(246,240,230,.13), rgba(246,240,230,.055)),
        rgba(8, 62, 45, .94) !important;
    border-color: rgba(214,180,106,.34) !important;
}

/* Телефон: шапка не ломается и не занимает слишком много места */
@media (max-width: 760px) {
    body.booking-page .top {
        width: calc(100% - 28px) !important;
        margin-bottom: 18px !important;
        padding-top: 16px !important;
        align-items: flex-start !important;
    }

    body.booking-page .top .brand,
    body.booking-page .brand {
        font-size: clamp(26px, 8vw, 34px) !important;
        white-space: normal !important;
        max-width: 62vw !important;
    }

    body.booking-page .top-actions .btn,
    body.booking-page .top .btn {
        min-height: 40px !important;
        padding: 10px 14px !important;
        font-size: 14px !important;
    }
}


/* ==========================================================
   ADMIN APPOINTMENTS HOVER FLICKER FIX
   Убирает быстрое моргание карточек/строк записей при наведении.
   Причина обычно в transform/filter/animation на hover.
   ========================================================== */

body.admin-page #appointments-list *,
body.admin-page #appointments-root *,
body.admin-page #appointmentsTable *,
body.admin-page .appointments-list *,
body.admin-page .appointments-table * {
    backface-visibility: hidden !important;
    -webkit-backface-visibility: hidden !important;
}

/* Стабилизируем сами карточки/строки записей */
body.admin-page #appointments-list .appointment-card,
body.admin-page #appointments-list .appointment-item,
body.admin-page #appointments-list .appointment-row,
body.admin-page #appointments-root .appointment-card,
body.admin-page #appointments-root .appointment-item,
body.admin-page #appointments-root .appointment-row,
body.admin-page #appointmentsTable tbody tr,
body.admin-page .appointments-table tbody tr,
body.admin-page [data-appointment-id] {
    animation: none !important;
    transform: none !important;
    filter: none !important;
    transition:
        background-color .18s ease,
        border-color .18s ease,
        box-shadow .18s ease,
        color .18s ease !important;
}

/* Hover без движения элемента — только мягкое визуальное выделение */
body.admin-page #appointments-list .appointment-card:hover,
body.admin-page #appointments-list .appointment-item:hover,
body.admin-page #appointments-list .appointment-row:hover,
body.admin-page #appointments-root .appointment-card:hover,
body.admin-page #appointments-root .appointment-item:hover,
body.admin-page #appointments-root .appointment-row:hover,
body.admin-page #appointmentsTable tbody tr:hover,
body.admin-page .appointments-table tbody tr:hover,
body.admin-page [data-appointment-id]:hover {
    animation: none !important;
    transform: none !important;
    filter: none !important;

    background:
        linear-gradient(135deg, rgba(246,240,230,.095), rgba(246,240,230,.035)),
        rgba(6, 50, 37, .72) !important;

    border-color: rgba(214,180,106,.34) !important;

    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.06),
        0 12px 28px rgba(0,0,0,.16),
        0 0 0 1px rgba(214,180,106,.10) !important;
}

/* Отключаем возможные мерцающие псевдо-слои именно на записях */
body.admin-page #appointments-list .appointment-card:hover::before,
body.admin-page #appointments-list .appointment-card:hover::after,
body.admin-page #appointments-root .appointment-card:hover::before,
body.admin-page #appointments-root .appointment-card:hover::after,
body.admin-page [data-appointment-id]:hover::before,
body.admin-page [data-appointment-id]:hover::after {
    animation: none !important;
    transform: none !important;
    opacity: .18 !important;
    pointer-events: none !important;
}

/* Кнопки внутри записи не должны провоцировать пересборку hover карточки */
body.admin-page #appointments-list button,
body.admin-page #appointments-root button,
body.admin-page #appointmentsTable button,
body.admin-page .appointments-table button {
    transform: none !important;
}

body.admin-page #appointments-list button:hover,
body.admin-page #appointments-root button:hover,
body.admin-page #appointmentsTable button:hover,
body.admin-page .appointments-table button:hover {
    transform: none !important;
}


/* ==========================================================
   ADMIN APPOINTMENT TABLE HARD ANTI-FLICKER FIX
   Убирает моргание строк записей при hover.
   Причина: transform/filter transition на TR, IMG и BUTTON внутри таблицы.
   ========================================================== */

/* Строки таблиц в главной админке не должны двигаться при наведении */
body.admin-page table tbody tr,
body.admin-page table tbody tr:hover,
body.admin-page table tbody tr.cancelled-row,
body.admin-page table tbody tr.cancelled-row:hover {
    transform: none !important;
    translate: none !important;
    scale: none !important;
    rotate: none !important;
    filter: none !important;
    animation: none !important;
    will-change: auto !important;

    transition:
        background-color .16s ease,
        background .16s ease,
        box-shadow .16s ease,
        border-color .16s ease,
        color .16s ease !important;
}

/* Hover только визуальный, без смещения строки */
body.admin-page table tbody tr:hover {
    background:
        linear-gradient(135deg, rgba(246,240,230,.075), rgba(246,240,230,.025)),
        rgba(6, 50, 37, .70) !important;

    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.045),
        0 0 0 1px rgba(214,180,106,.11) !important;
}

/* Ячейки и содержимое строки тоже не должны двигаться */
body.admin-page table tbody tr td,
body.admin-page table tbody tr td *,
body.admin-page table tbody tr:hover td,
body.admin-page table tbody tr:hover td * {
    animation: none !important;
    transform: none !important;
    translate: none !important;
    scale: none !important;
    rotate: none !important;
    will-change: auto !important;
}

/* Фото в строках записей не увеличиваем и не фильтруем на hover */
body.admin-page table tbody tr img,
body.admin-page table tbody tr img:hover,
body.admin-page table tbody tr:hover img {
    transform: none !important;
    filter: none !important;
    animation: none !important;
    transition:
        opacity .16s ease,
        box-shadow .16s ease,
        border-color .16s ease !important;
}

/* Кнопки внутри строк записей не двигают курсорную область */
body.admin-page table tbody tr button,
body.admin-page table tbody tr button:hover,
body.admin-page table tbody tr .btn,
body.admin-page table tbody tr .btn:hover {
    transform: none !important;
    translate: none !important;
    scale: none !important;
    rotate: none !important;
    animation: none !important;
    filter: none !important;

    transition:
        background-color .16s ease,
        background .16s ease,
        box-shadow .16s ease,
        border-color .16s ease,
        color .16s ease !important;
}

/* Убираем shine/блик у кнопок внутри таблицы записей, он тоже может давать мерцание */
body.admin-page table tbody tr .ai-premium-shine::before,
body.admin-page table tbody tr .ai-premium-shine::after,
body.admin-page table tbody tr button::before,
body.admin-page table tbody tr button::after {
    animation: none !important;
    transform: none !important;
    transition: none !important;
    pointer-events: none !important;
}

/* Reveal-анимация не должна повторно отрабатывать на блоке с записями */
body.admin-page .ai-reveal.ai-visible,
body.admin-page .ai-reveal.ai-reveal-visible {
    transform: none !important;
    filter: none !important;
}


/* ==========================================================
   ADMIN APPOINTMENTS COLLAPSE BUTTON
   ========================================================== */

body.admin-page .ai-appt-collapse-btn {
    white-space: nowrap !important;
    min-width: 150px !important;
}

body.admin-page .ai-appointments-table-collapsed {
    display: none !important;
}

body.admin-page .ai-appointments-collapsed table,
body.admin-page .ai-appointments-collapsed .ai-admin-table-scroll {
    display: none !important;
}


/* ==========================================================
   CUSTOM SELECT DUPLICATE ARROW FIX
   Оставляем одну стрелочку у кастомных выпадающих списков.
   Убираем дубли от background-image / псевдоэлементов / native select.
   ========================================================== */

.ai-select-button,
.ai-select-button.ai-custom-select-arrow,
button.ai-select-button,
[role="combobox"].ai-select-button {
    background-image: none !important;
}

.ai-select-button::before,
.ai-select-button::after,
.ai-custom-select-arrow::before,
.ai-custom-select-arrow::after,
.ai-native-select-arrow::before,
.ai-native-select-arrow::after {
    content: none !important;
    display: none !important;
    opacity: 0 !important;
}

/* Если внутри кнопки есть две SVG/иконки стрелки — показываем только последнюю */
.ai-select-button svg:not(:last-child),
.ai-select-button .ai-select-arrow:not(:last-child),
.ai-select-button .select-arrow:not(:last-child),
.ai-select-button .dropdown-arrow:not(:last-child),
.ai-select-button [data-select-arrow]:not(:last-child) {
    display: none !important;
}

/* Нативный select, который используется как скрытый источник данных, не должен показывать свою стрелку */
select.ai-native-select-hidden,
.ai-native-select-hidden {
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    background-image: none !important;
}

/* Одна аккуратная стрелка для кастомной кнопки */
.ai-select-button {
    position: relative !important;
    padding-right: 46px !important;
}

.ai-select-button > .ai-single-select-arrow {
    position: absolute !important;
    right: 18px !important;
    top: 50% !important;
    width: 9px !important;
    height: 9px !important;
    border-right: 2px solid currentColor !important;
    border-bottom: 2px solid currentColor !important;
    transform: translateY(-65%) rotate(45deg) !important;
    opacity: .85 !important;
    pointer-events: none !important;
}


/* ==========================================================
   FINAL SAFE APPOINTMENTS COLLAPSE
   ========================================================== */

body.admin-page .ai-appt-collapse-btn {
    white-space: nowrap !important;
    min-width: 150px !important;
}

body.admin-page .ai-appointments-table-collapsed {
    display: none !important;
}


/* ==========================================================
   FINAL SINGLE SELECT ARROW FIX
   ========================================================== */

/* Убираем фоновые/встроенные стрелки */
.ai-select-button,
.ai-select-button.ai-custom-select-arrow,
button.ai-select-button,
[role="combobox"].ai-select-button {
    background-image: none !important;
    position: relative !important;
    padding-right: 46px !important;
}

/* Скрываем любые добавленные ранее span/svg-стрелки */
.ai-select-button svg,
.ai-select-button .ai-single-select-arrow,
.ai-select-button .ai-select-arrow,
.ai-select-button .select-arrow,
.ai-select-button .dropdown-arrow,
.ai-select-button [data-select-arrow] {
    display: none !important;
}

/* Рисуем ровно одну стрелку через ::after */
.ai-select-button::before {
    content: none !important;
    display: none !important;
}

.ai-select-button::after,
.ai-custom-select-arrow::after {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    right: 20px !important;
    top: 50% !important;
    width: 8px !important;
    height: 8px !important;
    border-right: 2px solid currentColor !important;
    border-bottom: 2px solid currentColor !important;
    transform: translateY(-65%) rotate(45deg) !important;
    opacity: .85 !important;
    pointer-events: none !important;
    background: transparent !important;
}

/* Нативный скрытый select не показывает свою стрелку */
select.ai-native-select-hidden,
.ai-native-select-hidden {
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    background-image: none !important;
}


/* ==========================================================
   ADMIN SPLIT PAGES: SERVICES / PRICES
   Главная админки становится короче, услуги и прайс вынесены отдельно.
   ========================================================== */

/* На главной /admin прячем большие блоки услуг и прайса */
body.dashboard-page:not(.admin-services-page):not(.admin-prices-page) .ai-admin-block-services,
body.dashboard-page:not(.admin-services-page):not(.admin-prices-page) .ai-admin-block-prices {
    display: none !important;
}

/* На странице услуг показываем только услуги */
body.admin-services-page main > h1::after {
    content: " — услуги";
}

body.admin-services-page .grid > .card {
    display: none !important;
}

body.admin-services-page .grid > .ai-admin-block-services {
    display: block !important;
    width: 100% !important;
    grid-column: 1 / -1 !important;
}

/* На странице прайса показываем только прайс */
body.admin-prices-page main > h1::after {
    content: " — прайс-лист";
}

body.admin-prices-page .grid > .card {
    display: none !important;
}

body.admin-prices-page .grid > .ai-admin-block-prices {
    display: block !important;
    width: 100% !important;
    grid-column: 1 / -1 !important;
}

/* Активные кнопки в шапке */
body.dashboard-page:not(.admin-services-page):not(.admin-prices-page) a[href="/admin"],
body.admin-services-page a[href="/admin/services"],
body.admin-prices-page a[href="/admin/prices"] {
    background: linear-gradient(135deg, #F3DF86, #D6B46A) !important;
    color: #041B13 !important;
    border-color: rgba(246,240,230,.36) !important;
}

/* На отдельных страницах делаем форму шире и аккуратнее */
body.admin-services-page .ai-admin-block-services,
body.admin-prices-page .ai-admin-block-prices {
    max-width: 1180px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}


/* ==========================================================
   UNIFIED ADMIN HEADER
   Единая премиальная шапка для всех страниц админки.
   ========================================================== */

body.admin-page .ai-admin-unified-header {
    width: 100% !important;
    min-height: 78px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 24px !important;

    padding: 18px 22px !important;
    margin: 0 0 22px 0 !important;

    border-bottom: 1px solid rgba(214,180,106,.18) !important;
    background:
        radial-gradient(circle at 16% 0%, rgba(214,180,106,.08), transparent 34%),
        linear-gradient(135deg, rgba(3,17,13,.98), rgba(3,42,31,.94)) !important;

    box-shadow:
        0 16px 36px rgba(0,0,0,.18),
        inset 0 -1px 0 rgba(255,255,255,.03) !important;

    position: relative !important;
    z-index: 50 !important;
}

body.admin-page .ai-admin-unified-brandbox {
    min-width: 210px !important;
    line-height: 1.08 !important;
}

body.admin-page .ai-admin-unified-brand {
    color: #E7C86F !important;
    font-size: clamp(18px, 2vw, 26px) !important;
    font-weight: 950 !important;
    letter-spacing: -.02em !important;
    white-space: nowrap !important;
}

body.admin-page .ai-admin-unified-email {
    margin-top: 4px !important;
    color: rgba(246,240,230,.78) !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    white-space: nowrap !important;
}

body.admin-page .ai-admin-unified-nav {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 10px !important;
    flex-wrap: wrap !important;
}

body.admin-page .ai-admin-unified-btn,
body.admin-page .ai-admin-unified-logout {
    min-height: 42px !important;
    padding: 10px 18px !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    border-radius: 999px !important;
    font-size: 15px !important;
    font-weight: 950 !important;
    line-height: 1 !important;
    text-decoration: none !important;
    white-space: nowrap !important;
}

body.admin-page .ai-admin-unified-btn {
    color: #041B13 !important;
    border: 1px solid rgba(246,240,230,.28) !important;
    background:
        radial-gradient(circle at 30% 18%, rgba(255,255,255,.45), transparent 32%),
        linear-gradient(135deg, #F4DF86, #D6B46A) !important;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.34),
        0 8px 18px rgba(0,0,0,.16) !important;
}

body.admin-page .ai-admin-unified-btn:hover {
    transform: translateY(-1px) !important;
    filter: brightness(1.04) !important;
}

body.admin-page .ai-admin-unified-btn.active {
    background:
        radial-gradient(circle at 30% 18%, rgba(255,255,255,.36), transparent 32%),
        linear-gradient(135deg, #EAD072, #C9A24F) !important;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.32),
        0 0 0 2px rgba(214,180,106,.18),
        0 10px 24px rgba(0,0,0,.20) !important;
}

body.admin-page .ai-admin-unified-logout-form {
    margin: 0 !important;
    padding: 0 !important;
    display: inline-flex !important;
}

body.admin-page .ai-admin-unified-logout {
    color: rgba(246,240,230,.92) !important;
    border: 1px solid rgba(214,180,106,.20) !important;
    background: rgba(246,240,230,.075) !important;
}

body.admin-page .ai-admin-unified-logout:hover {
    background: rgba(246,240,230,.11) !important;
}

/* Убираем возможные отступы старых шапок после замены */
body.admin-page.ai-admin-unified-header-ready > main {
    margin-top: 0 !important;
}

/* Мобильная версия: аккуратная компактная навигация */
@media (max-width: 820px) {
    body.admin-page .ai-admin-unified-header {
        align-items: flex-start !important;
        padding: 16px 14px !important;
        gap: 14px !important;
        flex-direction: column !important;
    }

    body.admin-page .ai-admin-unified-nav {
        width: 100% !important;
        justify-content: flex-start !important;
        gap: 8px !important;
    }

    body.admin-page .ai-admin-unified-btn,
    body.admin-page .ai-admin-unified-logout {
        min-height: 38px !important;
        padding: 9px 13px !important;
        font-size: 14px !important;
    }
}

@media (max-width: 560px) {
    body.admin-page .ai-admin-unified-nav {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    body.admin-page .ai-admin-unified-btn,
    body.admin-page .ai-admin-unified-logout,
    body.admin-page .ai-admin-unified-logout-form {
        width: 100% !important;
    }
}


/* ==========================================================
   ADMIN HEADER FULL WIDTH FIX
   Шапка всегда растягивается на всю ширину, даже если старая страница
   пыталась держать её внутри main/max-width контейнера.
   ========================================================== */

body.admin-page > .ai-admin-unified-header {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    align-self: stretch !important;
}

body.admin-page .ai-admin-unified-header {
    box-sizing: border-box !important;
}

body.admin-page.ai-admin-unified-header-ready main {
    width: min(1180px, calc(100% - 32px)) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* На dashboard можно оставлять шире, чтобы записи не сжимались */
body.admin-page.dashboard-page.ai-admin-unified-header-ready main {
    width: min(1420px, calc(100% - 32px)) !important;
}


/* ==========================================================
   ADMIN SERVICES INLINE PHOTO CARDS
   Фото услуги внутри карточки услуги, без отдельного громоздкого блока.
   ========================================================== */

body.admin-services-page .ai-service-photo-card {
    display: none !important;
}

body.admin-services-page #services {
    margin-top: 22px !important;
}

body.admin-services-page .ai-services-inline-list {
    display: grid !important;
    gap: 16px !important;
}

body.admin-services-page .ai-service-inline-card {
    display: grid !important;
    grid-template-columns: 180px minmax(0, 1fr) 210px !important;
    gap: 18px !important;
    align-items: stretch !important;

    padding: 14px !important;
    border-radius: 24px !important;
    border: 1px solid rgba(214,180,106,.18) !important;
    background:
        radial-gradient(circle at 12% 0%, rgba(246,240,230,.08), transparent 35%),
        linear-gradient(135deg, rgba(15,66,50,.92), rgba(8,49,37,.88)) !important;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.05),
        0 18px 38px rgba(0,0,0,.14) !important;
}

body.admin-services-page .ai-service-inline-card.inactive-row {
    opacity: .72 !important;
}

body.admin-services-page .ai-service-inline-photo {
    min-height: 160px !important;
    border-radius: 20px !important;
    overflow: hidden !important;
    border: 1px solid rgba(214,180,106,.18) !important;
    background: rgba(2,24,18,.45) !important;
}

body.admin-services-page .ai-service-inline-photo-frame,
body.admin-services-page .ai-service-inline-photo-frame img {
    width: 100% !important;
    height: 100% !important;
}

body.admin-services-page .ai-service-inline-photo-frame img {
    display: block !important;
    object-fit: cover !important;
}

body.admin-services-page .ai-service-inline-photo-placeholder {
    height: 100% !important;
    min-height: 160px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    color: rgba(246,240,230,.68) !important;
    font-weight: 850 !important;
    text-align: center !important;
}

body.admin-services-page .ai-service-inline-photo-icon {
    width: 44px !important;
    height: 44px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 999px !important;
    color: #041B13 !important;
    background: linear-gradient(135deg, #F3DF86, #D6B46A) !important;
}

body.admin-services-page .ai-service-inline-main {
    min-width: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    gap: 14px !important;
    padding: 4px 0 !important;
}

body.admin-services-page .ai-service-inline-title-row {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 16px !important;
}

body.admin-services-page .ai-service-inline-title-row h3 {
    margin: 0 0 8px !important;
    color: #F6F0E6 !important;
    font-size: 20px !important;
    font-weight: 950 !important;
}

body.admin-services-page .ai-service-inline-title-row p {
    margin: 0 !important;
    color: rgba(246,240,230,.70) !important;
    line-height: 1.45 !important;
}

body.admin-services-page .ai-service-inline-status {
    flex: 0 0 auto !important;
    padding: 9px 12px !important;
    border-radius: 999px !important;
    font-weight: 950 !important;
    font-size: 13px !important;
    border: 1px solid rgba(214,180,106,.18) !important;
}

body.admin-services-page .ai-service-inline-status.is-active {
    color: #8DE0AA !important;
    background: rgba(124,203,155,.12) !important;
}

body.admin-services-page .ai-service-inline-status.is-hidden {
    color: rgba(246,240,230,.65) !important;
    background: rgba(246,240,230,.07) !important;
}

body.admin-services-page .ai-service-inline-meta {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 10px !important;
}

body.admin-services-page .ai-service-inline-meta > div {
    padding: 12px !important;
    border-radius: 16px !important;
    border: 1px solid rgba(214,180,106,.14) !important;
    background: rgba(2,24,18,.22) !important;
}

body.admin-services-page .ai-service-inline-meta span {
    display: block !important;
    margin-bottom: 5px !important;
    color: #D6B46A !important;
    font-size: 11px !important;
    font-weight: 950 !important;
    text-transform: uppercase !important;
    letter-spacing: .08em !important;
}

body.admin-services-page .ai-service-inline-meta strong {
    color: #F6F0E6 !important;
    font-size: 14px !important;
    font-weight: 950 !important;
}

body.admin-services-page .ai-service-inline-actions {
    display: flex !important;
    flex-direction: column !important;
    gap: 9px !important;
    justify-content: center !important;
}

body.admin-services-page .ai-service-inline-actions button,
body.admin-services-page .ai-service-inline-upload {
    width: 100% !important;
    min-height: 38px !important;
    padding: 10px 13px !important;
    border-radius: 999px !important;
    text-align: center !important;
    font-weight: 950 !important;
    cursor: pointer !important;
}

body.admin-services-page .ai-service-inline-upload input {
    display: none !important;
}

body.admin-services-page .ai-service-inline-delete {
    margin-top: 4px !important;
    background: linear-gradient(135deg, #F6D66F, #D6B46A) !important;
    color: #041B13 !important;
}

@media (max-width: 980px) {
    body.admin-services-page .ai-service-inline-card {
        grid-template-columns: 150px minmax(0, 1fr) !important;
    }

    body.admin-services-page .ai-service-inline-actions {
        grid-column: 1 / -1 !important;
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 620px) {
    body.admin-services-page .ai-service-inline-card {
        grid-template-columns: 1fr !important;
    }

    body.admin-services-page .ai-service-inline-photo,
    body.admin-services-page .ai-service-inline-photo-placeholder {
        min-height: 220px !important;
    }

    body.admin-services-page .ai-service-inline-title-row {
        flex-direction: column !important;
    }

    body.admin-services-page .ai-service-inline-meta {
        grid-template-columns: 1fr !important;
    }

    body.admin-services-page .ai-service-inline-actions {
        grid-template-columns: 1fr !important;
    }
}


/* ==========================================================
   FIX SERVICES DUPLICATION AFTER INLINE PHOTO CARDS
   ========================================================== */

body.admin-services-page .ai-service-photo-card,
body.admin-services-page .ai-service-photo-grid,
body.admin-services-page .ai-service-photo-manager,
body.admin-services-page .ai-service-photo-section,
body.admin-services-page .ai-service-photo-note {
    display: none !important;
}

body.admin-services-page #services .ai-service-photo-card,
body.admin-services-page #services .ai-service-photo-grid,
body.admin-services-page #services .ai-service-photo-manager,
body.admin-services-page #services .ai-service-photo-section,
body.admin-services-page #services .ai-service-photo-note {
    display: none !important;
}

body.admin-services-page #service-form.ai-service-form-editing {
    outline: 2px solid rgba(214,180,106,.34) !important;
    outline-offset: 8px !important;
    border-radius: 20px !important;
}

body.admin-services-page .ai-service-inline-card .ai-service-inline-actions [data-action] {
    display: none !important;
}


/* ==========================================================
   ADMIN SERVICES CARD FINAL POLISH
   ========================================================== */

/* В карточке услуги больше не показываем ID */
body.admin-services-page .ai-service-inline-meta > div:has(span) span {
    /* base */
}

body.admin-services-page .ai-service-inline-meta > div:has(span) {
    min-height: 66px !important;
}

/* Если браузер поддерживает :has — скрываем возможный старый ID-блок */
body.admin-services-page .ai-service-inline-meta > div:has(span):has(strong) {
    /* keep */
}

body.admin-services-page .ai-service-inline-meta > div:nth-child(n+3) {
    display: none !important;
}

body.admin-services-page .ai-service-inline-meta {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

/* Все кнопки карточки одинакового размера */
body.admin-services-page .ai-service-inline-actions {
    align-content: center !important;
}

body.admin-services-page .ai-service-inline-actions button,
body.admin-services-page .ai-service-inline-actions label,
body.admin-services-page .ai-service-inline-upload,
body.admin-services-page .ai-service-inline-delete {
    width: 100% !important;
    min-width: 0 !important;
    height: 42px !important;
    min-height: 42px !important;
    max-height: 42px !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    padding: 0 14px !important;
    margin: 0 !important;

    font-size: 13px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
}

/* Одна кнопка удаления. Любые старые дубликаты от скрытого слоя не показываем */
body.admin-services-page .ai-service-inline-card button[data-action="delete"],
body.admin-services-page .ai-service-inline-card label[data-action="delete"] {
    display: none !important;
}

/* Более аккуратная подсветка формы при редактировании */
body.admin-services-page #service-form.ai-service-form-editing {
    animation: aiServiceFormPulse 1.2s ease both !important;
}

@keyframes aiServiceFormPulse {
    0% {
        box-shadow: 0 0 0 0 rgba(214,180,106,.00);
    }
    35% {
        box-shadow: 0 0 0 6px rgba(214,180,106,.16);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(214,180,106,.00);
    }
}


/* ==========================================================
   ADMIN SERVICES FINAL DUPLICATE/SCROLL POLISH
   ========================================================== */

body.admin-services-page .ai-service-inline-actions {
    gap: 9px !important;
}

body.admin-services-page .ai-service-inline-actions button,
body.admin-services-page .ai-service-inline-actions label,
body.admin-services-page .ai-service-inline-actions a {
    width: 100% !important;
    height: 42px !important;
    min-height: 42px !important;
    max-height: 42px !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    padding: 0 14px !important;
    margin: 0 !important;

    box-sizing: border-box !important;
    white-space: nowrap !important;
    line-height: 1 !important;
}

/* ID в карточках услуг больше не показываем */
body.admin-services-page .ai-service-inline-meta > div:nth-child(n+3) {
    display: none !important;
}

body.admin-services-page .ai-service-inline-meta {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

/* Старые кнопки удаления, если они прилетели не из нашего inline-рендера */
body.admin-services-page #services .ai-service-inline-card button[data-action="delete"],
body.admin-services-page #services .ai-service-inline-card a[data-action="delete"],
body.admin-services-page #services .ai-service-inline-card label[data-action="delete"] {
    display: none !important;
}


/* ==========================================================
   ADMIN SERVICES EDIT SCROLL FIX
   ========================================================== */

body.admin-services-page #service-form,
body.admin-services-page #service-form.closest-target {
    scroll-margin-top: 120px !important;
}

body.admin-services-page .ai-admin-block-services {
    scroll-margin-top: 120px !important;
}


/* ==========================================================
   ADMIN SERVICES SCROLL INTO VIEW FINAL
   ========================================================== */

body.admin-services-page .ai-admin-block-services,
body.admin-services-page #service-form,
body.admin-services-page #service-form.closest-target {
    scroll-margin-top: 112px !important;
}


/* ==========================================================
   ADMIN SERVICES EDIT FORM SCROLL TARGET FIX
   Прокручиваем именно форму, не огромную карточку услуги.
   ========================================================== */

body.admin-services-page #service-form {
    scroll-margin-top: 24px !important;
}


/* A&I existing booking select arrow fix START */
body.booking-page .ai-select-button,
body.booking-page .ai-select .ai-select-button,
body.booking-page button.ai-select-button {
    position: relative !important;
    padding-right: 54px !important;
}

body.booking-page .ai-select-button .ai-select-arrow,
body.booking-page .ai-select .ai-select-arrow,
body.booking-page button.ai-select-button .ai-select-arrow {
    display: block !important;
    position: absolute !important;
    right: 22px !important;
    top: 50% !important;
    z-index: 4 !important;

    width: 11px !important;
    height: 11px !important;
    min-width: 11px !important;
    max-width: 11px !important;

    margin: 0 !important;
    padding: 0 !important;

    font-size: 0 !important;
    line-height: 0 !important;
    color: transparent !important;
    background: transparent !important;

    border-right: 3px solid var(--ai-select-gold, #D6B46A) !important;
    border-bottom: 3px solid var(--ai-select-gold, #D6B46A) !important;

    transform: translateY(-62%) rotate(45deg) !important;
    transform-origin: center !important;

    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: none !important;

    filter: drop-shadow(0 0 8px rgba(214, 180, 106, .55)) !important;
}

body.booking-page .ai-select.open .ai-select-button .ai-select-arrow,
body.booking-page .ai-select.open .ai-select-arrow {
    transform: translateY(-35%) rotate(225deg) !important;
}

body.booking-page .ai-select-button svg,
body.booking-page .ai-select-button .chevron,
body.booking-page .ai-select-button .arrow:not(.ai-select-arrow) {
    display: none !important;
}
/* A&I existing booking select arrow fix END */
