
/* =========================================================
   ENGAGE — FINAL LOGIN
   Native Frappe authentication, ENGAGE presentation.
   ========================================================= */

body[data-path="login"] {
    --engage-bg: #061820;
    --engage-panel: #0b2731;
    --engage-panel-2: #09222b;
    --engage-line: #234852;
    --engage-text: #edf3f5;
    --engage-muted: #8198a1;
    --engage-muted-2: #5f7882;
    --engage-gold: #eab849;
    --engage-gold-2: #f0c65e;
    --engage-green: #32d18c;

    margin: 0 !important;

    min-height: 100vh;

    background:
        radial-gradient(
            circle at 50% 15%,
            rgba(25,117,91,.15),
            transparent 36%
        ),
        linear-gradient(
            145deg,
            #071c25,
            #05151c
        ) !important;

    color:
        var(--engage-text) !important;

    font-family:
        Inter,
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;
}


body[data-path="login"] *,
body[data-path="login"] *::before,
body[data-path="login"] *::after {
    box-sizing: border-box;
}


/* Remove legacy website chrome */

body[data-path="login"]
:is(
    .navbar,
    .web-footer,
    .page-card-head .app-logo,
    .cc-login-brand-panel
) {
    display: none !important;
}


body[data-path="login"]
.main-section,
body[data-path="login"]
.page-content-wrapper,
body[data-path="login"]
.page_content,
body[data-path="login"]
.container {
    width: 100% !important;
    max-width: none !important;

    margin: 0 !important;
    padding: 0 !important;

    background:
        transparent !important;
}


/* =========================================================
   LOGIN STAGE
   ========================================================= */

body[data-path="login"]
#page-login {
    width: 100% !important;

    min-height: 100vh !important;

    margin: 0 !important;

    padding:
        36px 20px !important;

    display: grid !important;

    place-items: center !important;
}


body[data-path="login"]
:is(
    .for-login,
    .for-email-login,
    .for-forgot
) {
    width: 100% !important;

    max-width: 430px !important;

    margin: 0 auto !important;
}


/* =========================================================
   BRAND
   ========================================================= */

.engage-login-brand {
    display: grid;

    justify-items: center;

    margin-bottom: 22px;

    text-align: center;
}


.engage-login-mark {
    width: 52px;
    height: 52px;

    display: grid;

    place-items: center;

    border:
        1px solid #d3a532;

    border-radius: 10px;

    background:
        rgba(12,41,50,.72);

    color:
        var(--engage-gold);

    font-size: 24px;
    font-weight: 800;

    box-shadow:
        0 0 28px
        rgba(234,184,73,.06);
}


.engage-login-brand strong {
    margin-top: 13px;

    color:
        var(--engage-text);

    font-size: 28px;
    line-height: 1;

    font-weight: 650;

    letter-spacing: .13em;
}


.engage-login-brand > span {
    margin-top: 7px;

    color:
        var(--engage-muted);

    font-size: 11px;
}


.engage-login-brand small {
    margin-top: 5px;

    color:
        #4f6a73;

    font-size: 8px;

    letter-spacing: .05em;
}


/* =========================================================
   CARD
   ========================================================= */

body[data-path="login"]
.page-card {
    width: 100% !important;

    max-width: none !important;

    margin: 0 !important;

    padding:
        27px 27px 25px !important;

    border:
        1px solid
        var(--engage-line) !important;

    border-radius:
        14px !important;

    background:
        linear-gradient(
            145deg,
            var(--engage-panel),
            var(--engage-panel-2)
        ) !important;

    box-shadow:
        0 24px 70px
        rgba(0,0,0,.24) !important;
}


body[data-path="login"]
.page-card-head {
    padding:
        0 0 22px !important;

    text-align: left !important;
}


body[data-path="login"]
.page-card-head h4 {
    margin:
        0 0 6px !important;

    color:
        var(--engage-text) !important;

    font-size: 23px !important;
    line-height: 1.15 !important;

    font-weight: 650 !important;
}


body[data-path="login"]
.page-card-head p {
    margin: 0 !important;

    color:
        var(--engage-muted) !important;

    font-size:
        11px !important;
}


/* =========================================================
   FORM
   ========================================================= */

body[data-path="login"]
.form-group {
    margin-bottom:
        15px !important;
}


body[data-path="login"]
label {
    display: block !important;

    margin-bottom:
        6px !important;

    color:
        #9aadb3 !important;

    font-size:
        10px !important;

    font-weight:
        500 !important;
}


