/* ================================================================

   IJOVIA PAY — AUTH LOGIN

   Production stylesheet

   WHITE PRIMARY / IJOVIA PAY DASHBOARD DESIGN LANGUAGE



   Primary:

   White #ffffff



   Brand:

   Navy #0b1f3a / #15345b / #1e4776

   Gold #d39b19

   Blue #2867d8

   Green #16845b

   ================================================================ */



:root {

    --ij-navy: #0b1f3a;

    --ij-navy-2: #15345b;

    --ij-navy-3: #1e4776;



    --ij-blue: #2867d8;



    --ij-gold: #d39b19;

    --ij-gold-soft: #fff7df;



    --ij-green: #16845b;

    --ij-green-soft: #eaf8f2;



    --ij-red: #c73b45;

    --ij-red-soft: #fff0f2;



    --ij-text: #142238;

    --ij-muted: #66748a;



    --ij-border: #e3e8ef;

    --ij-border-strong: #d5dce6;



    /* WHITE IS THE PRIMARY COLOR */

    --ij-background: #ffffff;

    --ij-surface: #ffffff;

    --ij-surface-soft: #f8fafc;



    --ij-shadow-sm:

        0 8px 24px rgba(18, 42, 72, .055);



    --ij-shadow-md:

        0 18px 48px rgba(18, 42, 72, .10);



    --ij-font:

        Inter,

        ui-sans-serif,

        system-ui,

        -apple-system,

        BlinkMacSystemFont,

        "Segoe UI",

        sans-serif;

}





/* ================================================================

   GLOBAL

   ================================================================ */



*,

*::before,

*::after {

    box-sizing: border-box;

}



html {

    min-height: 100%;

    background: #ffffff;

}



body.ij-login-page {

    min-height: 100vh;

    min-height: 100dvh;



    margin: 0;



    background: #ffffff;

    color: var(--ij-text);



    font-family: var(--ij-font);

    font-size: 14px;

    line-height: 1.5;



    -webkit-font-smoothing: antialiased;

    text-rendering: optimizeLegibility;

}



body.ij-login-page button,

body.ij-login-page input {

    font: inherit;

}



.ij-login-page a {

    color: var(--ij-navy);

    text-decoration: none;

}



.ij-login-page a:hover {

    text-decoration: none;

}





/* ================================================================

   DESKTOP SHELL

   ================================================================ */



.ij-login-shell {

    width: 100%;



    min-height: 100vh;

    min-height: 100dvh;



    display: grid;



    grid-template-columns:

        minmax(0, 1.08fr)

        minmax(420px, .92fr);



    background: #ffffff;

}





/* ================================================================

   CREATIVE DESKTOP PANEL

   ================================================================ */



.ij-login-showcase {

    position: relative;



    min-height: 100vh;



    overflow: hidden;



    color: #ffffff;



    background:

        linear-gradient(

            145deg,

            #07182f 0%,

            #0b1f3a 38%,

            #15345b 72%,

            #1e4776 100%

        );

}



.ij-login-showcase::before {

    content: "";



    position: absolute;



    width: 680px;

    height: 680px;



    top: -330px;

    right: -260px;



    border-radius: 50%;



    background:

        radial-gradient(

            circle,

            rgba(211, 155, 25, .24) 0%,

            rgba(211, 155, 25, .07) 40%,

            transparent 72%

        );



    pointer-events: none;

}



.ij-login-showcase::after {

    content: "";



    position: absolute;



    width: 600px;

    height: 600px;



    bottom: -350px;

    left: -270px;



    border-radius: 50%;



    background:

        radial-gradient(

            circle,

            rgba(40, 103, 216, .25) 0%,

            rgba(40, 103, 216, .06) 42%,

            transparent 72%

        );



    pointer-events: none;

}



.ij-showcase-glow {

    position: absolute;



    border-radius: 50%;



    pointer-events: none;



    filter: blur(2px);

}



.ij-glow-one {

    width: 260px;

    height: 260px;



    right: 12%;

    bottom: 20%;



    background:

        radial-gradient(

            circle,

            rgba(211, 155, 25, .10),

            transparent 70%

        );

}



.ij-glow-two {

    width: 220px;

    height: 220px;



    left: 20%;

    top: 24%;



    background:

        radial-gradient(

            circle,

            rgba(40, 103, 216, .10),

            transparent 70%

        );

}



.ij-showcase-inner {

    position: relative;



    z-index: 2;



    width: 100%;



    min-height: 100vh;



    padding:

        44px

        clamp(38px, 5vw, 82px)

        30px;



    display: flex;



    flex-direction: column;

}



.ij-showcase-brand {

    width: max-content;



    color: #ffffff;



    font-size: 16px;

    font-weight: 800;



    letter-spacing: .045em;

    line-height: 1;

}



