/* ==========================
   BACKGROUND
========================== */

body{

    background:
        linear-gradient(
            135deg,
            #d9c7f3 0%,
            #edf7ee 55%,
            #ffffff 100%
        );

}


/* ==========================
   LAYOUT
========================== */

.background{

    width:100%;
    height:100vh;

}

.overlay{

    width:100%;
    height:100%;

    display:flex;
}


/* ==========================
   KOLOM KIRI
========================== */

.left-panel{

    flex:5;

    display:flex;

    flex-direction:column;

    justify-content:center;

}
.logo{

    font-size:70px;
    margin-bottom:15px;

}

.left h1{

    font-size:56px;

    color:#4f7c59;

    margin-bottom:15px;

}

.tagline{

    font-size:23px;

    color:#666;

    line-height:1.7;

    margin-bottom:45px;

}

.jam{

    margin-bottom:25px;

}

#hari{

    font-size:24px;
    font-weight:bold;
    color:#4f7c59;

}

#tanggal{

    margin-top:8px;

    font-size:18px;

    color:#777;

}

#jam{

    margin-top:10px;

    font-size:44px;

    color:#6f5ca8;

    font-weight:bold;

}

.ucapan{

    font-size:22px;

    color:#4f7c59;

}


/* ==========================
   KOLOM KANAN
========================== */

.right-panel{

    flex:2;

    display:flex;

    justify-content:center;

    align-items:center;

}
/*==================================================
LOGIN CARD
==================================================*/

.login-card{

    width:100%;
    max-width:980px;
    margin-left:40px;

    background:#fff;

    border-radius:28px;

    padding:45px;

    box-shadow:0 20px 50px rgba(0,0,0,.08);

}

.login-card h2{

    margin:0;

    font-size:38px;

    color:#4f7c59;

}

.subjudul{

    margin:12px 0 35px;

    color:#777;

    font-size:17px;

}


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

.login-content{

    display:flex;

    gap:35px;

    align-items:flex-start;

}


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

.login-guru{

    flex:2;

}
.manual-input{
    margin-top:20px;
}

.manual-input label{
    display:block;
    margin-bottom:6px;
    font-weight:600;
}

.manual-input input{
    width:100%;
    padding:10px 12px;
    border:1px solid #ddd;
    border-radius:10px;
    box-sizing:border-box;
}

.btn-cari-guru{
    width:100%;
    margin-top:10px;
    padding:10px;
    border:none;
    border-radius:10px;
    background:#2E7D32;
    color:#fff;
    cursor:pointer;
}
.btn-cari-guru:hover{

    background:#1B5E20;

}

/*==================================================
SCAN + HASIL
==================================================*/

.scan-wrapper{

    display:flex;

    gap:20px;

    align-items:flex-start;

    margin-bottom:25px;

}


/*==================================================
SCANNER
==================================================*/

.scan-box{

    flex:1;

    background:#fafafa;

    border:2px dashed #d7e5d8;

    border-radius:20px;

    padding:18px;

    text-align:center;

}

#reader{

    width:100%;

    max-width:260px;

    margin:auto;

}

.scan-info{

    margin-top:15px;

    background:#eef8f0;

    color:#3d7d48;

    padding:12px;

    border-radius:12px;

    font-size:14px;

}


/*==================================================
KARTU GURU
==================================================*/

.guru-card{

    width:240px;

    background:#f9fbfc;

    border-radius:20px;

    padding:22px;

    text-align:center;

    border:1px solid #e5ece8;

}

.guru-card img{

    width:95px;

    height:95px;

    object-fit:cover;

    border-radius:50%;

    margin-bottom:15px;

    border:5px solid #fff;

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

}

.guru-card h3{

    margin:0;

    color:#356859;

}

.guru-card p{

    margin:8px 0;

    color:#777;

}

.guru-card span{

    display:inline-block;

    margin-top:10px;

    padding:8px 16px;

    border-radius:30px;

    background:#eaf7ef;

    color:#2e7d32;

    font-size:13px;

    font-weight:bold;

}


