:host {
  /* dimensions */
  /*@doc Define altura do input.*/
  --ez-search--height: 42px;
  /*@doc Define largura do input.*/
  --ez-search--width: 100%;
  /*@doc Define largura do slot do ícone do input.*/
  --ez-search__icon--width: 48px;

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

  /* input */
  /*@doc Define a cor de fundo do input.*/
  --ez-search__input--background-color: var(--background--medium, #e0e0e0);
  /*@doc Define o estilo da borda do input.*/
  --ez-search__input--border: var(--border--medium, 2px solid);
  /*@doc Define a cor da borda do input.*/
  --ez-search__input--border-color: var(--ez-search__input--background-color);
  /*no modo normal usamos a borda com a mesma cor do bg*/
  /*@doc Define a cor da borda do input quando focado.*/
  --ez-search__input--focus--border-color: var(--color--primary, #008561);
  /*@doc Define a cor de fundo do input quando desabilitado.*/
  --ez-search__input--disabled--background-color: var(--color--disable-secondary, #F2F5F8);
  /*@doc Define a cor do texto dentro do input quando desabilitado.*/
  --ez-search__input--disabled--color: var(--text--disable, #AFB6C0);
  /*@doc Define a cor da borda do input quando com erro.*/
  --ez-search__input--error--border-color: #CC2936;

  /* buttons */
  /*@doc Define a cor do botão de pesquisa do componente.*/
  --ez-search__btn--color: var(--title--primary, #2B3A54);
  /*@doc Define a cor do botão de pesquisa do componente quando desabilitado.*/
  --ez-search__btn-disabled--color: var(--text--disable, #AFB6C0);
  /*@doc Define a cor do botão de pesquisa do componente quando o mouse está sobre ele.*/
  --ez-search__btn-hover--color: var(--color--primary, #4e4e4e);

  /* label */
  /*@doc Define a cor do label.*/
  --ez-search__label--color: var(--title--primary, #2B3A54);

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

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

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

  /***************
     host style  
  ***************/
  /*private*/
  display: flex;
  flex-wrap: wrap;
  position: relative;

  /*public*/
  width: var(--ez-search--width);
}

ez-icon {
  --ez-icon--color: inherit;

  /*public*/
  font-weight: var(--text-weight--large, 600);
}

.suppressed-search-input{
  /*public*/
  --ez-text-input__input--border-color: var(--color--strokes, #dce0e8);
  --ez-text-input__input--disabled--background-color: var(--background--xlight, #fff);
  --ez-text-input__input--disabled--color: var(--title--primary, #2B3A54);
}

.list-container {
  /*public*/
  min-width: var(--ez-search__list-min-width);
  overflow: auto;

  /*private*/
  position: relative;
  width: 100%;
}

.list-wrapper {
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  width: 0;

  /*public*/
  z-index: var(--more-visible, 2);
  max-height: 350px;
  min-width: 150px;
  background-color: var(--ez-search--background-color--xlight);
  border-radius: var(--ez-search--border-radius);
  box-shadow: var(--shadow, 0px 0px 16px 0px #000);
}

.list-options {
  margin-top: 0px;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  padding: 0;
  display: flex;
  flex-direction: column;  
  scroll-behavior: smooth;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: thin;

  /*public*/
  scrollbar-color: var(--ez-search__scrollbar--color-clicked) var(--ez-search__scrollbar--color-background);

}

.list-options::-webkit-scrollbar {
  /*public*/
  background-color: var(--scrollbar--background);
  width: var(--space--small);
  max-width: var(--space--small);
  min-width: var(--space--small);
  height: var(--space--small);
  max-height: var(--space--small);
  min-height: var(--space--small);
}

.list-options::-webkit-scrollbar-track {
  /*public*/
  background-color: var(--ez-search__scrollbar--color-background);
  border-radius: var(--ez-search__scrollbar--border-radius);
}

.list-options::-webkit-scrollbar-thumb {
  /*public*/
  background-color: var(--ez-search__scrollbar--color-default);
  border-radius: var(--ez-search__scrollbar--border-radius);
}

.list-options::-webkit-scrollbar-thumb:vertical:hover,
.list-options::-webkit-scrollbar-thumb:horizontal:hover {
  /*public*/
  background-color: var(--ez-search__scrollbar--color-hover);
}

.list-options::-webkit-scrollbar-thumb:vertical:active,
.list-options::-webkit-scrollbar-thumb:horizontal:active {
  /*public*/
  background-color: var(--ez-search__scrollbar--color-clicked);
}

.item {
  display: flex;
  align-items: center;
  width: 100%;
  box-sizing: border-box;
  list-style-type: none;
  cursor: pointer;

  /*public*/
  border-radius: var(--ez-search--border-radius-small);
  gap: var(--space--small, 6px);
}

.item__value,
.item__label {
  flex-basis: auto;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;

  /*public*/
  color: var(--ez-search__list-title--primary);
  font-family: var(--ez-search--font-family);
  font-size: var(--ez-search--font-size);
  line-height: var(--ez-search--line-height);
}

.item__label {
  /*public*/
  font-weight: var(--ez-search--font-weight--medium);
}

.item__label--bold {
  /*public*/
  font-weight: var(--ez-search--font-weight--large);
}

.item__value {
  text-align: center;

  /*public*/
  color: var(--ez-search__list-text--primary);
  font-weight: var(--ez-search--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;
  
  /*public*/
  min-height: var(--ez-search__list-height);
}

.message__no-result {
  /*public*/
  color: var(--ez-search__list-title--primary);
  font-family: var(--ez-search--font-family);
  font-size: var(--ez-search--font-size);
}

.message__loading {
  border-radius: 50%;
  width: 14px;
  height: 14px;
  -webkit-animation: spin 1s linear infinite;
  animation: spin 1s linear infinite;

  /*public*/
  border: 3px solid var(--ez-search__list-title--primary);
  border-top: 3px solid transparent;
}

.item__list > li:hover {
  /*public*/
  background-color: var(--ez-search--background-medium);
}

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

.btn {
  outline: none;
  border: none;
  background: none;
  cursor: pointer;

  /*public*/
  color: var(--ez-search__btn--color);
}

.btn:disabled {
  cursor: not-allowed;

  /*public*/
  color: var(--ez-search__btn-disabled--color);
}

.btn:disabled:hover {
  cursor: not-allowed;

  /*public*/
  color: var(--ez-search__btn-disabled--color);
}

.btn:hover {
  /*public*/
  color: var(--ez-search__btn-hover--color);
}

.btn__close {
  visibility: hidden;
}

ez-text-input:hover .btn__close, ez-text-input:focus .btn__close {
  visibility: visible;
}


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

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

@supports not (scrollbar-width: thin) {
  /* Estilos para navegadores que NÃO suportam scrollbar-width */
  .item {
      /* Estilos alternativos, por exemplo, para navegadores que não suportam scrollbar-width */
      padding-right: 8px;
  }
}

.ez-search-plus__container{
  display: flex;
  flex-grow: 1;
  gap: 3px;
}

.ez-search-plus__text-input{
  --ez-text-input--border-top-left-radius: 0px;
  --ez-text-input--border-bottom-left-radius: 0px;
  outline: none;
}

.ez-search-plus__code-input-no-border{
  --ez-text-input--border-top-right-radius: 0px;
  --ez-text-input--border-bottom-right-radius: 0px;
}

.ez-search-plus__code-input{
  max-width: 85px;
}

.ez-search-plus__code-input-full{
  width: 100%;
}

.description-input-container{
  width: 100%;
  outline: none;
}