/**
 * Pages de connexion (portail + PWA) : marque agrandie, mobile sans défilement de page.
 */

/* Marque Portail UDSP sur les écrans de connexion */
.login-page--fit .portail-udsp-brand--login {
  font-size: clamp(2rem, 7.5vw, 2.45rem);
  margin-top: 0.15rem !important;
  line-height: 1.12;
}

.login-page--fit .portail-udsp-brand--login .portail-udsp-flame {
  font-size: 1.22em;
}

.login-page--fit .login-logo {
  margin-bottom: 0;
}

/* Vue mobile : une « fenêtre » centrée, pas de scroll sur le document */
@media (max-width: 575.98px) {
  html.login-html-fit {
    height: 100%;
    overflow: hidden;
  }

  body.login-page.login-page--fit {
    min-height: 100vh;
    min-height: 100dvh;
    max-height: 100vh;
    max-height: 100dvh;
    margin: 0;
    padding: 0.35rem 0.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    overflow: hidden;
  }

  body.login-page.login-page--fit .login-box {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    flex: 0 1 auto;
    max-height: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }

  body.login-page.login-page--fit .login-box > .card {
    max-height: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    margin-bottom: 0;
  }

  body.login-page.login-page--fit .card-header {
    flex-shrink: 0;
    padding: 4px 8px 2px !important;
  }

  body.login-page.login-page--fit .login-card-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: hidden;
    padding: 6px 10px 8px !important;
  }

  /* Défilement uniquement si message d’erreur / alerte (évite le scroll au quotidien) */
  body.login-page.login-page--fit .login-card-body:has(.alert) {
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  body.login-page.login-page--fit .login-card-body .alert {
    padding: 0.4rem 0.55rem;
    font-size: 0.8rem;
    margin-bottom: 0.35rem !important;
  }

  body.login-page.login-page--fit .login-box-msg {
    font-size: 0.82rem !important;
    line-height: 1.25 !important;
    margin-top: 0 !important;
    margin-bottom: 6px !important;
  }

  body.login-page.login-page--fit .input-group.mb-3,
  body.login-page.login-page--fit .d-grid.mb-3,
  body.login-page.login-page--fit .form-check.mb-3 {
    margin-bottom: 0.45rem !important;
  }

  body.login-page.login-page--fit .form-floating > label {
    font-size: 0.82rem;
  }

  body.login-page.login-page--fit .form-control {
    min-height: 40px;
    padding-top: 0.55rem;
    padding-bottom: 0.55rem;
  }

  body.login-page.login-page--fit .btn {
    padding-top: 0.45rem;
    padding-bottom: 0.45rem;
    font-size: 0.92rem;
  }

  body.login-page.login-page--fit .forgot-password-link {
    margin-top: 8px !important;
    font-size: 0.82rem;
  }

  body.login-page.login-page--fit .form-check-label {
    font-size: 0.78rem;
    line-height: 1.2;
  }

  /* PWA : texte légal / explication masqué sur très petit écran pour éviter le scroll */
  body.login-page.login-page--fit .login-pwa-footnote {
    display: none;
  }
}

/* Tablette et plus : marge classique, scroll autorisé si besoin */
@media (min-width: 576px) {
  body.login-page.login-page--fit .login-box {
    width: 360px;
    max-width: 100%;
    margin: 4vh auto;
  }
}
