/* ============================================================
   17. PENYEMPURNAAN HP / TABLET (iOS dan Android)
   Dimuat paling akhir. Tampilan komputer tidak berubah.
   ============================================================ */

/* Tinggi layar yang benar di HP: 100vh di iOS/Android termasuk area bilah alamat, 100dvh tidak. */
.app-layout { min-height: 100vh; min-height: 100dvh; }
#landing-section { min-height: 100vh; min-height: 100dvh; }
.modal-content { max-height: 90vh; max-height: 90dvh; }

/* Area aman (poni / bilah gestur) - hanya berpengaruh di perangkat yang punya. */
.top-header { padding-left: max(30px, env(safe-area-inset-left)); padding-right: max(30px, env(safe-area-inset-right)); }
.sidebar { padding-left: env(safe-area-inset-left); }
.wa-float { right: max(20px, env(safe-area-inset-right)); bottom: max(20px, env(safe-area-inset-bottom)); }
#toast-container { top: max(20px, env(safe-area-inset-top)); right: max(20px, env(safe-area-inset-right)); }
.modal-overlay { padding-bottom: env(safe-area-inset-bottom); }
#login-section, #akses-section { padding-bottom: max(20px, env(safe-area-inset-bottom)); }

/* Cegah panel/grafik melebarkan halaman (penyebab geser samping di layar sempit). */
.panels-grid > *, .finance-summary-grid > *, .info-panel { min-width: 0; }
.info-panel canvas, .card canvas { max-width: 100%; }
img, video { max-width: 100%; }

/* Layar sentuh: huruf isian minimal 16px agar iOS tidak memperbesar halaman saat mengetik. */
@media (pointer: coarse), (max-width: 768px) {
    input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]),
    select, textarea { font-size: 16px !important; }
}

/* Layar sentuh: sasaran sentuh minimal 44px (pedoman Apple/Google). */
@media (pointer: coarse) {
    button, .btn, .btn-close, .hamburger-btn, .sidebar-nav-btn, select,
    input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]) { min-height: 44px; }
    .btn-close { min-width: 44px; }
    .hamburger-btn { min-width: 44px; }
    input[type="checkbox"], input[type="radio"] { min-width: 20px; min-height: 20px; }
}

/* Hilangkan kilatan biru saat disentuh dan tunda zoom ganda pada tombol. */
button, a, .btn { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
