/* Green Pi Interactive City V6.27
 * Product list usability: visible internal scrollbar + infinite loading.
 */

.gp-map-dock--products .gp-product-view{
  display:flex !important;
  flex-direction:column !important;
  min-height:0 !important;
  height:100% !important;
  overflow:hidden !important;
}

/* Header/filter/result stay fixed; only cards scroll. */
.gp-map-dock--products .gp-product-panel-head,
.gp-map-dock--products .gp-active-location-info,
.gp-map-dock--products .gp-mini-filters,
.gp-map-dock--products .gp-product-result-bar,
.gp-map-dock--products .gp-panel-load-more-wrap,
.gp-map-dock--products .gp-dock-quote{
  flex:0 0 auto !important;
}

.gp-map-dock--products .gp-panel-product-list{
  position:relative;
  flex:1 1 0 !important;
  min-height:180px !important;
  max-height:none !important;
  overflow-y:scroll !important;
  overflow-x:hidden !important;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-gutter:stable both-edges;
  scrollbar-width:auto;
  scrollbar-color:var(--gp-theme-accent,#6ef0d8) rgba(255,255,255,.08);
  padding:14px 10px 18px 14px !important;
}

.gp-map-dock--products .gp-panel-product-list::-webkit-scrollbar{
  width:11px !important;
}
.gp-map-dock--products .gp-panel-product-list::-webkit-scrollbar-track{
  margin:10px 0;
  border:1px solid rgba(255,255,255,.05);
  border-radius:999px;
  background:rgba(255,255,255,.055);
  box-shadow:inset 0 1px 3px rgba(0,0,0,.18);
}
.gp-map-dock--products .gp-panel-product-list::-webkit-scrollbar-thumb{
  min-height:64px;
  border:2px solid transparent;
  border-radius:999px;
  background:linear-gradient(180deg,
    color-mix(in srgb,var(--gp-theme-accent,#6ef0d8) 92%,white),
    color-mix(in srgb,var(--gp-theme-accent,#6ef0d8) 68%,#0d3640)
  ) padding-box;
  box-shadow:0 0 16px color-mix(in srgb,var(--gp-theme-accent,#6ef0d8) 30%,transparent);
}
.gp-map-dock--products .gp-panel-product-list::-webkit-scrollbar-thumb:hover{
  background:var(--gp-theme-accent,#6ef0d8) padding-box;
}

/* Persistent backup action. Auto-load normally makes this unnecessary, but humans enjoy buttons. */
.gp-map-dock--products .gp-panel-load-more-wrap{
  position:relative;
  z-index:15;
  padding:9px 12px 10px !important;
  border-top:1px solid rgba(255,255,255,.07);
  background:linear-gradient(180deg,rgba(8,25,33,.48),rgba(8,25,33,.74));
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.gp-map-dock--products .gp-panel-load-more{
  min-height:42px !important;
  border-color:color-mix(in srgb,var(--gp-theme-accent,#6ef0d8) 32%,rgba(255,255,255,.12)) !important;
}
.gp-map-dock--products .gp-panel-load-more:not([hidden])::after{
  content:'  ↓';
  color:var(--gp-theme-accent,#6ef0d8);
}

/* Compact enough to expose more of the next card without shrinking readability. */
.gp-map-dock--products .gp-panel-product-card{
  margin-bottom:10px !important;
}

@media (max-height:820px) and (min-width:783px){
  .gp-map-dock--products .gp-panel-product-list{
    min-height:150px !important;
  }
  .gp-map-dock--products .gp-product-panel-head{
    min-height:64px !important;
  }
  .gp-map-dock--products .gp-active-location-info{
    padding-top:8px !important;
    padding-bottom:7px !important;
  }
}

@media (max-width:782px){
  .gp-map-dock--products .gp-panel-product-list{
    min-height:140px !important;
    scrollbar-width:thin;
  }
  .gp-map-dock--products .gp-panel-product-list::-webkit-scrollbar{
    width:7px !important;
  }
}
