/* ==========================================================
   INFINITYERP BRAND51
   ROMAN CONCRETE RESPONSIVE LOGIN
   LOGIN PAGE ONLY
========================================================== */


/* ----------------------------------------------------------
   LOGIN VIEWPORT
---------------------------------------------------------- */

body:has(.for-login) {
    min-width: 0 !important;
    min-height: 100vh !important;
    min-height: 100dvh !important;

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


body:has(.for-login) .page-content-wrapper,
body:has(.for-login) .page_content {
    box-sizing: border-box !important;

    width: 100% !important;
    min-width: 0 !important;

    min-height: 100vh !important;
    min-height: 100dvh !important;

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

    overflow: visible !important;
}


body:has(.for-login) #page-login {
    box-sizing: border-box !important;

    width: 100% !important;
    min-width: 0 !important;

    min-height: 100vh !important;
    min-height: 100dvh !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    padding:
        clamp(16px, 4vh, 42px)
        16px
        !important;
}


/*
 * Do not override section display.
 * Frappe controls visible login/forgot/email-link sections.
 */

body:has(.for-login) #page-login section {
    box-sizing: border-box !important;

    width: 100% !important;
    min-width: 0 !important;

    margin-left: auto !important;
    margin-right: auto !important;
}


/* ----------------------------------------------------------
   LOGIN CARD
---------------------------------------------------------- */

body:has(.for-login)
.login-content.page-card {
    box-sizing: border-box !important;

    width: min(100%, 430px) !important;
    max-width: 430px !important;

    min-width: 0 !important;

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

    margin:
        0 auto
        !important;

    padding:
        28px 30px 26px
        !important;

    overflow: hidden !important;
}


/* ----------------------------------------------------------
   BRAND HEADER
---------------------------------------------------------- */

body:has(.for-login)
.page-card-head {
    margin: 0 !important;
    padding: 0 !important;
}


body:has(.for-login)
.page-card-head .app-logo {
    width: auto !important;
    height: auto !important;

    max-width: 170px !important;
    max-height: 82px !important;

    margin:
        0 auto 12px
        !important;
}


body:has(.for-login)
.page-card-head h4 {
    margin:
        0 0 4px
        !important;

    font-size:
        25px !important;

    line-height:
        1.15 !important;
}


body:has(.for-login)
.page-card-subtitle {
    max-width:
        310px !important;

    margin:
        0 auto 18px
        !important;

    font-size:
        13px !important;

    line-height:
        1.45 !important;
}


/* ----------------------------------------------------------
   FORM
---------------------------------------------------------- */

body:has(.for-login)
.page-card-body {
    min-width: 0 !important;

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


body:has(.for-login)
.form-group {
    margin-bottom:
        13px !important;
}


body:has(.for-login)
.form-label {
    margin-bottom:
        5px !important;

    font-size:
        12px !important;

    line-height:
        1.2 !important;
}


body:has(.for-login)
.form-control {
    box-sizing: border-box !important;

    width: 100% !important;

    min-height: 42px !important;
    height: 42px !important;

    padding-top:
        8px !important;

    padding-bottom:
        8px !important;
}


body:has(.for-login)
.forgot-password-message {
    margin:
        -1px 0 12px
        !important;

    font-size:
        12px !important;

    line-height:
        1.25 !important;
}


body:has(.for-login)
.page-card-actions {
    margin-top:
        4px !important;

    padding: 0 !important;
}


body:has(.for-login)
.btn-login {
    min-height:
        42px !important;

    height:
        42px !important;

    margin: 0 !important;

    padding:
        8px 14px !important;

    font-size:
        13px !important;
}


/* ==========================================================
   TABLET / SMALL LAPTOP
========================================================== */

@media
    (min-width: 768px)
    and (max-width: 1199px) {

    body:has(.for-login)
    #page-login {
        padding:
            28px 22px
            !important;
    }


    body:has(.for-login)
    .login-content.page-card {
        width:
            min(100%, 410px)
            !important;

        padding:
            30px 30px 27px
            !important;
    }
}


/* ==========================================================
   NORMAL PHONES
   355PX - 767PX
========================================================== */

@media (max-width: 767px) {

    body:has(.for-login)
    #page-login {
        padding:
            12px 10px
            !important;
    }


    body:has(.for-login)
    .login-content.page-card {
        width:
            min(100%, 390px)
            !important;

        max-width:
            390px !important;

        padding:
            20px 18px 18px
            !important;

        border-radius:
            14px !important;
    }


    body:has(.for-login)
    .page-card-head .app-logo {
        max-width:
            145px !important;

        max-height:
            70px !important;

        margin-bottom:
            9px !important;
    }


    body:has(.for-login)
    .page-card-head h4 {
        font-size:
            23px !important;

        margin-bottom:
            3px !important;
    }


    body:has(.for-login)
    .page-card-subtitle {
        margin-bottom:
            14px !important;

        font-size:
            12px !important;
    }


    body:has(.for-login)
    .form-group {
        margin-bottom:
            10px !important;
    }


    body:has(.for-login)
    .form-control {
        min-height:
            40px !important;

        height:
            40px !important;
    }


    body:has(.for-login)
    .forgot-password-message {
        margin:
            0 0 10px
            !important;
    }


    body:has(.for-login)
    .btn-login {
        min-height:
            40px !important;

        height:
            40px !important;
    }
}


