/* ==========================================================
   CEDECSI
   LOGIN WINDOWS 11 / FLUENT DESIGN
========================================================== */

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}


:root {

    --blue: #1468e8;
    --blue-dark: #084fc7;
    --blue-soft: #4a8ff1;

    --cyan: #42cfe4;

    --green: #00b86b;

    --text: #10213d;
    --text-soft: #526783;

    --glass: rgba(244, 249, 255, .66);

    --glass-strong: rgba(246, 250, 255, .80);

    --border: rgba(255, 255, 255, .82);
}


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


body {

    min-height: 100vh;

    font-family:
        'Inter',
        Arial,
        sans-serif;

    color: var(--text);

    background: #dcecff;

    overflow-x: hidden;
}


button,
input {
    font: inherit;
}


/* ==========================================================
   FONDO
========================================================== */

.login-page {

    position: relative;

    min-height: 100vh;

    overflow: hidden;

    display: flex;
    flex-direction: column;

    background:

        radial-gradient(
            circle at 10% 15%,
            rgba(255, 255, 255, .98),
            transparent 32%
        ),

        radial-gradient(
            circle at 55% 50%,
            rgba(225, 240, 255, .85),
            transparent 38%
        ),

        radial-gradient(
            circle at 90% 20%,
            rgba(113, 185, 255, .52),
            transparent 35%
        ),

        linear-gradient(
            135deg,
            #edf6ff 0%,
            #dcecff 42%,
            #b7d9fb 100%
        );
}


/* ==========================================================
   ILUMINACIÓN SUAVE
========================================================== */

.ambient {

    position: absolute;

    pointer-events: none;

    border-radius: 50%;

    filter: blur(80px);
}


.ambient-one {

    width: 550px;
    height: 550px;

    left: -180px;
    bottom: -160px;

    background:
        rgba(74, 161, 255, .30);
}


.ambient-two {

    width: 480px;
    height: 480px;

    right: -100px;
    top: 5%;

    background:
        rgba(51, 189, 240, .22);
}


.ambient-three {

    width: 420px;
    height: 420px;

    left: 38%;
    top: 30%;

    background:
        rgba(164, 198, 255, .26);
}


/* ==========================================================
   RIBBONS WINDOWS 11
========================================================== */

.ribbon {

    position: absolute;

    pointer-events: none;

    border-radius: 50%;

    border:
        1px solid
        rgba(255, 255, 255, .70);

    box-shadow:

        inset 0 0 35px
        rgba(255, 255, 255, .38),

        0 20px 50px
        rgba(25, 96, 190, .12);
}


/* RIBBON SUPERIOR */

.ribbon-one {

    width: 900px;
    height: 230px;

    right: -240px;
    top: 70px;

    transform:
        rotate(-24deg);

    background:

        linear-gradient(
            100deg,
            rgba(255,255,255,.18),
            rgba(99,181,255,.45),
            rgba(33,113,231,.72)
        );
}


/* RIBBON CENTRAL */

.ribbon-two {

    width: 1000px;
    height: 245px;

    right: -420px;
    top: 330px;

    transform:
        rotate(-17deg);

    background:

        linear-gradient(
            100deg,
            rgba(124,225,239,.32),
            rgba(51,150,244,.60),
            rgba(12,92,211,.86)
        );
}


/* RIBBON INFERIOR */

.ribbon-three {

    width: 950px;
    height: 220px;

    right: -270px;
    bottom: -85px;

    transform:
        rotate(15deg);

    background:

        linear-gradient(
            90deg,
            rgba(161,204,255,.28),
            rgba(43,147,235,.60),
            rgba(17,112,203,.76)
        );
}


/* RIBBON IZQUIERDA */

.ribbon-four {

    width: 700px;
    height: 190px;

    left: -370px;
    bottom: -60px;

    transform:
        rotate(24deg);

    background:

        linear-gradient(
            90deg,
            rgba(86,149,245,.65),
            rgba(120,184,255,.38),
            rgba(89,219,232,.28)
        );
}


/* ==========================================================
   HEADER
========================================================== */

