/*
 * BPS System UI
 * Capa visual común para los módulos operativos. Mantiene los colores
 * semánticos de Bootstrap y reserva el azul para acciones e interacción.
 */
:root {
  --bps-primary: #2563eb;
  --bps-primary-hover: #1d4ed8;
  --bps-primary-active: #1e40af;
  --bps-primary-soft: #eff6ff;
  --bps-primary-focus: rgba(37, 99, 235, 0.2);
  --bps-primary-contrast: #ffffff;
  --bps-app-bg: #f4f6fb;
  --bps-surface: #ffffff;
  --bps-surface-subtle: #f8f9fc;
  --bps-border: #e1e5ee;
  --bps-border-strong: #d4dae5;
  --bps-text: #172033;
  --bps-text-secondary: #667085;
  --bps-text-muted: #667085;
  --bps-placeholder: #667085;
  --bps-disabled-text: #475467;
  --bps-disabled-bg: #eef1f5;
  --bps-success: #18794e;
  --bps-success-hover: #11643f;
  --bps-info: #0b7285;
  --bps-info-hover: #095c6b;
  --bps-warning: #f4b740;
  --bps-warning-text: #3b2a00;
  --bps-warning-outline: #7a4d00;
  --bps-danger: #d92d20;
  --bps-danger-hover: #b42318;
  --bps-radius-sm: 0.375rem;
  --bps-radius-md: 0.5rem;
  --bps-radius-lg: 0.625rem;
  --bps-shadow-sm: 0 1px 2px rgba(23, 32, 51, 0.05);
  --bps-shadow-md: 0 8px 24px rgba(23, 32, 51, 0.08);
  --bs-primary: var(--bps-primary);
  --bs-primary-rgb: 37, 99, 235;
  --bs-link-color: var(--bps-primary);
  --bs-link-hover-color: var(--bps-primary-hover);
}

/* Validacion obligatoria compartida: incluye componentes que ocultan el control nativo. */
form .choices.bps-validation-invalid .choices__inner,
form .select2.bps-validation-invalid .select2-selection {
  border-color: var(--bs-form-invalid-color, #ff3e1d) !important;
}

form .choices.bps-validation-invalid.is-focused .choices__inner,
form .select2.bps-validation-invalid.select2-container--focus .select2-selection {
  box-shadow: 0 0 0.25rem 0.05rem rgba(var(--bs-danger-rgb), 0.1);
}

form .bps-required-feedback {
  display: block;
}

.layout-page > .content-wrapper {
  background-color: var(--bps-app-bg);
  color: var(--bps-text);
}

a {
  color: var(--bps-primary);
}

a:hover {
  color: var(--bps-primary-hover);
}

.text-primary {
  color: var(--bps-primary) !important;
}

.bg-primary {
  background-color: var(--bps-primary) !important;
}

.border-primary {
  border-color: var(--bps-primary) !important;
}

.btn {
  border-radius: var(--bps-radius-md);
  font-weight: 600;
  letter-spacing: 0;
  box-shadow: none;
}

.btn-primary {
  color: var(--bps-primary-contrast);
  background-color: var(--bps-primary);
  border-color: var(--bps-primary);
}

.btn-primary:hover,
.btn-primary:focus {
  color: var(--bps-primary-contrast);
  background-color: var(--bps-primary-hover);
  border-color: var(--bps-primary-hover);
}

.btn-primary:active,
.btn-primary.active,
.show > .btn-primary.dropdown-toggle {
  color: var(--bps-primary-contrast);
  background-color: var(--bps-primary-active);
  border-color: var(--bps-primary-active);
}

.btn-outline-primary {
  color: var(--bps-primary);
  background-color: transparent;
  border-color: var(--bps-primary);
}

.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active,
.btn-outline-primary.active {
  color: var(--bps-primary-contrast);
  background-color: var(--bps-primary);
  border-color: var(--bps-primary);
}

.btn-link {
  color: var(--bps-primary);
}

.btn-link:hover,
.btn-link:focus {
  color: var(--bps-primary-hover);
}

.btn-primary:focus,
.btn-outline-primary:focus,
.btn-check:focus + .btn-primary,
.btn-check:focus + .btn-outline-primary {
  box-shadow: 0 0 0 0.2rem var(--bps-primary-focus);
}

.form-label,
.col-form-label {
  color: var(--bps-text);
  font-weight: 600;
}

.form-control,
.form-select,
.input-group-text,
.choices__inner,
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
  color: var(--bps-text);
  background-color: var(--bps-surface);
  border-color: var(--bps-border-strong);
  border-radius: var(--bps-radius-md);
}

