﻿
#vispero-login-page {
    min-height: 100vh;
    min-height: 100dvh;
    background: white;
    color: var(--vp-ink);
    font-family: "Poppins", "Segoe UI", sans-serif;
}

    #vispero-login-page a {
        text-decoration: none;
    }

    #vispero-login-page .vp-login-page {
        min-height: 100vh;
        min-height: 100dvh;
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(360px, 480px);
    }

    #vispero-login-page .vp-panel-left {
        background: var(--vp-navy);
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        gap: 48px;
        padding: 52px 56px;
        position: relative;
        overflow: hidden;
        isolation: isolate;
    }

    #vispero-login-page .vp-panel-left-accent-large,
    #vispero-login-page .vp-panel-left-accent-medium,
    #vispero-login-page .vp-panel-left-inner-ring {
        position: absolute;
        border-radius: 50%;
        pointer-events: none;
    }

    #vispero-login-page .vp-panel-left-accent-large {
        width: 520px;
        height: 520px;
        right: -180px;
        bottom: -140px;
        border: 1.5px solid rgba(243, 198, 22, 0.18);
    }

    #vispero-login-page .vp-panel-left-accent-medium {
        width: 280px;
        height: 280px;
        right: -60px;
        bottom: -60px;
        border: 1.5px solid rgba(243, 198, 22, 0.1);
    }

    #vispero-login-page .vp-panel-left-inner-ring {
        width: 160px;
        height: 160px;
        right: 80px;
        bottom: 80px;
        border: 1.5px solid rgba(243, 198, 22, 0.22);
    }

    #vispero-login-page .vp-brand-mark,
    #vispero-login-page .vp-panel-copy,
    #vispero-login-page .vp-stat {
        position: relative;
        z-index: 1;
    }

    #vispero-login-page .vp-brand-mark {
        display: flex;
        align-items: center;
    }

    #vispero-login-page .vp-reverse-logo {
        width: min(100%, 400px);
        height: auto;
        display: block;
    }

    #vispero-login-page .vp-eyebrow {
        margin: 0 0 20px;
        font-size: 11px;
        font-weight: 500;
        letter-spacing: 0.18em;
        text-transform: uppercase;
        color: var(--vp-yellow);
    }

    #vispero-login-page .vp-hero-title {
        margin: 0 0 18px;
        text-wrap: balance;
        font-family: Georgia, "Times New Roman", serif;
        font-size: clamp(32px, 3.2vw, 46px);
        font-weight: 700;
        line-height: 1.15;
        color: var(--vp-white);
    }

        #vispero-login-page .vp-hero-title em {
            color: var(--vp-yellow);
            font-style: italic;
        }

    #vispero-login-page .vp-stats {
        display: flex;
        align-items: stretch;
        gap: 40px;
        flex-wrap: wrap;
        position: relative;
        z-index: 1;
    }

    #vispero-login-page .vp-stat-number {
        font-family: Georgia, "Times New Roman", serif;
        font-size: 28px;
        font-weight: 700;
        line-height: 1;
        color: var(--vp-white);
    }

    #vispero-login-page .vp-stat-label {
        margin-top: 4px;
        font-size: 11px;
        font-weight: 500;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        color: rgba(255, 255, 255, 0.45);
    }

    #vispero-login-page .vp-stat-divider {
        width: 1px;
        align-self: stretch;
        background: rgba(255, 255, 255, 0.12);
    }

    #vispero-login-page .vp-panel-right {
        background: var(--vp-white);
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 64px 56px;
        position: relative;
        overflow: auto;
    }

    #vispero-login-page .vp-form-shell {
        width: 100%;
        max-width: 368px;
        position: relative;
        z-index: 1;
    }

    #vispero-login-page .vp-form-logo {
        margin-bottom: 32px;
    }

    #vispero-login-page .vp-form-logo-image {
        display: block;
        width: min(100%, 260px);
        height: auto;
        margin: 0 auto;
    }

    #vispero-login-page .vp-form-header {
        margin-bottom: 36px;
    }

    #vispero-login-page .vp-page-title {
        margin: 0 0 6px;
        font-size: 22px;
        font-weight: 500;
        line-height: 1.3;
        color: var(--vp-ink);
    }

    #vispero-login-page .vp-form-intro {
        margin: 0;
        font-size: 14px;
        line-height: 1.55;
        color: var(--vp-slate);
    }

    #vispero-login-page .vp-form {
        display: flex;
        flex-direction: column;
        gap: 18px;
    }

    #vispero-login-page .vp-btn-sso,
    #vispero-login-page .vp-btn-sign-in {
        width: 100%;
        font-family: inherit;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
        cursor: pointer;
    }

    #vispero-login-page .vp-btn-sso {
        min-height: 52px;
        border: 1.5px solid var(--vp-border);
        border-radius: 10px;
        background: transparent;
        color: var(--vp-ink);
        font-size: 14px;
        font-weight: 400;
        padding: 13px 16px;
    }

    #vispero-login-page .vp-google-logo {
        width: 22px;
        height: 22px;
        display: block;
    }

    #vispero-login-page .vp-btn-sso:hover {
        border-color: var(--vp-navy);
        background: var(--vp-mist);
    }

    #vispero-login-page .vp-divider {
        display: flex;
        align-items: center;
        gap: 14px;
        margin: 4px 0;
        color: var(--vp-slate);
        font-size: 12px;
        font-weight: 500;
        letter-spacing: 0.06em;
        text-transform: uppercase;
    }

    #vispero-login-page .vp-divider-line {
        flex: 1;
        height: 1px;
        background: var(--vp-border);
    }

    #vispero-login-page .vp-field {
        display: flex;
        flex-direction: column;
        gap: 7px;
    }

    #vispero-login-page .vp-field-row {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
    }

    #vispero-login-page .vp-field-label {
        display: block;
        font-size: 12px;
        font-weight: 500;
        letter-spacing: 0.06em;
        text-transform: uppercase;
        color: var(--vp-slate);
    }

    #vispero-login-page .vp-input-wrap {
        position: relative;
    }

    #vispero-login-page .vp-field-input {
        width: 100%;
        min-height: 50px;
        border: 1.5px solid var(--vp-border);
        border-radius: 10px;
        background: #fafbfd;
        color: var(--vp-ink);
        font-family: inherit;
        font-size: 15px;
        line-height: 1.4;
        padding: 13px 16px;
        outline: none;
    }

        #vispero-login-page .vp-field-input::placeholder {
            color: #aab8c4;
        }

        #vispero-login-page .vp-field-input:focus {
            border-color: var(--vp-navy);
            background: var(--vp-white);
            box-shadow: 0 0 0 3.5px rgba(22, 54, 83, 0.08);
        }

        #vispero-login-page .vp-field-input[aria-invalid="true"] {
            border-color: rgba(191, 67, 39, 0.4);
        }

            #vispero-login-page .vp-field-input[aria-invalid="true"]:focus {
                box-shadow: 0 0 0 3.5px rgba(191, 67, 39, 0.12);
            }

    #vispero-login-page .vp-password-input {
        padding-right: 48px;
    }

    #vispero-login-page .vp-toggle-pw {
        position: absolute;
        top: 50%;
        right: 14px;
        transform: translateY(-50%);
        border: 0;
        background: transparent;
        color: var(--vp-slate);
        display: inline-flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        padding: 0;
    }

        #vispero-login-page .vp-toggle-pw:hover {
            color: var(--vp-navy);
        }

    #vispero-login-page .vp-forgot-link {
        font-size: 14px;
    }

        #vispero-login-page .vp-forgot-link:hover {
            opacity: 1;
            text-decoration: none;
        }

    #vispero-login-page .vp-btn-sign-in {
        min-height: 54px;
        border: 0;
        border-radius: 10px;
        background: var(--vp-navy);
        color: var(--vp-white);
        font-size: 15px;
        font-weight: 500;
        letter-spacing: 0.02em;
        padding: 14px 18px;
        margin-top: 1rem;
        position: relative;
        overflow: hidden;
    }

    #vispero-login-page .vp-button-arrow {
        width: 18px;
        height: 18px;
        border-radius: 999px;
        background: var(--vp-yellow);
        color: var(--vp-navy);
        display: inline-flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
    }

    #vispero-login-page .vp-error-message {
        margin-top: -2px;
        border: 1px solid var(--vp-danger-border);
        border-radius: 10px;
        background: var(--vp-danger-bg);
        color: var(--vp-danger-text);
        font-size: 14px;
        line-height: 1.5;
        padding: 12px 14px;
    }

    #vispero-login-page .vp-form-footer {
        margin-top: 28px;
        display: flex;
        flex-direction: column;
        gap: 10px;
        align-items: center;
        text-align: center;
    }

        #vispero-login-page .vp-form-footer a {
            font-weight: 500;
            text-decoration: none;
        }

            #vispero-login-page .vp-form-footer a:hover {
                text-decoration: underline;
            }

    #vispero-login-page .vp-footer-meta {
        margin-top: 1.5rem;
        font-size: 12px;
    }

    #vispero-login-page .vp-footer-separator {
        margin: 0 0.5rem;
        color: #e0e0e0;
    }

    #vispero-login-page .vp-sr-only {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        clip-path: inset(50%);
        white-space: nowrap;
        border: 0;
    }

    #vispero-login-page .vp-toggle-pw:focus-visible,
    #vispero-login-page .vp-btn-sign-in:focus-visible,
    #vispero-login-page .vp-btn-sso:focus-visible,
    #vispero-login-page .vp-forgot-link:focus-visible,
    #vispero-login-page .vp-form-footer a:focus-visible {
        outline: 3px solid rgba(46, 127, 194, 0.3);
        outline-offset: 3px;
    }

