/* ============================================= */
/* === Login Page Styles (login.css) === */
/* ============================================= */

body.login-page {
    background-color: var(--clr-bg);
    display: flex;
    justify-content: center;
    align-items: center;
}

.login-container {
    display: flex;
    width: 100%;
    min-height: 100vh;
}

.form-column {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 40px 15px;
    box-sizing: border-box;

}

.form-wrapper {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.image-column {
    flex: 1;
    display: none;
    align-items: center;
    justify-content: center;
    background-color: #e8e4dd;
    padding: 30px;
    box-sizing: border-box;
}

.image-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--clr-text-light);
    font-size: 1.5rem;
    background-color: #d1ccc4;
    border-radius: 15px;
    text-align: center;
}


/* Theme: Centered OTP (Default) */
body.theme-center-otp .form-wrapper {
    max-width: 400px;
}
body.theme-center-otp #mobile-form #mobile.ft-input-ltr {
    text-align: center;
    direction: ltr;
    font-size: 1.1rem;
    letter-spacing: 2px;
}
body.theme-center-otp #mobile-form #mobile.ft-input-ltr::placeholder {
    text-align: center;
    font-size: 1.1rem;
    letter-spacing: 2px;
}


/* Theme: Centered Single Input */
body.theme-center-single .form-wrapper {
    max-width: 480px;
}




/* Theme: Split Left Image */
body.theme-split-left .login-container {
    flex-direction: row;
}
body.theme-split-left .image-column {
    display: flex;
}
body.theme-split-left .form-wrapper {
     max-width: 480px;
}


/* Theme: Split Right Image */
body.theme-split-right .login-container {
    flex-direction: row-reverse;
}
body.theme-split-right .image-column {
    display: flex;
}
body.theme-split-right .form-wrapper {
     max-width: 480px;
}


/* --- Responsive --- */
@media (max-width: 991px) {
    body.theme-split-left .login-container,
    body.theme-split-right .login-container {
        flex-direction: column;
    }

    body.theme-split-left .image-column,
    body.theme-split-right .image-column {
        flex: 0 0 300px;
        max-height: 40vh;
        width: 100%;
    }

    .form-column {
        padding: 30px 15px;
        align-items: center;
    }
     .form-wrapper {
         max-width: 500px;
         width: 100%;
     }
}

@media (max-width: 575px) {
    .form-wrapper {
        max-width: 100%;
    }
     body.theme-split-left .image-column,
     body.theme-split-right .image-column {
         flex: 0 0 200px;
         max-height: 30vh;
     }
}
/* --- Login Specific Elements --- */
#registration-container {
    width: auto;
}
.login-logo-container {
    text-align: center;
    margin-bottom: 1rem;
    width: 100%;

}

.login-logo {
    max-width: 85px;
    margin: 0 auto;
}

.logo-text-placeholder {
    font-size: 0.9rem;
    color: var(--clr-text-light);
    margin-bottom: 1.5rem;
    display: block;
    text-align: center;
}

.site-title-fallback {
    font-size: 1.2rem;
    font-weight: 900;
    color: var(--clr-text-light);
    text-align: center;
    margin-bottom: 1.5rem;
    line-height: 1.2;
}


.login-title {
    font-weight: 900;
    color: #8a8876;
    font-size: 30px;
}


.login-instruction {
    text-align: center;
    margin-bottom: 1.5rem;
    line-height: 1.7;
    font-weight: 300;
    color: #8a8876;
    font-size: 18px;
}
.login-timer {
    font-size: 0.9rem;
    color: var(--clr-secondary);
    font-weight: 500;
    text-align: center;
    margin-bottom: 1rem;
    min-height: 1.2em;
}

.form-links {
    display: flex;
    justify-content: space-between;
    margin-top: 1rem;
    font-size: 0.9rem;
    width: 100%;
}

.login-link {
    color: var(--clr-secondary);
    cursor: pointer;
}

.login-link:hover {
    color: var(--clr-secondary-dark);
}

.form-message {
    display: none;

}

.login-step {
    display: none;
    width: 100%;

}

