.base-input {
  position: relative;
  padding: 15px 0 0;
  margin-top: 10px;
  width: 100%;
}

.base-input__unit {
  width: 100%;
  border: 0;
  border-bottom: 2px dotted #919eab;
  outline: 0;
  font-size: 16px;
  padding: 6px 0;
  background: transparent;
  transition: border-color 0.2s;
}

.base-input__unit::placeholder {
  color: transparent;
}

.base-input__unit:placeholder-shown ~ .base-input__unit-label {
  font-size: 16px;
  cursor: text;
  top: 20px;
  color: #212b36;
}

.base-input__unit-label {
  position: absolute;
  top: -2px;
  display: block;
  font-size: 12px;
  font-weight: 500;
  color: #919eab;
  transition: color 0.3s ease, top 0.3s ease, font-size 0.3s ease;
}

.base-input:has(.base-input__unit[required]) .base-input__unit-label::after {
  content: '*';
  color: #a90606;
  font-size: 14px;

  vertical-align: super;
}
