/* =============================================================================
   Organic System — unified theme-aware buttons (UI-1.2 authority)
   Loaded AFTER os-theme-apply.css so toolbar/action buttons stay consistent
   in Light + Dark without fighting page CSS. Consumes --os-btn-* / --os-color-*
   (and --os-* semantic aliases when UI-1.1 provides them). Geometry for toolbar
   hosts remains owned by os-toolbar.css.
   No hardcoded whites on interactive surfaces in dark mode.
   ============================================================================= */

/* Defaults live in site.css / os-theme.css; this sheet reinforces adaptation + states. */

:root {
  /* UI-1.1-ready aliases — fall back to existing button/color tokens. */
  --os-btn-fg: var(--os-btn-text-ink, var(--os-color-button-text, var(--os-color-text)));
  --os-btn-fg-on-fill: var(--os-btn-text-on-fill, var(--os-color-text-inverse));
  --os-btn-fg-muted: var(--os-btn-text-muted, var(--os-color-text-muted));
  --os-btn-surface: var(--os-btn-neutral-bg, var(--os-color-button, var(--os-color-surface)));
  --os-btn-surface-hover: var(--os-btn-neutral-bg-hover, var(--os-color-hover));
  --os-btn-surface-selected: var(--os-btn-neutral-bg-selected, var(--os-color-primary-soft));
  --os-btn-stroke: var(--os-btn-border, var(--os-color-border-strong, var(--os-color-border)));
  --os-btn-stroke-hover: var(--os-btn-border-hover, var(--os-color-primary-dark));
  --os-btn-fill-primary: var(--os-color-button-primary, var(--os-color-primary));
  --os-btn-fill-success: var(--os-color-button-success, var(--os-color-success));
  --os-btn-fill-danger: var(--os-color-button-danger, var(--os-color-danger));
  --os-btn-fill-warning: var(--os-color-button-warning, var(--os-color-warning));
  --os-btn-fill-info: var(--os-color-button-info, var(--os-color-info));
}

html[data-theme="dark"],
body[data-theme="dark"] {
  --os-btn-text-ink: var(--os-color-text);
  --os-btn-text-on-fill: var(--os-color-text-inverse);
  --os-btn-text-muted: var(--os-color-text-muted);
  --os-btn-text-color: var(--os-btn-text-ink);
  --os-btn-border: var(--os-color-border-strong);
  --os-btn-border-hover: var(--os-color-primary-light);
  --os-btn-neutral-bg: var(--os-color-surface-muted);
  --os-btn-neutral-bg-hover: color-mix(in srgb, var(--os-color-primary) 24%, var(--os-color-surface-muted));
  --os-btn-neutral-bg-selected: color-mix(in srgb, var(--os-color-primary) 34%, var(--os-color-surface-muted));
  --os-btn-3d-neutral-bg: var(--os-btn-neutral-bg);
  --os-btn-3d-neutral-bg-hover: var(--os-btn-neutral-bg-hover);
  --os-color-danger-dark: #c4453c;
  /* Filled labels must stay on-fill (inverse). Dark token typos must not win. */
  --os-color-button-success-text: var(--os-btn-text-on-fill);
  --os-color-button-warning-text: var(--os-btn-text-on-fill);
  --os-color-button-primary-text: var(--os-btn-text-on-fill);
  --os-color-button-danger-text: var(--os-btn-text-on-fill);
  --os-btn-fg: var(--os-btn-text-ink);
  --os-btn-fg-on-fill: var(--os-btn-text-on-fill);
  --os-btn-fg-muted: var(--os-btn-text-muted);
  --os-btn-surface: var(--os-btn-neutral-bg);
  --os-btn-surface-hover: var(--os-btn-neutral-bg-hover);
  --os-btn-surface-selected: var(--os-btn-neutral-bg-selected);
  --os-btn-stroke: var(--os-btn-border);
  --os-btn-stroke-hover: var(--os-btn-border-hover);
}

