/* =============================================================================
   Wave 0/1 — ERP global chrome foundation
   Applies density tokens; progressive (does not strip legacy page hacks).
   ============================================================================= */

/* Page controls = 32px; toolbar host keeps 36px via os-toolbar.css.
   In-form fields stay 28px (LocalInvoice form-row). */
body.os-erp-page-system .os-erp-page-control:not(.os-row-action),
body.os-erp-page-system .os-erp-page .btn:not(.btn-link):not(.btn-close):not(.os-page-toolbar-btn):not(.os-page-toolbar-icon-btn):not(.os-page-toolbar-labeled-btn):not(.os-app-header-icon-btn):not(.os-row-action) {
  min-height: var(--os-erp-page-control-height, 32px);
}

body.os-erp-page-system .os-erp-page .os-filter-bar .form-control:not(textarea),
body.os-erp-page-system .os-erp-page .os-page-grid-search .form-control:not(textarea),
body.os-erp-page-system .os-erp-page .os-module-toolbar .form-control:not(textarea),
body.os-erp-page-system .os-erp-page .os-erp-page-header .form-control:not(textarea),
body.os-erp-page-system .os-erp-page .os-filter-bar .form-select,
body.os-erp-page-system .os-erp-page .os-page-grid-search .form-select,
body.os-erp-page-system .os-erp-page .os-module-toolbar .form-select,
body.os-erp-page-system .os-erp-page .os-erp-page-header .form-select {
  min-height: var(--os-erp-page-control-height, 32px);
}

/* Progressive: on migrated ERP shells, btn-sm maps to page control height (not Bootstrap tiny). */
.os-erp-page-shell .btn.btn-sm:not(.os-page-toolbar-btn):not(.os-page-toolbar-icon-btn):not(.os-row-action),
[data-os-erp-migrated="wave1"] .btn.btn-sm:not(.os-page-toolbar-btn):not(.os-page-toolbar-icon-btn):not(.os-row-action),
[data-os-erp-migrated="wave2"] .btn.btn-sm:not(.os-page-toolbar-btn):not(.os-page-toolbar-icon-btn):not(.os-row-action) {
  min-height: var(--os-erp-page-control-height, 32px);
  height: auto;
  padding-block: 0.3rem;
  padding-inline: 0.6rem;
  font-size: var(--os-btn-font-size);
  line-height: var(--os-btn-line-height);
}

.os-erp-page-shell .os-filter-bar .form-control-sm:not(textarea),
[data-os-erp-migrated="wave1"] .os-filter-bar .form-control-sm:not(textarea),
[data-os-erp-migrated="wave2"] .os-filter-bar .form-control-sm:not(textarea),
.os-erp-page-shell .os-page-grid-search .form-control-sm:not(textarea),
.os-erp-page-shell .os-erp-page-header .form-control-sm:not(textarea),
.os-erp-page-shell .os-filter-bar .form-select-sm,
[data-os-erp-migrated="wave1"] .os-filter-bar .form-select-sm,
[data-os-erp-migrated="wave2"] .os-filter-bar .form-select-sm,
.os-erp-page-shell .os-page-grid-search .form-select-sm,
.os-erp-page-shell .os-erp-page-header .form-select-sm {
  min-height: var(--os-erp-page-control-height, 32px);
  padding-block: 0.3rem;
}

.os-erp-page-shell .os-desktop-form .form-control-sm:not(textarea),
[data-os-erp-migrated="wave1"] .os-desktop-form .form-control-sm:not(textarea),
[data-os-erp-migrated="wave2"] .os-desktop-form .form-control-sm:not(textarea),
.os-erp-page-shell .os-desktop-form-table .form-control-sm:not(textarea),
.os-erp-page-shell .aps-site-table .form-control-sm:not(textarea),
.os-erp-page-shell .os-desktop-form .form-select-sm,
[data-os-erp-migrated="wave1"] .os-desktop-form .form-select-sm,
[data-os-erp-migrated="wave2"] .os-desktop-form .form-select-sm,
.os-erp-page-shell .os-desktop-form-table .form-select-sm,
.os-erp-page-shell .aps-site-table .form-select-sm {
  min-height: var(--os-form-row-height, 28px);
  height: var(--os-form-row-height, 28px);
  padding-block: 0;
  padding-inline: 0.35rem;
}

