.oilstar-login {
    min-height: 100vh;
    margin: 0;
    color: #004d83;
    background-color: #eef5fa;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.oilstar-login--main,
.oilstar-login--admin {
    background-image: url('/images/login/main.jpg');
}

.oilstar-login--partner {
    background-image: url('/images/login/partner.jpg');
}

.oilstar-login--customer {
    background-image: url('/images/login/customer.jpg');
}

.oilstar-login #app {
    min-height: 100vh;
}

.oilstar-login__page {
    min-height: 100vh;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: clamp(56px, 10vh, 110px) 20px 40px;
}

.oilstar-login__content {
    width: 100%;
    max-width: 390px;
    text-align: center;
}

.oilstar-login__content--password {
    max-width: 430px;
}

.oilstar-login__logo {
    display: block;
    width: min(250px, 72vw);
    height: auto;
    margin: 0 auto 34px;
}

.oilstar-login__card {
    padding: 22px 24px 20px;
    text-align: left;
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(0, 77, 131, 0.14);
    border-radius: 6px;
    box-shadow: 0 8px 24px rgba(19, 56, 83, 0.14);
}

.oilstar-login__card--password {
    padding: 26px 28px 24px;
}

.oilstar-login__title {
    margin: 0 0 8px;
    color: #004d83;
    font-size: 23px;
    font-weight: 600;
    line-height: 1.25;
}

.oilstar-login__intro {
    margin: 0 0 20px;
    color: #536c7c;
    font-size: 13px;
    line-height: 1.5;
}

.oilstar-login__label {
    display: block;
    margin: 0 0 6px;
    color: #004d83;
    font-size: 12px;
    font-weight: 600;
}

.oilstar-login__message {
    margin-bottom: 16px;
    font-size: 12px;
}

.oilstar-login__field {
    height: 42px;
    margin-bottom: 12px;
    padding: 10px 12px;
    border-color: #8e9aa3;
    border-radius: 4px;
    color: #004d83;
    box-shadow: none;
}

.oilstar-login__field:focus {
    border-color: #2f9bef;
    box-shadow: 0 0 0 2px rgba(47, 155, 239, 0.16);
}

.oilstar-login__terms {
    margin: 4px 0 14px;
    color: #34495e;
    font-size: 12px;
}

.oilstar-login__terms label {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    padding-left: 0;
    font-weight: 400;
}

.oilstar-login__terms input[type='checkbox'] {
    position: static;
    margin: 2px 0 0;
    flex: 0 0 auto;
}

.oilstar-login__terms-copy {
    min-width: 0;
}

.oilstar-login__submit {
    width: 100%;
    min-height: 42px;
    color: #fff;
    background: #f5891f;
    border-color: #d96f08;
    border-radius: 4px;
}

.oilstar-login__submit:hover,
.oilstar-login__submit:focus,
.oilstar-login__submit:active {
    color: #fff;
    background: #df760f;
    border-color: #c86305;
}

.oilstar-login__forgot {
    display: inline-block;
    margin-top: 13px;
    padding: 0;
    font-size: 12px;
}

.oilstar-login__divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 18px 0 14px;
    color: #607687;
    font-size: 11px;
}

.oilstar-login__divider::before,
.oilstar-login__divider::after {
    height: 1px;
    content: '';
    background: #8bb7d5;
    flex: 1;
}

.oilstar-login__portals {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.oilstar-login__portal-link {
    padding: 8px 10px;
    text-align: center;
    color: #1976bd;
    background: #fff;
    border: 1px solid #2f9bef;
    border-radius: 4px;
    font-size: 12px;
    white-space: nowrap;
}

.oilstar-login__portal-link:hover,
.oilstar-login__portal-link:focus {
    color: #fff;
    background: #2f9bef;
    text-decoration: none;
}

.oilstar-login__version {
    margin-top: 10px;
    color: #536c7c;
    font-size: 10px;
}

.oilstar-login .help-block {
    margin: -5px 0 10px;
    color: #c9302c;
    font-size: 12px;
}

.oilstar-login .flash-container {
    position: fixed;
    top: 15px;
    left: 50%;
    z-index: 1050;
    width: min(620px, calc(100% - 30px));
    transform: translateX(-50%);
}

@media (max-width: 480px) {
    .oilstar-login__page {
        align-items: center;
        padding: 24px 16px;
    }

    .oilstar-login__logo {
        width: min(220px, 68vw);
        margin-bottom: 24px;
    }

    .oilstar-login__card {
        padding: 20px 18px 18px;
    }

    .oilstar-login__card--password {
        padding: 22px 20px 20px;
    }
}

@media (max-height: 640px) and (min-width: 481px) {
    .oilstar-login__page {
        padding-top: 35px;
    }

    .oilstar-login__logo {
        margin-bottom: 20px;
    }
}