/* ---------- Shared geometry / type for all app buttons ---------- */
.btn:not(.btn-link):not(.btn-close):not(.dropdown-item):not(.nav-link):not(.os-row-action),
a.btn:not(.btn-link):not(.nav-link):not(.os-row-action),
button.btn:not(.btn-link):not(.nav-link):not(.os-row-action),
input[type="button"]:not(.form-control),
input[type="submit"]:not(.form-control),
input[type="reset"]:not(.form-control),
.os-page-toolbar-btn,
a.os-page-toolbar-btn,
button.os-page-toolbar-btn,
.os-page-toolbar-icon-btn,
.os-page-toolbar-labeled-btn,
.os-app-header-icon-btn,
.os-inline-action-icon-btn,
.rotation-export-btn,
.login-btn,
.login-side-btn,
.module-main-btn,
.module-main-filter-toggle,
.os-theme-toggle-btn,
.dx-button,
.dx-button.dx-button-mode-contained,
.dx-button.dx-button-mode-outlined,
.dx-button.dx-button-mode-text,
.page-link {
  font-family: var(--os-font-button) !important;
  font-size: var(--os-btn-font-size) !important;
  font-weight: var(--os-btn-font-weight) !important;
  letter-spacing: var(--os-btn-letter-spacing) !important;
  line-height: var(--os-btn-line-height) !important;
  border-radius: var(--os-btn-radius) !important;
  border-style: solid !important;
  border-width: 1px !important;
  box-shadow: none !important;
  transition: var(--os-btn-transition) !important;
  -webkit-font-smoothing: antialiased;
}

.btn:not(.btn-link):not(.btn-close):not(.dropdown-item):not(.nav-link):not(.btn-lg):not(.btn-sm):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),
a.btn:not(.btn-link):not(.nav-link):not(.btn-lg):not(.btn-sm):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),
button.btn:not(.btn-link):not(.nav-link):not(.btn-lg):not(.btn-sm):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),
.dx-button:not(.dx-button-sm):not(.dx-button-lg) {
  min-height: var(--os-btn-height);
  height: auto;
  padding-block: var(--os-btn-padding-y) !important;
  padding-inline: var(--os-btn-padding-x) !important;
}

/* Toolbar geometry is owned exclusively by os-toolbar.css (--os-erp-toolbar-btn-height). */
.os-page-toolbar-btn,
a.os-page-toolbar-btn,
button.os-page-toolbar-btn,
.os-page-toolbar-icon-btn,
.os-page-toolbar-labeled-btn,
.os-app-header-icon-btn {
  min-height: var(--os-erp-toolbar-btn-height, 36px);
  height: var(--os-erp-toolbar-btn-height, 36px);
  max-height: var(--os-erp-toolbar-btn-height, 36px);
  padding-block: 0 !important;
}

.btn .bi,
.btn i,
.os-page-toolbar-btn .bi,
.os-page-toolbar-btn i,
.os-page-toolbar-icon-btn .bi,
.dx-button .dx-icon {
  vertical-align: -0.1em;
}

.btn:focus-visible,
.os-page-toolbar-btn:focus-visible,
.dx-button.dx-state-focused {
  outline: none !important;
  box-shadow: 0 0 0 0.15rem var(--os-color-focus-ring) !important;
}

/* ---------- Neutral / outline family (theme surfaces) ---------- */
.btn-secondary,
.btn-light,
.btn-outline-secondary,
.btn-outline-primary,
.btn-outline-success,
.btn-outline-danger,
.btn-outline-warning,
.btn-outline-info,
.btn-outline-light,
.btn-outline-dark,
.os-page-toolbar-btn:not(.btn-primary):not(.btn-success):not(.btn-danger):not(.btn-warning):not(.btn-info),
.os-page-toolbar-icon-btn:not(.btn-primary):not(.btn-success):not(.btn-danger),
.os-app-header-icon-btn:not(.btn-primary):not(.btn-success):not(.btn-danger),
.os-inline-action-icon-btn,
.rotation-export-btn,
.login-btn-secondary,
.login-side-btn,
.module-main-btn,
.module-main-filter-toggle,
.dx-button.dx-button-mode-contained:not(.dx-button-default):not(.dx-button-success):not(.dx-button-danger),
.dx-button.dx-button-mode-outlined,
.page-link {
  color: var(--os-btn-text-ink) !important;
  background-color: var(--os-btn-neutral-bg) !important;
  background-image: none !important;
  border-color: var(--os-btn-border) !important;
}