.ij-showcase-content {

    width: min(100%, 680px);



    margin: auto 0;



    padding: 42px 0 38px;

}



.ij-showcase-kicker {

    display: inline-flex;



    align-items: center;



    gap: 9px;



    margin-bottom: 17px;



    color: #f1c95c;



    font-size: 10px;

    font-weight: 800;



    letter-spacing: .14em;

}



.ij-showcase-kicker::before {

    content: "";



    width: 24px;

    height: 1px;



    background: var(--ij-gold);

}



.ij-showcase-content h1 {

    max-width: 620px;



    margin: 0;



    color: #ffffff;



    font-size:

        clamp(36px, 4.1vw, 58px);



    font-weight: 750;



    letter-spacing: -.045em;

    line-height: 1.04;

}



.ij-showcase-content p {

    max-width: 550px;



    margin: 22px 0 0;



    color: rgba(255, 255, 255, .72);



    font-size: 14px;



    line-height: 1.75;

}





/* ================================================================

   PAYMENT CARD

   ================================================================ */



.ij-payment-visual {

    position: relative;



    width: 100%;

    max-width: 535px;



    min-height: 250px;



    margin-top: 34px;

}



.ij-payment-card {

    position: relative;



    width: min(100%, 430px);



    min-height: 238px;



    padding: 25px;



    overflow: hidden;



    border:

        1px solid rgba(255, 255, 255, .15);



    border-radius: 20px;



    background:

        linear-gradient(

            140deg,

            rgba(255, 255, 255, .13),

            rgba(255, 255, 255, .035)

        );



    box-shadow:

        0 28px 60px rgba(0, 0, 0, .18);



    backdrop-filter: blur(16px);

    -webkit-backdrop-filter: blur(16px);

}



.ij-payment-card::before {

    content: "";



    position: absolute;



    width: 210px;

    height: 210px;



    right: -90px;

    top: -95px;



    border-radius: 50%;



    background:

        radial-gradient(

            circle,

            rgba(211, 155, 25, .34),

            transparent 68%

        );

}



.ij-card-top,

.ij-card-bottom {

    position: relative;



    z-index: 1;



    display: flex;



    align-items: center;

    justify-content: space-between;

}



.ij-card-brand {

    color: rgba(255, 255, 255, .94);



    font-size: 11px;

    font-weight: 800;



    letter-spacing: .08em;

}



.ij-card-active {

    padding: 5px 9px;



    border:

        1px solid rgba(255, 255, 255, .16);



    border-radius: 999px;



    color: #f1c95c;



    background:

        rgba(211, 155, 25, .08);



    font-size: 8px;

    font-weight: 800;



    letter-spacing: .08em;

}



.ij-card-middle {

    position: relative;



    z-index: 1;



    margin-top: 60px;

}



.ij-card-middle span {

    display: block;



    color: rgba(255, 255, 255, .48);



    font-size: 9px;

    font-weight: 700;



    letter-spacing: .1em;

}



.ij-card-middle strong {

    display: block;



    margin-top: 7px;



    color: #ffffff;



    font-size: 28px;

    font-weight: 750;



    letter-spacing: -.025em;

}



.ij-card-bottom {

    position: absolute;



    left: 25px;

    right: 25px;

    bottom: 21px;



    color: rgba(255, 255, 255, .46);



    font-size: 9px;

    font-weight: 700;



    letter-spacing: .07em;

}





/* ================================================================

   FLOATING TRANSACTION

   ================================================================ */



.ij-floating-transaction {

    position: absolute;



    right: 0;

    bottom: 4px;



    z-index: 3;



    display: flex;



    align-items: center;



    gap: 10px;



    min-width: 210px;



    padding: 12px 14px;



    border:

        1px solid rgba(255, 255, 255, .13);



    border-radius: 13px;



    background:

        rgba(7, 24, 47, .78);



    box-shadow:

        0 18px 35px rgba(0, 0, 0, .18);



    backdrop-filter: blur(13px);

    -webkit-backdrop-filter: blur(13px);

}



.ij-floating-check {

    width: 30px;

    height: 30px;



    flex: 0 0 30px;



    display: grid;

    place-items: center;



    border-radius: 50%;



    color: #ffffff;



    background: var(--ij-green);



    box-shadow:

        0 0 0 5px rgba(22, 132, 91, .12);



    font-size: 14px;

    font-weight: 800;

}



.ij-floating-copy strong,

.ij-floating-copy span {

    display: block;

}



.ij-floating-copy strong {

    color: #ffffff;



    font-size: 11px;

    font-weight: 750;

}



.ij-floating-copy span {

    margin-top: 2px;



    color: rgba(255, 255, 255, .48);



    font-size: 9px;

}





/* ================================================================

   SHOWCASE FEATURES

   ================================================================ */



.ij-showcase-features {

    display: flex;



    flex-wrap: wrap;



    gap: 20px;



    margin-top: 2px;

}



