:root {
    /* Memaksa warna primary Bootstrap menjadi hijau */
    --bs-primary: #198754;
    --bs-primary-rgb: 25, 135, 84;
}

body {
    background-color: #f4f6f9;
}

/* Tombol dan Link akan otomatis mengikuti warna primary (hijau) */
.btn-primary {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
}
.btn-primary:hover {
    background-color: #157347;
    border-color: #146c43;
}
a {
    color: var(--bs-primary);
    text-decoration: none;
}
a:hover {
    color: #146c43;
}

/* Layout Sidebar */
.wrapper {
    display: flex;
    min-height: 100vh;
}
.sidebar {
    width: 250px;
    background-color: #1a2e22; /* Hijau gelap (charcoal green) untuk kontras */
    color: white;
    padding-top: 20px;
}
.sidebar h4 {
    text-align: center;
    margin-bottom: 20px;
    color: #58d68d;
}
.sidebar a {
    color: #d1d3d8;
    text-decoration: none;
    display: block;
    padding: 12px 20px;
    border-bottom: 1px solid #2e4135;
}
.sidebar a:hover {
    background-color: #2e4135;
    color: #ffffff;
}
.sidebar a.active {
    background-color: #198754; /* Hijau saat menu aktif */
    color: white;
}
.content {
    flex: 1;
    padding: 20px;
}
.top-bar {
    background: white;
    padding: 15px 20px;
    margin-bottom: 20px;
    border-radius: 5px;
    box-shadow: 0 0 10px rgba(0,0,0,0.1);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* ========================================= */
/* RESPONSIVE LAYOUT UNTUK TABLET & HP        */
/* ========================================= */

/* Untuk Tablet (di bawah 992px) dan HP */
@media (max-width: 991.98px) {
    .wrapper {
        flex-direction: column; /* Sidebar dan Content jadi menumpuk ke bawah */
    }

    .sidebar {
        width: 100%; /* Sidebar memenuhi lebar layar */
        min-height: auto;
        position: relative;
        padding-bottom: 20px;
    }

    .content {
        width: 100%;
        padding: 15px; /* Mengurangi padding agar tidak sempit di HP */
    }

    .top-bar {
        padding: 10px 15px;
        flex-wrap: wrap; /* Biarkan elemen di dalam top-bar turun ke bawah jika tidak muat */
        gap: 10px;
    }
}

/* Khusus untuk HP Kecil (di bawah 576px) */
@media (max-width: 575.98px) {
    .sidebar h4 {
        font-size: 1.2rem;
    }
    
    .top-bar {
        flex-direction: column; /* Elemen di top-bar bertumpuk ke bawah */
        align-items: flex-start;
    }
}