/*
  Standarisasi font aplikasi.
  File ini sengaja dipasang hanya pada halaman non-editor soal.
  Tujuan: menyamakan font utama, ukuran teks dasar, dan header tabel tanpa mengubah layout/fungsi lain.
*/
:root {
  --app-font-family: "Segoe UI", Roboto, "Helvetica Neue", Arial, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  --app-text-size: 0.875rem;
  --app-small-text-size: 0.8125rem;
  --app-heading-size: 1rem;
  --app-table-head-size: 0.75rem;
  --app-line-height: 1.5;
}

html {
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  font-family: var(--app-font-family) !important;
  font-size: var(--app-text-size) !important;
  line-height: var(--app-line-height);
}

body,
.card,
.modal,
.dropdown-menu,
.table,
.alert,
.toast,
.tooltip,
.popover,
.navbar,
.offcanvas,
.btn,
.form-control,
.form-select,
.form-label,
.input-group-text,
.page-link,
.nav-link,
.dropdown-item,
.badge,
label,
button,
input,
select,
textarea {
  font-family: var(--app-font-family) !important;
}

p,
li,
td,
label,
button,
input,
select,
textarea,
.btn,
.form-control,
.form-select,
.input-group-text,
.dropdown-item,
.page-link,
.nav-link,
.list-group-item,
.alert,
.badge {
  font-size: var(--app-text-size) !important;
}

small,
.small {
  font-size: var(--app-small-text-size) !important;
}

h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
  font-family: var(--app-font-family) !important;
  font-size: var(--app-heading-size) !important;
  line-height: 1.25;
  font-weight: 600;
}

.table {
  font-size: var(--app-text-size) !important;
}

.table > :not(caption) > * > th,
table thead th {
  font-family: var(--app-font-family) !important;
  font-size: var(--app-table-head-size) !important;
  line-height: 1.25 !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.035em !important;
  vertical-align: middle !important;
}

.table > :not(caption) > * > td,
table tbody td {
  font-family: var(--app-font-family) !important;
  font-size: var(--app-text-size) !important;
  line-height: 1.4 !important;
  vertical-align: middle;
}

.table-responsive {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

@media (max-width: 575.98px) {
  :root {
    --app-text-size: 0.8125rem;
    --app-small-text-size: 0.75rem;
    --app-heading-size: 0.95rem;
    --app-table-head-size: 0.7rem;
  }

  main,
  .container,
  .container-fluid,
  .card,
  .modal-dialog,
  .table-responsive {
    min-width: 0;
  }

  .table > :not(caption) > * > th,
  table thead th,
  .table > :not(caption) > * > td,
  table tbody td {
    white-space: nowrap;
  }
}

/* Utility lokal untuk menurunkan ukuran teks satu tingkat tanpa mengubah layout. */
.app-font-size-down,
.badge.app-font-size-down,
.form-check-label.app-font-size-down {
  font-size: var(--app-small-text-size) !important;
}


.app-footer {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
}

.app-footer .container-fluid {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
}

.app-footer-content {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.app-footer-content p,
.app-footer-content div,
.app-footer-content span,
.app-footer-content small,
.app-footer-content strong,
.app-footer-content a {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* Revisi mobile: gutter khusus untuk area scroll tabel admin yang diminta.
   Desktop tidak berubah karena aturan ini hanya aktif di layar HP/tablet kecil. */
@media (max-width: 767.98px) {
  .admin-mobile-scroll-gutter {
    box-sizing: border-box;
    width: calc(100% - 1.5rem);
    max-width: calc(100% - 1.5rem);
    margin-left: 0.75rem;
    margin-right: 0.75rem;
    scroll-padding-left: 0.75rem;
    scroll-padding-right: 0.75rem;
  }

  .admin-mobile-scroll-gutter > .table {
    margin-bottom: 0;
  }
}