.login-step.active {
    display: block;
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

.step-form > .ft-input-box,
.step-form > .ft-btn,
.step-form > .ft-row,
.step-form > .form-links,
.step-form > .radio-box,
.step-form > .text-normal,
.step-form > .text-highlight,
.step-form > .popup-triggers,
.step-form > .login-instruction {
    margin-bottom: 1rem;
}
.step-form > *:last-child {
    margin-bottom: 0;
}
#mobile-input-section {
    margin-bottom: 1rem;
}


/* --- OTP Input Specific Styles --- */
.otp-input-container {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    direction: ltr;
    margin-bottom: 1.5rem;
}

.ft-input-otp {
    width: 55px;
    height: 55px;
    text-align: center;
    font-size: 1.5rem;
    font-weight: 500;
    padding: 0;
    border-width: 2px;
}
#verification-phone-display {
    font-weight: bold;
}



/* --- Registration Steps --- */


.registration-progress-container {
    width: 100%;
    margin-bottom: 2rem;
}
.progress-bar {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    justify-content: space-between;
    position: relative;
}
.progress-bar li {
    text-align: center;
    color: var(--clr-placeholder);
    position: relative;
}
.progress-bar li.active { color: var(--clr-primary); }
.progress-bar li.completed { color: var(--clr-success); }


.registration-step-title {
    font-size: 1.3rem;
    font-weight: 600;
    margin-bottom: 1.5rem;
    text-align: center;

}

.step-navigation {
    display: flex;
    justify-content: space-between;
    margin-top: 1.5rem;
    gap: 1rem;
    width: 100%;
}


/* Styles for specific registration elements */

.entity-type-selection { width: 100%; }
.entity-type-selection .radio-text {
    border: 1px solid var(--clr-white);
}
.entity-type-selection input[type="radio"] {
    display: none;
}
.entity-type-selection .radio-text-content {
    padding: 1.5rem;
}
.entity-type-selection input[type="radio"]:checked + .radio-text-content {
   border-color: var(--clr-primary);
   background-color: #e0f2f1;
}
.entity-type-selection input[type="radio"]:checked ~ .radio-text {
    border-color: var(--clr-primary);
}
.entity-type-selection .radio-text-details span {
    font-weight: 600;
    display: block;
    margin-bottom: 0.5rem;
    position: relative;
}
.entity-type-selection .radio-text-details p {
    font-size: 0.8rem;
    color: var(--clr-text-light);
    text-align: justify;
}

.ft-row {
    display: flex;
    gap: 1rem;
    width: 100%;
}
.ft-row > .ft-input-box {
    margin-bottom: 0;
    flex: 1;
}

.popup-triggers {
    gap: 1rem;
    width: 100%;
    justify-content: center;
}
.popup-triggers .ft-btn {
    flex-grow: 1;
    max-width: 250px;
}


.info-display-box {
    border: 1px dashed var(--clr-border);
    padding: 1rem;
    margin-top: 1rem;
    border-radius: var(--border-radius);
    font-size: 0.9rem;
    color: var(--clr-text-light);
    background-color: #fafafa;
    width: 100%;
    text-align: right;
}
.info-display-box h4 { font-weight: 600; margin-bottom: 0.5rem; color: var(--clr-text);}
.info-display-box p { margin-bottom: 0.3rem; }

#document-upload-inputs { width: 100%; }
.document-upload-item {
    margin-bottom: 1rem;
}
.file-info {
    font-size: 0.8rem;
    color: var(--clr-text-light);
    margin-top: 5px;
}
.file-size-notice {
    font-size: 0.9rem;
    color: var(--clr-secondary);
    margin-top: 1.5rem;
    width: 100%;
    text-align: center;
}

.contract-box {
    margin-bottom: 1rem;
    width: 100%;
}
.contract-text {
    height: 250px;
    overflow-y: auto;
    border: 1px solid var(--clr-border);
    border-radius: var(--border-radius);
    padding: 15px;
    text-align: justify;
    font-size: 0.9rem;
    line-height: 1.8;
    background: var(--clr-input-bg);
}
.ft-checkbox-contract {
    display: flex;
    align-items: center;
    margin-bottom: 1rem;
    width: 100%;
    justify-content: center;
}
.ft-checkbox-contract label {
    font-size: 0.9rem;
    cursor: pointer;
}

.contract-buttons {
    gap: 0.5rem;
    flex-wrap: wrap;
    justify-content: center;
}
.contract-buttons .ft-btn {
    flex-grow: 0;
}

