body {
    background-color: black !important;
    display: flex;
    align-items: center;
}
.login-container, .fp-container, .register-container {
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    background-color: white;
    margin: 10px auto;
    padding: 10px;
    max-width: min-content;
    /*min-width: 250px;*/
    align-items: center;
    min-width: 650px !important;
    /*border-radius: 15px;*/
    transition: all ease-out 0.4s;
}

.btn-pwa{
    max-height: 36px !important;
}

.form-group{
    margin-bottom: 5px !important;
}

div.form-outline .form-label,
div.form-outline .form-control,
div.form-outline .form-check-label{
    font-size: 14px;
}

.login-container .form-wrapper,
.fp-container .form-wrapper,
.register-container .form-wrapper,
.login-container .appollo-login{
    width: 80%;
}
.form-wrapper .username-control,
.form-wrapper .password-control,
.form-wrapper .firstname-control,
.form-wrapper .lastname-control
{
    display: flex;
}

.form-control-checkbox{
    margin-left: 2.2rem;
    width: 1rem;
    height: 1rem;
}
.username-control label,
.password-control label,
.firstname-control label,
.lastname-control label{
    margin-right: 20px;
    margin-top: 15px !important;
    min-width: 80px;
    font-weight: bold;
}
.register-container .password-control label,
.register-container .username-control label,
.register-container .firstname-control label,
.register-container .lastname-control label,
.register-container .email-control label{
    min-width: 110px;
    font-weight: bold;
}

.login-container .appollo-login {
    margin: auto;
    text-align: center;
}
.login-container .login-message,
.fp-container .login-message,
.register-container .login-message{
    text-align: left;
    margin-top: 0px;
    /*text-transform: capitalize;*/
    font-size: 18px;
}

.form-wrapper > form > .custom-checkbox {
    margin-top: 10px;
}
.login-container .custom-checkbox {
    display: flex;
    align-items: center;
}
.login-container .custom-checkbox #rememberme {
    margin-right: 5px;
    margin-top: 5px;
}
.login-container .custom-checkbox label {
    cursor: pointer;
}

.login-container .form-wrapper input:not([type=checkbox]),
.login-container .form-wrapper button,
.fp-container .form-wrapper input,
.fp-container .form-wrapper button,
.register-container .form-wrapper input,
.register-container .form-wrapper button{
    display: block;
    margin-top: 10px;
}
.form-wrapper button {
    margin: 15px auto;
    background-color: #01cbd2 !important;
    border: none;
    min-width: 150px;
}


/* region Animations */
.login-container:hover,
.fp-container:hover,
.register-container:hover{
    box-shadow: 0 0 15px aliceblue;
}
/* endregion */
.login-container .login-actions,
.fp-container .fp-actions,
.register-container .register-actions {
    display: flex;
    margin-top: 20px;
    margin-bottom: 20px;
    justify-content: flex-end;
}
.login-container .login-actions #login {
    margin-right: 0;
}
.fp-container .fp-actions #cancel-fp{
    margin-left: auto;
    margin-right: 0;
}
.fp-container .fp-actions #reset-fp{
    margin-left: 10px;
    margin-right: 0;
}
.register-actions #register-confirm {
    margin-right: 0;
    margin-left: 15px;
}
.register-actions #register-cancel {
    margin-right: 0;
}

/** internal label for**/
.form-outline .form-control:focus ~ .form-label {
    color: #353333;
    background-color: #ffffff0d;
}

.form-outline .form-control.active ~ .form-label {
    color: #494747;
    background-color: #ffffff0d;
}

/* region Responsive adptations*/
@media screen and (max-width: 560px){
    .login-container, .fp-container, .register-container {
        /*min-width: 350px !important;*/
        min-width: 100% !important;
    }
    .login-container .login-message,
    .fp-container .fp-header,
    .register-container .rheader{
        /*text-align: center;*/
    }
    .username-control, .password-control,
    .firstname-control,
    .lastname-control, .send-email-control{
        display: flex;
        flex-direction: column;
    }
    .form-wrapper > form > .custom-checkbox {
        margin-left: 0;
        width: 100%;
    }
    .form-wrapper > form > .login-form {
        margin-left: 0;
        width: 100%;
    }
    .login-actions, .fp-actions, .register-actions {
        flex-direction: row;
        align-items: center;
        flex-wrap: wrap;

    }
    #forgotpassword, #register, #login, #cancel-fp, #reset-fp,  #register-cancel, #register-confirm {
        margin: 10px auto !important;
        min-width: 100% !important;
    }
    .login-actions, .fp-actions, .register-actions {
        flex-direction: column-reverse;
    }
    .form-outline {
        width: 100% !important;
        margin-left: 0 !important;
    }

}

