/* Custom dialogs only. Visibility, widths, chart heights and stacking belong to modules. */
body :is(.admin-modal-card, .terceros-modal-card, .caja-modal-card,
  .ventas-modal-card, .inv-modal-card, .repvr-chart-modal-dialog,
  .modal-card, .pausa-panel, .fe-result-panel, .pago-overlay-card,
  .ventas-print-format-panel, .inv-confirm-card)[class] {
  box-sizing: border-box;
  font-family: var(--font-family-base, "Segoe UI", Tahoma, Arial, sans-serif);
  letter-spacing: 0;
  border-radius: 8px;
  min-width: 0;
  max-width: calc(100vw - 24px);
  max-height: calc(100vh - 24px);
  max-height: calc(100dvh - 24px);
  overflow: auto;
  overscroll-behavior: contain;
  overflow-wrap: anywhere;
}

body :is(.admin-modal-card, .terceros-modal-card, .caja-modal-card,
  .ventas-modal-card, .inv-modal-card, .modal-card, .fe-result-panel,
  .inv-confirm-card)[class] {
  padding: 12px;
  font-size: 14px;
  line-height: 1.5;
}

/* Report selectors carry three classes in module CSS. Keep their fixed chart geometry. */
body.page-reportes .repvr-chart-modal .repvr-chart-modal-dialog {
  border-radius: 8px;
  max-width: calc(100vw - 24px);
  max-height: calc(100vh - 24px);
  max-height: calc(100dvh - 24px);
  margin-top: 12px;
  margin-bottom: 12px;
}

body :is(.admin-modal-card, .terceros-modal-card, .caja-modal-card,
  .ventas-modal-card, .inv-modal-card, .repvr-chart-modal-dialog,
  .modal-card, .pausa-panel, .fe-result-panel, .ventas-print-format-panel,
  .inv-confirm-card)[class] :is(h2, h3) {
  margin: 0 0 8px;
  font-family: inherit;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0;
}

body :is(.admin-modal-card, .terceros-modal-card, .caja-modal-card,
  .ventas-modal-card, .inv-modal-card, .repvr-chart-modal-dialog,
  .modal-card, .pausa-panel, .fe-result-panel, .ventas-print-format-panel,
  .inv-confirm-card)[class] :is(button, input, select, textarea) {
  font-family: inherit;
  letter-spacing: 0;
  border-radius: 6px;
  max-width: 100%;
}

body :is(.admin-modal-actions, .terceros-modal-actions, .inv-modal-actions,
  .ventas-modal-card > .ventas-head-actions, .caja-modal-card > .page-actions,
  .fe-result-actions, .inv-confirm-actions)[class] {
  flex-wrap: wrap;
  gap: 8px;
}

body :is(.pausa-list, .repvr-chart-modal-body, .repvr-table-modal-scroll) {
  min-height: 0;
  overscroll-behavior: contain;
}

body.page-reportes .repvr-table-modal-scroll table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
  line-height: 1.5;
}

body.page-reportes .repvr-table-modal-scroll :is(th, td) {
  padding: 10px 12px;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid var(--ui-border);
}

body.page-reportes .repvr-table-modal-scroll thead th {
  background: var(--ui-surface);
  font-weight: 600;
}

body.page-reportes .repvr-chart-modal .repvr-chart-modal-head :is(h2, h3) {
  font-size: 18px;
  letter-spacing: 0;
}

/* Never introduce display on overlays: hidden, inline display:none and .show stay authoritative. */
body :is(.admin-modal, .terceros-modal, .caja-modal, .ventas-modal,
  .inv-modal, .repvr-chart-modal, .modal-overlay, .pausa-overlay,
  .fe-result-overlay, .ventas-print-format-dialog, .inv-confirm-overlay)[hidden] {
  display: none !important;
}

@media (max-width: 600px) {
  body :is(.admin-modal-head, .terceros-modal-head, .pausa-header,
    .ventas-print-format-head, .ventas-print-format-options) {
    padding: 12px;
  }

  body.page-reportes .repvr-chart-modal :is(.repvr-chart-modal-head, .repvr-chart-modal-body) {
    padding: 12px;
  }

  body .pago-overlay-card {
    padding: 16px;
  }
}
