/* ===== Login v2 (all rules scoped to .login-v2) ===== */
.login-v2 {
    --lv-ink: #0c1633;
    --lv-ink2: #14224d;
    --lv-mint: #2dd4a7;
    --lv-gold: #f5b83d;
    --lv-brand: var(--primary, #3b5bdb);
    --lv-brand-d: var(--primary-hover, #2f49b4);
    position: relative;
    min-height: 100vh;
    overflow-x: hidden;
    background: var(--lv-ink);
}

.login-v2 .lv-bg {
    position: fixed;
    inset: 0;
    z-index: 0;
    background:
        radial-gradient(900px 600px at 78% 40%, rgba(2, 90, 12, .45), transparent 70%),
        radial-gradient(700px 500px at 10% 90%, rgba(45, 212, 167, .18), transparent 70%),
        linear-gradient(160deg, var(--lv-ink) 0%, var(--lv-ink2) 100%);
}

.login-v2 .lv-bg-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.login-v2 .lv-bg.has-custom-bg {
    background: #0c1633;
}

.login-v2 .lv-bg.has-custom-bg .lv-bg-img {
    opacity: 1;
    mix-blend-mode: normal;
    filter: brightness(0.68) saturate(1.12);
}

.login-v2 .lv-bg.has-custom-bg .lv-bg-overlay {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 60% 40%, rgba(12, 22, 51, 0.4) 0%, rgba(12, 22, 51, 0.72) 65%, rgba(8, 14, 34, 0.9) 100%);
    pointer-events: none;
}

.login-v2 .lv-bg svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.login-v2 .lv-stage {
    position: relative;
    z-index: 1;
    min-height: 100vh;
    max-width: 1280px;
    margin: 0 auto;
    padding: 32px 40px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 48px;
}

.login-v2 .lv-pitch {
    flex: 1;
    max-width: 520px;
    color: #fff;
}

.login-v2 .lv-pitch .lv-name {
    font: 800 20px/1.2 'Plus Jakarta Sans', 'Inter', sans-serif;
    margin-bottom: 56px;
}

.login-v2 .lv-pitch h1 {
    color: #fff;
    font: 800 clamp(32px, 4.2vw, 52px)/1.08 'Plus Jakarta Sans', 'Inter', sans-serif;
    letter-spacing: -.02em;
    margin: 0 0 18px;
}

.login-v2 .lv-pitch p {
    color: #b8c3e6;
    font-size: 17px;
    line-height: 1.6;
    max-width: 44ch;
    margin: 0 0 32px;
}

.login-v2 .lv-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 28px;
}

.login-v2 .lv-stats div {
    border-left: 3px solid var(--lv-mint);
    padding-left: 12px;
}

.login-v2 .lv-stats div:nth-child(2) {
    border-color: var(--lv-gold);
}

.login-v2 .lv-stats div:nth-child(3) {
    border-color: #7c93ff;
}

.login-v2 .lv-stats b {
    display: block;
    color: #fff;
    font-size: 15px;
}

.login-v2 .lv-stats span {
    font-size: 13px;
    color: #9aa8d4;
}

.login-v2 .lv-card {
    width: 100%;
    max-width: 440px;
    background: #fff;
    border-radius: 20px;
    padding: 36px 36px 30px;
    box-shadow: 0 30px 80px rgba(2, 8, 30, .55), 0 0 0 1px rgba(255, 255, 255, .06);
}

.login-v2 .lv-logo {
    display: flex;
    justify-content: center;
    margin-bottom: 40px;
}

.login-v2 .lv-logo img {
    max-height: 130px;
    max-width: 130px;
    width: auto;
}

.login-v2 .lv-card h4 {
    font: 800 24px/1.25 'Plus Jakarta Sans', 'Inter', sans-serif;
    color: #14224d;
    margin-bottom: 6px;
}

.login-v2 .lv-card .lv-sub {
    color: #64708f;
    font-size: 14.5px;
    margin-bottom: 26px;
}

.login-v2 .lv-card .form-control {
    height: 52px;
    border-radius: 12px;
    font-weight: 500;
}

.login-v2 .lv-card .form-control:focus {
    border-color: var(--lv-brand);
}

.login-v2 .lv-card .form-floating-outline:focus-within>label {
    color: var(--lv-brand);
}

.login-v2 .lv-card .input-group-text {
    border-radius: 0 12px 12px 0;
}

.login-v2 .lv-card .btn-primary {
    height: 50px;
    border-radius: 12px;
    font-weight: 700;
    font-size: 15.5px;
    border: 0;
    background: linear-gradient(135deg, var(--lv-brand), var(--lv-brand-d));
    box-shadow: 0 10px 24px rgba(2, 90, 12, .35);
    transition: transform .12s, box-shadow .12s;
}