.btn-secondary:hover:not(:disabled):not(.disabled),
.btn-light:hover:not(:disabled):not(.disabled),
.btn-outline-secondary:hover:not(:disabled):not(.disabled),
.btn-outline-primary:hover:not(:disabled):not(.disabled):not(.os-row-action),
.btn-outline-success:hover:not(:disabled):not(.disabled),
.btn-outline-danger:hover:not(:disabled):not(.disabled):not(.os-row-action),
.btn-outline-warning:hover:not(:disabled):not(.disabled),
.btn-outline-info:hover:not(:disabled):not(.disabled),
.os-page-toolbar-btn:not(.btn-primary):not(.btn-success):not(.btn-danger):not(.btn-warning):not(.btn-info):hover:not(:disabled):not(.disabled),
.os-page-toolbar-icon-btn:not(.btn-primary):not(.btn-success):not(.btn-danger):hover:not(:disabled),
.dx-button.dx-button-mode-contained:not(.dx-button-default):not(.dx-button-success):not(.dx-button-danger):hover,
.dx-button.dx-button-mode-outlined:hover,
.page-link:hover {
  color: var(--os-btn-text-ink) !important;
  background-color: var(--os-btn-neutral-bg-hover) !important;
  border-color: var(--os-btn-border-hover) !important;
}

.btn-outline-primary:hover:not(:disabled):not(.disabled):not(.os-row-action),
.btn-outline-primary:focus:not(:disabled):not(.disabled):not(.os-row-action),
.btn-outline-primary.os-btn-selected {
  color: var(--os-btn-text-on-fill) !important;
  background-color: var(--os-color-primary) !important;
  border-color: var(--os-color-primary-dark) !important;
}

.btn-outline-success:hover:not(:disabled):not(.disabled),
.btn-outline-success:focus:not(:disabled):not(.disabled) {
  color: var(--os-btn-text-on-fill) !important;
  background-color: var(--os-color-success) !important;
  border-color: var(--os-color-accent-dark) !important;
}

.btn-outline-danger:hover:not(:disabled):not(.disabled):not(.os-row-action),
.btn-outline-danger:focus:not(:disabled):not(.disabled):not(.os-row-action),
[data-os-toolbar="delete"]:hover:not(:disabled):not(.disabled) {
  color: var(--os-btn-text-on-fill) !important;
  background-color: var(--os-color-danger) !important;
  border-color: var(--os-color-danger-dark) !important;
}

.os-btn-selected:not(.btn-primary):not(.btn-success):not(.btn-danger):not(.btn-warning):not(.btn-info):not(:disabled):not(.disabled) {
  background-color: var(--os-btn-neutral-bg-selected) !important;
  border-color: var(--os-btn-border-hover) !important;
  color: var(--os-btn-text-ink) !important;
}

/* ---------- Filled semantic family (always on-fill text) ---------- */
.btn-primary,
.btn-success,
.btn-danger,
.btn-warning,
.btn-info,
.os-btn-primary,
.dx-button.dx-button-default,
.dx-button.dx-button-success,
.dx-button.dx-button-danger {
  color: var(--os-btn-fg-on-fill) !important;
}

.btn-primary,
.os-btn-primary {
  background-color: var(--os-btn-fill-primary) !important;
  border-color: var(--os-btn-fill-primary) !important;
}

.btn-primary:hover:not(:disabled):not(.disabled):not([aria-busy="true"]),
.btn-primary:focus:not(:disabled):not(.disabled),
.btn-primary:focus-visible,
.btn-primary.os-btn-selected {
  background-color: var(--os-color-primary-dark) !important;
  border-color: var(--os-color-primary-dark) !important;
  color: var(--os-btn-fg-on-fill) !important;
}

.btn-success {
  background-color: var(--os-btn-fill-success) !important;
  border-color: var(--os-btn-fill-success) !important;
}

.btn-success:hover:not(:disabled):not(.disabled):not([aria-busy="true"]),
.btn-success:focus:not(:disabled):not(.disabled),
.btn-success:focus-visible,
.btn-success.os-btn-selected {
  background-color: var(--os-color-accent-dark) !important;
  border-color: var(--os-color-accent-dark) !important;
  color: var(--os-btn-fg-on-fill) !important;
}

