/* ===== SOURCE: info-compact-v1660.css ===== */
/* v1.6.60 — global full-size information control, ~30% smaller.
   Scope: desktop/backend and Staff Mobile PWA. Inline field/table help was
   already compact and is intentionally left unchanged. */
html body :is(
  button.erp-info-icon.erp-info-icon.erp-info-icon.erp-info-icon,
  a.erp-info-icon.erp-info-icon.erp-info-icon.erp-info-icon,
  span.erp-info-icon.erp-info-icon.erp-info-icon.erp-info-icon,
  button.erp-ui-help-button.erp-ui-help-button.erp-ui-help-button.erp-ui-help-button,
  button.erp-title-info.erp-title-info.erp-title-info.erp-title-info,
  button.ci-info-icon.ci-info-icon.ci-info-icon.ci-info-icon,
  button.erp-final-help-mark.erp-final-help-mark.erp-final-help-mark.erp-final-help-mark
):not(.inline-info):not(.ci-inline-help):not(label button){
  box-sizing:border-box!important;
  display:inline-grid!important;
  place-items:center!important;
  width:20px!important;
  min-width:20px!important;
  max-width:20px!important;
  height:25px!important;
  min-height:25px!important;
  max-height:25px!important;
  flex:0 0 20px!important;
  padding:0!important;
  margin-left:0!important;
  margin-right:3px!important;
  border:1px solid #b8d3f0!important;
  border-radius:6px!important;
  background:#e9f4ff!important;
  background-image:none!important;
  color:#24527e!important;
  box-shadow:none!important;
  font:850 9px/1 system-ui,-apple-system,"Segoe UI",sans-serif!important;
  text-decoration:none!important;
  vertical-align:middle!important;
}
html body :is(
  button.erp-info-icon.erp-info-icon.erp-info-icon.erp-info-icon,
  a.erp-info-icon.erp-info-icon.erp-info-icon.erp-info-icon,
  span.erp-info-icon.erp-info-icon.erp-info-icon.erp-info-icon,
  button.erp-ui-help-button.erp-ui-help-button.erp-ui-help-button.erp-ui-help-button,
  button.erp-title-info.erp-title-info.erp-title-info.erp-title-info,
  button.ci-info-icon.ci-info-icon.ci-info-icon.ci-info-icon,
  button.erp-final-help-mark.erp-final-help-mark.erp-final-help-mark.erp-final-help-mark
):not(.inline-info):not(.ci-inline-help):not(label button):hover,
html body :is(
  button.erp-info-icon.erp-info-icon.erp-info-icon.erp-info-icon,
  a.erp-info-icon.erp-info-icon.erp-info-icon.erp-info-icon,
  span.erp-info-icon.erp-info-icon.erp-info-icon.erp-info-icon,
  button.erp-ui-help-button.erp-ui-help-button.erp-ui-help-button.erp-ui-help-button,
  button.erp-title-info.erp-title-info.erp-title-info.erp-title-info,
  button.ci-info-icon.ci-info-icon.ci-info-icon.ci-info-icon,
  button.erp-final-help-mark.erp-final-help-mark.erp-final-help-mark.erp-final-help-mark
):not(.inline-info):not(.ci-inline-help):not(label button):focus-visible{
  background:#deefff!important;
  border-color:#8eb9e2!important;
  color:#173f6c!important;
  box-shadow:none!important;
  outline:1px solid #8eb9e2!important;
  outline-offset:1px!important;
}

/* The PWA live-search information control has an older dedicated sizing rule.
   Keep it aligned with the same 30%-smaller full-size control. */
html body.mobile-app-body .mobile-live-search-row > .mobile-toolbar-info.erp-info-icon.erp-info-icon.erp-info-icon{
  width:20px!important;
  min-width:20px!important;
  max-width:20px!important;
  height:25px!important;
  min-height:25px!important;
  max-height:25px!important;
  flex:0 0 20px!important;
  padding:0!important;
  font-size:9px!important;
  border-radius:6px!important;
  box-shadow:none!important;
}

/* ===== SOURCE: ui-polish-v1662.css ===== */
/* Toko ERP v1.6.62 — safe UI polish only.
   No workflow, data, calculation, filter, export, permission or route behavior. */

/* Compact sequence / rank columns everywhere. The companion JS marks the
   corresponding body cells so the full column follows the same width. */
