/**
 * ==========================================================================
 * AUTHENTICATION PAGE STYLES
 * ==========================================================================
 * 
 * Login, registration, and authentication form styles.
 * Moved from css/auth.css during 2026-02-05 reorganization.
 * 
 * @package Verimus
 * @since 2.0.0
 * ==========================================================================
 */

/* Auth page outer container */
.content-area-auth {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.auth-form-wrapper {
  width: fit-content;
  position: relative;
  margin: auto;
  padding: var(--spacing-5);
  border-radius: var(--radius-input);
  background-color: var(--white);
  max-width: 1186px;
}

#login-form-wrapper {
  max-width: 581px;
}

.register-form-wrap {
  margin: 0 auto;
}

#register-form-wrapper {
  max-width: 100%;
}

.auth-logo img {
  position: relative;
  display: block;
  margin: 88px auto 88px auto;
}

#register-form-wrapper .auth-logo img {
  position: relative;
  display: block;
  margin: 40px 0 56px 0;
}

.auth-form {
  display: flex;
  gap: var(--spacing-5);
  flex-wrap: wrap;
}

.auth-form-title {
  margin-bottom: var(--spacing-5);
  font-size: var(--font-size-3xl);
  font-weight: var(--font-weight-extrabold);
}

.auth-form-label {
  font-size: var(--font-size-sm);
  margin-bottom: var(--spacing-2-5);
  font-weight: var(--font-weight-medium);
}

.remember-recovery-group {
  display: flex;
  justify-content: space-between;
  width: 100%;
}

.remember-recovery-group .form-check-input {
  height: 18px;
  width: 18px;
  border: 1.5px solid var(--gray-400);
}

#recovery-password-text {
  color: var(--main);
  text-decoration: none;
  font-weight: var(--font-weight-medium);
}

.auth-form-wrapper input:not([type="checkbox"]):not([type="submit"]) {
  border-radius: var(--radius-2xl);
  border: 1px solid var(--grayscale-200);
  color: var(--grayscale-900);
  background-color: var(--grayscale-50);
  padding: var(--spacing-4) var(--spacing-5);
  border-radius: var(--radius-input);
  line-height: 18px;
}

.auth-form-wrapper input:not([type="checkbox"]):not([type="submit"]):focus-visible {
  border-color: var(--main);
  outline: none;
}

.auth-form-wrapper input:not([type="checkbox"]):not([type="submit"]):hover {
  opacity: 0.8;
}

.auth-form-wrapper input[type="submit"] {
  padding: var(--btn-padding-y-lg);
  background-color: var(--main);
  color: var(--white);
  border-color: transparent;
  border-radius: var(--btn-border-radius);
  line-height: var(--spacing-7);
  font-weight: var(--btn-font-weight);
}

.auth-form-wrapper input[type="submit"]:hover {
  opacity: 0.8;
}

.auth-form-msg {
  padding: var(--spacing-2-5);
  color: var(--white);
  margin-bottom: var(--spacing-5);
  border-radius: var(--radius-sm);
}

.auth-form-success {
  background-color: var(--success);
}

.auth-form-error {
  background-color: var(--error);
}

.auth-form-des {
  color: var(--grayscale-900);
}

.remember-checkbox-label {
  display: inline-block;
  position: relative;
  cursor: pointer;
  color: var(--grayscale-400);
}

.auth-form-password-wrapper {
  width: 100%;
  position: relative;
}

.form-item-wrapper {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-2-5);
}

form[name="validate_2fa_form"],
#backtoblog a {
  color: var(--grayscale-900) !important;
}

#backtoblog {
  padding-top: var(--spacing-2-5);
  font-size: var(--font-size-sm);
}

#login {
  width: 100% !important;
}

#backtoblog {
  display: block !important;
}

.form-item-wrapper label,
form[name="validate_2fa_form"] label,
form[name="validate_2fa_form"] .two-factor-prompt {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  line-height: 20px;
}

.two-factor-prompt+p {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-2-5);
}

.auth-form-toggle-password {
  position: absolute;
  right: var(--spacing-5);
  top: 70%;
  transform: translateY(-50%);
  cursor: pointer;
  color: var(--grayscale-900);
}

.auth-form-toggle-password.eye-show {
  display: none;
}

a.auth-form-register-link {
  color: var(--grayscale-800);
}

span.auth-form-or {
  color: var(--grayscale-500);
}

.indicator {
  width: 53px;
  height: 4px;
  background-color: var(--grayscale-200);
}

.indicator.active {
  background-color: var(--grayscale-900);
}

