.web-text-field {
  --web-text-font-size: 16px;
  --web-text-font-weight: 400;
  --web-text-text-align: left;
  --web-text-text-color: #1F2937;
  --web-text-border-width: 1px;
  --web-text-padding-inline: 6px;
  --web-text-border-color: #A6C9EC;
  --web-text-bg: #FFFFFF;
  --web-text-invalid-border-color: #D14343;
  --web-text-invalid-border-width: 2px;

  display: grid;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
}

.web-text-field__input {
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  padding: 0 var(--web-text-padding-inline);
  border: var(--web-text-border-width) solid var(--web-text-border-color);
  background: var(--web-text-bg);
  color: var(--web-text-text-color);
  font: inherit;
  font-size: var(--web-text-font-size);
  font-weight: var(--web-text-font-weight);
  text-align: var(--web-text-text-align);
  outline: none;
  box-sizing: border-box;
}

.web-text-field__input:focus {
  box-shadow: inset 0 0 0 1px var(--web-text-border-color);
}

.web-text-field[data-state="invalid"] .web-text-field__input {
  border-color: var(--web-text-invalid-border-color);
  border-width: var(--web-text-invalid-border-width);
  box-shadow: none;
}

.web-text-field[data-state="invalid"] .web-text-field__input:focus {
  border-color: var(--web-text-invalid-border-color);
  border-width: var(--web-text-invalid-border-width);
  box-shadow: none;
}
