@layer components {
  .dropdown {
    position: relative;
  }

  .dropdown__menu {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: var(--z-dropdown);
    min-width: 12rem;
    background-color: var(--color-background);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    &[hidden] {
      display: none;
    }

    &.dropdown__menu--right {
      left: auto;
      right: 0;
    }
    &.dropdown__menu--lg {
      min-width: 16rem;
    }
    &.dropdown__menu--xl {
      min-width: 20rem;
    }
    &.dropdown__menu--up {
      bottom: 100%;
      top: auto;
      margin-bottom: var(--space-2);
    }
    &.dropdown__menu--full-width {
      width: 100%;
      min-width: 100%;
    }
    &.dropdown__menu--outside-right {
      left: 100%;
      right: auto;
      margin-left: var(--space-2);
    }
  }

  .dropdown__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--space-2) var(--space-4);
    border-bottom: 1px solid var(--color-border);
    .dropdown__title {
      font-size: var(--text-lg);
      margin: 0;
    }
  }

  .dropdown__body {
    margin: var(--space-2);
  }

  .dropdown__footer {
    padding: var(--space-2);
    border-top: 1px solid var(--color-border);
  }

  .dropdown__item {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    width: 100%;
    padding: var(--space-2) var(--space-3);
    font-size: var(--text-sm);
    color: var(--color-text);
    text-decoration: none;
    border-radius: var(--radius-md);
    transition: background-color var(--transition-fast);
    svg path {
      stroke: var(--color-gray-500);
    }
    &:hover {
      background-color: var(--color-gray-100);
    }
    &.dropdown__item--danger {
      color: var(--color-error);
      svg path {
        stroke: var(--color-error);
      }
    }

    &.is-active {
      background-color: var(--color-primary-50);
      color: var(--color-primary-700);
    }
  }

  .dropdown__label {
    display: block;
    font-size: var(--text-xs);
    padding: var(--space-1);
    color: var(--color-gray-500);
    text-transform: uppercase;
  }

  .dropdown__divider {
    height: 1px;
    margin: var(--space-2) 0;
    background-color: var(--color-border);
  }

  .dropdown__btn {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-3);
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    font-size: var(--text-base);
    font-weight: var(--font-semibold);
    cursor: pointer;
    transition: border-color var(--transition-fast);

    .dropdown__btn-label {
      color: var(--color-text-muted);
      font-weight: var(--font-medium);
    }

    .dropdown__btn-value {
      color: var(--color-text);
    }

    &:hover {
      border-color: var(--color-gray-400);
    }
  }

  [data-theme="dark"] {
    .dropdown__menu {
      background-color: var(--color-surface);
    }

    .dropdown__item {
      svg path {
        stroke: var(--color-gray-600);
      }
      &:hover {
        background-color: var(--color-hover);
      }
      &.dropdown__item--danger {
        color: var(--color-error);
        svg path {
          stroke: var(--color-error);
        }
      }

      &.is-active {
        background-color: var(--color-background);
        color: var(--color-white);
      }
    }

    .dropdown__btn {
      background: var(--color-hover);

      .dropdown__btn-label {
        color: var(--color-text-muted);
        font-weight: var(--font-medium);
      }

      .dropdown__btn-value {
        color: var(--color-text);
      }

      svg path {
        stroke: var(--color-white);
      }

      &:hover {
        border-color: var(--color-surface);
      }
    }
  }
}