@supports (container-type: size) and (width: 1cqi) {
    #vispero-login-page .vp-panel-left {
        container-type: size;
        --vp-panel-ring-base: min(100cqi, 100cqb);
    }

    #vispero-login-page .vp-panel-left-accent-large {
        width: clamp(280px, calc(var(--vp-panel-ring-base) * 0.58), 620px);
        height: clamp(280px, calc(var(--vp-panel-ring-base) * 0.58), 620px);
        right: clamp(-210px, calc(var(--vp-panel-ring-base) * -0.2), -90px);
        bottom: clamp(-170px, calc(var(--vp-panel-ring-base) * -0.156), -70px);
    }

    #vispero-login-page .vp-panel-left-accent-medium {
        width: clamp(180px, calc(var(--vp-panel-ring-base) * 0.31), 360px);
        height: clamp(180px, calc(var(--vp-panel-ring-base) * 0.31), 360px);
        right: clamp(-72px, calc(var(--vp-panel-ring-base) * -0.067), -36px);
        bottom: clamp(-72px, calc(var(--vp-panel-ring-base) * -0.067), -36px);
    }

    #vispero-login-page .vp-panel-left-inner-ring {
        width: clamp(108px, calc(var(--vp-panel-ring-base) * 0.178), 220px);
        height: clamp(108px, calc(var(--vp-panel-ring-base) * 0.178), 220px);
        right: clamp(40px, calc(var(--vp-panel-ring-base) * 0.089), 104px);
        bottom: clamp(40px, calc(var(--vp-panel-ring-base) * 0.089), 104px);
    }
}

@media (min-width: 1200px) {
    #vispero-login-page .vp-login-page {
        grid-template-columns: 1.5fr 1fr;
    }
}

@media (max-width: 900px) {
    #vispero-login-page .vp-login-page {
        grid-template-columns: 1fr;
    }

    #vispero-login-page .vp-panel-left {
        display: none;
    }

    #vispero-login-page .vp-panel-right {
        min-height: 100vh;
        min-height: 100dvh;
        padding: 48px 24px;
    }

    #vispero-login-page .vp-form-shell {
        max-width: 420px;
    }
}

@media (max-width: 480px) {
    #vispero-login-page .vp-panel-right {
        padding: 32px 20px;
    }

    #vispero-login-page .vp-form-logo {
        margin-bottom: 24px;
    }

    #vispero-login-page .vp-form-header {
        margin-bottom: 28px;
    }
}
