/**
 * RVBT Booking - Dynamic Search Form Styles
 *
 * Theme-compatible styling for the custom search form builder output.
 * Supports both "theme-styled" (inherits WP theme) and "plugin-styled" (standalone) modes.
 *
 * @package RVBTBooking
 * @since 2.0.0
 */

/* ==========================================================================
   CSS Custom Properties
   ========================================================================== */

/* Plugin styled (default) - matches search-form.php default colors */
.rvbtbooking-dynamic-form.plugin-styled {
    --rvbt-font: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    --rvbt-primary: #8b7355;           /* tan/brown for button */
    --rvbt-primary-hover: #7a644a;     /* darker tan for hover */
    --rvbt-accent: #146d74;            /* teal for icons/hover */
    --rvbt-bg: #ffffff;
    --rvbt-border: #d6d6d6;            /* lighter border */
    --rvbt-text: #333333;
    --rvbt-text-light: #666666;
    --rvbt-radius: 5px;                /* smaller radius */
    --rvbt-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

/* Theme styled - inherits from Elementor/WordPress theme */
.rvbtbooking-dynamic-form.theme-styled {
    --rvbt-font: inherit;
    --rvbt-primary: var(--e-global-color-primary, var(--wp--preset--color--primary, #2563eb));
    --rvbt-primary-hover: var(--e-global-color-secondary, var(--wp--preset--color--secondary, #1d4ed8));
    --rvbt-accent: var(--e-global-color-primary, var(--wp--preset--color--primary, #2563eb));
    --rvbt-bg: var(--wp--preset--color--base, #ffffff);
    --rvbt-border: #d6d6d6;
    --rvbt-text: var(--e-global-color-text, var(--wp--preset--color--contrast, #333333));
    --rvbt-text-light: var(--e-global-color-text, #666666);
    --rvbt-radius: 5px;
    --rvbt-shadow: none;
}

/* ==========================================================================
   Form Container
   ========================================================================== */

.rvbtbooking-dynamic-form {
    font-family: var(--rvbt-font);
    font-size: 14px;
    color: var(--rvbt-text);
    box-sizing: border-box;
}

.rvbtbooking-dynamic-form *,
.rvbtbooking-dynamic-form *::before,
.rvbtbooking-dynamic-form *::after {
    box-sizing: border-box;
}

/* Horizontal layout */
.rvbtbooking-dynamic-form.rvbtbooking-form-horizontal {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 12px;
}

/* Ensure form fields align cards to bottom when labels exist */
.rvbtbooking-dynamic-form.rvbtbooking-form-horizontal .rvbtbooking-form-field {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

/* Vertical layout */
.rvbtbooking-dynamic-form.rvbtbooking-form-vertical {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* ==========================================================================
   Form Fields
   ========================================================================== */

.rvbtbooking-form-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.rvbtbooking-form-field label {
    font-size: 13px;
    font-weight: 500;
    color: var(--rvbt-text-light);
    margin: 0;
}

/* ==========================================================================
   Input Styles
   ========================================================================== */

.rvbtbooking-dynamic-form input[type="text"],
.rvbtbooking-dynamic-form select {
    height: 44px;
    padding: 0 14px;
    font-family: var(--rvbt-font);
    font-size: 14px;
    color: var(--rvbt-text);
    background: var(--rvbt-bg);
    border: 1px solid var(--rvbt-border);
    border-radius: var(--rvbt-radius);
    outline: none;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    min-width: 140px;
    cursor: pointer;
}

.rvbtbooking-dynamic-form input[type="text"]:focus,
.rvbtbooking-dynamic-form select:focus {
    border-color: var(--rvbt-accent);
    box-shadow: 0 0 0 3px rgba(20, 109, 116, 0.15);
}

.rvbtbooking-dynamic-form input[type="text"]::placeholder {
    color: #999;
}

/* Date inputs */
.rvbtbooking-field-checkin input,
.rvbtbooking-field-checkout input {
    min-width: 150px;
}

/* ==========================================================================
   Unified Card Styles - Consistent heights for all form elements
   ========================================================================== */

/* Base card styling for all interactive form elements */
.rvbtbooking-dynamic-form .rvbtbooking-date-card,
.rvbtbooking-dynamic-form .rvbtbooking-guests-card,
.rvbtbooking-dynamic-form .rvbtbooking-nights-card {
    min-height: 48px;
    display: flex;
    align-items: center;
    box-sizing: border-box;
    padding: 0.25rem 1rem;
    border: 1px solid var(--rvbt-border);
    border-radius: var(--rvbt-radius);
    background: var(--rvbt-bg);
    cursor: pointer;
    transition: border-color 0.2s ease;
}

/* Hover uses accent color (teal for plugin, theme color for theme-styled) */
.rvbtbooking-dynamic-form .rvbtbooking-date-card:hover,
.rvbtbooking-dynamic-form .rvbtbooking-guests-card:hover,
.rvbtbooking-dynamic-form .rvbtbooking-nights-card:hover {
    border-color: var(--rvbt-accent);
}

/* Date Card specific - wider */
.rvbtbooking-dynamic-form .rvbtbooking-date-card {
    min-width: 200px;
    max-width: 249px;
    gap: 10px;
}

/* Icon color uses accent (teal for plugin, theme color for theme-styled) */
.rvbtbooking-dynamic-form .rvbtbooking-date-icon {
    margin-right: 0.75rem;
    color: var(--rvbt-accent);
    flex-shrink: 0;
    display: flex;
    align-items: center;
}

.rvbtbooking-dynamic-form .rvbtbooking-date-display {
    flex: 1;
}

.rvbtbooking-dynamic-form .rvbtbooking-date-placeholder {
    color: #999;
    font-size: 14px;
}

.rvbtbooking-dynamic-form .rvbtbooking-date-details {
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.rvbtbooking-dynamic-form .rvbtbooking-date-mday {
    font-size: 1.625rem;
    font-weight: 700;
    color: var(--rvbt-text);
    line-height: 1;
}

.rvbtbooking-dynamic-form .rvbtbooking-date-dt {
    display: flex;
    flex-direction: row;
    gap: 0.25rem;
    flex-wrap: wrap;
}

.rvbtbooking-dynamic-form .rvbtbooking-date-month {
    font-size: 0.75rem;
    font-weight: 400;
    color: var(--rvbt-text);
    line-height: 1;
    text-transform: uppercase;
}

.rvbtbooking-dynamic-form .rvbtbooking-date-year {
    font-size: 0.6875rem;
    font-weight: 400;
    color: var(--rvbt-text-light);
    line-height: 1;
}

.rvbtbooking-dynamic-form .rvbtbooking-date-wday {
    font-size: 0.6875rem;
    font-weight: 400;
    color: var(--rvbt-text-light);
    line-height: 1;
    width: 100%;
}

/* Label color: tan for plugin-styled, accent for theme-styled */
.rvbtbooking-dynamic-form.plugin-styled .rvbtbooking-date-label {
    color: #8b7355;
}

.rvbtbooking-dynamic-form.theme-styled .rvbtbooking-date-label {
    color: var(--rvbt-accent);
}

/* Nights Card specific */
.rvbtbooking-dynamic-form .rvbtbooking-nights-card {
    min-width: 100px;
    justify-content: center;
}

/* Match search-form.php styling: transparent input inside bordered card */
.rvbtbooking-dynamic-form .rvbtbooking-nights-input {
    width: 100%;
    max-width: 50px;
    text-align: center;
    border: none !important;
    background: transparent;
    font-size: 1rem;
    font-weight: 600;
    color: var(--rvbt-text);
    padding: 0;
    -moz-appearance: textfield;
}

/* Hide spinner arrows */
.rvbtbooking-dynamic-form .rvbtbooking-nights-input::-webkit-outer-spin-button,
.rvbtbooking-dynamic-form .rvbtbooking-nights-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.rvbtbooking-dynamic-form .rvbtbooking-nights-input:focus {
    outline: none;
}

.rvbtbooking-dynamic-form .rvbtbooking-nights-input::placeholder {
    color: #999;
    font-weight: 400;
}

/* Guests Card specific */
.rvbtbooking-dynamic-form .rvbtbooking-guests-card {
    min-width: 150px;
}

.rvbtbooking-dynamic-form .rvbtbooking-guests-summary {
    display: flex;
    align-items: baseline;
    gap: 6px;
}

.rvbtbooking-dynamic-form .rvbtbooking-guests-num {
    font-size: 18px;
    font-weight: 600;
    color: var(--rvbt-text);
}

.rvbtbooking-dynamic-form .rvbtbooking-guests-type {
    font-size: 10px;
    color: var(--rvbt-text-light);
    text-transform: uppercase;
}

/* Guests Modal Dropdown */
.rvbtbooking-dynamic-form .rvbtbooking-guests-wrap {
    position: relative;
}

.rvbtbooking-dynamic-form .rvbtbooking-guests-modal {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: auto;
    min-width: 280px;
    background: #fff;
    border: 1px solid var(--rvbt-border);
    border-radius: var(--rvbt-radius);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
    padding: 16px;
    z-index: 1000;
}

.rvbtbooking-dynamic-form .rvbtbooking-room-selects {
    display: flex;
    gap: 12px;
}

.rvbtbooking-dynamic-form .rvbtbooking-guest-select {
    flex: 1;
}

.rvbtbooking-dynamic-form .rvbtbooking-guest-select label {
    display: block;
    font-size: 11px;
    font-weight: 600;
    color: var(--rvbt-text-light);
    margin-bottom: 4px;
}

.rvbtbooking-dynamic-form .rvbtbooking-guest-select select {
    width: 100%;
    padding: 8px;
    border: 1px solid var(--rvbt-border);
    border-radius: 4px;
    font-size: 14px;
}

/* Datepicker Container - no padding */
.rvbtbooking-dynamic-form .rvbtbooking-datepicker-container {
    margin-top: 8px;
    background: #fff;
    border: 1px solid var(--rvbt-border);
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    padding: 0;
    z-index: 100;
}

/* ==========================================================================
   Guests Selects
   ========================================================================== */

.rvbtbooking-guests-selects {
    display: flex;
    gap: 10px;
}

.rvbtbooking-guests-selects select {
    flex: 1;
    min-width: 110px;
}

/* ==========================================================================
   Nights Display
   ========================================================================== */

.rvbtbooking-field-nights {
    min-width: 80px;
}

.rvbtbooking-nights-display {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 44px;
    padding: 0 16px;
    font-size: 14px;
    font-weight: 600;
    color: var(--rvbt-accent);
    background: rgba(20, 109, 116, 0.08);
    border-radius: var(--rvbt-radius);
    white-space: nowrap;
}

.theme-styled .rvbtbooking-nights-display {
    background: rgba(0, 0, 0, 0.05);
}

/* ==========================================================================
   Search Button - Pill shape, theme-aware
   ========================================================================== */

.rvbtbooking-field-button {
    flex-shrink: 0;
}

.rvbtbooking-dynamic-form .rvbtbooking-search-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 1.5rem;
    font-family: var(--rvbt-font);
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #ffffff;
    background: var(--rvbt-primary);
    border: none;
    border-radius: 22px;
    cursor: pointer;
    transition: background-color 0.2s ease, transform 0.1s ease;
    white-space: nowrap;
}

.rvbtbooking-dynamic-form .rvbtbooking-search-btn:hover {
    background: var(--rvbt-primary-hover);
}

.rvbtbooking-dynamic-form .rvbtbooking-search-btn:active {
    transform: scale(0.98);
}

/* Spinner */
.rvbtbooking-dynamic-form .rvbtbooking-spinner {
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-top-color: #fff;
    border-radius: 50%;
    animation: rvbt-spin 0.8s linear infinite;
}

@keyframes rvbt-spin {
    to { transform: rotate(360deg); }
}

/* ==========================================================================
   Spacer
   ========================================================================== */

.rvbtbooking-form-spacer {
    flex-shrink: 0;
}

/* Vertical layout spacer */
.rvbtbooking-form-vertical .rvbtbooking-form-spacer {
    height: 20px;
    width: 100% !important;
}

/* ==========================================================================
   Custom HTML
   ========================================================================== */

.rvbtbooking-form-html {
    flex-shrink: 0;
}

/* ==========================================================================
   jQuery UI Datepicker Overrides - Match search-form.php / frontend.css
   ========================================================================== */

.rvbtbooking-dynamic-form ~ .ui-datepicker,
body .ui-datepicker {
    font-family: var(--rvbt-font, system-ui, -apple-system, sans-serif);
    border-radius: 8px;
    border: 1px solid #efefef;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
    padding: 0;
    z-index: 9999 !important;
}

/* Multi-month calendar needs more width to prevent Saturday clipping */
.rvbtbooking-dynamic-form ~ .ui-datepicker-multi,
body .ui-datepicker-multi {
    width: auto !important;
    min-width: 580px;
}

.rvbtbooking-dynamic-form ~ .ui-datepicker-multi-2,
body .ui-datepicker-multi-2 {
    min-width: 600px;
}

/* Header styling */
.rvbtbooking-datepicker-container .ui-datepicker-header,
body .ui-datepicker .ui-datepicker-header {
    background: #ffffff !important;
    border: none !important;
    border-bottom: 1px solid #efefef !important;
    border-radius: 8px 8px 0 0;
    padding: 10px 5px;
}

/* Month/Year title */
.rvbtbooking-datepicker-container .ui-datepicker-title,
body .ui-datepicker .ui-datepicker-title {
    font-weight: 600;
    color: #666;
}

/* Navigation arrows */
.rvbtbooking-datepicker-container .ui-datepicker-prev,
.rvbtbooking-datepicker-container .ui-datepicker-next,
body .ui-datepicker .ui-datepicker-prev,
body .ui-datepicker .ui-datepicker-next {
    width: 32px !important;
    height: 32px !important;
    top: 8px !important;
    border-radius: 6px;
    cursor: pointer;
    transition: background 0.2s ease;
}

.rvbtbooking-datepicker-container .ui-datepicker-prev,
body .ui-datepicker .ui-datepicker-prev {
    left: 5px !important;
}

.rvbtbooking-datepicker-container .ui-datepicker-next,
body .ui-datepicker .ui-datepicker-next {
    right: 5px !important;
}

.rvbtbooking-datepicker-container .ui-datepicker-prev:hover,
.rvbtbooking-datepicker-container .ui-datepicker-next:hover,
body .ui-datepicker .ui-datepicker-prev:hover,
body .ui-datepicker .ui-datepicker-next:hover {
    background: #f5f5f5 !important;
    border: none !important;
}

/* Hide default jQuery UI icons */
.rvbtbooking-datepicker-container .ui-datepicker-prev .ui-icon,
.rvbtbooking-datepicker-container .ui-datepicker-next .ui-icon,
body .ui-datepicker .ui-datepicker-prev .ui-icon,
body .ui-datepicker .ui-datepicker-next .ui-icon {
    display: none !important;
}

/* CSS arrows */
.rvbtbooking-datepicker-container .ui-datepicker-prev::after,
.rvbtbooking-datepicker-container .ui-datepicker-next::after,
body .ui-datepicker .ui-datepicker-prev::after,
body .ui-datepicker .ui-datepicker-next::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 10px;
    height: 10px;
    border: solid #666;
    border-width: 0 2px 2px 0;
    transform-origin: center;
}

.rvbtbooking-datepicker-container .ui-datepicker-prev::after,
body .ui-datepicker .ui-datepicker-prev::after {
    transform: translate(-30%, -50%) rotate(135deg);
}

.rvbtbooking-datepicker-container .ui-datepicker-next::after,
body .ui-datepicker .ui-datepicker-next::after {
    transform: translate(-70%, -50%) rotate(-45deg);
}

.rvbtbooking-datepicker-container .ui-datepicker-prev:hover::after,
.rvbtbooking-datepicker-container .ui-datepicker-next:hover::after,
body .ui-datepicker .ui-datepicker-prev:hover::after,
body .ui-datepicker .ui-datepicker-next:hover::after {
    border-color: #333;
}

/* Calendar table */
.rvbtbooking-datepicker-container .ui-datepicker-calendar,
body .ui-datepicker .ui-datepicker-calendar {
    margin: 0;
    border-collapse: separate;
    border-spacing: 2px;
    padding: 8px;
}

/* Weekday headers */
.rvbtbooking-datepicker-container .ui-datepicker-calendar th,
body .ui-datepicker th {
    font-weight: 600;
    font-size: 0.75rem;
    text-transform: uppercase;
    color: #999;
    padding: 8px 4px;
}

/* Date cells */
.rvbtbooking-datepicker-container .ui-datepicker-calendar td,
body .ui-datepicker td {
    padding: 1px;
}

.rvbtbooking-datepicker-container .ui-datepicker-calendar .ui-state-default,
body .ui-datepicker td a,
body .ui-datepicker td span {
    border: 1px solid #efefef !important;
    background: #fff !important;
    text-align: center;
    padding: 8px;
    transition: all 0.15s ease;
}

.rvbtbooking-datepicker-container .ui-datepicker-calendar .ui-state-default:hover,
body .ui-datepicker td a:hover {
    background: #f8f8f8 !important;
    border-color: #ddd !important;
}

/* Selected/Active date - uses theme color via Elementor variable */
.rvbtbooking-datepicker-container .ui-datepicker-calendar .ui-state-active,
body .ui-datepicker .ui-datepicker-current-day a {
    background: color-mix(in srgb, var(--e-global-color-primary, #2563eb) 15%, transparent) !important;
    border-color: var(--e-global-color-primary, #2563eb) !important;
    color: var(--e-global-color-primary, #2563eb) !important;
    font-weight: 600;
}

/* Today highlight */
.rvbtbooking-datepicker-container .ui-datepicker-calendar .ui-state-highlight,
body .ui-datepicker .ui-state-highlight {
    background: #f0f9ff !important;
    border-color: #e0f2fe !important;
}

/* Disabled dates */
.rvbtbooking-datepicker-container .ui-datepicker-calendar .ui-state-disabled,
body .ui-datepicker .ui-state-disabled {
    opacity: 0.4;
}

.rvbtbooking-datepicker-container .ui-datepicker-calendar .ui-state-disabled .ui-state-default,
body .ui-datepicker .ui-state-disabled span {
    color: #ccc !important;
    cursor: not-allowed;
}

/* Multi-month: clear divider between months */
.rvbtbooking-datepicker-container .ui-datepicker-multi .ui-datepicker-group,
body .ui-datepicker-multi .ui-datepicker-group {
    padding: 0 5px;
}

.rvbtbooking-datepicker-container .ui-datepicker-multi .ui-datepicker-group-first,
body .ui-datepicker-multi .ui-datepicker-group-first {
    padding-left: 0;
}

.rvbtbooking-datepicker-container .ui-datepicker-multi .ui-datepicker-group-last,
body .ui-datepicker-multi .ui-datepicker-group-last {
    padding-right: 0;
}

/* ==========================================================================
   Responsive: Tablet
   ========================================================================== */

@media (max-width: 768px) {
    .rvbtbooking-dynamic-form.rvbtbooking-form-horizontal {
        flex-direction: column;
        align-items: stretch;
    }

    .rvbtbooking-dynamic-form.rvbtbooking-form-horizontal .rvbtbooking-form-field {
        width: 100%;
    }

    .rvbtbooking-dynamic-form.rvbtbooking-form-horizontal .rvbtbooking-form-spacer {
        height: 8px;
        width: 100% !important;
    }

    .rvbtbooking-dynamic-form input[type="text"],
    .rvbtbooking-dynamic-form select,
    .rvbtbooking-dynamic-form .rvbtbooking-search-btn {
        width: 100%;
    }

    .rvbtbooking-dynamic-form .rvbtbooking-date-card,
    .rvbtbooking-dynamic-form .rvbtbooking-guests-card,
    .rvbtbooking-dynamic-form .rvbtbooking-nights-card {
        width: 100%;
        min-width: 0;
        max-width: none;
        justify-content: flex-start;
    }

    .rvbtbooking-dynamic-form .rvbtbooking-search-btn {
        justify-content: center;
    }

    .rvbtbooking-guests-selects {
        flex-direction: column;
    }

    .rvbtbooking-guests-selects select {
        width: 100%;
    }

    /* Guests modal full width on tablet */
    .rvbtbooking-dynamic-form .rvbtbooking-guests-modal {
        min-width: 100%;
        left: 0;
        right: 0;
    }
}

/* ==========================================================================
   Responsive: Mobile
   ========================================================================== */

@media (max-width: 480px) {
    .rvbtbooking-dynamic-form {
        gap: 10px;
    }

    .rvbtbooking-dynamic-form input[type="text"],
    .rvbtbooking-dynamic-form select {
        height: 48px;
        font-size: 16px; /* Prevents iOS zoom */
    }

    .rvbtbooking-dynamic-form .rvbtbooking-date-card,
    .rvbtbooking-dynamic-form .rvbtbooking-guests-card,
    .rvbtbooking-dynamic-form .rvbtbooking-nights-card,
    .rvbtbooking-dynamic-form .rvbtbooking-search-btn {
        min-height: 48px;
    }

    .rvbtbooking-dynamic-form .rvbtbooking-search-btn {
        font-size: 15px;
    }

    .rvbtbooking-nights-display {
        height: 48px;
        width: 100%;
    }

    /* Compact date display on mobile */
    .rvbtbooking-dynamic-form .rvbtbooking-date-mday {
        font-size: 1.25rem;
    }

    .rvbtbooking-dynamic-form .rvbtbooking-date-month {
        font-size: 0.6875rem;
    }

    .rvbtbooking-dynamic-form .rvbtbooking-date-year,
    .rvbtbooking-dynamic-form .rvbtbooking-date-wday {
        font-size: 0.625rem;
    }
}

/* ==========================================================================
   Date Range Highlighting (Datepicker) - Legacy support
   ========================================================================== */

.rvbtbooking-date-start .ui-state-default,
.rvbtbooking-date-start .ui-state-active {
    background: var(--e-global-color-primary, #146d74) !important;
    color: #fff !important;
    border-radius: 6px !important;
}

.rvbtbooking-date-end .ui-state-default,
.rvbtbooking-date-end .ui-state-active {
    background: var(--e-global-color-primary, #146d74) !important;
    color: #fff !important;
    border-radius: 6px !important;
}

.rvbtbooking-date-range .ui-state-default {
    background: color-mix(in srgb, var(--e-global-color-primary, #146d74) 15%, transparent) !important;
}

/* ==========================================================================
   Range Highlight for Checkout Hover Preview - Theme-aware
   ========================================================================== */

/* Range highlight - dates between check-in and hovered checkout */
.rvbtbooking-datepicker-container .ui-datepicker-calendar td.rvbtbooking-range-highlight .ui-state-default {
    background: color-mix(in srgb, var(--e-global-color-primary, #146d74) 15%, transparent) !important;
    border-color: transparent !important;
}

/* Range start (check-in date) */
.rvbtbooking-datepicker-container .ui-datepicker-calendar td.rvbtbooking-range-start .ui-state-default {
    border-radius: 6px 0 0 6px !important;
    background: var(--e-global-color-primary, #146d74) !important;
    color: #fff !important;
}

/* Range end (hovered checkout date) */
.rvbtbooking-datepicker-container .ui-datepicker-calendar td.rvbtbooking-range-end .ui-state-default {
    border-radius: 0 6px 6px 0 !important;
    background: color-mix(in srgb, var(--e-global-color-primary, #146d74) 30%, transparent) !important;
    border-color: var(--e-global-color-primary, #146d74) !important;
}

/* ==========================================================================
   Nights Tooltip (range preview on checkout hover) - Theme-aware
   ========================================================================== */

.rvbtbooking-nights-tooltip {
    position: fixed;
    background: color-mix(in srgb, var(--e-global-color-primary, #146d74) 85%, transparent);
    color: #fff;
    padding: 3px 6px;
    border-radius: 3px;
    font-size: 11px;
    font-weight: 600;
    pointer-events: none;
    z-index: 10000;
    white-space: nowrap;
}

.rvbtbooking-nights-tooltip::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 4px solid transparent;
    border-top-color: color-mix(in srgb, var(--e-global-color-primary, #146d74) 85%, transparent);
}

/* ==========================================================================
   Print Styles
   ========================================================================== */

@media print {
    .rvbtbooking-dynamic-form {
        display: none;
    }
}
