/* Advanced Property Filters - Redesigned Styles */



/* Filter Sidebar - Modern Design */

.filters-sidebar {

    background: #ffffff;

    border-radius: 16px;

    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08);

    overflow: hidden;

    transition: all 0.3s ease;

    height: fit-content;

    position: sticky;

}



.filters-card {

    height: fit-content;

    display: flex;

    flex-direction: column;

    min-height: 100%;

}



/* Filter Header - Enhanced to match header */

.filters-header {

    background: linear-gradient(135deg, #1e40af 0%, #3b82f6 100%);

    color: white;

    padding: 20px;

    display: flex;

    justify-content: space-between;

    align-items: center;

    position: relative;

}



.filters-title {

    display: flex;

    align-items: center;

    gap: 12px;

}



.filters-title h3 {

    margin: 0;

    font-size: 18px;

    font-weight: 600;

}



.active-filters-count {

    background: rgba(255, 255, 255, 0.2);

    color: white;

    padding: 4px 8px;

    border-radius: 12px;

    font-size: 12px;

    font-weight: 600;

    min-width: 20px;

    text-align: center;

}



.filters-actions {

    display: flex;

    gap: 8px;

}



.preset-btn,

.clear-filters-btn,

.close-filters-btn {

    background: rgba(255, 255, 255, 0.2);

    border: none;

    color: white;

    width: 36px;

    height: 36px;

    border-radius: 8px;

    display: flex;

    align-items: center;

    justify-content: center;

    cursor: pointer;

    transition: all 0.2s ease;

}



.preset-btn:hover,

.clear-filters-btn:hover,

.close-filters-btn:hover {

    background: rgba(255, 255, 255, 0.3);

    transform: translateY(-1px);

}



/* Filter Presets Panel */

.filter-presets {

    background: #f8f9fa;

    border-bottom: 1px solid #e9ecef;

    padding: 16px;

    animation: slideDown 0.3s ease;

}



.presets-header {

    display: flex;

    justify-content: space-between;

    align-items: center;

    margin-bottom: 12px;

}



.presets-header h4 {

    margin: 0;

    font-size: 14px;

    font-weight: 600;

    color: #495057;

}



.close-presets {

    background: none;

    border: none;

    color: #6c757d;

    cursor: pointer;

    padding: 4px;

    border-radius: 4px;

    transition: all 0.2s ease;

}



.close-presets:hover {

    background: #e9ecef;

    color: #495057;

}



.presets-grid {

    display: grid;

    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));

    gap: 8px;

}



.preset-chip {

    background: white;

    border: 1px solid #dee2e6;

    border-radius: 20px;

    padding: 8px 12px;

    display: flex;

    align-items: center;

    gap: 6px;

    cursor: pointer;

    transition: all 0.2s ease;

    font-size: 12px;

    color: #495057;

}



.preset-chip:hover {

    background: #1e40af;

    color: white;

    border-color: #1e40af;

    transform: translateY(-1px);

}



.preset-chip i {

    font-size: 10px;

}



/* Filter Tabs Navigation */

.filter-tabs-navigation {

    display: flex;

    background: #f8f9fa;

    border-bottom: 1px solid #e9ecef;

    margin: 0 -8px 16px -8px;

}



.tab-nav-item {

    flex: 1;

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 8px;

    padding: 12px 16px;

    background: transparent;

    border: none;

    border-bottom: 3px solid transparent;

    cursor: pointer;

    transition: all 0.2s ease;

    font-weight: 500;

    color: #6c757d;

    font-size: 14px;

    position: relative;

}



.tab-nav-item:hover {

    background: rgba(30, 64, 175, 0.05);

    color: #1e40af;

}



.tab-nav-item.active {

    color: #1e40af;

    border-bottom-color: #1e40af;

    background: rgba(30, 64, 175, 0.08);

}



.tab-nav-item i {

    font-size: 14px;

}







.tab-pane {

    display: none;

    padding: 16px;

    background: white;

    border-radius: 8px;

    border: 1px solid #e9ecef;

    animation: fadeIn 0.3s ease;

}



.tab-pane.active {

    display: block;

}



/* Hide old collapsible sections when tabs are used */

.filter-tabs-navigation~.filter-tab-content .filter-sections {

    display: none;

}



/* Filter Groups - Enhanced */

.filter-group {

    margin-bottom: 12px;

}



