/* ==========================================================================
   LCDP LOGIN
   ========================================================================== */

.lcdp-login-page {
    position:
        relative;

    min-height:
        70vh;

    padding:
        44px
        0
        72px;
}


/* ==========================================================================
   LOGIN CARD
   ========================================================================== */

.lcdp-login-card {
    width:
        min(100%, 680px);

    margin:
        0 auto;

    padding:
        36px;

    background:
        rgba(255, 255, 255, 0.97);

    border:
        1px solid rgba(255, 255, 255, 0.72);

    border-radius:
        24px;

    box-shadow:
        0 26px 70px rgba(0, 0, 0, 0.26);
}


/* ==========================================================================
   HEADER
   ========================================================================== */

.lcdp-login-header {
    position:
        relative;

    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        24px;

    margin:
        -36px
        -36px
        30px;

    padding:
        30px
        36px;

    background:
        #2b3442;

    border-radius:
        24px
        24px
        0
        0;
}


.lcdp-login-header > div:first-child {
    min-width:
        0;

    flex:
        1;
}


.lcdp-login-header .lcdp-eyebrow {
    color:
        #7dd3fc;
}


.lcdp-login-header h1 {
    margin:
        0;

    color:
        #ffffff;

    font-size:
        clamp(2rem, 4vw, 2.75rem);

    font-weight:
        780;

    line-height:
        1.06;
}


.lcdp-login-header p {
    max-width:
        500px;

    margin:
        10px
        0
        0;

    color:
        rgba(255, 255, 255, 0.82);

    font-size:
        0.96rem;

    line-height:
        1.55;
}


/* ==========================================================================
   HEADER LOGO
   ========================================================================== */

.lcdp-login-header-logo {
    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    flex:
        0
        0
        auto;

    width:
        72px;

    height:
        72px;

    overflow:
        hidden;

    background:
        #ffffff;

    border:
        1px solid rgba(255, 255, 255, 0.18);

    border-radius:
        18px;

    box-shadow:
        0 8px 20px rgba(0, 0, 0, 0.22);
}


.lcdp-login-header-logo img {
    display:
        block;

    width:
        100%;

    height:
        100%;

    object-fit:
        cover;
}


/* ==========================================================================
   FORM PANEL
   ========================================================================== */

.lcdp-login-form-panel {
    padding:
        24px;

    background:
        #ffffff;

    border:
        1px solid #dbe2ea;

    border-radius:
        18px;

    box-shadow:
        0 5px 14px rgba(15, 23, 42, 0.14),
        0 18px 36px rgba(15, 23, 42, 0.13);
}


.lcdp-login-section-title {
    margin-bottom:
        18px;

    color:
        var(--lcdp-text);

    font-size:
        0.92rem;

    font-weight:
        750;
}


/* ==========================================================================
   LABELS / INPUT LAYOUT
   ========================================================================== */

.lcdp-login-card .form-label,
.lcdp-login-modal .form-label {
    margin-bottom:
        7px;

    color:
        var(--lcdp-text);

    font-size:
        0.88rem;

    font-weight:
        700;
}


.lcdp-login-card .form-control,
.lcdp-login-modal .form-control {
    min-height:
        50px;

    padding:
        11px
        13px;

    box-shadow:
        none !important;
}


/* ==========================================================================
   PRIMARY BUTTON
   ========================================================================== */

.lcdp-login-primary {
    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    width:
        100%;

    min-height:
        50px;

    margin-top:
        22px;

    padding:
        11px
        18px;

    background:
        var(--lcdp-primary);

    color:
        #ffffff;

    border:
        0;

    border-radius:
        11px;

    font-size:
        0.94rem;

    font-weight:
        700;

    cursor:
        pointer;

    transition:
        background-color 180ms ease,
        transform 180ms ease,
        box-shadow 180ms ease;
}


.lcdp-login-primary:hover,
.lcdp-login-primary:focus {
    background:
        var(--lcdp-primary-hover);

    color:
        #ffffff;

    transform:
        translateY(-1px);

    box-shadow:
        0 8px 18px rgba(37, 99, 235, 0.24);
}


/* ==========================================================================
   OTHER LOGIN BUTTON
   ========================================================================== */

.lcdp-login-secondary {
    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    width:
        100%;

    min-height:
        50px;

    margin-top:
        18px;

    padding:
        11px
        18px;

    background:
        var(--lcdp-dark);

    color:
        #ffffff;

    border:
        0;

    border-radius:
        11px;

    box-shadow:
        0 7px 16px rgba(13, 23, 38, 0.20);

    font-size:
        0.92rem;

    font-weight:
        700;

    cursor:
        pointer;

    transition:
        background-color 180ms ease,
        transform 180ms ease,
        box-shadow 180ms ease;
}


.lcdp-login-secondary:hover,
.lcdp-login-secondary:focus {
    background:
        var(--lcdp-dark-soft);

    color:
        #ffffff;

    transform:
        translateY(-1px);

    box-shadow:
        0 10px 22px rgba(13, 23, 38, 0.26);
}


/* ==========================================================================
   RECOVERY LINKS
   ========================================================================== */

.lcdp-login-recovery {
    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    flex-wrap:
        wrap;

    gap:
        7px;

    margin-top:
        24px;

    font-size:
        0.84rem;
}