/* Choices usa el contenedor interno como control visible; evita un doble borde. */
.choices.form-select {
  padding: 0;
  background-color: transparent;
  background-image: none;
  border: 0;
}

.form-control::placeholder {
  color: var(--bps-placeholder);
  opacity: 1;
}

/* Los datos en modo consulta deben seguir siendo legibles. */
.form-control:disabled,
.form-select:disabled,
.form-control[readonly] {
  color: var(--bps-disabled-text) !important;
  -webkit-text-fill-color: var(--bps-disabled-text);
  background-color: var(--bps-disabled-bg) !important;
  border-color: var(--bps-border-strong) !important;
  opacity: 1;
}

.form-control:disabled::placeholder,
.form-control[readonly]::placeholder {
  color: var(--bps-disabled-text);
  opacity: 1;
}

.choices.is-disabled,
.select2-container--disabled {
  opacity: 1;
}

.choices.is-disabled .choices__inner,
.select2-container--default.select2-container--disabled .select2-selection--single,
.select2-container--default.select2-container--disabled .select2-selection--multiple {
  color: var(--bps-disabled-text) !important;
  background-color: var(--bps-disabled-bg) !important;
  border-color: var(--bps-border-strong) !important;
}

.choices.is-disabled .choices__item,
.choices.is-disabled .choices__placeholder,
.select2-container--default.select2-container--disabled .select2-selection__rendered {
  color: var(--bps-disabled-text) !important;
  -webkit-text-fill-color: var(--bps-disabled-text);
  opacity: 1 !important;
}

.choices__placeholder,
.select2-container--default .select2-selection__placeholder {
  color: var(--bps-placeholder) !important;
  opacity: 1;
}

.form-control:hover,
.form-select:hover,
.choices__inner:hover,
.select2-container--default .select2-selection--single:hover,
.select2-container--default .select2-selection--multiple:hover {
  border-color: #b7c0cf;
}

.form-control:focus,
.form-select:focus,
.choices.is-focused .choices__inner,
.choices.is-open .choices__inner,
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default.select2-container--open .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--multiple {
  color: var(--bps-text);
  background-color: var(--bps-surface);
  border-color: var(--bps-primary);
  box-shadow: 0 0 0 0.2rem var(--bps-primary-focus);
  outline: 0;
}

.form-check-input:checked {
  background-color: var(--bps-primary);
  border-color: var(--bps-primary);
}

.form-check-input:focus,
.form-range:focus::-webkit-slider-thumb {
  border-color: var(--bps-primary);
  box-shadow: 0 0 0 0.2rem var(--bps-primary-focus);
}

.choices__list--dropdown,
.choices__list[aria-expanded],
.select2-dropdown {
  color: var(--bps-text);
  background: var(--bps-surface);
  border-color: var(--bps-border);
  border-radius: var(--bps-radius-md);
  box-shadow: var(--bps-shadow-md);
}

.choices__list--dropdown .choices__item--selectable.is-highlighted,
.choices__list[aria-expanded] .choices__item--selectable.is-highlighted,
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected] {
  color: var(--bps-primary);
  background-color: var(--bps-primary-soft);
}

.choices__list--multiple .choices__item,
.select2-container--default .select2-selection--multiple .select2-selection__choice {
  color: var(--bps-primary);
  background: var(--bps-primary-soft);
  border-color: rgba(42, 43, 245, 0.22);
}

.card,
.modal-content,
.offcanvas,
.dropdown-menu {
  border-color: var(--bps-border);
  border-radius: var(--bps-radius-lg);
}

.card {
  box-shadow: var(--bps-shadow-sm);
}

.dropdown-menu,
.modal-content,
.offcanvas {
  box-shadow: var(--bps-shadow-md);
}

.card-header,
.modal-header,
.offcanvas-header {
  color: var(--bps-text);
  border-color: var(--bps-border);
}

