/* filter.css - Filter System Styles */

/* ============================================
   Filter Dropdown Container
   ============================================ */
.filter-dropdown {
    position: relative;
}

.control-bar-section.right .filter-dropdown {
    margin-left: auto;
}

/* ============================================
   Dropdown Header (Filter Button) - with text label
   ============================================ */
.filter-dropdown .dropdown-header {
    height: 36px !important;
    min-width: 36px !important;
    padding: 0 12px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px;
    background: var(--snapshot-btn-bg) !important;
    color: var(--text-on-accent);
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    border-radius: var(--radius-sm) !important;
    cursor: pointer;
    font-size: 13px;
    font-weight: 500;
    transition: all var(--transition-fast);
    user-select: none;
    box-sizing: border-box;
    box-shadow: 
        0 4px 12px var(--accent-glow),
        var(--shadow-inset);
}

.filter-dropdown .dropdown-header:hover {
    background: var(--snapshot-btn-bg) !important;
    transform: translateY(-1px) scale(1.02);
    box-shadow: 
        0 6px 20px var(--accent-glow),
        var(--shadow-inset);
}

/* Active filter indicator on header */
.filter-dropdown .dropdown-header.has-filters {
    background: var(--accent);
    color: var(--text-on-accent);
    border-color: var(--accent-dark);
}

/* Filter icon inside header */
.filter-dropdown .dropdown-header .filter-icon {
    width: 18px;
    height: 18px;
    filter: brightness(0) invert(1);
    opacity: 0.9;
    flex-shrink: 0;
}

.filter-dropdown .dropdown-header:hover .filter-icon {
    opacity: 1;
}

/* Filter text label */
.filter-dropdown .dropdown-header .filter-label {
    color: var(--text-on-accent);
    white-space: nowrap;
}

/* ============================================
   Dropdown Content (Menu)
   ============================================ */
.filter-dropdown .dropdown-content {
    display: none;
    position: absolute;
    top: 100%;
    right: 0;
    min-width: 180px;
    background: var(--surface-glass);
    backdrop-filter: blur(var(--blur-md));
    -webkit-backdrop-filter: blur(var(--blur-md));
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-lg);
    z-index: 1002;
    margin-top: 4px;
    animation: filterMenuFadeIn 0.15s ease;
    overflow: visible; /* Allow submenu to overflow */
}

@keyframes filterMenuFadeIn {
    from {
        opacity: 0;
        transform: scale(0.95) translateY(-5px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

/* ============================================
   Dropdown Items
   ============================================ */
.filter-dropdown .dropdown-item {
    padding: 8px 12px;
    cursor: pointer;
    color: var(--text-primary);
    font-size: 13px;
    position: relative;
    transition: background var(--transition-fast);
}

.filter-dropdown .dropdown-item:hover {
    background: var(--accent-subtle);
}

/* Arrow indicator for items with submenus - points LEFT */
.filter-dropdown .dropdown-item:not(.clear-filters)::after {
    content: '‹';
    position: absolute;
    left: 12px;
    right: auto;
    top: 50%;
    transform: translateY(-50%);
    font-size: 14px;
    color: var(--text-muted);
}

/* Adjust padding to make room for left arrow */
.filter-dropdown .dropdown-item:not(.clear-filters) {
    padding-left: 28px;
}

/* ============================================
   Clear All Filters Button
   ============================================ */
.filter-dropdown .dropdown-item.clear-filters {
    background: var(--color-danger);
    color: white;
    font-weight: 600;
    border-bottom: 1px solid var(--border-default);
    display: none; /* Hidden by default when no filters */
}

.filter-dropdown .dropdown-item.clear-filters.visible {
    display: block;
}

.filter-dropdown .dropdown-item.clear-filters:hover {
    background: var(--color-danger-hover, #dc2626);
    color: white;
}

.filter-dropdown .dropdown-item.clear-filters::after {
    content: none; /* No arrow for clear button */
}

/* ============================================
   Filter Submenu
   ============================================ */
.filter-dropdown .filter-submenu {
    display: none;
    position: absolute;
    right: calc(100% - 2px);  /* Slight overlap to help with mouse transition */
    left: auto;
    top: -1px;
    min-width: 160px;
    background: var(--surface-glass);
    backdrop-filter: blur(var(--blur-md));
    -webkit-backdrop-filter: blur(var(--blur-md));
    border: 1px solid var(--border-default);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-lg);
    overflow: visible;
    z-index: 1003;
}

/* CSS hover as additional fallback */
.filter-dropdown .dropdown-item:hover > .filter-submenu {
    display: block;
}

/* ============================================
   Submenu Items (Checkboxes)
   ============================================ */
.filter-submenu .submenu-item {
    padding: 8px 12px;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: background var(--transition-fast);
}

.filter-submenu .submenu-item:hover {
    background: var(--accent-subtle);
}

.filter-submenu .submenu-item input[type="checkbox"] {
    margin: 0;
    width: 16px;
    height: 16px;
    accent-color: var(--accent);
    cursor: pointer;
}

.filter-submenu .submenu-item label {
    font-size: 13px;
    cursor: pointer;
    color: var(--text-primary);
    flex: 1;
}

/* Checked state styling */
.filter-submenu .submenu-item:has(input:checked) {
    background: var(--accent-subtle);
}

.filter-submenu .submenu-item:has(input:checked) label {
    color: var(--accent);
    font-weight: 500;
}

/* ============================================
   Legacy Filter Container (if used separately)
   ============================================ */
.filter-container {
    top: 56px !important;
    position: fixed;
    right: 20px;
    z-index: 1000;
}

/* ============================================
   Filter Badge/Counter
   ============================================ */
.filter-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    margin-left: 6px;
    background: var(--accent);
    color: var(--text-on-accent);
    border-radius: var(--radius-full);
    font-size: 11px;
    font-weight: 700;
}

/* ============================================
   Empty State for Submenu
   ============================================ */
.filter-submenu .no-options {
    padding: 12px;
    text-align: center;
    color: var(--text-muted);
    font-size: 12px;
    font-style: italic;
}