
/***************************************************************************************
 * General / Global
***************************************************************************************/
#main {
    width: 100%;
    padding: 0rem;
    overflow: auto;
}

#main:has(.container.error) {
    align-items: flex-start !important;
}

label {
    display: block;
    margin-bottom: 1rem;
    font-size: 0.825rem;
}

ul {
    display: block;
    margin-bottom: 1rem;
    padding-left: 1rem;
    font-size: 0.8rem;
    list-style-type: disc;
}

/* eye icon for dark mode in ms edge */
body.dark_mode input[type="password"]::-ms-reveal {
    filter: invert(40%);
}

.header__right {
    display: flex;
    align-items: center;
    column-gap: 1.5rem;
}

.switch-wrapper {
    margin-bottom: 0;
}

.switch-wrapper,
.switch-wrapper > label {
    margin-top: 0;
}

/***************************************************************************************/
#label_text_header {
    font-size: 1.5rem;
    color: var(--primary-white);
}

#div_main_resetform,
#div_main_resetform_email {
    display: flex;
    justify-content: center;
    align-items: center;
    height: var(--main-content-height);
}

#div_main_resetform_email.error ul.errorlist:has(> :nth-child(1)) > li {
    --icon-warning-spacing: 0rem;
    column-gap: 0.25rem;
}

#div_main_passform ul.errorlist:has(> :nth-child(2)) {
    padding-left: 3rem;
}

#div_main_resetform ul.errorlist:has(> :nth-child(1)) > li,
#div_main_resetform_email.error ul.errorlist:has(> :nth-child(2)) > li {
    display: block !important;
}

#div_main_resetform.error ul.errorlist:has(> :nth-child(2)),
#div_main_resetform_email.error ul.errorlist:has(> :nth-child(2)) {
    padding-left: 3rem;
}

#div_main_resetform.error ul.errorlist:has(> :nth-child(2)) > li:not(:first-child):before,
#div_main_resetform_email.error ul.errorlist:has(> :nth-child(2)) > li:not(:first-child):before {
    display: none;
}

#div_main_resetform.error ul.errorlist:has(> :nth-child(2)) > li:first-child:before,
#div_main_resetform_email.error ul.errorlist:has(> :nth-child(2)) > li:first-child:before {
    position: absolute;
    display: flex;
    align-items: center;
    height: 100%;
    margin-left: -2.25rem;
    font-size: 1.25rem;
}

#div_main_resetform {
    max-width: 30rem;
}

#div_main_resetform_email {
    max-width: 40rem;
}

#div_main_resetform_email_failed {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    line-height: 2rem;
}

#main_form {
    position: relative;
    width: 100%;
    padding: 2rem 2rem 1.75rem 2rem;
    color: var(--common-text-font-color);
    line-height: 2rem;
    border: 1px solid var(--password-input-border-color);
    border-radius: 0.6rem;
    background-color: var(--password-form-bg-color);
    box-shadow: 1px 1px 6px 1px var(--password-input-box-shadow-color);
}

#id_new_password2 {
    margin-bottom: 0.5rem;
}

#btn_pass_submit {
    display: flex;
    align-items: center;
    justify-content: center;
    column-gap: 0.75rem;
    padding: 1rem;
    margin-top: 1.25rem;
    font-size: 1.075rem;
    color: var(--password-form-btn-font-color);
    background-color: var(--password-form-btn-bg-color);
}

#btn_pass_submit:hover {
    color: var(--password-form-btn-font-color-hover);
    background-color: var(--password-form-btn-bg-color-hover);
}

#div_main_resetform #btn_pass_submit {
    margin-top: 0.5rem;
}

/* ---- Back to Login ---- */
#btn_back_login {
    font-weight: bolder;
    background-color: var(--primary-white);
    transition: background var(--transition-mode-delay) ease;
}

#btn_back_login:hover {
    background-color: var(--white-titan);
}

body.dark_mode #btn_back_login {
    color: var(--primary-white);
    background-color: var(--grey-shuttle);
}

body.dark_mode #btn_back_login:hover {
    background-color: var(--grey-bright);
}

.password_condition {
    margin-bottom: 1.25rem;
    border-radius: 0.6rem;
}

