/* Ported verbatim from the <style> element that assets/js/form.js appends to <head> at
   runtime (form.js:257-291). Kept as a stylesheet so the rules exist at first paint rather
   than after hydration. Last in the cascade, matching where the runtime injection landed. */
.form-input.error,
.form-textarea.error,
.form-select.error {
  border-color: var(--marsala);
}

.form-input.error:focus,
.form-textarea.error:focus,
.form-select.error:focus {
  box-shadow: 0 0 0 3px rgba(149, 82, 81, 0.1);
}

button[disabled] {
  opacity: 0.7;
  cursor: not-allowed;
}

.spinner {
  display: inline-block;
  width: 16px;
  height: 16px;
  border: 2px solid rgba(255, 255, 255, 0.3);
  border-radius: 50%;
  border-top-color: white;
  animation: spin 0.8s linear infinite;
  margin-right: 0.5rem;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}
