/* ============================================================
   灵霖鑫塔商城 · v2 扩展：购物车 / 我的订单 / 管理台
   依赖 tokens.css 的设计令牌，视觉与 app.css 完全同源
   ============================================================ */

/* ---------- 通用页头 ---------- */
.page-head {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 18px; padding: 34px 0 22px; border-bottom: 1px solid var(--line); margin-bottom: 26px;
}
.page-head h2 { font-size: 30px; letter-spacing: 1px; }
.page-head .lead { font-size: 13.5px; color: var(--ink-soft); margin-top: 8px; }
.page-head .eyebrow {
  display: block; font-size: 11.5px; letter-spacing: 4px; color: var(--gold-deep);
  text-transform: uppercase; margin-bottom: 10px;
}

/* ---------- 空状态 ---------- */
.empty {
  text-align: center; padding: 64px 20px; color: var(--ink-soft);
  border: 1px dashed var(--line); border-radius: var(--radius-lg); background: #fffdf9;
}
.empty .icon { font-size: 34px; color: var(--gold-line); margin-bottom: 14px; }
.empty .name { font-family: var(--font-serif); font-size: 17px; color: var(--ink); margin-bottom: 6px; }
.empty .sub { font-size: 13px; margin-bottom: 18px; }

/* ---------- 小按钮 ---------- */
.btn-sm { padding: 6px 12px; font-size: 12.5px; border-radius: var(--radius); }

