/* Scope all layout changes to the custom authentication forms. */
.fgiga_login_popup_section:not(.fgiga_login_popup_section_show) {
  display: none !important;
}
.fgiga_login_popup_section.fgiga_login_popup_section_show {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 16px;
  max-height: none;
  overflow: visible;
  transition: none;
  min-width: 0;
  box-sizing: border-box;
}
.fgiga_login_popup_section.fgiga_login_popup_section_show > *,
.fgiga_login_popup_section .new_ticket_form_element,
.fgiga_login_popup_section .fgiga_login_resend {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  margin-top: 0;
  margin-bottom: 0;
}
.fgiga_login_popup_section button {
  min-height: 44px;
  height: auto;
  white-space: normal;
  overflow-wrap: anywhere;
  margin-bottom: 0;
  flex-shrink: 0;
}
.fgiga_login_popup_section .fgiga_login_resend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.fgiga_login_popup_section .fgiga_login_resend button {
  width: auto;
  max-width: 100%;
  margin: 0;
}
.fgiga_login_popup_section .fgiga_login_wrong_number {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  width: 100%;
}
.fgiga_login_popup_section .fgiga_login_wrong_number button,
.fgiga_login_popup_section button.login_popup_change_button {
  position: static;
  transform: none;
  margin: 0;
  min-height: 44px;
}
.fgiga_login_popup_section input {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  font-size: max(16px, 1em);
}
.fgiga_login_popup_section input[autocomplete="one-time-code"],
.fgiga_login_popup_section input[autocomplete="tel-national"] {
  direction: ltr;
  text-align: right;
}
.jmbj-auth-message {
  width: 100%;
  margin: 0;
  color: #b42318;
  line-height: 1.7;
  overflow-wrap: anywhere;
}
.jmbj-auth-message[data-success="true"] { color: #19703d; }
.fgiga_login_popup_section [aria-busy="true"] { opacity: .7; }

/* Only mounted while an OTP is being checked or a confirmed login redirects. */
html.jmbj-auth-transition { overflow: hidden; }
.jmbj-auth-progress, .jmbj-auth-progress * { box-sizing: border-box; }
.jmbj-auth-progress {
  position: fixed; inset: 0; z-index: 2147483646;
  display: flex; align-items: center; justify-content: center;
  padding: 24px; overflow-y: auto; overscroll-behavior: contain;
  background: rgba(10, 34, 65, .68); color: #102e50;
  font-family: inherit; text-align: center;
}
.jmbj-auth-progress-card {
  width: min(100%, 380px); margin: auto; padding: 28px 24px;
  border: 1px solid #dce8f5; border-radius: 26px;
  background: #fff; box-shadow: 0 18px 60px rgba(5, 29, 60, .24);
}
.jmbj-auth-progress h2 { margin: 20px 0 8px; color: #102e50; font: inherit; font-size: 21px; font-weight: 800; line-height: 1.6; }
.jmbj-auth-progress p { margin: 0; color: #4a6078; font: inherit; font-size: 15px; line-height: 1.9; }
.jmbj-auth-sky { position: relative; width: 172px; height: 104px; margin: 0 auto; border-radius: 55px; overflow: hidden; background: #edf6ff; }
.jmbj-auth-plane { position: absolute; top: 17px; left: 28px; width: 116px; height: 84px; animation: jmbj-auth-fly 2.4s ease-in-out infinite; }
.jmbj-auth-plane svg { display: block; width: 100%; height: 100%; }
.jmbj-auth-cloud { position: absolute; width: 56px; height: 16px; border-radius: 20px; background: #d3e8fc; animation: jmbj-auth-cloud-pass 3.6s linear infinite; }
.jmbj-auth-cloud::before { content: ''; position: absolute; left: 14px; top: -8px; width: 25px; height: 25px; border-radius: 50%; background: inherit; }
.jmbj-auth-cloud-one { top: 22px; left: 160px; }
.jmbj-auth-cloud-two { top: 79px; left: 160px; animation-delay: -1.8s; opacity: .7; }
.jmbj-auth-progress-dots { display: flex; direction: ltr; justify-content: center; gap: 7px; margin-top: 20px; }
.jmbj-auth-progress-dots i { display: block; width: 6px; height: 6px; border-radius: 50%; background: #176bc0; animation: jmbj-auth-pulse 1.2s ease-in-out infinite; }
.jmbj-auth-progress-dots i:nth-child(2) { animation-delay: .15s; }
.jmbj-auth-progress-dots i:nth-child(3) { animation-delay: .3s; }
.jmbj-auth-continue:not([hidden]) { display: block; margin-top: 18px; padding: 12px 16px; border-radius: 12px; background: #1464bd; color: #fff; font: inherit; font-weight: 700; line-height: 1.6; text-decoration: none; min-height: 48px; }
.jmbj-auth-continue[hidden] { display: none !important; }
.jmbj-auth-continue:focus-visible { outline: 3px solid #102e50; outline-offset: 3px; }
@keyframes jmbj-auth-fly { 0%, 100% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-7px) rotate(2deg); } }
@keyframes jmbj-auth-cloud-pass { from { transform: translateX(0); } to { transform: translateX(-240px); } }
@keyframes jmbj-auth-pulse { 0%, 100% { opacity: .3; } 50% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  .jmbj-auth-plane, .jmbj-auth-cloud, .jmbj-auth-progress-dots i { animation: none; }
  .jmbj-auth-cloud-one { left: 10px; }
  .jmbj-auth-cloud-two { left: 120px; }
}
@media (max-width: 360px) {
  .jmbj-auth-progress { padding: 16px; }
  .jmbj-auth-progress-card { padding: 24px 18px; }
  .jmbj-auth-progress h2 { font-size: 19px; }
}
