/* Fond dégradé animé */
.background-gradient {
  background: linear-gradient(-45deg, #007bff, #6610f2, #6f42c1, #20c997);
  background-size: 400% 400%;
  animation: gradientMove 15s ease infinite;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

@keyframes gradientMove {
  0% {background-position: 0% 50%;}
  50% {background-position: 100% 50%;}
  100% {background-position: 0% 50%;}
}

/* Conteneur formulaire */
.login-container {
  background-color: #fff;
  padding: 2.5rem;
  border-radius: 1.25rem;
  box-shadow: 0 10px 30px rgba(0,0,0,0.2);
  width: 100%;
  max-width: 450px;
  animation: fadeInUp 0.8s ease;
}

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

/* Titre */
h1 {
  font-size: 2.1rem;
  font-weight: 700;
  color: #343a40;
  margin-bottom: 1.5rem;
}

/* Input fields */
input.form-control {
  border-radius: 0.5rem;
  padding: 0.75rem;
  border: 2px solid #e0e0e0;
  transition: all 0.3s ease;
}

input.form-control:focus {
  border-color: #6610f2;
  box-shadow: 0 0 10px rgba(102, 16, 242, 0.2);
}

/* Boutons */
button.btn {
  padding: 0.75rem;
  font-weight: 600;
  border-radius: 0.5rem;
  transition: all 0.3s ease;
}

.btn-primary {
  background: linear-gradient(135deg, #007bff, #6610f2);
  border: none;
  color: white;
}

.btn-primary:hover {
  background: linear-gradient(135deg, #0056b3, #5a0ee3);
  transform: scale(1.03);
}

.btn-warning:hover {
  background-color: #e0a800;
  transform: scale(1.03);
}

/* Liens */
a {
  text-decoration: none;
  transition: color 0.3s;
  font-weight: 500;
}

a:hover {
  text-decoration: underline;
  color: #0056b3;
}

.d-none {
  display: none !important;
}

/* Animation fade form */
.animated-form {
  animation: fadeInUp 0.6s ease;
}

/* Responsive */
@media (max-width: 576px) {
  .login-container {
    padding: 1.5rem;
    margin: 1rem;
  }

  h1 {
    font-size: 1.6rem;
  }
}