.topbar {

    position: relative;

    z-index: 10;

    width: min(1320px, 90%);

    margin:
        0 auto;

    padding:
        38px 0 15px;

    display: flex;

    align-items: center;

    justify-content: space-between;
}


/* ==========================================================
   LOGOS CEDECSI + DISTRILUZ
========================================================== */

.brand-group {

    display: flex;
    align-items: center;

    gap: 22px;
}


.brand {

    display: flex;
    align-items: center;

    text-decoration: none;
}


.brand-partner {

    display: flex;
    align-items: center;
}


.brand-logo {

    width: auto;
    height: auto;

    display: block;

    object-fit: contain;
}


/* CEDECSI */

.brand-logo-cedecsi {

    width: 245px;
}


/* SEPARADOR */

.brand-divider {

    width: 1px;
    height: 45px;

    background:
        linear-gradient(
            to bottom,
            transparent,
            rgba(38, 72, 112, .30),
            transparent
        );
}


/* DISTRILUZ */

.brand-logo-distriluz {

    width: 260px;
}


.secure-badge {

    display: flex;

    align-items: center;

    gap: 10px;

    padding:
        10px 15px;

    border:
        1px solid
        rgba(255,255,255,.75);

    border-radius: 30px;

    background:
        rgba(255,255,255,.40);

    backdrop-filter:
        blur(18px);

    -webkit-backdrop-filter:
        blur(18px);

    box-shadow:
        0 8px 25px
        rgba(53,99,160,.08);

    color: #354a68;

    font-size: 12px;
}


.secure-dot {

    width: 8px;
    height: 8px;

    border-radius: 50%;

    background: #00c779;

    box-shadow:
        0 0 9px
        rgba(0,199,121,.50);
}


.secure-badge svg {

    width: 17px;
    height: 17px;

    color: #526a8c;
}


/* ==========================================================
   CONTENIDO
========================================================== */

.main-container {

    position: relative;

    z-index: 5;

    width: min(1320px, 90%);

    flex: 1;

    margin: auto;

    padding:
        35px 0 55px;

    display: grid;

    grid-template-columns:
        minmax(0, 1.05fr)
        minmax(420px, .95fr);

    gap: clamp(50px, 7vw, 110px);

    align-items: center;
}


/* ==========================================================
   PRESENTACIÓN
========================================================== */

.presentation {

    max-width: 620px;
}


.eyebrow {

    margin-bottom: 23px;

    color: #0c5fd6;

    font-size: 12px;

    font-weight: 700;

    letter-spacing: 4px;
}


.presentation h1 {

    max-width: 600px;

    font-size:
        clamp(
            48px,
            5.3vw,
            76px
        );

    line-height: 1.03;

    font-weight: 600;

    letter-spacing: -3.5px;

    color: #0d1d38;
}


.presentation h1 span {

    display: block;
}


.presentation-text {

    max-width: 540px;

    margin-top: 25px;

    color: #4e6280;

    font-size: 16px;

    line-height: 1.7;

    letter-spacing: .2px;
}


/* ==========================================================
   FEATURE GRID
========================================================== */

.feature-grid {

    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 13px;

    margin-top: 38px;
}


.feature-card {

    min-height: 105px;

    padding: 17px;

    display: flex;

    align-items: center;

    gap: 15px;

    border:
        1px solid
        rgba(255,255,255,.82);

    border-radius: 15px;

    background:
        rgba(255,255,255,.48);

    backdrop-filter:
        blur(18px);

    -webkit-backdrop-filter:
        blur(18px);

    box-shadow:
        0 10px 28px
        rgba(42,90,150,.08);

    transition:
        transform .25s ease,
        background .25s ease,
        box-shadow .25s ease;
}


.feature-card:hover {

    transform:
        translateY(-3px);

    background:
        rgba(255,255,255,.66);

    box-shadow:
        0 15px 35px
        rgba(42,90,150,.12);
}


.feature-icon {

    width: 52px;
    height: 52px;

    flex-shrink: 0;

    display: flex;

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

    border-radius: 14px;
}


.feature-icon svg {

    width: 27px;
    height: 27px;
}


.feature-icon.blue {

    color: #1765df;

    background:
        rgba(66,139,255,.14);
}


