/* ================================================
   Sistem Pelaporan Keuangan - Custom Style
   ================================================ */

body {
    background: #f5f7fb;
    font-size: 14px;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* ============ Layout ============ */
#wrapper {
    display: flex;
    min-height: 100vh;
}

#sidebar-wrapper {
    width: 240px;
    min-height: 100vh;
    transition: all 0.3s;
    flex-shrink: 0;
}

#sidebar-wrapper .sidebar-heading {
    font-size: 15px;
    background: #1a1d21;
}

#sidebar-wrapper .list-group-item {
    border: none;
    border-radius: 0;
    padding: 12px 20px;
    font-size: 14px;
    color: #adb5bd;
    transition: all 0.2s;
}

#sidebar-wrapper .list-group-item:hover:not(.active) {
    background: #2a2e33 !important;
    color: #fff;
}

#sidebar-wrapper .list-group-item.active {
    background: #0d6efd !important;
    color: #fff;
    font-weight: 500;
}

#sidebar-wrapper.toggled {
    margin-left: -240px;
}

#page-content-wrapper {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
}

/* ============ Navbar ============ */
.navbar {
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
    z-index: 100;
}

/* ============ Card ============ */
.card {
    border-radius: 8px;
    border: none;
}

.card.shadow-sm {
    box-shadow: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04) !important;
}

/* ============ Table ============ */
.table th {
    font-weight: 600;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #6c757d;
}

.table-hover tbody tr:hover {
    background: #f8f9fa;
}

.table td {
    vertical-align: middle;
}

/* ============ Badge ============ */
.badge {
    font-weight: 500;
    padding: 5px 10px;
    font-size: 11px;
}

/* ============ Buttons ============ */
.btn {
    border-radius: 6px;
    font-weight: 500;
}

.btn-sm {
    padding: 4px 8px;
    font-size: 12px;
}

/* ============ Login Page ============ */
.min-vh-100 {
    min-height: 100vh;
}

.login-card {
    border-radius: 12px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.1);
}

/* ============ Alert ============ */
.alert {
    border-radius: 8px;
    border: none;
}

/* ============ Form ============ */
.form-control, .form-select {
    border-radius: 6px;
    border: 1px solid #dee2e6;
}

.form-control:focus, .form-select:focus {
    border-color: #86b7fe;
    box-shadow: 0 0 0 3px rgba(13, 110, 253, 0.1);
}

/* ============ Responsive ============ */
@media (max-width: 768px) {
    #sidebar-wrapper {
        position: fixed;
        z-index: 1000;
        margin-left: -240px;
    }
    #sidebar-wrapper.toggled {
        margin-left: 0;
    }
    .container-fluid {
        padding: 15px;
    }
}

/* ============ Dashboard Cards ============ */
.card[style*="linear-gradient"] {
    transition: transform 0.2s;
}
.card[style*="linear-gradient"]:hover {
    transform: translateY(-3px);
}

/* ============ Progress Bar ============ */
.progress {
    background: #e9ecef;
    border-radius: 10px;
    overflow: hidden;
}
.progress-bar {
    transition: width 0.6s ease;
}

/* ============ Chart Canvas ============ */
canvas {
    max-width: 100%;
}

/* ============ Table Compact ============ */
.table-sm td, .table-sm th {
    padding: 8px 12px;
    font-size: 13px;
}

/* ============ Stat Icon Circle ============ */
.rounded-circle.p-3 {
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
}