.btn-danger {
  background-color: var(--os-btn-fill-danger) !important;
  border-color: var(--os-btn-fill-danger) !important;
}

.btn-danger:hover:not(:disabled):not(.disabled):not([aria-busy="true"]),
.btn-danger:focus:not(:disabled):not(.disabled),
.btn-danger:focus-visible,
.btn-danger.os-btn-selected {
  background-color: var(--os-color-danger-dark) !important;
  border-color: var(--os-color-danger-dark) !important;
  color: var(--os-btn-fg-on-fill) !important;
}

.btn-warning {
  background-color: var(--os-btn-fill-warning) !important;
  border-color: var(--os-btn-fill-warning) !important;
  color: var(--os-btn-fg-on-fill) !important;
}

.btn-warning:hover:not(:disabled):not(.disabled):not([aria-busy="true"]),
.btn-warning:focus:not(:disabled):not(.disabled),
.btn-warning:focus-visible {
  filter: brightness(0.92);
  color: var(--os-btn-fg-on-fill) !important;
}

.btn-info {
  background-color: var(--os-btn-fill-info) !important;
  border-color: var(--os-btn-fill-info) !important;
  color: var(--os-btn-fg-on-fill) !important;
}

.btn-info:hover:not(:disabled):not(.disabled):not([aria-busy="true"]),
.btn-info:focus:not(:disabled):not(.disabled),
.btn-info:focus-visible {
  filter: brightness(0.94);
  color: var(--os-btn-fg-on-fill) !important;
}

.btn-primary .bi,
.btn-primary i,
.btn-success .bi,
.btn-success i,
.btn-danger .bi,
.btn-danger i,
.btn-warning .bi,
.btn-warning i,
.btn-info .bi,
.btn-info i,
.btn-outline-primary:hover .bi,
.btn-outline-primary:focus .bi {
  color: var(--os-btn-text-on-fill) !important;
}

.btn-secondary .bi,
.btn-outline-secondary .bi,
.btn-outline-primary .bi,
.os-page-toolbar-btn:not(.btn-primary):not(.btn-success):not(.btn-danger) .bi,
.os-page-toolbar-btn:not(.btn-primary):not(.btn-success):not(.btn-danger) i {
  color: inherit !important;
}

/* ---------- Disabled / active / loading ---------- */
.btn:disabled,
.btn.disabled,
.os-page-toolbar-btn:disabled,
.os-page-toolbar-icon-btn:disabled,
.os-app-header-icon-btn:disabled,
.dx-button.dx-state-disabled {
  opacity: 0.58 !important;
  cursor: not-allowed !important;
  box-shadow: none !important;
  color: var(--os-btn-fg-muted) !important;
}

.btn:disabled.btn-primary,
.btn.disabled.btn-primary,
.btn:disabled.btn-success,
.btn.disabled.btn-success,
.btn:disabled.btn-danger,
.btn.disabled.btn-danger,
.btn:disabled.btn-warning,
.btn.disabled.btn-warning,
.btn:disabled.btn-info,
.btn.disabled.btn-info {
  color: var(--os-btn-fg-on-fill) !important;
  opacity: 0.55 !important;
}

.btn:active:not(:disabled):not(.disabled):not([aria-busy="true"]):not(.os-row-action),
.os-page-toolbar-btn:active:not(:disabled):not([aria-busy="true"]),
.dx-button.dx-state-active {
  transform: none;
  box-shadow: none !important;
  filter: brightness(0.96);
}

/* Loading — used by Refresh / Save / Print busy flags (aria-busy). */
.btn[aria-busy="true"],
.os-page-toolbar-btn[aria-busy="true"],
.os-page-toolbar-icon-btn[aria-busy="true"],
.dx-button.dx-state-loading,
.dx-button[aria-busy="true"] {
  opacity: 0.72 !important;
  cursor: progress !important;
  pointer-events: none !important;
  box-shadow: none !important;
}