.relate-template-container {
  padding: var(--spacing-5);
  border-radius: var(--radius-input);
  background-color: var(--baseFg);
}

/* #register-form {
  width: 683px;
} */

#register-form label {
  font-weight: var(--font-weight-medium);
  font-size: var(--font-size-sm);
}

#register-form-wrapper {
  display: flex;
  flex-direction: row;
  gap: var(--spacing-2-5);
}

.carousel-img {
  height: 100%;
  width: 100%;
  object-fit: cover;
  object-position: top;
  border-radius: var(--radius-2xl);
}

.register-carousel-card-img {
  position: relative;
  background-color: var(--white);
  height: 100%;
}

.carousel-card-text {
  position: absolute;
  bottom: var(--spacing-5);
  padding: var(--spacing-10);
  background-color: var(--white);
  left: var(--spacing-5);
  right: var(--spacing-5);
  border-radius: var(--radius-2xl);
  padding-bottom: 5.414rem;
}

.indicators {
  display: flex;
  position: absolute;
}

.indicator {
  width: 108px !important;
  background-color: var(--gray-200) !important;
  height: var(--spacing-1) !important;
}

#register-form-wrapper .carousel-indicators .active {
  background-color: var(--gray-900) !important;
}

.author-role {
  color: var(--text-secondary);
}

#register-form-wrapper {
  width: 100%;
  min-height: 100vh;
}

.carousel-inner,
.carousel-item,
.register-carousel-card {
  height: 100%;
}

#carouselIndicators {
  width: 51.215%;
  height: auto;
  aspect-ratio: 16/12;
  margin-right: var(--spacing-8);
}

#carouselIndicators .carousel-item .carousel-card-text p.author-name {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-medium);
}

#register-form-wrapper .carousel-indicators.indicators {
  position: absolute;
  bottom: var(--spacing-8);
}

#register-form-wrapper .carousel-indicators .indicator:hover {
  background-color: var(--gray-500) !important;
}

#register-form-wrapper .auth-form-or {
  font-weight: var(--font-weight-medium);
}

#logged-out-page .auth-form-wrapper {
  width: 90%;
  max-width: 100%;
  height: 90vh;
  margin: 5vh auto
}

#logged-out-page .auth-form-wrapper .text {
  max-width: 401px;
  margin: var(--spacing-10) auto;
}

#login h1 {
  display: none;
}

#login form p.submit {
  float: left;
  margin-top: 15px !important;
}

#login form p.submit,
.two-factor-email-resend {
  width: calc((100% - 10px) / 2);
}

#login form p.submit input,
.two-factor-email-resend input {
  width: 100%;
}

.two-factor-email-resend {
  float: left;
  margin-left: var(--spacing-2-5);
  margin-top: var(--spacing-3-5);
}

#login #loginform {
  margin-bottom: var(--spacing-5);
}

#backtoblog {
  clear: both;
  margin-top: var(--spacing-2-5);
  display: inline-block;
}

#backtoblog a {
  color: var(--gray-700);

}

.or-container {
  display: flex;
  align-items: center;
  width: 100%;
}

.or-line {
  flex-grow: 1;
  height: 1px;
  background-color: var(--gray-200);
}

.or-text {
  padding: 0 var(--spacing-2-5);
}

.sso-btn {
  padding: 11px var(--spacing-3);
  color: var(--text-primary);
  border: solid 1px var(--grayscale-200) !important;
  border-radius: var(--radius-lg);
  background-color: var(--white) !important;
}

.sso-btn:hover {
  color: var(--text-primary);
}

.sso-btn .sso-icon {
  width: var(--spacing-6);
  height: var(--spacing-6);
  margin-right: var(--spacing-2-5);
}

.mb-30px {
  margin-bottom: var(--spacing-8);
}

.mt-6px {
  margin-top: 6px;
}

.logged-out-content {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-normal);
}

.logged-out-sub-content {
  margin-top: 27px;
}

.login-button {
  padding: var(--btn-padding-y-lg) 0px;
  border-radius: var(--btn-border-radius);
  font-weight: var(--btn-font-weight);
}

.logged-out-title {
  font-size: var(--font-size-3xl);
  font-weight: var(--font-weight-extrabold);
}

@media screen and (max-width:1024px) {
  #register-form {
    max-width: 400px;
  }
}

/* Password Requirements Styles */
.password-requirements {
  width: 100%;
  margin-top: var(--spacing-3);
  padding: var(--spacing-3);
  background-color: var(--grayscale-50);
  border-radius: var(--radius-lg);
  border: 1px solid var(--grayscale-200);
}