@media screen and (min-width: 576px) and (max-width: 767px) {
    .login-actions {
        display: flex !important;
    }

    /* Forgot Password - mover al final */
    .login-actions .form-group:nth-child(2) {
        order: 3;
    }

    /* Registration - mantener en medio (si se muestra) */
    .login-actions .form-group:nth-child(3) {
        order: 2;
    }

    /* Login - mover al principio */
    .login-actions .form-group:nth-child(4) {
        order: 1;
    }
}

@media  screen and (min-width: 560px) and (max-width: 576px) {
    .login-actions, .fp-actions, .register-actions {
        flex-direction: column-reverse;
    }
}

@media screen and (max-width: 430px) {
    .login-actions, .fp-actions, .register-actions {
        flex-direction: column-reverse;
    }
    #forgotpassword, #register, #login, #cancel-fp, #reset-fp,  #register-cancel, #register-confirm {
        margin: 10px auto !important;
        min-width: 100% !important;
    }
    .form-outline {
        width: 100% !important;
        margin-left: 0 !important;
    }
}
/* endregion */

.form-control.error {
    border: 2px solid red !important;
}

.btn {
    margin-bottom: 0;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.42857143;
    text-align: center;
    white-space: nowrap;
    vertical-align: middle;
    touch-action: manipulation;
    user-select: none;
    background-image: none;
    padding: .375rem .75rem;
    margin-right: 0 !important;
    margin-left: 24px !important;
}

.btn-primary {
    color: #fff !important;
    background-color: var(--appollo-color) !important;
    border-color: white !important;
    box-shadow: none;
}

.btn-primary:hover {
    color: #fff !important;
    background-color: var(--appollo-color-hover) !important;
    border-color: #fff !important;
}

.btn-primary:disabled {
    color: #7f7f7f !important;
    background-color: #c3c3c3 !important;
    border-color: #fff !important;
}
.login-form, .custom-checkbox {
   /* width: 75%;*/
   /* margin-left: 3.5rem;*/
}

.reset-control label{
    margin-right: 20px;
    margin-top: 15px !important;
    min-width: 129px;
    font-weight: bold;
}

button{
    text-transform:none !important;
    text-align: center !important;
    min-height: 34px !important;
    background-color: rgb(49, 192, 210) !important;
    color: rgb(255, 255, 255) !important;
    width: 100% !important;
    border-color: white !important;
    box-shadow: none !important;
    margin-bottom: 0;
    font-size: 14px !important;
    font-weight: 400  !important;
    line-height: 1.42857143  !important;
    white-space: nowrap  !important;
    vertical-align: middle  !important;
    touch-action: manipulation  !important;
    user-select: none  !important;
    background-image: none  !important;
    padding: 0.375rem 0.75rem  !important;
}


.pwa-register-btn-action {
    min-width: 40% !important;
}

input:-webkit-autofill {
     -webkit-box-shadow: 0 0 0px 1000px transparent inset !important;
     -webkit-text-fill-color: #4f4f4f !important;
    caret-color: #4f4f4f !important;
 }

input:autofill {
    box-shadow: 0 0 0px 1000px transparent inset !important;
    background-color: transparent !important;
    color: #4f4f4f !important;
}

input[data-mandatory="true"]:-webkit-autofill {
    -webkit-box-shadow: 0 0 0px 1000px lightyellow inset !important;
    -webkit-text-fill-color: #4f4f4f !important;
    caret-color: #4f4f4f !important;
}

input[data-mandatory="true"]:autofill {
    box-shadow: 0 0 0px 1000px lightyellow inset !important;
    background-color: lightyellow !important;
    color: #4f4f4f !important;
}