table.data-table :is(th,td).erp-polish-index-col{
  min-width:50px!important;width:50px!important;max-width:50px!important;
  padding-left:6px!important;padding-right:6px!important;text-align:center!important;
  white-space:nowrap!important;box-sizing:border-box!important;
}
table.data-table :is(th,td).erp-polish-index-col[data-erp-polish-index-kind="rank"]{
  min-width:64px!important;width:64px!important;max-width:64px!important;
}
table.data-table th.erp-polish-index-col .ci-sort-link{
  min-width:0!important;width:100%!important;padding-inline:2px!important;gap:3px!important;
  justify-content:center!important;
}
table.data-table :is(th,td).erp-polish-select-col{
  min-width:38px!important;width:38px!important;max-width:38px!important;
  padding-left:5px!important;padding-right:5px!important;text-align:center!important;
}
/* Override older wider S/N rules after every prior stylesheet. */
body.toko-page-products #productTable :is(th,td).erp-polish-index-col,
.table-wrap .erp-baten-table :is(th,td).erp-ui-index-col{
  min-width:50px!important;width:50px!important;max-width:50px!important;
  padding-inline:6px!important;text-align:center!important;
}
.table-wrap .erp-baten-table :is(th,td).erp-ui-index-col[data-erp-polish-index-kind="rank"]{
  min-width:64px!important;width:64px!important;max-width:64px!important;
}

/* Frozen identity divider: keep only about 30% of the previous visual shadow. */
.table-wrap .erp-baten-table tbody td[data-baten-pin="identity"],
table.erp-identity-freeze [data-erp-pin="identity"]{
  box-shadow:2px 0 4px rgba(24,47,80,.04)!important;
}
.table-wrap .erp-baten-table thead th[data-baten-pin="identity"],
table.erp-identity-freeze thead [data-erp-pin="identity"]{
  box-shadow:inset 0 -1px 0 #b9ccdf,2px 0 4px rgba(24,47,80,.035)!important;
}

/* More consistent, soft semantic button palette. Keep all existing actions and
   event handlers; these rules are visual only. */
:where(.btn,.action-menu>summary.btn){box-shadow:none!important;}
:where(.btn,.action-menu>summary.btn).action-create,
:where(.btn,.action-menu>summary.btn).action-new{
  background:#e7f6ec!important;border-color:#a8d7b8!important;color:#205f3c!important;
}
:where(.btn,.action-menu>summary.btn).action-import{
  background:#eef1ff!important;border-color:#bec9ef!important;color:#4055a5!important;
}
:where(.btn,.action-menu>summary.btn).action-export{
  background:#e6f6f1!important;border-color:#abd9cc!important;color:#1c6658!important;
}
:where(.btn,.action-menu>summary.btn).action-more{
  background:#f5f7fa!important;border-color:#d7dee8!important;color:#47566a!important;
}
:where(.btn,.action-menu>summary.btn).action-bulk-update{
  background:#fff3df!important;border-color:#e5c58e!important;color:#76521c!important;
}
:where(.btn,.action-menu>summary.btn).action-pictures{
  background:#f3edff!important;border-color:#d3c1ef!important;color:#65478d!important;
}
:where(.btn,.action-menu>summary.btn).erp-filter-button{
  background:#edf5ff!important;border-color:#bfd5ef!important;color:#245984!important;
}

/* Small coloured Calculate filtered GM button. */
body.toko-page-products .product-calc-gm{
  min-height:27px!important;height:27px!important;padding:4px 9px!important;
  width:max-content!important;justify-self:start!important;
  border:1px solid #b7d5c3!important;border-radius:7px!important;
  background:#e9f7ee!important;color:#235f3c!important;font-size:.72rem!important;
  font-weight:820!important;box-shadow:none!important;
}
body.toko-page-products .product-calc-gm:hover{
  background:#dcf1e4!important;border-color:#95c8a8!important;color:#174c2f!important;
}

/* Product Master: search gets the full row. All page actions sit BELOW the
   active filter badges, inside the product panel, in a meaningful order. */
body.toko-page-products #productFilters.erp-unified-filterbar{
  display:block!important;padding:8px 10px!important;
}
body.toko-page-products #productFilters .erp-unified-search,
body.toko-page-products #productFilters .erp-global-search-shell{
  width:100%!important;max-width:none!important;min-width:0!important;margin:0!important;
}
body.toko-page-products #productFilters>.erp-filterbar-actions{display:none!important;}
body.toko-page-products .product-page-action-row{
  display:flex!important;align-items:center!important;justify-content:flex-end!important;
  gap:6px!important;flex-wrap:wrap!important;padding:7px 10px!important;
  margin:0!important;background:#fff!important;border:1px solid #dce5ef!important;
  border-top:0!important;
}
body.toko-page-products .product-page-action-row:empty{display:none!important;}
body.toko-page-products .product-page-action-row>.btn,
body.toko-page-products .product-page-action-row>details.action-menu>summary.btn{
  min-height:30px!important;height:30px!important;padding:5px 10px!important;
  font-size:.74rem!important;border-radius:7px!important;white-space:nowrap!important;
}
body.toko-page-products .product-page-action-row #productAddNewButton{
  min-width:auto!important;width:auto!important;
}
body.toko-page-products .product-page-action-row .erp-info-icon,
body.toko-page-products .product-page-action-row .erp-ui-help-button{margin-left:0!important;}
body.toko-page-products .erp-active-filter-chips + .product-page-action-row{
  border-top:0!important;
}
/* Slightly less oversized Product identity on the Product Master only. */
body.toko-page-products #productTable :is(th,td).erp-ui-product-col{
  min-width:300px!important;width:300px!important;max-width:340px!important;
}
body.toko-page-products #productTable :is(th,td).erp-polish-picture-col{min-width:78px!important;width:78px!important;max-width:78px!important;}
body.toko-page-products #productTable :is(th,td).erp-polish-supplier-col{min-width:210px!important;max-width:260px!important;}
body.toko-page-products #productTable :is(th,td).erp-polish-warehouse-col{min-width:130px!important;max-width:165px!important;}
body.toko-page-products #productTable :is(th,td).erp-polish-brand-col{min-width:105px!important;max-width:150px!important;}
body.toko-page-products #productTable :is(th,td).erp-polish-status-col{min-width:90px!important;width:90px!important;max-width:100px!important;text-align:center!important;}

