@media (min-width: 1200px) {
    .company-logo {
        margin-top: 10rem
    }
}

@media (min-width: 1500px) {
    .company-logo {
        margin-top: 8rem
    }
}

@media (min-width: 1700px) {
    .company-logo {
        margin-top: 6rem
    }
}

@media (min-width: 1884px) {
    .company-logo {
        margin-top: 10rem
    }
}

@media (min-width: 2560px) {
    .company-logo {
        margin-top: 18rem;
    }
}

.loginv2-page-shell {
    position: relative;
    min-height: 100vh;
    overflow: hidden;
    isolation: isolate;
    background-color: #f4f7fb
}

.loginv2-page-shell::before {
    content: "";
    position: absolute;
    z-index: 0;
    inset: -1.5%;
    pointer-events: none;
    background-image: var(--loginv2-background-image);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    transform-origin: center;
    animation: loginv2AmbientDrift 34s ease-in-out infinite;
    will-change: transform;
    backface-visibility: hidden
}

.loginv2-page-shell > .row {
    position: relative;
    z-index: 2
}

.loginv2-brand-logo, .loginv2-brand-title {
    opacity: 0;
    animation: loginv2BrandEnter 720ms cubic-bezier(.22, 1, .36, 1) both
}

.loginv2-brand-logo {
    animation-delay: 100ms
}

.loginv2-company-logo {
    max-width: 100%;
    width: auto;
    height: auto;
    max-height: var(--loginv2-company-logo-max-height, 90px);
    object-fit: contain
}

.loginv2-brand-title {
    animation-delay: 380ms
}

.loginv2-brand-heading {
    min-height: 1.25em;
    line-height: 1.25
}

.loginv2-typing-text {
    display: inline-block;
    white-space: nowrap
}

.loginv2-typing-text::after {
    content: "";
    display: inline-block;
    width: 2px;
    height: .9em;
    margin-inline-start: .12em;
    background: currentColor;
    vertical-align: -.05em;
    animation: loginv2TypingCaretBlink 850ms steps(1, end) infinite
}

.loginv2-cloud-band {
    position: absolute;
    z-index: 1;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 30vh;
    overflow: hidden;
    pointer-events: none;
    contain: layout paint
}

.loginv2-cloud-definitions {
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden
}

.loginv2-cloud {
    --cloud-width: 31rem;
    --cloud-bottom: -18%;
    --cloud-opacity: .7;
    --cloud-duration: 72s;
    --cloud-delay: 0s;
    position: absolute;
    left: 100%;
    bottom: calc(var(--cloud-bottom) + 30px);
    display: block;
    width: var(--cloud-width);
    height: auto;
    opacity: var(--cloud-opacity);
    transform: translate3d(0, 0, 0);
    animation: loginv2CloudDrift var(--cloud-duration) linear var(--cloud-delay) infinite;
    will-change: transform;
    backface-visibility: hidden;
    overflow: visible
}

.loginv2-cloud--1 {
    --cloud-width: clamp(19rem, 29vw, 34rem);
    --cloud-bottom: -19%;
    --cloud-opacity: .58;
    --cloud-duration: 76s;
    --cloud-delay: -21s
}

.loginv2-cloud--2 {
    --cloud-width: clamp(26rem, 38vw, 45rem);
    --cloud-bottom: -34%;
    --cloud-opacity: .76;
    --cloud-duration: 94s;
    --cloud-delay: -67s
}

.loginv2-cloud--3 {
    --cloud-width: clamp(16rem, 24vw, 28rem);
    --cloud-bottom: 16%;
    --cloud-opacity: .42;
    --cloud-duration: 64s;
    --cloud-delay: -43s
}

.loginv2-cloud--4 {
    --cloud-width: clamp(30rem, 44vw, 52rem);
    --cloud-bottom: -43%;
    --cloud-opacity: .66;
    --cloud-duration: 112s;
    --cloud-delay: -13s
}

.loginv2-cloud--5 {
    --cloud-width: clamp(18rem, 27vw, 31rem);
    --cloud-bottom: 2%;
    --cloud-opacity: .48;
    --cloud-duration: 83s;
    --cloud-delay: -74s
}

.loginv2-cloud--6 {
    --cloud-width: clamp(24rem, 34vw, 40rem);
    --cloud-bottom: -26%;
    --cloud-opacity: .53;
    --cloud-duration: 101s;
    --cloud-delay: -48s
}

@keyframes loginv2CloudDrift {
    from {
        transform: translate3d(0, 0, 0)
    }
    to {
        transform: translate3d(calc(-100vw - 60rem), 0, 0)
    }
}

@keyframes loginv2AmbientDrift {
    0%, 100% {
        transform: translate3d(-6px, 3px, 0) scale(1.012)
    }
    50% {
        transform: translate3d(9px, -5px, 0) scale(1.018)
    }
}

@keyframes loginv2BrandEnter {
    from {
        opacity: 0;
        transform: translate3d(0, 12px, 0)
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0)
    }
}

@keyframes loginv2TypingCaretBlink {
    0%, 48% {
        opacity: 1
    }
    49%, 100% {
        opacity: 0
    }
}

