/* ════════════════════════════════════════════════
   forms.css — Estados y feedback de formularios
   Alianza Sustentable
   Agregar a main.css o cargar como hoja separada
════════════════════════════════════════════════ */

/* ── Mensaje de estado post-envío ──────────────── */
.form-status {
  display: none;
  margin-top: 16px;
  padding: 14px 18px;
  border-radius: 8px;
  font-family: 'DM Sans', sans-serif;
  font-size: .93rem;
  font-weight: 500;
  line-height: 1.5;
  animation: fadeInUp .35s ease;
}

.form-status-ok {
  background: rgba(46, 125, 82, .1);
  border: 1px solid rgba(46, 125, 82, .3);
  color: #1e5e3a;
}

.form-status-err {
  background: rgba(197, 48, 48, .08);
  border: 1px solid rgba(197, 48, 48, .25);
  color: #9b2c2c;
}

@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Input focus ring consistente ──────────────── */
.form-input:focus,
.form-select:focus,
.form-textarea:focus {
  outline: none;
  border-color: #1e5f9e;
  box-shadow: 0 0 0 3px rgba(26, 95, 158, .15);
}

/* ── Spinner en botón de envío ─────────────────── */
.fa-spin {
  animation: spin .7s linear infinite;
}

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

/* ── Botón deshabilitado durante envío ─────────── */
[type="submit"]:disabled {
  opacity: .7;
  cursor: not-allowed;
  pointer-events: none;
}
