/* App brand logo — standard Velonic-scale sizing */
:root {
  --app-logo-lg-height: 36px;
  --app-logo-sm-height: 26px;
  --app-logo-login-height: 52px;
}

.leftside-menu .logo {
  align-items: center;
  justify-content: center;
  min-height: var(--tz-topbar-height, 70px);
  line-height: normal;
  padding: 10px 14px !important;
}

/* Keep Velonic light/dark visibility, but use flex when shown */
.leftside-menu .logo.logo-dark {
  display: flex;
}

html[data-menu-color=brand] .leftside-menu .logo.logo-light,
html[data-menu-color=dark] .leftside-menu .logo.logo-light,
html[data-bs-theme=dark] .leftside-menu .logo.logo-light {
  display: flex;
}

html[data-menu-color=brand] .leftside-menu .logo.logo-dark,
html[data-menu-color=dark] .leftside-menu .logo.logo-dark,
html[data-bs-theme=dark] .leftside-menu .logo.logo-dark {
  display: none;
}

.leftside-menu .logo span.logo-lg,
.leftside-menu .logo span.logo-sm {
  align-items: center;
  justify-content: center;
  width: 100%;
}

.leftside-menu .logo span.logo-lg img,
.leftside-menu .logo span.logo-sm img,
.logo-topbar .logo-lg img,
.logo-topbar .logo-sm img {
  height: auto !important;
  width: auto !important;
  max-width: 160px;
  object-fit: contain;
  background: transparent;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
}

/* Custom uploaded raster logos keep a light patch for contrast */
.leftside-menu .logo img.app-logo-custom,
.logo-topbar img.app-logo-custom,
.auth-brand img.app-logo-custom {
  background: #ffffff;
  border-radius: 6px;
  padding: 4px 8px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
}

.leftside-menu .logo span.logo-lg img {
  max-height: var(--app-logo-lg-height) !important;
}

.leftside-menu .logo span.logo-sm img {
  max-height: var(--app-logo-sm-height) !important;
  max-width: 40px;
}

.inventory-parts-table-wrap {
  width: 100%;
  max-width: 100%;
}

.inventory-parts-table {
  width: 100% !important;
  table-layout: fixed;
}

.inventory-parts-table th:first-child,
.inventory-parts-table td:first-child {
  width: 80px;
  white-space: nowrap;
}

.inventory-parts-table th:last-child,
.inventory-parts-table td:last-child {
  width: 270px;
}

.inventory-parts-table th[data-col-key="stok"],
.inventory-parts-table td[data-col-key="stok"] {
  width: 90px;
}

.inventory-parts-table td {
  white-space: normal;
  overflow-wrap: anywhere;
}

.inventory-parts-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

@media (max-width: 767.98px) {
  .inventory-parts-table th:last-child,
  .inventory-parts-table td:last-child {
    width: 180px;
  }

  .inventory-parts-actions {
    flex-direction: column;
    align-items: flex-start;
  }
}

.logo-topbar .logo-lg img {
  max-height: 32px !important;
  max-width: 140px;
}

.logo-topbar .logo-sm img {
  max-height: 26px !important;
  max-width: 36px;
}

/* Login brand logo — above form, standard size */
.auth-brand {
  display: flex;
  justify-content: center;
  align-items: center;
}

.auth-brand a img.app-logo {
  max-height: var(--app-logo-login-height) !important;
  height: auto !important;
  width: auto !important;
  max-width: 220px;
  object-fit: contain;
  background: transparent;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
}

.account-pages .object-fit-cover {
  object-fit: cover;
  min-height: 100%;
}

html[data-sidenav-size=condensed]:not([data-layout=topnav]) .wrapper .leftside-menu .logo {
  min-height: var(--tz-topbar-height, 70px);
  padding: 8px !important;
}

/* DataTables — keep search/length controls spaced in Velonic cards */
div.dt-container .dt-search input,
div.dataTables_wrapper .dataTables_filter input {
  margin-left: 0.5rem;
}
div.dt-container .dt-length select,
div.dataTables_wrapper .dataTables_length select {
  margin: 0 0.35rem;
}
div.dt-container,
div.dataTables_wrapper {
  width: 100%;
}

/* Per-column filter row (parity with CI3 jqGrid showfilterrow) */
table.js-datatable thead tr.filters th {
  padding: 0.35rem 0.4rem !important;
  vertical-align: middle;
  background: var(--tz-secondary-bg, #f8f9fa);
  border-bottom-width: 1px;
}
table.js-datatable thead tr.filters input.column-filter {
  width: 100%;
  min-width: 4.5rem;
  font-size: 0.8125rem;
}

/* List card toolbar — single row (export / filters / actions) */
.card-header .sem-list-toolbar {
  flex-wrap: nowrap;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}
.card-header .sem-list-toolbar > * {
  flex-shrink: 0;
}

/* Excel export in card header — always green */
.card-header .js-dt-export-host,
.card-header div.dt-buttons {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  margin: 0;
}
.card-header .js-dt-export-host .dt-button,
.card-header .js-dt-export-host .btn,
.card-header div.dt-buttons .dt-button,
.card-header div.dt-buttons .btn,
.card-header .buttons-excel {
  background-color: #47ad77 !important;
  border-color: #47ad77 !important;
  color: #fff !important;
  margin: 0;
  box-shadow: none;
}
.card-header .js-dt-export-host .dt-button:hover,
.card-header .js-dt-export-host .btn:hover,
.card-header div.dt-buttons .dt-button:hover,
.card-header div.dt-buttons .btn:hover,
.card-header .buttons-excel:hover {
  background-color: #3d9767 !important;
  border-color: #3d9767 !important;
  color: #fff !important;
}
/* Data Bahan Baku: allow the long "Bahan Baku Untuk Produk" list to wrap */
#parts-table th[data-col-key="nama_produk"],
#goods-table th[data-col-key="nama_produk"],
#parts-table td[data-col-key="nama_produk"],
#goods-table td[data-col-key="nama_produk"] {
  white-space: normal !important;
  word-break: break-word;
  overflow-wrap: anywhere;
  min-width: 320px;
  width: auto;
}

