:root {
    --Button-Brand: #0176D3;
    --Button-Hover: #014486;
    --Text-Weak: #3E3E3C;
    --Text-Error: #C23934;
    --Text-Success: #2E844A;
    --Palette-Neutral-95: #F3F3F3;
    --Text-Placeholder: #747474;
    --Foundation-Gray-01: #FFF;
    --Button-Disabled: #C9C7C5;
    --Foundation-Red-Flush-Mahogany: #C23934;
    --Foundation-Blue-Azure: #1589EE;
}

* {
    margin: 0;
    padding: 0;
    font-family: 'Salesforce Sans', Arial, sans-serif;
    font-size: 12px;
}

@keyframes circle {
    0% {
        transform: rotate(0deg) translate(100px) rotate(0deg);
    }

    100% {
        transform: rotate(360deg) translate(100px) rotate(-360deg);
    }
}

.background-graphic {
    position: fixed;
    top: 0px;
    bottom: 0px;
    left: 0px;
    right: 0px;
    z-index: -1;
}

    .background-graphic > div {
        position: absolute;
        border-radius: 100%;
        filter: blur(47px);
        animation: circle;
        animation-timing-function: linear;
        animation-iteration-count: infinite;
    }

        .background-graphic > div.orange {
            width: 30vw;
            height: 30vw;
            background: rgba(223, 106, 46, 0.10);
            top: 20%;
            left: -10vw;
            animation-duration: 20s;
            animation-direction: reverse;
        }

        .background-graphic > div.green {
            width: 20vw;
            height: 20vw;
            background: rgba(76, 156, 46, 0.10);
            left: 20%;
            animation-duration: 17s;
            animation-direction: alternate-reverse;
        }

        .background-graphic > div.blue {
            width: 40vw;
            height: 40vw;
            background: rgba(87, 163, 189, 0.10);
            top: -10%;
            left: 60vw;
            animation-duration: 25s;
        }