body[data-path="login"]
input:not([type="checkbox"]) {
    width: 100% !important;

    min-height:
        48px !important;

    padding:
        0 13px !important;

    border:
        1px solid
        #31545e !important;

    border-radius:
        8px !important;

    outline: 0 !important;

    background:
        #08222b !important;

    color:
        var(--engage-text) !important;

    box-shadow:
        none !important;

    font-size:
        14px !important;
}


body[data-path="login"]
input:not([type="checkbox"])::placeholder {
    color:
        #55727b !important;
}


body[data-path="login"]
input:not([type="checkbox"]):focus {
    border-color:
        #cfa740 !important;

    box-shadow:
        0 0 0 3px
        rgba(234,184,73,.07)
        !important;
}


/* Existing Frappe input icons */

body[data-path="login"]
.input-group-text,
body[data-path="login"]
.field-icon {
    background:
        transparent !important;

    border:
        0 !important;

    color:
        #66818a !important;
}


/* Password eye */

body[data-path="login"]
.toggle-password {
    color:
        #718991 !important;
}


/* =========================================================
   PRIMARY ACTION
   ========================================================= */

body[data-path="login"]
.btn-login,
body[data-path="login"]
.btn-primary {
    width: 100% !important;

    min-height:
        48px !important;

    margin-top:
        8px !important;

    border:
        1px solid
        #1d8a57 !important;

    border-radius:
        8px !important;

    background:
        linear-gradient(
            180deg,
            #18b96a,
            #0e9955
        ) !important;

    color:
        white !important;

    box-shadow:
        none !important;

    font-size:
        13px !important;

    font-weight:
        750 !important;
}


body[data-path="login"]
.btn-login:hover,
body[data-path="login"]
.btn-primary:hover {
    filter:
        brightness(1.06);
}


/* =========================================================
   CLEANUP
   ========================================================= */

/* Final product decision:
   password recovery is not exposed in ENGAGE login. */

body[data-path="login"]
:is(
    .forgot-password-message,
    a[href*="forgot"],
    .signup-message,
    .login-divider,
    .social-logins,
    .btn-login-with-email-link
) {
    display: none !important;
}


body[data-path="login"]
a {
    color:
        var(--engage-gold-2);
}


/* =========================================================
   CREDITS
   ========================================================= */

.engage-login-credits {
    margin-top:
        17px;

    display: flex;

    flex-wrap: wrap;

    align-items: center;
    justify-content: center;

    gap:
        4px 7px;

    color:
        #4e6972;

    font-size:
        8px;

    text-align: center;
}


.engage-login-credits a {
    color:
        #5e7a83 !important;

    text-decoration:
        none;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 600px) {

    body[data-path="login"]
    #page-login {
        min-height:
            100svh !important;

        padding:
            max(
                22px,
                env(safe-area-inset-top)
            )
            16px
            max(
                22px,
                env(safe-area-inset-bottom)
            ) !important;
    }


    body[data-path="login"]
    :is(
        .for-login,
        .for-email-login,
        .for-forgot
    ) {
        max-width:
            100% !important;
    }


    .engage-login-brand {
        margin-bottom:
            18px;
    }


    .engage-login-mark {
        width:
            48px;

        height:
            48px;

        font-size:
            22px;
    }


    .engage-login-brand strong {
        font-size:
            24px;
    }


    body[data-path="login"]
    .page-card {
        padding:
            23px 19px 21px !important;

        border-radius:
            12px !important;
    }


    body[data-path="login"]
    .page-card-head {
        padding-bottom:
            19px !important;
    }


    body[data-path="login"]
    .page-card-head h4 {
        font-size:
            21px !important;
    }


    /* Prevent iOS input zoom */
    body[data-path="login"]
    input:not([type="checkbox"]) {
        font-size:
            16px !important;
    }
}



/* =========================================================
   ENGAGE MOBILE LOGIN VIEWPORT FIX
   Safari / Chrome mobile
   ========================================================= */

