.waave-login-wall-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999999;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  overflow: hidden;
  background: #ffffff;
  color: #111827;
  height: 100dvh;
  min-height: 100dvh;
}

.waave-login-wall {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(460px, 2fr);
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  background: #ffffff;
}

.waave-login-wall__visual {
  position: relative;
  min-height: 0;
  overflow: hidden;
  background: #101828;
}

.waave-login-wall__main-image {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 45% center;
}

.waave-login-wall__visual-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      180deg,
      rgba(8, 16, 31, 0.05) 0%,
      rgba(8, 16, 31, 0.56) 100%
    ),
    linear-gradient(90deg, rgba(8, 16, 31, 0.38) 0%, rgba(8, 16, 31, 0) 62%);
}

.waave-login-wall__brand {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 10px;
}

.waave-login-wall__brand img {
  display: block;
  width: auto;
  max-width: 190px;
  max-height: 72px;
}

.waave-login-wall__content {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  min-height: 540px;
  overflow-y: auto;
  padding: 40px 32px;
  background: #ffffff;
}

.waave-login-wall__auth {
  width: 100%;
  max-width: 420px;
}

.waave-login-wall__auth h2 {
  margin: 0 0 18px;
  font-size: 30px;
  line-height: 1.2;
  font-weight: 800;
  color: #111827;
  text-align: center;
}

.waave-login-wall__field-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.waave-login-wall__required {
  color: #dc2626;
}

.waave-login-wall__optional {
  color: #9ca3af;
  font-weight: 600;
}

.waave-login-wall__tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin-bottom: 22px;
  border-bottom: 1px solid #e5e7eb;
}

.waave-login-wall__tab {
  appearance: none;
  min-height: 40px;
  padding: 0 10px 12px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: #9ca3af;
  cursor: pointer;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
}

.waave-login-wall__tab--active {
  border-bottom-color: #3b82f6;
  color: #111827;
}

.waave-login-wall__form {
  display: none;
  min-height: 202px;
}

.waave-login-wall__form--active {
  display: block;
}

.waave-login-wall__form p {
  margin: 0 0 16px;
}

.waave-login-wall__form label {
  display: block;
  margin-bottom: 8px;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.2;
  color: #6b7280;
}

.waave-login-wall__form input[type="text"],
.waave-login-wall__form input[type="email"],
.waave-login-wall__form input[type="password"] {
  box-sizing: border-box;
  width: 100%;
  min-height: 48px;
  padding: 12px 16px;
  border: 1px solid #dbe4f3;
  border-radius: 7px;
  background: #eaf1fc;
  color: #111827;
  font-size: 14px;
  line-height: 1.35;
  outline: none;
}

.waave-login-wall__password-field {
  position: relative;
  display: block;
}

.waave-login-wall__password-field input {
  padding-right: 52px;
}

.waave-login-wall__password-toggle {
  appearance: none;
  position: absolute;
  top: 50%;
  right: 14px;
  width: 22px;
  height: 22px;
  min-width: 22px;
  max-width: 22px;
  min-height: 0;
  max-height: 22px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent !important;
  box-shadow: none;
  color: #111111;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0;
  line-height: 0;
  overflow: hidden;
  text-decoration: none;
  transform: translateY(-50%);
}

.waave-login-wall__password-toggle::before {
  content: "";
  display: block;
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  background-image: url('data:image/svg+xml,<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M17.3 3.3C16.9 2.9 16.2 2.9 15.7 3.3L13.3 5.7C12.2437 5.3079 11.1267 5.1048 10 5.1C6.2 5.2 2.8 7.2 1 10.5C1.2 10.9 1.5 11.3 1.8 11.7C2.6 12.8 3.6 13.7 4.7 14.4L3 16.1C2.6 16.5 2.5 17.2 3 17.7C3.4 18.1 4.1 18.2 4.6 17.7L17.3 4.9C17.7 4.4 17.7 3.7 17.3 3.3ZM6.7 12.3L5.4 13.6C4.2 12.9 3.1 11.9 2.3 10.7C3.5 9 5.1 7.8 7 7.2C5.7 8.6 5.6 10.8 6.7 12.3ZM10.1 9C9.6 8.5 9.7 7.7 10.2 7.2C10.7 6.8 11.4 6.8 11.9 7.2L10.1 9ZM18.3 9.5C17.8 8.8 17.2 8.1 16.5 7.6L15.5 8.6C16.3 9.2 17 9.9 17.6 10.8C15.9 13.4 13 15 9.9 15H9.1L8.1 16C8.8 15.9 9.4 16 10 16C13.3 16 16.4 14.4 18.3 11.7C18.6 11.3 18.8 10.9 19.1 10.5C18.8 10.2 18.6 9.8 18.3 9.5ZM14 10L10 14C12.2 14 14 12.2 14 10Z" fill="%23111111"/></svg>');
  background-repeat: no-repeat;
  background-size: cover;
}

.waave-login-wall__password-toggle::after {
  display: none !important;
  content: none !important;
}

