html,
body {
    background: #ffffff;
    overflow: hidden;
}

.otp-input {
    width: 50px;
    height: 50px;
    border: 2px solid blue;
    border-radius: 50%;
    text-align: center;
    font-size: 20px;
    margin: 5px;
}

.body-container {
    margin-top: 60px;
    padding-bottom: 40px;
}

.welcome-page li {
    list-style: none;
    padding: 4px;
}

.logged-out-page iframe {
    display: none;
    width: 0;
    height: 0;
}

.grants-page .card {
    margin-top: 20px;
    border-bottom: 1px solid lightgray;
}

    .grants-page .card .card-title {
        font-size: 120%;
        font-weight: bold;
    }

        .grants-page .card .card-title img {
            width: 100px;
            height: 100px;
        }

    .grants-page .card label {
        font-weight: bold;
    }

.login-page {
    background: #ffffff;
}

.card,
.card-header {
    background: #ffffff;
    border: none;
    display: flex;
    justify-content: center;
}

card-header {
    padding: 15px;
}

.card-body {
    background: #ffffff;
}

a, a.reset-password {
    text-decoration: underline;
    font-size: 16px;
}

h1.header, h2.header {
    font-family: "Roboto", sans-serif;
    font-style: normal;
    font-weight: bold;
    font-size: 24px;
    line-height: 28px;
    color: #2c2d3e;
    z-index: 10;
    min-width: 350px;
    text-align: center;
}

.login-form {
    position: absolute;
    top: calc(50% - 200px);
    left: calc(35% - 150px);
    display: flex;
}

.form-control {
    width: 350px;
    height: 50px;
}

input.form-control {
    margin-bottom: 40px;
}

.btn-submit {
    position: absolute;
    left: calc(35% + 87px);
    top: calc(50% + 150px);
    width: 145.14px;
    height: 45px;
    background-color: #3c419a;
    border-radius: 3px;
    color: white;
    font-family: "Roboto", sans-serif;
    display: flex;
    justify-content: space-around;
    align-items: center;
}

#icon-disable {
    display: block;
}

.btn-submit:disabled {
    cursor: not-allowed;
}

.close-button {
    border: none;
    background: linear-gradient(0deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.9)), #F44336;
}

.side-panel {
    position: absolute;
    top: 0px;
    right: 0px;
    width: 30%;
    height: 100%;
    background-image: linear-gradient(#3c419a, #27284c);
}

.side-header {
    display: flex;
    position: relative;
    top: 47%;
    justify-content: center;
    font-family: "Roboto", sans-serif;
    font-style: normal;
    font-weight: bold;
    font-size: 24px;
    line-height: 28px;
    color: #ffffff;
    cursor: default;
    text-align: center;
}

.side-subheader {
    display: flex;
    position: relative;
    top: 49%;
    justify-content: center;
    font-family: "Roboto", sans-serif;
    font-style: normal;
    font-weight: normal;
    font-size: 19px;
    line-height: 28px;
    color: #ffffff;
    cursor: default;
}

.footer {
    position: absolute;
    width: 70%;
    left: 1%;
    bottom: 50px;
    height: 40px;
}

img.footer-logo {
    height: 44px;
    padding-left: 3px;
    padding-right: 3px;
}

.logos-container {
    float: right;
    margin-right: 3%;
}

.forgot-password {
    position: absolute;
    left: calc(35% + 115px);
    top: calc(50% + 85px);
    font-family: "Roboto", sans-serif;
    font-size: 12px;
    font-style: normal;
    font-weight: normal;
    color: #2c2d3e;
    cursor: pointer;
    padding-top: inherit;
}

.ksdo {
    position: absolute;
    top: calc(50% + 165px);
    font-family: "Roboto", sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 600;
    color: #2c2d3e;
    text-align: center;
    cursor: pointer;
    text-transform: uppercase;
    color: #3c419a;
    max-width: 200px;
}


#password-toggle {
    cursor: pointer;
}

.password-container {
    width: 350px;
}

.input-validation-error {
    border-color: #dc3545;
}

.validation-summary-errors ul {
    list-style: none;
}

.filter-red {
    filter: invert(50%) sepia(10%) saturate(3465%) hue-rotate(314deg) brightness(86%) contrast(96%);
}

.separator {
    width: 95%;
    margin-left: 10px;
    margin-top: 1rem;
    margin-bottom: 1rem;
    border: 0;
    border-top: 1px solid rgba(0,0,0,.1);
}

.reset-password {
    color: #2C2D3E;
    opacity: 80%;
    text-decoration: none;
    font-family: "Roboto", sans-serif;
    font-size: 12px;
    position: absolute;
    top: 89.99%;
    margin: 10px 0px;
}

.login-snackbar-wrong-password {
    position: absolute;
    top: calc(50% - 250px);
    left: calc(50% - 335px);
    display: flex;
    flex-direction: row;
    width: 680px;
    align-items: center;
    background: linear-gradient(0deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.9)), #F44336;
    border-radius: 4px;
    padding: 15px;
}