.ij-showcase-features span {

    display: inline-flex;



    align-items: center;



    gap: 7px;



    color: rgba(255, 255, 255, .58);



    font-size: 10px;

    font-weight: 650;

}



.ij-showcase-features i {

    width: 6px;

    height: 6px;



    border-radius: 50%;



    background: var(--ij-gold);



    box-shadow:

        0 0 0 4px rgba(211, 155, 25, .09);

}



.ij-showcase-footer {

    margin-top: auto;



    color: rgba(255, 255, 255, .38);



    font-size: 10px;

    font-weight: 600;

}





/* ================================================================

   LOGIN PANEL

   ================================================================ */



.ij-login-main {

    min-height: 100vh;



    display: flex;



    align-items: center;

    justify-content: center;



    padding: 42px 34px;



    background: #ffffff;

}



.ij-login-inner {

    width: min(100%, 430px);



    margin: 0 auto;

}





/* ================================================================

   LOGIN HEADING

   ================================================================ */



.ij-login-heading {

    margin-bottom: 28px;

}



.ij-mobile-brand {

    display: none;

}



.ij-login-heading h2 {

    margin: 0;



    color: var(--ij-text);



    font-size: 24px;

    font-weight: 750;



    letter-spacing: -.025em;



    line-height: 1.2;

}



.ij-login-heading p {

    margin: 7px 0 0;



    color: var(--ij-muted);



    font-size: 13px;



    line-height: 1.5;

}





/* ================================================================

   ALERT

   ================================================================ */



.ij-alert {

    display: flex;



    align-items: flex-start;



    gap: 10px;



    margin: 0 0 18px;



    padding: 12px 13px;



    border:

        1px solid var(--ij-red-soft);



    border-radius: 11px;



    background: var(--ij-red-soft);



    color: #8d2832;



    font-size: 12px;



    line-height: 1.5;

}



.ij-alert-icon {

    width: 21px;

    height: 21px;



    flex: 0 0 21px;



    display: grid;



    place-items: center;



    border-radius: 50%;



    color: #ffffff;



    background: var(--ij-red);



    font-size: 11px;

    font-weight: 800;

}



.ij-alert-content {

    padding-top: 1px;

}



.ij-alert-success {

    background: #eaf8f2 !important;



    border-color:

        rgba(22, 132, 91, .20) !important;



    color: #126b4b !important;

}



.ij-alert-error {

    background: #fff0f2 !important;



    border-color:

        rgba(199, 59, 69, .18) !important;



    color: #8d2832 !important;

}





/* ================================================================

   FORM

   ================================================================ */



.ij-login-form {

    display: block;



    width: 100%;

}



.ij-field {

    margin-bottom: 18px;

}



.ij-field label {

    display: block;



    margin-bottom: 7px;



    color: var(--ij-text);



    font-size: 12px;

    font-weight: 700;

}



.ij-field-label-row {

    display: flex;



    align-items: center;

    justify-content: space-between;



    gap: 12px;



    margin-bottom: 7px;

}



.ij-field-label-row label {

    margin: 0;

}



.ij-field-label-row a {

    color: var(--ij-blue);



    font-size: 11px;

    font-weight: 700;

}



.ij-field-label-row a:hover {

    color: var(--ij-navy-2);

}





/* ================================================================

   INPUT

   ================================================================ */



.ij-input {

    position: relative;



    display: flex;



    align-items: center;



    width: 100%;

    min-height: 48px;



    border:

        1px solid var(--ij-border);



    border-radius: 10px;



    background: #ffffff;



    transition:

        border-color .18s ease,

        box-shadow .18s ease,

        background .18s ease;

}



.ij-input:focus-within {

    border-color:

        rgba(40, 103, 216, .62);



    box-shadow:

        0 0 0 3px rgba(40, 103, 216, .09);

}



.ij-input-icon {

    width: 18px;

    height: 18px;



    margin-left: 14px;



    flex: 0 0 18px;



    display: grid;



    place-items: center;



    color: #8290a4;

}



.ij-input-icon svg {

    width: 17px;

    height: 17px;



    display: block;

}



.ij-input input {

    width: 100%;

    min-width: 0;



    height: 46px;



    padding: 0 13px;



    border: 0;

    outline: 0;



    color: var(--ij-text);



    background: transparent;



    font-size: 13px;

}



.ij-input input::placeholder {

    color: #9aa5b4;

}



.ij-input input:-webkit-autofill {

    -webkit-text-fill-color: var(--ij-text);



    box-shadow:

        0 0 0 1000px #ffffff inset;

}





/* ================================================================

   PASSWORD TOGGLE

   ================================================================ */



