:root {
  color-scheme: light;
  --ink: #17202a;
  --muted: #687385;
  --line: #dfe5ec;
  --paper: #ffffff;
  --soft: #f5f7fa;
  --brand: #a13a15;
  --brand-dark: #802c0d;
  --accent: #f39c12;
  --danger: #d64545;
  --shadow: 0 12px 30px rgba(23, 32, 42, 0.08);
  font-family: "Microsoft YaHei", "PingFang SC", Arial, sans-serif;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  background: var(--soft);
  color: var(--ink);
}

button,
input,
select,
textarea {
  font: inherit;
}

button {
  border: 0;
  cursor: pointer;
}

.shell {
  min-height: 100vh;
}

.topbar {
  position: sticky;
  top: 0;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 22px;
  background: rgba(255, 255, 255, 0.94);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(14px);
}

.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 800;
  letter-spacing: 0;
}

.brand-mark {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 8px;
  background: var(--brand);
  color: #fff;
}

.pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 4px 10px;
  border-radius: 999px;
  background: #f8ede9;
  color: var(--brand-dark);
  font-size: 13px;
  font-weight: 700;
}

.pill.success-pill {
  background: #f8ede9;
  color: var(--brand-dark);
}

.pill.danger-pill {
  background: #fdeaea;
  color: var(--danger);
}

.pill.status-unpaid {
  background: #fff7e8;
  color: #b45309;
}

.pill.status-pending {
  background: #eef4ff;
  color: #1d4ed8;
}

.pill.status-working {
  background: #f3efff;
  color: #6d28d9;
}

.pill.status-delivery {
  background: #f8ede9;
  color: var(--brand-dark);
}

.pill.status-done {
  background: #f7f0ed;
  color: #813114;
}

.pill.status-canceled {
  background: #f1f3f5;
  color: #64748b;
}

.test-env-badge {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 4px 10px;
  border: 1px solid #f59e0b;
  border-radius: 8px;
  background: #fff7e8;
  color: #92400e;
  font-size: 13px;
  font-weight: 800;
  white-space: nowrap;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 8px 14px;
  border-radius: 8px;
  background: var(--brand);
  color: #fff;
  font-weight: 700;
}

.btn.secondary {
  background: #edf2f7;
  color: var(--ink);
}

.btn.danger {
  background: var(--danger);
}

.btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.field {
  width: 100%;
  min-height: 40px;
  padding: 9px 11px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
}

.card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--paper);
  box-shadow: var(--shadow);
}

.price {
  color: #e4562e;
  font-weight: 900;
}

.muted {
  color: var(--muted);
}

@media (max-width: 760px) {
  .topbar {
    align-items: flex-start;
    flex-direction: column;
    padding: 12px 14px;
  }
}

/* ===== 字体优化 ===== */
body, input, button, textarea, select, .shell, h1, h2, h3, strong {
  font-family: "PingFang SC", "HarmonyOS Sans SC", "MiSans", "Microsoft YaHei UI", "Microsoft YaHei", "Source Han Sans SC", "Noto Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
}
body { letter-spacing: 0.01em; }

