/* ============================================================
   UPEAC ADMISSIONS
   PUBLIC LOGIN
============================================================ */


/* ============================================================
   ISOLATION TOTALE DE LA PAGE LOGIN
============================================================ */

html:has(body.app-public_login),
body.app-public_login {

    width: 100%;
    min-width: 0;
    height: 100%;
    min-height: 100%;

    margin: 0 !important;
    padding: 0 !important;

    overflow-x: hidden;
}


body.app-public_login {

    background: #ffffff !important;

    font-family:
        "Inter",
        Arial,
        sans-serif;
}


body.app-public_login.public-layout-fullscreen {

    display: block !important;

    width: 100% !important;
    min-height: 100vh !important;

    margin: 0 !important;
    padding: 0 !important;
}


body.app-public_login .public-main,
body.app-public_login .public-main-fullscreen {

    display: block !important;

    width: 100% !important;
    max-width: none !important;

    min-height: 100vh !important;
    height: 100vh !important;

    margin: 0 !important;
    padding: 0 !important;

    background: transparent !important;
}


/* ============================================================
   CONTENEUR PRINCIPAL
============================================================ */

body.app-public_login .login-page {

    width: 100% !important;

    min-width: 0;

    min-height: 100vh !important;
    height: 100vh !important;

    display: grid !important;

    grid-template-columns:
        minmax(0, 1.05fr)
        minmax(500px, 0.95fr);

    margin: 0 !important;
    padding: 0 !important;

    overflow: hidden;

    background: #ffffff;
}


/* ============================================================
   PARTIE IMAGE
============================================================ */

body.app-public_login .login-visual {

    position: relative;

    min-width: 0;
    min-height: 100vh;

    overflow: hidden;

    display: flex;

    flex-direction: column;

    justify-content: space-between;

    padding:
        42px
        46px
        42px;

    box-sizing: border-box;

    background-image:
        url("../../assets/images/upeac-building.png") !important;

    background-repeat: no-repeat !important;

    background-size: cover !important;

    background-position: center center !important;
}


/* VOILE */

body.app-public_login .login-visual-overlay {

    position: absolute;

    inset: 0;

    z-index: 1;

    pointer-events: none;

    background:

        linear-gradient(
            180deg,
            rgba(8, 39, 78, 0.45) 0%,
            rgba(8, 39, 78, 0.08) 38%,
            rgba(8, 39, 78, 0.20) 60%,
            rgba(5, 26, 56, 0.88) 100%
        );
}


/* ============================================================
   IDENTITÉ UPEAC
============================================================ */

body.app-public_login .login-brand {

    position: relative;

    z-index: 2;

    display: flex;

    align-items: center;

    gap: 18px;

    width: 100%;
}


body.app-public_login .login-brand-logo {

    display: block !important;

    width: 104px !important;
    height: 104px !important;

    min-width: 104px !important;
    min-height: 104px !important;

    max-width: 104px !important;
    max-height: 104px !important;

    object-fit: contain !important;

    margin: 0 !important;
    padding: 0 !important;
}


body.app-public_login .login-brand-text {

    min-width: 0;
}


body.app-public_login .login-brand-text h1 {

    margin: 0 0 6px !important;
    padding: 0 !important;

    color: #ffffff !important;

    font-size: 52px !important;

    line-height: 1 !important;

    font-weight: 800 !important;

    letter-spacing: 1px;
}


body.app-public_login .login-brand-name {

    margin: 0 !important;

    color: rgba(255,255,255,0.98) !important;

    font-size: 13px !important;

    line-height: 1.45 !important;

    font-weight: 700 !important;

    letter-spacing: 0.5px;
}


body.app-public_login .login-brand-slogan {

    margin: 10px 0 0 !important;

    color: #f2a100 !important;

    font-size: 12px !important;

    font-weight: 800 !important;

    letter-spacing: 2px;
}


/* ============================================================
   CITATION
============================================================ */

body.app-public_login .login-visual-bottom {

    position: relative;

    z-index: 2;

    width: min(100%, 520px);

    margin-top: auto;

    padding:
        32px
        34px
        30px;

    box-sizing: border-box;

    color: #ffffff;

    background:

        linear-gradient(
            135deg,
            rgba(8, 37, 74, 0.94),
            rgba(16, 60, 111, 0.78)
        );

    border-radius:
        0
        18px
        18px
        0;

    box-shadow:
        0 18px 45px
        rgba(0,0,0,0.22);
}


body.app-public_login .login-quote-icon {

    color: #f2a100;

    font-size: 30px;

    margin-bottom: 12px;
}


body.app-public_login .login-visual-bottom h2 {

    margin: 0 !important;

    color: #ffffff !important;

    font-size: clamp(24px, 2.2vw, 34px) !important;

    line-height: 1.3 !important;

    font-weight: 500 !important;
}


