@layer components {
  /* ============================================================================
   * DROPDOWN MENU COMPONENT
   * Action menus and context menus
   * ========================================================================= */

  .dropdown {
    position: relative;
    display: inline-flex;
  }

  /* Trigger button */
  .dropdown__trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-xs);
    cursor: pointer;
  }

  /* Dropdown menu container */
  .dropdown__menu {
    position: absolute;
    z-index: 1000;
    display: none;
    min-width: 12rem;
    padding: var(--space-xs);
    background-color: var(--color-bg-main);
    border: 1px solid var(--color-gray-2);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    opacity: 0;
    transform: translateY(-0.5rem);
    transition:
      opacity var(--transition-fast),
      transform var(--transition-fast);
  }

  /* Open state */
  .dropdown__menu--open {
    display: flex;
    flex-direction: column;
    opacity: 1;
    transform: translateY(0);
  }

  /* Position variants */
  .dropdown__menu--bottom-left {
    top: calc(100% + var(--space-xs));
    left: 0;
  }

  .dropdown__menu--bottom-right {
    top: calc(100% + var(--space-xs));
    right: 0;
  }

  .dropdown__menu--top-left {
    bottom: calc(100% + var(--space-xs));
    left: 0;
    transform: translateY(0.5rem);
  }

  .dropdown__menu--top-right {
    bottom: calc(100% + var(--space-xs));
    right: 0;
    transform: translateY(0.5rem);
  }

  .dropdown__menu--top-left.dropdown__menu--open,
  .dropdown__menu--top-right.dropdown__menu--open {
    transform: translateY(0);
  }

  /* Menu item */
  .dropdown__item {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    width: 100%;
    padding: var(--space-sm) var(--space-md);
    background: none;
    border: none;
    border-radius: var(--radius-md);
    color: var(--color-dark);
    font-size: var(--font-size-md);
    font-weight: var(--font-weight-medium);
    font-family: inherit;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
    transition: background-color var(--transition-fast);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
  }

  .dropdown__item:hover {
    background-color: var(--color-bg-highlight);
  }

  .dropdown__item:active {
    background-color: var(--color-gray-2);
  }

  /* Disabled item */
  .dropdown__item--disabled {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
  }

  /* Item icon */
  .dropdown__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1rem;
    height: 1rem;
    color: var(--color-gray-3);
  }

  .dropdown__icon svg {
    width: 100%;
    height: 100%;
  }

  /* Item text */
  .dropdown__text {
    flex: 1;
  }

  /* Divider */
  .dropdown__divider {
    height: 1px;
    margin: var(--space-xs) 0;
    background-color: var(--color-gray-2);
  }

  /* ============================================================================
   * DARK MODE ADJUSTMENTS
   * ========================================================================= */

  @media (prefers-color-scheme: dark) {
    .dropdown__menu {
      background-color: var(--color-bg-secondary);
      border-color: var(--color-gray-3);
    }

    .dropdown__item:hover {
      background-color: var(--color-bg-highlight);
    }

    .dropdown__item:active {
      background-color: var(--color-gray-3);
    }

    .dropdown__divider {
      background-color: var(--color-gray-3);
    }
  }
}