/* 页面内输入弹窗 uiPrompt（替代原生 prompt，小程序 web-view 可用） */
.ui-prompt-overlay { position: fixed; inset: 0; z-index: 4000; display: flex; align-items: center; justify-content: center; padding: 24px; background: rgba(0,0,0,0.5); }
.ui-prompt-modal { width: min(420px, 100%); background: #fff; border-radius: 16px; padding: 20px; box-shadow: 0 12px 40px rgba(0,0,0,0.2); }
.ui-prompt-title { font-size: 16px; font-weight: 600; margin-bottom: 12px; color: #1f2329; }
.ui-prompt-input { width: 100%; box-sizing: border-box; border: 1px solid #dcdfe5; border-radius: 10px; padding: 10px 12px; font-size: 15px; color: #1f2329; outline: none; }
.ui-prompt-input:focus { border-color: #07c160; }
textarea.ui-prompt-input { resize: vertical; line-height: 1.5; }
.ui-prompt-actions { display: flex; gap: 10px; margin-top: 16px; }
.ui-prompt-actions .btn { flex: 1; }

/* 活动结算弹窗（拼团/砍价下单） */
.activity-checkout-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 14px 0 4px; }
.activity-checkout-fields .cart-v42-field:nth-child(3) { grid-column: 1 / -1; }
.activity-checkout-fields .cart-v42-field span { font-size: 12px; color: #6b7280; display: block; margin-bottom: 4px; }
.activity-checkout-fields .field { width: 100%; box-sizing: border-box; }
.activity-order-pill { background: #fff1e6; color: #d9480f; border: 1px solid #ffd8a8; font-size: 11px; padding: 2px 8px; border-radius: 999px; }

/* 裂变分享 */
.product-share-fission { margin: 14px 0; padding: 14px; border-radius: 14px; background: linear-gradient(135deg, #fff7ed, #fff1f2); border: 1px solid #fed7aa; }
.product-share-fission-body { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 8px; }
.product-share-fission-desc { display: flex; flex-direction: column; gap: 2px; }
.product-share-fission-desc b { color: #c2410c; font-size: 15px; }
.product-share-fission-desc span { color: #9a3412; font-size: 12px; }
.product-share-fission-btn { white-space: nowrap; }
.share-ref-banner { margin: 10px 0; padding: 10px 14px; border-radius: 12px; background: #fff7ed; border: 1px dashed #fb923c; display: flex; flex-direction: column; gap: 2px; }
.share-ref-banner strong { color: #c2410c; font-size: 14px; }
.share-ref-banner span { color: #9a3412; font-size: 12px; }

/* 商品库选品 */
.product-library-toolbar { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin: 12px 0; }
.product-library-toolbar .field { max-width: 200px; }
.product-library-list { display: flex; flex-direction: column; gap: 6px; max-height: 480px; overflow-y: auto; }
.product-library-row { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid #e5e7eb; border-radius: 10px; }
.product-library-row.exists { opacity: 0.55; }
.product-library-row.picked { border-color: #16a34a; background: #f0fdf4; }
.product-library-name { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.product-library-name span { font-size: 12px; color: #6b7280; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.product-library-img { font-size: 12px; color: #9ca3af; white-space: nowrap; }
.product-library-img.ok { color: #16a34a; }
.product-library-field { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; color: #374151; white-space: nowrap; }
.product-library-field .ops-mini { width: 74px; }

/* 每日经营小报 */
.daily-report-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; margin: 12px 0; }
.daily-report-stat { padding: 12px; border-radius: 12px; background: #f8fafc; border: 1px solid #e5e7eb; display: flex; flex-direction: column; gap: 2px; }
.daily-report-stat.main { background: #f0fdf4; border-color: #86efac; }
.daily-report-stat.warn { background: #fff7ed; border-color: #fdba74; }
.daily-report-stat strong { font-size: 22px; }
.daily-report-stat span { font-size: 12px; color: #6b7280; }
.daily-report-stat small.up { color: #16a34a; }
.daily-report-stat small.down { color: #dc2626; }
.daily-report-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.daily-report-cols p { display: flex; justify-content: space-between; gap: 8px; margin: 4px 0; font-size: 13px; }
.daily-report-cols p b { color: #ea580c; }
.daily-report-cols p span { color: #6b7280; }
.daily-report-cols p span.low { color: #dc2626; font-weight: 600; }
@media (max-width: 640px) { .daily-report-cols { grid-template-columns: 1fr; } }

/* 骑手工资 */
.payroll-table { width: 100%; border-collapse: collapse; margin-top: 10px; }
.payroll-table th, .payroll-table td { padding: 8px 10px; text-align: left; border-bottom: 1px solid #e5e7eb; font-size: 13px; }
.payroll-table .payroll-total td { background: #f8fafc; font-weight: 600; }

/* 骑手收入卡 */
.courier-payroll-card { display: flex; align-items: center; gap: 18px; padding: 12px 16px; border-radius: 12px; background: linear-gradient(135deg, #f0fdf4, #ecfdf5); border: 1px solid #86efac; margin-bottom: 12px; }
.courier-payroll-card div { display: flex; flex-direction: column; }
.courier-payroll-card strong { font-size: 18px; color: #15803d; }
.courier-payroll-card span { font-size: 12px; color: #4b5563; }
.courier-payroll-card .btn { margin-left: auto; }
.courier-payroll-card.empty { justify-content: space-between; }

/* 商品海报弹层 */
.poster-overlay { position: fixed; inset: 0; z-index: 4100; display: flex; align-items: center; justify-content: center; padding: 20px; background: rgba(0,0,0,0.6); }
.poster-modal { background: #fff; border-radius: 16px; padding: 16px; max-height: 92vh; overflow-y: auto; display: flex; flex-direction: column; gap: 10px; }
.poster-modal-head { display: flex; justify-content: space-between; align-items: center; }
.poster-close { border: none; background: none; font-size: 26px; cursor: pointer; color: #6b7280; line-height: 1; }
#poster-canvas { width: 320px; height: auto; border: 1px solid #e5e7eb; border-radius: 10px; align-self: center; }
.poster-actions { display: flex; gap: 10px; justify-content: center; }
.poster-upload-label { cursor: pointer; }
.poster-tip { max-width: 340px; text-align: center; margin: 0 auto; }

/* 沉睡老客 */
.sleeping-list { display: flex; flex-direction: column; gap: 6px; max-height: 380px; overflow-y: auto; }
.sleeping-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 12px; border: 1px solid #e5e7eb; border-radius: 10px; }
.sleeping-info { display: flex; flex-direction: column; min-width: 0; }
.sleeping-info span { font-size: 12px; color: #6b7280; }

/* 老顾客编号认领 */
.legacy-claim-card { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; border-radius: 14px; background: linear-gradient(135deg, #fefce8, #fef9c3); border: 1px solid #fde047; margin-bottom: 12px; }
.legacy-claim-card div { display: flex; flex-direction: column; gap: 2px; }
.legacy-claim-card strong { color: #a16207; font-size: 15px; }
.legacy-claim-card span { color: #854d0e; font-size: 12px; }
.legacy-claim-card.claimed { background: #f0fdf4; border-color: #86efac; flex-direction: column; align-items: flex-start; }
.legacy-claim-card.claimed strong { color: #15803d; }
.legacy-claim-card.claimed span { color: #4b5563; }

/* 邀请码填写入口 */
.invite-accept-entry { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; margin-top: 10px; border-radius: 10px; background: #f0fdf4; border: 1px dashed #86efac; }
.invite-accept-entry span { font-size: 12px; color: #15803d; }

/* ===================================================================
   通用布局紧凑化 + 结构调整（与配色主题无关，所有皮肤共用）
   颜色一律跟随主题变量 var(--home-accent)，换任何皮肤都自适应
   =================================================================== */
/* —— 首页密度：块间留白收紧、去浮岛 —— */
.client-home { padding-top: 6px; background: #fafafa; }
.client-home .home-product-section,
.client-home .home-category-section { padding: 10px 12px; }
.client-home .card { margin-top: 8px; margin-bottom: 0; padding: 10px 12px; }
.client-home .home-scroll-shelf { margin-top: 6px; margin-bottom: 0; padding: 10px 12px 4px; }
.client-home .home-section-head { margin-bottom: 8px; }
.client-home .home-product-grid,
.client-home [class*="product-grid"] { gap: 8px; }
.client-home .card,
.client-home .home-product-section,
.client-home .home-category-section,
.client-home .home-scroll-shelf,
.client-home .home-search-commerce,
.client-home .home-search-panel,
.client-home .home-promo-banners,
.client-home .home-layout-module > section,
.client-home .home-layout-module > .card { box-shadow: none; border-radius: 10px; margin-top: 6px !important; margin-bottom: 0 !important; }
.client-home .home-commerce-head { padding-bottom: 2px; }
.client-home > .home-search-commerce:first-of-type,
.client-home .home-search-panel { margin-top: 4px !important; }
.client-home .home-scroll-shelf-item,
.client-home .home-scroll-shelf-media { width: 96px; }
.client-home .home-scroll-shelf-media { height: 96px; }
.client-home .home-scroll-shelf-head,
.client-home .home-section-head { margin-bottom: 6px; }
.client-home .home-section-head h2,
.client-home .home-scroll-shelf-head h2 { font-size: 15px; }
/* 首页2列瀑布流收紧到叮咚密度 */
.client-home .home-layout-columns-2 .home-product-grid,
.client-home .home-layout-waterfall .home-product-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; gap: 8px !important; margin-top: 8px !important; }
.client-home .home-product-grid .product-body { padding: 8px 9px 10px !important; gap: 4px !important; }
.client-home .home-product-grid .product-title { min-height: 0 !important; font-size: 13px !important; line-height: 1.25 !important; }
.client-home .home-product-grid .storefront-product-card { border-radius: 8px !important; }

/* —— 金刚区：统一 emoji 圆图标（取代商品照片，清爽） —— */
.home-category-emoji button > span,
.home-category-emoji .home-cat-emoji {
  display: flex; align-items: center; justify-content: center;
  width: clamp(44px, 13vw, 56px); height: clamp(44px, 13vw, 56px); margin: 0 auto 4px;
  border-radius: 50%; background: #f1f5f2; font-size: 26px; line-height: 1;
  border: 1px solid #e3ece6;
}
/* 金刚区精简：去掉多余部门文字标签行，只留"图标+字" */
.client-home .home-layout-category-nav .home-category-navigation-level-one { display: none !important; }
/* 去掉"30分钟达"角标 */
.client-delivery-badge { display: none !important; }

/* —— 分类页密度：筛选单行横滑、商品行更矮 —— */
.category-page-shell .category-tertiary-rail {
  display: flex; flex-wrap: nowrap !important; overflow-x: auto !important; gap: 6px !important; padding: 6px 0 8px;
  -webkit-overflow-scrolling: touch; scrollbar-width: none;
}
.category-page-shell .category-tertiary-rail::-webkit-scrollbar { display: none; }
.category-page-shell .category-tertiary-rail button {
  flex: 0 0 auto !important; padding: 5px 12px !important; min-height: 30px !important; font-size: 12px !important;
  border-radius: 15px; white-space: nowrap !important; line-height: 1.2;
}
/* ① 排序条贴紧顶部,去白边 */
.category-result-summary { padding: 0 0 2px !important; }
.category-page-shell .category-dd-panel { padding-top: 0 !important; }
.category-page-shell .category-dd-layout { margin-top: 0 !important; }
.category-page-shell .category-top-dept { padding-bottom: 3px !important; }
.category-page-shell .category-commerce-search .home-search-shell { min-height: 42px !important; padding: 4px 6px 4px 12px !important; }
.category-page-shell .category-commerce-search .field { min-height: 34px !important; }
/* 商品卡:flex横排、等高统一 */
.category-product-grid .card.product-card,
.category-product-grid .storefront-product-card,
.category-product-grid .product-card {
  display: flex !important; flex-direction: row !important; gap: 12px !important;
  grid-template-columns: none !important;
  padding: 10px 8px !important; min-height: 138px !important; box-sizing: border-box !important;
  align-items: center !important;
  border-bottom: 1px solid #f0f0f0 !important;
}
.category-product-grid .product-body { flex: 1 1 auto !important; min-width: 0 !important; }
.category-product-grid .storefront-product-card::after { display: none !important; }
/* ③ 图片放大到118、object-fit填满整框(去掉框感/缩小感) */
.category-product-grid .product-image-wrap { flex: 0 0 118px !important; width: 118px !important; height: 118px !important; position: relative !important; overflow: hidden !important; border-radius: 8px !important; background: transparent !important; }
.category-product-grid .product-image-wrap img { width: 118px !important; height: 118px !important; object-fit: cover !important; display: block !important; aspect-ratio: auto !important; border-radius: 8px !important; }
/* ② 标题字体加大、加重、变深 */
.category-product-grid .product-title { font-size: 15px !important; font-weight: 600 !important; color: #222 !important; line-height: 1.3 !important; margin: 0 0 3px !important; }
/* 卖点小字(叮咚同款):标题下一行灰字,提专业感 */
.category-page-shell .category-product-grid .product-subtitle,
.category-product-grid .product-subtitle {
  display: -webkit-box !important; -webkit-box-orient: vertical !important; -webkit-line-clamp: 1 !important;
  overflow: hidden !important; white-space: normal !important;
  font-size: 12px !important; color: #9a9a9a !important; line-height: 1.3 !important; margin: 0 0 6px !important;
}
/* ④ 价格+单位(份/个)同一行不换行,且不挤到"+"按钮 */
.category-product-grid .product-card-price-line,
.category-product-grid .price { white-space: nowrap !important; flex-wrap: nowrap !important; }
.category-product-grid .price { font-size: 16px !important; line-height: 1.2 !important; }
.category-product-grid .price-stack { min-width: 0 !important; }
.category-product-grid .buy-row { display: flex !important; flex-wrap: nowrap !important; align-items: center !important; gap: 8px !important; justify-content: space-between !important; }
.category-product-grid .product-actions { flex: 0 0 auto !important; }
/* 价格行:到手价 · 单位 · 划线原价 顺排不叠 */
.category-product-grid .product-card-price-line { display: inline-flex !important; align-items: baseline !important; gap: 6px !important; flex-wrap: nowrap !important; }
.category-product-grid .product-original-price { display: none !important; } /* 划线原价隐掉,靠"会员省¥X"说优惠,更清爽不叠字 */
/* 加购钮改小圆钮（跟随主题色） */
.category-product-grid .add-cart-btn,
.category-product-grid .product-action-cart,
.category-product-grid .product-activity-action {
  width: 42px !important; height: 42px !important; min-width: 42px !important; max-width: 42px !important;
  padding: 0 !important; border-radius: 50% !important; overflow: hidden;
  font-size: 0 !important; display: inline-flex !important; align-items: center; justify-content: center;
}
.category-product-grid .add-cart-btn > *,
.category-product-grid .product-action-cart > *,
.category-product-grid .product-activity-action > * { display: none !important; }
.category-product-grid .add-cart-btn::after,
.category-product-grid .product-action-cart::after,
.category-product-grid .product-activity-action::after {
  content: '+'; font-size: 26px !important; color: #fff; font-weight: 400; line-height: 1;
}

/* —— 分类左栏：纯文字细条（更密），激活色跟随主题 —— */
.category-page-shell .category-dd-rail { background: #f5f5f5 !important; width: 74px !important; flex: 0 0 74px !important; }
.category-page-shell .category-dd-layout { --cat-rail-w: 74px !important; grid-template-columns: 74px 1fr !important; }
.category-page-shell .category-dd-rail .category-dd-item img,
.category-page-shell .category-dd-rail .category-dd-item .category-dd-all { display: none !important; }
.category-page-shell .category-dd-rail .category-dd-item {
  flex-direction: row !important; justify-content: flex-start !important; align-items: center !important;
  gap: 0 !important; padding: 12px 4px 12px 9px !important; min-height: 0 !important; border-radius: 0 !important;
  background: transparent !important; text-align: left !important; position: relative;
}
.category-page-shell .category-dd-rail .category-dd-item strong {
  font-size: 13px !important; font-weight: 500 !important; color: #3a3a3a !important; line-height: 1.2 !important;
}
.category-page-shell .category-dd-rail .category-dd-item.active { background: #fff !important; }
.category-page-shell .category-dd-rail .category-dd-item.active strong { color: var(--home-accent, #06984f) !important; font-weight: 700 !important; }
.category-page-shell .category-dd-rail .category-dd-item.active::before {
  content: ''; position: absolute; left: 0; top: 22%; bottom: 22%; width: 3px;
  background: var(--home-accent, #06984f); border-radius: 0 3px 3px 0;
}
/* —— 分类·顶部大类横排(带图·可横滑)—— */
.category-page-shell .category-top-dept { display: flex; gap: 2px; overflow-x: auto; background: #fff; padding: 8px 6px; border-bottom: 1px solid #f0f0f0; }
.category-page-shell .category-top-dept::-webkit-scrollbar { display: none; }
.category-page-shell .cat-dept { flex: 0 0 auto; width: 56px; border: none; background: transparent; display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 2px 0; cursor: pointer; }
.category-page-shell .cat-dept .cat-dept-ico { width: 44px; height: 44px; border-radius: 50%; overflow: hidden; background: #f3f6f4; display: flex; align-items: center; justify-content: center; font-size: 15px; color: #999; border: 2px solid transparent; }
.category-page-shell .cat-dept .cat-dept-ico img { width: 100%; height: 100%; object-fit: cover; }
.category-page-shell .cat-dept em { font-style: normal; font-size: 11px; color: #555; line-height: 1.1; white-space: nowrap; }
.category-page-shell .cat-dept.active .cat-dept-ico { border-color: var(--home-accent, #06984f); }
.category-page-shell .cat-dept.active em { color: var(--home-accent, #06984f); font-weight: 700; }
/* 无子类时左栏隐藏,商品占满整宽 */
.category-page-shell.no-subrail .category-dd-layout { grid-template-columns: 1fr !important; display: block !important; }

/* —— 详情页新增:销量/榜单条 + 商品介绍 —— */
.product-detail-merch-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 8px 0 2px; }
.product-detail-merch-row .pd-sales { color: #e0301e; font-size: 13px; font-weight: 600; }
.product-detail-merch-row .pd-rank { background: #fff6e6; color: #b8860b; font-size: 12px; font-weight: 700; padding: 2px 8px; border-radius: 10px; }
.product-detail-merch-row .pd-rank b { color: #e0301e; margin-right: 3px; }
.product-detail-desc { background: #fff; margin: 10px 12px; padding: 14px; border-radius: 10px; }
.product-detail-desc .product-detail-section-head h3 { font-size: 16px; font-weight: 700; margin-bottom: 8px; }
.product-detail-desc-text { font-size: 14px; color: #444; line-height: 1.75; white-space: pre-wrap; }
.product-detail-desc-img { width: 100%; display: block; margin-top: 10px; border-radius: 8px; }

/* —— 轮廓感:详情页灰底 + 一块块分明的白卡(圆角·投影·间隔),像叮咚 —— */
.product-detail-sheet, .product-detail-scroll { background: #eef1f3 !important; }
.product-detail-content { background: #eef1f3 !important; padding: 0 0 14px !important; }
.product-detail-content > section {
  background: #fff !important; margin: 10px 12px 0 !important; padding: 14px !important;
  border-radius: 12px !important; box-shadow: 0 1px 8px rgba(0,0,0,.05) !important; border: none !important;
}
.product-detail-desc { margin: 10px 12px 0 !important; }

/* 详情大图:满铺到边、盖满裁切,不留空白(像叮咚) */
.product-detail-hero, .product-detail-gallery { background: #fff !important; }
.product-detail-media-track { height: 390px !important; }
.product-detail-media-slide { width: 100% !important; height: 390px !important; }
.product-detail-media-slide img { width: 100% !important; height: 390px !important; object-fit: cover !important; display: block !important; }
/* 图上角标改深底白字,别绿糊绿 */
.product-detail-hero-tag { background: rgba(224,48,30,.92) !important; color: #fff !important; }

/* —— 老板反馈:太空/标题靠下/价格不突出/规格不紧凑 → 压缩+突出价格 —— */
.product-detail-content > section { padding: 12px !important; margin: 8px 12px 0 !important; }
.product-detail-content > section.product-detail-summary { margin-top: 0 !important; padding: 12px !important; }
.product-detail-summary .product-detail-title-row { margin: 0 0 4px !important; }
.product-detail-summary h2 { font-size: 19px !important; margin: 0 !important; line-height: 1.2 !important; }
.product-detail-summary > p, .product-detail-title-row p { margin: 2px 0 !important; }
/* 价格突出:大号加粗 + 浅红块 */
.product-detail-price-card, .product-detail-price-row { background: #fff5f3 !important; border: 1px solid #ffe0d9 !important; border-radius: 10px !important; padding: 8px 12px !important; margin-top: 8px !important; }
.product-detail-current-price { font-size: 32px !important; font-weight: 800 !important; line-height: 1 !important; }
/* 商品资料压紧:标签+值挤一行,行高压矮,不留空 */
.product-detail-data-sync { padding: 10px 12px !important; }
.product-detail-data-sync header { margin-bottom: 4px !important; }
.product-detail-data-sync > div { gap: 0 !important; }
.product-detail-data-sync p { padding: 5px 6px !important; margin: 0 !important; display: flex !important; align-items: baseline !important; gap: 6px !important; }
.product-detail-data-sync p small { color: #999 !important; margin: 0 !important; }
.product-detail-data-sync p strong { font-size: 14px !important; }
/* 规格/库存行 + 售后/服务行 也压矮 */
.product-detail-v423-stock-line, .product-detail-v467-signals { padding: 6px 0 0 !important; }
.product-detail-info-row { padding: 6px 0 !important; }
/* 段落间距再收一点,整体别太空 */
.product-detail-content > section { margin: 6px 12px 0 !important; }

/* —— 全改:卖点标签 + 价格提顶放大 + info暖底收紧 —— */
.product-detail-selling-points { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 2px; }
.product-detail-selling-points .pd-sp { background: #eef7f1; color: #2f8a5b; font-size: 12px; font-weight: 500; padding: 3px 9px; border-radius: 6px; }
/* 价格块提到最上、放大、暖色底 */
.product-detail-summary { display: flex !important; flex-direction: column !important; padding: 12px !important; }
.product-detail-summary .product-detail-price-row,
.product-detail-summary .product-detail-price-card { order: -1 !important; margin: 0 0 8px !important; background: linear-gradient(90deg,#fff0ec,#fff8f4) !important; border: 1px solid #ffddd3 !important; }
.product-detail-current-price { font-size: 34px !important; font-weight: 800 !important; line-height: 1 !important; }
.product-detail-summary .product-detail-title-row { order: 0 !important; margin: 0 0 4px !important; }
.product-detail-summary .product-detail-title-row h2 { font-size: 18px !important; }
.product-detail-summary .product-detail-merch-row { order: 1 !important; }
.product-detail-summary .product-detail-selling-points { order: 2 !important; }
.product-detail-summary .tag-row { order: 3 !important; margin-top: 2px !important; }
.product-detail-summary .product-detail-v423-stock-line { order: 4 !important; }

/* (首页保持原样,不套灰底白卡——老板确认收益小) */

/* —— 购物车全维度改进:价格高饱和红+大、标签暖色醒目、行压紧、数量控件缩小 —— */
.client-app .cart-page-shell .cart-v42-item-price strong,
.client-app .cart-page-v469 .cart-v42-item-price strong,
.client-app .cart-v42-item-price strong { color: #e0301e !important; font-size: 16px !important; font-weight: 700 !important; }
.cart-item-tag { background: #fff0ec !important; color: #e0301e !important; border: 1px solid #ffd9ce !important; font-weight: 600 !important; padding: 1px 8px !important; }
.cart-item, .cart-v42-item { padding: 6px 8px !important; }
.cart-item-copy { gap: 1px !important; flex: 1 1 auto !important; min-width: 0 !important; }
/* ④商品名(头部)加大 */
.cart-item-copy > strong { font-size: 15px !important; font-weight: 600 !important; line-height: 1.25 !important; color: #222 !important; }
.cart-v42-item-spec { display: none !important; } /* 隐掉规格行,让每个商品行等高(有的商品有规格有的没有→高度不齐) */
/* ⑤价格左·加号顶到最右,同一行占满整宽 */
.cart-v42-item-bottom { margin-top: 3px !important; display: flex !important; width: 100% !important; justify-content: space-between !important; align-items: center !important; }
.cart-v423-line-tools { margin-left: auto !important; margin-right: 0 !important; }
.cart-v42-item-price { flex: 0 0 auto !important; }
/* ③产品图放大(更有存在感) */
.cart-item-media > img, .cart-v42-item .cart-item-media > img { width: 72px !important; height: 72px !important; border-radius: 8px !important; }
/* ②数量控件缩窄(别比叮咚宽):按钮小、数字窄、无多余间距 */
.cart-item .stepper, .cart-v42-item .stepper { gap: 0 !important; padding: 0 !important; }
.cart-item .stepper .icon-btn, .cart-v42-item .stepper .icon-btn { width: 24px !important; height: 24px !important; min-width: 24px !important; padding: 0 !important; font-size: 15px !important; }
.cart-item .stepper strong, .cart-v42-item .stepper strong { min-width: 20px !important; padding: 0 2px !important; }
.cart-v423-line-tools { gap: 4px !important; }
.cart-v423-remove { width: 24px !important; height: 24px !important; }
/* 购物车商品·卖点小字 */
.cart-item-subtitle { font-size: 12px !important; color: #9a9a9a !important; line-height: 1.25 !important; margin: 1px 0 !important; overflow: hidden !important; text-overflow: ellipsis !important; white-space: nowrap !important; display: block !important; }
/* —— 购物车·全场换购轮播条 —— */
.cart-swap-shelf { background: #fff; margin: 8px 10px 0; padding: 10px; border-radius: 12px; box-shadow: 0 1px 6px rgba(0,0,0,.05); }
.cart-swap-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.cart-swap-badge { background: #e0301e; color: #fff; font-size: 12px; font-weight: 700; padding: 2px 8px; border-radius: 6px; }
.cart-swap-head em { font-style: normal; font-size: 13px; color: #666; flex: 1; }
.cart-swap-more { font-size: 13px; color: #0aa562; white-space: nowrap; }
.cart-swap-track { display: flex; gap: 10px; overflow-x: auto; }
.cart-swap-track::-webkit-scrollbar { display: none; }
.cart-swap-item { flex: 0 0 80px; width: 80px; position: relative; }
.cart-swap-off { position: absolute; top: 0; left: 0; background: #ff5a36; color: #fff; font-size: 10px; font-weight: 700; padding: 1px 5px; border-radius: 8px 0 8px 0; z-index: 1; }
.cart-swap-item > img { width: 80px; height: 80px; object-fit: cover; border-radius: 8px; background: #f3f6f4; display: block; }
.cart-swap-name { font-size: 11px; color: #333; line-height: 1.15; margin: 3px 0 1px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cart-swap-price { display: flex; align-items: baseline; gap: 3px; }
.cart-swap-price b { color: #e0301e; font-size: 14px; font-weight: 800; }
.cart-swap-price del { color: #bbb; font-size: 10px; }
/* 加号挪到右下角(压在图上) */
.cart-swap-add { position: absolute; right: 3px; top: 47px; width: 24px; height: 24px; border-radius: 50%; background: #0aa562; color: #fff; border: 2px solid #fff; font-size: 16px; line-height: 1; }
/* 换购条再压矮:图72 */
.cart-swap-shelf { padding: 8px 10px !important; }
.cart-swap-item { flex: 0 0 72px !important; width: 72px !important; }
.cart-swap-item > img { width: 72px !important; height: 72px !important; }
/* —— 购物车·勾选框 + 全选 —— */
.cart-item, .cart-v42-item { display: flex !important; align-items: center !important; gap: 4px !important; }
.cart-select { flex: 0 0 22px !important; width: 22px !important; height: 22px !important; border-radius: 50% !important; border: 1.5px solid #ccc !important; background: #fff !important; padding: 0 !important; position: relative !important; }
.cart-select.on { background: #0aa562 !important; border-color: #0aa562 !important; }
.cart-select.on::after { content: '✓'; color: #fff; font-size: 14px; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.cart-select-all { display: inline-flex !important; align-items: center; gap: 5px; border: 0; background: transparent; font-size: 14px; color: #333; margin-right: 8px; }
.cart-select-all-box { width: 20px; height: 20px; border-radius: 50%; border: 1.5px solid #ccc; display: inline-block; position: relative; }
.cart-select-all.on .cart-select-all-box { background: #0aa562; border-color: #0aa562; }
.cart-select-all.on .cart-select-all-box::after { content: '✓'; color: #fff; font-size: 13px; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }

/* —— 全站紧凑：购物车/详情/个人中心 —— */
.cart-page-shell .card,
.cart-page-shell > .cart-panel { box-shadow: none !important; margin-top: 8px !important; }
.cart-page-shell .cart-v42-item { padding: 8px 0 !important; }
.cart-page-shell .checkout-grid { gap: 8px !important; }
.cart-page-shell .cart-v42-field { margin: 0 !important; }
.product-detail-sheet .product-detail-content > section,
.product-detail-sheet .card { margin-top: 8px !important; box-shadow: none !important; }
.product-detail-summary { padding: 10px 12px !important; }
.profile-page-shell .card,
.profile-assets-page-v454 .card,
.profile-page-shell > section { margin-top: 8px !important; box-shadow: none !important; }
.profile-page-shell .points-detail,
.profile-page-shell .points-rules { padding: 10px 12px !important; }

/* ===================================================================
   仅客户端(.client-app)专属:绿色品牌钮 + 红色售价
   —— 后台管理 / 骑手端 不带 .client-app,完全不受影响(守住已跑通端口)
   =================================================================== */
/* 客户端把品牌色变量刷成主题绿(那些用 var(--brand) 的散号按钮:一键复购/去凑单等) */
.client-app { --brand: #06984f; --brand-dark: #056b38; }
/* 分类页排序条(综合/销量/价格),激活跟随主题绿 */
.client-app .category-sort-bar {
  display: flex; align-items: center; gap: 18px;
  padding: 8px 4px 6px; margin: 2px 0;
  border-bottom: 1px solid #f0f0f0;
}
.client-app .cat-sort-btn {
  border: 0; background: transparent; padding: 2px 0;
  font-size: 13px; font-weight: 600; color: #5a6066; cursor: pointer;
  display: inline-flex; align-items: center; gap: 2px; line-height: 1.2;
}
.client-app .cat-sort-btn.active { color: var(--brand, #06984f); font-weight: 700; }
.client-app .cat-sort-arrow { font-size: 11px; opacity: .8; }
/* 售价统一红色(划算感 + 对齐叮咚) */
.client-app .price,
.client-app .price-stack .price,
.client-app .product-card-price-line .price,
.client-app .home-hot-price,
.client-app .home-scroll-shelf-price,
.client-app .hot-story-price strong,
.client-app .flash-card-price,
.client-app .cart-v42-item-price,
.client-app .product-groupbuy-price,
.client-app .product-bargain-price,
.client-app .product-detail-summary .price { color: #f5341f !important; }
/* 划线原价保持灰 */
.client-app .price.original,
.client-app .price-original,
.client-app .price-was,
.client-app del.price,
.client-app .price s,
.client-app s.price { color: #9aa0a6 !important; }
/* 分享清单挪到底部的样式 */
.cart-share-bottom { text-align: center; padding: 6px 12px 2px; }
.cart-share-bottom .cart-share-button { color: #0aa562; background: transparent; border: 1px solid #bfe6d2; border-radius: 18px; padding: 6px 20px; font-size: 13px; }

/* 「我的」页订单图标行 + 服务图标 —— 布局放 shared(所有皮肤通用),品牌色由各皮肤覆盖 */
.profile-order-icons-v454 { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.profile-order-icons-v454 button { position: relative; display: grid; min-width: 0; min-height: 62px; gap: 5px; place-items: center; padding: 8px 2px; border: 0; background: transparent; color: #17231f; }
.profile-order-icons-v454 svg { width: 26px; height: 26px; color: #4a5551; }
.profile-order-icons-v454 span { color: #4a5551; font-size: 11px; font-weight: 700; }
.profile-order-dot-v454 { position: absolute; top: 4px; left: 50%; min-width: 15px; height: 15px; padding: 0 4px; border-radius: 8px; color: #fff; background: #f5442c; font-size: 10px; font-style: normal; font-weight: 800; line-height: 15px; text-align: center; transform: translateX(6px); }
.profile-services-v454 button svg { width: 24px; height: 24px; margin-bottom: 2px; color: #4a5551; }

/* ===== A10 火锅导购卡片(嵌在AI客服气泡内) ===== */
.a10-hotpot, .a10-answer { font-size: 13px; line-height: 1.5; }
.a10-title { font-weight: 800; color: #b3300c; margin-bottom: 6px; }
.a10-basis { color: #6b7772; font-size: 11px; margin-bottom: 8px; }
.a10-basis div, .a10-block div { margin: 1px 0; }
.a10-cands { display: grid; gap: 7px; }
.a10-cand { border: 1px solid #eee; border-radius: 8px; padding: 8px 9px; background: #fbf9f8; }
.a10-cand-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.a10-cand-head strong { color: #2a221f; }
.a10-role { flex: none; font-size: 11px; color: #b3300c; background: #fbe9e3; border-radius: 4px; padding: 1px 6px; }
.a10-cand-basis { color: #6b7772; font-size: 11px; margin: 3px 0 6px; }
.a10-cand-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.a10-cand-foot b { color: #f5341f; }
.a10-add-btn { border: 0; border-radius: 999px; padding: 5px 16px; background: #c13a09; color: #fff; font-weight: 700; font-size: 12px; cursor: pointer; }
.a10-add-mini { border: 1px solid #e0b6a8; border-radius: 999px; padding: 2px 10px; background: #fff5f2; color: #c13a09; font-size: 11px; font-weight: 700; cursor: pointer; }
.a10-block { margin-top: 8px; }
.a10-block em { display: block; font-style: normal; font-weight: 800; color: #35507a; font-size: 12px; margin-bottom: 2px; }
.a10-alt { margin: 2px 0; }
.a10-gaps em { color: #a15b00; }
.a10-gaps div { color: #7d6a4a; font-size: 11px; }
.a10-note { margin-top: 8px; padding-top: 6px; border-top: 1px dashed #e6ddd9; color: #8a7c76; font-size: 11px; }
.a10-answer .a10-gaps-inline { margin-top: 4px; color: #a15b00; font-size: 11px; }
.a10-answer .a10-cand-foot { margin-top: 8px; }
/* A10 活名片:缺点诚实标醒目色 */
.a10-cons em { color: #b3300c !important; }
.a10-cons div { color: #8a4b2f; }
.a10-answer-line { font-weight: 700; margin-bottom: 6px; }
.a10-budget-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin: 6px 0 8px; }
.a10-budget-summary div { min-width: 0; padding: 6px 7px; border: 1px solid #eadfd9; border-radius: 6px; background: #fff; }
.a10-budget-summary span { display: block; color: #786b65; font-size: 10px; }
.a10-budget-summary b { display: block; color: #2a221f; font-size: 13px; }
.a10-budget-explain { margin: 5px 0 7px; color: #332a26; font-weight: 700; }
.a10-budget-details { margin-bottom: 7px; color: #6b5e58; font-size: 11px; }
.a10-budget-details summary { width: fit-content; color: #8d421f; font-weight: 700; cursor: pointer; }
.a10-budget-details[open] summary { margin-bottom: 4px; }
.a10-budget-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.a10-budget-item { min-width: 0; min-height: 62px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-content: space-between; gap: 4px 6px; padding: 7px; border: 1px solid #eadfd9; border-radius: 6px; background: #fff; }
.a10-budget-item .a10-role { grid-column: 1 / -1; justify-self: start; }
.a10-budget-item strong { min-width: 0; overflow-wrap: anywhere; color: #2a221f; font-size: 12px; }
.a10-budget-item b { align-self: end; color: #d83b20; font-size: 12px; }
.a10-budget-actions { display: grid; grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr); gap: 6px; margin-top: 8px; }
.a10-budget-actions button { min-width: 0; min-height: 34px; border: 1px solid #d9b8a9; border-radius: 6px; background: #fff; color: #8c3215; font-weight: 800; cursor: pointer; }
.a10-budget-actions button.primary { border-color: #a92f0b; background: #a92f0b; color: #fff; }
.a10-budget-actions button:disabled { opacity: .6; cursor: wait; }
/* A10 菜谱卡 */
.a10-recipe { font-size: 13px; line-height: 1.5; }
.a10-steps { margin: 4px 0 2px; }
.a10-steps em { display: block; font-weight: 800; color: #35507a; font-size: 12px; margin-bottom: 4px; }
.a10-step { display: grid; grid-template-columns: 20px 1fr; gap: 6px; align-items: start; margin: 3px 0; color: #2a221f; }
.a10-step span { display: grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; background: #c13a09; color: #fff; font-size: 11px; font-weight: 800; }

/* ===================================================================
   独立「自选套餐页」 .combo-page —— 放 shared.css(与主题无关，始终生效）
   =================================================================== */
.modal-backdrop.combo-page-backdrop { position: fixed; inset: 0; z-index: 2000; background: #f4f5f7; }
.combo-page { position: absolute; inset: 0; display: flex; flex-direction: column; background: #f4f5f7; }
.combo-page-top { display: flex; align-items: center; gap: 11px; padding: 12px 14px; background: #fff; border-bottom: 1px solid #eee; }
.combo-page-back { flex: 0 0 auto; width: 34px; height: 34px; border: 0; background: #f2f2f2; border-radius: 50%; font-size: 18px; color: #333; cursor: pointer; }
.combo-page-title strong { display: block; font-size: 16px; font-weight: 700; color: #222; line-height: 1.2; }
.combo-page-title span { font-size: 12px; color: #9aa0a6; }
.combo-page-body { flex: 1; overflow-y: auto; padding: 10px 12px; }
.combo-page-bodypad { height: 12px; }

.combo-group { background: #fff; border-radius: 12px; padding: 12px 12px 14px; margin-bottom: 10px; }
.combo-group-head { display: flex; align-items: center; gap: 8px; margin-bottom: 11px; }
.combo-group-head strong { font-size: 15px; font-weight: 700; color: #222; }
.combo-group-rule { font-size: 11px; font-weight: 700; color: #e0301e; background: #fff1ee; border-radius: 6px; padding: 2px 8px; }
.combo-group-progress { margin-left: auto; font-size: 12px; font-weight: 700; }
.combo-group-progress.ok { color: #16a34a; }
.combo-group-progress.need { color: #ea580c; }

.combo-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.combo-item { display: flex; flex-direction: column; padding: 0; border: 0; background: transparent; text-align: left; cursor: pointer; min-width: 0; }
.combo-item-media { position: relative; height: 110px; border-radius: 11px; overflow: hidden; border: 2px solid #ececec; background: #f5f5f5; }
.combo-item-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.combo-item.is-selected .combo-item-media { border-color: #e0301e; }
.combo-item-check { position: absolute; top: 6px; right: 6px; width: 22px; height: 22px; border-radius: 50%; background: #e0301e; color: #fff; font-size: 13px; display: flex; align-items: center; justify-content: center; box-shadow: 0 1px 5px rgba(0,0,0,.2); }
.combo-item-name { margin-top: 7px; font-size: 13px; color: #222; line-height: 1.3; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.combo-item.is-selected .combo-item-name { font-weight: 700; }
.combo-item-price { margin-top: 2px; font-size: 12px; color: #9aa0a6; }
.combo-item-price.up { color: #e0301e; font-weight: 700; }

.combo-addons-list { display: flex; gap: 8px; flex-wrap: wrap; }
.combo-addon { font-size: 12px; font-weight: 700; color: #e0301e; background: #fff; border: 1px solid #f0b3a6; border-radius: 999px; padding: 7px 14px; cursor: pointer; }
.combo-addon.is-on { background: #e0301e; color: #fff; border-color: #e0301e; }

.combo-page-footer { flex: 0 0 auto; display: flex; align-items: center; gap: 12px; padding: 10px 14px; background: #fff; border-top: 1px solid #eee; box-shadow: 0 -4px 14px rgba(0,0,0,.05); }
.combo-page-total { flex: 1; display: flex; flex-direction: column; line-height: 1.12; min-width: 0; }
.combo-page-total strong { font-size: 22px; font-weight: 800; color: #e0301e; }
.combo-page-total small { font-size: 10px; color: #9aa0a6; }
.combo-page-add { flex: 0 0 auto; border: 0; border-radius: 999px; padding: 13px 26px; background: #e0301e; color: #fff; font-size: 15px; font-weight: 800; cursor: pointer; }
.combo-page-add:disabled { background: #e6b7ae; cursor: not-allowed; }


/* ==========================================================================
   结算确认页 + 送达时间/优惠券/地址三个弹层
   2026-08-18:这套样式原本只写在 style-green.css 里,而线上皮肤是 purple,
   顾客看到的支付页是"没上过妆"的裸样式 —— 老板反馈"支付页面难看"就是这么来的。
   搬到 shared.css(所有皮肤都加载),让任何皮肤下结算页都长一个样。
   shared.css 在皮肤文件之前加载,所以绿色皮肤仍以自己那份为准,行为不变。
   ========================================================================== */
.checkout-confirm-page {
  margin: 0;
  width: 100%;
  max-width: 100%;
  padding: 0 0 104px;
  background: #f3f5f7;
}
.checkout-confirm-head {
  position: sticky;
  top: 0;
  z-index: 12;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 14px;
  background: #fff;
  border-bottom: 1px solid #eef1f0;
}
.checkout-confirm-head h1 { margin: 0; font-size: 17px; color: #15201c; }
.checkout-confirm-back {
  width: 30px; height: 30px;
  display: flex; align-items: center; justify-content: center;
  border: 0; border-radius: 50%;
  background: #f2f4f3; color: #333; font-size: 18px; cursor: pointer;
}
.confirm-card {
  margin: 8px 12px 0;
  padding: 11px 13px;
  background: #fff;
  border-radius: 12px;
}
.confirm-card .checkout-grid { display: grid; gap: 10px; }
.confirm-entry-row {
  display: flex;
  align-items: center;
  gap: 8px;
  width: calc(100% - 12px);
  margin: 8px 12px 0;
  padding: 12px 13px;
  background: #fff;
  border: 0;
  border-radius: 12px;
  cursor: pointer;
  text-align: left;
}
.confirm-entry-row .confirm-entry-label { flex: 0 0 auto; color: #15201c; font-size: 14px; font-weight: 600; }
.confirm-entry-row .confirm-entry-value { flex: 1 1 auto; text-align: right; color: #17a55c; font-size: 14px; font-weight: 600; }
.confirm-entry-row .confirm-entry-value.placeholder { color: #9aa4a0; font-weight: 500; }
.confirm-entry-row em { flex: 0 0 auto; color: #c2cbc6; font-style: normal; font-size: 16px; }
.confirm-order-items { display: flex; flex-direction: column; gap: 12px; }
.confirm-order-item { display: flex; align-items: center; gap: 10px; }
.confirm-order-item img,
.confirm-order-item .confirm-order-item-ph {
  flex: 0 0 auto;
  width: 54px; height: 54px;
  border-radius: 8px;
  object-fit: cover;
  background: #f2f4f3;
  display: flex; align-items: center; justify-content: center;
  color: #b3bcb7; font-size: 11px;
}
.confirm-order-item-copy { flex: 1 1 auto; min-width: 0; }
.confirm-order-item-copy strong { display: block; font-size: 14px; color: #1c2b25; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.confirm-order-item-copy small { color: #8a938e; font-size: 12px; }
.confirm-order-item-price { flex: 0 0 auto; text-align: right; }
.confirm-order-item-price strong { display: block; color: #ff5a1f; font-size: 14px; }
.confirm-order-item-price span { color: #9aa4a0; font-size: 12px; }
.checkout-confirm-bar {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 20;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  padding: 0 0 max(0px, env(safe-area-inset-bottom));
  background: #fff;
  border-top: 1px solid #eef1f0;
}
.checkout-confirm-shipto {
  padding: 7px 14px;
  background: #fff7e9;
  color: #a8701e;
  font-size: 12px;
  border-bottom: 1px solid #f4ecdd;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.checkout-confirm-shipto span { color: #7a5a12; }
.checkout-confirm-bar-main { display: flex; align-items: center; gap: 12px; padding: 9px 14px; }
.checkout-confirm-pay { flex: 1 1 auto; display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.checkout-confirm-pay small { color: #7a8580; font-size: 12px; }
.checkout-confirm-pay strong { color: #ff4d1f; font-size: 22px; }
.checkout-confirm-pay em { color: #17a55c; font-style: normal; font-size: 11px; }
.checkout-confirm-submit {
  flex: 0 0 auto;
  min-width: 130px;
  height: 46px;
  padding: 0 26px;
  border-radius: 999px;
  background: #ff4d1f;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
}
.checkout-confirm-submit[disabled] { opacity: .5; background: #c9cecb; }

/* ===== 送达时间入口弹层 ===== */
.delivery-picker-overlay {
  position: fixed;
  inset: 0;
  z-index: 60;
  display: flex;
  align-items: flex-end;
  background: rgba(0, 0, 0, .45);
}
.delivery-picker-sheet {
  width: 100%;
  max-height: 74vh;
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 16px 16px 0 0;
  animation: deliverySheetUp .22s ease;
}
@keyframes deliverySheetUp { from { transform: translateY(100%); } to { transform: translateY(0); } }
.delivery-picker-head {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  padding: 15px 16px;
  border-bottom: 1px solid #f1f3f2;
}
.delivery-picker-head strong { font-size: 16px; color: #15201c; }
.delivery-picker-close {
  position: absolute;
  right: 12px; top: 50%;
  transform: translateY(-50%);
  width: 28px; height: 28px;
  border: 0; border-radius: 50%;
  background: #f2f4f3; color: #666; font-size: 18px; cursor: pointer;
}
.delivery-picker-body { overflow-y: auto; padding: 6px 14px 18px; }

/* ===== 送达时间：左右两栏（左选日期竖排，右时段竖排一行一个） ===== */
.delivery-picker-body { padding: 0; }
.delivery-picker-cols { display: grid; grid-template-columns: 116px 1fr; min-height: 320px; }
.delivery-picker-days {
  display: flex;
  flex-direction: column;
  background: #f5f7f6;
  border-right: 1px solid #eef1f0;
}
.delivery-picker-day {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 16px 12px;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
  border-left: 3px solid transparent;
}
.delivery-picker-day b { font-size: 14px; color: #38423d; font-weight: 600; }
.delivery-picker-day small { font-size: 11px; color: #9aa4a0; }
.delivery-picker-day.active {
  background: #fff;
  border-left-color: #06aa58;
}
.delivery-picker-day.active b { color: #06aa58; }
.delivery-picker-slots {
  max-height: 62vh;
  overflow-y: auto;
  padding: 4px 0 8px;
}
.delivery-picker-slot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 15px 16px;
  border: 0;
  border-bottom: 1px solid #f4f6f5;
  background: #fff;
  text-align: left;
  cursor: pointer;
}
.delivery-picker-slot span { display: flex; flex-direction: column; gap: 2px; font-size: 14px; color: #2b352f; }
.delivery-picker-slot span small { font-size: 11px; color: #9aa4a0; }
.delivery-picker-slot em { color: #06aa58; font-style: normal; font-size: 16px; font-weight: 700; }
.delivery-picker-slot.active span { color: #06aa58; font-weight: 600; }
.delivery-picker-slot.quick span { color: #15201c; font-weight: 600; }
.delivery-picker-empty { padding: 40px 16px; text-align: center; color: #9aa4a0; font-size: 13px; }

/* ===== 确认页收货信息：一行入口，点开才展开表单 ===== */
.confirm-address-entry {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 2px 0;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
}
.confirm-address-entry-copy { flex: 1 1 auto; min-width: 0; }
.confirm-address-entry-copy strong { display: block; font-size: 15px; color: #15201c; }
.confirm-address-entry-copy strong span { font-weight: 500; color: #55605a; font-size: 13px; margin-left: 6px; }
.confirm-address-entry-copy strong.placeholder { color: #15201c; }
.confirm-address-entry-copy small { display: block; margin-top: 3px; font-size: 12px; color: #8a938e; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.confirm-address-entry em { flex: 0 0 auto; color: #17a55c; font-style: normal; font-size: 13px; }
.confirm-address-form { margin-top: 12px; padding-top: 12px; border-top: 1px solid #f1f3f2; }

/* ===== 确认页价格明细（清晰：商品金额/配送费/优惠券 + 小计） ===== */
.confirm-price-detail .summary-line {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 7px 0;
  font-size: 13px;
  color: #55605a;
}
.confirm-price-detail .summary-line > span { display: flex; align-items: baseline; gap: 6px; }
.confirm-price-detail .summary-sub { font-style: normal; font-size: 11px; color: #9aa4a0; }
.confirm-price-detail .summary-line strong { color: #2b352f; font-weight: 600; }
.confirm-price-detail .discount-text { color: #ff5a1f; }
.confirm-price-detail .summary-muted { color: #9aa4a0; font-weight: 500; }
.confirm-price-detail .summary-total-line {
  margin-top: 4px;
  padding-top: 10px;
  border-top: 1px solid #f1f3f2;
}
.confirm-price-detail .summary-total-line span { color: #55605a; font-size: 12px; }
.confirm-price-detail .summary-total-line strong { color: #2b352f; font-size: 13px; font-weight: 600; }
.confirm-price-detail .summary-total-line strong b { color: #ff4d1f; font-size: 17px; }

/* ===== 支付方式：紧凑一行 ===== */
.confirm-pay-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.confirm-pay-row .confirm-pay-label { font-size: 14px; color: #15201c; font-weight: 600; }
.confirm-pay-row .confirm-pay-value { display: flex; flex-direction: column; align-items: flex-end; gap: 1px; color: #15201c; font-size: 14px; font-weight: 600; }
.confirm-pay-row .confirm-pay-value small { color: #f59e0b; font-size: 11px; font-weight: 500; }
.confirm-pay-row .confirm-pay-value.ready { color: #06aa58; }

/* ===== 安心保障 ===== */
.confirm-assurance-list { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 10px; margin-top: 4px; }
.confirm-assurance-item { display: flex; align-items: flex-start; gap: 7px; }
.confirm-assurance-mark {
  flex: 0 0 auto;
  width: 17px; height: 17px;
  margin-top: 1px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%;
  background: #e6f7ee; color: #06aa58; font-size: 11px; font-weight: 700;
}
.confirm-assurance-item strong { display: block; font-size: 13px; color: #2b352f; }
.confirm-assurance-item small { display: block; margin-top: 2px; font-size: 11px; color: #9aa4a0; line-height: 1.4; }

/* ===== 确认页整体紧凑化 + 行高统一（对标叮咚密度） ===== */
.checkout-confirm-page .confirm-card { margin: 7px 12px 0; padding: 4px 13px; border-radius: 10px; }
.checkout-confirm-page .confirm-entry-row { margin: 7px 12px 0; padding: 12px 13px; border-radius: 10px; min-height: 44px; }
.checkout-confirm-page .confirm-address-entry { padding: 9px 0; }
/* 卡内小标题：去掉大 min-height，统一细边线 */
.checkout-confirm-page .cart-v42-section-head { min-height: 0; padding: 11px 0 9px; margin: 0 0 8px; border-bottom: 1px solid #f2f4f3; }
.checkout-confirm-page .cart-v42-section-head h2 { font-size: 14px; }
.checkout-confirm-page .cart-v42-section-head span { font-size: 10px; }
/* 表单字段：统一约 40px 行高，细分隔线，无外框 */
.checkout-confirm-page .checkout-grid { gap: 0; }
.checkout-confirm-page .cart-v42-field { padding: 8px 8px 7px 0; border-bottom: 1px solid #f2f4f3; }
.checkout-confirm-page .cart-v42-field:last-child { border-bottom: 0; }
.checkout-confirm-page .cart-v42-field > span { font-size: 10px; color: #68736e; font-weight: 700; }
.checkout-confirm-page .cart-v42-field > .field {
  width: 100%; min-height: 26px; padding: 3px 0;
  border: 0; border-radius: 0; background: transparent; font-size: 14px;
}
/* 商品清单行 */
.checkout-confirm-page .confirm-order-items { gap: 10px; }
.checkout-confirm-page .confirm-order-item img,
.checkout-confirm-page .confirm-order-item .confirm-order-item-ph { width: 46px; height: 46px; }
/* 常用备注：收紧 */
.checkout-confirm-page .remark-quick-tips { margin-top: 8px; }
.checkout-confirm-page .remark-quick-tips > div { gap: 6px; }
.checkout-confirm-page .remark-quick-tips button { padding: 5px 10px; font-size: 11px; }
/* 送达时间入口行高与地址一致 */
.checkout-confirm-page .confirm-entry-row .confirm-entry-label,
.checkout-confirm-page .confirm-entry-row .confirm-entry-value { font-size: 14px; }
/* 价格明细：统一行高 */
.checkout-confirm-page .confirm-price-detail .summary-line { padding: 6px 0; }

/* ===== 备注卡（挪到地址下方） ===== */
.checkout-confirm-page .confirm-remark-card { padding: 4px 13px 10px; }
.checkout-confirm-page .confirm-remark-card .cart-v42-field { border-bottom: 0; padding-top: 10px; }

/* ===== 价格明细：优惠券可点行 ===== */
.confirm-price-detail .summary-line-btn {
  width: 100%;
  border: 0;
  background: transparent;
  cursor: pointer;
  text-align: left;
  font: inherit;
}
.confirm-price-detail .summary-line-btn strong { display: inline-flex; align-items: center; gap: 4px; }
.confirm-price-detail .summary-chevron { color: #c2cbc6; font-style: normal; font-size: 14px; }

/* ===== 顺手买一件（确认页推荐条） ===== */
.checkout-confirm-page .confirm-handpick { padding: 4px 13px 12px; }

/* ===== 优惠券选择弹层 ===== */
.coupon-picker-body { display: flex; flex-direction: column; gap: 10px; padding: 12px 14px 20px; }
.coupon-pick-none {
  padding: 12px; border: 1px solid #eef1f0; border-radius: 10px;
  background: #fff; color: #55605a; font-size: 14px; cursor: pointer; text-align: center;
}
.coupon-pick-none.active { border-color: #06aa58; color: #06aa58; font-weight: 600; }
.coupon-pick-item {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 14px; border: 1px solid #f0e6e2; border-radius: 10px;
  background: linear-gradient(135deg, #fff6f2, #fff); cursor: pointer; text-align: left; position: relative;
}
.coupon-pick-item.active { border-color: #ff5a1f; }
.coupon-pick-item.disabled { opacity: .5; background: #f7f7f6; cursor: not-allowed; }
.coupon-pick-value { flex: 0 0 auto; min-width: 78px; display: flex; flex-direction: column; align-items: center; gap: 2px; padding-right: 12px; border-right: 1px dashed #e6d8d2; }
.coupon-pick-value strong { color: #ff4d1f; font-size: 22px; }
.coupon-pick-value small { color: #b98a78; font-size: 10px; }
.coupon-pick-copy { flex: 1 1 auto; min-width: 0; }
.coupon-pick-copy strong { display: block; font-size: 14px; color: #2b352f; }
.coupon-pick-copy small { display: block; margin-top: 3px; font-size: 11px; color: #9aa4a0; }
.coupon-pick-check { flex: 0 0 auto; color: #ff5a1f; font-style: normal; font-size: 18px; font-weight: 700; }

/* ===== 确认页顶部三行统一（地址/备注/送达时间同款入口、等高） ===== */
.checkout-confirm-page .confirm-address-entry-row { align-items: flex-start; }
.checkout-confirm-page .confirm-address-entry-row .confirm-address-entry-copy { flex: 1 1 auto; min-width: 0; }
.checkout-confirm-page .confirm-address-entry-row .confirm-address-entry-copy strong { display: block; font-size: 15px; color: #15201c; line-height: 1.3; }
.checkout-confirm-page .confirm-address-entry-row .confirm-address-entry-copy strong span { font-weight: 500; color: #55605a; font-size: 13px; margin-left: 6px; }
.checkout-confirm-page .confirm-address-entry-row .confirm-address-entry-copy small { display: block; margin-top: 3px; font-size: 12px; color: #8a938e; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.checkout-confirm-page .confirm-address-entry-row em { align-self: center; color: #17a55c; font-style: normal; font-size: 16px; }
/* 备注单行 */
.checkout-confirm-page .confirm-remark-row .confirm-entry-label { flex: 0 0 auto; font-size: 14px; color: #15201c; font-weight: 600; }
.confirm-remark-input {
  flex: 1 1 auto; min-width: 0;
  border: 0; background: transparent; text-align: right;
  font-size: 14px; color: #2b352f;
}
.confirm-remark-input::placeholder { color: #b3bcb7; }

/* ===== 收货信息编辑弹层 ===== */
.address-form-sheet { max-height: 70vh; }
.address-form-body { padding: 10px 16px 22px; }
.address-form-body .checkout-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
.address-form-body .cart-v42-field { display: grid; padding: 11px 8px 10px 0; border-bottom: 1px solid #f2f4f3; }
.address-form-body .cart-v42-field:nth-of-type(even) { padding-right: 0; padding-left: 8px; }
.address-form-body .cart-v42-field-wide { grid-column: 1 / -1; padding-left: 0 !important; }
.address-form-body .cart-v42-field > span { font-size: 10px; color: #68736e; font-weight: 700; }
.address-form-body .cart-v42-field > .field { width: 100%; min-height: 28px; padding: 4px 0; border: 0; border-radius: 0; background: transparent; font-size: 14px; }
.address-form-body .checkout-primary-reminder { margin: 12px 0 0; padding: 9px 11px; border: 0; border-radius: 8px; background: #fff6e9; }
.address-form-save { width: 100%; height: 46px; margin-top: 14px; border-radius: 999px; background: #06aa58; color: #fff; font-size: 16px; font-weight: 700; }

/* ===== 确认页顶栏绿色（对标叮咚独立页头） ===== */
.checkout-confirm-head { background: #06aa58; border-bottom: 0; }
.checkout-confirm-head h1 { color: #fff; }
.checkout-confirm-head .checkout-confirm-back { background: rgba(255,255,255,.22); color: #fff; }
/* ===== 商品行：原价划线 + 单价 ===== */
.confirm-order-item-unit { display: block; margin-top: 2px; color: #b0b8b3; font-size: 11px; }
.confirm-order-item-price { display: flex; flex-direction: column; align-items: flex-end; gap: 1px; }
.confirm-order-item-price del { color: #b6bdb8; font-size: 11px; }
.confirm-order-item-price span { color: #9aa4a0; font-size: 12px; }
/* 价格明细：商品金额原价划线 */
.confirm-price-detail .summary-del { margin-right: 6px; color: #b6bdb8; font-weight: 500; }

/* ===== 确认页再压一档密度（一屏看得更多，对标叮咚） ===== */
/* 卡片间距、圆角收紧 */
.checkout-confirm-page .confirm-card { margin: 6px 10px 0; padding: 3px 12px; border-radius: 10px; }
.checkout-confirm-page .confirm-entry-row { margin: 6px 10px 0; padding: 10px 12px; }
.checkout-confirm-page .confirm-order-card { padding: 8px 12px; }
.checkout-confirm-page .confirm-price-detail .summary-line { padding: 5px 0; }
.checkout-confirm-page .cart-v42-section-head { padding: 9px 0 7px; margin: 0 0 6px; }
/* 商品行更紧 */
.checkout-confirm-page .confirm-order-items { gap: 8px; }
.checkout-confirm-page .confirm-order-item img,
.checkout-confirm-page .confirm-order-item .confirm-order-item-ph { width: 44px; height: 44px; }
.checkout-confirm-page .confirm-order-item-copy strong { font-size: 13px; }
.checkout-confirm-page .confirm-order-item-unit { margin-top: 1px; }
/* 顺手买一件：卡片缩小，一屏多露几个（对标叮咚小卡） */
.checkout-confirm-page .confirm-handpick { padding: 3px 12px 10px; }
.checkout-confirm-page .confirm-handpick .cart-recommendation-track-v482 { grid-auto-columns: minmax(90px, 27%); gap: 8px; padding-bottom: 2px; }
.checkout-confirm-page .confirm-handpick .cart-recommendation-detail img { width: 100%; height: 82px; border-radius: 6px; }
.checkout-confirm-page .confirm-handpick .cart-recommendation-detail > strong { min-height: 30px; margin-top: 4px; font-size: 11px; line-height: 1.3; }
.checkout-confirm-page .confirm-handpick .cart-recommendation-detail > small { display: none; }
.checkout-confirm-page .confirm-handpick .cart-recommendation-item > div { min-height: 0; margin-top: 3px; }
.checkout-confirm-page .confirm-handpick .cart-recommendation-item > div > span { font-size: 13px; }
.checkout-confirm-page .confirm-handpick .cart-recommendation-add { width: 24px; height: 24px; font-size: 17px; }

/* ===== 确认页细节收尾：顶栏压薄 / 图片统一 / 价格字体 / 加宽 ===== */
/* ① 顶栏压薄，不那么抢眼 */
.checkout-confirm-head { padding: 8px 12px; }
.checkout-confirm-head h1 { font-size: 15px; }
.checkout-confirm-head .checkout-confirm-back { width: 28px; height: 28px; font-size: 17px; }
/* ④ 加宽：卡片左右留白收到 8px，更接近满屏 */
.checkout-confirm-page .confirm-card { margin-left: 8px; margin-right: 8px; }
.checkout-confirm-page .confirm-entry-row { margin-left: 8px; margin-right: 8px; }
/* ② 顺手买一件图片统一 cover 填满、等高，不再高矮不齐 */
.checkout-confirm-page .confirm-handpick .cart-recommendation-detail img {
  width: 100%; height: 88px; object-fit: cover; background: #f4f6f5;
}
/* ③ 价格字体：统一红色、干净的字重（对标叮咚） */
.checkout-confirm-page .confirm-handpick .cart-recommendation-item > div > span { color: #ff4d1f; font-size: 14px; font-weight: 800; }
.checkout-confirm-page .confirm-handpick .cart-recommendation-item > div > span small { color: #b0b8b3; font-weight: 500; }
.checkout-confirm-page .confirm-order-item-price strong { color: #ff4d1f; font-size: 15px; font-weight: 800; }
.checkout-confirm-page .confirm-price-detail .summary-total-line strong b { font-weight: 800; }
.checkout-confirm-page .confirm-price-detail .summary-line { font-size: 13px; }
.checkout-confirm-page .confirm-price-detail .summary-line strong { font-weight: 700; }

/* ========== 确认页四点重做（2026-08-06 二次） ========== */
/* ① 去掉绿色"确认订单"栏 —— 顶部直接是地址；返回改悬浮小按钮 */
.checkout-confirm-page { padding-top: 44px; }
.checkout-confirm-back-float {
  position: fixed;
  top: 9px; left: 10px;
  z-index: 30;
  width: 32px; height: 32px;
  display: flex; align-items: center; justify-content: center;
  border: 0; border-radius: 50%;
  background: rgba(20,32,28,.42); color: #fff; font-size: 18px; cursor: pointer;
  backdrop-filter: blur(2px);
}
/* ④ 加宽：卡片左右留白收到 6px，接近满屏 */
.checkout-confirm-page .confirm-card { margin-left: 6px; margin-right: 6px; }
.checkout-confirm-page .confirm-entry-row { margin-left: 6px; margin-right: 6px; }
/* ② 顺手买一件：正方形图 + 单行标题，整框更矮更齐 */
.checkout-confirm-page .confirm-handpick .cart-recommendation-track-v482 { grid-auto-columns: minmax(88px, 26%); gap: 7px; }
.checkout-confirm-page .confirm-handpick .cart-recommendation-detail img { width: 100%; aspect-ratio: 1 / 1; height: auto; object-fit: cover; border-radius: 7px; background: #f4f6f5; }
.checkout-confirm-page .confirm-handpick .cart-recommendation-detail > strong {
  display: block; min-height: 0; margin-top: 5px; font-size: 11px; line-height: 1.25;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 1;
}
.checkout-confirm-page .confirm-handpick .cart-recommendation-item > div { margin-top: 4px; }
/* ③ 字体：价格用叮咚式——¥符号缩小、数字粗、微收字距、暖红 */
.checkout-confirm-page .confirm-order-item-price strong,
.checkout-confirm-page .confirm-price-detail .summary-total-line strong b,
.checkout-confirm-page .checkout-confirm-pay strong,
.checkout-confirm-page .confirm-handpick .cart-recommendation-item > div > span {
  color: #fa3c00;
  font-weight: 800;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
}
.checkout-confirm-page .confirm-order-item-price strong { display: block; }
.checkout-confirm-page .confirm-order-item-price strong::first-letter,
.checkout-confirm-page .checkout-confirm-pay strong::first-letter,
.checkout-confirm-page .confirm-price-detail .summary-total-line strong b::first-letter { font-size: .72em; font-weight: 700; }
.checkout-confirm-page .confirm-handpick .cart-recommendation-item > div > span { display: inline-block; }
.checkout-confirm-page .confirm-handpick .cart-recommendation-item > div > span::first-letter { font-size: .72em; }
/* 优惠券 / 明细字体更清爽 */
.checkout-confirm-page .confirm-price-detail .summary-line { font-size: 13px; color: #4a544e; }
.checkout-confirm-page .confirm-price-detail .summary-line strong { color: #2b352f; font-weight: 700; letter-spacing: -0.01em; }
.checkout-confirm-page .confirm-price-detail .summary-muted { color: #9aa4a0; font-weight: 500; }

/* ===== 确认页顶部地址/备注/送达行 再压矮(手机端) 2026-08-06c ===== */
.checkout-confirm-page .confirm-entry-row { margin-top: 5px; padding: 8px 12px; }
.checkout-confirm-page .confirm-address-entry-row { padding: 8px 12px; }
.checkout-confirm-page .confirm-address-entry-row .confirm-address-entry-copy strong { font-size: 14px; line-height: 1.25; }
.checkout-confirm-page .confirm-address-entry-row .confirm-address-entry-copy strong span { font-size: 12px; }
.checkout-confirm-page .confirm-address-entry-row .confirm-address-entry-copy small { margin-top: 1px; font-size: 11px; }
.checkout-confirm-page .confirm-remark-row .confirm-entry-label { font-size: 13px; }
.checkout-confirm-page .confirm-remark-input { font-size: 13px; }
.checkout-confirm-page .confirm-entry-row .confirm-entry-label,
.checkout-confirm-page .confirm-entry-row .confirm-entry-value { font-size: 13px; }

/* 促销标签(限时折扣/秒杀/日清共用)—— 放 shared.css 是今天的教训:
   写进单个皮肤文件的话,线上跑 purple 皮肤就等于没写。 */
.product-promo-tag {
  display: inline-flex;
  align-items: center;
  margin-left: 6px;
  padding: 1px 6px;
  border-radius: 4px;
  background: #fff1ee;
  color: #d5382f;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.6;
  white-space: nowrap;
  vertical-align: middle;
}

/* 加价购换购条(确认页)。同样放 shared.css:线上跑 purple 皮肤,写进单个皮肤等于没写。 */
.addon-strip { padding: 10px 12px 12px; }
.addon-strip-head { display: flex; align-items: baseline; gap: 8px; margin-bottom: 8px; }
.addon-strip-head strong { font-size: 14px; font-weight: 700; }
.addon-strip-head span { font-size: 11px; color: #8a938e; }
.addon-strip-list { display: flex; flex-direction: column; gap: 8px; }
.addon-item { display: flex; align-items: center; gap: 10px; }
.addon-item img, .addon-item-ph {
  width: 44px; height: 44px; flex: 0 0 auto; border-radius: 8px;
  object-fit: cover; background: #f4f6f5;
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; color: #9aa4a0;
}
.addon-item-copy { flex: 1 1 auto; min-width: 0; }
.addon-item-copy strong {
  display: block; font-size: 13px; font-weight: 600; line-height: 1.3;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.addon-item-price { display: flex; align-items: baseline; gap: 6px; margin-top: 2px; }
.addon-item-price b { color: #fa3c00; font-size: 15px; font-weight: 800; }
.addon-item-price del { color: #b0b8b3; font-size: 11px; }
.addon-item-copy small { display: block; margin-top: 1px; font-size: 11px; color: #b97d0a; }
.addon-btn {
  flex: 0 0 auto; border: 1px solid #fa3c00; background: #fff; color: #fa3c00;
  border-radius: 999px; padding: 5px 14px; font-size: 12px; font-weight: 700; cursor: pointer;
}
.addon-btn.is-on { background: #fa3c00; color: #fff; }
.addon-btn:disabled { border-color: #dfe3e0; color: #b0b8b3; cursor: not-allowed; }
.addon-item.is-locked img, .addon-item.is-locked .addon-item-ph { opacity: .55; }

/* 「买3件每件7折」的凑单提示 */
.product-bulk-hint {
  display: inline-flex; align-items: center; margin-left: 6px;
  padding: 1px 6px; border-radius: 4px;
  background: #fff7e9; color: #a8701e;
  font-size: 10px; font-weight: 700; line-height: 1.6;
  white-space: nowrap; vertical-align: middle;
}

/* 积分商城(我的页) */
.points-mall h2 { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.points-mall-mine { font-style: normal; font-size: 12px; font-weight: 600; color: #a8701e; }
.points-mall-pending { margin: 0 0 8px; font-size: 12px; color: #2e7d5b; }
.points-mall-list { display: flex; flex-direction: column; gap: 10px; }
.points-mall-item { display: flex; align-items: center; gap: 10px; }
.points-mall-item img, .points-mall-ph {
  width: 46px; height: 46px; flex: 0 0 auto; border-radius: 8px; object-fit: cover;
  background: #f4f6f5; display: flex; align-items: center; justify-content: center;
  font-size: 13px; color: #9aa4a0;
}
.points-mall-copy { flex: 1 1 auto; min-width: 0; }
.points-mall-copy strong { display: block; font-size: 13px; font-weight: 600; line-height: 1.3; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.points-mall-copy small { display: block; font-size: 11px; color: #8a938e; line-height: 1.4; }
.points-mall-copy .points-mall-gap { color: #b97d0a; }
.points-mall-act { flex: 0 0 auto; text-align: right; }
.points-mall-act b { display: block; font-size: 13px; font-weight: 800; color: #a8701e; }
.points-mall-act button {
  margin-top: 4px; border: 1px solid #2e7d5b; background: #2e7d5b; color: #fff;
  border-radius: 999px; padding: 4px 12px; font-size: 12px; font-weight: 700; cursor: pointer;
}
.points-mall-act button:disabled { background: #fff; border-color: #dfe3e0; color: #b0b8b3; cursor: not-allowed; }
.points-mall-item.is-locked img, .points-mall-item.is-locked .points-mall-ph { opacity: .55; }

/* 收货坐标:浏览器自带定位(免费、不用地图密钥)。骑手找门全靠它。 */
.geo-pick-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:2px 0 4px;}
.geo-pick-btn{border:1px solid #d9d3ca;background:#fff;color:#5b544b;border-radius:999px;padding:6px 14px;font-size:13px;cursor:pointer;transition:.15s;}
.geo-pick-btn:hover{border-color:#a13a15;color:#a13a15;}
.geo-pick-btn:disabled{opacity:.6;cursor:default;}
.geo-pick-btn--on{border-color:#178a45;color:#178a45;background:#f2fbf5;}
.geo-pick-tip{font-size:11.5px;color:#a59e95;}

/* 配送地图 —— 老板 2026-08-23 要的「像美团那样」。
   ⚠️ 放在 shared.css 而不是 style.css：顾客端有六套主题皮肤
   (style-blue / green / red / purple / orange / dingdong)，
   只写进 style.css 的话，老板换个主题地图容器就没高度 = 等于看不见。

   高度压到 170px：顾客最先要看的是「还有 1.0 公里，约 6 分钟」那行字，
   地图是佐证不是主角，占满半屏会把商品和金额挤出屏幕。 */
.delivery-map-box {
  width: 100%;
  height: 170px;
  border-radius: 10px;
  overflow: hidden;
  margin: 10px 0 12px;
  background: #f0eeea;   /* 加载中先垫个底色，别闪白 */
}
/* 高德默认的 logo 和版权在小卡片里太挤，缩一点 */
.delivery-map-box .amap-logo { transform: scale(.8); transform-origin: left bottom; }
.delivery-map-box .amap-copyright { font-size: 9px; opacity: .6; }

/* ── 评价面板(2026-08-24)──────────────────────────────────────────────
   老板要「点星星点标签就能评完,不用打字」。配色沿用自家酱红/绿,不引新色。 */
.modal-backdrop.review-panel-backdrop { display: flex; align-items: flex-end; justify-content: center; z-index: 80; }
.review-panel {
  width: 100%; max-width: 520px; background: #fff;
  border-radius: 18px 18px 0 0; box-shadow: 0 -8px 30px rgba(0,0,0,.16);
  max-height: 86vh; display: flex; flex-direction: column;
}
.review-panel-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 18px 10px; border-bottom: 1px solid #F0F0F0;
}
.review-panel-head strong { font-size: 17px; }
.review-panel-close {
  border: 0; background: transparent; font-size: 24px; line-height: 1;
  color: #999; cursor: pointer; padding: 0 4px;
}
.review-panel-body { padding: 4px 18px 12px; overflow-y: auto; }
.review-block { padding: 14px 0; border-bottom: 1px solid #F6F6F6; }
.review-block:last-child { border-bottom: 0; }
.review-block-title { font-size: 14px; color: #333; margin-bottom: 10px; }
.review-stars { display: flex; align-items: center; gap: 2px; }
.review-star {
  border: 0; background: transparent; font-size: 30px; line-height: 1;
  color: #DDD; cursor: pointer; padding: 2px 1px;
}
.review-star.on { color: #F5A623; }
.review-stars-word { margin-left: 10px; font-size: 13px; color: #888; }
.review-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.review-tag {
  border: 1px solid #E2E2E2; background: #FAFAFA; color: #555;
  border-radius: 14px; padding: 6px 13px; font-size: 13px; cursor: pointer;
}
.review-tag.on { border-color: #8C1F28; background: #FCF2F3; color: #8C1F28; font-weight: 600; }
.review-note {
  width: 100%; border: 1px solid #E8E8E8; border-radius: 10px;
  padding: 10px 12px; font-size: 14px; resize: none; box-sizing: border-box;
  font-family: inherit;
}
.review-panel-error {
  margin: 6px 0 2px; padding: 8px 12px; border-radius: 8px;
  background: #FDECEA; color: #B3261E; font-size: 13px;
}
.review-panel-foot { padding: 10px 18px calc(16px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid #F0F0F0; }
.review-submit { width: 100%; padding: 13px; font-size: 16px; border-radius: 10px; }