.dropdown-item {
  color: var(--bps-text-secondary);
  border-radius: var(--bps-radius-sm);
}

.dropdown-item:hover,
.dropdown-item:focus {
  color: var(--bps-text);
  background-color: var(--bps-surface-subtle);
}

.dropdown-item.active,
.dropdown-item:active {
  color: var(--bps-primary);
  background-color: var(--bps-primary-soft);
}

.nav-tabs {
  border-color: var(--bps-border);
}

.nav-tabs .nav-link,
.nav-pills .nav-link {
  color: var(--bps-text-secondary);
  font-weight: 600;
}

.nav-tabs .nav-link:hover,
.nav-tabs .nav-link:focus,
.nav-pills .nav-link:hover,
.nav-pills .nav-link:focus {
  color: var(--bps-primary);
}

.nav-tabs .nav-link.active {
  color: var(--bps-primary);
  border-color: transparent transparent var(--bps-primary);
}

.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
  color: var(--bps-primary-contrast);
  background-color: var(--bps-primary);
}

.accordion-item {
  border-color: var(--bps-border);
}

.accordion-button {
  color: var(--bps-text);
  font-weight: 600;
}

.accordion-button:not(.collapsed) {
  color: var(--bps-primary);
  background-color: var(--bps-primary-soft);
  box-shadow: inset 0 calc(-1 * var(--bs-accordion-border-width, 1px)) 0 var(--bps-border);
}

.accordion-button:focus {
  border-color: var(--bps-primary);
  box-shadow: 0 0 0 0.2rem var(--bps-primary-focus);
}

[data-bs-toggle="collapse"]:not(.accordion-button) {
  cursor: pointer;
}

.table {
  --bs-table-color: var(--bps-text);
  --bs-table-border-color: var(--bps-border);
}

.table > :not(caption) > * > * {
  border-bottom-color: var(--bps-border);
}

.table thead th {
  color: var(--bps-text-secondary);
  background-color: var(--bps-surface-subtle);
  font-weight: 700;
}

.table-hover > tbody > tr:hover > * {
  --bs-table-accent-bg: #f6f7ff;
  color: var(--bps-text);
}

.page-link {
  color: var(--bps-text-secondary);
  border-color: var(--bps-border);
  border-radius: var(--bps-radius-sm);
}

.page-link:hover,
.page-link:focus {
  color: var(--bps-primary);
  background-color: var(--bps-primary-soft);
  border-color: rgba(42, 43, 245, 0.24);
}

.page-item.active .page-link {
  color: var(--bps-primary-contrast);
  background-color: var(--bps-primary);
  border-color: var(--bps-primary);
}

.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select {
  border: 1px solid var(--bps-border-strong);
  border-radius: var(--bps-radius-md);
}

.dataTables_wrapper .dataTables_filter input:focus,
.dataTables_wrapper .dataTables_length select:focus {
  border-color: var(--bps-primary);
  box-shadow: 0 0 0 0.2rem var(--bps-primary-focus);
  outline: 0;
}

.badge.bg-primary,
.badge.text-bg-primary {
  color: var(--bps-primary-contrast) !important;
  background-color: var(--bps-primary) !important;
}

/* Paleta semántica con contraste AA para texto de interfaz. */
.btn-success,
.badge.bg-success,
.badge.text-bg-success,
.bg-success:not(.bg-label-success) {
  color: #fff !important;
  background-color: var(--bps-success) !important;
  border-color: var(--bps-success) !important;
}

.btn-success:hover,
.btn-success:focus,
.btn-success:active,
.btn-success.active {
  color: #fff !important;
  background-color: var(--bps-success-hover) !important;
  border-color: var(--bps-success-hover) !important;
}

.btn-info,
.badge.bg-info,
.badge.text-bg-info,
.bg-info:not(.bg-label-info) {
  color: #fff !important;
  background-color: var(--bps-info) !important;
  border-color: var(--bps-info) !important;
}

.btn-info:hover,
.btn-info:focus,
.btn-info:active,
.btn-info.active {
  color: #fff !important;
  background-color: var(--bps-info-hover) !important;
  border-color: var(--bps-info-hover) !important;
}