@media (max-width: 600px) {

    html,
    body[data-path="login"] {
        min-height: 100% !important;
        height: auto !important;

        overflow-x: hidden !important;
        overflow-y: auto !important;
    }


    /*
     * Critical:
     * do NOT vertically center a form taller
     * than the real mobile browser viewport.
     */
    body[data-path="login"]
    #page-login {
        display: block !important;

        min-height: 0 !important;
        height: auto !important;

        padding:
            max(
                20px,
                env(safe-area-inset-top)
            )
            16px
            calc(
                26px +
                env(safe-area-inset-bottom)
            )
            !important;

        overflow: visible !important;
    }


    body[data-path="login"]
    :is(
        .for-login,
        .for-email-login,
        .for-forgot
    ) {
        width: 100% !important;

        max-width: 430px !important;

        margin:
            0 auto !important;
    }


    /*
     * Keep brand fully inside viewport.
     */
    .engage-login-brand {
        margin:
            0 0 16px !important;

        padding-top:
            2px !important;
    }


    .engage-login-mark {
        width: 46px !important;
        height: 46px !important;

        margin: 0 auto !important;
    }


    .engage-login-brand strong {
        margin-top:
            10px !important;

        font-size:
            23px !important;
    }


    .engage-login-brand > span {
        margin-top:
            5px !important;
    }


    .engage-login-brand small {
        margin-top:
            4px !important;
    }


    /*
     * Remove unnecessary vertical bulk.
     */
    body[data-path="login"]
    .page-card {
        min-height: 0 !important;
        height: auto !important;

        padding:
            21px 18px 20px !important;
    }


    body[data-path="login"]
    .page-card-head {
        padding-bottom:
            17px !important;
    }


    body[data-path="login"]
    .form-group {
        margin-bottom:
            13px !important;
    }


    body[data-path="login"]
    input:not([type="checkbox"]) {
        min-height:
            46px !important;

        font-size:
            16px !important;
    }


    body[data-path="login"]
    .btn-login {
        min-height:
            48px !important;

        margin-top:
            7px !important;
    }


    .engage-login-credits {
        margin-top:
            14px !important;

        padding-bottom:
            4px !important;
    }
}



/* =========================================================
   ENGAGE FINAL LOGIN FIELD GEOMETRY
   Fix icon / placeholder overlap everywhere
   ========================================================= */

body[data-path="login"]
.email-field,
body[data-path="login"]
.password-field {
    position: relative !important;

    width: 100% !important;
}


/* Inputs must reserve room for the left icon. */

body[data-path="login"]
.email-field
#login_email,
body[data-path="login"]
.email-field
#forgot_email,
body[data-path="login"]
.password-field
#login_password {
    width: 100% !important;

    padding-left:
        48px !important;
}


/* Password also reserves room for the eye icon. */

body[data-path="login"]
.password-field
#login_password {
    padding-right:
        48px !important;
}


/* Left mail / lock icons */

body[data-path="login"]
.email-field
.field-icon,
body[data-path="login"]
.password-field
.field-icon {
    position: absolute !important;

    z-index: 3 !important;

    left: 16px !important;
    top: 50% !important;

    width: 18px !important;
    height: 18px !important;

    margin: 0 !important;

    transform:
        translateY(-50%) !important;

    color:
        #789099 !important;

    opacity: .95 !important;

    pointer-events: none !important;
}


/* Password visibility eye */

body[data-path="login"]
.password-field
.toggle-password {
    position: absolute !important;

    z-index: 4 !important;

    right: 16px !important;
    top: 50% !important;

    width: 20px !important;
    height: 20px !important;

    margin: 0 !important;

    transform:
        translateY(-50%) !important;

    color:
        #789099 !important;

    cursor: pointer !important;
}


/* Force consistent field height on every viewport. */

body[data-path="login"]
.email-field
input,
body[data-path="login"]
.password-field
input {
    min-height:
        48px !important;

    line-height:
        48px !important;
}


/* Mobile: slightly larger safe spacing, still no iOS zoom. */

@media (max-width:600px) {

    body[data-path="login"]
    .email-field
    #login_email,
    body[data-path="login"]
    .email-field
    #forgot_email,
    body[data-path="login"]
    .password-field
    #login_password {
        padding-left:
            50px !important;

        font-size:
            16px !important;
    }


    body[data-path="login"]
    .password-field
    #login_password {
        padding-right:
            50px !important;
    }


    body[data-path="login"]
    .email-field
    .field-icon,
    body[data-path="login"]
    .password-field
    .field-icon {
        left:
            17px !important;
    }


    body[data-path="login"]
    .password-field
    .toggle-password {
        right:
            17px !important;
    }
}



/* =========================================================
   ENGAGE GLOBAL PRIMARY ACTION
   ========================================================= */

body[data-path="login"]
.btn-login,
body[data-path="login"]
.btn-primary {
    background:
        linear-gradient(
            180deg,
            #f4c858,
            #e4ad37
        ) !important;

    border-color:
        #efbd49 !important;

    color:
        #081920 !important;

    font-weight:
        800 !important;
}



/* =========================================================
   ENGAGE GLOBAL PRIMARY ACTION
   ========================================================= */

body[data-path="login"]
.btn-login,
body[data-path="login"]
.btn-primary {
    background:
        linear-gradient(
            180deg,
            #f4c858,
            #e4ad37
        ) !important;

    border-color:
        #efbd49 !important;

    color:
        #081920 !important;

    font-weight:
        800 !important;
}

