/**
 * Dropdown Components
 * CRITICAL FIX: Eliminate flickering and jumping completely
 */

/* =============================================================================
   DROPDOWN MENU - NO FLICKERING, SOLID POSITIONING
   ============================================================================= */

.dropdown-menu {
    /* Position & Z-Index - Allow Bootstrap to position initially */
    position: absolute;
    z-index: var(--z-dropdown) !important;
    
    /* Size & Spacing */
    min-width: 12rem;
    padding: var(--space-2) 0;
    margin: 0;
    
    /* Visual Styling */
    background-color: #ffffff !important;
    border: var(--border-width-1) solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-lg) !important;
    
    /* Display */
    display: none;
    list-style: none;
    text-align: left;
    
    /* Typography */
    font-size: var(--font-size-base);
    color: var(--color-text);
    
    /* CRITICAL: Remove ALL animations and transitions - AGGRESSIVE OVERRIDE */
    animation: none !important;
    transition: none !important;
    transform: none !important;
    -webkit-transform: none !important;
    -moz-transform: none !important;
    -ms-transform: none !important;
    -o-transform: none !important;
    
    /* CRITICAL: Solid opacity - no transparency */
    opacity: 1 !important;
    
    /* CRITICAL: No backdrop effects */
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    -moz-backdrop-filter: none !important;
    
    /* Prevent overflow issues */
    overflow: visible !important;
    will-change: auto !important;
    
    /* CRITICAL: Prevent Bootstrap from applying transitions */
    pointer-events: auto !important;
}

/* Override Bootstrap's dropdown positioning */
.dropdown-menu[data-bs-popper] {
    position: fixed !important;
    transform: none !important;
    -webkit-transform: none !important;
}

/* Show State - Instant Display - AGGRESSIVE OVERRIDE */
.dropdown-menu.show {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    
    /* JavaScript will set position via inline styles with !important */
    /* Don't force position here - let JS handle it */
    
    /* NO animations - override everything */
    animation: none !important;
    transition: none !important;
    transform: none !important;
    -webkit-transform: none !important;
    -moz-transform: none !important;
    -ms-transform: none !important;
    -o-transform: none !important;
}

/* CRITICAL: Override Bootstrap's fade animation */
.dropdown-menu.fade {
    transition: none !important;
    opacity: 1 !important;
}

.dropdown-menu.fade.show {
    opacity: 1 !important;
}

/* CRITICAL: Prevent Bootstrap from adding transform styles */
.dropdown-menu[style*="transform"],
.dropdown-menu[style*="position"] {
    position: fixed !important;
    transform: none !important;
}

/* =============================================================================
   DARK THEME - SOLID BACKGROUNDS ONLY
   ============================================================================= */

[data-theme="dark"] .dropdown-menu {
    background-color: #1e293b !important;
    color: #f8f9fa !important;
    border-color: var(--color-border) !important;
    
    /* No transparency or backdrop effects */
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    opacity: 1 !important;
}

/* =============================================================================
   DROPDOWN ITEMS
   ============================================================================= */

.dropdown-item {
    display: block;
    width: 100%;
    padding: var(--space-2) var(--space-4);
    clear: both;
    font-weight: var(--font-weight-normal);
    color: var(--color-text);
    text-align: inherit;
    text-decoration: none;
    white-space: nowrap;
    background-color: transparent;
    border: 0;
    cursor: pointer;
    
    /* Simple hover transition only */
    transition: background-color var(--duration-fast) var(--ease-in-out),
                color var(--duration-fast) var(--ease-in-out);
}

.dropdown-item:hover,
.dropdown-item:focus {
    color: var(--color-text);
    background-color: var(--color-gray-100);
}

.dropdown-item:active {
    background-color: var(--color-primary-subtle);
    color: var(--color-primary);
}

.dropdown-item.active {
    background-color: var(--color-primary);
    color: white;
}

.dropdown-item:disabled,
.dropdown-item.disabled {
    color: var(--color-text-muted);
    pointer-events: none;
    background-color: transparent;
    opacity: 0.5;
}

/* Dark Theme Items */
[data-theme="dark"] .dropdown-item {
    color: #f8f9fa;
}

[data-theme="dark"] .dropdown-item:hover,
[data-theme="dark"] .dropdown-item:focus {
    color: #ffffff;
    background-color: #334155;
}

[data-theme="dark"] .dropdown-item:active {
    background-color: var(--color-primary);
    color: white;
}

[data-theme="dark"] .dropdown-item.active {
    background-color: var(--color-primary);
    color: white;
}

/* =============================================================================
   DROPDOWN DIVIDER & HEADER
   ============================================================================= */

.dropdown-divider {
    height: 0;
    margin: var(--space-2) 0;
    overflow: hidden;
    border-top: var(--border-width-1) solid var(--color-border);
}

.dropdown-header {
    display: block;
    padding: var(--space-2) var(--space-4);
    margin-bottom: 0;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-muted);
    white-space: nowrap;
}

