/* =====================
   GLOBAL
===================== */

*{
    box-sizing:border-box;
}

html,
body{
    margin:0;
    padding:0;
}

body{
    font-family:"Segoe UI", Arial, sans-serif;

    background:linear-gradient(
        135deg,
        #ffffff,
        #dcdcdc
    );

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

    min-height:100dvh;
    padding:15px;
}


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

.box{
    width:100%;
    max-width:400px;

    background:white;

    padding:35px;

    border-radius:16px;

    box-shadow:0 8px 25px rgba(0,0,0,0.08);

    text-align:center;

    position:relative;
}


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

.logo img{
    width:100px;
    max-width:100%;
    height:auto;
}


/* =====================
   TITLE
===================== */

h2{
    margin:5px 0;
    font-weight:600;
}


/* =====================
   DESCRIPTION
===================== */

.desc{
    font-size:14px;
    color:#666;
    margin-bottom:20px;
}


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

input{
    width:100%;

    padding:12px;

    margin-top:10px;

    border-radius:8px;

    border:1px solid #ddd;

    font-size:14px;

    background:#fafafa;

    transition:.2s;
}

input:focus{
    outline:none;

    border:1px solid #4b1f7a;

    background:white;

    box-shadow:0 0 0 2px rgba(75,31,122,.15);
}


/* =====================
   REMEMBER
===================== */

.row{
    text-align:left;
    margin-top:8px;
}

.remember{
    font-size:13px;
    color:#555;
}

.remember input{
    width:auto;
    margin-right:5px;
}


/* =====================
   FORGOT PASSWORD
===================== */

.forgot{
    text-align:right;
    margin-top:6px;
    margin-bottom:10px;
}

.forgot a{
    font-size:13px;
    color:#4b1f7a;
    text-decoration:none;
    font-weight:500;
    transition:.2s;
}

.forgot a:hover{
    text-decoration:underline;
    color:#20092c;
}


/* =====================
   BUTTON
===================== */

button{
    width:100%;

    padding:12px;

    margin-top:15px;

    background:#4b1f7a;

    color:white;

    border:none;

    border-radius:10px;

    font-size:15px;

    font-weight:600;

    cursor:pointer;

    transition:.2s;
}

button:hover{
    background:#36145a;
}


/* =====================
   BOTTOM TEXT
===================== */

.bottom{
    margin-top:15px;
    font-size:14px;
}

.bottom a{
    color:#28064c;
    font-weight:600;
    text-decoration:none;
    margin-left:5px;
}

.bottom a:hover{
    text-decoration:underline;
}


/* =====================
   TOAST
===================== */

.toast-container{
    position:absolute;

    top:-2px;

    left:0;

    width:100%;

    display:flex;

    justify-content:center;

    pointer-events:none;
}

.toast{
    display:flex;

    align-items:center;

    gap:8px;

    padding:10px 18px;

    border-radius:999px;

    color:white;

    font-size:14px;

    font-weight:500;

    box-shadow:0 10px 25px rgba(0,0,0,.25);

    animation:toastDown .3s ease;
}

.toast-success{
    background:#34de28;
}

.toast-error{
    background:#e53935;
}

.toast-icon{
    font-size:16px;
}


/* =====================
   ANIMATION
===================== */

@keyframes toastDown{

    from{
        transform:translateY(-30px);
        opacity:0;
    }

    to{
        transform:translateY(0);
        opacity:1;
    }

}


/* =====================
   MOBILE / PWA
===================== */

@media (max-width:768px){

    html,
    body{
        width:100%;
        min-height:100%;
        margin:0;
        padding:0;

        background:#f2f3f7;

        overflow-x:hidden;
    }

    body{
        display:block;
    }

    .box{
        width:auto;

        max-width:none;

        min-height:calc(100dvh - 24px);

        margin:12px;

        background:#fff;

        border-radius:14px;

        box-shadow:0 2px 8px rgba(0,0,0,.05);

        display:flex;
        flex-direction:column;
        justify-content:center;
    }

    .logo img{
        width:90px;

    }

    h2{
        font-size:24px;
    }

    .desc{
        font-size:14px;
    }

    input{
        font-size:16px; 
        padding:14px;
    }

    button{
        font-size:16px;
        padding:14px;
    }

    .bottom{
        font-size:14px;
    }

    .forgot a{
        font-size:14px;
    }

    .toast-container{
        position:fixed;

        top:15px;

        left:0;

        width:100%;

        z-index:9999;
    }

    .toast{
        max-width:90%;
    }
}


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

@media (min-width:1200px){

    .box{
        max-width:450px;
    }

}