/* app.wxss */
/* app.wxss —— 红秀通讯全局样式
 * 设计系统来自 V3.8 交互原型（需求文档 §2 品牌视觉）：
 * 朱砂红 #C81E2A / 深红 #A31823 / 浅红 #FFE5E7 / 背景 #F5F6F8 / 正文 #1F2937
 * 原型 px 尺寸按 ×2 换算为 rpx；原型中的 grid 布局改用 flex 兼容实现。
 * 所有页面使用自定义导航（页面 JSON 中 navigationStyle: custom），
 * 由页面内的 .top 品牌栏 / .headerback 返回栏承担头部，与原型一致。
 */
body{
  background: #F5F6F8;
  color: #1F2937;
  font-size: 0.26rem;
  line-height: 1.6;
}

/* ================= 通用文字 ================= */
.small {
  font-size: 0.22rem;
  color: #4B5563;
  line-height: 1.7;
}
.sub {
  font-size: 0.22rem;
  color: #4B5563;
  line-height: 1.7;
}
.note {
  color: #858992;
  font-size: 0.22rem;
  line-height: 1.65;
}
.title {
  font-size: 0.44rem;
  font-weight: 800;
  margin: 0.16rem 0 0.36rem;
}

/* ================= 价格（红色、加粗，中文电商惯例） ================= */
.price {
  color: #C81E2A;
  font-size: 0.4rem;
  font-weight: 800;
  line-height: 1.2;
}
.price--sm {
  font-size: 0.32rem;
}

/* ================= 状态徽章 ================= */
.badge {
  font-size: 0.22rem;
  color: #11865b;
  background: #e9f7ef;
  border-radius: 0.16rem;
  padding: 0.1rem 0.16rem;
  display: inline-block;
  line-height: 1;
}
.badge.hold {
  background: #fff2db;
  color: #ad7118;
}
.badge.off {
  background: #F5F6F8;
  color: #888888;
}

/* ================= 按钮 ================= */
.primary {
  width: 100%;
  background: #C81E2A;
  color: #ffffff;
  border: 0;
  padding: 0.26rem 0.32rem;
  border-radius: 0.24rem;
  font-weight: 700;
  font-size: 0.28rem;
  line-height: 1.4;
  text-align: center;
}
.secondary {
  background: #ffffff;
  border: 0.01rem solid #e1cad0;
  color: #C81E2A;
  padding: 0.2rem 0.26rem;
  border-radius: 0.2rem;
  font-size: 0.26rem;
  line-height: 1.4;
  text-align: center;
}
.textbtn {
  background: transparent;
  border: 0;
  color: #C81E2A;
  font-size: 0.24rem;
  padding: 0;
  line-height: 1;
}
button {
  margin: 0;
  padding: 0;
  background: none;
  line-height: inherit;
}
button::after {
  border: none;
}

/* 按压反馈（小程序无 :active，用 hover-class） */
.pressable {
  transition: opacity 0.15s, transform 0.15s;
}
.pressable-hover {
  opacity: 0.82;
  transform: scale(0.98);
}

/* ================= 卡片 ================= */
.card {
  background: #ffffff;
  border: 0.01rem solid #E5E7EB;
  border-radius: 0.28rem;
  padding: 0.3rem;
  margin: 0.24rem 0;
  box-shadow: 0 0.06rem 0.24rem #1F29370a;
}

/* ================= 键值网格（2 列，flex 兼容实现） ================= */
.kv {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -0.09rem;
}
.kv > view {
  width: 50%;
  box-sizing: border-box;
  padding: 0 0.09rem;
  margin-bottom: 0.18rem;
}
.kv .kbox {
  background: #F5F6F8;
  border-radius: 0.2rem;
  padding: 0.24rem;
  height: 100%;
}
.kv .kbox .k {
  display: block;
  font-size: 0.22rem;
  color: #4B5563;
}
.kv .kbox .v {
  display: block;
  font-size: 0.26rem;
  font-weight: 600;
  margin-top: 0.1rem;
  word-break: break-all;
}

/* ================= 验机行 ================= */
.test {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.24rem 0;
  border-bottom: 0.01rem solid #E5E7EB;
  font-size: 0.26rem;
}
.test:last-child {
  border-bottom: 0;
}
.ok {
  color: #11865b;
  font-weight: 600;
}
.warn {
  color: #c57d17;
  font-weight: 600;
}
.na {
  color: #4B5563;
}

/* ================= 表单 ================= */
.field {
  margin: 0.26rem 0;
}
.field label,
.field__label {
  display: block;
  color: #4B5563;
  font-size: 0.24rem;
  margin-bottom: 0.14rem;
}

/* 单行输入：必须给固定高度 + 相同行高，否则微信原生 input 会把文字截断 */
.field input {
  width: 100%;
  height: 0.92rem;
  min-height: 0.92rem;
  line-height: 0.92rem;
  padding: 0 0.24rem;
  background: #ffffff;
  border: 0.01rem solid #E5E7EB;
  border-radius: 0.2rem;
  outline: none;
  font-size: 0.28rem;
  color: #1F2937;
  box-sizing: border-box;
}

/* 多行：用 min-height + 上下内边距 + 行高，不要设 height */
.field textarea {
  width: 100%;
  min-height: 1.8rem;
  padding: 0.2rem 0.24rem;
  line-height: 1.6;
  background: #ffffff;
  border: 0.01rem solid #E5E7EB;
  border-radius: 0.2rem;
  outline: none;
  font-size: 0.28rem;
  color: #1F2937;
  box-sizing: border-box;
}

/* 自定义下拉（点击弹 actionSheet） */
.field select {
  width: 100%;
  background: #ffffff;
  border: 0.01rem solid #E5E7EB;
  padding: 0 0.24rem;
  height: 0.92rem;
  border-radius: 0.2rem;
  outline: none;
  font-size: 0.28rem;
  box-sizing: border-box;
}
.flex {
  display: flex;
  gap: 0.2rem;
}
.flex > view {
  flex: 1;
  min-width: 0;
}

/* ================= 快捷选项 chips（表单里点一下即填，也可手填） ================= */
.chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.12rem;
  margin-bottom: 0.16rem;
}
.chip {
  padding: 0.12rem 0.22rem;
  border-radius: 9.99rem;
  background: #ffffff;
  border: 0.01rem solid #E5E7EB;
  font-size: 0.24rem;
  color: #4B5563;
  line-height: 1.2;
}
.chip.on {
  background: #FFE5E7;
  border-color: #F3B9BE;
  color: #C81E2A;
  font-weight: 700;
}
.chip:active {
  background: #f5f6f8;
}

/* ================= 输入框 + 右侧按钮 ================= */
.field__row {
  display: flex;
  align-items: center;
  gap: 0.16rem;
}
.field__row input {
  flex: 1;
  min-width: 0;
  width: auto;
}
.field__btn {
  flex: 0 0 auto;
  height: 0.92rem;
  line-height: 0.92rem;
  padding: 0 0.26rem;
  border-radius: 0.2rem;
  background: #FFE5E7;
  border: 0.01rem solid #F3B9BE;
  color: #C81E2A;
  font-size: 0.24rem;
  font-weight: 650;
  box-sizing: border-box;
}
.field__btn:active {
  background: #FFD0D4;
}

