/* Scoped login layout. */
.login-page { margin: 0; background: #f3f7f1; }
.login-page .fxt-template-layout20 {
    min-height: 100vh;
    min-height: 100svh;
    padding: 32px 20px;
}
.login-page .fxt-template-layout20 .container { max-width: 1180px; width: 100%; padding: 0; }
.login-page .fxt-template-layout20 .row { margin: 0; }
.login-page .fxt-template-layout20 .fxt-bg-img { min-height: 620px; }
.login-page .fxt-template-layout20 .fxt-bg-color { display: flex; min-width: 0; background: transparent; }
.login-page .fxt-template-layout20 .fxt-content {
    background: #fff;
    padding: 48px 42px 30px;
    min-width: 0;
}
.login-page .fxt-template-layout20 .fxt-header { margin-bottom: 24px; }
.login-page .fxt-template-layout20 .fxt-logo { display: block; width: min(250px, 100%); max-width: 100%; margin: 0 auto 25px; }
.login-page .fxt-template-layout20 .fxt-logo img { display: block; width: 100%; height: auto; }
.login-page .fxt-template-layout20 .fxt-style-line h2 { padding: 0 16px; margin-bottom: 0; font-size: 20px; line-height: 1.5; overflow-wrap: anywhere; }
.login-page .fxt-template-layout20 .form-group { margin-bottom: 18px; }
.login-page .fxt-template-layout20 .form-control { width: 100%; min-height: 50px; font-size: 16px; padding: 12px 15px; }
.login-page .fxt-template-layout20 .fxt-checkbox-area { justify-content: center; margin: 0; }
.login-page .login-captcha { width: 304px; height: 78px; flex: 0 0 auto; }
.login-page .fxt-template-layout20 .fxt-btn-fill { min-height: 48px; margin-bottom: 0; font-size: 16px; }
.login-page .fxt-template-layout20 .fxt-footer { margin-top: 24px; }
.login-page .fxt-template-layout20 .fxt-footer p { font-size: 12px; line-height: 1.7; margin-bottom: 8px; overflow-wrap: anywhere; }
.login-page .fxt-template-layout20 .alert { font-size: 14px; overflow-wrap: anywhere; }
.login-page .fxt-template-layout20 .alert ul { margin-bottom: 0; padding-left: 20px; }
.login-page .fxt-template-animation .fxt-transformY-50 { opacity: 1; transform: none; transition: none; }
.login-page input:focus-visible, .login-page button:focus-visible, .login-page a:focus-visible { outline: 2px solid #14804a; outline-offset: 3px; }
@media (max-width: 991px) {
    .login-page .fxt-template-layout20 { padding: 28px 20px; }
    .login-page .fxt-template-layout20 .container { max-width: 520px; }
    .login-page .fxt-template-layout20 .fxt-bg-img { display: none; }
    .login-page .fxt-template-layout20 .fxt-bg-color { flex: 0 0 100%; max-width: 100%; }
    .login-page .fxt-template-layout20 .fxt-content { padding: 36px 40px 26px; border-radius: 16px; }
}
@media (max-width: 575px) {
    .login-page .fxt-template-layout20 { padding: 20px 12px; }
    .login-page .fxt-template-layout20 .fxt-content { padding: 28px 20px 22px; border-radius: 14px; }
    .login-page .fxt-template-layout20 .fxt-logo { width: 220px; margin-bottom: 22px; }
    .login-page .fxt-template-layout20 .fxt-header { margin-bottom: 22px; }
    .login-page .fxt-template-layout20 .fxt-style-line h2 { font-size: 18px; }
    .login-page .fxt-template-layout20 .fxt-footer { margin-top: 20px; }
}
@media (max-width: 380px) {
    .login-page .login-captcha { width: 249.28px; height: 64px; }
    .login-page .login-captcha > .g-recaptcha { transform: scale(.82); transform-origin: left top; }
    .login-page .fxt-template-layout20 .fxt-logo { width: 200px; }
}
@media (max-height: 600px) and (orientation: landscape) {
    .login-page .fxt-template-layout20 { align-items: flex-start; padding-top: 16px; padding-bottom: 16px; }
    .login-page .fxt-template-layout20 .fxt-content { padding-top: 24px; padding-bottom: 20px; }
}

.login-page .login-remember {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    width: 100%;
    margin: 0;
    padding: 13px 14px;
    border: 1px solid #dfe8df;
    border-radius: 10px;
    background: #f7faf6;
    cursor: pointer;
    transition: border-color .15s ease, background-color .15s ease;
}
.login-page .login-remember:hover,
.login-page .login-remember:focus-within { border-color: #14804a; background: #f0f7ef; }
.login-page .login-remember input {
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    margin: 2px 0 0;
    accent-color: #14804a;
    cursor: pointer;
}
.login-page .login-remember-copy { display: block; min-width: 0; }
.login-page .login-remember-title { display: block; color: #263d2e; font-size: 14px; font-weight: 500; line-height: 1.5; }
.login-page .login-remember-help { display: block; margin-top: 2px; color: #647267; font-size: 12px; font-weight: 400; line-height: 1.5; }