.feature-icon.purple {

    color: #6256e8;

    background:
        rgba(111,89,235,.12);
}


.feature-icon.green {

    color: #00a968;

    background:
        rgba(0,185,111,.12);
}


.feature-icon.orange {

    color: #e68b12;

    background:
        rgba(239,158,48,.14);
}


.feature-content {

    min-width: 0;

    display: flex;

    flex-direction: column;

    gap: 6px;
}


.feature-content strong {

    color: #14233b;

    font-size: 13px;

    font-weight: 600;
}


.feature-content span {

    color: #5c708b;

    font-size: 11px;

    line-height: 1.5;
}


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

.login-column {

    width: 100%;

    display: flex;

    justify-content: flex-end;
}


.login-card {

    width: 100%;

    max-width: 530px;

    padding:
        58px
        54px
        40px;

    border:
        1px solid
        rgba(255,255,255,.90);

    border-radius: 29px;

    background:

        linear-gradient(
            145deg,
            rgba(255,255,255,.72),
            rgba(226,240,255,.57)
        );

    backdrop-filter:
        blur(30px)
        saturate(120%);

    -webkit-backdrop-filter:
        blur(30px)
        saturate(120%);

    box-shadow:

        0 30px 70px
        rgba(38,88,150,.16),

        inset 0 1px 0
        rgba(255,255,255,.90);
}


.login-card-header {

    margin-bottom: 38px;
}


.login-card-header h2 {

    color: #0d1d38;

    font-size: 42px;

    font-weight: 600;

    letter-spacing: -1.8px;
}


.login-card-header p {

    margin-top: 10px;

    color: #536983;

    font-size: 14px;
}


/* ==========================================================
   ERROR
========================================================== */

.login-error {

    display: flex;

    align-items: center;

    gap: 10px;

    margin-bottom: 18px;

    padding:
        12px
        14px;

    border:
        1px solid
        rgba(207,62,78,.18);

    border-radius: 11px;

    background:
        rgba(255,230,233,.72);

    color: #a52639;

    font-size: 12px;
}


.error-icon {

    width: 20px;
    height: 20px;

    flex-shrink: 0;

    display: flex;

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

    border-radius: 50%;

    color: white;

    background: #d54d61;

    font-size: 11px;

    font-weight: 700;
}


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

.input-box {

    position: relative;

    margin-bottom: 17px;
}


.input-box input {

    width: 100%;

    height: 67px;

    padding:
        0 58px;

    outline: none;

    border:
        1px solid
        rgba(255,255,255,.92);

    border-radius: 13px;

    background:
        rgba(255,255,255,.55);

    box-shadow:

        inset 0 1px 0
        rgba(255,255,255,.90),

        0 6px 18px
        rgba(50,90,145,.06);

    color: #263b59;

    font-size: 14px;

    transition:
        border .2s ease,
        box-shadow .2s ease,
        background .2s ease;
}


.input-box input::placeholder {

    color: #607391;
}


.input-box input:focus {

    border-color:
        rgba(44,120,226,.55);

    background:
        rgba(255,255,255,.76);

    box-shadow:

        0 0 0 3px
        rgba(44,120,226,.08),

        0 8px 22px
        rgba(50,90,145,.08);
}


.input-icon {

    position: absolute;

    z-index: 2;

    left: 19px;

    top: 50%;

    transform:
        translateY(-50%);

    color: #536b94;
}


.input-icon svg {

    width: 24px;
    height: 24px;

    display: block;
}


.password-toggle {

    position: absolute;

    right: 19px;

    top: 50%;

    transform:
        translateY(-50%);

    padding: 3px;

    border: 0;

    outline: none;

    background: transparent;

    color: #536b94;

    cursor: pointer;
}


.password-toggle:hover,
.password-toggle.active {

    color: #1265dc;
}


.password-toggle svg {

    width: 23px;
    height: 23px;

    display: block;
}


/* ==========================================================
   OPCIONES
========================================================== */

.login-options {

    margin:
        24px 0 30px;
}