.ij-password-toggle {

    width: 42px;

    height: 44px;



    flex: 0 0 42px;



    margin-right: 2px;



    padding: 0;



    display: grid;



    place-items: center;



    border: 0;



    border-radius: 8px;



    color: #7d899b;



    background: transparent;



    cursor: pointer;

}



.ij-password-toggle:hover {

    color: var(--ij-navy);

}



.ij-password-toggle:focus-visible {

    outline:

        2px solid rgba(40, 103, 216, .35);



    outline-offset: -2px;

}



.ij-password-toggle svg {

    width: 18px;

    height: 18px;

}



.ij-eye-closed {

    display: none;

}



.ij-password-toggle.is-visible .ij-eye-open {

    display: none;

}



.ij-password-toggle.is-visible .ij-eye-closed {

    display: block;

}





/* ================================================================

   LOGIN OPTIONS

   ================================================================ */



.ij-login-options {

    margin: -2px 0 20px;

}



.ij-checkbox {

    display: inline-flex;



    align-items: center;



    gap: 8px;



    color: var(--ij-muted);



    font-size: 11px;

    font-weight: 600;



    cursor: pointer;



    user-select: none;

}



.ij-checkbox input {

    position: absolute;



    width: 1px;

    height: 1px;



    opacity: 0;



    pointer-events: none;

}



.ij-checkbox-box {

    width: 16px;

    height: 16px;



    display: inline-block;



    flex: 0 0 16px;



    border:

        1px solid #cbd3de;



    border-radius: 4px;



    background: #ffffff;



    transition: .15s ease;

}



.ij-checkbox input:checked + .ij-checkbox-box {

    border-color: var(--ij-navy);



    background: var(--ij-navy);



    box-shadow:

        inset 0 0 0 3px #ffffff;

}



.ij-checkbox input:focus-visible + .ij-checkbox-box {

    outline:

        2px solid rgba(40, 103, 216, .25);



    outline-offset: 2px;

}





/* ================================================================

   LOGIN BUTTON

   ================================================================ */



.ij-login-button {

    width: 100%;

    min-height: 48px;



    padding: 0 17px;



    border:

        1px solid var(--ij-navy);



    border-radius: 10px;



    color: #ffffff;



    background:

        linear-gradient(

            135deg,

            #0b1f3a 0%,

            #15345b 62%,

            #1e4776 100%

        );



    box-shadow:

        0 10px 22px rgba(11, 31, 58, .14);



    cursor: pointer;



    transition:

        transform .16s ease,

        box-shadow .16s ease,

        opacity .16s ease;

}



.ij-login-button:hover:not(:disabled) {

    transform: translateY(-1px);



    box-shadow:

        0 13px 27px rgba(11, 31, 58, .18);

}



.ij-login-button:active:not(:disabled) {

    transform: translateY(0);

}



.ij-login-button:focus-visible {

    outline:

        3px solid rgba(40, 103, 216, .20);



    outline-offset: 2px;

}



.ij-login-button:disabled {

    cursor: not-allowed;



    opacity: .72;

}



.ij-button-normal,

.ij-button-loading {

    width: 100%;



    display: flex;



    align-items: center;

    justify-content: center;



    gap: 9px;



    font-size: 13px;

    font-weight: 750;

}



.ij-button-normal svg {

    width: 17px;

    height: 17px;

}



.ij-button-loading {

    display: none;

}



.ij-login-button.is-loading .ij-button-normal {

    display: none;

}



.ij-login-button.is-loading .ij-button-loading {

    display: flex;

}



.ij-spinner {

    width: 15px;

    height: 15px;



    border:

        2px solid rgba(255, 255, 255, .32);



    border-top-color: #ffffff;



    border-radius: 50%;



    animation:

        ij-spin .7s linear infinite;

}



@keyframes ij-spin {

    to {

        transform: rotate(360deg);

    }

}





/* ================================================================

   REGISTER

   ================================================================ */



.ij-login-register {

    margin-top: 21px;



    text-align: center;



    color: var(--ij-muted);



    font-size: 11px;

}



.ij-login-register a {

    margin-left: 4px;



    color: var(--ij-blue);



    font-weight: 750;

}



.ij-login-register a:hover {

    color: var(--ij-navy);

}





/* ================================================================

   SECURITY NOTE

   ================================================================ */



.ij-security-note {

    display: flex;



    align-items: center;

    justify-content: center;



    gap: 7px;



    margin-top: 24px;



    color: #8290a1;



    font-size: 10px;

    font-weight: 600;

}



.ij-security-note svg {

    width: 15px;

    height: 15px;



    color: var(--ij-green);

}





/* ================================================================

   MOBILE FOOTER

   ================================================================ */



.ij-login-footer {

    display: none;



    margin-top: 26px;



    color: #a0a9b7;



    text-align: center;



    font-size: 9px;

    font-weight: 800;



    letter-spacing: .08em;

}





/* ================================================================

   TABLET

   ================================================================ */