/* ---------- Toolbar action roles (visual only — no logic change) ---------- */
/* Neutral chrome for shared actions that are outline/secondary by contract. */
.os-page-toolbar [data-os-toolbar="refresh"],
.os-page-toolbar [data-os-toolbar="search"],
.os-page-toolbar [data-os-toolbar="filter"],
.os-page-toolbar [data-os-toolbar="clear"],
.os-page-toolbar [data-os-toolbar="apply"],
.os-page-toolbar [data-os-toolbar="export"],
.os-page-toolbar [data-os-toolbar="export-excel"],
.os-page-toolbar [data-os-toolbar="print"],
.os-page-toolbar [data-os-toolbar="report"],
.os-page-toolbar [data-os-toolbar="more"],
.os-page-toolbar [data-os-toolbar="back"],
.os-page-toolbar [data-os-toolbar="nav-back"],
.os-page-toolbar [data-os-toolbar="module-back"],
.os-page-toolbar [data-os-toolbar="next"],
.os-page-toolbar [data-os-toolbar="previous"],
.os-page-toolbar [data-os-toolbar="upload"],
.os-page-toolbar [data-os-toolbar="download"],
.os-page-toolbar [data-os-toolbar="cancel"],
.os-page-toolbar [data-os-toolbar="close"],
.os-page-toolbar [data-os-toolbar="undo"],
.os-page-toolbar [data-os-toolbar="redo"],
.os-app-page-toolbar-slot [data-os-toolbar="refresh"],
.os-app-page-toolbar-slot [data-os-toolbar="search"],
.os-app-page-toolbar-slot [data-os-toolbar="filter"],
.os-app-page-toolbar-slot [data-os-toolbar="clear"],
.os-app-page-toolbar-slot [data-os-toolbar="apply"],
.os-app-page-toolbar-slot [data-os-toolbar="export"],
.os-app-page-toolbar-slot [data-os-toolbar="export-excel"],
.os-app-page-toolbar-slot [data-os-toolbar="print"],
.os-app-page-toolbar-slot [data-os-toolbar="report"],
.os-app-page-toolbar-slot [data-os-toolbar="more"],
.os-app-page-toolbar-slot [data-os-toolbar="back"],
.os-app-page-toolbar-slot [data-os-toolbar="nav-back"],
.os-app-page-toolbar-slot [data-os-toolbar="module-back"],
.os-app-page-toolbar-slot [data-os-toolbar="next"],
.os-app-page-toolbar-slot [data-os-toolbar="previous"],
.os-app-page-toolbar-slot [data-os-toolbar="upload"],
.os-app-page-toolbar-slot [data-os-toolbar="download"],
.os-app-page-toolbar-slot [data-os-toolbar="cancel"],
.os-app-page-toolbar-slot [data-os-toolbar="close"],
.os-app-page-toolbar-slot [data-os-toolbar="undo"],
.os-app-page-toolbar-slot [data-os-toolbar="redo"] {
  color: var(--os-btn-fg) !important;
  background-color: var(--os-btn-surface) !important;
  border-color: var(--os-btn-stroke) !important;
  background-image: none !important;
}

/* Preserve intentional filled brand/status colors on CRUD roles. */
.os-page-toolbar [data-os-toolbar="new"].btn-primary,
.os-page-toolbar [data-os-toolbar="add"].btn-primary,
.os-app-page-toolbar-slot [data-os-toolbar="new"].btn-primary,
.os-app-page-toolbar-slot [data-os-toolbar="add"].btn-primary {
  color: var(--os-btn-fg-on-fill) !important;
  background-color: var(--os-btn-fill-primary) !important;
  border-color: var(--os-btn-fill-primary) !important;
}

.os-page-toolbar [data-os-toolbar="save"].btn-success,
.os-page-toolbar [data-os-toolbar="confirm"].btn-success,
.os-page-toolbar [data-os-toolbar="approve"].btn-success,
.os-app-page-toolbar-slot [data-os-toolbar="save"].btn-success,
.os-app-page-toolbar-slot [data-os-toolbar="confirm"].btn-success,
.os-app-page-toolbar-slot [data-os-toolbar="approve"].btn-success {
  color: var(--os-btn-fg-on-fill) !important;
  background-color: var(--os-btn-fill-success) !important;
  border-color: var(--os-btn-fill-success) !important;
}

