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

:root{

    --primary:#2563EB;
    --primary-dark:#1E3A8A;
    --success:#22C55E;
    --text:#334155;
    --muted:#64748B;
    --border:#D7E0EC;
    --white:#FFFFFF;

}

*{

    margin:0;
    padding:0;
    box-sizing:border-box;

}

html,
body{

    width:100%;
    height:100%;

}

body{

    font-family:"Poppins","Segoe UI",sans-serif;

    display:flex;

    justify-content:center;

    align-items:center;

    overflow:hidden;

    position:relative;

    background:linear-gradient(
        135deg,
        #2563EB 0%,
        #1E40AF 55%,
        #1D4ED8 100%
    );

}

/* ========================================= */
/* Fundo                                     */
/* ========================================= */

body::before{

    content:"";

    position:absolute;

    width:700px;
    height:700px;

    border-radius:50%;

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

    top:-250px;
    left:-200px;

}

body::after{

    content:"";

    position:absolute;

    width:500px;
    height:500px;

    border-radius:50%;

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

    bottom:-180px;
    right:-150px;

}

/* ========================================= */

#page{

    width:100%;

    display:flex;

    justify-content:center;

    align-items:center;

    position:relative;

    z-index:5;

}

/* ========================================= */

.login-card{

    width:470px;

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

    backdrop-filter:blur(15px);

    border-radius:26px;

    padding:45px;

    box-shadow:

        0 35px 80px rgba(0,0,0,.20);

    animation:fadeUp .55s;

}

/* ========================================= */

.logo{

    width:90px;

    height:90px;

    margin:auto;

    display:flex;

    justify-content:center;

    align-items:center;

    border-radius:50%;

    background:linear-gradient(
        135deg,
        var(--primary),
        var(--primary-dark)
    );

    color:white;

    font-size:40px;

    box-shadow:

        0 12px 35px rgba(37,99,235,.35);

}

/* ========================================= */

.title{

    text-align:center;

    font-size:34px;

    font-weight:700;

    color:var(--primary-dark);

    margin-top:20px;

}

.subtitle{

    text-align:center;

    color:var(--muted);

    margin-top:8px;

    margin-bottom:35px;

}

/* ========================================= */

.form-label{

    color:var(--text);

    font-weight:600;

}

.form-control{

    height:56px;

    border-radius:14px;

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

    transition:.25s;

    padding-left:18px;

}

.form-control:focus{

    border-color:var(--primary);

    box-shadow:

        0 0 0 .2rem rgba(37,99,235,.15);

}

/* ========================================= */

.btn-login{

    height:58px;

    border-radius:14px;

    font-size:17px;

    font-weight:600;

    transition:.25s;

}

.btn-login:hover{

    transform:translateY(-2px);

    box-shadow:

        0 12px 25px rgba(37,99,235,.35);

}

/* ========================================= */

.login-footer{

    margin-top:30px;

    text-align:center;

    color:#94A3B8;

    font-size:13px;

}

/* ========================================= */
/* Loading                                   */
/* ========================================= */

body.loading #page{

    filter:blur(8px);

    transition:.35s;

}

#loadingOverlay{

    position:fixed;

    inset:0;

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

    backdrop-filter:blur(8px);

    display:flex;

    justify-content:center;

    align-items:center;

    z-index:99999;

}

.loading-card{

    width:420px;

    background:white;

    border-radius:24px;

    padding:45px;

    text-align:center;

    box-shadow:

        0 30px 60px rgba(0,0,0,.20);

}

.loading-card h3{

    color:var(--primary-dark);

    margin-top:20px;

    margin-bottom:15px;

    font-weight:700;

}

.loading-card p{

    color:var(--muted);

    margin-bottom:5px;

}

.loading-card small{

    color:#94A3B8;

}

/* ========================================= */

@keyframes fadeUp{

    from{

        opacity:0;

        transform:translateY(35px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

/* ========================================= */

@media(max-width:600px){

    .login-card{

        width:92%;

        padding:35px 25px;

    }

}