/* Search filters (components/filters.blade.php) – served as a cached file */
    #serviceList::-webkit-scrollbar,
    #locationDropdown::-webkit-scrollbar,
    #brandDropdown::-webkit-scrollbar {
        width: 4px;
    }

    #serviceList::-webkit-scrollbar-track,
    #locationDropdown::-webkit-scrollbar-track,
    #brandDropdown::-webkit-scrollbar-track {
        background: transparent;
    }

    #serviceList::-webkit-scrollbar-thumb,
    #locationDropdown::-webkit-scrollbar-thumb,
    #brandDropdown::-webkit-scrollbar-thumb {
        background: rgb(var(--ps-line));
        border-radius: 4px;
    }

    #serviceList::-webkit-scrollbar-thumb:hover,
    #locationDropdown::-webkit-scrollbar-thumb:hover,
    #brandDropdown::-webkit-scrollbar-thumb:hover {
        background: rgb(var(--ps-muted));
    }

    /* Dropdown animation */
    #locationDropdown,
    #brandDropdown {
        transition: opacity .2s ease-out, transform .2s ease-out;
    }

    #locationDropdown.hidden,
    #brandDropdown.hidden {
        opacity: 0;
        transform: translateY(-8px);
        pointer-events: none;
    }

    /* Option rows (location / brand dropdowns) */
    #filterModal .filter-row {
        display: flex;
        align-items: center;
        gap: .75rem;
        min-height: 44px;
        padding: .5rem .75rem;
        border-radius: .75rem;
        cursor: pointer;
        transition: background-color .15s ease;
    }

    #filterModal .filter-row:hover {
        background: rgb(var(--ps-fg) / .04);
    }

    /* keyboard: the option's (visually hidden) radio has focus */
    #filterModal label:has(> input[type="radio"]:focus-visible) {
        outline: 2px solid rgb(var(--ps-accent, 11 125 95));
        outline-offset: 2px;
    }

    /* Option pills (categories / services) */
    #filterModal .filter-pill {
        display: flex;
        align-items: center;
        gap: .75rem;
        min-height: 46px;
        padding: .625rem 1rem;
        border-radius: 1rem;
        background: rgb(var(--ps-surface));
        box-shadow: inset 0 0 0 1px rgb(var(--ps-line));
        font-size: 15px;
        font-weight: 500;
        line-height: 1.3;
        cursor: pointer;
        transition: background-color .15s ease, box-shadow .15s ease, color .15s ease;
    }

    #filterModal .filter-pill:hover {
        box-shadow: inset 0 0 0 1px rgb(var(--ps-accent) / .5);
    }

    #filterModal .filter-pill:active {
        transform: scale(.99);
    }

    /* Radio dot */
    #filterModal .filter-dot {
        position: relative;
        display: inline-flex;
        flex-shrink: 0;
        width: 18px;
        height: 18px;
        border-radius: 9999px;
        box-shadow: inset 0 0 0 1.5px rgb(var(--ps-line));
        transition: box-shadow .15s ease;
    }

    /* Checked state */
    .cat-option input:checked~span:first-of-type,
    .svc-option input:checked~span:first-of-type,
    .location-option input:checked~span:first-of-type,
    .brand-option input:checked~span:first-of-type {
        box-shadow: inset 0 0 0 1.5px rgb(var(--ps-accent));
    }

    .cat-option input:checked~span:first-of-type::after,
    .svc-option input:checked~span:first-of-type::after,
    .location-option input:checked~span:first-of-type::after,
    .brand-option input:checked~span:first-of-type::after {
        content: '';
        position: absolute;
        top: 50%;
        left: 50%;
        width: 8px;
        height: 8px;
        background: rgb(var(--ps-accent));
        border-radius: 50%;
        transform: translate(-50%, -50%);
    }

    .cat-option input:checked ~ span:last-child,
    .svc-option input:checked ~ span:last-child,
    .location-option input:checked ~ span:last-child,
    .brand-option input:checked ~ span:last-child {
        color: rgb(var(--ps-accent));
        font-weight: 600;
    }

    #filterModal .cat-option:has(input:checked),
    #filterModal .svc-option:has(input:checked) {
        background: rgb(var(--ps-accent) / .1);
        box-shadow: inset 0 0 0 1.5px rgb(var(--ps-accent));
        color: rgb(var(--ps-accent));
    }

    #filterModal .location-option:has(input:checked),
    #filterModal .brand-option:has(input:checked) {
        background: rgb(var(--ps-accent) / .1);
    }

    /* Mobile section chips */
    #filterModal .mobile-nav-chip {
        display: inline-flex;
        align-items: center;
        min-height: 40px;
        border-radius: 9999px;
        padding: 0 1rem;
        font-size: 14px;
        font-weight: 600;
        line-height: 1.2;
        color: rgb(var(--ps-fg));
        background: rgb(var(--ps-fg) / .05);
        transition: background-color .15s ease;
    }

    #filterModal .mobile-nav-chip:hover {
        background: rgb(var(--ps-fg) / .09);
    }

    #filterModal .mobile-nav-chip:active {
        transform: scale(0.98);
    }

    /* Footer buttons (rendered by <x-filters.action-buttons />) */
    #filterModal .mobile-filters-footer button {
        min-height: 48px !important;
        border: 0 !important;
        border-radius: 9999px !important;
        box-shadow: none !important;
        font-size: 15px !important;
        font-weight: 600 !important;
        transition: background-color .15s ease, transform .15s ease;
    }

    #filterModal .mobile-filters-footer button:not(.submit-btn) {
        background: rgb(var(--ps-fg) / .07) !important;
        color: rgb(var(--ps-fg)) !important;
    }

    #filterModal .mobile-filters-footer button:not(.submit-btn):hover {
        background: rgb(var(--ps-fg) / .11) !important;
    }

    #filterModal .mobile-filters-footer .submit-btn {
        background: rgb(var(--ps-accent)) !important;
        color: rgb(var(--ps-on-accent)) !important;
    }

    #filterModal .mobile-filters-footer .submit-btn:hover {
        background: rgb(var(--ps-accent-hover)) !important;
    }

    @media (max-width: 767px) {
        #filterModal {
            width: 100%;
            max-width: 100%;
        }

        #filterModal .mobile-filter-section {
            border-radius: 1.5rem;
            padding: 14px;
            background: rgb(var(--ps-surface));
            box-shadow: inset 0 0 0 1px rgb(var(--ps-fg) / .06);
        }

        #filterModal .mobile-filter-section.pt-2 {
            padding-top: 14px;
        }

        #filterModal #serviceSearch,
        #filterModal #locationToggle,
        #filterModal #brandToggle,
        #filterModal .cat-option,
        #filterModal .svc-option,
        #filterModal .location-option,
        #filterModal .brand-option {
            min-height: 46px;
        }

        #filterModal .service-list-panel {
            border-radius: 1rem;
            background: rgb(var(--ps-fg) / .03);
            padding: 8px;
        }

        #filterModal .service-search-wrap {
            position: sticky;
            top: 0;
            z-index: 1;
            padding-bottom: 2px;
        }

        #filterModal #serviceList {
            max-height: 40vh;
            padding-right: 4px;
        }

        #filterModal #locationDropdown,
        #filterModal #brandDropdown {
            max-height: 45vh;
        }

        #filterModal .cat-option,
        #filterModal .svc-option {
            min-height: 48px;
        }

        #filterModal .mobile-filters-footer {
            padding-bottom: calc(8px + env(safe-area-inset-bottom));
        }
    }