/* Inventaris Parts & Goods: constrain short columns so "Bahan Baku Untuk Produk" has maximum room */
#parts-table .col-no,
#goods-table .col-no {
  width: 45px !important;
  max-width: 50px !important;
  text-align: center !important;
}

#parts-table .col-kode,
#goods-table .col-kode {
  width: 100px !important;
  max-width: 120px !important;
  white-space: nowrap !important;
}

#parts-table .col-stok,
#goods-table .col-stok {
  width: 80px !important;
  max-width: 90px !important;
  text-align: center !important;
  white-space: nowrap !important;
}

#parts-table thead tr.filters th.col-stok input.column-filter,
#goods-table thead tr.filters th.col-stok input.column-filter,
#parts-table thead tr.filters th.col-kode input.column-filter,
#goods-table thead tr.filters th.col-kode input.column-filter {
  min-width: 0 !important;
  width: 100% !important;
  padding-left: 0.25rem !important;
  padding-right: 0.25rem !important;
  text-align: center;
}
/* Hide leftover empty button host after moving Export to card header */
div.dt-container > div.dt-buttons:empty,
div.dataTables_wrapper > div.dt-buttons:empty,
div.dt-container > .dt-buttons:not(:has(*)),
div.dataTables_wrapper > .dt-buttons:not(:has(*)) {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Print optimization */
@media print {
  body {
    background: #fff !important;
    color: #000 !important;
  }
  .leftside-menu,
  .navbar-custom,
  .topbar,
  .footer,
  .page-title-box,
  .alert,
  .no-print,
  button,
  .btn {
    display: none !important;
  }
  .content-page {
    margin-left: 0 !important;
    padding: 0 !important;
  }
  .content {
    padding: 0 !important;
  }
  .container-fluid {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
  }
  .card {
    border: none !important;
    box-shadow: none !important;
    margin-bottom: 0 !important;
    background: transparent !important;
  }
  .card-header {
    background: transparent !important;
    border-bottom: 1px solid #dee2e6 !important;
    padding: 10px 0 !important;
  }
  .card-body {
    padding: 15px 0 !important;
  }
  .table {
    width: 100% !important;
    border-collapse: collapse !important;
  }
  .table-bordered th,
  .table-bordered td {
    border: 1px solid #333 !important;
  }
}

/* Select2 theme integration */
.select2-container {
  width: 100% !important;
}

.select2-container .select2-selection--single {
  height: 38px !important;
  padding: 6px 12px !important;
  font-size: 0.875rem !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  color: #495057 !important;
  background-color: #fff !important;
  border: 1px solid #dee2e6 !important;
  border-radius: 0.25rem !important;
  display: flex !important;
  align-items: center !important;
  transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
}

.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single {
  border-color: #9eb0f3 !important;
  box-shadow: 0 0 0 0.15rem rgba(62, 96, 213, 0.25) !important;
  outline: 0 !important;
}

.select2-container .select2-selection--single .select2-selection__rendered {
  padding-left: 0 !important;
  padding-right: 24px !important;
  color: #495057 !important;
  line-height: normal !important;
  display: block !important;
  width: 100% !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.select2-container .select2-selection--single .select2-selection__arrow {
  height: 100% !important;
  right: 10px !important;
  width: 20px !important;
  top: 0 !important;
}

.select2-dropdown {
  border: 1px solid #dee2e6 !important;
  border-radius: 0.25rem !important;
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
  z-index: 1060 !important;
}

.select2-container--default .select2-search--dropdown {
  padding: 8px !important;
}

.select2-container--default .select2-search--dropdown .select2-search__field {
  border: 1px solid #dee2e6 !important;
  border-radius: 0.2rem !important;
  padding: 6px 10px !important;
  font-size: 0.875rem !important;
  outline: none !important;
}

.select2-container--default .select2-search--dropdown .select2-search__field:focus {
  border-color: #3e60d5 !important;
}

.select2-results__option {
  padding: 6px 12px !important;
  font-size: 0.875rem !important;
}

.select2-container--default .select2-results__option--highlighted[aria-selected] {
  background-color: #3e60d5 !important;
  color: #fff !important;
}

.select2-container--default .select2-results__option[aria-selected=true] {
  background-color: #f1f3fa !important;
  color: #3e60d5 !important;
  font-weight: 600 !important;
}

