/* ============================================================
   Mobile-first base. 85% trafik dari mobile browser -> gaya
   default (tanpa media query) ditujukan untuk layar kecil dulu,
   baru ditambah/disesuaikan untuk layar lebih besar (min-width).
   ============================================================ */

body {
    background-color: #f5f7fb;
}

/* ---------- Login ---------- */
.km-login-wrapper {
    min-height: 100vh;
    display: flex;
    align-items: center;
    padding: 1.5rem;
}

.km-login-card {
    width: 100%;
    max-width: 400px;
    margin: 0 auto;
}

/* ---------- Sidebar / Offcanvas navigasi ----------
   #kmSidebarMenu adalah elemen <nav> offcanvas itu sendiri: Bootstrap
   memaksa elemen ber-class .offcanvas-lg jadi background-color:
   transparent !important begitu masuk breakpoint lg (supaya bisa
   berubah dari "drawer" jadi sidebar statis). Karena itu warna latar
   biru justru ditaruh di <div class="km-sidebar"> DI DALAM offcanvas,
   bukan di elemen offcanvas-nya sendiri. Lebar drawer/sidebar tetap
   diatur lewat variabel Bootstrap di elemen offcanvas-nya. */
#kmSidebarMenu {
    --bs-offcanvas-width: 260px;
}

.km-sidebar {
    background-color: #0d6efd;
}

.km-sidebar .nav-link {
    color: rgba(255, 255, 255, 0.85);
    padding: 0.75rem 1rem;
    border-radius: 0.5rem;
}

.km-sidebar .nav-link.active,
.km-sidebar .nav-link:hover {
    color: #fff;
    font-weight: 600;
    background-color: rgba(255, 255, 255, 0.15);
}

@media (min-width: 992px) {
    .km-sidebar {
        min-height: 100vh;
    }
}

/* ---------- Touch target lebih besar untuk mobile ---------- */
@media (max-width: 767.98px) {
    .btn {
        min-height: 44px;
        padding-top: 0.55rem;
        padding-bottom: 0.55rem;
    }

    .btn-sm {
        min-height: 38px;
    }

    .form-control,
    .form-select {
        min-height: 44px;
        font-size: 1rem; /* cegah auto-zoom Safari/Chrome saat fokus input */
    }
}

/* ---------- Daftar kartu (pengganti tabel di layar kecil) ---------- */
.km-card-list .km-item-card {
    border: 1px solid #e5e7eb;
    border-radius: 0.75rem;
    background: #fff;
}

.km-card-list .km-item-card + .km-item-card {
    margin-top: 0.75rem;
}

.km-badge-no {
    font-size: 1.1rem;
    font-weight: 700;
}