/* Compact status colouring. Existing .status/.badge components keep their own
   markup; plain Status cells can use this small chip without changing text. */
.erp-polish-status{
  display:inline-flex;align-items:center;justify-content:center;min-height:22px;
  padding:3px 7px;border:1px solid #d3dce7;border-radius:999px;
  background:#f4f7fa;color:#47586c;font-size:.68rem;font-weight:850;
  line-height:1.15;white-space:nowrap;
}
.erp-status-active,.erp-status-posted,.erp-status-completed,.erp-status-complete,.erp-status-received,.erp-status-paid{
  background:#e5f6eb!important;border-color:#b2dec0!important;color:#22623d!important;
}
.erp-status-draft,.erp-status-open{
  background:#eef4ff!important;border-color:#bfd4f1!important;color:#315f91!important;
}
.erp-status-pending,.erp-status-partial,.erp-status-partially-received{
  background:#fff4df!important;border-color:#e5ca96!important;color:#76551c!important;
}
.erp-status-confirmed,.erp-status-in-transit,.erp-status-dispatched{
  background:#e9efff!important;border-color:#bcc9f2!important;color:#3b51a1!important;
}
.erp-status-closed,.erp-status-archived{
  background:#eef1f4!important;border-color:#d0d8e1!important;color:#556477!important;
}
.erp-status-cancelled,.erp-status-canceled,.erp-status-overdue,.erp-status-rejected,.erp-status-failed{
  background:#ffebef!important;border-color:#e9b8c2!important;color:#8b3548!important;
}

/* Genuine PWA/menu glyphs use the same compact vertical kebab visual.
   The desktop/backend sidebar toggle keeps its original ⇤ / ⇥ arrow. */
.mobile-primary-action .mobile-primary-icon.erp-menu-kebab{
  font-weight:900!important;line-height:1!important;letter-spacing:0!important;
}

/* Narrow backend/mobile-backend comfort. Keep search dominant, let actions wrap. */
@media(max-width:800px){
  table.data-table :is(th,td).erp-polish-index-col{min-width:46px!important;width:46px!important;max-width:46px!important;padding-inline:4px!important;}
  table.data-table :is(th,td).erp-polish-index-col[data-erp-polish-index-kind="rank"]{min-width:58px!important;width:58px!important;max-width:58px!important;}
  body.toko-page-products .product-page-action-row{justify-content:flex-start!important;padding:6px 8px!important;gap:5px!important;}
  body.toko-page-products .product-page-action-row>.btn,
  body.toko-page-products .product-page-action-row>details.action-menu>summary.btn{min-height:29px!important;height:29px!important;padding:4px 8px!important;font-size:.7rem!important;}
  body.toko-page-products #productTable :is(th,td).erp-ui-product-col{min-width:230px!important;width:230px!important;max-width:260px!important;}
}

/* Staff PWA: keep the same soft semantic colours while preserving the compact
   v1.6.61 layout and all existing tap targets. */
body.mobile-app-body .mobile-primary-action{box-shadow:none!important;}
body.mobile-app-body .mobile-pwa-kebab>summary{box-shadow:none!important;}

/* Win over legacy 94/105px index-header rules loaded earlier. */
body table.data-table thead th.erp-index-header.erp-polish-index-col{
  min-width:50px!important;width:50px!important;max-width:50px!important;
}
body table.data-table thead th.erp-index-header.erp-polish-index-col[data-erp-polish-index-kind="rank"]{
  min-width:64px!important;width:64px!important;max-width:64px!important;
}
body table.data-table thead th.erp-index-header.erp-polish-index-col .ci-sort-link{
  min-width:0!important;width:100%!important;padding-inline:2px!important;
}
@media(max-width:800px){
  body table.data-table thead th.erp-index-header.erp-polish-index-col{min-width:46px!important;width:46px!important;max-width:46px!important;}
  body table.data-table thead th.erp-index-header.erp-polish-index-col[data-erp-polish-index-kind="rank"]{min-width:58px!important;width:58px!important;max-width:58px!important;}
}

/* v1.6.73 — Staff-PWA multi-product picker compact marked controls only.
   Product cards and picker selection/data logic are intentionally untouched. */