@media (max-width: 980px) {



    .ij-login-shell {

        grid-template-columns: 1fr;



        min-height: 100vh;

        min-height: 100dvh;



        background: #ffffff;

    }



    /*

     * Desktop creative section is completely removed.

     */

    .ij-login-showcase {

        display: none;

    }



    .ij-login-main {

        min-height: 100vh;

        min-height: 100dvh;



        display: flex;



        align-items: center;

        justify-content: center;



        padding: 40px 24px;



        background: #ffffff;

    }



    .ij-login-inner {

        width: min(100%, 430px);



        margin: 0 auto;

    }



    .ij-login-footer {

        display: block;

    }

}





/* ================================================================

   MOBILE — FULLY CENTERED

   ================================================================ */



@media (max-width: 600px) {



    body.ij-login-page {

        min-height: 100vh;

        min-height: 100dvh;



        background: #ffffff;

    }



    /*

     * This centers the entire login block vertically and

     * horizontally inside the mobile viewport.

     */

    .ij-login-main {

        width: 100%;



        min-height: 100vh;

        min-height: 100dvh;



        display: flex;



        align-items: center;

        justify-content: center;



        padding:

            32px

            20px;



        background: #ffffff;

    }



    /*

     * Prevent the login content from sticking to either side.

     */

    .ij-login-inner {

        width: 100%;

        max-width: 430px;



        margin-left: auto;

        margin-right: auto;

    }





    /* ============================================================

       CENTER IJOVIA PAY

       ============================================================ */



    .ij-mobile-brand {

        display: block;



        width: 100%;



        margin:

            0

            auto

            16px;



        padding: 0;



        color: var(--ij-navy);



        font-size:

            clamp(19px, 5.2vw, 22px);



        font-weight: 800;



        letter-spacing: .055em;



        line-height: 1.1;



        text-align: center;



        white-space: nowrap;

    }





    /* ============================================================

       CENTER WELCOME MESSAGE

       ============================================================ */



    .ij-login-heading {

        width: 100%;



        margin-bottom: 26px;



        text-align: center;

    }



    .ij-login-heading h2 {

        margin: 0;



        color: var(--ij-text);



        font-size: 22px;



        letter-spacing: -.022em;



        line-height: 1.2;

    }



    .ij-login-heading p {

        margin-top: 7px;



        color: var(--ij-muted);



        font-size: 12px;



        line-height: 1.5;

    }





    /* ============================================================

       FORM

       ============================================================ */



    .ij-login-form {

        width: 100%;



        text-align: left;

    }



    .ij-field {

        width: 100%;



        margin-bottom: 17px;

    }



    .ij-input {

        width: 100%;



        min-height: 48px;



        background: #ffffff;

    }



    .ij-login-button {

        width: 100%;



        min-height: 49px;

    }





    /* ============================================================

       ALERTS

       ============================================================ */



    .ij-alert {

        width: 100%;



        text-align: left;

    }





    /* ============================================================

       REGISTER

       ============================================================ */



    .ij-login-register {

        margin-top: 20px;



        text-align: center;

    }





    /* ============================================================

       SECURITY

       ============================================================ */



    .ij-security-note {

        margin-top: 22px;



        text-align: center;

    }





    /* ============================================================

       FOOTER

       ============================================================ */



    .ij-login-footer {

        margin-top: 26px;



        text-align: center;

    }

}





/* ================================================================

   SMALL PHONES

   ================================================================ */



@media (max-width: 380px) {



    .ij-login-main {

        padding:

            28px

            16px;

    }



    .ij-login-heading h2 {

        font-size: 21px;

    }



    .ij-field-label-row a {

        font-size: 10px;

    }



    .ij-mobile-brand {

        font-size: 19px;

    }

}





/* ================================================================

   VERY SHORT MOBILE SCREENS

   Prevent excessive vertical centering from cutting content.

   ================================================================ */



@media (max-width: 600px) and (max-height: 700px) {



    .ij-login-main {

        align-items: flex-start;



        padding-top: 32px;

        padding-bottom: 32px;

    }

}





/* ================================================================

   ACCESSIBILITY

   ================================================================ */



@media (prefers-reduced-motion: reduce) {



    *,

    *::before,

    *::after {

        scroll-behavior: auto !important;



        transition: none !important;



        animation: none !important;

    }

}



/* ================================================================

   IJOVIA PAY — FINAL LOGIN ALIGNMENT OVERRIDES

   Desktop: welcome copy and form share the same top baseline.

   Mobile: only the logo is centered; welcome copy stays left aligned.

   ================================================================ */



.ij-login-main {

    align-items: flex-start;

}