/* ==========================================================
   ULTRA-NARROW PHONES
   250PX - 354PX
========================================================== */

@media (max-width: 354px) {

    body:has(.for-login)
    #page-login {
        padding:
            8px 6px
            !important;
    }


    body:has(.for-login)
    .login-content.page-card {
        width:
            calc(100vw - 12px)
            !important;

        max-width:
            none !important;

        padding:
            15px 12px 13px
            !important;

        border-radius:
            12px !important;
    }


    body:has(.for-login)
    .page-card-head .app-logo {
        max-width:
            125px !important;

        max-height:
            60px !important;

        margin-bottom:
            7px !important;
    }


    body:has(.for-login)
    .page-card-head h4 {
        font-size:
            21px !important;

        line-height:
            1.1 !important;
    }


    body:has(.for-login)
    .page-card-subtitle {
        margin-bottom:
            11px !important;

        font-size:
            11px !important;

        line-height:
            1.3 !important;
    }


    body:has(.for-login)
    .form-group {
        margin-bottom:
            8px !important;
    }


    body:has(.for-login)
    .form-label {
        margin-bottom:
            3px !important;

        font-size:
            10.5px !important;
    }


    body:has(.for-login)
    .form-control {
        min-height:
            37px !important;

        height:
            37px !important;

        font-size:
            12px !important;
    }


    body:has(.for-login)
    .forgot-password-message {
        margin:
            0 0 8px
            !important;

        font-size:
            10.5px !important;
    }


    body:has(.for-login)
    .btn-login {
        min-height:
            37px !important;

        height:
            37px !important;

        font-size:
            12px !important;
    }
}


/* ==========================================================
   SHORT VIEWPORTS
   SUCH AS 310 X 500
========================================================== */

@media (max-height: 600px) {

    body:has(.for-login)
    #page-login {
        align-items:
            flex-start !important;

        padding-top:
            7px !important;

        padding-bottom:
            7px !important;
    }


    body:has(.for-login)
    .login-content.page-card {
        margin:
            0 auto !important;

        padding:
            13px 16px 12px
            !important;
    }


    body:has(.for-login)
    .page-card-head .app-logo {
        max-width:
            118px !important;

        max-height:
            52px !important;

        margin-bottom:
            5px !important;
    }


    body:has(.for-login)
    .page-card-head h4 {
        margin-bottom:
            2px !important;

        font-size:
            20px !important;
    }


    body:has(.for-login)
    .page-card-subtitle {
        margin-bottom:
            8px !important;

        font-size:
            10.5px !important;

        line-height:
            1.25 !important;
    }


    body:has(.for-login)
    .form-group {
        margin-bottom:
            7px !important;
    }


    body:has(.for-login)
    .form-label {
        margin-bottom:
            3px !important;

        font-size:
            10.5px !important;
    }


    body:has(.for-login)
    .form-control {
        min-height:
            36px !important;

        height:
            36px !important;

        padding-top:
            6px !important;

        padding-bottom:
            6px !important;

        font-size:
            12px !important;
    }


    body:has(.for-login)
    .forgot-password-message {
        margin:
            0 0 7px !important;

        font-size:
            10.5px !important;
    }


    body:has(.for-login)
    .page-card-actions {
        margin-top:
            2px !important;
    }


    body:has(.for-login)
    .btn-login {
        min-height:
            36px !important;

        height:
            36px !important;

        padding:
            6px 12px !important;

        font-size:
            12px !important;
    }
}


/* ==========================================================
   VERY SHORT / LANDSCAPE SCREENS
========================================================== */

@media (max-height: 430px) {

    body:has(.for-login)
    #page-login {
        align-items:
            flex-start !important;

        padding:
            4px 6px
            !important;
    }


    body:has(.for-login)
    .login-content.page-card {
        padding:
            9px 14px 9px
            !important;
    }


    body:has(.for-login)
    .page-card-head .app-logo {
        max-width:
            100px !important;

        max-height:
            42px !important;

        margin-bottom:
            3px !important;
    }


    body:has(.for-login)
    .page-card-head h4 {
        font-size:
            18px !important;
    }


    body:has(.for-login)
    .page-card-subtitle {
        margin-bottom:
            6px !important;

        font-size:
            9.5px !important;
    }


    body:has(.for-login)
    .form-group {
        margin-bottom:
            5px !important;
    }


    body:has(.for-login)
    .form-control {
        min-height:
            34px !important;

        height:
            34px !important;
    }


    body:has(.for-login)
    .forgot-password-message {
        margin-bottom:
            5px !important;
    }


    body:has(.for-login)
    .btn-login {
        min-height:
            34px !important;

        height:
            34px !important;
    }
}


/* ==========================================================
   DESKTOP / LARGE DESKTOP
========================================================== */

@media (min-width: 1200px) {

    body:has(.for-login)
    .login-content.page-card {
        width:
            420px !important;

        max-width:
            420px !important;
    }
}

/* INFINITYERP BRAND51 RESPONSIVE LOGIN END */
