/* Fond chaud violet/rose pour différencier du site Sabie */
.bg-app {
  background:
    radial-gradient(900px 700px at 15% 10%, rgba(244, 114, 182, 0.35), transparent 65%),
    radial-gradient(1100px 800px at 100% 100%, rgba(168, 85, 247, 0.35), transparent 65%),
    radial-gradient(700px 500px at 50% 50%, rgba(124, 58, 237, 0.20), transparent 70%),
    linear-gradient(180deg, #1a0b2e 0%, #2a1448 45%, #4c1d95 100%);
  background-attachment: fixed;
}

@media (max-width: 768px) {
  input, select, textarea, button { font-size: 16px; }
}

.card {
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.13);
  border-radius: 18px;
  backdrop-filter: blur(10px);
}

.btn-primary {
  background: linear-gradient(135deg, #f43f5e 0%, #a855f7 100%);
  color: white;
  box-shadow: 0 8px 22px -6px rgba(244, 63, 94, 0.5);
}
.btn-primary:hover { filter: brightness(1.08); }
.btn-primary:active { transform: scale(0.98); }

@keyframes fadeIn { from {opacity:0} to {opacity:1} }
@keyframes slideUp { from {opacity:0; transform:translateY(14px)} to {opacity:1; transform:translateY(0)} }
@keyframes qPop {
  0%   { opacity:0; transform: scale(0.92); }
  70%  { opacity:1; transform: scale(1.02); }
  100% { opacity:1; transform: scale(1); }
}
.a-fade-in  { animation: fadeIn 400ms ease-out both; }
.a-slide-up { animation: slideUp 500ms cubic-bezier(.22,1,.36,1) both; }
.a-q-pop    { animation: qPop 500ms cubic-bezier(.22,1,.36,1) both; }