@media(max-width:800px){
  body.mobile-app-body #erpProductPicker .modal-head{
    padding:6px 9px!important;min-height:0!important;align-items:center!important;
  }
  body.mobile-app-body #erpProductPicker .modal-head h2{
    font-size:.88rem!important;line-height:1.1!important;
  }
  body.mobile-app-body #erpProductPicker .modal-head p{
    margin-top:1px!important;font-size:.59rem!important;line-height:1.15!important;
  }
  body.mobile-app-body #erpProductPicker .modal-head>.icon-btn{
    width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;
    padding:0!important;border-radius:9px!important;
  }
  body.mobile-app-body #erpProductPicker .picker-query-row{
    gap:4px!important;padding:4px 7px!important;
    grid-template-columns:minmax(0,1fr) auto auto!important;
  }
  body.mobile-app-body #erpProductPicker .picker-query-row>.input,
  body.mobile-app-body #erpProductPicker .picker-filter-toggle,
  body.mobile-app-body #erpProductPicker .picker-refresh-button{
    box-sizing:border-box!important;height:36px!important;min-height:36px!important;margin:0!important;
    border-radius:8px!important;
  }
  body.mobile-app-body #erpProductPicker .picker-query-row>.input{
    padding:5px 8px!important;font-size:16px!important;
  }
  body.mobile-app-body #erpProductPicker .picker-filter-toggle,
  body.mobile-app-body #erpProductPicker .picker-refresh-button{
    padding:3px 7px!important;font-size:.64rem!important;white-space:nowrap!important;
  }
  body.mobile-app-body #erpProductPicker .modal-summary{
    display:flex!important;align-items:center!important;justify-content:space-between!important;
    flex-wrap:nowrap!important;gap:5px!important;padding:4px 7px!important;min-height:36px!important;
  }
  body.mobile-app-body #erpProductPicker .modal-summary>.picker-selection-actions{
    flex:1 1 auto!important;min-width:0!important;display:flex!important;align-items:center!important;
    justify-content:flex-start!important;gap:5px!important;flex-wrap:nowrap!important;margin:0!important;
  }
  body.mobile-app-body #erpProductPicker .modal-summary>.picker-selection-actions>label{
    display:inline-flex!important;align-items:center!important;gap:4px!important;margin:0!important;
    font-size:.61rem!important;line-height:1!important;white-space:nowrap!important;
  }
  body.mobile-app-body #erpProductPicker .modal-summary>.picker-selection-actions input[type="checkbox"]{
    width:17px!important;height:17px!important;min-width:17px!important;margin:0!important;
  }
  body.mobile-app-body #erpProductPicker .modal-summary>.picker-selection-actions>.btn{
    height:29px!important;min-height:29px!important;padding:3px 6px!important;font-size:.58rem!important;
  }
  body.mobile-app-body #erpProductPicker .modal-summary>.picker-page-actions{
    flex:0 0 auto!important;display:flex!important;align-items:center!important;justify-content:flex-end!important;
    gap:3px!important;margin:0!important;font-size:.58rem!important;white-space:nowrap!important;
  }
  body.mobile-app-body #erpProductPicker .picker-page-actions .btn{
    height:29px!important;min-height:29px!important;padding:3px 6px!important;font-size:.58rem!important;
  }
  body.mobile-app-body #erpProductPicker .modal-actions{
    gap:5px!important;padding:5px 7px max(5px,env(safe-area-inset-bottom))!important;
    grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr)!important;
  }
  body.mobile-app-body #erpProductPicker .modal-actions>.btn{
    box-sizing:border-box!important;height:38px!important;min-height:38px!important;padding:5px 8px!important;
    border-radius:8px!important;font-size:.67rem!important;
  }
}
@media(max-width:410px){
  body.mobile-app-body #erpProductPicker .picker-query-row{grid-template-columns:minmax(0,1fr) auto!important;}
  body.mobile-app-body #erpProductPicker .picker-refresh-button{display:none!important;}
  body.mobile-app-body #erpProductPicker .modal-summary{flex-wrap:wrap!important;row-gap:3px!important;}
  body.mobile-app-body #erpProductPicker .modal-summary>.picker-selection-actions{flex:1 1 100%!important;}
  body.mobile-app-body #erpProductPicker .modal-summary>.picker-page-actions{margin-left:auto!important;}
}


/* v1.6.73 — Login remember/sign-in spacing only. */
.login-card .login-actions-row{
  display:flex!important;align-items:center!important;justify-content:space-between!important;
  gap:16px!important;margin-top:18px!important;padding:3px 4px!important;
}
.login-card .login-remember{
  display:inline-flex!important;align-items:center!important;gap:8px!important;
  min-height:46px!important;margin:0!important;line-height:1.2!important;
}
.login-card .login-remember input[type="checkbox"]{
  width:22px!important;height:22px!important;min-width:22px!important;margin:0!important;
}
.login-card .login-signin-button{
  width:auto!important;min-width:108px!important;min-height:48px!important;
  padding:10px 20px!important;margin:0!important;border-radius:10px!important;
}
@media(max-width:520px){
  .login-card .login-actions-row{gap:12px!important;padding-inline:2px!important;}
  .login-card .login-signin-button{min-width:104px!important;padding-inline:16px!important;}
}


