:root {
    color-scheme: light dark;
    --transition-duration: 200ms;
    --primary-500: #d96826;
    --primary-600: #d96826;
    --primary-400: #d96826;
}

/* Prevent scroll on body and html when modal is open */
body.modal-open,
html:has(body.modal-open) {
    overflow: hidden !important;
    overscroll-behavior: none;
}


/* Transitions ciblées au lieu de la règle globale * pour de meilleures performances */
button, a, input, select, textarea, .hover-lift, .active-press, .nav-tab {
    transition: background-color var(--transition-duration) ease,
    border-color var(--transition-duration) ease,
    color var(--transition-duration) ease,
    opacity var(--transition-duration) ease,
    transform var(--transition-duration) ease;
}

.sheet {
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1);
}
.sheet:target {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    overscroll-behavior: none;
}
.sheet:target .sheet-content {
    transform: translateY(0);
}
.sheet-content {
    transform: translateY(100%);
    transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1);
    touch-action: pan-y;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

.sheet-content.dragging {
    transition: none;
}

.sheet-content .sheet-handle {
    cursor: grab;
    touch-action: none;
}

.sheet-content .sheet-handle:active {
    cursor: grabbing;
}

/* Extended swipe dismiss area for easier gesture */
.swipe-dismiss-area {
    touch-action: pan-y;
    user-select: none;
    -webkit-user-select: none;
}

/* Active tab styling based on current route */
.nav-tab {
    color: rgb(113 113 122); /* zinc-500 */
    transition: all 200ms ease;
}
.nav-tab.active {
    color: var(--primary-600);
    transform: scale(1.05);
}

.dark .nav-tab.active {
    color: var(--primary-400);
}

.no-booking { display: none; }
body[data-has-booking="false"] .has-booking { display: none; }
body[data-has-booking="false"] .no-booking { display: block; }

#theme-toggle svg {
    transition: all 200ms ease;
}
#theme-toggle:hover {
    transform: scale(1.1);
}

@keyframes slideIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

.hover-lift:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

.active-press:active {
    transform: scale(0.98);
}

.filter-pill {
    transition: all 200ms ease;
}
.filter-pill:hover {
    background-color: rgb(244 244 245);
    transform: translateY(-1px);
}
.dark .filter-pill:hover {
    background-color: rgb(39 39 42);
}

/* Rétablir les styles de liste par défaut pour les listes sans classes Tailwind */
ul:not([class*="list-"]) {
    list-style: disc;
    padding-left: 1.25rem;
}

ol:not([class*="list-"]) {
    list-style: decimal;
    padding-left: 1.25rem;
}
