body{
    margin:0;
    font-family:Arial, sans-serif;
    color:#fff;
    text-align:center;
    background:url('../img/background.png') no-repeat center center fixed;
    background-size:cover;
}

/* ================= TOPBAR ================= */
.topbar{
    min-height:70px;
    padding:10px 25px;
    background:rgba(178, 76, 76, 0.92);
    backdrop-filter:blur(6px);
    position:relative;
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;
    gap:15px;
}

/* ================= LOGO ================= */
.logo-box{
    display:flex;
    align-items:center;
    gap:10px;
}

.logo{
    height:70px;
    width:auto;
}

/* ================= BRAND TEXT ================= */
.brand-text{
    color:#fff;
    font-size:22px;
    font-weight:700;
    letter-spacing:1px;
    opacity:0.95;
}

/* ================= MENU ================= */
.menu-box{
    display:flex;
    align-items:center;
    gap:15px;
}

.topbar a{
    color:#fff;
    text-decoration:none;
    font-weight:600;
    font-size:15px;
    transition:0.2s;
}

.topbar a:hover{
    color:#ffe2e2;
}

/* ================= BOX ================= */
.box{
    min-height:calc(100vh - 70px);
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    padding:20px;
}

.box h1{
    color:#ffffff;
    font-size:28px;
    font-weight:700;
    margin-bottom:25px;
}

.box form{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    flex-wrap:wrap;
}




/* ================= INPUT ================= */
input{
    padding:12px;
    border-radius:10px;
    border:none;
    outline:none;
    font-size:15px;
    background:#e6e6e6;
    color:#111;
    transition:0.2s;
}

input:focus{
    box-shadow:0 0 8px rgba(178,76,76,0.4);
}

input::placeholder{
    color:#666;
}

/* ================= BUTTON ================= */
button{
    padding:12px 20px;
    background:#b24c4c;
    border:none;
    border-radius:10px;
    cursor:pointer;
    font-weight:600;
    color:#fff;
    transition:0.2s;
}

button:hover{
    background:#963d3d;
}

/* ================= IMAGE RESULT ================= */
.hasil img{
    margin-top:20px;
    max-width:500px;
    width:100%;
    border-radius:12px;
    box-shadow:0 8px 20px rgba(0,0,0,0.3);
}

/* ================= DOWNLOAD BUTTON ================= */
.btn-download{
    display:inline-block;
    padding:12px 25px;
    background:#b24c4c;
    color:#fff;
    text-decoration:none;
    border-radius:10px;
    font-weight:600;
    margin-top:15px;
    transition:0.3s;
}

.btn-download:hover{
    background:#963d3d;
}

/* ================= TEXT ================= */
p{
    margin-top:20px;
    font-size:16px;
    color:#ff6b6b;
}

/* ================= USER ICON ================= */
.user-icon img{
    width:50px;
    height:50px;
    object-fit:cover;
    transition:0.3s;
}

.user-icon img:hover{
    opacity:0.8;
    transform:scale(1.1);
}

/* ================= LOGIN ================= */
.login-container{
    display:flex;
    justify-content:center;
    align-items:center;
    min-height:100vh;
    padding:20px;
}

.login-box{
    width:100%;
    max-width:420px;
    background:rgba(0,0,0,0.55);
    padding:40px 30px;
    border-radius:16px;
    backdrop-filter:blur(12px);
    box-shadow:0 10px 30px rgba(0,0,0,0.3);
}

.login-box h1{
    margin-bottom:25px;
    color:#fff;
}

/* ================= DASHBOARD ================= */
.dashboard-box{
    margin-top:50px;
}

/* ================= ADMIN HEADER ================= */
.dashboard-title{
    font-size:22px;
    font-weight:700;
    color:#222;
    margin:0;
}

.dashboard-subtitle{
    font-size:13px;
    color:#888;
    margin-top:3px;
}

.admin-badge{
    display:inline-block;
    font-size:11px;
    padding:4px 12px;
    border-radius:20px;
    background:#f2f2f2;
    color:#555;
    font-weight:600;
    margin-bottom:6px;
}

/* ================= PREVIEW ================= */
.preview-img{
    margin:20px auto 0;
    max-width:300px;
    width:100%;
    border-radius:12px;
    display:none;
    box-shadow:0 8px 20px rgba(0,0,0,0.25);
}

/* ================= POPUP ================= */
.popup-preview{
    position:fixed;
    top:0;
    left:0;
    width:100%;
    height:100%;
    background:rgba(0,0,0,0.85);
    display:none;
    justify-content:center;
    align-items:center;
    z-index:9999;
    cursor:pointer;
    padding:20px;
}

.popup-preview img{
    max-width:90%;
    max-height:90%;
    border-radius:15px;
    box-shadow:0 10px 30px rgba(255,255,255,0.15);
}

.close-popup{
    position:absolute;
    top:20px;
    right:30px;
    font-size:40px;
    color:#fff;
    cursor:pointer;
    font-weight:bold;
    transition:0.2s;
}

.close-popup:hover{
    color:#ffb3b3;
}

/* ================= TABLE ================= */
.table-responsive{
    overflow-x:auto;
}

