/* ==================================================================
   电子商城小程序 · 用户端 全量样式（单文件管理）
   设计基准：375pt 宽 · rem 布局 · html{font-size:11px} 即 1rem = 11px
   主色对齐 hyxt_wap 设计规范 v1.0：coral 红体系
   ================================================================== */
:root{
  --primary:#FA1F12; 
  --primary-hover:#D9170C; 
  --primary-light:#FFEDEC;
  --teal:#0D9488; 
  --teal-light:#CCFBF1;
  --bg:#F5F5F7; 
  --card:#FFFFFF; 
  --border:#EFEFF2;
  --text-1:#1A1A1A; 
  --text-2:#4A4A4F; 
  --text-3:#6E6E73;
  --success:#22A06B; 
  --success-bg:#E8F6EE;
  --warning:#D97706; 
  --warning-bg:#FFFBEB;
  --danger:#FA1F12; 
  --danger-bg:#FFEDEC;
  --info:#1F5FD0; 
  --info-bg:#E8F0FC;
  --grad-brand:linear-gradient(180deg,#FA6B5F 0%,#FA1F12 100%);
  --sh-brand:0 2px 6px rgba(250,31,18,.18);
  --shadow:0 1px 2px rgba(0,0,0,.02),0 6px 18px rgba(0,0,0,.03);
  --r-card:1.4rem; 
  --r-tag:.3rem;
  --tabbar-h:6.4rem;
  /* 页面水平边距基准（首页 home-head 定标 1.4rem，全站统一引用） */
  --page-x:1.4rem;
  /* 字号阶梯（与现有 rem 取值一一对应，集中管理统一改字） */
  --fs-c1:1rem;  /* 10px 辅助说明 / 徽标 / Tab / 角标 */
  --fs-13:1.3rem; /* 默认/最小正文字号 */
  --fs-15:1.5rem; /*默认标题字号/金额*/
  --fs-18:1.8rem; /*特殊金额/KPI/余额大数字 */
  /* 以下三档仅限营销优惠券（票券卡 cc-*）域使用，新页面/其他模块禁止引用，一律用 --fs-c1~18 */
  --fs-20:2rem;  /* 票券面额大数字 / 大图标字形 */
  --fs-22:2.2rem; /* 宫格图标字形（订单/工具/礼品券） */
  --fs-24:2.4rem; /* 页头大图标字形（我的页齿轮） */
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
/* ===================== 页面容器（对齐规范：移动优先 + 桌面手机形态） ===================== */
/* text-size-adjust 必须用 100%（标准值）：none 是废弃值，iOS 新版 WebKit 会退化到旧版字体缩放逻辑，导致加载后系统级重排字号。
   html 与 body 都要声明——部分 iOS 版本只认 body 上的声明（实测 hall 内联双写正常、仅 html 写的页面仍复发） */
html{font-size:11px;-webkit-text-size-adjust:100%!important;text-size-adjust:100%!important}
body{-webkit-text-size-adjust:100%!important;text-size-adjust:100%!important}
body{font-family:-apple-system,"PingFang SC","Microsoft YaHei","Segoe UI",sans-serif;background:var(--bg);color:var(--text-1);font-size:var(--fs-13);line-height:1.6;-webkit-font-smoothing:antialiased}
button{font-family:inherit;cursor:pointer;border:none;background:none}
img{display:block}
[hidden]{display:none!important}
.num{font-variant-numeric:tabular-nums}
/* ===== 通用矢量图标（24×24 线性，currentColor 继承文字颜色，1em 随字号缩放） ===== */
.ico{width:1em;height:1em;display:inline-block;vertical-align:-.14em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
::-webkit-scrollbar{width:0;height:0}

/* ===== 页面容器（375 基准，桌面预览居中） ===== */
.app{max-width:480px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;background:var(--bg);position:relative}
.app-main{flex:1;min-height:0;padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom))}
.btm-dock{position:fixed;left:0;right:0;bottom:0;z-index:20;max-width:480px;margin:0 auto;background:#fff;padding-bottom:env(safe-area-inset-bottom);transform:translateZ(0)}

/* ===== 底部 TabBar ===== */
.tabbar{height:var(--tabbar-h);flex-shrink:0;background:#fff;border-top:1px solid var(--border);display:flex;position:relative;z-index:10}
.tab-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1818rem;font-size:var(--fs-13);color:var(--text-3);cursor:pointer;position:relative;text-decoration:none}
.tab-item svg{width:2rem;height:2rem}
.tab-item.active{color:var(--primary);font-weight:600}
.tab-item .badge{position:absolute;top:.5455rem;left:calc(50% + .3636rem);min-width:1.4rem;height:1.4rem;border-radius:999px;background:var(--danger);color:#fff;font-size:var(--fs-c1);display:flex;align-items:center;justify-content:center;padding:0 .3636rem;font-weight:600}

/* ===== 通用移动组件 ===== */
.mtag{display:inline-flex;align-items:center;gap:.2727rem;padding:1px .6364rem;border-radius:var(--r-tag);font-size:var(--fs-c1);font-weight:500;line-height:1.4rem}
.mt-blue{background:var(--info-bg);color:var(--info)}
.mt-teal{background:var(--teal-light);color:var(--teal)}
.mt-red{background:var(--danger-bg);color:var(--danger)}
.mt-green{background:var(--success-bg);color:var(--success)}
.mt-amber{background:var(--warning-bg);color:var(--warning)}
.mt-gray{background:#F2F2F5;color:#6E6E73}
.mt-primary{background:var(--primary-light);color:var(--primary)}
.mcard{background:var(--card);border-radius:var(--r-card);box-shadow:var(--shadow)}
.mbtn{display:inline-flex;align-items:center;justify-content:center;gap:.4545rem;height:3.6364rem;padding:0 1.6364rem;border-radius:999px;font-size:var(--fs-13);font-weight:600;transition:.15s;border:0;font-family:inherit}
.mbtn:active{transform:scale(.96)}
.mbtn-primary{background:var(--primary);color:#fff;box-shadow:var(--sh-brand)}
.mbtn-outline{border:1px solid var(--border);background:#fff;color:var(--text-1)}
.mbtn-soft{background:var(--primary-light);color:var(--primary)}
.mbtn-gray{background:var(--bg);color:var(--text-1)}
/* ---- 按钮尺寸档（sm/md/lg/xl 对齐全站现有按钮高度，wide 专用于购物车结算 dock） ---- */
.mbtn-sm{height:2.5455rem;padding:0 1.2727rem}
.mbtn-lg{height:3.8182rem;padding:0 2.7273rem}
.mbtn-xl{}
.mbtn-wide{padding:0 2.3636rem}
/* ---- 通用交互状态：禁用 / 加载（任意组件可叠加，配合 .spinner） ---- */
.is-disabled{opacity:.5!important;pointer-events:none!important}
.is-loading{pointer-events:none;opacity:.75}
.spinner{width:1.2em;height:1.2em;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;animation:spin .7s linear infinite;flex-shrink:0}
@keyframes spin{to{transform:rotate(360deg)}}
/* ---- 骨架屏（列表/卡片加载占位） ---- */
.skel{position:relative;overflow:hidden;background:#EDEDF0;border-radius:.5455rem}
.skel::after{content:'';position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),transparent);animation:shimmer 1.2s infinite}
@keyframes shimmer{to{transform:translateX(100%)}}
/* ---- 公共输入框（mfield：统一真实输入控件，表单类页面复用；focus 主色描边+光晕） ---- */
.mfield{display:flex;align-items:center;gap:.7273rem;height:3.0909rem;padding:0 1.2727rem;background:var(--bg);border:1px solid transparent;border-radius:.7273rem;font-size:var(--fs-13)}
.mfield input{flex:1;min-width:0;border:0;outline:0;background:none;font-size:var(--fs-13);color:var(--text-1);font-family:inherit}
.mfield input::placeholder{color:var(--text-3)}
.mfield:focus-within{border-color:var(--primary);background:#fff;box-shadow:0 0 0 3px rgba(250,31,18,.08)}
.page-pad{padding:1.4rem var(--page-x)}
.sec-title{font-size:var(--fs-15);font-weight:700;display:flex;align-items:center;justify-content:space-between}
.sec-title .more{font-size:var(--fs-13);color:var(--text-3);font-weight:400}
.mswitch{position:relative;width:3.6364rem;height:2rem;background:#C0C0C6;border-radius:999px;cursor:pointer;transition:.2s;flex-shrink:0}
.mswitch.on{background:var(--primary)}
.mswitch::after{content:'';position:absolute;top:.1818rem;left:.1818rem;width:1.6364rem;height:1.6364rem;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.mswitch.on::after{left:1.8182rem}
.mp-toast{position:fixed;left:50%;bottom:8.1818rem;transform:translateX(-50%);background:rgba(15,23,42,.88);color:#fff;font-size:var(--fs-13);padding:.8182rem 1.6364rem;border-radius:999px;z-index:999;white-space:nowrap;display:none;max-width:88vw;overflow:hidden;text-overflow:ellipsis}
.mp-toast.show{display:block;animation:fadeIn .2s ease}
@keyframes fadeIn{from{opacity:0;transform:translateX(1.0909rem)}to{opacity:1;transform:none}}
.back-row{display:flex;align-items:center;gap:.5455rem;padding:1.4rem var(--page-x);font-size:var(--fs-13);color:var(--text-2);cursor:pointer}

/* ===== 搜索页 ===== */
.sch-head{position:sticky;top:0;z-index:5;background:#fff;padding:.9091rem var(--page-x);display:flex;align-items:center;gap:.9091rem;border-bottom:1px solid var(--border)}
.sch-bar{flex:1;height:3.0909rem;background:var(--bg);border-radius:999px;display:flex;align-items:center;gap:.7273rem;padding:0 1.2727rem;color:var(--text-3);font-size:var(--fs-13)}
.sch-bar input{flex:1;min-width:0;border:0;outline:0;background:none;font-size:var(--fs-13);color:var(--text-1);font-family:inherit}
.sch-bar input::placeholder{color:var(--text-3)}
.sch-clear{width:1.6364rem;height:1.6364rem;border-radius:50%;background:#D8DAE0;color:#fff;display:flex;align-items:center;justify-content:center;font-size:var(--fs-c1);line-height:1;cursor:pointer;flex-shrink:0}
.sch-cancel{font-size:var(--fs-13);color:var(--text-2);cursor:pointer;flex-shrink:0}
.sch-body{padding:1.4rem var(--page-x) 1.4rem}
.sch-sec{display:flex;align-items:center;justify-content:space-between;margin:0 0 .9091rem}
.sch-sec-t{font-size:var(--fs-13);font-weight:700}
.sch-sec-x{font-size:var(--fs-13);color:var(--text-3);cursor:pointer}
.sch-chips{display:flex;flex-wrap:wrap;gap:.7273rem}
.sch-chips .mtag{cursor:pointer;font-size:var(--fs-13)}
.sch-count{font-size:var(--fs-13);color:var(--text-3);margin:.4rem 0 1.2rem}

/* ===== 首页头部 ===== */
.home-head{padding:1.4rem var(--page-x) 4rem;position:relative}
.search-bar{height:3.0909rem;background:#fff;border-radius:999px;display:flex;align-items:center;gap:.7273rem;padding:0 .3rem 0 1rem;color:var(--text-3);font-size:var(--fs-13);cursor:pointer}
.sb-mid{flex:1}
.search-bar .mtag{padding:.4rem 1.2rem;font-size:var(--fs-13);border-radius:999px;line-height:1.4}
.notice-bar{display:flex;align-items:center;gap:.7273rem;background:#fff;border-radius:.7273rem;padding:.6364rem 1.0909rem;margin-top:1.4rem;color:var(--text-2);font-size:var(--fs-13);cursor:pointer}
.notice-bar .nb-tag{background:var(--primary-light);color:var(--primary);border-radius:.3636rem;padding:0 .5455rem;font-size:var(--fs-c1);flex-shrink:0;font-weight:600}
.notice-bar .nb-txt{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.banner{margin:1.4rem 0 0;height:12.7273rem;border-radius:var(--r-card);position:relative;overflow:hidden;box-shadow:var(--shadow)}
.banner .bn-track{display:flex;height:100%;transition:transform .5s cubic-bezier(.33,.86,.44,1)}
.banner .bn-slide{display:block;width:100%;height:100%;object-fit:cover;flex-shrink:0;cursor:pointer}
.banner .bn-dots{position:absolute;left:0;right:0;bottom:.7273rem;display:flex;justify-content:center;gap:.3636rem;z-index:2}
.banner .bn-dots span{width:.5455rem;height:.5455rem;border-radius:999px;background:rgba(255,255,255,.55);box-shadow:0 1px 2px rgba(0,0,0,.12);cursor:pointer;transition:width .3s,background .3s}
.banner .bn-dots span.on{width:1.4rem;background:#fff}
.cat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1.2727rem .3636rem;padding:1.4rem 0 1.4rem;margin:-2.6rem var(--page-x) 0;background:#fff;border-radius:var(--r-card);box-shadow:var(--shadow);position:relative;z-index:2}
.cat-item{display:flex;flex-direction:column;align-items:center;gap:.5455rem;font-size:var(--fs-13);color:var(--text-2);cursor:pointer}
.cat-item .ci-ic{width:4rem;height:4rem;border-radius:1rem;display:flex;align-items:center;justify-content:center;font-size:var(--fs-18)}
.cat-item .ci-ic--pink{background:#FDEDF3;color:#DB2777}
.cat-item .ci-ic--orange{background:#FFF1E6;color:#F97316}
.cat-item .ci-ic--cyan{background:#E4F7F9;color:#0891B2}
.cat-item .ci-ic--purple{background:#F1EBFE;color:#7C3AED}
.cat-item .ci-ic--blue{background:#E8F0FE;color:#3B82F6}
/* ===== 首页 · 精选好物楼层（金刚区下方：红幅头 + 三列精选卡 + 兴趣 Tab） ===== */
.fg-wrap{margin:1.4rem var(--page-x) 0;background:#fff;border-radius:var(--r-card);box-shadow:var(--shadow);overflow:hidden}
.fg-banner{position:relative;background:var(--grad-brand);padding:1.4rem 1.0909rem 1.2727rem;overflow:hidden}
.fg-head{display:flex;align-items:center;justify-content:center;gap:.6364rem;color:#fff;font-size:var(--fs-15);font-weight:700;letter-spacing:.2727rem}
.fg-head .ico{width:1.2727rem;height:1.2727rem;opacity:.9}
.fg-cards{display:flex;gap:.7273rem;margin-top:1.0909rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.fg-card{flex:none;width:calc((100% - 1.4546rem)/3);scroll-snap-align:start;background:#fff;border-radius:.9091rem;padding:.5455rem .6364rem .7273rem;cursor:pointer;transition:transform .15s}
.fg-card:active{transform:scale(.97)}
.fg-card img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:.6364rem}
.fg-name{margin-top:.5455rem;font-size:var(--fs-13);font-weight:600;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fg-price{margin-top:.1818rem;color:var(--danger);font-weight:700;font-size:var(--fs-15);line-height:1.2}
.fg-price em{font-style:normal;font-size:var(--fs-c1);font-weight:400}
/* 精选好物轮播：圆点 + 右滑箭头（方案 A：圆点居中卡片下方，箭头悬浮 banner 右缘垂直居中） */
.fg-scroller{position:relative}
.fg-arrow{position:absolute;right:.4545rem;top:50%;transform:translateY(-50%);width:2.4rem;height:2.4rem;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.18);cursor:pointer;z-index:3;color:var(--primary)}
.fg-arrow:active{transform:translateY(-50%) scale(.94)}
.fg-arrow .ico{width:1.4rem;height:1.4rem}
.fg-dots{display:flex;align-items:center;justify-content:center;gap:.3636rem;margin-top:.9091rem}
.fg-dots span{width:.5455rem;height:.5455rem;border-radius:999px;background:rgba(255,255,255,.55);transition:width .3s,background .3s;cursor:pointer}
.fg-dots span.on{width:1.4rem;background:#fff}
/* ===== 首页 · 为你推荐白卡容器（区块标题+商品网格整体包卡） ===== */
.rec-wrap{margin:1.4rem var(--page-x);background:#fff;border-radius:var(--r-card);box-shadow:var(--shadow)}
.rec-wrap .sec-title{padding:1.4rem 1.4rem 0}
.rec-wrap .goods-list{padding:1.2rem 1.0909rem}
.goods-list{display:grid;grid-template-columns:1fr 1fr;gap:1.0909rem;padding:1.4rem var(--page-x) 1.4rem}
.gcard{background:#fff;border-radius:var(--r-card);box-shadow:var(--shadow);overflow:hidden;cursor:pointer;transition:transform .15s}
.gcard:active{transform:scale(.98)}
.gcard.off{opacity:.55}
.gcard .gc-img{aspect-ratio:1/1;overflow:hidden;position:relative}
.gcard .gc-img img{width:100%;height:100%;object-fit:cover}
/* 商品营销标签角标：图左下角覆盖（配色由 core.js GD_TAG_STYLE 数据驱动） */
.gc-imgtags{position:absolute;left:.5455rem;bottom:.5455rem;display:flex;gap:.3636rem;flex-wrap:wrap}
.gc-imgtag{display:inline-flex;align-items:center;height:1.6364rem;padding:0 .5455rem;border-radius:.3rem;font-size:var(--fs-c1);font-weight:600;line-height:1.6364rem;border:1px solid transparent}
.gcard .gc-body{padding:.9091rem 1.0909rem 1.0909rem}
.gcard .gc-name{font-size:var(--fs-13);font-weight:600;line-height:1.45;height:3.4545rem;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.gcard .gc-tags{margin-top:.5455rem;display:flex;gap:.3636rem;flex-wrap:wrap}
.gcard .gc-foot{margin-top:.7273rem;display:flex;align-items:center;justify-content:space-between}
.gcard .gc-price{color:var(--danger);font-weight:700;font-size:var(--fs-15)}
.gcard .gc-price em{font-style:normal;font-size:var(--fs-c1);font-weight:400}
.gcard .gc-sold{font-size:var(--fs-c1);color:var(--text-3)}
.gcard.mini .gc-foot{margin-top:.5455rem}
.cart-fab{width:2.4rem;height:2.4rem;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:var(--fs-18);box-shadow:0 2px 6px rgba(250,31,18,.35);flex-shrink:0}
.gcard.mini .cart-fab{width:2.4rem;height:2.4rem;font-size:var(--fs-15)}
.cart-fab .ico{width: .8em;height: .8em;}
/* 加购飞入动画：小圆钮从商品卡 cart-fab 抛物线飞向底部 TabBar 购物车，落点角标弹跳 */
.fly-dot{position:fixed;z-index:200;width:2.4rem;height:2.4rem;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(250,31,18,.4);pointer-events:none;transition:transform .65s cubic-bezier(.4,-.1,.65,.35),opacity .25s ease .45s}
.fly-dot .ico{width:1.2rem;height:1.2rem}
.badge-bump{animation:badgeBump .4s ease}
@keyframes badgeBump{0%{transform:scale(1)}40%{transform:scale(1.5)}100%{transform:scale(1)}}
/* 商品卡操作：单规格步进 / 多规格选规格（参考 saas_mf mall.html） */
.stepper--card{border-radius:999px}
.spec-btn{position:relative;display:inline-flex;align-items:center;height:2.7273rem;padding:0 1.2727rem;border:1px solid var(--primary);border-radius:999px;background:#fff;color:var(--primary);font-size:var(--fs-13);font-weight:600;cursor:pointer;flex-shrink:0}
.spec-badge{position:absolute;top:-.5455rem;right:-.5455rem;min-width:1.4545rem;height:1.4545rem;padding:0 .3636rem;border-radius:.7273rem;background:var(--primary);color:#fff;font-size:var(--fs-c1);font-weight:600;display:flex;align-items:center;justify-content:center}
/* 规格选择弹层 */
.spec-mask{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:90}
.spec-sheet{position:fixed;left:0;right:0;bottom:0;z-index:91;background:#fff;border-radius:1.0909rem 1.0909rem 0 0;padding:1.2727rem 1.2727rem calc(1.2727rem + env(safe-area-inset-bottom))}
.spec-sheet__head{display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-15);font-weight:600;color:var(--text-1)}
.spec-sheet__close{height:2.5454rem;padding:0 1.0909rem;border:1px solid var(--border);border-radius:999px;background:#fff;color:var(--text-2);font-size:var(--fs-13);cursor:pointer}
.spec-sheet__prod{display:flex;gap:.9091rem;margin-top:1.0909rem}
.spec-sheet__prod img{width:6.3636rem;height:6.3636rem;border-radius:.7273rem;object-fit:cover;flex-shrink:0}
.spec-sheet__name{font-size:var(--fs-13);font-weight:600;color:var(--text-1);margin-top:.1818rem}
.spec-sheet__price{margin-top:.3636rem;color:var(--danger);font-weight:700;font-size:var(--fs-15)}
.spec-sheet__price em{font-style:normal;font-size:var(--fs-c1);font-weight:400;margin-left:.3636rem;color:var(--text-3);text-decoration:line-through}
.spec-sheet__label{margin-top:1.0909rem;font-size:var(--fs-13);color:var(--text-2)}
.spec-sheet__opts{display:flex;flex-wrap:wrap;gap:.7273rem;margin-top:.7273rem}
.spec-opt{height:2.909rem;padding:0 1.0909rem;border:1px solid var(--border);border-radius:999px;background:#fff;color:var(--text-1);font-size:var(--fs-13);cursor:pointer;font-family:inherit;transition:.15s}
.spec-opt:active{transform:scale(.95)}
.spec-opt.on{background:var(--primary-light);border-color:var(--primary);color:var(--primary);font-weight:600}
.spec-sheet__qty{margin-top:.7273rem;display:flex;justify-content:flex-end}
.spec-sheet__foot{display:flex;gap:.9091rem;margin-top:1.2727rem}
.spec-sheet__cancel{flex:1;height:3.6363rem;border:1px solid var(--border);border-radius:999px;background:var(--bg);color:var(--text-1);font-size:var(--fs-13);cursor:pointer}
.spec-sheet__ok{flex:2;height:3.6363rem;border:0;border-radius:999px;background:var(--primary);color:#fff;font-size:var(--fs-13);font-weight:600;cursor:pointer;box-shadow:var(--sh-brand)}
/* ===== 通用确认弹窗（删除/取消等危险操作的友情提示） ===== */
.mp-dlg-mask{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:98}
.mp-dlg{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:27.2727rem;background:#fff;border-radius:1.2727rem;padding:1.6364rem 1.4545rem 1.2727rem;z-index:99;box-shadow:0 12px 40px rgba(15,23,42,.18)}
.mp-dlg__t{text-align:center;font-size:var(--fs-15);font-weight:700;color:var(--text-1)}
.mp-dlg__m{margin-top:.6364rem;text-align:center;font-size:var(--fs-13);color:var(--text-2);line-height:1.7;word-break:break-all}
.mp-dlg__btns{display:flex;gap:.9091rem;margin-top:1.4545rem}
.mp-dlg__btn{flex:1;height:3.0909rem;border-radius:999px;font-size:var(--fs-13);cursor:pointer;font-family:inherit;transition:.15s}
.mp-dlg__btn:active{transform:scale(.96)}
.mp-dlg__btn--ok{border:0;background:var(--primary);color:#fff;font-weight:600;box-shadow:var(--sh-brand)}
.mp-dlg__btn--ok.mp-dlg__btn--danger{background:var(--danger)}
.mp-dlg__btn:not(.mp-dlg__btn--ok){border:1px solid var(--border);background:var(--bg);color:var(--text-1)}
/* ===== 分类页 ===== */
.cat-layout{display:flex;min-height:0}
.app-main .cat-layout{flex:1}
.cat-side{width:8.3636rem;background:#fff;border-right:1px solid var(--border);flex-shrink:0}
.cat-side .cs-item{padding:1.3636rem .7273rem;text-align:center;font-size:var(--fs-13);color:var(--text-2);cursor:pointer;position:relative;border-left:.2727rem solid transparent}
.cat-side .cs-item.active{color:var(--primary);font-weight:600;background:var(--bg);border-left-color:var(--primary)}
.cat-main{flex:1;padding:1.4rem 1.0909rem 13.6rem}
/* 左侧分类白底满屏（仅分类页启用 .cat-fill） */
.cat-fill{display:flex;flex-direction:column}
/* 顶部搜索 + 二级筛选（整体吸顶） */
.cat-head{position:sticky;top:0;z-index:11;background:var(--bg);padding:1.4rem var(--page-x) 1rem}
/* 二级筛选：单行横向滑动（溢出显示右缘圆形箭头，参考后台票务 Tab 截图） */
.cat-chips-wrap{position:relative;margin:0 0 .9091rem}
.cat-chips{display:flex;flex-wrap:nowrap;gap:.7273rem;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-right:2.9091rem}
.cat-chips::-webkit-scrollbar{display:none}
.cat-chips .cat-chip{flex-shrink:0}
.cat-chips-more{position:absolute;top:50%;right:0;transform:translateY(-50%);width:2.7273rem;height:2.7273rem;border:0;border-radius:50%;background:#fff;box-shadow:0 1px 6px rgba(0,0,0,.16);display:flex;align-items:center;justify-content:center;color:var(--text-2);cursor:pointer;padding:0}
.cat-chips-more .ico{width:1.4545rem;height:1.4545rem}
.cat-chips-more:active{transform:translateY(-50%) scale(.94)}
.cat-chips-more[hidden]{display:none}
.cat-chip{display:inline-flex;align-items:center;padding:.2727rem .8182rem;border:1px solid var(--border);border-radius:999px;background:#fff;font-size:var(--fs-13);color:var(--text-2);cursor:pointer;transition:.15s}
.cat-chip:active{transform:scale(.95)}
.cat-chip.on{background:var(--primary-light);border-color:var(--primary);color:var(--primary);font-weight:600}
/* 右侧商品横排列表（参考 hyxt_wap ticket-booking goods：左图右文） */
.goods-list.h-list{display:flex;flex-direction:column;gap:.7273rem;padding:0}
.h-list .gcard{display:flex;align-items:stretch;padding:.7273rem}
.h-list .gcard .gc-img{width:8.7273rem;height:8.7273rem;aspect-ratio:auto;flex-shrink:0;border-radius:.6364rem}
.h-list .gcard .gc-body{flex:1;min-width:0;padding:0 0 0 .9091rem;display:flex;flex-direction:column}
.h-list .gcard .gc-name{height:auto}
.h-list .gcard .gc-foot{margin-top:auto}
/* 底部结算栏（参考 hyxt_wap cart-bar：购物车图标+合计+已优惠+优惠明细+去结算），悬于 tabbar 上方 */
.cat-dock{position:sticky;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom));z-index:20;background:#fff;box-shadow:0 4px 16px rgba(0,0,0,.14)}
.cart-bar{display:flex;align-items:center;gap:.9091rem;height:6.1818rem;padding:0 1.0909rem;border-top:1px solid #EFF0F2}
.cb-icon{position:relative;width:4.5454rem;height:4.5454rem;display:flex;align-items:center;justify-content:center;color:var(--primary);cursor:pointer;flex-shrink:0}
.cb-icon .ico{width:2.5454rem;height:2.5454rem}
.cb-badge{position:absolute;top:.0909rem;right:.0909rem;min-width:1.4545rem;height:1.4545rem;padding:0 .3636rem;border-radius:.7273rem;background:var(--primary);color:#fff;font-size:var(--fs-c1);font-weight:600;display:flex;align-items:center;justify-content:center}
.cb-txt{flex:1;min-width:0}
.cb-sum{display:flex;align-items:baseline;gap:.3636rem;color:var(--text-3);font-size:var(--fs-13)}
.cb-sum b{color:var(--primary);font-size:var(--fs-15);font-weight:700}
.cb-disc{display:flex;align-items:center;gap:.4545rem;color:var(--text-3);font-size:var(--fs-13);margin-top:.1818rem;white-space:nowrap}
.cb-disc[hidden]{display:none}
.cb-disc b{color:var(--primary);font-weight:600}
.cb-disc-btn{display:inline-flex;align-items:center;gap:.1818rem;color:#C0C0C6;cursor:pointer;flex-shrink:0;white-space:nowrap}
.cb-disc-btn .ico{width:1rem;height:1rem}
.cb-panel{border-top:1px solid #EFF0F2;background:#fff}
.cb-row{display:flex;justify-content:space-between;align-items:center;gap:.7273rem;padding:.7273rem 1.4545rem;font-size:var(--fs-13);color:var(--text-1)}
.cb-row .neg{color:var(--primary);flex-shrink:0}
.cb-row--total{font-weight:600}

/* ===== 商品详情 ===== */
.pd-banner{width:100%;aspect-ratio:1/1;overflow:hidden;position:relative;background:var(--bg)}
.pd-banner img,.pd-banner video{width:100%;height:100%;object-fit:cover;display:block}
.pd-banner .pd-type{position:absolute;top:1.2727rem;right:1.2727rem;z-index:3}
/* 详情页轮播图（1:1，最多 5 张） */
.pd-swiper{display:flex;width:100%;height:100%;touch-action:pan-y;transition:transform .3s ease;will-change:transform}
.pd-swiper.no-anim{transition:none}
.pd-slide{flex:0 0 100%;width:100%;height:100%}
.pd-slide img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none;-webkit-user-drag:none}
.pd-dots{position:absolute;left:0;right:0;bottom:2rem;display:flex;justify-content:center;gap:.3636rem;z-index:2;pointer-events:none}
.pd-dots span{width:.5455rem;height:.5455rem;border-radius:999px;background:rgba(255,255,255,.55);box-shadow:0 1px 2px rgba(0,0,0,.12);transition:width .3s,background .3s;pointer-events:auto;cursor:pointer}
.pd-dots span.on{width:1.4rem;background:#fff}
.pd-count{position:absolute;top:1.2727rem;left:1.2727rem;z-index:3;background:rgba(0,0,0,.45);color:#fff;font-size:var(--fs-c1);padding:.1818rem .5455rem;border-radius:.3636rem}
.pd-body{margin-top:-1.4rem;background:var(--bg);border-radius:1.8182rem 1.8182rem 0 0;padding:1.4rem var(--page-x);position:relative}
.pd-card{background:#fff;border-radius:var(--r-card);padding:1.2727rem}
.pd-tag{display:inline-flex;align-items:center;padding:.1rem .6364rem;border-radius:.3636rem;border:1px solid transparent;font-size:var(--fs-c1);font-weight:500;line-height:1.4;white-space:nowrap}
.pd-svc-wrap{display:flex;flex-wrap:wrap;gap:.5455rem 1.0909rem}
.pd-svc{display:inline-flex;align-items:center;gap:.2727rem;color:var(--text-1)}
.pd-svc .ico{width:1.2727rem;height:1.2727rem;color:var(--primary)}
.pd-price-row{display:flex;align-items:baseline;gap:.9091rem;flex-wrap:wrap}
/* 商品详情：送积分 / 会员折扣 标签行（对齐后台收银台商品卡 pts / vtag） */
.pd-tags{display:flex;flex-wrap:wrap;gap:.5455rem;margin-top:.5455rem}
.pd-price{color:var(--danger);font-size:var(--fs-18);font-weight:700}
.pd-price em{font-style:normal;font-size:var(--fs-13)}
.pd-market{font-size:var(--fs-c1);color:var(--text-3);text-decoration:line-through}
.pd-name{font-size:var(--fs-15);font-weight:700;margin-top:.5455rem;line-height:1.5}
.pd-sold{font-size:var(--fs-13);color:var(--text-3);margin-top:.3636rem}
.pd-cell{display:flex;justify-content:space-between;align-items:center;background:#fff;border-radius:var(--r-card);padding:1.1818rem 1.2727rem;margin-top:.9091rem;font-size:var(--fs-13);cursor:pointer}
.pd-cell .pc-l{color:var(--text-3);margin-right:1.2727rem;flex-shrink:0}
.pd-cell .pc-v{flex:1;color:var(--text-1)}
.pd-cell .pc-arrow{color:var(--text-3)}
.pd-detail{margin-top:.9091rem;background:#fff;border-radius:var(--r-card);padding:1.2727rem;font-size:var(--fs-13);color:var(--text-2);line-height:1.9}
.pd-detail b{color:var(--text-1)}
.action-bar{height:var(--tabbar-h);flex-shrink:0;background:#fff;border-top:1px solid var(--border);display:flex;align-items:center;padding:0 1.0909rem;gap:1rem}
.ab-icon{display:flex;flex-direction:column;align-items:center;font-size:var(--fs-13);color:var(--text-3);gap:.0909rem;flex-shrink:0;white-space:nowrap;cursor:pointer;text-decoration:none;position:relative}
.ab-icon svg{width:1.8182rem;height:1.8182rem}
/* 详情底部栏购物车角标（同 tabbar .badge 口径） */
.ab-icon .badge{position:absolute;top:-.1818rem;left:calc(50% + .4545rem);min-width:1.4rem;height:1.4rem;border-radius:999px;background:var(--danger);color:#fff;font-size:var(--fs-c1);display:flex;align-items:center;justify-content:center;padding:0 .3636rem;font-weight:600}
.ab-btn{flex:1;height:3.6364rem;border-radius:999px;display:flex;align-items:center;justify-content:center;font-size:var(--fs-13);font-weight:600}
.ab-cart{background:var(--primary-light);color:var(--primary)}
.ab-buy{background:var(--primary);color:#fff;box-shadow:var(--sh-brand)}
.ab-buy.off{background:var(--text-3)}

/* ===== 购物车 ===== */
.cart-item{display:flex;gap:.9091rem;background:#fff;padding:1.0909rem;margin-bottom:.9091rem;border-radius:var(--r-card);align-items:center;box-shadow:var(--shadow)}
/* 顶部工具条（全选 + 清空购物车，参考 hyxt_wap cart shop__head） */
.cart-head{display:flex;align-items:center;justify-content:space-between;background:#fff;border-radius:var(--r-card);padding:.9091rem 1.2727rem;margin-bottom:.9091rem;box-shadow:var(--shadow)}
.cart-head-l{display:flex;align-items:center;gap:.7273rem;font-size:var(--fs-13);color:var(--text-2)}
.cart-head-l b{color:var(--text-1)}
.cart-head-clear{display:inline-flex;align-items:center;gap:.2727rem;font-size:var(--fs-13);color:var(--text-3);background:none;border:0;padding:0;cursor:pointer}
.cart-head-clear .ico{width:1.2727rem;height:1.2727rem}
.cart-check{width:1.6364rem;height:1.6364rem;border-radius:50%;border:1.5px solid var(--border);flex-shrink:0;cursor:pointer}
.cart-check.on{background:var(--primary);border-color:var(--primary);position:relative}
.cart-check.on::after{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center/55% no-repeat}
.ci-img{width:6.3636rem;height:6.3636rem;border-radius:.7273rem;overflow:hidden;flex-shrink:0}
.ci-img img{width:100%;height:100%;object-fit:cover}
.ci-info{flex:1;min-width:0}
.ci-name{font-size:var(--fs-13);font-weight:600;line-height:1.4}
.ci-sku{font-size:var(--fs-c1);color:var(--text-3);background:var(--bg);border-radius:.3636rem;padding:.1818rem .5455rem;display:inline-block;margin-top:.3636rem}
/* 购物车行：送积分（对齐后台收银台 cs-pts） */
.ci-pts{font-size:var(--fs-13);color:var(--teal);font-weight:600;margin-top:.2727rem}
.ci-foot{display:flex;align-items:center;justify-content:space-between;margin-top:.7273rem}
.ci-price{color:var(--danger);font-size: var(--fs-15);font-weight:700}
.stepper{display:flex;align-items:center;gap:0;border:1px solid var(--border);border-radius:.5455rem;overflow:hidden}
.stepper button{width:2.3636rem;height:2.3636rem;font-size:var(--fs-13);color:var(--text-2);background:var(--bg)}
.stepper button:disabled{opacity:.4;cursor:default}
.stepper span{width:2.9091rem;text-align:center;font-size:var(--fs-13);font-weight:600}
.cart-settle{min-height:5.0909rem;flex-shrink:0;background:#fff;border-top:1px solid var(--border);display:flex;align-items:center;padding:.5454rem 1.2727rem;gap:1.0909rem}

/* ===== 确认下单 ===== */
.co-card{background:#fff;border-radius:var(--r-card);padding:1.2727rem;margin:1.4rem var(--page-x);box-shadow:var(--shadow)}
.co-addr{display:flex;gap:.9091rem;align-items:flex-start}
.co-addr .ca-name{font-size:var(--fs-13);font-weight:700}
.co-addr .ca-phone{font-size:var(--fs-13);color:var(--text-2);margin-left:.7273rem}
.co-addr .ca-detail{font-size:var(--fs-13);color:var(--text-2);margin-top:.2727rem}
.co-line{display:flex;justify-content:space-between;font-size:var(--fs-13);padding:.4545rem 0;color:var(--text-2)}
.co-line b{color:var(--text-1);font-weight:600}
/* ---- 结算页区块标题：统一引用 .me2-sec-t（主色竖条，见「我的」区块；全站约定，勿再新建 sec-t） ---- */
/* ---- 商品清单行：图 / 名称+规格 / 红价 / ×N·删除（对齐 saas_mf ck-row） ---- */
.co-gd{display:flex;align-items:center;gap:1.0909rem;padding:1.0909rem 0;border-bottom:1px solid var(--bg)}
.co-gd__main{flex:1;min-width:0}
.co-gd__name{font-size:var(--fs-13);font-weight:600;color:var(--text-1);line-height:1.45}
.co-gd__spec{font-weight:400;color:var(--text-3);margin-left:.5455rem}
/* 结算清单行：送积分（对齐后台收银台 cs-pts） */
.co-gd__pts{font-size:var(--fs-c1);color:var(--teal);margin-top:.1818rem}
.co-gd__price{font-size:var(--fs-15);font-weight:700;color:var(--danger);}
.co-gd__side{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:.7273rem}
.co-gd__qty{font-size:var(--fs-13);color:var(--text-2)}
.co-gd__del{font-size:var(--fs-13);color:var(--text-3);cursor:pointer}
.co-gd__del:active{color:var(--danger)}
.co-gd--sub{border-bottom:none;justify-content:space-between;padding:1rem 0 0;font-size:var(--fs-13);color:var(--text-2)}
.co-gd--sub b{font-size:var(--fs-15);font-weight:700;color:var(--danger)}
/* 订单详情清单复用 co-gd（无删除按钮），末行不画分隔线 */
.od-block .co-gd:last-child{border-bottom:none}
/* ---- 券包行（参考图定版：me2-sec-t「券包」标题 + 优惠券行（票券图标 + N 张可用）） ---- */
.co-coup-row{display:flex;justify-content:space-between;align-items:center;padding:.9091rem 0;font-size:var(--fs-13);cursor:pointer}
.co-coup-row .k{font-size: var(--fs-13);font-weight: 600;color: var(--text-1);}
.co-coup-row__l{display:flex;align-items:center;gap:.7273rem}
.co-coup-ic{flex:none;display:inline-flex;align-items:center;justify-content:center;width: 3.2rem;height: 3.2rem;border-radius: .7273rem;background:#FFF4ED;color:#E8570A}
.co-coup-ic .ico{width:1.5rem;height:1.5rem}
.co-coup-row__v{color:var(--primary);font-weight:600}
.co-coup-row__v.save{color:var(--danger)}
/* ---- 选择券包弹层（参考图二定版：不使用券包 + 蓝勾；券卡左色区右信息，减免橙/打折珊瑚红） ---- */
.cp-none{display:flex;justify-content:space-between;align-items:center;gap:.9091rem;padding:.2727rem 0 1.0909rem;border-bottom:1px solid var(--bg);cursor:pointer}
.cp-none__t{font-size:var(--fs-13);font-weight:600;color:var(--primary)}
.cp-none__sub{font-size:var(--fs-13);color:var(--text-3);margin-top:.1818rem}
.cp-check{flex:none;width:1.8182rem;height:1.8182rem;border-radius:50%;border:1.5px solid #C0C0C6;display:flex;align-items:center;justify-content:center;color:#fff}
.cp-check.on{background:var(--primary);border-color:var(--primary)}
.cp-check .ico{width:1.1rem;height:1.1rem}
/* 券包弹层内票券卡（cc-it 同款）适配：去页面外边距、圆孔随弹层白底 */
.info-sheet .cc-card{margin:.9091rem 0 0}
.info-sheet .cc-card:first-child{margin-top:1.0909rem}
.info-sheet .cc-it::before,.info-sheet .cc-it::after{background:#fff}
/* ---- 支付方式行：储值余额抵扣（开关）+ 微信支付（补足） ---- */
.co-pay,.rc-pay{display:flex;align-items:center;gap:.9091rem;padding:.9091rem 0;border-bottom:1px solid var(--bg)}
.co-pay:last-child,.rc-pay:last-child{border-bottom:none;padding-bottom:.1818rem}
.co-pay__ic,.rc-pay__ic{flex:none;display:flex;align-items:center;justify-content:center;width:3.2rem;height:3.2rem;border-radius:.7273rem;font-size:var(--fs-13);font-weight:700}
.co-pay__ic--bal,.rc-pay__ic--bal{background:var(--primary-light);color:var(--primary)}
.co-pay__ic--wx,.rc-pay__ic--wx{background:#EAF9EF;color:#22C55E}
.co-pay__ic--wx .ico,.rc-pay__ic--wx .ico{width:2rem;height:2rem}
.co-pay__bd,.rc-pay__bd{flex:1;min-width:0}
.co-pay__name,.rc-pay__name{font-size:var(--fs-13);font-weight:600;color:var(--text-1)}
.co-pay__sub,.rc-pay__sub{font-size:var(--fs-13);color:var(--text-3);margin-top:.2727rem;line-height:1.5}
.co-pay__amt,.rc-pay__amt{flex:none;font-size:var(--fs-13);font-weight:600;color:var(--text-1)}
/* ---- 金额明细（对齐 saas_mf ck-bill / 后台收银台汇总口径） ---- */
.co-kv,.rc-kv{display:flex;justify-content:space-between;gap:1.0909rem;font-size:var(--fs-13);padding:.5455rem 0;color:var(--text-2)}
.co-kv .v,.rc-kv .v{color:var(--text-1);font-weight:600;flex-shrink:0}
.co-kv--save .v,.rc-kv--save .v{color:var(--success)}
.co-kv--bal .v,.rc-kv--bal .v{color:var(--primary)}
.co-kv--pts .v{color:var(--teal)}
.co-kv--total,.rc-kv--total{border-top:1px dashed var(--border);margin-top:.3636rem;padding-top:1rem}
.co-kv--total .k,.rc-kv--total .k{color:var(--text-1);font-weight:700}
.co-kv--total .v,.rc-kv--total .v{color:var(--danger);font-size:var(--fs-15);font-weight:700}

/* ===== 支付结果 ===== */
.pay-result{display:flex;flex-direction:column;align-items:center;padding:3.6364rem var(--page-x)}
.pr-icon{width:6.7273rem;height:6.7273rem;border-radius:50%;background:var(--success-bg);display:flex;align-items:center;justify-content:center;margin-bottom:1.4rem}
.pr-icon svg{width:3.4545rem;height:3.4545rem}
.pr-title{font-size:var(--fs-18);font-weight:700}
.pr-sub{font-size:var(--fs-13);color:var(--text-3);margin-top:.5455rem;text-align:center;line-height:1.8}
.pr-amount{font-size:var(--fs-18);font-weight:700;color:var(--text-1);margin:1.6364rem 0 .3636rem}
.pr-split{width:100%;background:#fff;border-radius:var(--r-card);padding:1.4rem;margin-top:1.6364rem;box-shadow:var(--shadow)}
.pr-line{display:flex;justify-content:space-between;font-size:var(--fs-13);padding:.5455rem 0;color:var(--text-2)}
.pr-line--div{border-top:1px dashed var(--border);margin-top:.3636rem;padding-top:.9091rem}
.pr-neg{color:var(--primary);font-weight:600}
.pr-bold{font-weight:700}
.pr-note{font-size:var(--fs-13);color:var(--text-3);margin-top:.9091rem;line-height:1.7;text-align:left}
.pr-note[hidden]{display:none}
.pr-actions{display:flex;gap:1.0909rem;margin-top:2.5455rem}

/* ===== 订单列表 / 详情 ===== */
.order-tabs{display:flex;background:#fff;border-bottom:1px solid var(--border);flex-shrink:0;overflow-x:auto;scrollbar-width:none}
.order-tabs .ot{flex:none;text-align:center;padding:1.0909rem 1.7rem;font-size:var(--fs-13);color:var(--text-2);cursor:pointer;position:relative;text-decoration:none;display:block;white-space:nowrap}
.order-tabs .ot.active{color:var(--primary);font-weight:700}
.order-tabs .ot.active::after{content:'';position:absolute;left:50%;transform:translateX(-50%);bottom:0;width:2.1818rem;height:.2727rem;border-radius:.2727rem .2727rem 0 0;background:var(--primary)}
/* 等分填充变体（Tab 少时铺满整行，原 cp-tabs 场景） */
.order-tabs--fill .ot{flex:1}
.morder{background:#fff;border-radius:var(--r-card);margin:1.4rem var(--page-x);padding:1.2727rem;box-shadow:var(--shadow);cursor:pointer}
.mo-head{display:flex;justify-content:space-between;font-size:var(--fs-13);color:var(--text-3);padding-bottom:.9091rem;border-bottom:1px solid var(--bg)}
.mo-head b{color:var(--warning);font-weight:600}
.mo-goods{display:flex;gap:.9091rem;padding:1.0909rem 0 0 0;align-items:center}
.mo-foot{display:flex;justify-content:flex-end;align-items:center;padding-top:.9091rem;border-top:1px solid var(--bg)}
/* 实付金额行（参考图定版：右对齐「实付」灰字 + 红色大金额） */
.mo-pay{display:flex;justify-content:flex-end;align-items:baseline;gap:.3636rem;font-size:var(--fs-13);color:var(--text-2);}
.mo-pay b{color:var(--danger);font-weight:700;font-size:var(--fs-15)}
.mo-ops{display:flex;gap:.7273rem}
.mo-btn{height:2.5455rem;padding:0 1.1818rem;border-radius:999px;font-size:var(--fs-13);border:1px solid var(--border);color:var(--text-2);background:#fff;font-family:inherit;transition:.15s}
.mo-btn:active{transform:scale(.95)}
.mo-btn.primary{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}
.od-block{background:#fff;border-radius:var(--r-card);margin:1.4rem var(--page-x);padding:1.2727rem;box-shadow:var(--shadow)}
.od-line{display:flex;justify-content:space-between;font-size:var(--fs-13);padding:.4545rem 0;color:var(--text-2)}
.od-line b{color:var(--text-1)}
.od-line b.red{color:var(--danger)}
/* 订单详情状态头（对齐 saas_mf od-hero：品牌渐变 + 状态大字 + 副文案/支付倒计时） */
.od-hero{background: var(--grad-brand);position: relative;border-radius: var(--r-card);color: #fff;padding: 1.6rem;box-shadow: var(--sh-brand);margin: 1.4rem var(--page-x);}
.od-hero__st{font-size:var(--fs-15);font-weight:700;line-height:1.3}
.od-hero__sub{margin-top:.4545rem;font-size:var(--fs-13);opacity:.88;line-height:1.6}
.od-hero__cd{margin-top:.7273rem;display:inline-flex;align-items:center;gap:.5455rem;font-size:var(--fs-13);opacity:.95}
.od-hero__cd b{background:rgba(0,0,0,.22);border-radius:.3636rem;padding:.1818rem .5455rem;font-weight:700;letter-spacing:.05em}
/* 详情页固定底栏操作区（按钮规格与订单列表页 mo-btn 一致）
   高度对齐首页 tabbar（--tabbar-h），安全区由 .btm-dock 统一叠加 env()，此处不得重复写（否则真机底部多一条安全区白边） */
.od-ops{height:var(--tabbar-h);flex-shrink:0;display:flex;gap:.7273rem;align-items:center;justify-content:flex-end;padding:0 1.2727rem;background:#fff;border-top:1px solid var(--border)}
/* 收货信息图标（对齐参考：主色浅底圆 + home 图标） */
.od-addr-ic{flex:none;display:flex;align-items:center;justify-content:center;width:2.9091rem;height:2.9091rem;border-radius:50%;background:var(--primary-light);color:var(--primary)}
.od-addr-ic .ico{width:1.4545rem;height:1.4545rem}
/* 退款底部弹层（复用 mp-dlg-mask 遮罩 + od-line kv + mp-dlg__btns 按钮） */
.rf-sheet{position:fixed;left:0;right:0;bottom:0;z-index:99;background:#fff;border-radius:1.0909rem 1.0909rem 0 0;padding:1.2727rem 1.2727rem calc(1.2727rem + env(safe-area-inset-bottom))}
.rf-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.3636rem}
.rf-x{font-size:var(--fs-15);color:var(--text-3);cursor:pointer;line-height:1;padding:0 .2727rem}
.rf-label{font-size:var(--fs-13);color:var(--text-2);margin:.7273rem 0 .3636rem}
.rf-label i{color:var(--danger);font-style:normal;margin-right:.1818rem}
.rf-ta{width:100%;min-height:7.2727rem;background:var(--bg);border:1px solid transparent;border-radius:.7273rem;padding:.7273rem .9091rem;font-size:var(--fs-13);color:var(--text-1);line-height:1.6;resize:none;font-family:inherit;outline:0}
.rf-ta:focus{border-color:var(--primary)}
.rf-ta::placeholder{color:var(--text-3)}

/* ===== 我的（V3：对齐 saas_mf mine V3——渐变头部卡 + 资产 3 列 + 我的订单 + 常用工具宫格） ===== */
.me-avatar{width:4.9091rem;height:4.9091rem;border-radius:50%;background:rgba(255,255,255,.25);border:2px solid rgba(255,255,255,.5);display:flex;align-items:center;justify-content:center;font-size:var(--fs-18);font-weight:700;flex-shrink:0}
.me-lv{background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:.2727rem 1.0909rem;font-size:var(--fs-c1);font-weight:600;cursor:pointer}
/* ---- 渐变头部卡：身份行（头像/昵称+等级标签/手机号 + 右侧垂直居中设置钮）；充值入口移至下方储值余额卡 ---- */
.me2-wrap{padding:1.4rem var(--page-x) 1.4rem}
.me2-head{position:relative;border-radius:var(--r-card);background:var(--grad-brand);color:#fff;padding:1.6rem;box-shadow:var(--sh-brand)}
.me2-urow{position:relative;display:flex;align-items:center;gap:1.1rem}
.me2-set{position:absolute;top:50%;right:-.4rem;transform:translateY(-50%);font-size:2.4rem;opacity:.9;cursor:pointer}
.me2-set:active{opacity:.7}
.me2-uinfo{min-width:0;flex:1}
.me2-uname{display:flex;align-items:center;gap:.7273rem;font-size:var(--fs-15);font-weight:700;line-height:1.3}
.me2-uphone{margin-top:.4rem;font-size:var(--fs-13);color:rgba(255,255,255,.88)}
/* ---- 成长值进度条（方向 D 定版）：当前等级 + 成长值 + 距下一级进度（昵称旁等级标签保留） ---- */
.me2-grow{margin-top:1.4545rem;cursor:pointer}
.me2-grow:active{opacity:.9}
.me2-grow__row{display:flex;align-items:baseline;justify-content:space-between;gap:.9091rem;font-size:var(--fs-13);color:rgba(255,255,255,.85)}
.me2-grow__row b{font-weight:700;color:#fff}
.me2-grow__bar{margin-top:.5455rem;height:.3636rem;border-radius:.3636rem;background:rgba(255,255,255,.3);overflow:hidden}
.me2-grow__bar i{display:block;height:100%;border-radius:.3636rem;background:#fff}
/* ===== 会员等级页（level.html，参考 saas_mf/mine/level.html：当前等级头卡 + 等级规则卡 + 口径说明；me-lv 标签与 me2-grow 进度条跳入） ===== */
.lvl-hero{margin:1.4rem var(--page-x) 0;padding:1.6364rem 1.4545rem;border-radius:var(--r-card);background:var(--grad-brand);color:#fff;box-shadow:var(--shadow)}
.lvl-hero__row{display:flex;align-items:center;gap:1.0909rem}
.lvl-hero__ico{flex:none;width:3.6364rem;height:3.6364rem;border-radius:50%;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;color:#fff}
.lvl-hero__ico svg{width:1.9rem;height:1.9rem}
.lvl-hero__nm{font-size:var(--fs-18);font-weight:700;line-height:1.2}
.lvl-hero__sub{margin-top:.2727rem;font-size:var(--fs-13);color:rgba(255,255,255,.85)}
.lvl-hero__grow{margin-top:1.2727rem;font-size:var(--fs-13);color:rgba(255,255,255,.9)}
.lvl-hero__grow b{font-weight:700;color:#fff}
.lvl-hero__bar{margin-top:.5455rem;height:.3636rem;border-radius:.3636rem;background:rgba(255,255,255,.3);overflow:hidden}
.lvl-hero__bar i{display:block;height:100%;border-radius:.3636rem;background:#fff}
.lvl-sec{margin:1.4rem var(--page-x) 0}
.lvl-it{background:#fff;border:1px solid transparent;border-radius:var(--r-card);box-shadow:var(--shadow);padding:1.2727rem 1.4545rem;margin:0 var(--page-x) .9091rem}
.lvl-it--on{border-color:var(--primary)}
.lvl-it__top{display:flex;align-items:center;gap:.7273rem}
.lvl-it__ico{flex:none;width:2.5455rem;height:2.5455rem;border-radius:50%;display:flex;align-items:center;justify-content:center}
.lvl-it__ico svg{width:1.4rem;height:1.4rem}
.lvl-it__ico--0{background:var(--bg);color:var(--text-3)}
.lvl-it__ico--1{background:#F1F2F6;color:#64748B}
.lvl-it__ico--2{background:var(--warning-bg);color:var(--warning)}
.lvl-it__ico--3{background:var(--info-bg);color:var(--info)}
.lvl-it__nm{font-size:var(--fs-15);font-weight:700;color:var(--text-1)}
.lvl-it__tag{margin-left:auto;font-size:var(--fs-c1);color:var(--text-3);background:var(--bg);border-radius:.2727rem;padding:.1364rem .5455rem}
.lvl-it__tag--cur{color:var(--primary);background:var(--primary-light);font-weight:600}
.lvl-it__sub{margin-top:.6364rem;font-size:var(--fs-13);color:var(--text-2)}
.lvl-it__priv{margin-top:.3636rem;font-size:var(--fs-13);color:var(--text-3)}
.lvl-note{margin:1.0909rem var(--page-x) 0;padding:1.0909rem 1.2727rem;background:#fff;border-radius:var(--r-card);font-size:var(--fs-c1);color:var(--text-3);line-height:1.8}
/* ---- 储值余额卡（头部下方：余额 + 去充值 + 消费记录/充值记录入口，参考截图） ---- */
.me2-bal{padding-bottom:0}
.me2-bal__top{display:flex;align-items:center;justify-content:space-between;gap:.9091rem;padding-bottom:1.0909rem;border-bottom:1px solid var(--bg)}
.me2-bal__label{display:block;font-size:var(--fs-13);color:var(--text-3)}
.me2-bal__num{display:flex;align-items:baseline;gap:.5455rem;margin-top:.5455rem;font-size:var(--fs-18);font-weight:700;color:var(--text-1);line-height:1.1}
.me2-bal__num .gift{font-size:var(--fs-c1);font-weight:400;color:var(--text-3)}
.me2-bal__btn{flex-shrink:0;border:none;cursor:pointer;background:var(--primary);color:#fff;font-size:var(--fs-13);font-weight:700;height:2.9091rem;padding:0 1.6364rem;border-radius:999px}
.me2-bal__btn:active{background:var(--primary-hover)}
.me2-bal__links{display:flex}
.me2-bal__links a{flex:1;text-align:center;padding:.9091rem 0 1.0909rem;font-size:var(--fs-13);color:var(--text-2);cursor:pointer}
.me2-bal__links a:active{color:var(--primary)}
.me2-bal__links a+a{border-left:1px solid var(--bg)}
/* ---- 白卡通用（储值余额/订单/工具） ---- */
.me2-card{margin-top:1.4rem;background:#fff;border-radius:var(--r-card);padding:1.4rem 1.4rem 0;box-shadow:var(--shadow)}
.me2-card:first-child{margin-top:0}
.me2-sec-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.me2-sec-t{display:inline-flex;align-items:center;gap:.8rem;font-size:var(--fs-15);font-weight:700;color:var(--text-1)}
.me2-sec-t::before{content:'';width:.4rem;height:1.4rem;border-radius:.2rem;background:var(--primary);flex:none}
.me2-sec-link{font-size:var(--fs-13);color:var(--primary);font-weight:600;cursor:pointer}
/* ---- 资产 3 独立白卡：大数字（统一 danger 红）+ 名称，纯展示无操作钮 ---- */
.me2-assets{margin-top:1.4rem;display:grid;grid-template-columns:repeat(3,1fr);gap:.7273rem}
.me2-as{background:#fff;border-radius:var(--r-card);box-shadow:var(--shadow);padding:1.3636rem .5455rem;display:flex;flex-direction:column;align-items:center;gap:.6rem}
.me2-as .v{font-size:var(--fs-18);font-weight:700;color:var(--danger);line-height:1.2;white-space:nowrap}
.me2-as .v i{font-style:normal;font-size:var(--fs-13);font-weight:700;margin-right:.1rem}
.me2-as .t{font-size:var(--fs-13);color:var(--text-2)}
/* ---- 我的订单：5 状态宫格 + 数量角标（浅底彩图标） ---- */
.me2-ods{display:grid;grid-template-columns:repeat(5,1fr);padding:1.4rem 0 .4rem}
.me2-od{display:flex;flex-direction:column;align-items:center;gap:.9rem;cursor:pointer}
.me2-od-ic{position:relative;width:4rem;height:4rem;border-radius:1rem;display:flex;align-items:center;justify-content:center;font-size:2.2rem}
.me2-od-ic:active{transform:scale(.94)}
.me2-od .t{font-size:var(--fs-13);color:var(--text-1);text-align:center}
.me2-od .bd{position:absolute;top:-.3rem;right:-.3rem;min-width:1.7rem;height:1.7rem;padding:0 .45rem;border-radius:.9rem;background:var(--danger);border:.2rem solid #fff;color:#fff;font-size:var(--fs-c1);font-weight:700;display:flex;align-items:center;justify-content:center;font-style:normal}
.me2-ic--blue{background:var(--info-bg);color:var(--info)}
.me2-ic--orange{background:var(--warning-bg);color:var(--warning)}
.me2-ic--teal{background:var(--teal-light);color:var(--teal)}
.me2-ic--green{background:var(--success-bg);color:var(--success)}
.me2-ic--gray{background:var(--bg);color:var(--text-2)}
/* ---- 常用工具：4 列宫格（浅底彩图标，色板对齐 saas_mf mm-gi） ---- */
.me2-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.6rem 0;padding:1.2rem 0 .4rem}
.me2-gi{display:flex;flex-direction:column;align-items:center;gap:.9rem;cursor:pointer}
.me2-gi .gi-ic{width:4.4rem;height:4.4rem;border-radius:1.3rem;display:flex;align-items:center;justify-content:center;font-size:2.2rem;transition:transform .15s ease-out}
.me2-gi:active .gi-ic{transform:scale(.94)}
.me2-gi .gi-t{font-size:var(--fs-13);color:var(--text-1)}
.me2-gi--orange .gi-ic{background:#FFF1E6;color:#F97316}
.me2-gi--pink .gi-ic{background:#FDEDF3;color:#DB2777}
.me2-gi--purple .gi-ic{background:#F1EBFE;color:#7C3AED}
.me2-gi--green .gi-ic{background:var(--success-bg);color:var(--success)}
.me2-gi--blue .gi-ic{background:var(--info-bg);color:var(--info)}
.me2-gi--cyan .gi-ic{background:var(--teal-light);color:var(--teal)}
.me2-gi--amber .gi-ic{background:var(--warning-bg);color:var(--warning)}

/* ===== 余额充值（参考会员端 wallet：储值记录入口 / 余额卡 / 充送套餐 / 备注 / 合计 / 确认支付） ===== */
/* 顶部右上角双入口（充值记录 / 消费记录） */
.rc-toplinks{display:flex;align-items:center;justify-content:flex-end;gap:1.4rem;padding:1.4rem var(--page-x) 0}
.rc-toplink{display:inline-flex;align-items:center;gap:.2727rem;font-size:var(--fs-13);color:var(--text-2);cursor:pointer;text-decoration:none}
.rc-toplink svg{width:1.2727rem;height:1.2727rem;flex-shrink:0}
/* 「记录」下拉菜单（充值记录 / 消费记录二选一跳转） */
.rc-dd{position:relative}
.rc-dd-chev{transition:transform .15s}
.rc-dd.on .rc-dd-chev{transform:rotate(180deg)}
.rc-dd-menu{position:absolute;right:0;top:calc(100% + .4545rem);min-width:9.0909rem;background:#fff;border-radius:.7273rem;box-shadow:0 8px 24px rgba(15,23,42,.14);padding:.3636rem;z-index:30}
.rc-dd-menu[hidden]{display:none}
.rc-dd-item{display:flex;align-items:center;gap:.6364rem;padding:.7273rem .9091rem;border-radius:.5455rem;font-size:var(--fs-13);color:var(--text-1);text-decoration:none;cursor:pointer;white-space:nowrap}
.rc-dd-item:active{background:var(--bg)}
.rc-dd-item .ico{width:1.2727rem;height:1.2727rem;color:var(--text-3)}
.bal-head{background: var(--grad-brand);color: #fff; border-radius: var(--r-card); margin: 1.4rem var(--page-x) 0;padding: 1.4rem;}
.bal-head .bhv{font-size:var(--fs-18);font-weight:700;margin-top:.3636rem}
.bal-head .bhv em{font-style:normal;font-size:var(--fs-15);font-weight:400}
.rc-u{display:flex;align-items:center;gap:.9091rem}
.rc-uname{font-size:var(--fs-15);font-weight:600;display:flex;align-items:center;gap:.5455rem}
.rc-uphone{font-size:var(--fs-13);opacity:.8;margin-top:.1818rem}
.rc-bal-k{font-size:var(--fs-13);opacity:.85;margin-top:1.4rem}
.rc-card{background:#fff;border-radius:var(--r-card);margin:1.4rem var(--page-x) 0;padding:1.4rem;box-shadow:var(--shadow)}
/* 充送套餐：2 列栅格竖卡（参考会员端 wal-pkgs 竖版卡） */
.rc-list{display:grid;grid-template-columns:repeat(2,1fr);gap:.7273rem;margin-top:.9091rem}
.rc-opt{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2727rem;min-width:0;border:1.5px solid var(--border);border-radius:.9091rem;padding:1.0909rem .5455rem;background:#fff;cursor:pointer;transition:.15s;text-align:center}
.rc-opt.has-badge{padding-top:2.0909rem}
.rc-opt:active{transform:scale(.99)}
.rc-opt .ra{font-size:var(--fs-13);font-weight:700;color:var(--text-1)}
.rc-opt .rc-arrive{font-size:var(--fs-15);font-weight:700;color:var(--danger);line-height:1.1}
.rc-opt .rc-gifts{display:flex;flex-wrap:wrap;justify-content:center;gap:.2727rem}
.rc-opt .rg{font-size:var(--fs-c1);color:var(--success);background:var(--success-bg);border-radius:.3636rem;padding:.1818rem .5455rem;font-weight:600;line-height:1.3}
.rc-opt .rg.rc-first{color:var(--primary);background:var(--primary-light)}
.rc-opt .rc-badge{position:absolute;top:0;left:0;display:inline-flex;align-items:center;gap:.1818rem;padding:.1818rem .5455rem .1818rem .7273rem;border-radius:.9091rem 0 .9091rem 0;background:var(--primary);color:#fff;font-size:var(--fs-c1);font-weight:600;line-height:1.4rem}
.rc-opt .rc-badge .ico{width:1rem;height:1rem}
.rc-opt .rc-ic{display:inline-flex;align-items:center;justify-content:center;width:2.9091rem;height:2.9091rem;border-radius:.7273rem;background:var(--bg);color:var(--text-3)}
.rc-opt .rc-ic .ico{width:1.6364rem;height:1.6364rem}
.rc-opt.rc-custom .ra{color:var(--text-2)}
.rc-custom-tip{font-size:var(--fs-c1);color:var(--text-3);line-height:1.5}
.rc-opt.sel{border-color:var(--primary);background:var(--primary-light)}
.rc-opt.sel .rc-arrive{color:var(--primary)}
.rc-opt.off{opacity:.55;cursor:default}
.rc-opt .rc-check{position:absolute;top:-1px;right:-1px;width:1.8182rem;height:1.8182rem;background:var(--primary);border-radius:0 .9091rem 0 .9091rem;display:none;align-items:center;justify-content:center}
.rc-opt.sel .rc-check{display:flex}
.rc-opt .rc-check svg{width:1.0909rem;height:1.0909rem}
.rc-meta{font-size:var(--fs-c1);color:var(--text-3);line-height:1.5}
/* 合计区标题与内容间距 */
.rc-sum-body{margin-top:.5455rem}
/* 自定义金额输入（选中「自定义金额」档时展开） */
.rc-camt{display:none;margin-top:1.4rem}
.rc-camt.on{display:block}
.rc-camt .rc-camt-box{gap:.3636rem}
.rc-camt .rc-camt-y{font-size:var(--fs-15);font-weight:700;color:var(--text-1)}
.rc-camt input{font-size:var(--fs-15);font-weight:600}
.rc-camt-tip{font-size:var(--fs-c1);color:var(--text-3);margin-top:.5455rem;line-height:1.6}
/* 规则说明弹层条目 */
.rc-rule{margin-bottom:.9091rem}
.rc-rule:last-child{margin-bottom:0}
.rc-rule-t{font-size:var(--fs-13);font-weight:700;color:var(--text-1)}
.rc-rule-d{font-size:var(--fs-c1);color:var(--text-3);line-height:1.8;margin-top:.2727rem}
.rc-field{margin-top:1.0909rem}
.rc-sheet-t{font-size:var(--fs-13);color:var(--text-2);margin-top:1.2727rem;margin-bottom:.1818rem}
/* 底栏（白底吸底条 + 全宽主按钮，结构对齐 cart/checkout 的 .cart-settle） */
/* 充值页吸底条：高度对齐首页 tabbar（--tabbar-h），安全区由 .btm-dock 统一处理，此处不重复叠加 */
.rc-foot{height:var(--tabbar-h);flex-shrink:0;background:#fff;border-top:1px solid var(--border);display:flex;align-items:center;padding:0 var(--page-x)}
.rc-foot .mbtn{width:100%}
/* 余额流水（rl-consume.html 消费记录条目：金额 + 类型标签 + 支付方式 · 时间） */
.rcl-it{background:#fff;border-radius:var(--r-card);padding:1.2727rem;box-shadow:var(--shadow);margin-bottom:.9091rem}
.rcl-it:last-child{margin-bottom:0}
.rcl-r1{display:flex;align-items:center;justify-content:space-between;gap:.9091rem}
.rcl-amt{font-size:var(--fs-18);font-weight:700;line-height:1.2}
.rcl-amt.in{color:var(--success)}
.rcl-amt.out{color:var(--danger)}
.rcl-mrow{display:flex;align-items:center;justify-content:space-between;gap:.9091rem;margin-top:.5455rem}
.rcl-meta{font-size:var(--fs-c1);color:var(--text-3);line-height:1.7}
/* 充值/消费记录子页（rl-log.html / rl-consume.html）：顶部 .order-tabs + 列表 */
.rl-page .app-main{padding-bottom:0}
.rl-list{padding:1.4rem var(--page-x) 1.4rem}
.rl-empty{font-size:var(--fs-13);color:var(--text-3);text-align:center;padding:3.6363rem 0}
/* 充值订单条目（rl-log.html：实付金额 + 状态 / 实充·总到账两栏 / 支付方式 · 时间） */
.rco-it{background:#fff;border-radius:var(--r-card);padding:1.2727rem;box-shadow:var(--shadow);margin-bottom:.9091rem}
.rco-it:last-child{margin-bottom:0}
.rco-r1{display:flex;align-items:center;justify-content:space-between;gap:.9091rem}
.rco-amt{font-size:var(--fs-18);font-weight:700;color:var(--text-1);line-height:1.2}
.rco-amt .u{margin-left:.3636rem;font-size:var(--fs-c1);font-weight:400;color:var(--text-3)}
.rco-split{display:flex;gap:2.1818rem;margin-top:.7273rem}
.rco-cell{font-size:var(--fs-c1);color:var(--text-3)}
.rco-cell b{display:block;margin-top:.1818rem;font-size:var(--fs-13);font-weight:700;color:var(--text-1)}
.rco-cell.gift b{color:var(--success)}
.rco-meta{margin-top:.7273rem;font-size:var(--fs-c1);color:var(--text-3);line-height:1.7}

/* ===== 优惠券 / 礼品券 · 锯齿票券卡（参考 saas_mf coupon-center/coupon-mine cc-it：
   左值区（¥大数字+门槛+券型）| 虚线撕裂线 + 上下圆孔 | 右券名/有效期 | 操作位；
   已领取=右上斜章；配色沿用本端券色约定：减免=橙 #FFF4ED/#E8570A / 打折=珊瑚红 #FFEDEC/#FA1F12 / 礼品券=teal） ===== */
.cc-it{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:1.2rem;background:#FFF4ED;border:1px solid #FED7AA;border-radius:1.2rem;padding:1rem;margin:1.4rem var(--page-x) 0}
.cc-it--red{background:#FFEDEC;border-color:#FECACA}
.cc-it--teal{background:var(--teal-light);border-color:#99F6E4}
.cc-it::before,.cc-it::after{content:'';position:absolute;left:9.8rem;transform:translateX(-50%);width:1.4rem;height:1.4rem;border-radius:50%;background:var(--bg)}
.cc-it::before{top:-.7rem}
.cc-it::after{bottom:-.7rem}
.cc-val{flex:none;width:8.6rem;align-self:stretch;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;text-align:center;border-right:1px dashed rgba(234,88,12,.45);padding:.5rem 0;color:#E8570A}
.cc-it--red .cc-val{color:var(--danger);border-right-color:rgba(250,31,18,.45)}
.cc-it--teal .cc-val{color:var(--teal);border-right-color:rgba(13,148,136,.45)}
/* 已使用/已过期/已领取：整卡置灰（参考 coupon-mine 已使用态：灰底 + 灰值区 + 灰券型标 + 斜章） */
.cc-it--gray{background:#fff;border-color:#E5E5EB}
.cc-it--gray .cc-val{color:var(--text-3);border-right-color:rgba(120,120,135,.35)}
.cc-it--gray .cc-type,.cc-it--gray .cc-type--red,.cc-it--gray .cc-type--teal{background:#EBEBEF;color:var(--text-3)}
.cc-it--gray .cc-bd .nm{color:var(--text-2)}
.cc-val .cc-num{line-height:1;white-space:nowrap}
.cc-val .cc-num--ic{font-size:var(--fs-22)}
.cc-val .cc-num b{font-size:var(--fs-20);font-weight:800;font-variant-numeric:tabular-nums}
.cc-val .cc-num small{font-size:var(--fs-c1);font-weight:700;margin-left:.1rem}
.cc-val .cc-num .cur{font-size:var(--fs-15);font-weight:800;margin-right:.1rem}
.cc-val .cc-min{font-size:var(--fs-c1);font-weight:600;white-space:nowrap}
.cc-it.off{opacity:.62}
.cc-it.off .cc-val{opacity:.6}
.cc-type{padding:.2rem .7rem;border-radius:.6rem;font-size:var(--fs-c1);font-weight:600;line-height:1.4;background:#FFEDD5;color:#E8570A}
.cc-type--red{background:#FEE2E2;color:var(--danger)}
.cc-type--teal{background:#CCFBF1;color:var(--teal)}
.cc-bd{flex:1;min-width:0;display:flex;flex-direction:column;gap:.3rem}
.cc-bd .nm{font-size:var(--fs-13);font-weight:700;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc-bd .cond{font-size:var(--fs-c1);color:var(--text-3);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc-get,.cc-use{flex:none;height:3.2rem;padding:0 1.4rem;border:0;border-radius:999px;background:#E8570A;color:#fff;font-family:inherit;font-size:var(--fs-13);font-weight:600;cursor:pointer}
.cc-get:active,.cc-use:active{opacity:.8}
.cc-it--red .cc-get,.cc-it--red .cc-use{background:var(--danger)}
.cc-it--teal .cc-get,.cc-it--teal .cc-use{background:var(--teal)}
.cc-use--ghost{background:#fff;color:var(--text-3);box-shadow:inset 0 0 0 1px var(--border);cursor:default}
.cc-stamp{position:absolute;top:.7rem;right:.8rem;width:4.1rem;height:4.1rem;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.12;border:1px solid var(--text-3);border-radius:50%;transform:rotate(12deg);font-size:var(--fs-c1);font-style:normal;color:var(--text-3);opacity:.8;pointer-events:none}
.cc-tg{display:flex;align-items:center;gap:.4rem;margin-top:.1rem;padding:0;border:0;background:none;font-family:inherit;cursor:pointer;text-align:left;font-size:var(--fs-c1);color:var(--text-3);line-height:1.4}
.cc-tg .ar{font-style:normal;font-size:var(--fs-13);transition:transform .25s;transform-origin:center}
.cc-tg.on .ar{transform:rotate(180deg)}
/* 说明文字：不在票券卡内部，展开后以独立一行显示在 cc-it 卡片下方（.cc-card 包裹） */
.cc-card{margin:1.4rem var(--page-x) 0}
.cc-card .cc-it{margin:0}
.cc-desc{position:relative;z-index:1;margin-top:.9rem;padding:1rem 1.4rem;background: #fff;border-radius: var(--r-card);}
.cc-desc p{margin:0;font-size:var(--fs-c1);color:var(--text-2);line-height:1.8}
.cc-desc p+p{margin-top:.2rem}
/* 券类空态 */
.cc-empty{font-size:var(--fs-13);color:var(--text-3);text-align:center;padding:3.6363rem 0}
/* 礼品券页（gifts.html）：顶部 .order-tabs 切换「我的礼品券 / 可领取」 */
.gf-list{padding-bottom:1.8182rem}

/* ===== 积分 / 礼品券 / 分销 / 公告 ===== */
/* .p-center 外壳 fx.html（分销中心）仍在引用；points.html 已改用下方 pt2-* 组件 */
.p-center{background:var(--grad-brand);padding:1.4rem var(--page-x) 1.8182rem;color:#fff;text-align:center}
.pl-item{display:flex;justify-content:space-between;align-items:center;padding:1.0909rem 1.4rem;border-bottom:1px solid var(--bg)}
.pl-item:last-child{border-bottom:none}
.pl-item .plt{font-size:var(--fs-13);font-weight:600}
.pl-item .pld{font-size:var(--fs-13);color:var(--text-3);margin-top:.1818rem}
.pl-item .plv{font-size:var(--fs-15);font-weight:700}
/* ===== 分销中心 Hub（fx.html，方案 A 钱包卡式）+ 4 子页（fx-withdraw / fx-subs / fx-orders / fx-ledger） ===== */
.fx2-page .app-main{padding-bottom:1.8182rem}
/* 渐变钱包头卡（pt2-hero / od-hero 同款 --grad-brand） */
.fx2-hero{margin:1.4rem var(--page-x) 0;padding:1.4rem;border-radius:var(--r-card);background:var(--grad-brand);color:#fff;box-shadow:var(--sh-brand)}
.fx2-hero__top{display:flex;align-items:center;gap:.9091rem}
.fx2-hero__top .me-avatar{width:4.1818rem;height:4.1818rem}
.fx2-hero__bd{flex:1;min-width:0}
.fx2-hero__nm{font-size:var(--fs-15);font-weight:700;display:flex;align-items:center;gap:.5455rem;flex-wrap:wrap}
.fx2-hero__nm .mtag{background:rgba(255,255,255,.22);color:#fff}
.fx2-wd{flex-shrink:0;border:0;cursor:pointer;background:#fff;color:var(--primary);border-radius:999px;padding:.6364rem 1.2727rem;font-family:inherit;font-size:var(--fs-13);font-weight:600}
.fx2-wd:active{transform:scale(.96)}
.fx2-hero__num{margin-top:1.2727rem}
.fx2-hero__num small{display:block;font-size:var(--fs-13);opacity:.9}
.fx2-hero__num b{display:block;margin-top:.2727rem;font-size:var(--fs-18);font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}
/* 待结算 / 已提现：头卡外白卡一行两列（fx.html Hub 专用；提现页头卡内三列仍用 .fx2-hero__stats/.fx2-hstat） */
.fx2-stats{display:flex;margin:1.0909rem var(--page-x) 0;padding:1.2727rem 0;background:#fff;border-radius:var(--r-card);box-shadow:var(--shadow)}
.fx2-stat{flex:1;min-width:0;text-align:center}
.fx2-stat+.fx2-stat{border-left:1px solid var(--bg)}
.fx2-stat b{display:block;font-size:var(--fs-18);font-weight:700;line-height:1.15;font-variant-numeric:tabular-nums;color:var(--danger)}
/* 小号 ¥ 符号（对齐我的页储值余额 .me2-as .v i：fs-13/700），fx.html 头卡累计佣金与两列白卡统一 */
.fx2-hero__num b i,.fx2-stat b i{font-style:normal;font-size:var(--fs-13);font-weight:700;margin-right:.1rem}
.fx2-stat span{display:block;margin-top:.2727rem;font-size:var(--fs-c1);color:var(--text-3)}
.fx2-hero__stats{margin-top:1.0909rem;padding-top:1.0909rem;border-top:1px solid rgba(255,255,255,.28);display:flex}
.fx2-hstat{flex:1;min-width:0}
.fx2-hstat+.fx2-hstat{border-left:1px solid rgba(255,255,255,.28);padding-left:1.6364rem}
.fx2-hstat b{display:block;font-size:var(--fs-15);font-weight:700;line-height:1.15;font-variant-numeric:tabular-nums}
.fx2-hstat span{display:block;margin-top:.1818rem;font-size:var(--fs-c1);opacity:.88}
/* 分销服务：一行一个入口（单列全宽，长副文案不挤出边框） */
.fx2-grid{display:grid;grid-template-columns:1fr;gap:.7273rem;margin:1.0909rem var(--page-x) 1.8182rem}
.fx2-cell{display:flex;align-items:center;gap:.9091rem;padding:1.0909rem 1.2727rem;background:#fff;border:1px solid var(--border);border-radius:var(--r-card);cursor:pointer}
.fx2-cell:active{transform:scale(.98)}
.fx2-cell__ic{flex:none;width:3.2rem;height:3.2rem;border-radius:.9091rem;display:flex;align-items:center;justify-content:center}
.fx2-cell__ic svg{width:1.7rem;height:1.7rem}
.fx2-cell--orange .fx2-cell__ic{background:#FFF1E6;color:#F97316}
.fx2-cell--blue .fx2-cell__ic{background:var(--info-bg);color:var(--info)}
.fx2-cell--green .fx2-cell__ic{background:var(--success-bg);color:var(--success)}
.fx2-cell--cyan .fx2-cell__ic{background:var(--teal-light);color:var(--teal)}
.fx2-cell__bd{flex:1;min-width:0}
.fx2-cell__t{display:block;font-size:var(--fs-13);font-weight:600;color:var(--text-1)}
.fx2-cell__s{display:block;margin-top:.1818rem;font-size:var(--fs-c1);color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fx2-cell__go{flex:none;color:var(--text-3);display:flex}
.fx2-cell__go .ico{width:1.4rem;height:1.4rem}
/* 子页通用白卡（区块标题复用全站 .me2-sec-t） */
.fx2-card{margin:1.0909rem var(--page-x) 0;padding:1.2727rem;background:#fff;border-radius:var(--r-card);box-shadow:var(--shadow)}
.fx2-card .mfield{margin-top:.9091rem}
.fx2-card .mbtn{display:block;width:100%;margin-top:1.2727rem}
.fx2-hero--flush .fx2-hero__num{margin-top:0}
.fx2-list{margin:1.0909rem var(--page-x) 0;background:#fff;border-radius:var(--r-card);box-shadow:var(--shadow);overflow:hidden}
/* 提现页规则行（kv 同构） */
.fx2-kv{display:flex;justify-content:space-between;align-items:center;gap:1.0909rem;padding:1.0909rem 0;border-bottom:1px solid var(--bg)}
.fx2-kv:last-child{border-bottom:none;padding-bottom:.2rem}
.fx2-kv .k{font-size:var(--fs-13);color:var(--text-3)}
.fx2-kv .v{font-size:var(--fs-13);font-weight:600;color:var(--text-1)}
/* ===== 积分中心（参考 hyxt_wap/points.html 布局：hash 4 视图 我的积分 / 积分商城 / 积分明细 / 兑换记录） ===== */
.pt2-page .app-main{padding-bottom:1.8182rem}
/* 渐变积分头卡（od-hero 同款 --grad-brand） */
.pt2-hero{margin:1.4rem var(--page-x) 0;padding:1.6364rem 1.4545rem 1.4545rem;border-radius:var(--r-card);background:var(--grad-brand);color:#fff;box-shadow:var(--shadow)}
.pt2-hero__top{display:flex;align-items:flex-start;justify-content:space-between;gap:.9091rem}
.pt2-hero__label{font-size:var(--fs-13);opacity:.9}
.pt2-hero__num{display:flex;align-items:baseline;gap:.5455rem;margin-top:.5455rem}
.pt2-hero__num b{font-size:var(--fs-18);font-weight:700;line-height:1.1}
.pt2-hero__num small{font-size:var(--fs-13);font-weight:500;opacity:.9}
.pt2-hero__stats{margin-top:1.2727rem;padding-top:1.0909rem;border-top:1px solid rgba(255,255,255,.28);display:flex}
.pt2-hstat{flex:1;min-width:0}
.pt2-hstat+.pt2-hstat{border-left:1px solid rgba(255,255,255,.28);padding-left:1.6364rem}
.pt2-hstat b{display:block;font-size:var(--fs-15);font-weight:700;line-height:1.15}
.pt2-hstat span{display:block;margin-top:.1818rem;font-size:var(--fs-c1);opacity:.88}
.pt2-hero__hint{margin-top:1.0909rem;font-size:var(--fs-c1);opacity:.88}
/* 快捷入口（积分商城 / 兑换记录） */
.pt2-entries{display:grid;grid-template-columns:1fr 1fr;gap:.9091rem;margin:1.0909rem var(--page-x) 0}
.pt2-entry{display:flex;align-items:center;gap:.9091rem;padding:1.0909rem .9091rem;background:#fff;border:1px solid var(--border);border-radius:var(--r-card);cursor:pointer}
.pt2-entry:active{transform:scale(.98)}
.pt2-entry__ic{flex:none;width:3.2rem;height:3.2rem;border-radius:.9091rem;background:var(--primary-light);color:var(--primary);display:flex;align-items:center;justify-content:center}
.pt2-entry__ic svg{width:1.7rem;height:1.7rem}
.pt2-entry__ic--blue{background:var(--info-bg);color:var(--info)}
.pt2-entry__t{display:block;font-size:var(--fs-13);font-weight:600;color:var(--text-1)}
.pt2-entry__s{display:block;margin-top:.1818rem;font-size:var(--fs-c1);color:var(--text-3)}
/* 通用白卡（区块标题复用全站 .me2-sec-t） */
.pt2-card{margin:1.0909rem var(--page-x) 0;padding:1.2727rem;background:#fff;border-radius:var(--r-card);box-shadow:var(--shadow)}
.pt2-card>.me2-sec-t{margin-bottom:.3636rem}
.pt2-card__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.1818rem}
.pt2-more{display:inline-flex;align-items:center;gap:.1818rem;font-size:var(--fs-13);color:var(--text-3);cursor:pointer}
.pt2-more svg{width:1.2727rem;height:1.2727rem}
/* 积分怎么用（规则行：圆底字标 得/用/退） */
.pt2-rule{display:flex;gap:1.0909rem;padding:1.0909rem 0;border-bottom:1px solid var(--bg)}
.pt2-rule:last-child{border-bottom:none;padding-bottom:.2rem}
.pt2-rule__ic{flex:none;width:2.9rem;height:2.9rem;border-radius:50%;background:var(--primary-light);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:var(--fs-13);font-weight:600}
.pt2-rule__ic--blue{background:var(--info-bg);color:var(--info)}
.pt2-rule__ic--green{background:var(--success-bg);color:var(--success)}
.pt2-rule__t{display:block;font-size:var(--fs-13);font-weight:600;color:var(--text-1)}
.pt2-rule__d{display:block;margin-top:.1818rem;font-size:var(--fs-13);color:var(--text-3);line-height:1.7}
.pt2-rule__d b{color:var(--primary);font-weight:600}
/* 积分流水行（首页最近变动 / 明细页共用：类型标签 + 事项 + 单号·时间 + ±变动） */
.pt2-plog{display:flex;align-items:center;gap:.9091rem;padding:1.0909rem 0;border-bottom:1px solid var(--bg)}
.pt2-plog:first-child{padding-top:.3636rem}
.pt2-plog:last-child{border-bottom:none;padding-bottom:.2rem}
.pt2-plog .mtag{flex:none}
.pt2-plog__main{flex:1;min-width:0}
.pt2-plog__item{display:block;font-size:var(--fs-13);color:var(--text-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pt2-plog__meta{display:block;margin-top:.1818rem;font-size:var(--fs-c1);color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pt2-plog__delta{flex:none;font-size:var(--fs-15);font-weight:700}
.pt2-plog__delta--plus{color:var(--success)}
.pt2-plog__delta--minus{color:var(--danger)}
/* 积分商城：余额条 + 横行商品卡 */
.pt2-bar{display:flex;align-items:center;justify-content:space-between;margin:1.4rem var(--page-x) 0;padding:1.0909rem 1.2727rem;background:var(--primary-light);border-radius:var(--r-card);font-size:var(--fs-13);color:var(--text-2)}
.pt2-bar b{color:var(--primary);font-size:var(--fs-15)}
.pt2-mall{display:flex;align-items:center;gap:1.0909rem;margin:1.0909rem var(--page-x) 0;padding:1.0909rem;background:#fff;border-radius:var(--r-card);box-shadow:var(--shadow)}
.pt2-mall__thumb{flex:none;width:5.4545rem;height:5.4545rem;border-radius:.9091rem;overflow:hidden;background:var(--bg)}
.pt2-mall__thumb img{width:100%;height:100%;object-fit:cover}
.pt2-mall__main{flex:1;min-width:0}
.pt2-mall__name{display:block;font-size:var(--fs-13);font-weight:600;color:var(--text-1)}
.pt2-mall__brief{display:block;margin-top:.1818rem;font-size:var(--fs-c1);color:var(--text-3);line-height:1.5}
.pt2-mall__stock{display:block;margin-top:.3636rem;font-size:var(--fs-c1);color:var(--text-3)}
.pt2-mall__act{flex:none;text-align:right}
.pt2-mall__price{display:block;font-size:var(--fs-15);font-weight:700;color:var(--primary)}
.pt2-mall__price small{font-size:var(--fs-c1);font-weight:500;margin-left:.1818rem}
.pt2-mbtn{margin-top:.5455rem;min-height:2.7273rem;padding:0 1.2727rem;border:none;border-radius:999px;background:var(--primary);color:#fff;font-size:var(--fs-13);font-weight:600;cursor:pointer}
.pt2-mbtn:active{background:var(--primary-hover)}
.pt2-mbtn[disabled]{background:var(--bg);color:var(--text-3);cursor:not-allowed}
.pt2-mall--off .pt2-mall__thumb,.pt2-mall--off .pt2-mall__main{opacity:.5}
/* 兑换记录卡（名称 + 单号·时间·门店 + 积分 + 状态标签） */
.pt2-ex{display:flex;align-items:center;gap:1.0909rem;margin:1.0909rem var(--page-x) 0;padding:1.2727rem 1.4545rem;background:#fff;border-radius:var(--r-card);box-shadow:var(--shadow)}
.pt2-ex__main{flex:1;min-width:0}
.pt2-ex__name{display:block;font-size:var(--fs-13);font-weight:600;color:var(--text-1)}
.pt2-ex__meta{display:block;margin-top:.1818rem;font-size:var(--fs-c1);color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pt2-ex__right{flex:none;text-align:right}
.pt2-ex__cost{display:block;font-size:var(--fs-13);font-weight:600;color:var(--text-1)}
.pt2-ex__cost small{font-size:var(--fs-c1);font-weight:500;margin-left:.1818rem}
.pt2-ex__right .mtag{display:inline-block;margin-top:.3636rem}
/* 说明条 / 空态 */
.pt2-note{margin:1.0909rem var(--page-x) 0;padding:1.0909rem 1.2727rem;background:#fff;border-radius:var(--r-card);font-size:var(--fs-c1);color:var(--text-3);line-height:1.8}
.pt2-empty{padding:3.2rem 0;text-align:center;font-size:var(--fs-13);color:var(--text-3)}
.fx-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:.7273rem;margin:1.4rem var(--page-x) 0}
.fx-kpi{background:#fff;border-radius:var(--r-card);box-shadow:var(--shadow);padding:1.0909rem .7273rem;text-align:center}
.fx-kpi .fl{font-size:var(--fs-c1);color:var(--text-3)}
.fx-kpi .fv{font-size:var(--fs-15);font-weight:700;margin-top:.1818rem;color:var(--primary)}
.nt-item{display:block;background:#fff;border-radius:var(--r-card);margin:1.4rem var(--page-x);padding:1.2727rem;box-shadow:var(--shadow);cursor:pointer}
.nt-item .nt-t{font-size:var(--fs-13);font-weight:700;display:flex;align-items:center;gap:.5455rem}
.nt-item .nt-d{font-size:var(--fs-13);color:var(--text-3);margin-top:.4545rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nt-item .nt-m{font-size:var(--fs-13);color:var(--text-3);margin-top:.6364rem}
/* ===== 详情页信息弹窗（规格 / 配送 / 服务，复用 spec-sheet 头部与关闭按钮视觉） ===== */
.info-mask{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:90}
.info-sheet{position:fixed;left:0;right:0;bottom:0;z-index:91;background:#fff;border-radius:1.0909rem 1.0909rem 0 0;padding:1.2727rem 1.2727rem calc(1.2727rem + env(safe-area-inset-bottom));max-height:70vh;overflow-y:auto}
.info-body{margin-top:1.0909rem}
.info-text{font-size:var(--fs-13);color:var(--text-2);line-height:1.8}
.info-list{display:flex;flex-direction:column;gap:.5455rem}
.info-row{display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-13);color:var(--text-1);padding:.7273rem 1.0909rem;background:var(--bg);border-radius:.7273rem}
.info-row .pd-svc{color:var(--text-1);font-size:var(--fs-13)}
.info-row .num{color:var(--text-1);font-weight:600}
.nt-full{background:#fff;border-radius:var(--r-card);margin:1.4rem var(--page-x);padding:1.6364rem;font-size:var(--fs-13);color:var(--text-2);line-height:2;box-shadow:var(--shadow);white-space:pre-wrap}

/* ===== 收货地址（address.html 管理 / 选择双模式 + address-edit.html 编辑表单，参考会员端 hyxt_wap/address-list） ===== */
.adr-page .app-main{padding-bottom:calc(6.4rem + env(safe-area-inset-bottom))}
.adr-list{padding:1.4rem var(--page-x) 0}
/* 地址卡 */
.adr-card{background:#fff;border-radius:var(--r-card);padding:1.2727rem;box-shadow:var(--shadow);margin-bottom:.9091rem;border:1.5px solid transparent}
.adr-card--def{border-color:var(--primary)}
.adr-top{display:flex;align-items:center;gap:.5455rem;flex-wrap:wrap}
.adr-name{font-size:var(--fs-15);font-weight:600;color:var(--text-1)}
.adr-title{font-size:var(--fs-13);color:var(--text-3)}
.adr-badge{display:inline-flex;align-items:center;padding:.0909rem .4545rem;border-radius:var(--r-tag);font-size:var(--fs-c1);line-height:1.5rem}
.adr-badge--def{background:var(--primary);color:#fff}
.adr-badge--tag{background:var(--primary-light);color:var(--primary)}
.adr-phone{margin-top:.3636rem;font-size:var(--fs-13);color:var(--text-2);letter-spacing:.02em}
.adr-detail{margin-top:.3636rem;font-size:var(--fs-13);color:var(--text-3);line-height:1.8;word-break:break-all}
/* 管理模式：底部操作行 */
.adr-ops{display:flex;align-items:center;gap:1.6364rem;margin-top:1.0909rem;padding-top:1.0909rem;border-top:1px solid var(--border)}
.adr-op{display:inline-flex;align-items:center;gap:.3636rem;border:0;background:none;padding:0;font-family:inherit;font-size:var(--fs-13);color:var(--text-2);cursor:pointer}
.adr-op .ico{width:1.2727rem;height:1.2727rem}
.adr-op:active{color:var(--primary)}
.adr-op--danger:active{color:var(--danger)}
/* 选择模式：卡片左侧单选圈 */
.adr-card--pick{display:flex;align-items:flex-start;gap:1.0909rem;cursor:pointer}
.adr-body{flex:1;min-width:0}
.adr-radio{width:1.8182rem;height:1.8182rem;flex:none;margin-top:.1818rem;border-radius:50%;border:1.5px solid var(--border);position:relative}
.adr-card--pick.is-checked{border-color:var(--primary);background:var(--primary-light)}
.adr-card--pick.is-checked .adr-radio{border-color:var(--primary)}
.adr-card--pick.is-checked .adr-radio::after{content:'';position:absolute;inset:.2727rem;border-radius:50%;background:var(--primary)}
/* 空态 */
.adr-empty{padding:5.4545rem 0;text-align:center;font-size:var(--fs-13);color:var(--text-3);line-height:1.9}
.adr-empty__ic{display:block;width:3.6364rem;height:3.6364rem;margin:0 auto 1.0909rem;color:var(--border)}
.adr-empty__ic .ico{width:3.6364rem;height:3.6364rem}
/* 底部新建条 */
/* 地址页吸底条：高度对齐首页 tabbar（--tabbar-h），安全区由 .btm-dock 统一处理 */
.adr-foot{height:var(--tabbar-h);flex-shrink:0;background:#fff;border-top:1px solid var(--border);display:flex;align-items:center;padding:0 var(--page-x)}
.adr-foot .mbtn{width:100%}
/* 编辑表单 */
.adr-form{background:#fff;border-radius:var(--r-card);margin:1.4rem var(--page-x);padding:.3636rem 1.2727rem;box-shadow:var(--shadow)}
.adr-form--row{display:flex;align-items:center;justify-content:space-between;gap:1.0909rem;padding:1.0909rem 1.2727rem}
.adr-frow{display:flex;align-items:center;gap:1.0909rem;padding:1.0909rem 0;border-bottom:1px solid var(--border)}
.adr-frow:last-child{border-bottom:0}
.adr-frow--area{display:block;cursor:default}
.adr-label{width:5.4545rem;flex:none;font-size:var(--fs-13);color:var(--text-2)}
.adr-label--block{width:auto;display:block;padding:1.0909rem 0 .7273rem;font-size:var(--fs-13);color:var(--text-2)}
.adr-field{flex:1;min-width:0;height:auto;min-height:3.0909rem;padding:.5455rem .9091rem}
.adr-field--area{display:block}
.adr-field textarea{width:100%;border:0;outline:0;background:none;resize:none;font-family:inherit;font-size:var(--fs-13);color:var(--text-1);line-height:1.7}
.adr-field textarea::placeholder{color:var(--text-3)}
.adr-hint{margin-top:.5455rem;font-size:var(--fs-c1);color:var(--text-3);text-align:right}
.adr-region{flex:1;min-width:0;text-align:right;font-size:var(--fs-13);color:var(--text-1)}
.adr-region.is-empty{color:var(--text-3)}
.adr-chev{color:var(--text-3);flex:none}
.adr-chev .ico{width:1.2727rem;height:1.2727rem}
.adr-chips{display:flex;flex-wrap:wrap;gap:.7273rem;flex:1;justify-content:flex-end}
.adr-chips--tag{justify-content:flex-start;padding-bottom:.3636rem}
.adr-chip{display:inline-flex;align-items:center;padding:.3636rem .9091rem;border:1px solid var(--border);border-radius:999px;background:#fff;font-size:var(--fs-13);color:var(--text-2);cursor:pointer;transition:.15s}
.adr-chip:active{transform:scale(.95)}
.adr-chip.on{background:var(--primary-light);border-color:var(--primary);color:var(--primary);font-weight:600}
.adr-drow-t{font-size:var(--fs-13);color:var(--text-1);font-weight:600}
.adr-drow-s{margin-top:.2727rem;font-size:var(--fs-c1);color:var(--text-3)}
.adr-delink{display:block;width:calc(100% - 2.8rem);margin:0 var(--page-x) 1.4rem;border:0;background:none;font-family:inherit;font-size:var(--fs-13);color:var(--text-3);cursor:pointer;padding:1.0909rem 0}
.adr-delink:active{color:var(--danger)}
/* 地区三级选择弹层 */
.adr-crumbs{display:flex;flex-wrap:wrap;gap:.5455rem;margin-top:1.0909rem}
.adr-crumb{padding:.2727rem .7273rem;border-radius:999px;background:var(--bg);font-size:var(--fs-c1);color:var(--text-3);cursor:pointer}
.adr-crumb.on{background:var(--primary-light);color:var(--primary);font-weight:600}
.adr-region-list{margin-top:.9091rem;max-height:44vh;overflow-y:auto;display:flex;flex-wrap:wrap;gap:.5455rem}
.adr-region-item{padding:.5455rem 1.0909rem;border-radius:.5455rem;background:var(--bg);font-size:var(--fs-13);color:var(--text-1);cursor:pointer}
.adr-region-item:active{background:var(--primary-light);color:var(--primary)}
/* 结算页收货地址行（可点击进地址管理） */
.co-addr{cursor:pointer}
.co-addr__ic{font-size:var(--fs-18);color:var(--primary);flex:none;line-height:1}
.co-addr__ic .ico{width:1.6364rem;height:1.6364rem}
.co-addr__bd{flex:1;min-width:0}
.co-addr__r1{display:flex;align-items:baseline;gap:.5455rem;flex-wrap:wrap}
.co-addr__go{color:var(--text-3);flex:none}

/* ===== 协议页（agreement.html 用户协议 / privacy.html 隐私政策，两独立新页共用本组样式；
   入口：login.html 协议勾选行 + settings.html 通用信息） ===== */
.ag-card{margin:1.2rem var(--page-x) 0;background:#fff;border-radius:var(--r-card);box-shadow:var(--shadow);padding:1.4545rem 1.4545rem .2rem}
.ag-it{padding-bottom:1.2rem;margin-bottom:1.2rem;border-bottom:1px solid var(--bg)}
.ag-it:last-child{border-bottom:0;margin-bottom:0;padding-bottom:1.4545rem}
.ag-it__t{font-size:var(--fs-14);font-weight:700;color:var(--text-1)}
.ag-it__d{margin-top:.45rem;font-size:var(--fs-13);color:var(--text-2);line-height:1.8}
