.abs-booking-wizard {
    --abs-wizard-accent: #667eea;
    --abs-wizard-accent-2: #764ba2;
    --abs-wizard-radius: 16px;
    --abs-wizard-surface: #ffffff;
    --abs-wizard-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

    --abs-btn-primary-bg: var(--abs-wizard-accent);
    --abs-btn-primary-bg-2: var(--abs-wizard-accent-2);
    --abs-btn-primary-text: #ffffff;
    --abs-btn-radius: 8px;
    --abs-btn-padding-y: 12px;
    --abs-btn-padding-x: 32px;

    --abs-btn-secondary-bg: #f3f4f6;
    --abs-btn-secondary-text: #111827;
    --abs-btn-secondary-border: #e5e7eb;

    --abs-btn-disabled-bg: #e5e7eb;
    --abs-btn-disabled-text: #6b7280;
    --abs-btn-disabled-border: transparent;

    --abs-svc-cards-cols-mobile: 1;
    --abs-svc-cards-cols-tablet: 2;
    --abs-svc-cards-cols-desktop: 3;
    --abs-svc-cards-ratio-mobile: 1 / 1;
    --abs-svc-cards-ratio-tablet: 1 / 1;
    --abs-svc-cards-ratio-desktop: 1 / 1;

    --abs-staff-cards-cols-mobile: 2;
    --abs-staff-cards-cols-tablet: 2;
    --abs-staff-cards-cols-desktop: 3;
    --abs-staff-cards-ratio-mobile: 1 / 1;
    --abs-staff-cards-ratio-tablet: 1 / 1;
    --abs-staff-cards-ratio-desktop: 1 / 1;
    --abs-cards-gap: 16px;
    --abs-cards-padding: 24px;
    --abs-cards-radius: 12px;
    --abs-cards-bg: #ffffff;
    --abs-cards-border: #e5e7eb;
    --abs-cards-text: #111827;

    --abs-cards-selected-border: #22c55e;
    --abs-cards-selected-shadow: 0 0 0 3px rgba(34, 197, 94, 0.25), 0 8px 28px rgba(34, 197, 94, 0.22);
    --abs-cards-selected-bg: linear-gradient(135deg, #f8faff 0%, #f0f4ff 100%);
    --abs-cards-selected-tick-bg: #22c55e;
    --abs-cards-selected-tick-color: #ffffff;

    --abs-cal-radius: 12px;
    --abs-cal-border: #e5e7eb;
    --abs-cal-surface: #ffffff;
    --abs-cal-weekday-bg: #f9fafb;
    --abs-cal-weekday-text: #6b7280;
    --abs-cal-day-text: #111827;
    --abs-cal-day-hover-bg: #f3f4f6;
    --abs-cal-day-available-text: #059669;
    --abs-cal-day-selected-bg: #667eea;
    --abs-cal-day-selected-text: #ffffff;
    --abs-cal-day-disabled-text: #4b4b4d;
    --abs-cal-day-today-ring: 0 0 0 2px rgba(102,126,234,0.35);
    --abs-cal-day-dot: #10b981;
    --abs-cal-day-fully-booked-bg: #fee2e2;
    --abs-cal-day-fully-booked-text: #b91c1c;
    --abs-cal-day-fully-booked-border: #fecaca;
    --abs-cal-day-no-slots-bg: #f3f4f6;
    --abs-cal-day-no-slots-text: #9ca3af;
    --abs-cal-day-no-slots-border: #e5e7eb;

    --abs-slots-cols-mobile: 2;
    --abs-slots-cols-tablet: 3;
    --abs-slots-cols-desktop: 4;
    --abs-slot-radius: 10px;
    --abs-slot-border: #e5e7eb;
    --abs-slot-bg: #ffffff;
    --abs-slot-text: #111827;
    --abs-slot-hover-border: #667eea;
    --abs-slot-hover-bg: #f8faff;
    --abs-slot-selected-bg: #667eea;
    --abs-slot-selected-border: #667eea;
    --abs-slot-selected-text: #ffffff;
    --abs-slot-unavailable-bg: #f3f4f6;
    --abs-slot-unavailable-border: #e5e7eb;
    --abs-slot-unavailable-text: #9ca3af;

    border-radius: var(--abs-wizard-radius);
    background: var(--abs-wizard-surface);
    font-family: var(--abs-wizard-font-family);
}

.abs-booking-wizard .abs-btn {
    border-radius: var(--abs-btn-radius) !important;
    padding: var(--abs-btn-padding-y) var(--abs-btn-padding-x) !important;
}

.abs-booking-wizard .abs-btn-primary {
    background: linear-gradient(135deg, var(--abs-btn-primary-bg) 0%, var(--abs-btn-primary-bg-2) 100%) !important;
    color: var(--abs-btn-primary-text) !important;
}

.abs-booking-wizard .abs-btn-secondary {
    background: var(--abs-btn-secondary-bg) !important;
    color: var(--abs-btn-secondary-text) !important;
    border: 1px solid var(--abs-btn-secondary-border) !important;
}

/* Cards (services / staff) */
.abs-booking-wizard .abs-service-grid,
.abs-booking-wizard .abs-staff-grid {
    gap: var(--abs-cards-gap) !important;
}

.abs-booking-wizard .abs-service-card,
.abs-booking-wizard .abs-staff-card {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.abs-booking-wizard .abs-service-grid {
    grid-template-columns: repeat(var(--abs-svc-cards-cols-mobile, 1), minmax(0, 1fr)) !important;
}

.abs-booking-wizard .abs-staff-grid {
    grid-template-columns: repeat(var(--abs-staff-cards-cols-mobile, 2), minmax(0, 1fr)) !important;
}

@media (min-width: 640px) {
    .abs-booking-wizard .abs-service-grid {
        grid-template-columns: repeat(var(--abs-svc-cards-cols-tablet, 2), minmax(0, 1fr)) !important;
    }

    .abs-booking-wizard .abs-staff-grid {
        grid-template-columns: repeat(var(--abs-staff-cards-cols-tablet, 2), minmax(0, 1fr)) !important;
    }
}

@media (min-width: 1024px) {
    .abs-booking-wizard .abs-service-grid {
        grid-template-columns: repeat(var(--abs-svc-cards-cols-desktop, 3), minmax(0, 1fr)) !important;
    }

    .abs-booking-wizard .abs-staff-grid {
        grid-template-columns: repeat(var(--abs-staff-cards-cols-desktop, 3), minmax(0, 1fr)) !important;
    }
}

.abs-booking-wizard .abs-service-card,
.abs-booking-wizard .abs-staff-card {
    padding: var(--abs-cards-padding) !important;
    border-radius: var(--abs-cards-radius) !important;
}

.abs-booking-wizard .abs-service-card,
.abs-booking-wizard .abs-staff-card {
    text-align: var(--abs-cards-text-align) !important;
}

.abs-booking-wizard .abs-service-card:not(.has-image),
.abs-booking-wizard .abs-staff-card:not(.has-image) {
    background: var(--abs-cards-bg) !important;
    border-color: var(--abs-cards-border) !important;
    color: var(--abs-cards-text) !important;
}

.abs-booking-wizard .abs-service-card:not(.has-image) .abs-service-name,
.abs-booking-wizard .abs-service-card:not(.has-image) .abs-service-duration,
.abs-booking-wizard .abs-service-card:not(.has-image) .abs-service-price,
.abs-booking-wizard .abs-staff-card:not(.has-image) .abs-staff-name {
    color: var(--abs-cards-text) !important;
}

.abs-booking-wizard .abs-service-name,
.abs-booking-wizard .abs-staff-name {
    font-size: var(--abs-cards-title-size, unset) !important;
    font-weight: var(--abs-cards-title-weight, unset) !important;
}

.abs-booking-wizard .abs-service-duration {
    font-size: var(--abs-cards-duration-size, unset) !important;
    font-weight: var(--abs-cards-duration-weight, unset) !important;
}

.abs-booking-wizard .abs-service-card:not(.has-image) .abs-service-duration {
    color: var(--abs-cards-duration-color, var(--abs-cards-text)) !important;
}

.abs-booking-wizard .abs-service-price {
    font-size: var(--abs-cards-price-size, unset) !important;
    font-weight: var(--abs-cards-price-weight, unset) !important;
}

.abs-booking-wizard .abs-service-card:not(.has-image) .abs-service-price {
    color: var(--abs-cards-price-color, var(--abs-wizard-accent)) !important;
}

.abs-booking-wizard .abs-service-card.has-image,
.abs-booking-wizard .abs-staff-card.has-image {
    border-radius: var(--abs-cards-radius) !important;
}

/* Internal layout controls (services) */
.abs-booking-wizard .abs-service-details {
    margin-top: 0 !important;
}

.abs-booking-wizard.abs-svc-cards-align-top .abs-service-card { justify-content: flex-start; }
.abs-booking-wizard.abs-svc-cards-align-center .abs-service-card { justify-content: center; }
.abs-booking-wizard.abs-svc-cards-align-bottom .abs-service-card { justify-content: flex-end; }
.abs-booking-wizard.abs-svc-cards-align-space-between .abs-service-card { justify-content: space-between; }

.abs-booking-wizard.abs-svc-cards-align-space-between .abs-service-card .abs-service-details {
    margin-top: auto !important;
}

.abs-booking-wizard.abs-svc-cards-order-name-details .abs-service-card .abs-service-name { order: 1; }
.abs-booking-wizard.abs-svc-cards-order-name-details .abs-service-card .abs-service-details { order: 2; }

.abs-booking-wizard.abs-svc-cards-order-details-name .abs-service-card .abs-service-details { order: 1; }
.abs-booking-wizard.abs-svc-cards-order-details-name .abs-service-card .abs-service-name { order: 2; }

/* Internal layout controls (staff) */
.abs-booking-wizard.abs-staff-cards-align-top .abs-staff-card { justify-content: flex-start; }
.abs-booking-wizard.abs-staff-cards-align-center .abs-staff-card { justify-content: center; }
.abs-booking-wizard.abs-staff-cards-align-bottom .abs-staff-card { justify-content: flex-end; }
.abs-booking-wizard.abs-staff-cards-align-space-between .abs-staff-card { justify-content: space-between; }

.abs-booking-wizard.abs-staff-cards-order-name-details .abs-staff-card .abs-staff-name { order: 1; }
.abs-booking-wizard.abs-staff-cards-order-details-name .abs-staff-card .abs-staff-name { order: 2; }

/* Service info icon positioning */
.abs-booking-wizard .abs-service-info {
    top: auto;
    right: auto;
    bottom: auto;
    left: auto;
}

/* Ensure the (i) stays absolutely positioned even on has-image cards */
.abs-booking-wizard .abs-service-card.has-image .abs-service-info {
    position: absolute;
}

.abs-booking-wizard.abs-svc-info-pos-top-left .abs-service-info {
    top: var(--abs-svc-info-offset-y, 10px);
    left: var(--abs-svc-info-offset-x, 10px);
}

.abs-booking-wizard.abs-svc-info-pos-top-right .abs-service-info {
    top: var(--abs-svc-info-offset-y, 10px);
    right: var(--abs-svc-info-offset-x, 10px);
}

.abs-booking-wizard.abs-svc-info-pos-bottom-left .abs-service-info {
    bottom: var(--abs-svc-info-offset-y, 10px);
    left: var(--abs-svc-info-offset-x, 10px);
}

.abs-booking-wizard.abs-svc-info-pos-bottom-right .abs-service-info {
    bottom: var(--abs-svc-info-offset-y, 10px);
    right: var(--abs-svc-info-offset-x, 10px);
}

/* Avoid overlap between selected tick (top-right) and the (i) when it's placed on the right */
.abs-booking-wizard:not(.abs-hide-selected-tick).abs-svc-info-pos-top-right .abs-service-card.selected .abs-service-info {
    right: calc(var(--abs-svc-info-offset-x, 10px) + 38px);
}

.abs-booking-wizard:not(.abs-hide-selected-tick).abs-svc-info-pos-bottom-right .abs-service-card.selected .abs-service-info {
    right: calc(var(--abs-svc-info-offset-x, 10px) + 38px);
}

/* Selected service/staff card styles */
.abs-booking-wizard .abs-service-card.selected,
.abs-booking-wizard .abs-staff-card.selected {
    border-color: var(--abs-cards-selected-border) !important;
    box-shadow: var(--abs-cards-selected-shadow) !important;
}

.abs-booking-wizard .abs-service-card.selected:not(.has-image),
.abs-booking-wizard .abs-staff-card.selected:not(.has-image) {
    background: var(--abs-cards-selected-bg) !important;
}

.abs-booking-wizard .abs-service-card.selected::after,
.abs-booking-wizard .abs-staff-card.selected::after {
    background: var(--abs-cards-selected-tick-bg) !important;
    color: var(--abs-cards-selected-tick-color) !important;
}

.abs-booking-wizard.abs-hide-selected-tick .abs-service-card.selected::after,
.abs-booking-wizard.abs-hide-selected-tick .abs-staff-card.selected::after {
    display: none !important;
}

/* Service info modal styling */
.abs-booking-wizard .abs-service-info-modal__backdrop {
    background: var(--abs-svc-info-modal-backdrop, rgba(0,0,0,0.55)) !important;
}

.abs-booking-wizard .abs-service-info-modal__panel {
    max-width: var(--abs-svc-info-modal-max-width, 560px) !important;
    border-radius: var(--abs-svc-info-modal-radius, 14px) !important;
    background: var(--abs-svc-info-modal-bg, #ffffff) !important;
}

.abs-booking-wizard .abs-service-info-modal__content {
    color: var(--abs-svc-info-modal-text, #111827) !important;
}

.abs-booking-wizard:not(.abs-svc-cards-layout-list) .abs-service-card {
    aspect-ratio: var(--abs-svc-cards-ratio-mobile) !important;
}

.abs-booking-wizard:not(.abs-svc-cards-layout-mobile-list):not(.abs-svc-cards-ratio-auto-mobile) .abs-service-card {
    overflow: hidden;
}

.abs-booking-wizard:not(.abs-svc-cards-layout-mobile-list):not(.abs-svc-cards-ratio-auto-mobile) .abs-service-card .abs-service-name {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
}

.abs-booking-wizard:not(.abs-staff-cards-layout-list) .abs-staff-card {
    aspect-ratio: var(--abs-staff-cards-ratio-mobile) !important;
}

.abs-booking-wizard:not(.abs-staff-cards-layout-mobile-list):not(.abs-staff-cards-ratio-auto-mobile) .abs-staff-card {
    overflow: hidden;
}

.abs-booking-wizard:not(.abs-staff-cards-layout-mobile-list):not(.abs-staff-cards-ratio-auto-mobile) .abs-staff-card .abs-staff-name {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
}

@media (min-width: 640px) {
    .abs-booking-wizard:not(.abs-svc-cards-layout-list) .abs-service-card {
        aspect-ratio: var(--abs-svc-cards-ratio-tablet) !important;
    }

    .abs-booking-wizard:not(.abs-svc-cards-layout-tablet-list):not(.abs-svc-cards-ratio-auto-tablet) .abs-service-card {
        overflow: hidden;
    }

    .abs-booking-wizard:not(.abs-svc-cards-layout-tablet-list):not(.abs-svc-cards-ratio-auto-tablet) .abs-service-card .abs-service-name {
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        line-clamp: 2;
        overflow: hidden;
    }
    .abs-booking-wizard:not(.abs-staff-cards-layout-list) .abs-staff-card {
        aspect-ratio: var(--abs-staff-cards-ratio-tablet) !important;
    }

    .abs-booking-wizard:not(.abs-staff-cards-layout-tablet-list):not(.abs-staff-cards-ratio-auto-tablet) .abs-staff-card {
        overflow: hidden;
    }

    .abs-booking-wizard:not(.abs-staff-cards-layout-tablet-list):not(.abs-staff-cards-ratio-auto-tablet) .abs-staff-card .abs-staff-name {
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        line-clamp: 2;
        overflow: hidden;
    }
}

@media (min-width: 1024px) {
    .abs-booking-wizard:not(.abs-svc-cards-layout-list) .abs-service-card {
        aspect-ratio: var(--abs-svc-cards-ratio-desktop) !important;
    }

    .abs-booking-wizard:not(.abs-svc-cards-layout-desktop-list):not(.abs-svc-cards-ratio-auto-desktop) .abs-service-card {
        overflow: hidden;
    }

    .abs-booking-wizard:not(.abs-svc-cards-layout-desktop-list):not(.abs-svc-cards-ratio-auto-desktop) .abs-service-card .abs-service-name {
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        line-clamp: 2;
        overflow: hidden;
    }
    .abs-booking-wizard:not(.abs-staff-cards-layout-list) .abs-staff-card {
        aspect-ratio: var(--abs-staff-cards-ratio-desktop) !important;
    }

    .abs-booking-wizard:not(.abs-staff-cards-layout-desktop-list):not(.abs-staff-cards-ratio-auto-desktop) .abs-staff-card {
        overflow: hidden;
    }

    .abs-booking-wizard:not(.abs-staff-cards-layout-desktop-list):not(.abs-staff-cards-ratio-auto-desktop) .abs-staff-card .abs-staff-name {
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        line-clamp: 2;
        overflow: hidden;
    }
}

.abs-booking-wizard.abs-svc-cards-layout-list .abs-service-grid {
    grid-template-columns: 1fr !important;
}

.abs-booking-wizard.abs-staff-cards-layout-list .abs-staff-grid {
    grid-template-columns: 1fr !important;
}

.abs-booking-wizard.abs-svc-cards-layout-list .abs-service-card,
.abs-booking-wizard.abs-staff-cards-layout-list .abs-staff-card {
    aspect-ratio: auto !important;
}

@media (max-width: 639px) {
    .abs-booking-wizard.abs-svc-cards-layout-mobile-list .abs-service-grid {
        grid-template-columns: 1fr !important;
    }
    .abs-booking-wizard.abs-staff-cards-layout-mobile-list .abs-staff-grid {
        grid-template-columns: 1fr !important;
    }
    .abs-booking-wizard.abs-svc-cards-layout-mobile-list .abs-service-card,
    .abs-booking-wizard.abs-staff-cards-layout-mobile-list .abs-staff-card {
        aspect-ratio: auto !important;
    }
}

/* Admin preview breakpoint forcing (independent of viewport width) */
.abs-wizard-cards-preview.abs-preview-device-mobile .abs-service-grid {
    grid-template-columns: repeat(var(--abs-svc-cards-cols-mobile, 1), minmax(0, 1fr)) !important;
}
.abs-wizard-cards-preview.abs-preview-device-mobile .abs-staff-grid {
    grid-template-columns: repeat(var(--abs-staff-cards-cols-mobile, 2), minmax(0, 1fr)) !important;
}
.abs-wizard-cards-preview.abs-preview-device-mobile.abs-svc-cards-layout-mobile-list .abs-service-grid {
    grid-template-columns: 1fr !important;
}
.abs-wizard-cards-preview.abs-preview-device-mobile.abs-staff-cards-layout-mobile-list .abs-staff-grid {
    grid-template-columns: 1fr !important;
}
.abs-wizard-cards-preview.abs-preview-device-mobile:not(.abs-svc-cards-layout-mobile-list) .abs-service-card {
    aspect-ratio: var(--abs-svc-cards-ratio-mobile) !important;
}
.abs-wizard-cards-preview.abs-preview-device-mobile:not(.abs-staff-cards-layout-mobile-list) .abs-staff-card {
    aspect-ratio: var(--abs-staff-cards-ratio-mobile) !important;
}

.abs-wizard-cards-preview.abs-preview-device-tablet .abs-service-grid {
    grid-template-columns: repeat(var(--abs-svc-cards-cols-tablet, 2), minmax(0, 1fr)) !important;
}
.abs-wizard-cards-preview.abs-preview-device-tablet .abs-staff-grid {
    grid-template-columns: repeat(var(--abs-staff-cards-cols-tablet, 2), minmax(0, 1fr)) !important;
}
.abs-wizard-cards-preview.abs-preview-device-tablet.abs-svc-cards-layout-tablet-list .abs-service-grid {
    grid-template-columns: 1fr !important;
}
.abs-wizard-cards-preview.abs-preview-device-tablet.abs-staff-cards-layout-tablet-list .abs-staff-grid {
    grid-template-columns: 1fr !important;
}
.abs-wizard-cards-preview.abs-preview-device-tablet:not(.abs-svc-cards-layout-tablet-list) .abs-service-card {
    aspect-ratio: var(--abs-svc-cards-ratio-tablet) !important;
}
.abs-wizard-cards-preview.abs-preview-device-tablet:not(.abs-staff-cards-layout-tablet-list) .abs-staff-card {
    aspect-ratio: var(--abs-staff-cards-ratio-tablet) !important;
}

.abs-wizard-cards-preview.abs-preview-device-desktop .abs-service-grid {
    grid-template-columns: repeat(var(--abs-svc-cards-cols-desktop, 3), minmax(0, 1fr)) !important;
}
.abs-wizard-cards-preview.abs-preview-device-desktop .abs-staff-grid {
    grid-template-columns: repeat(var(--abs-staff-cards-cols-desktop, 3), minmax(0, 1fr)) !important;
}
.abs-wizard-cards-preview.abs-preview-device-desktop.abs-svc-cards-layout-desktop-list .abs-service-grid {
    grid-template-columns: 1fr !important;
}
.abs-wizard-cards-preview.abs-preview-device-desktop.abs-staff-cards-layout-desktop-list .abs-staff-grid {
    grid-template-columns: 1fr !important;
}
.abs-wizard-cards-preview.abs-preview-device-desktop:not(.abs-svc-cards-layout-desktop-list) .abs-service-card {
    aspect-ratio: var(--abs-svc-cards-ratio-desktop) !important;
}
.abs-wizard-cards-preview.abs-preview-device-desktop:not(.abs-staff-cards-layout-desktop-list) .abs-staff-card {
    aspect-ratio: var(--abs-staff-cards-ratio-desktop) !important;
}

@media (min-width: 640px) {
    .abs-booking-wizard.abs-svc-cards-layout-tablet-list .abs-service-grid {
        grid-template-columns: 1fr !important;
    }
    .abs-booking-wizard.abs-staff-cards-layout-tablet-list .abs-staff-grid {
        grid-template-columns: 1fr !important;
    }
    .abs-booking-wizard.abs-svc-cards-layout-tablet-list .abs-service-card,
    .abs-booking-wizard.abs-staff-cards-layout-tablet-list .abs-staff-card {
        aspect-ratio: auto !important;
    }
}

@media (min-width: 1024px) {
    .abs-booking-wizard.abs-svc-cards-layout-desktop-list .abs-service-grid {
        grid-template-columns: 1fr !important;
    }
    .abs-booking-wizard.abs-staff-cards-layout-desktop-list .abs-staff-grid {
        grid-template-columns: 1fr !important;
    }
    .abs-booking-wizard.abs-svc-cards-layout-desktop-list .abs-service-card,
    .abs-booking-wizard.abs-staff-cards-layout-desktop-list .abs-staff-card {
        aspect-ratio: auto !important;
    }
}

/* Ratio auto per breakpoint */

@media (max-width: 639px) {
    .abs-booking-wizard.abs-svc-cards-ratio-auto-mobile .abs-service-card { aspect-ratio: auto !important; }
    .abs-booking-wizard.abs-staff-cards-ratio-auto-mobile .abs-staff-card { aspect-ratio: auto !important; }
}

@media (min-width: 640px) and (max-width: 1023px) {
    .abs-booking-wizard.abs-svc-cards-ratio-auto-tablet .abs-service-card { aspect-ratio: auto !important; }
    .abs-booking-wizard.abs-staff-cards-ratio-auto-tablet .abs-staff-card { aspect-ratio: auto !important; }
}

@media (min-width: 1024px) {
    .abs-booking-wizard.abs-svc-cards-ratio-auto-desktop .abs-service-card { aspect-ratio: auto !important; }
    .abs-booking-wizard.abs-staff-cards-ratio-auto-desktop .abs-staff-card { aspect-ratio: auto !important; }
}

/* Admin preview breakpoint forcing (independent of viewport width): ratio auto */
.abs-wizard-cards-preview.abs-preview-device-mobile.abs-svc-cards-ratio-auto-mobile .abs-service-card { aspect-ratio: auto !important; }
.abs-wizard-cards-preview.abs-preview-device-mobile.abs-staff-cards-ratio-auto-mobile .abs-staff-card { aspect-ratio: auto !important; }

.abs-wizard-cards-preview.abs-preview-device-tablet.abs-svc-cards-ratio-auto-tablet .abs-service-card { aspect-ratio: auto !important; }
.abs-wizard-cards-preview.abs-preview-device-tablet.abs-staff-cards-ratio-auto-tablet .abs-staff-card { aspect-ratio: auto !important; }

.abs-wizard-cards-preview.abs-preview-device-desktop.abs-svc-cards-ratio-auto-desktop .abs-service-card { aspect-ratio: auto !important; }
.abs-wizard-cards-preview.abs-preview-device-desktop.abs-staff-cards-ratio-auto-desktop .abs-staff-card { aspect-ratio: auto !important; }

/* Cards hover presets */
.abs-booking-wizard .abs-service-card:hover,
.abs-booking-wizard .abs-staff-card:hover {
    transition: all 0.2s ease;
}

.abs-booking-wizard.abs-cards-hover-none .abs-service-card:hover,
.abs-booking-wizard.abs-cards-hover-none .abs-staff-card:hover {
    transform: none !important;
    box-shadow: none !important;
    border-color: var(--abs-cards-border) !important;
}

.abs-booking-wizard.abs-cards-hover-lift .abs-service-card:hover,
.abs-booking-wizard.abs-cards-hover-lift .abs-staff-card:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 10px 18px rgba(0,0,0,0.10) !important;
    border-color: var(--abs-wizard-accent) !important;
}

.abs-booking-wizard.abs-cards-hover-scale .abs-service-card:hover,
.abs-booking-wizard.abs-cards-hover-scale .abs-staff-card:hover {
    transform: scale(1.01) !important;
    box-shadow: 0 10px 18px rgba(0,0,0,0.10) !important;
    border-color: var(--abs-wizard-accent) !important;
}

.abs-booking-wizard.abs-cards-hover-glow .abs-service-card:hover,
.abs-booking-wizard.abs-cards-hover-glow .abs-staff-card:hover {
    transform: none !important;
    box-shadow: 0 0 0 3px rgba(102,126,234,0.18), 0 10px 18px rgba(0,0,0,0.10) !important;
    border-color: var(--abs-wizard-accent) !important;
}

/* Selected must win over hover (border/shadow) */
.abs-booking-wizard .abs-service-card.selected:hover,
.abs-booking-wizard .abs-staff-card.selected:hover {
    border-color: var(--abs-cards-selected-border) !important;
    box-shadow: var(--abs-cards-selected-shadow) !important;
}

.abs-booking-wizard .abs-btn.disabled,
.abs-booking-wizard .abs-btn:disabled,
.abs-booking-wizard .abs-btn[disabled] {
    background: var(--abs-btn-disabled-bg) !important;
    color: var(--abs-btn-disabled-text) !important;
    border: 1px solid var(--abs-btn-disabled-border) !important;
    cursor: not-allowed;
    opacity: 1 !important;
    transform: none !important;
}

/* Hover presets (applied via class on .abs-booking-wizard) */
.abs-booking-wizard .abs-btn:hover {
    transition: all 0.2s ease;
}

.abs-booking-wizard.abs-btn-hover-none .abs-btn-primary:hover,
.abs-booking-wizard.abs-btn-hover-none .abs-btn-secondary:hover,
.abs-booking-wizard.abs-btn-hover-none .abs-btn:hover {
    transform: none !important;
    filter: none !important;
    box-shadow: none !important;
}

.abs-booking-wizard.abs-btn-hover-none .abs-btn-primary:hover {
    background: linear-gradient(135deg, var(--abs-btn-primary-bg) 0%, var(--abs-btn-primary-bg-2) 100%) !important;
    color: var(--abs-btn-primary-text) !important;
}

.abs-booking-wizard.abs-btn-hover-none .abs-btn-secondary:hover {
    background: var(--abs-btn-secondary-bg) !important;
    color: var(--abs-btn-secondary-text) !important;
    border: 1px solid var(--abs-btn-secondary-border) !important;
}

.abs-booking-wizard.abs-btn-hover-lift .abs-btn:not(:disabled):not(.disabled):hover {
    transform: translateY(-1px) !important;
    box-shadow: 0 10px 18px rgba(0,0,0,0.10) !important;
}

.abs-booking-wizard.abs-btn-hover-scale .abs-btn:not(:disabled):not(.disabled):hover {
    transform: scale(1.02) !important;
    box-shadow: 0 10px 18px rgba(0,0,0,0.10) !important;
}

.abs-booking-wizard.abs-btn-hover-glow .abs-btn:not(:disabled):not(.disabled):hover {
    filter: brightness(1.03) !important;
    box-shadow: 0 0 0 3px rgba(102,126,234,0.18) !important;
}

/* If JS uses .disabled instead of :disabled, ensure hover doesn't animate */
.abs-booking-wizard .abs-btn.disabled:hover {
    transform: none !important;
    box-shadow: none !important;
    filter: none !important;
}

.abs-booking-wizard.abs-btn-hover-invert .abs-btn-primary:not(:disabled):hover {
    background-image: none !important;
    background: var(--abs-btn-primary-text) !important;
    color: var(--abs-btn-primary-bg) !important;
    border: 1px solid var(--abs-btn-primary-bg) !important;
}

/* Calendar/Slots overrides (only when enabled) */
.abs-booking-wizard.abs-cal-slots-mode-theme,
.abs-booking-wizard.abs-cal-slots-mode-custom,
.abs-booking-wizard.abs-cal-content-mode-theme,
.abs-booking-wizard.abs-cal-content-mode-custom {
    --abs-cal-radius: 12px;
    --abs-cal-border: #e5e7eb;
    --abs-cal-surface: #ffffff;
    --abs-cal-weekday-bg: #f9fafb;
    --abs-cal-weekday-text: #6b7280;
    --abs-cal-day-text: #111827;
    --abs-cal-day-hover-bg: #f3f4f6;
    --abs-cal-day-available-text: #059669;
    --abs-cal-day-selected-bg: #667eea;
    --abs-cal-day-selected-text: #ffffff;
    --abs-cal-day-disabled-text: #4b4b4d;
    --abs-cal-day-today-ring: 0 0 0 2px rgba(102,126,234,0.35);
    --abs-cal-day-dot: #10b981;
    --abs-cal-day-fully-booked-bg: #fee2e2;
    --abs-cal-day-fully-booked-text: #b91c1c;
    --abs-cal-day-fully-booked-border: #fecaca;
    --abs-cal-day-no-slots-bg: #f3f4f6;
    --abs-cal-day-no-slots-text: #9ca3af;
    --abs-cal-day-no-slots-border: #e5e7eb;
}

/* Slots vars defaults (only when enabled) */
.abs-booking-wizard.abs-cal-slots-mode-theme,
.abs-booking-wizard.abs-cal-slots-mode-custom,
.abs-booking-wizard.abs-slots-mode-theme,
.abs-booking-wizard.abs-slots-mode-custom {
    --abs-slots-cols-mobile: 2;
    --abs-slots-cols-tablet: 3;
    --abs-slots-cols-desktop: 4;
    --abs-slot-radius: 10px;
    --abs-slot-border: #e5e7eb;
    --abs-slot-bg: #ffffff;
    --abs-slot-text: #111827;
    --abs-slot-hover-border: #667eea;
    --abs-slot-hover-bg: #f8faff;
    --abs-slot-selected-bg: #667eea;
    --abs-slot-selected-border: #667eea;
    --abs-slot-selected-text: #ffffff;
    --abs-slot-unavailable-bg: #f3f4f6;
    --abs-slot-unavailable-border: #e5e7eb;
    --abs-slot-unavailable-text: #9ca3af;
}

.abs-booking-wizard.abs-cal-slots-mode-theme,
.abs-booking-wizard.abs-cal-header-mode-theme {
    --abs-cal-header-bg: var(--abs-cal-weekday-bg, #f9fafb);
    --abs-cal-header-border: var(--abs-cal-border, #e5e7eb);
    --abs-cal-header-title-text: #1f2937;
    --abs-cal-header-nav-text: #6b7280;
    --abs-cal-header-nav-hover-bg: rgba(var(--abs-wizard-accent-rgb, 102,126,234), 0.12);
    --abs-cal-header-nav-hover-text: #374151;
}

.abs-booking-wizard.abs-cal-slots-mode-theme,
.abs-booking-wizard.abs-cal-content-mode-theme {
    --abs-cal-day-selected-bg: var(--abs-wizard-accent);
    --abs-cal-day-selected-text: #ffffff;
    --abs-cal-day-today-ring: 0 0 0 2px rgba(var(--abs-wizard-accent-rgb, 102,126,234), 0.25);
    --abs-cal-day-hover-bg: rgba(var(--abs-wizard-accent-rgb, 102,126,234), 0.08);
    --abs-cal-day-dot: var(--abs-wizard-accent);
}

.abs-booking-wizard.abs-cal-slots-mode-theme,
.abs-booking-wizard.abs-slots-mode-theme {
    --abs-slot-hover-border: var(--abs-wizard-accent);
    --abs-slot-hover-bg: rgba(var(--abs-wizard-accent-rgb, 102,126,234), 0.08);
    --abs-slot-selected-bg: var(--abs-wizard-accent);
    --abs-slot-selected-border: var(--abs-wizard-accent);
    --abs-slot-selected-text: #ffffff;
}

.abs-booking-wizard.abs-cal-slots-mode-theme .abs-calendar-section #abs-calendar-container,
.abs-booking-wizard.abs-cal-slots-mode-theme .abs-calendar-wrapper,
.abs-booking-wizard.abs-cal-content-mode-theme .abs-calendar-section #abs-calendar-container,
.abs-booking-wizard.abs-cal-content-mode-theme .abs-calendar-wrapper,
.abs-booking-wizard.abs-cal-slots-mode-custom .abs-calendar-section #abs-calendar-container,
.abs-booking-wizard.abs-cal-slots-mode-custom .abs-calendar-wrapper,
.abs-booking-wizard.abs-cal-content-mode-custom .abs-calendar-section #abs-calendar-container,
.abs-booking-wizard.abs-cal-content-mode-custom .abs-calendar-wrapper {
    background: var(--abs-cal-surface) !important;
    border: 1px solid var(--abs-cal-border) !important;
    border-radius: var(--abs-cal-radius) !important;
}

.abs-booking-wizard.abs-cal-slots-mode-theme .abs-calendar-header,
.abs-booking-wizard.abs-cal-header-mode-theme .abs-calendar-header,
.abs-booking-wizard.abs-cal-slots-mode-custom .abs-calendar-header,
.abs-booking-wizard.abs-cal-header-mode-custom .abs-calendar-header {
    background: var(--abs-cal-header-bg) !important;
    border-bottom: 1px solid var(--abs-cal-header-border) !important;
}

.abs-booking-wizard.abs-cal-slots-mode-theme .abs-calendar-title,
.abs-booking-wizard.abs-cal-header-mode-theme .abs-calendar-title,
.abs-booking-wizard.abs-cal-slots-mode-custom .abs-calendar-title,
.abs-booking-wizard.abs-cal-header-mode-custom .abs-calendar-title,
.abs-booking-wizard.abs-cal-slots-mode-theme .abs-calendar-month-year,
.abs-booking-wizard.abs-cal-header-mode-theme .abs-calendar-month-year,
.abs-booking-wizard.abs-cal-slots-mode-custom .abs-calendar-month-year,
.abs-booking-wizard.abs-cal-header-mode-custom .abs-calendar-month-year {
    color: var(--abs-cal-header-title-text) !important;
}

.abs-booking-wizard.abs-cal-slots-mode-theme .abs-calendar-nav,
.abs-booking-wizard.abs-cal-header-mode-theme .abs-calendar-nav,
.abs-booking-wizard.abs-cal-slots-mode-custom .abs-calendar-nav,
.abs-booking-wizard.abs-cal-header-mode-custom .abs-calendar-nav,
.abs-booking-wizard.abs-cal-slots-mode-theme .abs-calendar-nav-btn,
.abs-booking-wizard.abs-cal-header-mode-theme .abs-calendar-nav-btn,
.abs-booking-wizard.abs-cal-slots-mode-custom .abs-calendar-nav-btn,
.abs-booking-wizard.abs-cal-header-mode-custom .abs-calendar-nav-btn {
    color: var(--abs-cal-header-nav-text) !important;
}

.abs-booking-wizard.abs-cal-slots-mode-theme .abs-calendar-nav:hover,
.abs-booking-wizard.abs-cal-header-mode-theme .abs-calendar-nav:hover,
.abs-booking-wizard.abs-cal-slots-mode-custom .abs-calendar-nav:hover,
.abs-booking-wizard.abs-cal-header-mode-custom .abs-calendar-nav:hover,
.abs-booking-wizard.abs-cal-slots-mode-theme .abs-calendar-nav-btn:hover,
.abs-booking-wizard.abs-cal-header-mode-theme .abs-calendar-nav-btn:hover,
.abs-booking-wizard.abs-cal-slots-mode-custom .abs-calendar-nav-btn:hover,
.abs-booking-wizard.abs-cal-header-mode-custom .abs-calendar-nav-btn:hover {
    background: var(--abs-cal-header-nav-hover-bg) !important;
    color: var(--abs-cal-header-nav-hover-text) !important;
}

.abs-booking-wizard.abs-cal-slots-mode-theme .abs-calendar-weekday,
.abs-booking-wizard.abs-cal-content-mode-theme .abs-calendar-weekday,
.abs-booking-wizard.abs-cal-slots-mode-custom .abs-calendar-weekday,
.abs-booking-wizard.abs-cal-content-mode-custom .abs-calendar-weekday {
    background: var(--abs-cal-weekday-bg) !important;
    color: var(--abs-cal-weekday-text) !important;
}

.abs-booking-wizard.abs-cal-slots-mode-theme .abs-calendar-day,
.abs-booking-wizard.abs-cal-content-mode-theme .abs-calendar-day,
.abs-booking-wizard.abs-cal-slots-mode-custom .abs-calendar-day,
.abs-booking-wizard.abs-cal-content-mode-custom .abs-calendar-day {
    color: var(--abs-cal-day-text) !important;
}

.abs-booking-wizard.abs-cal-slots-mode-theme .abs-calendar-day:hover,
.abs-booking-wizard.abs-cal-content-mode-theme .abs-calendar-day:hover,
.abs-booking-wizard.abs-cal-slots-mode-custom .abs-calendar-day:hover,
.abs-booking-wizard.abs-cal-content-mode-custom .abs-calendar-day:hover {
    background: var(--abs-cal-day-hover-bg) !important;
}

.abs-booking-wizard.abs-cal-slots-mode-theme .abs-calendar-day.available,
.abs-booking-wizard.abs-cal-content-mode-theme .abs-calendar-day.available,
.abs-booking-wizard.abs-cal-slots-mode-custom .abs-calendar-day.available,
.abs-booking-wizard.abs-cal-content-mode-custom .abs-calendar-day.available {
    color: var(--abs-cal-day-available-text) !important;
}

.abs-booking-wizard.abs-cal-slots-mode-theme .abs-calendar-day.selected,
.abs-booking-wizard.abs-cal-content-mode-theme .abs-calendar-day.selected,
.abs-booking-wizard.abs-cal-slots-mode-custom .abs-calendar-day.selected,
.abs-booking-wizard.abs-cal-content-mode-custom .abs-calendar-day.selected {
    background: var(--abs-cal-day-selected-bg) !important;
    color: var(--abs-cal-day-selected-text) !important;
}

.abs-booking-wizard.abs-cal-slots-mode-theme .abs-calendar-day.disabled,
.abs-booking-wizard.abs-cal-content-mode-theme .abs-calendar-day.disabled,
.abs-booking-wizard.abs-cal-slots-mode-custom .abs-calendar-day.disabled,
.abs-booking-wizard.abs-cal-content-mode-custom .abs-calendar-day.disabled {
    color: var(--abs-cal-day-disabled-text) !important;
}

.abs-booking-wizard.abs-cal-slots-mode-theme .abs-calendar-day.today,
.abs-booking-wizard.abs-cal-content-mode-theme .abs-calendar-day.today,
.abs-booking-wizard.abs-cal-slots-mode-custom .abs-calendar-day.today,
.abs-booking-wizard.abs-cal-content-mode-custom .abs-calendar-day.today {
    box-shadow: var(--abs-cal-day-today-ring) !important;
}

.abs-booking-wizard.abs-cal-slots-mode-theme .abs-calendar-day.has-slots::after,
.abs-booking-wizard.abs-cal-content-mode-theme .abs-calendar-day.has-slots::after,
.abs-booking-wizard.abs-cal-slots-mode-custom .abs-calendar-day.has-slots::after,
.abs-booking-wizard.abs-cal-content-mode-custom .abs-calendar-day.has-slots::after {
    background: var(--abs-cal-day-dot) !important;
}

.abs-booking-wizard.abs-cal-slots-mode-theme .abs-calendar-day.disabled.fully-booked,
.abs-booking-wizard.abs-cal-content-mode-theme .abs-calendar-day.disabled.fully-booked,
.abs-booking-wizard.abs-cal-slots-mode-custom .abs-calendar-day.disabled.fully-booked,
.abs-booking-wizard.abs-cal-content-mode-custom .abs-calendar-day.disabled.fully-booked {
    background: var(--abs-cal-day-fully-booked-bg) !important;
    color: var(--abs-cal-day-fully-booked-text) !important;
    border: 1px solid var(--abs-cal-day-fully-booked-border) !important;
}

.abs-booking-wizard.abs-cal-slots-mode-theme .abs-calendar-day.disabled.no-slots,
.abs-booking-wizard.abs-cal-content-mode-theme .abs-calendar-day.disabled.no-slots,
.abs-booking-wizard.abs-cal-slots-mode-custom .abs-calendar-day.disabled.no-slots,
.abs-booking-wizard.abs-cal-content-mode-custom .abs-calendar-day.disabled.no-slots {
    background: var(--abs-cal-day-no-slots-bg) !important;
    color: var(--abs-cal-day-no-slots-text) !important;
    border: 1px dashed var(--abs-cal-day-no-slots-border) !important;
}

/* Slots */
.abs-booking-wizard.abs-cal-slots-mode-theme .abs-time-slots-grid,
.abs-booking-wizard.abs-slots-mode-theme .abs-time-slots-grid,
.abs-booking-wizard.abs-cal-slots-mode-custom .abs-time-slots-grid,
.abs-booking-wizard.abs-slots-mode-custom .abs-time-slots-grid {
    grid-template-columns: repeat(var(--abs-slots-cols-mobile), minmax(0, 1fr)) !important;
}

@media (min-width: 640px) {
    .abs-booking-wizard.abs-cal-slots-mode-theme .abs-time-slots-grid,
    .abs-booking-wizard.abs-slots-mode-theme .abs-time-slots-grid,
    .abs-booking-wizard.abs-cal-slots-mode-custom .abs-time-slots-grid,
    .abs-booking-wizard.abs-slots-mode-custom .abs-time-slots-grid {
        grid-template-columns: repeat(var(--abs-slots-cols-tablet), minmax(0, 1fr)) !important;
    }
}

@media (min-width: 1024px) {
    .abs-booking-wizard.abs-cal-slots-mode-theme .abs-time-slots-grid,
    .abs-booking-wizard.abs-slots-mode-theme .abs-time-slots-grid,
    .abs-booking-wizard.abs-cal-slots-mode-custom .abs-time-slots-grid,
    .abs-booking-wizard.abs-slots-mode-custom .abs-time-slots-grid {
        grid-template-columns: repeat(var(--abs-slots-cols-desktop), minmax(0, 1fr)) !important;
    }
}

.abs-booking-wizard.abs-cal-slots-mode-theme .abs-time-slot,
.abs-booking-wizard.abs-slots-mode-theme .abs-time-slot,
.abs-booking-wizard.abs-cal-slots-mode-custom .abs-time-slot,
.abs-booking-wizard.abs-slots-mode-custom .abs-time-slot {
    border-radius: var(--abs-slot-radius) !important;
    border-color: var(--abs-slot-border) !important;
    background: var(--abs-slot-bg) !important;
    color: var(--abs-slot-text) !important;
}

.abs-booking-wizard.abs-cal-slots-mode-theme .abs-time-slot:hover,
.abs-booking-wizard.abs-slots-mode-theme .abs-time-slot:hover,
.abs-booking-wizard.abs-cal-slots-mode-custom .abs-time-slot:hover,
.abs-booking-wizard.abs-slots-mode-custom .abs-time-slot:hover {
    border-color: var(--abs-slot-hover-border) !important;
    background: var(--abs-slot-hover-bg) !important;
}

.abs-booking-wizard.abs-cal-slots-mode-theme .abs-time-slot.selected,
.abs-booking-wizard.abs-slots-mode-theme .abs-time-slot.selected,
.abs-booking-wizard.abs-cal-slots-mode-custom .abs-time-slot.selected,
.abs-booking-wizard.abs-slots-mode-custom .abs-time-slot.selected {
    background: var(--abs-slot-selected-bg) !important;
    border-color: var(--abs-slot-selected-border) !important;
    color: var(--abs-slot-selected-text) !important;
}

.abs-booking-wizard.abs-cal-slots-mode-theme .abs-time-slot.unavailable,
.abs-booking-wizard.abs-slots-mode-theme .abs-time-slot.unavailable,
.abs-booking-wizard.abs-cal-slots-mode-custom .abs-time-slot.unavailable,
.abs-booking-wizard.abs-slots-mode-custom .abs-time-slot.unavailable {
    background: var(--abs-slot-unavailable-bg) !important;
    border-color: var(--abs-slot-unavailable-border) !important;
    color: var(--abs-slot-unavailable-text) !important;
}

.abs-wizard-header {
    background: linear-gradient(135deg, var(--abs-wizard-accent) 0%, var(--abs-wizard-accent-2) 100%);
}

/* Authbar (login/logout) positioning */
.abs-booking-wizard.abs-authbar-pos-top-left .abs-wizard-header,
.abs-booking-wizard.abs-authbar-pos-top-right .abs-wizard-header,
.abs-booking-wizard.abs-authbar-pos-bottom-left .abs-wizard-header,
.abs-booking-wizard.abs-authbar-pos-bottom-right .abs-wizard-header {
    position: relative;
}

.abs-booking-wizard.abs-authbar-pos-top-left .abs-wizard-header .abs-authbar:not(.abs-authbar--below-header):not(.abs-authbar--above-header),
.abs-booking-wizard.abs-authbar-pos-top-right .abs-wizard-header .abs-authbar:not(.abs-authbar--below-header):not(.abs-authbar--above-header),
.abs-booking-wizard.abs-authbar-pos-bottom-left .abs-wizard-header .abs-authbar:not(.abs-authbar--below-header):not(.abs-authbar--above-header),
.abs-booking-wizard.abs-authbar-pos-bottom-right .abs-wizard-header .abs-authbar:not(.abs-authbar--below-header):not(.abs-authbar--above-header) {
    position: absolute;
    margin: 0;
}

.abs-booking-wizard.abs-authbar-pos-top-left .abs-wizard-header .abs-authbar:not(.abs-authbar--below-header):not(.abs-authbar--above-header) {
    top: var(--abs-authbar-offset-y, 10px);
    left: var(--abs-authbar-offset-x, 10px);
}

.abs-booking-wizard.abs-authbar-pos-top-right .abs-wizard-header .abs-authbar:not(.abs-authbar--below-header):not(.abs-authbar--above-header) {
    top: var(--abs-authbar-offset-y, 10px);
    right: var(--abs-authbar-offset-x, 10px);
}

.abs-booking-wizard.abs-authbar-pos-bottom-left .abs-wizard-header .abs-authbar:not(.abs-authbar--below-header):not(.abs-authbar--above-header) {
    bottom: var(--abs-authbar-offset-y, 10px);
    left: var(--abs-authbar-offset-x, 10px);
}

.abs-booking-wizard.abs-authbar-pos-bottom-right .abs-wizard-header .abs-authbar:not(.abs-authbar--below-header):not(.abs-authbar--above-header) {
    bottom: var(--abs-authbar-offset-y, 10px);
    right: var(--abs-authbar-offset-x, 10px);
}

.abs-booking-wizard .abs-authbar.abs-authbar--below-header,
.abs-booking-wizard .abs-authbar.abs-authbar--above-header {
    padding: 10px 14px;
    background: var(--abs-wizard-surface);
    border-bottom: 1px solid rgba(17,24,39,0.08);
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    flex-wrap: wrap;
}

.abs-booking-wizard .abs-authbar.abs-authbar--above-header {
    background: var(--abs-authbar-above-bg, var(--abs-wizard-surface));
}

.abs-booking-wizard .abs-authbar.abs-authbar--below-header.abs-authbar-below-align-left,
.abs-booking-wizard .abs-authbar.abs-authbar--above-header.abs-authbar-below-align-left,
.abs-booking-wizard.abs-authbar-below-align-left .abs-authbar.abs-authbar--below-header,
.abs-booking-wizard.abs-authbar-below-align-left .abs-authbar.abs-authbar--above-header {
    justify-content: flex-start;
}

.abs-booking-wizard .abs-authbar.abs-authbar--below-header.abs-authbar-below-align-right,
.abs-booking-wizard .abs-authbar.abs-authbar--above-header.abs-authbar-below-align-right,
.abs-booking-wizard.abs-authbar-below-align-right .abs-authbar.abs-authbar--below-header,
.abs-booking-wizard.abs-authbar-below-align-right .abs-authbar.abs-authbar--above-header {
    justify-content: flex-end;
}

.abs-booking-wizard .abs-authbar.abs-authbar--below-header.abs-authbar-below-align-center,
.abs-booking-wizard .abs-authbar.abs-authbar--above-header.abs-authbar-below-align-center,
.abs-booking-wizard.abs-authbar-below-align-center .abs-authbar.abs-authbar--below-header,
.abs-booking-wizard.abs-authbar-below-align-center .abs-authbar.abs-authbar--above-header {
    justify-content: center;
}

.abs-booking-wizard .abs-authbar.abs-authbar--below-header .abs-auth-text,
.abs-booking-wizard .abs-authbar.abs-authbar--above-header .abs-auth-text {
    color: #111827;
    opacity: 0.9;
}

.abs-booking-wizard .abs-authbar.abs-authbar--below-header .abs-auth-divider,
.abs-booking-wizard .abs-authbar.abs-authbar--above-header .abs-auth-divider {
    color: rgba(17,24,39,0.55);
    opacity: 1;
}

.abs-booking-wizard .abs-authbar.abs-authbar--below-header .abs-auth-link,
.abs-booking-wizard .abs-authbar.abs-authbar--above-header .abs-auth-link {
    color: var(--abs-wizard-accent);
    text-decoration: underline;
}

/* Admin-configurable wizard UI toggles */
.abs-booking-wizard.abs-wz-hide-progress .abs-progress-bar {
    display: none !important;
}

.abs-booking-wizard.abs-wz-hide-progress-line .abs-progress-bar::before,
.abs-booking-wizard.abs-wz-hide-progress-line .abs-progress-line {
    display: none !important;
}

.abs-booking-wizard.abs-wz-hide-header-title .abs-wizard-title {
    display: none !important;
}

.abs-booking-wizard.abs-wz-hide-step-titles .abs-step-title {
    display: none !important;
}

.abs-booking-wizard.abs-wz-hide-step-subtitles .abs-step-subtitle {
    display: none !important;
}
