:root {
    --sky-blue: #87CEEB;
    --navy: #2c3e50;
}

body { font-family: 'Segoe UI', sans-serif; background: #f4f7f6; margin: 0; padding: 40px 20px; }
.container { max-width: 600px; margin: auto; }

.upload-card { background: white; padding: 30px; border-radius: 12px; box-shadow: 0 10px 25px rgba(0,0,0,0.05); border-top: 5px solid var(--sky-blue); }

.form-group { margin-bottom: 20px; }
label { display: block; font-weight: bold; margin-bottom: 8px; color: var(--navy); font-size: 0.9rem; }

input, select { 
    width: 100%; padding: 12px; border: 1px solid #ddd; border-radius: 8px; 
    box-sizing: border-box; font-size: 1rem;
}

.btn-upload { 
    width: 100%; background: var(--sky-blue); color: white; border: none; 
    padding: 15px; border-radius: 8px; font-weight: bold; cursor: pointer; font-size: 1rem;
}

.btn-view { text-decoration: none; display: block; text-align: center; margin-top: 15px; color: var(--navy); font-size: 0.9rem; }

/* Table Styling */
table { width: 100%; background: white; border-collapse: collapse; border-radius: 12px; overflow: hidden; box-shadow: 0 4px 15px rgba(0,0,0,0.05); }
th, td { padding: 15px; border-bottom: 1px solid #eee; text-align: left; }
th { background: var(--sky-blue); color: white; }

.badge-folder { background: #eef2f3; padding: 4px 8px; border-radius: 4px; font-size: 0.8rem; color: #7f8c8d; }
.btn-download { background: #2ecc71; color: white; text-decoration: none; padding: 6px 12px; border-radius: 4px; font-size: 0.85rem; }
.btn-delete { background: red; color: white; text-decoration: none; padding: 6px 12px; border-radius: 4px; font-size: 0.85rem; }


/* Gaya Modal Zoom */
.modal {
    display: none; 
    position: fixed; 
    z-index: 2000; 
    padding-top: 50px; 
    left: 0; top: 0;
    width: 100%; height: 100%;
    overflow: auto; 
    background-color: rgba(0,0,0,0.9); /* Latar hitam transparan */
    backdrop-filter: blur(5px);
}

.modal-content {
    margin: auto;
    display: block;
    width: 80%;
    max-width: 800px;
    border-radius: 8px;
    animation: zoomAnim 0.3s;
}

#captionModal {
    margin: auto;
    display: block;
    width: 80%;
    max-width: 700px;
    text-align: center;
    color: #ccc;
    padding: 15px 0;
    font-weight: bold;
}

.close-modal {
    position: absolute;
    top: 20px;
    right: 35px;
    color: #f1f1f1;
    font-size: 40px;
    font-weight: bold;
    cursor: pointer;
    transition: 0.3s;
}

.close-modal:hover { color: var(--sky-blue); }

@keyframes zoomAnim {
    from {transform: scale(0.7); opacity: 0;} 
    to {transform: scale(1); opacity: 1;}
}

/* Responsivitas Modal untuk HP */
@media only screen and (max-width: 700px){
    .modal-content { width: 95%; }
}