/* Dropdown Menu Component Styles */

/* Dropdown Container */
.dropdown {
    position: relative;
    display: inline-block;
}

/* Trigger Wrapper */
.dropdown-trigger-wrapper {
    display: inline-block;
}

/* Dropdown Menu */
.dropdown-menu {
    position: absolute;
    min-width: 200px;
    background-color: var(--color-surface, #ffffff);
    border: 1px solid var(--color-border, #e8e3f0);
    border-radius: var(--border-radius-lg, 8px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 0, 0, 0.04);
    padding: var(--space-1, 4px);
    z-index: 1000;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px);
    transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;
}

.dropdown-menu.show {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* Positioning */
.dropdown-menu[data-position="bottom-left"] {
    top: calc(100% + var(--space-1, 4px));
    left: 0;
}

.dropdown-menu[data-position="bottom-right"] {
    top: calc(100% + var(--space-1, 4px));
    right: 0;
}

.dropdown-menu[data-position="top-left"] {
    bottom: calc(100% + var(--space-1, 4px));
    left: 0;
    transform: translateY(8px);
}

.dropdown-menu[data-position="top-left"].show {
    transform: translateY(0);
}

.dropdown-menu[data-position="top-right"] {
    bottom: calc(100% + var(--space-1, 4px));
    right: 0;
    transform: translateY(8px);
}

.dropdown-menu[data-position="top-right"].show {
    transform: translateY(0);
}

/* Menu Items */
.dropdown-item {
    display: flex;
    align-items: center;
    gap: var(--space-3, 12px);
    width: 100%;
    padding: var(--space-2, 8px) var(--space-3, 12px);
    font-family: var(--font-family);
    font-size: var(--text-sm, 0.875rem);
    color: var(--color-text, #1a1a1a);
    background: none;
    border: none;
    border-radius: var(--border-radius, 4px);
    cursor: pointer;
    text-align: left;
    text-decoration: none;
    transition: background-color 0.1s ease;
    white-space: nowrap;
}

.dropdown-item:hover {
    background-color: #f8f8f8;
}

.dropdown-item:focus-visible {
    outline: 2px solid var(--color-accent, #7438f5);
    outline-offset: -2px;
}

.dropdown-item:active {
    background-color: #f0f0f0;
}

/* Item with icon */
.dropdown-item-icon {
    display: inline-flex;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    color: currentColor;
}

.dropdown-item-icon svg {
    width: 100%;
    height: 100%;
}

/* Item content */
.dropdown-item-content {
    flex: 1;
    min-width: 0;
}

/* Keyboard shortcut */
.dropdown-item-shortcut {
    margin-left: auto;
    padding-left: var(--space-6, 24px);
    font-size: var(--text-xs, 0.75rem);
    color: var(--color-text-secondary, #5c5e75);
    white-space: nowrap;
}

/* Divider */
.dropdown-divider {
    height: 1px;
    background-color: var(--color-border, #e8e3f0);
    margin: var(--space-1, 4px) 0;
}

/* Disabled item */
.dropdown-item:disabled,
.dropdown-item.disabled {
    color: var(--color-text-secondary, #5c5e75);
    cursor: not-allowed;
    pointer-events: none;
    opacity: 0.5;
}

.dropdown-item:disabled .dropdown-item-icon,
.dropdown-item.disabled .dropdown-item-icon {
    opacity: 0.5;
}

/* Danger item */
.dropdown-item.danger {
    color: #dc2626;
}

.dropdown-item.danger:hover {
    background-color: #fef2f2;
}

.dropdown-item.danger:active {
    background-color: #fee2e2;
}

.dropdown-item.danger .dropdown-item-icon {
    color: #dc2626;
}

/* Primary action item */
.dropdown-item.primary {
    color: var(--color-accent, #7438f5);
    font-weight: 500;
}

.dropdown-item.primary:hover {
    background-color: #f5f0ff;
}

.dropdown-item.primary .dropdown-item-icon {
    color: var(--color-accent, #7438f5);
}

/* Wide dropdown variant */
.dropdown-menu.wide {
    min-width: 280px;
}

/* Dark mode support */
@media (prefers-color-scheme: dark) {
    .dropdown-menu {
        background-color: var(--color-surface, #1a1a24);
        border-color: var(--color-border, #2d2d3d);
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3), 0 2px 4px rgba(0, 0, 0, 0.2);
    }

    .dropdown-item {
        color: var(--color-text, #f5f5f5);
    }

    .dropdown-item:hover {
        background-color: #2d2d3d;
    }

    .dropdown-item:active {
        background-color: #333344;
    }

    .dropdown-item:disabled,
    .dropdown-item.disabled {
        color: var(--color-text-secondary, #a8a8b8);
    }

    .dropdown-item.danger:hover {
        background-color: #3a2020;
    }

    .dropdown-item.danger:active {
        background-color: #4a2525;
    }

    .dropdown-item.primary:hover {
        background-color: #2a2040;
    }

    .dropdown-divider {
        background-color: var(--color-border, #2d2d3d);
    }

    .dropdown-item-shortcut {
        color: var(--color-text-secondary, #a8a8b8);
    }
}

/* Theme-aware styles */
[data-theme="dark"] .dropdown-menu {
    background-color: var(--color-surface, #1a1a24);
    border-color: var(--color-border, #2d2d3d);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3), 0 2px 4px rgba(0, 0, 0, 0.2);
}

[data-theme="dark"] .dropdown-item {
    color: var(--color-text, #f5f5f5);
}

[data-theme="dark"] .dropdown-item:hover {
    background-color: #2d2d3d;
}

[data-theme="dark"] .dropdown-item:active {
    background-color: #333344;
}

[data-theme="dark"] .dropdown-item:disabled,
[data-theme="dark"] .dropdown-item.disabled {
    color: var(--color-text-secondary, #a8a8b8);
}

[data-theme="dark"] .dropdown-item.danger:hover {
    background-color: #3a2020;
}

[data-theme="dark"] .dropdown-item.danger:active {
    background-color: #4a2525;
}

[data-theme="dark"] .dropdown-item.primary:hover {
    background-color: #2a2040;
}

[data-theme="dark"] .dropdown-divider {
    background-color: var(--color-border, #2d2d3d);
}

[data-theme="dark"] .dropdown-item-shortcut {
    color: var(--color-text-secondary, #a8a8b8);
}

/* Responsive */
@media (max-width: 768px) {
    .dropdown-menu {
        min-width: 240px;
    }
}