/* ================= 只读编号展示 ================= */
.id-box {
  display: flex;
  align-items: center;
  gap: 0.16rem;
}
.id-box__val {
  flex: 1;
  min-width: 0;
  height: 0.92rem;
  line-height: 0.92rem;
  padding: 0 0.24rem;
  background: #F5F6F8;
  border: 0.01rem dashed #d9dbe1;
  border-radius: 0.2rem;
  font-size: 0.28rem;
  font-weight: 700;
  letter-spacing: 0.01rem;
  color: #1F2937;
  box-sizing: border-box;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

/* ================= 列表行 ================= */
.navrow {
  background: #ffffff;
  border-radius: 0.24rem;
  padding: 0.3rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 0.2rem 0;
  font-size: 0.28rem;
}
.navrow .arrow {
  color: #9CA3AF;
  font-size: 0.3rem;
}
.navrow .tail {
  color: #4B5563;
  font-size: 0.24rem;
}

/* 堆叠列表：多行合成一张卡，行间用分隔线（原型 .stack） */
.stack {
  margin: 0 0.32rem;
  background: #ffffff;
  border: 0.01rem solid #E5E7EB;
  border-radius: 0.36rem;
  overflow: hidden;
  box-shadow: 0 0.04rem 0.16rem rgba(28, 32, 45, 0.06);
}
.stack .navrow {
  margin: 0;
  border-radius: 0;
  padding: 0.3rem 0.32rem;
  border-bottom: 0.01rem solid #E5E7EB;
  font-size: 0.29rem;
}
.stack .navrow:last-child {
  border-bottom: 0;
}
.stack .navrow:active {
  background: #F5F6F8;
}

/* 页面大标题（原型 .title-lg） */
.title-lg {
  font-size: 0.36rem;
  font-weight: 800;
  color: #1F2937;
  margin: 0.36rem 0.32rem 0.08rem;
}

/* ================= 统计三格（工作台 / 登录日志共用，原型 .stat） ================= */
.stat {
  display: flex;
  background: #ffffff;
  border: 0.01rem solid #E5E7EB;
  border-radius: 0.36rem;
  padding: 0.32rem 0.16rem;
  margin: 0.24rem 0.32rem 0;
  box-shadow: 0 0.04rem 0.16rem rgba(28, 32, 45, 0.06);
}
.stat__cell {
  flex: 1;
  min-width: 0;
  text-align: center;
}
.stat__cell + .stat__cell {
  border-left: 0.01rem solid #E5E7EB;
}
.stat__num {
  display: block;
  font-size: 0.46rem;
  font-weight: 800;
  line-height: 1.1;
  color: #C81E2A;
}
.stat__num--ok {
  color: #16a34a;
}
.stat__label {
  display: block;
  font-size: 0.22rem;
  color: #9CA3AF;
  margin-top: 0.08rem;
}

/* 章节标题：红色竖条 + 文字（原型 .d-sec-t） */
.sec-title {
  display: flex;
  align-items: center;
  gap: 0.14rem;
  font-size: 0.32rem;
  font-weight: 800;
  color: #1F2937;
  margin: 0.44rem 0 0.24rem;
}
.sec-title__bar {
  width: 0.1rem;
  height: 0.3rem;
  border-radius: 0.06rem;
  background: #C81E2A;
  flex-shrink: 0;
}

/* ================= 其他 ================= */
.divider {
  height: 0.01rem;
  background: #E5E7EB;
  margin: 0.36rem 0;
}
.empty {
  text-align: center;
  color: #4B5563;
  padding: 0.8rem 0.2rem;
  font-size: 0.26rem;
}

/* 品牌 logo 方块（brand-bar 组件与登录页共用）
   顶部栏的其余样式由 components/brand-bar 与 components/nav-bar 各自维护 */
.logo {
  width: 0.8rem;
  height: 0.8rem;
  background: #C81E2A;
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.24rem;
  font-size: 0.44rem;
  font-weight: 800;
  flex-shrink: 0;
}

/* 图片占位（与原型一致的浅灰渐变） */
.picture {
  background: linear-gradient(135deg, #f5f5f7, #e8e9ef);
  border-radius: 0.22rem;
  position: relative;
  overflow: hidden;
}

/* ============================================================
 * V4.6 设计增量（原型 shiguang_mobile_prototype_v4_6.html）
 * 新增：搜索入口、品牌胶囊、最新上架横滑卡、推荐竖卡、
 *       CSS 手机占位（device-art）、分类页 5 列筛选下拉、店主微信弹窗
 * ============================================================ */

/* ---------- 搜索入口按钮 ---------- */
.home-search-entry {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 0.2rem;
  text-align: left;
  border: 0.01rem solid #E5E7EB;
  background: #ffffff;
  color: #7d8390;
  padding: 0.26rem 0.28rem;
  border-radius: 0.24rem;
  font-size: 0.26rem;
  margin: 0.2rem 0 0.28rem;
  box-sizing: border-box;
  line-height: 1.4;
}
.home-search-entry .search-go {
  margin-left: auto;
  font-size: 0.44rem;
  color: #adb0b8;
  line-height: 1;
}
.home-search-entry .search-ico {
  color: #C81E2A;
  font-size: 0.36rem;
  line-height: 1;
}

/* ---------- 品牌分类胶囊（5 列） ---------- */
.quick-chips {
  display: flex;
  flex-wrap: wrap;
  margin: 0.2rem -0.06rem 0.3rem;
}
.quick-chips__cell {
  width: 20%;
  box-sizing: border-box;
  padding: 0 0.06rem;
  margin-bottom: 0.12rem;
}
.quick-chip {
  min-height: 0.7rem;
  padding: 0.16rem 0.04rem;
  border: 0.01rem solid #ebe7e9;
  border-radius: 0.22rem;
  background: #ffffff;
  color: #323947;
  font-size: 0.22rem;
  font-weight: 650;
  box-shadow: 0 0.04rem 0.14rem #1F293708;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.08rem;
  white-space: nowrap;
  box-sizing: border-box;
}
.chip-dot {
  width: 0.14rem;
  height: 0.14rem;
  flex: 0 0 0.14rem;
  border-radius: 50%;
  background: #C81E2A;
  box-shadow: 0 0 0 0.04rem #ffffff, 0 0 0 0.05rem #f2f2f4;
}

/* 分类区「更多 / 收起」 */
.category-heading {
  margin-bottom: 0.04rem !important;
}
.category-more {
  display: inline-flex;
  align-items: center;
  gap: 0.12rem;
  background: transparent;
  border: 0;
  color: #C81E2A;
  font-size: 0.24rem;
  font-weight: 650;
  padding: 0.12rem 0.04rem 0.12rem 0.2rem;
  line-height: 1.3;
  border-radius: 0.16rem;
}
.category-chevron {
  display: inline-block;
  width: 0.14rem;
  height: 0.14rem;
  border-right: 0.03rem solid currentColor;
  border-bottom: 0.03rem solid currentColor;
  transform: rotate(45deg) translateY(-0.04rem);
  margin-left: 0.04rem;
}
.category-chevron.is-open {
  transform: rotate(225deg) translateY(-0.02rem);
}

/* 分区标题与提示 */
.section-heading {
  margin-top: 0.4rem !important;
  margin-bottom: 0.08rem !important;
}
.section-hint {
  color: #8a8f98;
  font-size: 0.22rem;
  margin: 0.06rem 0 0.2rem;
}

/* ---------- 最新上架：横向滑动 ---------- */
.latest-track {
  width: 100%;
  white-space: nowrap;
  padding: 0.04rem 0.04rem 0.26rem;
  box-sizing: border-box;
}
.latest-track__inner {
  display: flex;
  gap: 0.22rem;
}
.latest-card {
  width: 3.1rem;
  flex: 0 0 3.1rem;
  background: #ffffff;
  border: 0.01rem solid #E5E7EB;
  border-radius: 0.3rem;
  overflow: hidden;
  box-shadow: 0 0.06rem 0.26rem #1F29370a;
}
.latest-photo {
  position: relative;
  height: 2.74rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(145deg, #d8b7bd, #76535d);
  overflow: hidden;
}
.latest-card.alt-1 .latest-photo {
  background: linear-gradient(145deg, #b0c1d2, #516783);
}
.latest-card.alt-2 .latest-photo {
  background: linear-gradient(145deg, #e7b5a1, #9a6455);
}
.latest-tag {
  position: absolute;
  top: 0.18rem;
  left: 0.18rem;
  padding: 0.08rem 0.12rem;
  border-radius: 0.12rem;
  background: rgba(255, 253, 244, 0.93);
  color: #8c2434;
  font-size: 0.2rem;
  font-weight: 700;
  line-height: 1;
}
.latest-info {
  padding: 0.2rem;
  display: flex;
  flex-direction: column;
  gap: 0.08rem;
}
.latest-info__name {
  font-size: 0.26rem;
  font-weight: 700;
  color: #1F2937;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.latest-info__spec {
  font-size: 0.21rem;
  color: #9CA3AF;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.latest-info__price {
  color: #C81E2A;
  font-size: 0.38rem;
  font-weight: 800;
  letter-spacing: -0.006rem;
}
.latest-info__note {
  font-size: 0.2rem;
  color: #9CA3AF;
}

/* ---------- 推荐商品：竖版列表卡 ---------- */
.recommended-list {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  margin: 0.22rem 0;
}
.recommend-card {
  display: flex;
  gap: 0.24rem;
  align-items: center;
  position: relative;
  min-height: 2.42rem;
  background: #ffffff;
  border: 0.01rem solid #E5E7EB;
  border-radius: 0.28rem;
  overflow: hidden;
  padding-right: 0.24rem;
  box-shadow: 0 0.06rem 0.26rem #1F29370a;
}
.recommend-photo {
  height: 2.42rem;
  width: 2.26rem;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(145deg, #d8b7bd, #76535d);
  overflow: hidden;
}
.recommend-card.alt-1 .recommend-photo {
  background: linear-gradient(145deg, #b0c1d2, #516783);
}
.recommend-card.alt-2 .recommend-photo {
  background: linear-gradient(145deg, #e7b5a1, #9a6455);
}
.recommend-info {
  min-width: 0;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  padding: 0.14rem 0;
}
.recommend-info__name {
  font-size: 0.26rem;
  font-weight: 700;
  color: #1F2937;
  line-height: 1.35;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.recommend-info__spec {
  font-size: 0.21rem;
  color: #9CA3AF;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.recommend-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.08rem;
}
.recommend-bottom__price {
  color: #C81E2A;
  font-size: 0.38rem;
  font-weight: 800;
  letter-spacing: -0.006rem;
}
.recommend-bottom__id {
  font-size: 0.18rem;
  color: #9CA3AF;
}
.recommend-note {
  font-size: 0.2rem;
  color: #9CA3AF;
}
.go-detail {
  font-size: 0.48rem;
  color: #a8aab0;
  line-height: 1;
  flex-shrink: 0;
}

/* ---------- 商品网格卡：样式已迁到 components/product-card/product-card.wxss ---------- */
/* 占位底色（无实拍图时按序号轮换，与卡片样式解耦，故保留在全局） */
.pcard.alt-1 .pcard__photo,
.hcard.alt-1 .pcard__photo {
  background: linear-gradient(145deg, #b0c1d2, #516783);
}
.pcard.alt-2 .pcard__photo,
.hcard.alt-2 .pcard__photo {
  background: linear-gradient(145deg, #e7b5a1, #9a6455);
}

/* ---------- CSS 手机占位（无实拍图时） ---------- */
.device-art {
  width: 1.18rem;
  height: 2.22rem;
  background: linear-gradient(150deg, #3e4857, #0f1321);
  border: 0.06rem solid #1e2229;
  border-radius: 0.28rem;
  box-shadow: 0 0.06rem 0.24rem #00000066;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.08rem;
  box-sizing: border-box;
}
.device-art__screen {
  width: 100%;
  height: 100%;
  border-radius: 0.18rem;
  background: linear-gradient(165deg, #fbd0b7, #b65a79 60%, #4e275e);
  position: relative;
}
.device-art__notch {
  position: absolute;
  top: 0.1rem;
  left: 50%;
  transform: translateX(-50%);
  width: 0.42rem;
  height: 0.1rem;
  border-radius: 0.12rem;
  background: #171a21;
}
.device-art.sm {
  width: 0.84rem;
  height: 1.58rem;
  border-width: 0.04rem;
  border-radius: 0.2rem;
  padding: 0.05rem;
}
.device-art.sm .device-art__screen {
  border-radius: 0.12rem;
}
.device-art.sm .device-art__notch {
  width: 0.28rem;
  height: 0.07rem;
  top: 0.07rem;
}
.device-art.lg {
  width: 1.36rem;
  height: 2.56rem;
}

/* 商品图（实拍） */
.product-cover {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

/* ---------- 分类页：5 列筛选栏 + 下拉面板 ---------- */
.catalog-filter-anchor {
  position: relative;
  z-index: 1;
}
.catalog-filter-anchor.popup-open {
  z-index: 22;
}
.catalog-filter-bar {
  display: flex;
  background: #ffffff;
  border: 0.01rem solid #E5E7EB;
  border-radius: 0.22rem;
  box-shadow: 0 0.04rem 0.2rem #1F29370a;
  overflow: hidden;
}
.catalog-filter-btn {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.08rem;
  padding: 0.24rem 0.04rem;
  border-right: 0.01rem solid #eff0f3;
  background: #ffffff;
  color: #414753;
  font-size: 0.22rem;
  white-space: nowrap;
  box-sizing: border-box;
  line-height: 1.2;
}
.catalog-filter-btn:last-child {
  border-right: 0;
}
.catalog-filter-btn.picked {
  color: #C81E2A;
  background: #FFE5E7;
  font-weight: 700;
}
.catalog-chevron {
  width: 0;
  height: 0;
  border-left: 0.07rem solid transparent;
  border-right: 0.07rem solid transparent;
  border-top: 0.1rem solid #a3a7b0;
  flex-shrink: 0;
}
.catalog-chevron.up {
  transform: rotate(180deg);
  border-top-color: #C81E2A;
}
.filter-mask {
  position: fixed;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  z-index: 18;
  background: rgba(25, 30, 39, 0.24);
}
.filter-panel {
  position: absolute;
  top: calc(100% + 0.12rem);
  left: 0;
  width: 3.44rem;
  max-height: 6.2rem;
  z-index: 24;
  background: #ffffff;
  border: 0.01rem solid #E5E7EB;
  border-radius: 0.22rem;
  box-shadow: 0 0.24rem 0.6rem #15182224;
  overflow-y: auto;
}
.filter-panel.filter-1 {
  left: 20%;
}
.filter-panel.filter-2 {
  left: 40%;
}
.filter-panel.filter-3 {
  left: auto;
  right: 12%;
}
.filter-panel.filter-4 {
  left: auto;
  right: 0;
}
.filter-option {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.24rem 0.28rem;
  min-height: 0.84rem;
  border-bottom: 0.01rem solid #f3f3f5;
  background: #ffffff;
  color: #333a47;
  text-align: left;
  font-size: 0.26rem;
  box-sizing: border-box;
  line-height: 1.4;
}
.filter-option:last-child {
  border-bottom: 0;
}
.filter-option.selected {
  background: #FFE5E7;
  color: #C81E2A;
  font-weight: 700;
}
.filter-check {
  color: #C81E2A;
  font-size: 0.26rem;
}
.catalog-count {
  margin: 0.24rem 0 0.18rem;
  color: #9CA3AF;
  font-size: 0.24rem;
}

/* ---------- 店主微信弹窗 ---------- */
.qr-mask {
  position: fixed;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  z-index: 999;
  background: rgba(16, 19, 27, 0.7);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.36rem;
}
.qr-dialog {
  position: relative;
  width: 100%;
  max-width: 6rem;
  background: #ffffff;
  border-radius: 0.38rem;
  padding: 0.5rem 0.44rem;
  text-align: center;
  box-shadow: 0 0.4rem 1.2rem #00000033;
  box-sizing: border-box;
}
.qr-dialog__title {
  font-size: 0.34rem;
  font-weight: 800;
  margin-bottom: 0.16rem;
}
.qr-dialog__desc {
  font-size: 0.26rem;
  color: #4B5563;
}
.qr-close {
  position: absolute;
  right: 0.24rem;
  top: 0.16rem;
  background: none;
  border: 0;
  font-size: 0.46rem;
  color: #858b93;
  line-height: 1;
  padding: 0.08rem;
}
.qr-visual {
  height: 4rem;
  width: 4rem;
  max-width: 100%;
  background: #f8f9fa;
  margin: 0.34rem auto 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.24rem;
  overflow: hidden;
}
.qr-visual__img {
  width: 100%;
  height: 100%;
}
.qr-empty {
  color: #9399a2;
  font-size: 0.28rem;
  line-height: 2;
  text-align: center;
}
.qr-dialog__note {
  display: block;
  color: #858b93;
  font-size: 0.22rem;
  line-height: 1.6;
  margin-top: 0.24rem;
  text-align: left;
}

/* ---------- 管理端 V4.6 ---------- */
.action-label {
  font-size: 0.26rem;
  font-weight: 650;
  color: #343944;
  line-height: 1.3;
  text-align: center;
}
.admin-thumb {
  width: 1.08rem;
  height: 1.24rem;
  flex: 0 0 1.08rem;
  background: #F5F6F8;
  border-radius: 0.22rem;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.edit-photo-preview {
  height: 3.3rem;
  margin: 0.24rem 0;
  background: #f3f4f6;
  border-radius: 0.24rem;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.featured-toggle {
  display: flex;
  align-items: center;
  gap: 0.18rem;
  font-size: 0.28rem;
  font-weight: 600;
  margin: 0.28rem 0 0.04rem;
  color: #4B5563;
}
.featured-box {
  width: 0.44rem;
  height: 0.44rem;
  border-radius: 0.14rem;
  border: 0.03rem solid #E5E7EB;
  background: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  font-size: 0.26rem;
  line-height: 1;
  flex-shrink: 0;
  box-sizing: border-box;
}
.featured-box.on {
  background: #C81E2A;
  border-color: #C81E2A;
}
.cat-color-icon {
  width: 0.68rem;
  height: 0.68rem;
  padding: 0.04rem;
  background: #ffffff;
  border-radius: 0.22rem;
  box-shadow: 0 0 0 0.01rem #E5E7EB;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-sizing: border-box;
}
.cat-color-icon__dot {
  width: 100%;
  height: 100%;
  border-radius: 0.18rem;
}
/* 取色板（替代 HTML 的 input[type=color]） */
.color-palette {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 0.18rem;
  padding: 0.2rem 0.04rem 0.06rem;
}
.color-swatch {
  width: 0.56rem;
  height: 0.56rem;
  border-radius: 0.16rem;
  border: 0.04rem solid #ffffff;
  box-shadow: 0 0 0 0.02rem #E5E7EB;
}
.color-swatch.on {
  box-shadow: 0 0 0 0.04rem #C81E2A;
}

/* ---------- V4.6 跨页通用（多个页面共用，统一放全局） ---------- */
.heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0.32rem 0 0.24rem;
}
.heading__strong {
  font-size: 0.34rem;
  font-weight: 800;
}
.card__title {
  font-size: 0.3rem;
  font-weight: 800;
}

/* 分类页副标题 */
.catalog-tip {
  font-size: 0.22rem;
  color: #4B5563;
  margin: 0.16rem 0 0.24rem;
}
/* 管理端列表子标题 */
.adminproduct__body .sub {
  margin-top: 0.04rem;
  margin-bottom: 0.08rem;
}


/* ============================================================
 * 统一图标系统（纯 CSS 绘制，全站同一套线条风格）
 * 用法：<view class="ico ico--doc"><view class="k1"></view>…</view>
 * 颜色跟随容器 color（红色 #C81E2A / 灰色场景自行覆盖），不依赖任何图片或 emoji
 * ============================================================ */
.ico {
  position: relative;
  width: 0.44rem;
  height: 0.44rem;
  flex: 0 0 0.44rem;
  display: block;
  color: #C81E2A;
}
.ico .k1,
.ico .k2,
.ico .k3,
.ico .k4,
.ico .k5,
.ico .k6 {
  position: absolute;
  box-sizing: border-box;
  background: transparent;
}

/* 新增 ＋ */
.ico--plus .k1 {
  left: 0.2rem;
  top: 0.08rem;
  width: 0.04rem;
  height: 0.28rem;
  border-radius: 0.02rem;
  background: currentColor;
}
.ico--plus .k2 {
  left: 0.08rem;
  top: 0.2rem;
  width: 0.28rem;
  height: 0.04rem;
  border-radius: 0.02rem;
  background: currentColor;
}

/* 商品（提袋） */
.ico--bag .k1 {
  left: 0.08rem;
  top: 0.14rem;
  width: 0.28rem;
  height: 0.24rem;
  border: 0.03rem solid currentColor;
  border-radius: 0.06rem;
}
.ico--bag .k2 {
  left: 0.15rem;
  top: 0.05rem;
  width: 0.14rem;
  height: 0.11rem;
  border: 0.03rem solid currentColor;
  border-bottom: 0;
  border-radius: 0.07rem 0.07rem 0 0;
}

/* 分类（四宫格） */
.ico--grid .k1,
.ico--grid .k2,
.ico--grid .k3,
.ico--grid .k4 {
  width: 0.13rem;
  height: 0.13rem;
  border-radius: 0.04rem;
  background: currentColor;
}
.ico--grid .k1 {
  left: 0.07rem;
  top: 0.07rem;
}
.ico--grid .k2 {
  left: 0.24rem;
  top: 0.07rem;
}
.ico--grid .k3 {
  left: 0.07rem;
  top: 0.24rem;
}
.ico--grid .k4 {
  left: 0.24rem;
  top: 0.24rem;
}

/* 设置（滑杆） */
.ico--sliders .k1,
.ico--sliders .k2,
.ico--sliders .k3 {
  left: 0.07rem;
  width: 0.3rem;
  height: 0.03rem;
  border-radius: 0.02rem;
  background: currentColor;
}
.ico--sliders .k1 {
  top: 0.11rem;
}
.ico--sliders .k2 {
  top: 0.21rem;
}
.ico--sliders .k3 {
  top: 0.31rem;
}
.ico--sliders .k4,
.ico--sliders .k5,
.ico--sliders .k6 {
  width: 0.11rem;
  height: 0.11rem;
  border-radius: 50%;
  background: currentColor;
  box-shadow: 0 0 0 0.03rem #ffffff;
}
.ico--sliders .k4 {
  left: 0.13rem;
  top: 0.07rem;
}
.ico--sliders .k5 {
  left: 0.27rem;
  top: 0.17rem;
}
.ico--sliders .k6 {
  left: 0.17rem;
  top: 0.27rem;
}

/* 日志（文档 + 两行字） */
.ico--doc .k1 {
  left: 0.1rem;
  top: 0.06rem;
  width: 0.24rem;
  height: 0.32rem;
  border: 0.03rem solid currentColor;
  border-radius: 0.05rem;
}
.ico--doc .k2 {
  left: 0.16rem;
  top: 0.16rem;
  width: 0.12rem;
  height: 0.03rem;
  border-radius: 0.02rem;
  background: currentColor;
}
.ico--doc .k3 {
  left: 0.16rem;
  top: 0.23rem;
  width: 0.08rem;
  height: 0.03rem;
  border-radius: 0.02rem;
  background: currentColor;
}

/* 账号（人像） */
.ico--user .k1 {
  left: 0.15rem;
  top: 0.06rem;
  width: 0.15rem;
  height: 0.15rem;
  border-radius: 50%;
  background: currentColor;
}
.ico--user .k2 {
  left: 0.07rem;
  top: 0.24rem;
  width: 0.3rem;
  height: 0.15rem;
  border-radius: 0.15rem 0.15rem 0 0;
  background: currentColor;
}

/* 密码（锁） */
.ico--lock .k1 {
  left: 0.09rem;
  top: 0.19rem;
  width: 0.26rem;
  height: 0.19rem;
  border: 0.03rem solid currentColor;
  border-radius: 0.05rem;
}
.ico--lock .k2 {
  left: 0.15rem;
  top: 0.09rem;
  width: 0.14rem;
  height: 0.13rem;
  border: 0.03rem solid currentColor;
  border-bottom: 0;
  border-radius: 0.08rem 0.08rem 0 0;
}

/* 删除（垃圾桶） */
.ico--trash .k1 {
  left: 0.08rem;
  top: 0.1rem;
  width: 0.28rem;
  height: 0.03rem;
  border-radius: 0.02rem;
  background: currentColor;
}
.ico--trash .k2 {
  left: 0.17rem;
  top: 0.05rem;
  width: 0.1rem;
  height: 0.04rem;
  border-radius: 0.02rem;
  background: currentColor;
}
.ico--trash .k3 {
  left: 0.11rem;
  top: 0.15rem;
  width: 0.22rem;
  height: 0.22rem;
  border: 0.03rem solid currentColor;
  border-top: 0;
  border-radius: 0 0 0.05rem 0.05rem;
}

/* 图标行（导航行左侧 = 图标 + 文字） */
.navrow__left {
  display: flex;
  align-items: center;
  gap: 0.2rem;
  min-width: 0;
}
/* 入口瓦片里的图标间距 */
.action .ico {
  margin-bottom: 0.1rem;
}

/* 管理端分区小标题 */
.section-label {
  margin: 0.4rem 0.04rem 0.06rem;
  font-size: 0.24rem;
  font-weight: 700;
  color: #9CA3AF;
  letter-spacing: 0.01rem;
}

/* components/brand-bar/brand-bar.wxss */
/* 顶部品牌栏（对齐原型 .nav：品牌红渐变、白色文字、半透明 Logo 与按钮） */
:host {
  display: block;
}

.brandbar {
  background: linear-gradient(120deg, #A31823, #C81E2A);
  box-sizing: border-box;
  width: 100%;
}

.brandbar__row {
  display: flex;
  align-items: center;
  gap: 0.18rem;
  padding: 0.1rem 0 0.1rem 0.34rem;
  box-sizing: border-box;
}

/* Logo：半透明白方块 + 品牌首字（原型 32px 圆角 9px） */
.logo {
  width: 0.64rem;
  height: 0.64rem;
  flex-shrink: 0;
  border-radius: 0.18rem;
  background: rgba(255, 255, 255, 0.2);
  color: #ffffff;
  font-size: 0.3rem;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
}

.brandbar__text {
  min-width: 0;
  flex: 1;
}

.brand {
  font-size: 0.32rem;
  font-weight: 800;
  line-height: 1.15;
  color: #ffffff;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.brandbar__slogan {
  font-size: 0.21rem;
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.4;
  margin-top: 0.02rem;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

/* 右侧咨询按钮：半透明圆角块 + CSS 画的气泡图标 */
.brandbar__chat {
  width: 0.72rem;
  height: 0.72rem;
  flex-shrink: 0;
  margin-right: 0.26rem;
  border-radius: 0.22rem;
  background: rgba(255, 255, 255, 0.16);
  display: flex;
  align-items: center;
  justify-content: center;
}
.brandbar__chat--hover {
  background: rgba(255, 255, 255, 0.3);
}
.brandbar__bubble {
  position: relative;
  width: 0.34rem;
  height: 0.26rem;
  border: 0.03rem solid #ffffff;
  border-radius: 0.1rem;
  box-sizing: border-box;
}
.brandbar__bubble::after {
  content: '';
  position: absolute;
  left: 0.08rem;
  bottom: -0.09rem;
  width: 0.08rem;
  height: 0.08rem;
  border-left: 0.03rem solid #ffffff;
  border-bottom: 0.03rem solid #ffffff;
  transform: rotate(-45deg);
  background: transparent;
}

/* components/product-card/product-card.wxss */
/* 商品卡片（对齐原型 .hcard / .pcard / .row）
 * 尺寸换算：原型 390px 设计稿 ×2 → rpx
 */
:host {
  display: block;
}
.card-tap {
  display: block;
}
.card-tap--hover {
  opacity: 0.9;
}

/* ==================== 横滑卡（首页最新上架） ==================== */
.hcard {
  width: 3.04rem;
  background: #ffffff;
  border: 0.01rem solid #E5E7EB;
  border-radius: 0.36rem;
  overflow: hidden;
  box-shadow: 0 0.04rem 0.16rem rgba(28, 32, 45, 0.06);
}
.hcard__photo {
  position: relative;
  height: 3rem;
  background: #11141b;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hcard__tag {
  position: absolute;
  top: 0.16rem;
  left: 0.16rem;
  background: #C81E2A;
  color: #ffffff;
  font-size: 0.2rem;
  font-weight: 700;
  padding: 0.06rem 0.16rem;
  border-radius: 0.16rem;
  line-height: 1.3;
}
.hcard__grade {
  position: absolute;
  top: 0.16rem;
  right: 0.16rem;
  background: rgba(0, 0, 0, 0.55);
  color: #ffffff;
  font-size: 0.2rem;
  font-weight: 600;
  padding: 0.06rem 0.14rem;
  border-radius: 0.16rem;
  line-height: 1.3;
}
.hcard__info {
  padding: 0.2rem 0.22rem 0.24rem;
}
.hcard__name {
  font-size: 0.26rem;
  font-weight: 700;
  color: #1F2937;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.hcard__spec {
  font-size: 0.21rem;
  color: #9CA3AF;
  margin: 0.06rem 0 0.14rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.hcard__price {
  font-size: 0.34rem;
  font-weight: 800;
  color: #C81E2A;
  letter-spacing: -0.005rem;
}
.hcard__suffix {
  font-size: 0.2rem;
  font-weight: 600;
  color: #9CA3AF;
}
.hcard__wt {
  display: inline-block;
  font-size: 0.19rem;
  font-weight: 600;
  color: #C81E2A;
  background: #FFE5E7;
  padding: 0.04rem 0.12rem;
  border-radius: 0.12rem;
  margin-top: 0.12rem;
}

/* ==================== 两列网格卡（分类 / 搜索 / 店主推荐） ==================== */
.pcard {
  background: #ffffff;
  border: 0.01rem solid #E5E7EB;
  border-radius: 0.36rem;
  overflow: hidden;
  box-shadow: 0 0.04rem 0.16rem rgba(28, 32, 45, 0.06);
  display: flex;
  flex-direction: column;
  height: 100%;
  box-sizing: border-box;
}
.pcard__photo {
  position: relative;
  height: 2.76rem;
  background: #11141b;
  overflow: hidden;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pcard__brandtag {
  position: absolute;
  top: 0.16rem;
  left: 0.16rem;
  color: #ffffff;
  font-size: 0.2rem;
  font-weight: 700;
  padding: 0.06rem 0.16rem;
  border-radius: 0.16rem;
  line-height: 1.3;
}
.pcard__grade {
  position: absolute;
  top: 0.16rem;
  right: 0.16rem;
  background: rgba(0, 0, 0, 0.55);
  color: #ffffff;
  font-size: 0.2rem;
  font-weight: 600;
  padding: 0.06rem 0.14rem;
  border-radius: 0.16rem;
  line-height: 1.3;
}
.pcard__info {
  padding: 0.22rem 0.24rem 0.26rem;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  flex: 1;
}
.pcard__name {
  font-size: 0.28rem;
  font-weight: 700;
  color: #1F2937;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pcard__spec {
  font-size: 0.22rem;
  color: #9CA3AF;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pcard__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.1rem;
}
.pcard__chip {
  font-size: 0.2rem;
  font-weight: 600;
  color: #4B5563;
  background: #F5F6F8;
  padding: 0.06rem 0.12rem;
  border-radius: 0.12rem;
}
.pcard__bottom {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-top: auto;
}
.pcard__price {
  font-size: 0.4rem;
  font-weight: 800;
  color: #C81E2A;
  letter-spacing: -0.008rem;
}
.pcard__wt {
  font-size: 0.19rem;
  font-weight: 600;
  color: #C81E2A;
  background: #FFE5E7;
  padding: 0.04rem 0.12rem;
  border-radius: 0.12rem;
  white-space: nowrap;
}

/* ==================== 列表行 ==================== */
.listrow {
  display: flex;
  background: #ffffff;
  border: 0.01rem solid #E5E7EB;
  border-radius: 0.36rem;
  padding: 0.24rem;
  gap: 0.24rem;
  box-shadow: 0 0.04rem 0.16rem rgba(28, 32, 45, 0.06);
}
.listrow__photo {
  width: 1.92rem;
  height: 1.92rem;
  flex-shrink: 0;
  border-radius: 0.28rem;
  background: #11141b;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.listrow__info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.08rem;
}
.listrow__name {
  font-size: 0.3rem;
  font-weight: 700;
  color: #1F2937;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.listrow__meta {
  font-size: 0.23rem;
  color: #9CA3AF;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.listrow__btm {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.12rem;
  margin-top: 0.04rem;
}
.listrow__price {
  color: #C81E2A;
  font-size: 0.38rem;
  font-weight: 800;
  letter-spacing: -0.005rem;
  flex-shrink: 0;
}
.listrow__id {
  font-size: 0.21rem;
  color: #9CA3AF;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

/* components/test-row/test-row.wxss */
/* 验机报告行：灰底卡内每行 = 状态圆标 + 项目 + 结果 */
.test {
  display: flex;
  align-items: center;
  gap: 0.2rem;
  padding: 0.26rem 0.3rem;
  border-bottom: 0.01rem solid #E5E7EB;
  font-size: 0.26rem;
}
.test--last {
  border-bottom: 0;
}
.test__ck {
  width: 0.44rem;
  height: 0.44rem;
  flex: 0 0 0.44rem;
  border-radius: 50%;
  background: #e7f7ee;
  color: #16a34a;
  font-size: 0.24rem;
  font-weight: 800;
  line-height: 0.44rem;
  text-align: center;
}
.test.warn .test__ck {
  background: #FFE5E7;
  color: #C81E2A;
}
.test.na .test__ck {
  background: #F5F6F8;
  color: #9CA3AF;
}
.test__k {
  font-size: 0.26rem;
  font-weight: 600;
  color: #4B5563;
  width: 1.3rem;
  flex-shrink: 0;
}
.test__v {
  flex: 1;
  min-width: 0;
  font-size: 0.26rem;
  color: #1F2937;
}
.test.warn .test__v {
  color: #C81E2A;
  font-weight: 600;
}
.test.na .test__v {
  color: #9CA3AF;
}

/* components/service-qr/service-qr.wxss */
/* 店主微信弹窗：视觉样式在 app.wxss（.qr-mask / .qr-dialog），此处仅占位 */

/* components/nav-bar/nav-bar.wxss */
/* 自定义导航栏（对齐原型 .nav：品牌红渐变 + 白色文字 + 半透明圆角按钮） */
:host {
  display: block;
}

.navbar {
  background: linear-gradient(120deg, #A31823, #C81E2A);
  box-sizing: border-box;
  width: 100%;
}

.navbar__row {
  display: flex;
  align-items: center;
  padding-left: 0.08rem;
  box-sizing: border-box;
}

/* 返回：半透明白块，尺寸按指尖下限放大到 0.68rem */
.navbar__back {
  width: 0.68rem;
  height: 0.68rem;
  flex-shrink: 0;
  border-radius: 0.2rem;
  background: rgba(255, 255, 255, 0.16);
  display: flex;
  align-items: center;
  justify-content: center;
}
.navbar__back--hover {
  background: rgba(255, 255, 255, 0.3);
}
.navbar__arrow {
  width: 0.16rem;
  height: 0.16rem;
  border-left: 0.04rem solid #ffffff;
  border-bottom: 0.04rem solid #ffffff;
  transform: rotate(45deg);
  margin-left: 0.06rem;
}

.navbar__title {
  flex: 1;
  min-width: 0;
  margin-left: 0.16rem;
  font-size: 0.34rem;
  font-weight: 800;
  letter-spacing: 0.01rem;
  color: #ffffff;
  line-height: 1.3;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

/* 右侧胶囊：红底上改用半透明白，避免白底粉字发灰 */
.navbar__right {
  flex-shrink: 0;
  margin-left: 0.16rem;
  font-size: 0.22rem;
  font-weight: 700;
  color: #ffffff;
  background: rgba(255, 255, 255, 0.16);
  padding: 0.12rem 0.2rem;
  border-radius: 0.2rem;
  line-height: 1;
}
.navbar__right--hover {
  background: rgba(255, 255, 255, 0.3);
}

/* pages/home/home.wxss */
/* 首页样式（对齐原型 index.html）
 * 换算：原型 390px 设计稿 ×2 → rpx
 */
.content {
  padding: 0 0 calc(1.5rem + env(safe-area-inset-bottom));
  background: #F5F6F8;
}

/* ==================== hero ==================== */
.hero {
  position: relative;
  margin: 0.24rem 0.32rem 0;
  padding: 0.44rem 0.4rem 0.4rem;
  border-radius: 0.48rem;
  background: radial-gradient(120% 130% at 85% -10%, #E2535C 0%, #C81E2A 42%, #A31823 100%);
  color: #ffffff;
  overflow: hidden;
  box-shadow: 0 0.28rem 0.8rem rgba(200, 30, 42, 0.18);
}
.hero__blob {
  position: absolute;
  border-radius: 50%;
  opacity: 0.25;
}
.hero__blob--1 {
  width: 3.2rem;
  height: 3.2rem;
  right: -0.8rem;
  top: -1rem;
  background: #ff8a93;
}
.hero__blob--2 {
  width: 1.8rem;
  height: 1.8rem;
  right: 0.6rem;
  bottom: -0.6rem;
  background: #ffd0b0;
}
/* 手机线稿：纯 CSS，避免额外图片依赖 */
.hero__art {
  position: absolute;
  right: 0.28rem;
  bottom: 0;
  width: 1.84rem;
  height: 2.36rem;
  border: 0.04rem solid rgba(255, 255, 255, 0.55);
  border-radius: 0.34rem;
  background: rgba(255, 255, 255, 0.14);
  opacity: 0.9;
}
.hero__art-screen {
  position: absolute;
  left: 0.16rem;
  right: 0.16rem;
  top: 0.4rem;
  bottom: 0.24rem;
  border-radius: 0.14rem;
  background: rgba(255, 255, 255, 0.22);
}
.hero__art::after {
  content: '';
  position: absolute;
  top: 0.16rem;
  left: 50%;
  margin-left: -0.2rem;
  width: 0.4rem;
  height: 0.08rem;
  border-radius: 0.04rem;
  background: rgba(255, 255, 255, 0.75);
}
.hero__en {
  position: relative;
  font-size: 0.22rem;
  letter-spacing: 0.06rem;
  font-weight: 600;
  opacity: 0.8;
  margin-bottom: 0.16rem;
}
.hero__title {
  position: relative;
  font-size: 0.48rem;
  font-weight: 800;
  line-height: 1.25;
  max-width: 4.3rem;
}
.hero__br {
  display: block;
  height: 0;
}
.hero__sub {
  position: relative;
  font-size: 0.25rem;
  opacity: 0.92;
  margin-top: 0.14rem;
}
.hero__search {
  position: relative;
  margin-top: 0.32rem;
  display: flex;
  align-items: center;
  gap: 0.14rem;
  background: #ffffff;
  border-radius: 0.28rem;
  padding: 0.22rem 0.26rem;
  box-shadow: 0 0.12rem 0.36rem rgba(0, 0, 0, 0.12);
}
.hero__search--hover {
  opacity: 0.92;
}
/* 放大镜：圆 + 手柄 */
.hero__search-ico {
  position: relative;
  width: 0.26rem;
  height: 0.26rem;
  border: 0.04rem solid #C81E2A;
  border-radius: 50%;
  flex-shrink: 0;
  margin-left: 0.04rem;
}
.hero__search-ico::after {
  content: '';
  position: absolute;
  right: -0.12rem;
  bottom: -0.08rem;
  width: 0.14rem;
  height: 0.04rem;
  background: #C81E2A;
  transform: rotate(45deg);
  border-radius: 0.02rem;
}
.hero__search-ph {
  flex: 1;
  min-width: 0;
  font-size: 0.25rem;
  color: #9CA3AF;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.hero__search-go {
  flex-shrink: 0;
  font-size: 0.25rem;
  font-weight: 700;
  color: #C81E2A;
}

/* ==================== 章节标题 ==================== */
.sec-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding: 0.36rem 0.32rem 0;
}
.sec-head__t {
  display: flex;
  align-items: center;
  font-size: 0.36rem;
  font-weight: 800;
  color: #1F2937;
}
.sec-head__bar {
  width: 0.1rem;
  height: 0.34rem;
  border-radius: 0.06rem;
  background: #C81E2A;
  margin-right: 0.16rem;
}
.sec-head__more {
  font-size: 0.24rem;
  font-weight: 600;
  color: #C81E2A;
}

/* ==================== 品牌九宫格 ==================== */
.cats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.2rem;
  padding: 0.24rem 0.32rem 0;
}
.cat {
  background: #ffffff;
  border: 0.01rem solid #E5E7EB;
  border-radius: 0.32rem;
  padding: 0.28rem 0.12rem 0.24rem;
  text-align: center;
  box-shadow: 0 0.04rem 0.16rem rgba(28, 32, 45, 0.06);
}
.cat--hover {
  opacity: 0.86;
}
.cat__ico {
  width: 0.76rem;
  height: 0.76rem;
  border-radius: 0.22rem;
  margin: 0 auto 0.14rem;
  color: #ffffff;
  font-size: 0.26rem;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  letter-spacing: -0.01rem;
}
.cat__name {
  font-size: 0.25rem;
  font-weight: 600;
  color: #4B5563;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.cat__count {
  font-size: 0.2rem;
  color: #9CA3AF;
  margin-top: 0.02rem;
}

/* ==================== 信任条 ==================== */
.trust {
  margin: 0.28rem 0.32rem 0;
  background: linear-gradient(180deg, #ffffff, #FFE5E7);
  border: 0.01rem solid #FFD0D4;
  border-radius: 0.36rem;
  padding: 0.28rem 0.16rem;
  display: flex;
  justify-content: space-around;
}
.trust__item {
  flex: 1;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.trust__badge {
  width: 0.68rem;
  height: 0.68rem;
  border-radius: 50%;
  background: #FFE5E7;
  color: #C81E2A;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.3rem;
  font-weight: 800;
  margin-bottom: 0.12rem;
}
.trust__lb {
  display: block;
  font-size: 0.23rem;
  font-weight: 600;
  color: #4B5563;
}
.trust__ds {
  display: block;
  font-size: 0.19rem;
  color: #9CA3AF;
  margin-top: 0.02rem;
}

/* ==================== 最新上架横滑 ==================== */
.latest-track {
  width: 100%;
  box-sizing: border-box;
  white-space: nowrap;
}
.latest-track__row {
  white-space: nowrap;
  padding: 0.24rem 0.32rem 0.08rem;
}
.latest-cell {
  display: inline-block;
  width: 3.04rem;
  margin-right: 0.24rem;
  vertical-align: top;
  white-space: normal;
}
.latest-cell:last-child {
  margin-right: 0;
}

/* ==================== 店主推荐两列 ==================== */
.reco-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.24rem;
  padding: 0.24rem 0.32rem 0.16rem;
}

.empty {
  text-align: center;
  color: #9CA3AF;
  font-size: 0.25rem;
  padding: 0.6rem 0;
}

/* pages/catalog/catalog.wxss */
/* 分类页样式（V4.6）：筛选栏与下拉面板视觉在 app.wxss，此处为页面级布局 */
/* 自定义 tabBar 占位：底部留出导航高度，避免最后一项被遮住 */
.content {
  padding: 0.24rem 0.32rem;
  padding-bottom: calc(1.5rem + env(safe-area-inset-bottom));
}

.catalog-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.24rem;
  margin-top: 0.08rem;
}
.catalog-grid > view {
  width: calc(50% - 0.12rem);
}

.catalog-search {
  margin: 0.2rem 0 0.24rem;
}

/* ---------- 价格区间面板（自定义输入） ---------- */
.filter-panel--price {
  left: 0.16rem;
  right: 0.16rem;
  width: auto;
  padding: 0.22rem 0.22rem 0.18rem;
}
.price-form__row {
  display: flex;
  align-items: center;
  gap: 0.12rem;
}
.price-form__input {
  flex: 1;
  min-width: 0;
  height: 0.78rem;
  line-height: 0.78rem;
  padding: 0 0.2rem;
  font-size: 0.26rem;
  color: #1F2937;
  background: #F5F6F8;
  border: 0.01rem solid #E5E7EB;
  border-radius: 0.16rem;
  box-sizing: border-box;
  text-align: center;
}
.price-form__sep {
  color: #9CA3AF;
  font-size: 0.24rem;
  flex-shrink: 0;
}
.price-ph {
  color: #9CA3AF;
  font-size: 0.24rem;
}
.price-form__hint {
  font-size: 0.2rem;
  color: #9CA3AF;
  margin: 0.14rem 0.04rem 0;
}
.price-form__err {
  font-size: 0.2rem;
  color: #C81E2A;
  margin: 0.14rem 0.04rem 0;
}
.price-form__btns {
  display: flex;
  gap: 0.14rem;
  margin-top: 0.18rem;
}
.price-form__btn {
  flex: 1;
  height: 0.72rem;
  line-height: 0.72rem;
  text-align: center;
  border-radius: 0.16rem;
  font-size: 0.26rem;
  font-weight: 650;
}
.price-form__btn--ghost {
  background: #F5F6F8;
  color: #4B5563;
}
.price-form__btn--primary {
  background: #C81E2A;
  color: #ffffff;
  /* 同时是 <button>：抹掉默认边框与内边距 */
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: 650;
}
.price-form__btn--primary::after {
  border: 0;
}

/* 已应用筛选提示 */
.catalog-count__hint {
  color: #C81E2A;
  font-weight: 650;
}

/* 价格面板的「确定」是 form submit 按钮，需要抹掉 button 默认样式 */
button.price-form__btn {
  margin: 0;
  padding: 0;
  border: 0;
  line-height: 0.72rem;
  font-size: 0.26rem;
  font-weight: 650;
  border-radius: 0.16rem;
  background: #C81E2A;
  color: #ffffff;
}
button.price-form__btn::after {
  border: 0;
}

/* pages/product/product.wxss */
/* 商品详情页（对齐原型：轮播 + 上浮卡片 + 验机卡 + 底部双按钮） */
.page {
  background: #F5F6F8;
  padding-bottom: calc(1.6rem + env(safe-area-inset-bottom));
}

/* ---------- 轮播 ---------- */
.swiper {
  position: relative;
  height: 6rem;
  background: #11141b;
  overflow: hidden;
}
.swiper__box {
  width: 100%;
  height: 6rem;
}
.swiper__img {
  width: 100%;
  height: 100%;
  display: block;
}
.swiper__empty {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(145deg, #d8b7bd, #76535d);
}
.swiper__hint {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0.78rem;
  text-align: center;
  font-size: 0.22rem;
  color: rgba(255, 255, 255, 0.7);
}
/* 计数角标 */
.swiper__count {
  position: absolute;
  top: 0.22rem;
  right: 0.24rem;
  padding: 0.06rem 0.18rem;
  border-radius: 0.2rem;
  background: rgba(0, 0, 0, 0.55);
  color: #ffffff;
  font-size: 0.22rem;
  line-height: 1.4;
}
/* 指示点 */
.swiper__dots {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0.76rem;
  display: flex;
  justify-content: center;
  gap: 0.1rem;
}
.swiper__dot {
  width: 0.12rem;
  height: 0.12rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.5);
  transition: all 0.2s;
}
.swiper__dot.on {
  width: 0.34rem;
  border-radius: 0.08rem;
  background: #ffffff;
}

/* ---------- 主卡片：上浮压住轮播底边 ---------- */
.dcard {
  position: relative;
  z-index: 2;
  margin-top: -0.4rem;
  background: #ffffff;
  border-radius: 0.44rem 0.44rem 0 0;
  padding: 0.32rem 0.32rem 0.4rem;
}
.dbrand {
  display: inline-block;
  padding: 0.06rem 0.18rem;
  border-radius: 0.14rem;
  font-size: 0.22rem;
  font-weight: 700;
  color: #ffffff;
  line-height: 1.4;
}
.dname {
  font-size: 0.44rem;
  font-weight: 800;
  color: #1F2937;
  line-height: 1.3;
  margin-top: 0.16rem;
}
.dspec {
  font-size: 0.24rem;
  color: #9CA3AF;
  margin-top: 0.1rem;
}

/* 价格：大号红字 + 批发标签 */
.dprice {
  display: flex;
  align-items: baseline;
  gap: 0.16rem;
  margin-top: 0.24rem;
  flex-wrap: wrap;
}
.dprice__big {
  font-size: 0.6rem;
  font-weight: 800;
  color: #C81E2A;
  letter-spacing: -0.01rem;
  line-height: 1.1;
}
.dprice__tag {
  font-size: 0.22rem;
  font-weight: 600;
  color: #C81E2A;
  background: #FFE5E7;
  padding: 0.06rem 0.16rem;
  border-radius: 0.14rem;
}

/* 属性 chips */
.dchips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.14rem;
  margin-top: 0.26rem;
}
.dchip {
  font-size: 0.23rem;
  font-weight: 600;
  color: #4B5563;
  background: #F5F6F8;
  padding: 0.1rem 0.2rem;
  border-radius: 0.18rem;
  line-height: 1.3;
}

/* 章节标题与详情页边距对齐 */
.dcard .sec-title {
  margin: 0.44rem 0 0.22rem;
}

/* 基础信息：2 列浅底块 */
.dcard .kv {
  margin: 0 -0.09rem;
}

/* 验机报告：整块灰底卡 */
.insp {
  background: #F5F6F8;
  border: 0.01rem solid #E5E7EB;
  border-radius: 0.28rem;
  overflow: hidden;
}

/* 瑕疵说明 */
.flaw {
  margin-top: 0.24rem;
  padding: 0.24rem 0.28rem;
  background: #FFE5E7;
  border-radius: 0.26rem;
}
.flaw__k {
  display: block;
  font-size: 0.22rem;
  font-weight: 700;
  color: #A31823;
  margin-bottom: 0.08rem;
}
.flaw__v {
  display: block;
  font-size: 0.24rem;
  color: #A31823;
  line-height: 1.65;
}

/* ---------- 底部固定操作栏 ---------- */
.cta {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 30;
  display: flex;
  gap: 0.2rem;
  padding: 0.2rem 0.32rem calc(0.2rem + env(safe-area-inset-bottom));
  background: #ffffff;
  border-top: 0.01rem solid #E5E7EB;
}
.cta__kf {
  flex: 1;
  margin: 0;
  padding: 0.26rem 0;
  border-radius: 0.24rem;
  background: #FFE5E7;
  color: #C81E2A;
  font-size: 0.3rem;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
}
.cta__kf:active {
  background: #FFD0D4;
}
.cta__buy {
  flex: 1;
  margin: 0;
  padding: 0.26rem 0;
  border-radius: 0.24rem;
  background: #C81E2A;
  color: #ffffff;
  font-size: 0.3rem;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  box-shadow: 0 0.08rem 0.2rem rgba(200, 30, 42, 0.3);
}
.cta__buy:active {
  opacity: 0.9;
}

/* pages/me/me.wxss */
/* 我的页面样式（对齐原型 .profile / .menu / .me-btn） */
.content {
  padding: 0.32rem;
  padding-bottom: calc(1.5rem + env(safe-area-inset-bottom));
  background: #F5F6F8;
}

/* 身份卡：品牌红渐变 + 圆形头像 + 右侧徽章 */
.profile {
  background: linear-gradient(120deg, #A31823, #C81E2A);
  padding: 0.36rem;
  border-radius: 0.44rem;
  display: flex;
  gap: 0.28rem;
  align-items: center;
  color: #ffffff;
  box-shadow: 0 0.16rem 0.48rem rgba(28, 32, 45, 0.08);
}
.profile__info {
  flex: 1;
  min-width: 0;
}
.profile__name {
  font-size: 0.36rem;
  font-weight: 800;
  margin-bottom: 0.06rem;
}
/* 原型 .profile .pr：11.5px，半透明白 */
.profile__info .small {
  font-size: 0.23rem;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.9);
}
.avatar {
  width: 1.12rem;
  height: 1.12rem;
  background: rgba(255, 255, 255, 0.18);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.5rem;
  font-weight: 800;
  color: #ffffff;
  flex-shrink: 0;
}
/* 卡内徽章：半透明白底，不用全局 .badge 的实色 */
.profile .badge {
  background: rgba(255, 255, 255, 0.22);
  color: #ffffff;
  font-size: 0.2rem;
  font-weight: 700;
  padding: 0.08rem 0.18rem;
  border-radius: 9.99rem;
}
.profile .badge.off {
  background: rgba(255, 255, 255, 0.16);
}

.navrow__admin {
  color: #C81E2A;
  font-weight: 700;
}

/* 底部登录 / 退出按钮 */
.me-btn {
  margin-top: 0.34rem;
}

/* pages/service/service.wxss */
/* 关于与售后页样式 */
.content {
  padding: 0.3rem;
}

.card__title {
  font-size: 0.3rem;
  font-weight: 800;
}
.card__desc {
  font-size: 0.26rem;
  color: #C81E2A;
  font-weight: 600;
  margin-top: 0.16rem;
}


/* ===== 网页补齐：小程序原生能力（rpx 换算 / tabBar） ===== */
html{font-size:calc(100vw / 7.5);}
@media (min-width:768px){html{font-size:64px;}}      /* 桌面端最大按 480px 宽渲染 */
body{max-width:7.5rem;margin:0 auto;position:relative;min-height:100vh;padding-bottom:1.1rem;}
img{display:block;}
/* 小程序原生 tabBar 的等价实现（颜色取 app.json 配置） */
#tabbar{
  position:fixed;left:0;right:0;bottom:0;z-index:90;
  display:flex;background:#FFFFFF;border-top:1px solid rgba(0,0,0,.06);
  max-width:7.5rem;margin:0 auto;
  padding-bottom:env(safe-area-inset-bottom,0px);
}
#tabbar .tab{
  flex:1;height:1rem;display:flex;align-items:center;justify-content:center;
  font-size:0.24rem;color:#9CA3AF;
}
#tabbar .tab.on{color:#C81E2A;font-weight:600;}
/* swiper 用横向滚动模拟 */
.swiper__box{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;}
.swiper__box>*{flex:0 0 100%;scroll-snap-align:start;}