.lcdp-login-recovery a {
    color:
        var(--lcdp-primary);

    font-weight:
        650;

    text-decoration:
        none;
}


.lcdp-login-recovery a:hover,
.lcdp-login-recovery a:focus {
    color:
        var(--lcdp-primary-hover);

    text-decoration:
        underline;
}


.lcdp-login-recovery span {
    color:
        #94a3b8;
}


/* ==========================================================================
   ALERT
   ========================================================================== */

.lcdp-login-alert {
    margin-bottom:
        22px;

    padding:
        16px
        18px;

    background:
        #fef2f2;

    color:
        #991b1b;

    border:
        1px solid #fecaca;

    border-radius:
        12px;

    font-size:
        0.9rem;

    line-height:
        1.5;
}


/* ==========================================================================
   LOGIN MODAL
   ========================================================================== */

.lcdp-login-modal {
    overflow:
        hidden;

    border:
        0;

    border-radius:
        20px;

    box-shadow:
        0 24px 70px rgba(15, 23, 42, 0.28);
}


.lcdp-login-modal .modal-header {
    align-items:
        flex-start;

    padding:
        22px
        24px
        18px;

    background:
        #2b3442;

    border-bottom:
        0;
}


.lcdp-login-modal .modal-header .lcdp-eyebrow {
    color:
        #7dd3fc;
}


.lcdp-login-modal .modal-title {
    margin:
        0;

    color:
        #ffffff;

    font-size:
        1.45rem;

    font-weight:
        750;

    line-height:
        1.15;
}


.lcdp-login-modal .btn-close {
    flex:
        0
        0
        auto;

    margin:
        2px
        0
        0
        16px;

    filter:
        invert(1)
        grayscale(100%)
        brightness(200%);
}


.lcdp-login-modal .modal-body {
    padding:
        24px;

    background:
        #ffffff;
}


.lcdp-login-modal .modal-footer {
    padding:
        16px
        24px
        20px;

    background:
        #ffffff;

    border-top:
        1px solid var(--lcdp-border);
}


/* ==========================================================================
   MODAL EMAIL
   ========================================================================== */

.lcdp-login-modal-copy {
    margin:
        0
        0
        16px;

    color:
        var(--lcdp-text-muted);

    line-height:
        1.55;
}


.lcdp-login-email-box {
    margin-bottom:
        18px;

    padding:
        13px
        15px;

    background:
        #f1f5f9;

    color:
        var(--lcdp-text);

    border:
        1px solid var(--lcdp-border);

    border-radius:
        11px;

    text-align:
        center;

    font-size:
        0.92rem;

    font-weight:
        700;
}


/* ==========================================================================
   CODE INPUT
   ========================================================================== */

.lcdp-login-code-input {
    text-align:
        center;

    font-size:
        1.35rem;

    font-weight:
        700;

    letter-spacing:
        0.18em;
}


/* ==========================================================================
   OUTLINE BUTTON
   ========================================================================== */

.lcdp-login-outline {
    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    width:
        100%;

    min-height:
        48px;

    padding:
        10px
        18px;

    background:
        #ffffff;

    color:
        var(--lcdp-primary);

    border:
        1px solid var(--lcdp-primary);

    border-radius:
        11px;

    font-size:
        0.92rem;

    font-weight:
        700;

    cursor:
        pointer;
}


.lcdp-login-outline:hover,
.lcdp-login-outline:focus {
    background:
        var(--lcdp-primary);

    color:
        #ffffff;
}


/* ==========================================================================
   MOBILE
   ========================================================================== */

@media (max-width: 767.98px) {

    .lcdp-login-page {
        padding:
            18px
            0
            34px;
    }


    .lcdp-login-card {
        padding:
            22px;

        border-radius:
            20px;
    }


    .lcdp-login-header {
        margin:
            -22px
            -22px
            24px;

        padding:
            24px
            92px
            24px
            22px;

        border-radius:
            20px
            20px
            0
            0;
    }


    .lcdp-login-header-logo {
        position:
            absolute;

        top:
            24px;

        right:
            22px;

        width:
            56px;

        height:
            56px;

        border-radius:
            14px;
    }


    .lcdp-login-header h1 {
        font-size:
            1.85rem;
    }


    .lcdp-login-header p {
        font-size:
            0.9rem;
    }


    .lcdp-login-form-panel {
        padding:
            18px;

        border-radius:
            15px;

        box-shadow:
            0 5px 12px rgba(15, 23, 42, 0.14),
            0 14px 28px rgba(15, 23, 42, 0.12);
    }


    .lcdp-login-modal .modal-dialog {
        margin:
            12px;
    }


    .lcdp-login-modal .modal-header {
        padding:
            18px;
    }


    .lcdp-login-modal .modal-body {
        padding:
            18px;
    }


    .lcdp-login-modal .modal-footer {
        padding:
            15px
            18px
            18px;
    }

}


/* ==========================================================================
   SMALL MOBILE
   ========================================================================== */

@media (max-width: 420px) {

    .lcdp-login-card {
        padding:
            20px
            18px;
    }


    .lcdp-login-header {
        margin:
            -20px
            -18px
            22px;

        padding:
            22px
            82px
            22px
            18px;
    }


    .lcdp-login-header-logo {
        top:
            22px;

        right:
            18px;

        width:
            50px;

        height:
            50px;

        border-radius:
            13px;
    }

}