@layer components {
  .step-indicator {
    display: flex;
    justify-content: center;
    gap: var(--spacing-4);
    margin-block-end: var(--spacing-8);
  }

  .step {
    display: flex;
    align-items: center;
    gap: var(--spacing-2);
    font-size: var(--font-size-sm);
    color: var(--color-gray-400);
  }

  .step--active {
    color: var(--color-primary-600);
    font-weight: 600;
  }

  .step--complete {
    color: var(--color-success-500);
  }

  .step-number {
    display: flex;
    align-items: center;
    justify-content: center;
    inline-size: 1.75rem;
    block-size: 1.75rem;
    border-radius: 50%;
    background-color: var(--color-gray-200);
    font-size: var(--font-size-xs);
    font-weight: 600;
    color: var(--color-gray-600);
    transition: background-color 0.2s ease, color 0.2s ease;
  }

  .step--active .step-number {
    background-color: var(--color-primary-100);
    color: var(--color-primary-600);
  }

  .step--complete .step-number {
    background-color: var(--color-success-500);
    color: var(--color-white);
  }

  @media (max-width: 639px) {
    .step-indicator {
      gap: var(--spacing-2);
    }

    .step {
      font-size: var(--font-size-xs);
      gap: var(--spacing-1);
    }

    .step-number {
      inline-size: 1.5rem;
      block-size: 1.5rem;
      font-size: 0.6875rem;
    }
  }
}
