/* Tambahan kecil di atas Tabler. */

.text-pre-line { white-space: pre-line; }

.sidebar-logo { height: 28px; width: auto; }
.shop-logo { height: 32px; width: auto; }
.login-logo { max-height: 64px; width: auto; }
.hero-logo { max-height: 96px; width: auto; }
.settings-logo { max-height: 64px; width: auto; background: #fff; }

.navbar-vertical .dropdown-item.disabled { opacity: .55; }


.object-cover { object-fit: cover; }
.product-thumb { aspect-ratio: 1; object-fit: cover; width: 100%; }
.product-main { aspect-ratio: 1; object-fit: contain; background: #fff; }
.import-errors { max-height: 360px; overflow: auto; }

.picker-menu { max-height: 340px; overflow-y: auto; }
.purchase-items .col-qty { width: 6.5rem; }
.purchase-items .col-money, .col-money { width: 9.5rem; }

/* Lebar kolom sama di semua grup agar tabel hak akses sejajar. */
.perm-table { table-layout: fixed; min-width: 760px; }
.perm-table .perm-col-module { width: 22%; }
.perm-table .perm-col-action { width: 9%; }
.perm-table th { white-space: nowrap; }

.audit-json {
  max-height: 240px;
  margin: 0;
  padding: .5rem;
  font-size: .75rem;
  white-space: pre-wrap;
  word-break: break-word;
  background: var(--tblr-bg-surface-secondary);
  border-radius: var(--tblr-border-radius);
}

[x-cloak] { display: none !important; }

/* ---- Layar kasir ---- */
.pos-header { background: var(--tblr-bg-surface); border-bottom: 1px solid var(--tblr-border-color); }
.pos-cart-body { min-height: 45vh; }
.pos-col-qty { width: 9rem; }
.pos-total { font-size: 1.75rem; }
.pos-metode { display: grid; grid-template-columns: repeat(3, 1fr); gap: .375rem; }
.pos-overlay { position: fixed; inset: 0; z-index: 1050; display: flex; align-items: center; justify-content: center; padding: 1rem; background: rgba(0, 0, 0, .45); }
.pos-dialog { width: 100%; max-width: 30rem; max-height: 90vh; overflow: auto; }
.pos-success-icon { font-size: 4rem; }
.pos-change { font-size: 2.75rem; font-weight: 700; color: var(--tblr-green); }
/* iframe cetak struk tidak boleh display:none, karena beberapa browser tidak mau mencetaknya. */
.pos-print-frame { position: absolute; width: 0; height: 0; border: 0; visibility: hidden; }

/* ---- Toko online ---- */
.shop-navbar { position: sticky; top: 0; z-index: 1020; }
.shop-search { flex: 1 1 100%; order: 3; }
@media (min-width: 768px) { .shop-search { flex: 1 1 auto; max-width: 560px; order: 1; } }
.shop-hero-search { max-width: 560px; }
.shop-card { transition: box-shadow .15s; }
.shop-card:hover { box-shadow: var(--tblr-shadow-card-hover, 0 2px 8px rgba(0, 0, 0, .12)); }
.shop-card-img { display: block; aspect-ratio: 1; background: #fff; border-bottom: 1px solid var(--tblr-border-color); }
.shop-card-img img { width: 100%; height: 100%; object-fit: contain; }
.shop-card-noimg { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; font-size: 2.5rem; color: var(--tblr-secondary); }
.shop-card-title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.shop-qty { width: 4.5rem; }
.shop-line-total { min-width: 6.5rem; }

/* ---- Laporan ---- */
.report-filter { min-width: 10rem; max-width: 18rem; }
.report-table td { white-space: nowrap; }
.report-table td.report-wrap { white-space: normal; min-width: 12rem; }
.report-table tfoot td { border-top: 2px solid var(--tblr-border-color); }
.report-print { background: #fff; }
.report-print .table-responsive { overflow: visible; }
@media print {
  @page { margin: 10mm; }
  .report-print { font-size: 11px; }
  .report-print .card { box-shadow: none; border: 1px solid #ccc; }
  .report-print .table > :not(caption) > * > * { padding-top: .2rem; padding-bottom: .2rem; }
  .report-print .report-cards > div { flex: 1 0 0; width: auto; }
  .report-print thead { display: table-header-group; }
  .report-print tr { break-inside: avoid; }
}

/* ---- Dashboard ---- */
.dash-chart { display: flex; align-items: stretch; gap: 4px; height: 190px; }
.dash-bar { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.dash-bar-track { flex: 1; display: flex; align-items: flex-end; }
.dash-bar-fill { width: 100%; min-height: 2px; background: var(--tblr-primary); opacity: .75; border-radius: 3px 3px 0 0; }
.dash-bar-fill.is-today { opacity: 1; }
.dash-bar:hover .dash-bar-fill { opacity: 1; }
.dash-bar-label { margin-top: 4px; font-size: .7rem; text-align: center; color: var(--tblr-secondary); }
