/* =============================================================================
   Global CRUD row actions — compact Edit/Delete inside table rows.
   Isolated from ERP/theme button geometry, fills, transitions, and opacity.
   No chrome when a row has no permitted action.
   ============================================================================= */

:root {
  --os-row-action-height: 22px;
  --os-row-action-gap: 0.25rem;
  --os-row-action-pad-x: 0.4rem;
  --os-row-action-font: var(--os-grid-cell-font-size, 11px);
  --os-row-action-icon: 0.75rem;
  --os-row-action-radius: 0.25rem;
  --os-row-action-edit: var(--os-color-primary, #0d6efd);
  --os-row-action-print: var(--os-color-secondary, #5c6b73);
  --os-row-action-delete: var(--os-color-danger, #dc3545);
  --os-confirm-compact-width: 22rem;
}

.os-row-actions-col,
th.os-row-actions-col,
td.os-row-actions-cell {
  width: 6rem;
  min-width: 6rem;
  max-width: none;
  white-space: nowrap;
  text-align: start !important;
  vertical-align: middle;
  overflow: visible;
  position: relative;
  z-index: 4;
  isolation: isolate;
  pointer-events: auto !important;
  box-shadow: none;
}

body.os-app-body main table.table td.os-row-actions-cell,
body.os-app-body main table.table td.os-row-actions-cell.text-end {
  text-align: start !important;
}

td.os-row-actions-cell:empty,
td.os-row-actions-cell:not(:has(.os-row-actions, a, button, form)) {
  padding: 0;
  background: transparent;
}

.os-row-actions {
  display: inline-flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-start;
  gap: var(--os-row-action-gap);
  margin: 0;
  padding: 0;
  background: none;
  border: 0;
  box-shadow: none;
  min-width: 0;
  max-width: none;
  flex-shrink: 0;
  position: relative;
  z-index: 2;
  pointer-events: auto !important;
}

.os-row-actions.os-row-actions--wrap {
  flex-wrap: wrap;
}

.os-row-actions:empty {
  display: none !important;
  background: none !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.os-row-actions__form {
  display: inline-flex;
  margin: 0;
  padding: 0;
  background: none;
  border: 0;
}

.os-row-action,
a.os-row-action,
button.os-row-action,
.os-row-actions > a,
.os-row-actions > button,
.os-row-actions__form > button,
body.os-erp-page-system .os-row-action,
body.os-erp-page-system .os-erp-page .os-row-action,
body.os-erp-page-system .os-erp-page .os-row-action.btn,
.os-erp-page-shell .os-row-action,
.os-erp-page-shell a.os-row-action.btn.btn-sm,
[data-os-erp-migrated] .os-row-action.btn.btn-sm {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.2rem;
  box-sizing: border-box !important;
  width: var(--os-row-action-height) !important;
  min-width: var(--os-row-action-height) !important;
  height: var(--os-row-action-height) !important;
  min-height: var(--os-row-action-height) !important;
  max-height: var(--os-row-action-height) !important;
  padding: 0 !important;
  margin: 0 !important;
  border-width: 1px !important;
  border-style: solid !important;
  border-radius: var(--os-row-action-radius) !important;
  font-size: var(--os-row-action-font) !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  white-space: nowrap !important;
  text-decoration: none !important;
  cursor: pointer;
  flex: 0 0 auto;
  position: relative;
  z-index: 1;
  pointer-events: auto !important;
  visibility: visible !important;
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
  box-shadow: none !important;
  background-image: none !important;
  transition: none !important;
  animation: none !important;
}

.os-row-action > .bi,
.os-row-actions > a .bi,
.os-row-actions > button .bi,
.os-row-actions__form > button .bi {
  font-size: var(--os-row-action-icon) !important;
  line-height: 1 !important;
  pointer-events: none;
  opacity: 1 !important;
  transform: none !important;
}

.os-row-action > span,
.os-row-actions > a > span,
.os-row-actions > button > span,
.os-row-actions__form > button > span {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
  pointer-events: none;
}

.os-row-action--edit,
a.os-row-action--edit,
.os-row-actions a.os-row-action--edit,
a.os-row-action.btn-outline-primary {
  color: var(--os-row-action-edit) !important;
  background-color: transparent !important;
  background-image: none !important;
  border-color: var(--os-row-action-edit) !important;
}

.os-row-action--edit:hover,
.os-row-action--edit:focus,
.os-row-action--edit:focus-visible,
.os-row-action--edit:active,
a.os-row-action--edit:hover:not(:disabled):not(.disabled),
a.os-row-action.btn-outline-primary:hover:not(:disabled):not(.disabled) {
  color: var(--os-row-action-edit) !important;
  background-color: color-mix(in srgb, var(--os-row-action-edit) 12%, transparent) !important;
  background-image: none !important;
  border-color: var(--os-row-action-edit) !important;
  border-width: 1px !important;
  height: var(--os-row-action-height) !important;
  min-height: var(--os-row-action-height) !important;
  max-height: var(--os-row-action-height) !important;
  padding: 0 !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  filter: none !important;
  box-shadow: none !important;
}

.os-row-action--print,
a.os-row-action--print {
  color: var(--os-row-action-print) !important;
  background-color: transparent !important;
  background-image: none !important;
  border-color: var(--os-row-action-print) !important;
}

.os-row-action--print:hover,
.os-row-action--print:focus,
.os-row-action--print:focus-visible,
.os-row-action--print:active,
a.os-row-action--print:hover:not(:disabled):not(.disabled) {
  color: var(--os-row-action-print) !important;
  background-color: color-mix(in srgb, var(--os-row-action-print) 12%, transparent) !important;
  background-image: none !important;
  border-color: var(--os-row-action-print) !important;
  border-width: 1px !important;
  height: var(--os-row-action-height) !important;
  min-height: var(--os-row-action-height) !important;
  max-height: var(--os-row-action-height) !important;
  padding: 0 !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  filter: none !important;
  box-shadow: none !important;
}

.os-row-action--delete,
button.os-row-action--delete,
button.os-row-action.btn-outline-danger {
  color: var(--os-row-action-delete) !important;
  background-color: transparent !important;
  background-image: none !important;
  border-color: var(--os-row-action-delete) !important;
}

.os-row-action--delete:hover,
.os-row-action--delete:focus,
.os-row-action--delete:focus-visible,
.os-row-action--delete:active,
button.os-row-action--delete:hover:not(:disabled):not(.disabled),
button.os-row-action.btn-outline-danger:hover:not(:disabled):not(.disabled) {
  color: var(--os-row-action-delete) !important;
  background-color: color-mix(in srgb, var(--os-row-action-delete) 12%, transparent) !important;
  background-image: none !important;
  border-color: var(--os-row-action-delete) !important;
  border-width: 1px !important;
  height: var(--os-row-action-height) !important;
  min-height: var(--os-row-action-height) !important;
  max-height: var(--os-row-action-height) !important;
  padding: 0 !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  filter: none !important;
  box-shadow: none !important;
}

.os-row-action:focus-visible {
  outline: 2px solid var(--os-row-action-edit) !important;
  outline-offset: 1px;
  box-shadow: none !important;
}

.os-row-action--delete:focus-visible {
  outline-color: var(--os-row-action-delete) !important;
}

body.os-auth-deny-edit .os-row-actions [data-os-row-action="edit"],
body.os-auth-deny-edit .os-row-actions a.os-row-action--edit,
body.os-auth-deny-edit .os-row-actions a[href*="Edit"]:not([data-os-row-action="delete"]):not([data-os-row-action="print"]) {
  display: none !important;
}

body.os-auth-deny-delete .os-row-actions [data-os-row-action="delete"],
body.os-auth-deny-delete .os-row-actions .os-row-actions__form {
  display: none !important;
}

body.os-auth-deny-edit.os-auth-deny-delete table:not(:has([data-os-row-action="print"])) th.os-row-actions-col,
body.os-auth-deny-edit.os-auth-deny-delete td.os-row-actions-cell:not(:has([data-os-row-action="print"])),
body.os-auth-deny-edit.os-auth-deny-delete .os-row-actions:not(:has([data-os-row-action="print"])) {
  display: none !important;
}

body.os-auth-deny-delete .os-row-actions:not(:has(a)):not(:has(button:not([data-os-row-action="delete"]))) {
  display: none !important;
}

body.os-auth-deny-delete table.os-row-actions-delete-only th.os-row-actions-col,
body.os-auth-deny-delete table.os-row-actions-delete-only td.os-row-actions-cell {
  display: none !important;
}

@media (max-width: 767.98px) {
  .os-row-action span {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .os-row-action,
  .os-row-action:hover,
  .os-row-action:focus,
  .os-row-action:active {
    min-width: var(--os-row-action-height) !important;
    padding-inline: 0.35rem !important;
  }
}

/* Compact Confirm Delete — shared by every table row delete. */
#os-confirm-modal.os-confirm-dialog--compact .os-confirm-dialog__dialog,
#os-confirm-modal.os-confirm-dialog--compact .modal-dialog {
  max-width: min(var(--os-confirm-compact-width), 92vw) !important;
  width: min(var(--os-confirm-compact-width), 92vw) !important;
  margin: 1.75rem auto !important;
}

#os-confirm-modal.os-confirm-dialog--compact .modal-content {
  min-height: 0 !important;
}

#os-confirm-modal.os-confirm-dialog--compact .modal-header,
#os-confirm-modal.os-confirm-dialog--compact .modal-body,
#os-confirm-modal.os-confirm-dialog--compact .modal-footer {
  padding: 0.65rem 0.85rem !important;
}

#os-confirm-modal.os-confirm-dialog--compact .modal-title {
  font-size: 0.95rem !important;
}

#os-confirm-modal.os-confirm-dialog--compact .modal-body {
  font-size: 0.875rem;
}

#os-confirm-modal.os-confirm-dialog--compact .modal-footer .btn,
#os-confirm-modal.os-confirm-dialog--compact .os-popup-control {
  min-height: 32px !important;
  height: 32px !important;
  max-height: 32px !important;
  padding-inline: 0.75rem !important;
  padding-block: 0 !important;
}