.password-requirements-title {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  color: var(--text-primary);
  margin-bottom: var(--spacing-2);
}

.password-requirements-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-1-5);
}

.requirement-item {
  display: flex;
  align-items: center;
  gap: var(--spacing-2);
  font-size: var(--font-size-xs);
  color: var(--text-secondary);
  transition: color 0.2s ease;
}

.requirement-item .requirement-icon {
  font-size: var(--font-size-sm);
  color: var(--error);
  font-weight: var(--font-weight-bold);
  min-width: 16px;
  display: inline-block;
}

.requirement-item.requirement-met {
  color: var(--grayscale-900);
}

.requirement-item.requirement-met .requirement-icon {
  color: var(--success, #28a745);
}

.requirement-text {
  line-height: 1.4;
}

@media screen and (max-width: 480px) {
  .auth-form-wrapper {
    /* width: 100%; */
    margin: 22px;
  }

  .remember-recovery-group {
    flex-wrap: wrap;
    gap: var(--spacing-5);
  }

  #recovery-password-text {
    text-align: center;
    width: 100%;
  }

  #carouselIndicators {
    display: none;
  }

  #register-form {
    width: 100%;
  }

  #register-form-wrapper .auth-logo img {
    margin: var(--spacing-5) 0 83px 0px;
  }

  #register-form-wrapper {
    min-height: 100vh;
    border-radius: 0;
    margin: 0;
    padding: var(--spacing-6)
  }

  .register-form-wrap {
    padding: 0px;
  }
}

.verify-email-page #login-form-wrapper {
  max-width: 1080px;
}

.verify-email-page .auth-form-wrapper {
  padding-block: 110px;
  width: 100%;
  text-align: center;
  margin-top: 60px;
}

.verify-email-page .auth-form-wrapper label {
  text-align: left;
  visibility: hidden;
  height: 0;
  opacity: 0;
  width: 0;
}

.verify-email-page .content-area-auth {
  padding: 0;
}

.verify-email-page .auth-logo {
  width: 100%;
  background-color: #fff;
}

.verify-email-page .auth-logo img {
  margin: 36px auto;
}

.verify-email-page .content-area-auth {
  justify-content: start;
}

.auth-form-wrapper-inner {
  max-width: 480px;
  margin: 0 auto;
}

.auth-form-wrapper-inner {
  font-size: 18px;
}

.auth-form-wrapper-inner .auth-form-title {
  margin-bottom: var(--spacing-3);
}

.auth-form-wrapper-inner .button-group {
  width: 100%;
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: center;
  padding-block: 40px;
}

.auth-form-wrapper-inner .back-to-login-link {
  width: 100%;
}

.auth-form-wrapper-inner .button-group button {
  min-width: 190px;
  height: 50px;
}

.auth-form-wrapper-inner .button-group .outline-verimus-btn {
  color: #222;
  border-color: #737373;
}

.auth-form-wrapper-inner .button-group .outline-verimus-btn:hover {
  background-color: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--white);
}

/* 2FA 6-digit code inputs */
.tfa-code-inputs {
  display: flex;
  gap: var(--spacing-3);
  justify-content: center;
}

.tfa-digit {
  width: 56px;
  height: 56px;
  text-align: center;
  font-size: var(--font-size-2xl);
  font-weight: var(--font-weight-semibold);
  border: 1px solid var(--grayscale-200);
  border-radius: var(--radius-input);
  background-color: var(--grayscale-50);
  color: var(--grayscale-900);
  caret-color: var(--main);
  transition: border-color 0.15s ease;
}

.tfa-digit::placeholder {
  font-size: 11px;
}

.tfa-digit:focus::placeholder {
  color: transparent;
}

.tfa-digit:focus {
  border-color: var(--main);
  outline: none;
  box-shadow: 0 0 0 3px rgba(255, 128, 48, 0.15);
}

@media screen and (max-width: 1120px) {
  #multisite-registration-form .flex {
    gap: unset;
    flex-direction: column;
  }

  #carouselIndicators {
    margin-right: 0;
  }
}

@media screen and (max-width: 1024px) {
  #register-form-wrapper {
    flex-direction: column;
  }

  #carouselIndicators,
  .register-form-wrap {
    width: 100%;
  }
}

@media screen and (max-width: 480px) {
  .tfa-code-inputs {
    gap: var(--spacing-2);
  }

  .tfa-digit {
    width: 44px;
    height: 44px;
    font-size: var(--font-size-xl);
  }

  .auth-form-wrapper-inner .button-group button {
    min-width: 130px;
  }
}