.filter-group:last-child {

    margin-bottom: 0;

}



.filter-label {

    display: flex;

    align-items: center;

    gap: 8px;

    font-weight: 600;

    color: #495057;

    margin-bottom: 8px;

    font-size: 13px;

}



.filter-label i {

    color: #1e40af;

    font-size: 12px;

}



/* Filter label with clear button container */

.filter-label-with-clear {

    display: flex;

    align-items: center;

    justify-content: space-between;

    margin-bottom: 8px;

}



.filter-label-with-clear .filter-label {

    margin-bottom: 0;

    flex: 1;

}



/* Individual filter clear button */

.filter-clear-btn {

    background: #f8f9fa;

    border: 1px solid #dee2e6;

    color: #6c757d;

    width: 24px;

    height: 24px;

    border-radius: 6px;

    display: flex;

    align-items: center;

    justify-content: center;

    cursor: pointer;

    transition: all 0.2s ease;

    font-size: 10px;

    padding: 0;

    flex-shrink: 0;

}



.filter-clear-btn:hover {

    background: #e9ecef;

    border-color: #adb5bd;

    color: #495057;

    transform: scale(1.05);

}



.filter-clear-btn:active {

    transform: scale(0.95);

}



/* Radio Groups - Compact Design */

.radio-group.compact {

    display: flex;

    flex-wrap: wrap;

    gap: 8px;

    overflow-x: auto;

    padding-bottom: 4px;

    min-height: 44px;

}



/* Specific styling for Category radio group */

.radio-group.compact:has(input[name="category"]) {

    justify-content: flex-start;

}



.radio-group.compact::-webkit-scrollbar {

    height: 4px;

}



.radio-group.compact::-webkit-scrollbar-track {

    background: #f1f1f1;

    border-radius: 2px;

}



.radio-group.compact::-webkit-scrollbar-thumb {

    background: #c1c1c1;

    border-radius: 2px;

}



.radio-group.compact::-webkit-scrollbar-thumb:hover {

    background: #a8a8a8;

}



.radio-option {

    display: inline-flex !important;

    align-items: center;

    gap: 6px;

    cursor: pointer;

    padding: 6px 12px;

    border: 1px solid #dee2e6;

    border-radius: 8px;

    transition: all 0.2s ease;

    background: white;

    white-space: nowrap;

    margin-right: 6px;

    margin-bottom: 6px;

    vertical-align: middle;

}



.radio-option:hover {

    border-color: #667eea;

    background: #f8f9ff;

}



.radio-option input[type="radio"] {

    display: none;

}



.radio-custom {

    width: 14px;

    height: 14px;

    border: 2px solid #dee2e6;

    border-radius: 50%;

    position: relative;

    transition: all 0.2s ease;

}



.radio-option input[type="radio"]:checked+.radio-custom {

    border-color: #1e40af;

    background: #1e40af;

}



.radio-option input[type="radio"]:checked+.radio-custom::after {

    content: '';

    position: absolute;

    top: 50%;

    left: 50%;

    transform: translate(-50%, -50%);

    width: 4px;

    height: 4px;

    background: white;

    border-radius: 50%;

}



.radio-label {

    font-size: 12px;

    color: #495057;

    font-weight: 500;

}



/* Select Groups - Enhanced */

.select-group {

    position: relative;

}



.filter-select,

.filter-multiselect {

    width: 100%;

    padding: 8px 12px;

    border: 1px solid #dee2e6;

    border-radius: 8px;

    font-size: 13px;

    background: white;

    transition: all 0.2s ease;

}



.filter-select:focus,

.filter-multiselect:focus {

    outline: none;

    border-color: #1e40af;

    box-shadow: 0 0 0 3px rgba(30, 64, 175, 0.1);

}



/* Input Groups */

.input-group {

    position: relative;

}



.filter-input {

    width: 100%;

    padding: 8px 12px 8px 36px;

    border: 1px solid #dee2e6;

    border-radius: 8px;

    font-size: 13px;

    transition: all 0.2s ease;

}



.filter-input:focus {

    outline: none;

    border-color: #1e40af;

    box-shadow: 0 0 0 3px rgba(30, 64, 175, 0.1);

}



.input-icon {

    position: absolute;

    left: 12px;

    top: 50%;

    transform: translateY(-50%);

    color: #6c757d;

    font-size: 12px;

}



