.ui-input {
  position: relative;
}

.ui-input input {
  width: 100%;
  height: 36px;
  border: 1px solid var(--color-neutral-300);
  border-radius: var(--radius-sm);
  background: #fff;
  padding: 7px 12px;
  color: var(--color-neutral-900);
  font: inherit;
  font-size: var(--font-sm);
  line-height: 20px;
  transition: border-color 120ms ease, box-shadow 120ms ease;
}

.ui-input input::placeholder {
  color: var(--color-neutral-400);
}

.ui-input input:hover {
  border-color: var(--color-neutral-400);
}

.ui-input input:focus {
  border-color: var(--color-blue-500);
  outline: none;
  box-shadow: 0 0 0 3px var(--color-blue-100);
}

.ui-input--with-icon input {
  padding-left: 38px;
}

.ui-input--with-trailing input {
  padding-right: 40px;
}

.ui-input--invalid input {
  border-color: var(--color-red-500);
}

.ui-input__icon,
.ui-input__trailing {
  position: absolute;
  top: 50%;
  z-index: 1;
  display: inline-flex;
  color: var(--color-neutral-500);
  transform: translateY(-50%);
}

.ui-input__icon {
  left: 12px;
}

.ui-input__trailing {
  right: 7px;
}