.remember {

    display: inline-flex;

    align-items: center;

    gap: 10px;

    color: #465d7c;

    font-size: 13px;

    cursor: pointer;
}


.remember input {

    position: absolute;

    opacity: 0;

    pointer-events: none;
}


.custom-checkbox {

    position: relative;

    width: 20px;
    height: 20px;

    border:
        1px solid
        #8da5c5;

    border-radius: 4px;

    background:
        rgba(255,255,255,.52);
}


.remember input:checked +
.custom-checkbox {

    border-color: #1468e8;

    background: #1468e8;
}


.remember input:checked +
.custom-checkbox::after {

    content: '';

    position: absolute;

    left: 6px;
    top: 2px;

    width: 5px;
    height: 10px;

    border:
        solid white;

    border-width:
        0 2px 2px 0;

    transform:
        rotate(45deg);
}


/* ==========================================================
   BOTÓN
========================================================== */

.login-button {

    width: 100%;

    height: 67px;

    border: 0;

    border-radius: 13px;

    display: flex;

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

    gap: 25px;

    cursor: pointer;

    color: white;

    background:

        linear-gradient(
            100deg,
            #0b56d2,
            #2475e8
        );

    box-shadow:
        0 15px 30px
        rgba(13,87,205,.22);

    font-size: 14px;

    font-weight: 700;

    letter-spacing: 3px;

    transition:
        transform .2s ease,
        box-shadow .2s ease,
        background .2s ease;
}


.login-button:hover {

    transform:
        translateY(-2px);

    background:

        linear-gradient(
            100deg,
            #084dbf,
            #1769db
        );

    box-shadow:
        0 18px 35px
        rgba(13,87,205,.28);
}


.login-button svg {

    width: 23px;
    height: 23px;
}


/* ==========================================================
   AUTORIZACIÓN
========================================================== */

.authorized {

    margin-top: 30px;

    padding-top: 25px;

    border-top:
        1px solid
        rgba(77,111,155,.12);

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 9px;

    color: #5c708c;

    font-size: 11px;
}


.authorized svg {

    width: 20px;
    height: 20px;

    color: #567096;
}


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

.footer {

    position: relative;

    z-index: 5;

    width: min(1320px, 90%);

    margin: auto;

    min-height: 70px;

    border-top:
        1px solid
        rgba(255,255,255,.62);

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 14px;

    color: #536986;

    font-size: 10px;
}


.footer-line {

    width: 1px;
    height: 14px;

    background:
        rgba(63,91,128,.30);
}


/* ==========================================================
   RESPONSIVE
========================================================== */

@media (max-width: 1050px) {

    .main-container {

        grid-template-columns:
            minmax(0, 1fr)
            minmax(390px, .85fr);

        gap: 40px;
    }


    .presentation h1 {

        font-size: 52px;
    }


    .brand-logo {

        width: 230px;
    }


    .login-card {

        padding:
            48px
            38px
            35px;
    }

}


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

@media (max-width: 820px) {

    .login-page {

        overflow-y: auto;
    }


    .topbar {

        width: 90%;

        padding-top: 25px;
    }


    .brand-logo {

        width: 205px;
    }


    .secure-badge span:nth-child(2) {

        display: none;
    }


    .secure-badge {

        padding:
            10px 12px;
    }


    .main-container {

        width:
            min(560px, 90%);

        display: flex;

        flex-direction: column;

        align-items: stretch;

        gap: 40px;

        padding:
            45px 0;
    }


    .presentation {

        max-width: none;

        text-align: center;
    }


    .eyebrow {

        font-size: 10px;

        letter-spacing: 3px;
    }


    .presentation h1 {

        max-width: none;

        font-size:
            clamp(
                42px,
                10vw,
                58px
            );

        letter-spacing: -2.5px;
    }


    .presentation-text {

        margin:
            22px auto 0;
    }


    .feature-grid {

        text-align: left;
    }


    .login-column {

        justify-content: center;
    }


    .login-card {

        max-width: 520px;
    }


    .ribbon-one {

        right: -600px;
    }


    .ribbon-two {

        right: -700px;
    }

}


/* ==========================================================
   CELULAR
========================================================== */

