:host {
  display: block;
  width: 100%;
}

.wrapper {
  position: relative;
  width: 100%;
  display: flex;
  height: var(--spacing-10);
  border: 1px solid var(--color-gray-300);
  border-radius: var(--spacing-2);
  font: var(--type-body-md);
  padding: 0 0.125rem;
  padding: 0 var(--indicator-padding);

  --indicator-padding: 0.125rem;
  --button-padding: var(--spacing-3);
}

.wrapper.small {
  height: var(--spacing-8);
  font: var(--type-body-sm);

  --button-padding: var(--spacing-2);
}

.indicator {
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 100%;
  transition: all 0.2s ease;
  pointer-events: none;
  z-index: 0;
}

.indicator::after {
    content: "";
    position: absolute;
    top: var(--indicator-padding);
    left: 0;
    right: 0;
    bottom: var(--indicator-padding);
    border-radius: 0.375rem;
    background-color: var(--color-background-brand-base);
  }

::slotted(button) {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 var(--button-padding);
  font-size: var(--font-size-2);
  color: var(--color-text-default);
  background-color: transparent;
  border: none;
  cursor: pointer;
  transition: color 0.15s ease;
  position: relative;
  z-index: 1;
}

::-csstools-invalid-slotted(button):disabled {
    color: var(--color-text-disabled);
    cursor: not-allowed;
  }

::slotted(button[aria-checked="true"]) {
  /* biome-ignore lint/complexity/noImportantStyles: We need this because the global styles takes precedence over the webc styles */
  color: var(--color-text-brand-inverse) !important;
}