/* v3.1.1 — Staff-PWA multi-product picker no-waste compact controls.
   Presentation is intentionally scoped to the shared picker only. Product
   cards, search matching, paging data and add-product transaction logic stay
   unchanged. */
@media(max-width:800px){
  body.mobile-app-body #erpProductPicker>.modal-card{
    /* app.css gives modal tables a 58vh ceiling; that left a large empty block
       below the footer on tall phones. Let the flex table own all free height. */
    min-height:0!important;
  }
  body.mobile-app-body #erpProductPicker .modal-table{
    flex:1 1 0!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
  }
  body.mobile-app-body #erpProductPicker .modal-summary{
    flex:0 0 auto!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    flex-wrap:nowrap!important;
    gap:4px!important;
    min-height:32px!important;
    padding:3px 6px!important;
    margin:0!important;
  }
  body.mobile-app-body #erpProductPicker .modal-summary>.picker-selection-actions{
    flex:0 0 auto!important;
    min-width:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:0!important;
    margin:0!important;
    padding:0!important;
    flex-wrap:nowrap!important;
  }
  body.mobile-app-body #erpProductPicker .picker-select-all-toggle{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:2px!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    font-size:.55rem!important;
    line-height:1!important;
    white-space:nowrap!important;
  }
  body.mobile-app-body #erpProductPicker .picker-select-all-toggle input[type="checkbox"]{
    width:18px!important;
    height:18px!important;
    min-width:18px!important;
    margin:0!important;
    padding:0!important;
    accent-color:#202B63!important;
  }
  body.mobile-app-body #erpProductPicker .picker-select-all-text{
    display:none!important;
  }
  body.mobile-app-body #erpProductPicker .picker-clear-selection{
    display:none!important;
  }
  body.mobile-app-body #erpProductPicker .modal-summary>.picker-page-actions{
    flex:1 1 auto!important;
    min-width:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    flex-wrap:nowrap!important;
    gap:3px!important;
    margin:0!important;
    padding:0!important;
    font-size:.56rem!important;
    line-height:1!important;
    white-space:nowrap!important;
  }
  body.mobile-app-body #erpProductPicker .picker-page-actions [data-result-count]{
    min-width:0!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    text-align:center!important;
  }
  body.mobile-app-body #erpProductPicker .picker-page-actions .btn{
    flex:0 0 auto!important;
    width:auto!important;
    min-width:0!important;
    height:28px!important;
    min-height:28px!important;
    margin:0!important;
    padding:2px 6px!important;
    border-radius:7px!important;
    font-size:.55rem!important;
    line-height:1!important;
    white-space:nowrap!important;
  }
  body.mobile-app-body #erpProductPicker .modal-actions{
    flex:0 0 auto!important;
    position:relative!important;
    bottom:auto!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:5px!important;
    margin:0!important;
    padding:4px 7px max(4px,env(safe-area-inset-bottom))!important;
    background:#fff!important;
    border-top:1px solid #dce5ef!important;
    box-shadow:0 -3px 10px rgba(31,51,75,.05)!important;
  }
  body.mobile-app-body #erpProductPicker .modal-actions>.btn{
    flex:0 0 auto!important;
    width:auto!important;
    min-width:0!important;
    height:34px!important;
    min-height:34px!important;
    margin:0!important;
    padding:4px 10px!important;
    border-radius:7px!important;
    font-size:.62rem!important;
    line-height:1!important;
  }
  body.mobile-app-body #erpProductPicker .modal-actions>[data-close]{
    min-width:86px!important;
  }
  body.mobile-app-body #erpProductPicker .modal-actions>[data-add]{
    min-width:154px!important;
  }
}
@media(max-width:410px){
  body.mobile-app-body #erpProductPicker .modal-summary{
    flex-wrap:nowrap!important;
    gap:3px!important;
    padding-inline:5px!important;
  }
  body.mobile-app-body #erpProductPicker .modal-summary>.picker-selection-actions{
    flex:0 0 auto!important;
  }
  body.mobile-app-body #erpProductPicker .modal-summary>.picker-page-actions{
    flex:1 1 auto!important;
    margin:0!important;
  }
  body.mobile-app-body #erpProductPicker .picker-page-actions .btn{
    padding-inline:4px!important;
    font-size:.52rem!important;
  }
  body.mobile-app-body #erpProductPicker .picker-page-actions [data-result-count]{
    font-size:.52rem!important;
  }
  body.mobile-app-body #erpProductPicker .modal-actions>.btn{
    height:32px!important;
    min-height:32px!important;
    padding:3px 8px!important;
    font-size:.59rem!important;
  }
  body.mobile-app-body #erpProductPicker .modal-actions>[data-close]{min-width:78px!important;}
  body.mobile-app-body #erpProductPicker .modal-actions>[data-add]{min-width:142px!important;}
}


