/* ============================================================
   DualStar · 桃宝购物 app
   淘宝风橙色主题 / 深浅色自适应 / 全浏览器兼容（无 inset、无 color-mix）
   ============================================================ */

.tb-view {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: #F5F5F7;
  color: #1A1A1A;
  font-family: var(--font-body, 'Noto Sans SC', -apple-system, 'PingFang SC', 'HarmonyOS Sans SC', 'MiSans', 'OPPO Sans', 'Source Han Sans SC', 'Noto Sans CJK SC', 'Microsoft YaHei', Roboto, sans-serif);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  -webkit-tap-highlight-color: transparent;
}
.tb-view button {
  font-family: inherit;
  cursor: pointer;
  border: none;
  background: none;
  color: inherit;
  padding: 0;
}
.tb-view input {
  font-family: inherit;
}

/* —— 顶部导航 —— */
.tb-nav {
  flex: none;
  height: calc(52px + var(--safe-area-top, env(safe-area-inset-top, 0px)));
  padding-top: var(--safe-area-top, env(safe-area-inset-top, 0px));
  box-sizing: border-box;
  display: flex;
  align-items: center;
  padding-left: 10px;
  padding-right: 10px;
  background: #fff;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  position: relative;
  z-index: 5;
}
.tb-nav-btn {
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #333;
  border-radius: 50%;
}
.tb-nav-btn:active { background: rgba(0, 0, 0, 0.05); }
.tb-nav-title {
  flex: 1;
  text-align: center;
  font-size: 17px;
  font-weight: 600;
  color: #1A1A1A;
}
.tb-nav-right {
  width: 44px;
  display: flex;
  justify-content: flex-end;
  align-items: center;
}
.tb-nav-msg { font-size: 18px; }
.tb-nav-fav { font-size: 13px; color: #888; padding: 6px 10px; border-radius: 999px; background: #F5F5F5; white-space: nowrap; }
.tb-nav-fav.on { color: #FF5000; background: #FFF0E8; }

/* —— 底部 Tab —— */
.tb-tabbar {
  flex: none;
  display: flex;
  background: #fff;
  border-top: 1px solid rgba(0, 0, 0, 0.06);
  padding-bottom: calc(4px + var(--safe-area-bottom, env(safe-area-inset-bottom, 0px)));
  padding-top: 4px;
  position: relative;
  z-index: 5;
  box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.04);
}
.tb-tab-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 5px 0 3px;
  color: #9A9A9A;
  position: relative;
  transition: color 0.15s, transform 0.1s;
}
.tb-tab-item:active { transform: scale(0.96); }
.tb-tab-item.active { color: #FF5000; }
.tb-tab-item.active .tb-tab-icon { background: rgba(255, 80, 0, 0.1); }
.tb-tab-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 28px;
  border-radius: 12px;
  transition: background 0.15s;
}
.tb-tab-label { font-size: 11px; font-weight: 600; }
[data-theme="dark"] .tb-tabbar { background: #1E1E1E; border-top-color: rgba(255, 255, 255, 0.08); box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.4); }
[data-theme="dark"] .tb-tab-item { color: #888; }
[data-theme="dark"] .tb-tab-item.active { color: #FF8040; }
[data-theme="dark"] .tb-tab-item.active .tb-tab-icon { background: rgba(255, 128, 64, 0.15); }
.tb-tab-badge {
  position: absolute;
  top: 0;
  right: calc(50% - 26px);
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 999px;
  background: #FF5000;
  color: #fff;
  font-size: 10px;
  line-height: 16px;
  text-align: center;
  font-weight: 600;
}

/* —— 页面滚动主体 —— */
.tb-page-body {
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding-bottom: calc(16px + var(--safe-area-bottom, env(safe-area-inset-bottom, 0px)));
}

/* ============================================================
   首页
   ============================================================ */
.tb-home { flex: 1; display: flex; flex-direction: column; overflow: hidden; }
.tb-home-head {
  flex: none;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  padding-top: calc(10px + var(--safe-area-top, env(safe-area-inset-top, 0px)));
  background: linear-gradient(180deg, #FF6A00 0%, #FF7E1F 100%);
}
.tb-home-brand {
  color: #fff;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 1px;
  display: flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
}
.tb-brand-dot {
  width: 24px;
  height: 24px;
  border-radius: 8px;
  background: #fff;
  color: #FF5000;
  font-size: 14px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
}
.tb-search {
  flex: 1;
  height: 34px;
  border-radius: 999px;
  background: #fff;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 12px;
  color: #B5B5B5;
  font-size: 13px;
  min-width: 0;
}
.tb-search span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tb-refresh {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.22);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
}
.tb-home-back {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.22);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
}
.tb-home-back:active { background: rgba(255, 255, 255, 0.35); }
.tb-home-back svg { width: 20px; height: 20px; }
.tb-home-brand { flex: none; }
.tb-refresh:active { background: rgba(255, 255, 255, 0.35); }
.tb-refresh-ic { transition: transform 0.3s; }
.tb-spin { animation: tb-spin 0.8s linear infinite; }
@keyframes tb-spin { to { transform: rotate(360deg); } }

.tb-home-scroll {
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding-bottom: calc(20px + var(--safe-area-bottom, env(safe-area-inset-bottom, 0px)));
}

/* 轮播 */
.tb-banner-wrap {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  margin: 10px 12px 0;
  border-radius: 14px;
  -webkit-overflow-scrolling: touch;
}
.tb-banner-wrap::-webkit-scrollbar { display: none; }
.tb-banner {
  flex: none;
  width: 100%;
  scroll-snap-align: start;
  height: 118px;
  border-radius: 14px;
  position: relative;
  overflow: hidden;
  padding: 16px 18px;
  box-sizing: border-box;
  color: #5A4630;
}
.tb-banner-text { position: relative; z-index: 2; }
.tb-banner-title { font-size: 21px; font-weight: 800; letter-spacing: 1px; }
.tb-banner-sub { font-size: 12px; margin-top: 6px; opacity: 0.75; }
.tb-banner-emoji {
  position: absolute;
  right: 18px;
  bottom: 8px;
  font-size: 52px;
  z-index: 1;
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.12));
}
.tb-banner-dots {
  position: absolute;
  right: 14px;
  bottom: 10px;
  display: flex;
  gap: 5px;
  z-index: 3;
}
.tb-banner-dots span {
  width: 5px;
  height: 5px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.6);
}
.tb-banner-dots span.on { background: #FF5000; width: 14px; }

/* 分类 */
.tb-cats {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 6px;
  background: #fff;
  margin: 10px 0 0;
  padding: 14px 8px 10px;
}
.tb-cat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 4px 0;
}
.tb-cat-emoji {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: #FFF4EC;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
}
.tb-cat-name { font-size: 12px; color: #4A4A4A; }

/* 推荐条 */
.tb-recs-banner {
  margin: 10px 12px 0;
  background: linear-gradient(120deg, #FFF1E8, #FFE3D0);
  border-radius: 14px;
  padding: 12px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.tb-recs-title { font-size: 15px; font-weight: 700; color: #E64A19; }
.tb-recs-sub { font-size: 11px; color: #B0714F; margin-top: 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tb-recs-btn {
  flex: none;
  font-size: 12px;
  color: #E64A19;
  border: 1px solid rgba(230, 74, 25, 0.4);
  border-radius: 999px;
  padding: 5px 10px;
  display: flex;
  align-items: center;
  gap: 3px;
  white-space: nowrap;
  background: rgba(255, 255, 255, 0.5);
}

/* 双列瀑布流 */
.tb-feed {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  padding: 16px;
}
.tb-featured-row {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 8px;
  padding: 12px 12px 0;
}
.tb-featured-row .tb-p-img { height: 118px; }
.tb-featured-row .tb-p-emoji { font-size: 44px; }
.tb-featured-row .tb-p-name { min-height: 0; -webkit-line-clamp: 1; }
.tb-p-card {
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
  display: flex;
  flex-direction: column;
  transition: transform 0.12s;
}
.tb-p-card:active { transform: scale(0.98); }
.tb-p-img {
  position: relative;
  height: 170px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.tb-p-emoji { font-size: 58px; filter: drop-shadow(0 6px 10px rgba(0, 0, 0, 0.15)); }
.tb-p-fav {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.85);
  color: #B9B9B9;
  font-size: 15px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
.tb-p-fav.on { color: #FF5000; }
.tb-p-body { padding: 11px 12px 13px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.tb-p-name {
  font-size: 13.5px;
  color: #333;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 38px;
}
.tb-p-tags { display: flex; gap: 4px; min-height: 16px; }
.tb-p-tag {
  font-size: 10px;
  color: #FF5000;
  background: #FFF0E8;
  border-radius: 4px;
  padding: 1px 5px;
}
.tb-p-bottom { display: flex; align-items: baseline; justify-content: space-between; gap: 4px; margin-top: auto; }
.tb-p-price { color: #FF5000; font-size: 16px; font-weight: 700; }
.tb-p-price::before { content: '¥'; font-size: 11px; }
.tb-p-sales { font-size: 10px; color: #A8A8A8; white-space: nowrap; }

.tb-feed-end { text-align: center; color: #C0C0C0; font-size: 12px; padding: 8px 0 18px; letter-spacing: 1px; }

/* 首页浮动购物车入口 */
.tb-cart-float {
  position: absolute;
  bottom: calc(84px + var(--safe-area-bottom, env(safe-area-inset-bottom, 0px)));
  right: 14px;
  background: #FF5000;
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  border-radius: 999px;
  padding: 9px 16px 9px 10px;
  display: flex;
  align-items: center;
  gap: 6px;
  box-shadow: 0 6px 18px rgba(255, 80, 0, 0.4);
  z-index: 6;
}
.tb-cart-float-ic { display: flex; }
.tb-cart-float-badge {
  min-width: 18px;
  height: 18px;
  border-radius: 999px;
  background: #fff;
  color: #FF5000;
  font-size: 11px;
  line-height: 18px;
  text-align: center;
  font-weight: 700;
}

/* 分类页 / 搜索页 */
.tb-sec-title {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 15px;
  font-weight: 700;
  color: #333;
  padding: 14px 12px 4px;
}
.tb-sec-icon { font-size: 16px; }
.tb-cat-head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 20px 16px;
  color: #5A4630;
}
.tb-cat-head-emoji { font-size: 40px; }
.tb-cat-head-title { font-size: 20px; font-weight: 800; }
.tb-cat-head-sub { font-size: 12px; margin-top: 4px; opacity: 0.7; }

.tb-search-bar { display: flex; gap: 8px; padding: 12px; }
.tb-search-input {
  flex: 1;
  height: 38px;
  border-radius: 999px;
  border: none;
  background: #fff;
  padding: 0 16px;
  font-size: 14px;
  color: #1A1A1A;
  outline: none;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}
.tb-search-go {
  flex: none;
  background: #FF5000;
  color: #fff;
  border-radius: 999px;
  font-size: 14px;
  padding: 0 18px;
  font-weight: 600;
}
.tb-search-hot { padding: 4px 12px 12px; }
.tb-hot-title { font-size: 13px; color: #888; margin-bottom: 8px; }
.tb-hot-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.tb-hot-tag {
  font-size: 13px;
  color: #666;
  background: #fff;
  border-radius: 999px;
  padding: 6px 14px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}
.tb-search-count { padding: 10px 14px 0; font-size: 12px; color: #999; }

.tb-empty {
  text-align: center;
  color: #999;
  font-size: 14px;
  padding: 60px 20px;
  line-height: 1.9;
}
.tb-empty-emoji { font-size: 48px; display: block; margin-bottom: 10px; }
.tb-empty-sub { font-size: 12px; color: #B9B9B9; }
.tb-empty-btn {
  margin-top: 16px;
  background: #FF5000;
  color: #fff;
  border-radius: 999px;
  padding: 9px 28px;
  font-size: 14px;
  font-weight: 600;
}

/* ============================================================
   商品详情
   ============================================================ */
.tb-nav-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  background: transparent;
  border: none;
  z-index: 8;
}
.tb-nav-btn-glass {
  background: rgba(255, 255, 255, 0.75);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
}
.tb-detail { display: flex; flex-direction: column; overflow: hidden; padding-bottom: 0; }
.tb-detail-scroll {
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 90px;
}
.tb-detail-img {
  height: 300px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.tb-detail-emoji { font-size: 120px; filter: drop-shadow(0 10px 18px rgba(0, 0, 0, 0.18)); }
.tb-detail-img-tags {
  position: absolute;
  left: 14px;
  bottom: 14px;
  display: flex;
  gap: 6px;
}
.tb-detail-img-tags span {
  background: rgba(255, 255, 255, 0.8);
  color: #E64A19;
  font-size: 11px;
  padding: 3px 8px;
  border-radius: 6px;
  font-weight: 600;
}
.tb-detail-info { background: #fff; padding: 14px 14px 12px; }
.tb-detail-price-row { display: flex; align-items: baseline; gap: 8px; }
.tb-detail-price { color: #FF5000; font-size: 26px; font-weight: 800; }
.tb-detail-price::before { content: '¥'; font-size: 16px; }
.tb-detail-op { color: #B5B5B5; font-size: 13px; text-decoration: line-through; }
.tb-detail-sales { margin-left: auto; color: #999; font-size: 12px; }
.tb-detail-name { font-size: 17px; font-weight: 700; color: #1A1A1A; margin-top: 8px; line-height: 1.5; }
.tb-detail-rating { display: flex; align-items: center; gap: 6px; margin-top: 8px; }
.tb-stars { color: #FFB400; font-size: 13px; letter-spacing: 1px; }
.tb-rating-num { color: #FF5000; font-size: 13px; font-weight: 600; }
.tb-rating-reviews { color: #999; font-size: 12px; }
.tb-detail-desc { margin-top: 8px; font-size: 13px; color: #666; line-height: 1.7; background: #FAFAFA; border-radius: 10px; padding: 10px 12px; }

.tb-detail-section {
  background: #fff;
  margin-top: 10px;
  padding: 14px;
}
.tb-detail-sec-title { font-size: 14px; font-weight: 700; color: #333; margin-bottom: 10px; }
.tb-spec-group { margin-bottom: 12px; }
.tb-spec-label { font-size: 12px; color: #888; margin-bottom: 6px; }
.tb-spec-opts { display: flex; flex-wrap: wrap; gap: 8px; }
.tb-spec-opt {
  font-size: 13px;
  color: #555;
  background: #F5F5F7;
  border-radius: 8px;
  padding: 6px 14px;
  border: 1px solid transparent;
}
.tb-spec-opt.on { color: #FF5000; border-color: #FF5000; background: #FFF5EF; font-weight: 600; }
.tb-qty-row { display: flex; align-items: center; justify-content: space-between; }
.tb-stepper { display: flex; align-items: center; gap: 0; border: 1px solid rgba(0, 0, 0, 0.08); border-radius: 10px; overflow: hidden; }
.tb-step {
  width: 34px;
  height: 34px;
  font-size: 18px;
  color: #666;
  background: #FAFAFA;
  display: flex;
  align-items: center;
  justify-content: center;
}
.tb-step-num { width: 44px; text-align: center; font-size: 14px; font-weight: 600; color: #333; }
.tb-stepper-sm .tb-step { width: 26px; height: 26px; font-size: 15px; }
.tb-stepper-sm .tb-step-num { width: 32px; font-size: 13px; }
.tb-detail-services {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  color: #999;
  padding: 12px 14px;
}

/* 店铺条 */
.tb-shop-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #fff;
  margin-top: 10px;
  padding: 12px 14px;
  cursor: pointer;
}
.tb-shop-avatar {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  flex: none;
}
.tb-shop-meta { flex: 1; min-width: 0; }
.tb-shop-name { font-size: 15px; font-weight: 700; color: #333; }
.tb-shop-sub { font-size: 12px; color: #999; margin-top: 3px; }
.tb-shop-enter {
  font-size: 12px;
  color: #FF5000;
  border: 1px solid #FF5000;
  border-radius: 999px;
  padding: 5px 10px;
  display: flex;
  align-items: center;
  gap: 4px;
  flex: none;
  white-space: nowrap;
}
.tb-shop-enter svg { width: 13px; height: 13px; }
.tb-shop-enter.ghost { color: #888; border-color: #DDD; }

/* 详情底部操作栏 */
.tb-detail-bar {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: #fff;
  border-top: 1px solid rgba(0, 0, 0, 0.06);
  display: flex;
  align-items: stretch;
  gap: 0;
  padding-bottom: var(--safe-area-bottom, env(safe-area-inset-bottom, 0px));
  padding-top: 6px;
  z-index: 8;
  box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.06);
}
.tb-bar-btn {
  width: 54px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  color: #555;
  font-size: 11px;
  font-weight: 600;
  background: #fff;
  flex: none;
  border-right: 1px solid rgba(0, 0, 0, 0.04);
}
.tb-bar-btn svg { width: 22px; height: 22px; }
.tb-bar-btn:active { background: #F5F5F5; }
.tb-bar-btn[data-act="fav"] { color: #B9B9B9; }
.tb-bar-btn[data-act="fav"].on { color: #FF5000; }
.tb-bar-btn[data-act="cart"] { color: #FF5000; }
.tb-bar-btn[data-act="share"] { color: #FF9500; }
.tb-bar-action {
  flex: 1;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  letter-spacing: 0.5px;
  border: none;
}
.tb-bar-action:active { filter: brightness(0.92); }
.tb-bar-cart { background: linear-gradient(180deg, #FFB14A, #FF9500); }
.tb-bar-buy { background: linear-gradient(180deg, #FF7E1F, #FF5000); }
.tb-bar-gift { background: linear-gradient(180deg, #FF9A8B, #FF6A88); }
.tb-bar-payfor { background: linear-gradient(180deg, #FFB14A, #FF5000); }
[data-theme="dark"] .tb-detail-bar { background: #1E1E1E; border-top-color: rgba(255, 255, 255, 0.08); box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.4); }
[data-theme="dark"] .tb-bar-btn { background: #1E1E1E; border-right-color: rgba(255, 255, 255, 0.06); }
[data-theme="dark"] .tb-bar-btn:active { background: #2A2A2A; }

/* ============================================================
   购物车
   ============================================================ */
.tb-cart-page { display: flex; flex-direction: column; overflow: hidden; padding-bottom: 0; }
.tb-cart-list { flex: 1; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 12px; }
.tb-cart-item {
  background: #fff;
  border-radius: 14px;
  padding: 12px;
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}
.tb-check {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 1.5px solid #D9D9D9;
  color: transparent;
  font-size: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
  background: #fff;
}
.tb-check.on { background: #FF5000; border-color: #FF5000; color: #fff; }
.tb-cart-img {
  width: 84px;
  height: 84px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
  font-size: 42px;
}
.tb-cart-img span { filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.12)); }
.tb-cart-mid { flex: 1; min-width: 0; }
.tb-cart-name {
  font-size: 14px;
  color: #333;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.tb-cart-shop { font-size: 11px; color: #A8A8A8; margin: 4px 0 8px; }
.tb-cart-bottom { display: flex; align-items: center; justify-content: space-between; }
.tb-cart-price { color: #FF5000; font-size: 15px; font-weight: 700; }
.tb-cart-price::before { content: '¥'; font-size: 11px; }
.tb-cart-del {
  width: 26px;
  height: 26px;
  color: #C4C4C4;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
}
.tb-cart-del svg { width: 16px; height: 16px; }

.tb-cart-checkout {
  flex: none;
  display: flex;
  align-items: center;
  gap: 10px;
  background: #fff;
  border-top: 1px solid rgba(0, 0, 0, 0.05);
  padding: 10px 12px;
  padding-bottom: calc(10px + var(--safe-area-bottom, env(safe-area-inset-bottom, 0px)));
}
.tb-check-all { display: flex; align-items: center; gap: 6px; font-size: 13px; color: #555; }
.tb-cart-total { flex: 1; text-align: right; font-size: 13px; color: #666; }
.tb-total-price { color: #FF5000; font-size: 18px; font-weight: 800; }
.tb-total-price::before { content: '¥'; font-size: 12px; }
.tb-checkout-btn {
  background: #FF5000;
  color: #fff;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 600;
  padding: 10px 22px;
  white-space: nowrap;
}
.tb-checkout-btn.disabled { background: #ccc; color: #fff; }

/* ============================================================
   结算页
   ============================================================ */
.tb-checkout { display: flex; flex-direction: column; overflow: hidden; padding-bottom: 0; }
.tb-checkout-scroll { flex: 1; overflow-y: auto; -webkit-overflow-scrolling: touch; padding-bottom: 90px; }
.tb-addr-list { padding: 0; }
.tb-addr-card {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: #fff;
  margin: 10px 12px 0;
  border-radius: 14px;
  padding: 14px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}
.tb-addr-pin {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background: linear-gradient(135deg, #43E97B, #38F9D7);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
  box-shadow: 0 3px 8px rgba(67, 233, 123, 0.3);
}
.tb-addr-pin svg { width: 22px; height: 22px; }
.tb-addr-mid { flex: 1; min-width: 0; }
.tb-addr-name { font-size: 15px; font-weight: 700; color: #222; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.tb-addr-line { font-size: 12px; color: #888; margin-top: 6px; line-height: 1.5; }
.tb-addr-tag {
  font-size: 11px;
  color: #fff;
  background: linear-gradient(135deg, #FF6A88, #FF5000);
  border-radius: 6px;
  padding: 2px 8px;
  font-weight: 600;
}
.tb-addr-ops {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-end;
  flex: none;
  margin-top: 4px;
  width: 100%;
  border-top: 1px dashed rgba(0, 0, 0, 0.06);
  padding-top: 10px;
}
.tb-addr-ops .tb-o-btn { padding: 5px 12px; font-size: 12px; }
[data-theme="dark"] .tb-addr-card { background: #2A2A2A; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); }
[data-theme="dark"] .tb-addr-name { color: #EEE; }
[data-theme="dark"] .tb-addr-line { color: #999; }
[data-theme="dark"] .tb-addr-ops { border-top-color: rgba(255, 255, 255, 0.08); }
.tb-checkout-goods, .tb-pay-method, .tb-pay-tip {
  background: #fff;
  margin: 10px 12px 0;
  border-radius: 14px;
  padding: 14px;
}
.tb-checkout-goods-title { font-size: 14px; font-weight: 700; color: #333; margin-bottom: 10px; }
.tb-checkout-qty { font-size: 12px; color: #999; font-weight: 400; margin-left: 6px; }
.tb-checkout-item { display: flex; align-items: center; gap: 10px; padding: 8px 0; }
.tb-checkout-img { width: 56px; height: 56px; font-size: 28px; }
.tb-checkout-mid { flex: 1; min-width: 0; }
.tb-checkout-name { font-size: 13px; color: #333; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
.tb-checkout-meta { font-size: 11px; color: #A8A8A8; margin-top: 3px; }
.tb-checkout-right { text-align: right; }
.tb-checkout-price { color: #333; font-size: 14px; font-weight: 600; }
.tb-checkout-price::before { content: '¥'; font-size: 11px; }
.tb-checkout-qty { font-size: 11px; color: #A8A8A8; margin-top: 2px; }
.tb-pay-method-row { display: flex; align-items: center; gap: 8px; font-size: 14px; color: #333; }
.tb-pay-method-icon { font-size: 18px; }
.tb-pay-method-val { margin-left: auto; color: #666; }
.tb-pay-balance { margin-top: 10px; padding-top: 10px; border-top: 1px dashed rgba(0, 0, 0, 0.08); font-size: 13px; color: #666; display: flex; align-items: center; }
.tb-pay-balance span { color: #FF5000; font-weight: 700; margin-left: 6px; }
.tb-balance-low { color: #FF5000; }
.tb-balance-topup {
  margin-left: auto;
  font-size: 12px;
  color: #fff;
  background: #FF5000;
  border-radius: 999px;
  padding: 4px 12px;
}
.tb-pay-tip { font-size: 12px; color: #A8A8A8; line-height: 1.7; }
.tb-checkout-bar {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: #fff;
  border-top: 1px solid rgba(0, 0, 0, 0.05);
  display: flex;
  align-items: center;
  padding: 10px 12px;
  padding-bottom: calc(10px + var(--safe-area-bottom, env(safe-area-inset-bottom, 0px)));
  gap: 12px;
  z-index: 8;
}
.tb-checkout-total { flex: 1; text-align: right; font-size: 13px; color: #666; }

/* 下单成功浮层 */
.tb-success-mask {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.45);
  z-index: 60;
  display: flex;
  align-items: center;
  justify-content: center;
}
.tb-success-card {
  width: 280px;
  background: #fff;
  border-radius: 20px;
  padding: 26px 22px;
  text-align: center;
  animation: tb-pop 0.3s var(--ease-spring, cubic-bezier(0.34, 1.56, 0.64, 1));
}
@keyframes tb-pop { from { transform: scale(0.8); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.tb-success-emoji { font-size: 52px; }
.tb-success-title { font-size: 18px; font-weight: 800; color: #1A1A1A; margin-top: 12px; }
.tb-success-sub { font-size: 13px; color: #999; margin-top: 8px; line-height: 1.6; }
.tb-success-btn {
  width: 100%;
  margin-top: 12px;
  background: #F5F5F7;
  color: #555;
  border-radius: 12px;
  padding: 12px;
  font-size: 14px;
  font-weight: 600;
}
.tb-success-btn.main { background: #FF5000; color: #fff; }

/* ============================================================
   角色选择底部弹层
   ============================================================ */
.tb-sheet-mask {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.45);
  z-index: 60;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.22s;
}
.tb-sheet-mask.show { opacity: 1; }
.tb-sheet {
  width: 100%;
  max-width: 480px;
  background: #fff;
  border-radius: 20px 20px 0 0;
  padding: 18px 16px calc(18px + var(--safe-area-bottom, env(safe-area-inset-bottom, 0px)));
  transform: translateY(100%);
  transition: transform 0.25s var(--ease-out, cubic-bezier(0.16, 1, 0.3, 1));
  max-height: 75%;
  display: flex;
  flex-direction: column;
}
.tb-sheet-mask.show .tb-sheet { transform: translateY(0); }
.tb-sheet-title { font-size: 17px; font-weight: 800; color: #1A1A1A; text-align: center; }
.tb-sheet-sub { font-size: 13px; color: #999; text-align: center; margin-top: 6px; }
.tb-sheet-list { flex: 1; overflow-y: auto; -webkit-overflow-scrolling: touch; margin-top: 14px; }
.tb-char-item {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 4px;
  border-radius: 12px;
}
.tb-char-item:active { background: #F7F7F7; }
.tb-char-avatar {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #5A4630;
  font-size: 17px;
  font-weight: 700;
  flex: none;
}
.tb-char-name { flex: 1; text-align: left; font-size: 15px; color: #333; font-weight: 600; }
.tb-char-arrow { color: #C4C4C4; font-size: 18px; }
.tb-sheet-cancel {
  margin-top: 10px;
  background: #F5F5F7;
  color: #666;
  border-radius: 12px;
  padding: 12px;
  font-size: 15px;
  font-weight: 600;
}

/* ============================================================
   我的
   ============================================================ */
.tb-me { flex: 1; overflow-y: auto; -webkit-overflow-scrolling: touch; padding-bottom: calc(16px + var(--safe-area-bottom, env(safe-area-inset-bottom, 0px))); }
.tb-me-head {
  background: linear-gradient(135deg, #FF6A00, #FF9A3D);
  padding: 22px 18px;
  padding-top: calc(22px + var(--safe-area-top, env(safe-area-inset-top, 0px)));
  display: flex;
  align-items: center;
  gap: 12px;
}
.tb-me-avatar {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  color: #FF5000;
  font-size: 22px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}
.tb-me-info { flex: 1; min-width: 0; }
.tb-me-name { color: #fff; font-size: 18px; font-weight: 800; }
.tb-me-id { color: rgba(255, 255, 255, 0.8); font-size: 11px; margin-top: 4px; }
.tb-me-badge {
  background: rgba(255, 255, 255, 0.25);
  color: #fff;
  font-size: 11px;
  border-radius: 999px;
  padding: 4px 10px;
  white-space: nowrap;
}
.tb-me-wallet {
  background: linear-gradient(120deg, #FFF4EC, #FFE7D8);
  margin: -18px 12px 0;
  border-radius: 14px;
  padding: 16px;
  display: flex;
  align-items: center;
  gap: 10px;
  box-shadow: 0 4px 14px rgba(255, 90, 0, 0.12);
  cursor: pointer;
  position: relative;
  z-index: 2;
}
.tb-me-wallet-label { font-size: 12px; color: #B0714F; }
.tb-me-wallet-amt { flex: 1; color: #E64A19; font-size: 22px; font-weight: 800; }
/* v374：删除 ::before 的 ¥ —— tbMoney() 已带 ¥，此前双符号（¥¥0.00） */
.tb-me-wallet-btn { font-size: 12px; color: #fff; background: #FF5000; border-radius: 999px; padding: 6px 14px; }

.tb-order-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  background: #fff;
  margin: 12px 12px 0;
  border-radius: 14px;
  padding: 14px 0;
}
.tb-order-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: #555;
  position: relative;
  padding: 4px 0;
}
.tb-order-ic { font-size: 24px; }
.tb-order-badge {
  position: absolute;
  top: -4px;
  right: calc(50% - 22px);
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 999px;
  background: #FF5000;
  color: #fff;
  font-size: 10px;
  line-height: 16px;
  font-weight: 700;
}

/* 5 行菜单（收藏商品/收藏店铺/已购/赠送/收货地址）：改为独立小卡片 + gap 视觉间隔
   （旧版用单一白底容器 + border-bottom 分隔线，行间太挤 → 用户反馈"太近了"） */
.tb-me-menu {
  margin: 16px 14px 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.tb-me-row {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 16px;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
  text-align: left;
  transition: transform var(--dur-fast) var(--ease-out);
}
.tb-me-row:last-child { border-bottom: none; }
.tb-me-row:active { background: #FAFAFA; }
.tb-me-row-ic {
  width: 46px;
  height: 46px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.12);
}
.tb-me-row-ic svg { width: 24px; height: 24px; }
.tb-me-row-mid { flex: 1; min-width: 0; text-align: left; }
.tb-me-row-name { font-size: 16px; color: #222; font-weight: 700; line-height: 1.35; }
.tb-me-row-sub { font-size: 12.5px; color: #A0A0A0; margin-top: 5px; line-height: 1.3; }
.tb-me-row-count {
  background: rgba(255, 80, 0, 0.1);
  color: #FF5000;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 999px;
  min-width: 22px;
  text-align: center;
  flex: none;
}
.tb-me-row-arrow { color: #C4C4C4; font-size: 20px; font-weight: 400; flex: none; }

.tb-me-stats, .tb-me-love { background: #fff; margin: 12px 12px 0; border-radius: 14px; padding: 14px; }
.tb-me-stats-title, .tb-me-love-title { font-size: 14px; font-weight: 700; color: #333; margin-bottom: 12px; }
.tb-me-stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.tb-me-stat { text-align: center; }
.tb-me-stat-num { font-size: 15px; font-weight: 800; color: #FF5000; }
.tb-me-stat-label { font-size: 11px; color: #999; margin-top: 4px; }
.tb-me-love-empty { font-size: 12px; color: #B9B9B9; text-align: center; padding: 10px 0; }
.tb-char-spend { display: flex; align-items: center; gap: 10px; padding: 8px 0; }
.tb-char-spend-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: linear-gradient(150deg, #FFE0EF, #F98DC4);
  color: #8A3A6B;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  flex: none;
}
.tb-char-spend-info { flex: 1; min-width: 0; }
.tb-char-spend-name { font-size: 14px; font-weight: 600; color: #333; }
.tb-char-spend-sub { font-size: 11px; color: #A8A8A8; margin-top: 2px; }
.tb-char-spend-total { color: #FF5000; font-weight: 700; font-size: 14px; }
.tb-char-spend-total::before { content: '¥'; font-size: 11px; }

.tb-me-tips { margin: 12px; }
.tb-me-tip {
  font-size: 12px;
  color: #B0714F;
  background: #FFF4EC;
  border-radius: 12px;
  padding: 12px 14px;
  line-height: 1.7;
}

/* ============================================================
   订单列表 / 详情
   ============================================================ */
.tb-order-tabs {
  flex: none;
  display: flex;
  background: #fff;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  overflow-x: auto;
}
.tb-order-tab {
  flex: none;
  padding: 12px 14px;
  font-size: 13px;
  color: #777;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
}
.tb-order-tab.on { color: #FF5000; font-weight: 700; border-bottom-color: #FF5000; }
.tb-orders { padding: 12px; }

.tb-order-card {
  background: #fff;
  border-radius: 16px;
  padding: 14px;
  margin-bottom: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  position: relative;
  overflow: hidden;
}
.tb-order-card::before {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background: linear-gradient(180deg, #FF9A3D, #FF5000);
}
.tb-order-card.tb-gift-card::before { background: linear-gradient(180deg, #FF6A88, #D6336C); }
.tb-order-top { display: flex; align-items: center; margin-bottom: 10px; gap: 8px; }
.tb-order-who { font-size: 12px; color: #999; flex: 1; }
.tb-order-status {
  font-size: 11px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 999px;
}
.tb-st-shipping { color: #FF5000; background: rgba(255, 80, 0, 0.1); }
.tb-st-done { color: #999; background: rgba(0, 0, 0, 0.05); }
.tb-st-wait { color: #FF9A3D; background: rgba(255, 154, 61, 0.12); }
.tb-order-goods { display: flex; align-items: center; gap: 12px; }
.tb-order-img { width: 68px; height: 68px; border-radius: 12px; display: flex; align-items: center; justify-content: center; }
.tb-order-mid { flex: 1; min-width: 0; }
.tb-order-name { font-size: 14px; color: #222; font-weight: 700; line-height: 1.4; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tb-order-more { color: #999; font-weight: 400; }
.tb-order-shop { font-size: 11px; color: #A8A8A8; margin-top: 3px; }
.tb-order-time { font-size: 11px; color: #C0C0C0; margin-top: 3px; }
.tb-order-price { color: #FF5000; font-size: 16px; font-weight: 800; }
.tb-order-price::before { content: '¥'; font-size: 12px; margin-right: 1px; }
.tb-order-ship-progress { display: flex; align-items: center; gap: 8px; margin-top: 10px; }
.tb-ship-bar {
  flex: 1;
  height: 4px;
  border-radius: 999px;
  background: #F0F0F0;
  overflow: hidden;
  display: block;
}
.tb-ship-bar i { display: block; height: 100%; background: linear-gradient(90deg, #FF9A3D, #FF5000); border-radius: 999px; transition: width 1s linear; }
.tb-order-ship-tip { font-size: 11px; color: #FF5000; white-space: nowrap; }
.tb-order-actions { display: flex; justify-content: flex-end; align-items: center; gap: 8px; margin-top: 12px; padding-top: 10px; border-top: 1px dashed rgba(0, 0, 0, 0.06); flex-wrap: wrap; }
/* 订单操作按钮：加大点击区（v356 用户反馈"确认收货等按钮 UI 太小"） */
.tb-o-btn {
  font-size: 13px;
  color: #666;
  border: 1px solid #E0E0E0;
  border-radius: 999px;
  padding: 8px 18px;
  background: #fff;
  font-weight: 500;
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
.tb-o-btn:active { background: #F5F5F5; }
.tb-o-btn.main { background: linear-gradient(135deg, #FF6A88, #FF5000); border-color: transparent; color: #fff; font-weight: 700; }
/* 订单卡片底部的礼物签收/派送提示：带图标小胶囊（修复"纯文本没 UI"） */
.tb-o-note {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  font-weight: 600;
  margin-right: auto;
  padding: 4px 10px;
  border-radius: 999px;
  line-height: 1;
}
.tb-o-note-gift {
  color: #2F7D52;
  background: rgba(47, 125, 82, 0.12);
}
.tb-o-note-shipping {
  color: #B0714F;
  background: rgba(176, 113, 79, 0.12);
}
.tb-o-note svg {
  flex: none;
  display: block;
}

.tb-buy-tag {
  font-size: 11px;
  color: #666;
  background: #F5F5F7;
  border-radius: 6px;
  padding: 3px 8px;
  font-weight: 500;
}
.tb-buy-tag.gift { color: #fff; background: linear-gradient(135deg, #FF6A88, #D6336C); }
.tb-buy-tag.payfor { color: #fff; background: linear-gradient(135deg, #FF9A3D, #FF5000); }

/* 赠送列表 */
.tb-gift-sec { font-size: 14px; font-weight: 700; color: #555; padding: 14px 4px 8px; display: flex; align-items: center; gap: 8px; }
.tb-gift-sec::before { content: ''; width: 3px; height: 14px; background: linear-gradient(180deg, #FF6A88, #FF5000); border-radius: 2px; }
.tb-gift-card { border-left: none; }
.tb-gift-card-head { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; padding: 10px 12px; background: linear-gradient(135deg, rgba(255, 106, 136, 0.08), rgba(255, 154, 61, 0.06)); border-radius: 12px; }
.tb-gift-card-ic {
  width: 32px;
  height: 32px;
  border-radius: 10px;
  background: linear-gradient(135deg, #FF6A88, #FF5000);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
  box-shadow: 0 3px 8px rgba(255, 106, 136, 0.3);
}
.tb-gift-card-ic svg { width: 18px; height: 18px; }
.tb-gift-card-title { flex: 1; font-size: 14px; font-weight: 700; color: #222; }
[data-theme="dark"] .tb-gift-card-head { background: linear-gradient(135deg, rgba(255, 106, 136, 0.15), rgba(255, 154, 61, 0.1)); }
[data-theme="dark"] .tb-gift-card-title { color: #EEE; }

/* 订单详情 */
.tb-od-status {
  background: linear-gradient(120deg, #FF6A00, #FF9A3D);
  border-radius: 14px;
  margin: 12px 12px 0;
  padding: 18px 16px;
  display: flex;
  align-items: center;
  gap: 12px;
  color: #fff;
}
.tb-od-status-icon { font-size: 30px; }
.tb-od-status-title { font-size: 18px; font-weight: 800; }
.tb-od-status-sub { font-size: 12px; opacity: 0.85; margin-top: 4px; }
.tb-od-payer {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #fff;
  margin: 10px 12px 0;
  border-radius: 14px;
  padding: 14px;
}
.tb-od-payer-ic { font-size: 22px; }
.tb-od-payer-mid { flex: 1; min-width: 0; }
.tb-od-payer-name { font-size: 14px; font-weight: 700; color: #333; }
.tb-od-payer-sub { font-size: 12px; color: #999; margin-top: 4px; }
.tb-od-payer-amt { color: #FF5000; font-weight: 800; font-size: 16px; }
.tb-od-payer-amt::before { content: '¥'; font-size: 12px; }
.tb-od-goods, .tb-od-addr, .tb-od-info { background: #fff; margin: 10px 12px 0; border-radius: 14px; padding: 14px; }
.tb-od-addr-row { display: flex; font-size: 13px; padding: 4px 0; }
.tb-od-addr-row span:first-child { width: 74px; color: #999; flex: none; }
.tb-od-addr-row span:last-child { flex: 1; color: #333; }
.tb-od-info-row { display: flex; font-size: 12px; padding: 5px 0; color: #666; }
.tb-od-info-row span:first-child { width: 74px; color: #999; flex: none; }
.tb-od-info-row span:last-child { flex: 1; text-align: right; word-break: break-all; }
.tb-od-total { border-top: 1px dashed rgba(0, 0, 0, 0.08); margin-top: 8px; padding-top: 10px; }
.tb-od-actions {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  padding: 16px 12px calc(16px + var(--safe-area-bottom, env(safe-area-inset-bottom, 0px)));
}

/* 收藏店铺卡片 — 大封面图 + 信息 + 双操作按钮 */
.tb-fav-shops { padding: 12px 12px 0; }
.tb-fav-shop {
  background: #fff;
  border-radius: 16px;
  padding: 14px;
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  position: relative;
}
.tb-fav-shop-cover {
  width: 60px;
  height: 60px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  flex: none;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.12);
}
.tb-fav-shop-cover-ic { display: flex; }
.tb-fav-shop-cover-ic svg { width: 30px; height: 30px; }
.tb-fav-shop-info { flex: 1; min-width: 0; text-align: left; }
.tb-fav-shop-name { font-size: 15px; font-weight: 700; color: #222; margin-bottom: 6px; }
.tb-fav-shop-sub { font-size: 11px; color: #A0A0A0; line-height: 1.5; display: flex; flex-wrap: wrap; gap: 4px; }
.tb-fav-shop-rating { color: #FF9500; font-weight: 600; }
.tb-fav-shop-ops { display: flex; flex-direction: column; gap: 6px; flex: none; }
.tb-fav-shop-go {
  background: linear-gradient(135deg, #FF6A88, #FF5000);
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  padding: 6px 12px;
  border-radius: 999px;
}
.tb-fav-shop-unfav {
  background: rgba(0, 0, 0, 0.04);
  color: #777;
  font-size: 11px;
  padding: 5px 10px;
  border-radius: 999px;
}
.tb-fav-shop-unfav:active { background: rgba(0, 0, 0, 0.08); }
[data-theme="dark"] .tb-fav-shop { background: #2A2A2A; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3); }
[data-theme="dark"] .tb-fav-shop-name { color: #EEE; }
[data-theme="dark"] .tb-fav-shop-sub { color: #888; }
[data-theme="dark"] .tb-fav-shop-unfav { background: rgba(255, 255, 255, 0.08); color: #AAA; }

/* 店铺头 */
.tb-shop-head {
  display: flex;
  align-items: center;
  gap: 12px;
  background: #fff;
  padding: 16px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.04);
}
.tb-shop-head-avatar {
  width: 56px;
  height: 56px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  flex: none;
}
.tb-shop-head-name { font-size: 16px; font-weight: 800; color: #333; }
.tb-shop-head-desc { font-size: 12px; color: #999; margin-top: 4px; }
.tb-shop-head-meta { font-size: 11px; color: #A8A8A8; margin-top: 4px; }

/* ============================================================
   深色模式
   ============================================================ */
[data-theme="dark"] .tb-view {
  background: #141414;
  color: #EDEDED;
}
[data-theme="dark"] .tb-nav,
[data-theme="dark"] .tb-tabbar,
[data-theme="dark"] .tb-cats,
[data-theme="dark"] .tb-p-card,
[data-theme="dark"] .tb-cart-item,
[data-theme="dark"] .tb-cart-checkout,
[data-theme="dark"] .tb-detail-info,
[data-theme="dark"] .tb-detail-section,
[data-theme="dark"] .tb-shop-bar,
[data-theme="dark"] .tb-detail-bar,
[data-theme="dark"] .tb-checkout-goods,
[data-theme="dark"] .tb-pay-method,
[data-theme="dark"] .tb-pay-tip,
[data-theme="dark"] .tb-addr-card,
[data-theme="dark"] .tb-checkout-bar,
[data-theme="dark"] .tb-order-grid,
[data-theme="dark"] .tb-me-stats,
[data-theme="dark"] .tb-me-love,
[data-theme="dark"] .tb-order-tabs,
[data-theme="dark"] .tb-order-card,
[data-theme="dark"] .tb-od-goods,
[data-theme="dark"] .tb-od-addr,
[data-theme="dark"] .tb-od-info,
[data-theme="dark"] .tb-od-payer,
[data-theme="dark"] .tb-fav-shop,
[data-theme="dark"] .tb-shop-head,
[data-theme="dark"] .tb-sheet,
[data-theme="dark"] .tb-success-card,
[data-theme="dark"] .tb-search-input,
[data-theme="dark"] .tb-hot-tag {
  background: #1E1E1E;
  color: #EDEDED;
}
[data-theme="dark"] .tb-nav { border-bottom-color: rgba(255, 255, 255, 0.07); }
[data-theme="dark"] .tb-tabbar { border-top-color: rgba(255, 255, 255, 0.07); }
/* 独立小卡片（修复"我的"页面行间距后的 .tb-me-row + tb-o-note 订单状态徽章）—— 暗色下跟其他卡片同色 */
[data-theme="dark"] .tb-me-row,
[data-theme="dark"] .tb-o-note,
[data-theme="dark"] .tb-o-note-gift {
  background: #1E1E1E;
  color: #EDEDED;
}
[data-theme="dark"] .tb-nav-btn { color: #EDEDED; }
[data-theme="dark"] .tb-nav-btn-glass { background: rgba(30, 30, 30, 0.8); }
[data-theme="dark"] .tb-nav-title,
[data-theme="dark"] .tb-p-name,
[data-theme="dark"] .tb-cart-name,
[data-theme="dark"] .tb-detail-name,
[data-theme="dark"] .tb-checkout-name,
[data-theme="dark"] .tb-checkout-price,
[data-theme="dark"] .tb-me-row-name,
[data-theme="dark"] .tb-me-row-count,
[data-theme="dark"] .tb-order-name,
[data-theme="dark"] .tb-order-price,
[data-theme="dark"] .tb-od-payer-name,
[data-theme="dark"] .tb-od-info-row,
[data-theme="dark"] .tb-od-addr-row span:last-child,
[data-theme="dark"] .tb-fav-shop-name,
[data-theme="dark"] .tb-shop-head-name,
[data-theme="dark"] .tb-char-name,
[data-theme="dark"] .tb-success-title,
[data-theme="dark"] .tb-detail-sec-title,
[data-theme="dark"] .tb-checkout-goods-title,
[data-theme="dark"] .tb-pay-method-row,
[data-theme="dark"] .tb-me-stats-title,
[data-theme="dark"] .tb-me-love-title,
[data-theme="dark"] .tb-gift-sec,
[data-theme="dark"] .tb-gift-card-title,
[data-theme="dark"] .tb-char-spend-name,
[data-theme="dark"] .tb-order-cell,
[data-theme="dark"] .tb-cat-name,
[data-theme="dark"] .tb-search-input,
[data-theme="dark"] .tb-hot-tag,
[data-theme="dark"] .tb-order-tab,
[data-theme="dark"] .tb-tab-item { color: #EDEDED; }
[data-theme="dark"] .tb-tab-item.active,
[data-theme="dark"] .tb-order-tab.on,
[data-theme="dark"] .tb-order-status.tb-st-shipping,
[data-theme="dark"] .tb-order-ship-tip { color: #FF7A3D; }
[data-theme="dark"] .tb-me-row:active { background: #262626; }
[data-theme="dark"] .tb-me-row { border-bottom-color: rgba(255, 255, 255, 0.05); }
[data-theme="dark"] .tb-detail-desc { background: #262626; color: #B9B9B9; }
[data-theme="dark"] .tb-spec-opt { background: #2A2A2A; color: #C9C9C9; }
[data-theme="dark"] .tb-spec-opt.on { background: #3A2A20; color: #FF7A3D; border-color: #FF7A3D; }
[data-theme="dark"] .tb-step { background: #2A2A2A; color: #C9C9C9; }
[data-theme="dark"] .tb-stepper { border-color: rgba(255, 255, 255, 0.1); }
[data-theme="dark"] .tb-check { background: #2A2A2A; border-color: #555; }
[data-theme="dark"] .tb-check.on { background: #FF7A3D; border-color: #FF7A3D; }
[data-theme="dark"] .tb-cat-emoji { background: #2C2C2C; }
[data-theme="dark"] .tb-recs-banner { background: linear-gradient(120deg, #33231A, #3A2518); }
[data-theme="dark"] .tb-recs-title { color: #FF9A5C; }
[data-theme="dark"] .tb-recs-sub { color: #C08A6A; }
[data-theme="dark"] .tb-recs-btn { color: #FF9A5C; border-color: rgba(255, 154, 92, 0.4); background: rgba(255, 255, 255, 0.06); }
[data-theme="dark"] .tb-p-tag { background: #3A2A20; color: #FF9A5C; }
[data-theme="dark"] .tb-buy-tag { background: #2A2A2A; }
[data-theme="dark"] .tb-buy-tag.gift { background: #3A2028; color: #FF7A9C; }
[data-theme="dark"] .tb-buy-tag.payfor { background: #3A2A20; color: #FF9A5C; }
[data-theme="dark"] .tb-me-wallet { background: linear-gradient(120deg, #33231A, #3A2518); }
[data-theme="dark"] .tb-me-wallet-label { color: #C08A6A; }
[data-theme="dark"] .tb-me-wallet-amt { color: #FF9A5C; }
[data-theme="dark"] .tb-me-tip { background: #33231A; color: #C08A6A; }
[data-theme="dark"] .tb-char-spend-avatar { background: linear-gradient(150deg, #3A2028, #4A2A38); color: #FF9ABE; }
[data-theme="dark"] .tb-order-actions { border-top-color: rgba(255, 255, 255, 0.07); }
[data-theme="dark"] .tb-pay-balance { border-top-color: rgba(255, 255, 255, 0.08); }
[data-theme="dark"] .tb-o-btn { border-color: #3A3A3A; color: #C9C9C9; }
[data-theme="dark"] .tb-o-btn.main { border-color: #FF7A3D; background: #FF7A3D; color: #fff; }
[data-theme="dark"] .tb-empty { color: #888; }
[data-theme="dark"] .tb-feed-end { color: #555; }
[data-theme="dark"] .tb-nav-fav { background: #2A2A2A; color: #C9C9C9; }
[data-theme="dark"] .tb-nav-fav.on { background: #3A2A20; color: #FF9A5C; }
[data-theme="dark"] .tb-sheet-cancel,
[data-theme="dark"] .tb-success-btn { background: #2A2A2A; color: #C9C9C9; }
[data-theme="dark"] .tb-char-item:active { background: #262626; }
[data-theme="dark"] .tb-addr-tag { background: #3A2A20; color: #FF9A5C; }
[data-theme="dark"] .tb-shop-enter { color: #FF9A5C; border-color: #FF9A5C; }
[data-theme="dark"] .tb-search { color: #999; }
[data-theme="dark"] .tb-ship-bar { background: #2A2A2A; }
[data-theme="dark"] .tb-order-tab { border-bottom-color: transparent; }
[data-theme="dark"] .tb-tab-item { color: #777; }
[data-theme="dark"] .tb-tab-item.active { color: #FF7A3D; }

/* ============================================================
   聊天消息卡片（tb-gift / tb-payfor）
   ============================================================ */
.msg-tb-card {
  width: 248px;
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
  cursor: pointer;
}
.msg-tb-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 12px 10px;
}
.msg-tb-head-ic {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  flex: none;
}
.msg-tb-head-mid { flex: 1; min-width: 0; }
.msg-tb-head-title { font-size: 14px; font-weight: 700; color: #1A1A1A; }
.msg-tb-head-sub { font-size: 11px; color: #999; margin-top: 3px; }
.msg-tb-status {
  font-size: 11px;
  font-weight: 600;
  padding: 3px 8px;
  border-radius: 999px;
  white-space: nowrap;
  flex: none;
}
.msg-tb-status.tb-st-shipping { background: #FFF0E8; color: #FF5000; }
.msg-tb-status.tb-st-done { background: #F2F2F2; color: #999; }
.msg-tb-status.tb-st-wait { background: #FFF7E8; color: #FF9A3D; }
.msg-tb-body {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 12px 12px;
}
.msg-tb-img {
  width: 54px;
  height: 54px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 27px;
  flex: none;
}
.msg-tb-img span { filter: drop-shadow(0 3px 6px rgba(0, 0, 0, 0.12)); }
.msg-tb-info { flex: 1; min-width: 0; }
.msg-tb-name {
  font-size: 13px;
  font-weight: 600;
  color: #333;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.msg-tb-meta { font-size: 11px; color: #A8A8A8; margin-top: 3px; }
.msg-tb-price { color: #FF5000; font-weight: 800; font-size: 14px; }
.msg-tb-price::before { content: '¥'; font-size: 11px; }
.msg-tb-note {
  font-size: 12px;
  color: #666;
  line-height: 1.5;
  padding: 0 12px 10px;
  border-bottom: 1px dashed rgba(0, 0, 0, 0.07);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.msg-tb-actions {
  display: flex;
  gap: 8px;
  padding: 10px 12px;
}
.msg-tb-btn {
  flex: 1;
  font-size: 12px;
  font-weight: 600;
  color: #666;
  border: 1px solid #E0E0E0;
  border-radius: 999px;
  padding: 7px 0;
  text-align: center;
  background: #fff;
  cursor: pointer;
}
.msg-tb-btn.main { background: #FF5000; border-color: #FF5000; color: #fff; }
.msg-tb-btn.gift { background: linear-gradient(120deg, #FF6A88, #FF7E5F); border: none; color: #fff; }
.msg-tb-btn:active { opacity: 0.85; }
[data-theme="dark"] .msg-tb-card { background: #1E1E1E; }
[data-theme="dark"] .msg-tb-head-title { color: #EDEDED; }
[data-theme="dark"] .msg-tb-name { color: #EDEDED; }
[data-theme="dark"] .msg-tb-note { color: #B9B9B9; border-bottom-color: rgba(255, 255, 255, 0.08); }
[data-theme="dark"] .msg-tb-btn { color: #C9C9C9; border-color: #3A3A3A; background: #262626; }
[data-theme="dark"] .msg-tb-btn.main { background: #FF7A3D; border-color: #FF7A3D; color: #fff; }
[data-theme="dark"] .msg-tb-status.tb-st-done { background: #2A2A2A; color: #999; }

/* 桃宝决策卡片（char 对「回复」的应答 + 同意/拒绝） */
.msg-tb-decision-card .msg-tb-head { padding: 12px 12px 0; }
.msg-tb-body-text { padding: 8px 12px 4px; font-size: 14px; line-height: 1.5; color: #1A1A1A; word-break: break-word; }
.msg-tb-decided { display: inline-block; padding: 8px 14px; border-radius: 10px; font-size: 13px; font-weight: 600; }
.msg-tb-decided.accept { background: rgba(255, 80, 0, 0.12); color: #FF5000; }
.msg-tb-decided.reject { background: rgba(0, 0, 0, 0.06); color: #999; }
[data-theme="dark"] .msg-tb-body-text { color: #EDEDED; }
[data-theme="dark"] .msg-tb-decided.reject { background: rgba(255, 255, 255, 0.08); color: #AAA; }

/* 聊天里订单详情抽屉 */
.tb-chat-sheet .wx-detail-sheet-body { padding-bottom: calc(20px + var(--safe-area-bottom, env(safe-area-inset-bottom, 0px))); }

/* ============================================================
   v476 · 无 emoji 插画系统 + 真实头像 + 图标美化
   ============================================================ */

/* —— 商品定制 SVG 插画（白色线性，置于渐变底）—— */
.tb-art { width: 100%; height: 100%; display: block; }
.tb-p-art { width: 58px; height: 58px; filter: drop-shadow(0 5px 9px rgba(0, 0, 0, 0.16)); }
.tb-featured-row .tb-p-art { width: 42px; height: 42px; }
.tb-detail-art { width: 118px; height: 118px; filter: drop-shadow(0 10px 18px rgba(0, 0, 0, 0.18)); }
.tb-cart-img .tb-art { width: 26px; height: 26px; }
.tb-order-img .tb-art { width: 28px; height: 28px; }
.tb-checkout-img .tb-art { width: 24px; height: 24px; }
.tb-cat-head-art { width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; }
.tb-cat-head-art svg { width: 44px; height: 44px; }
.tb-banner-art-wrap {
  position: absolute;
  right: 20px;
  bottom: 6px;
  width: 58px;
  height: 58px;
  z-index: 1;
}
.tb-banner-art { width: 58px; height: 58px; filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.14)); }

/* —— 分类图标（深橙单色，浅橙圆底）—— */
.tb-cat-emoji { color: #E64A19; }
.tb-cat-emoji svg { width: 24px; height: 24px; }

/* —— 界面状态/菜单图标 —— */
.tb-empty-ico { display: block; margin: 0 auto 12px; color: #C9C9C9; width: 52px; height: 52px; }
.tb-empty-ico svg { width: 52px; height: 52px; }
.tb-success-ico { display: flex; justify-content: center; color: #FF5000; }
.tb-success-ico svg { width: 56px; height: 56px; }
.tb-order-ic svg { width: 22px; height: 22px; }
.tb-me-row-ic { display: flex; align-items: center; justify-content: center; }
.tb-me-row-ic svg { width: 20px; height: 20px; }
.tb-od-status-icon { display: flex; align-items: center; }
.tb-od-status-icon svg { width: 30px; height: 30px; }
.tb-od-payer-ic { display: flex; align-items: center; }
.tb-od-payer-ic svg { width: 22px; height: 22px; }
.tb-gift-card-ic { display: flex; align-items: center; }
.tb-gift-card-ic svg { width: 18px; height: 18px; }
.tb-cart-float-ic svg { width: 20px; height: 20px; }
.tb-tab-icon svg { width: 22px; height: 22px; }
.tb-refresh-ic svg { width: 20px; height: 20px; }
.tb-nav-heart { color: #fff; }
.tb-nav-heart.on { color: #FF5000; }

/* 勾选圆里的 ✓ */
.tb-check span { font-size: 13px; font-weight: 800; line-height: 1; }

/* —— 真实头像（圆形，idb 图片；加载前显示首字回退）—— */
.tb-ava {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  overflow: hidden;
  flex: none;
  background: linear-gradient(150deg, #FFD9E0, #F98DC4);
  color: #8A3A6B;
  font-weight: 700;
  font-size: 15px;
}
.tb-ava img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.tb-ava-fallback { line-height: 1; }
.tb-me-avatar { width: 54px; height: 54px; font-size: 22px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.16); background: rgba(255, 255, 255, 0.92); color: #E64A19; }
.tb-char-ava { width: 42px; height: 42px; font-size: 16px; }
.tb-char-spend-ava { width: 36px; height: 36px; font-size: 13px; }

/* —— 聊天消息卡片：头部/正文图用插画 —— */
.msg-tb-head-ic .tb-art { width: 22px; height: 22px; }
.msg-tb-head-ic {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
}
.msg-tb-img .tb-art { width: 28px; height: 28px; }
.msg-tb-img {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
}

/* 深色模式补充 */
[data-theme="dark"] .tb-ava { background: linear-gradient(150deg, #3A2028, #4A2A38); color: #FF9ABE; }
[data-theme="dark"] .tb-me-avatar { background: rgba(255, 255, 255, 0.12); color: #FFB38A; }
[data-theme="dark"] .tb-empty-ico { color: #555; }

/* ============================================================
   v478 · AI 推荐标签 / 搜索历史 / 地址管理 / 分享
   ============================================================ */

/* AI 推荐标识 */
.tb-recs-badge {
  display: inline-block;
  vertical-align: 1px;
  font-size: 10px;
  font-weight: 800;
  color: #fff;
  background: linear-gradient(120deg, #FF6A88, #FF9A3D);
  border-radius: 5px;
  padding: 1px 5px;
  margin-left: 5px;
  letter-spacing: 0.5px;
}

/* 搜索历史清空 */
.tb-hot-title { display: flex; align-items: center; justify-content: space-between; }
.tb-hist-clear {
  font-size: 11px;
  color: #A8A8A8;
  padding: 2px 8px;
  border-radius: 999px;
  border: 1px solid rgba(0, 0, 0, 0.08);
}
.tb-hist-clear:active { background: rgba(0, 0, 0, 0.04); }

/* 地址管理 */
.tb-addr-ops { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; flex: none; }
.tb-addr-tip {
  font-size: 12px;
  color: #A8A8A8;
  text-align: center;
  padding: 18px 24px 8px;
  line-height: 1.7;
}
.tb-addr-card[data-act="addr-switch"]:active { background: #F9F9F9; }
[data-theme="dark"] .tb-addr-card[data-act="addr-switch"]:active { background: #262626; }
[data-theme="dark"] .tb-hist-clear { border-color: rgba(255, 255, 255, 0.12); color: #888; }

/* 详情底栏：三个小图标按钮略收窄，容纳「分享」 */
.tb-bar-btn { width: 46px; }

/* ============================================================
   v481 · 深色模式补充
   ============================================================ */
[data-theme="dark"] .tb-o-btn { background: #2A2A2A; border-color: rgba(255, 255, 255, 0.1); color: #CCC; }
[data-theme="dark"] .tb-o-btn:active { background: #333; }
[data-theme="dark"] .tb-buy-tag { background: #2A2A2A; color: #BBB; }
[data-theme="dark"] .tb-me-row { background: #1E1E1E; border-bottom-color: rgba(255, 255, 255, 0.05); }
[data-theme="dark"] .tb-me-row:active { background: #262626; }
[data-theme="dark"] .tb-me-menu { background: #1E1E1E; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); }
[data-theme="dark"] .tb-me-row-name { color: #EEE; }
[data-theme="dark"] .tb-me-row-sub { color: #777; }
[data-theme="dark"] .tb-me-row-count { background: rgba(255, 80, 0, 0.15); color: #FF8040; }
[data-theme="dark"] .tb-order-card { background: #1E1E1E; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4); }
[data-theme="dark"] .tb-order-name { color: #EEE; }
[data-theme="dark"] .tb-order-actions { border-top-color: rgba(255, 255, 255, 0.08); }

/* ============================================================
   v482 · 购物车升级（操作按钮/自定义商品/底部栏）
   ============================================================ */
.tb-cart-ops { display: flex; gap: 6px; margin-top: 8px; }
.tb-cart-op {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  padding: 4px 10px;
  border-radius: 999px;
  font-weight: 600;
}
.tb-cart-op svg { width: 13px; height: 13px; }
.tb-cart-op.gift { color: #D6336C; background: rgba(255, 106, 136, 0.12); }
.tb-cart-op.payfor { color: #FF5000; background: rgba(255, 80, 0, 0.1); }
.tb-cart-op.del { color: #999; background: rgba(0, 0, 0, 0.05); }
.tb-cart-op:active { filter: brightness(0.92); }

/* 自定义商品弹层 */
.tb-custom-form { padding: 4px 20px 8px; }
.tb-custom-label { font-size: 12px; color: #888; font-weight: 600; margin: 12px 0 6px; }
.tb-custom-input {
  width: 100%;
  border: 1px solid #E5E5E5;
  border-radius: 10px;
  padding: 10px 12px;
  font-size: 14px;
  background: #FAFAFA;
  color: #222;
  box-sizing: border-box;
}
.tb-custom-input:focus { border-color: #FF5000; background: #fff; outline: none; }
.tb-custom-colors { display: flex; gap: 10px; padding: 4px 0 6px; }
.tb-custom-color {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 3px solid transparent;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
}
.tb-custom-color.on { border-color: #333; transform: scale(1.1); }
.tb-sheet-ok {
  display: block;
  width: calc(100% - 40px);
  margin: 14px auto 8px;
  padding: 12px;
  background: linear-gradient(135deg, #FF6A88, #FF5000);
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  border-radius: 999px;
  box-shadow: 0 4px 12px rgba(255, 80, 0, 0.25);
}
[data-theme="dark"] .tb-custom-input { background: #2A2A2A; border-color: rgba(255, 255, 255, 0.1); color: #EEE; }
[data-theme="dark"] .tb-custom-input:focus { border-color: #FF5000; background: #2A2A2A; }
[data-theme="dark"] .tb-custom-color.on { border-color: #FF9A5C; }
[data-theme="dark"] .tb-cart-op.del { background: rgba(255, 255, 255, 0.08); color: #999; }
[data-theme="dark"] .tb-cart-op.gift { background: rgba(255, 106, 136, 0.2); }
[data-theme="dark"] .tb-cart-op.payfor { background: rgba(255, 80, 0, 0.2); }

/* 空态双按钮 */
.tb-empty-btn.ghost { background: #fff; border: 1px solid #E0E0E0; color: #666; margin-top: 0; }
[data-theme="dark"] .tb-empty-btn.ghost { background: #2A2A2A; border-color: rgba(255, 255, 255, 0.1); color: #BBB; }

/* ============================================================
   v482 · 桃宝账单独立页
   ============================================================ */
.tb-stats { padding: 0 0 24px; }
.tb-stats-hero {
  margin: 12px 12px 0;
  border-radius: 18px;
  padding: 18px;
  background: linear-gradient(135deg, #FF6A88 0%, #FF7E1F 60%, #FF9A3D 100%);
  color: #fff;
  box-shadow: 0 8px 20px rgba(255, 106, 136, 0.3);
}
.tb-stats-hero-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.tb-stats-hero-label { font-size: 13px; font-weight: 600; opacity: 0.9; }
.tb-stats-hero-badge { font-size: 11px; background: rgba(255, 255, 255, 0.22); padding: 3px 10px; border-radius: 999px; }
.tb-stats-hero-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.tb-stats-hero-cell { background: rgba(255, 255, 255, 0.16); border-radius: 14px; padding: 12px 14px; }
.tb-stats-hero-num { font-size: 20px; font-weight: 800; letter-spacing: 0.3px; }
.tb-stats-hero-name { font-size: 11px; opacity: 0.85; margin-top: 4px; }
.tb-stats-hero-sub { font-size: 11px; opacity: 0.9; margin-top: 12px; line-height: 1.6; }
.tb-stats-sec { background: #fff; margin: 12px 12px 0; border-radius: 16px; padding: 14px; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04); }
.tb-stats-sec-title { display: flex; align-items: center; gap: 7px; font-size: 14px; font-weight: 700; color: #333; margin-bottom: 10px; }
.tb-stats-sec-title svg { width: 16px; height: 16px; color: #FF5000; }
.tb-rank-row { display: flex; align-items: center; gap: 10px; padding: 9px 2px; border-bottom: 1px solid rgba(0, 0, 0, 0.04); }
.tb-rank-row:last-child { border-bottom: none; }
.tb-rank-no { width: 20px; font-size: 12px; font-weight: 800; color: #C4C4C4; text-align: center; flex: none; }
.tb-rank-no.top { color: #FF9500; }
.tb-rank-ava { flex: none; }
.tb-rank-info { flex: 1; min-width: 0; text-align: left; }
.tb-rank-name { font-size: 13px; font-weight: 600; color: #333; }
.tb-rank-sub { font-size: 11px; color: #A0A0A0; margin-top: 2px; }
.tb-rank-amt { font-size: 14px; font-weight: 800; color: #FF5000; }
.tb-rank-empty { font-size: 12px; color: #B9B9B9; text-align: center; padding: 14px 0; }
.tb-stats-tl { }
.tb-stats-tl-item { display: flex; align-items: center; gap: 10px; padding: 10px 2px; border-bottom: 1px solid rgba(0, 0, 0, 0.04); }
.tb-stats-tl-item:last-child { border-bottom: none; }
.tb-stats-tl-dot { width: 10px; height: 10px; border-radius: 50%; flex: none; background: #E0E0E0; }
.tb-stats-tl-dot.buy { background: #FF9A3D; }
.tb-stats-tl-dot.gift { background: #D6336C; }
.tb-stats-tl-dot.in { background: #43E97B; }
.tb-stats-tl-dot.payfor { background: #4FACFE; }
.tb-stats-tl-main { flex: 1; min-width: 0; text-align: left; }
.tb-stats-tl-name { font-size: 13px; color: #333; font-weight: 500; display: flex; align-items: center; gap: 6px; }
.tb-stats-tl-tag { font-size: 10px; font-weight: 600; padding: 1px 6px; border-radius: 5px; }
.tb-stats-tl-tag.buy { color: #E64A19; background: #FFF4EC; }
.tb-stats-tl-tag.gift { color: #D6336C; background: #FFF0F5; }
.tb-stats-tl-tag.in { color: #1B9C5B; background: #EDFBF3; }
.tb-stats-tl-tag.payfor { color: #1B6FB6; background: #EDF5FD; }
.tb-stats-tl-sub { font-size: 11px; color: #A0A0A0; margin-top: 3px; }
.tb-stats-tl-amt { font-size: 14px; font-weight: 800; flex: none; }
.tb-stats-tl-amt.out { color: #333; }
.tb-stats-tl-amt.in { color: #FF5000; }
/* 账单时间线删除按钮（v357：总账账单可删除） */
.tb-stats-tl-del {
  flex: none;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #C4C4C4;
  background: transparent;
  border: none;
  cursor: pointer;
  transition: color var(--dur-fast, 0.15s), background var(--dur-fast, 0.15s);
}
.tb-stats-tl-del svg { width: 15px; height: 15px; }
.tb-stats-tl-del:hover, .tb-stats-tl-del:active { color: #E85555; background: rgba(232, 85, 85, 0.1); }
[data-theme="dark"] .tb-stats-tl-del { color: #8A8A8A; }
.tb-me-stats { cursor: pointer; transition: transform 0.1s; }
.tb-me-stats:active { transform: scale(0.985); }
.tb-me-stats-more { float: right; font-size: 11px; color: #B0B0B0; font-weight: 500; }
[data-theme="dark"] .tb-stats-sec { background: #1E1E1E; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); }
[data-theme="dark"] .tb-stats-sec-title { color: #EEE; }
[data-theme="dark"] .tb-rank-row { border-bottom-color: rgba(255, 255, 255, 0.05); }
[data-theme="dark"] .tb-rank-name { color: #EEE; }
[data-theme="dark"] .tb-rank-sub { color: #888; }
[data-theme="dark"] .tb-stats-tl-item { border-bottom-color: rgba(255, 255, 255, 0.05); }
[data-theme="dark"] .tb-stats-tl-name { color: #EEE; }
[data-theme="dark"] .tb-stats-tl-amt.out { color: #CCC; }
[data-theme="dark"] .tb-stats-tl-tag.buy { color: #FF9A5C; background: rgba(255, 154, 92, 0.15); }
[data-theme="dark"] .tb-stats-tl-tag.gift { color: #FF9ABE; background: rgba(255, 106, 136, 0.15); }
[data-theme="dark"] .tb-stats-tl-tag.in { color: #7BE0A8; background: rgba(67, 233, 123, 0.12); }
[data-theme="dark"] .tb-stats-tl-tag.payfor { color: #8CC5F8; background: rgba(79, 172, 254, 0.15); }
[data-theme="dark"] .tb-me-stats-more { color: #777; }

/* ============================================================
   v482 · 确认订单页放大 + 排版舒适化
   ============================================================ */
.tb-checkout-bar { padding: 14px 16px; padding-bottom: calc(14px + var(--safe-area-bottom, env(safe-area-inset-bottom, 0px))); }
.tb-checkout-btn { font-size: 16px; font-weight: 700; padding: 13px 30px; }
.tb-checkout-btn.disabled { background: #FFB199; color: #fff; }
.tb-cart-checkout .tb-checkout-btn { font-size: 15px; padding: 12px 26px; }
.tb-pay-balance { font-size: 14px; color: #555; }
.tb-balance-low { color: #E64A19; font-weight: 800; }
.tb-balance-topup { font-size: 13px; padding: 7px 16px; box-shadow: 0 3px 8px rgba(255, 80, 0, 0.2); }
.tb-checkout-total { font-size: 14px; }
.tb-checkout-total .tb-total-price { font-size: 22px; }
.tb-pay-tip { font-size: 13px; padding: 4px 2px; }
.tb-checkout-goods-title { font-size: 15px; }
.tb-checkout-item { padding: 12px 0; }
.tb-addr-card { margin: 14px 12px 0; }

/* 全局舒适化：间距与留白 */
.tb-feed { gap: 12px; padding: 14px 12px; }
.tb-p-body { padding: 10px 12px 13px; gap: 6px; }
.tb-cart-item { padding: 14px; gap: 12px; }
.tb-cats { gap: 8px; padding: 12px 8px 4px; }
.tb-detail-info { padding: 16px 16px 12px; }
.tb-detail-section { padding: 14px 16px; }
.tb-me-stats, .tb-me-love { padding: 16px; }
.tb-order-card { padding: 15px; margin-bottom: 14px; }
.tb-page-body { padding-bottom: calc(22px + var(--safe-area-bottom, env(safe-area-inset-bottom, 0px))); }

/* 订单时间线（下单 → 发货 → 送达） */
.tb-order-timeline {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 12px;
  padding: 10px 12px;
  background: rgba(255, 154, 61, 0.07);
  border-radius: 10px;
}
.tb-tl-node { display: flex; align-items: center; gap: 5px; font-size: 10px; color: #B0714F; white-space: nowrap; }
.tb-tl-node.done { color: #FF5000; font-weight: 700; }
.tb-tl-node.soon { color: #B0714F; }
.tb-tl-line { flex: 1; height: 3px; border-radius: 999px; background: #E8D9C8; position: relative; overflow: hidden; }
.tb-tl-line i { position: absolute; left: 0; top: 0; bottom: 0; background: linear-gradient(90deg, #FF9A3D, #FF5000); border-radius: 999px; }
[data-theme="dark"] .tb-order-timeline { background: rgba(255, 154, 61, 0.1); }
[data-theme="dark"] .tb-tl-node { color: #C89A72; }
[data-theme="dark"] .tb-tl-line { background: #3A332C; }

/* 详情底栏主按钮加图标 */
.tb-bar-action { gap: 6px; }
.tb-bar-action-ic { display: flex; align-items: center; }
.tb-bar-action-ic svg { width: 17px; height: 17px; }

/* ============================================================
   桃宝「我的」设置面板（生成提示词 / 自定义偏好 / 页面 CSS）
   ============================================================ */
.tb-set-mask {
  position: fixed; inset: 0;
  background: rgba(0, 0, 0, 0.45);
  display: flex; align-items: flex-end; justify-content: center;
  z-index: 200;
  animation: tbSetFade 0.2s ease;
}
@keyframes tbSetFade { from { opacity: 0 } to { opacity: 1 } }
.tb-set-sheet {
  width: 100%; max-width: 480px;
  background: #fff;
  border-radius: 18px 18px 0 0;
  max-height: 86vh;
  display: flex; flex-direction: column;
  animation: tbSetUp 0.26s cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes tbSetUp { from { transform: translateY(100%) } to { transform: translateY(0) } }
.tb-set-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 18px 12px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}
.tb-set-title { font-size: 16px; font-weight: 800; color: #222; }
.tb-set-close {
  width: 30px; height: 30px; border: none; border-radius: 50%;
  background: #F2F2F2; color: #888; font-size: 20px; line-height: 1; cursor: pointer;
}
.tb-set-close:active { background: #E6E6E6; }
.tb-set-body { overflow-y: auto; padding: 8px 18px 4px; }
.tb-set-sec { padding: 14px 0; border-bottom: 1px solid rgba(0, 0, 0, 0.05); }
.tb-set-sec:last-child { border-bottom: none; }
.tb-set-label { font-size: 13px; font-weight: 700; color: #333; margin-bottom: 8px; display: flex; align-items: center; gap: 6px; }
.tb-set-label .tb-set-tag { font-size: 10px; font-weight: 600; color: #FF5000; background: rgba(255,80,0,0.1); padding: 1px 7px; border-radius: 999px; }
.tb-set-hint { font-size: 11px; color: #A0A0A0; margin-top: 6px; line-height: 1.4; }
.tb-set-input, .tb-set-area {
  width: 100%;
  border: 1px solid #E6E6E6;
  border-radius: 12px;
  padding: 11px 12px;
  font-size: 13px;
  font-family: inherit;
  color: #333;
  background: #FAFAFA;
  resize: vertical;
  line-height: 1.5;
  box-sizing: border-box;
}
.tb-set-input:focus, .tb-set-area:focus { outline: none; border-color: #FF5000; background: #fff; }
.tb-set-area { min-height: 64px; }
.tb-set-area.code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; min-height: 110px; }
.tb-set-actions { display: flex; gap: 8px; margin-top: 10px; }
.tb-set-btn {
  flex: 1; padding: 10px; border: none; border-radius: 10px;
  font-size: 13px; font-weight: 700; cursor: pointer; font-family: inherit;
}
.tb-set-btn.primary { background: linear-gradient(135deg, #FF9A3D, #FF5000); color: #fff; }
.tb-set-btn.primary:active { opacity: 0.9; }
.tb-set-btn.ghost { background: #F2F2F2; color: #666; flex: 0 0 auto; padding: 10px 16px; }
.tb-set-btn.ghost:active { background: #E6E6E6; }
.tb-set-foot { padding: 12px 18px calc(14px + var(--safe-area-bottom, env(safe-area-inset-bottom, 0px))); }
.tb-set-done {
  width: 100%; padding: 13px; border: none; border-radius: 12px;
  background: #222; color: #fff; font-size: 15px; font-weight: 700; cursor: pointer; font-family: inherit;
}
.tb-set-done:active { opacity: 0.9; }
.tb-set-gear {
  width: 34px; height: 34px; border: none; border-radius: 50%;
  background: rgba(0,0,0,0.05); color: #888;
  display: flex; align-items: center; justify-content: center; cursor: pointer; flex: none;
}
.tb-set-gear:active { background: rgba(0,0,0,0.1); }
.tb-set-gear svg { width: 19px; height: 19px; }

[data-theme="dark"] .tb-set-sheet { background: #1E1E1E; }
[data-theme="dark"] .tb-set-title { color: #EEE; }
[data-theme="dark"] .tb-set-close { background: #2A2A2A; color: #999; }
[data-theme="dark"] .tb-set-close:active { background: #333; }
[data-theme="dark"] .tb-set-sec { border-bottom-color: rgba(255,255,255,0.06); }
[data-theme="dark"] .tb-set-label { color: #EEE; }
[data-theme="dark"] .tb-set-hint { color: #777; }
[data-theme="dark"] .tb-set-input, [data-theme="dark"] .tb-set-area { background: #2A2A2A; border-color: rgba(255,255,255,0.1); color: #EEE; }
[data-theme="dark"] .tb-set-input:focus, [data-theme="dark"] .tb-set-area:focus { border-color: #FF7A3D; background: #2A2A2A; }
[data-theme="dark"] .tb-set-btn.ghost { background: #2A2A2A; color: #BBB; }
[data-theme="dark"] .tb-set-btn.ghost:active { background: #333; }
[data-theme="dark"] .tb-set-done { background: #EEE; color: #222; }
[data-theme="dark"] .tb-set-gear { background: rgba(255,255,255,0.08); color: #AAA; }
[data-theme="dark"] .tb-set-gear:active { background: rgba(255,255,255,0.15); }
[data-theme="dark"] .tb-set-tag { color: #FF9A5C; background: rgba(255,154,92,0.15); }

/* ============================================================
   v373 淘宝化首页（顶部搜索栏 / 彩色金刚区 / 全宽轮播 /
   限时秒杀·聚划算·吃货楼层 / 为你推荐瀑布流 / 底部 Tab）
   ============================================================ */
/* —— 顶部：橙红渐变 + 白色搜索框 + 扫一扫/刷新 —— */
.tb-topbar {
  flex: none;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  padding-top: calc(8px + var(--safe-area-top, env(safe-area-inset-top, 0px)));
  background: linear-gradient(180deg, #FF5000 0%, #FF6A00 100%);
  position: relative;
  z-index: 6;
}
.tb-topbar-back {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
}
.tb-topbar-back:active { background: rgba(255, 255, 255, 0.35); }
.tb-topbar-back svg { width: 20px; height: 20px; }
.tb-searchbox {
  flex: 1;
  min-width: 0;
  height: 32px;
  border-radius: 999px;
  background: #fff;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 10px;
}
.tb-searchbox-ic { display: flex; color: #FF5000; flex: none; }
.tb-searchbox-ic svg { width: 16px; height: 16px; }
.tb-searchbox-txt {
  flex: 1;
  color: #A0A0A0;
  font-size: 13px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.tb-searchbox-scan { display: flex; color: #B0B0B0; flex: none; }
.tb-searchbox-scan svg { width: 17px; height: 17px; }
.tb-topbar-act {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
}
.tb-topbar-act:active { background: rgba(255, 255, 255, 0.35); }
.tb-topbar-act svg { width: 18px; height: 18px; }

/* —— 彩色金刚区（5 列 × 2 行）—— */
.tb-kings {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px 4px;
  padding: 12px 10px 10px;
  background: #fff;
}
.tb-king {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  padding: 4px 0;
  color: #333;
  transition: transform 0.1s;
}
.tb-king:active { transform: scale(0.92); }
.tb-king-ic {
  width: 44px;
  height: 44px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.12);
}
.tb-king-ic svg { width: 24px; height: 24px; }
.tb-king-name { font-size: 11px; color: #4A4A4A; }

/* —— 全宽轮播 —— */
.tb-banner-wrap {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  margin: 0;
  border-radius: 0;
  background: #fff;
}
.tb-banner-wrap::-webkit-scrollbar { display: none; }
.tb-banner {
  flex: none;
  width: 100%;
  scroll-snap-align: start;
  height: 132px;
  position: relative;
  overflow: hidden;
}
.tb-banner-text {
  position: absolute;
  left: 22px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  color: #fff;
}
.tb-banner-title {
  font-size: 22px;
  font-weight: 800;
  letter-spacing: 1px;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.12);
}
.tb-banner-sub {
  font-size: 12px;
  margin-top: 6px;
  opacity: 0.85;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
}
.tb-banner-art-wrap {
  position: absolute;
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
  color: rgba(90, 70, 48, 0.9);
}
.tb-banner-art-wrap svg { width: 108px; height: 108px; }
.tb-banner-dots {
  position: absolute;
  right: 14px;
  bottom: 10px;
  display: flex;
  gap: 4px;
  z-index: 3;
}
.tb-banner-dots span {
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.55);
  transition: width 0.2s;
}
.tb-banner-dots span.on { background: #fff; width: 14px; }

/* —— 楼层（限时秒杀 / 聚划算 / 淘宝吃货）—— */
.tb-floor {
  margin: 10px 0 0;
  background: #fff;
  padding: 12px 0 6px;
}
.tb-floor-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 12px 10px;
}
.tb-floor-title {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 16px;
  font-weight: 800;
  color: #333;
}
.tb-floor-title-ic { display: flex; }
.tb-floor-title-ic svg { width: 18px; height: 18px; }
.tb-floor-more { font-size: 12px; color: #999; }
.tb-floor-scroll {
  display: flex;
  overflow-x: auto;
  gap: 10px;
  padding: 0 12px 10px;
  -webkit-overflow-scrolling: touch;
}
.tb-floor-scroll::-webkit-scrollbar { display: none; }
.tb-floor-card {
  flex: none;
  width: 92px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.tb-floor-card:active { opacity: 0.85; }
.tb-floor-img {
  width: 92px;
  height: 92px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
}
.tb-floor-img svg { width: 56px; height: 56px; }
.tb-floor-name {
  font-size: 11px;
  color: #555;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 30px;
}
.tb-floor-price { font-size: 13px; font-weight: 800; color: #FF5000; }
.tb-seckill-count {
  font-size: 12px;
  color: #FF5000;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.tb-seckill-count [data-cd] {
  display: inline-block;
  background: #FF5000;
  color: #fff;
  padding: 2px 8px;
  border-radius: 6px;
  font-size: 12px;
  letter-spacing: 1px;
}
.tb-seckill-stock { font-size: 10px; color: #B0B0B0; }
.tb-floor-seckill .tb-floor-title-ic { color: #FF5000; }
.tb-floor-deal .tb-floor-title-ic { color: #E63A2E; }
.tb-floor-food .tb-floor-title-ic { color: #2FB34A; }

/* —— 为你推荐 —— */
.tb-feed-title {
  text-align: center;
  padding: 16px 0 6px;
  font-size: 16px;
  font-weight: 800;
  color: #333;
  background: #fff;
  margin-top: 10px;
  position: relative;
}
.tb-feed-title::before,
.tb-feed-title::after {
  content: '';
  position: absolute;
  top: 50%;
  width: 40px;
  height: 1px;
  background: #E8E8E8;
}
.tb-feed-title::before { left: calc(50% - 110px); }
.tb-feed-title::after { right: calc(50% - 110px); }
.tb-recs-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #fff;
  padding: 2px 12px 10px;
}
.tb-recs-sub {
  font-size: 12px;
  color: #999;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 240px;
}
.tb-recs-btn {
  font-size: 11px;
  color: #FF5000;
  border: 1px solid #FFD9C7;
  border-radius: 999px;
  padding: 4px 10px;
  background: #FFF7F2;
  white-space: nowrap;
  display: flex;
  align-items: center;
  gap: 3px;
}
.tb-recs-btn:disabled { opacity: 0.5; }
.tb-recs-btn svg { width: 12px; height: 12px; }
.tb-feed {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  padding: 0 8px 8px;
}
.tb-feed-end { text-align: center; color: #BBB; font-size: 12px; padding: 14px 0 8px; }

/* —— 底部 Tab 淘宝化（选中橙色）—— */
.tb-tab-item.active .tb-tab-icon { background: rgba(255, 80, 0, 0.1); border-radius: 14px; }

/* —— 深色主题适配 —— */
[data-theme="dark"] .tb-kings,
[data-theme="dark"] .tb-floor,
[data-theme="dark"] .tb-feed-title,
[data-theme="dark"] .tb-recs-banner,
[data-theme="dark"] .tb-banner-wrap { background: #1E1E1E; }
[data-theme="dark"] .tb-king-name { color: #BBB; }
[data-theme="dark"] .tb-floor-title { color: #EEE; }
[data-theme="dark"] .tb-floor-name { color: #AAA; }
[data-theme="dark"] .tb-feed-title { color: #EEE; }
[data-theme="dark"] .tb-feed-title::before,
[data-theme="dark"] .tb-feed-title::after { background: #333; }
[data-theme="dark"] .tb-recs-sub { color: #888; }
[data-theme="dark"] .tb-recs-btn { color: #FF9A5C; border-color: rgba(255, 154, 92, 0.35); background: rgba(255, 154, 92, 0.12); }
[data-theme="dark"] .tb-feed-end { color: #555; }
[data-theme="dark"] .tb-searchbox { background: #2A2A2A; }
[data-theme="dark"] .tb-searchbox-txt { color: #777; }
[data-theme="dark"] .tb-searchbox-scan { color: #888; }
