/* ===== 铺货中心 · layout matched to the reference screenshot ===== */
:root{
  --bar:#232323;
  --bg:#ffffff;
  --card:#f7f7f7;
  --line:#e8e8e8;
  --ink:#333333;
  --ink-2:#666666;
  --ink-3:#9a9a9a;
  --price:#e4393c;
  --btn:#333333;
  --badge:#f03b3b;
  --tabs-h:42px;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink)}
body{
  font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Hiragino Sans GB','Microsoft YaHei','Helvetica Neue',Arial,sans-serif;
  font-size:13px;line-height:1.4;
  -webkit-font-smoothing:antialiased;
  padding-bottom:84px;
}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
svg{width:16px;height:16px;fill:currentColor}

/* ---------- top bar ---------- */
.topbar{
  position:sticky;top:0;z-index:20;
  height:40px;background:var(--bar);color:#fff;
  display:flex;align-items:center;justify-content:center;
}
.topbar .title{margin:0;font-size:15px;font-weight:600;letter-spacing:.5px}

/* ---------- category tabs ---------- */
.tabs{
  position:sticky;top:40px;z-index:19;
  display:flex;height:var(--tabs-h);background:#fff;border-bottom:1px solid var(--line);
  overflow-x:auto;scrollbar-width:none;
}
.tabs::-webkit-scrollbar{display:none}
.tab{
  flex:1 0 auto;min-width:72px;padding:0 14px;height:100%;
  display:flex;align-items:center;justify-content:center;
  font-size:13px;color:var(--ink);white-space:nowrap;position:relative;
}
.tab.on{font-weight:600}
.tab.on::after{
  content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);
  width:26px;height:2px;background:var(--ink);border-radius:2px;
}

/* sub-category chips (shown after picking a top-level tab) */
.subcats{
  display:flex;flex-wrap:wrap;gap:8px;padding:10px 14px;
  background:#fff;border-bottom:1px solid var(--line);
}
.chip{
  font-size:12px;color:var(--ink-2);background:#f2f2f2;border-radius:3px;padding:4px 10px;
}
.chip.on{background:var(--btn);color:#fff}

/* ---------- search ---------- */
.search{
  display:flex;align-items:center;gap:6px;
  height:36px;padding:0 14px;background:#f8f8f8;border-bottom:1px solid var(--line);
}
.search svg{color:var(--ink-3);width:15px;height:15px}
.search input{
  flex:1;border:0;background:none;outline:none;font-size:13px;color:var(--ink);
}
.search input::placeholder{color:#b5b5b5}
.search input::-webkit-search-cancel-button{-webkit-appearance:none}

/* ---------- product grid ---------- */
.grid{
  display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;
}
.card{
  position:relative;background:var(--card);border:1px solid var(--line);
  padding:8px 10px 30px;min-height:0;
}
.card .pic{
  width:72px;height:72px;object-fit:contain;background:#fff;display:block;
}
.card .pic.img-fallback{
  display:grid;place-items:center;font-size:10px;color:var(--ink-3);
  background:repeating-linear-gradient(45deg,#f2f2f2,#f2f2f2 6px,#ececec 6px,#ececec 12px);
}
.card .name{
  margin-top:6px;font-size:12px;font-weight:600;color:var(--ink);line-height:1.3;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.card .price{margin-top:3px;font-size:11px;color:var(--ink-3)}
.card .price b{font-weight:500;color:var(--price);font-size:12px;margin-left:4px}
.card .pid{margin-top:2px;font-size:11px;color:var(--ink-3)}

.card .pick{
  position:absolute;top:8px;right:8px;width:15px;height:15px;border-radius:50%;
  border:1px solid #9a9a9a;background:#fff;
}
.card .pick.on{background:var(--btn);border-color:var(--btn)}
.card .pick.on::after{
  content:"";position:absolute;left:5px;top:2px;width:4px;height:8px;
  border:solid #fff;border-width:0 1.5px 1.5px 0;transform:rotate(45deg);
}
.card .dist{
  position:absolute;right:8px;bottom:7px;
  background:var(--btn);color:#fff;font-size:11px;padding:2px 9px;border-radius:3px;
}
.card .dist.done{background:#bdbdbd;cursor:default}

.loadmore{text-align:center;color:var(--ink-3);font-size:12px;padding:14px 0 6px}
.loadmore[hidden]{display:none}

/* ---------- bottom action bar ---------- */
.actionbar{
  position:fixed;left:0;right:0;bottom:22px;z-index:20;
  display:flex;justify-content:center;gap:12px;pointer-events:none;
}
.act{
  pointer-events:auto;position:relative;
  background:var(--btn);color:#fff;font-size:13px;
  padding:8px 22px;border-radius:999px;box-shadow:0 2px 8px rgba(0,0,0,.25);
}
.act:active{transform:translateY(1px)}
.badge{
  position:absolute;top:-6px;right:-4px;min-width:16px;height:16px;padding:0 4px;
  border-radius:999px;background:var(--badge);color:#fff;font-size:10px;line-height:16px;text-align:center;
}
.badge.zero{display:none}

/* ---------- toast ---------- */
.toast{
  position:fixed;left:50%;top:45%;transform:translateX(-50%);z-index:30;
  background:rgba(0,0,0,.75);color:#fff;font-size:13px;padding:10px 16px;border-radius:6px;
}
.toast[hidden]{display:none}

@media (max-width:520px){
  .tab{min-width:60px;padding:0 10px}
  .card{padding:8px 8px 30px}
  .card .pic{width:64px;height:64px}
}