/* Toolbar remains 36px */
body.os-erp-page-system .os-erp-toolbar.os-page-toolbar .btn,
body.os-erp-page-system .os-page-toolbar .os-page-toolbar-btn {
  min-height: var(--os-erp-toolbar-btn-height, 36px);
  height: var(--os-erp-toolbar-btn-height, 36px);
}

/* Popup / confirm controls = 40px */
.os-confirm-dialog .os-popup-control,
.os-confirm-dialog .modal-footer .btn {
  min-height: var(--os-popup-control-height, 40px);
  height: auto;
  padding-inline: 0.85rem;
}

.os-confirm-dialog__dialog {
  max-width: min(var(--os-erp-popup-width-sm, 28rem), 96vw);
}

.os-confirm-dialog__footer {
  display: flex;
  flex-wrap: wrap;
  gap: var(--os-space-2, 0.5rem);
  justify-content: flex-end;
}

/* HTML data tables — density (all ERP tables, not only .os-erp-data-table) */
body.os-erp-page-system .os-erp-data-table > :not(caption) > * > *,
[data-os-erp-migrated="wave1"] .os-erp-data-table > :not(caption) > * > *,
[data-os-erp-migrated="wave2"] .os-erp-data-table > :not(caption) > * > *,
body.os-erp-page-system .os-erp-page table.table:not(.os-desktop-form-table):not(.aps-site-table) > :not(caption) > * > * {
  padding-block: 0.2rem;
}

body.os-erp-page-system .os-erp-data-table thead th,
[data-os-erp-migrated="wave1"] .os-erp-data-table thead th,
[data-os-erp-migrated="wave2"] .os-erp-data-table thead th,
body.os-erp-page-system .os-erp-page table.table:not(.os-desktop-form-table):not(.aps-site-table) thead th {
  height: auto;
  min-height: var(--os-grid-header-row-height, 28px);
  font-size: 0.75rem;
  vertical-align: middle;
}

body.os-erp-page-system .os-erp-data-table tbody td,
[data-os-erp-migrated="wave1"] .os-erp-data-table tbody td,
[data-os-erp-migrated="wave2"] .os-erp-data-table tbody td,
body.os-erp-page-system .os-erp-page table.table:not(.os-desktop-form-table):not(.aps-site-table) tbody td {
  height: auto;
  min-height: var(--os-grid-row-height, 30px);
  font-size: var(--os-table-cell-font-size, 11px);
  vertical-align: middle;
}

/* Filter bar */
.os-erp-filter-bar {
  margin-bottom: var(--os-space-3, 0.75rem);
}

.os-erp-filter-bar__actions {
  padding-bottom: 0.1rem;
}

/* State success */
.os-erp-state--success .os-erp-state__icon {
  color: var(--os-color-success);
}

.os-erp-state__actions {
  margin-top: var(--os-space-2, 0.5rem);
  display: flex;
  flex-wrap: wrap;
  gap: var(--os-space-2, 0.5rem);
  justify-content: center;
}

/* Status badges already in page-system; reinforce on migrated pages */
body.os-erp-page-system [data-os-erp-migrated="wave1"] .os-erp-badge,
body.os-erp-page-system .os-erp-page-shell .os-erp-badge {
  min-height: 1.25rem;
}

/* Loading button affordance */
body.os-erp-page-system .btn.is-loading,
body.os-erp-page-system .btn[aria-busy="true"] {
  pointer-events: none;
  opacity: 0.72;
}

/* Responsive: filter/toolbar wrap */
@media (max-width: 991.98px) {
  .os-erp-filter-bar__actions {
    width: 100%;
  }

  .os-erp-page-header__row {
    flex-wrap: wrap;
    gap: var(--os-space-2, 0.5rem);
  }
}