.dropdown-item-text {
    display: block;
    padding: var(--space-2) var(--space-4);
    color: var(--color-text);
}

/* =============================================================================
   TABLE DROPDOWNS - FIXED POSITIONING
   ============================================================================= */

.table .dropdown {
    position: relative;
}

.table .dropdown-menu {
    /* Use fixed positioning in tables to prevent cut-off */
    position: fixed !important;
    margin-top: var(--space-1);
}

/* Ensure table-responsive doesn't hide dropdowns */
.table-responsive {
    overflow: visible !important;
}

/* Alternative: Allow vertical scroll but horizontal overflow */
.table-responsive.allow-dropdown {
    overflow-x: auto;
    overflow-y: visible;
}

/* =============================================================================
   DROPDOWN TOGGLE BUTTON
   ============================================================================= */

.dropdown-toggle {
    white-space: nowrap;
    cursor: pointer;
}

.dropdown-toggle::after {
    display: inline-block;
    margin-left: var(--space-2);
    vertical-align: 0.255em;
    content: "";
    border-top: 0.3em solid;
    border-right: 0.3em solid transparent;
    border-bottom: 0;
    border-left: 0.3em solid transparent;
}

.dropdown-toggle:empty::after {
    margin-left: 0;
}

/* Dropup variation */
.dropup .dropdown-toggle::after {
    border-top: 0;
    border-bottom: 0.3em solid;
}

/* Dropend variation */
.dropend .dropdown-toggle::after {
    border-top: 0.3em solid transparent;
    border-right: 0;
    border-bottom: 0.3em solid transparent;
    border-left: 0.3em solid;
}

/* Dropstart variation */
.dropstart .dropdown-toggle::after {
    border-top: 0.3em solid transparent;
    border-right: 0.3em solid;
    border-bottom: 0.3em solid transparent;
    border-left: 0;
}

/* =============================================================================
   DROPDOWN POSITIONING
   ============================================================================= */

/* Default dropdown (down) */
.dropdown .dropdown-menu {
    top: 100%;
    left: 0;
    margin-top: var(--space-1);
}

/* Dropdown right */
.dropdown .dropdown-menu.dropdown-menu-end {
    right: 0;
    left: auto;
}

/* Dropup */
.dropup .dropdown-menu {
    top: auto;
    bottom: 100%;
    margin-top: 0;
    margin-bottom: var(--space-1);
}

/* Dropend */
.dropend .dropdown-menu {
    top: 0;
    right: auto;
    left: 100%;
    margin-top: 0;
    margin-left: var(--space-1);
}

/* Dropstart */
.dropstart .dropdown-menu {
    top: 0;
    right: 100%;
    left: auto;
    margin-top: 0;
    margin-right: var(--space-1);
}

/* =============================================================================
   PREVENT PARENT CONTAINER INTERFERENCE
   ============================================================================= */

.dropdown,
.dropup,
.dropend,
.dropstart {
    position: relative;
}

/* Ensure parent containers don't clip dropdowns */
.card,
.card-body,
.navbar,
.navbar-collapse,
.nav-item {
    overflow: visible !important;
}

/* =============================================================================
   OVERRIDE CONFLICTING STYLES
   ============================================================================= */

/* Remove any Bootstrap Popper positioning animations */
[data-popper-placement] {
    animation: none !important;
    transition: none !important;
}

/* Override any page-specific dropdown styles */
.projects-page .dropdown-menu,
.tasks-page .dropdown-menu,
.construction-page .dropdown-menu {
    background-color: #ffffff !important;
    opacity: 1 !important;
    animation: none !important;
    transition: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

[data-theme="dark"] .projects-page .dropdown-menu,
[data-theme="dark"] .tasks-page .dropdown-menu,
[data-theme="dark"] .construction-page .dropdown-menu {
    background-color: #1e293b !important;
}

/* =============================================================================
   DROPDOWN MENU SIZES
   ============================================================================= */

.dropdown-menu-sm {
    min-width: 8rem;
    font-size: var(--font-size-sm);
}

.dropdown-menu-lg {
    min-width: 20rem;
}

.dropdown-menu-xl {
    min-width: 30rem;
}

/* =============================================================================
   SCROLLABLE DROPDOWNS
   ============================================================================= */

.dropdown-menu.dropdown-menu-scrollable {
    max-height: 300px;
    overflow-y: auto;
    overflow-x: hidden;
}

/* Custom Scrollbar */
.dropdown-menu.dropdown-menu-scrollable::-webkit-scrollbar {
    width: 8px;
}

.dropdown-menu.dropdown-menu-scrollable::-webkit-scrollbar-track {
    background: var(--color-gray-100);
    border-radius: var(--radius-sm);
}

.dropdown-menu.dropdown-menu-scrollable::-webkit-scrollbar-thumb {
    background: var(--color-gray-400);
    border-radius: var(--radius-sm);
}

.dropdown-menu.dropdown-menu-scrollable::-webkit-scrollbar-thumb:hover {
    background: var(--color-gray-500);
}

