/*
 * iDrugstore PWA Fit v17.0
 * Every public view must fit the application viewport without horizontal drag.
 * Loaded after v16; fixes causes (sizing/layout/wrapping), then clips only paint.
 */
@media (max-width:1024px) {
  html {
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow-x:clip!important;
  }

  body.id-pwa-native {
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow-x:clip!important;
  }

  /*
   * Legacy Yii/Bootstrap views contain fixed widths and intrinsic min-content
   * sizes. Every content wrapper may shrink; media and controls remain fluid.
   */
  body.id-pwa-native :where(
    #main-content,
    #main-content > *,
    .sections,
    section,
    .container,
    .row,
    [class*="col-"],
    .inner,
    .mytable,
    .mycol,
    form,
    fieldset,
    article,
    aside,
    nav,
    ul,
    ol,
    li,
    div
  ) {
    min-width:0!important;
    max-width:100%!important;
  }

  body.id-pwa-native :where(
    img,
    svg,
    video,
    canvas,
    iframe,
    object,
    embed,
    picture,
    input,
    select,
    textarea,
    button
  ) {
    max-width:100%!important;
  }

  body.id-pwa-native :where(
    h1,h2,h3,h4,h5,h6,p,span,strong,small,label,a,button,
    td,th,legend,figcaption,blockquote,pre,code
  ) {
    overflow-wrap:anywhere!important;
    word-break:normal!important;
  }

  body.id-pwa-native :where(pre,code) {
    max-width:100%!important;
    white-space:pre-wrap!important;
    word-break:break-word!important;
  }

  body.id-pwa-native [style*="width"] {
    max-width:100%!important;
  }

  body.id-pwa-native [style*="min-width"] {
    min-width:0!important;
  }

  body.id-pwa-native :where(.container-fluid,.wrapper,.main-wrapper,.content-wrapper,.content,.page-content) {
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin-right:0!important;
    margin-left:0!important;
  }

  /* Bootstrap rows cannot use negative gutters inside the PWA. */
  body.id-pwa-native .row {
    margin-right:0!important;
    margin-left:0!important;
  }

  body.id-pwa-native .row > [class*="col-"] {
    max-width:100%!important;
    margin-right:0!important;
    margin-left:0!important;
  }

  /* No content carousel, tab list or chip row requires a sideways gesture. */
  body.id-pwa-native :where(
    .mobile-search-menu,
    .id-journey-proof,
    .id-account-proof,
    .id-trust-bar .trust-items,
    .cats-grid,
    .id-cat-grid,
    .id-stats-grid,
    .id-how-grid,
    .id-testimonials-grid,
    .id-discovery-tabs,
    .menu-category,
    .category,
    .category-list,
    .cuisine-list,
    .tabs,
    .tabs-wrapper,
    #tabs,
    .uk-tab,
    .search-result-options,
    .view-options,
    .pagination,
    .pager,
    .payment-options,
    .services-type,
    .social-wrap
  ) {
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin-right:0!important;
    margin-left:0!important;
    padding-right:0!important;
    padding-left:0!important;
    flex-wrap:wrap!important;
    overflow-x:visible!important;
    scroll-snap-type:none!important;
    transform:none!important;
  }

  body.id-pwa-native :where(
    .mobile-search-menu > *,
    .id-journey-proof > *,
    .id-account-proof > *,
    .id-trust-bar .trust-items > *,
    .cats-grid > *,
    .id-cat-grid > *,
    .id-stats-grid > *,
    .id-how-grid > *,
    .id-testimonials-grid > *,
    .id-discovery-tabs > *,
    .category > *,
    .cuisine-list > *,
    .tabs > *,
    #tabs > *,
    .uk-tab > *,
    .pagination > *,
    .pager > *
  ) {
    min-width:0!important;
    max-width:100%!important;
    flex:1 1 auto!important;
    white-space:normal!important;
  }

  /* Home collections become visible grids rather than partial cards. */
  body.id-pwa-page-index .mobile-search-menu {
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:6px!important;
    padding:4px!important;
  }

  body.id-pwa-page-index .mobile-search-menu :where(li,a,button) {
    width:100%!important;
    min-width:0!important;
    white-space:normal!important;
    text-align:center!important;
  }

  body.id-pwa-page-index .parallax-home > .parallax-search > div:last-child,
  body.id-pwa-page-index .id-trust-bar .trust-items {
    display:grid!important;
    width:100%!important;
    margin-right:0!important;
    margin-left:0!important;
    padding-right:0!important;
    padding-left:0!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:7px!important;
    overflow:visible!important;
  }

  body.id-pwa-page-index .parallax-home > .parallax-search > div:last-child > *,
  body.id-pwa-page-index .id-trust-item {
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    white-space:normal!important;
  }

  body.id-pwa-page-index :where(.cats-grid,.id-cat-grid) {
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
  }

  body.id-pwa-page-index :where(.id-stats-grid,.id-how-grid,.id-testimonials-grid) {
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
  }

  body.id-pwa-page-index :where(
    .cats-grid > *,
    .id-cat-grid > *,
    .id-stats-grid > *,
    .id-how-grid > *,
    .id-testimonials-grid > *
  ) {
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    flex:none!important;
  }

  /* Browse controls and cards stay inside their own columns. */
  body.id-pwa-page-browse :where(.id-discovery-tabs,.services-type) {
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }

  body.id-pwa-page-browse :where(.id-discovery-tabs > *, .services-type > *) {
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    white-space:normal!important;
  }

  body.id-pwa-page-browse #restuarant-list .inner > .row {
    width:100%!important;
    max-width:100%!important;
  }

  body.id-pwa-page-browse #restuarant-list :where(.mytable,.mycol,.merchant-address,.concat-text) {
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    white-space:normal!important;
  }

  /* Menu categories and tabs wrap; every product row is a contained grid. */
  body.id-pwa-page-menu .category-list {
    position:relative!important;
    top:auto!important;
    padding:10px var(--v16-gutter)!important;
  }

  body.id-pwa-page-menu :where(.category,#tabs) {
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }

  body.id-pwa-page-menu :where(.category-child,#tabs > li) {
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    min-height:42px!important;
    margin:0!important;
    padding:9px 8px!important;
    justify-content:center!important;
    text-align:center!important;
    white-space:normal!important;
  }

  body.id-pwa-page-menu :where(
    .section-menu,
    .menu-left-content,
    #menu_left_content,
    #menu-list-wrapper,
    .menu-cat,
    .items-row,
    .items-row > .row
  ) {
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }

  body.id-pwa-page-menu .items-row > .row {
    grid-template-columns:minmax(0,1fr) 42px!important;
    column-gap:10px!important;
  }

  body.id-pwa-page-menu .items-row > .row > div {
    min-width:0!important;
    max-width:100%!important;
  }

  body.id-pwa-page-menu .id-menu-cart-dock {
    width:auto!important;
    max-width:calc(100% - (2 * var(--v16-gutter)))!important;
  }

  body.id-pwa-page-menu .id-menu-cart-dock > span {
    min-width:0!important;
    max-width:calc(100% - 92px)!important;
    white-space:normal!important;
  }

  body.id-pwa-page-menu .id-menu-cart-dock > b {
    min-width:0!important;
    max-width:88px!important;
    padding-right:10px!important;
    padding-left:10px!important;
    white-space:normal!important;
  }

  /* Search filters/results never preserve desktop widths. */
  body.id-pwa-page-searcharea :where(
    .search-left-content,
    .search-right-content,
    .search-results-wrapper,
    .result-merchant,
    .search-result-options,
    #mobile-search-filter
  ) {
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }

  body.id-pwa-page-searcharea .search-result-options {
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
  }

  body.id-pwa-page-searcharea .view-options {
    display:flex!important;
    width:100%!important;
    flex-wrap:wrap!important;
    gap:6px!important;
  }

  /* Account tabs wrap into a visible menu; no 560px desktop table floor. */
  body.id-pwa-page-profile :where(
    .id-account-shell,
    .id-account-workspace,
    .id-account-workspace > #tabs,
    .id-account-workspace > #tab,
    .id-account-identity
  ) {
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }

  body.id-pwa-page-profile .id-account-workspace > #tabs {
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
    height:auto!important;
    overflow:visible!important;
  }

  body.id-pwa-page-profile .id-account-workspace > #tabs > li {
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    white-space:normal!important;
  }

  /* All legacy table families fit. Desktop columns stack on phones. */
  body.id-pwa-native :where(
    .table-responsive,
    .dataTables_wrapper,
    .dataTables_scroll,
    .dataTables_scrollHead,
    .dataTables_scrollBody,
    .table-order-details,
    .order-order-history
  ) {
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow:visible!important;
  }

  body.id-pwa-native table {
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    table-layout:fixed!important;
    border-collapse:collapse!important;
    overflow:visible!important;
  }

  body.id-pwa-native table :where(th,td) {
    min-width:0!important;
    max-width:100%!important;
    padding:9px 7px!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    word-break:break-word!important;
  }

  body.id-pwa-native .dataTables_wrapper :where(.dataTables_length,.dataTables_filter,.dataTables_info,.dataTables_paginate) {
    float:none!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0 0 10px!important;
    text-align:left!important;
  }

  body.id-pwa-native .dataTables_wrapper .dataTables_filter label {
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:6px!important;
  }

  body.id-pwa-native .dataTables_wrapper .dataTables_paginate {
    display:flex!important;
    flex-wrap:wrap!important;
    gap:5px!important;
  }

  /* Third-party fields and payment widgets are fluid. */
  body.id-pwa-native :where(
    .select2-container,
    .chosen-container,
    .easy-autocomplete,
    .intl-tel-input,
    .input-group,
    .input-prepend,
    .input-append,
    .StripeElement,
    .paypal-button-container,
    .payment-option-list,
    .payment-options,
    .bank-deposit-wrap
  ) {
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }

  body.id-pwa-native :where(.select2-choice,.chosen-single,.input-group) {
    white-space:normal!important;
  }

  body.id-pwa-native :where(.input-group,.input-prepend,.input-append) {
    display:flex!important;
    flex-wrap:wrap!important;
    gap:6px!important;
  }

  body.id-pwa-native :where(.input-group > *,.input-prepend > *,.input-append > *) {
    min-width:0!important;
    max-width:100%!important;
    flex:1 1 150px!important;
  }

  /* Maps, gallery plugins and overlays are constrained by the viewport. */
  body.id-pwa-native :where(
    #map_canvas,
    #map,
    .google-map,
    .map-wrapper,
    .fancybox-wrap,
    .fancybox-inner,
    .owl-wrapper-outer,
    .owl-stage-outer,
    .slick-list,
    .bx-wrapper,
    .modal-dialog,
    .uk-modal-dialog
  ) {
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }

  body.id-pwa-native :where(.fancybox-wrap,.fancybox-inner) {
    right:0!important;
    left:0!important;
    margin-right:auto!important;
    margin-left:auto!important;
  }

  body.id-pwa-native :where(.modal,.uk-modal) {
    width:100%!important;
    max-width:100%!important;
    overflow-x:clip!important;
  }

  /* Install prompt changes from 3 columns to a contained 2-column card. */
  body.id-pwa-native .id-pwa-install.is-visible {
    right:var(--v16-gutter)!important;
    left:var(--v16-gutter)!important;
    width:auto!important;
    max-width:calc(100% - (2 * var(--v16-gutter)))!important;
    grid-template-columns:42px minmax(0,1fr)!important;
  }

  body.id-pwa-native .id-pwa-install > div {
    min-width:0!important;
    max-width:100%!important;
  }

  body.id-pwa-native .id-pwa-install .id-pwa-install-action {
    width:100%!important;
    grid-column:1 / -1!important;
  }

  /* Pagination and action groups wrap instead of overflowing. */
  body.id-pwa-native :where(.button-group,.btn-group,.action-wrap,.action-bar,.food-item-actions,.cart-actions) {
    display:flex!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    flex-wrap:wrap!important;
    gap:8px!important;
  }

  body.id-pwa-native :where(.button-group,.btn-group,.action-wrap,.action-bar,.food-item-actions,.cart-actions) > * {
    min-width:0!important;
    max-width:100%!important;
    flex:1 1 140px!important;
    white-space:normal!important;
  }
}

