button[data-submit-feedback-active] {
  cursor: wait;
  opacity: 0.72 !important;
}

button[data-submit-feedback-active]::before {
  display: inline-block;
  flex: 0 0 auto;
  width: 1em;
  height: 1em;
  border: 2px solid transparent;
  border-color: color-mix(in srgb, var(--form-submit-spinner-color, currentColor) 28%, transparent);
  border-top-color: var(--form-submit-spinner-color, currentColor);
  border-radius: 50%;
  content: "";
  animation: form-submit-feedback-spin 0.75s linear infinite;
}

input[data-submit-feedback-active] {
  cursor: wait;
}

form[data-submit-feedback-active] [type="submit"]:disabled,
form[data-submit-feedback-active] button:not([type]):disabled {
  cursor: wait;
}

.form-submit-feedback-announcer {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media (prefers-reduced-motion: reduce) {
  button[data-submit-feedback-active]::before {
    animation: none;
  }
}

@keyframes form-submit-feedback-spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
