/* Keep the complete login experience inside the available viewport. */
body.app-body--login {
  height: 100vh;
  height: 100dvh;
  margin: 0;
  overflow: hidden;
}

.app-body--login .app-root {
  height: 100%;
  min-height: 0;
  padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
}

.app-body--login .app-main {
  min-height: 0;
  padding: 0;
}

.app-body--login .login-page {
  height: 100%;
  min-height: 0;
  padding: clamp(0.5rem, 3vh, 2rem) 1rem;
}

.app-body--login .login-card {
  max-height: 100%;
}

/* The privacy link is already part of the card on the login screen. */
.app-body--login .app-footer {
  display: none;
}

@media (max-width: 480px), (max-height: 720px) {
  .app-body--login .login-card {
    max-width: 390px;
    padding: 1.25rem 1.5rem;
  }

  .app-body--login .login-header {
    margin-bottom: 1rem;
  }

  .app-body--login .login-logo {
    height: clamp(2.5rem, 8vh, 3.5rem);
    margin-bottom: 0.5rem;
  }

  .app-body--login .login-title {
    font-size: 1.5rem;
  }

  .app-body--login .login-form {
    margin-bottom: 1rem;
  }

  .app-body--login .login-card .form-group,
  .app-body--login .login-card .alert {
    margin-bottom: 0.75rem;
  }

  .app-body--login .login-card .form-label {
    margin-bottom: 0.35rem;
  }

  .app-body--login .login-card .form-input,
  .app-body--login .login-card .btn {
    min-height: 2.75rem;
    padding-top: 0.6rem;
    padding-bottom: 0.6rem;
  }

  .app-body--login .login-links {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    column-gap: 1rem;
    row-gap: 0.35rem;
    padding-top: 0.75rem;
  }
}

@media (max-height: 560px) {
  .app-body--login .login-card {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
  }

  .app-body--login .login-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
  }

  .app-body--login .login-logo {
    height: 2rem;
    margin-bottom: 0;
  }

  .app-body--login .login-title {
    font-size: 1.25rem;
  }

  .app-body--login .login-form,
  .app-body--login .login-card .form-group,
  .app-body--login .login-card .alert {
    margin-bottom: 0.5rem;
  }

  .app-body--login .login-links {
    padding-top: 0.5rem;
  }
}