.btn-warning,
.badge.bg-warning,
.badge.text-bg-warning,
.bg-warning:not(.bg-label-warning) {
  color: var(--bps-warning-text) !important;
  background-color: var(--bps-warning) !important;
  border-color: var(--bps-warning) !important;
}

.btn-warning:hover,
.btn-warning:focus,
.btn-warning:active,
.btn-warning.active {
  color: var(--bps-warning-text) !important;
  background-color: #dfa527 !important;
  border-color: #dfa527 !important;
}

.btn-danger,
.badge.bg-danger,
.badge.text-bg-danger,
.bg-danger:not(.bg-label-danger) {
  color: #fff !important;
  background-color: var(--bps-danger) !important;
  border-color: var(--bps-danger) !important;
}

.btn-danger:hover,
.btn-danger:focus,
.btn-danger:active,
.btn-danger.active {
  color: #fff !important;
  background-color: var(--bps-danger-hover) !important;
  border-color: var(--bps-danger-hover) !important;
}

.btn-outline-success,
.text-success {
  color: var(--bps-success) !important;
  border-color: var(--bps-success) !important;
}

.btn-outline-info,
.text-info {
  color: var(--bps-info) !important;
  border-color: var(--bps-info) !important;
}

.btn-outline-warning,
.text-warning {
  color: var(--bps-warning-outline) !important;
  border-color: var(--bps-warning-outline) !important;
}

.btn-outline-danger,
.text-danger {
  color: var(--bps-danger) !important;
  border-color: var(--bps-danger) !important;
}

.btn-outline-success:hover,
.btn-outline-success:focus,
.btn-outline-success:active,
.btn-outline-success.active {
  color: #fff !important;
  background-color: var(--bps-success) !important;
  border-color: var(--bps-success) !important;
}

.btn-outline-info:hover,
.btn-outline-info:focus,
.btn-outline-info:active,
.btn-outline-info.active {
  color: #fff !important;
  background-color: var(--bps-info) !important;
  border-color: var(--bps-info) !important;
}

.btn-outline-danger:hover,
.btn-outline-danger:focus,
.btn-outline-danger:active,
.btn-outline-danger.active {
  color: #fff !important;
  background-color: var(--bps-danger) !important;
  border-color: var(--bps-danger) !important;
}

.btn-outline-warning:hover,
.btn-outline-warning:focus,
.btn-outline-warning:active,
.btn-outline-warning.active {
  color: var(--bps-warning-text) !important;
  background-color: var(--bps-warning) !important;
  border-color: var(--bps-warning) !important;
}

.bg-label-success {
  color: #12613e !important;
  background-color: #e7f6ee !important;
}

.bg-label-info {
  color: #075d6d !important;
  background-color: #e4f5f8 !important;
}

.bg-label-warning {
  color: #694100 !important;
  background-color: #fff2cf !important;
}

.bg-label-danger {
  color: #a61b12 !important;
  background-color: #feeceb !important;
}

.text-muted,
.text-secondary {
  color: var(--bps-text-secondary) !important;
}

.dropdown-item.disabled,
.dropdown-item:disabled,
.nav-link.disabled,
.nav-link:disabled,
.page-item.disabled .page-link,
.list-group-item.disabled,
.list-group-item:disabled {
  color: var(--bps-disabled-text) !important;
  opacity: 1;
}

.btn.disabled,
.btn:disabled {
  opacity: 1;
  filter: saturate(0.72);
}

.btn-primary.disabled,
.btn-primary:disabled {
  color: var(--bps-primary-contrast) !important;
  background-color: var(--bps-primary) !important;
  border-color: var(--bps-primary) !important;
}

.btn-secondary.disabled,
.btn-secondary:disabled {
  color: #fff !important;
  background-color: #5c6675 !important;
  border-color: #5c6675 !important;
}

.btn-success.disabled,
.btn-success:disabled {
  color: #fff !important;
  background-color: var(--bps-success) !important;
  border-color: var(--bps-success) !important;
}

.btn-info.disabled,
.btn-info:disabled {
  color: #fff !important;
  background-color: var(--bps-info) !important;
  border-color: var(--bps-info) !important;
}

.btn-warning.disabled,
.btn-warning:disabled {
  color: var(--bps-warning-text) !important;
  background-color: var(--bps-warning) !important;
  border-color: var(--bps-warning) !important;
}

