:host {
  /* general */
  /*@doc Define o raio da borda do input. */
  --ez-combo-box--border-radius: var(--border--radius-medium, 12px);
  /*@doc Define o tamanho da fonte dentro do input. */
  --ez-combo-box--font-size: var(--text--medium, 14px);
  /*@doc Define a família da fonte dentro do input. */
  --ez-combo-box--font-family: var(--font-pattern, Arial);
  /*@doc Define o peso da fonte dentro do input quando pesada. */
  --ez-combo-box--font-weight--large: var(--text-weight--large, 500);
  /*@doc Define o peso da fonte dentro do input quando média. */
  --ez-combo-box--font-weight--medium: var(--text-weight--medium, 400);
  /*@doc Define a cor de fundo da lista de opções. */
  --ez-combo-box--background-color--xlight: var(--background--xlight, #fff);
  /*@doc Define a cor de fundo dos itens da lista de opções. */
  --ez-combo-box--background-medium: var(--background--medium, #f0f3f7);
  /*@doc Define a altura da linha do texto dentro do input. */
  --ez-combo-box--line-height: calc(var(--text--medium, 14px) + 4px);

  /* list */
  /*@doc Define a cor do texto da lista de opções. */
  --ez-combo-box__list-title--primary: var(--title--primary, #2B3A54);
  /*@doc Define a cor do texto do value da lista de opções. */
  --ez-combo-box__list-text--primary: var(--text--primary, #626e82);
  /*@doc Define a altura do box da lista de opções. */
  --ez-combo-box__list-height: calc(var(--ez-combo-box--font-size) + var(--ez-combo-box--space--medium) + 4px);

  /* espaçamento */
  /*@doc Define um espaçamento mediano entre elementos do componente. */
  --ez-combo-box--space--medium: var(--space--medium, 12px);
  /*@doc Define um espaçamento pequeno entre elementos do componente. */
  --ez-combo-box--space--small: var(--space--small, 6px);

  /* scrollbar */
  /*@doc Define a cor da barra de rolagem do componente. */
  --ez-combo-box__scrollbar--color-default: var(--scrollbar--default, #626e82);
  /*@doc Define a cor de fundo da barra de rolagem do componente. */
  --ez-combo-box__scrollbar--color-background: var(--scrollbar--background, #E5EAF0);
  /*@doc Define a cor do hover na barra de rolagem do componente. */
  --ez-combo-box__scrollbar--color-hover: var(--scrollbar--hover, #2B3A54);
  /*@doc Define a cor do active na barra de rolagem do componente. */
  --ez-combo-box__scrollbar--color-clicked: var(--scrollbar--clicked, #a2abb9);
  /*@doc Define o raio da borda da barra de rolagem do componente. */
  --ez-combo-box__scrollbar--border-radius: var(--border--radius-small, 6px);
  /*@doc Define a largura da barra de rolagem do componente. */
  --ez-combo-box__scrollbar--width: var(--space--medium, 12px);

  /* list-container */
  /*@doc Define o padding do container da lista. */
  --ez-combo-box__list-container--padding: var(--space--extra-small, 3px);
}

.list-container {
  /*public*/
  padding-top: var(--ez-combo-box__list-container--padding);
}

.list-wrapper {
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  width: 0;
  z-index: var(--more-visible, 2);
  max-height: calc(4*var(--ez-combo-box__list-height) + 2*var(--ez-combo-box--space--small) + 9px);
  background-color: var(--ez-combo-box--background-color--xlight);
  border-radius: var(--ez-combo-box--border-radius);
  box-shadow: var(--shadow--medium, 0 8px 24px 0 rgba(43, 58, 84, 0.10));
  padding: var(--ez-combo-box--space--small);
}

.list-options {
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;  
  scroll-behavior: smooth;
  overflow: auto;
  scrollbar-width: thin;
  gap: 3px;
  scrollbar-color: var(--ez-combo-box__scrollbar--color-clicked) var(--ez-combo-box__scrollbar--color-background);
}

.list-options::-webkit-scrollbar {
  background-color: var(--ez-combo-box__scrollbar--color-background);
  width: var(--ez-combo-box__scrollbar--width);
  max-width: var(--ez-combo-box__scrollbar--width);
  min-width: var(--ez-combo-box__scrollbar--width);
}

.list-options::-webkit-scrollbar-track {
  background-color: var(--ez-combo-box__scrollbar--color-background);
  border-radius: var(--ez-combo-box__scrollbar--border-radius);
}

.list-options::-webkit-scrollbar-thumb {
  background-color: var(--ez-combo-box__scrollbar--color-default);
  border-radius: var(--ez-combo-box__scrollbar--border-radius);
}

.list-options::-webkit-scrollbar-thumb:vertical:hover,
.list-options::-webkit-scrollbar-thumb:horizontal:hover {
  background-color: var(--ez-combo-box__scrollbar--color-hover);
}

.list-options::-webkit-scrollbar-thumb:vertical:active,
.list-options::-webkit-scrollbar-thumb:horizontal:active {
  background-color: var(--ez-combo-box__scrollbar--color-clicked);
}

.item {
  display: flex;
  align-items: center;
  width: 100%;
  box-sizing: border-box;
  list-style-type: none;
  cursor: pointer;
  border-radius: var(--ez-combo-box--border-radius-small);
  padding: var(--ez-combo-box--space--small);
  min-height: var(--ez-combo-box__list-height);
  gap: var(--space--small, 6px);
}

.item__value,
.item__label {
  flex-basis: auto;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--ez-combo-box__list-title--primary);
  font-family: var(--ez-combo-box--font-family);
  font-size: var(--ez-combo-box--font-size);
  line-height: var(--ez-combo-box--line-height);
}

.item__label {
  font-weight: var(--ez-combo-box--font-weight--medium);
}

.item__label--bold {
  font-weight: var(--ez-combo-box--font-weight--large);
}

.item__value {
  text-align: center;
  color: var(--ez-combo-box__list-text--primary);
  font-weight: var(--ez-combo-box--font-weight--large);
}

.item__value--hidden {
  visibility: hidden;
  position: absolute;
  white-space: nowrap;
  z-index: -1;
  top: 0;
  left: 0;
}

.item__label {
  text-align: left;
}

.message {
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  list-style-type: none;
  min-height: var(--ez-combo-box__list-height);
}

.message__no-result {
  color: var(--ez-combo-box__list-title--primary);
  font-family: var(--ez-combo-box--font-family);
  font-size: var(--ez-combo-box--font-size);
}

.message__loading {
  border-radius: 50%;
  width: 14px;
  height: 14px;
  -webkit-animation: spin 1s linear infinite;
  animation: spin 1s linear infinite;
  border: 3px solid var(--ez-combo-box__list-title--primary);
  border-top: 3px solid transparent;
}

li:hover {
  background-color: var(--ez-combo-box--background-medium);
}

.preselected {
  background-color: var(--background--medium);
}

@-webkit-keyframes spin {
  0% { -webkit-transform: rotate(0deg); }
  100% { -webkit-transform: rotate(360deg); }
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