@media (min-width: 981px) {

    .ij-login-main {

        justify-content: center;

        padding: clamp(48px, 8vh, 88px) clamp(28px, 3vw, 56px);

    }



    .ij-login-main .ij-login-inner {

        width: min(100%, 900px);

        margin: 0 auto;

        display: grid;

        grid-template-columns: minmax(175px, 0.68fr) minmax(300px, 1fr);

        column-gap: clamp(28px, 3.2vw, 56px);

        align-items: start;

    }



    .ij-login-main .ij-login-heading {

        grid-column: 1;

        grid-row: 1;

        margin: 0;

        padding: 0;

        align-self: start;

        text-align: left;

    }



    .ij-login-main .ij-login-heading h2 {

        margin: 0;

    }



    .ij-login-main .ij-login-heading p {

        margin-top: 7px;

        max-width: 190px;

    }



    .ij-login-main .ij-mobile-brand {

        display: none !important;

    }



    .ij-login-main .ij-login-form {

        grid-column: 2;

        grid-row: 1;

        width: 100%;

        min-width: 0;

        margin: 0;

    }



    .ij-login-main .ij-alert {

        grid-column: 1 / -1;

    }



    .ij-login-main .ij-login-register,

    .ij-login-main .ij-security-note {

        grid-column: 2;

    }

}



@media (max-width: 980px) {

    .ij-login-main {

        align-items: flex-start;

        justify-content: center;

        padding: 30px 22px 36px;

    }



    .ij-login-main .ij-login-inner {

        width: min(100%, 430px);

        margin: 0 auto;

        display: block;

    }



    .ij-login-main .ij-mobile-brand {

        display: flex !important;

        width: 100%;

        align-items: center;

        justify-content: center;

        margin: 0 auto 28px;

        text-align: center;

    }



    .ij-login-main .ij-login-mobile-logo {

        display: block;

        width: min(190px, 72vw);

        height: auto;

        max-height: 54px;

        margin-inline: auto;

        object-fit: contain;

        object-position: center;

    }



    .ij-login-main .ij-login-heading {

        width: 100%;

        margin: 0 0 24px;

        text-align: left !important;

    }



    .ij-login-main .ij-login-heading h2,

    .ij-login-main .ij-login-heading p {

        text-align: left !important;

    }

}



@media (max-width: 380px) {

    .ij-login-main {

        padding-inline: 16px;

    }



    .ij-login-main .ij-login-mobile-logo {

        width: min(172px, 70vw);

    }

}


/* ==========================================================
   IJOVIA PAY — FINAL RESPONSIVE LOGIN POLISH
   Standard typography, aligned desktop layout, centered mobile
   ========================================================== */
