*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html,body{
    width:100%;
    min-height:100%;
}

body{
    font-family:Arial,Helvetica,sans-serif;
    background:linear-gradient(135deg,#092b1d,#1f7049);
    min-height:100vh;
    overflow-x:hidden;
}


/* CONTAINER UTAMA */

.login-container{
    width:100%;
    min-height:100vh;

    display:flex;
    align-items:center;
    justify-content:center;

    gap:70px;

    padding:50px;
}


/* GAMBAR KIRI */

.login-image{
    width:480px;
    flex-shrink:0;

    text-align:center;
    color:white;
}

.login-image img{
    display:block;

    width:100%;
    height:320px;

    object-fit:contain;

    filter:drop-shadow(0 15px 20px rgba(0,0,0,.4));
}

.login-image h1{
    font-size:38px;
    margin-top:15px;
}

.login-image p{
    font-size:16px;
    margin-top:10px;

    opacity:.85;
}


/* LOGIN BOX */

.login-box{
    width:420px;
    flex-shrink:0;
}

.card{
    width:100%;

    background:white;

    border-radius:20px;

    overflow:hidden;

    box-shadow:
    0 20px 50px rgba(0,0,0,.35);
}


/* HEADER LOGIN */

.card-header{
    background:#207448;

    text-align:center;

    padding:30px 20px;
}

.card-header h2{
    color:white;

    font-size:32px;

    margin-bottom:8px;
}

.card-header h2 span{
    color:#f5c542;
}

.card-header p{
    color:white;

    font-size:15px;
}


/* ISI */

.card-body{
    padding:35px;
}

.login-title{
    text-align:center;

    color:#555;

    font-size:15px;

    margin-bottom:25px;
}


/* INPUT */

.input-group{
    width:100%;

    display:flex;

    margin-bottom:18px;
}

.input-group input{
    width:100%;
    height:52px;

    padding:0 16px;

    border:1px solid #ddd;

    border-right:none;

    border-radius:9px 0 0 9px;

    font-size:15px;

    outline:none;
}

.input-group input:focus{
    border-color:#207448;
}

.input-group span{
    width:52px;
    height:52px;

    display:flex;

    align-items:center;
    justify-content:center;

    background:#f4f4f4;

    border:1px solid #ddd;

    border-radius:0 9px 9px 0;
}


/* BUTTON */

button{
    width:100%;
    height:52px;

    border:none;

    border-radius:9px;

    background:#207448;

    color:white;

    font-size:16px;

    font-weight:bold;

    cursor:pointer;

    transition:.3s;
}

button:hover{
    background:#155536;

    transform:translateY(-2px);

    box-shadow:0 5px 15px rgba(0,0,0,.2);
}


/* ERROR */

.alert{
    background:#ffe5e5;

    color:#b42318;

    border:1px solid #ffcccc;

    padding:12px;

    border-radius:8px;

    margin-bottom:20px;

    text-align:center;

    font-size:14px;
}


/* TABLET / HP */

@media(max-width:1000px){

    .login-container{
        flex-direction:column;

        gap:30px;

        padding:30px 20px;
    }

    .login-image{
        width:90%;
        max-width:480px;
    }

    .login-image img{
        height:230px;
    }

    .login-box{
        width:90%;
        max-width:420px;
    }

}


@media(max-width:500px){

    .login-container{
        padding:25px 15px;
    }

    .login-image img{
        height:170px;
    }

    .login-image h1{
        font-size:28px;
    }

    .login-image p{
        font-size:13px;
    }

    .card-body{
        padding:25px 20px;
    }

}