/*==================================================
FORM PIN
==================================================*/

.form-login{

    margin-top:20px;

}

.form-login label{

    display:block;

    margin-bottom:8px;

    font-weight:bold;

    color:#555;

}

.form-login input{

    width:100%;

    padding:15px;

    border:1px solid #ddd;

    border-radius:15px;

    font-size:16px;

    outline:none;

    transition:.3s;

}

.form-login input:focus{

    border-color:#7bb17c;

    box-shadow:0 0 0 4px rgba(123,177,124,.15);

}


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

.btn-login{

    width:100%;

    margin-top:25px;

    border:none;

    border-radius:16px;

    padding:16px;

    font-size:17px;

    font-weight:bold;

    background:#72a56b;

    color:white;

    cursor:pointer;

    transition:.3s;

}

.btn-login:hover{

    background:#5f9158;

    transform:translateY(-2px);

}


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

.login-admin{

    flex:1;

    background:#f8fafc;

    border-radius:22px;

    padding:30px 25px;

    text-align:center;

    border:1px solid #e6ecef;

}

.admin-icon{

    font-size:70px;

    margin-bottom:18px;

}

.login-admin h3{

    margin-bottom:10px;

    color:#355f58;

}

.login-admin p{

    color:#777;

    line-height:1.7;

    font-size:14px;

    margin-bottom:25px;

}

.btn-admin{

    display:inline-block;

    background:#5b6d7a;

    color:white;

    text-decoration:none;

    padding:13px 28px;

    border-radius:14px;

    font-weight:bold;

    transition:.3s;

}

.btn-admin:hover{

    background:#40515f;

}


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

@media(max-width:1000px){

    .login-content{

        flex-direction:column;

    }

    .scan-wrapper{

        flex-direction:column;

    }

    .guru-card{

        width:100%;

    }

    .login-admin{

        width:100%;

    }

}
.buat-pin-box{

    margin-top:25px;

    padding:25px;

    border-radius:18px;

    background:#f8fff8;

    border:2px dashed #8fc98f;

    text-align:center;

}

.buat-pin-box h3{

    color:#3f7d53;

    margin-bottom:12px;

}

.buat-pin-box p{

    color:#666;

    margin-bottom:20px;

}

.btn-buat-pin{

    display:inline-block;

    padding:13px 28px;

    background:#58b368;

    color:white;

    border-radius:14px;

    text-decoration:none;

    font-weight:bold;

    transition:.3s;

}

.btn-buat-pin:hover{

    background:#3f9f55;

}
/*==========================================
LOGIN ADMIN
==========================================*/

.login-admin{

    background:#ffffff;

    border-radius:22px;

    padding:28px;

    box-shadow:0 12px 35px rgba(0,0,0,.08);

}

.login-admin form{

    display:flex;

    flex-direction:column;

    gap:12px;

    margin-top:18px;

}

.login-admin label{

    font-weight:600;

    color:#555;

}

.login-admin input{

    padding:12px 15px;

    border-radius:12px;

    border:1px solid #ddd;

    font-size:15px;

    transition:.25s;

}

.login-admin input:focus{

    outline:none;

    border-color:#8e7df3;

    box-shadow:0 0 0 3px rgba(142,125,243,.15);

}

.btn-admin{

    margin-top:10px;

    border:none;

    cursor:pointer;

    padding:14px;

    border-radius:14px;

    background:linear-gradient(135deg,#6f7bf7,#8b5cf6);

    color:white;

    font-size:15px;

    font-weight:600;

    transition:.25s;

}

.btn-admin:hover{

    transform:translateY(-2px);

}
.alert-success {
    background-color: #d4edda;
    color: #155724;
    border: 1px solid #c3e6cb;
    padding: 12px 16px;
    border-radius: 8px;
    margin-bottom: 20px;
    font-size: 14px;
    line-height: 1.5;
    text-align: center;
}

.alert-error{

    margin-top:15px;

    background:#ffe5e5;

    color:#c62828;

    padding:12px;

    border-radius:12px;

    font-size:14px;

}