/* Shared required-field and invalid-value feedback. */
:is(input, select, textarea).is-field-invalid {
  border-color: #c43f36 !important;
  background-color: #fff7f6 !important;
  box-shadow: 0 0 0 2px rgba(196, 63, 54, .14) !important;
}

:is(input, select, textarea).is-field-invalid:focus {
  outline: 3px solid rgba(196, 63, 54, .22) !important;
  outline-offset: 2px;
}

label.has-invalid-field,
.field.has-invalid-field > label {
  color: #9d2f29;
}

.field-validation-popover {
  position: fixed;
  z-index: 20000;
  width: max-content;
  max-width: min(360px, calc(100vw - 24px));
  padding: 10px 13px 10px 36px;
  color: #6f211d;
  background: #fff8f7;
  border: 1px solid #d46b63;
  border-radius: 9px;
  box-shadow: 0 8px 24px rgba(72, 26, 23, .2);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.55;
  overflow-wrap: anywhere;
}

.field-validation-popover::before {
  content: '!';
  position: absolute;
  top: 10px;
  left: 12px;
  width: 17px;
  height: 17px;
  display: grid;
  place-items: center;
  color: #fff;
  background: #c43f36;
  border-radius: 50%;
  font-size: 11px;
  line-height: 1;
}

@media (max-width: 480px) {
  .field-validation-popover {
    max-width: calc(100vw - 18px);
    padding: 9px 11px 9px 34px;
    font-size: 12px;
  }
}