.registration-form-content .ft-input-box.active .ft-input-label,
.registration-form-content .ft-input-box.focus .ft-input-label {
    background-color: var(--clr-reg-form-bg);
}



/* Success message specific styles */
.ftsvm-complete-registration {
    text-align: center;
    padding:  2rem;
    margin: 2rem;
    border: 1px solid var(--clr-success);
    background-color: #e8f5e9;
    border-radius: var(--border-radius-large);
    max-width: 500px;
    width: 100%;
}
.ftsvm-complete-registration .success-icon {
    font-size: 3rem;
    color: var(--clr-success);
    margin-bottom: 1rem;
    display: block;
}
.ftsvm-complete-registration .success-text {
    font-size: 0.9rem;
    margin-bottom: 1.5rem;
    line-height: 1.8;
}


/* --- Theme Specific Styles --- */

/* Theme: Centered OTP (Image 1) */
body.theme-center-otp .form-wrapper {
    max-width: 350px;
}
body.theme-center-otp #mobile-form #mobile.ft-input-ltr {
    text-align: center;
    direction: ltr;
    font-size: 1.1rem;
    letter-spacing: 2px;
}
body.theme-center-otp #mobile-form #mobile.ft-input-ltr::placeholder {
    text-align: center;
    color: var(--clr-placeholder);
    font-size: 1.1rem;
    letter-spacing: 2px;
}


/* Theme: Centered Single Input (Image 4, 6) */
body.theme-center-single .form-wrapper {
    max-width: 450px;
}


/* Theme: Split Left Image (Image 2, 8) */
body.theme-split-left .login-container {
}
body.theme-split-left .image-column {
    display: flex;
}
body.theme-split-left .form-column {
    align-items: center;
}
body.theme-split-left .form-wrapper {
    align-items: center;
    max-width: 350px;
}
body.theme-split-left .image-placeholder {
    border-radius: 15px;
}


/* Theme: Split Right Image (Image 3, 5) */
body.theme-split-right .login-container {
    flex-direction: row-reverse;
}
body.theme-split-right .image-column {
    display: flex;
}
body.theme-split-right .form-column {
    align-items: center;
}
body.theme-split-right .form-wrapper {
    align-items: center;
    max-width: 350px;
}
body.theme-split-right .image-placeholder {
    border-radius: 15px;
}
body.theme-split-left #mobile.ft-input, body.theme-split-right #mobile.ft-input {
text-align: center;
letter-spacing: 2px;
}

.ft-btn,.ft-input, .ft-select, .ft-textarea {
    height: 50px;
}
/* --- Responsive --- */
@media (max-width: 991px) {
    body.theme-split-left .login-container,
    body.theme-split-right .login-container {
        flex-direction: column;
    }

    body.theme-split-left .image-column,
    body.theme-split-right .image-column {
        display: none;

    }

    body.theme-split-left .form-column,
    body.theme-split-right .form-column {
        padding: 40px 20px;
        align-items: center;
    }
    .form-wrapper {
        max-width: 500px;
        margin: 0;
        align-items: center;
    }
    body.theme-split-left .form-wrapper,
    body.theme-split-right .form-wrapper {
        align-items: center;
    }


     .ft-row {
         flex-direction: column;
         gap: 0;
     }
     .ft-row > .ft-input-box {
         margin-bottom: 1rem;
     }

}

@media (max-width: 575px) {
    .form-column {
        padding: 20px 15px;
    }
    .login-title {
        font-size: 24px;
    }
    .login-instruction {
        font-size: 16px;
    }

    .site-title-fallback {
        font-size: 2rem;
    }


    .ft-input-otp {
        width: 55px;
        height: 55px;
        font-size: 1.3rem;
    }
    .otp-input-container {
        gap: 5px;
    }
    .form-links {
        flex-direction: column;
        align-items: center;
        gap: 0.5rem;
    }
    .step-navigation {
        flex-direction: column;
        gap: 0.5rem;
    }
    .contract-buttons {
        flex-direction: column;
    }
    .ft-row {
        gap: 0;
        flex-direction: column;
    }
     .ft-row > .ft-input-box {
        margin-bottom: 1rem;
    }
    .popup-triggers {
        flex-direction: column;
    }
    .popup-triggers .ft-btn {
        max-width: 100%;
    }

}