@media (max-width: 575.98px) {
    .loginv2-cloud-band {
        height: 30vh
    }

    .loginv2-cloud--4, .loginv2-cloud--6 {
        display: none
    }
}

@media (prefers-reduced-motion: reduce) {
    .loginv2-page-shell::before, .loginv2-cloud, .loginv2-brand-logo, .loginv2-brand-title {
        animation: none !important
    }

    .loginv2-page-shell::before {
        transform: scale(1.012)
    }

    .loginv2-brand-logo, .loginv2-brand-title {
        opacity: 1;
        transform: none
    }

    .loginv2-typing-text::after {
        display: none;
        animation: none !important
    }
}

.loginv2-card {
    width: 100%;
    max-width: 27.5rem;
    margin-inline: auto;
    background: #fff;
    border: 1px solid #e9edf3;
    border-radius: 1rem;
    box-shadow: 0 18px 50px rgba(30, 72, 120, .10), 0 2px 8px rgba(30, 72, 120, .05);
    padding: 2.5rem 2.25rem 2rem;
    animation: loginv2CardEnter 780ms cubic-bezier(.22, 1, .36, 1) 180ms both
}

@keyframes loginv2CardEnter {
    from {
        opacity: 0;
        transform: translate3d(0, 12px, 0)
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0)
    }
}

@media (min-width: 1200px) {
    .loginv2-card {
        animation-delay: 700ms
    }
}

@media (prefers-reduced-motion: reduce) {
    .loginv2-card {
        animation: none !important;
        opacity: 1;
        transform: none
    }
}

.loginv2-avatar {
    width: 6rem;
    height: 6rem;
    margin: 0 auto 1.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #2563eb;
    background: #f6f9fe;
    border: 1px solid #dbe7fb;
    box-shadow: 0 .375rem 1rem rgba(37, 99, 235, .08)
}

.loginv2-title {
    font-size: 1.65rem;
    font-weight: 700;
    color: #1c2b3a;
    text-align: center;
    margin-bottom: .35rem
}

.loginv2-subtitle {
    font-size: .95rem;
    color: #6b7a8d;
    text-align: center;
    margin-bottom: 1.75rem
}

.loginv2-label {
    font-size: .9rem;
    font-weight: 600;
    color: #2c3a4b;
    margin-bottom: .4rem;
    display: block
}

.loginv2-field {
    display: flex;
    align-items: center;
    border: 1px solid #dde3ec;
    border-radius: .65rem;
    background: #fff;
    transition: border-color .15s ease, box-shadow .15s ease
}

.loginv2-field:focus-within {
    border-color: #2563eb;
    box-shadow: 0 0 0 .2rem rgba(37, 99, 235, .12)
}

.loginv2-field .loginv2-field-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #8a96a6;
    padding-inline-start: .9rem;
    flex-shrink: 0
}

.loginv2-field input.form-control {
    border: 0;
    background: transparent;
    box-shadow: none;
    outline: none;
    height: 3rem;
    font-size: .95rem;
    padding-inline: .65rem
}

.loginv2-field input.form-control:focus {
    border: 0;
    box-shadow: none;
    background: transparent
}

.loginv2-field input.form-control::placeholder {
    color: #a3aebc
}

.loginv2-toggle {
    cursor: pointer;
    display: flex;
    align-items: center;
    padding-inline-end: .9rem;
    color: #8a96a6
}

.loginv2-toggle span {
    display: flex;
    align-items: center
}

.loginv2-toggle #hide-icon {
    display: none
}

.loginv2-toggle:hover {
    color: #2563eb
}

.loginv2-forgot-row {
    text-align: end;
    margin-top: .6rem
}

.loginv2-card a.login_forgot_password {
    font-size: .9rem;
    font-weight: 600;
    color: #2563eb !important;
    text-decoration: none;
    padding: 0
}

.loginv2-card a.login_forgot_password:hover {
    text-decoration: underline
}

.loginv2-submit {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .6rem;
    width: 100%;
    height: 3.1rem;
    margin-top: 1.35rem;
    border: 0;
    border-radius: .65rem;
    background-image: linear-gradient(90deg, #1d4fd8 0%, #2f6bf0 100%);
    color: #fff;
    font-size: 1.05rem;
    font-weight: 600;
    box-shadow: 0 .5rem 1rem rgba(37, 99, 235, .25);
    transition: filter .15s ease, transform .1s ease
}

.loginv2-submit:hover {
    filter: brightness(1.07);
    color: #fff
}

.loginv2-submit:active {
    transform: translateY(1px)
}

[dir="rtl"] .loginv2-submit svg {
    transform: scaleX(-1)
}

.loginv2-version {
    text-align: center;
    margin-top: 1.4rem
}

.loginv2-version a {
    font-size: .75rem;
    color: #9aa6b5 !important;
    text-decoration: none;
    padding: 0
}

.loginv2-version a:hover {
    color: #6b7a8d !important
}

@media (max-width: 575.98px) {
    .loginv2-card {
        padding: 2rem 1.35rem 1.6rem;
        border-radius: .85rem
    }

    .loginv2-avatar {
        width: 5rem;
        height: 5rem
    }

    .loginv2-title {
        font-size: 1.45rem
    }
}