/* ---------- 卡片右上角「加购」 ---------- */
.corner-cart {
  position: absolute; top: 10px; right: 44px; width: 26px; height: 26px;
  display: grid; place-items: center; border-radius: 50%;
  background: rgba(255, 253, 249, .92); color: var(--gold-deep);
  font-size: 12px; opacity: 0; transition: opacity .2s, background .2s, color .2s;
  border: 1px solid var(--gold-line);
}
.card:hover .corner-cart { opacity: 1; }
.corner-cart:hover { background: var(--gold); color: #fff; border-color: var(--gold); }

/* 卡片底部操作按钮组：分享 / 加购 / 下单 */
.card-actions { display: flex; gap: 6px; margin-top: 8px; }
.card-act {
  flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 4px;
  padding: 6px 4px; border-radius: 8px; font-size: 12px; font-weight: 600; cursor: pointer;
  border: 1px solid transparent; transition: all .15s; white-space: nowrap; user-select: none;
}
.card-act i { font-size: 11px; }
.card-act.share { background: var(--wine); color: #fff; }
.card-act.share:hover { background: #b32626; }
.card-act.cart { background: #fff; color: var(--gold-deep); border-color: var(--gold-line); }
.card-act.cart:hover { background: var(--gold-soft); }
.card-act.buy { background: var(--gold); color: #fff; }
.card-act.buy:hover { background: var(--gold-deep); }

/* ---------- 顶栏购物车角标 ---------- */
.cart-badge {
  display: inline-grid; place-items: center; min-width: 17px; height: 17px;
  padding: 0 5px; margin-left: 5px; border-radius: 999px;
  background: var(--wine); color: #fff; font-size: 11px; font-weight: 700;
  font-family: var(--font-sans); vertical-align: 1px;
}
.cart-badge.hide { display: none !important; }

/* ---------- 购物车页 ---------- */
.cart-layout { display: grid; grid-template-columns: 1fr 336px; gap: 30px; padding-bottom: 70px; }
.cart-items { display: flex; flex-direction: column; gap: 12px; }
.cart-row {
  display: grid; grid-template-columns: 1fr auto auto auto; align-items: center; gap: 16px;
  background: #fffdf9; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 15px 18px;
}
.cr-info { min-width: 0; }
.cr-brand { font-size: 11.5px; letter-spacing: 2px; color: var(--gold-deep); text-transform: uppercase; }
.cr-name { font-size: 14.5px; color: var(--ink); margin-top: 3px; font-weight: 600; }
.cr-ver {
  display: inline-block; margin-top: 6px; font-size: 11.5px; padding: 2px 8px;
  border-radius: 999px; background: var(--ivory-2); color: var(--ink-soft);
}
.cr-ver.counter { background: var(--gold-soft); color: var(--gold-deep); }
.cr-price { font-family: var(--font-num); font-size: 19px; color: var(--gold-deep); white-space: nowrap; }
.cr-qty { display: flex; align-items: center; }
.cr-qty .qmin, .cr-qty .qplus {
  width: 28px; height: 30px; display: grid; place-items: center;
  border: 1px solid var(--line); background: var(--ivory); color: var(--ink);
  font-size: 14px; transition: all .16s;
}
.cr-qty .qmin { border-radius: var(--radius) 0 0 var(--radius); }
.cr-qty .qplus { border-radius: 0 var(--radius) var(--radius) 0; }
.cr-qty .qmin:hover, .cr-qty .qplus:hover { background: var(--gold); color: #fff; border-color: var(--gold); }
.cr-qty .qinp {
  width: 46px; height: 30px; text-align: center; border: 1px solid var(--line);
  border-left: none; border-right: none; background: #fff; color: var(--ink);
  font-family: var(--font-num); font-size: 15px; outline: none;
}
.cr-del {
  width: 30px; height: 30px; display: grid; place-items: center; border-radius: var(--radius);
  color: var(--ink-soft); font-size: 13px; transition: all .16s;
}
.cr-del:hover { color: var(--wine); background: rgba(122, 59, 71, .08); }

/* ---------- 结算侧栏 ---------- */
.cart-side { position: sticky; top: 88px; align-self: start; }
.cs-form {
  background: #fffdf9; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 20px;
}
.cs-form h4 { font-size: 16px; margin-bottom: 16px; letter-spacing: 1px; }
.cs-total {
  display: flex; align-items: baseline; justify-content: space-between;
  padding: 14px 0 16px; margin: 4px 0 16px; border-top: 1px solid var(--line);
}
.cs-total .label { font-size: 13px; color: var(--ink-soft); }
.cs-total .num { font-family: var(--font-num); font-size: 30px; color: var(--gold-deep); }
.settle-bar { margin-top: 14px; font-size: 12.5px; color: var(--ink-soft); line-height: 1.7; }
.settle-sum { font-family: var(--font-num); font-size: 16px; color: var(--gold-deep); }

/* ---------- 我的订单 ---------- */
.order-list { display: flex; flex-direction: column; gap: 14px; padding-bottom: 70px; }
.order-card {
  background: #fffdf9; border: 1px solid var(--line); border-radius: var(--radius-lg);
  padding: 18px 20px; transition: border-color .2s, box-shadow .2s;
}
.order-card:hover { border-color: var(--gold-line); box-shadow: 0 10px 26px -20px rgba(33, 28, 24, .3); }
.oc-top {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  padding-bottom: 12px; margin-bottom: 12px; border-bottom: 1px dashed var(--line);
}
.oc-no { font-family: var(--font-num); font-size: 16px; color: var(--ink); letter-spacing: .5px; }
.oc-time { font-size: 12px; color: var(--ink-soft); margin-left: 10px; font-family: var(--font-sans); }
.oc-status {
  font-size: 12px; padding: 3px 10px; border-radius: 999px; white-space: nowrap;
  background: var(--ivory-2); color: var(--ink-soft);
}
.oc-status.pending { background: var(--gold-soft); color: var(--gold-deep); }
.oc-status.paid { background: rgba(122, 59, 71, .1); color: var(--wine); }
.oc-status.done { background: rgba(90, 81, 74, .1); color: var(--ink-soft); }
.oc-status.cancel { background: rgba(120, 113, 108, .12); color: #8A8580; text-decoration: line-through; }
.oc-status.confirmed { background: rgba(214, 138, 46, .14); color: #c8780f; }   /* 待发货·橙 */
.oc-status.shipped { background: rgba(46, 138, 90, .14); color: #2e8a5a; }      /* 已发货·绿 */
/* 渠道端订单状态彩色徽标（2026-09-06）：5 类业务语义统一配色，列表与详情共用。
   仅作用于渠道端（channel.js 的 statusBadge 输出），不影响后台管理端沿用上面的旧类名。 */
.oc-status.st-pending   { background: #FFF3E0; color: #B26A00; border: 1px solid #F0C078; }  /* 待确认·橙 */
.oc-status.st-confirmed { background: #EAF3FF; color: #1B6BD8; border: 1px solid #A8CFFF; }  /* 待发货·蓝 */
.oc-status.st-shipped   { background: #E4F6EE; color: #12805A; border: 1px solid #8FD9BE; }  /* 已发货·绿 */
.oc-status.st-done      { background: #F2F1EF; color: #6B6660; border: 1px solid #DCD8D3; }  /* 已完成·灰 */
.oc-status.st-cancel    { background: #FDECEC; color: #C0392B; border: 1px solid #F3B5B0; }  /* 已取消·红 */
/* 详情行内的徽标：与文字基线对齐，避免撑高行高 */
.oc-drow .oc-status { vertical-align: middle; }
/* 发票状态徽标（月结对账单·开票管理，2026-09-11） */
.inv-badge { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 12px; white-space: nowrap; }
.inv-none { background: #F0ECE2; color: #9A8E76; }
.inv-pending { background: #FBEEDD; color: #B07A1E; }
.inv-issued { background: #E4F6EE; color: #12805A; }
/* 月结快照操作区（标记已结算 / 导出对账单 / 开票） */
.snap-ops { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
/* 开票弹窗表单 */
.form-row { margin: 12px 0; }
.form-row > label { display: block; font-size: 12.5px; color: #9A8E76; margin-bottom: 5px; }
.form-row .ch-sel { width: 100%; padding: 8px 10px; border: 1px solid #E3D9C4; border-radius: 8px; font-size: 14px; box-sizing: border-box; }
.drawer-foot { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; }
/* 状态筛选 Tab（我的订单） */
.ost-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.ost-tab {
  font-size: 13px; padding: 7px 14px; border-radius: 999px; border: 1px solid var(--line);
  background: #fffdf9; color: var(--ink-soft); cursor: pointer; transition: all .15s;
}
.ost-tab i { font-style: normal; opacity: .7; margin-left: 4px; font-family: var(--font-num); }
.ost-tab.active { background: var(--gold-deep); color: #fff; border-color: var(--gold-deep); }
/* 提交成功页 */
.qe-success { text-align: center; padding: 28px 20px; }
.qe-success .qs-icon { font-size: 46px; color: var(--gold-deep); margin-bottom: 8px; }
.qe-success h3 { margin: 4px 0 6px; font-size: 20px; }
.qe-success .qs-tip { color: var(--ink-soft); font-size: 13px; margin: 0 0 16px; }
.qe-success .qs-detail { text-align: left; background: var(--ivory-2); border: 1px solid var(--line); border-radius: var(--radius); padding: 14px 16px; max-width: 420px; margin: 0 auto 18px; }
.qe-success .qs-items { font-size: 13px; color: var(--ink-soft); margin: 6px 0; }
.qe-success .qs-amt { font-size: 15px; margin-top: 6px; }
.qe-success .qs-actions { display: flex; gap: 12px; justify-content: center; }

/* ============ 首页搜索条 ============ */
.search-bar {
  position: relative; max-width: 520px; margin: 6px 0 22px;
}
.search-bar .fa-magnifying-glass {
  position: absolute; left: 16px; top: 50%; transform: translateY(-50%);
  color: var(--gold-deep); font-size: 14px; pointer-events: none;
}
.search-bar input {
  width: 100%; box-sizing: border-box; padding: 13px 44px 13px 42px;
  border: 1px solid var(--line); border-radius: 999px; background: var(--card);
  color: var(--ink); font-size: 14px; outline: none;
  transition: border-color .2s, box-shadow .2s;
  font-family: var(--font-sans);
}
.search-bar input:focus {
  border-color: var(--gold);
  box-shadow: 0 0 0 3px var(--gold-soft);
}
.search-bar .sc-clear {
  position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
  width: 28px; height: 28px; border: none; border-radius: 50%; cursor: pointer;
  background: var(--ivory-2); color: var(--ink-soft); font-size: 12px;
}
.search-bar .sc-clear:hover { background: var(--gold-soft); color: var(--gold-deep); }

/* ============ 订单管理统计卡 ============ */
.adm-cards {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 14px; margin: 4px 0 20px;
}
.adm-card {
  background: var(--card); border: 1px solid var(--line); border-radius: 12px;
  padding: 18px 20px; text-align: left;
}
.adm-card .ac-num { font-family: var(--font-num); font-size: 30px; color: var(--gold-deep); line-height: 1.1; }
.adm-card .ac-label { font-size: 12.5px; color: var(--ink-soft); margin-top: 6px; letter-spacing: .5px; }
.adm-card.c-pending .ac-num { color: var(--gold-deep); }
.adm-card.c-paid .ac-num { color: var(--wine); }
.adm-card.c-done .ac-num { color: var(--ink); }
.adm-card.c-warn .ac-num { color: #b85c50; }

/* 订单管理行布局（独立类，不污染商品/价格表格） */
.adm-table .adm-tr.ord-row { display: grid; grid-template-columns: 1.1fr 2.6fr 1.1fr .7fr 1fr; gap: 12px; align-items: center; }
.adm-table .adm-th.ord-head { display: grid; grid-template-columns: 1.1fr 2.6fr 1.1fr .7fr 1fr; gap: 12px; align-items: center; }
.oc-prod { font-size: 14.5px; color: var(--ink); font-weight: 600; }
.oc-meta { font-size: 12.5px; color: var(--ink-soft); margin-top: 5px; }
.oc-summary-price { font-family: var(--font-num); font-size: 22px; color: var(--gold-deep); }
.oc-contact { font-size: 12.5px; color: var(--ink-soft); margin-top: 10px; line-height: 1.7; }
/* 订单详情区（Module 4：桌面端默认展开；移动端收起由 .oc-toggle 控制） */
.oc-toggle { display: none; }   /* 桌面端隐藏展开按钮 */
.oc-detail { margin-top: 12px; border-top: 1px dashed var(--line); padding-top: 12px; }
.oc-detail .oc-drow { display: flex; gap: 10px; font-size: 13px; padding: 4px 0; }
.oc-detail .oc-dk { color: var(--ink-soft); min-width: 56px; flex: none; }
.oc-detail .oc-lines { margin-bottom: 8px; }
.oc-detail .oc-line { display: flex; justify-content: space-between; gap: 14px; font-size: 13px; padding: 3px 0; }
.oc-detail .oc-lname { color: var(--ink); }
.oc-detail .oc-lqty { color: var(--ink-soft); font-family: var(--font-num); }
.order-actions { display: flex; gap: 10px; margin-top: 14px; }

/* ---------- 管理台表格 ---------- */
.adm-table {
  background: #fffdf9; border: 1px solid var(--line); border-radius: var(--radius-lg);
  overflow: hidden; margin-bottom: 60px;
}
.adm-th, .adm-tr {
  display: grid; align-items: center; gap: 14px; padding: 13px 18px;
  border-bottom: 1px solid var(--line);
}
.adm-th {
  background: var(--ivory-2); font-size: 12px; letter-spacing: 1.5px;
  color: var(--ink-soft); font-weight: 600; text-transform: uppercase;
}
.adm-tr:last-child { border-bottom: none; }
.adm-tr:hover { background: #fffaf2; }
.adm-tr .name { font-size: 14px; color: var(--ink); font-weight: 600; }
.adm-tr .sub { font-size: 12px; color: var(--ink-soft); margin-top: 3px; }
.adm-tr .num { font-family: var(--font-num); font-size: 17px; color: var(--gold-deep); }
.adm-contact { font-size: 12.5px; color: var(--ink-soft); line-height: 1.7; }
.act-approve, .act-reject { padding: 6px 12px; font-size: 12.5px; border-radius: var(--radius); transition: all .16s; }
.act-approve { background: var(--gold); color: #fff; }
.act-approve:hover { background: var(--gold-deep); }
.act-reject { background: var(--ivory-2); color: var(--ink-soft); border: 1px solid var(--line); }
.act-reject:hover { background: rgba(122, 59, 71, .1); color: var(--wine); border-color: rgba(122, 59, 71, .3); }

/* 管理台筛选 / 输入控件 */
.ch-sel, .ps-sel {
  height: 38px; padding: 0 12px; border: 1px solid var(--line); border-radius: var(--radius);
  background: #fff; color: var(--ink); font-family: var(--font-sans); font-size: 14px; outline: none;
  min-width: 180px;
}
.ch-sel:focus, .ps-sel:focus { border-color: var(--gold); box-shadow: 0 0 0 2px var(--gold-soft); }
.cp-inp, .pe-inp {
  width: 92px; height: 32px; padding: 0 9px; border: 1px solid var(--line); border-radius: var(--radius);
  background: #fff; color: var(--ink); font-family: var(--font-num); font-size: 15px; outline: none;
  text-align: right;
}
.cp-inp:focus, .pe-inp:focus { border-color: var(--gold); box-shadow: 0 0 0 2px var(--gold-soft); }
.cp-save, .pe-save {
  padding: 6px 13px; font-size: 12.5px; border-radius: var(--radius);
  background: var(--gold); color: #fff; transition: background .16s;
}
.cp-save:hover, .pe-save:hover { background: var(--gold-deep); }
.cp-save.ok, .pe-save.ok { background: var(--ink-soft); }
.cp-save[disabled], .pe-save[disabled] { opacity: .6; cursor: default; }
.cp-uniso {
  margin-top: 6px; padding: 5px 11px; font-size: 12px; border-radius: var(--radius);
  background: #fff; color: #c0392b; border: 1px solid #e7b7b0; transition: background .16s, border-color .16s;
}
.cp-uniso:hover { background: #fdecea; border-color: #c0392b; }
.cp-uniso[disabled] { opacity: .6; cursor: default; }
.iso-badge {
  display: inline-block; margin-left: 6px; padding: 1px 7px; font-size: 11px; font-weight: 600;
  border-radius: 10px; background: #fdecea; color: #c0392b; border: 1px solid #e7b7b0; vertical-align: middle;
}
.adm-tr.iso-row { background: #fff8f7; }
.iso-bar { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin: 6px 0 12px; }
.cp-uniso-all {
  padding: 8px 16px; font-size: 13px; font-weight: 600; border-radius: var(--radius);
  background: #c0392b; color: #fff; border: none; transition: background .16s;
}
.cp-uniso-all:hover { background: #a93226; }
.cp-uniso-all[disabled] { opacity: .6; cursor: default; }
.iso-tip { font-size: 12px; color: var(--ink-soft); }

/* 渠道中心筛选条 */
.filter-bar { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin: 8px 0 18px; }
.filter-bar .ps-sel { min-width: 150px; }
.filter-bar .pe-inp { width: 220px; text-align: left; font-family: var(--font-sans); }
.filter-bar .muted { font-size: 13px; }
/* 展销价 / 成本 / 专柜版价三个价格输入框：加语义色，便于快速扫读 */
.pe-ex { border-color: var(--gold-line); }
.pe-ct { border-color: rgba(217, 167, 167, .5); }
.pe-co { color: var(--ink-soft); }
.btn[disabled] { opacity: .45; cursor: default; }

/* ---------- 管理驾驶舱 KPI（合二为一：原 /ops/ 运营驾驶舱收编进 SPA） ---------- */
.kpi-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 16px; margin: 18px 0 26px; }
.kpi-card { display: block; background: #fffdf9; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 18px 18px 16px; text-decoration: none; color: inherit; transition: transform .16s, box-shadow .16s, border-color .16s; }
.kpi-card:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(197,165,114,.16); border-color: var(--gold-line); }
.kpi-ico { width: 38px; height: 38px; border-radius: 12px; display: flex; align-items: center; justify-content: center; background: var(--gold-soft); color: var(--gold-deep); font-size: 17px; margin-bottom: 12px; }
.kpi-label { font-size: 13px; color: var(--ink-soft); letter-spacing: .5px; }
.kpi-val { font-family: var(--font-num); font-size: 26px; font-weight: 700; color: var(--ink); margin-top: 4px; line-height: 1.1; }
.kpi-sub { font-size: 12px; color: var(--ink-soft); margin-top: 6px; }
.adm-section { margin: 22px 0; }
.adm-section h3 { font-size: 17px; letter-spacing: .5px; margin-bottom: 12px; color: var(--ink); }
.adm-section h3 i { color: var(--gold-deep); margin-right: 6px; }
.quick-row { display: flex; gap: 12px; flex-wrap: wrap; }
.q-btn { display: inline-flex; align-items: center; gap: 8px; padding: 11px 16px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; color: var(--ink); font-size: 14px; text-decoration: none; transition: all .16s; }
.q-btn:hover { border-color: var(--gold); color: var(--gold-deep); background: var(--gold-soft); }

/* ---------- 品牌化封面（cover.js 生成的 SVG 容器） ---------- */
.thumb svg, .gallery svg { display: block; width: 100%; height: 100%; }

/* ---------- 渠道管理操作区 ---------- */
.ch-ops { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.ch-ops button { padding: 5px 9px; font-size: 12px; border-radius: var(--radius); transition: all .16s; white-space: nowrap; }
.act-edit { background: var(--ivory-2); color: var(--ink); border: 1px solid var(--line); }
.act-edit:hover { background: var(--gold-soft); border-color: var(--gold); color: var(--gold-deep); }
.act-reset { background: var(--ivory-2); color: var(--gold-deep); border: 1px solid var(--gold-line); }
.act-reset:hover { background: var(--gold-soft); }
.act-del { background: transparent; color: var(--wine); border: 1px solid rgba(122, 59, 71, .25); }
.act-del:hover { background: rgba(122, 59, 71, .1); }

/* ---------- 弹窗 ---------- */
.modal-mask {
  position: fixed; inset: 0; background: rgba(33, 28, 24, .45);
  opacity: 0; pointer-events: none; transition: opacity .25s; z-index: 120;
}
.modal-mask.show { opacity: 1; pointer-events: auto; }
.modal {
  position: fixed; left: 50%; top: 46%; transform: translate(-50%, -50%) scale(.96);
  width: min(520px, calc(100vw - 32px)); max-height: calc(100vh - 40px);
  background: #fffdf9; border: 1px solid var(--line); border-radius: var(--radius-lg);
  box-shadow: 0 24px 60px rgba(33, 28, 24, .22);
  opacity: 0; pointer-events: none; transition: all .25s; z-index: 121;
  display: flex; flex-direction: column;
}
.modal.show { opacity: 1; pointer-events: auto; transform: translate(-50%, -50%) scale(1); }
.modal-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 20px; border-bottom: 1px solid var(--line);
}
.modal-head h3 { font-family: var(--font-serif); font-size: 18px; letter-spacing: 1px; }
.modal-close { width: 32px; height: 32px; border-radius: 50%; border: none; background: var(--ivory-2); color: var(--ink-soft); cursor: pointer; }
.modal-close:hover { background: var(--gold-soft); color: var(--gold-deep); }
.modal-body { padding: 20px; overflow-y: auto; }
.modal-body .field textarea { border-bottom: 1px solid var(--line); padding: 10px 2px; resize: vertical; }
.modal-body .field select { border-bottom: 1px solid var(--line); padding: 10px 2px; background: transparent; }
.modal-foot {
  display: flex; justify-content: flex-end; gap: 10px; padding: 14px 20px 18px;
  border-top: 1px solid var(--line);
}
.modal-foot .btn { padding: 10px 20px; }

/* ---------- 响应式 ---------- */
@media (max-width: 980px) {
  .cart-layout { grid-template-columns: 1fr; }
  .cart-side { position: static; }
  .adm-th { display: none; }
  .adm-tr { grid-template-columns: 1fr !important; gap: 8px; }
}
@media (max-width: 640px) {
  .page-head { flex-direction: column; align-items: flex-start; gap: 12px; }
  .page-head h2 { font-size: 24px; }
  .cart-row { grid-template-columns: 1fr auto; row-gap: 12px; }
  .cr-info { grid-column: 1 / -1; }
  .oc-top { flex-wrap: wrap; }
  .corner-cart { opacity: 1; }
}

/* ============ 渠道中心（合二为一：渠道角色专属后台） ============ */
.channel-center { max-width: 1120px; }
.ch-layout { display: grid; grid-template-columns: 184px 1fr; gap: 26px; align-items: start; }
.ch-aside { position: sticky; top: 92px; display: flex; flex-direction: column; gap: 6px; }
.ch-nav {
  display: flex; align-items: center; gap: 10px; padding: 11px 14px;
  border-radius: var(--radius); color: var(--ink); text-decoration: none;
  font-size: 14px; transition: all .16s; border: 1px solid transparent;
}
.ch-nav i { color: var(--gold-deep); width: 18px; text-align: center; }
.ch-nav:hover { background: var(--gold-soft); }
.ch-nav.active { background: var(--gold); color: #fff; border-color: var(--gold); }
.ch-nav.active i { color: #fff; }
.ch-main { min-width: 0; }
.ch-welcome {
  background: linear-gradient(135deg, #fffdf9, #fbf3e3); border: 1px solid var(--line);
  border-radius: var(--radius-lg); padding: 20px 22px; margin-bottom: 20px;
}
.ch-welcome h3 { font-size: 18px; margin-bottom: 6px; letter-spacing: .5px; }
.ch-welcome p { font-size: 13.5px; color: var(--ink-soft); line-height: 1.7; }
.ch-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 14px; margin: 6px 0 22px; }
.ch-sub { font-size: 16px; font-weight: 600; color: var(--ink); margin: 4px 0 14px; letter-spacing: .5px; }
.mat-list { display: flex; flex-direction: column; gap: 12px; }
.mat-item { background: #fffdf9; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 16px 18px; }
.mat-item h4 { font-size: 15px; margin-bottom: 6px; }
.mat-item p { font-size: 13px; color: var(--ink-soft); line-height: 1.7; white-space: pre-wrap; }
.mat-item .mat-tags { margin-top: 8px; display: flex; gap: 6px; flex-wrap: wrap; }
.tag-pill { font-size: 11.5px; padding: 2px 9px; border-radius: 999px; background: var(--gold-soft); color: var(--gold-deep); }
.stat-chart { background: #fffdf9; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 14px 12px 8px; margin-top: 4px; }
.stat-chart svg { max-height: 184px; }
.stat-chart rect { transition: opacity .15s; }
.stat-chart rect:hover { opacity: .78; }

@media (max-width: 860px) {
  .ch-layout { grid-template-columns: 1fr; gap: 14px; }
  .ch-aside { position: static; flex-direction: row; overflow-x: auto; padding-bottom: 4px; }
  .ch-nav { white-space: nowrap; }
}

/* ---------- 渠道专属链接横幅（首页/详情页 ?ch=） ---------- */
.ch-banner {
  display: none; align-items: center; gap: 10px;
  margin: 0 auto 16px; max-width: var(--maxw, 1180px);
  padding: 10px 16px; border-radius: var(--radius);
  background: linear-gradient(90deg, rgba(22,119,255,.14), rgba(64,150,255,.14));
  border: 1px solid var(--gold-line); color: var(--ink); font-size: 13.5px;
}
.ch-banner.show { display: flex; }
.ch-banner.loading { display: flex; color: var(--ink-soft); }
.ch-banner i { color: var(--gold-deep); }
.ch-banner b { color: var(--gold-deep); }

/* ---------- 渠道中心：专属选货链接 / 招商二维码 ---------- */
.cb-head { margin-bottom: 16px; }
.cb-title { font-family: var(--font-serif); font-size: 19px; color: var(--ink); }
.cb-grid { display: grid; grid-template-columns: 1fr 280px; gap: 18px; align-items: start; }
.cb-card { border: 1px solid var(--line); border-radius: var(--radius-lg); background: #fffdf9; padding: 18px; }
.cb-label { font-size: 13px; color: var(--ink-soft); margin-bottom: 10px; font-weight: 600; }
.cb-link { display: flex; gap: 8px; }
.cb-link input { flex: 1; padding: 8px 10px; border: 1px solid var(--line); border-radius: var(--radius); font-size: 13px; background: #fff; color: var(--ink); }
.cb-code { margin-top: 12px; font-size: 13px; color: var(--ink-soft); }
.cb-code b { color: var(--gold-deep); font-size: 15px; letter-spacing: 1px; }
.cb-qr { display: flex; flex-direction: column; align-items: center; }
.qr-box { width: 220px; height: 220px; display: flex; align-items: center; justify-content: center; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); }
.qr-box svg, .qr-box img { width: 100%; height: 100%; }
.cb-tip { margin-top: 14px; font-size: 12.5px; }

/* ---------- 月结快照列表 ---------- */
.snap-list { margin-top: 10px; }
.snap-row { align-items: center; }
.wb-section-title { font-family: var(--font-serif); font-size: 17px; color: var(--ink); margin: 8px 0 4px; }

@media (max-width: 860px) {
  .cb-grid { grid-template-columns: 1fr; }
  .ch-banner { margin-left: 16px; margin-right: 16px; }
}

/* ============ AI 肌肤顾问 ============ */
.ai-advisor { max-width: 1120px; margin: 0 auto; padding: 26px 0 70px; }
.ai-hero { text-align: center; padding: 14px 16px 26px; }
.ai-hero-eyebrow {
  display: inline-block; font-size: 11.5px; letter-spacing: 4px; color: var(--gold-deep);
  text-transform: uppercase; margin-bottom: 14px;
  padding: 5px 14px; border: 1px solid var(--gold-line); border-radius: 999px; background: var(--gold-soft);
}
.ai-hero-title { font-family: var(--font-serif); font-size: 32px; line-height: 1.32; color: var(--ink); letter-spacing: 2px; }
.ai-hero-lead { font-size: 14.5px; color: var(--ink-soft); margin-top: 12px; line-height: 1.7; }

.ai-shell { display: grid; grid-template-columns: 384px 1fr; gap: 26px; align-items: start; }
.ai-panel {
  background: #fffdf9; border: 1px solid var(--line); border-radius: var(--radius-lg);
  padding: 22px 22px 24px; position: sticky; top: 92px;
}
.ai-field { margin-bottom: 20px; }
.ai-label { display: flex; align-items: center; gap: 8px; font-size: 14.5px; color: var(--ink); font-weight: 600; margin-bottom: 11px; }
.ai-step {
  width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center;
  background: var(--gold); color: #fff; font-size: 12px; font-weight: 700; font-family: var(--font-sans);
}
.ai-hint { font-size: 12px; color: var(--ink-soft); font-weight: 400; }
.ai-tags { display: flex; flex-wrap: wrap; gap: 9px; }
.ai-tag {
  display: flex; flex-direction: column; align-items: flex-start; gap: 2px;
  padding: 8px 13px; border: 1px solid var(--line); border-radius: var(--radius);
  background: #fff; color: var(--ink); cursor: pointer; transition: all .16s; text-align: left;
}
.ai-tag b { font-size: 14px; font-weight: 600; }
.ai-tag small { font-size: 11px; color: var(--ink-soft); }
.ai-tag:hover { border-color: var(--gold); background: var(--gold-soft); }
.ai-tag.active { background: var(--gold); color: #fff; border-color: var(--gold); }
.ai-tag.active small { color: rgba(255,255,255,.85); }
.ai-text {
  width: 100%; box-sizing: border-box; padding: 12px 13px; border: 1px solid var(--line);
  border-radius: var(--radius); background: #fff; color: var(--ink); font-size: 14px; font-family: var(--font-sans);
  resize: vertical; outline: none; transition: border-color .2s, box-shadow .2s;
}
.ai-text:focus { border-color: var(--gold); box-shadow: 0 0 0 3px var(--gold-soft); }
.ai-examples { display: flex; flex-direction: column; gap: 7px; margin-top: 10px; }
.ai-ex {
  text-align: left; padding: 8px 12px; border: 1px dashed var(--gold-line); border-radius: var(--radius);
  background: rgba(197,165,114,.06); color: var(--ink-soft); font-size: 12.5px; cursor: pointer; transition: all .16s;
}
.ai-ex:hover { border-style: solid; border-color: var(--gold); color: var(--gold-deep); background: var(--gold-soft); }
.ai-submit { width: 100%; margin-top: 4px; padding: 13px; font-size: 15px; letter-spacing: 1px; }

.ai-result { min-width: 0; }
.ai-placeholder {
  text-align: center; padding: 80px 20px; color: var(--ink-soft);
  border: 1px dashed var(--line); border-radius: var(--radius-lg); background: #fffdf9;
}
.ai-ph-icon { font-size: 40px; color: var(--gold-line); margin-bottom: 16px; }
.ai-ph-text { font-size: 14px; line-height: 1.8; }
.ai-loading { text-align: center; padding: 80px 20px; color: var(--ink-soft); font-size: 14px; }
.ai-loading i { font-size: 26px; color: var(--gold-deep); margin-right: 8px; vertical-align: -3px; }

.ai-advice {
  background: linear-gradient(135deg, #fffdf9, #fbf3e3); border: 1px solid var(--gold-line);
  border-radius: var(--radius-lg); padding: 20px 22px; margin-bottom: 22px;
}
.ai-advice-head { font-family: var(--font-serif); font-size: 17px; color: var(--ink); display: flex; align-items: center; gap: 8px; }
.ai-advice-head i { color: var(--gold-deep); }
.ai-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 6px; }
.ai-chip {
  font-size: 12px; padding: 4px 12px; border-radius: 999px; font-weight: 600;
}
.ai-chip.skin { background: var(--gold); color: #fff; }
.ai-chip.concern { background: var(--wine); color: #fff; }
.ai-msg { font-size: 14px; color: var(--ink); line-height: 1.8; margin: 8px 0 0; }
.ai-tips { margin: 12px 0 0; padding-left: 20px; display: flex; flex-direction: column; gap: 7px; }
.ai-tips li { font-size: 13px; color: var(--ink-soft); line-height: 1.7; }

.ai-rec-head { font-family: var(--font-serif); font-size: 17px; color: var(--ink); margin: 6px 0 14px; display: flex; align-items: center; gap: 8px; }
.ai-rec-head i { color: var(--gold-deep); }
.ai-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(178px, 1fr)); gap: 16px; }
.ai-grid .corner-dl { display: none; }
.ai-reason {
  margin-top: 9px; font-size: 12px; color: var(--gold-deep); line-height: 1.5;
  display: flex; gap: 5px; align-items: flex-start;
}
.ai-reason i { margin-top: 2px; font-size: 11px; }

@media (max-width: 860px) {
  .ai-shell { grid-template-columns: 1fr; gap: 16px; }
  .ai-panel { position: static; }
  .ai-hero-title { font-size: 25px; }
}

/* ---------- 渠道管理增强：弹窗 / Tab / 详情 / 识别 ---------- */
.modal-lg { width: min(720px, calc(100vw - 32px)); }
.wine { color: var(--wine); }
.muted { color: var(--ink-soft); }

/* 通用输入框 */
.inp {
  width: 100%; height: 38px; padding: 0 12px; border: 1px solid var(--line); border-radius: var(--radius);
  background: #fff; color: var(--ink); font-family: var(--font-sans); font-size: 14px; outline: none;
  box-sizing: border-box;
}
.inp:focus { border-color: var(--gold); box-shadow: 0 0 0 2px var(--gold-soft); }
textarea.inp { height: auto; padding: 10px 12px; resize: vertical; line-height: 1.6; }

/* 弹窗内表单输入（基础/联系/财务/合作 Tab 共用 .field） */
.modal-body .field input:not(.inp) {
  width: 100%; border: none; border-bottom: 1px solid var(--line); background: transparent;
  padding: 10px 2px; font-size: 14px; color: var(--ink); outline: none; font-family: var(--font-sans);
}
.modal-body .field input:not(.inp):focus { border-bottom-color: var(--gold); }
.modal-body .field input[readonly] { color: var(--ink-soft); background: var(--ivory-2); border-radius: 6px; }
.modal-body .field label { display: block; font-size: 12.5px; color: var(--ink-soft); margin-bottom: 4px; letter-spacing: .3px; }

/* Tab 切换 */
.tabs { display: flex; gap: 4px; margin-bottom: 18px; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.tab {
  padding: 9px 15px; font-size: 13px; border: none; background: transparent; color: var(--ink-soft);
  cursor: pointer; border-bottom: 2px solid transparent; transition: all .16s; font-family: var(--font-sans);
}
.tab:hover { color: var(--gold-deep); }
.tab.active { color: var(--gold-deep); border-bottom-color: var(--gold); font-weight: 600; }
.tab-panel { display: none; }
.tab-panel.active { display: block; }

/* 上传行 */
.up-row { display: flex; gap: 8px; align-items: center; }
.up-row .inp { flex: 1; }

/* 详情网格 */
.info-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px 20px; }
.info-k { font-size: 12px; color: var(--ink-soft); letter-spacing: .5px; margin-bottom: 4px; }
.info-v { font-size: 14px; color: var(--ink); font-weight: 500; word-break: break-all; line-height: 1.5; }

/* 工具栏 */
.toolbar .inp { width: auto; }

/* 申请页：分节与必填星号 */
.form-section { border: 1px solid var(--line, #ece6dc); border-radius: 12px; padding: 14px 16px 4px; margin-bottom: 14px; background: #fffdf9; }
.fs-title { font-size: 14px; font-weight: 700; color: var(--ink, #2a2320); margin: 0 0 10px; padding-left: 9px; border-left: 3px solid var(--gold, #c8a45c); }
.field label i { color: #d23b3b; font-style: normal; margin-left: 2px; }
.lic-prev { margin-top: 8px; }
.lic-prev img { max-width: 160px; max-height: 160px; border-radius: 8px; border: 1px solid var(--line, #ece6dc); display: block; }
.lic-ok { display: inline-block; margin-top: 4px; color: #1f9d55; font-size: 12px; }
.up-row input[type=file] { flex: 1; font-size: 13px; }

/* ============ 组合分享页（#/share/pack） ============ */
.share-page { padding: 30px 0 70px; }
.share-banner {
  display: flex; align-items: center; gap: 10px; margin-bottom: 18px;
  padding: 12px 18px; border-radius: var(--radius);
  background: linear-gradient(90deg, rgba(197,165,114,.16), rgba(197,165,114,.06));
  border: 1px solid var(--gold-line); color: var(--ink); font-size: 14px;
}
.share-banner i { color: var(--gold-deep); font-size: 16px; }
.share-head h1 { font-family: var(--font-serif); font-size: 27px; letter-spacing: 1px; color: var(--ink); }
.share-head h1 i { color: var(--gold-deep); margin-right: 8px; }
.share-sub { font-size: 13.5px; color: var(--ink-soft); line-height: 1.7; margin: 10px 0 22px; max-width: 720px; }
.share-grid { display: grid; grid-template-columns: 1fr 420px; gap: 26px; align-items: start; }
@media (max-width: 980px) {
  .share-grid { grid-template-columns: 1fr; }
  .share-col.make { position: static; top: auto; }
}

.share-col.pick {
  background: #fffdf9; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 16px;
}
.sp-toolbar { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.sp-toolbar input {
  flex: 1; height: 38px; padding: 0 14px; border: 1px solid var(--line); border-radius: 999px;
  background: #fff; color: var(--ink); font-size: 14px; outline: none; font-family: var(--font-sans);
}
.sp-toolbar input:focus { border-color: var(--gold); box-shadow: 0 0 0 3px var(--gold-soft); }
.sp-count { font-size: 12.5px; color: var(--gold-deep); white-space: nowrap; font-weight: 600; }
.sp-list { display: flex; flex-direction: column; gap: 8px; max-height: 560px; overflow-y: auto; padding-right: 4px; }
.sp-item {
  display: flex; align-items: center; gap: 12px; padding: 9px 11px; border-radius: var(--radius);
  border: 1px solid var(--line); background: #fff; cursor: pointer; transition: all .16s;
}
.sp-item:hover { border-color: var(--gold-line); }
.sp-item.on { border-color: var(--gold); background: var(--gold-soft); }
.sp-item input { width: 17px; height: 17px; accent-color: var(--gold); flex: none; }
.sp-thumb { width: 52px; height: 52px; border-radius: 8px; overflow: hidden; background: var(--ivory-2); flex: none; }
.sp-thumb img { width: 100%; height: 100%; object-fit: contain; padding: 2px; box-sizing: border-box; }
.sp-info { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.sp-brand { font-size: 11px; letter-spacing: 1.5px; color: var(--gold-deep); text-transform: uppercase; }
.sp-name { font-size: 14px; color: var(--ink); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sp-price { font-size: 12.5px; color: var(--ink-soft); font-family: var(--font-num); }

.share-col.make { position: sticky; top: 92px; }
.sp-preview { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; min-height: 40px; }
.pv-chip {
  display: inline-flex; align-items: center; gap: 7px; padding: 6px 10px; border-radius: 999px;
  background: #fffdf9; border: 1px solid var(--gold-line); font-size: 12.5px; color: var(--ink);
}
.pv-chip img { width: 26px; height: 26px; border-radius: 6px; object-fit: cover; }
.pv-chip b { font-weight: 600; max-width: 120px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pv-chip i { font-style: normal; color: var(--gold-deep); font-family: var(--font-num); }
.pv-empty { font-size: 13px; color: var(--ink-soft); }
.sp-pick-head { display: flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: var(--gold-deep); margin-bottom: 10px; }
.sp-pick-head i { font-size: 13px; }
.sp-empty { font-size: 13px; color: var(--ink-soft); padding: 18px 8px; text-align: center; border: 1px dashed var(--line); border-radius: var(--radius); }
.pv-chip .pv-x {
  display: inline-grid; place-items: center; width: 16px; height: 16px; margin-left: 2px;
  border-radius: 50%; background: rgba(33,28,24,.08); color: var(--ink-soft);
  font-style: normal; font-size: 13px; line-height: 1; cursor: pointer; transition: all .15s;
}
.pv-chip .pv-x:hover { background: var(--wine); color: #fff; }
.sp-actions { display: flex; gap: 10px; }
.sp-actions .btn { width: 100%; padding: 13px; font-size: 15px; letter-spacing: 1px; }

.poster-box { margin-top: 16px; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.poster-canvas {
  width: 100%; max-width: 360px; height: auto; border-radius: var(--radius-lg);
  box-shadow: 0 18px 44px -22px rgba(33,28,24,.5); border: 1px solid var(--line);
}
.poster-bar { display: flex; flex-wrap: wrap; gap: 10px; width: 100%; max-width: 360px; }
.poster-bar .btn { flex: 1 1 calc(50% - 5px); min-width: 148px; font-size: 13.5px; padding: 11px 8px; }

/* 阶段 D：海报文案多风格（风格选择器 + 多卡片 + 一键复制） */
.copy-style-row {
  display: flex; align-items: center; gap: 8px; width: 100%;
  font-size: 13px; color: var(--ink-soft);
}
.copy-style-sel {
  flex: 1; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px;
  background: #fff; font-size: 13px; color: var(--ink); font-family: inherit;
}
.copy-cards { display: none; width: 100%; max-width: 560px; flex-direction: column; gap: 12px; margin-top: 4px; }
.copy-cards.on { display: flex; }
.copy-card {
  border: 1px solid var(--line); border-radius: var(--radius); padding: 12px 14px;
  background: #fff; cursor: pointer; transition: border-color .15s ease, box-shadow .15s ease;
}
.copy-card:hover { border-color: var(--gold); }
.copy-card.active { border-color: var(--gold); box-shadow: 0 0 0 2px rgba(184,135,59,.14); }
.cc-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.cc-style {
  font-size: 12px; padding: 3px 9px; border-radius: 999px; font-weight: 600;
  background: rgba(184,135,59,.12); color: var(--gold);
}
.cc-copy {
  border: 1px solid var(--line); background: #fff; border-radius: 8px; padding: 5px 10px;
  font-size: 12px; cursor: pointer; color: var(--ink-soft); font-family: inherit;
}
.cc-copy:hover { border-color: var(--gold); color: var(--gold); }
.cc-title { font-size: 15px; font-weight: 700; margin-bottom: 6px; color: var(--ink); }
.cc-content { font-size: 13.5px; line-height: 1.7; color: var(--ink-soft); white-space: pre-wrap; }
.cc-tips { margin-top: 8px; font-size: 12px; color: var(--ink-soft); opacity: .75; }

/* 海报模板切换 */
.poster-tpls { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; }
.poster-tpls .pt {
  border: 1px solid var(--line); background: var(--ivory-2); color: var(--ink-soft);
  border-radius: 999px; padding: 7px 16px; font-size: 13px; cursor: pointer;
  transition: all .18s ease; font-family: inherit;
}
.poster-tpls .pt:hover { border-color: var(--gold); color: var(--gold); }
.poster-tpls .pt.on { background: var(--gold); border-color: var(--gold); color: #fff; font-weight: 600; }
.poster-loading {
  padding: 40px 0; color: var(--ink-soft); font-size: 14px; text-align: center; width: 100%;
}
.poster-loading i { margin-right: 6px; }
.share-entry { margin-top: 14px; }
.share-entry .pkg { display: inline-flex; }

@media (max-width: 900px) {
  .share-grid { grid-template-columns: 1fr; }
  .share-col.make { position: static; }
  .sp-list { max-height: 360px; }
}

/* ---------- 会员中心 · 分销关系区块 ---------- */
.share-rel-block { margin-top: 30px; border-top: 1px solid var(--line); padding-top: 24px; }
.share-rel-block h3 { font-size: 17px; margin-bottom: 16px; display: flex; align-items: center; gap: 8px; }
.share-rel-block h3 i { color: var(--gold-deep); }
.rel-loading, .rel-list { margin-top: 6px; }
.rel-row {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  padding: 11px 14px; border: 1px solid var(--line); border-radius: var(--radius-md);
  margin-bottom: 10px; background: var(--surface-2, #faf7f3);
}
.rel-tag { font-size: 12px; padding: 3px 9px; border-radius: 999px; font-weight: 600; white-space: nowrap; }
.rel-tag.up { background: var(--gold-soft, #f4ead6); color: var(--gold-deep); }
.rel-name { font-weight: 600; color: var(--ink); }
.rel-meta { font-size: 12.5px; color: var(--ink-soft); }
.rel-earn { font-size: 12.5px; color: var(--gold-deep); font-weight: 600; background: var(--gold-soft, #f4ead6); padding: 2px 9px; border-radius: 999px; }
.rel-sub { font-size: 13px; color: var(--ink-soft); margin: 14px 0 8px; font-weight: 600; }

/* ---------- 管理后台 · 分销绑定列表 ---------- */
.as-filters {
  display: flex; gap: 10px; flex-wrap: wrap; align-items: center;
  margin-bottom: 20px; padding: 16px; border: 1px solid var(--line); border-radius: var(--radius-md);
  background: var(--surface-2, #faf7f3);
}
.as-in {
  height: 38px; padding: 0 12px; border: 1px solid var(--line); border-radius: var(--radius-sm);
  font-size: 14px; background: #fff; color: var(--ink); min-width: 140px;
}
.as-in:focus { outline: none; border-color: var(--gold-deep); }
.as-list { overflow-x: auto; }
.as-table { width: 100%; border-collapse: collapse; font-size: 13.5px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-md); overflow: hidden; }
.as-table th { text-align: left; padding: 12px 14px; background: var(--surface-3, #f3ede5); color: var(--ink-soft); font-weight: 600; white-space: nowrap; }
.as-table td { padding: 12px 14px; border-top: 1px solid var(--line); vertical-align: top; }
.as-table .rel-name { font-weight: 600; }
.as-table .rel-meta { font-size: 12px; color: var(--ink-soft); margin-top: 2px; }
.as-pager { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 18px; flex-wrap: wrap; }
.pager-info { font-size: 13px; color: var(--ink-soft); }
.pager-btns { display: flex; align-items: center; gap: 10px; }
.pager-cur { font-size: 13px; color: var(--ink-soft); }

/* ===== L.6 白标子商城品牌露出 ===== */
.topbar.submall { border-bottom: 2px solid var(--brand, #8a6d3b); }
.topbar.submall .brandmark .logo { color: var(--brand, #8a6d3b); }
.submall .ch-banner.show { background: linear-gradient(135deg, var(--brand, #8a6d3b), color-mix(in srgb, var(--brand, #8a6d3b) 70%, #000 30%)); }
.sub-tip { background: #fff8ec; border: 1px solid #f0e0bf; color: #8a6d3b; border-radius: 10px; padding: 10px 12px; font-size: 13px; line-height: 1.6; margin-bottom: 12px; }
/* 子商城顶部 Logo 图 */
.cs-top-logo { height: 30px; max-width: 160px; object-fit: contain; vertical-align: middle; margin-right: 8px; }
/* 渠道品牌商城：主题色全局应用（--brand 由 ensureShowcase 注入根节点） */
body.channel-skin .btn-gold { background: var(--brand, #b08a4a); border-color: transparent; color: #fff; }
body.channel-skin .btn-gold:hover { filter: brightness(1.06); }
body.channel-skin .footer.channel-skin-footer .f-brand { color: var(--brand, #8a6d3b); }
/* 🔴 合规：渠道子商城页脚必须展示「运营方 + 供货履约方」署名与 ICP / 公安备案行，不得隐藏主体 */
body.channel-skin .footer.channel-skin-footer .f-beian { display: block !important; opacity: 1 !important; padding-top: 8px; }
body.channel-skin .footer.channel-skin-footer .f-brand { line-height: 1.7; text-align: center; }
body.channel-skin .footer.channel-skin-footer .f-beian,
body.channel-skin .footer.channel-skin-footer .f-beian a { color: rgba(246, 241, 233, .72); }
/* 品牌定制表单（渠道中心 ③） */
.cb-brand { margin-top: 16px; }
.cb-row { display: flex; gap: 16px; padding: 14px 0; border-top: 1px dashed #ece2d0; }
.cb-row:first-child { border-top: none; }
.cb-k { width: 88px; flex: 0 0 88px; font-weight: 600; color: #5b4a2f; padding-top: 6px; font-size: 14px; }
.cb-v { flex: 1; min-width: 0; }
.cb-logo-prev { width: 120px; height: 120px; border: 1px dashed #e3d6bf; border-radius: 12px; display: flex; align-items: center; justify-content: center; background: #faf6f0; overflow: hidden; }
.cb-logo-prev img { max-width: 100%; max-height: 100%; object-fit: contain; }
.cb-logo-empty { color: #b3a584; font-size: 13px; }
.cb-swatches { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.cb-swatch { width: 30px; height: 30px; border-radius: 50%; cursor: pointer; border: 2px solid #fff; box-shadow: 0 0 0 1px #e3d6bf; transition: transform .12s; }
.cb-swatch:hover { transform: scale(1.08); }
.cb-swatch.on { box-shadow: 0 0 0 2px #333, 0 0 0 4px #fff; }
.cb-colorpick { width: 34px; height: 30px; border: 1px solid #e3d6bf; border-radius: 6px; background: #fff; cursor: pointer; padding: 2px; }
.cb-preview { margin-top: 14px; border: 1px solid #ece2d0; border-radius: 12px; overflow: hidden; }
.cb-preview-bar { background: var(--c, #8a6d3b); color: #fff; padding: 16px 20px; display: flex; align-items: center; gap: 12px; }
.cb-preview-logo { width: 40px; height: 40px; border-radius: 8px; background: rgba(255,255,255,.92); display: inline-flex; align-items: center; justify-content: center; overflow: hidden; }
.cb-preview-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.cb-preview-name { font-size: 18px; font-weight: 700; letter-spacing: 1px; }
@media (max-width: 600px) {
  .cb-row { flex-direction: column; gap: 6px; }
  .cb-k { width: auto; flex: none; padding-top: 0; }
}

/* ===== G 客户 CRM 列表 ===== */
.cust-summary { display: flex; gap: 14px; flex-wrap: wrap; margin: 4px 0 16px; }
.sum-card { background: var(--surface-2, #faf6f0); border: 1px solid var(--line); border-radius: 12px; padding: 12px 18px; min-width: 130px; }
.sum-val { font-size: 22px; font-weight: 700; color: var(--ink); }
.sum-label { font-size: 12px; color: var(--ink-soft); margin-top: 2px; }
.adm-table .c-name { font-weight: 600; color: var(--ink); }
.adm-table .c-phone { font-size: 12px; color: var(--ink-soft); margin-top: 2px; }
.adm-table .c-addr { font-size: 12px; color: var(--ink-soft); margin-top: 2px; max-width: 260px; }
.adm-table .c-amt { font-weight: 600; color: var(--gold-deep, #8a6d3b); white-space: nowrap; }
.pager { display: flex; align-items: center; justify-content: flex-end; gap: 14px; margin-top: 18px; }
.tag { display: inline-block; font-size: 11.5px; padding: 2px 9px; border-radius: 999px; background: #f0f0f0; color: #666; }
.tag.tag-repeat { background: var(--gold-soft, #f3e6c8); color: var(--gold-deep, #8a6d3b); font-weight: 600; }
.sub-tip + .field, .sub-tip { margin-top: 6px; }
.field .switch { position: relative; display: inline-block; width: 46px; height: 24px; vertical-align: middle; }
.field .switch input { opacity: 0; width: 0; height: 0; }
.field .switch .slider { position: absolute; cursor: pointer; inset: 0; background: #ccc; border-radius: 24px; transition: .2s; }
.field .switch .slider::before { content: ''; position: absolute; height: 18px; width: 18px; left: 3px; top: 3px; background: #fff; border-radius: 50%; transition: .2s; }
.field .switch input:checked + .slider { background: var(--gold, #c8a45c); }
.field .switch input:checked + .slider::before { transform: translateX(22px); }

/* ---------- 弹窗脚手架（modalShell 使用，原缺样式，这里补齐） ---------- */
.ord-mask { position: fixed; inset: 0; background: rgba(20,16,10,.55); display: flex; align-items: center; justify-content: center; z-index: 9999; padding: 20px; }
.ord-modal { background: #fff; border-radius: 16px; width: min(680px, 96vw); max-height: 88vh; display: flex; flex-direction: column; box-shadow: 0 24px 60px rgba(0,0,0,.25); overflow: hidden; }
.om-head { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid #eee; font-weight: 600; font-size: 16px; color: var(--ink); }
.om-close { border: none; background: transparent; font-size: 22px; line-height: 1; cursor: pointer; color: #999; }
.om-close:hover { color: #333; }
.om-body { padding: 20px; overflow: auto; }
.om-body label { display: block; font-size: 13px; color: var(--ink-soft); margin: 10px 0 4px; }
.om-body input, .om-body textarea, .om-body select { width: 100%; padding: 9px 11px; border: 1px solid #e2e2e2; border-radius: 9px; font-size: 14px; box-sizing: border-box; }
.om-submit { margin-top: 16px; }
.om-info { background: #f7f7f4; border: 1px solid #ececE6; border-radius: 10px; padding: 10px 12px; font-size: 13px; color: var(--ink-soft); margin-bottom: 12px; }
.om-info b { color: var(--ink); }
/* 发货登记：从高塔发货表自动同步物流信息 */
.sh-sync { margin: -4px 0 12px; padding: 8px 12px; border-radius: 10px; font-size: 13px; line-height: 1.5; }
.sh-sync-loading { color: var(--ink-soft); background: #f4f4f0; border: 1px solid #ececE6; }
.sh-sync-ok { color: #1f7a3d; background: #eaf6ee; border: 1px solid #bfe6cc; }
.sh-sync-empty { color: #8a8a82; background: #f4f4f0; border: 1px dashed #d8d8d0; }
.sh-sync-bar { display: flex; justify-content: flex-end; margin-bottom: 10px; }
.sh-sync-bar .btn-ghost { font-size: 12px; padding: 5px 12px; }
.om-actions { display: flex; gap: 10px; margin-top: 16px; flex-wrap: wrap; }

/* ---------- 发货成功：展示单号供复制 ---------- */
.ship-done-box { background: #f7f7f4; border: 1px solid #ececE6; border-radius: 10px; padding: 12px 14px; margin-bottom: 12px; }
.sd-line { font-size: 14px; color: var(--ink-soft); margin: 6px 0; }
.sd-line b { color: var(--ink); font-weight: 600; word-break: break-all; }
.sd-tip { font-size: 12px; margin-top: 8px; }


/* ---------- 发货：从腾讯文档拉取物流 ---------- */
.ship-pull { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; background: #f3f8ff; border: 1px solid #d8e6ff; border-radius: 10px; padding: 10px 12px; margin-bottom: 10px; }

/* ---------- 发货记录 / 迁移明细列表 ---------- */
.gt-list { display: flex; flex-direction: column; gap: 8px; max-height: 56vh; overflow: auto; margin-top: 4px; }
.gt-row { display: grid; grid-template-columns: 1fr auto; grid-template-areas: "main tag" "sub tag"; gap: 2px 12px; padding: 10px 12px; border: 1px solid #eee; border-radius: 10px; background: #fff; }
.gt-main { grid-area: main; font-size: 14px; color: var(--ink); }
.gt-sub { grid-area: sub; font-size: 12px; }
.gt-tag { grid-area: tag; align-self: center; }
.gt-list-pager { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 14px; flex-wrap: wrap; }

/* ---------- 状态标签变体 ---------- */
.tag-ok { background: #e6f6ec; color: #1c8a4f; }
.tag-warn { background: #fdf0e2; color: #b9742a; }
.tag-info { background: #e8f1ff; color: #2f6fd0; }
.tag-muted { background: #f0f0f0; color: #888; }


/* ===== L.2 佣金管理（后台） ===== */
.rule-box { display: flex; align-items: flex-end; gap: 14px; flex-wrap: wrap; background: #faf7f1; border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; }
.rule-box .fld { display: flex; flex-direction: column; gap: 6px; font-size: 13px; }
.rule-box .fld input { width: 110px; }
.lv-tag { display: inline-block; padding: 2px 8px; border-radius: 20px; background: var(--gold-soft, #f3e9d6); color: var(--gold-ink, #8a6d3b); font-size: 12px; font-weight: 600; }
.commission-block .ci-amt { font-weight: 600; color: var(--wine, #9b2d3a); }

/* ---------- 售后工单（adminAfterSales） ---------- */
.as-reason { font-size: 13px; color: var(--ink-soft); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.as-time { font-size: 12px; color: var(--ink-soft); }
.as-ops { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }






/* ---------- 收货地址：粘贴识别 + 地址簿（js/address.js） ---------- */
.addr-host { margin: 10px 0 4px; }
.addr-block { display: flex; flex-direction: column; gap: 10px; }
.ab-row label { display: block; font-size: 13px; color: var(--ink-soft); margin-bottom: 6px; }
.ab-pick { width: 100%; padding: 10px 12px; border: 1px solid var(--gold, #c5a572); border-radius: var(--radius, 8px); font-size: 14px; font-family: inherit; background: #fffdf9; color: var(--ink, #2e2519); }
.ab-pick:focus { outline: none; border-color: var(--gold, #c5a572); box-shadow: 0 0 0 3px rgba(197,165,114,.15); }
.ab-paste textarea { width: 100%; padding: 10px 12px; border: 1px dashed var(--gold, #c5a572); border-radius: var(--radius, 8px); font-size: 14px; font-family: inherit; background: #fffdf9; color: var(--ink, #2e2519); resize: vertical; line-height: 1.6; }
.ab-paste textarea:focus { outline: none; border-style: solid; box-shadow: 0 0 0 3px rgba(197,165,114,.15); }
.ab-paste-ops { display: flex; gap: 8px; margin-top: 6px; flex-wrap: wrap; }
.ab-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 10px; }
.ab-fields .field { margin-bottom: 0; }
.ab-fields .field:nth-child(3), .ab-fields .field:nth-child(4) { grid-column: 1 / -1; }
/* 省市区三联动（2026-09-01）：取代原先手打的「所在地区」文本框，
   权重与 .ab-fields 保持同级，避免被更高权重的选择器静默覆盖 */
.ab-region { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px 10px; }
.ab-region select, .ab-region input {
  width: 100%; padding: 10px 12px; border: 1px solid var(--gold, #c5a572); border-radius: var(--radius, 8px);
  font-size: 14px; font-family: inherit; background: #fffdf9; color: var(--ink, #2e2519);
  -webkit-appearance: none; appearance: none;
}
.ab-region select {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238a6d3b' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 10px center; padding-right: 28px;
}
.ab-region select:focus, .ab-region input:focus { outline: none; border-color: var(--gold, #c5a572); box-shadow: 0 0 0 3px rgba(197, 165, 114, .15); }
.ab-save { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--ink-soft); cursor: pointer; user-select: none; }
.ab-save input { width: 15px; height: 15px; accent-color: var(--wine, #9b2d3a); cursor: pointer; }
.ab-msg { font-size: 12px; min-height: 17px; }
.ab-msg .ok { color: #3B6D11; }
.ab-msg .err { color: var(--wine, #9b2d3a); }
@media (max-width: 560px) {
  .ab-fields { grid-template-columns: 1fr; }
  .ab-paste-ops .btn { flex: 1; }
  .ab-region { grid-template-columns: 1fr 1fr; }
}
/* 窄屏（≤420px）省市区改单列，避免三个下拉挤在一行看不清 */
@media (max-width: 420px) {
  .ab-region { grid-template-columns: 1fr; }
}

/* ---------- 会员中心 Tab 式「我的」（js/member.js） ---------- */
.mem-tabs { display: flex; gap: 6px; flex-wrap: wrap; margin: 18px 0 16px; border-bottom: 1px solid var(--line); padding-bottom: 10px; }
.mem-tab { padding: 8px 14px; border: 1px solid var(--line); border-radius: 20px; background: #fff; font-size: 13.5px; color: var(--ink-soft); cursor: pointer; font-family: inherit; transition: all .15s; }
.mem-tab:hover { border-color: var(--gold); color: var(--gold-deep); }
.mem-tab.active { background: var(--wine, #9b2d3a); border-color: var(--wine, #9b2d3a); color: #fff; }
.mem-user { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; padding: 16px 18px; background: #fffdf9; border: 1px solid var(--line); border-radius: var(--radius-lg); }
.mu-avatar { width: 48px; height: 48px; border-radius: 50%; background: var(--gold-soft, #f3e9d6); color: var(--gold-deep, #8a6d3b); display: grid; place-items: center; font-size: 20px; font-weight: 600; flex-shrink: 0; }
.mu-info { min-width: 130px; }
.mu-name { font-size: 16px; font-weight: 600; color: var(--ink); }
.mu-phone { font-size: 12.5px; color: var(--ink-soft); margin-top: 3px; }
.mu-stats { display: flex; gap: 22px; margin-left: auto; flex-wrap: wrap; }
.mu-stat { text-align: center; }
.mu-stat b { display: block; font-size: 17px; color: var(--wine, #9b2d3a); font-weight: 600; }
.mu-stat span { font-size: 12px; color: var(--ink-soft); }
.mem-order-list { display: flex; flex-direction: column; gap: 10px; }
.mo-row { position: relative; padding: 13px 15px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.mo-main { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.mo-name { font-size: 14.5px; font-weight: 600; color: var(--ink); }
.mo-spec { font-size: 12.5px; color: var(--ink-soft); }
.mo-amt { position: absolute; right: 15px; top: 13px; font-size: 15px; font-weight: 600; color: var(--wine, #9b2d3a); }
.mo-status { display: inline-block; margin-top: 7px; padding: 2px 9px; border-radius: 999px; font-size: 12px; background: var(--gold-soft, #f3e9d6); color: var(--gold-deep, #8a6d3b); }
.mo-status.pending { background: #fdf0d5; color: #8a6d3b; }
.mo-status.paid { background: #e6f1fb; color: #185fa5; }
.mo-status.done { background: #eaf3de; color: #3b6d11; }
.mo-meta { font-size: 12px; color: var(--ink-soft); margin-top: 6px; }
.mo-pay { margin-top: 9px; }
.mem-more { margin-top: 14px; text-align: center; }
.mem-addr-list { display: flex; flex-direction: column; gap: 10px; }
.ma-row { display: flex; align-items: center; gap: 12px; padding: 13px 15px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; flex-wrap: wrap; }
.ma-row.is-default { border-color: var(--gold, #c5a572); background: #fffdf9; }
.ma-tag { padding: 3px 9px; border-radius: 999px; background: var(--gold-soft, #f3e9d6); color: var(--gold-deep, #8a6d3b); font-size: 12px; flex-shrink: 0; }
.ma-body { flex: 1; min-width: 180px; }
.ma-line1 { font-size: 14.5px; color: var(--ink); }
.ma-default { margin-left: 6px; padding: 1px 7px; border-radius: 999px; background: var(--wine, #9b2d3a); color: #fff; font-size: 11px; }
.ma-line2 { font-size: 12.5px; color: var(--ink-soft); margin-top: 4px; line-height: 1.5; }
.ma-ops { display: flex; gap: 6px; flex-wrap: wrap; }
.ma-form { margin-top: 14px; }
.ma-form h4 { font-size: 14px; margin-bottom: 8px; color: var(--ink); }
.mem-hint { font-size: 12.5px; color: var(--ink-soft); margin-top: 10px; line-height: 1.6; }
.mem-hint i { color: var(--gold-deep, #8a6d3b); margin-right: 4px; }
.fld-ops { display: flex; gap: 8px; margin-top: 10px; }
@media (max-width: 560px) {
  .mu-stats { margin-left: 0; width: 100%; justify-content: space-between; gap: 10px; }
  .mem-tab { flex: 1; text-align: center; padding: 8px 6px; font-size: 12.5px; }
  .mo-amt { position: static; margin-top: 6px; }
}

/* ---------- 券管理（js/adminVouchers.js）与券号验真（js/voucher.js） ---------- */
.vc-code { font-family: var(--font-mono, ui-monospace, monospace); font-size: 13.5px; letter-spacing: .3px; color: var(--ink); }
.vc-vcode { font-family: var(--font-mono, ui-monospace, monospace); color: var(--ink-soft); letter-spacing: 1px; }
.vc-pager { margin-top: 12px; font-size: 13px; color: var(--ink-soft); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.vc-check { display: flex; gap: 10px; flex-wrap: wrap; margin: 18px 0; }
.vc-input { flex: 1; min-width: 220px; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--radius); font-size: 16px; font-family: var(--font-mono, ui-monospace, monospace); letter-spacing: 1px; background: #fff; color: var(--ink); }
.vc-input:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(197,165,114,.15); }
.vc-result { padding: 20px 22px; border-radius: var(--radius-lg); background: #fffdf9; border: 1px solid var(--gold, #c5a572); }
.vc-result.wine { background: #fdf5f5; border-color: var(--wine, #9b2d3a); }
.vcr-code { font-family: var(--font-mono, ui-monospace, monospace); font-size: 22px; letter-spacing: 2px; color: var(--ink); font-weight: 600; }
.vc-result.wine .vcr-code { color: var(--wine, #9b2d3a); }
.vcr-status { display: inline-block; margin-top: 8px; padding: 3px 12px; border-radius: 999px; font-size: 13px; background: var(--gold-soft, #f3e9d6); color: var(--gold-deep, #8a6d3b); }
.vc-result.wine .vcr-status { background: #fbe3e3; color: var(--wine, #9b2d3a); }
.vcr-dl { display: grid; grid-template-columns: 72px 1fr; gap: 8px 12px; margin: 16px 0 0; font-size: 14px; }
.vcr-dl dt { color: var(--ink-soft); }
.vcr-dl dd { margin: 0; color: var(--ink); }
.vcr-tip { margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--line); font-size: 13.5px; color: var(--ink-soft); line-height: 1.7; }

/* 渠道 · 快速录入订单 */
.qe-intro {
  background: var(--ivory-2); border: 1px solid var(--line); border-radius: var(--radius-lg);
  padding: 12px 14px; font-size: 13.5px; color: var(--ink-soft); line-height: 1.7; margin-bottom: 14px;
}
.qe-intro i { color: var(--gold); margin-right: 6px; }
.qe-input {
  width: 100%; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 12px;
  font-size: 13px; font-family: var(--font-mono, monospace); line-height: 1.7; resize: vertical;
  background: var(--color-background-primary, #fff); color: var(--ink);
}
.qe-input:focus { outline: none; border-color: var(--gold); }
.qe-actions { display: flex; gap: 10px; margin: 12px 0 18px; }
.qe-actions .btn { padding: 10px 22px; }
.qe-card {
  border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 14px 16px;
  margin-bottom: 12px; background: var(--color-background-primary, #fff);
}
.qe-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 6px; }
.qe-idx { font-size: 12px; color: var(--ink-soft); background: var(--ivory-2); padding: 2px 8px; border-radius: 999px; }
.qe-kw { font-size: 14px; font-weight: 500; color: var(--ink); }
.qe-ai { font-size: 11px; color: var(--gold-deep); background: var(--gold-soft); padding: 2px 8px; border-radius: 999px; }
.qe-raw {
  font-size: 11.5px; color: var(--ink-soft); background: var(--ivory-2); border-radius: 6px;
  padding: 6px 8px; margin-bottom: 10px; word-break: break-all; white-space: pre-wrap; line-height: 1.6;
}
.qe-warn { font-size: 12.5px; color: #B4531A; background: #FFF3E8; padding: 7px 10px; border-radius: 8px; margin-bottom: 10px; }
.qe-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.qe-fld { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--ink-soft); }
.qe-fld.qe-full { grid-column: 1 / -1; }
.qe-fld input, .qe-fld select {
  border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px;
  font-size: 13px; font-family: inherit; color: var(--ink); background: #fff; width: 100%; box-sizing: border-box;
}
.qe-fld input:focus, .qe-fld select:focus { outline: none; border-color: var(--gold); }
.qe-submit { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 18px; }
.qe-tip { font-size: 12.5px; color: var(--ink-soft); }

@media (max-width: 640px) {
  .qe-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   灵霖鑫塔百货集 · 供货商子页（#/supplier）—— 2026-09-02 改版
   分类筛选：默认收起为「全部分类」触发按钮，点开抽屉式级联选择
   ============================================================ */
.sup-head { background: linear-gradient(135deg,#fbf6ec,#f3e7d2); border-bottom: 1px solid var(--line); padding: 34px 0 28px; }
.sup-head-inner { max-width: 1200px; margin: 0 auto; padding: 0 20px; }
.sup-kicker { font-size: 13px; letter-spacing: 2px; color: var(--gold-deep); font-weight: 600; }
.sup-title { font-family: var(--font-serif); font-size: 30px; font-weight: 700; margin: 6px 0 10px; color: var(--ink); }
.sup-sub { font-size: 13.5px; line-height: 1.7; color: var(--ink-soft); max-width: 760px; margin: 0; }
/* 旧版两栏布局（左侧栏 + 右侧主区）改成全宽单栏，移动端友好 */
.sup-layout { max-width: 1200px; margin: 0 auto; padding: 22px 20px 40px; }
.sup-layout-cascade { display: block; }
.sup-main { min-width: 0; }
.sup-bar { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; flex-wrap: wrap; }
.sup-search { flex: 1; min-width: 220px; display: flex; align-items: center; gap: 8px; background: #fff; border: 1px solid #c9dcf0; border-radius: 10px; padding: 9px 12px; transition: border-color .15s, box-shadow .15s; }
.sup-search:focus-within { border-color: #409EFF; box-shadow: 0 0 0 3px rgba(64,158,255,.12); }
.sup-search i { color: var(--ink-soft); font-size: 13px; }
.sup-search input { border: none; outline: none; flex: 1; font-size: 14px; background: transparent; color: var(--ink); }
.sup-count { font-size: 13px; color: var(--ink-soft); white-space: nowrap; }

/* 分类触发按钮（默认收起，单条触发条） */
.sup-cat-trigger {
  display: inline-flex; align-items: center; gap: 8px;
  background: #fff; border: 1px solid var(--line); border-radius: 10px;
  padding: 9px 14px; font-size: 14px; color: var(--ink); font-weight: 600;
  cursor: pointer; transition: border-color .15s, box-shadow .15s;
  white-space: nowrap;
}
.sup-cat-trigger:hover { border-color: var(--market-line); box-shadow: 0 4px 12px rgba(232,119,12,.10); }
.sup-cat-trigger .trigger-l1 { font-weight: 600; }
.sup-cat-trigger .trigger-em { color: var(--ink-soft); font-weight: 400; font-size: 12px; }
.sup-cat-trigger .trigger-caret { font-size: 11px; color: var(--ink-soft); transition: transform .2s; }
.sup-cat-trigger:hover .trigger-caret { transform: translateY(1px); }

/* 抽屉遮罩 */
.sup-drawer-mask {
  position: fixed; inset: 0; z-index: 98; background: rgba(20,16,10,.45);
  opacity: 0; pointer-events: none; transition: opacity .25s;
}
.sup-drawer-mask.open { opacity: 1; pointer-events: auto; }

/* 抽屉本体 */
.sup-drawer {
  position: fixed; top: 0; right: 0; bottom: 0; z-index: 99;
  width: 460px; max-width: 100%; background: #fff; box-shadow: -16px 0 40px rgba(0,0,0,.18);
  transform: translateX(100%); transition: transform .32s cubic-bezier(.22,.61,.36,1);
  display: flex; flex-direction: column;
}
.sup-drawer.open { transform: translateX(0); }
.sup-drawer-head {
  padding: 18px 22px 14px; border-bottom: 1px solid var(--line);
  display: flex; flex-direction: column; gap: 10px; position: relative;
}
.sup-drawer-head h3 { margin: 0; font-size: 17px; font-weight: 700; letter-spacing: .5px; color: var(--ink); }
.sup-drawer-crumb { font-size: 13px; color: var(--ink-soft); display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.sup-crumb-i { cursor: pointer; padding: 2px 7px; border-radius: 6px; color: var(--ink); transition: background .15s; }
.sup-crumb-i:hover { background: var(--market-soft); }
.sup-drawer-crumb .cr-sep { font-size: 10px; opacity: .4; }
.sup-drawer-close { position: absolute; top: 14px; right: 16px; width: 30px; height: 30px; border: none; background: var(--ivory-2); border-radius: 50%; cursor: pointer; font-size: 14px; color: var(--ink-soft); }
.sup-drawer-close:hover { background: var(--market-soft); color: var(--market-deep); }

.sup-drawer-body { flex: 1; overflow-y: auto; padding: 16px 22px 24px; -webkit-overflow-scrolling: touch; }
.sup-drawer-tip { font-size: 12px; color: var(--ink-soft); letter-spacing: 1px; margin: 4px 0 14px; padding-left: 8px; border-left: 3px solid var(--market); }
.sup-cascade-grid { display: flex; flex-wrap: wrap; gap: 10px; }
.sup-cas-chip {
  display: inline-flex; align-items: center; gap: 8px;
  background: #fff; border: 1px solid var(--line); border-radius: 999px;
  padding: 8px 16px; font-size: 14px; color: var(--ink); font-weight: 500;
  cursor: pointer; transition: all .15s;
}
.sup-cas-chip:hover { border-color: var(--market); background: var(--market-soft); }
.sup-cas-chip em { font-style: normal; font-size: 11px; color: var(--ink-soft); }
.sup-drawer-footnote { margin-top: 18px; font-size: 12px; color: var(--ink-soft); padding-left: 8px; border-left: 2px solid var(--line); }

.sup-drawer-foot {
  padding: 14px 22px; border-top: 1px solid var(--line); background: var(--ivory-2);
  display: flex; gap: 10px;
}
.sup-drawer-foot button {
  flex: 1; padding: 11px 0; font-size: 14px; font-weight: 600; border-radius: 10px;
  border: 1px solid var(--line); background: #fff; color: var(--ink); cursor: pointer;
  transition: all .15s;
}
.sup-drawer-foot .sup-drawer-clear { color: var(--ink-soft); }
.sup-drawer-foot .sup-drawer-clear:hover { border-color: var(--market); color: var(--market-deep); }
.sup-drawer-foot .sup-drawer-back { color: var(--market-deep); border-color: var(--market-line); }
.sup-drawer-foot .sup-drawer-back:hover { background: var(--market-soft); }
.sup-drawer-foot button[style*="hidden"], .sup-drawer-foot button:disabled { visibility: hidden; }

@media (max-width: 560px) {
  .sup-drawer { width: 100%; }
  .sup-drawer-head { padding: 14px 16px 12px; }
  .sup-drawer-body { padding: 14px 16px 20px; }
  .sup-drawer-foot { padding: 12px 16px; }
}

.sup-grid { grid-template-columns: repeat(auto-fill, minmax(var(--card-min), 1fr)); }
.sup-card .card-actions { margin-top: 10px; display: grid; grid-template-columns: 1fr; min-height: 0; }
.sup-card .card-act.buy { justify-content: center; color: #fff; background: linear-gradient(135deg,#E8770C,#c25e09); border-radius: 8px; font-weight: 600; padding: 8px 12px; }
.sup-card .card-act.buy:hover { filter: brightness(1.05); }
.sup-card .card-act.buy.disabled { background: #e9ebef; color: #9aa0a6; cursor: not-allowed; }
.sup-more { display: flex; justify-content: center; padding: 22px 0 6px; }
.sup-loading, .sup-end, .sup-more .empty { font-size: 13px; color: var(--ink-soft); text-align: center; }
.sup-loadmore { border: 1px solid #c9dcf0; color: #1A365D; background: #fff; border-radius: 999px; padding: 9px 26px; font-size: 13px; font-weight: 600; cursor: pointer; transition: background .15s, border-color .15s; }
.sup-loadmore:hover { background: #e8f0fa; border-color: #409EFF; }
.sup-end { padding: 8px 0; }
@media (max-width: 900px) { .sup-grid { grid-template-columns: repeat(auto-fill, minmax(var(--card-min), 1fr)); } }
@media (max-width: 560px) { .sup-grid { grid-template-columns: repeat(auto-fill, minmax(var(--card-min), 1fr)); } }

/* ============================================================
   P1 首页双 Tab（臻礼集 gift / 臻品集 single）+ 渠道结算价 + 响应式
   2026-09-03 追加 · 置于 ext.css 末尾以覆盖 app.css 同权重规则
   ============================================================ */

/* ---- 一级 Tab 导航：高度48 · 大字号 · 上下分隔线 · 选中金色+金色下划线 · 可横滚 ----
   2026-09-04 强化（问题5）：选中态文字金色 #c19a6b、未选中灰 #999、hover 深灰、
   间距 34px、上下分隔线，视觉上形成明确的切换栏。
   ⚠ 按高塔要求直接用 #c19a6b 硬编码（与海报金色调统一）；tokens.css 的 --gold 是品牌蓝，勿用。 */
.mall-tabs { display: flex; gap: 34px; align-items: stretch; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; margin: 16px 0 0; }
.mall-tabs::-webkit-scrollbar { display: none; }
.mall-tabs .mtab { position: relative; flex: 0 0 auto; background: none; border: none; cursor: pointer; font-family: inherit; height: 48px; padding: 0 4px; font-size: 19px; font-weight: 700; letter-spacing: 1px; color: #999; transition: color .18s; }
.mall-tabs .mtab:hover { color: #666; }
.mall-tabs .mtab.active { color: #c19a6b; }
.mall-tabs .mtab.active::after { content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; border-radius: 3px 3px 0 0; background: #c19a6b; }

/* ---- 臻品集二级筛选：高度36 · 小字号 · 金色选中 · 可横滚 ---- */
.mall-subs { display: flex; gap: 8px; align-items: center; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding: 8px 0 12px; }
.mall-subs::-webkit-scrollbar { display: none; }
.mall-subs .msub { flex: 0 0 auto; background: #fff; border: 1px solid var(--line); border-radius: 999px; cursor: pointer; font-family: inherit; height: 36px; padding: 0 18px; font-size: 14px; font-weight: 600; color: var(--ink-soft); transition: all .15s; white-space: nowrap; }
.mall-subs .msub:hover { border-color: var(--gold-line, #e2d2b4); }
.mall-subs .msub.active { background: var(--gold, #c19a6b); border-color: var(--gold, #c19a6b); color: #fff; }

/* ---- 板块说明 ---- */
.mall-desc { margin: 0 0 14px; font-size: 14px; line-height: 1.7; color: var(--ink-soft); }

/* ---- 礼盒分组（臻礼集）---- */
.mall-group { margin: 18px 0 26px; }
.mg-title { display: flex; align-items: center; gap: 8px; margin: 0 0 14px; font-family: var(--font-serif); font-size: 20px; font-weight: 700; color: var(--ink); letter-spacing: .5px; }
.mg-title .mg-count { font-family: var(--font-num); font-size: 13px; font-weight: 600; background: var(--gold-soft, #f1e7d4); color: var(--gold-deep); padding: 1px 9px; border-radius: 999px; }

/* ---- 选货网格（响应式）----
   2026-09-04（问题7）：图片改 object-fit: contain 完整显示不裁切，容器加 #fafafa 底色防空白 */
.mall-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.mall-grid .card .thumb { height: 200px; aspect-ratio: auto; max-height: none; background: #fafafa; }
.mall-grid .card .thumb img { object-fit: contain; }

/* ---- 卡片左上角标签（金底白字 / 灰底深字圆角）---- */
.mall-tag { position: relative; }
.mall-tag.tag-gold::before { content: attr(data-tag); position: absolute; top: 10px; left: 10px; z-index: 3; background: var(--gold, #c19a6b); color: #fff; font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: 999px; box-shadow: 0 2px 6px rgba(0,0,0,.12); }
.mall-tag.tag-cat::before { content: attr(data-tag); position: absolute; top: 10px; left: 10px; z-index: 3; background: rgba(74,70,64,.82); color: #fff; font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: 999px; }

/* ---- 渠道结算价大字 ---- */
.ch-price { color: var(--gold-deep); font-weight: 700; }
.guide-price { color: var(--gold-deep); }

/* ---- 详情页主图：等比完整显示（优化3 覆盖旧版固定 400px 裁切）---- */
.detail .gallery .main { height: auto; aspect-ratio: 1/1; max-height: 620px; background: #fafafa; display: flex; align-items: center; justify-content: center; }
.detail .gallery .main img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }

/* ---- 平板（481–768）：2列 gap12 图160 ---- */
@media (max-width: 768px) {
  .mall-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .mall-grid .card .thumb { height: 160px; }
}
/* ---- 手机（≤480）：1列 横向布局（左图右文）---- */
@media (max-width: 480px) {
  .mall-grid { grid-template-columns: 1fr; gap: 12px; }
  .mall-grid .card { flex-direction: row; align-items: stretch; }
  .mall-grid .card .thumb { width: 35%; flex: 0 0 35%; height: 120px; aspect-ratio: auto; border-right: 1px solid var(--line); }
  .mall-grid .card .body { width: 65%; flex: 1; padding: 12px 14px; }
  .mall-grid .card .name { -webkit-line-clamp: 2; line-clamp: 2; display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; font-size: 15px; line-height: 1.35; }
  .mall-grid .card .prices { margin-top: 6px; gap: 8px; }
  .mall-grid .card .price-self .num { font-size: 16px; font-weight: 700; }
  .mall-grid .card .price-retail { display: none; }
  .detail .gallery .main { height: auto; aspect-ratio: 1/1; max-height: 420px; }
  .detail .gallery .gal-nav { width: 34px; height: 34px; font-size: 15px; }
  .detail .gallery .gal-nav.prev { left: 8px; }
  .detail .gallery .gal-nav.next { right: 8px; }
}
@media (max-width: 400px) { :root { --card-min: 154px; } }

/* ===== P2 渠道订单 · 登记弹窗与详情（全局，detail.js 登记弹窗依赖）===== */
.ord-mask{position:fixed;inset:0;background:rgba(20,16,8,.45);display:flex;align-items:center;justify-content:center;z-index:9999}
.ord-modal{background:#fff;width:400px;max-width:92vw;border-radius:14px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.om-head{padding:14px 16px;font-weight:700;display:flex;justify-content:space-between;align-items:center;background:#faf6ee}
.om-close{border:none;background:none;font-size:22px;cursor:pointer;line-height:1;color:#8a7a66}
.om-body{padding:16px;display:flex;flex-direction:column;gap:12px}
.om-body label{display:flex;flex-direction:column;font-size:13px;color:#666;gap:5px}
.om-body input,.om-body textarea{border:1px solid #ddd;border-radius:8px;padding:9px;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box}
.om-info{font-size:13px;color:#555;background:#f7f3ea;padding:9px 11px;border-radius:8px;line-height:1.6}
.om-submit{margin-top:4px}
.om-subtotal{font-size:15px;color:#4a443c}
.om-subtotal b{color:var(--gold-deep,#8a6d3b);font-size:17px}
.notice.soft{font-size:12px;color:#9a8a72;min-height:16px;margin:0}
.order-post{display:flex;gap:10px;margin-top:4px}
/* 登记弹窗字段与数量步进器 */
.order-modal .ofield{display:flex;flex-direction:column;gap:5px}
.order-modal .ofield label{font-size:13px;color:#666}
.order-modal .qty-stepper{display:flex;align-items:center;gap:10px}
.order-modal .qty-stepper button{width:34px;height:34px;border-radius:8px;border:1px solid #ddd;background:#fff;font-size:18px;cursor:pointer;color:#8a6d3b}
.order-modal .qty-stepper input{width:64px;text-align:center;border:1px solid #ddd;border-radius:8px;padding:8px;font-size:15px}
.order-modal .ch-price{color:var(--gold-deep,#8a6d3b);font-weight:700}

/* ===== 2026-09-03 · 登记订单弹窗重构（商品信息带出 / 多规格行 / 粘贴识别）===== */
.ord-modal.om-wide{width:480px;max-height:92vh;display:flex;flex-direction:column}
.ord-modal.om-wide .om-body{overflow-y:auto}
/* 商品信息（只读·自动带出） */
.om-goods{background:#f7f3ea;border:1px solid #ece2cf;border-radius:10px;padding:10px 12px}
.om-goods .og-name{font-size:14px;font-weight:700;color:#2f2a22;line-height:1.45}
.om-goods .og-meta{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:6px;font-size:12px;color:#8a7a66}
.om-goods .og-meta b{color:#5b4c37;font-weight:600}
/* 分区 */
.om-sec{border-top:1px dashed #e6e0d5;padding-top:12px;margin-top:2px;display:flex;flex-direction:column;gap:10px}
.om-sec-t{font-size:13px;font-weight:600;color:#4a443c}
/* 规格行 */
.oi-row{display:flex;align-items:center;gap:8px}
.oi-row .oi-spec{flex:1;min-width:0;border:1px solid #ddd;border-radius:8px;padding:8px 9px;font-size:13px;font-family:inherit;background:#fff;color:#3c352c}
.oi-row .qty-stepper button{width:30px;height:30px;font-size:16px}
.oi-row .qty-stepper input{width:52px;padding:6px;font-size:14px}
.oi-row .oi-sub{min-width:78px;text-align:right;font-size:14px;font-weight:600;color:var(--gold-deep,#8a6d3b)}
.oi-row .oi-del{width:28px;height:28px;flex:0 0 28px;border:1px solid #e3ddd2;background:#fff;border-radius:8px;color:#a08f79;font-size:16px;line-height:1;cursor:pointer}
.oi-row .oi-del:hover{border-color:#d9bfa0;color:#8a6d3b}
.om-add{align-self:flex-start;border:1px dashed #cfc4ae;background:#fdfaf3;color:#8a6d3b;border-radius:8px;padding:7px 12px;font-size:13px;cursor:pointer}
.om-add:hover{border-color:var(--gold,#c19a6b);background:#f7f0e2}
.om-subtotal{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.om-hint{font-size:12px;color:#a08f79;font-weight:400}
/* 粘贴识别 */
.paste-act{display:flex;align-items:center;gap:10px;margin-top:6px}
.paste-tip{font-size:12px}
.paste-tip.ok{color:#2f7a45}
.paste-tip.warn{color:#b4701f}

/* ===== 品牌介绍落地页 landing.js（未登录根路径 #/ 渲染） ===== */
.lp{background:var(--ivory,#F7F8FA);padding:0 0 8px}
.lp-wrap{max-width:1080px;margin:0 auto;padding:0 24px}

/* Hero */
.lp-hero{padding:56px 0 8px;text-align:center}
.lp-eyebrow{display:inline-block;font-size:12px;letter-spacing:4px;color:var(--gold-deep,#102763);
  background:var(--gold-soft,rgba(27,58,139,.10));border:1px solid var(--gold-line,rgba(27,58,139,.22));
  border-radius:999px;padding:5px 16px;margin-bottom:20px}
.lp-title{font-family:var(--font-serif,Georgia,serif);font-size:40px;line-height:1.28;
  color:var(--ink,#1B1E24);font-weight:700;margin:0}
.lp-title .lp-dot{color:var(--gold,#1B3A8B);margin:0 10px;font-style:italic}
.lp-lead{margin:20px auto 0;max-width:720px;font-size:15px;line-height:1.9;color:var(--ink-soft,#5B6473)}
.lp-lead b{color:var(--ink,#1B1E24)}
.lp-cta{margin-top:30px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.lp-btn{display:inline-flex;align-items:center;gap:9px;height:48px;padding:0 30px;border-radius:999px;
  font-size:15px;font-weight:600;text-decoration:none;transition:all .2s;border:1px solid transparent}
.lp-btn.primary{background:var(--gold,#1B3A8B);color:#fff;box-shadow:0 8px 20px rgba(27,58,139,.22)}
.lp-btn.primary:hover{background:var(--gold-deep,#102763);transform:translateY(-1px)}
.lp-btn.ghost{background:#fff;color:var(--gold-deep,#102763);border-color:var(--gold-line,rgba(27,58,139,.22))}
.lp-btn.ghost:hover{border-color:var(--gold,#1B3A8B);color:var(--gold,#1B3A8B)}
.lp-tags{margin-top:22px;display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.lp-tags span{font-size:12px;color:var(--ink-soft,#5B6473);background:#fff;border:1px solid var(--line,#E5E8ED);
  border-radius:999px;padding:4px 14px}
.lp-notice{margin:26px auto 0;max-width:760px;font-size:13px;line-height:1.75;color:#7a6442;
  background:#f3ede1;border:1px solid #e3d6bf;border-radius:10px;padding:11px 16px;text-align:left}
.lp-notice i{margin-right:7px}

/* 区块 */
.lp-sec{padding:44px 0 0}
.lp-sec-title{font-size:20px;font-weight:700;color:var(--ink,#1B1E24);margin:0 0 20px;
  padding-left:12px;border-left:4px solid var(--gold,#1B3A8B);line-height:1.2}

/* 平台优势 */
.lp-adv{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.lp-adv-card{background:#fff;border:1px solid var(--line,#E5E8ED);border-radius:14px;padding:22px 18px;
  transition:box-shadow .2s,transform .2s}
.lp-adv-card:hover{box-shadow:0 10px 26px rgba(27,30,36,.08);transform:translateY(-2px)}
.lp-adv-card i{font-size:22px;color:var(--gold,#1B3A8B)}
.lp-adv-card h3{font-size:15px;font-weight:700;color:var(--ink,#1B1E24);margin:12px 0 8px}
.lp-adv-card p{font-size:13px;line-height:1.8;color:var(--ink-soft,#5B6473);margin:0}

/* 核心业务 */
.lp-biz{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.lp-biz-item{background:#fff;border:1px solid var(--line,#E5E8ED);border-radius:12px;padding:16px;
  display:flex;flex-direction:column;gap:7px}
.lp-biz-item span{font-size:15px;font-weight:700;color:var(--gold-deep,#102763)}
.lp-biz-item em{font-style:normal;font-size:13px;line-height:1.75;color:var(--ink-soft,#5B6473)}

/* 更多入口 */
.lp-more{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.lp-more a{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line,#E5E8ED);
  border-radius:12px;padding:16px;font-size:14px;color:var(--ink,#1B1E24);text-decoration:none;transition:all .2s}
.lp-more a:hover{border-color:var(--gold,#1B3A8B);color:var(--gold-deep,#102763)}
.lp-more a i{color:var(--gold,#1B3A8B)}

/* 页脚：简短免责 + 版权（不占满整页） */
.lp-foot{margin-top:48px;padding:22px 0 30px;border-top:1px solid var(--line,#E5E8ED)}
.lp-disc{font-size:12px;line-height:1.85;color:var(--ink-soft,#5B6473);margin:0 0 10px}
.lp-disc a{color:var(--gold-deep,#102763);text-decoration:underline;margin-left:6px}
.lp-copy{font-size:12px;color:var(--ink-300,#9AA3B2);margin:0}

/* 响应式：平板 */
@media (max-width:900px){
  .lp-adv,.lp-biz,.lp-more{grid-template-columns:repeat(2,1fr)}
  .lp-title{font-size:32px}
}
/* 响应式：手机（与 PC 行为一致，仅布局堆叠） */
@media (max-width:600px){
  .lp-wrap{padding:0 16px}
  .lp-hero{padding:32px 0 0}
  .lp-title{font-size:25px;line-height:1.4}
  .lp-title .lp-dot{display:block;margin:2px 0;height:0;overflow:hidden}
  .lp-lead{font-size:14px;line-height:1.85}
  .lp-cta{flex-direction:column;gap:11px}
  .lp-btn{width:100%;justify-content:center;padding:0 18px}
  .lp-adv,.lp-biz,.lp-more{grid-template-columns:1fr}
  .lp-sec{padding:32px 0 0}
}

/* ============================================================
   问题4（2026-09-04 v5）：全站商品卡片样式统一
   适用：首页臻礼集/臻品集、全部商品、搜索结果、分类页
   规范：图片 contain + #fafafa 底；圆角 8px；hover 统一上浮；
        结构 = 品牌 → 名称(≤2行) → 规格 → 价格；
        响应式：PC 3列 / 平板≤768 2列 / 手机≤480 1列横卡（图宽35%）
   ============================================================ */
.card { border-radius: 8px; }
.card .thumb { background: #fafafa; }
.card .thumb img { object-fit: contain; }
.card .name { display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.card .price-self.has-ch .num { color: #b8860b; }
@media (max-width: 768px) {
  .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
  .grid { grid-template-columns: 1fr; gap: 12px; }
  .grid .card { flex-direction: row; align-items: stretch; }
  .grid .card .thumb { width: 35%; flex: 0 0 35%; height: 120px; aspect-ratio: auto; max-height: none; border-right: 1px solid var(--line); }
  .grid .card .body { width: 65%; flex: 1; padding: 12px 14px; }
  .grid .card .name { font-size: 15px; }
}

/* ===== 2026-09-04 手机端图片加载优化 =====
   根因：列表原图 125MB+（最大 7.4MB/张），手机端首屏长时间空白。
   前端已切缩略图（assets/img/thumbs/ 640px JPEG）+ 三级兜底（缩略图→原图→占位图）。 */
/* 图片加载中：浅灰底 + 居中商品图标（内联 SVG，零请求），图片像素绘制后自动覆盖 */
.card .thumb img,
.detail .gallery .main img,
.detail .gallery .thumbs img,
.dl-img {
  background: #fafafa url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23c9ced6'%3E%3Crect x='3' y='4' width='18' height='16' rx='2' fill='none' stroke='%23c9ced6' stroke-width='1.6'/%3E%3Ccircle cx='9' cy='10' r='1.8'/%3E%3Cpath d='M5 18l4.5-5 3 3.2L15.5 13l3.5 5z'/%3E%3C/svg%3E") center / 30% no-repeat;
}
/* 手机端横向卡片（≤480）：确保图片容器有确定尺寸，禁止被其他规则压成 0 */
@media (max-width: 480px) {
  .mall-grid .card { display: flex; min-height: 120px; }
  .mall-grid .card .thumb { min-width: 120px; min-height: 120px; }
  .mall-grid .card .thumb img { width: 100%; height: 100%; }
}

/* ===== 2026-09-04 臻品集无限滚动状态条 ===== */
.mall-more, .sup-more {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  padding: 16px 0 28px; color: #8a93a0; font-size: 13px;
}
.mall-end, .sup-end {
  text-align: center; padding: 16px 0 28px; color: #b3bac4; font-size: 12px; letter-spacing: .5px;
}
.mall-more i, .sup-more i { color: #c19a6b; }

/* ============================================================
   首页搜索 + 搜索结果页（2026-09-04 商品模型重构 · 第四部分）
   ============================================================ */
.home-search { padding: 14px 0 4px; }
/* 落地页搜索框：未登录访客看到的「首页」，搜索入口不能只在登录后才有 */
.lp-search { margin: 18px 0 4px; }
.lp-search .search-box { max-width: 560px; }
.lp-search .hot-words { margin-top: 10px; }
.search-box {
  position: relative; display: flex; align-items: center; gap: 8px;
  background: #fff; border: 1px solid var(--line, #E5E8ED); border-radius: 999px;
  padding: 6px 6px 6px 18px; box-shadow: 0 2px 10px rgba(27,58,139,.06);
  transition: border-color .18s, box-shadow .18s;
}
.search-box:focus-within { border-color: var(--gold, #1B3A8B); box-shadow: 0 4px 16px rgba(27,58,139,.14); }
.search-box .search-ico { color: #9AA3B2; font-size: 15px; flex: none; }
.search-box .search-input {
  flex: 1; min-width: 0; border: 0; outline: none; background: transparent;
  font-size: 15px; color: var(--ink, #1B1E24); font-family: inherit; padding: 10px 0;
}
.search-box .search-input::placeholder { color: #9AA3B2; }
.search-box .search-input::-webkit-search-cancel-button { cursor: pointer; }
.search-box .search-btn {
  flex: none; border: 0; cursor: pointer; font-family: inherit; font-size: 14px; font-weight: 600;
  color: #fff; background: var(--gold, #1B3A8B); border-radius: 999px; padding: 10px 26px;
  transition: background .18s;
}
.search-box .search-btn:hover { background: var(--gold-deep, #102763); }
.hot-words { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 10px 2px 0; }
.hot-words .hw-label { font-size: 12px; color: #9AA3B2; font-weight: 600; letter-spacing: .5px; }
.hot-word {
  font-size: 13px; color: var(--ink-soft, #5B6473); text-decoration: none;
  background: #F5F7FA; border: 1px solid var(--line, #E5E8ED); border-radius: 999px;
  padding: 5px 14px; transition: all .18s;
}
.hot-word:hover { color: var(--gold-deep, #102763); border-color: var(--gold-line, rgba(27,58,139,.22)); background: var(--gold-soft, rgba(27,58,139,.10)); }

/* ---------- 搜索结果页 ---------- */
.srch-wrap { padding-top: 16px; padding-bottom: 40px; }
.srch-head { margin-bottom: 16px; }
.srch-loading, .srch-empty {
  text-align: center; padding: 60px 20px; color: #9AA3B2; font-size: 15px;
}
.srch-empty { color: var(--ink-soft, #5B6473); }
.srch-summary { font-size: 14px; color: var(--ink-soft, #5B6473); margin: 16px 2px 12px; }
.srch-summary b { color: var(--ink, #1B1E24); }
.srch-filters { display: flex; flex-direction: column; gap: 10px; margin-bottom: 18px; }
.srch-filters .f-row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.srch-filters .f-label { font-size: 13px; color: #9AA3B2; font-weight: 600; width: 60px; flex: none; }
.f-chip {
  font-family: inherit; font-size: 13px; cursor: pointer; color: var(--ink-soft, #5B6473);
  background: #fff; border: 1px solid var(--line, #E5E8ED); border-radius: 999px;
  padding: 6px 16px; transition: all .18s;
}
.f-chip em { font-style: normal; margin-left: 5px; font-size: 12px; color: #9AA3B2; }
.f-chip:hover { border-color: var(--gold-line, rgba(27,58,139,.22)); }
.f-chip.active {
  color: var(--gold-deep, #102763); border-color: var(--gold, #1B3A8B);
  background: var(--gold-soft, rgba(27,58,139,.10)); font-weight: 600;
}
.f-chip.active em { color: var(--gold-deep, #102763); }
.srch-grid { margin-bottom: 20px; }
.srch-grid .card .brand { display: flex; align-items: center; gap: 6px; }
.srch-grid .card .mall-flag {
  font-size: 11px; color: #9AA3B2; border: 1px solid var(--line, #E5E8ED);
  border-radius: 4px; padding: 1px 5px; font-weight: 400;
}
/* 货源标签：专柜=金底，一般贸易=灰底，百货不显示 */
.src-badge {
  position: absolute; top: 8px; left: 8px; z-index: 3; font-size: 11px; line-height: 1;
  padding: 3px 8px; border-radius: 999px; font-weight: 600; letter-spacing: .5px;
  box-shadow: 0 1px 3px rgba(0,0,0,.18);
}
.src-badge.counter { background: linear-gradient(135deg,#C5A572,#a8843f); color: #fff; }
.src-badge.general { background: #eef0f3; color: #5b6573; border: 1px solid #dfe3e8; }
.srch-pager { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; justify-content: center; padding: 8px 0 24px; }
.pg-btn {
  font-family: inherit; font-size: 13px; cursor: pointer; color: var(--ink-soft, #5B6473);
  background: #fff; border: 1px solid var(--line, #E5E8ED); border-radius: 6px;
  padding: 7px 13px; transition: all .18s; min-width: 38px;
}
.pg-btn:hover:not(:disabled) { border-color: var(--gold-line, rgba(27,58,139,.22)); color: var(--gold-deep, #102763); }
.pg-btn.active { color: #fff; background: var(--gold, #1B3A8B); border-color: var(--gold, #1B3A8B); font-weight: 600; }
.pg-btn:disabled { opacity: .45; cursor: not-allowed; }
.pg-info { font-size: 12px; color: #9AA3B2; margin-left: 8px; }
.srch-hot { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; justify-content: center; margin-top: 8px; }
/* 阶段B：商品卡功效标签（effect_tags） */
.tags-line { display: flex; flex-wrap: wrap; gap: 4px; margin: 4px 0 2px; }
.eff-tag {
  font-size: 11px; line-height: 1; color: var(--gold-deep, #102763);
  background: var(--gold-soft, rgba(27,58,139,.10)); border: 1px solid var(--gold-line, rgba(27,58,139,.18));
  border-radius: 4px; padding: 3px 6px; white-space: nowrap;
}
/* ============================================================
   功效标签彩色胶囊（2026-09-06）
   用途一：商品详情页 .eff-tags（标题下方，点击直达商城筛选）
   用途二：商城列表页 .mall-tag-nav（筛选区，选中高亮）
   配色 6 组：保湿/补水=蓝 抗老/紧致=紫 美白/提亮=金 修护/舒缓=绿 控油/清洁=灰 敏感肌/孕妇可用=粉
   ⚠ 颜色一律写死具体值，不依赖 CSS 变量 —— 主题色不可用于语义色（否则品牌换肤会让灰变金）
   ============================================================ */
.eff-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 10px 0 2px; }
.eff-label { font-size: 12px; color: #9AA3B2; letter-spacing: .5px; }

.eff-cap, .mcap {
  display: inline-flex; align-items: center; gap: 5px;
  font-family: inherit; font-size: 12px; line-height: 1; font-weight: 600; white-space: nowrap;
  padding: 6px 12px; border-radius: 999px; border: 1px solid transparent;
  text-decoration: none; cursor: pointer; transition: background .18s, border-color .18s, color .18s, transform .12s;
}
.eff-cap:hover, .mcap:hover { transform: translateY(-1px); }
.eff-cap:active, .mcap:active { transform: translateY(0); }
.eff-cap em, .mcap em { font-style: normal; font-weight: 500; opacity: .65; font-size: 11px; }

/* 6 组配色 · 常态（浅底 + 同色描边 + 深色字） */
.et-blue   { background: #EAF2FE; border-color: #B9D3FB; color: #1B5FBF; }
.et-purple { background: #F3EDFC; border-color: #D6C6F3; color: #6B42B8; }
.et-gold   { background: #FBF4E4; border-color: #EBD5A6; color: #96702A; }
.et-green  { background: #E8F5EC; border-color: #B6DEC4; color: #2E7D4F; }
.et-gray   { background: #F0F2F5; border-color: #DCE0E7; color: #5B6573; }
.et-pink   { background: #FDEEF4; border-color: #F6C9DA; color: #B54C7C; }
/* 6 组配色 · 选中/悬停态（实心底 + 白字） */
.et-blue.active,   .et-blue:hover   { background: #2B72D6; border-color: #2B72D6; color: #fff; }
.et-purple.active, .et-purple:hover { background: #7A4FD0; border-color: #7A4FD0; color: #fff; }
.et-gold.active,   .et-gold:hover   { background: #B98A2E; border-color: #B98A2E; color: #fff; }
.et-green.active,  .et-green:hover  { background: #359159; border-color: #359159; color: #fff; }
.et-gray.active,   .et-gray:hover   { background: #6B7480; border-color: #6B7480; color: #fff; }
.et-pink.active,   .et-pink:hover   { background: #C75A8E; border-color: #C75A8E; color: #fff; }
.eff-cap:hover em, .mcap:hover em, .eff-cap.active em, .mcap.active em { opacity: .8; color: inherit; }

/* 商城列表页筛选条 */
.mall-tag-nav {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
  margin: 10px 0 14px; padding: 10px 12px;
  background: #fff; border: 1px solid var(--line, #E5E8ED); border-radius: 10px;
}
.mtn-label { font-size: 12px; color: #9AA3B2; letter-spacing: .5px; display: inline-flex; align-items: center; gap: 5px; }
.mcap { font-size: 12.5px; padding: 7px 13px; }
.mcap-all { background: #fff; border-color: #DCE0E7; color: #5B6573; }
.mcap-all.active, .mcap-all:hover { background: var(--gold, #1B3A8B); border-color: var(--gold, #1B3A8B); color: #fff; }

@media (max-width: 640px) {
  .eff-tags { gap: 6px; margin: 8px 0 2px; }
  .eff-cap, .mcap { font-size: 11.5px; padding: 5px 10px; }
  .mall-tag-nav { gap: 6px; padding: 9px 10px; margin: 8px 0 12px; }
}

/* 阶段B：后台功效标签编辑器 */
.tag-edit { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.tag-opt {
  font-family: inherit; font-size: 13px; cursor: pointer; color: var(--ink-soft, #5B6473);
  background: #fff; border: 1px solid var(--line, #E5E8ED); border-radius: 999px; padding: 5px 14px; transition: all .18s;
}
.tag-opt:hover { border-color: var(--gold-line, rgba(27,58,139,.22)); }
.tag-opt.on { color: #fff; background: var(--gold, #1B3A8B); border-color: var(--gold, #1B3A8B); font-weight: 600; }
.tag-edit-actions { margin-top: 8px; display: flex; align-items: center; gap: 10px; }
.tag-hint { font-size: 12px; color: #9AA3B2; }
/* 2026-09-06：非美妆品类隐藏功效标签编辑入口，置灰提示 */
.tag-locked {
  margin-top: 6px; padding: 10px 12px; border: 1px dashed #D8CDB6; border-radius: 10px;
  background: #FBF8F2; color: #9A8A6E; font-size: 12px; line-height: 1.5;
}
.tag-locked i { margin-right: 6px; color: #B9A878; }

/* ---------- 后台：货源筛选 / 查重 ---------- */
.src-tag {
  display: inline-block; font-size: 11px; line-height: 1; padding: 3px 8px;
  border-radius: 999px; font-weight: 600; letter-spacing: .5px;
}
.src-tag.counter { background: linear-gradient(135deg,#C5A572,#a8843f); color: #fff; }
.src-tag.general { background: #eef0f3; color: #5b6573; border: 1px solid #dfe3e8; }
.dedup-box { margin-top: 12px; }
.dedup-sec { margin-bottom: 18px; }
.dedup-sec h4 { font-size: 14px; margin: 0 0 8px; color: var(--ink, #1B1E24); }
.dedup-sec h4 .cnt { font-size: 12px; color: #9AA3B2; font-weight: 400; margin-left: 6px; }
.dedup-row {
  display: flex; align-items: flex-start; gap: 10px; padding: 9px 12px; margin-bottom: 6px;
  background: #fff; border: 1px solid var(--line, #E5E8ED); border-radius: 6px; font-size: 13px;
}
.dedup-row .d-ids { flex: none; color: var(--gold-deep, #102763); font-weight: 600; font-family: var(--font-num, inherit); }
.dedup-row .d-reason { color: var(--ink-soft, #5B6473); flex: 1; }
.dedup-empty { color: #9AA3B2; font-size: 13px; padding: 8px 0; }
/* ===== 待建品 pending-product UI (2026-09-06) ===== */
/* ---- 渠道端：未匹配→手动录入卡片 ---- */
.qe-card-manual { border-color: #E8C98A; background: #FFFBF2; }
.qe-card-manual .qe-head { position: relative; }
.qe-manual-tag {
  font-size: 11.5px; font-weight: 600; color: #9A6A12;
  background: #FCEFC9; border: 1px solid #EBD08A; border-radius: 999px; padding: 2px 9px;
}
/* ---- 渠道端：未匹配→待管理员确认（2026-09-13 改造，不再手填商品） ---- */
.qe-card-pending { border-color: #CFDCEC; background: #F7FAFD; }
.qe-card-pending .qe-head { position: relative; }
.qe-pending-tag {
  font-size: 11.5px; font-weight: 600; color: #3B5B8A;
  background: #EAF0FA; border: 1px solid #C9D8EF; border-radius: 999px; padding: 2px 9px;
}
.qe-del {
  margin-left: auto; flex: none; width: 26px; height: 26px; border-radius: 50%;
  border: 1px solid #EBD08A; background: #fff; color: #B4531A; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center; font-size: 13px; transition: all .15s;
}
.qe-del:hover { background: #FDECEC; border-color: #F3B5B0; color: #C0392B; }

/* ===== 2026-09-09 无档案录单 · 改手动录入按钮 + 商品联想 ===== */
.qe-tomanual {
  margin-left: auto; font-size: 11.5px; color: #6B7A99; background: #F3F5F9;
  border: 1px solid #DDE3EC; border-radius: 999px; padding: 2px 10px; cursor: pointer; transition: all .15s;
}
.qe-tomanual:hover { color: #2B4B8A; border-color: #B9C6DE; background: #EAF0FA; }
.qe-card .qe-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.qe-sug { grid-column: 1 / -1; margin: -2px 0 2px; }
.qe-sug-title { font-size: 12px; color: #9AA3B2; margin-bottom: 4px; }
.qe-sug-loading, .qe-sug-empty { font-size: 12.5px; color: #9AA3B2; padding: 2px 0; }
.qe-sug-empty { color: #B4531A; }
.qe-sug-hit { font-size: 12.5px; color: #1E8A5A; font-weight: 600; padding: 2px 0; }
.qe-sug-item {
  display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%;
  padding: 7px 10px; margin-bottom: 4px; text-align: left; cursor: pointer;
  background: #fff; border: 1px solid #E6EAF0; border-radius: 8px; font-size: 13px; color: var(--ink, #1F2533);
  transition: all .15s;
}
.qe-sug-item:hover { border-color: #B9C6DE; background: #F5F8FD; }
.qe-sug-item .qsi-name { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.qe-sug-item .qsi-price { flex: none; color: #B4531A; font-weight: 600; font-family: var(--font-num, inherit); }
/* 货源标签：同名同规格存在「专柜/一般贸易」两条档案（成本不同→价格不同），
   渠道录入时必须一眼区分，故用高对比小徽标而非纯文字（2026-09-10）。 */
.qsi-src { display: inline-block; margin-left: 4px; padding: 0 5px; border-radius: 4px; font-size: 11px; font-weight: 600; line-height: 16px; vertical-align: 1px; white-space: nowrap; }
.qsi-src.is-counter { color: #8A5A00; background: #FDF0D5; border: 1px solid #EBCB8B; }
.qsi-src.is-gt { color: #1B5E8C; background: #E6F1FA; border: 1px solid #B6D5EC; }

/* ---- 渠道端提交成功页：待后台建品提示块 ---- */
.qs-pending {
  text-align: left; background: #FFFBF2; border: 1px solid #E8C98A; border-radius: var(--radius);
  padding: 12px 14px; max-width: 420px; margin: 0 auto 18px; font-size: 13px; color: #7A5A12; line-height: 1.6;
}
.qs-pending .qs-pend-t { font-weight: 600; color: #9A6A12; display: block; margin-bottom: 4px; }
.qs-pending .qs-pend-n { color: var(--ink); font-weight: 600; }

/* ---- 后台订单详情：待建品区 ---- */
.pp-sec { background: #FFFBF2; border: 1px solid #EFE3C6 !important; border-radius: 12px; padding: 14px 16px !important; }
.pp-sec > h4 { color: #9A6A12 !important; }
.pp-item {
  display: flex; flex-direction: column; gap: 8px; padding: 12px 14px; margin-bottom: 10px;
  background: #fff; border: 1px solid #EFE3C6; border-radius: 10px;
}
.pp-item.is-resolved { background: #F4FBF6; border-color: #C6E8D2; }
.pp-idx { font-size: 12.5px; font-weight: 700; color: #9A6A12; }
.pp-item.is-resolved .pp-idx { color: #1E8A5A; }
.pp-info { display: flex; flex-wrap: wrap; gap: 6px; font-size: 13px; color: var(--ink-soft, #5B6473); }
.pp-info span {
  background: #FBF6EA; border: 1px solid #EFE3C6; border-radius: 6px; padding: 3px 9px; font-size: 12.5px;
}
.pp-item.is-resolved .pp-info span { background: #EDF7F1; border-color: #C6E8D2; }
.pp-ops { display: flex; gap: 8px; flex-wrap: wrap; }
.pp-resolved { font-size: 13px; color: #1E8A5A; font-weight: 600; }
.pp-match, .pp-add {
  font-family: inherit; font-size: 13px; font-weight: 600; cursor: pointer;
  border-radius: 8px; padding: 7px 14px; border: 1px solid transparent; transition: all .16s;
}
.pp-match { background: var(--gold, #1B3A8B); color: #fff; }
.pp-match:hover { background: var(--gold-deep, #102763); }
.pp-add { background: #fff; color: #9A6A12; border-color: #E8C98A; }
.pp-add:hover { background: #FBF1DA; }
.act-pend-confirm {
  font-family: inherit; font-size: 13.5px; font-weight: 700; cursor: pointer;
  border: none; border-radius: 9px; padding: 9px 18px; background: var(--gold, #1B3A8B); color: #fff; transition: all .16s;
}
.act-pend-confirm:hover { background: var(--gold-deep, #102763); }
.act-pend-confirm:disabled { background: #B9B2A6; }

/* 后台订单列表：待建品行高亮 */
.uo-row.pc-row { border-color: #E8C98A; box-shadow: 0 0 0 2px rgba(232,201,138,.35); }

/* 状态徽标：待建品（区别于普通待付款/待确认） */
.uo-badge.u-pending-create { background: #FCEFC9; color: #9A6A12; border: 1px solid #EBD08A; }

/* 后台弹窗内：商品搜索结果 */
.pp-res { display: flex; flex-direction: column; gap: 6px; margin: 10px 0; max-height: 280px; overflow: auto; }
.pp-opt {
  display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--ink, #1B1E24);
  background: #fff; border: 1px solid var(--line, #E5E8ED); border-radius: 8px; padding: 8px 10px; cursor: pointer; transition: all .15s;
}
.pp-opt:hover { border-color: var(--gold, #1B3A8B); background: var(--gold-soft, #EEF1F8); }
.pp-opt input { flex: none; }
.pp-loading, .pp-empty { font-size: 12.5px; color: #9AA3B2; padding: 8px 2px; }

/* ===== 2026-09-06 首页全面重构（7屏 + 海报级 Hero） ===== */

/* ---------- 视觉规范（首页重构） ---------- */
/* 2026-09-08 海报遮挡修复：去掉固定 height:600px，改 height:auto 让内部 .gtc-track 的
   aspect-ratio:16/5（整图模式）/ height:600px（拼接兜底）自撑开，避免窄屏下方留白黑屏。 */
.lx-hero { position: relative; width: 100%; height: auto; overflow: hidden; background: #0b1f3a; }
.lx-hero-inner { position: relative; max-width: 1200px; height: 100%; margin: 0 auto; }
.hb-track { position: relative; height: 100%; }
.hb-slide { position: absolute; inset: 0; opacity: 0; transition: opacity .9s ease; pointer-events: none; overflow: hidden; }
.hb-slide.hb-active { opacity: 1; pointer-events: auto; }
.hb-deco { position: absolute; inset: 0; }
.hb-product { position: absolute; right: 5%; top: 50%; transform: translateY(-50%); width: 40%; max-width: 440px; max-height: 80%; object-fit: contain; border-radius: 18px; background: rgba(255,255,255,.94); padding: 18px; box-shadow: 0 24px 60px rgba(0,0,0,.36); }
.hb-text { position: absolute; left: 0; top: 0; bottom: 0; width: 48%; display: flex; flex-direction: column; justify-content: center; gap: 14px; padding: 0 36px; z-index: 3; }
.hb-eyebrow { font-size: 13px; letter-spacing: 3px; font-weight: 600; color: rgba(255,255,255,.84); }
.hb-title { font-size: 42px; line-height: 1.18; font-weight: 800; color: #fff; margin: 0; text-shadow: 0 2px 18px rgba(0,0,0,.4); }
.hb-sub { font-size: 17px; color: rgba(255,255,255,.88); margin: 0; max-width: 470px; }
.hb-cta { align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; background: #C9A961; color: #1A1A1A; font-weight: 700; font-size: 15px; padding: 12px 26px; border-radius: 999px; text-decoration: none; box-shadow: 0 10px 24px rgba(0,0,0,.28); transition: transform .2s, background .2s; }
.hb-cta:hover { transform: translateY(-2px); background: #d9bd7e; }
.hb-arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 4; width: 44px; height: 44px; border: none; border-radius: 50%; background: rgba(255,255,255,.7); color: #1A365D; cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 16px; opacity: 0; transition: .2s; box-shadow: 0 4px 12px rgba(0,0,0,.18); }
.lx-hero:hover .hb-arrow { opacity: 1; }
.hb-arrow:hover { background: #fff; }
.hb-prev { left: 16px; } .hb-next { right: 16px; }
.hb-dots { position: absolute; right: 22px; bottom: 20px; z-index: 4; display: flex; gap: 8px; }
.hb-dot { width: 10px; height: 10px; border-radius: 50%; border: none; background: rgba(255,255,255,.5); cursor: pointer; padding: 0; transition: .25s; }
.hb-dot.on { background: #fff; width: 28px; border-radius: 6px; }
/* 4 张独立渐变海报（禁止纯色底）：深蓝/藏青/灰蓝/墨绿 + 金/银光效 + 装饰 */
.hb-1 { background: radial-gradient(120% 140% at 80% 20%, #2b4f86 0%, #16294a 55%, #0c1830 100%); }
.hb-1 .hb-deco { background: radial-gradient(420px 420px at 78% 30%, rgba(201,169,97,.34), transparent 60%), radial-gradient(300px 300px at 18% 80%, rgba(201,169,97,.12), transparent 60%); }
.hb-1 .hb-deco::after { content:""; position:absolute; left:-60px; top:-60px; width:280px; height:280px; border:1px solid rgba(201,169,97,.45); border-radius:50%; }
.hb-2 { background: radial-gradient(120% 140% at 80% 20%, #24406e 0%, #15233f 55%, #0a1322 100%); }
.hb-2 .hb-deco { background: radial-gradient(420px 420px at 76% 26%, rgba(214,170,92,.32), transparent 60%), linear-gradient(115deg, transparent 60%, rgba(201,169,97,.10) 100%); }
.hb-2 .hb-deco::after { content:""; position:absolute; right:8%; top:18%; width:230px; height:2px; background:linear-gradient(90deg, transparent, rgba(201,169,97,.7), transparent); }
.hb-3 { background: radial-gradient(120% 140% at 80% 20%, #2a3a52 0%, #18222f 55%, #0c121b 100%); }
.hb-3 .hb-deco { background: radial-gradient(420px 420px at 78% 30%, rgba(201,169,97,.28), transparent 60%); }
.hb-3 .hb-deco::before { content:""; position:absolute; right:12%; top:14%; bottom:14%; width:1px; background:linear-gradient(180deg, transparent, rgba(201,169,97,.55), transparent); }
.hb-4 { background: radial-gradient(120% 140% at 80% 20%, #1f4a3c 0%, #123026 55%, #0a1c16 100%); }
.hb-4 .hb-deco { background: radial-gradient(420px 420px at 78% 30%, rgba(216,220,224,.30), transparent 60%); }
.hb-4 .hb-deco::after { content:""; position:absolute; right:10%; top:20%; width:200px; height:200px; border:1px solid rgba(216,220,224,.42); border-radius:50%; }

/* 双商城入口 */
.lx-malls { background: #fff; padding: 60px 0; }
.lx-malls-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.lx-mall { display: flex; align-items: center; gap: 22px; padding: 30px 34px; border-radius: 16px; text-decoration: none; color: #1A1A1A; transition: transform .2s, box-shadow .2s; border: 1px solid #ECECEC; position: relative; }
.lx-mall:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(20,30,50,.14); }
.lx-mall-gift { background: linear-gradient(120deg, #FFFDF8 0%, #FBF3E2 100%); border-color: #EBD8B0; }
.lx-mall-single { background: linear-gradient(120deg, #F4F8FD 0%, #E8F0FA 100%); border-color: #C9DCF0; }
.lx-mall-media { flex: 0 0 84px; width: 84px; height: 84px; border-radius: 18px; display: flex; align-items: center; justify-content: center; font-size: 38px; color: #fff; }
.lx-mall-gift .lx-mall-media { background: linear-gradient(135deg, #C9A961, #a8843f); }
.lx-mall-single .lx-mall-media { background: linear-gradient(135deg, #1A365D, #2b4f86); }
.lx-mall-k { font-size: 24px; font-weight: 800; }
.lx-mall-sub { font-size: 14px; color: #4A4A4A; margin-top: 4px; }
.lx-mall-meta { margin-top: 10px; font-size: 13px; color: #999; }
.lx-mall-btn { display: inline-flex; align-items: center; gap: 6px; margin-top: 14px; font-weight: 700; font-size: 14px; color: #C9A961; }
.lx-mall-single .lx-mall-btn { color: #1A365D; }

/* 4 大核心品类 */
.lx-cats { background: #F5F7FA; padding: 60px 0; }
.lx-cats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 28px; }
.lx-cat { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 30px 18px; background: #fff; border: 1px solid #ECECEC; border-radius: 14px; text-decoration: none; color: #1A1A1A; transition: transform .2s, box-shadow .2s, border-color .2s; }
.lx-cat:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(20,30,50,.12); border-color: #C9A961; }
.lx-cat-ico { width: 64px; height: 64px; border-radius: 16px; display: flex; align-items: center; justify-content: center; font-size: 28px; color: #fff; background: linear-gradient(135deg, #C9A961, #a8843f); margin-bottom: 14px; }
.lx-cat:nth-child(2) .lx-cat-ico { background: linear-gradient(135deg, #d98aa0, #b5506e); }
.lx-cat:nth-child(3) .lx-cat-ico { background: linear-gradient(135deg, #1A365D, #2b4f86); }
.lx-cat:nth-child(4) .lx-cat-ico { background: linear-gradient(135deg, #3a7d5c, #245a40); }
.lx-cat-name { font-size: 18px; font-weight: 700; }
.lx-cat-sub { font-size: 13px; color: #999; margin-top: 6px; }
.lx-cat-count { margin-top: 12px; font-size: 13px; font-weight: 600; color: #C9A961; background: #FBF3E2; padding: 4px 12px; border-radius: 999px; }

/* 区块标题 */
.lx-sec-head { text-align: center; margin-bottom: 8px; }
.lx-sec-head h2 { font-size: 30px; font-weight: 800; color: #1A1A1A; margin: 0; }
.lx-sec-head p { font-size: 15px; color: #999; margin: 8px 0 0; }
.lx-sec-head-row { display: flex; align-items: flex-end; justify-content: space-between; text-align: left; margin-bottom: 24px; }
.lx-sec-head-row h2 { font-size: 26px; }

/* 横向滑动轨道（爆款 / 新品） */
.lx-rail { background: #fff; padding: 60px 0; }
.lx-rail-track { display: flex; align-items: flex-start; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 6px 2px 14px; -webkit-overflow-scrolling: touch; }
.lx-rail-track::-webkit-scrollbar { height: 8px; }
.lx-rail-track::-webkit-scrollbar-thumb { background: #E2E2E2; border-radius: 8px; }
.lx-rail-cell { flex: 0 0 220px; scroll-snap-align: start; position: relative; }
.lx-rail-cell .card { width: 100%; border-radius: 8px; }
.lx-rail-track .card .thumb, .lx-catpage .grid .card .thumb { aspect-ratio: 1 / 1; }
/* 首页产品卡片紧凑化（2026-09-06）：取消 flex 拉伸与价格顶推，内容自然撑开、顶部对齐、瀑布流 */
.lx-rail-cell .card { display: block; border-radius: 8px; }
.lx-rail-cell .card .body { display: flex; flex-direction: column; gap: 8px; flex: none; }
.lx-rail-cell .card .body > * { margin: 0; }
.lx-rail-cell .card .prices { margin-top: 0; padding-top: 0; }
.lx-rail-cell .card .card-actions { margin-top: 2px; }
.lx-rail-cell .card .thumb { margin-bottom: 0; }
.lx-tag { position: absolute; top: 10px; left: 50%; transform: translateX(-50%); z-index: 5; background: #C9A961; color: #1A1A1A; font-size: 12px; font-weight: 700; padding: 3px 12px; border-radius: 999px; box-shadow: 0 4px 10px rgba(0,0,0,.18); }
.lx-rail-more { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size: 14px; color: #C9A961; text-decoration: none; }

/* 渠道优势 3 点 */
.lx-adv { background: #1A365D; padding: 56px 0; }
.lx-adv-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.lx-adv-item { display: flex; align-items: center; gap: 16px; color: #fff; }
.lx-adv-item i { font-size: 30px; color: #C9A961; }
.lx-adv-item b { display: block; font-size: 18px; }
.lx-adv-item span { font-size: 13px; color: rgba(255,255,255,.72); }

/* 底部 CTA */
.lx-cta { background: #F5F7FA; padding: 60px 0; }
.lx-cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; background: linear-gradient(120deg, #1A365D, #2b4f86); border-radius: 18px; padding: 40px 48px; flex-wrap: wrap; }
.lx-cta-inner h2 { color: #fff; margin: 0 0 8px; font-size: 26px; }
.lx-cta-inner p { color: rgba(255,255,255,.82); margin: 0; max-width: 520px; }
.lx-cta-actions { display: flex; gap: 14px; flex-wrap: wrap; }
.lx-cta .btn-outline { color: #fff; border-color: rgba(255,255,255,.6); }
.lx-cta .btn-outline:hover { background: #fff; color: #1A365D; }

/* 分类商品页 */
.lx-catpage { padding: 40px 0 80px; }
.lx-back { display: inline-flex; align-items: center; gap: 6px; color: #1A365D; text-decoration: none; font-size: 14px; margin: 6px 0 18px; }
.lx-loading { text-align: center; padding: 80px 0; color: #999; font-size: 15px; }

/* 移动端适配 */
@media (max-width: 768px) {
  .lx-hero { height: 260px; }
  .hb-title { font-size: 24px; }
  .hb-sub { font-size: 13px; }
  .hb-text { width: 56%; padding: 0 18px; align-items: flex-start; text-align: left; background: linear-gradient(90deg, rgba(0,0,0,.34), rgba(0,0,0,0)); }
  .hb-eyebrow, .hb-title, .hb-sub { align-self: flex-start; }
  .hb-cta { align-self: flex-start; width: auto; justify-content: flex-start; }
  .hb-product { width: 40%; right: 4%; max-height: 70%; padding: 10px; }
  .hb-arrow { display: none; }
  .lx-malls { padding: 40px 0; }
  .lx-malls-grid { grid-template-columns: 1fr; }
  .lx-cats { padding: 40px 0; }
  .lx-cats-grid { grid-template-columns: 1fr 1fr; }
  .lx-rail { padding: 40px 0; }
  .lx-rail-cell { flex-basis: 158px; }
  .lx-adv { padding: 36px 0; }
  .lx-adv-grid { grid-template-columns: 1fr; gap: 14px; }
  .lx-cta { padding: 40px 0; }
  .lx-cta-inner { padding: 28px 22px; }
  .lx-sec-head h2 { font-size: 24px; }
  .lx-sec-head-row h2 { font-size: 22px; }
}

/* ============================================================
   管理员 · AI 阶段 E · 智能运营助手（#/admin/ai-assistant）· 桌面样式
   marker: ai-assistant-20260906（幂等追加，勿重复）
   ============================================================ */
.ai-chat {
  display: flex; flex-direction: column;
  height: calc(100vh - 132px); min-height: 480px;
  background: #fff; border: 1px solid var(--line); border-radius: 14px;
  overflow: hidden;
}
.ai-head {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 16px;
  padding: 18px 22px; border-bottom: 1px solid var(--line); background: linear-gradient(180deg, var(--gold-soft), #fff);
}
.ai-head .eyebrow { font-size: 12px; letter-spacing: .12em; color: var(--gold); font-weight: 700; }
.ai-head h2 { font-size: 19px; margin: 4px 0 2px; color: var(--ink); }
.ai-head .lead { font-size: 13px; color: var(--ink-300); margin: 0; }

.ai-quick { display: flex; flex-wrap: wrap; gap: 8px; padding: 12px 22px; border-bottom: 1px solid var(--line); background: #fafbfc; }
.ai-quick-btn {
  border: 1px solid var(--gold-line); background: #fff; color: var(--gold-deep);
  border-radius: 999px; padding: 6px 14px; font-size: 13px; cursor: pointer; transition: .15s;
}
.ai-quick-btn:hover { background: var(--gold-soft); }

.ai-msgs { flex: 1; overflow-y: auto; padding: 18px 22px; display: flex; flex-direction: column; gap: 14px; background: #f7f8fa; }
.ai-msg { display: flex; gap: 10px; align-items: flex-start; max-width: 100%; }
.ai-msg.user { justify-content: flex-end; }
.ai-avatar {
  width: 34px; height: 34px; border-radius: 50%; flex: 0 0 34px;
  background: var(--gold-deep); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 15px;
}
.ai-bubble {
  max-width: 70%; padding: 11px 14px; border-radius: 8px; font-size: 14px; line-height: 1.6;
  background: #fff; border: 1px solid var(--line); color: var(--ink); word-break: break-word;
}
.ai-msg.user .ai-bubble {
  background: var(--gold-deep); color: #fff; border-color: var(--gold-deep);
}
.ai-answer { white-space: pre-wrap; }
.ai-meta { margin-top: 8px; font-size: 12px; color: var(--ink-300); }
.ai-error { color: #c0392b; font-size: 13px; }
.ai-retry {
  margin-top: 8px; border: 1px solid #c0392b; color: #c0392b; background: #fff;
  border-radius: 8px; padding: 5px 12px; font-size: 13px; cursor: pointer;
}

/* 正在思考 loading */
.ai-typing { display: inline-flex; gap: 4px; align-items: center; padding: 2px 0; }
.ai-typing span {
  width: 7px; height: 7px; border-radius: 50%; background: var(--ink-300); display: inline-block;
  animation: ai-blink 1.2s infinite both;
}
.ai-typing span:nth-child(2) { animation-delay: .2s; }
.ai-typing span:nth-child(3) { animation-delay: .4s; }
@keyframes ai-blink { 0%, 80%, 100% { opacity: .25; } 40% { opacity: 1; } }

/* 结构化数据表格 */
.dt-wrap { margin-top: 10px; overflow-x: auto; background: #f3f4f6; border: 1px solid var(--line); border-radius: 8px; padding: 4px; }
.dt-table { display: inline-block; min-width: 100%; }
.dt-row { display: grid; grid-template-columns: repeat(var(--n, 3), minmax(118px, 1fr)); }
.dt-head { position: sticky; top: 0; background: #eceef1; }
.dt-th { font-weight: 600; color: var(--ink); }
.dt-cell { padding: 8px 10px; font-size: 13px; border-bottom: 1px solid var(--line); color: var(--ink); white-space: nowrap; }
.dt-cell.dt-num { text-align: right; font-variant-numeric: tabular-nums; }
.dt-label { font-size: 13px; font-weight: 600; color: var(--ink); margin: 4px 2px 2px; }

/* 无数组时的标量指标概览 */
.dt-metrics { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.dt-metric {
  display: flex; flex-direction: column; gap: 2px; background: #f3f4f6;
  border: 1px solid var(--line); border-radius: 8px; padding: 8px 12px; min-width: 96px;
}
.dt-mk { font-size: 12px; color: var(--ink-300); }
.dt-mv { font-size: 15px; font-weight: 600; color: var(--ink); font-variant-numeric: tabular-nums; }

/* 无权限面板 */
.perm-deny { text-align: center; padding: 80px 20px; color: var(--ink-300); }
.perm-deny i { font-size: 40px; color: var(--gold); margin-bottom: 12px; }
.perm-deny h2 { color: var(--ink); margin: 6px 0; }
.perm-deny p { margin: 0 0 18px; }

.ai-foot {
  display: flex; gap: 10px; padding: 14px 22px; border-top: 1px solid var(--line); background: #fff;
}
.ai-input {
  flex: 1; border: 1px solid var(--line); border-radius: 10px; padding: 11px 14px; font-size: 14px; outline: none;
}
.ai-input:focus { border-color: var(--gold); box-shadow: 0 0 0 3px var(--gold-soft); }
.ai-input:disabled { background: #f2f3f5; }
.ai-send {
  border: none; background: var(--gold-deep); color: #fff; border-radius: 10px; padding: 0 20px;
  font-size: 14px; cursor: pointer; display: inline-flex; align-items: center; gap: 6px;
}
.ai-send:disabled { opacity: .6; cursor: not-allowed; }

/* ============================================================
   2026-09-06 全站海报 Banner + 金/蓝分类筛选栏 + 页面淡入
   （首页/臻礼集/臻品集统一 UI/UX 改版）
   ============================================================ */

/* 海报容器全高填充 */
.lx-hero-inner #posterBanner { height: 100%; }
#posterBanner .gtc-banner { height: 100%; border-radius: 0; }

/* 臻品集顶部 Banner 区 */
.sf-hero-wrap { width: 100%; background: #0b1220; }
.sf-hero-wrap #posterBanner { max-width: none; }
.sf-hero-wrap .gtc-banner,
.sf-hero-wrap .gtc-track { height: auto; }

/* 臻礼集金色调分组筛选栏 */
.gf-bar-wrap {
  background: linear-gradient(180deg, #fffdf8 0%, #fbf5e8 100%);
  border-bottom: 1px solid #ebd8b0;
  padding: 18px 0;
}
.gf-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.gf-label {
  font-size: 14px;
  font-weight: 700;
  color: #8a6d3b;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.gf-chip {
  border: 1px solid #e8d9b8;
  background: #fff;
  color: #5b4a32;
  font-size: 14px;
  padding: 8px 18px;
  border-radius: 999px;
  cursor: pointer;
  transition: .2s;
}
.gf-chip:hover { background: #fbf3e2; border-color: #d4b97a; }
.gf-chip.active {
  background: linear-gradient(135deg, #C9A961, #a8843f);
  color: #fff;
  border-color: transparent;
  box-shadow: 0 4px 12px rgba(201, 169, 97, .25);
}

/* 臻品集蓝色调分类筛选栏 */
.sf-bar-wrap {
  background: linear-gradient(180deg, #f4f8fd 0%, #e8f0fa 100%);
  border-bottom: 1px solid #c9dcf0;
  padding: 14px 0;
  margin-bottom: 18px;
}
.sf-bar-wrap .sup-cg-chips {
  margin: 0;
  border: none;
  background: transparent;
  padding: 0;
}
.sf-bar-wrap .cat-chips a {
  background: #fff;
  border: 1px solid #c9dcf0;
  color: #1a365d;
}
.sf-bar-wrap .cat-chips a.active {
  background: linear-gradient(135deg, #1A365D, #2b4f86);
  color: #fff;
  border-color: transparent;
}

/* 臻品集：品牌子分类横向标签（蓝色调，与 cat-chips 平行） */
.brand-chips { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.brand-chip { border: 1px solid #c9dcf0; background: #fff; color: #1a365d; font-size: 13px; padding: 6px 14px; border-radius: 999px; cursor: pointer; transition: .15s; }
.brand-chip:hover { background: #e8f0fa; border-color: #409EFF; }
.brand-chip.active { background: linear-gradient(135deg, #1A365D, #2b4f86); color: #fff; border-color: transparent; }

/* 臻品集：排序下拉（蓝色调） */
.sup-sort { border: 1px solid #c9dcf0; background: #fff; color: #1a365d; font-size: 14px; padding: 9px 14px; border-radius: 10px; cursor: pointer; outline: none; transition: border-color .15s; }
.sup-sort:hover, .sup-sort:focus { border-color: #409EFF; }

/* 臻品集：页面小标题（蓝色调，与臻礼集 mall-desc 平行） */
.sup-desc { font-size: 13.5px; color: #2b4f86; margin: 14px 0 4px; font-weight: 500; }

/* 页面切换淡入淡出 */
#view { animation: viewFadeIn .35s ease both; }
@keyframes viewFadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 768px) {
  .sf-hero-wrap .gtc-banner,
  .sf-hero-wrap .gtc-track { height: 260px; }
  .gf-bar { gap: 8px; }
  .gf-chip { padding: 6px 12px; font-size: 13px; }
  .sf-bar-wrap { padding: 10px 0; }
}

/* ===== 四级价格体系（2026-09-07）===== */
.price-tier{display:flex;flex-direction:column;gap:3px;min-height:66px;justify-content:center}
.price-tier .pt-market{display:flex;align-items:baseline;gap:6px;font-size:12px;color:#8b93a1;line-height:1.2}
.price-tier .pt-market .pt-mlabel{letter-spacing:.5px}
.price-tier .pt-market del{color:#9aa2b1}
.price-tier .pt-main{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.price-tier .pt-num{font-size:20px;font-weight:700;line-height:1.15;letter-spacing:.2px}
.price-tier .pt-tag{font-size:11px;font-weight:600;padding:2px 7px;border-radius:999px;line-height:1.4;white-space:nowrap}
.pt-main-market .pt-num{color:#4a5160}
.pt-market + .pt-main-market .pt-num{color:#2f3542}
.pt-tag-market{background:#eef0f3;color:#6b7280}
.pt-main-member .pt-num{color:#B8893B}
.pt-tag-member{background:linear-gradient(135deg,#B8893B,#8a6524);color:#fff}
.pt-main-ch .pt-num{color:#12876f}
.pt-tag-ch{background:linear-gradient(135deg,#12876f,#0b6b58);color:#fff}
.price-tier .pt-hint{font-size:11px;color:#8b93a1;line-height:1.3}
.price-tier .pt-hint-ok{color:#12876f}
.price-tier .pt-note{font-size:11px;color:#8b93a1;line-height:1.4}
.price-tier .pt-cta{display:inline-block;margin-top:2px;font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;cursor:pointer;line-height:1.5;width:fit-content;max-width:100%}
.pt-cta-gold{background:linear-gradient(135deg,#B8893B,#8a6524);color:#fff}
.pt-cta-gold:hover{filter:brightness(1.06)}
.pt-cta-line{border:1px solid #d9b979;color:#8a6524;background:#fff}
.pt-cta-line:hover{background:#fdf6e8}
.pt-cta-gray{background:#eef0f3;color:#5b6573;border:1px solid #dfe3e8}
.pt-cta-gray:hover{background:#e5e8ec}
.price-inquiry .pt-inq-txt{font-size:14px;color:#6b7280;font-weight:600}
.price-admin .pt-admin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:4px;font-size:11px;color:#6b7280;background:#fafbfc;border:1px dashed #dfe3e8;border-radius:8px;padding:6px 8px}
.price-admin .pt-admin-grid b{color:#2f3542}
.tier-price-wrap{margin:2px 0 10px}

/* ============================================================
   后台统一 UX 框架 · 左侧导航（2026-09-07 后台整合第一阶段）
   ============================================================ */
#adminSide{display:none}
body.has-admin-side #adminSide{display:block;position:fixed;left:0;top:0;bottom:0;width:212px;background:#fffdf7;border-right:1px solid #ece2d0;z-index:60;overflow-y:auto;padding:16px 10px 40px;box-sizing:border-box}
body.has-admin-side .topbar,body.has-admin-side #view,body.has-admin-side .footer{padding-left:212px}
#adminSide .as-brand{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:#8a6d3b;padding:6px 10px 14px;border-bottom:1px solid #f0e7d6;margin-bottom:10px}
#adminSide .as-item{margin-bottom:2px}
#adminSide .as-link{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:9px;color:#5c5347;font-size:13.5px;text-decoration:none;line-height:1.3}
#adminSide .as-link i{width:16px;text-align:center;color:#a89881;font-size:13px}
#adminSide .as-link:hover{background:#f6efe1;color:#3d352b}
#adminSide .as-item.active>.as-link{background:linear-gradient(90deg,#b8860b,#cf9c1c);color:#fff;font-weight:600}
#adminSide .as-item.active>.as-link i{color:#fff}
#adminSide .as-kids{display:none;padding:2px 0 6px 30px}
#adminSide .as-item.active .as-kids{display:block}
#adminSide .as-kid{display:block;padding:5px 8px;font-size:12px;color:#8a7f6d;text-decoration:none;border-radius:6px}
#adminSide .as-kid:hover{background:#f6efe1;color:#5c5347}
#adminSide .as-kid.on{color:#b8860b;font-weight:600;background:#fbf4e4}
@media (max-width:900px){
  body.has-admin-side #adminSide{display:block;position:fixed;left:0;top:0;bottom:0;width:240px;transform:translateX(-100%);transition:transform .22s ease;z-index:200}
  body.has-admin-side #adminSide.open{transform:translateX(0);box-shadow:4px 0 24px rgba(0,0,0,.18)}
  body.has-admin-side .topbar,body.has-admin-side #view,body.has-admin-side .footer{padding-left:0}
  body.has-admin-side #adminBurger{display:flex !important}
}
#adminBurger{display:none;position:fixed;left:12px;top:12px;z-index:210;width:38px;height:38px;border-radius:9px;border:1px solid #e0d6c4;background:#fffdf7;color:#5c5347;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.08)}
#adminBurger:hover{background:#f6efe1}
#adminBurger i{font-size:16px}
#adminSideMask{display:none;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:190}
#adminSideMask.show{display:block}

/* ============================================================
   财务管理 / 数据统计 / 系统设置 通用块
   ============================================================ */
.fin-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.fin-head .eyebrow{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#a89881;margin-bottom:4px}
.fin-head h2{margin:0;font-size:22px;color:#2f2a22}
.fin-head .lead{margin:4px 0 0;font-size:13px;color:#8a7f6d}
.fin-actions{display:flex;gap:8px}
.fin-btn{padding:8px 14px;border-radius:9px;border:1px solid #b8860b;background:#b8860b;color:#fff;font-size:13px;cursor:pointer}
.fin-btn.ghost{background:#fff;color:#8a6d3b;border-color:#e3d6bf}
.fin-btn:hover{filter:brightness(1.05)}
.fin-filter{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;background:#fffdf7;border:1px solid #ece2d0;border-radius:12px;padding:12px 16px;margin-bottom:14px}
.fin-filter label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#8a7f6d}
.fin-filter select{padding:7px 10px;border:1px solid #ddd3bf;border-radius:8px;background:#fff;font-size:13px;min-width:130px}
.fin-tabs{display:flex;gap:4px;margin-left:auto;background:#f6efe1;padding:4px;border-radius:10px}
.fin-tabs .ft{padding:7px 16px;border:none;background:transparent;border-radius:7px;font-size:13px;color:#7a6f5d;cursor:pointer}
.fin-tabs .ft.on{background:#fff;color:#b8860b;font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.fin-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:14px}
.fin-kpi{background:#fff;border:1px solid #ece2d0;border-radius:12px;padding:14px 16px}
.fin-kpi .fk-ico{width:28px;height:28px;border-radius:8px;background:#fbf4e4;color:#b8860b;display:flex;align-items:center;justify-content:center;font-size:13px;margin-bottom:8px}
.fin-kpi .fk-label{font-size:12px;color:#8a7f6d}
.fin-kpi .fk-val{font-size:21px;font-weight:700;color:#2f2a22;margin:2px 0}
.fin-kpi .fk-sub{font-size:11.5px;color:#a89881}
.fin-kpi.ok .fk-val{color:#1e8e5a}.fin-kpi.ok .fk-ico{background:#e8f6ee;color:#1e8e5a}
.fin-kpi.warn .fk-val{color:#c07a12}.fin-kpi.warn .fk-ico{background:#fdf3e0;color:#c07a12}
.fin-kpi.bad .fk-val{color:#c0392b}.fin-kpi.bad .fk-ico{background:#fdeceb;color:#c0392b}
.fin-card{background:#fff;border:1px solid #ece2d0;border-radius:12px;padding:14px 16px;margin-bottom:14px;overflow-x:auto}
.fin-grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:980px){.fin-grid2{grid-template-columns:1fr}}
.fin-tb{width:100%;border-collapse:collapse;font-size:13px}
.fin-tb th{text-align:left;padding:9px 10px;background:#faf6ec;color:#7a6f5d;font-weight:600;font-size:12px;border-bottom:1px solid #ece2d0;white-space:nowrap}
.fin-tb td{padding:9px 10px;border-bottom:1px solid #f3ede1;color:#3d352b;vertical-align:top}
.fin-tb th.r,.fin-tb td.r{text-align:right}
.fin-tb td.clip{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fin-tb tbody tr:hover{background:#fdfaf3}
.fin-tb.inner th{background:#fff}
.fin-row{cursor:pointer}
.fin-row.open{background:#fbf6ea}
.fin-detail td{background:#fcf8ee;padding:0 10px 12px}
.fin-subtable{padding:10px 4px}
.fst-cap{font-size:12px;color:#8a7f6d;margin-bottom:8px;font-weight:600}
.fin-mini{padding:4px 10px;border:1px solid #e3d6bf;background:#fff;border-radius:6px;font-size:12px;color:#8a6d3b;cursor:pointer}
.fin-mini:hover{background:#fbf4e4}
.fin-st{display:inline-block;padding:2px 8px;border-radius:20px;font-size:11.5px;font-weight:600}
.fin-st.ok{background:#e8f6ee;color:#1e8e5a}
.fin-st.warn{background:#fdf3e0;color:#c07a12}
.fin-st.bad{background:#fdeceb;color:#c0392b}
.fin-st.gray{background:#f2f2f2;color:#888}
.fin-empty{padding:28px;text-align:center;color:#a89881;font-size:13px;background:#fffdf7;border:1px dashed #ece2d0;border-radius:12px}
.fin-empty.sm{padding:16px;font-size:12.5px}
.fin-subtabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.fin-subtabs .lt{padding:6px 14px;border:1px solid #e3d6bf;background:#fff;border-radius:20px;font-size:12.5px;color:#7a6f5d;cursor:pointer}
.fin-subtabs .lt.on{background:#b8860b;border-color:#b8860b;color:#fff;font-weight:600}
.st-bar{height:6px;background:#f1eadd;border-radius:4px;overflow:hidden}
.st-bar i{display:block;height:100%;background:linear-gradient(90deg,#b8860b,#d8ab3a);border-radius:4px}
.set-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.set-card{display:block;background:#fff;border:1px solid #ece2d0;border-radius:12px;padding:16px;text-decoration:none;color:inherit;transition:.15s}
.set-card:hover{border-color:#d9c49a;box-shadow:0 4px 14px rgba(184,134,11,.08);transform:translateY(-1px)}
.set-card .sc-ico{width:32px;height:32px;border-radius:9px;background:#fbf4e4;color:#b8860b;display:flex;align-items:center;justify-content:center;margin-bottom:10px}
.set-card .sc-title{font-size:14px;font-weight:600;color:#2f2a22;margin-bottom:4px}
.set-card .sc-desc{font-size:12px;color:#8a7f6d;line-height:1.6}
.set-notes{margin:0;padding-left:18px;font-size:12.5px;color:#6b6152;line-height:2}
.set-notes code{background:#f6efe1;padding:1px 5px;border-radius:4px;font-size:12px}

/* 商品管理：板块 Tab + 板块/供应商标签 */
.bd-tabs{display:flex;gap:6px;flex-wrap:wrap;background:#fffdf7;border:1px solid #ece2d0;border-radius:12px;padding:10px 12px;margin-bottom:12px}
.bd-tabs .bt{padding:7px 14px;border:1px solid #e3d6bf;background:#fff;border-radius:20px;font-size:13px;color:#7a6f5d;cursor:pointer;white-space:nowrap}
.bd-tabs .bt:hover{border-color:#d9c49a;color:#5c5347}
.bd-tabs .bt.on{background:#b8860b;border-color:#b8860b;color:#fff;font-weight:600}
.bd-tabs .bt i{font-style:normal;opacity:.75;margin-left:5px;font-size:11.5px}
.bd-tag{display:inline-block;padding:1px 7px;border-radius:20px;font-size:11px;font-weight:600;margin-right:4px;white-space:nowrap}
.bd-counter{background:#f0eaff;color:#7b4bd0}
.bd-trade{background:#eef4ff;color:#2b6cb0}
.bd-box{background:#fff4e0;color:#b8860b}
.bd-food{background:#e9f7ef;color:#1e8e5a}
.bd-crab{background:#fdeceb;color:#c0392b}
.bd-pending{background:#f2f2f2;color:#777}
.sup-tag{display:inline-block;padding:1px 7px;border-radius:20px;font-size:11px;font-weight:600;white-space:nowrap;background:#f6efe1;color:#8a6d3b;border:1px solid #ece2d0}
.sup-tag.unknown{background:#f2f2f2;color:#999;border-color:#e5e5e5}

/* ============ 阶段二（2026-09-07）：运营驾驶舱 / 渠道看板 / 供应商看板 / 全局搜索 ============ */
/* ---- 驾驶舱 ---- */
.db-wrap .page-head{margin-bottom:10px}
.db-supswitch{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 16px}
.db-chip{padding:7px 16px;border-radius:999px;border:1px solid #e0d6c4;background:#fff;color:#6b5d49;font-size:13px;cursor:pointer;font-family:inherit}
.db-chip.on{background:var(--gold,#c19a6b);color:#fff;border-color:var(--gold,#c19a6b);font-weight:600}
.db-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-bottom:16px}
.db-kpi{display:flex;gap:12px;align-items:center;border:1px solid #e7ddcb;border-radius:14px;background:#fff;padding:16px;text-decoration:none;transition:.15s;cursor:pointer}
.db-kpi:hover{border-color:var(--gold,#c19a6b);box-shadow:0 4px 16px rgba(193,154,107,.15);transform:translateY(-1px)}
.db-kpi-ico{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px;flex:none}
.db-kpi-label{font-size:12px;color:#9a8a72}
.db-kpi-val{font-size:24px;font-weight:800;color:#3a3020;line-height:1.2}
.db-kpi-val.db-red{color:#c0564f}
.db-kpi-val.db-orange{color:#c07a2a}
.db-kpi-sub{font-size:11px;color:#9a8a72;margin-top:2px}
.db-up{color:#1a7f43;font-weight:600}
.db-down{color:#c0564f;font-weight:600}
.db-prog{display:inline-block;width:90px;height:7px;border-radius:99px;background:#efe8da;vertical-align:middle;margin-right:6px;overflow:hidden}
.db-prog span{display:block;height:100%;background:var(--gold,#c19a6b);border-radius:99px}
.db-twocol{display:grid;grid-template-columns:1.25fr 1fr;gap:14px;margin-bottom:14px}
@media(max-width:960px){.db-twocol{grid-template-columns:1fr}}
.db-card{border:1px solid #e7ddcb;border-radius:14px;background:#fff;padding:16px;margin-bottom:14px}
.db-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.db-card-head h3{margin:0;font-size:14px;color:#5b4a2e;display:flex;gap:6px;align-items:center}
.db-more{font-size:12px;color:var(--gold-deep,#8a6d3b);text-decoration:none}
button.db-more{border:none;background:none;cursor:pointer;font-family:inherit}
.db-dayswitch{display:flex;gap:6px}
.db-mini{padding:4px 12px;border-radius:999px;border:1px solid #e0d6c4;background:#fff;color:#6b5d49;font-size:12px;cursor:pointer;font-family:inherit}
.db-mini.on{background:#f3ead8;border-color:#cbb893;color:#5b4a2e;font-weight:600}
.db-rankrow{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px dashed #f0e9dc;font-size:13px}
.db-rankrow:last-child{border-bottom:none}
.db-rankn{width:22px;height:22px;border-radius:6px;background:#f0eee9;color:#8a7a66;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex:none}
.db-rankn.top{background:#c19a6b;color:#fff}
.db-rankname{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#4a443c}
.db-rankqty{color:#8a7a66;font-size:12px;flex:none}
.db-rankamt{font-weight:700;color:#8a6d3b;flex:none;width:86px;text-align:right}
.db-todos{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.db-todo{border:1px solid #f0e9dc;border-radius:12px;padding:12px 14px;display:flex;align-items:center;gap:10px;background:#fcfaf6}
.db-todo-n{font-size:24px;font-weight:800;color:#8a7a66;min-width:34px;text-align:center}
.db-todo.todo-red{border-color:#f0c2c2;background:#fdf4f3}.db-todo.todo-red .db-todo-n{color:#c0564f}
.db-todo.todo-orange{border-color:#f0dcb8;background:#fdf9f0}.db-todo.todo-orange .db-todo-n{color:#c07a2a}
.db-todo-l{flex:1;font-size:12px;color:#6b5d49;line-height:1.4}
.db-todo-btn{padding:6px 12px;border-radius:8px;border:1px solid #cbb893;background:#fff;color:#6b5d49;font-size:12px;cursor:pointer;text-decoration:none;white-space:nowrap;font-family:inherit}
.db-todo-btn:hover{background:#f3ead8}
.db-quicks{display:flex;gap:10px;flex-wrap:wrap}
.db-quick{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:10px;border:1px solid #e0d6c4;background:#fff;color:#5b4a2e;font-size:13px;text-decoration:none}
.db-quick:hover{border-color:var(--gold,#c19a6b);background:#faf6ee}
.db-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;padding:14px}
.db-sum-item{text-align:center}
.db-sum-item .n{font-size:20px;font-weight:800;color:#5b4a2e}
.db-sum-item .l{font-size:11px;color:#9a8a72;margin-top:2px}
.db-table .db-tr{display:grid;grid-template-columns:2fr .6fr .7fr;gap:8px;padding:7px 4px;border-bottom:1px dashed #f0e9dc;font-size:13px;align-items:center}
.db-table .db-th{font-weight:600;color:#9a8a72;font-size:12px}
.db-empty{text-align:center;color:#9a8a72;padding:24px 0;font-size:13px}
/* ---- 渠道 / 供应商看板 ---- */
.ch-dash{border:1px solid #e7ddcb;border-radius:14px;background:#fff;padding:16px;margin-bottom:16px}
.ch-dash-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.ch-dash-head h3{margin:0;font-size:15px;color:#5b4a2e;display:flex;gap:6px;align-items:center}
.ch-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.ch-card{border:1px solid #f0e9dc;border-radius:12px;padding:12px 14px;background:#fcfaf6;cursor:pointer;transition:.15s}
.ch-card:hover{border-color:var(--gold,#c19a6b);box-shadow:0 4px 14px rgba(193,154,107,.14);transform:translateY(-1px)}
.ch-card.pend{background:#fdf9f0;border-color:#f0dcb8}
.ch-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.ch-card-top b{font-size:14px;color:#3a3020}
.ch-card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.ch-card-grid .n{font-size:15px;font-weight:700;color:#5b4a2e}
.ch-card-grid .l{font-size:10px;color:#9a8a72;margin-top:1px}
.ch-card-health{margin-top:8px;font-size:11px;color:#8a7a66;border-top:1px dashed #eee3d4;padding-top:7px;line-height:1.6}
.ch-compare{margin-top:14px;border-top:1px solid #f0e9dc;padding-top:12px}
.ch-compare h4{margin:0 0 10px;font-size:13px;color:#5b4a2e}
.ch-bar-row{display:flex;align-items:center;gap:10px;padding:4px 0;font-size:12px}
.ch-bar-name{width:110px;text-align:right;color:#6b5d49;flex:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch-bar-track{flex:1;height:14px;border-radius:99px;background:#f3ede1;overflow:hidden}
.ch-bar-fill{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#c19a6b,#8a6d3b)}
.ch-bar-val{width:90px;color:#8a6d3b;font-weight:600;flex:none}
.ch-health h4{margin:0 0 8px;font-size:13px;color:#5b4a2e}
.ch-health-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;border:1px solid #f0e9dc;border-radius:10px;padding:12px;background:#fcfaf6}
.ch-health-grid .n{font-size:18px;font-weight:800;color:#5b4a2e}
.ch-health-grid .l{font-size:11px;color:#9a8a72;margin-top:2px}
/* ---- 侧栏全局搜索 ---- */
.as-search{position:relative;margin:10px 12px 4px}
.as-search-ico{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:#b3a488;font-size:12px}
.as-search input{width:100%;box-sizing:border-box;padding:8px 10px 8px 28px;border:1px solid #e0d6c4;border-radius:9px;font-size:12px;background:#fff;color:#3a3020;font-family:inherit}
.as-search input:focus{outline:none;border-color:var(--gold,#c19a6b)}
.as-search-res{display:none;position:absolute;left:0;right:0;top:calc(100% + 6px);background:#fff;border:1px solid #e0d6c4;border-radius:10px;box-shadow:0 12px 32px rgba(40,30,10,.18);max-height:340px;overflow:auto;z-index:60}
.as-search-res.show{display:block}
.as-ri{display:flex;gap:8px;align-items:flex-start;padding:8px 12px;cursor:pointer;border-bottom:1px dashed #f0e9dc}
.as-ri:hover{background:#faf6ee}
.as-ri:last-child{border-bottom:none}
.as-ri-g{flex:none;font-size:10px;padding:2px 6px;border-radius:6px;background:#f3ead8;color:#8a6d3b;font-weight:600}
.as-ri i{color:#b3a488;font-size:12px;margin-top:2px}
.as-ri-t{flex:1;min-width:0}
.as-ri-t .t{font-size:12px;color:#3a3020;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.as-ri-t .s{font-size:11px;color:#9a8a72;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.as-ri-empty{padding:14px;font-size:12px;color:#9a8a72;text-align:center}
/* ---- 商品：低库存 / 关联订单表 / 价史 ---- */
.num.stock-low input{border-color:#c0564f;color:#c0564f;font-weight:700}
.num.stock-low{position:relative}
.num.stock-low::after{content:"⚠";position:absolute;top:-4px;right:-2px;font-size:11px;color:#c0564f}
.po-table .po-tr{display:grid;grid-template-columns:1.6fr .9fr .5fr .7fr .6fr 1fr;gap:8px;padding:7px 4px;border-bottom:1px dashed #f0e9dc;font-size:12px;align-items:center}
.po-table .po-tr.po-th{font-weight:600;color:#9a8a72;font-size:11px}

/* ============ 阶段三（2026-09-08）：数据统计 / 智能建议 / 用户统一 / 内容素材 ============ */
.ai-qg{display:inline-flex;align-items:center;font-size:11px;color:#9a8a72;background:#f3ead8;border-radius:6px;padding:3px 8px;font-weight:700}
.ai-sugbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:8px 12px;background:#fdf9f0;border:1px solid #f0dcb8;border-radius:10px;margin:4px 0 10px}
.ai-sug-t{font-size:13px;font-weight:700;color:#8a6d3b;display:inline-flex;gap:6px;align-items:center}
.ai-sug-btn{padding:5px 12px;border-radius:8px;border:1px solid #cbb893;background:#fff;color:#6b5d49;font-size:12px;cursor:pointer;font-family:inherit}
.ai-sug-btn:hover{background:#f3ead8}
.ai-sug-hint{font-size:11px;color:#b3a488;margin-left:auto}
.ai-sug-loading{color:#9a8a72;font-size:13px;padding:12px;text-align:center}
.ai-sug-empty{color:#9a8a72;font-size:13px;padding:14px;text-align:center}
.ai-sug-cap{display:flex;gap:8px;align-items:center;font-weight:700;color:#5b4a2e;font-size:13px;margin:2px 0 8px}
.ai-sug-csv{margin-left:auto;font-size:11px;color:#8a6d3b;background:none;border:1px solid #cbb893;border-radius:6px;padding:2px 8px;cursor:pointer;font-family:inherit}
.tag-channel{background:#e8f0fb;color:#2f5da8}
.tag-admin{background:#e6e0f6;color:#5a4a9a}
.ud-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.ud-grid b{display:block;font-size:11px;color:#9a8a72;margin-bottom:2px;font-weight:600}
.ud-grid div{font-size:13px;color:#3a3020}
.ud-actions{margin-top:14px;text-align:right}

/* ============ 阶段四（2026-09-08）：采购管理模块 ============ */
.btn-primary{background:#b8860b;border:1px solid #b8860b;color:#fff}
.btn-primary:hover{background:#a67a0a;border-color:#a67a0a}
.btn-success{background:#2f9e6e;border:1px solid #2f9e6e;color:#fff}
.btn-success:hover{background:#278a5f;border-color:#278a5f}
.btn-danger{background:#d9534f;border:1px solid #d9534f;color:#fff}
.btn-danger:hover{background:#c94440;border-color:#c94440}
.st-badge{display:inline-block;font-size:11px;padding:2px 8px;border-radius:999px;font-weight:600}
.st-badge.gray{background:#f0ede6;color:#8a7f6d}
.st-badge.blue{background:#e8f0fb;color:#2f5da8}
.st-badge.green{background:#e4f4ec;color:#2f9e6e}
.st-badge.red{background:#fbe9e8;color:#d9534f}
.db-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 4px}
.po-filters{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.po-filters .inp{min-width:150px}
.po-total{margin-left:auto;font-size:12.5px;color:#8a7f6d}
.po-no{cursor:pointer;color:#8a6d3b;font-weight:600}
.po-ops{white-space:nowrap}
.po-ops .btn{margin-right:4px}
.po-pager{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin-top:12px;font-size:12.5px;color:#8a7f6d}
.po-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:14px}
.ps-card{background:#fdf9f0;border:1px solid #f0dcb8;border-radius:12px;padding:14px 16px}
.ps-card .k{font-size:11px;color:#9a8a72;margin-bottom:6px}
.ps-card .v{font-size:22px;font-weight:700;color:#3a3020}
.ps-card .v.warn{color:#c0392b}
.po-modal{position:fixed;inset:0;z-index:9999;display:none}
.po-modal-mask{position:absolute;inset:0;background:rgba(0,0,0,.45)}
.po-modal-box{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(640px,92vw);max-height:86vh;overflow-y:auto;background:#fff;border-radius:14px;box-shadow:0 12px 40px rgba(0,0,0,.18)}
.po-modal-body{padding:18px 20px}
.po-modal-head{font-size:16px;font-weight:700;color:#2f2a22;margin-bottom:14px}
.po-form label{display:block;font-size:12px;color:#8a7f6d;margin:10px 0 4px;font-weight:600}
.po-form .inp{width:100%}
.po-item-row{display:flex;gap:8px;align-items:center;margin-bottom:8px}
.po-item-row .inp{flex:1;min-width:0}
.po-item-row .po-pid{max-width:90px}
.po-item-row .po-qty{max-width:80px}
.po-item-row .po-cost{max-width:100px}
.po-item-row .po-del{flex:0 0 auto}
.po-chk{display:flex;align-items:center;gap:6px;margin:0 !important}
.po-ip-name{flex:1;font-size:12.5px;color:#3a3020;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.po-inb-hint{font-size:12px;color:#8a7f6d;background:#fdf9f0;border:1px solid #f0dcb8;border-radius:8px;padding:8px 10px;margin-bottom:10px}
.po-modal-foot{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}
.po-detail .pd-row{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px dashed #f0e9dc;font-size:13px}
.po-detail .pd-row span{color:#9a8a72}
.po-detail .pd-row b{color:#3a3020}
.po-amt{font-size:20px;font-weight:700;color:#c0392b;margin:6px 0}
@media (max-width:680px){
  .po-item-row{flex-wrap:wrap}
  .po-item-row .po-pid{max-width:none}
  .po-modal-box{width:96vw}
}

/* ===== 臻品集热销区（2026-09-08）：Banner → 分类 → 热销 TOP10 → 列表 ===== */
.sup-hot { margin: 20px 0 8px; }
.sup-hot-head { display: flex; align-items: baseline; gap: 12px; margin-bottom: 6px; }
.sup-hot-head h2 { font-size: 20px; font-weight: 800; margin: 0; color: #1F2A44; letter-spacing: .5px; }
.sup-hot-head h2 i { color: #E05D3A; margin-right: 6px; }
.sup-hot-head span { font-size: 13px; color: #8A8F99; }
.sup-hot-track { padding-bottom: 10px; }
@media (max-width: 680px) {
  .sup-hot-head h2 { font-size: 17px; }
  .sup-hot-head span { display: none; }
}

/* ============ 供应商开票信息（2026-09-09） ============ */
.sup-sec-title{font-size:12.5px;font-weight:700;color:#8a6d3b;margin:16px 0 4px;padding-bottom:6px;border-bottom:1px dashed #f0dcb8;letter-spacing:.5px}
.sup-inv-strip{margin-top:6px;padding:6px 9px;background:#fdf9f0;border:1px solid #f0e3c8;border-radius:8px;font-size:11.5px;color:#6f6350;line-height:1.7}
.sup-inv-strip b{color:#8a6d3b;font-weight:600}
.sup-inv-strip div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ===== 品牌专栏（2026-09-08）：爆款推荐区 → 5 大品牌专栏卡片 ===== */
.lx-bcol-wrap { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.lx-bcol { display: flex; flex-direction: column; background: #fff; border: 1px solid #e8e4dc; border-radius: 14px; padding: 18px 16px 16px; text-decoration: none; transition: transform .25s ease, box-shadow .25s ease; position: relative; overflow: hidden; }
.lx-bcol::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--bc, #8a6d3b); opacity: .85; }
.lx-bcol:hover { transform: translateY(-4px); box-shadow: 0 14px 32px rgba(20, 24, 34, .12); }
.lx-bcol-head { display: flex; flex-direction: column; gap: 3px; margin-bottom: 10px; }
.lx-bcol-en { font-size: 10px; letter-spacing: 2px; color: #9a948a; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lx-bcol-name { font-size: 22px; font-weight: 800; color: var(--bc, #8a6d3b); letter-spacing: 1px; line-height: 1.2; }
.lx-bcol-media { height: 150px; display: flex; align-items: center; justify-content: center; margin: 4px 0 10px; }
.lx-bcol-media img { max-width: 100%; max-height: 100%; object-fit: contain; }
.lx-bcol-slogan { font-size: 12px; color: #7a756b; letter-spacing: .5px; margin-bottom: 12px; }
.lx-bcol-btn { margin-top: auto; display: inline-flex; align-items: center; gap: 6px; align-self: flex-start; font-size: 13px; font-weight: 600; color: var(--bc, #8a6d3b); border: 1px solid var(--bc, #8a6d3b); border-radius: 999px; padding: 6px 14px; transition: background .2s ease, color .2s ease; }
.lx-bcol:hover .lx-bcol-btn { background: var(--bc, #8a6d3b); color: #fff; }
@media (max-width: 960px) {
  .lx-bcol-wrap { grid-template-columns: none; display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px; -webkit-overflow-scrolling: touch; }
  .lx-bcol { flex: 0 0 200px; scroll-snap-align: start; }
  .lx-bcol-media { height: 130px; }
}

/* ============================================================
   2026-09-08 · 全站商品卡片：禁用图片拖拽（消除拖拽时出现的系统"下载"角标）
   同时兜底隐藏遗留的 .corner-dl 下载资料包圆形按钮（已从 shared.js 移除生成代码）
   ============================================================ */
.card img, .lx-rail-cell img, .lx-bcol img, .sup-cell img, .mall-grid img, .ai-grid img {
  -webkit-user-drag: none;
  -khtml-user-drag: none;
  -moz-user-drag: none;
  -o-user-drag: none;
  user-select: none;
}
.corner-dl { display: none !important; }

/* ============================================================
   2026-09-08 · 臻品集（#/supplier）重构：搜索框 / 分类胶囊 / 排序栏 / 商品网格
   ============================================================ */
.sup-page { padding: 18px 0 46px; }
.sup-searchbar { margin-bottom: 10px; }
.sup-searchbar .sup-search {
  height: 44px; border-radius: 22px; padding: 0 14px; flex: 1;
  border: 1px solid #d7e3f2; background: #fff; box-shadow: 0 2px 10px rgba(23,43,77,.05);
}
.sup-searchbar .sup-search input { font-size: 15px; height: 42px; line-height: 42px; }
.sup-searchbar .sup-search i { font-size: 14px; }
.sup-kw-clear {
  border: none; background: #eef2f7; color: #7a869a; width: 22px; height: 22px;
  border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center;
  font-size: 11px; padding: 0; flex: none;
}
.sup-kw-clear:hover { background: #e2e8f0; color: #333; }

.sup-hotwords { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0 0 14px; }
.sup-hot-label { font-size: 12.5px; color: #8a94a6; letter-spacing: .5px; }
.sup-hot-word {
  border: 1px solid #e3e9f2; background: #fff; color: #4a5568; font-size: 12.5px;
  padding: 4px 11px; border-radius: 999px; cursor: pointer; transition: all .15s;
}
.sup-hot-word:hover { border-color: #409EFF; color: #409EFF; background: #f2f8ff; }

/* 分类导航：横向滚动胶囊，选中态蓝色填充 */
.sup-cats {
  display: flex; gap: 10px; overflow-x: auto; padding: 2px 0 10px; margin-bottom: 4px;
  scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.sup-cats::-webkit-scrollbar { display: none; }
.sup-chip {
  flex: none; display: inline-flex; align-items: center; gap: 6px; white-space: nowrap;
  height: 36px; padding: 0 16px; border-radius: 18px; cursor: pointer;
  border: 1px solid #dfe6f0; background: #fff; color: #3c4657;
  font-size: 14px; font-weight: 600; transition: all .16s;
}
.sup-chip em { font-style: normal; font-size: 12px; font-weight: 500; color: #98a2b3; }
.sup-chip:hover { border-color: #409EFF; color: #409EFF; }
.sup-chip.on {
  background: #409EFF; border-color: #409EFF; color: #fff;
  box-shadow: 0 4px 12px rgba(64,158,255,.28);
}
.sup-chip.on em { color: rgba(255,255,255,.85); }
.sup-cats-sub { padding-top: 0; margin-bottom: 6px; }
.sup-cats-sub .sup-chip { height: 30px; padding: 0 13px; font-size: 13px; border-radius: 15px; font-weight: 500; }

.sup-sortbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 8px 0 16px; flex-wrap: wrap; }
.sup-sorts { display: flex; gap: 6px; background: #f4f6fa; padding: 4px; border-radius: 10px; }
.sup-sort {
  border: none; background: transparent; color: #5c6675; font-size: 13px; font-weight: 600;
  padding: 7px 14px; border-radius: 7px; cursor: pointer; transition: all .15s;
}
.sup-sort:hover { color: #409EFF; }
.sup-sort.on { background: #fff; color: #409EFF; box-shadow: 0 1px 4px rgba(23,43,77,.10); }

.sup-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 1400px) { .sup-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 1024px) { .sup-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 720px)  { .sup-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } }

.sup-empty { grid-column: 1 / -1; text-align: center; padding: 60px 20px; color: #98a2b3; }
.sup-empty i { font-size: 34px; opacity: .5; display: block; margin-bottom: 12px; }
.sup-empty p { font-size: 14px; margin: 0; }
.sup-end { text-align: center; padding: 24px 0; color: #a4adba; font-size: 13px; }
.sup-loadmore {
  display: block; margin: 22px auto 0; padding: 11px 34px; border-radius: 999px;
  border: 1px solid #409EFF; background: #fff; color: #409EFF;
  font-size: 14px; font-weight: 600; cursor: pointer; transition: all .16s;
}
.sup-loadmore:hover { background: #409EFF; color: #fff; }
.sup-hl { background: #fff2b8; color: inherit; padding: 0 1px; border-radius: 2px; }

@media (max-width: 720px) {
  .sup-page { padding: 12px 0 34px; }
  .sup-chip { height: 32px; padding: 0 13px; font-size: 13px; }
  .sup-sortbar { margin: 6px 0 12px; }
  .sup-sort { padding: 6px 11px; font-size: 12.5px; }
}

/* ===== 蟹券登记页（#/admin/crab-register，2026-09-08） ===== */
.crab-tabs { display: flex; gap: 8px; flex-wrap: wrap; margin: 4px 0 14px; }
.crab-tab { border: 1px solid var(--line, #e7ddcb); background: #fff; color: var(--ink-soft, #6b5d49);
  height: 32px; padding: 0 14px; border-radius: 999px; font-size: 13px; cursor: pointer; }
.crab-tab.on { background: var(--wine, #8c1c2b); border-color: var(--wine, #8c1c2b); color: #fff; }
.crab-bar { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 10px; font-size: 13.5px; }
.crab-all { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.crab-count { color: var(--ink-soft, #6b5d49); }
.crab-count b { color: var(--wine, #8c1c2b); }
.crab-type { display: inline-block; padding: 1px 7px; border-radius: 4px; font-size: 12px;
  background: #f3ece0; color: #7a5c1e; }
.crab-type.na { background: #f4e3e3; color: #a33; }
.crab-sub { font-size: 12px; color: var(--ink-soft, #6b5d49); margin-top: 2px; }
.crab-addr { font-size: 12.5px; color: var(--ink-soft, #6b5d49); max-width: 260px; line-height: 1.5; }
.crab-codes { font-size: 12px; color: var(--ink-soft, #6b5d49); word-break: break-all; }
.crab-ok { color: #1e7a4a; font-size: 13px; }
.crab-wait { color: #b8860b; font-size: 13px; }
.crab-na { color: #999; font-size: 13px; }
.crab-row-dis { opacity: .55; }
.crab-chk { width: 15px; height: 15px; }

/* ============================================================
   Phase2 渠道认证状态卡片（#/channel/auth）
   ============================================================ */
.ch-auth-card { max-width: 620px; margin: 40px auto; background: #fff; border: 1px solid #ece2d0; border-radius: 16px; padding: 34px 30px; text-align: center; box-shadow: 0 8px 30px rgba(120, 95, 50, .07); }
.ch-auth-card .cha-icon { width: 62px; height: 62px; border-radius: 50%; margin: 0 auto 14px; display: flex; align-items: center; justify-content: center; font-size: 26px; }
.ch-auth-card h3 { margin: 0 0 12px; font-size: 20px; color: #3d3225; }
.ch-auth-card p { color: #6b5d49; line-height: 1.8; font-size: 14px; margin: 8px 0; }
.ch-auth-card .cha-cta { margin-top: 20px; display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.ch-auth-card .cha-meta { margin-top: 10px; font-size: 13.5px; color: #6b5d49; background: #faf6f0; border-radius: 10px; padding: 8px 12px; display: inline-block; }
.ch-auth-card .cha-reason { margin: 12px 0; font-size: 13.5px; color: #b3261e; background: #fdf3f2; border: 1px solid #f5d7d4; border-radius: 10px; padding: 10px 12px; text-align: left; line-height: 1.7; }
.ch-auth-card .cha-hint { font-size: 13px; color: #8a7f6b; }
.ch-auth-card.todo .cha-icon { background: #fff5e0; color: #b8860b; }
.ch-auth-card.wait .cha-icon { background: #eef4ff; color: #2f5bb7; }
.ch-auth-card.ok .cha-icon { background: #eaf7ef; color: #1e7a4a; }
.ch-auth-card.no .cha-icon { background: #fdf1f0; color: #b3261e; }
.ch-auth-card.err .cha-icon { background: #fdf1f0; color: #b3261e; }

/* 渠道子商城首屏 · 品牌标语（brand_info.slogan，由 home.js posterHeroHTML 注入） */
.lx-hero .lx-hero-slogan { text-align: center; margin: 14px auto 0; font-size: 15px; letter-spacing: .5px; color: #6b5d49; font-weight: 600; max-width: 860px; padding: 0 16px; }
body.channel-skin .lx-hero .lx-hero-slogan { color: var(--brand, #8a6d3b); }
@media (max-width: 640px) { .lx-hero .lx-hero-slogan { font-size: 13.5px; margin-top: 10px; } }

/* ============================================================
   #651 渠道端首页选货工具条（渠道角色专享）
   ============================================================ */
.ch-mall-bar {
  background: linear-gradient(135deg, #fffdf8, #fbf4e8);
  border: 1px solid #ecdfc6;
  border-radius: 16px;
  padding: 16px 18px;
  margin: 14px 0 18px;
  box-shadow: 0 6px 22px rgba(120,95,50,.06);
}
.chm-search {
  display: flex; align-items: center; gap: 10px;
  background: #fff; border: 1.5px solid #e3d3b4; border-radius: 999px;
  padding: 10px 16px; margin-bottom: 14px;
}
.chm-search i { color: #b89a5e; font-size: 15px; }
.chm-search input {
  flex: 1; border: 0; outline: 0; background: transparent;
  font-size: 15px; color: #3d3225; min-width: 0;
}
.chm-search input::placeholder { color: #b3a78f; }
.chm-search-btn {
  border: 0; background: linear-gradient(135deg, #c5a572, #a8843f);
  color: #fff; font-size: 13.5px; font-weight: 600;
  padding: 7px 18px; border-radius: 999px; cursor: pointer; white-space: nowrap;
}
.chm-search-btn:active { transform: scale(.97); }

.chm-cats {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px;
  margin-bottom: 14px;
}
.chm-cat {
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  background: #fff; border: 1px solid #efe6d4; border-radius: 12px;
  padding: 12px 6px; text-decoration: none; color: #5b4a33;
  transition: transform .15s, box-shadow .15s, border-color .15s;
}
.chm-cat i { font-size: 20px; color: #b89a5e; }
.chm-cat span { font-size: 12.5px; font-weight: 600; }
.chm-cat:hover {
  transform: translateY(-2px); border-color: #d9c39a;
  box-shadow: 0 8px 20px rgba(120,95,50,.12); text-decoration: none;
}

.chm-banner {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  background: linear-gradient(135deg, #2a1d12, #4a3320);
  color: #f6ecd8; border-radius: 12px; padding: 11px 16px;
}
.chm-banner i { color: #f0c674; font-size: 16px; }
.chm-banner span { flex: 1; font-size: 13.5px; }
.chm-banner span b { color: #ffd98a; }
.chm-price-link {
  color: #ffe2a8; font-size: 13px; font-weight: 600; text-decoration: none;
  white-space: nowrap; display: inline-flex; align-items: center; gap: 4px;
}
.chm-price-link:hover { text-decoration: underline; }

/* 底部订货单悬浮条 */
.ch-order-dock {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 80;
  display: flex; gap: 12px; justify-content: center; align-items: center;
  padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
  background: rgba(255,253,248,.96);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  border-top: 1px solid #ecdfc6;
  box-shadow: 0 -6px 24px rgba(120,95,50,.12);
}
.chd-item, .chd-quick {
  display: inline-flex; align-items: center; gap: 7px;
  text-decoration: none; font-size: 14px; font-weight: 600;
  padding: 11px 22px; border-radius: 999px;
}
.chd-item { color: #5b4a33; background: #fff; border: 1.5px solid #e3d3b4; }
.chd-quick {
  color: #fff; border: 0;
  background: linear-gradient(135deg, #c5a572, #a8843f);
  box-shadow: 0 4px 14px rgba(168,132,63,.4);
}
.chd-quick i { font-size: 14px; }
.chd-quick:active { transform: scale(.97); }

/* 渠道工具条间距适配：给底部 dock 预留空间，避免遮挡商品（仅桌面端，移动端 dock 隐藏） */
@media (min-width: 768px) {
  .mall-body { padding-bottom: 96px; }
  .sup-grid { padding-bottom: 96px; }
}
/* 移动端 ≤767px：底部有站点原生 bottom-tab（快速下单/我的 已覆盖同动线），渠道 dock 隐藏避免双层叠加 */
@media (max-width: 767px) {
  .ch-order-dock { display: none !important; }
}
.sup-page-chbar { margin-top: 14px; }

@media (max-width: 640px) {
  .chm-cats { grid-template-columns: repeat(4, 1fr); gap: 8px; }
  .chm-cat { padding: 10px 4px; }
  .chm-cat i { font-size: 18px; }
  .chm-cat span { font-size: 11.5px; }
  .chm-banner { padding: 10px 12px; }
  .chm-banner span { font-size: 12.5px; }
  .chd-item, .chd-quick { padding: 10px 16px; font-size: 13px; flex: 1; justify-content: center; }
  .ch-order-dock { gap: 8px; }
}