.login-container {
    display: flex;
    flex-direction: column;
    height: 100%;
    gap: 22px;
}

    .login-container a {
        color: var(--Button-Brand, #0176D3);
        text-decoration: underline;
        transition: color linear 0.3s;
    }

        .login-container a:hover, .login-container a:focus {
            color: var(--Button-Hover, #014486);
        }

    .login-container header {
        margin: 39px 45px 0px 45px;
    }

        .login-container header .header-branding-image {
            display: flex;
            flex-direction: column;
        }

        .login-container header img {
            align-self: flex-start;
        }

            .login-container header img:not(.custom-logo) {
                height: 70px;
                width: 196px;
            }

/* centre logo on small devices (mobile devices in portrait) */
@media only screen and (max-width: 430px) {
    .login-container header img {
        align-self: center;
    }
}

.login-dialog-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 11px;
}

    .login-dialog-wrapper > .footer-link > ul {
        display: flex;
        list-style: none;
        align-items: center;
        gap: 8px;
    }

        .login-dialog-wrapper > .footer-link > ul > li {
            text-align: center;
            display: flex;
            flex-wrap: nowrap;
            align-items: center;
        }

            .login-dialog-wrapper > .footer-link > ul > li:not(:first-child)::before {
                content: "|";
                color: #0176D3;
                margin-right: 8px;
            }

.main-container {
    width: 1024px;
    margin: 0 auto;
    display: table;
    table-layout: fixed;
}

.enterprisebox {
    box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.16);
    border-radius: 4px;
    background-color: rgba(255,255,255,0.75);
    display: flex;
    align-items: center;
    flex-direction: column;
    padding-bottom: 31px;
    gap: 18px;
}

    .enterprisebox h1, .enterprisebox h1 > span {
        font-size: 20px;
        font-style: normal;
        line-height: 30px;
    }

    .enterprisebox h1 {
        font-weight: 400;
        padding: 13.236px 8.689px 12.218px 8.689px;
        display: flex;
        justify-content: center;
        align-items: center;
        flex-shrink: 0;
        border-radius: 4px 4px 0px 0px;
        box-shadow: 0px 2px 1px 0px #F2F1F0;
        width: 100%;
    }

    /* HACK: Override styles built in to WebMessage user control to restrict changes to login style sheet only */
    .enterprisebox > div.webMessage[name*='msgError'],
    .enterprisebox > div.maintenance-message,
    .enterprisebox > div.summary-message {
        position: relative;
        color: #444444;
        display: flex;
        flex-direction: column;
        margin-right: 16px;
        margin-left: 16px;
        width: 359px;
        background: var(--Palette-Neutral-95, #F3F3F3);
        padding: 9px 7px 9px 61px;
    }

    .enterprisebox > div.maintenance-message, .enterprisebox > div.summary-message {
        background-image: url(../images/login-info.png);
        background-size: 24px;
        background-position-x: 27px;
        background-position-y: 9px;
        background-repeat: no-repeat;
    }

    .enterprisebox > div.maintenance-message {
        white-space: pre-wrap;
        line-height: 1.5em;
    }

        .enterprisebox > div.maintenance-message > span.truncate {
            position: relative;
            max-height: 4.5em;
            overflow: hidden;
            text-overflow: ellipsis;
            padding-bottom: 1.5em;
        }

            .enterprisebox > div.maintenance-message > span.truncate::after {
                content: "";
                text-align: right;
                position: absolute;
                bottom: 0;
                right: 0;
                left: 0;
                height: 1.5em;
                background: linear-gradient(to bottom, transparent, var(--Palette-Neutral-95, #F3F3F3) 90%);
            }

        .enterprisebox > div.maintenance-message > span + a {
            display: none;
        }

        .enterprisebox > div.maintenance-message > span.truncate + a {
            display: block;
        }

    .enterprisebox > div.summary-message {
        color: var(--Text-Placeholder, #747474);
    }

        /* HACK: Modify specific elements to fit Blossom designs */
        .enterprisebox > div.summary-message > span:first-of-type {
            font-weight: 700;
        }

        .enterprisebox > div.summary-message > ul:first-of-type {
            margin-bottom: 0px;
        }

        .enterprisebox > div.summary-message > ul > li::first-letter {
            text-transform: capitalize;
        }
        /* HACKEND */
        .enterprisebox > div.summary-message > ul > li {
            list-style-type: none;
        }

        .enterprisebox > div.summary-message > ul:not(:first-of-type) > li:not(.invalid):not(.satisfied) {
            margin-left: 17px;
            list-style-type: disc;
        }

        .enterprisebox > div.summary-message > ul > li.invalid,
        .enterprisebox > div.summary-message > ul > li.satisfied {
            padding-left: 20px;
            background-repeat: no-repeat;
            background-size: 12px;
            background-position: 0px center;
            font-weight: 700;
            list-style: none;
        }

        .enterprisebox > div.summary-message > ul > li.invalid {
            color: var(--Text-Error, #C23934);
            background-image: url(../images/login-stop.png);
        }

        .enterprisebox > div.summary-message > ul > li.satisfied {
            background-image: url(../images/login-success.png);
            color: var(--Text-Success, #2E844A);
        }

    .enterprisebox > div.webMessage[name*='msgError'] > img {
        display: none;
    }

        .enterprisebox > div.webMessage[name*='msgError'] > img + .webMessage_header::before,
        .enterprisebox > div.webMessage[name*='msgError'] > img + .webMessage_header_error::before {
            content: "";
            background-size: 24px 24px;
            background-repeat: no-repeat;
            width: 24px;
            height: 24px;
            display: inline-block;
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            left: 27px;
        }

        .enterprisebox > div.webMessage[name*='msgError'] > img[src*='info'] + .webMessage_header::before {
            background-image: url(../images/login-stop.png);
        }

        .enterprisebox > div.webMessage[name*='msgError'] > img[src*='error'] + .webMessage_header_error::before,
        .enterprisebox > div.webMessage[name*='msgError'] > img[src*='warning'] + .webMessage_header::before {
            background-image: url(../images/login-warning.png);
        }

        .enterprisebox > div.webMessage[name*='msgError'] > img[src*='success'] + .webMessage_header::before {
            background-image: url(../images/login-success.png);
        }

    /* HACK: Hide warning mesage when validation error is displayed. Avoids making changes to code-behind logic */
    .enterprisebox > div.webMessage[name*='msgError']:not([style*="display:none"]):not([style*="display: none"]) + .warningMsg {
        display: none;
    }

    /* ForgotPassword.aspx: Hide input controls and messages when successful */
    .enterprisebox > div.webMessage[name*='msgError']:not([style*="display:none"]):not([style*="display: none"]) + div .hide-when-message-displayed {
        display: none;
    }

.login-form-box {
    padding: 0px 48px 0px 43px;
}

    .login-form-box > div.form-wrapper {
        display: flex;
        flex-direction: column;
        gap: 20px;
        width: 300px;
    }

        .login-form-box > div.form-wrapper .form-header {
            font-size: 15px;
            color: var(--Text-Weak, #3E3E3C);
        }

        .login-form-box > div.form-wrapper > div {
            display: flex;
            position: relative;
            flex-direction: column;
        }

            .login-form-box > div.form-wrapper > div.hidden {
                display: none;
            }

            .login-form-box > div.form-wrapper > div.radio-options-wrapper {
                gap: 14px;
            }

                .login-form-box > div.form-wrapper > div.radio-options-wrapper > div {
                    display: flex;
                    align-items: center;
                    gap: 8px;
                }

                    .login-form-box > div.form-wrapper > div.radio-options-wrapper > div > input {
                        width: 16px;
                        height: 16px;
                    }

                    .login-form-box > div.form-wrapper > div.radio-options-wrapper > div > label {
                        font-size: 13px;
                        margin-bottom: 0px;
                    }

            .login-form-box > div.form-wrapper > div.pin-input-wrapper {
                flex-direction: row;
                justify-content: center;
                gap: 8px;
                margin-bottom: 7px;
            }

                .login-form-box > div.form-wrapper > div.pin-input-wrapper > input[type=text] {
                    width: 37px;
                    height: 44px;
                    padding: 6px 12px;
                    font-size: 16px;
                    line-height: 20px;
                }

                     /* Additional spacing to break pin inputs into grouped triplets - add back when we move to 6 digit pin */
                     /* .login-form-box > div.form-wrapper > div.pin-input-wrapper > input[type=text]:nth-child(3n):not(:last-of-type) {
                        margin-right: 9px; 
                    } */

            .login-form-box > div.form-wrapper > div.multi-link-wrapper {
                display: inline-flex;
                flex-direction: row;
                justify-content: center;
                gap: 5px;
            }

                .login-form-box > div.form-wrapper > div.multi-link-wrapper > span.conjunction:last-child {
                    display: none;
                }

            .login-form-box > div.form-wrapper > div input[type=text],
            .login-form-box > div.form-wrapper > div input[type=password] {
                width: 100%;
                height: 32px;
                padding-left: 12px;
                padding-right: 12px;
                border-radius: 4px;
                border: 1px solid #747474;
                background: var(--Foundation-Gray-01, #FFF);
                font-size: 13px;
            }

                .login-form-box > div.form-wrapper > div input[type=text]:invalid,
                .login-form-box > div.form-wrapper > div input[type=password]:invalid,
                .enterprisebox.invalid > .login-form-box > div.form-wrapper > div input[type=text] {
                    border: 2px solid var(--Foundation-Red-Flush-Mahogany, #C23934);
                }

            .login-form-box > div.form-wrapper > div > span.validation-message {
                color: var(--Text-Error, #C23934);
                position: absolute;
                top: 100%;
                opacity: 100%;
                transition: opacity linear 0.2s;
            }

            .login-form-box > div.form-wrapper > div input[type=text]:not(:invalid) + span.validation-message,
            .login-form-box > div.form-wrapper > div input[type=password]:not(:invalid) + span.validation-message {
                opacity: 0%;
            }

        .login-form-box > div.form-wrapper > input[type=submit] {
            border-radius: 4px;
            background: var(--Button-Brand, #0176D3);
            display: flex;
            height: 32px;
            padding: 1px 16px;
            justify-content: center;
            align-items: center;
            gap: 10px;
            flex-shrink: 0;
            font-size: 13px;
            font-weight: 400;
            line-height: 20px;
            color: var(--Foundation-Gray-01, #FFF);
            border: 0px;
            transition: background-color linear 0.3s;
            cursor: pointer;
        }

            .login-form-box > div.form-wrapper > input[type=submit]:hover, .login-form-box > div.form-wrapper > input[type=submit]:focus {
                background: var(--Button-Hover, #014486);
            }


form:invalid .login-form-box > div.form-wrapper > input[type=submit],
form .login-form-box > div.form-wrapper > input[type=submit]:disabled {
    background: var(--Button-Disabled, #C9C7C5);
    cursor: not-allowed;
}

.enterprisebox > div.warningMsg {
    width: 300px;
    text-align: center;
    color: #717171;
}

    .enterprisebox > div.warningMsg > span:first-child {
        font-weight: 700;
    }

.login-form-box table {
    margin-top: 20px;
}

    .login-form-box table tbody tr td:first-child {
        width: 110px;
    }

    .login-form-box table tbody tr td {
        padding: 5px;
    }

        .login-form-box table tbody tr td:not(:first-child) {
            width: 200px;
        }

        .login-form-box table tbody tr td:last-child {
            width: 9.6rem;
        }

        .login-form-box table tbody tr td:not(:first-child) input {
            width: 100%;
        }

        .login-form-box table tbody tr td a {
            color: #333333;
        }

        .login-form-box table tbody tr td:not(:first-child) input.WebButtonControlStyle {
            width: 80%;
            background: #fff;
            border: 2px solid #333;
            padding: 5px;
            text-transform: uppercase;
        }

.text-center {
    text-align: center;
}

.portalbox-border {
    border: 1px solid #52575d;
    background: rgba(255,255,255,0.1);
    display: block;
    width: 100%;
}

.portalbox h2 {
    font-size: 18px;
    border-bottom: 1px solid;
    padding: 7px 0 5px;
}

.portalbox .portal-link-box {
    margin: 50px auto 0;
    max-width: 100%;
    text-align: center;
}

    .portalbox .portal-link-box span {
        font-size: 14px;
    }

    .portalbox .portal-link-box a.link-to-portal {
        outline: none; /* Change */
        display: block;
        background-color: #23364c;
        width: 180px;
        background-size: 200px;
        padding: 7px 15px;
        margin: 10px auto;
        border-radius: 5px;
        border: 1px solid transparent;
    }

        .portalbox .portal-link-box a.link-to-portal img {
            max-width: 100%;
        }

span.error-msg {
    color: #f00;
}

/***************************************************************************************/

.webMessage img {
    margin-top: 10px;
    margin-bottom: 30px;
    padding-right: 5px;
    float: left;
}

.webMessage {
    color: #f00;
}

#loginBox {
    padding-bottom: 2rem;
    margin: 0;
}

@media (min-width: 768px) {
    .no-padding-left {
        padding-left: 0;
    }

    .no-padding-right {
        padding-right: 0;
    }
}