@media (max-width: 560px) {

    .topbar {

        width: 92%;
    }


    .brand-logo {

        width: 175px;
    }


    .main-container {

        width: 92%;

        padding-top: 30px;
    }


    .presentation h1 {

        font-size: 41px;

        letter-spacing: -2px;
    }


    .presentation-text {

        font-size: 13px;

        line-height: 1.65;
    }


    .feature-grid {

        grid-template-columns: 1fr;

        gap: 10px;
    }


    .feature-card {

        min-height: 85px;
    }


    .login-card {

        padding:
            40px
            22px
            30px;

        border-radius: 24px;
    }


    .login-card-header h2 {

        font-size: 34px;
    }


    .input-box input {

        height: 60px;
    }


    .login-button {

        height: 61px;
    }


    .footer {

        flex-direction: column;

        gap: 4px;

        padding:
            18px 0;

        text-align: center;
    }


    .footer-line {

        display: none;
    }

}

/* ==========================================================
   CEDECSI - ADAPTACIÓN AUTOMÁTICA A CUALQUIER PANTALLA
   Pegar AL FINAL de login.css
========================================================== */


/* ----------------------------------------------------------
   ESCALADO GENERAL DE ESCRITORIO
---------------------------------------------------------- */

.topbar {
    width: min(1320px, 90%);
    padding-top: clamp(18px, 3vh, 38px);
    padding-bottom: clamp(8px, 1.5vh, 15px);
}

.brand-logo-cedecsi {
    width: clamp(155px, 17vw, 245px);
}

.brand-logo-distriluz {
    width: clamp(145px, 16vw, 230px);
}

.brand-divider {
    height: clamp(32px, 5vh, 45px);
}


/* ----------------------------------------------------------
   CONTENIDO PRINCIPAL
---------------------------------------------------------- */

.main-container {
    width: min(1320px, 90%);

    padding-top: clamp(15px, 3vh, 35px);
    padding-bottom: clamp(20px, 4vh, 55px);

    gap: clamp(35px, 6vw, 100px);
}


/* ----------------------------------------------------------
   TÍTULO
---------------------------------------------------------- */

.eyebrow {
    margin-bottom: clamp(12px, 2vh, 23px);

    font-size: clamp(9px, .85vw, 12px);
}

.presentation h1 {
    font-size: clamp(42px, 5vw, 76px);
    line-height: 1.02;
}

.presentation-text {
    margin-top: clamp(14px, 2.5vh, 25px);

    font-size: clamp(13px, 1.1vw, 16px);
}


/* ----------------------------------------------------------
   TARJETAS IZQUIERDA
---------------------------------------------------------- */

.feature-grid {
    margin-top: clamp(20px, 3.5vh, 38px);
    gap: clamp(9px, 1vw, 13px);
}

.feature-card {
    min-height: clamp(78px, 11vh, 105px);

    padding: clamp(11px, 1.3vw, 17px);
}

.feature-icon {
    width: clamp(42px, 4vw, 52px);
    height: clamp(42px, 4vw, 52px);
}

.feature-icon svg {
    width: clamp(21px, 2vw, 27px);
    height: clamp(21px, 2vw, 27px);
}


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

.login-card {
    max-width: 530px;

    padding:
        clamp(30px, 5vh, 58px)
        clamp(30px, 4vw, 54px)
        clamp(25px, 4vh, 40px);
}

.login-card-header {
    margin-bottom: clamp(22px, 4vh, 38px);
}

.login-card-header h2 {
    font-size: clamp(32px, 3vw, 42px);
}

.login-card-header p {
    margin-top: 7px;

    font-size: clamp(11px, 1vw, 14px);
}


/* ----------------------------------------------------------
   INPUTS
---------------------------------------------------------- */

.input-box {
    margin-bottom: clamp(11px, 2vh, 17px);
}

.input-box input {
    height: clamp(52px, 7vh, 67px);

    font-size: clamp(12px, 1vw, 14px);
}


/* ----------------------------------------------------------
   OPCIONES
---------------------------------------------------------- */

.login-options {
    margin:
        clamp(15px, 2.5vh, 24px)
        0
        clamp(18px, 3vh, 30px);
}


