.shop-panel { overflow:hidden; }
.shop-balance { margin:0; color:#f2d46f; font-weight:900; }
.shop-cards { width:100%; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; align-items:end; margin:18px 0 22px; }
.shop-item { min-width:0; display:flex; flex-direction:column; align-items:center; gap:9px; padding:12px; border:1px solid rgba(120,130,100,.42); border-radius:18px; background:rgba(12,14,10,.46); }
.shop-item.rare { border-color:rgba(224,189,73,.68); box-shadow:inset 0 0 0 1px rgba(224,189,73,.12); }
.shop-card { width:auto!important; height:300px!important; min-height:0!important; aspect-ratio:2 / 3; flex:none!important; }
.shop-meta { width:100%; display:flex; justify-content:space-between; gap:8px; align-items:center; font-size:12px; }
.shop-meta strong { color:#d9dfc3; letter-spacing:.08em; }
.shop-item.rare .shop-meta strong { color:#f2d46f; }
.shop-meta span { color:#f0e6b0; font-weight:900; white-space:nowrap; }
.shop-buy { width:100%; }
.shop-buy:disabled { cursor:not-allowed; opacity:.45; }
.route-node[data-node-id] .route-node-icon { position:relative; }
@media (max-width:900px) {
  .shop-cards { display:flex; overflow-x:auto; justify-content:flex-start; padding:10px 2px 16px; scroll-snap-type:x mandatory; }
  .shop-item { flex:0 0 min(42vw,190px); scroll-snap-align:center; }
  .shop-card { height:270px!important; }
}
@media (max-width:700px) and (orientation:portrait) {
  .shop-item { flex-basis:min(55vw,210px); }
  .shop-card { height:300px!important; }
}
