/* VGG Admin global scroll + touch support */
html, body.admin-body {
  width: 100%;
  max-width: 100%;
  min-height: 100%;
  overflow-x: auto !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x pan-y;
}

.admin-body * {
  -webkit-tap-highlight-color: rgba(214, 180, 90, 0.18);
}

.admin-shell {
  width: 100%;
  max-width: 100vw;
  box-sizing: border-box;
  overflow: visible;
}

.admin-content {
  min-width: 0 !important;
  max-width: 100%;
  overflow: visible;
}

.admin-panel,
.admin-page-title,
.admin-stat-card,
.quotation-main,
.quotation-side,
.bq-main,
.bq-panel,
.bq-summary,
.catalogue-form-panel,
.catalogue-import-box,
.traffic-layout,
.inventory-layout {
  max-width: 100%;
  box-sizing: border-box;
}

.admin-scroll-x,
.admin-table-wrap,
.table-responsive,
.quotation-cart-scroll,
.bq-cart-scroll,
.bq-search-results,
.bq-browser-grid,
.catalogue-table-wrap,
.inventory-table-wrap,
.traffic-table-wrap,
.report-table-wrap,
.import-report-wrap,
.quotation-items-wrap,
.bq-products-wrap {
  max-width: 100%;
  overflow-x: auto !important;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  touch-action: pan-x pan-y;
  scrollbar-width: thin;
  scrollbar-color: rgba(214, 180, 90, 0.85) rgba(15, 23, 42, 0.08);
}

.admin-scroll-y,
.admin-sidebar,
.bq-search-results,
.product-search-results,
.catalogue-results,
.inventory-search-results {
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-y: contain;
  touch-action: pan-y;
  scrollbar-width: thin;
  scrollbar-color: rgba(214, 180, 90, 0.85) rgba(15, 23, 42, 0.08);
}

.admin-scroll-both,
.admin-panel:has(table),
.admin-card:has(table) {
  max-width: 100%;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x pan-y;
}

.admin-table-wrap::-webkit-scrollbar,
.admin-scroll-x::-webkit-scrollbar,
.admin-scroll-y::-webkit-scrollbar,
.admin-scroll-both::-webkit-scrollbar,
.bq-search-results::-webkit-scrollbar,
.product-search-results::-webkit-scrollbar,
.admin-sidebar::-webkit-scrollbar {
  height: 8px;
  width: 8px;
}

.admin-table-wrap::-webkit-scrollbar-track,
.admin-scroll-x::-webkit-scrollbar-track,
.admin-scroll-y::-webkit-scrollbar-track,
.admin-scroll-both::-webkit-scrollbar-track,
.bq-search-results::-webkit-scrollbar-track,
.product-search-results::-webkit-scrollbar-track,
.admin-sidebar::-webkit-scrollbar-track {
  background: rgba(15, 23, 42, 0.06);
  border-radius: 999px;
}

.admin-table-wrap::-webkit-scrollbar-thumb,
.admin-scroll-x::-webkit-scrollbar-thumb,
.admin-scroll-y::-webkit-scrollbar-thumb,
.admin-scroll-both::-webkit-scrollbar-thumb,
.bq-search-results::-webkit-scrollbar-thumb,
.product-search-results::-webkit-scrollbar-thumb,
.admin-sidebar::-webkit-scrollbar-thumb {
  background: linear-gradient(135deg, #d6b45a, #0b1324);
  border-radius: 999px;
}

.admin-drag-scroll {
  cursor: grab;
}

.admin-drag-scroll.is-dragging {
  cursor: grabbing;
  user-select: none;
}

.admin-drag-scroll.is-dragging * {
  pointer-events: none;
}

/* Prevent wide form grids and quotation sections from pushing page off screen */
.quotation-layout,
.bq-layout,
.inventory-layout,
.catalogue-layout,
.traffic-layout {
  max-width: 100%;
  min-width: 0;
}

.quotation-layout > *,
.bq-layout > *,
.inventory-layout > *,
.catalogue-layout > *,
.traffic-layout > * {
  min-width: 0;
}

.quotation-side,
.bq-summary,
.sticky-summary {
  align-self: start;
}

@media (min-width: 941px) {
  .quotation-side,
  .bq-summary,
  .sticky-summary {
    position: sticky;
    top: 96px;
    max-height: calc(100vh - 112px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
}

@media (max-width: 1200px) {
  .admin-shell {
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 16px;
    padding: 16px;
  }
}

@media (max-width: 940px) {
  html, body.admin-body {
    overflow-x: hidden !important;
  }
  .admin-header {
    position: sticky;
    top: 0;
    z-index: 120;
  }
  .admin-shell {
    display: block !important;
    padding: 12px !important;
    max-width: 100vw;
    overflow-x: hidden;
  }
  .admin-sidebar {
    width: 100%;
    display: flex !important;
    gap: 8px;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    white-space: nowrap;
    margin-bottom: 14px;
    padding: 10px;
    scroll-snap-type: x proximity;
  }
  .admin-sidebar a {
    flex: 0 0 auto;
    scroll-snap-align: start;
  }
  .admin-page-title,
  .admin-panel,
  .admin-stat-card {
    border-radius: 20px !important;
    padding: 16px !important;
  }
  .admin-page-title h2 {
    font-size: 26px !important;
  }
  .quotation-side,
  .bq-summary,
  .sticky-summary {
    position: static !important;
    max-height: none !important;
    overflow: visible !important;
    margin-top: 16px;
  }
  .admin-table,
  table.admin-table {
    min-width: 720px;
  }
}