body.app-public_login .login-quote-line {

    width: 60px;
    height: 4px;

    margin-top: 20px;

    border-radius: 999px;

    background: #f2a100;
}


/* ============================================================
   FORMULAIRE
============================================================ */

body.app-public_login .login-form-area {

    width: 100%;

    min-width: 0;

    min-height: 100vh;

    display: flex !important;

    align-items: center !important;

    justify-content: center !important;

    padding:
        40px
        64px;

    box-sizing: border-box;

    overflow-y: auto;

    background:
        linear-gradient(
            135deg,
            #f7f8fa,
            #eef2f6
        );
}


body.app-public_login .login-form-wrapper {

    width: 100% !important;

    max-width: 560px !important;

    margin: auto !important;

    padding:
        48px
        48px
        38px;

    box-sizing: border-box;

    background:
        rgba(255,255,255,0.96);

    border:
        1px solid
        rgba(255,255,255,0.95);

    border-radius: 22px;

    box-shadow:
        0 20px 55px
        rgba(24,47,79,0.12);
}


/* ============================================================
   TITRE
============================================================ */

body.app-public_login .login-heading {

    display: flex;

    align-items: center;

    gap: 20px;

    margin-bottom: 28px;
}


body.app-public_login .login-heading-line {

    display: block;

    width: 5px;
    height: 54px;

    flex: 0 0 5px;

    border-radius: 999px;

    background: #f2a100;
}


body.app-public_login .login-heading h2 {

    margin: 0 0 7px !important;

    color: #173b6c !important;

    font-size: 42px !important;

    line-height: 1 !important;

    font-weight: 800 !important;
}


body.app-public_login .login-heading p {

    margin: 0 !important;

    color: #586577 !important;

    font-size: 15px !important;
}


/* ============================================================
   SÉPARATEUR
============================================================ */

body.app-public_login .login-academic-separator {

    display: flex;

    align-items: center;

    gap: 18px;

    margin:
        12px
        0
        28px;
}


body.app-public_login .login-academic-separator span {

    flex: 1;

    height: 1px;

    background: #d9e0e8;
}


body.app-public_login .login-academic-separator i {

    color: #f2a100;

    font-size: 24px;
}


/* ============================================================
   CHAMPS
============================================================ */

body.app-public_login .login-field {

    margin-bottom: 19px;
}


body.app-public_login .login-field label {

    display: block;

    margin-bottom: 8px !important;

    color: #26374c !important;

    font-size: 14px !important;

    font-weight: 700 !important;
}


body.app-public_login .login-input-wrapper {

    position: relative;

    display: flex;

    align-items: center;
}


body.app-public_login .login-input-wrapper > i {

    position: absolute;

    left: 19px;

    z-index: 2;

    color: #748196;

    font-size: 18px;

    pointer-events: none;
}


body.app-public_login .login-input-wrapper input {

    width: 100% !important;

    height: 58px !important;

    min-height: 58px !important;

    padding:
        0
        58px
        0
        54px !important;

    box-sizing: border-box !important;

    border:
        1px solid
        #d7dee7 !important;

    border-radius: 11px !important;

    outline: none !important;

    background: #fbfcfd !important;

    color: #27384d !important;

    font-family: inherit !important;

    font-size: 15px !important;

    box-shadow: none !important;
}


body.app-public_login .login-input-wrapper input:focus {

    border-color: #2c5e9b !important;

    background: #ffffff !important;

    box-shadow:
        0 0 0 4px
        rgba(44,94,155,0.10) !important;
}


body.app-public_login .login-password-toggle {

    position: absolute;

    right: 8px;

    width: 42px;
    height: 42px;

    display: flex;

    align-items: center;

    justify-content: center;

    border: none !important;

    border-radius: 9px;

    color: #748196;

    background: transparent !important;

    cursor: pointer;
}


body.app-public_login .login-field-error {

    display: block;

    min-height: 16px;

    margin-top: 5px;

    color: #c53b3b;

    font-size: 12px;
}


/* ============================================================
   OPTIONS
============================================================ */

body.app-public_login .login-options {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 15px;

    margin:
        3px
        0
        25px;
}


body.app-public_login .login-remember {

    display: flex;

    align-items: center;

    gap: 8px;

    color: #4c5969;

    font-size: 13px;

    cursor: pointer;
}


body.app-public_login .login-remember input {

    width: 17px;
    height: 17px;

    margin: 0;

    accent-color: #173b6c;
}


body.app-public_login .login-forgot-password {

    color: #173b6c !important;

    font-size: 13px;

    font-weight: 700;

    text-decoration: none !important;
}


/* ============================================================
   BOUTON CONNEXION
============================================================ */

