/* SPPG JANJI BILAH BARAT — V10.3.34c
   Tambahan CSS saja: perbaikan scroll tabel, interaksi sentuh dan tata letak mobile.
   Tidak mengubah JavaScript, API, data, hak akses, atau tema Navy & Gold.
*/
@media screen {
  /* Konten yang lebar tidak boleh membuat seluruh halaman melebar. */
  .app-main, .page-view, .page-view > .card, .card > .grid > * { min-width: 0; }

  /* Hindari overflow-y:visible yang menjadi auto ketika overflow-x:auto.
     Area tabel hanya men-scroll horizontal; scroll vertikal tetap milik halaman. */
  .tablewrap {
    display: block;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    overscroll-behavior-y: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
  }
  .tablewrap table { width: 100%; }

  /* Tap segera, tanpa mengubah onclick, submit, atau validasi. */
  button, [role="button"], a, select, summary { touch-action: manipulation; }
}

@media screen and (max-width: 800px) {
  /* Form dapat diketik nyaman tanpa zoom otomatis di Safari iPhone. */
  input:not([type="checkbox"]):not([type="radio"]),
  select, textarea { font-size: 16px; max-width: 100%; }
  textarea { min-width: 0; }

  /* Pertahankan navigasi yang dapat digeser secara vertikal sampai bawah,
     juga pada layar HP dengan browser toolbar yang berubah tinggi. */
  .side-nav {
    height: 100dvh;
    max-height: 100dvh;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    -webkit-overflow-scrolling: touch;
  }
  /* Hanya kunci halaman ketika sidebar mobile benar-benar terbuka. */
  body:has(#sideNav.open) { overflow-y: hidden; }

  /* Area sentuh tombol navigasi dan aksi utama minimal sekitar 44px. */
  .mobile-bar button,
  .nav-group-toggle,
  .side-nav .nav-btn,
  .page-view .actions button,
  .page-view form button[type="submit"],
  .page-view .row > button { min-height: 44px; }

  .mobile-bar { min-width: 0; }
  .mobile-bar strong { min-width: 0; overflow-wrap: anywhere; }
  .page-view .row, .page-view .actions { max-width: 100%; }
  .page-view .grid > * { min-width: 0; }

  /* Dialog umum tetap bisa digeser saat keyboard HP terbuka. */
  dialog.dialog { max-width: calc(100vw - 20px); max-height: calc(100dvh - 20px); overflow-y: auto; }
}

@media (hover: none) and (pointer: coarse) {
  /* Jangan memberi efek tombol terangkat saat sentuhan (sticky hover). */
  button:not(:disabled):hover, .nav-btn:hover { transform: none; }
}

@media print {
  /* Cetak/PDF tetap menampilkan keseluruhan kolom tabel. */
  .tablewrap { overflow: visible !important; }
  body:has(#sideNav.open) { overflow: visible !important; }
}
