/* OSIUN Expert Anti Overlap Final
   Tujuan: pertahankan tampilan existing, hanya cegah tumpuk/ketutup.
*/

html,
body {
  width: 100% !important;
  max-width: 100% !important;
  min-height: 100% !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
}

body {
  height: auto !important;
  min-height: 100dvh !important;
}

*,
*::before,
*::after {
  box-sizing: border-box !important;
}

main,
.app,
.shell,
.layout,
.grid,
.workspace,
.right,
.left,
.col,
.card,
section,
.panel {
  min-width: 0 !important;
  max-width: 100% !important;
}

/* Jangan paksa full viewport tinggi yang bikin bawah ketutup */
.shell,
.layout,
.grid,
.workspace,
.right,
.left,
.sidebar,
main {
  height: auto !important;
  min-height: 0 !important;
}

/* Kalau grid sempit, biarkan turun ke bawah */
.workspace,
.upload-grid,
.compact-grid,
.right,
.grid {
  align-items: start !important;
}

/* Area utama boleh memanjang ke bawah */
.card,
#expert-upload-source,
#expert-active-output,
#expert-output-database,
#expert-placement,
.osiun-bottom-card,
.osiun-bottom-database {
  position: relative !important;
  overflow: visible !important;
}

/* Upload jangan ketutup bawah */
#expert-upload-source,
.osiun-upload-core,
.upload-grid {
  height: auto !important;
  min-height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  padding-bottom: 40px !important;
}

/* List/file preview tetap bisa scroll kalau panjang */
#active-files,
.active-files,
.selected-files,
.osiun-selected-files-preview,
.osiun-upload-selected-duplicate {
  max-height: none !important;
  overflow: visible !important;
}

/* Tombol upload/generate tetap ikut alur normal, bukan ketutup */
#upload-to-active,
.osiun-upload-core .actions,
.actions {
  position: relative !important;
  z-index: 5 !important;
}

/* Modal tetap di tengah dan isi modal bisa discroll */
.output-modal,
.osiun-view-modal,
.osiun-row-view-modal,
.osiun-output-final-modal,
.db-output-view-modal,
.osiun-source-view-modal,
.osiun-expert-submission-modal {
  align-items: flex-start !important;
  overflow-y: auto !important;
  padding-top: 24px !important;
  padding-bottom: 48px !important;
}

.output-dialog,
.osiun-view-dialog,
.osiun-row-view-dialog,
.osiun-output-final-dialog,
.db-output-view-dialog,
.osiun-source-view-dialog,
.osiun-expert-submission-dialog {
  max-height: none !important;
  height: auto !important;
  overflow: visible !important;
  margin-bottom: 48px !important;
}

/* Konten panjang jangan melebar keluar */
pre,
code,
textarea,
input,
select,
.file-title,
.file-meta,
.hint,
.meta {
  max-width: 100% !important;
  overflow-wrap: anywhere !important;
  word-break: break-word !important;
}

/* Mobile/tablet: semua turun 1 kolom */
@media (max-width: 1100px) {
  .grid,
  .workspace,
  .upload-grid,
  .compact-grid,
  .right {
    grid-template-columns: 1fr !important;
  }

  .left,
  .right,
  .col,
  .card {
    width: 100% !important;
  }
}