body.app-public_login .login-submit-button {

    width: 100% !important;

    height: 59px !important;

    display: flex !important;

    align-items: center !important;

    justify-content: center !important;

    gap: 11px;

    border: none !important;

    border-radius: 10px !important;

    color: #ffffff !important;

    background:
        linear-gradient(
            135deg,
            #1b477f,
            #123565
        ) !important;

    font-family: inherit !important;

    font-size: 17px !important;

    font-weight: 700 !important;

    cursor: pointer;

    box-shadow:
        0 10px 22px
        rgba(22,59,112,0.18);
}


/* ============================================================
   SÉPARATEUR OU
============================================================ */

body.app-public_login .login-or {

    display: flex;

    align-items: center;

    gap: 15px;

    margin: 27px 0;
}


body.app-public_login .login-or span {

    flex: 1;

    height: 1px;

    background: #d9e0e8;
}


body.app-public_login .login-or strong {

    color: #718094;

    font-size: 11px;

    letter-spacing: 1px;
}


/* ============================================================
   CRÉATION COMPTE
============================================================ */

body.app-public_login .login-register-button {

    width: 100%;

    height: 56px;

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 11px;

    box-sizing: border-box;

    border:
        1.5px solid
        #173b6c !important;

    border-radius: 10px;

    color: #173b6c !important;

    background: #ffffff !important;

    font-size: 16px;

    font-weight: 700;

    text-decoration: none !important;
}


/* ============================================================
   LIENS
============================================================ */

body.app-public_login .login-footer-links {

    display: flex;

    align-items: center;

    justify-content: center;

    flex-wrap: wrap;

    gap: 15px;

    margin-top: 34px;

    font-size: 12px;
}


body.app-public_login .login-footer-links a {

    color: #173b6c !important;

    text-decoration: none !important;
}


body.app-public_login .login-footer-links > span {

    width: 1px;
    height: 16px;

    background: #d5dce5;
}


/* ============================================================
   MESSAGES
============================================================ */

body.app-public_login .login-client-message {

    display: none;
}


body.app-public_login .login-client-message.error {

    display: block;

    margin-bottom: 18px;

    padding: 13px 15px;

    border: 1px solid #f1caca;

    border-radius: 10px;

    color: #8d2929;

    background: #fff1f1;

    font-size: 13px;
}


body.app-public_login .login-server-message {

    display: flex;

    align-items: flex-start;

    gap: 10px;

    margin-bottom: 18px;

    padding: 14px 16px;

    border-radius: 10px;

    font-size: 13px;

    line-height: 1.5;
}


body.app-public_login .login-server-error {

    color: #8d2929;

    background: #fff1f1;

    border: 1px solid #f1caca;
}


body.app-public_login .login-server-success {

    color: #176840;

    background: #eef9f2;

    border: 1px solid #bee6ce;
}


/* ============================================================
   RESPONSIVE
============================================================ */

@media (max-width: 1050px) {

    body.app-public_login .login-page {

        grid-template-columns:
            minmax(0, 1fr)
            minmax(430px, 0.9fr);
    }


    body.app-public_login .login-form-area {

        padding: 35px;
    }


    body.app-public_login .login-form-wrapper {

        padding: 42px 36px 34px;
    }

}


@media (max-width: 850px) {

    body.app-public_login .public-main,
    body.app-public_login .public-main-fullscreen {

        height: auto !important;
    }


    body.app-public_login .login-page {

        height: auto !important;

        min-height: 100vh !important;

        grid-template-columns: 1fr;
    }


    body.app-public_login .login-visual {

        min-height: 420px;

        height: 420px;
    }


    body.app-public_login .login-form-area {

        min-height: auto;
    }

}


@media (max-width: 600px) {

    body.app-public_login .login-visual {

        min-height: 380px;

        height: 380px;

        padding: 25px 20px;
    }


    body.app-public_login .login-brand {

        gap: 12px;
    }


    body.app-public_login .login-brand-logo {

        width: 78px !important;
        height: 78px !important;

        min-width: 78px !important;
        min-height: 78px !important;
    }


    body.app-public_login .login-brand-text h1 {

        font-size: 34px !important;
    }


    body.app-public_login .login-brand-name {

        font-size: 10px !important;
    }


    body.app-public_login .login-brand-slogan {

        font-size: 9px !important;
    }


    body.app-public_login .login-visual-bottom {

        padding: 24px 22px;
    }


    body.app-public_login .login-visual-bottom h2 {

        font-size: 23px !important;
    }


    body.app-public_login .login-form-area {

        padding: 25px 14px;
    }


    body.app-public_login .login-form-wrapper {

        padding: 35px 22px 30px;

        border-radius: 18px;
    }


    body.app-public_login .login-heading h2 {

        font-size: 34px !important;
    }


    body.app-public_login .login-options {

        flex-direction: column;

        align-items: flex-start;
    }

}