:root {
  --gold: #B8860B; --gold-deep:#8a6406; --cream:#FBF6EA; --line:#eee;
  --red:#C8102E; --grey:#999; --ink:#26221b;
}
* { margin:0; padding:0; box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
html,body { height:100%; }
body {
  font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
  background:#f7f6f2; color:var(--ink);
  padding-top:calc(50px + env(safe-area-inset-top));
}
img { -webkit-user-drag:none; user-select:none; }

/* 顶栏 */
#topbar {
  position:fixed; top:0; left:0; right:0; z-index:50;
  display:flex; align-items:center; gap:6px; height:calc(50px + env(safe-area-inset-top));
  padding:env(safe-area-inset-top) 10px 0; background:rgba(255,255,255,.92);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.tb-btn { width:38px; height:38px; border:0; background:none; font-size:20px; color:#444; border-radius:10px; }
.tb-btn:active { background:#f0ece2; }
.tb-title { flex:1; font-size:17px; font-weight:700; letter-spacing:.5px; text-align:center;
  color:#3a2e14; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }

/* 首页：头图 + 分类宫格 */
.hero { height:150px; margin:12px 12px 4px; border-radius:18px; overflow:hidden; position:relative;
  background:linear-gradient(135deg,#c9a44c,#8a6406); color:#fff;
  display:flex; align-items:center; justify-content:center; }
.hero .t1 { font-size:26px; font-weight:800; letter-spacing:6px; text-shadow:0 2px 10px rgba(0,0,0,.18); }
.hero .t2 { position:absolute; bottom:12px; font-size:11px; opacity:.85; letter-spacing:2px; }
.cat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; padding:10px 12px calc(18px + env(safe-area-inset-bottom)); }
.cat-card { background:#fff; border-radius:14px; overflow:hidden; box-shadow:0 2px 10px rgba(60,40,0,.05);
  text-align:center; padding-bottom:8px; cursor:pointer; }
.cat-card:active { transform:scale(.97); }
.cat-card .ph { height:74px; display:flex; align-items:center; justify-content:center; font-size:34px; background:var(--cream); color:var(--gold-deep); font-weight:800; background-size:cover; background-position:center; }
.cat-card .ph-img { width:100%; height:74px; object-fit:cover; display:block; background:var(--cream); }
.cat-card .ph.scrim { position:relative; }
.cat-card .nm.scrim { position:absolute; left:8px; bottom:22px; margin:0; padding:2px 8px; border-radius:8px;
  color:#fff; text-shadow:0 1px 4px rgba(0,0,0,.55); background:linear-gradient(135deg, rgba(60,40,0,.25), rgba(60,40,0,.6)); }
.cat-card { position:relative; }
.cat-card .nm { font-size:13px; font-weight:600; margin-top:6px; }
.cat-card .sn { font-size:10px; color:var(--grey); margin-top:2px; }

/* 系列列表 */
.series-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; padding:10px 12px calc(18px + env(safe-area-inset-bottom)); }
@media (min-width:760px) { .series-grid { grid-template-columns:repeat(4,1fr); } }
.ser-card { background:#fff; border-radius:14px; overflow:hidden; box-shadow:0 2px 10px rgba(60,40,0,.06); cursor:pointer; }
.ser-card:active { transform:scale(.98); }
.ser-card .cv { width:100%; aspect-ratio:4/3; object-fit:cover; background:var(--cream); display:block; }
.ser-card .info { padding:8px 10px 9px; }
.ser-card .nm { font-size:14px; font-weight:700; }
.ser-card .meta { display:flex; justify-content:space-between; align-items:center; margin-top:4px; font-size:11px; color:var(--grey); }
.tag-stock { display:inline-block; padding:1px 8px; border-radius:20px; font-size:10.5px; font-weight:700; }
.tag-stock.ok { color:var(--red); background:#FDEBEC; }
.tag-stock.no { color:#bbb; background:#f3f3f3; }
.tag-stock.unk { color:var(--gold-deep); background:var(--cream); }

/* 系列详情 */
.page-hero { position:relative; margin:10px 12px 0; border-radius:16px; overflow:hidden; }
.page-hero img { width:100%; display:block; }
.grp { padding:14px 12px 2px; display:flex; align-items:baseline; gap:8px; }
.grp .gt { font-size:15px; font-weight:800; }
.grp .gn { font-size:11px; color:var(--grey); }
.swiper { display:flex; gap:9px; overflow-x:auto; padding:10px 12px 4px; scroll-snap-type:x mandatory; }
.swiper .cell { scroll-snap-align:start; }
.color-cell { width:96px; flex:none; background:#fff; border-radius:12px; padding:5px 5px 6px; box-shadow:0 1px 6px rgba(60,40,0,.06); }
.color-cell img { width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:8px; display:block; }
.color-cell .cn { font-size:11px; text-align:center; margin-top:4px; color:#54462a; }
.color-cell .cs { font-size:9.5px; text-align:center; color:var(--grey); }

/* 卡片列表（方块毯等型号卡片） */
.model-list { padding:4px 12px calc(20px + env(safe-area-inset-bottom)); }
.m-row { display:flex; align-items:center; background:#fff; border-radius:12px; padding:10px 12px; margin-top:8px; box-shadow:0 1px 6px rgba(60,40,0,.05); }
.m-row .nm { flex:1; font-size:14px; font-weight:600; }
.m-row .sp { font-size:11px; color:var(--grey); margin:2px 0 0; }
.m-row .qt { font-weight:800; font-size:14px; }
.m-row .qt.ok { color:var(--red); } .m-row .qt.no { color:#c8c8c8; }

/* ── 行级库存明细（展厅同款：型号+规格/幅宽 / 批号子行 / 面积明细）── */
.mrows-head { display:flex; align-items:center; justify-content:space-between; gap:8px;
  margin:16px 2px 2px; padding:6px 2px; }
.mrows-t { font-size:13px; font-weight:700; color:var(--gold-deep); letter-spacing:.06em; }
.mrows-tg { display:inline-flex; gap:6px; }
.st-chip { border:1px solid rgba(184,134,59,.45); background:rgba(255,255,255,.8); color:#a0751d;
  font-size:11px; padding:4px 10px; border-radius:999px; cursor:pointer; }
.st-chip.on { background:rgba(184,134,59,.16); font-weight:700; }
.mrows { padding:2px 0 6px; }
.st-row { margin-top:6px; }
.st-row.has-sub { border-radius:12px 12px 4px 4px; }
.st-l { display:flex; align-items:baseline; flex-wrap:wrap; gap:2px 6px; }
.st-l .nm { flex:initial; }
.st-l .sp { margin:0; }
.st-badge { font-style:normal; font-weight:700; font-size:10.5px; color:#a0751d;
  background:rgba(184,134,59,.13); border-radius:6px; padding:1.5px 6px; }
.st-brow { display:grid; grid-template-columns:auto 1fr auto; gap:8px; align-items:baseline;
  background:#fff; padding:6px 12px 6px 26px; margin:1px 0 0; border-radius:0 0 8px 8px;
  font-size:12px; color:var(--grey); }
.st-brow.one { grid-template-columns:auto 1fr; }
.st-brow + .st-row { border-radius:8px; }
.st-b { font-weight:600; color:#8a6406; white-space:nowrap; }
.st-t { font-size:11px; color:#b0a99a; overflow-wrap:anywhere; line-height:1.5; }
.st-q { color:var(--ink); font-variant-numeric:tabular-nums; white-space:nowrap; }
.st-col-t { font-size:12.5px; font-weight:700; color:var(--gold-deep); padding:8px 2px 2px; }
.mrows-cols { display:grid; grid-template-columns:1fr 1fr; gap:0 10px; }
.mrows-col { min-width:0; }
.empty.small { font-size:12px; color:var(--grey); padding:14px 0; }

/* 库存摘要条 */
.stock-strip { margin:10px 12px 0; background:#fff; border-radius:12px; padding:10px 12px;
  display:flex; align-items:center; gap:8px; font-size:12.5px; box-shadow:0 1px 6px rgba(60,40,0,.05); }
.stock-strip .big { font-size:18px; font-weight:800; color:var(--red); }
.stock-strip .muted { color:var(--grey); flex:1; }
.stock-strip .act { color:var(--gold-deep); background:var(--cream); border:1px solid #ecd9ae; padding:3px 10px; border-radius:20px; font-size:12px; }

/* 详情弹层 */
#lightbox { position:fixed; inset:0; z-index:100; background:#fff; display:flex; flex-direction:column; }
#lightbox[hidden]{ display:none; }
.lb-head { display:flex; align-items:center; padding:calc(10px + env(safe-area-inset-top)) 12px 10px; border-bottom:1px solid var(--line); }
.lb-head span { flex:1; font-size:15px; font-weight:700; }
#lb-close { width:36px;height:36px;border:0;background:none;font-size:20px;color:#555; }
.lb-stage { flex:1; display:flex; align-items:center; justify-content:center; background:#111; overflow:auto; }
.lb-stage img { max-width:100%; }
.lb-foot { padding:10px 14px calc(12px + env(safe-area-inset-bottom)); font-size:12px; color:#666; background:#fff; }

/* 搜索 */
#search { position:fixed; top:calc(52px + env(safe-area-inset-top)); left:0; right:0; z-index:40; padding:8px 12px 10px; background:#fff; border-bottom:1px solid var(--line); }
#search-input { width:100%; height:38px; border-radius:20px; border:1px solid #e3dcc8; padding:0 14px; font-size:14px; background:#faf8f2; }
#search-res { margin-top:6px; }
#search-res .hit { padding:9px 8px; border-radius:10px; font-size:14px; }
#search-res .hit:active { background:#f4efe2; }

#status-tip { position:fixed; left:50%; bottom:calc(30px + env(safe-area-inset-bottom)); transform:translateX(-50%);
  background:rgba(30,20,0,.82); color:#fff; padding:8px 16px; border-radius:20px; font-size:12.5px; z-index:90; }
.empty { text-align:center; color:var(--grey); padding:60px 20px; font-size:13px; line-height:2; }