.os-page-toolbar [data-os-toolbar="delete"],
.os-page-toolbar [data-os-toolbar="reject"].btn-danger,
.os-page-toolbar [data-os-toolbar="reject"].btn-outline-danger,
.os-app-page-toolbar-slot [data-os-toolbar="delete"],
.os-app-page-toolbar-slot [data-os-toolbar="reject"].btn-danger,
.os-app-page-toolbar-slot [data-os-toolbar="reject"].btn-outline-danger {
  border-color: var(--os-btn-fill-danger) !important;
}

.os-page-toolbar [data-os-toolbar="edit"].btn-outline-primary,
.os-app-page-toolbar-slot [data-os-toolbar="edit"].btn-outline-primary {
  color: var(--os-color-button-outline-text, var(--os-color-primary)) !important;
  border-color: var(--os-color-primary) !important;
  background-color: var(--os-btn-surface) !important;
}

/* ---------- Dropdown toggles — must remain clickable ---------- */
.os-page-toolbar .dropdown > .btn,
.os-page-toolbar .dropdown > .dropdown-toggle,
.os-page-toolbar .btn-group > .dropdown-toggle,
.os-app-page-toolbar-slot .dropdown > .btn,
.os-app-page-toolbar-slot .dropdown > .dropdown-toggle,
.os-app-page-toolbar-slot .btn-group > .dropdown-toggle,
.os-toolbar-print-dropdown > .dropdown-toggle,
.os-toolbar-share-dropdown > .dropdown-toggle,
.os-toolbar-diaries-dropdown > .dropdown-toggle,
.os-export-invoice-print-dropdown > .dropdown-toggle {
  pointer-events: auto !important;
  cursor: pointer !important;
  /* Never clip caret / block Bootstrap Dropdown show */
  overflow: visible !important;
}

.os-page-toolbar .dropdown-toggle:disabled,
.os-app-page-toolbar-slot .dropdown-toggle:disabled,
.os-page-toolbar .dropdown-toggle[aria-busy="true"],
.os-app-page-toolbar-slot .dropdown-toggle[aria-busy="true"] {
  pointer-events: none !important;
  cursor: not-allowed !important;
}

/* Open state: selected surface, not a white flash */
.os-page-toolbar .dropdown-toggle.show:not(.btn-primary):not(.btn-success):not(.btn-danger):not(.btn-warning):not(.btn-info),
.os-app-page-toolbar-slot .dropdown-toggle.show:not(.btn-primary):not(.btn-success):not(.btn-danger):not(.btn-warning):not(.btn-info),
.os-page-toolbar .dropdown-toggle[aria-expanded="true"]:not(.btn-primary):not(.btn-success):not(.btn-danger):not(.btn-warning):not(.btn-info),
.os-app-page-toolbar-slot .dropdown-toggle[aria-expanded="true"]:not(.btn-primary):not(.btn-success):not(.btn-danger):not(.btn-warning):not(.btn-info) {
  color: var(--os-btn-fg) !important;
  background-color: var(--os-btn-surface-selected) !important;
  border-color: var(--os-btn-stroke-hover) !important;
}

/* ---------- Modal / dialog / pagination ---------- */
.modal-footer .btn,
.modal-header .btn,
.os-confirm-dialog .btn,
.dropdown-menu .btn {
  font-family: var(--os-font-button) !important;
  border-radius: var(--os-btn-radius) !important;
  transition: var(--os-btn-transition) !important;
}

/* Cancel / Close — neutral; Confirm / Approve / Reject keep semantic fills via btn-* */
.modal-footer .btn[data-bs-dismiss="modal"],
.modal-header .btn-close,
.btn[data-os-toolbar="cancel"],
.btn[data-os-toolbar="close"],
.os-confirm-dialog .btn[data-bs-dismiss="modal"] {
  color: var(--os-btn-fg) !important;
}

.page-item.active .page-link {
  color: var(--os-btn-fg-on-fill) !important;
  background-color: var(--os-btn-fill-primary) !important;
  border-color: var(--os-btn-fill-primary) !important;
}

