/* GeraBoi — Etapa 16. Complemento progressivo, sem sobrescrever regras de negócio. */
.gb-app-ui :is(button, a, input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid var(--gb-form-green, #123f36);
  outline-offset: 2px;
}
.gb-app-ui :is(.form-control, .form-select, .btn):disabled,
.gb-app-ui :is(.form-control, .form-select)[readonly] { cursor: not-allowed; }
.gb-app-ui :is(.form-control, .form-select)[aria-invalid="true"] {
  border-color: var(--gb-form-danger, #c94b45);
}
.gb-app-ui :is(.modal-dialog, .offcanvas, .card, .gb-table-shell) { min-width: 0; }
.gb-app-ui .modal-body { overflow-wrap: anywhere; }
.gb-app-ui .table-responsive { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.gb-app-ui .table-responsive table { margin-bottom: 0; }
.gb-app-ui .modal-footer { gap: .5rem; }
.gb-app-ui .modal-footer > * { margin: 0; }
.gb-app-ui .form-text, .gb-app-ui .invalid-feedback { line-height: 1.45; }
@media (max-width: 575.98px) {
  .gb-app-ui .modal-dialog { margin: .5rem; }
  .gb-app-ui .modal-footer { flex-wrap: wrap; }
  .gb-app-ui .modal-footer > .btn { min-height: 42px; }
  .gb-app-ui .gb-row-actions { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) {
  .gb-app-ui *, .gb-app-ui *::before, .gb-app-ui *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
  }
}