.password_condition p {
    padding: 0.5rem;
    color: var(--primary-white);
    text-align: center;
    border-top-left-radius: 0.6rem;
    border-top-right-radius: 0.6rem;
    background-color: var(--password-condition-header-bg-color);
}

.password_condition ul {
    display: grid;
    gap: 0.75rem 2rem;
    margin-bottom: 0;
    padding: 1rem 1.5rem;
    font-size: 0.825rem;
    color: var(--common-text-font-color);
    line-height: 1.25;
    border: 1px solid var(--password-condition-header-bg-color);
    border-radius: 0 0 0.6rem 0.6rem;
    background-color: var(--password-condition-body-bg-color);
}

.password_condition ul li {
    padding: 0 0.05rem 0 0.2rem;
}

.password_condition ul > li::marker {
    color: var(--password-condition-header-bg-color);
}

.label_main_text {
    position: absolute;
    top: 0;
    left: 50%;
    z-index: 999;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    column-gap: 0.5rem;
    width: 100%;
    margin-top: 0;
    padding: 1rem 2rem;
    font-size: 1.35rem;
    font-weight: bold;
    color: var(--password-form-header-font-color);
    white-space: nowrap;
    border-radius: 0.6rem 0.6rem 0 0;
    background-color: var(--password-form-header-bg-color);
    transform: translateX(-50%);
    transition:
        background var(--transition-mode-delay) linear,
        color var(--transition-mode-delay) linear;
}

.label_error_text {
    width: calc(100%);
    margin-top: 2rem;
    font-size: 1.4rem;
    color: var(--error-icon-color);
    white-space: nowrap;
    overflow: hidden;
    text-align: center;
    text-overflow: ellipsis;
}

.label_body_text {
    margin-top: 2.5rem !important;
}

#div_main_resetform_email_failed .label_info_text {
    font-size: 1.025rem;
    text-align: center;
}

#div_email_link_icon {
    display: flex;
    flex-direction: row;
    justify-content: right;
    align-items: center;
    margin-top: 1rem;
}

.email_link_icon,
.email_link_icon:hover {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0.35rem;
    margin-right: 1rem;
    background-color: var(--email-link-icon-bg-color);
    border-radius: 0.6rem;
    transition: background-color var(--transition-mode-delay) ease;
}

.email_link_icon:hover {
    background-color: var(--email-link-icon-bg-hover-color);
}

.email_img_icon {
    height: 2rem;
}

/******** Reset Complete Page ********/
#div_main_passdone {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding-bottom: 0;
    line-height: 2rem;
}

#top_text {
    margin-top: 2rem;
    font-size: 1.4rem;
    color: var(--success-icon-color);
}

#bottom_text {
    margin-top: 1rem;
    font-size: 1.025rem;
}

#success_icon,
#failed_icon {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem 1.5rem;
    font-size: 5rem;
    color: var(--primary-white);
    border-radius: 50%;
    background-color: var(--success-icon-color);
    opacity: 0.75;
    transition: background-color var(--transition-mode-delay) ease;
}

#success_icon {
    background-color: var(--success-icon-color);
}

#failed_icon {
    padding: 1rem 2.125rem;
    background-color: var(--error-icon-color);
}

body.dark_mode #failed_icon {
    opacity: 1;
}

#btn_back_resetpass,
#btn_login_again {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 3rem;
    margin-top: 1.2rem;
    padding: 1.2rem;
    font-weight: bolder;
    color: var(--password-form-btn-font-color);
    text-align: center;
    background-color: var(--password-form-btn-bg-color);
}

#btn_back_resetpass:hover,
#btn_login_again:hover {
    color: var(--password-form-btn-font-color-hover);
    background-color: var(--password-form-btn-bg-color-hover);
}

#btn_back_resetpass {
    margin-top: 0.5rem;
}

/***************************************************************************************
 * Responsive Design
***************************************************************************************/
@media (max-width: 450px) {
    .errorlist li {
        word-break: break-word;
    }
}

@media (max-width: 350px) {
    #btn_back_login > span {
        font-size: 0 !important;
    }
}

@media (max-width: 250px) {
    .header {
        overflow: scroll;
    }

    .label_main_text {
        display: block;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .header__right {
        column-gap: 1rem;
    }

    #btn_back_resetpass {
        display: inline-block;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 80%;
        text-align: center;
        height: auto !important;
    }
}