/* ----------------------------------------------------------
   BOTÓN
---------------------------------------------------------- */

.login-button {
    height: clamp(54px, 7vh, 67px);
}


/* ----------------------------------------------------------
   TEXTO INFERIOR DEL LOGIN
---------------------------------------------------------- */

.authorized {
    margin-top: clamp(18px, 3vh, 30px);

    padding-top: clamp(15px, 2.5vh, 25px);
}


/* ----------------------------------------------------------
   FOOTER
---------------------------------------------------------- */

.footer {
    min-height: clamp(45px, 7vh, 70px);
}


/* ==========================================================
   LAPTOPS CON POCA ALTURA
   ESTE ES TU CASO
========================================================== */

@media (min-width: 821px) and (max-height: 800px) {

    .topbar {
        padding-top: 18px;
        padding-bottom: 5px;
    }

    .brand-logo-cedecsi {
        width: 190px;
    }

    .brand-logo-distriluz {
        width: 185px;
    }

    .brand-divider {
        height: 38px;
    }

    .main-container {
        padding-top: 10px;
        padding-bottom: 15px;

        gap: 60px;
    }

    .eyebrow {
        margin-bottom: 13px;

        font-size: 9px;
    }

    .presentation h1 {
        font-size: clamp(42px, 4.5vw, 60px);
        line-height: 1.01;
    }

    .presentation-text {
        margin-top: 15px;

        font-size: 13px;
        line-height: 1.55;
    }

    .feature-grid {
        margin-top: 20px;

        gap: 9px;
    }

    .feature-card {
        min-height: 76px;

        padding: 11px;
    }

    .feature-icon {
        width: 42px;
        height: 42px;

        border-radius: 11px;
    }

    .feature-icon svg {
        width: 21px;
        height: 21px;
    }

    .feature-content strong {
        font-size: 11px;
    }

    .feature-content span {
        font-size: 9px;
    }


    /* LOGIN MÁS COMPACTO */

    .login-card {
        padding:
            32px
            38px
            25px;

        border-radius: 24px;
    }

    .login-card-header {
        margin-bottom: 23px;
    }

    .login-card-header h2 {
        font-size: 34px;
    }

    .login-card-header p {
        margin-top: 6px;

        font-size: 11px;
    }

    .input-box {
        margin-bottom: 12px;
    }

    .input-box input {
        height: 54px;

        font-size: 12px;
    }

    .input-icon svg {
        width: 20px;
        height: 20px;
    }

    .password-toggle svg {
        width: 19px;
        height: 19px;
    }

    .login-options {
        margin:
            15px
            0
            18px;
    }

    .remember {
        font-size: 11px;
    }

    .login-button {
        height: 54px;

        font-size: 12px;
    }

    .authorized {
        margin-top: 17px;

        padding-top: 15px;

        font-size: 9px;
    }

    .authorized svg {
        width: 17px;
        height: 17px;
    }

    .footer {
        min-height: 42px;
    }

}


/* ==========================================================
   LAPTOPS TODAVÍA MÁS PEQUEÑAS
========================================================== */

@media (min-width: 821px) and (max-height: 680px) {

    .topbar {
        padding-top: 10px;
    }

    .brand-logo-cedecsi {
        width: 165px;
    }

    .brand-logo-distriluz {
        width: 160px;
    }

    .main-container {
        padding-top: 5px;
        padding-bottom: 8px;
    }

    .presentation h1 {
        font-size: 45px;
    }

    .presentation-text {
        margin-top: 10px;
    }

    .feature-grid {
        margin-top: 13px;
    }

    .feature-card {
        min-height: 65px;
    }

    .login-card {
        padding:
            24px
            32px
            20px;
    }

    .login-card-header {
        margin-bottom: 16px;
    }

    .login-card-header h2 {
        font-size: 30px;
    }

    .input-box input {
        height: 48px;
    }

    .login-options {
        margin:
            10px
            0
            13px;
    }

    .login-button {
        height: 49px;
    }

    .authorized {
        margin-top: 12px;
        padding-top: 12px;
    }

    .footer {
        min-height: 32px;
    }

}