:root {

    --cc-blue: #155EEF;
    --cc-blue-dark: #0D47C7;

    --cc-dark: #0B1F3A;

    --cc-text: #243B5A;
    --cc-muted: #667085;

    --cc-border: #D8E0EC;

    --cc-background: #F4F7FC;

    --cc-white: #FFFFFF;

}


/* =========================================
   GENERAL
========================================= */

* {
    box-sizing: border-box;
}

html,
body {
    min-height: 100%;
}

body {

    margin: 0;

    font-family:
        'Montserrat',
        sans-serif;

    background:
        linear-gradient(
            135deg,
            #F8FAFD 0%,
            #F0F4FA 100%
        );

    color: var(--cc-text);

}


/* =========================================
   CONTENEDOR
========================================= */

.login-page {

    min-height: 100vh;

}


/* =========================================
   COLUMNA IZQUIERDA
========================================= */

.login-left {

    display: flex;

    align-items: center;

    padding:
        60px
        7%;

}


.brand-content {

    max-width: 680px;

}


/* =========================================
   LOGO
========================================= */

.brand-logo {

    color: var(--cc-dark);

    font-size:
        clamp(
            2.3rem,
            4vw,
            3rem
        );

    font-weight: 800;

    letter-spacing: -1.5px;

    margin-bottom: 38px;

}

.brand-logo span {

    color: var(--cc-blue);

}


/* =========================================
   TITULO
========================================= */

.brand-content h1 {

    margin: 0;

    font-size:
        clamp(
            1.7rem,
            3vw,
            2.45rem
        );

    line-height: 1.3;

    font-weight: 500;

    letter-spacing: -.8px;

    color: var(--cc-text);

}


/* =========================================
   DESCRIPCION
========================================= */

.brand-description {

    color: var(--cc-muted);

    font-size: 1rem;

    line-height: 1.7;

    margin:
        35px
        0
        28px;

}


/* =========================================
   FEATURES
========================================= */

.features {

    display: flex;

    flex-direction: column;

    gap: 18px;

}

.feature {

    display: flex;

    align-items: center;

    gap: 13px;

    font-size: 1rem;

    color: var(--cc-text);

}


.feature-check {

    width: 19px;

    height: 19px;

    border-radius: 50%;

    display: flex;

    align-items: center;

    justify-content: center;

    background: #22C55E;

    color: white;

    font-size: .62rem;

}


/* =========================================
   COLUMNA LOGIN
========================================= */

.login-right {

    display: flex;

    align-items: center;

    justify-content: center;

    padding:
        60px
        7%;

}


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

.login-card {

    width: 100%;

    max-width: 450px;

    background: white;

    border:
        1px solid
        rgba(
            11,
            31,
            58,
            .06
        );

    border-radius: 18px;

    padding:
        44px
        48px
        30px;

    box-shadow:
        0 22px 50px
        rgba(
            16,
            24,
            40,
            .08
        );

}


/* =========================================
   TITULO LOGIN
========================================= */

.login-title {

    color: #263B59;

    font-size: 1.75rem;

    font-weight: 500;

    letter-spacing: -.5px;

    margin-bottom: 5px;

}

.login-title span {

    font-size: 1.45rem;

}


/* =========================================
   SUBTITULO
========================================= */

.login-subtitle {

    color: var(--cc-muted);

    font-size: .85rem;

    margin-bottom: 28px;

}


/* =========================================
   FORMULARIOS
========================================= */

.form-group {

    margin-bottom: 19px;

}

.form-group label {

    display: block;

    color: #344054;

    font-size: .85rem;

    font-weight: 500;

    margin-bottom: 8px;

}


/* =========================================
   INPUT
========================================= */

.input-container {

    position: relative;

}

.input-container > i {

    position: absolute;

    left: 16px;

    top: 50%;

    transform:
        translateY(-50%);

    color: #98A2B3;

    z-index: 2;

    font-size: .9rem;

}


.form-control {

    height: 56px;

    border:
        1px solid
        var(--cc-border);

    border-radius: 13px;

    padding:
        0
        45px;

    font-family: inherit;

    font-size: .88rem;

    color: #1D2939;

    box-shadow: none !important;

    transition:
        .2s ease;

}


.form-control::placeholder {

    color: #98A2B3;

}


.form-control:focus {

    border-color:
        var(--cc-blue);

    box-shadow:
        0 0 0 3px
        rgba(
            21,
            94,
            239,
            .10
        ) !important;

}


/* =========================================
   MOSTRAR PASSWORD
========================================= */

.toggle-password {

    position: absolute;

    right: 13px;

    top: 50%;

    transform:
        translateY(-50%);

    border: 0;

    background: transparent;

    color: #98A2B3;

    padding: 5px;

}

.toggle-password:hover {

    color: var(--cc-blue);

}


/* =========================================
   BOTON
========================================= */

.btn-login {

    width: 100%;

    height: 54px;

    margin-top: 6px;

    border: 0;

    border-radius: 12px;

    background:
        var(--cc-blue);

    color: white;

    font-family: inherit;

    font-size: .92rem;

    font-weight: 700;

    transition: .2s ease;

}


.btn-login:hover {

    background:
        var(--cc-blue-dark);

    transform:
        translateY(-1px);

    box-shadow:
        0 8px 20px
        rgba(
            21,
            94,
            239,
            .22
        );

}


.btn-login:disabled {

    opacity: .8;

    cursor: not-allowed;

}


/* =========================================
   FOOTER
========================================= */

.login-footer {

    text-align: center;

    color: #98A2B3;

    font-size: .7rem;

    margin-top: 26px;

}


/* =========================================
   TABLET
========================================= */

@media (max-width: 991px) {

    .login-left {

        min-height: 48vh;

        padding:
            50px 8%;

        align-items: flex-end;

    }

    .login-right {

        min-height: 52vh;

        padding:
            35px 8%
            60px;

    }

}


/* =========================================
   MOVIL
========================================= */

@media (max-width: 575px) {

    .login-left {

        min-height: auto;

        padding:
            45px
            25px
            30px;

    }

    .login-right {

        min-height: auto;

        padding:
            15px
            20px
            45px;

    }

    .brand-logo {

        text-align: center;

        font-size: 2.2rem;

        margin-bottom: 25px;

    }

    .brand-content h1 {

        text-align: center;

        font-size: 1.45rem;

    }

    .brand-description {

        text-align: center;

        font-size: .88rem;

        margin:
            20px
            auto;

    }

    .features {

        display: grid;

        grid-template-columns:
            1fr 1fr;

        gap: 12px;

    }

    .feature {

        font-size: .85rem;

    }

    .login-card {

        padding:
            32px
            23px
            25px;

        border-radius: 16px;

    }

    .login-title {

        font-size: 1.5rem;

    }

}