.waave-login-wall__password-toggle.display-password::before {
  background-image: url('data:image/svg+xml,<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M18.3 9.49999C15 4.89999 8.50002 3.79999 3.90002 7.19999C2.70002 8.09999 1.70002 9.29999 0.900024 10.6C1.10002 11 1.40002 11.4 1.70002 11.8C5.00002 16.4 11.3 17.4 15.9 14.2C16.8 13.5 17.6 12.8 18.3 11.8C18.6 11.4 18.8 11 19.1 10.6C18.8 10.2 18.6 9.79999 18.3 9.49999ZM10.1 7.19999C10.6 6.69999 11.4 6.69999 11.9 7.19999C12.4 7.69999 12.4 8.49999 11.9 8.99999C11.4 9.49999 10.6 9.49999 10.1 8.99999C9.60003 8.49999 9.60003 7.69999 10.1 7.19999ZM10 14.9C6.90002 14.9 4.00002 13.3 2.30002 10.7C3.50002 8.99999 5.10002 7.79999 7.00002 7.19999C6.30002 7.99999 6.00002 8.89999 6.00002 9.89999C6.00002 12.1 7.70002 14 10 14C12.2 14 14.1 12.3 14.1 9.99999V9.89999C14.1 8.89999 13.7 7.89999 13 7.19999C14.9 7.79999 16.5 8.99999 17.7 10.7C16 13.3 13.1 14.9 10 14.9Z" fill="%23111111"/></svg>');
}

.waave-login-wall__form input:focus {
  border-color: #3b82f6;
  box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.18);
}

.waave-login-wall__form button[type="submit"] {
  width: 100%;
  min-height: 48px;
  padding: 12px 16px;
  border: 0;
  border-radius: 7px;
  background: #17152b;
  color: #ffffff;
  cursor: pointer;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.2;
}

.waave-login-wall__form button[type="submit"]:hover,
.waave-login-wall__form button[type="submit"]:focus {
  background: #24213f;
}

.waave-login-wall__disclaimer {
  display: grid;
  gap: 10px;
  margin: 4px 0 18px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #4b5563;
}

.waave-login-wall__disclaimer label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0;
  cursor: pointer;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.35;
}

.waave-login-wall__disclaimer-checkbox {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  margin: 0;
  cursor: pointer;
}

.waave-login-wall__disclaimer span {
  font-weight: 500;
}

.waave-login-wall__footer {
  margin-top: 18px;
  text-align: center;
}

.waave-login-wall__legal {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 4px;
  color: #9ca3af;
  font-size: 12px;
  line-height: 1.4;
}

.waave-login-wall__legal a {
  color: #8b95a6;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.waave-login-wall__separator {
  color: #c4cad4;
}

.waave-login-wall-overlay--register .waave-login-wall__forgot {
  display: none;
}

.waave-login-wall-overlay--register .waave-login-wall__form p {
  margin-bottom: 10px;
}

.waave-login-wall-overlay--register .waave-login-wall__form label {
  margin-bottom: 6px;
}

.waave-login-wall-overlay--register .waave-login-wall__disclaimer {
  gap: 7px;
  margin: 2px 0 12px;
}

.waave-login-wall-overlay--register .waave-login-wall__footer {
  margin-top: 10px;
}

.waave-login-wall-overlay--register .waave-login-wall__payments {
  margin-top: 10px;
}

.waave-login-wall__payments {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 16px;
  color: #9ca3af;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
}

.waave-login-wall__card {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  height: 16px;
  padding: 0 4px;
  border-radius: 2px;
  font-size: 9px;
  font-weight: 900;
  line-height: 1;
}

.waave-login-wall__card--visa {
  background: #1a4aa1;
  color: #ffffff;
}

.waave-login-wall__card--mastercard {
  position: relative;
  overflow: hidden;
  background: #f59e0b;
  color: #ffffff;
}

.waave-login-wall__card--mastercard::before {
  content: "";
  position: absolute;
  left: 2px;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: #ef4444;
  opacity: 0.88;
}

.waave-login-wall__card--mastercard {
  text-indent: 7px;
}

.waave-login-wall__message {
  display: none;
  margin-bottom: 16px;
  padding: 12px 14px;
  border-radius: 7px;
  font-size: 13px;
  line-height: 1.4;
}

.waave-login-wall__message--error {
  background: #fee2e2;
  color: #991b1b;
}

.waave-login-wall__message--success {
  background: #d1fae5;
  color: #065f46;
}

.waave-login-wall__disclaimers {
  flex: 0 0 auto;
}

.waave-login-wall__disclaimers .waave-compliance-mode {
  margin: 0 !important;
  padding: 12px 28px 10px;
  max-height: 28dvh;
  overflow-y: auto;
  background: #0f172a !important;
  color: #ffffff !important;
  text-align: left !important;
}

.waave-login-wall__disclaimers .waave-compliance-disclaimer-content {
  width: 100%;
  max-width: none;
  margin: 0 auto;
  color: inherit;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.3;
  text-align: left !important;
}

.waave-login-wall__disclaimers .waave-compliance-disclaimer-hr {
  display: none;
}

@media (max-width: 900px) {
  .waave-login-wall {
    grid-template-columns: minmax(0, 1fr) 420px;
  }
}

@media (max-width: 768px) {
  .waave-login-wall-overlay {
    overflow-y: auto;
    height: auto;
  }

  .waave-login-wall {
    display: flex;
    flex-direction: column;
    flex: 0 0 auto;
  }

  .waave-login-wall__visual {
    height: clamp(260px, 42vh, 420px);
    min-height: 260px;
  }

  .waave-login-wall__main-image {
    object-position: 45% center;
  }

  .waave-login-wall__brand img {
    max-width: 140px;
    max-height: 52px;
  }

  .waave-login-wall__content {
    min-height: auto;
    overflow: visible;
    padding: 32px 24px 36px;
  }

  .waave-login-wall__auth {
    max-width: 420px;
  }

  .waave-login-wall__disclaimers .waave-compliance-mode {
    max-height: none;
    overflow: visible;
  }
}

@media (max-width: 420px) {
  .waave-login-wall__field-row {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .waave-login-wall__content {
    padding: 28px 18px 32px;
  }

  .waave-login-wall__auth h2 {
    font-size: 22px;
  }

  .waave-login-wall__disclaimers .waave-compliance-mode {
    padding-inline: 18px;
  }
}
