@layer base {
  .languageSelector {
    position: relative;
    display: inline-flex;
  }

  .trigger {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    transition: all var(--animation-duration-fast) ease;
    border-radius: var(--radius);
    position: relative;
  }

  .trigger:hover {
    background-color: var(--muted);
  }

  .trigger:focus-visible {
    box-shadow: var(--shadow-focus);
  }

  .trigger:disabled {
    opacity: 0.7;
    cursor: not-allowed;
  }

  .flag {
    font-size: 1.2em;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .chevron {
    color: var(--muted-foreground);
    transition: transform var(--animation-duration-fast) ease;
    flex-shrink: 0;
  }

  .trigger[data-state="open"] .chevron {
    transform: rotate(180deg);
  }

  /* Size variants */
  .sm {
    padding: var(--spacing-1) var(--spacing-2);
    gap: var(--spacing-1);
  }

  .sm .flag {
    font-size: 1em;
  }

  .md {
    padding: var(--spacing-2) var(--spacing-3);
    gap: var(--spacing-2);
  }

  .lg {
    padding: var(--spacing-3) var(--spacing-4);
    gap: var(--spacing-2);
  }

  .lg .flag {
    font-size: 1.4em;
  }

  .content {
    min-width: 160px;
    animation: slideIn var(--animation-duration-normal) ease;
  }

  .item {
    display: flex;
    align-items: center;
    gap: var(--spacing-3);
    padding: var(--spacing-2) var(--spacing-3);
    cursor: pointer;
    transition: all var(--animation-duration-fast) ease;
    position: relative;
  }

  .item:hover {
    background-color: var(--muted);
  }

  .item:focus-visible {
    background-color: var(--primary);
    color: var(--primary-foreground);
  }

  .item.selected {
    background-color: color-mix(in srgb, var(--primary) 10%, transparent);
    color: var(--primary);
  }

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

  .itemFlag {
    font-size: 1.1em;
    line-height: 1;
    flex-shrink: 0;
  }

  .itemName {
    flex: 1;
    font-size: 0.9375rem;
    font-weight: 500;
  }

  .checkmark {
    color: var(--primary);
    flex-shrink: 0;
    animation: checkmarkAppear var(--animation-duration-fast) ease;
  }

  .item.selected .checkmark {
    color: var(--primary);
  }

  .item:focus-visible .checkmark {
    color: var(--primary-foreground);
  }

  @keyframes slideIn {
    from {
      opacity: 0;
      transform: translateY(-4px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  @keyframes checkmarkAppear {
    from {
      opacity: 0;
      transform: scale(0.8);
    }
    to {
      opacity: 1;
      transform: scale(1);
    }
  }

  /* Loading state */
  .trigger:disabled .flag {
    opacity: 0.5;
  }

  /* Mobile responsive */
  @media (max-width: 768px) {
    .content {
      min-width: 140px;
    }

    .item {
      padding: var(--spacing-3);
    }

    .itemName {
      font-size: 0.875rem;
    }
  }

  /* High contrast mode support */
  @media (prefers-contrast: high) {
    .trigger {
      border: 1px solid var(--border);
    }

    .item.selected {
      background-color: var(--primary);
      color: var(--primary-foreground);
    }

    .checkmark {
      color: currentColor;
    }
  }

  /* Reduced motion support */
  @media (prefers-reduced-motion: reduce) {
    .trigger,
    .chevron,
    .item,
    .checkmark {
      transition: none;
    }

    .content {
      animation: none;
    }

    .checkmark {
      animation: none;
    }
  }
}