/**
 * Filter Components CSS
 * Shared filter interface styling used across all post types
 * (species, ecoregions, habitats, threats archive)
 */

/* Import variables */
@import '../base/variables.css';

/* Filter Card Container - Base Styling */
.filter-card {
    background: var(--bg-light) !important;
    border: 1px solid #e9ecef !important;
    border-radius: var(--border-radius-md) !important;
    margin-bottom: var(--spacing-xxl) !important;
    box-shadow: none !important;
}

.filter-card .card-body {
    padding: var(--spacing-xl) !important;
}

/* Special styling for threats archive */
.threats-archive-bootstrap-wrapper .filter-card {
    background: var(--bg-white) !important;
    border: none !important;
    border-radius: 0 !important;
    margin-bottom: var(--spacing-3xl) !important;
}

.threats-archive-bootstrap-wrapper .filter-card .card-body {
    padding: var(--spacing-xl) !important;
}

/* Form Labels */
.form-label {
    font-size: var(--font-size-sm) !important;
    font-weight: var(--font-weight-semibold) !important;
    color: var(--text-primary) !important;
    text-transform: uppercase !important;
    letter-spacing: var(--letter-spacing-wide) !important;
    margin-bottom: var(--spacing-xs) !important;
}

/* Special styling for threats archive labels */
.threats-archive-bootstrap-wrapper .filter-card .form-label {
    font-size: var(--font-size-base) !important;
    font-weight: var(--font-weight-bold) !important;
    margin-bottom: 8px !important;
}

/* Form Select Dropdowns */
.form-select {
    font-size: var(--font-size-md) !important;
    padding: 6px var(--spacing-md) !important;
    border: 1px solid var(--border-light) !important;
    border-radius: var(--border-radius-sm) !important;
    background: var(--bg-white) !important;
    transition: border-color var(--transition-fast) !important;
}

.form-select:focus {
    border-color: var(--primary-green) !important;
    box-shadow: 0 0 0 3px var(--primary-green-focus) !important;
    outline: none !important;
}

/* Special styling for threats archive selects */
.threats-archive-bootstrap-wrapper .filter-card .form-select {
    font-size: var(--font-size-lg) !important;
    padding: 8px var(--spacing-md) !important;
    border: 1px solid var(--border-medium) !important;
}

/* Reset Button */
.btn-reset {
    border-radius: var(--border-radius-md);
    color: var(--sticky-bg);
    border: 2px solid var(--sticky-bg);
    text-transform: uppercase;
    background-color: var(--bg-white);
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-black);
    letter-spacing: var(--letter-spacing-wider);
    line-height: var(--font-size-lg);
    width: 100%;
    padding: var(--spacing-xs) var(--spacing-md);
    transition: all var(--transition-fast);
    cursor: pointer;
}

.btn-reset:hover {
    background: var(--bg-light) !important;
    color: var(--text-primary) !important;
    border-color: var(--border-dark) !important;
}

.btn-reset:focus {
    background: var(--bg-light) !important;
    color: var(--text-primary) !important;
    border-color: var(--border-dark) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(150, 179, 164, 0.3) !important;
}

/* Result Text and Badge */
.result-text {
    font-size: var(--font-size-lg) !important;
    color: var(--text-primary) !important;
    font-weight: var(--font-weight-semibold) !important;
}

.result-badge {
    color: #000 !important;
    font-weight: var(--font-weight-semibold) !important;
    font-size: var(--font-size-md) !important;
    padding: 6px var(--spacing-md) !important;
    border-radius: var(--border-radius-sm) !important;
    background: var(--bg-light) !important;
}

/* Special styling for threats archive result badge */
.threats-archive-bootstrap-wrapper .result-badge {
    font-size: var(--font-size-lg) !important;
}

/* Loading Spinner */
.filter-spinner {
    display: inline-block;
    margin-left: var(--spacing-sm);
}

.filter-spinner .spinner-border-sm {
    width: 1rem;
    height: 1rem;
    border-width: 0.1em;
    color: var(--primary-green);
}

/* Disable filters during loading */
.filters-loading {
    opacity: 0.7 !important;
    pointer-events: none !important;
    transition: opacity var(--transition-fast) !important;
}

.filters-loading select {
    opacity: 0.6;
    pointer-events: none;
}

.filters-loading .form-select {
    background-color: var(--bg-light);
    cursor: not-allowed;
}

/* Threat Filter Specific */
.threat-filter {
    display: block;
    text-transform: uppercase;
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-black);
    letter-spacing: var(--letter-spacing-wider);
    line-height: var(--font-size-lg);
    background-color: var(--sticky-bg) !important;
    color: var(--text-white) !important;
    height: 100%;
    padding: var(--spacing-sm) var(--spacing-md);
    border: none;
    border-radius: var(--border-radius-sm);
    transition: all var(--transition-fast);
}

.threat-filter:hover {
    background-color: var(--primary-green) !important;
}

.threat-filter:focus {
    background-color: var(--primary-green) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px var(--primary-green-focus) !important;
}

/* Filter Animation */
.filter-fade-in {
    animation: filterFadeIn var(--transition-medium);
}

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

/* Mobile Responsive */
@media (max-width: 768px) {
    .filter-card .card-body {
        padding: var(--spacing-lg) !important;
    }

    .filter-card .col-md-3,
    .filter-card .col-md-4 {
        margin-bottom: var(--spacing-lg) !important;
    }

    .threats-archive-bootstrap-wrapper .filter-card .card-body {
        padding: var(--spacing-lg) !important;
    }

    .threats-archive-bootstrap-wrapper .filter-card .col-md-3 {
        margin-bottom: var(--spacing-lg) !important;
    }

    .btn-reset {
        padding: 6px var(--spacing-md) !important;
        font-size: var(--font-size-sm) !important;
    }

    .threat-filter {
        font-size: var(--font-size-md) !important;
        padding: var(--spacing-xs) var(--spacing-sm) !important;
    }

    .result-badge {
        font-size: var(--font-size-md) !important;
        padding: var(--spacing-xs) var(--spacing-sm) !important;
    }

    .threats-archive-bootstrap-wrapper .result-badge {
        font-size: var(--font-size-md) !important;
        padding: var(--spacing-xs) var(--spacing-sm) !important;
    }
}