.table-img{
    width:65px;
    height:65px;
    object-fit:cover;
    border-radius:10px;
    cursor:pointer;
    transition:0.25s;
    box-shadow:0 5px 15px rgba(0,0,0,0.2);
}

.table-img:hover{
    transform:scale(1.08);
}

/* ================= REPORT CARD ================= */
.report-card{
    transition:0.3s;
    border-radius:18px;
    overflow:hidden;
}

.report-card:hover{
    transform:translateY(-5px);
}

.report-img{
    height:220px;
    object-fit:cover;
}

/* ================= SEARCH BOX ================= */
.search-box{
    width:350px;
    height:50px !important;
    font-size:16px;
    border-radius:12px;
}

/* ================= MOBILE ================= */
@media (max-width:768px){

    body{
        text-align:left;
    }

    .topbar{
        flex-direction:column;
        justify-content:center;
        text-align:center;
    }

    .logo-box{
        justify-content:center;
        width:100%;
    }

    .menu-box{
        justify-content:center;
        width:100%;
        flex-wrap:wrap;
    }

    .brand-text{
        font-size:18px;
    }

    .box{
        padding:15px;
    }

    .dashboard-title{
        font-size:18px;
    }

    .dashboard-subtitle{
        font-size:12px;
    }

    .table{
        font-size:13px;
    }

    .table-img{
        width:50px;
        height:50px;
    }

    .preview-img{
        max-width:100%;
    }

    .btn{
        font-size:13px;
    }

    .search-box{
        width:100%;
    }

    .close-popup{
        font-size:32px;
        right:20px;
    }

}

/* ================= MOBILE FIX ================= */
@media (max-width:768px){

    .dashboard-header{
        flex-direction:column;
        align-items:flex-start !important;
        gap:12px;
        margin-bottom:25px !important;
    }

    .dashboard-header .btn{
        width:100%;
    }

    .card-body{
        padding:20px !important;
    }

    .d-flex.justify-content-between{
        flex-direction:column;
        align-items:flex-start !important;
    }

    .search-box{
        margin-top:10px;
        width:100% !important;
    }

}

@media (max-width:768px){

    .container{
        max-width:100% !important;
        padding:10px !important;
    }

    .dashboard-header{
        margin-top:10px;
    }

    .dashboard-title{
        font-size:18px !important;
        line-height:1.3;
        word-break:break-word;
    }

    .dashboard-subtitle{
        font-size:12px !important;
    }

    .logout-btn{
        width:auto !important;
        min-width:50px;
        padding:8px 20px !important;
    }

    .card{
        width:100% !important;
        margin-bottom:20px;
    }

    .card-body{
        padding:15px !important;
    }

    .table-responsive{
        overflow-x:auto;
        -webkit-overflow-scrolling:touch;
    }

    .table{
        min-width:500px;
    }

}

/* DESKTOP */
.desktop-table{
    display:block;
}

.mobile-report{
    display:none;
}

/* MOBILE */
@media (max-width:768px){

    .desktop-table{
        display:none;
    }

    .mobile-report{
        display:block;
    }

    .report-mobile-card{
        background:#fff;
        border-radius:15px;
        padding:15px;
        margin-bottom:15px;
        box-shadow:0 5px 15px rgba(0,0,0,0.08);
    }

    .report-mobile-img{
        width:100%;
        height:180px;
        object-fit:cover;
        border-radius:10px;
        margin-bottom:10px;
        cursor:pointer;
    }

    .report-mobile-info h6{
        font-size:16px;
        font-weight:700;
        margin-bottom:10px;
        color:#222;
    }

    .report-mobile-info p{
        margin:4px 0;
        color:#555;
        font-size:14px;
    }

    .mobile-btn-group{
        display:flex;
        gap:8px;
        margin-top:10px;
    }

    .mobile-btn-group .btn{
        flex:1;
    }

}




@media (max-width:768px){

    .box{
        width:100%;
        padding:20px;
    }

    .box form{
        width:100%;
    }

    .box form input{
    width:80% !important;     /* lebar kotak */
    height:55px !important;   /* tinggi kotak */
    font-size:16px !important; /* ukuran tulisan */
}
    .box form button{
        width:100%;
        margin-top:10px;
    }

}

/* SEARCH BOX INDEX */
.box form input{
    width:500px;
    max-width:90%;
    height:55px;
    font-size:16px;
}

/* MOBILE */
@media (max-width:768px){

    .box form{
        flex-direction:column;
        width:100%;
    }

    .box form input{
        width:75% !important;
        height:50px !important;
        font-size:16px !important;
    }

    .box form button{
        width:75%;
        height:50px;
        margin-top:10px;
    }

}

/* SEARCH ID */
.box form input{
    width:600px;
    max-width:95%;
    height:65px;
    font-size:18px;
    padding:0 20px;
}

/* MOBILE */
@media (max-width:768px){

    .box form{
        flex-direction:column;
        width:100%;
    }

    @media (max-width:768px){

    .box form input{
        width:90% !important;
        height:60px !important;
        font-size:18px !important;
    }

    .box form button{
        width:90%;
        height:55px;
        font-size:16px;
    }

}