/* Shared search UI: date picker, loading overlay, filter drawer */

.sb-fp.flatpickr-calendar { border-radius: 18px; box-shadow: 0 18px 40px -12px rgba(20, 40, 30, .35); padding-bottom: 8px; }
.sb-fp-presets { display: flex; flex-wrap: wrap; gap: 6px; padding: 8px 10px 2px; border-top: 1px solid #eef5f1; }
.sb-fp-preset {
    border: 1px solid #d9e6df; background: #eef5f1; color: #1c2a24; border-radius: 999px;
    padding: 6px 12px; font-size: 12px; font-weight: 600; cursor: pointer; line-height: 1.2;
}
.sb-fp-preset:hover, .sb-fp-preset:focus-visible { border-color: #84c7ad; background: #fff; }
.sb-fp-note { padding: 6px 12px 2px; font-size: 12px; color: #6d6d6c; text-align: center; }
.sb-fp .flatpickr-day.selected, .sb-fp .flatpickr-day.startRange, .sb-fp .flatpickr-day.endRange { background: #84c7ad; border-color: #84c7ad; color: #1c2a24; }
.sb-fp .flatpickr-day.inRange { background: #eef5f1; border-color: #eef5f1; box-shadow: -5px 0 0 #eef5f1, 5px 0 0 #eef5f1; }

@media (max-width: 767px) {
    html.sb-picker-open .crisp-client, html.sb-picker-open [class^="cc-"] { display: none !important; }
    /* Calendar as a bottom sheet on phones */
    .sb-fp.flatpickr-calendar.open {
        position: fixed !important; left: 0 !important; right: 0 !important; top: auto !important; bottom: 0 !important;
        width: 100% !important; max-width: 100%; border-radius: 20px 20px 0 0; z-index: 10000;
        padding-bottom: calc(12px + env(safe-area-inset-bottom));
    }
    .sb-fp.flatpickr-calendar.open::before, .sb-fp.flatpickr-calendar.open::after { display: none; }
    .sb-fp .flatpickr-innerContainer, .sb-fp .flatpickr-rContainer, .sb-fp .flatpickr-days, .sb-fp .dayContainer { width: 100%; max-width: 100%; min-width: 0; }
    .sb-fp .flatpickr-day { max-width: none; height: 44px; line-height: 44px; }
}

.sb-date-hint { margin: 6px 0 0; font-size: 13px; font-weight: 600; color: #c0392b; }
.sb-date-hint[hidden] { display: none; }

/* Loading overlay */
.sb-loading {
    position: fixed; inset: 0; z-index: 9999; display: flex; align-items: flex-start; justify-content: center;
    padding-top: 30vh; background: rgba(255, 255, 255, .55); backdrop-filter: blur(2px);
    opacity: 0; pointer-events: none; transition: opacity .15s ease;
}
.sb-loading.is-on { opacity: 1; pointer-events: auto; }
.sb-loading__box {
    display: inline-flex; align-items: center; gap: 12px; background: #fff; border-radius: 999px;
    padding: 14px 22px; box-shadow: 0 18px 40px -12px rgba(20, 40, 30, .35);
    font: 600 14px/1.2 Lato, system-ui, sans-serif; color: #1c2a24;
}
.sb-loading__spinner {
    width: 18px; height: 18px; border-radius: 50%; border: 3px solid #eef5f1; border-top-color: #84c7ad;
    animation: sb-spin .8s linear infinite;
}
@keyframes sb-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .sb-loading__spinner { animation-duration: 2s; } }

/* Mobile filter drawer (search page) */
.sb-drawer-backdrop { display: none; }
@media (max-width: 1023px) {
    .filters-card.sb-drawer {
        display: block !important; position: fixed; left: 0; right: 0; bottom: 0; z-index: 9990;
        max-height: 85vh; overflow-y: auto; border-radius: 20px 20px 0 0; margin: 0;
        transform: translateY(105%); transition: transform .25s ease; visibility: hidden;
        padding-bottom: 0;
    }
    .filters-card.sb-drawer.is-open { transform: translateY(0); visibility: visible; }
    .sb-drawer-backdrop.is-open { display: block; position: fixed; inset: 0; z-index: 9989; background: rgba(28, 42, 36, .45); }
    .sb-drawer-footer {
        position: sticky; bottom: 0; display: flex; gap: 10px; background: #fff; border-top: 1px solid #eef5f1;
        margin: 16px -20px 0; padding: 12px 20px calc(12px + env(safe-area-inset-bottom));
    }
    html.sb-drawer-open { overflow: hidden; }
    html.sb-drawer-open .crisp-client, html.sb-drawer-open [class^="cc-"] { display: none !important; }
}
@media (min-width: 1024px) {
    .sb-drawer-footer, .sb-drawer-close { display: none !important; }
}
