/* AMZX Admin Responsive v1.5.696 — estrutural, independente de tema. */
:root {
  --amzx-admin-touch: 44px;
  --amzx-admin-gap: .75rem;
}

/* Impede que flex/grid comprimam textos até uma letra por linha. */
.container > *, .container-fluid > *, main > *, .card-body > *,
.row > [class*="col-"], .d-flex > *, .d-grid > * {
  min-inline-size: 0;
}

.table-responsive {
  max-inline-size: 100%;
  -webkit-overflow-scrolling: touch;
}

.table-responsive :is(th, td) {
  word-break: normal !important;
  overflow-wrap: anywhere;
  hyphens: none;
}

.table-responsive :is(.btn, button, input[type="checkbox"], input[type="radio"]) {
  flex: 0 0 auto;
}

@media (max-width: 767.98px) {
  html, body { max-inline-size: 100%; overflow-x: clip; }

  /* Cabeçalhos com ação lateral passam a duas linhas sem esmagar o título. */
  main :is(.page-header, .content-header, .d-flex.justify-content-between):has(h1, h2, h3) {
    flex-wrap: wrap !important;
    align-items: stretch !important;
    gap: .75rem !important;
  }
  main :is(.page-header, .content-header, .d-flex.justify-content-between):has(h1, h2, h3) > :is(.btn, button, a.btn) {
    inline-size: 100%;
    min-block-size: var(--amzx-admin-touch);
  }

  /* Barras de seleção, busca e ações administrativas. */
  .amzx-admin-toolbar,
  .card-body > :is(form, .d-flex):has(input[type="search"], input[name="q"], input[name="email"], select) {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    align-items: stretch !important;
    gap: var(--amzx-admin-gap) !important;
  }
  .amzx-admin-toolbar :is(input, select, .form-control, .form-select, .btn, button),
  .card-body > :is(form, .d-flex):has(input[type="search"], input[name="q"], input[name="email"], select) :is(input, select, .form-control, .form-select, .btn, button) {
    inline-size: 100% !important;
    min-block-size: var(--amzx-admin-touch);
  }

  /* Tabelas simples: cada linha vira um cartão sem alterar DOM, links ou formulários. */
  .table-responsive.amzx-mobile-cards {
    overflow: visible !important;
  }
  .table-responsive.amzx-mobile-cards table {
    display: block !important;
    inline-size: 100% !important;
    min-inline-size: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
  }
  .table-responsive.amzx-mobile-cards thead {
    position: absolute !important;
    inline-size: 1px !important;
    block-size: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
  }
  .table-responsive.amzx-mobile-cards :is(tbody, tr, td) {
    display: block !important;
    inline-size: 100% !important;
  }
  .table-responsive.amzx-mobile-cards tbody {
    display: grid !important;
    gap: .875rem !important;
  }
  .table-responsive.amzx-mobile-cards tbody tr {
    overflow: hidden;
    border: 1px solid color-mix(in srgb, currentColor 18%, transparent) !important;
    border-radius: 16px !important;
    background: var(--bs-body-bg, #fff) !important;
    background: color-mix(in srgb, var(--bs-body-bg, #fff) 94%, currentColor 6%) !important;
    box-shadow: 0 8px 24px rgba(2, 6, 23, .09);
  }
  .table-responsive.amzx-mobile-cards tbody td {
    box-sizing: border-box !important;
    display: grid !important;
    grid-template-columns: minmax(88px, 34%) minmax(0, 1fr) !important;
    align-items: center !important;
    gap: .75rem !important;
    min-block-size: var(--amzx-admin-touch);
    padding: .75rem .875rem !important;
    border: 0 !important;
    border-block-end: 1px solid color-mix(in srgb, currentColor 10%, transparent) !important;
    text-align: start !important;
    white-space: normal !important;
  }
  .table-responsive.amzx-mobile-cards tbody td:last-child { border-block-end: 0 !important; }
  .table-responsive.amzx-mobile-cards tbody td::before {
    content: attr(data-amzx-label);
    min-inline-size: 0;
    color: var(--bs-secondary-color, #64748b);
    font-size: .72rem;
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: .025em;
    text-transform: uppercase;
    overflow-wrap: normal;
  }
  .table-responsive.amzx-mobile-cards tbody td[data-amzx-empty-label="true"] {
    grid-template-columns: 1fr !important;
  }
  .table-responsive.amzx-mobile-cards tbody td[data-amzx-empty-label="true"]::before { display: none; }
  .table-responsive.amzx-mobile-cards tbody td :is(.btn, button, a.btn) {
    min-block-size: var(--amzx-admin-touch);
    white-space: normal;
  }
  .table-responsive.amzx-mobile-cards tbody td[data-amzx-actions="true"] > * {
    max-inline-size: 100%;
  }
  .table-responsive.amzx-mobile-cards tbody td[data-amzx-actions="true"] :is(.btn-group, .d-flex) {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: .5rem !important;
  }

  /* Estruturas complexas mantêm a semântica de tabela com rolagem segura. */
  .table-responsive.amzx-mobile-scroll {
    overflow-x: auto !important;
    overscroll-behavior-inline: contain;
    scrollbar-gutter: stable;
  }
  .table-responsive.amzx-mobile-scroll table {
    min-inline-size: max(680px, 100%) !important;
  }
  .table-responsive.amzx-mobile-scroll :is(th, td) {
    min-inline-size: 7.5rem;
    white-space: normal !important;
  }
}

@media (max-width: 359.98px) {
  .table-responsive.amzx-mobile-cards tbody td {
    grid-template-columns: 1fr !important;
    gap: .35rem !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .table-responsive * { scroll-behavior: auto !important; }
}
