:root {
  --hw-border-color: var(--gray-a5);
  --hw-active-bg-color: var(--color-gray-200);
  --hw-focus-color: var(--blue-a8);
  --hw-border-radius: var(--radius-md);
  --hw-font-size: var(--text-base);
  --hw-combobox-width: 100%;
  --hw-combobox-width--multiple: 100%;
  --hw-component-bg-color: var(--color-background);
  --hw-option-bg-color: var(--color-background);
  --hw-listbox-z-index: 40;
}

[data-controller="hw-combobox"] {
  max-width: 100%;
  width: 100%;
}

[data-controller="hw-combobox"] .hw-combobox__main__wrapper {
  width: 100%;
  border-color: var(--gray-a5);
  padding-inline-start: calc(var(--spacing) * 3);
  padding-inline-end: calc(var(--hw-handle-width) + var(--hw-handle-offset-right) + var(--spacing));
  padding-block: calc(var(--spacing) * 1);

  &:focus-within {
    outline: 2px solid var(--blue-a8);
    outline-offset: -2px;
    box-shadow: none;
  }

  &:disabled {
    background-color: var(--color-gray-300);
    cursor: not-allowed;
  }
}

[data-controller="hw-combobox"] .hw-combobox__input {
  max-width: 100%;
  width: 100%;
}

[data-controller="hw-combobox"] .hw-combobox__listbox {
  max-width: 100%;
  width: 100%;
  position: absolute;
  z-index: var(--hw-listbox-z-index);
}

.hw-combobox__listbox--show-full-options .hw-combobox__option {
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
  word-break: break-word;
}

.hw-combobox--multiple .hw-combobox__main__wrapper {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--hw-padding--slimmer);
}

.hw-combobox--multiple .hw-combobox__input {
  flex: 1 1 6rem;
  line-height: var(--hw-line-height--multiple);
  max-width: 100%;
  min-width: 6rem;
  width: 1rem;
}

.hw-combobox--response-in-autosize {
  max-width: 100%;
  width: fit-content;
}

.hw-combobox--response-in-autosize .hw-combobox__main__wrapper {
  max-width: 100%;
  min-width: 14rem;
  width: fit-content;
}

[data-controller="hw-combobox"].hw-combobox--dropdown-autosize {
  width: fit-content;

  &::before {
    content: attr(data-widest-option);
    box-sizing: border-box;
    height: 0;
    max-width: 100%;
    overflow: hidden;
    padding-inline-start: calc(var(--spacing) * 3);
    padding-inline-end: calc(var(--hw-handle-width) + var(--hw-handle-offset-right) + var(--spacing));
    visibility: hidden;
    white-space: nowrap;
  }
}

[data-controller="hw-combobox"].hw-combobox--dropdown-autosize .hw-combobox__main__wrapper {
  max-width: 100%;
  width: 100%;
}

[data-hw-combobox-chip] {
  width: fit-content;
}

.hw-combobox__chip__remover {
  cursor: pointer;
}

.dark {
  --hw-border-color: var(--color-gray-700);
  --hw-active-bg-color: var(--color-gray-300);
  --hw-component-bg-color: var(--color-gray-100);
  --hw-option-bg-color: var(--color-gray-100);
}
