/* Compatibilite navigateurs UFAP
   Fallbacks pour Chrome, Edge, Firefox, Safari, iOS, Android et zoom navigateur. */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

input,
button,
select,
textarea {
  font: inherit;
  -webkit-appearance: none;
  appearance: none;
}

button,
input,
select,
textarea {
  max-width: 100%;
}

button,
[type="button"],
[type="submit"] {
  min-height: 48px;
  touch-action: manipulation;
}

input,
select,
textarea {
  min-height: 48px;
}

.login-page {
  min-height: 100vh;
  min-height: 100svh;
  min-height: 100dvh;
  overflow-y: auto;
}

.login-page .login-shell {
  min-height: 100vh;
  min-height: 100svh;
  min-height: 100dvh;
}

.login-page .brand-stage,
.login-page .login-stage,
.login-page .login-panel,
.login-page .brand-content {
  min-width: 0;
  max-width: 100%;
}

.login-page .brand-stage,
.login-page .login-stage {
  display: flex;
  align-items: center;
  justify-content: center;
}

@supports (display: grid) {
  .login-page .brand-stage,
  .login-page .login-stage {
    display: grid;
    place-items: center;
  }
}

.login-page .login-shell {
  display: flex;
  flex-wrap: nowrap;
}

.login-page .brand-stage {
  flex: 1 1 58%;
}

.login-page .login-stage {
  flex: 0 1 min(42vw, 520px);
}

@supports (display: grid) {
  .login-page .login-shell {
    display: grid;
  }
}

.login-page .login-panel {
  background: rgba(255, 255, 255, .86);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}

.login-page .logo-hero::before {
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}

.login-page .brand-metric {
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}

.ufap-card,
.login-card,
.ufap-modal,
.modal {
  -webkit-backdrop-filter: blur(18px);
}

.modal-backdrop,
.contact-modal {
  -webkit-backdrop-filter: blur(10px);
}

@supports not ((backdrop-filter: blur(10px)) or (-webkit-backdrop-filter: blur(10px))) {
  .login-page .login-panel,
  .login-card,
  .contact-modal,
  .ufap-card,
  .ufap-modal,
  .modal,
  .brand-metric {
    background: rgba(255, 255, 255, .96) !important;
  }

  .login-page .logo-hero::before,
  .login-page .brand-stage::before,
  .login-page .brand-metric {
    background: rgba(255, 255, 255, .14);
  }
}

.login-page .ufap-input-group {
  position: relative;
  width: 100%;
}

.login-page .ufap-input-icon {
  position: absolute;
  left: 18px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  pointer-events: none;
  z-index: 2;
}

.login-page .ufap-input-group input {
  width: 100%;
  min-height: 52px;
  padding-left: 52px;
  padding-right: 16px;
}

.login-page .logo-hero {
  position: relative;
  width: min(430px, max(220px, 28vw));
  height: min(430px, max(220px, 28vw));
  aspect-ratio: auto;
}

.login-page .logo-hero::before,
.login-page .logo-hero::after {
  top: 50%;
  left: 50%;
  right: auto;
  bottom: auto;
  width: 100%;
  height: 100%;
  transform: translate(-50%, -50%);
}

.login-page .logo-hero::after {
  width: 78%;
  height: 78%;
}

.login-page .hero-logo {
  max-width: 62%;
  height: auto;
}

@supports (width: clamp(1px, 2vw, 3px)) {
  .login-page .logo-hero {
    width: clamp(220px, 28vw, 430px);
    height: clamp(220px, 28vw, 430px);
  }
}

@media (max-width: 1100px), (max-height: 760px) {
  .login-page .login-shell {
    flex-direction: column;
  }

  .login-page .brand-stage,
  .login-page .login-stage {
    flex: 0 1 auto;
    width: 100%;
  }
}

@media (max-width: 768px) {
  .login-page {
    min-height: 100vh;
    min-height: -webkit-fill-available;
    min-height: 100svh;
  }

  .login-page .login-shell {
    min-height: 100vh;
    min-height: -webkit-fill-available;
    min-height: 100svh;
  }
}

@media (max-width: 640px) {
  .login-page .login-shell {
    display: flex;
    flex-direction: column;
  }

  .login-page .brand-stage,
  .login-page .login-stage {
    width: 100%;
  }

  .login-page .login-stage {
    align-items: flex-start;
  }

  .login-page .login-panel {
    width: 100%;
    max-width: 470px;
  }
}

@media (max-height: 620px) {
  .login-page .login-shell {
    min-height: 100vh;
  }

  .login-page .login-panel {
    margin-block: 12px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .login-page *,
  .login-page *::before,
  .login-page *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}