/* v3.1.3 — Staff PWA picker keeps both approved selection actions visible. */
body.mobile-app-body #erpProductPicker .modal-summary>.picker-selection-actions{gap:7px!important}
body.mobile-app-body #erpProductPicker .picker-select-all-text{display:inline!important;font-size:.62rem!important}
body.mobile-app-body #erpProductPicker .picker-clear-selection{display:inline-flex!important;min-height:32px!important;height:32px!important;padding:4px 8px!important;font-size:.62rem!important}

/* v3.1.18 CLEAN CODEBASE TEST V4 — compact wrapped table headers.
   Table headings throughout the ERP are allowed to wrap instead of forcing
   wide columns.  Ordinary headers keep a useful minimum width and a compact
   maximum width; identity/index/selector columns retain their dedicated
   sizing rules.  This is display-only and does not alter table data/order. */
:root{
  --erp-table-header-min:68px;
  --erp-table-header-max:136px;
  --erp-table-outlet-header-max:122px;
}
:is(
  table.data-table,
  table.ci-lined-table,
  table.erp-baten-table,
  table.report-table,
  .report-table-wrap table,
  .mobile-workspace table
) thead th:not(.erp-index-header):not(.erp-ui-index-col):not(.ci-select-col):not([data-baten-pin="selector"]):not([data-erp-pin="selector"]){
  min-width:var(--erp-table-header-min)!important;
  max-width:var(--erp-table-header-max)!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
  line-height:1.14!important;
  vertical-align:middle!important;
  text-wrap:balance;
}
/* Numeric table cells stay single-line; numeric HEADERS may wrap. */
:is(
  table.data-table,
  table.ci-lined-table,
  table.erp-baten-table,
  table.report-table,
  .report-table-wrap table,
  .mobile-workspace table
) thead th.num{
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}
/* Sort links and nested header labels must follow the same wrapping rule;
   otherwise a child white-space:nowrap can silently widen the whole column. */
:is(
  table.data-table,
  table.ci-lined-table,
  table.erp-baten-table,
  table.report-table,
  .report-table-wrap table,
  .mobile-workspace table
) thead th :is(a,.ci-sort-link,button,span,strong,small,div){
  max-width:100%!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
}
/* Business Analytics / report outlet columns are the most common source of
   excessive horizontal width.  Keep each metric column compact while outlet
   names wrap naturally over multiple lines instead of stretching the table. */
.toko-module-commercial .ci-analysis-table thead th[data-perf-metric-col],
.toko-module-commercial .ci-p360-12m-table thead th:not(:first-child),
.toko-module-commercial .ci-matrix-table thead th.ci-outlet-head,
.report-table-wrap thead th[data-outlet-column]{
  min-width:82px!important;
  max-width:var(--erp-table-outlet-header-max)!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  text-align:center!important;
}
.toko-module-commercial .ci-analysis-table thead th[data-perf-metric-col] .ci-code,
.toko-module-commercial .ci-matrix-table thead th.ci-outlet-head .ci-code{
  white-space:normal!important;
  line-height:1.05!important;
}
/* Keep deliberately tiny control columns tiny. */
:is(table.data-table,table.ci-lined-table,table.erp-baten-table,table.report-table) thead th:empty,
:is(table.data-table,table.ci-lined-table,table.erp-baten-table,table.report-table) thead th[data-no-sort]:empty{
  min-width:34px!important;
  max-width:52px!important;
}
@media(max-width:800px){
  :root{--erp-table-header-min:62px;--erp-table-header-max:122px;--erp-table-outlet-header-max:112px}
}



/* v3.1.18 laptop-test-5 — Stock Transfer Adjustment + Purchase Return tables.
   One S/N only, compact predictable widths, and no unnecessarily wide columns.
   Display-only: no transaction data/calculation behaviour is changed. */
body .sta-items-table thead th.sta-col-sn,
body .purchase-return-items-table thead th.pr-col-sn,
body .purchase-return-view-table thead th.pr-col-sn{
  min-width:50px!important;width:50px!important;max-width:50px!important;
  padding-inline:6px!important;text-align:center!important;white-space:nowrap!important;
}
body .sta-items-table thead th.sta-col-product{min-width:220px!important;width:240px!important;max-width:260px!important;}
body .sta-items-table thead th.sta-col-qty{min-width:100px!important;width:110px!important;max-width:120px!important;}
body .sta-items-table thead th.sta-col-unit{min-width:62px!important;width:70px!important;max-width:78px!important;}
body .sta-items-table thead th.sta-col-reason{min-width:135px!important;width:155px!important;max-width:170px!important;}
body .sta-items-table thead th.sta-col-notes{min-width:150px!important;width:180px!important;max-width:210px!important;}
body .sta-items-table thead th.sta-col-actions{min-width:72px!important;width:78px!important;max-width:84px!important;}
body .sta-items-table{min-width:820px!important;}