@media (max-width:599px) {
  /*
   * Dense desktop tables become vertical records. All values remain visible
   * without a horizontal table viewport.
   */
  body.id-pwa-native table,
  body.id-pwa-native table tbody,
  body.id-pwa-native table tr,
  body.id-pwa-native table td {
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }

  body.id-pwa-native table thead {
    display:none!important;
  }

  body.id-pwa-native table tr {
    margin:0 0 10px!important;
    padding:8px 10px!important;
    border:1px solid var(--v16-line)!important;
    border-radius:12px!important;
    background:#fff!important;
  }

  body.id-pwa-native table td {
    padding:7px 0!important;
    border:0!important;
    border-bottom:1px solid var(--v16-line)!important;
    text-align:left!important;
  }

  body.id-pwa-native table td:last-child {
    border-bottom:0!important;
  }

  body.id-pwa-native .id-pwa-tabbar > a > span {
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
}

@media (max-width:359px) {
  body.id-pwa-page-index :where(.cats-grid,.id-cat-grid),
  body.id-pwa-page-index .parallax-home > .parallax-search > div:last-child,
  body.id-pwa-page-index .id-trust-bar .trust-items,
  body.id-pwa-page-browse :where(.id-discovery-tabs,.services-type),
  body.id-pwa-page-menu :where(.category,#tabs),
  body.id-pwa-page-profile .id-account-workspace > #tabs {
    grid-template-columns:1fr!important;
  }

  body.id-pwa-page-menu .id-menu-cart-dock {
    gap:7px!important;
    padding-left:11px!important;
  }
}

/* v17 menu tabs hard stop: third-party script reapplies horizontal flex. */
@media (max-width:1024px) {
  body.id-pwa-native.id-pwa-page-menu .tabs-wrapper {
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow:visible!important;
  }
  body.id-pwa-native.id-pwa-page-menu ul#tabs {
    display:grid!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
    flex-flow:row wrap!important;
    overflow:visible!important;
    transform:none!important;
  }
  body.id-pwa-native.id-pwa-page-menu ul#tabs > li {
    position:static!important;
    float:none!important;
    width:auto!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    flex:none!important;
    transform:none!important;
    white-space:normal!important;
  }
}

@media (max-width:359px) {
  body.id-pwa-native.id-pwa-page-menu ul#tabs { grid-template-columns:1fr!important; }
}

/* v17 merchant onboarding gutter correction. */
@media (max-width:1024px) {
  body.id-pwa-native[class*="id-pwa-page-merchantsignup"] .container > .row,
  body.id-pwa-native[class*="id-pwa-page-merchantsignup"] .row.top30 {
    position:static!important;
    left:auto!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin-right:0!important;
    margin-left:0!important;
    transform:none!important;
  }
}