.page-item.disabled .page-link {
  color: var(--os-btn-fg-muted) !important;
  background-color: var(--os-btn-surface) !important;
  border-color: var(--os-btn-stroke) !important;
  opacity: 0.65;
}

/* ---------- DevExpress content transparency (chrome from theme) ---------- */
.dx-button .dx-button-content {
  background: transparent !important;
}

html[data-theme="dark"] .dx-button.dx-button-mode-contained:not(.dx-button-default):not(.dx-button-success):not(.dx-button-danger),
html[data-theme="dark"] .dx-button.dx-button-mode-outlined {
  color: var(--os-btn-fg) !important;
  background-color: var(--os-btn-surface) !important;
  border-color: var(--os-btn-stroke) !important;
}

html[data-theme="dark"] .dx-button.dx-button-default,
html[data-theme="dark"] .dx-button.dx-button-success,
html[data-theme="dark"] .dx-button.dx-button-danger {
  color: var(--os-btn-fg-on-fill) !important;
}

/* ---------- Dark: no white flash on hover / focus ---------- */
html[data-theme="dark"] .btn:not(.btn-link):not(.btn-close):hover:not(:disabled):not(.disabled),
html[data-theme="dark"] .os-page-toolbar-btn:hover:not(:disabled):not(.disabled),
html[data-theme="dark"] .os-page-toolbar-icon-btn:hover:not(:disabled),
html[data-theme="dark"] .dx-button:hover {
  background-image: none !important;
}

html[data-theme="dark"] .btn-light,
html[data-theme="dark"] .btn-outline-light {
  color: var(--os-btn-fg) !important;
  background-color: var(--os-btn-surface) !important;
  border-color: var(--os-btn-stroke) !important;
}

/* ---------- Close buttons on dark surfaces ---------- */
html[data-theme="dark"] .btn-close {
  filter: invert(1) grayscale(1) brightness(1.4);
  opacity: 0.75;
}

html[data-theme="dark"] .btn-close:hover {
  opacity: 1;
}

/* ---------- UI-POPUP-HEIGHT-1 — popup/dialog action buttons (FINAL) ----------
   Must beat the compact geometry rule above (many :not() selectors + padding-block
   !important). Scoped to dialog hosts only.
   -------------------------------------------------------------------------- */
.modal .modal-body .btn:not(.btn-link):not(.btn-close):not(.dropdown-item):not(.nav-link):not(.os-page-toolbar-btn),
.modal .modal-footer .btn:not(.btn-link):not(.btn-close):not(.dropdown-item):not(.nav-link):not(.os-page-toolbar-btn),
.modal .modal-header .btn:not(.btn-link):not(.btn-close):not(.dropdown-item):not(.nav-link):not(.os-page-toolbar-btn),
.offcanvas .offcanvas-body .btn:not(.btn-link):not(.btn-close):not(.dropdown-item):not(.nav-link),
.offcanvas .offcanvas-header .btn:not(.btn-link):not(.btn-close):not(.dropdown-item):not(.nav-link),
.os-confirm-dialog .btn:not(.btn-link):not(.btn-close):not(.dropdown-item):not(.nav-link),
.os-report-popup__dialog .os-report-popup__footer .btn:not(.btn-link):not(.btn-close),
.swal2-container .swal2-popup .swal2-actions .swal2-styled,
.dx-overlay-wrapper.dx-popup-wrapper:not(.dx-dropdowneditor-overlay):not(.dx-datebox-wrapper) .dx-popup-bottom .dx-button:not(.dx-closebutton),
.dx-overlay-wrapper.dx-popup-wrapper:not(.dx-dropdowneditor-overlay):not(.dx-datebox-wrapper) .dx-popup-content .dx-button:not(.dx-closebutton),
.dx-overlay-wrapper[class*="-popup"]:not(.dx-dropdowneditor-overlay) .dx-popup-bottom .dx-button:not(.dx-closebutton),
.dx-dialog-wrapper .dx-dialog-button {
  min-height: var(--os-popup-control-height, 40px) !important;
  height: var(--os-popup-control-height, 40px) !important;
  max-height: none !important;
  box-sizing: border-box !important;
  padding-block: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