.btn-danger.disabled,
.btn-danger:disabled {
  color: #fff !important;
  background-color: var(--bps-danger) !important;
  border-color: var(--bps-danger) !important;
}

.btn-outline-success.disabled,
.btn-outline-success:disabled {
  color: var(--bps-success) !important;
  border-color: var(--bps-success) !important;
}

.btn-outline-info.disabled,
.btn-outline-info:disabled {
  color: var(--bps-info) !important;
  border-color: var(--bps-info) !important;
}

.btn-outline-warning.disabled,
.btn-outline-warning:disabled {
  color: var(--bps-warning-outline) !important;
  border-color: var(--bps-warning-outline) !important;
}

.btn-outline-danger.disabled,
.btn-outline-danger:disabled {
  color: var(--bps-danger) !important;
  border-color: var(--bps-danger) !important;
}

.btn-guia-controlada {
  color: #fff !important;
  background-color: var(--bps-success) !important;
  border-color: var(--bps-success) !important;
}

.btn-guia-controlada:hover,
.btn-guia-controlada:focus {
  color: #fff !important;
  background-color: var(--bps-success-hover) !important;
  border-color: var(--bps-success-hover) !important;
}

.btn-guia-aprobada {
  color: var(--bps-warning-text) !important;
  background-color: var(--bps-warning) !important;
  border-color: var(--bps-warning) !important;
}

.btn-guia-aprobada:hover,
.btn-guia-aprobada:focus {
  color: var(--bps-warning-text) !important;
  background-color: #dfa527 !important;
  border-color: #dfa527 !important;
}

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid var(--bps-primary-focus);
  outline-offset: 2px;
}

@media (max-width: 767.98px) {
  .card-header .d-flex,
  .card-body > .d-flex:first-child {
    flex-wrap: wrap;
    gap: 0.625rem;
  }
}

/* Tablas operativas: densidad útil, columnas ajustadas al contenido y overflow visible. */
.table.bps-table-optimized {
  table-layout: auto;
  margin-bottom: 0;
}

.table-responsive > .table.bps-table-optimized:not(.dataTable) {
  width: auto !important;
  min-width: 100%;
  max-width: none !important;
}

.table.bps-table-optimized > :not(caption) > * > * {
  padding: 0.5rem 0.625rem !important;
  vertical-align: middle;
  white-space: nowrap;
}

.table.bps-table-optimized th {
  line-height: 1.25;
}

.table.bps-table-optimized thead .form-control,
.table.bps-table-optimized tfoot .form-control {
  width: 8.5rem;
  max-width: 100%;
  min-width: 6.5rem;
}

/* DataTables: alinea el orden con el titulo, no con el bloque titulo + filtro. */
table.dataTable thead > tr > th.bps-filterable-header .bps-filterable-header-title {
  display: block;
  min-height: 1rem;
  padding-right: 1.125rem;
}

table.dataTable thead > tr > th.bps-filterable-header > span.dt-column-order {
  top: 0.5rem;
  right: 0.5rem;
  bottom: auto;
  height: 1rem;
}

/* El encabezado duplicado dentro del cuerpo solo calcula anchos; no debe mostrar flechas. */
.dt-scroll-body table.dataTable thead > tr > th.bps-filterable-header > span.dt-column-order,
.dataTables_scrollBody table.dataTable thead > tr > th.bps-filterable-header > span.dt-column-order {
  display: none !important;
}

.table.bps-table-optimized .bps-table-actions {
  width: 1%;
  max-width: none;
  white-space: nowrap;
}

.table.bps-table-optimized .bps-table-actions .btn-group,
.table.bps-table-optimized .bps-table-actions .d-flex {
  flex-wrap: nowrap;
}

.table.bps-table-optimized td.bps-table-cell-truncate {
  max-width: 22rem;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: help;
}

.table-responsive.bps-table-overflow,
.dataTables_scrollBody.bps-table-overflow,
.dt-scroll-body.bps-table-overflow {
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
  scrollbar-color: var(--bps-primary) var(--bps-surface-subtle);
  transition: box-shadow var(--bps-transition-base, 180ms) ease;
}

