/* =====================================================================
   mobile-compact.css
   Lapisan "kompak" untuk HP: semua halaman (publik, portal mahasiswa,
   dashboard dosen, dashboard admin, halaman sidebar S1/S2/D3, dll) --
   ukuran kartu/section/ikon/teks dikecilkan supaya tidak "gede-gede" di
   layar HP, grid multi-kolom diturunkan jadi 2 / 1 kolom.

   Dimuat otomatis oleh middleware InjeksiResponsif tepat setelah
   responsive-global.css (paling akhir di <head>), jadi halaman baru ikut
   tanpa edit satu per satu. Aturan memakai prefix `body` + !important di
   bagian ukuran supaya menang atas <style> inline per halaman.
   Hanya aktif di <= 768px; desktop tidak berubah sama sekali.
   ===================================================================== */

@media (max-width: 768px) {

    /* ---------- DASAR ---------- */
    body { font-size: 14px; }
    body h1 { font-size: clamp(20px, 5.6vw, 24px); }
    body h2 { font-size: clamp(17px, 4.8vw, 20px); }
    body h3 { font-size: clamp(15px, 4.2vw, 17px); }

    /* ---------- LAYOUT DASHBOARD (admin / dosen / mahasiswa / sidebar S1-S2-D3) ---------- */
    body .main-content {
        padding-left: 12px !important;
        padding-right: 12px !important;
        padding-bottom: 16px !important;
    }
    body .sidebar { width: 232px !important; padding: 16px 12px !important; }
    body .sidebar .menu li a,
    body .sidebar a { font-size: 13px; padding-top: 9px; padding-bottom: 9px; }
    body .menu-toggle { width: 38px; height: 38px; font-size: 16px; }

    /* topbar */
    body .topbar {
        padding: 10px 12px !important;
        margin-bottom: 14px !important;
        border-radius: 14px !important;
        gap: 8px !important;
    }
    body .topbar h2, body .topbar .page-title { font-size: 16px !important; }
    body .topbar .icon-btn { width: 34px !important; height: 34px !important; font-size: 14px; }
    body .topbar img.avatar, body .topbar .avatar { width: 32px !important; height: 32px !important; }
    body .module-header { margin-bottom: 14px !important; gap: 8px !important; }
    body .module-header .titlebox h2 { font-size: 18px !important; }
    body .module-header .titlebox p { font-size: 13px !important; }

    /* ---------- KARTU / SECTION: lebih rapat ---------- */
    body .table-card, body .management-card, body .report-card, body .chart-card,
    body .side-card, body .aktivitas-card, body .jadwal-card, body .academic-card,
    body .kalender-card, body .kal-card, body .mk-table-card,
    body .sj-card, body .th-card-box {
        padding: 14px !important;
        border-radius: 14px !important;
        margin-bottom: 14px !important;
    }
    body .kal-card { margin: 14px 0 !important; }
    body .table-card, body .management-card, body .report-card { margin-bottom: 14px; }

    /* kartu statistik: 2 kolom, angka & teks diperkecil */
    body .cards {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
        margin-bottom: 16px !important;
    }
    body .cards .card { padding: 12px 10px !important; border-radius: 12px !important; }
    body .cards .card h4 { font-size: 12px !important; margin-bottom: 6px !important; line-height: 1.3; }
    body .cards .card h1 { font-size: 24px !important; }

    /* portal mahasiswa: 3 kartu statistik berderet kecil */
    body .statistik {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 8px !important;
        margin-top: 14px !important;
    }
    body .stat-card { padding: 10px 6px !important; border-radius: 12px !important; }
    body .stat-card span { font-size: 10px !important; margin-bottom: 4px !important; letter-spacing: 0 !important; }
    body .stat-card h2 { font-size: 22px !important; }

    /* hero portal mahasiswa */
    body .hero-card { padding: 16px !important; border-radius: 14px !important; margin-bottom: 14px !important; }
    body .hero-left h2 { font-size: 20px !important; }
    body .hero-left p { font-size: 12.5px !important; line-height: 1.5; }
    body .hero-left button, body .hero-card button { padding: 9px 14px !important; font-size: 13px !important; }
    body .hero-right { margin-top: 12px !important; }
    body .hero-right img { max-height: 120px; width: auto; }

    /* menu cepat dosen */
    body .quickmenu-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; }
    body .quickmenu-card { padding: 12px !important; border-radius: 12px !important; }
    body .quickmenu-icon { width: 34px !important; height: 34px !important; font-size: 14px !important; margin-bottom: 8px !important; border-radius: 10px !important; }
    body .quickmenu-title { font-size: 12.5px !important; }
    body .quickmenu-desc { font-size: 11px !important; line-height: 1.4; }
    body .nilai-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }

    /* grid halaman -> 1 kolom */
    body .content-grid, body .bottom-grid, body .item-grid, body .manage-grid,
    body .th-split, body .ap-qr-grid, body .kal-body, body .soal-kelola-layout,
    body .ujian-cal-body, body .ktm-grid-container, body .detail-grid,
    body .kontak-page .kontak-grid, body .detail-form-grid, body .pf-columns,
    body .pf-second-row, body .pf-grid, body .sambutan-page .sambutan-layout,
    body .surat-card, body .pasca-grid, body .yd-grid--2, body .yd-grid--3,
    body .yudisium-grid, body .lh-row, body .form-row-two, body .detail-info-grid,
    body .upload-grid, body .ringkasan-grid, body .info-ujian-grid,
    body .bta-pembimbing-row, body .gc-kerjasama-form-row, body .gc-kerjasama-grid,
    body .gc-pmb-grid, body .logo-page .logo-showcase-grid,
    body .gc-about-container, body .gc-about-media {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 12px !important;
    }

    /* grid kartu -> 2 kolom kecil */
    body .th-modes, body .kx-stats, body .wkt-page .wkt-stats, body .ips-grid,
    body .lh-stat-row, body .academic-cards-grid, body .step-grid, body .yd-tiles,
    body .yd-mini, body .yd-downloads, body .hero-meta-grid,
    body .stat-row, body .layanan-menu-grid, body .gc-berita-lainnya-grid,
    body .gc-berita-grid, body .gc-karir-why,
    body .gc-help-grid, body .gc-brosur-grid, body .detail-grid.kartu,
    body .filosofi-grid, body .poster-gallery-grid, body .muri-grid,
    body .prodi-grid, body .dekan-grid, body .wr-grid, body .misi-grid,
    body .gc-stats-container, body .fitur .container, body .mk-support-grid,
    body .jadwal-evaluasi-page .stat-row, body .praktikum-praktik-page .stat-row,
    body .tutorial-online-page .stat-row, body .tutorial-online-s2-page .stat-row,
    body .tutorial-tatapmuka-page .stat-row {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }
    body .gc-mitra-grid, body .gc-mitra-grid-intl, body .prodi-level-grid,
    body .fakultas-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 8px !important;
    }
    body .stat-row > *, body .kx-stats > *, body .ringkasan-card, body .info-card {
        padding: 10px 12px !important;
    }

    /* ---------- TABEL ---------- */
    body .main-content table th,
    body .main-content table td,
    body .table-card table th,
    body .table-card table td,
    body .mk-table-card table th,
    body .mk-table-card table td {
        font-size: 12px !important;
        padding: 8px 9px !important;
    }
    body .table-pagination, body .table-pagination-nav { gap: 6px; flex-wrap: wrap; }

    /* ---------- MODAL / POPUP ---------- */
    body .modal-box, body .aksi-modal-box, body .presensi-modal-box,
    body .custom-modal-box, body .notif-panel {
        padding: 16px !important;
        border-radius: 14px !important;
        max-width: calc(100vw - 20px) !important;
        max-height: 90vh !important;
    }
    body .modal-box h3, body .aksi-modal-box h3 { font-size: 16px !important; margin-bottom: 12px !important; }
    body .modal-overlay { padding: 10px !important; }

    /* ---------- FORM & TOMBOL ---------- */
    body .form-group { margin-bottom: 10px !important; }
    body .form-group label { font-size: 12.5px !important; margin-bottom: 4px !important; }
    body .form-group input, body .form-group select, body .form-group textarea {
        padding: 9px 11px !important;
    }
    body .btn-teams, body .btn-detail, body .btn-cetak { padding: 8px 12px !important; font-size: 12.5px !important; }
    body .jadwal-item { padding: 10px 12px !important; }
    body .aktivitas-item { padding: 10px 12px !important; }
    body .filter-pill, body .filter-tab, body .aksi-tab { padding: 6px 12px !important; font-size: 12px !important; }

    /* ---------- KALENDER (mahasiswa & dosen) ---------- */
    body .kalender-body { gap: 14px !important; margin-top: 12px !important; }
    body .kalender-grid-wrap { flex: 1 1 100% !important; min-width: 0 !important; }
    body .kalender-detail { flex: 1 1 100% !important; min-width: 0 !important; }
    body .kalender-grid, body .kal-grid { gap: 3px !important; }
    body .kalender-day { aspect-ratio: 1 / 0.92 !important; font-size: 11px !important; border-radius: 7px !important; }
    body .kalender-dow, body .kal-dow span { font-size: 10px !important; }
    body .kalender-legend, body .kal-legend { gap: 8px 12px !important; font-size: 10.5px !important; }
    body .kalender-card-head h3, body .kal-head h3 { font-size: 15px !important; }
    body .kalender-card-sub, body .kal-sub { font-size: 11px !important; }
    body .kal-cell { aspect-ratio: 1 / 0.9 !important; border-radius: 7px !important; gap: 2px !important; }
    body .kal-cell b { font-size: 11.5px !important; }
    body .kal-cell.hari-ini b { width: 20px !important; height: 20px !important; }
    body .kal-dot { width: 6px !important; height: 6px !important; }
    body .kal-events { max-height: 260px !important; }
    body .kal-event { padding: 8px 10px !important; }
    body .kal-event-title { font-size: 12.5px !important; }
    body .kalender-event-item { padding: 8px 10px !important; }

    /* ---------- PROFIL PANEL (kanan, jadi blok biasa di HP) ---------- */
    body .profile-panel { padding: 14px !important; }

    /* ---------- HALAMAN PUBLIK: section tidak terlalu tinggi ---------- */
    body section { scroll-margin-top: 64px; }
    body .gc-section-title, body .section-title { font-size: clamp(17px, 5vw, 21px) !important; }
}

@media (max-width: 480px) {
    body .main-content { padding-left: 10px !important; padding-right: 10px !important; }
    body .cards .card h1 { font-size: 22px !important; }
    body .stat-card h2 { font-size: 20px !important; }
    body .gc-mitra-grid, body .gc-mitra-grid-intl, body .prodi-level-grid,
    body .fakultas-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
    body .th-modes { grid-template-columns: minmax(0, 1fr) !important; }
}
