/* Bundle: responsive (loaded last)
   Global mobile-first guardrails to prevent horizontal overflow and rigid layouts.
*/

* , *::before, *::after {
  box-sizing: border-box;
}

html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

img,
svg,
video,
canvas,
iframe {
  max-width: 100%;
  height: auto;
}

.navbar-top {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  left: 0;
  right: 0;
  padding-inline: clamp(12px, 2.4vw, 24px) !important;
}

.navbar-right {
  min-width: 0 !important;
}

.navbar-spacer {
  height: 68px !important;
}

@media (max-width: 700px) {
  .navbar-spacer {
    height: 60px !important;
  }
}

.container,
.container-fluid,
.erp-card,
.compra-card,
.form-contenedor,
.aprobacion-box,
.detalle-box,
.purchase-workspace,
.purchase-shell,
.main-dashboard,
.odoo-menu {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.odoo-modules-grid,
.solicitudes-index-page .cards-submenu,
.inventarios-index-page .inventory-home-grid,
.inventarios-papeleria-index-page .inv-cards {
  width: min(100%, 1400px) !important;
  max-width: min(100%, 1400px) !important;
  margin-inline: auto !important;
  padding-inline: clamp(10px, 2vw, 18px) !important;
  gap: clamp(12px, 2vw, 28px) !important;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)) !important;
}

.odoo-module-card,
.solicitudes-index-page .card-sm,
.inventarios-papeleria-index-page .inv-card,
.inventarios-index-page .card-inventario {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
}

/* Keep tables scrollable inside their container, never on page root. */
.table-responsive,
.admin-table-wrap,
.tabla-fijas,
.erp-table-wrap {
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.table-responsive > table,
.admin-table-wrap > table,
.tabla-fijas > table,
.erp-table-wrap > table {
  width: 100%;
}

/* Long words/URLs should wrap and not break cards. */
.erp-card,
.compra-card,
.form-contenedor,
.aprobacion-box,
.card-sm,
.odoo-module-card {
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* Generic fixed-width input protection on small screens */
input,
select,
textarea,
button {
  max-width: 100%;
}

@media (max-width: 1024px) {
  .odoo-menu {
    padding-inline: 12px;
  }
}

@media (max-width: 768px) {
  .erp-card,
  .compra-card,
  .form-contenedor,
  .aprobacion-box,
  .detalle-box,
  .purchase-workspace {
    border-radius: 14px;
  }

  .odoo-modules-grid,
  .solicitudes-index-page .cards-submenu,
  .inventarios-index-page .inventory-home-grid,
  .inventarios-papeleria-index-page .inv-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 480px) {
  .odoo-modules-grid,
  .solicitudes-index-page .cards-submenu,
  .inventarios-index-page .inventory-home-grid,
  .inventarios-papeleria-index-page .inv-cards {
    grid-template-columns: 1fr !important;
    padding-inline: 10px !important;
    gap: 12px !important;
  }

  .navbar-top {
    padding-inline: 10px !important;
  }
}