.table-responsive.bps-can-scroll-right,
.dataTables_scrollBody.bps-can-scroll-right,
.dt-scroll-body.bps-can-scroll-right {
  box-shadow: inset -16px 0 14px -16px rgba(23, 32, 51, 0.75);
}

.table-responsive.bps-can-scroll-left,
.dataTables_scrollBody.bps-can-scroll-left,
.dt-scroll-body.bps-can-scroll-left {
  box-shadow: inset 16px 0 14px -16px rgba(23, 32, 51, 0.75);
}

.table-responsive.bps-can-scroll-left.bps-can-scroll-right,
.dataTables_scrollBody.bps-can-scroll-left.bps-can-scroll-right,
.dt-scroll-body.bps-can-scroll-left.bps-can-scroll-right {
  box-shadow:
    inset 16px 0 14px -16px rgba(23, 32, 51, 0.75),
    inset -16px 0 14px -16px rgba(23, 32, 51, 0.75);
}

.table-responsive.bps-table-overflow:focus-visible,
.dataTables_scrollBody.bps-table-overflow:focus-visible,
.dt-scroll-body.bps-table-overflow:focus-visible {
  border-radius: var(--bps-radius-sm);
  outline: 3px solid var(--bps-primary-focus);
  outline-offset: 2px;
}

.table-responsive.bps-table-overflow::-webkit-scrollbar,
.dataTables_scrollBody.bps-table-overflow::-webkit-scrollbar,
.dt-scroll-body.bps-table-overflow::-webkit-scrollbar {
  width: 9px;
  height: 9px;
}

.table-responsive.bps-table-overflow::-webkit-scrollbar-track,
.dataTables_scrollBody.bps-table-overflow::-webkit-scrollbar-track,
.dt-scroll-body.bps-table-overflow::-webkit-scrollbar-track {
  background: var(--bps-surface-subtle);
}

.table-responsive.bps-table-overflow::-webkit-scrollbar-thumb,
.dataTables_scrollBody.bps-table-overflow::-webkit-scrollbar-thumb,
.dt-scroll-body.bps-table-overflow::-webkit-scrollbar-thumb {
  background: var(--bps-primary);
  border: 2px solid var(--bps-surface-subtle);
  border-radius: 999px;
}

.bps-table-overflow-cue {
  min-height: 2rem;
  margin: 0.25rem 0 0.375rem;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

.bps-table-overflow-button {
  min-height: 2rem;
  padding: 0.3rem 0.625rem;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: var(--bps-primary);
  background: var(--bps-primary-soft);
  border: 1px solid rgba(var(--bs-primary-rgb), 0.28);
  border-radius: var(--bps-radius-md);
  font: inherit;
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}

.bps-table-overflow-button:hover,
.bps-table-overflow-button:focus-visible {
  color: var(--bps-primary-hover);
  background: #fff;
  border-color: var(--bps-primary);
}

.bps-table-overflow-button .bx {
  font-size: 1.1rem;
}

@media (max-width: 767.98px) {
  .table.bps-table-optimized > :not(caption) > * > * {
    padding-inline: 0.5rem !important;
  }

  .bps-table-overflow-cue {
    justify-content: stretch;
  }

  .bps-table-overflow-button {
    width: 100%;
    justify-content: center;
  }
}

/* Modales CRUD: acciones visibles y cuerpo desplazable en teléfonos angostos. */
@media (max-width: 575.98px) {
  .modal-dialog.bps-crud-modal {
    width: calc(100% - 1rem);
    max-width: calc(100% - 1rem);
    min-height: calc(100% - 1rem);
    margin: 0.5rem;
  }

  .modal-dialog.bps-crud-modal .modal-content {
    max-height: calc(100vh - 1rem);
  }

  .modal-dialog.bps-crud-modal .modal-body {
    overflow-x: hidden;
    overflow-y: auto;
  }

  .modal-dialog.bps-crud-modal .modal-footer {
    position: sticky;
    bottom: 0;
    z-index: 2;
    gap: 0.5rem;
    flex-wrap: wrap;
    background: var(--bps-surface);
  }

  .modal-dialog.bps-crud-modal .modal-footer .btn {
    flex: 1 1 7rem;
    min-height: 2.5rem;
    margin: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}