body .sta-list-table thead th.sta-list-adjustment{min-width:110px!important;width:125px!important;max-width:135px!important;}
body .sta-list-table thead th.sta-list-transfer{min-width:105px!important;width:120px!important;max-width:130px!important;}
body .sta-list-table thead th.sta-list-date{min-width:88px!important;width:100px!important;max-width:112px!important;}
body .sta-list-table thead th.sta-list-location{min-width:120px!important;width:145px!important;max-width:165px!important;}
body .sta-list-table thead th.sta-list-person{min-width:120px!important;width:145px!important;max-width:160px!important;}
body .sta-list-table thead th.sta-list-status{min-width:82px!important;width:92px!important;max-width:100px!important;}
body .sta-list-table thead th.sta-list-actions{min-width:66px!important;width:72px!important;max-width:78px!important;}

body .purchase-return-items-table thead th.pr-col-product,
body .purchase-return-view-table thead th.pr-col-product{min-width:200px!important;width:225px!important;max-width:250px!important;}
body .purchase-return-items-table thead th.pr-col-location{min-width:120px!important;width:140px!important;max-width:155px!important;}
body .purchase-return-items-table thead th.pr-col-ctn{min-width:62px!important;width:70px!important;max-width:78px!important;}
body .purchase-return-items-table thead th:is(.pr-col-grnqty,.pr-col-returned,.pr-col-available,.pr-col-returnqty,.pr-col-pcs),
body .purchase-return-view-table thead th.pr-col-pcs{min-width:78px!important;width:92px!important;max-width:104px!important;}
body .purchase-return-items-table thead th.pr-col-by{min-width:58px!important;width:64px!important;max-width:70px!important;}
body .purchase-return-items-table thead th.pr-col-cost,
body .purchase-return-view-table thead th.pr-col-cost{min-width:92px!important;width:105px!important;max-width:116px!important;}
body .purchase-return-items-table thead th.pr-col-value,
body .purchase-return-view-table thead th.pr-col-value{min-width:105px!important;width:120px!important;max-width:132px!important;}
body .purchase-return-items-table thead th.pr-col-remarks,
body .purchase-return-view-table thead th.pr-col-remarks{min-width:130px!important;width:155px!important;max-width:180px!important;}
body .purchase-return-items-table thead th.pr-col-actions{min-width:44px!important;width:48px!important;max-width:52px!important;}
body .purchase-return-view-table thead th.pr-col-rack{min-width:72px!important;width:82px!important;max-width:92px!important;}
body .purchase-return-items-table{min-width:1120px!important;}
body .purchase-return-view-table{min-width:760px!important;}

body .purchase-return-list-table thead th.pr-list-return{min-width:105px!important;width:120px!important;max-width:132px!important;}
body .purchase-return-list-table thead th.pr-list-date{min-width:82px!important;width:92px!important;max-width:102px!important;}
body .purchase-return-list-table thead th.pr-list-supplier{min-width:135px!important;width:165px!important;max-width:185px!important;}
body .purchase-return-list-table thead th.pr-list-location{min-width:120px!important;width:145px!important;max-width:165px!important;}
body .purchase-return-list-table thead th.pr-list-grn{min-width:105px!important;width:118px!important;max-width:130px!important;}
body .purchase-return-list-table thead th.pr-list-reason{min-width:135px!important;width:165px!important;max-width:190px!important;}
body .purchase-return-list-table thead th.pr-list-qty{min-width:64px!important;width:72px!important;max-width:80px!important;}
body .purchase-return-list-table thead th.pr-list-status{min-width:78px!important;width:88px!important;max-width:98px!important;}
body .purchase-return-list-table thead th.pr-list-actions{min-width:58px!important;width:66px!important;max-width:72px!important;}


/* V14: Business Analytics Product Type/Search geometry and global backend table
   alignment. Pure presentation: report queries, filters and exports untouched. */
body:not(.mobile-app-body) :is(#perfTable,#paretoTable,#skuTable) :is(th,td).ci-name-column,
body:not(.mobile-app-body) #perfTable :is(th,td)[data-perf-key="label"],
body:not(.mobile-app-body) #paretoTable :is(th,td)[data-pareto-key="product"],
body:not(.mobile-app-body) #skuTable :is(th,td)[data-sku-key="product"]{
  box-sizing:border-box!important;
  width:352px!important;min-width:352px!important;max-width:375px!important;
  white-space:normal!important;overflow-wrap:break-word!important;
}
body:not(.mobile-app-body) #perfTable :is(th,td)[data-perf-product-type],
body:not(.mobile-app-body) #perfTable :is(th,td)[data-perf-key="status"],
body:not(.mobile-app-body) #paretoTable :is(th,td)[data-pareto-key="status"],
body:not(.mobile-app-body) #skuTable :is(th,td)[data-sku-key="status"]{
  box-sizing:border-box!important;
  width:140px!important;min-width:140px!important;max-width:140px!important;
  white-space:normal!important;overflow-wrap:anywhere!important;
}
/* Add approximately two letter widths to the Product Master Picture column. */
body:not(.mobile-app-body).toko-page-products #productTable :is(th,td).erp-polish-picture-col{
  box-sizing:border-box!important;
  width:96px!important;min-width:96px!important;max-width:96px!important;
}
/* Every backend table header wraps naturally AND centers its label. */
body:not(.mobile-app-body) :is(.content,.app-content) table thead th{
  text-align:center!important;vertical-align:middle!important;
  white-space:normal!important;overflow-wrap:anywhere!important;
}
body:not(.mobile-app-body) :is(.content,.app-content) table thead th .ci-sort-link,
body:not(.mobile-app-body) :is(.content,.app-content) table thead th .erp-sort-link{
  justify-content:center!important;text-align:center!important;
  white-space:normal!important;overflow-wrap:anywhere!important;
}
/* Center number-bearing cells. Semantic numeric headers receive the polish
   class; other preexisting numeric classes cover grouped-header/matrix tables. */