.login-v2 .lv-card .btn-primary:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 28px rgba(2, 90, 12, .45);
}

.login-v2 .lv-card .btn-primary:active {
    transform: none;
}

.login-v2 .lv-card .btn-primary:focus-visible,
.login-v2 .lv-card a:focus-visible {
    outline: 3px solid var(--lv-gold);
    outline-offset: 2px;
}

.login-v2 .lv-card .divider {
    margin: 22px 0 18px;
}

@media (max-width: 900px) {
    .login-v2 .lv-stage {
        justify-content: center;
        padding: 24px 16px;
    }

    .login-v2 .lv-pitch {
        display: none;
    }

    .login-v2 .lv-card {
        padding: 30px 22px 24px;
    }
}

@media (prefers-reduced-motion: no-preference) {
    .login-v2 .lv-pulse {
        animation: lv-pulse 3.2s ease-in-out infinite;
    }

    @keyframes lv-pulse {
        50% {
            opacity: .35;
        }
    }
}

/* ===== Register-only overrides on top of auth.css ===== */
.login-v2.lv-register .lv-stage {
    max-width: 1320px;
}

.login-v2.lv-register .lv-pitch {
    max-width: 400px;
}

.login-v2.lv-register .lv-pitch .lv-name {
    margin-bottom: 48px;
}

.login-v2.lv-register .lv-pitch h1 {
    font-size: clamp(30px, 3.6vw, 44px);
    line-height: 1.1;
    margin-bottom: 16px;
}

.login-v2.lv-register .lv-pitch p {
    font-size: 16px;
    max-width: 40ch;
    margin-bottom: 28px;
}

.login-v2.lv-register .lv-stats {
    display: grid;
    gap: 14px;
}

.login-v2.lv-register .lv-card {
    max-width: 720px;
    padding: 32px 36px 28px;
}

.login-v2.lv-register .lv-logo {
    margin-bottom: 18px;
}

.login-v2.lv-register .lv-logo img {
    max-height: 100px;
}

.login-v2.lv-register .lv-card h4 {
    margin-bottom: 4px;
    text-align: center;
}

.login-v2.lv-register .lv-card .lv-sub {
    margin-bottom: 20px;
    text-align: center;
}

.login-v2.lv-register .lv-card .divider {
    margin: 18px 0 14px;
}

/* auth.css fixes .form-control height at 52px; textarea must stay auto, selects need the same look */
.login-v2.lv-register .lv-card textarea.form-control {
    height: auto;
    min-height: 100px;
}

.login-v2.lv-register .lv-card .form-select {
    min-height: 52px;
    border-radius: 12px;
    font-weight: 500;
}

.login-v2.lv-register .lv-card .form-control:focus,
.login-v2.lv-register .lv-card .form-select:focus {
    /* box-shadow: 0 0 0 4px rgba(2,90,12, .16); */
}

/* Left / Right placement as two choice tiles */
.login-v2.lv-register .lv-side {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}

.login-v2.lv-register .lv-side .form-check-inline {
    margin: 0;
    padding: 0;
}

.login-v2.lv-register .lv-side .form-check-input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.login-v2.lv-register .lv-side .form-check-label {
    display: block;
    min-width: 130px;
    text-align: center;
    padding: 10px 22px;
    border: 1.5px solid #d9deec;
    border-radius: 12px;
    font-weight: 600;
    color: #64708f;
    cursor: pointer;
    transition: border-color .15s, background .15s, color .15s;
}

.login-v2.lv-register .lv-side .form-check-input:checked+.form-check-label {
    border-color: var(--lv-brand);
    background: rgba(2, 90, 12, .08);
    color: var(--lv-brand);
}

.login-v2.lv-register .lv-side .form-check-input:disabled+.form-check-label {
    cursor: not-allowed;
    opacity: .75;
}

.login-v2.lv-register .lv-side .form-check-input:focus-visible+.form-check-label {
    outline: 3px solid var(--lv-gold);
    outline-offset: 2px;
}

/* Wide card needs the pitch hidden earlier than auth.css (900px) does */
@media (max-width: 1100px) {
    .login-v2.lv-register .lv-stage {
        justify-content: center;
        padding: 24px 16px;
    }

    .login-v2.lv-register .lv-pitch {
        display: none;
    }
}

@media (max-width: 575px) {
    .login-v2.lv-register .lv-card {
        padding: 26px 18px 22px;
    }
}

/* 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;
}