:host {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  box-sizing: border-box;
  font-family: var(--font--pattern, Arial, sans-serif);
  font-size: var(--font-size--default, 14px);
  color: var(--color--ocean-green-1000, #00281D);
  border: none;
  padding: 0;

  /* public */
  /*@doc Define a cor do texto do input. */
  --ez-classic-input--label-color: var(--color--ocean-green-1000, #00281D);

  /*@doc Define a cor da borda do input quando está no estado padrão. */
  --ez-classic-input--border-color-default: var(--color--gray-200, #D2D2D3);

  /*@doc Define a cor da borda do input quando está no estado de foco. */
  --ez-classic-input--border-color-focus: var(--color--gray-300, #A4A5A7);

  /*@doc Define a cor da borda do input quando está no estado de sucesso. */
  --ez-classic-input--border-color-success: var(--color--green-600, #157A00);

  /*@doc Define a cor da borda do input quando está no estado de erro. */
  --ez-classic-input--border-color-error: var(--color--red-600, #BD0025);

  /*@doc Define a cor da borda do input quando está no estado de aviso. */
  --ez-classic-input--border-color-warning: var(--color--yellow-600, #EFB103);

  /*@doc Define a cor de fundo do input. */
  --ez-classic-input--background-color: var(--color--gray-70, #FFFFFF);

  /*@doc Define a cor de fundo do input quando está desabilitado. */
  --ez-classic-input--background-color-disabled: var(--color--gray-90, #EAEAEA);

  /*@doc Define a cor do texto do input. */
  --ez-classic-input--text-color: var(--color--ocean-green-1000, #00281D);

  /*@doc Define a cor do texto do placeholder do input. */
  --ez-classic-input--placeholder-color: #bdbdbd;

  /*@doc Define a cor do ícone do input. */
  --ez-classic-input--icon-color: var(--color--gray-400, #77777A);

  /*@doc Define a cor do texto de ajuda do input. */
  --ez-classic-input--helptext-color: var(--color--ocean-green-1000, #00281D);

  /*@doc Define a altura do input. */
  --ez-classic-input--height: 56px;
}

.input-container {
  display: flex;
  flex-direction: row;
  align-items: center;
  width: 100%;
  border: none;
  border-radius: var(--border--radius-8, 8px);
  padding: var(--space--16, 16px);
  box-sizing: border-box;
  gap: var(--space--10, 10px);
  margin: var(--space--4, 4px) var(--space--2, 2px);
  transition: box-shadow 0.2s cubic-bezier(0.4, 0, 0.2, 1);

  /* public */
  height: var(--ez-classic-input--height);
  background-color: var(--ez-classic-input--background-color);
}

.input-container,
.input-container[data-state="default"] {
  box-shadow: 0 0 0 1px var(--ez-classic-input--border-color-default);
}

.input-container[data-state="success"] {
  box-shadow: 0 0 0 var(--space--2, 2px) var(--ez-classic-input--border-color-success);
}

.input-container[data-state="error"] {
  box-shadow: 0 0 0 var(--space--2, 2px) var(--ez-classic-input--border-color-error);
}

.input-container[data-state="warning"] {
  box-shadow: 0 0 0 var(--space--2, 2px) var(--ez-classic-input--border-color-warning);
}

.input-container:focus-within {
  box-shadow: 0 0 0 var(--space--2, 2px) var(--ez-classic-input--border-color-focus);
}

ez-icon {
  min-width: var(--space--24, 24px);
  color: var(--ez-classic-input--icon-color);
}

input {
  flex: 1;
  border: none;
  outline: none;
  background: transparent;
  height: 100%;
  width: 100%;
  padding: 0;
  font-family: var(--font--pattern, Arial, sans-serif);
  font-size: var(--font-size--default, 14px);
  color: var(--color--ocean-green-1000, #00281D);
  text-overflow: ellipsis;

  /* public */
  color: var(--ez-classic-input--text-color);
}

input::placeholder {
  color: var(--ez-classic-input--placeholder-color);
}

.input-container[data-disabled="true"] {
  cursor: not-allowed;

  /* public */
  background: var(--ez-classic-input--background-color-disabled);
  border-color: var(--ez-classic-input--border-color-default);
}

.input-container[data-disabled="true"] > *{
  cursor: not-allowed;
}

.input-container input:read-only {
  cursor: default;
}

@keyframes ez-helptext-fadein {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

span {
  font-size: var(--font-size--xsmall, 10px);
  line-height: var(--line-height--16, 16px);
  overflow: hidden;
  text-overflow: ellipsis;
  animation: ez-helptext-fadein 0.3s ease;

  /* public */
  color: var(--ez-classic-input--helptext-color);
}

label {
  display: block;
  width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: var(--line-height--20, 20px);
  /* public */
  color: var(--ez-classic-input--label-color);
}

.icon-clickable {
  cursor: pointer;
}