body:not(.mobile-app-body) :is(.content,.app-content) table tbody :is(
  td.num,td.numeric,td.ci-number,td.erp-polish-numeric-col,td.erp-polish-index-col,
  td.line-no,td.product-cost-col,td.text-right,td.text-end
),
body:not(.mobile-app-body) :is(.content,.app-content) table tfoot :is(
  td.num,td.numeric,td.ci-number,td.erp-polish-numeric-col,td.erp-polish-index-col,
  td.line-no,td.product-cost-col,td.text-right,td.text-end
){
  text-align:center!important;font-variant-numeric:tabular-nums;
}


/* v3.1.18 V17 — backend modal/header and table alignment polish.
   Presentation only; Staff Mobile PWA remains unchanged. */
body:not(.mobile-app-body) :is(
  .erp-modal > .erp-modal-card > .erp-modal-head,
  .modal-overlay .modal-head,
  .ci-modal-dialog > .ci-modal-head,
  .erp-side-drawer > .erp-drawer-head,
  .ci-filter-head
){
  background:#eaf4ff!important;
  background-image:none!important;
  color:#203c58!important;
  border-bottom:1px solid #c5dcf1!important;
  box-shadow:none!important;
}
body:not(.mobile-app-body) :is(
  .erp-modal-head,.modal-head,.ci-modal-head,.erp-drawer-head,.ci-filter-head
) :is(h1,h2,h3){color:#203c58!important;}
body:not(.mobile-app-body) .erp-modal > .erp-modal-card > .erp-modal-head{
  position:sticky!important;top:0!important;z-index:15!important;
  padding:14px 17px!important;
}
/* Unified header appearance should not change modal input/form dimensions. */
body:not(.mobile-app-body) .erp-modal > .erp-modal-card > .erp-modal-head > :is(button,.btn),
body:not(.mobile-app-body) .erp-modal > .erp-modal-card > .erp-modal-head .btn{
  background:#fff!important;border:1px solid #c5d7ec!important;
  color:#31516f!important;
}
/* Opaque filter actions: a scrollable filter option must never show through
   the button row, its side gutters, or the space just beneath it. */
body:not(.mobile-app-body) .erp-side-drawer :is(
  .erp-filter-modal-actions,.erp-filter-drawer-actions,.ci-filter-actions
),
body:not(.mobile-app-body) #reportFilterModal .erp-side-drawer > .modal-actions{
  position:sticky!important;bottom:0!important;z-index:35!important;
  background:#fff!important;background-image:none!important;
  background-clip:border-box!important;
  opacity:1!important;isolation:isolate!important;
  border-top:1px solid #d9e7f3!important;
  box-shadow:0 -8px 16px -13px rgba(25,54,84,.26),0 18px 0 10px #fff!important;
  padding-bottom:max(14px,env(safe-area-inset-bottom))!important;
}
/* The body scrolls under an opaque footer, never through transparent form
   padding at the bottom of the drawer. */
body:not(.mobile-app-body) .erp-side-drawer > form.erp-drawer-form{
  padding-bottom:0!important;
}
/* Center wrapped backend column headings, including linked sort headings. */
body:not(.mobile-app-body) table thead th{
  text-align:center!important;vertical-align:middle!important;
  white-space:normal!important;overflow-wrap:anywhere!important;
}
body:not(.mobile-app-body) table thead th :is(
  .ci-sort-link,.erp-sort-link,a[data-server-sort],.sort-link
){
  justify-content:center!important;text-align:center!important;
  white-space:normal!important;overflow-wrap:anywhere!important;
}
/* Numeric column rules apply to ordinary ERP, report and analytics tables.
   Supplemented by semantic numeric-cell marking in ui-shell.js. */
body:not(.mobile-app-body) table :is(tbody,tfoot) :is(
  td.num,td.numeric,td.number,td.text-right,td.text-end,
  td.erp-polish-numeric-col,td.erp-v17-numeric-col,td.ci-number,
  td.erp-polish-index-col,td.line-no,td.product-cost-col
){
  text-align:center!important;font-variant-numeric:tabular-nums;
}
