/* ============================== */
/* Login — Design violet Copilote */
/* ============================== */

* {
  box-sizing: border-box;
}

body {
  margin: 0 !important;
  font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, sans-serif !important;
  background:
    radial-gradient(circle at 50% 100%, rgba(188, 167, 255, 0.30) 0%, rgba(246, 242, 255, 0.66) 30%, transparent 66%),
    linear-gradient(180deg, #FFFFFF 0%, #FAFAFB 48%, #F6F2FF 100%) !important;
  color: #160E34 !important;
  min-height: 100vh !important;
}

/* Header */
.nav {
  background: #FFFFFF !important;
  border-bottom: 1px solid rgba(105, 90, 215, 0.10) !important;
  padding: 16px 28px !important;
}

.nav-inner {
  max-width: 1280px !important;
  margin: 0 auto !important;
  display: grid !important;
  grid-template-columns: 1fr auto 1fr !important;
  align-items: center !important;
  gap: 24px !important;
}

.nav .logo {
  grid-column: 2 !important;
  justify-self: center !important;
}

.nav .logo img {
  height: 76px !important;
  width: auto !important;
  display: block !important;
}

.btn-nav {
  grid-column: 3 !important;
  justify-self: end !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: linear-gradient(90deg, #695AD7 0%, #7B2CFF 55%, #A855F7 100%) !important;
  color: #FFFFFF !important;
  border: none !important;
  border-radius: 14px !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 16px !important;
  font-weight: 800 !important;
  padding: 14px 24px !important;
  text-decoration: none !important;
  box-shadow: 0 12px 32px rgba(105, 90, 215, 0.28) !important;
}

/* Section */
.login-section {
  min-height: calc(100vh - 110px) !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  padding: 80px 24px 100px !important;
}

/* Carte */
.login-card {
  width: 100% !important;
  max-width: 590px !important;
  background: linear-gradient(180deg, #FFFFFF 0%, #FCFBFF 100%) !important;
  border: 1px solid rgba(105, 90, 215, 0.16) !important;
  border-radius: 34px !important;
  padding: 58px 54px 52px !important;
  box-shadow:
    0 30px 90px rgba(22, 14, 52, 0.10),
    0 0 0 1px rgba(255,255,255,0.75) inset !important;
  text-align: center !important;
}

.login-logo {
  margin-bottom: 38px !important;
}

.login-logo img {
  height: 58px !important;
  width: auto !important;
}

.login-card h1 {
  color: #160E34 !important;
  font-family: 'Manrope', 'Inter', sans-serif !important;
  font-size: clamp(36px, 4vw, 48px) !important;
  font-weight: 900 !important;
  line-height: 1.06 !important;
  letter-spacing: -0.055em !important;
  margin: 0 0 18px !important;
}

.login-sub {
  color: #5F6472 !important;
  font-size: 18px !important;
  font-weight: 500 !important;
  line-height: 1.55 !important;
  margin: 0 0 38px !important;
}

/* Formulaire */
.form-group {
  text-align: left !important;
  margin-bottom: 24px !important;
}

.form-group label {
  display: block !important;
  color: #160E34 !important;
  font-size: 15px !important;
  font-weight: 900 !important;
  margin-bottom: 10px !important;
}

.form-group input {
  width: 100% !important;
  height: 58px !important;
  background: #FFFFFF !important;
  border: 1px solid #DADADA !important;
  border-radius: 16px !important;
  color: #160E34 !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 17px !important;
  padding: 0 18px !important;
  transition: border-color .18s ease, box-shadow .18s ease !important;
}

.form-group input:focus {
  outline: none !important;
  border-color: #695AD7 !important;
  box-shadow: 0 0 0 4px rgba(105, 90, 215, 0.14) !important;
}

.form-group input::placeholder {
  color: #8D8AA3 !important;
}

/* Bouton principal */
#btn-login,
.btn-primary {
  width: 100% !important;
  background: linear-gradient(90deg, #695AD7 0%, #7B2CFF 55%, #A855F7 100%) !important;
  color: #FFFFFF !important;
  border: none !important;
  border-radius: 18px !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 18px !important;
  font-weight: 900 !important;
  padding: 18px 30px !important;
  margin-top: 12px !important;
  box-shadow: 0 18px 46px rgba(105, 90, 215, 0.34) !important;
  cursor: pointer !important;
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease !important;
}

#btn-login:hover,
.btn-primary:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 22px 55px rgba(105, 90, 215, 0.42) !important;
  filter: saturate(1.08) !important;
}

/* Footer login */
.login-footer {
  color: #5F6472 !important;
  font-size: 17px !important;
  font-weight: 500 !important;
  margin: 34px 0 0 !important;
}

.login-footer a {
  color: #695AD7 !important;
  font-weight: 900 !important;
  text-decoration: none !important;
}

/* Erreur */
.error-msg {
  background: #FFF1F2 !important;
  border: 1px solid #FDA4AF !important;
  color: #9F1239 !important;
  border-radius: 16px !important;
  padding: 16px !important;
  font-weight: 800 !important;
  line-height: 1.45 !important;
  margin-bottom: 24px !important;
}

/* Mobile */
@media (max-width: 768px) {
  .nav-inner {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  .nav .logo {
    grid-column: 1 !important;
    justify-self: center !important;
  }

  .nav .logo img {
    height: 58px !important;
  }

  .btn-nav {
    grid-column: 1 !important;
    justify-self: center !important;
    font-size: 14px !important;
    padding: 11px 16px !important;
  }

  .login-section {
    padding: 52px 20px 80px !important;
    align-items: flex-start !important;
  }

  .login-card {
    padding: 42px 24px 38px !important;
    border-radius: 28px !important;
  }

  .login-logo img {
    height: 48px !important;
  }
}

/* Login sans header */
.login-section {
  min-height: 100vh !important;
  padding-top: 70px !important;
}

/* Mot de passe oublié */
.forgot-password-link {
  margin: 14px 0 0 !important;
  text-align: center !important;
}

.forgot-password-link a {
  color: #7B2CFF !important;
  font-weight: 900 !important;
  text-decoration: none !important;
}

.forgot-password-link a:hover {
  text-decoration: underline !important;
}

/* Mot de passe oublié */
.forgot-password-link {
  margin: 14px 0 0 !important;
  text-align: center !important;
}

.forgot-password-link a {
  color: #7B2CFF !important;
  font-weight: 900 !important;
  text-decoration: none !important;
}

.forgot-password-link a:hover {
  text-decoration: underline !important;
}