/* Price Range Slider - Enhanced */

.price-range-container {

    margin-top: 8px;

}



.price-range-slider {

    position: relative;

    height: 40px;

    margin-bottom: 24px;
    padding: 0 10px;
    box-sizing: border-box;
    width: 100%;

}



.slider-track {

    position: absolute;

    top: 50%;

    left: 10px;
    right: 10px;

    height: 6px;

    background: #e9ecef;

    border-radius: 3px;

    transform: translateY(-50%);

}



.slider-range {

    position: absolute;

    height: 100%;

    background: linear-gradient(135deg, #1e40af 0%, #3b82f6 100%);

    border-radius: 3px;

    left: 0%;

    width: 50%;

}



.slider-thumb {

    position: absolute;

    top: 50%;

    width: 20px;

    height: 20px;

    background: white;

    border: 3px solid #1e40af;

    border-radius: 50%;

    cursor: grab;

    transform: translate(-50%, -50%);

    transition: all 0.2s ease;

    z-index: 2;

}



.slider-thumb:hover {

    transform: translate(-50%, -50%) scale(1.1);

    box-shadow: 0 2px 8px rgba(30, 64, 175, 0.3);

}



.slider-thumb:active {

    cursor: grabbing;

    transform: translate(-50%, -50%) scale(1.15);

}



.slider-thumb-min {

    left: 0%;

}



.slider-thumb-max {

    left: 50%;

}



.thumb-value {

    position: absolute;

    top: -28px;

    left: 50%;

    transform: translateX(-50%);

    background: #1e40af;

    color: white;

    padding: 2px 6px;

    border-radius: 4px;

    font-size: 10px;

    font-weight: 600;

    white-space: nowrap;

    opacity: 0;

    transition: opacity 0.2s ease;

    pointer-events: none;

}



.thumb-value::after {

    content: '';

    position: absolute;

    top: 100%;

    left: 50%;

    transform: translateX(-50%);

    border: 4px solid transparent;

    border-top-color: #1e40af;

}



.slider-thumb:hover .thumb-value,

.slider-thumb:active .thumb-value {

    opacity: 1;

}



/* Price Inputs - Enhanced */

.price-inputs {

    display: flex;

    align-items: center;

    gap: 8px;

}



.price-group {

    flex: 1;

    position: relative;

}



.price-group .filter-input {

    padding: 8px 12px;

}



.price-label {

    position: absolute;

    top: -6px;

    left: 8px;

    background: white;

    padding: 0 4px;

    font-size: 10px;

    color: #6c757d;

    font-weight: 500;

}



.price-separator {

    color: #6c757d;

    font-weight: 600;

    font-size: 14px;

}



/* Action Buttons */

.filter-actions-bottom {

    padding: 16px;

    border-top: 1px solid #e9ecef;

    background: #f8f9fa;

    position: sticky;

    bottom: 0;

    margin-top: auto;

}



.btn-apply-filters {

    width: 100%;

    background: linear-gradient(135deg, #1e40af 0%, #3b82f6 100%);

    color: white;

    border: none;

    padding: 12px 20px;

    border-radius: 8px;

    font-weight: 600;

    font-size: 14px;

    height: 48px;

    min-height: 48px;

    box-sizing: border-box;

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 8px;

    cursor: pointer;

    transition: all 0.2s ease;

    margin-top: 1rem;

}



.btn-apply-filters:hover {

    transform: translateY(-1px);

    box-shadow: 0 4px 12px rgba(30, 64, 175, 0.3);

}



/* Mobile Responsive */

@media (min-width: 769px) {

    /* Hide mobile filter toggle on desktop - MORE SPECIFIC */

    .property-listing-container .mobile-filter-toggle {

        display: none !important;

    }



    /* Hide mobile close button on desktop - MORE SPECIFIC */

    .filters-sidebar .close-filters-btn.mobile-only {

        display: none !important;

    }



    /* Show filters sidebar on desktop - MORE SPECIFIC */

    .property-listing-container .filters-sidebar {

        display: block !important;

        position: relative;

        transform: none !important;

    }



    /* Hide mobile overlay on desktop - MORE SPECIFIC */

    .property-listing-container .mobile-overlay {

        display: none !important;

    }

}



@media (max-width: 768px) {

    /* Mobile Filter Toggle Button - CRITICAL FIX - MORE SPECIFIC */

    .property-listing-container .mobile-filter-toggle {

        display: flex !important;

        justify-content: center;

        margin-bottom: 12px;

        order: 1;

        padding: 0 16px;

    }



    .property-listing-container .mobile-filter-toggle .btn-toggle-filters {

        width: auto !important;

        max-width: 200px !important;

        background: linear-gradient(135deg, #1e40af 0%, #3b82f6 100%) !important;

        color: white !important;

        border: none !important;

        padding: 10px 16px !important;

        border-radius: 6px !important;

        font-weight: 600 !important;

        font-size: 14px !important;

        display: inline-flex !important;

        align-items: center !important;

        justify-content: center !important;

        gap: 6px !important;

        cursor: pointer !important;

        transition: all 0.2s ease !important;

        box-shadow: 0 2px 6px rgba(30, 64, 175, 0.25) !important;

        margin: 0 auto !important;

        flex: none !important;

    }



    .property-listing-container .mobile-filter-toggle .btn-toggle-filters:hover {

        transform: translateY(-1px) !important;

        box-shadow: 0 4px 12px rgba(30, 64, 175, 0.4) !important;

    }



    .property-listing-container .mobile-filter-toggle .btn-toggle-filters.active {

        background: linear-gradient(135deg, #28a745 0%, #20c997 100%) !important;

    }



    .property-listing-container .mobile-filter-toggle .btn-toggle-filters.active .toggle-icon {

        transform: rotate(180deg);

    }



    .property-listing-container .toggle-icon {

        transition: transform 0.3s ease;

    }



    /* Mobile Overlay - CRITICAL FIX - MORE SPECIFIC */

    .property-listing-container .mobile-overlay {

        display: none !important;

        position: fixed;

        top: 0;

        left: 0;

        right: 0;

        bottom: 0;

        background: rgba(0, 0, 0, 0.5);

        z-index: 1040;

        opacity: 0;

        transition: opacity 0.3s ease;

    }



    .property-listing-container .mobile-overlay.active {

        display: block !important;

        opacity: 1;

    }



    /* Hide desktop filters on mobile by default - ULTRA SPECIFIC */

    @media (max-width: 768px) {

        .property-listing-container .filters-sidebar {

            display: none !important;

            position: fixed !important;

            top: 0 !important;

            left: 0 !important;

            right: 0 !important;

            bottom: 0 !important;

            z-index: 99999 !important;

            border-radius: 0 !important;

            background: white !important;

            overflow-y: auto !important;

            width: 100vw !important;

            max-width: 100vw !important;

            min-height: 100vh !important;

            height: 100vh !important;

            visibility: hidden !important;

            opacity: 0 !important;

            transform: translateX(-100%) !important;

            transition: all 0.3s ease !important;

            box-sizing: border-box !important;

        }



        .property-listing-container .filters-sidebar.mobile-active {

            display: block !important;

            visibility: visible !important;

            opacity: 1 !important;

            transform: translateX(0%) !important;

            animation: slideInLeft 0.3s ease !important;

            height: 100vh !important;

            max-height: 100vh !important;

        }

    }



    .property-listing-container .filters-card {

        height: 100vh;

        max-height: 100vh;

        display: flex;

        flex-direction: column;

        overflow: hidden;

    }



    .property-listing-container .presets-grid {

        grid-template-columns: repeat(2, 1fr);

    }



    .property-listing-container .radio-group.compact {

        flex-direction: column;

        gap: 6px;

    }



    .property-listing-container .filter-actions-bottom {

        position: sticky;

        bottom: 0;

        background: white;

        border-top: 2px solid #e9ecef;

        padding: 12px;

        margin-top: auto;

    }



    /* Ensure main content adjusts properly - MORE SPECIFIC */

    .property-listing-container .main-content {

        width: 100%;

    }



    /* Close button for mobile - MORE SPECIFIC */

    .property-listing-container .filters-sidebar .close-filters-btn.mobile-only {

        display: flex !important;

    }



    /* Mobile Tab Navigation Styles */

    .property-listing-container .filter-tabs-navigation {

        margin: 0 -16px 16px -16px;

        padding: 0 16px;

        border-bottom: 2px solid #e9ecef;

    }



    .property-listing-container .tab-nav-item {

        padding: 14px 12px;

        font-size: 13px;

        gap: 6px;

        border-bottom: 3px solid transparent;

    }



    .property-listing-container .tab-nav-item i {

        font-size: 12px;

    }



    .property-listing-container .tab-nav-item span {

        font-weight: 600;

    }





    .property-listing-container .tab-pane {

        padding: 12px;

        margin-bottom: 0;

        border-radius: 8px;

        border: 1px solid #e9ecef;

    }

}



/* Animations */

@keyframes slideDown {

    from {

        opacity: 0;

        transform: translateY(-10px);

    }

    to {

        opacity: 1;

        transform: translateY(0);

    }

}



@keyframes slideInLeft {

    from {

        transform: translateX(-100%);

        opacity: 0;

    }

    to {

        transform: translateX(0);

        opacity: 1;

    }

}



@keyframes fadeIn {

    from {

        opacity: 0;

    }

    to {

        opacity: 1;

    }

}



/* Multi-select Enhancements - Force Select2 to override native selects */

.filter-multiselect {

    display: none !important;
    /* Hide native selects */

}



.select2-container--default .select2-selection--multiple {

    border: 1px solid #dee2e6 !important;

    border-radius: 8px !important;

    min-height: 38px !important;

    padding: 4px 8px !important;

    background: white !important;

    transition: all 0.2s ease !important;

    display: block !important;

    width: 100% !important;

}



.select2-container--default .select2-selection--multiple:hover {

    border-color: #1e40af !important;

}



.select2-container--default.select2-container--focus .select2-selection--multiple {

    border-color: #1e40af !important;

    box-shadow: 0 0 0 3px rgba(30, 64, 175, 0.1) !important;

}



.select2-container--default .select2-selection--multiple .select2-selection__choice {

    background: #1e40af !important;

    color: white !important;

    border: none !important;

    border-radius: 4px !important;

    font-size: 11px !important;

    padding: 2px 6px !important;

    margin: 2px !important;

    display: inline-flex !important;

    align-items: center !important;

    gap: 4px !important;

}



.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {

    color: white !important;

    margin-right: 0 !important;

    font-size: 12px !important;

    opacity: 0.8 !important;

    transition: opacity 0.2s ease !important;

}



.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {

    opacity: 1 !important;

}



.select2-container--default .select2-search--inline .select2-search__field {

    margin-top: 0 !important;

    margin-left: 0 !important;

    font-size: 13px !important;

    color: #495057 !important;

}



.select2-dropdown {

    border: 1px solid #dee2e6 !important;

    border-radius: 8px !important;

    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;

    background: white !important;

    z-index: 9999 !important;

}



.select2-results__options {

    max-height: 200px !important;

    overflow-y: auto !important;

}



.select2-results__option {

    padding: 8px 12px !important;

    font-size: 13px !important;

    color: #495057 !important;

    transition: all 0.2s ease !important;

}



.select2-results__option:hover {

    background: #f0f7ff !important;

    color: #1e40af !important;

}



.select2-results__option--selected {

    background: #1e40af !important;

    color: white !important;

}



.select2-results__option--highlighted {

    background: #1e40af !important;

    color: white !important;

}



/* Validation Messages */

.validation-message {

    background: #f8d7da;

    color: #721c24;

    padding: 6px 8px;

    border-radius: 4px;

    font-size: 11px;

    margin-top: 4px;

    animation: fadeIn 0.2s ease;

}



/* Active Filter Indicators */

.filter-section.has-active-filters {

    border-color: #1e40af;

    box-shadow: 0 0 0 2px rgba(30, 64, 175, 0.1);

}



.filter-section.has-active-filters .section-header {

    background: linear-gradient(135deg, rgba(30, 64, 175, 0.1) 0%, rgba(59, 130, 246, 0.1) 100%);

}



/* Loading State */

.filters-sidebar.loading {

    pointer-events: none;

    opacity: 0.6;

}



.filters-sidebar.loading::after {

    content: '';

    position: absolute;

    top: 50%;

    left: 50%;

    transform: translate(-50%, -50%);

    width: 20px;

    height: 20px;

    border: 2px solid #f3f3f3;

    border-top: 2px solid #667eea;

    border-radius: 50%;

    animation: spin 1s linear infinite;

}



@keyframes spin {

    0% {
        transform: translate(-50%, -50%) rotate(0deg);
    }

    100% {
        transform: translate(-50%, -50%) rotate(360deg);
    }

}