*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:'Segoe UI',sans-serif;
}

body{
    min-height:100vh;
    display:flex;
    justify-content:center;
    align-items:center;
    background:#f4f6fa;
    overflow:hidden;
}

/* Background */

body::before{
    content:"";
    position:absolute;
    inset:0;

    background:
    radial-gradient(circle at 10% 20%,rgba(0,0,0,.03) 0 2px,transparent 3px),
    radial-gradient(circle at 90% 15%,rgba(0,0,0,.03) 0 2px,transparent 3px),
    radial-gradient(circle at 80% 80%,rgba(0,0,0,.03) 0 2px,transparent 3px);

    background-size:180px 180px;
}

.wave{
    position:absolute;
    bottom:0;
    width:100%;
    height:35vh;

    background:
    linear-gradient(
        to top,
        rgba(53,116,255,.12),
        transparent
    );
}

.container{
    width:100%;
    max-width:420px;
    padding:20px;
    z-index:2;
}

.card{
    text-align:center;
}

/* Title */

.title{
    font-size:56px;
    font-weight:700;
    color:#1f57c8;
    line-height:1;
}

.subtitle{
    margin-top:10px;
    color:#334d7a;
    font-size:16px;
    font-weight:500;
    letter-spacing:.5px;
}

/* Form */

.form{
    margin-top:40px;
}

.input-group{
    position:relative;
    margin-bottom:18px;
}

.input-group i:not(.eye){
    position:absolute;
    left:22px;
    top:50%;
    transform:translateY(-50%);

    color:#9aa4b5;
    font-size:22px;
    z-index:2;
}

.input-group input{
    width:100%;
    height:62px;

    border:none;
    border-radius:18px;

    background:white;

    padding-left:62px;
    padding-right:62px;

    font-size:18px;

    box-shadow:
        0 4px 15px rgba(0,0,0,.08);

    transition:.2s;
}

.input-group input:focus{
    outline:none;

    box-shadow:
        0 0 0 3px rgba(43,108,255,.15),
        0 4px 15px rgba(0,0,0,.08);
}

.login-error{
    min-height:22px;
    margin-top:-6px;
    margin-bottom:14px;
    color:#dc2626;
    font-size:15px;
    font-weight:700;
    text-align:left;
}

.eye{
    position:absolute;

    left:auto;
    right:22px;

    top:50%;
    transform:translateY(-50%);

    color:#a5afc0;
    font-size:22px;

    cursor:pointer;
    z-index:10;

    transition:.2s ease;
}

.eye:hover{
    color:#2b6cff;
}

.eye:active{
    transform:translateY(-50%) scale(.95);
}

/* Button Login */

.btn-login{
    width:100%;
    height:64px;

    border:none;
    border-radius:18px;

    background:
    linear-gradient(
        90deg,
        #2259d9,
        #2b6cff
    );

    color:white;
    font-size:22px;
    font-weight:600;

    cursor:pointer;

    box-shadow:
        0 8px 20px rgba(43,108,255,.3);

    transition:.3s;
}

.btn-login:hover{
    transform:translateY(-2px);
}

/* OR */

.or{
    margin:20px 0;
    color:#6f7b90;
    font-size:18px;
}

/* QR */

.btn-qr{
    width:100%;
    height:62px;

    border:none;
    border-radius:18px;

    background:white;

    color:#2259d9;

    font-size:20px;
    font-weight:600;

    box-shadow:
        0 4px 15px rgba(0,0,0,.08);

    cursor:pointer;
}

.btn-qr i{
    margin-right:8px;
}

.footer{
    margin-top:25px;
    color:#64748b;
    font-size:14px;
}

/* Mobile */

@media(max-width:480px){

    .title{
        font-size:48px;
    }

    .subtitle{
        font-size:18px;
    }

    .input-group input{
        height:58px;
    }

    .btn-login,
    .btn-qr{
        height:58px;
    }
}
