/* ============================================================
   Base & layout dasar
   ============================================================ */
body {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
    background: var(--bg-app);
    color: var(--ink);
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
    color: var(--ink);
    font-weight: 600;
}

a {
    color: var(--brand-600);
}

.text-muted {
    color: var(--ink-faint) !important;
}

.main-content {
    padding: 28px 32px;
    min-width: 0; /* biar flex child boleh menyusut & isi (tabel lebar) scroll sendiri, bukan mendorong layout */
}

/* Layout global "sticky footer" (hanya di layar; cetak dibiarkan normal):
     body (flex column, min 1 layar)
       ├─ .app-topbar
       ├─ .app-shell   <- flex: 1, mengisi sisa tinggi (sidebar + .main-content di dalamnya)
       └─ .app-footer  <- full-width, setelah semua konten
   Halaman pendek: .app-shell memanjang sehingga footer menempel di dasar layar.
   Halaman panjang: footer turun mengikuti akhir konten. BUKAN position:fixed.
   dvh (dynamic viewport) mengikuti tinggi layar AKTUAL di Android (URL bar
   muncul/hilang); vh sebagai fallback browser lama. */
@media screen {
    html {
        min-height: 100%;
    }

    body {
        min-height: 100vh;
        min-height: 100dvh;
        display: flex;
        flex-direction: column;
    }

    .app-topbar {
        flex-shrink: 0;
    }

    .app-shell {
        flex: 1 0 auto;
        width: 100%;
    }
}

/* Footer copyright global -- render sekali di app/views/layouts/footer.php, ikut
   di-include lewat main.php ke SEMUA halaman yang pakai layout utama (Controller::view()).
   Berada di luar .app-shell (sidebar+konten) sehingga selalu full-width.
   .no-print (utilities.css) menyembunyikannya saat dokumen dicetak (invoice/PO/dst). */
.app-footer {
    flex-shrink: 0;
    width: 100%;
    margin-top: auto;
    min-height: var(--footer-height);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 14px 32px;
    text-align: center;
    font-size: 12.5px;
    color: var(--ink-faint);
    background: var(--surface);
    border-top: 1px solid var(--border);
}

/* Page header pattern dipakai di hampir semua modul: judul + subjudul + aksi kanan */
.page-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    gap: 12px;
    flex-wrap: wrap;
}

.page-header h4 {
    margin-bottom: 2px;
}

/* ============================================================
   Sembunyikan scrollbar TANPA mematikan fungsi scroll.
   Berlaku untuk scroll HALAMAN & menu samping, di PC maupun HP.
   Scrollbar tabel lebar (.table-responsive) & isi modal SENGAJA
   dibiarkan tampil sebagai petunjuk "area ini bisa digeser".
   ============================================================ */
html,
body,
.sidebar,
.sidebar .offcanvas-body,
.main-content {
    scrollbar-width: none;      /* Firefox */
    -ms-overflow-style: none;   /* Edge / IE lama */
}

html::-webkit-scrollbar,
body::-webkit-scrollbar,
.sidebar::-webkit-scrollbar,
.sidebar .offcanvas-body::-webkit-scrollbar,
.main-content::-webkit-scrollbar {
    width: 0;
    height: 0;
    display: none;              /* Chrome / Safari / Edge */
}