body.ij-login-page,
body.ij-login-page input,
body.ij-login-page button {
    font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI",
                 Roboto, Helvetica, Arial, sans-serif;
    font-kerning: normal;
    -webkit-font-smoothing: antialiased;
}
body.ij-login-page { color: #142238; }
.ij-login-shell { min-height: 100vh; min-height: 100dvh; }
.ij-login-main {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    padding: clamp(28px, 4vh, 52px) clamp(24px, 3vw, 48px);
    background: #fff;
}
.ij-login-inner { width: min(100%, 760px); margin-inline: auto; }

/* More refined inputs, while retaining the IJOVIA navy/blue palette. */
.ij-field { margin-bottom: 18px; }
.ij-field label,
.ij-field-label-row label {
    color: #24344b;
    font-size: 12px;
    font-weight: 650;
    letter-spacing: .005em;
}
.ij-input {
    min-height: 52px;
    border: 1px solid #dce3ed;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(11,31,58,.025);
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.ij-input:hover { border-color: #c5d0df; }
.ij-input:focus-within {
    border-color: #2867d8;
    box-shadow: 0 0 0 4px rgba(40,103,216,.10);
    background: #fff;
}
.ij-input input {
    height: 50px;
    font-size: 14px;
    font-weight: 400;
    color: #142238;
}
.ij-input input::placeholder { color: #94a1b4; opacity: 1; }
.ij-input-icon { color: #7788a0; }
.ij-password-toggle { min-height: 48px; }
.ij-login-button {
    min-height: 51px;
    border-radius: 11px;
    font-size: 14px;
    font-weight: 650;
    letter-spacing: .005em;
    box-shadow: 0 8px 18px rgba(11,31,58,.13);
}
.ij-field-label-row a,
.ij-login-register a { font-weight: 650; }

/* Desktop: greeting and email field share the exact same top baseline. */
@media (min-width: 981px) {
    .ij-login-shell {
        display: grid;
        grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
    }
    .ij-login-main {
        align-items: center;
        justify-content: center;
        padding: 40px clamp(28px, 3vw, 48px);
    }
    .ij-login-main .ij-login-inner {
        display: grid;
        grid-template-columns: minmax(155px, .72fr) minmax(285px, 1.28fr);
        column-gap: clamp(24px, 2.6vw, 38px);
        align-items: start;
        align-content: center;
        width: min(100%, 690px);
        margin-inline: auto;
    }
    .ij-login-main .ij-login-heading {
        grid-column: 1;
        grid-row: 1;
        align-self: start;
        margin: 0 !important;
        padding: 0 !important;
        text-align: left !important;
    }
    .ij-login-main .ij-login-heading h2 {
        margin: 0 !important;
        font-size: clamp(22px, 1.65vw, 26px);
        line-height: 1.25;
        letter-spacing: -.035em;
        font-weight: 700;
    }
    .ij-login-main .ij-login-heading p {
        margin-top: 8px;
        max-width: 185px;
        font-size: 13px;
        line-height: 1.55;
        text-align: left !important;
    }
    .ij-login-main .ij-mobile-brand { display: none !important; }
    .ij-login-main .ij-login-form {
        grid-column: 2;
        grid-row: 1;
        width: 100%;
        min-width: 0;
        margin: 0 !important;
    }
    .ij-login-main .ij-alert { grid-column: 1 / -1; }
    .ij-login-main .ij-login-register,
    .ij-login-main .ij-security-note { grid-column: 2; }
}

/* Mobile: center the whole login block; center only the logo.
   Welcome text stays left aligned with the form fields. */
@media (max-width: 980px) {
    .ij-login-shell {
        display: block;
        min-height: 100vh;
        min-height: 100dvh;
    }
    .ij-login-showcase { display: none !important; }
    .ij-login-main {
        display: flex;
        align-items: center !important;
        justify-content: center;
        width: 100%;
        min-height: 100vh;
        min-height: 100dvh;
        padding: 28px 22px;
    }
    .ij-login-main .ij-login-inner {
        display: block;
        width: min(100%, 430px);
        margin: auto;
    }
    .ij-login-main .ij-mobile-brand {
        display: flex !important;
        width: 100%;
        align-items: center;
        justify-content: center !important;
        margin: 0 auto 34px !important;
        text-align: center !important;
    }
    .ij-login-main .ij-login-mobile-logo {
        display: block;
        width: min(190px, 72vw);
        height: auto;
        max-height: 56px;
        margin-inline: auto !important;
        object-fit: contain;
        object-position: center;
    }
    .ij-login-main .ij-login-heading {
        width: 100%;
        margin: 0 0 24px !important;
        padding: 0;
        text-align: left !important;
    }
    .ij-login-main .ij-login-heading h2,
    .ij-login-main .ij-login-heading p { text-align: left !important; }
    .ij-login-main .ij-login-heading h2 {
        font-size: 24px;
        line-height: 1.25;
        letter-spacing: -.03em;
        font-weight: 700;
    }
    .ij-login-main .ij-login-heading p {
        margin-top: 7px;
        font-size: 13px;
        line-height: 1.5;
    }
    .ij-login-main .ij-login-form { width: 100%; }
    .ij-login-main .ij-login-register,
    .ij-login-main .ij-security-note { text-align: center; }
}
@media (max-width: 380px) {
    .ij-login-main { padding: 24px 17px; }
    .ij-login-main .ij-login-mobile-logo { width: min(174px, 70vw); }
}
/* On short phones, keep content reachable without clipping. */
@media (max-width: 600px) and (max-height: 700px) {
    .ij-login-main { align-items: center !important; padding-block: 22px; }
}
@media (prefers-reduced-motion: reduce) {
    .ij-login-page *, .ij-login-page *::before, .ij-login-page *::after {
        transition: none !important;
        animation: none !important;
    }
}

/* ================================================================
   DESKTOP FINAL POLISH — stable top alignment for greeting + form
   Mobile layout is intentionally left unchanged.
   ================================================================ */
@media (min-width: 981px) {
    .ij-login-main {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        min-width: 0;
        padding: 40px clamp(24px, 3vw, 48px) !important;
    }

    .ij-login-main > .ij-login-inner {
        display: grid !important;
        grid-template-columns: minmax(155px, 0.72fr) minmax(285px, 1.28fr) !important;
        column-gap: clamp(24px, 2.5vw, 38px) !important;
        align-items: start !important;
        align-content: center !important;
        width: min(100%, 650px) !important;
        margin: 0 auto !important;
    }

    .ij-login-main .ij-login-heading {
        grid-column: 1 !important;
        grid-row: 1 !important;
        align-self: start !important;
        margin: 0 !important;
        padding: 0 !important;
        text-align: left !important;
    }

    .ij-login-main .ij-login-heading h2 {
        margin: 0 !important;
        font-size: clamp(22px, 1.65vw, 26px) !important;
        line-height: 1.22 !important;
        letter-spacing: -0.035em !important;
        font-weight: 700 !important;
    }

    .ij-login-main .ij-login-heading p {
        max-width: 180px !important;
        margin: 8px 0 0 !important;
        font-size: 13px !important;
        line-height: 1.55 !important;
        text-align: left !important;
    }

    .ij-login-main .ij-mobile-brand { display: none !important; }

    .ij-login-main .ij-login-form {
        grid-column: 2 !important;
        grid-row: 1 !important;
        align-self: start !important;
        width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
    }

    .ij-login-main .ij-login-form > .ij-field:first-of-type {
        margin-top: 0 !important;
    }

    .ij-login-main .ij-login-register,
    .ij-login-main .ij-security-note {
        grid-column: 2 !important;
        width: 100%;
    }

    .ij-login-main .ij-login-register {
        margin-top: 19px !important;
        text-align: center !important;
    }

    .ij-login-main .ij-security-note {
        margin-top: 16px !important;
        justify-content: center !important;
    }

    .ij-login-main .ij-alert {
        grid-column: 1 / -1 !important;
        margin-bottom: 18px !important;
    }
}



/* DESKTOP CORRECTION: place the welcome heading ABOVE the login fields.
   Mobile rules above remain unchanged. */
@media (min-width: 981px) {
    .ij-login-main > .ij-login-inner {
        display: block !important;
        width: min(100%, 430px) !important;
        max-width: 430px !important;
        margin: 0 auto !important;
    }

    .ij-login-main .ij-login-heading {
        display: block !important;
        width: 100% !important;
        margin: 0 0 24px !important;
        padding: 0 !important;
        text-align: left !important;
    }

    .ij-login-main .ij-login-heading h2 {
        margin: 0 !important;
        font-size: 25px !important;
        line-height: 1.25 !important;
        font-weight: 700 !important;
        letter-spacing: -0.03em !important;
    }

    .ij-login-main .ij-login-heading p {
        max-width: none !important;
        margin: 7px 0 0 !important;
        font-size: 13px !important;
        line-height: 1.5 !important;
        text-align: left !important;
    }

    .ij-login-main .ij-mobile-brand { display: none !important; }

    .ij-login-main .ij-login-form {
        display: block !important;
        width: 100% !important;
        margin: 0 !important;
    }

    .ij-login-main .ij-login-register,
    .ij-login-main .ij-security-note {
        width: 100% !important;
        text-align: center !important;
    }
}



/* Mobile login card: logo remains outside; card starts at Welcome back. */
.ij-login-card { display: contents; }
@media (max-width: 980px) {
 body.ij-login-page { background:#f5f7fb !important; }
 .ij-login-main { align-items:center !important; justify-content:center !important; padding:30px 20px !important; background:#f5f7fb !important; }
 .ij-login-main > .ij-login-inner { width:min(100%,440px) !important; max-width:440px !important; margin:auto !important; }
 .ij-login-main .ij-mobile-brand { display:flex !important; width:100%; justify-content:center !important; align-items:center; margin:0 auto 25px !important; padding:0; text-align:center !important; }
 .ij-login-main .ij-login-mobile-logo { display:block !important; width:min(184px,70vw) !important; max-height:54px !important; margin:0 auto !important; object-fit:contain; object-position:center; }
 .ij-login-main .ij-login-card { display:block !important; width:100%; padding:clamp(22px,6vw,30px); border:1px solid #e5eaf2; border-radius:18px; background:#fff; box-shadow:0 16px 42px rgba(11,31,58,.075),0 2px 8px rgba(11,31,58,.025); }
 .ij-login-main .ij-login-heading { margin:0 0 23px !important; padding:0 !important; text-align:left !important; }
 .ij-login-main .ij-login-heading h2 { margin:0 !important; color:#142238; font-size:clamp(23px,5.8vw,26px) !important; line-height:1.25 !important; font-weight:700 !important; letter-spacing:-.035em !important; }
 .ij-login-main .ij-login-heading p { margin:7px 0 0 !important; color:#66748a; font-size:13px !important; line-height:1.55 !important; text-align:left !important; }
 .ij-login-main .ij-field { margin-bottom:17px; }
 .ij-login-main .ij-input { min-height:50px; border-color:#dce4ef; border-radius:11px; background:#fff; }
 .ij-login-main .ij-input:focus-within { border-color:rgba(40,103,216,.72); box-shadow:0 0 0 4px rgba(40,103,216,.09); }
 .ij-login-main .ij-input input { height:48px; font-size:14px; }
 .ij-login-main .ij-login-button { min-height:50px; border-radius:11px; }
 .ij-login-main .ij-login-register { margin-top:20px !important; }
 .ij-login-main .ij-security-note { margin-top:18px !important; }
}
@media (min-width:981px) { .ij-login-main .ij-login-card { display:contents; } }
@media (max-width:380px) { .ij-login-main { padding-inline:15px !important; } .ij-login-main .ij-login-card { padding:21px 18px; } .ij-login-main .ij-login-mobile-logo { width:min(170px,68vw) !important; } }
