/* 兑换商城样式 - 橙金修仙国风 */
* { margin: 0; padding: 0; box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
body {
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  background: #fff8f0;
  color: #5d4037;
  min-height: 100vh;
  padding-bottom: 80px;
}

/* ===== 顶部导航栏 ===== */
.mall-nav {
  position: sticky;
  top: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  height: 50px;
  padding: 0 12px;
  background: linear-gradient(135deg, #ff8c42, #ff6b35);
  color: #fff;
  box-shadow: 0 2px 8px rgba(255,107,53,0.25);
}
.mall-nav .back-btn {
  font-size: 24px;
  color: #fff;
  background: none;
  border: none;
  cursor: pointer;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: background 0.2s;
}
.mall-nav .back-btn:active { background: rgba(255,255,255,0.25); }
.mall-nav .nav-title {
  flex: 1;
  text-align: center;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 1px;
}
.mall-nav .nav-right {
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 18px;
}
.mall-nav .nav-icon-btn {
  position: relative;
  cursor: pointer;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.mall-nav .nav-icon-btn:active { opacity: 0.7; }
.mall-nav .badge-dot {
  position: absolute;
  top: 2px; right: 2px;
  width: 8px; height: 8px;
  background: #ff4757;
  border-radius: 50%;
  border: 1.5px solid #fff;
}

/* ===== 顶部橙色渐变 Hero（顶部栏 + 搜索 + Banner） ===== */
.mall-hero {
  position: relative;
  padding: 10px 14px 26px;
  color: #fff;
  overflow: hidden;
  background:
    radial-gradient(circle at 12% 10%, rgba(255,222,140,0.55) 0%, transparent 40%),
    radial-gradient(circle at 90% 34%, rgba(255,190,70,0.5) 0%, transparent 46%),
    linear-gradient(160deg, #ff9d3f 0%, #ff7a2f 46%, #ff5a1c 100%);
}
/* 漂浮金币装饰 */
.mall-hero::before {
  content: '🪙';
  position: absolute;
  top: 172px; left: -4px;
  font-size: 22px;
  opacity: 0.8;
  transform: rotate(-18deg);
  pointer-events: none;
}
.mall-hero::after {
  content: '🪙';
  position: absolute;
  top: 120px; left: 8px;
  font-size: 15px;
  opacity: 0.65;
  transform: rotate(14deg);
  pointer-events: none;
}

/* 顶部栏 */
.hero-nav {
  display: flex;
  align-items: center;
  height: 40px;
  position: relative;
  z-index: 2;
}
.hero-back {
  width: 34px; height: 34px;
  border: none;
  border-radius: 50%;
  background: rgba(255,255,255,0.22);
  color: #fff;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}
.hero-back:active { background: rgba(255,255,255,0.38); }
/* 返回键已移除，左侧保留等宽占位，使标题保持居中 */
.hero-back-spacer { width: 34px; height: 34px; flex: 0 0 auto; }
.hero-title {
  flex: 1;
  text-align: center;
  font-size: 18px;
  font-weight: 800;
  letter-spacing: 2px;
  text-shadow: 0 2px 6px rgba(180,60,0,0.35);
}
.hero-notif {
  position: relative;
  width: 34px; height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  cursor: pointer;
  border-radius: 50%;
  background: rgba(255,255,255,0.22);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}
.hero-notif:active { background: rgba(255,255,255,0.38); }
.hero-notif .badge-dot {
  position: absolute;
  top: 4px; right: 4px;
  width: 8px; height: 8px;
  background: #ff4757;
  border-radius: 50%;
  border: 1.5px solid #fff;
}

/* 搜索框（白色胶囊，放大镜在右侧） */
.hero-search {
  display: flex;
  align-items: center;
  height: 40px;
  margin-top: 10px;
  padding: 0 5px 0 16px;
  background: #fff;
  border-radius: 22px;
  box-shadow: 0 3px 10px rgba(200,80,10,0.18);
  position: relative;
  z-index: 2;
}
.hero-search input {
  flex: 1;
  min-width: 0;
  border: none;
  outline: none;
  font-size: 14px;
  color: #5d4037;
  background: transparent;
}
.hero-search input::placeholder { color: #c99a7d; }
.hero-search .search-icon {
  flex-shrink: 0;
  width: 30px; height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  color: #fff;
  border-radius: 50%;
  background: linear-gradient(135deg, #ffb347, #ff8c42);
  box-shadow: 0 2px 6px rgba(255,140,66,0.5);
}

/* ===== Banner 轮播 ===== */
.mall-banner {
  position: relative;
  margin-top: 8px;
  overflow: hidden;
  z-index: 1;
}
.banner-track {
  display: flex;
  transition: transform 0.4s ease;
}
.banner-slide {
  min-width: 100%;
  height: 176px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
  cursor: pointer;
}
.banner-text { z-index: 2; padding-left: 4px; }
.banner-title {
  font-size: 34px;
  font-weight: 900;
  letter-spacing: 3px;
  color: #fffbe8;
  margin-bottom: 16px;
  text-shadow: 0 2px 0 #e25700, 0 6px 14px rgba(180,60,0,0.45);
}
.banner-cta {
  display: inline-block;
  padding: 9px 28px;
  border-radius: 20px;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 2px;
  color: #b1480a;
  background: linear-gradient(180deg, #ffe07a, #ffb92e);
  box-shadow: 0 4px 12px rgba(210,110,0,0.4), inset 0 1px 0 rgba(255,255,255,0.7);
}
.banner-illus {
  width: 50%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 1;
}
.banner-illus img {
  width: 118%;
  height: 118%;
  object-fit: cover;
  -webkit-mask-image: radial-gradient(circle at 50% 50%, #000 52%, transparent 76%);
  mask-image: radial-gradient(circle at 50% 50%, #000 52%, transparent 76%);
}
.banner-emoji {
  font-size: 94px;
  filter: drop-shadow(0 6px 12px rgba(150,50,0,0.35));
}
.banner-dots {
  position: absolute;
  bottom: 16px;
  left: 20px;
  display: flex;
  gap: 6px;
  z-index: 3;
}
.banner-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: rgba(255,255,255,0.55);
  transition: all 0.3s;
}
.banner-dot.active {
  width: 18px;
  border-radius: 3px;
  background: #fff4d6;
}

/* ===== 四宫格功能入口（米黄容器 + 白色卡片 + 3D 图标） ===== */
.func-wrap {
  position: relative;
  z-index: 3;
  margin-top: -18px;
  padding: 16px 12px 8px;
  border-radius: 20px 20px 0 0;
  background: linear-gradient(180deg, #fff3df 0%, #fff9f0 100%);
}
.func-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}
.func-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 7px;
  padding: 12px 4px 10px;
  background: #fff;
  border-radius: 14px;
  text-align: center;
  box-shadow: 0 3px 10px rgba(210,120,40,0.12);
  cursor: pointer;
  transition: transform 0.15s;
}
.func-card:active { transform: scale(0.94); }
.func-card .func-icon {
  width: 46px;
  height: 46px;
  object-fit: contain;
  border-radius: 12px;
}
.func-card .func-label {
  font-size: 12px;
  font-weight: 600;
  color: #7a4a2b;
}

/* ===== 商品列表（双列卡片：橙色相框图区 + 胶囊价格标签） ===== */
.product-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  padding: 12px;
}
.product-card {
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 3px 12px rgba(210,120,40,0.12);
  cursor: pointer;
  transition: transform 0.2s;
}
.product-card:active { transform: scale(0.98); }
.product-card .img-wrap {
  position: relative;
  margin: 8px;
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border: 2px solid #ffc27a;
  border-radius: 10px;
  background: linear-gradient(180deg, #fff8ee, #fff);
}
.product-card .img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  background: #f5f5f7;
}
.product-card .soldout-badge {
  position: absolute;
  top: 8px; left: 8px;
  padding: 2px 8px;
  font-size: 11px;
  color: #fff;
  background: rgba(0,0,0,0.55);
  border-radius: 8px;
}
.product-card .lucky-badge {
  position: absolute;
  top: 8px; right: 8px;
  padding: 2px 8px;
  font-size: 11px;
  color: #fff;
  background: linear-gradient(90deg,#ff7a33,#ffb347);
  border-radius: 8px;
  font-weight: 600;
}
.product-card .info { padding: 2px 10px 12px; }
.product-card .name {
  font-size: 14px;
  font-weight: 600;
  color: #4a3528;
  line-height: 1.35;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.product-card .store {
  margin-top: 3px;
  font-size: 11px;
  color: #b59a86;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.product-card .price-row {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
}
.product-card .price-coin {
  font-size: 16px;
  font-weight: 800;
  color: #ff5e1f;
}
.product-card .price-pill {
  padding: 2px 9px;
  font-size: 11px;
  font-weight: 600;
  color: #fff;
  white-space: nowrap;
  border-radius: 10px;
  background: linear-gradient(135deg, #ff8c42, #ff5e1f);
}
/* 纯灵石价格：橙色（默认 price-coin） */
/* 纯灵米价格：绿色 */
.product-card .price-pill.price-only-points {
  background: linear-gradient(135deg, #52c41a, #389e0d);
}
/* 灵石+灵米组合：蓝紫色 */
.product-card .price-coin.price-mixed {
  color: #722ed1;
}
.product-card .price-pill.price-points-mix {
  background: linear-gradient(135deg, #9254de, #722ed1);
}
/* 赠送灵米标签：粉色 */
.product-card .gift-badge {
  display: inline-block;
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 600;
  color: #fff;
  background: linear-gradient(135deg, #ff85c0, #f759ab);
  border-radius: 10px;
  margin: 4px 0;
}
/* 价格文字（店主后台 / 订单页共用） */
.price-coin { color: #e67e22; font-weight: 700; font-size: 15px; }
.price-point { color: #b8860b; font-weight: 600; font-size: 12px; }

/* 下拉刷新 */
.pull-refresh {
  text-align: center;
  padding: 12px;
  color: #cc9977;
  font-size: 13px;
  transition: all 0.2s;
}
.pull-refresh.refreshing { color: #ff8c42; }
.load-more {
  text-align: center;
  padding: 16px;
  color: #cc9977;
  font-size: 13px;
}

/* ===== 商品详情页 ===== */
.detail-container {
  background: #fff8f0;
  min-height: 100vh;
}
.detail-swiper {
  width: 100%;
  aspect-ratio: 1;
  background: #fef5e7;
  position: relative;
  overflow: hidden;
}
.detail-swiper .swiper-track {
  display: flex;
  transition: transform 0.3s ease;
  height: 100%;
}
.detail-swiper .swiper-slide {
  min-width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.detail-swiper .swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  background: #f5f5f7;
}
.swiper-dots {
  position: absolute;
  bottom: 10px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 6px;
}
.swiper-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(255,255,255,0.5);
  transition: all 0.3s;
}
.swiper-dot.active {
  width: 18px;
  border-radius: 3px;
  background: #fff;
}
.detail-info-card {
  background: #fff;
  margin: 10px 12px;
  border-radius: 12px;
  padding: 16px;
  box-shadow: 0 2px 10px rgba(255,107,53,0.08);
}
.detail-name {
  font-size: 18px;
  font-weight: 700;
  color: #5d4037;
  line-height: 1.4;
}
.detail-price-row {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-top: 10px;
  flex-wrap: wrap;
}
.detail-price-coin {
  font-size: 22px;
  font-weight: 800;
  color: #e67e22;
}
.detail-price-point {
  font-size: 16px;
  font-weight: 700;
  color: #b8860b;
}
.detail-meta {
  display: flex;
  justify-content: space-between;
  margin-top: 12px;
  font-size: 13px;
  color: #cc9977;
}
.detail-store {
  background: #fff;
  margin: 10px 12px;
  border-radius: 12px;
  padding: 14px 16px;
  display: flex;
  align-items: center;
  gap: 10px;
  box-shadow: 0 2px 10px rgba(255,107,53,0.08);
}
.detail-store .store-icon {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: linear-gradient(135deg, #ff8c42, #ff6b35);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
}
.detail-store .store-name {
  font-size: 15px;
  font-weight: 600;
  color: #5d4037;
}
.detail-desc {
  background: #fff;
  margin: 10px 12px;
  border-radius: 12px;
  padding: 16px;
  font-size: 14px;
  line-height: 1.7;
  color: #6d4c3a;
  box-shadow: 0 2px 10px rgba(255,107,53,0.08);
}
.detail-desc img { max-width: 100%; border-radius: 8px; margin: 8px 0; }
.detail-desc h1, .detail-desc h2, .detail-desc h3 { color: #d4881a; margin: 12px 0 6px; }

/* ===== 底部固定按钮 ===== */
.bottom-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 12px 16px;
  background: #fff;
  box-shadow: 0 -2px 12px rgba(255,107,53,0.12);
  z-index: 100;
}
.btn-exchange {
  width: 100%;
  height: 48px;
  background: linear-gradient(135deg, #ff8c42, #ff6b35);
  color: #fff;
  border: none;
  border-radius: 24px;
  font-size: 17px;
  font-weight: 700;
  cursor: pointer;
  transition: transform 0.2s, opacity 0.2s;
  box-shadow: 0 4px 12px rgba(255,107,53,0.35);
}
.btn-exchange:active { transform: scale(0.98); }
.btn-exchange:disabled {
  background: #e0d5cc;
  color: #999;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

/* ===== 弹窗 ===== */
.modal-mask {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.5);
  z-index: 9999;
  align-items: center;
  justify-content: center;
  padding: 30px;
}
.modal-mask.show { display: flex; }
.modal-box {
  background: #fff;
  border-radius: 16px;
  width: 100%;
  max-width: 340px;
  overflow: hidden;
  animation: modalIn 0.25s ease;
}
@keyframes modalIn {
  from { transform: scale(0.9); opacity: 0; }
  to { transform: scale(1); opacity: 1; }
}
.modal-title {
  font-size: 17px;
  font-weight: 700;
  text-align: center;
  padding: 20px 16px 10px;
  color: #5d4037;
}
.modal-body {
  padding: 0 16px 20px;
}
.modal-body .confirm-tip {
  font-size: 15px;
  line-height: 1.65;
  color: #5d4037;
  text-align: center;
}
.modal-row {
  display: flex;
  justify-content: space-between;
  padding: 8px 0;
  font-size: 14px;
  border-bottom: 1px solid #fdf0e6;
}
.modal-row:last-child { border-bottom: none; }
.modal-row .label { color: #8b5a3c; }
.modal-row .val { font-weight: 600; }
.modal-actions {
  display: flex;
  border-top: 1px solid #fdf0e6;
}
.modal-btn {
  flex: 1;
  height: 48px;
  border: none;
  background: #fff;
  font-size: 16px;
  cursor: pointer;
  transition: background 0.2s;
}
.modal-btn:active { background: #fdf0e6; }
.modal-btn.cancel { color: #999; }
.modal-btn.confirm {
  color: #fff;
  background: linear-gradient(135deg, #ff8c42, #ff6b35);
  font-weight: 600;
}

/* ===== 满屏页面（抢购活动编辑等） ===== */
.modal-mask.fullscreen-page {
  display: none;
  padding: 0;
  background: #f7f8fa;
  align-items: stretch;
  justify-content: stretch;
}
.modal-mask.fullscreen-page.show { display: flex; }
.modal-mask.fullscreen-page .modal-box {
  max-width: none;
  width: 100%;
  height: 100%;
  border-radius: 0;
  display: flex;
  flex-direction: column;
  background: #f7f8fa;
  animation: none;
}
.fs-page-header {
  position: sticky;
  top: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  padding: 12px 16px;
  padding-top: calc(12px + constant(safe-area-inset-top));
  padding-top: calc(12px + env(safe-area-inset-top));
  background: #fff;
  border-bottom: 1px solid #f0f0f0;
  box-shadow: 0 1px 4px rgba(0,0,0,0.04);
}
.fs-page-back {
  background: none;
  border: none;
  font-size: 24px;
  color: #5d4037;
  cursor: pointer;
  margin-right: 12px;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
.fs-page-title {
  font-size: 17px;
  font-weight: 700;
  color: #5d4037;
  flex: 1;
  text-align: center;
  margin-right: 44px;
}
.fs-page-body {
  flex: 1;
  overflow-y: auto;
  padding: 16px;
  -webkit-overflow-scrolling: touch;
}
.fs-page-body .form-group { margin-bottom: 16px; }
.fs-page-footer {
  display: flex;
  gap: 12px;
  padding: 12px 16px;
  padding-bottom: calc(12px + constant(safe-area-inset-bottom));
  padding-bottom: calc(12px + env(safe-area-inset-bottom));
  background: #fff;
  border-top: 1px solid #f0f0f0;
}
.fs-page-footer .modal-btn {
  flex: 1;
  height: 44px;
  border-radius: 22px;
  font-size: 16px;
}
.fs-page-footer .modal-btn.cancel {
  background: #f5f5f5;
  color: #666;
}
.fs-page-footer .modal-btn.cancel:active { background: #ebebeb; }

/* ===== Toast ===== */
.toast {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: rgba(0,0,0,0.8);
  color: #fff;
  padding: 12px 24px;
  border-radius: 8px;
  font-size: 14px;
  z-index: 10000;
  max-width: 80%;
  text-align: center;
  animation: toastIn 0.2s ease;
}
@keyframes toastIn {
  from { opacity: 0; transform: translate(-50%, -40%); }
  to { opacity: 1; transform: translate(-50%, -50%); }
}

/* ===== 订单页 ===== */
.order-list { padding: 12px; }
.order-card {
  background: #fff;
  border-radius: 12px;
  margin-bottom: 10px;
  padding: 14px;
  box-shadow: 0 2px 10px rgba(255,107,53,0.08);
}
.order-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}
.order-store { font-size: 14px; font-weight: 600; color: #5d4037; }
.order-status {
  font-size: 12px;
  padding: 2px 8px;
  border-radius: 10px;
}
.order-status.pending { background: #fff3e0; color: #e67e22; }
.order-status.accepted { background: #e8f1ff; color: #2f7fd6; }
.order-status.shipped { background: #fff7e0; color: #c98a00; }
.order-status.completed { background: #e8f5e9; color: #27ae60; }
.order-status.cancelled { background: #f5f5f5; color: #999; }
.order-product {
  display: flex;
  gap: 12px;
  align-items: center;
}
.order-product img {
  width: 60px;
  height: 60px;
  border-radius: 8px;
  object-fit: cover;
  background: #fef5e7;
}
.order-product .p-info { flex: 1; }
.order-product .p-name { font-size: 14px; font-weight: 600; color: #5d4037; }
.order-product .p-price {
  margin-top: 6px;
  display: flex;
  gap: 10px;
  font-size: 13px;
}
.order-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 12px;
}
.order-btn {
  padding: 7px 16px;
  border-radius: 16px;
  border: 1px solid #e0d5cc;
  background: #fff;
  font-size: 13px;
  cursor: pointer;
  color: #8b5a3c;
}
.order-btn.primary {
  background: linear-gradient(135deg, #ff8c42, #ff6b35);
  color: #fff;
  border: none;
}
.order-btn:active { opacity: 0.8; }

.empty-state {
  text-align: center;
  padding: 60px 20px;
  color: #cc9977;
  font-size: 14px;
}
.empty-state .icon { font-size: 50px; margin-bottom: 12px; }

/* ===== 表单 ===== */
.form-card {
  background: #fff;
  margin: 12px;
  border-radius: 12px;
  padding: 16px;
  box-shadow: 0 2px 10px rgba(255,107,53,0.08);
}
.form-group { margin-bottom: 16px; }
.form-group label {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: #5d4037;
  margin-bottom: 8px;
}
.form-group input[type="text"],
.form-group input[type="number"],
.form-group textarea {
  width: 100%;
  border: 1px solid #ffe0cc;
  border-radius: 8px;
  padding: 10px 12px;
  font-size: 14px;
  outline: none;
  box-sizing: border-box;
  font-family: inherit;
  background: #fffcf8;
}
.form-group select {
  width: 100%;
  border: 1px solid #ffe0cc;
  border-radius: 8px;
  padding: 10px 12px;
  font-size: 14px;
  outline: none;
  box-sizing: border-box;
  font-family: inherit;
  background: #fffcf8;
  color: #5d4037;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus { border-color: #ff8c42; }
.form-group textarea { min-height: 100px; resize: vertical; }
.form-row { display: flex; gap: 12px; }
.form-row .form-group { flex: 1; }
.form-hint { font-size: 12px; color: #cc9977; margin-top: 4px; }
.form-readonly {
  background: #fdf0e6;
  color: #8b5a3c;
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 14px;
}

/* 图片上传 */
.image-uploader {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.image-uploader .img-item {
  position: relative;
  width: 80px;
  height: 80px;
  border-radius: 8px;
  overflow: hidden;
  background: #fef5e7;
}
.image-uploader .img-item img { width: 100%; height: 100%; object-fit: cover; }
.image-uploader .img-item .del {
  position: absolute;
  top: 2px; right: 2px;
  width: 18px; height: 18px;
  background: rgba(0,0,0,0.6);
  color: #fff;
  border-radius: 50%;
  font-size: 12px;
  line-height: 18px;
  text-align: center;
  cursor: pointer;
}
.image-uploader .add-btn {
  width: 80px; height: 80px;
  border: 2px dashed #ffb347;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  color: #ffb347;
  cursor: pointer;
  background: #fffcf8;
}

/* 富文本工具栏 */
.rich-toolbar {
  display: flex;
  gap: 6px;
  padding: 8px;
  border: 1px solid #ffe0cc;
  border-bottom: none;
  border-radius: 8px 8px 0 0;
  background: #fffcf8;
  flex-wrap: wrap;
}
.rich-toolbar button {
  padding: 4px 10px;
  border: 1px solid #ffe0cc;
  background: #fff;
  border-radius: 4px;
  cursor: pointer;
  font-size: 13px;
  color: #8b5a3c;
}
.rich-toolbar button:active { background: #fdf0e6; }
.rich-editor {
  border: 1px solid #ffe0cc;
  border-radius: 0 0 8px 8px;
  min-height: 150px;
  padding: 10px 12px;
  font-size: 14px;
  outline: none;
  line-height: 1.7;
  background: #fffcf8;
}
.rich-editor img { max-width: 100%; border-radius: 6px; margin: 6px 0; }

/* 状态标签 */
.audit-tag {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 10px;
  font-size: 12px;
}
.audit-tag.pending { background: #fff3e0; color: #e67e22; }
.audit-tag.approved { background: #e8f5e9; color: #27ae60; }
.audit-tag.rejected { background: #ffebee; color: #e74c3c; }
.audit-tag.off { background: #f5f5f5; color: #999; }

/* ===== Tab 切换 ===== */
.tab-bar {
  display: flex;
  background: #fff;
  border-bottom: 1px solid #fdf0e6;
  position: sticky;
  top: 50px;
  z-index: 50;
}
.tab-item {
  flex: 1;
  padding: 12px 0;
  text-align: center;
  font-size: 14px;
  color: #8b5a3c;
  cursor: pointer;
  border-bottom: 2px solid transparent;
}
.tab-item.active {
  color: #e67e22;
  font-weight: 600;
  border-bottom-color: #ff6b35;
}
.tab-content { display: none; }
.tab-content.active { display: block; }

/* ===== 管理后台表格 ===== */
.admin-table-wrap { padding: 12px; }
.admin-table {
  width: 100%;
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  font-size: 13px;
  border-collapse: collapse;
  box-shadow: 0 2px 10px rgba(255,107,53,0.08);
}
.admin-table th, .admin-table td {
  padding: 10px 8px;
  text-align: left;
  border-bottom: 1px solid #fdf0e6;
}
.admin-table th { background: #fff3e0; color: #8b5a3c; font-weight: 600; }
.admin-table tr:last-child td { border-bottom: none; }
.admin-table .goods-thumb {
  width: 44px; height: 44px;
  border-radius: 6px;
  object-fit: cover;
  background: #fef5e7;
}

/* 开关 */
.switch {
  position: relative;
  display: inline-block;
  width: 44px;
  height: 24px;
}
.switch input { opacity: 0; width: 0; height: 0; }
.switch .slider {
  position: absolute;
  cursor: pointer;
  inset: 0;
  background: #e0d5cc;
  border-radius: 24px;
  transition: 0.3s;
}
.switch .slider::before {
  content: "";
  position: absolute;
  height: 18px; width: 18px;
  left: 3px; bottom: 3px;
  background: #fff;
  border-radius: 50%;
  transition: 0.3s;
}
.switch input:checked + .slider { background: #ff6b35; }
.switch input:checked + .slider::before { transform: translateX(20px); }

/* 小按钮 */
.mini-btn {
  padding: 4px 10px;
  border-radius: 12px;
  border: 1px solid #e0d5cc;
  background: #fff;
  font-size: 12px;
  cursor: pointer;
  color: #8b5a3c;
  margin: 2px;
}
.mini-btn.primary { background: #ff6b35; color: #fff; border-color: #ff6b35; }
.mini-btn.danger { background: #e74c3c; color: #fff; border-color: #e74c3c; }
.mini-btn.warn { background: #f5a623; color: #fff; border-color: #f5a623; }
.mini-btn:active { opacity: 0.8; }

/* 驳回原因输入 */
.reject-input {
  width: 100%;
  border: 1px solid #ffe0cc;
  border-radius: 6px;
  padding: 6px 8px;
  font-size: 13px;
  margin: 4px 0;
  box-sizing: border-box;
  background: #fffcf8;
}

/* 店主后台头部 */
.store-header {
  background: linear-gradient(135deg, #ff8c42, #ff6b35);
  color: #fff;
  padding: 16px;
  box-shadow: 0 4px 12px rgba(255,107,53,0.25);
}
.store-header .store-name { font-size: 18px; font-weight: 700; }
.store-header .settlement {
  display: flex;
  gap: 20px;
  margin-top: 10px;
  font-size: 13px;
}
.store-header .settlement .val { font-size: 18px; font-weight: 700; }

/* 无权限提示 */
.no-permission {
  text-align: center;
  padding: 80px 20px;
  color: #cc9977;
}
.no-permission .icon { font-size: 60px; margin-bottom: 16px; }

/* 驳回原因展示 */
.reject-reason {
  background: #fff5f5;
  border: 1px solid #ffcdd2;
  border-radius: 8px;
  padding: 10px;
  margin: 8px 0;
  font-size: 13px;
  color: #c62828;
}

/* ============================================================
   店主后台 · 商品发布
   暖米白 + 橙金配色 · 圆角卡片 · 简约修仙风格（仅作用于 .store-page）
   ============================================================ */
body.store-page {
  background: #fdf6ec;
  color: #4a3528;
  padding-bottom: 104px;
}

/* 浅色导航：返回箭头 / 标题 */
body.store-page .mall-nav.nav-cream {
  background: linear-gradient(135deg, #fffaf0, #fdeed6);
  color: #5a3a1e;
  border-bottom: 1px solid #f4e3c7;
  box-shadow: 0 2px 10px rgba(206,150,60,0.14);
}
body.store-page .mall-nav.nav-cream .back-btn { color: #ff7a2f; }
body.store-page .mall-nav.nav-cream .nav-title {
  color: #5a3a1e;
  letter-spacing: 2px;
}

/* 门店信息卡（所属门店自动读取，不可修改） */
body.store-page .store-header {
  background: linear-gradient(135deg, #fff6e6, #ffeccb);
  color: #6a4626;
  padding: 14px 16px 12px;
  border-bottom: 1px solid #f3e2c6;
  box-shadow: none;
}
body.store-page .store-header .store-name {
  font-size: 16px;
  font-weight: 800;
  display: flex;
  align-items: center;
  gap: 6px;
}
body.store-page .store-header .store-name::before {
  content: '🏪';
  font-size: 15px;
}
body.store-page .store-header .settlement {
  display: flex;
  gap: 8px;
  margin-top: 10px;
  font-size: 11px;
  color: #9a7a55;
}
body.store-page .store-header .settlement > div {
  flex: 1;
  text-align: center;
}
body.store-page .store-header .settlement .val {
  font-size: 16px;
  font-weight: 800;
  color: #d9741f;
  margin-top: 2px;
}

/* Tab：米白分段控件 */
body.store-page .tab-bar {
  position: sticky;
  top: 50px;
  z-index: 50;
  display: flex;
  gap: 8px;
  padding: 10px 12px 0;
  background: #fdf6ec;
  border-bottom: none;
}
body.store-page .tab-item {
  flex: 1;
  padding: 9px 0;
  font-size: 13px;
  color: #9a7a55;
  background: #fffaf0;
  border: 1px solid #f0e0c4;
  border-radius: 12px;
  transition: all 0.2s;
}
body.store-page .tab-item.active {
  color: #fff;
  font-weight: 700;
  border-color: transparent;
  background: linear-gradient(135deg, #ff9a3c, #ff6b1f);
  box-shadow: 0 4px 12px rgba(255,120,40,0.32);
}

/* 表单卡片 */
body.store-page .form-card {
  margin: 14px 12px;
  padding: 18px 16px;
  background: #fffdf8;
  border: 1px solid #f5e7cd;
  border-radius: 18px;
  box-shadow: 0 4px 16px rgba(200,150,70,0.1);
}
body.store-page .form-card .card-title {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 16px;
  font-size: 15px;
  font-weight: 800;
  color: #5a3a1e;
}
body.store-page .form-card .card-title::before {
  content: '';
  width: 4px;
  height: 15px;
  border-radius: 2px;
  background: linear-gradient(180deg, #ffb347, #ff6b1f);
}
body.store-page .form-group { margin-bottom: 18px; }
body.store-page .form-card .form-group:last-child,
body.store-page .form-card .form-row:last-child { margin-bottom: 0; }
body.store-page .form-group label {
  margin-bottom: 8px;
  font-size: 13px;
  font-weight: 700;
  color: #7a5836;
}
body.store-page .form-group label .req {
  margin-left: 2px;
  font-style: normal;
  color: #ff6b1f;
}
body.store-page .form-group input[type="text"],
body.store-page .form-group input[type="number"],
body.store-page .form-group textarea {
  padding: 11px 14px;
  font-size: 14px;
  color: #4a3528;
  background: #fffdf8;
  border: 1px solid #ecdcbf;
  border-radius: 12px;
  transition: border-color 0.2s, box-shadow 0.2s;
}
body.store-page .form-group input:focus,
body.store-page .form-group textarea:focus {
  border-color: #ff9a3c;
  box-shadow: 0 0 0 3px rgba(255,154,60,0.14);
}

/* 商品图片上传组件 */
body.store-page .image-uploader { gap: 10px; }
body.store-page .image-uploader .img-item {
  width: 84px;
  height: 84px;
  border: 1px solid #f0e0c4;
  border-radius: 12px;
}
body.store-page .image-uploader .add-btn {
  width: 84px;
  height: 84px;
  font-size: 30px;
  color: #ff8c42;
  background: #fff7ea;
  border: 2px dashed #ffbe7a;
  border-radius: 12px;
}
body.store-page .upload-hint {
  margin-top: 8px;
  font-size: 11px;
  color: #b39a7d;
}

/* 富文本编辑器 */
body.store-page .rich-toolbar {
  gap: 6px;
  padding: 8px;
  background: #fff7ea;
  border: 1px solid #ecdcbf;
  border-bottom: none;
  border-radius: 12px 12px 0 0;
}
body.store-page .rich-toolbar button {
  color: #7a5836;
  background: #fffdf8;
  border: 1px solid #f0e0c4;
  border-radius: 8px;
}
body.store-page .rich-editor {
  min-height: 160px;
  color: #4a3528;
  background: #fffdf8;
  border: 1px solid #ecdcbf;
  border-radius: 0 0 12px 12px;
}

/* 底部橙色提交按钮 */
body.store-page .bottom-bar {
  padding: 10px 16px 16px;
  background: linear-gradient(180deg, rgba(253,246,236,0), #fdf6ec 42%);
  box-shadow: none;
}
body.store-page .bottom-bar .btn-exchange {
  height: 50px;
  font-size: 17px;
  letter-spacing: 2px;
  border-radius: 26px;
  background: linear-gradient(135deg, #ff9a3c, #ff6b1f);
  box-shadow: 0 8px 20px rgba(255,110,30,0.34);
}

/* ============================================================
   兑换订单列表页 · 橙金修仙国风（仅作用于 .orders-page）
   ============================================================ */
body.orders-page { background: #fff8f0; }

/* 订单 / 商品 筛选 Tab 分类（全局：用户端与店主端共用，横排一行） */
.order-tabs {
  position: sticky;
  top: 50px;
  z-index: 90;
  display: flex;
  gap: 6px;
  padding: 10px 12px;
  background: #fffdf8;
  box-shadow: 0 2px 10px rgba(255,107,53,0.07);
  overflow-x: auto;
}
.order-tab {
  flex: 1 1 0;
  min-width: 0;
  text-align: center;
  padding: 8px 2px;
  font-size: 13px;
  color: #b08968;
  background: #fff7ea;
  border: 1px solid #f5e3c8;
  border-radius: 18px;
  white-space: nowrap;
  cursor: pointer;
  transition: all 0.2s;
}
.order-tab.active {
  color: #fff;
  font-weight: 700;
  border-color: transparent;
  background: linear-gradient(135deg, #ff9a3c, #ff6b35);
  box-shadow: 0 4px 12px rgba(255,107,53,0.32);
}

body.orders-page .order-list { padding: 12px; }
body.orders-page .order-card {
  position: relative;
  padding: 14px;
  margin-bottom: 12px;
  background: #fff;
  border: 1px solid #f7e8d5;
  border-radius: 16px;
  box-shadow: 0 4px 14px rgba(255,107,53,0.08);
  cursor: pointer;
  transition: transform 0.15s;
}
body.orders-page .order-card:active { transform: scale(0.994); }
body.orders-page .order-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 1px dashed #ffe6ce;
}
body.orders-page .order-store {
  font-size: 13px;
  font-weight: 600;
  color: #8b5a3c;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 68%;
}
body.orders-page .order-status {
  font-size: 12px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 10px;
  flex-shrink: 0;
}
body.orders-page .order-status.pending {
  color: #ff6b35;
  background: linear-gradient(135deg, #fff3e0, #ffe6cc);
}
body.orders-page .order-status.completed { color: #27ae60; background: #e8f5e9; }
body.orders-page .order-status.cancelled { color: #999; background: #f2f2f2; }

body.orders-page .order-product { display: flex; gap: 12px; align-items: flex-start; }
body.orders-page .order-product img {
  width: 66px;
  height: 66px;
  flex-shrink: 0;
  border-radius: 12px;
  object-fit: cover;
  background: #fef5e7;
}
body.orders-page .order-product .p-info { flex: 1; min-width: 0; }
body.orders-page .order-product .p-name {
  font-size: 15px;
  font-weight: 700;
  color: #5d4037;
  margin-bottom: 8px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
body.orders-page .order-cost { font-size: 13px; color: #8b5a3c; }
body.orders-page .cost-coin { color: #ff6b35; font-weight: 800; }
body.orders-page .cost-point { color: #b8860b; font-weight: 800; }
body.orders-page .order-time { margin-top: 6px; font-size: 11px; color: #bbaa99; }

body.orders-page .order-actions { display: flex; justify-content: flex-end; margin-top: 12px; }
body.orders-page .order-btn {
  padding: 8px 20px;
  border: 1px solid #e0d5cc;
  border-radius: 20px;
  background: #fff;
  font-size: 13px;
  color: #8b5a3c;
  cursor: pointer;
  transition: opacity 0.2s;
}
body.orders-page .order-btn.primary {
  border: none;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(135deg, #ff9a3c, #ff6b35);
  box-shadow: 0 4px 12px rgba(255,107,53,0.34);
}
body.orders-page .order-btn.primary:active { opacity: 0.85; }

/* 订单详情弹窗 */
body.orders-page .order-detail-box .modal-body { max-height: 62vh; overflow-y: auto; }
body.orders-page .detail-product {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid #fdf0e6;
}
body.orders-page .detail-product img {
  width: 68px;
  height: 68px;
  flex-shrink: 0;
  border-radius: 12px;
  object-fit: cover;
  background: #fef5e7;
}
body.orders-page .detail-pinfo { flex: 1; min-width: 0; }
body.orders-page .detail-name {
  font-size: 15px;
  font-weight: 700;
  color: #5d4037;
  margin-bottom: 8px;
}
body.orders-page .detail-cost { font-size: 13px; color: #8b5a3c; }
body.orders-page .detail-oid {
  font-size: 12px;
  color: #999;
  max-width: 60%;
  word-break: break-all;
  text-align: right;
}
body.orders-page .modal-row .order-status { display: inline-block; }

/* 用户端：状态相关补充（物流 / 自动确认 / 拒单原因 / 次要按钮） */
body.orders-page .order-btn.ghost {
  color: #c0703a;
  border-color: #ffcf9e;
  background: #fff;
}
body.orders-page .order-express {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px dashed #ffe6ce;
  font-size: 12px;
  color: #8b5a3c;
  word-break: break-all;
}
body.orders-page .order-auto-tip {
  margin-top: 6px;
  font-size: 11px;
  color: #bbaa99;
}
body.orders-page .order-reject {
  margin-top: 8px;
  padding: 8px 10px;
  font-size: 12px;
  line-height: 1.5;
  color: #c0703a;
  background: #fff7ec;
  border-radius: 8px;
  word-break: break-all;
}
body.orders-page .order-status.accepted {
  color: #2f7fd6;
  background: linear-gradient(135deg, #e8f1ff, #dbe9ff);
}
body.orders-page .order-status.shipped {
  color: #c98a00;
  background: linear-gradient(135deg, #fff7e0, #ffeec2);
}
body.orders-page .detail-cancel-btn { color: #ff6b35; }

/* ===== 兑换数量加减 / 支付密码输入（商品详情页） ===== */
.qty-stepper {
  display: inline-flex;
  align-items: center;
  gap: 12px;
}
.qty-btn {
  width: 30px;
  height: 30px;
  border: 1px solid #ffcfa8;
  border-radius: 50%;
  background: #fff7ea;
  color: #ff6b35;
  font-size: 18px;
  line-height: 1;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.qty-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
  color: #c9b6a4;
  border-color: #e8dccd;
}
.qty-num {
  min-width: 32px;
  text-align: center;
  font-size: 16px;
  font-weight: 800;
  color: #5d4037;
}
.modal-input {
  width: 150px;
  height: 34px;
  padding: 0 12px;
  border: 1px solid #f0d9c2;
  border-radius: 17px;
  background: #fffdf8;
  font-size: 14px;
  color: #5d4037;
  text-align: right;
  outline: none;
}
.modal-input:focus { border-color: #ff9a3c; background: #fff; }
.detail-limit { color: #b8860b; font-weight: 700; }
.detail-gift {
  color: #f759ab;
  font-weight: 700;
  background: #fff0f6;
  padding: 2px 8px;
  border-radius: 10px;
  font-size: 12px;
}
/* 店主后台商品列表赠送标签 */
body.store-page .gift-tag {
  display: inline-block;
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 600;
  color: #fff;
  background: linear-gradient(135deg, #ff85c0, #f759ab);
  border-radius: 10px;
  margin-left: 6px;
}

/* ============================================================
   店主后台 · 二级 Tab / 我的商品 / 我的订单管理（仅作用于 .store-page）
   ============================================================ */
/* 二级筛选 Tab（非吸顶、透明底，横排一行） */
body.store-page .order-tabs.sub-tabs {
  position: static;
  gap: 6px;
  padding: 10px 12px 4px;
  background: transparent;
  box-shadow: none;
  overflow-x: auto;
}
body.store-page .order-tabs.sub-tabs .order-tab {
  background: #fff7ea;
  font-size: 13px;
}

/* 下拉刷新（默认收起） */
body.store-page .pull-refresh {
  padding: 0;
  height: 0;
  overflow: hidden;
  line-height: 44px;
  transition: height 0.2s;
}
body.store-page .pull-refresh.refreshing { color: #ff8c42; }

/* 我的商品 · 商品卡片 */
body.store-page .goods-card {
  display: flex;
  gap: 12px;
  padding: 14px;
  margin-bottom: 12px;
  background: #fff;
  border: 1px solid #f7e8d5;
  border-radius: 16px;
  box-shadow: 0 4px 14px rgba(255,107,53,0.08);
}
body.store-page .goods-thumb {
  width: 84px;
  height: 84px;
  flex-shrink: 0;
  border-radius: 12px;
  overflow: hidden;
  background: #fef5e7;
}
body.store-page .goods-thumb img { width: 100%; height: 100%; object-fit: cover; background: #fef5e7; }
body.store-page .goods-main { flex: 1; min-width: 0; }
body.store-page .goods-name {
  font-size: 15px;
  font-weight: 700;
  color: #5d4037;
  margin-bottom: 8px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
body.store-page .goods-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}
body.store-page .goods-stock { font-size: 12px; color: #999; }
body.store-page .goods-limit { font-size: 12px; color: #b8860b; font-weight: 600; }
body.store-page .goods-price { font-size: 13px; margin-bottom: 8px; }
body.store-page .goods-price .price-coin { font-size: 15px; }
body.store-page .goods-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 6px;
}
body.store-page .goods-actions .mini-btn { padding: 6px 14px; font-size: 12px; }

/* 查看商品弹窗内的图文 */
body.store-page .view-images { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
body.store-page .view-images img { width: 76px; height: 76px; border-radius: 8px; object-fit: cover; background: #fef5e7; }
body.store-page .view-desc {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px dashed #ffe6ce;
  color: #7a5836;
  font-size: 13px;
  line-height: 1.6;
  max-height: 40vh;
  overflow-y: auto;
}
body.store-page .view-desc img { max-width: 100%; border-radius: 8px; }

/* 我的订单管理 · 订单卡片 */
body.store-page .order-list { padding: 4px 16px 16px; }
body.store-page .order-card { cursor: pointer; }
body.store-page .order-cost { font-size: 13px; color: #8b5a3c; }
body.store-page .cost-coin { color: #ff6b35; font-weight: 800; }
body.store-page .cost-point { color: #b8860b; font-weight: 800; }
body.store-page .order-time { margin-top: 6px; font-size: 11px; color: #bbaa99; }
body.store-page .order-detail-box .modal-body { max-height: 62vh; overflow-y: auto; }
body.store-page .detail-product {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid #fdf0e6;
}
body.store-page .detail-product img {
  width: 68px; height: 68px; flex-shrink: 0;
  border-radius: 12px; object-fit: cover; background: #fef5e7;
}
body.store-page .detail-pinfo { flex: 1; min-width: 0; }
body.store-page .detail-name { font-size: 15px; font-weight: 700; color: #5d4037; margin-bottom: 8px; }
body.store-page .detail-cost { font-size: 13px; color: #8b5a3c; }
body.store-page .detail-oid { font-size: 12px; color: #999; max-width: 60%; word-break: break-all; text-align: right; }
body.store-page .modal-row .order-status { display: inline-block; }

/* 一级 Tab 角标（待处理订单 / 未读消息） */
body.store-page .tab-item { position: relative; }
body.store-page .tab-badge {
  position: absolute;
  top: -6px;
  right: 4px;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  display: none;
  line-height: 16px;
  text-align: center;
  font-size: 10px;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(135deg, #ff5a36, #ff3b30);
  border-radius: 8px;
  box-shadow: 0 2px 6px rgba(255,59,48,0.5);
}

/* 新订单：置顶高亮 + 标签 */
body.store-page .order-card.is-new {
  border: 1px solid #ffbe7a;
  background: linear-gradient(180deg, #fff8ec, #fff);
  box-shadow: 0 6px 18px rgba(255,140,40,0.18);
}
body.store-page .new-tag {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 7px;
  font-size: 10px;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(135deg, #ff9a3c, #ff5a36);
  border-radius: 8px;
  vertical-align: middle;
}
body.store-page .order-oid {
  margin-top: 4px;
  font-size: 11px;
  color: #bbaa99;
  word-break: break-all;
}
body.store-page .order-btn.ghost {
  background: #fff;
  color: #c0703a;
  border: 1px solid #ffcf9e;
}
body.store-page .order-express {
  display: block;
  width: 100%;
  padding-top: 8px;
  margin-top: 8px;
  border-top: 1px dashed #f2e2cc;
  text-align: right;
  font-size: 12px;
  color: #8b5a3c;
  word-break: break-all;
}

/* 拒绝订单弹窗提示 */
body.store-page .reject-tip {
  margin-top: 10px;
  padding: 8px 10px;
  font-size: 12px;
  line-height: 1.5;
  color: #c0703a;
  background: #fff7ec;
  border-radius: 8px;
}

/* 消息中心 */
body.store-page .msg-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px 4px;
}
body.store-page .msg-unread-text { font-size: 13px; color: #8b5a3c; }
body.store-page .msg-readall-btn {
  height: 30px;
  padding: 0 14px;
  border: 1px solid #ffcf9e;
  border-radius: 15px;
  background: #fff7ea;
  color: #ff6b1f;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}
body.store-page .msg-readall-btn:active { opacity: 0.8; }
body.store-page .msg-item {
  display: flex;
  gap: 12px;
  padding: 14px;
  margin-bottom: 12px;
  background: #fff;
  border: 1px solid #f7e8d5;
  border-radius: 16px;
  box-shadow: 0 4px 14px rgba(255,107,53,0.08);
  cursor: pointer;
}
body.store-page .msg-item.unread {
  border-color: #ffcf9e;
  background: linear-gradient(180deg, #fffaf0, #fff);
}
body.store-page .msg-item:active { transform: scale(0.995); }
body.store-page .msg-icon {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  border-radius: 12px;
  background: #fff2e0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
}
body.store-page .msg-body { flex: 1; min-width: 0; }
body.store-page .msg-title {
  display: flex;
  align-items: center;
  margin-bottom: 4px;
  font-size: 14px;
  font-weight: 700;
  color: #5d4037;
}
body.store-page .msg-dot {
  width: 8px;
  height: 8px;
  margin-left: 6px;
  border-radius: 50%;
  background: #ff3b30;
}
body.store-page .msg-content {
  font-size: 13px;
  line-height: 1.5;
  color: #8b5a3c;
  word-break: break-all;
}
body.store-page .msg-time { margin-top: 6px; font-size: 11px; color: #bbaa99; }

/* ============================================================
   商城管理后台 · 轮播图管理 / 店主权限管理（简约后台组件）
   ============================================================ */
.req { color: #e74c3c; font-style: normal; margin-left: 2px; }

/* 工具条 */
.admin-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 12px 4px;
}
.admin-btn-add {
  flex-shrink: 0;
  height: 34px;
  padding: 0 16px;
  border: none;
  border-radius: 17px;
  background: linear-gradient(135deg, #ff8c42, #ff6b35);
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(255,107,53,0.3);
}
.admin-btn-add:active { opacity: 0.85; }
.toolbar-tip { font-size: 12px; color: #cc9977; }

/* 幸运抢购子 Tab */
.sub-tab {
  padding: 6px 18px;
  border: 1px solid #ffd9b3;
  border-radius: 16px;
  background: #fff;
  color: #ff7a33;
  font-size: 14px;
  cursor: pointer;
  transition: all .15s;
}
.sub-tab.active {
  background: linear-gradient(135deg, #ff8c42, #ff6b35);
  color: #fff;
  border-color: transparent;
}

/* 搜索框 */
.admin-search { position: relative; margin: 12px 12px 0; }
.admin-search input {
  width: 100%;
  height: 40px;
  padding: 0 40px 0 14px;
  border: 1px solid #ffe0cc;
  border-radius: 20px;
  background: #fff;
  font-size: 14px;
  color: #5d4037;
  outline: none;
  box-sizing: border-box;
}
.admin-search input:focus { border-color: #ff8c42; }
.admin-search .search-icon {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 15px;
  pointer-events: none;
}

/* 轮播图列表 */
.banner-list { padding: 12px; display: flex; flex-direction: column; gap: 10px; }
.banner-item {
  display: flex;
  align-items: center;
  gap: 12px;
  background: #fff;
  border-radius: 12px;
  padding: 10px;
  box-shadow: 0 2px 8px rgba(255,107,53,0.08);
}
.banner-item.disabled { opacity: 0.55; }
.banner-thumb {
  width: 84px;
  height: 56px;
  border-radius: 8px;
  object-fit: cover;
  background: #fef5e7;
  flex-shrink: 0;
}
.banner-info { flex: 1; min-width: 0; }
.banner-link {
  font-size: 13px;
  color: #8b5a3c;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.banner-link .muted { color: #bbb; }
.banner-meta { font-size: 12px; color: #b8860b; margin-top: 4px; }
.banner-ops { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.banner-ops .switch { transform: scale(0.85); }
.empty-tip {
  text-align: center;
  padding: 60px 20px;
  color: #cc9977;
  font-size: 14px;
}
.empty-tip .icon { font-size: 46px; margin-bottom: 12px; }

/* 底部保存栏 */
.admin-save-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px;
  position: sticky;
  bottom: 0;
  background: #fff8f0;
  border-top: 1px solid #ffe8d6;
}
.admin-btn-save {
  height: 40px;
  padding: 0 26px;
  border: none;
  border-radius: 20px;
  background: linear-gradient(135deg, #ff8c42, #ff6b35);
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 2px 10px rgba(255,107,53,0.3);
}
.admin-btn-save:disabled {
  background: #e8ddd4;
  color: #fff;
  box-shadow: none;
  cursor: not-allowed;
}
.save-tip { font-size: 12px; color: #999; flex: 1; }
.switch-state { margin-left: 8px; font-size: 12px; }
.row-dirty td { background: #fffaf0; }

/* 轮播图上传框 */
.banner-upload {
  width: 100%;
  height: 120px;
  border: 1.5px dashed #ffcf9e;
  border-radius: 10px;
  background: #fffcf8;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  overflow: hidden;
}
.banner-upload:active { background: #fdf0e6; }
.banner-upload img { width: 100%; height: 100%; object-fit: contain; }
.upload-plus { color: #cc9977; font-size: 14px; }
.switch-text { margin-left: 8px; font-size: 13px; color: #8b5a3c; }

/* 首页轮播区：后台配置的图片轮播 */
.banner-slide .banner-full {
  width: 100%;
  height: 100%;
  object-fit: cover;
  background: #f5f5f7;
  display: block;
  border-radius: 12px;
}

/* ===== 物流信息（订单列表 / 详情 / 时间轴 / 复制） ===== */
.order-express {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.express-no {
  font-weight: 600;
  color: #5d4037;
  word-break: break-all;
}
.copy-btn {
  padding: 2px 9px;
  font-size: 11px;
  color: #ff6b35;
  background: #fff3e8;
  border: 1px solid #ffd6b8;
  border-radius: 10px;
  cursor: pointer;
  white-space: nowrap;
}
.copy-btn:active { opacity: 0.7; }
.order-logi-latest {
  margin-top: 6px;
  font-size: 12px;
  color: #8b5a3c;
  line-height: 1.5;
}

/* 发货弹窗：快递公司下拉选择 */
.modal-select {
  width: 100%;
  padding: 10px 12px;
  font-size: 14px;
  color: #5d4037;
  background: #fffdf9;
  border: 1px solid #f2ddc7;
  border-radius: 10px;
  appearance: none;
  -webkit-appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, #c69a70 50%), linear-gradient(135deg, #c69a70 50%, transparent 50%);
  background-position: calc(100% - 18px) 50%, calc(100% - 13px) 50%;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
}

/* 物流轨迹时间轴 */
.logi-head {
  padding-bottom: 12px;
  margin-bottom: 14px;
  border-bottom: 1px solid #fdf0e6;
}
.logi-company {
  font-size: 15px;
  font-weight: 700;
  color: #5d4037;
  margin-bottom: 6px;
}
.logi-num-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.logi-num {
  font-size: 14px;
  font-weight: 600;
  color: #5d4037;
  word-break: break-all;
}
.logi-timeline { position: relative; padding-left: 4px; }
.logi-node {
  position: relative;
  padding: 0 0 16px 20px;
  border-left: 2px solid #f0e4d6;
}
.logi-node:last-child {
  border-left-color: transparent;
  padding-bottom: 2px;
}
.logi-dot {
  position: absolute;
  left: -7px;
  top: 5px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #d9c6b3;
  box-shadow: 0 0 0 3px #fff;
}
.logi-node.shipped .logi-dot { background: #ff9a3c; }
.logi-node.completed .logi-dot { background: #2e9e5b; }
.logi-node.pending .logi-dot { background: #cbbbac; }
.logi-text {
  font-size: 13px;
  line-height: 1.5;
  color: #5d4037;
}
.logi-node.pending .logi-text { color: #bbaa99; }
.logi-time {
  margin-top: 3px;
  font-size: 11px;
  color: #b08968;
}
.detail-logi-title {
  margin: 14px 0 10px;
  padding-top: 12px;
  font-size: 13px;
  font-weight: 700;
  color: #8b5a3c;
  border-top: 1px solid #fdf0e6;
}

/* ============================================================
   底部导航（商城 / 订单 共用）· 与甜商惠商圈页底部导航一致
   仅作用于 <body data-app-tabbar> 页面
   ============================================================ */
body.has-tabbar {
  padding-bottom: calc(92px + env(safe-area-inset-bottom, 0px));
}
.app-tabbar {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px));
  background: #fff8f0;
  box-shadow: 0 -4px 14px rgba(30, 25, 15, .05);
  z-index: 200;
}
.app-tab {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  padding: 8px 4px;
  border-radius: 16px;
  color: #4a4f55;
  text-decoration: none;
  transition: background .18s, color .18s;
}
.app-tab .app-tab-ico { display: block; font-size: 22px; line-height: 1; }
.app-tab .app-tab-ico svg { width: 25px; height: 25px; }
.app-tab .app-tab-txt { font-size: 12.5px; font-weight: 600; }
.app-tab.active {
  background: #ff7a33;
  color: #fff;
  box-shadow: 0 8px 16px rgba(255, 122, 51, .35);
}
/* 键盘弹起时隐藏底部导航，避免被顶起 */
body.keyboard-open .app-tabbar { display: none; }
body.keyboard-open.has-tabbar { padding-bottom: 0; }

/* ===== 页面跳转过渡遮罩：点击底部导航即时覆盖旧页，避免双页重叠闪烁 ===== */
.page-transition {
  position: fixed;
  inset: 0;
  background: #fff8f0;
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 14px;
}
.page-transition.show { display: flex; }
.page-transition .pt-spinner {
  width: 38px; height: 38px;
  border: 3px solid #FFE0CC;
  border-top-color: #ff7a33;
  border-radius: 50%;
  animation: pt-spin 0.7s linear infinite;
}
.page-transition .pt-text {
  font-size: 13px;
  color: #9aa0a6;
  letter-spacing: 1px;
}
@keyframes pt-spin { to { transform: rotate(360deg); } }

/* ===== 幸运抢购（原灵米夺宝） ===== */
.lucky-tabs {
  display: flex;
  background: #fff;
  border-bottom: 1px solid #f0e6dc;
  position: sticky;
  top: 0;
  z-index: 10;
}
.lucky-tab {
  flex: 1;
  text-align: center;
  padding: 12px 0;
  font-size: 15px;
  color: #8b5a3c;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  transition: all 0.2s;
}
.lucky-tab.active {
  color: #ff6b35;
  font-weight: 600;
  border-bottom-color: #ff6b35;
}
.lucky-tab-content { display: none; padding: 12px; }
.lucky-tab-content.active { display: block; }

.lucky-card {
  background: #fff;
  border-radius: 14px;
  padding: 14px;
  margin-bottom: 12px;
  box-shadow: 0 2px 10px rgba(255, 122, 51, 0.08);
}
.lucky-card-head {
  display: flex;
  gap: 12px;
  margin-bottom: 10px;
}
.lucky-cover {
  width: 80px;
  height: 80px;
  border-radius: 10px;
  object-fit: cover;
  background: #fff3e0;
  flex-shrink: 0;
}
.lucky-info { flex: 1; min-width: 0; }
.lucky-name {
  font-size: 15px;
  font-weight: 600;
  color: #333;
  margin-bottom: 6px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.lucky-cost {
  font-size: 13px;
  color: #ff6b35;
  margin-bottom: 8px;
}
.lucky-cost b { font-size: 15px; }
.lucky-progress-row {
  display: flex;
  align-items: center;
  gap: 8px;
}
.lucky-progress {
  flex: 1;
  height: 8px;
  background: #ffe8d6;
  border-radius: 4px;
  overflow: hidden;
}
.lucky-progress-bar {
  height: 100%;
  background: linear-gradient(90deg, #ff7a33, #ffb347);
  border-radius: 4px;
  transition: width 0.3s;
}
.lucky-progress-text {
  font-size: 12px;
  color: #999;
  flex-shrink: 0;
}
.lucky-desc {
  font-size: 13px;
  color: #888;
  line-height: 1.5;
  margin-bottom: 10px;
  padding: 8px 10px;
  background: #fff8f0;
  border-radius: 8px;
}
.lucky-join-btn {
  width: 100%;
  padding: 11px 0;
  background: linear-gradient(90deg, #ff7a33, #ff5a1f);
  color: #fff;
  border: none;
  border-radius: 22px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 3px 10px rgba(255, 90, 31, 0.3);
}
.lucky-join-btn:active { opacity: 0.85; }

/* 店主后台 · 抢购活动卡片（含商品图片） */
.order-card-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}
.lucky-act-body {
  display: flex;
  gap: 12px;
  align-items: stretch;
}
.lucky-thumb {
  width: 72px;
  height: 72px;
  border-radius: 10px;
  object-fit: cover;
  background: #fef5e7;
  flex-shrink: 0;
}
.lucky-act-info { flex: 1; min-width: 0; }

/* 参与弹窗 */
.join-info {
  font-size: 13px;
  color: #666;
  line-height: 1.6;
  margin-bottom: 12px;
  padding: 10px;
  background: #fff8f0;
  border-radius: 8px;
}
.join-info b { color: #333; font-size: 14px; }
.stepper {
  display: flex;
  align-items: center;
  gap: 0;
  border: 1px solid #f0d9c2;
  border-radius: 8px;
  overflow: hidden;
  width: fit-content;
}
.stepper .step-btn {
  width: 38px;
  height: 38px;
  background: #fff8f0;
  border: none;
  font-size: 18px;
  color: #ff6b35;
  cursor: pointer;
}
.stepper .step-btn:active { background: #ffe8d6; }
.stepper input {
  width: 50px;
  height: 38px;
  text-align: center;
  border: none;
  border-left: 1px solid #f0d9c2;
  border-right: 1px solid #f0d9c2;
  font-size: 15px;
  color: #333;
  -moz-appearance: textfield;
}
.stepper input::-webkit-outer-spin-button,
.stepper input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.form-tip {
  font-size: 12px;
  color: #999;
  margin-top: 6px;
}
.join-summary {
  margin-top: 12px;
  padding: 10px;
  background: linear-gradient(90deg, #fff3e0, #ffe8d6);
  border-radius: 8px;
  font-size: 14px;
  color: #8b5a3c;
  text-align: right;
}
.join-summary .join-total {
  font-size: 20px;
  font-weight: 700;
  color: #ff6b35;
}
.join-summary .join-asset { color: #ff6b35; margin-left: 2px; }

/* 我的记录 */
.record-card {
  background: #fff;
  border-radius: 12px;
  padding: 12px 14px;
  margin-bottom: 10px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}
.record-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
  padding-bottom: 8px;
  border-bottom: 1px dashed #f0e6dc;
}
.record-name { font-size: 14px; font-weight: 600; color: #333; }
.record-status {
  font-size: 12px;
  padding: 3px 10px;
  border-radius: 10px;
}
.record-status.win { background: #e8f5e9; color: #27ae60; }
.record-status.lose { background: #f5f5f5; color: #999; }
.record-status.pending { background: #fff3e0; color: #e67e22; }
.record-row {
  display: flex;
  justify-content: space-between;
  font-size: 13px;
  color: #666;
  margin: 5px 0;
}
.record-row b { color: #333; font-weight: 500; }
.record-win-banner {
  margin-top: 10px;
  padding: 8px;
  background: linear-gradient(90deg, #fff3e0, #ffe0b2);
  color: #e67e22;
  font-size: 13px;
  text-align: center;
  border-radius: 8px;
}

/* 管理端幸运抢购弹窗 */
.lucky-modal-box { max-height: 85vh; overflow-y: auto; }
.radio-group {
  display: flex;
  gap: 16px;
}
.radio-item {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 13px;
  color: #555;
  cursor: pointer;
}
.radio-item input { accent-color: #ff6b35; }

/* ===== 图片占位样式 ===== */
.lazy-img{
  background:#f2f2f5;
}

/* ===== 幸运抢购会场（重构版：橙黄红包会场） ===== */
.lb-page {
  background: #fff8f0;
  min-height: 100vh;
}
.lb-hero {
  position: relative;
  padding: calc(env(safe-area-inset-top) + 56px) 16px 30px;
  background: linear-gradient(180deg, #ff5a1f 0%, #ff8a3d 55%, #ffc98a 100%);
  text-align: center;
  overflow: hidden;
}
.lb-hero::after {
  content: '';
  position: absolute;
  width: 240px;
  height: 240px;
  top: -90px;
  left: 50%;
  transform: translateX(-50%);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0) 70%);
  pointer-events: none;
}
.lb-hero-back {
  position: absolute;
  left: 4px;
  top: calc(env(safe-area-inset-top) + 8px);
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: none;
  color: #fff;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  z-index: 2;
}
.lb-hero-records {
  position: absolute;
  right: 14px;
  top: calc(env(safe-area-inset-top) + 14px);
  padding: 6px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.28);
  color: #fff;
  font-size: 12px;
  text-decoration: none;
  z-index: 2;
}
.lb-hero-title {
  position: relative;
  font-size: 15px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 2px;
  z-index: 1;
}
.lb-hero-sub {
  position: relative;
  margin-top: 6px;
  font-size: 30px;
  font-weight: 800;
  color: #fff;
  letter-spacing: 1px;
  text-shadow: 0 2px 6px rgba(178, 58, 0, 0.28);
  z-index: 1;
}
.lb-hero-badge {
  position: relative;
  display: inline-block;
  margin-top: 12px;
  padding: 6px 18px;
  border-radius: 999px;
  background: #fffdf6;
  color: #d9541a;
  font-size: 13px;
  font-weight: 700;
  z-index: 1;
}
.lb-sheet {
  position: relative;
  margin-top: -18px;
  padding: 8px 0 24px;
  border-radius: 20px 20px 0 0;
  background: #fff8f0;
  min-height: calc(100vh - 170px);
}
.lb-card {
  margin: 10px 12px 0;
  padding: 12px;
  border-radius: 16px;
  background: #fff;
  cursor: pointer;
}
.lb-card:active { background: #fffcf8; }
.lb-card-top {
  display: flex;
  gap: 12px;
}
.lb-thumb-wrap {
  position: relative;
  flex-shrink: 0;
  width: 86px;
  height: 86px;
  border-radius: 12px;
  overflow: hidden;
  background: #f5f5f7;
}
.lb-thumb {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  background: #f5f5f7;
}
.lb-corner {
  position: absolute;
  left: 0;
  top: 0;
  padding: 2px 8px;
  border-radius: 12px 0 10px 0;
  background: #ff5e1f;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
}
.lb-info {
  flex: 1;
  min-width: 0;
}
.lb-name-row {
  display: flex;
  align-items: flex-start;
  gap: 6px;
}
.lb-name {
  flex: 1;
  min-width: 0;
  font-size: 16px;
  font-weight: 700;
  color: #222;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.lb-status {
  flex-shrink: 0;
  padding: 2px 8px;
  border-radius: 999px;
  border: 1px solid #ffc49a;
  background: #fff6ec;
  color: #e8590c;
  font-size: 11px;
  line-height: 1.5;
}
.lb-cost {
  margin-top: 8px;
  font-size: 13px;
  font-weight: 700;
  color: #ff5e1f;
}
.lb-participants {
  margin-top: 4px;
  font-size: 12px;
  color: #999;
}
.lb-desc-line {
  margin-top: 4px;
  font-size: 11px;
  color: #bbb;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.lb-progress-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
}
.lb-progress {
  flex: 1;
  height: 8px;
  border-radius: 4px;
  background: #ffe8d6;
  overflow: hidden;
}
.lb-progress-bar {
  height: 100%;
  border-radius: 4px;
  background: linear-gradient(90deg, #ff7a33, #ffb347);
  transition: width 0.3s;
}
.lb-progress-text {
  flex-shrink: 0;
  font-size: 11px;
  color: #aaa;
}
.lb-btn {
  display: block;
  width: 100%;
  height: 46px;
  margin-top: 10px;
  border: none;
  border-radius: 24px;
  background: linear-gradient(135deg, #ff9a4a, #ff5e1f);
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 3px 10px rgba(255, 90, 31, 0.25);
}
.lb-btn:active { opacity: 0.88; }
.lb-btn:disabled {
  background: #ccc;
  box-shadow: none;
  cursor: not-allowed;
}

/* ===== 幸运抢购详情 ===== */
.lb-detail-cover {
  display: block;
  width: 100%;
  height: 220px;
  object-fit: cover;
  background: #f5f5f7;
}
.lb-detail-card {
  position: relative;
  margin: -20px 12px 0;
  padding: 16px;
  border-radius: 12px;
  background: #fff;
}
.lb-detail-name {
  font-size: 18px;
  font-weight: 700;
  color: #222;
  line-height: 1.35;
}
.lb-detail-meta {
  margin-top: 8px;
  font-size: 13px;
  color: #999;
}
.lb-detail-cost {
  margin-top: 6px;
  font-size: 15px;
  font-weight: 700;
  color: #ff5e1f;
}
.lb-detail-progress-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 14px;
}
.lb-detail-progress-row .lb-progress { height: 10px; border-radius: 5px; }
.lb-detail-progress-row .lb-progress-bar { border-radius: 5px; }
.lb-detail-progress-text {
  flex-shrink: 0;
  font-size: 12px;
  color: #666;
}
.lb-detail-remaining {
  margin-top: 6px;
  font-size: 13px;
  color: #ff6b35;
}
.lb-section-card {
  margin: 12px 12px 0;
  padding: 16px;
  border-radius: 12px;
  background: #fff;
}
.lb-section-title {
  font-size: 15px;
  font-weight: 700;
  color: #222;
}
.lb-section-body {
  margin-top: 10px;
  font-size: 13px;
  line-height: 1.7;
  color: #666;
  white-space: pre-wrap;
  word-break: break-word;
}
.lb-rules {
  margin-top: 10px;
  padding-left: 16px;
  font-size: 12px;
  line-height: 1.9;
  color: #999;
}
.lb-detail-bottom {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
  background: #fff8f0;
}
.lb-detail-bottom .lb-btn { margin-top: 0; }
.lb-detail-spacer { height: 80px; }