.login-snackbar-account-lock {
    position: absolute;
    top: calc(50% - 250px);
    left: calc(50% - 300px);
    display: flex;
    flex-direction: row;
    width: 600px;
    align-items: center;
    background: linear-gradient(0deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.9)), #F44336;
    border-radius: 4px;
    padding: 15px;
}

.login-snackbar-text {
    font-family: "Roboto", sans-serif;
    font-style: normal;
    font-size: 14px;
    color: #000000;
    display: flex;
    justify-content: flex-start;
    margin: 0px 15px;
}

.login-snackbar-alert-icon {
    width: 25px;
    height: 25px;
}

.login-snackbar-close-icon {
    cursor: pointer;
    width: 25px;
    height: 25px;
    color: rgba(44, 45, 62, 0.8);
}

.login-snackbar-user-expired {
    position: absolute;
    top: calc(50% - 250px);
    left: calc(50% - 265px);
    display: flex;
    flex-direction: row;
    width: 545px;
    align-items: center;
    background: linear-gradient(0deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.9)), #F44336;
    border-radius: 4px;
    padding: 15px;
}

.login-snackbar-wrong-external-login {
    position: absolute;
    top: calc(50% - 250px);
    left: calc(50% - 270px);
    display: flex;
    flex-direction: row;
    width: 560px;
    align-items: center;
    background: linear-gradient(0deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.9)), #F44336;
    border-radius: 4px;
    padding: 15px;
}

.spinner-align {
    top: 50%;
    left: 35%;
    transform: translate(-50%, -50%);
    position: fixed;
}

.spinner-text {
    font-weight: 700;
    font-size: 24px;
    color: #3C419A;
}

.spinner-circle {
    width: 3rem;
    height: 3rem;
    margin-bottom: 1rem;
}

.input-group-text {
    background-color: lightgray
}

@media screen and (forced-colors: active) {
    .btn.disabled, .btn:disabled {
        opacity: 1;
    }
}

@media (max-width: 977px) {
    .footer .separator {
        margin-top: 0px !important;
        margin-bottom: 0px !important;
    }
}

.cancel-button {
    min-width: 80px;
    margin: 0 5px;
    padding: 0;
    font-size: 17px;
    height: 36px;
    border: solid 1px #3C419A;
    color: #3C419A;
    background-color: #FFFFFF;
    box-shadow: none;
    border-radius: 5px;
    transition: background-color 0.6s, box-shadow 0.3s;
}

    .cancel-button:hover,
    .cancel-button:active,
    .cancel-button:focus {
        background-color: #FFFFFF;
        box-shadow: 0px 3px 1px 0px rgba(0,0,0,0.2), 0px 2px 2px 0px rgba(0,0,0,0.14), 0px 1px 5px 1px rgba(0,0,0,0.12);
        transition: background-color 0.6s, box-shadow 0.6s;
    }

    .cancel-button.active {
        background-color: #3C419A;
        color: #FFFFFF;
    }

.confirm-button {
    min-width: 80px;
    margin: 0 5px;
    padding: 0;
    font-size: 17px;
    height: 36px;
    border: solid 1px #3C419A;
    color: #FFFFFF;
    background-color: #3C419A;
    box-shadow: none;
    border-radius: 5px;
    transition: background-color 0.6s, box-shadow 0.3s;
    display: flex;
    justify-content: space-around;
    align-items: center;
}

    .confirm-button:hover,
    .confirm-button:active,
    .confirm-button:focus {
        background-color: #3C419A;
        box-shadow: 0px 3px 1px 0px rgba(0,0,0,0.2), 0px 2px 2px 0px rgba(0,0,0,0.14), 0px 1px 5px 1px rgba(0,0,0,0.12);
        transition: background-color 0.6s, box-shadow 0.6s;
    }

    .confirm-button.active {
        background-color: #3C419A;
        color: #FFFFFF;
    }

    .confirm-button:disabled {
        cursor: not-allowed;
        background-color: grey;
    }

.header-typ1 {
    display: block;
    justify-self: center;
    font-family: 'Roboto', sans-serif;
    font-style: normal;
    font-weight: normal;
    font-size: 24px;
    line-height: 28px;
    color: #2c2d3e;
    min-width: 350px;
    text-align: center;
    margin-bottom: 30px;
    padding-right: 5px;
}

.component-container {
    width: 70%;
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
}

.component-box {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 400px;
    height: 130px;
}

.flex-container {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 15px;
}

.auth-confirm-button {
    position: relative;
    transform: translateX(225px);
}

.auth-cancel-button {
    position: relative;
    transform: translate(135px, -36px);
}

.verify2FA-container {
    width: 70%;
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
}

.verify2FA {
    width: 450px;
}

.verify2FA-text {
    font-family: "Roboto", sans-serif;
    font-style: normal;
    color: #2c2d3e;
    font-size: 18px;
    text-align: center;
    margin: 20px;
    line-height: 2rem;
}

.verify2FA-timer {
    color: #BC0000;
    font-weight: bold;
}

.token-input {
    width: 35px;
    height: 35px;
    font-size: 18px;
    text-align: center;
    margin: 5px
}

/* Chrome, Safari, Edge, Opera */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Firefox */
input[type=number] {
    -moz-appearance: textfield;
}

/* Edge */
input[type="password"]::-ms-reveal {
    display: none;
}