/* ============================================================
   一度营销 · 活动管理后台
   品牌蓝 #0072FF | 辅色 #FFD218 | 警示红 #FF4D4F
   ============================================================ */
* { margin: 0; padding: 0; box-sizing: border-box; }

/* ---------- 全局细淡滚动条 ---------- */
*::-webkit-scrollbar { width: 3px; height: 3px; }
*::-webkit-scrollbar-track { background: transparent; }
*::-webkit-scrollbar-thumb { background: rgba(0, 0, 0, .08); border-radius: 999px; }
*::-webkit-scrollbar-thumb:hover { background: rgba(0, 0, 0, .16); }
* { scrollbar-width: thin; scrollbar-color: rgba(0, 0, 0, .08) transparent; }
html, body { height: 100%; }
body {
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
  font-size: 14px; color: #333; background: #f5f7fa;
}

/* ---------- 整体布局 ---------- */
.layout { display: flex; min-height: 100vh; }

/* ---------- 左侧导航栏 ---------- */
.sidebar {
  width: 208px; flex: 0 0 208px; background: #fff;
  border-right: 1px solid #EBEDF0; display: flex; flex-direction: column;
}
.side-brand {
  height: 60px; display: flex; align-items: center; gap: 10px;
  padding: 0 18px; border-bottom: 1px solid #F2F3F5; white-space: nowrap;
}
.logo-check {
  display: inline-flex; width: 28px; height: 28px; border-radius: 8px;
  background: linear-gradient(135deg, #0072FF, #3D9BFF); color: #fff; align-items: center; justify-content: center;
  font-size: 15px; flex: 0 0 28px; box-shadow: 0 2px 6px rgba(0, 114, 255, .35);
}
.brand-name { font-weight: 600; font-size: 16px; letter-spacing: .5px; white-space: nowrap; }
.brand-sub { color: #999; font-size: 12px; margin-left: 2px; white-space: nowrap; }

.menu { flex: 1; overflow-y: auto; padding: 10px 12px 16px; }
.menu-group {
  padding: 16px 10px 6px; font-size: 11px; color: #A8AEB8;
  letter-spacing: 2px; font-weight: 500;
}
.menu-group:first-child { padding-top: 4px; }
.menu-item.parent {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 12px; margin: 2px 0; cursor: pointer; color: #3C4043; font-size: 14px;
  border-radius: 8px; transition: background .15s, color .15s;
}
.menu-item.parent:hover { background: #F5F7FA; color: #0072FF; }
.menu-item.parent.active {
  color: #0072FF; font-weight: 600; background: #EAF4FF;
}
.menu-item.parent.active .g-name { color: #0072FF; }
.menu-item.parent.active .menu-ico { transform: scale(1.08); }
.menu-ico { width: 20px; text-align: center; font-size: 16px; transition: transform .15s; }

.side-foot {
  border-top: 1px solid #F2F3F5; padding: 12px 16px; color: #A8AEB8; font-size: 12px;
  line-height: 1.9; white-space: nowrap;
}

/* ---------- 右侧主区域 ---------- */
.main { flex: 1; display: flex; flex-direction: column; min-width: 0; }

/* 顶部品牌栏 */
.topbar {
  height: 56px; background: #fff; border-bottom: 1px solid #E8E8E8;
  display: flex; align-items: center; padding: 0 20px; gap: 24px; position: sticky; top: 0; z-index: 20;
}
.top-brand { display: flex; align-items: center; gap: 6px; white-space: nowrap; cursor: pointer; }
.top-brand:hover .brand-name { color: #0072FF; }
.top-right { margin-left: auto; display: flex; align-items: center; gap: 12px; white-space: nowrap; }
.user { display: inline-flex; align-items: center; gap: 4px; cursor: pointer; font-size: 13px; color: #333; padding: 4px 10px; border-radius: 6px; }
.user:hover { color: #0072FF; background: #f2f7f8; }

/* ---------- 主内容区 ---------- */
.content { flex: 1; padding: 20px 24px; overflow-y: auto; }
.page-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.page-title { font-size: 20px; font-weight: 600; }
.crumb { font-size: 12px; color: #999; margin-top: 4px; }
.page-head .actions { display: flex; gap: 10px; align-items: center; }

/* ---------- 大号药丸按钮（新建活动） ---------- */
.btn-pill {
  display: inline-flex; align-items: center; gap: 6px;
  background: #0072FF; color: #fff; border: none; border-radius: 999px;
  padding: 12px 30px; font-size: 16px; font-weight: 600; cursor: pointer;
  box-shadow: 0 4px 12px rgba(0, 114, 255, .35); transition: all .2s; user-select: none;
}
.btn-pill:hover { background: #0058c9; transform: translateY(-1px); box-shadow: 0 6px 16px rgba(0, 114, 255, .42); }
.btn-pill:active { transform: scale(.97); }

/* ---------- 卡片 ---------- */
.card {
  background: #fff; border: 1px solid #E8E8E8; border-radius: 8px;
  padding: 18px 20px; margin-bottom: 16px;
}
.card-title { font-size: 15px; font-weight: 600; margin-bottom: 12px; display: flex; align-items: center; gap: 8px; }

/* ---------- 按钮 ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 4px;
  padding: 7px 16px; border-radius: 6px; font-size: 13px; cursor: pointer; border: 1px solid transparent;
  transition: all .15s; user-select: none; white-space: nowrap;
}
.btn:active { transform: scale(.97); }
.btn-green { background: #0072FF; color: #fff; border-color: #0072FF; }
.btn-green:hover { background: #0058c9; }
.btn-gray { background: #fff; color: #555; border-color: #E8E8E8; }
.btn-gray:hover { border-color: #0072FF; color: #0072FF; }
.btn-danger { background: #fff; color: #FF4D4F; border-color: #FF4D4F; }
.btn-danger:hover { background: #fff2f0; }
.btn-sm { padding: 3px 10px; font-size: 12px; }

/* ---------- 状态筛选 Tab ---------- */
.filter-tabs { display: flex; align-items: center; }
.filter-tab {
  padding: 7px 18px; font-size: 13px; line-height: 1.2;
  border: 1px solid #D8DCE3; background: #fff; color: #555;
  cursor: pointer; user-select: none; transition: all .15s; white-space: nowrap;
}
.filter-tab + .filter-tab { margin-left: -1px; }
.filter-tab:first-child { border-radius: 6px 0 0 6px; }
.filter-tab:last-child { border-radius: 0 6px 6px 0; }
.filter-tab:hover { color: #0072FF; background: #F2F7F8; }
.filter-tab.active {
  background: #0072FF; color: #fff; border-color: #0072FF;
  font-weight: 600; position: relative; z-index: 1;
}

/* ---------- 活动状态标签 ---------- */
.act-tag { display: inline-block; font-size: 11px; padding: 2px 8px; border-radius: 999px; margin-left: 8px; vertical-align: 2px; font-weight: 400; }
.act-tag.ongoing { background: #E6F7FF; color: #0072FF; }
.act-tag.done { background: #F2F7F8; color: #8A8F99; }
.act-tag.deleted { background: #FFF2F0; color: #FF4D4F; }

/* ---------- 活动列表卡片 ---------- */
.act-list { display: flex; flex-direction: column; gap: 12px; }
.act-card {
  display: flex; align-items: center; background: #fff; border: 1px solid #E8EBF0;
  border-radius: 12px; overflow: hidden;
  transition: box-shadow .2s, transform .15s, border-color .2s; position: relative;
}
.act-card:hover { box-shadow: 0 6px 20px rgba(31, 56, 102, .10); transform: translateY(-2px); border-color: #DCE3EC; }
.act-thumb {
  width: 156px; height: 117px; flex: 0 0 156px; margin: 14px 0 14px 14px;
  border-radius: 8px; overflow: hidden; background: #F0F2F5;
  display: flex; align-items: center; justify-content: center; position: relative;
}
.act-thumb-img { width: 100%; height: 100%; object-fit: cover; display: block; }
.act-thumb-ph { font-size: 34px; opacity: .45; }

.act-main { flex: 1; min-width: 0; padding: 14px 16px 14px 18px; display: flex; flex-direction: column; gap: 10px; }
.act-top { display: flex; align-items: baseline; gap: 10px; min-width: 0; }
.act-title { font-size: 15px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.act-code {
  font-size: 12px; color: #0072FF; background: #EAF4FF; border-radius: 6px;
  padding: 2px 8px; font-weight: 600; flex: 0 0 auto;
}
.act-meta { color: #8A8F99; font-size: 12px; margin-left: auto; flex: 0 0 auto; white-space: nowrap; }

/* 数据展示区：销售业绩主指标 + 副指标一行 */
.act-stats-row { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.act-hero { display: flex; align-items: baseline; gap: 10px; padding-right: 26px; border-right: 1px solid #EEF0F4; }
.act-hero-label { font-size: 12px; color: #8A8F99; }
.act-hero-num { font-size: 26px; font-weight: 700; color: #1F2329; font-variant-numeric: tabular-nums; letter-spacing: .5px; }
.act-hero-num::first-letter { color: #0072FF; }
.act-stat { display: flex; align-items: baseline; gap: 6px; }
.act-stat-num { font-size: 16px; font-weight: 600; color: #1F2329; font-variant-numeric: tabular-nums; }
.act-stat-label { font-size: 12px; color: #9AA3AE; }

/* 底部操作区：功能按钮靠左、编辑删除靠右 */
.act-bottom { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 2px; }
.act-feats { display: flex; flex-wrap: wrap; gap: 8px; }
.act-ops { display: flex; gap: 8px; align-items: center; margin-left: auto; flex: 0 0 auto; }

/* 药丸按钮统一 */
.pill {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 5px 12px; border-radius: 999px; font-size: 12px; line-height: 1.4;
  cursor: pointer; border: 1px solid transparent; transition: all .15s; user-select: none; white-space: nowrap;
}
.pill:active { transform: scale(.96); }
.pill-feat { background: #F5F7FA; color: #4A4E57; border-color: #E8EBF0; }
.pill-feat:hover { background: #EAF4FF; color: #0072FF; border-color: #B8DCFF; }
.pill-blue { background: #0072FF; color: #fff; border-color: #0072FF; }
.pill-blue:hover { background: #0058C9; }
.pill-blue-line { background: #fff; color: #0072FF; border-color: #0072FF; }
.pill-blue-line:hover { background: #EAF4FF; }
.pill-red { background: #fff; color: #FF4D4F; border-color: #FFD6D6; }
.pill-red:hover { background: #FFF2F0; border-color: #FF4D4F; }
.pill-danger { background: #FF4D4F; color: #fff; border-color: #FF4D4F; }
.pill-danger:hover { background: #E63B3D; }
.pill-gray { background: #fff; color: #666; border-color: #D8DCE3; }
.pill-gray:hover { border-color: #0072FF; color: #0072FF; }

.act-card.confirming { border-color: #FF4D4F; box-shadow: 0 0 0 2px rgba(255, 77, 79, .15); }
.act-card.confirming .act-bottom { background: #fff2f0; border-radius: 0 0 12px 12px; }
.empty-tip { color: #999; font-size: 13px; padding: 20px; text-align: center; }

/* ---------- 空状态 ---------- */
.empty-state { padding: 48px 20px; text-align: center; }
.empty-ico { font-size: 44px; margin-bottom: 12px; }
.empty-title { font-size: 16px; font-weight: 600; color: #555; margin-bottom: 6px; }
.empty-sub { font-size: 13px; color: #999; }

/* ---------- Toast ---------- */
.toast-wrap { position: fixed; top: 68px; left: 50%; transform: translateX(-50%); z-index: 100; display: flex; flex-direction: column; gap: 8px; align-items: center; }
.toast {
  background: rgba(0, 0, 0, .8); color: #fff; border-radius: 6px; padding: 10px 18px;
  font-size: 13px; box-shadow: 0 4px 14px rgba(0, 0, 0, .18); animation: toastIn .25s ease;
  max-width: 420px; text-align: center;
}
.toast.ok { border-left: 3px solid #0072FF; }
.toast.err { border-left: 3px solid #FF4D4F; }
@keyframes toastIn { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } }

/* ============ 编辑活动（活动前端结构）品牌蓝 #0072FF / 辅色 #FFD218 ============ */
.front-wrap { display: flex; gap: 18px; align-items: flex-start; }
.front-edit { flex: 1 1 auto; min-width: 0; margin-right: calc(42vw + 42px); }
/* ---------- 编辑页顶部药丸设置标签 ---------- */
.fe-tabs { display: flex; flex-wrap: nowrap; gap: 6px; margin-bottom: 14px; max-width: 100%; overflow-x: auto; }
.fe-tab { border: none; outline: none; cursor: pointer; font-size: 12px; line-height: 1; padding: 8px 12px; white-space: nowrap; border-radius: 999px; background: #F0F1F3; color: #555; transition: background .15s, color .15s; flex: 0 0 auto; }
.fe-tab:hover { background: #E6E8EB; }
.fe-tab.active { background: #0072FF; color: #fff; }
.fe-panel-title { font-size: 15px; font-weight: 600; margin-bottom: 8px; }
.fe-panel-empty { font-size: 13px; color: #BBB; }
.front-preview {
  position: fixed; top: 76px; right: 24px; bottom: 20px;
  width: 42vw; min-width: 340px; z-index: 10;
  display: flex; flex-direction: column;
}
.preview-note { color: #999; font-size: 12px; margin: 6px 0 10px; flex: none; }
.preview-host { flex: 1 1 auto; overflow: hidden; min-height: 0; display: flex; flex-direction: column; }
.phone-frame {
  width: 340px; max-width: 100%; flex: 1 1 auto; min-height: 0; margin: 0 auto; background: #fff;
  border: 1px solid #E8E8E8; border-radius: 18px; overflow: hidden;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .08);
  display: flex; flex-direction: column;
  position: relative;
}
.front-scroll { flex: 1; min-height: 0; overflow-y: auto; overflow-x: hidden; -webkit-overflow-scrolling: touch; }
.front-top {
  background: #F7F8FA;
  color: #1a1a1a;
  padding: 14px 0 0;
  border-bottom: none;
  position: sticky;
  top: 0;
  z-index: 10;
}
.front-title { font-size: 13px; font-weight: 500; line-height: 1.4; margin: 0 12px 6px; color: #333; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.front-marquee {
  overflow: hidden; white-space: nowrap; color: #fff; font-size: 11px;
  height: 26px; line-height: 24px;
  background-color: #33373D;
  background-image: radial-gradient(circle, rgba(255, 255, 255, .16) 1px, transparent 1.3px);
  background-size: 9px 9px;
  border-radius: 0;
  padding: 0; box-sizing: border-box;
}
.front-marquee .marquee-track { display: inline-block; padding-left: 100%; animation: marqueeMove 12s linear infinite; }
@keyframes marqueeMove { 0% { transform: translateX(0); } 100% { transform: translateX(-100%); } }
/* 购买弹幕滚动框（绝对定位叠加在头图之上，像视频弹幕浮动滚动，无卡片底） */
.front-danmu {
  position: absolute; left: 12px; top: 12px;
  width: fit-content;
  height: 90px;
  overflow: hidden;
  pointer-events: none;
  z-index: 2;
}
.danmu-viewport {
  height: 100%;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 1) 30%, rgba(0, 0, 0, 1) 70%, rgba(0, 0, 0, 0) 100%);
  mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 1) 30%, rgba(0, 0, 0, 1) 70%, rgba(0, 0, 0, 0) 100%);
}
.danmu-track {
  display: flex; flex-direction: column; gap: 6px;
  animation: danmuUp 14s linear infinite;
  will-change: transform;
}
.danmu-item {
  flex: 0 0 auto; display: flex; align-items: center; gap: 6px;
  height: 26px; padding: 0 10px; box-sizing: border-box;
  font-size: 11px; color: #fff; white-space: nowrap;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.45), 0 0 3px rgba(0, 0, 0, 0.35);
}
.danmu-avatar { width: 18px; height: 18px; border-radius: 50%; flex: 0 0 auto; box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.7); }
.danmu-nick {
  display: inline-block; max-width: 6em;
  color: #fff; font-weight: 500;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.danmu-succ { color: #FFD218; margin-left: -4px; }
@keyframes danmuUp {
  0% { transform: translateY(0); }
  100% { transform: translateY(calc(-100% + 90px)); }
}
.front-hero { display: block; position: relative; overflow: hidden; background: #f2f4f8; min-height: 120px; color: #999; font-size: 13px; text-align: center; margin-right: 0; }
.front-hero .no-img { display: flex; align-items: center; justify-content: center; min-height: 120px; }
.front-hero img { width: 100%; height: auto; display: block; }
.front-countdown {
  display: flex; align-items: center; justify-content: center;
  gap: 4px; flex-wrap: nowrap;
  margin: 12px 12px 0; padding: 12px 10px;
  border-radius: 16px;
  background: linear-gradient(135deg, #005FD6 0%, #0072FF 45%, #2E8CFF 100%);
  box-shadow: 0 10px 24px rgba(0, 114, 255, .28), inset 0 1px 0 rgba(255, 255, 255, .28);
  position: relative;
}
.front-countdown::before {
  content: ''; position: absolute; left: 14px; right: 14px; top: 0; height: 3px;
  border-radius: 0 0 3px 3px;
  background: linear-gradient(90deg, rgba(255, 210, 24, 0) 0%, #FFD218 30%, #FFE36B 50%, #FFD218 70%, rgba(255, 210, 24, 0) 100%);
}
.front-countdown::after {
  content: ''; position: absolute; left: 50%; top: -16px; width: 64px; height: 32px;
  transform: translateX(-50%); border-radius: 50%;
  background: radial-gradient(closest-side, rgba(255, 210, 24, .5), rgba(255, 210, 24, 0));
  pointer-events: none;
}
.front-countdown .cd-label {
  color: #FFD218; font-weight: 800; font-size: 12px; letter-spacing: 1px;
  background: rgba(255, 210, 24, .16); border: 1px solid rgba(255, 210, 24, .55);
  padding: 4px 10px; border-radius: 999px; white-space: nowrap;
  box-shadow: 0 2px 6px rgba(0, 0, 0, .18);
  flex: 0 0 auto;
}
.cd-item {
  background: linear-gradient(180deg, #FFFFFF 0%, #EAF3FF 100%);
  color: #0072FF; border-radius: 10px;
  padding: 6px 5px; font-size: 14px; font-weight: 800;
  min-width: 28px; text-align: center;
  flex: 0 1 auto;
  border: 1px solid rgba(255, 255, 255, .9);
  box-shadow: 0 4px 10px rgba(0, 48, 130, .35), inset 0 1px 0 #FFFFFF;
  font-variant-numeric: tabular-nums;
}
.cd-sep {
  color: #FFD218; font-weight: 800; font-size: 12px;
  min-width: 12px; text-align: center;
  text-shadow: 0 1px 4px rgba(0, 0, 0, .3);
  flex: 0 0 auto;
}
@media (max-width: 420px) {
  .front-countdown { gap: 3px; padding: 10px 6px; margin: 10px 10px 0; }
  .front-countdown .cd-label { font-size: 11px; padding: 3px 8px; }
  .cd-item { min-width: 26px; padding: 5px 4px; font-size: 13px; }
  .cd-sep { font-size: 11px; min-width: 10px; }
}
.front-stats { display: flex; padding: 10px 12px 4px; gap: 8px; }
.stat-card {
  flex: 1; text-align: center; background: #F7F8FA;
  border-radius: 8px; padding: 8px 4px 7px;
  border: 1px solid #EDEFF3;
}
.stat-card .stat-num { color: #3D4452; font-size: 16px; font-weight: 700; line-height: 1.2; font-variant-numeric: tabular-nums; }
.stat-card .stat-label { color: #A2A8B3; font-size: 11px; margin-top: 2px; }
.front-buyers { margin: 14px 12px 18px; padding: 0; }
.buyers-row { display: flex; flex-wrap: wrap; row-gap: 14px; align-items: center; }
.buyers-row .avatar-item { width: 20%; flex: 0 0 20%; gap: 2px; }
.buyers-row .avatar-circle {
  width: 38px; height: 38px; font-size: 14px;
  box-shadow: 0 0 0 2px #FFFFFF, 0 0 0 3px #0072FF;
}
.buyers-row .avatar-name { font-size: 12px; color: #4E5566; max-width: 56px; }
.avatar-item { display: flex; flex-direction: column; align-items: center; width: 56px; gap: 3px; }
.avatar-circle { width: 38px; height: 38px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: #F0F2F5; color: #8A8F99; font-weight: 700; font-size: 15px; }
.avatar-name { font-size: 11px; color: #666; max-width: 56px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.front-detail { padding: 0 12px 4px; margin-right: 0; }
.detail-block { margin-bottom: 12px; }
.detail-title { position: relative; font-size: 16px; font-weight: 700; color: #1F2329; margin-bottom: 6px; padding-left: 10px; }
.detail-title::before { content: ''; position: absolute; left: 0; top: 3px; bottom: 3px; width: 4px; border-radius: 2px; background: #0072FF; }
.detail-img { width: 100%; border-radius: 0; margin-bottom: 6px; }
.detail-img img { width: calc(100% + 24px) !important; min-width: calc(100% + 24px); height: auto; border-radius: 0; display: block; margin-left: -12px !important; }
.detail-text { color: #4E5566; font-size: 14px; line-height: 1.7; white-space: pre-wrap; }
.detail-text img { width: calc(100% + 24px) !important; min-width: calc(100% + 24px); height: auto; display: block; margin: 0 -12px !important; padding: 0; border: 0; border-radius: 0; object-fit: cover; }
.detail-text video { width: 100%; border-radius: 6px; }
.detail-text audio { width: 100%; border-radius: 6px; }
.detail-text a { color: #0072FF; }
.detail-text table { width: 100%; border-collapse: collapse; margin: 4px 0; }
.detail-text td { border: 1px solid #E8E8E8; padding: 4px 6px; min-width: 40px; }
.detail-text ul, .detail-text ol { padding-left: 20px; margin: 4px 0; }
.detail-text sub, .detail-text sup { line-height: 0; }
.front-bottom {
  flex: 0 0 auto; background: #fff;
  border-top: 1px solid #E8E8E8; display: flex; align-items: center; padding: 8px 10px; gap: 8px;
}
.front-bottom .fb-btn {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  flex: 0 0 auto; width: 50px; color: #555; font-size: 11px;
  background: none; border: none; cursor: pointer; gap: 2px;
}
.front-bottom .fb-btn .fb-ico { width: 22px; height: 22px; display: inline-flex; align-items: center; justify-content: center; }
.front-bottom .fb-btn .fb-ico svg { width: 20px; height: 20px; fill: none; stroke: #333; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.front-bottom .fb-btn:hover { color: #0072FF; }
.front-bottom .fb-btn:hover .fb-ico svg { stroke: #0072FF; }
.front-bottom .fb-btn-big {
  flex: 1; min-width: 0; height: 40px; border: none; border-radius: 22px;
  font-size: 15px; font-weight: 700; color: #fff; cursor: pointer; white-space: nowrap;
  transition: filter .15s, transform .1s;
}
.front-bottom .fb-btn-big:active { transform: scale(.97); }
.front-bottom .fb-poster { background: linear-gradient(135deg, #FFC400, #FFAD00); box-shadow: 0 4px 10px rgba(255, 173, 0, .32); }
.front-bottom .fb-poster:hover { filter: brightness(1.06); }
.front-bottom .fb-buy { background: linear-gradient(135deg, #0072FF, #3D8BFF); box-shadow: 0 4px 10px rgba(0, 114, 255, .32); animation: fbBuyBreathe 1.8s ease-in-out infinite; }
.front-bottom .fb-buy:hover { filter: brightness(1.04); }
.front-bottom .fb-btn-big.fb-buy:active { animation: none; transform: scale(.97); }
@keyframes fbBuyBreathe { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.03); } }

/* ---------- 编辑表单 ---------- */
.fe-item { margin-bottom: 12px; }
.fe-label { display: block; font-size: 13px; color: #555; margin-bottom: 5px; font-weight: 600; }
.fe-label .fe-sub { color: #999; font-weight: 400; }
.fe-input, .fe-textarea { width: 100%; border: 1px solid #E8E8E8; border-radius: 6px; padding: 7px 10px; font-size: 13px; box-sizing: border-box; outline: none; }
.fe-select { width: 100%; border: 1px solid #E8E8E8; border-radius: 6px; padding: 7px 10px; font-size: 13px; box-sizing: border-box; outline: none; background: #fff; color: #333; cursor: pointer; }
.fe-select:focus { border-color: #0072FF; box-shadow: 0 0 0 2px rgba(0, 114, 255, .12); }
.fe-input:focus, .fe-textarea:focus { border-color: #0072FF; box-shadow: 0 0 0 2px rgba(0, 114, 255, .12); }
.fe-input:disabled { background: #F2F4F6; color: #B0B6BF; cursor: not-allowed; }

/* ---------- 分销佣金开关（商品设置面板） ---------- */
.fe-switch-row { display: flex; align-items: center; margin: 2px 0 8px; }
.fe-switch-input { display: none; }
.fe-switch { position: relative; display: inline-block; width: 40px; height: 22px; border-radius: 11px; background: #D7DCE3; cursor: pointer; transition: background .25s ease, box-shadow .25s ease; flex: none; }
.fe-switch::after { content: ''; position: absolute; top: 2px; left: 2px; width: 18px; height: 18px; border-radius: 50%; background: #FFF; box-shadow: 0 1px 2px rgba(0, 0, 0, .18); transition: left .25s cubic-bezier(.4, 0, .2, 1), box-shadow .25s ease; }
.fe-switch-input:checked + .fe-switch { background: #0057E0; box-shadow: 0 0 0 3px rgba(0, 114, 255, .18); }
.fe-switch-input:checked + .fe-switch::after { left: 20px; box-shadow: 0 2px 5px rgba(0, 0, 0, .35); }
.fe-switch-text { margin-left: 8px; font-size: 12px; color: #8A94A6; }
.fe-switch-input:checked + .fe-switch + .fe-switch-text { color: #0057E0; }
.fe-textarea { min-height: 64px; resize: vertical; }
.fe-row { display: flex; gap: 8px; align-items: center; }
.fe-row .fe-input {
  flex: 1; min-width: 0; background: #F5F7FA; text-align: center;
  font-weight: 600; color: #0072FF; border-radius: 8px;
}
.fe-row .fe-input::placeholder { color: #A0A6B2; font-weight: 400; }
.fe-row .fe-input:focus { background: #FFFFFF; }
.fe-hint { margin-top: 8px; font-size: 12px; line-height: 1.5; color: #A0A6B2; font-weight: 400; }
.hero-upload { position: relative; width: 33.3333%; aspect-ratio: 3 / 4; border: 1px dashed #C9D4E0; border-radius: 8px; display: flex; align-items: center; justify-content: center; background: #F7F9FB; cursor: pointer; overflow: hidden; box-sizing: border-box; transition: border-color .15s; }
.hero-upload:hover { border-color: #0072FF; }
.hero-upload.has-img { border-style: solid; background: #FFF; }
.hero-upload-empty { font-size: 13px; color: #9AA5B1; text-align: center; line-height: 1.6; padding: 0 6px; }
.hero-upload-empty::before { content: '＋'; display: block; font-size: 28px; color: #B9C4CE; margin-bottom: 4px; }
.hero-upload-img { width: 100%; height: 100%; object-fit: contain; display: block; }
.hero-upload-del { position: absolute; top: 6px; right: 6px; width: 22px; height: 22px; line-height: 20px; text-align: center; border: none; border-radius: 50%; background: rgba(0, 0, 0, .55); color: #FFF; font-size: 14px; cursor: pointer; z-index: 1; }
.hero-upload-del:hover { background: rgba(0, 0, 0, .75); }
.hero-upload.qr-box { width: 33.3333%; aspect-ratio: 1 / 1; }
.hero-upload.goods-box { width: 62%; aspect-ratio: 8 / 3; }
.hero-upload.goods-box .hero-upload-img { object-fit: cover; }
.goods-img-tip { margin-top: 8px; font-size: 12px; color: #8A94A6; text-align: left; }

/* ---------- 客服弹层（活动预览区底部「客服」按钮） ---------- */
.kf-mask { position: absolute; left: 0; top: 0; right: 0; bottom: 0; background: rgba(15, 23, 42, .45); display: flex; align-items: center; justify-content: center; z-index: 20; }
.kf-card { width: 78%; max-width: 272px; background: #fff; border-radius: 18px; overflow: hidden; box-shadow: 0 12px 32px rgba(15, 23, 42, .18); }
.kf-card-head { display: flex; align-items: center; justify-content: space-between; padding: 12px 14px; border-bottom: 1px solid #F0F1F3; }
.kf-card-title { font-size: 15px; font-weight: 700; color: #1F2733; }
.kf-card-title::before { content: ''; display: inline-block; width: 4px; height: 14px; border-radius: 2px; background: #0072FF; margin-right: 7px; vertical-align: -2px; }
.kf-close { width: 26px; height: 26px; border: none; background: #F4F5F7; border-radius: 50%; color: #888; font-size: 16px; line-height: 1; cursor: pointer; }
.kf-close:hover { background: #E8E9EC; color: #333; }
.kf-card-body { padding: 6px 14px 14px; }
.kf-row { display: flex; padding: 10px 0; border-bottom: 1px solid #F5F6F8; }
.kf-row:last-child { border-bottom: none; }
.kf-row-label { flex: 0 0 64px; font-size: 13px; color: #888; }
.kf-row-val { flex: 1; min-width: 0; font-size: 13px; color: #1F2733; word-break: break-all; }
.kf-tel { color: #0072FF; text-decoration: none; font-weight: 600; }
.kf-empty { color: #B0B6BF; }

/* ---------- 商品弹层（活动预览区底部「立即抢购」按钮） ---------- */
.buy-card-body { padding: 12px 14px 16px; }
/* C端购买弹窗限高：卡片最高 88vh，头部与底部固定，中间内容内部滚动 */
.kf-mask.buy-mask .buy-card { display: flex; flex-direction: column; max-height: 88vh; max-height: min(88vh, calc(100% - 24px)); }
.kf-mask.buy-mask .buy-card .kf-card-head { flex: 0 0 auto; }
.kf-mask.buy-mask .buy-card .buy-card-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; overflow-x: hidden; scrollbar-width: thin; scrollbar-color: rgba(0, 0, 0, .16) transparent; }
.kf-mask.buy-mask .buy-card .buy-card-body::-webkit-scrollbar { width: 5px; }
.kf-mask.buy-mask .buy-card .buy-card-body::-webkit-scrollbar-thumb { background: rgba(0, 0, 0, .16); border-radius: 999px; }
.kf-mask.buy-mask .buy-card .buy-card-body::-webkit-scrollbar-track { background: transparent; }
.kf-mask.buy-mask .buy-card .buy-foot { flex: 0 0 auto; }
.buy-img-box { margin: -12px -19px 0 -14px; width: auto; aspect-ratio: 8 / 3; border-radius: 0; overflow: hidden; background: #F7F8FA; display: flex; align-items: center; justify-content: center; }
.buy-img-box.buy-img-empty { font-size: 12px; color: #B0B6BF; }
.buy-img { width: 100%; height: 100%; object-fit: cover; display: block; }
.buy-title { margin-top: 12px; font-size: 13px; font-weight: 400; color: #1F2733; line-height: 1.5; }
.buy-price { margin-top: 6px; font-size: 22px; font-weight: 700; color: #0072FF; line-height: 1.2; }
.buy-price .kf-empty { font-size: 13px; font-weight: 400; }
.buy-commission { margin-top: 10px; padding-top: 10px; border-top: 1px dashed #EDF0F3; font-size: 12px; color: #8A94A6; }
.buy-commission .kf-empty { color: #B0B6BF; }
.buy-foot { margin-top: 14px; padding-top: 14px; border-top: 1px solid #F0F1F3; }
.buy-foot .btn { width: 100%; padding: 10px 16px; font-size: 14px; }
/* 可多选：商品复选列表 + 合计金额 */
.buy-multi-list { display: flex; flex-direction: column; gap: 8px; }
.buy-multi-item { display: flex; align-items: center; gap: 10px; padding: 8px; border: 1px solid #EDF0F3; border-radius: 8px; cursor: pointer; }
.buy-multi-check { width: 16px; height: 16px; flex: 0 0 auto; accent-color: #0072FF; }
.buy-multi-img { width: 44px; height: 24px; object-fit: cover; border-radius: 4px; flex: 0 0 auto; background: #F7F8FA; display: flex; align-items: center; justify-content: center; font-size: 10px; color: #B0B6BF; }
.buy-multi-img-empty { width: 44px; height: 24px; }
.buy-multi-info { display: flex; flex-direction: column; min-width: 0; }
.buy-multi-title { font-size: 13px; font-weight: 400; color: #1F2733; line-height: 1.4; word-break: break-all; }
.buy-multi-price { margin-top: 2px; font-size: 14px; font-weight: 700; color: #0072FF; }
.buy-total-row { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.buy-total-label { font-size: 13px; color: #8A94A6; }
.buy-total-price { font-size: 18px; font-weight: 700; color: #E34D59; }
.kf-row-qr { justify-content: center; padding: 14px 0 12px; }
/* 二维码为真实 img，样式不拦截长按识别：不设 touch-callout/user-select/pointer-events 限制 */
.kf-qrcode-img { width: 132px; height: 132px; object-fit: contain; display: block; border: 1px solid #EEF0F3; border-radius: 12px; background: #FFF; pointer-events: auto; -webkit-touch-callout: default; }
.detail-edit-item { border: 1px solid #E8E8E8; border-radius: 8px; padding: 10px; margin-bottom: 10px; background: #FAFAFA; }
.detail-edit-item .fe-input { margin-bottom: 6px; }
.fe-actions { margin-top: 8px; display: flex; gap: 8px; }
/* 编辑页底部操作栏：悬浮固定在内容区左下角（避开 208px 左侧导航），低于全屏弹层遮罩，高于页面内容 */
.fe-savebar {
  position: fixed;
  left: calc(208px + 16px);
  bottom: 16px;
  z-index: 25;
  margin: 0;
}

/* ---------- 富文本编辑器（图文详情，图2 三行工具栏） ---------- */
.rte-wrap { border: 1px solid #E8E8E8; border-radius: 8px; background: #FFF; overflow: hidden; }
.rte-toolbar { background: #FAFBFC; border-bottom: 1px solid #EFF1F4; }
.rte-row { display: flex; align-items: center; gap: 2px; padding: 4px 6px; flex-wrap: wrap; }
.rte-row + .rte-row { border-top: 1px solid #F0F1F3; }
.rte-btn { display: inline-flex; align-items: center; justify-content: center; min-width: 28px; height: 26px; padding: 0 6px; border: 0; background: transparent; border-radius: 5px; color: #2B3140; font-size: 13px; font-weight: 700; cursor: pointer; gap: 3px; user-select: none; }
.rte-btn:hover { background: #E8F1FF; color: #0072FF; }
.rte-btn.active, .rte-btn:active { background: #D0E4FF; color: #0056D6; }
.rte-btn svg { width: 15px; height: 15px; fill: currentColor; stroke: currentColor; }
.rte-btn svg path { fill: currentColor; }
.rte-btn[data-cmd="source"] { color: #1F2733; }
.rte-btn[data-cmd="insertDiv"] { color: #1F2733; }
.rte-btn .rte-label { font-size: 12px; }
.rte-strong { font-weight: 700; }
.rte-italic { font-style: italic; }
.rte-strike { text-decoration: line-through; }
.rte-btn sub, .rte-btn sup { font-size: 10px; }
.rte-divider { width: 1px; height: 16px; background: #E4E6EB; margin: 0 4px; flex: 0 0 auto; }
.rte-select { height: 26px; border: 1px solid #D8DCE3; border-radius: 5px; background: #FFF; color: #2B3140; font-size: 12px; font-weight: 700; padding: 0 4px; outline: none; cursor: pointer; }
.rte-select:hover, .rte-select:focus { border-color: #0072FF; color: #0072FF; }
.rte-color-btn { position: relative; }
.rte-color-btn input[type="color"] { position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none; }
.rte-color-a { font-weight: 700; }
.rte-color-bar { position: absolute; left: 5px; right: 5px; bottom: 3px; height: 2px; border-radius: 1px; }
.rte-color-fg .rte-color-bar { background: #333; }
.rte-color-bg .rte-color-bar { background: #FFD218; }
.rte-area { min-height: 120px; max-height: none; overflow-y: visible; padding: 10px 12px; font-size: 14px; line-height: 1.7; color: #333; outline: none; }
.rte-area:focus { box-shadow: inset 0 0 0 2px rgba(0, 114, 255, .12); }
.rte-area:empty::before { content: attr(data-placeholder); color: #A0A6B2; pointer-events: none; }
.rte-area img { max-width: 100%; display: block; margin: 0; padding: 0; border: 0; border-radius: 0; }
.rte-area video { width: 100%; border-radius: 6px; }
.rte-area audio { width: 100%; border-radius: 6px; }
.rte-area a { color: #0072FF; }
.rte-area table { width: 100%; border-collapse: collapse; margin: 4px 0; }
.rte-area td { border: 1px solid #E4E6EB; padding: 4px 6px; min-width: 40px; }
.rte-area ul, .rte-area ol { padding-left: 20px; margin: 4px 0; }
.rte-source-area { display: none; width: 100%; min-height: 120px; max-height: none; border: 0; padding: 10px 12px; font-family: Menlo, Consolas, monospace; font-size: 12px; line-height: 1.6; color: #333; resize: vertical; outline: none; box-sizing: border-box; }
.rte-source-area:focus { box-shadow: inset 0 0 0 2px rgba(0, 114, 255, .12); }
/* 全屏编辑 */
.detail-edit-item.rte-fs { position: fixed; inset: 0; z-index: 999; background: #FFF; padding: 14px 18px; margin: 0; border: 0; border-radius: 0; display: flex; flex-direction: column; }
.detail-edit-item.rte-fs .fe-input { max-width: 520px; }
.detail-edit-item.rte-fs .rte-wrap { flex: 1; display: flex; flex-direction: column; }
.detail-edit-item.rte-fs .rte-toolbar { flex: 0 0 auto; }
.detail-edit-item.rte-fs .rte-area, .detail-edit-item.rte-fs .rte-source-area { flex: 1; min-height: 0; max-height: none; }
.detail-edit-item.rte-fs .fe-actions { flex: 0 0 auto; }

@media (max-width: 1100px) {
  .act-stats-row { gap: 16px; }
  .act-hero { padding-right: 16px; }
  .front-wrap { flex-direction: column-reverse; }
  .front-edit { margin-right: 0; }
  .front-preview { position: static; flex: 1 1 auto; width: 100%; max-height: 480px; }
  .phone-frame { width: 100%; }
}

/* ============================================================
   海报设置面板（编辑活动页 poster tab）
   ============================================================ */
.poster-wrap { display: flex; flex-direction: column; gap: 18px; }
.poster-phone { flex: 0 0 auto; align-self: center; }
.poster-phone-title { font-size: 14px; font-weight: 600; color: #333; margin-bottom: 8px; text-align: center; }
.poster-phone-frame { width: 250px; aspect-ratio: 720 / 1280; background: #FFF; overflow: hidden; position: relative; box-sizing: border-box; }
.poster-stage { position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; background: #E8EEF5; }
.poster-stage-bg { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.poster-drag { position: absolute; display: flex; align-items: center; justify-content: center; box-sizing: border-box; cursor: grab; user-select: none; color: #FFF; font-size: 13px; font-weight: 600; text-align: center; white-space: nowrap; line-height: 1; border: 2px dashed rgba(255, 255, 255, .92); background: rgba(0, 114, 255, .38); box-shadow: 0 0 0 2px rgba(0, 114, 255, .28); overflow: hidden; }
.poster-drag:hover { cursor: grabbing; box-shadow: 0 0 0 3px rgba(0, 114, 255, .65); }
.poster-stage-bg-del { position: absolute; top: 8px; right: 8px; z-index: 5; width: 24px; height: 24px; border: none; border-radius: 50%; background: rgba(0, 0, 0, .45); color: #FFF; font-size: 16px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 0; }
.poster-stage-bg-del:hover { background: rgba(0, 0, 0, .65); }
.poster-phone-note { margin-top: 6px; font-size: 11px; color: #9AA5B1; text-align: center; }
.poster-config { flex: 1 1 auto; min-width: 0; width: 100%; }
.poster-tip { font-size: 12px; color: #FF4D4F; margin: 2px 0 12px; line-height: 1.6; }
.poster-pos-row { display: flex; align-items: center; gap: 8px; margin: 2px 0 8px; }
.poster-pos-label { font-size: 12px; color: #8A94A6; flex: none; }
.poster-pos-val { font-size: 12px; color: #0072FF; font-weight: 600; flex: none; font-family: Menlo, Consolas, monospace; }
.poster-pos-hint { font-size: 11px; color: #B9C4CE; flex: none; }
.poster-upload { position: relative; width: 120px; aspect-ratio: 1 / 1.6; border: 1px dashed #C9D4E0; border-radius: 8px; display: flex; align-items: center; justify-content: center; background: #F7F9FB; cursor: pointer; overflow: hidden; box-sizing: border-box; }
.poster-upload:hover { border-color: #0072FF; }
.poster-upload-sm { width: 88px; aspect-ratio: 1 / 1; }
.poster-upload-empty { font-size: 12px; color: #9AA5B1; text-align: center; line-height: 1.5; padding: 0 6px; }
.poster-upload-empty::before { content: '＋'; display: block; font-size: 24px; color: #B9C4CE; margin-bottom: 2px; }
.poster-upload-img { width: 100%; height: 100%; object-fit: cover; display: block; }
.poster-size-row { display: flex; align-items: center; gap: 8px; margin: 2px 0 8px; }
.poster-btn-row { margin: 4px 0 2px; }
.poster-size-label { font-size: 12px; color: #8A94A6; flex: none; }
.poster-size-input { width: 72px; flex: none; }
.poster-size-unit { font-size: 12px; color: #9AA5B1; flex: none; }
.poster-color { width: 34px; height: 26px; border: 1px solid #D7DCE3; border-radius: 4px; padding: 0 2px; background: #FFF; cursor: pointer; flex: none; }
.poster-actions { display: flex; gap: 10px; }
.poster-actions .btn { flex: none; }

/* 海报弹层（C 端活动海报） */
.poster-modal-mask { position: fixed; left: 0; top: 0; right: 0; bottom: 0; background: rgba(15, 23, 42, .55); display: flex; align-items: center; justify-content: center; z-index: 999; }
.poster-modal-card { width: 420px; max-width: 92vw; max-height: 92vh; background: #FFF; border-radius: 12px; display: flex; flex-direction: column; overflow: hidden; box-shadow: 0 12px 40px rgba(0, 0, 0, .25); }
.poster-modal-head { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; border-bottom: 1px solid #EEF0F3; }
.poster-modal-title { font-size: 15px; font-weight: 600; color: #333; }
.poster-modal-body { flex: 1 1 auto; overflow: auto; padding: 12px 16px; display: flex; align-items: center; justify-content: center; background: #F7F9FB; }
.poster-modal-loading { font-size: 13px; color: #9AA5B1; padding: 30px 0; }
.poster-modal-img { width: auto; height: auto; max-width: 100%; max-height: 60vh; border-radius: 6px; box-shadow: 0 4px 14px rgba(0, 0, 0, .14); }
.poster-modal-foot { display: flex; justify-content: flex-end; gap: 10px; padding: 12px 16px; border-top: 1px solid #EEF0F3; }

@media (max-width: 1100px) {
  .poster-wrap { flex-direction: column; }
  .poster-phone { flex: 0 0 auto; }
  .poster-phone-frame { width: 190px; aspect-ratio: 720 / 1280; }
}

/* ============================================================
   支付配置（pay-config）
   ============================================================ */
.g-state {
  margin-left: auto;
  font-size: 11px;
  color: #0072FF;
  background: rgba(0, 114, 255, 0.12);
  border-radius: 10px;
  padding: 1px 7px;
}
.g-state.on { color: #fff; background: #0072FF; }

.pay-layout {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  max-width: 1080px;
}
.pay-main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.pay-tip {
  background: #FFF7E6;
  border: 1px solid #FFE3A3;
  border-radius: 8px;
  color: #9A6A00;
  font-size: 12px;
  line-height: 1.7;
  padding: 10px 14px;
}
.pay-card {
  background: #fff;
  border: 1px solid #E7EBF1;
  border-radius: 10px;
  padding: 18px 20px;
}
.pay-card-title {
  font-size: 15px;
  font-weight: 600;
  color: #1B2A3A;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid #F0F3F7;
}
.pay-card-sub {
  font-size: 12px;
  font-weight: 400;
  color: #98A6B5;
  margin-left: 8px;
}
.pay-card .fe-item { margin-bottom: 14px; }
.pay-card .fe-item:last-child { margin-bottom: 0; }

.fe-textarea {
  width: 100%;
  border: 1px solid #D8E0EA;
  border-radius: 8px;
  padding: 8px 10px;
  font-size: 13px;
  color: #1B2A3A;
  resize: vertical;
  box-sizing: border-box;
  font-family: inherit;
  outline: none;
}
.fe-textarea:focus { border-color: #0072FF; box-shadow: 0 0 0 2px rgba(0, 114, 255, 0.12); }
.fe-sub { display: block; font-size: 11px; color: #98A6B5; margin-top: 3px; }

.pay-cert-box {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  background: #F8FAFC;
  border: 1px dashed #D8E0EA;
  border-radius: 8px;
  padding: 10px 12px;
}
.pay-cert-radios { display: flex; gap: 8px; }
.pay-cert-type {
  font-size: 12px;
  color: #43566B;
  background: #fff;
  border: 1px solid #D8E0EA;
  border-radius: 14px;
  padding: 4px 10px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.pay-cert-type input { margin: 0; accent-color: #0072FF; }
.pay-cert-type:has(input:checked) { color: #0072FF; border-color: #0072FF; background: #EAF3FF; font-weight: 600; }
.pay-cert-upload {
  font-size: 12px;
  color: #0072FF;
  border: 1px solid #0072FF;
  border-radius: 14px;
  padding: 4px 12px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
}
.pay-cert-upload input { display: none; }
.pay-cert-upload:hover { background: #EAF3FF; }
.pay-cert-file {
  font-size: 12px;
  color: #1B6B3B;
  background: #E9F7EE;
  border: 1px solid #C9EAD5;
  border-radius: 14px;
  padding: 4px 10px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.pay-cert-file span { max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pay-cert-clear {
  border: none;
  background: none;
  color: #B03A2E;
  font-size: 12px;
  cursor: pointer;
  padding: 0;
}
.pay-cert-empty {
  font-size: 12px;
  color: #98A6B5;
}

.pay-refund-grid { display: flex; gap: 12px; flex-wrap: wrap; }
.pay-refund-card {
  flex: 1 1 150px;
  max-width: 190px;
  border: 1px solid #D8E0EA;
  border-radius: 10px;
  background: #fff;
  padding: 12px;
  cursor: pointer;
  text-align: center;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.pay-refund-card.active {
  border-color: #0072FF;
  box-shadow: 0 0 0 2px rgba(0, 114, 255, 0.14);
  background: #F5FAFF;
}
.pay-refund-card input[type="radio"] { display: none; }
.pay-mode-row { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }
.pay-mode-row .pay-radio-line { margin-right: 0; }
.pay-refund-ico { font-size: 24px; display: block; margin-bottom: 6px; }
.pay-refund-name { font-size: 13px; color: #1B2A3A; font-weight: 600; }
.pay-refund-tip { font-size: 11px; color: #98A6B5; margin-top: 3px; line-height: 1.5; }

.pay-radio-line {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 13px;
  color: #43566B;
  margin-right: 18px;
  cursor: pointer;
}
.pay-radio-line input { margin: 0; accent-color: #0072FF; }

/* ---------- C 端「我的」弹窗（我的订单 / 商家中心） ---------- */
.me-mask { position: absolute; left: 0; top: 0; right: 0; bottom: 0; background: rgba(15, 23, 42, .45); display: flex; align-items: center; justify-content: center; z-index: 30; }
.me-card { width: 82%; max-width: 280px; background: #fff; border-radius: 18px; overflow: hidden; box-shadow: 0 12px 32px rgba(15, 23, 42, .18); }
.me-card-head { display: flex; align-items: center; justify-content: space-between; padding: 12px 14px; border-bottom: 1px solid #F0F1F3; }
.me-user { display: flex; align-items: center; gap: 10px; padding: 16px 16px 14px; }
.me-avatar { width: 42px; height: 42px; border-radius: 50%; background: #EAF3FF; color: #0072FF; font-size: 17px; font-weight: 600; display: flex; align-items: center; justify-content: center; }
.me-user-info { flex: 1; min-width: 0; }
.me-user-name { font-size: 15px; font-weight: 600; color: #1F2733; }
.me-user-phone { margin-top: 2px; font-size: 12px; color: #8A94A6; }
.me-badge { flex: none; font-size: 11px; color: #0072FF; background: #EAF3FF; border-radius: 999px; padding: 2px 8px; }
.me-entries { padding: 0 10px 12px; }
.me-entry { display: flex; align-items: center; gap: 10px; width: 100%; padding: 12px 8px; border: none; background: transparent; border-top: 1px solid #F5F6F8; font-size: 14px; color: #1F2733; cursor: pointer; text-align: left; }
.me-entry:first-child { border-top: none; }
.me-entry-txt { flex: 1; }
.me-entry-arrow { color: #B0B6BF; font-size: 18px; line-height: 1; }
.me-entry:active { background: #F7F8FA; }

/* ---------- C 端全屏页（我的订单 / 商家中心） ---------- */
.cpage { position: absolute; left: 0; top: 0; right: 0; bottom: 0; background: #F7F8FA; z-index: 30; display: flex; flex-direction: column; }
.cpage-head { display: flex; align-items: center; padding: 12px 14px; background: #fff; border-bottom: 1px solid #EDEFF3; }
.cpage-back { border: none; background: transparent; font-size: 22px; color: #333; width: 28px; height: 28px; line-height: 1; cursor: pointer; padding: 0; }
.cpage-title { flex: 1; text-align: center; font-size: 15px; font-weight: 600; color: #1F2733; }
.cpage-spacer { width: 28px; }
.cpage-body { flex: 1; min-height: 0; overflow-y: auto; padding: 14px 12px 24px; }

/* ---------- 我的订单：两板块 ---------- */
.orders-sec { margin-bottom: 18px; }
.orders-sec-title { font-size: 13px; font-weight: 600; color: #4A5A6A; margin: 0 2px 8px; display: flex; align-items: center; gap: 6px; }
.orders-sec-title::before { content: ''; width: 3px; height: 12px; border-radius: 2px; background: #0072FF; }
.orders-list { background: #fff; border-radius: 12px; overflow: hidden; border: 1px solid #F0F1F3; }
.order-item { padding: 11px 14px; border-bottom: 1px solid #F5F6F8; }
.order-item:last-child { border-bottom: none; }
.order-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.order-goods { font-size: 13px; font-weight: 600; color: #1F2733; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.order-status { flex: none; font-size: 11px; border-radius: 999px; padding: 2px 8px; background: #F2F7FB; color: #4A5A6A; }
.order-status.fin { background: #EAF7EE; color: #2E9E5B; }
.order-status.pend { background: #FFF6E8; color: #B7791F; }
.order-status.prog { background: #EAF3FF; color: #0072FF; }
.order-mid { margin-top: 6px; display: flex; align-items: baseline; gap: 10px; }
.order-amount { font-size: 15px; font-weight: 700; color: #1F2733; }
.order-extra { font-size: 12px; color: #8A94A6; }
.order-bottom { margin-top: 6px; display: flex; align-items: center; justify-content: space-between; font-size: 11px; color: #B0B6BF; }
.orders-empty { padding: 22px; text-align: center; font-size: 12px; color: #B0B6BF; }

/* ---------- 商家中心 ---------- */
.mc-hero { background: #fff; border: 1px solid #F0F1F3; border-radius: 12px; padding: 16px; margin-bottom: 12px; }
.mc-hero-name { font-size: 15px; font-weight: 600; color: #1F2733; }
.mc-hero-status { margin-top: 6px; display: flex; align-items: center; gap: 6px; font-size: 12px; color: #2E9E5B; }
.mc-dot { width: 6px; height: 6px; border-radius: 50%; background: #2E9E5B; display: inline-block; }
.mc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.mc-card { background: #fff; border: 1px solid #F0F1F3; border-radius: 12px; padding: 14px; }
.mc-card-name { font-size: 13px; font-weight: 600; color: #1F2733; }
.mc-card-desc { margin-top: 4px; font-size: 11px; color: #8A94A6; line-height: 1.5; }

/* ---------- 后台：用户管理面板 ---------- */
.um-mask { position: fixed; left: 0; top: 0; right: 0; bottom: 0; background: rgba(15, 23, 42, .5); display: flex; align-items: center; justify-content: center; z-index: 999; }
.um-card { width: 680px; max-width: 94vw; max-height: 86vh; background: #fff; border-radius: 12px; display: flex; flex-direction: column; overflow: hidden; box-shadow: 0 12px 40px rgba(0, 0, 0, .22); }
.um-head { display: flex; align-items: center; justify-content: space-between; padding: 14px 18px; border-bottom: 1px solid #EEF0F3; }
.um-title { font-size: 15px; font-weight: 600; color: #333; }
.um-sub { padding: 10px 18px 0; font-size: 12px; color: #8A94A6; }
.um-list { flex: 1 1 auto; overflow: auto; padding: 12px 18px 4px; }
.um-user { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 0; border-bottom: 1px solid #F5F6F8; }
.um-user:last-child { border-bottom: none; }
.um-user-main { min-width: 0; }
.um-user-name { font-size: 14px; font-weight: 600; color: #1F2733; display: flex; align-items: center; gap: 6px; }
.um-user-tag { flex: none; font-size: 11px; color: #0072FF; background: #EAF3FF; border-radius: 999px; padding: 1px 7px; }
.um-user-sub { margin-top: 3px; font-size: 12px; color: #8A94A6; }
.um-ok { flex: none; font-size: 12px; color: #2E9E5B; background: #EAF7EE; border-radius: 999px; padding: 3px 10px; }
.um-ban-ok { flex: none; font-size: 12px; color: #FF4D4F; background: #FFF1F0; border-radius: 999px; padding: 3px 10px; }
.um-ops { flex: none; display: flex; align-items: center; gap: 8px; }
.um-user-banned { opacity: .72; }
.um-user-banned .cm-avatar { filter: grayscale(1); }
.pill-gray { background: #F2F3F5; border-color: #DCDEE3; color: #6B7280; }
.pill-gray:hover { background: #E9EAEC; }
.um-foot { display: flex; justify-content: flex-end; padding: 12px 18px; border-top: 1px solid #EEF0F3; }

/* ---------- C 端「我的」弹窗：横排双按钮 ---------- */
.me-actions { display: flex; gap: 10px; padding: 2px 14px 14px; }
.me-action { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 3px; padding: 12px 14px; border: 1px solid #EDEFF3; border-radius: 12px; background: #F7F8FA; cursor: pointer; text-align: left; }
.me-action-t { font-size: 14px; font-weight: 600; color: #1F2733; }
.me-action-d { font-size: 11px; color: #8A94A6; line-height: 1.4; }
.me-action:active { background: #EEF2F6; }

/* ---------- 我的订单页：用户区 / 双数据卡 / 双板块 / 返回 ---------- */
.mo-hero { display: flex; align-items: center; gap: 12px; padding: 16px 14px; background: linear-gradient(135deg, #EAF3FF 0%, #F5F9FF 60%, #FFFFFF 100%); border: 1px solid #E3ECF7; border-radius: 12px; margin-bottom: 12px; }
.mo-hero-avatar { width: 46px; height: 46px; border-radius: 50%; background: #0072FF; color: #fff; font-size: 19px; font-weight: 600; display: flex; align-items: center; justify-content: center; box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .6); }
.mo-hero-info { min-width: 0; }
.mo-hero-name { font-size: 16px; font-weight: 600; color: #1F2733; }
.mo-hero-sub { margin-top: 3px; font-size: 12px; color: #7C8698; }
.mo-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 16px; }
.mo-card { background: #fff; border: 1px solid #F0F1F3; border-radius: 12px; padding: 13px 14px 11px; }
.mo-card-label { font-size: 12px; color: #8A94A6; }
.mo-card-value { margin-top: 5px; font-size: 20px; font-weight: 700; color: #1F2733; }
.mo-card-value.money { color: #0072FF; }
.mo-card-sub { margin-top: 4px; font-size: 11px; color: #B0B6BF; }
.mo-tabs { display: flex; background: #fff; border: 1px solid #F0F1F3; border-radius: 12px 12px 0 0; overflow: hidden; }
.mo-tab { flex: 1; padding: 10px 0; border: none; background: transparent; font-size: 13px; color: #7C8698; cursor: pointer; border-bottom: 2px solid transparent; }
.mo-tab.active { color: #0072FF; font-weight: 600; border-bottom-color: #0072FF; background: #FAFCFF; }
.mo-panel { background: #fff; border: 1px solid #F0F1F3; border-top: none; border-radius: 0 0 12px 12px; overflow: hidden; }
.cpage-foot { flex: 0 0 auto; padding: 12px 14px 14px; background: #F7F8FA; border-top: 1px solid #EDEFF3; }
.mo-back-btn { width: 100%; padding: 12px 0; border: none; border-radius: 12px; background: #0072FF; color: #fff; font-size: 14px; font-weight: 600; cursor: pointer; }
.mo-back-btn:active { background: #005FD6; }
.order-buyer { color: #0072FF; font-weight: 600; }
.order-buyer::after { content: ' ·'; color: #B0B6BF; font-weight: 400; }
/* 佣金管理弹层 */
.cm-mask { position: fixed; left: 0; top: 0; right: 0; bottom: 0; background: rgba(15, 23, 42, .5); display: flex; align-items: center; justify-content: center; z-index: 999; }
.cm-card { width: 620px; max-width: 94vw; max-height: 88vh; background: #fff; border-radius: 12px; display: flex; flex-direction: column; overflow: hidden; box-shadow: 0 12px 40px rgba(0, 0, 0, .22); }
.cm-head { display: flex; align-items: center; justify-content: space-between; padding: 14px 18px; border-bottom: 1px solid #EEF0F3; }
.cm-title { font-size: 16px; font-weight: 700; }
.cm-actname { padding: 10px 18px 0; color: #8891A5; font-size: 12px; }
.cm-stats { display: flex; gap: 12px; padding: 12px 18px; }
.cm-stat { flex: 1; background: #F6F8FB; border-radius: 10px; padding: 12px 14px; }
.cm-stat-label { font-size: 12px; color: #8891A5; }
.cm-stat-num { font-size: 16px; font-weight: 700; margin-top: 4px; }
.cm-stat-num.ok { color: #16A34A; }
.cm-stat-num.fail { color: #EF4444; }
.cm-tabs { display: flex; gap: 8px; padding: 0 18px 10px; }
.cm-tab { padding: 5px 14px; border-radius: 20px; border: 1px solid #E3E7EF; background: #fff; color: #5B6478; font-size: 13px; cursor: pointer; }
.cm-tab.active { background: #0072FF; color: #fff; border-color: #0072FF; }
.cm-list { flex: 1 1 auto; overflow: auto; padding: 4px 18px 8px; }
.cm-row { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid #F1F3F7; }
.cm-row:last-child { border-bottom: none; }
.cm-avatar { width: 38px; height: 38px; border-radius: 50%; background: linear-gradient(135deg, #0072FF, #3D8BFF); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 15px; flex: none; }
.cm-row-fail .cm-avatar { background: linear-gradient(135deg, #FF4D4F, #FF8A80); }
.cm-main { flex: 1 1 auto; min-width: 0; }
.cm-name { font-size: 14px; font-weight: 600; }
.cm-buyer { font-size: 12px; color: #8891A5; font-weight: 400; margin-left: 6px; }
.cm-meta { font-size: 12px; color: #9AA3B2; margin-top: 2px; }
.cm-reason { font-size: 12px; color: #EF4444; margin-top: 4px; background: #FFF1F1; border-radius: 6px; padding: 3px 8px; display: inline-block; }
.cm-right { flex: none; text-align: right; }
.cm-amount { font-size: 15px; font-weight: 700; }
.cm-ok { font-size: 12px; color: #16A34A; margin-top: 4px; }
.cm-empty { text-align: center; color: #9AA3B2; padding: 30px 0; }
.cm-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 18px; border-top: 1px solid #EEF0F3; }
.cm-hint { font-size: 12px; color: #9AA3B2; }
.cm-foot-btns { display: flex; align-items: center; gap: 8px; flex: none; }

/* ---------- 佣金管理：搜索框 / 收益标签 / 发放时间 / 一键补发 ---------- */
.cm-card-w { width: 720px; }
.cm-search { position: relative; padding: 10px 18px 2px; }
.cm-search-input { width: 100%; box-sizing: border-box; padding: 8px 34px 8px 12px; border: 1px solid #E3E7EF; border-radius: 8px; font-size: 13px; outline: none; background: #FAFBFD; color: #1F2329; }
.cm-search-input:focus { border-color: #0072FF; background: #fff; box-shadow: 0 0 0 3px rgba(0, 114, 255, .12); }
.cm-search-input::placeholder { color: #B4BCC9; }
.cm-search-icon { position: absolute; right: 28px; top: 50%; transform: translateY(-50%); font-size: 13px; color: #B4BCC9; pointer-events: none; }
.cm-tag { display: inline-block; font-size: 11px; border-radius: 4px; padding: 1px 5px; margin-right: 5px; vertical-align: 1px; }
.cm-tag-user { color: #0072FF; background: #E6F0FF; }
.cm-tag-src { color: #8A5CF6; background: #F3ECFF; }
.cm-paid { font-size: 12px; color: #16A34A; margin-top: 4px; display: flex; align-items: center; gap: 4px; }
.cm-dot { width: 6px; height: 6px; border-radius: 50%; display: inline-block; }
.cm-dot.ok { background: #16A34A; }

/* ============================================================
   后台：订单详情弹层（复用 .cm-mask > .cm-card 风格）
   ============================================================ */
.od-card .cm-list { padding: 0 18px 8px; }
.od-row { padding: 14px 0; border-bottom: 1px solid #F1F3F7; }
.od-row:last-child { border-bottom: none; }
.od-top { display: flex; align-items: center; gap: 12px; }
.od-user { flex: 1 1 auto; min-width: 0; }
.od-name { font-size: 14px; font-weight: 600; display: flex; align-items: center; gap: 6px; }
.od-goods { font-size: 12px; color: #8891A5; margin-top: 3px; }
.od-phone { font-size: 12px; color: #5B6478; font-weight: 400; background: #F0F4FF; border: 1px solid #D8E4FF; border-radius: 10px; padding: 1px 7px; }
.od-phone.empty { color: #B4BCC9; background: #F5F6F8; border-color: #ECEEF2; }
.od-right { flex: none; text-align: right; }
.od-amount { font-size: 15px; font-weight: 700; color: #1F2329; }
.od-status { display: inline-block; margin-top: 4px; font-size: 11px; border-radius: 10px; padding: 1px 8px; }
.od-status.done { color: #16A34A; background: #E8F7EE; }
.od-status.pending { color: #B45309; background: #FFF3DC; }
.od-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 12px; margin-top: 10px; background: #FAFBFD; border-radius: 10px; padding: 10px 12px; }
.od-cell { min-width: 0; }
.od-cell-wide { grid-column: 1 / -1; }
.od-cell-label { font-size: 11px; color: #9AA3B2; margin-bottom: 3px; }
.od-cell-val { font-size: 13px; color: #1F2329; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.od-empty-val { font-size: 12px; color: #B4BCC9; }
.od-sub { font-size: 11px; color: #9AA3B2; margin-top: 2px; }
.od-fields { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.od-field { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; color: #3A4F6E; background: #F0F4FF; border: 1px solid #DCE6FF; border-radius: 8px; padding: 2px 8px; }
.od-field-label { color: #7A88A3; font-size: 11px; }
.cm-meta-cust { margin-top: 3px; color: #5B6478; }
.cm-meta-fields { margin-top: 3px; color: #6B7A93; }

/* ============================================================
   后台：活动码弹层（复用 .cm-mask > .cm-card 风格）
   ============================================================ */
.qr-card { width: 640px; max-width: 94vw; }
/* 战队管理弹窗（活动卡片进入） */
.tm-modal { width: 720px; max-width: 94vw; }
.tm-modal-body { flex: 1 1 auto; overflow: auto; padding: 14px 18px 6px; }
.tm-modal .tm-block { margin-bottom: 12px; }
.tm-qr-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.tm-qr-tip { font-size: 12px; color: #9AA3B2; line-height: 1.5; }
.tm-hint-inline { font-size: 12px; color: #9AA3B2; font-weight: 400; margin-left: 8px; }
.tm-grp-head { cursor: pointer; }
.tm-grp.collapsed .tm-grp-members { display: none; }
.qr-main { padding: 18px; display: flex; flex-direction: column; align-items: center; }
.qr-box { width: 252px; height: 252px; border: 1px solid #E4E9F0; border-radius: 12px; padding: 6px; background: #FFF; box-shadow: 0 2px 10px rgba(0, 114, 255, .08); }
.qr-img { display: block; width: 240px; height: 240px; border-radius: 6px; }
.qr-link-row { display: flex; align-items: center; gap: 8px; width: 100%; margin-top: 14px; }
.qr-link-input { flex: 1; min-width: 0; box-sizing: border-box; border: 1px solid #C9D4E0; border-radius: 6px; padding: 7px 9px; font-size: 12px; color: #5B6478; background: #F7F9FB; }
.qr-link-input:focus { outline: none; border-color: #0072FF; }
.qr-rule { margin: 0 18px 16px; background: #F0F4FF; border: 1px solid #D8E4FF; border-radius: 10px; padding: 12px 14px; }
.qr-rule-title { font-size: 13px; font-weight: 700; color: #0072FF; margin-bottom: 8px; }
.qr-rule-item { font-size: 12px; line-height: 1.7; color: #38475A; }
.qr-rule-item strong { color: #1F2733; }

/* ---------- 商品设置：多商品卡片 ---------- */
.goods-add-bar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.goods-empty { padding: 26px 16px; text-align: center; color: #9AA5B1; font-size: 13px; background: #F7F9FB; border: 1px dashed #C9D4E0; border-radius: 8px; }
.goods-card { border: 1px solid #E4E9F0; border-radius: 10px; padding: 12px; margin-bottom: 12px; background: #FFF; }
.goods-card-head { display: flex; align-items: center; gap: 6px; margin-bottom: 10px; }
.goods-card-index { font-size: 13px; font-weight: 700; color: #1F2733; margin-right: auto; }
.goods-card-tag { font-size: 11px; padding: 1px 6px; border-radius: 4px; margin-right: 8px; }
.goods-card-tag.new { color: #0072FF; background: #EAF2FF; }
.goods-card-tag.saved { color: #16A34A; background: #E7F6EC; }
.btn-xs { font-size: 12px; padding: 3px 8px; border-radius: 6px; border: 1px solid #C9D4E0; background: #FFF; color: #38475A; cursor: pointer; }
.btn-xs:hover { border-color: #0072FF; color: #0072FF; }
.btn-xs.btn-danger { color: #E34D59; border-color: #F3C6CB; background: #FEF2F3; }
.btn-xs.btn-danger:hover { border-color: #E34D59; background: #FDECEE; }
.btn-xs.btn-copy { color: #0072FF; border-color: #BBD6FF; background: #F2F7FF; }
.btn-xs.btn-copy:hover { border-color: #0072FF; }
.goods-card .hero-upload.goods-box { width: 100%; aspect-ratio: 8 / 3; max-width: 240px; }
.goods-card-field { margin-top: 10px; }
.goods-card-field label { display: block; font-size: 12px; color: #6B7A8D; margin-bottom: 5px; }
.goods-card-field input[type="text"] { width: 100%; box-sizing: border-box; border: 1px solid #C9D4E0; border-radius: 6px; padding: 7px 9px; font-size: 13px; }
.goods-card-field input[type="text"]:focus { outline: none; border-color: #0072FF; }
.goods-row { display: flex; gap: 10px; }
.goods-row .goods-card-field { flex: 1; }
.goods-commission-row { display: flex; align-items: center; gap: 8px; margin-top: 10px; font-size: 13px; color: #38475A; }
.goods-commission-row input[type="number"] { width: 90px; border: 1px solid #C9D4E0; border-radius: 6px; padding: 6px 8px; font-size: 13px; }
/* ---------- 表单设置：字段卡片 ---------- */
.form-fields-list { display: block; }
.form-field-card { border: 1px solid #E4E9F0; border-radius: 10px; padding: 12px; margin-bottom: 12px; background: #FFF; }
.form-field-head { display: flex; align-items: center; gap: 6px; margin-bottom: 10px; }
.form-field-no { font-size: 13px; font-weight: 700; color: #1F2733; margin-right: auto; }
.form-field-tag { font-size: 11px; padding: 1px 6px; border-radius: 4px; margin-right: 8px; color: #0072FF; background: #EAF2FF; }
.form-field-tools { display: inline-flex; gap: 6px; align-items: center; }
.form-field-options { margin-top: 4px; }
.form-opt-list { display: block; }
.form-opt-row { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.form-opt-row .fe-input { flex: 1; }
.form-opt-add { margin-top: 2px; }

/* ---------- 前台抢购弹层：多商品底部缩略图 ---------- */
.buy-thumbs-title { display: flex; align-items: center; gap: 6px; margin-top: 12px; font-size: 13px; font-weight: 600; color: #1F2733; }
.buy-thumbs-bar { width: 3px; height: 14px; border-radius: 2px; background: #0072FF; flex: 0 0 auto; }
.buy-thumbs { display: flex; gap: 8px; margin: 8px -14px 12px; padding: 0 14px 4px; overflow-x: auto; }
.buy-thumb { width: 52px; height: 39px; border-radius: 6px; overflow: hidden; flex: 0 0 auto; border: 2px solid transparent; cursor: pointer; background: #F1F3F5; display: flex; align-items: center; justify-content: center; }
.buy-thumb.active { border-color: #0072FF; }
.buy-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.buy-thumb-empty { font-size: 10px; color: #9AA3B2; }

/* ---------- 商家中心：完整功能版（数据概览 / 订单 / 佣金 / 晒单） ---------- */
.ms-tabs { display: flex; gap: 8px; background: #fff; border-top: 1px solid #EDEFF3; padding: 10px 12px 12px; flex: 0 0 auto; }
.ms-tab { flex: 1; height: 42px; border: 1px solid #EDEFF3; border-radius: 21px; background: #F7F8FA; font-size: 13px; color: #9AA0A6; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.ms-tab.active { color: #fff; font-weight: 600; background: #FF8F1F; border-color: #FF8F1F; }
.ms-panel { background: #fff; border: 1px solid #F0F1F3; border-radius: 12px; padding: 14px; }
.ms-sub-tabs { display: flex; gap: 8px; margin: 2px 0 12px; }
.ms-sub-tab { flex: 1; height: 36px; border: 1px solid #EDEFF3; border-radius: 18px; background: #F7F8FA; font-size: 13px; color: #9AA0A6; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.ms-sub-tab.active { color: #fff; font-weight: 600; background: #FF8F1F; border-color: #FF8F1F; }
.ms-sub-panel { display: block; }
.ms-hero { background: linear-gradient(135deg, #EAF3FF 0%, #F5F9FF 60%, #FFFFFF 100%); border: 1px solid #E3ECF7; border-radius: 12px; padding: 16px; margin-bottom: 12px; }
.ms-hero-name { font-size: 16px; font-weight: 600; color: #1F2733; }
.ms-hero-sub { margin-top: 4px; font-size: 12px; color: #7C8698; }
.ms-hero-status { margin-top: 8px; display: flex; align-items: center; gap: 6px; font-size: 12px; color: #2E9E5B; }
.ms-sec { margin-bottom: 14px; }
.ms-sec-title { font-size: 13px; font-weight: 600; color: #1F2733; margin-bottom: 8px; }
.ms-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ms-stat { background: #F7F8FA; border: 1px solid #EDEFF3; border-radius: 12px; padding: 13px 14px 11px; }
.ms-stat-label { font-size: 12px; color: #8A94A6; }
.ms-stat-value { margin-top: 5px; font-size: 20px; font-weight: 700; color: #1F2733; }
.ms-list-title { display: flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: #1F2733; margin-bottom: 10px; }
.ms-count { font-size: 11px; font-weight: 400; color: #8A94A6; background: #F0F2F5; border-radius: 999px; padding: 1px 8px; }
.ms-order { border: 1px solid #F0F1F3; border-radius: 12px; padding: 12px 14px; margin-bottom: 10px; background: #fff; }
.ms-order-top { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.ms-order-goods { font-size: 14px; font-weight: 600; color: #1F2733; }
.ms-order-tag { font-size: 11px; color: #0072FF; background: #EAF3FF; border-radius: 999px; padding: 1px 8px; }
.ms-order-status { margin-left: auto; font-size: 11px; border-radius: 999px; padding: 2px 9px; }
.ms-order-status.warn { color: #E6A23C; background: #FDF4E3; }
.ms-order-status.ok { color: #2E9E5B; background: #EAF7EE; }
.ms-order-status.pend { color: #7C8698; background: #F0F2F5; }
.ms-order-info { margin-top: 8px; background: #F7F8FA; border-radius: 8px; padding: 8px 10px; }
.ms-order-row { display: flex; gap: 8px; font-size: 12px; color: #5A6472; line-height: 1.7; }
.ms-k { flex: none; width: 56px; color: #9AA3B2; }
.ms-order-money { display: flex; justify-content: space-between; margin-top: 8px; font-size: 12px; color: #7C8698; }
.ms-order-money b { color: #1F2733; font-size: 14px; }
.ms-order-money b.ms-paid { color: #0072FF; }
.ms-order-meta { margin-top: 6px; font-size: 11px; color: #9AA3B2; line-height: 1.6; }
.ms-order-foot { display: flex; justify-content: flex-end; margin-top: 8px; }
.ms-share-btn { border: 1px solid #0072FF; color: #0072FF; background: #fff; font-size: 12px; padding: 4px 16px; border-radius: 999px; cursor: pointer; }
.ms-share-btn:active { background: #EAF3FF; }
.ms-comm { border: 1px solid #F0F1F3; border-radius: 12px; padding: 12px 14px; margin-bottom: 10px; background: #fff; }
.ms-comm-top { display: flex; align-items: center; justify-content: space-between; }
.ms-comm-user { font-size: 14px; font-weight: 600; color: #1F2733; }
.ms-comm-amount { font-size: 15px; font-weight: 700; color: #0072FF; }
.ms-comm-mid { display: flex; gap: 8px; margin-top: 8px; }
.ms-comm-type { font-size: 11px; color: #7C8698; background: #F0F2F5; border-radius: 999px; padding: 2px 9px; }
.ms-comm-status { font-size: 11px; border-radius: 999px; padding: 2px 9px; }
.ms-comm-status.warn { color: #E6A23C; background: #FDF4E3; }
.ms-comm-status.ok { color: #2E9E5B; background: #EAF7EE; }
.ms-comm-meta { margin-top: 8px; font-size: 11px; color: #9AA3B2; }
.ms-mask { position: absolute; left: 0; top: 0; right: 0; bottom: 0; background: rgba(15, 23, 42, .62); display: flex; align-items: center; justify-content: center; z-index: 20; }
.ms-poster { width: 86%; max-width: 320px; background: #fff; border-radius: 14px; overflow: hidden; }
.ms-poster-head { display: flex; align-items: center; justify-content: space-between; padding: 10px 14px; border-bottom: 1px solid #EEF0F3; font-size: 14px; font-weight: 600; color: #1F2733; }
.ms-poster-close { border: none; background: transparent; font-size: 20px; color: #8A94A6; cursor: pointer; line-height: 1; padding: 2px 4px; }
.ms-poster-body { padding: 12px; }
.ms-poster-img { display: block; width: 100%; border-radius: 10px; }
.ms-poster-tip { margin-top: 10px; text-align: center; font-size: 11px; color: #8A94A6; }

/* ============================================================
   商家中心 UI 对齐样板图（橙黄主调 / 浅底大数字卡 / Tab切换 / 卡片列表）
   ============================================================ */
.ms-hero { background: linear-gradient(135deg, #FFE9C7 0%, #FFF3DC 55%, #FFFFFF 100%); border: 1px solid #FFE2B8; border-radius: 12px; padding: 16px; margin-bottom: 12px; }
.ms-grid { grid-template-columns: repeat(3, 1fr); gap: 8px; }
.ms-stat { display: flex; flex-direction: column-reverse; padding: 9px 8px 8px; border-radius: 10px; }
.ms-stat-value { margin-top: 0; margin-bottom: 3px; font-size: 17px; font-weight: 700; color: #FF6A00; }
.ms-stat-label { font-size: 11px; color: #8A94A6; }
.ms-order-tag { color: #FF8F1F; background: #FFF1E0; }
.ms-share-btn { border: 1px solid #FF8F1F; color: #FF8F1F; background: #fff; font-size: 12px; padding: 4px 16px; border-radius: 999px; cursor: pointer; }
.ms-share-btn:active { background: #FFF1E0; }
.ms-kvs { margin-top: 8px; background: #F7F8FA; border-radius: 8px; padding: 8px 10px; }
.ms-kv { display: flex; justify-content: space-between; gap: 12px; font-size: 12px; color: #5A6472; line-height: 1.9; }
.ms-kv .ms-k { flex: none; color: #9AA3B2; }
.ms-kv .ms-v { text-align: right; color: #1F2733; }
.ms-kv .ms-v .ms-paid { color: #FF6A00; }
.ms-comm-head { display: flex; align-items: center; justify-content: space-between; }
.ms-comm-amount { font-size: 15px; font-weight: 700; color: #FF6A00; }
.ms-comm-status.warn { color: #E6A23C; background: #FDF4E3; }
.ms-comm-status.ok { color: #2E9E5B; background: #EAF7EE; }
.ms-comm-type { font-size: 11px; color: #7C8698; background: #F0F2F5; border-radius: 999px; padding: 2px 9px; }
/* 分销排名：模块折叠头 + 折叠卡片 + 展开详情（含分销订单带头像） */
.ms-rank-module { background: #fff; border: 1px solid #EDEFF3; border-radius: 14px; overflow: hidden; box-shadow: 0 2px 10px rgba(31,39,51,.04); }
.ms-rank-module-head { display: flex; align-items: center; gap: 10px; padding: 13px 14px; cursor: pointer; background: #fff; }
.ms-rank-module-head:active { background: #FAFBFC; }
.ms-rank-module-t { flex: 1; min-width: 0; font-size: 14px; font-weight: 600; color: #1F2733; }
.ms-rank-module-count { font-size: 11px; color: #9AA3B2; background: #F0F2F5; border-radius: 999px; padding: 2px 9px; flex: 0 0 auto; }
.ms-rank-module-head .ms-rank-arrow { transition: transform .25s ease; }
.ms-rank-module.open .ms-rank-module-head .ms-rank-arrow { transform: rotate(90deg); }
.ms-rank-module-body { display: none; border-top: 1px solid #F1F3F6; background: #FAFBFC; padding: 10px; }
.ms-rank-module.open .ms-rank-module-body { display: block; }
.ms-rank-search { position: relative; margin-bottom: 10px; }
.ms-rank-search-input { width: 100%; box-sizing: border-box; height: 34px; border: 1px solid #E3E6EB; border-radius: 9px; background: #fff; font-size: 13px; color: #1F2733; padding: 0 32px 0 12px; outline: none; transition: border-color .2s ease; }
.ms-rank-search-input:focus { border-color: #0072FF; }
.ms-rank-search-input::placeholder { color: #B4BAC6; }
.ms-rank-search-ico { position: absolute; top: 50%; right: 11px; transform: translateY(-50%); font-size: 13px; opacity: .55; pointer-events: none; }
.ms-rank-empty { display: none; text-align: center; padding: 18px 0 12px; font-size: 12px; color: #9AA3B2; }
.ms-rank-list { display: flex; flex-direction: column; gap: 10px; }
.ms-rank-card { background: #fff; border: 1px solid #EDEFF3; border-radius: 14px; overflow: hidden; box-shadow: 0 2px 10px rgba(31,39,51,.04); }
.ms-rank-card.top-card { border-color: #FFE0C2; }
.ms-rank-head { display: flex; align-items: center; gap: 12px; padding: 12px 14px; cursor: pointer; }
.ms-rank-head:active { background: #FAFBFC; }
.ms-rank-no { width: 26px; height: 26px; border-radius: 50%; background: #EDEFF3; color: #8A94A6; font-size: 13px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.ms-rank-no.top { background: linear-gradient(135deg, #FFB35C, #FF6A00); color: #fff; box-shadow: 0 2px 6px rgba(255,106,0,.35); }
.ms-rank-avatar { width: 38px; height: 38px; border-radius: 50%; flex: 0 0 auto; display: flex; align-items: center; justify-content: center; font-size: 16px; font-weight: 700; color: #fff; background: linear-gradient(135deg, #FF8F1F, #FFB35C); }
.ms-rank-card:nth-child(3n) .ms-rank-avatar { background: linear-gradient(135deg, #5AB0FF, #8AC8FF); }
.ms-rank-card:nth-child(3n+1) .ms-rank-avatar { background: linear-gradient(135deg, #FF8F1F, #FFB35C); }
.ms-rank-card:nth-child(3n+2) .ms-rank-avatar { background: linear-gradient(135deg, #34C48C, #62D9AB); }
.ms-rank-mid { flex: 1; min-width: 0; }
.ms-rank-name { font-size: 14px; font-weight: 600; color: #1F2733; display: flex; align-items: center; gap: 6px; }
.ms-rank-badge { font-size: 10px; font-weight: 700; color: #fff; background: #FF6A00; border-radius: 999px; padding: 1px 7px; }
.ms-rank-sub { font-size: 12px; color: #8A94A6; margin-top: 2px; }
.ms-rank-sub b { color: #FF6A00; }
.ms-rank-arrow { flex: 0 0 auto; font-size: 18px; color: #B8C0CC; transition: transform .25s ease; line-height: 1; }
.ms-rank-card.open .ms-rank-arrow { transform: rotate(90deg); }
.ms-rank-detail { display: none; border-top: 1px solid #F1F3F6; background: #FAFBFC; }
.ms-rank-card.open .ms-rank-detail { display: block; }
.ms-rank-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; padding: 12px 14px; }
.ms-rank-stat { background: #fff; border: 1px solid #EDEFF3; border-radius: 10px; padding: 10px 6px; text-align: center; }
.ms-rank-stat-v { display: block; font-size: 15px; font-weight: 700; color: #1F2733; white-space: nowrap; }
.ms-rank-stat-l { display: block; margin-top: 3px; font-size: 11px; color: #8A94A6; }
.ms-rank-stat:nth-child(1) .ms-rank-stat-v { color: #FF6A00; }
.ms-rank-stat:nth-child(3) .ms-rank-stat-v { color: #34C48C; }
.ms-rank-stat:nth-child(5) .ms-rank-stat-v { color: #FF6A00; }
.ms-rk-title { font-size: 13px; font-weight: 600; color: #1F2733; padding: 4px 14px 8px; }
.ms-rk-orders { padding: 0 10px 12px; display: flex; flex-direction: column; gap: 8px; }
.ms-rk-order { display: flex; align-items: center; gap: 10px; background: #fff; border: 1px solid #EDEFF3; border-radius: 10px; padding: 9px 10px; }
.ms-rk-oavatar { width: 34px; height: 34px; border-radius: 50%; flex: 0 0 auto; display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 700; color: #fff; background: linear-gradient(135deg, #34C48C, #62D9AB); }
.ms-rk-order:nth-child(3n) .ms-rk-oavatar { background: linear-gradient(135deg, #FF8F1F, #FFB35C); }
.ms-rk-order:nth-child(3n+1) .ms-rk-oavatar { background: linear-gradient(135deg, #34C48C, #62D9AB); }
.ms-rk-order:nth-child(3n+2) .ms-rk-oavatar { background: linear-gradient(135deg, #5AB0FF, #8AC8FF); }
.ms-rk-omid { flex: 1; min-width: 0; }
.ms-rk-oname { font-size: 13px; font-weight: 600; color: #1F2733; }
.ms-rk-osub { font-size: 11px; color: #8A94A6; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ms-rk-oamt { text-align: right; flex: 0 0 auto; }
.ms-rk-oamt b { display: block; font-size: 14px; color: #FF6A00; }
.ms-rk-oamt span { display: block; margin-top: 2px; font-size: 10px; color: #9AA3B2; }
.ms-empty { text-align: center; color: #9AA3B2; font-size: 13px; padding: 34px 0; }
.ms-placeholder { background: #fff; border: 1px dashed #DDE3EC; border-radius: 12px; padding: 52px 16px; text-align: center; }
.ms-placeholder b { display: block; font-size: 15px; font-weight: 600; color: #7C8698; }
.ms-placeholder span { display: block; margin-top: 8px; font-size: 12px; color: #9AA3B2; }
/* C端购买弹层：客户表单 */
.buy-form { margin-top: 10px; display: grid; gap: 8px; }
.buy-input { width: 100%; box-sizing: border-box; border: 1px solid #EDEFF3; border-radius: 8px; padding: 8px 10px; font-size: 13px; color: #1F2733; background: #F7F8FA; outline: none; }
.buy-input:focus { border-color: #FF8F1F; background: #fff; }
.buy-form-row { display: grid; gap: 4px; }
.buy-form-label { font-size: 12px; color: #38475A; font-weight: 600; }
.buy-req { color: #E34D59; margin-right: 2px; }
.buy-opts { display: flex; flex-wrap: wrap; gap: 6px; }
.buy-pill { display: inline-flex; cursor: pointer; }
.buy-pill input { position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none; }
.buy-pill span { display: inline-block; padding: 4px 10px; border-radius: 999px; border: 1px solid #E1E4EA; background: #F5F6F8; color: #4A5568; font-size: 13px; line-height: 1.5; transition: background .15s ease, border-color .15s ease, color .15s ease; }
.buy-pill input:checked + span { background: #0072FF; border-color: #0072FF; color: #fff; }

/* ============================================================
   手机直达 C 端模式：index.html?c=<activityId>
   隐藏 PC 后台骨架，将编辑页右侧实时预览全屏铺满视口
   ============================================================ */
body.customer-mode .sidebar,
body.customer-mode .topbar { display: none !important; }
body.customer-mode .content { padding: 0; overflow: hidden; }
body.customer-mode .front-wrap { display: block; }
body.customer-mode .front-edit { display: none !important; }
body.customer-mode .card.front-preview {
  position: fixed; top: 0; right: 0; bottom: 0; left: 0;
  width: 100vw; min-width: 0; height: 100vh; max-height: none; margin: 0;
  padding: 0; border: none; border-radius: 0; box-shadow: none; z-index: 50;
}
body.customer-mode .card-title,
body.customer-mode .preview-note { display: none; }
body.customer-mode .preview-host { height: 100%; }
body.customer-mode .phone-frame {
  width: 100%; max-width: 100%; height: 100%;
  border: none; border-radius: 0; box-shadow: none;
}
body.customer-mode .front-scroll { flex: 1; min-height: 0; overflow-y: auto; overflow-x: hidden; -webkit-overflow-scrolling: touch; }
body.customer-mode .front-bottom { flex: 0 0 auto; }

/* 活动不存在 / 已结束 提示页 */
body.customer-miss .layout { display: none !important; }
.customer-empty {
  position: fixed; inset: 0; z-index: 60;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  background: #F7F8FA; gap: 10px; padding: 0 32px; text-align: center;
}
.customer-empty-ico {
  width: 64px; height: 64px; border-radius: 50%;
  background: #EDEFF3; color: #A2A8B3; font-size: 34px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
}
.customer-empty-title { font-size: 18px; font-weight: 700; color: #33373D; }
.customer-empty-sub { font-size: 13px; color: #8A8F99; line-height: 1.6; }



/* ===== 最新订单列表（前端页面最底部：黑字 + 蓝色小竖条，向上滚动） ===== */
.front-orders { margin: 4px 12px 18px; padding: 10px 12px 8px; background: #fff; border-radius: 8px; }
.fo-title { display: flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 700; color: #1F2329; margin-bottom: 8px; }
.fo-title-bar { width: 4px; height: 14px; border-radius: 2px; background: #0072FF; }
.fo-viewport { height: 102px; overflow: hidden; position: relative; }
.fo-track { display: flex; flex-direction: column; animation: foUp 12s linear infinite; will-change: transform; }
.fo-item { flex: 0 0 auto; display: flex; align-items: center; gap: 8px; height: 34px; box-sizing: border-box; padding-right: 4px; }
.fo-bar { flex: 0 0 auto; width: 3px; height: 14px; border-radius: 1.5px; background: #0072FF; }
.fo-avatar { width: 22px; height: 22px; border-radius: 50%; flex: 0 0 auto; display: flex; align-items: center; justify-content: center; font-size: 12px; box-shadow: 0 0 0 1px rgba(255, 255, 255, .8); }
.fo-name { flex: 0 1 auto; max-width: 6em; font-size: 12px; color: #1F2329; font-weight: 600; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.fo-paid { flex: 1 1 auto; text-align: right; font-size: 12px; color: #1F2329; font-weight: 600; white-space: nowrap; }
.fo-time { flex: 0 0 auto; font-size: 11px; color: #A2A8B3; white-space: nowrap; }
@keyframes foUp { 0% { transform: translateY(0); } 100% { transform: translateY(calc(-100% + 102px)); } }

/* ===== 虚拟用户管理弹层 ===== */
.vm-act { padding: 2px 20px 0; font-size: 13px; color: #8A8F99; }
.vm-desc { padding: 8px 20px 0; font-size: 12px; line-height: 1.6; color: #5B6470; }
.vm-stats { display: flex; gap: 12px; padding: 12px 20px 0; }
.vm-stat { flex: 1; background: #F5F7FA; border-radius: 8px; padding: 10px 12px; }
.vm-stat-label { font-size: 12px; color: #8A8F99; }
.vm-stat-num { font-size: 20px; font-weight: 700; color: #1F2329; margin-top: 4px; font-variant-numeric: tabular-nums; }
.vm-actions { display: flex; gap: 10px; padding: 12px 20px 0; }
.vm-btn { flex: 1; border: 0; border-radius: 8px; padding: 9px 6px; font-size: 13px; font-weight: 600; cursor: pointer; color: #fff; }
.vm-btn-blue { background: #0072FF; }
.vm-btn-green { background: #22BB66; }
.vm-btn-gray { background: #8A8F99; }
.vm-btn:hover { opacity: .88; }
.vm-pool-title { padding: 14px 20px 0; font-size: 12px; font-weight: 700; color: #3D4452; }
.vm-pool { display: flex; flex-wrap: wrap; gap: 8px; padding: 10px 20px 18px; overflow-y: auto; min-height: 120px; max-height: 240px; }
.vm-user { display: flex; align-items: center; gap: 6px; background: #F5F7FA; border-radius: 20px; padding: 5px 10px 5px 6px; }
.vm-user-used { opacity: .55; }
.vm-user-av { width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 14px; flex: 0 0 auto; }
.vm-user-name { font-size: 12px; color: #3D4452; max-width: 8em; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.vm-user-tag { font-size: 10px; color: #22BB66; }
.vm-user-idx { font-size: 10px; color: #B6BCC6; }

/* Emoji 头像展示微调（虚拟用户头像图标放大） */
.avatar-circle-ico { font-size: 20px; line-height: 1; }
/* 真人照片头像：照片填满圆形容器，加载失败时露出渐变底色 */
.avatar-photo { overflow: hidden; padding: 0; }
.avatar-photo img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 50%; }

/* ==================== 域名防封（domain-guard） ==================== */
.dg-card { background: #fff; border-radius: 12px; padding: 16px 18px; margin-bottom: 16px; border: 1px solid #EAF0F6; }
.dg-card-info { background: linear-gradient(135deg, #F0F7FF 0%, #EAF4FF 100%); border-color: #D6E9FF; }
.dg-card-title { font-size: 15px; font-weight: 600; color: #1F2329; margin-bottom: 10px; }
.dg-info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.dg-info-item { background: #fff; border-radius: 8px; padding: 12px 14px; border: 1px solid #E6F2FF; }
.dg-info-t { font-size: 13px; font-weight: 600; color: #0072FF; margin-bottom: 6px; }
.dg-info-c { font-size: 12.5px; line-height: 1.7; color: #4E5969; }
.dg-add-row { display: flex; gap: 10px; margin-bottom: 12px; }
.dg-add-input { flex: 1; }
.dg-add-select { width: 140px; }
.dg-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.dg-table th { text-align: left; color: #86909C; font-weight: 500; padding: 8px 10px; border-bottom: 1px solid #EAF0F6; background: #FAFBFC; }
.dg-table td { padding: 10px; border-bottom: 1px solid #F2F3F5; vertical-align: middle; }
.dg-domain { font-weight: 600; color: #1F2329; font-family: Menlo, Monaco, Consolas, monospace; font-size: 12.5px; }
.dg-note { color: #86909C; font-size: 11.5px; margin-top: 2px; }
.dg-badge { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: 11.5px; line-height: 16px; }
.dg-badge-on { background: #E8F8EE; color: #00B42A; }
.dg-badge-off { background: #F2F3F5; color: #86909C; }
.dg-badge-risk { background: #FFECE8; color: #F53F3F; }
.dg-link { background: none; border: none; color: #0072FF; cursor: pointer; font-size: 13px; padding: 0 2px; }
.dg-link:hover { text-decoration: underline; }
.dg-link-danger { color: #F53F3F; }
.dg-strat-list { display: flex; flex-direction: column; gap: 10px; }
.dg-radio-line { display: flex; align-items: baseline; gap: 8px; padding: 10px 12px; border: 1px solid #EAF0F6; border-radius: 8px; cursor: pointer; }
.dg-radio-line:hover { border-color: #0072FF; background: #F7FBFF; }
.dg-radio-name { font-weight: 600; color: #1F2329; white-space: nowrap; }
.dg-radio-tip { color: #86909C; font-size: 12px; line-height: 1.6; }
.dg-active-box { display: flex; align-items: center; gap: 12px; padding: 14px 16px; background: #F0F7FF; border: 1px dashed #9CC5FF; border-radius: 10px; }
.dg-active-domain { font-size: 15px; font-weight: 700; color: #0072FF; font-family: Menlo, Monaco, Consolas, monospace; flex: 1; }
.dg-active-tip { color: #86909C; font-size: 12px; margin-top: 8px; }
.dg-wx-tip { display: flex; flex-direction: column; gap: 8px; }
.dg-wx-line { font-size: 12.5px; line-height: 1.7; color: #4E5969; background: #FAFBFC; border: 1px solid #F2F3F5; border-radius: 8px; padding: 10px 12px; }
.dg-wx-line b { color: #1F2329; }
.dg-empty { color: #86909C; font-weight: 400; font-size: 13px; }
@media (max-width: 900px) {
  .dg-info-grid { grid-template-columns: 1fr; }
  .dg-add-row { flex-wrap: wrap; }
}

/* ---------------- 账号配置 ---------------- */
.ac-list { margin-top: 0; }
.ac-perm-list { display: flex; flex-direction: column; gap: 8px; margin: 4px 0 10px; }
.ac-perm-check { display: flex; align-items: flex-start; gap: 8px; cursor: pointer; font-size: 13px; color: #3D4452; }
.ac-perm { width: 16px; height: 16px; margin-top: 2px; accent-color: #0072FF; }
.ac-perm-label { display: inline-flex; flex-direction: column; line-height: 1.45; }
.ac-perm-sub { font-size: 12px; color: #8A8F99; font-weight: 400; }
.ac-perm-none { color: #86909C; font-weight: 400; }
.pill-blue-line { border: 1px solid #0072FF; color: #0072FF; background: #fff; }
.pill-blue-line:disabled { border-color: #C9CDD4; color: #C9CDD4; cursor: default; }
/* 活动卡片创建人 */
.act-creator { color: #8A8F99; font-size: 12px; margin: 6px 0 0; }
.act-creator b { color: #3D4452; font-weight: 600; }
/* ============ 云储存 / 消息通知（新增） ============ */
.pill-plain { background: #fff; color: #4A4E57; border-color: #D7DCE3; }
.pill-plain:hover { border-color: #0072FF; color: #0072FF; }
.cloud-test-tip { margin-left: 10px; font-size: 12px; color: #8A94A6; }
.cloud-cards { display: flex; flex-wrap: wrap; gap: 10px; }
.cloud-card { position: relative; flex: 1 1 160px; max-width: 200px; border: 2px solid #E8EBF0; border-radius: 10px; padding: 16px 14px 14px; cursor: pointer; transition: all .2s; background: #fff; }
.cloud-card:hover { box-shadow: 0 4px 14px rgba(0, 114, 255, .12); }
.cloud-card.active { border-color: var(--cp-color, #0072FF); box-shadow: 0 4px 14px rgba(0, 114, 255, .16); }
.cloud-card-name { font-size: 15px; font-weight: 700; }
.cloud-card-badge { position: absolute; top: 10px; right: 10px; font-size: 11px; color: #fff; background: var(--cp-color, #0072FF); border-radius: 10px; padding: 2px 8px; }
.msg-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(420px, 1fr)); gap: 14px; }
.msg-card { background: #fff; border: 1px solid #E8EBF0; border-radius: 12px; padding: 14px 16px; box-shadow: 0 1px 4px rgba(0, 0, 0, .04); }
.msg-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 6px; }
.msg-card-titles { flex: 1; min-width: 0; }
.msg-card-name { font-size: 15px; font-weight: 700; color: #1F2733; }
.msg-card-who { display: inline-block; margin-left: 8px; font-size: 11px; font-weight: 400; color: #0072FF; background: #EAF4FF; border-radius: 8px; padding: 1px 8px; vertical-align: 2px; }
.msg-card-desc { margin-top: 3px; font-size: 12px; color: #8A94A6; }
.msg-card-switch { flex: none; margin: 0; }

/* ---------------- 我的订单提醒（新增） ---------------- */
.nt-card-wrap { margin-bottom: 16px; }
.nt-card-wrap .card-title { display: flex; align-items: center; flex-wrap: wrap; gap: 4px; }
.nt-sub { margin-left: 8px; font-size: 12px; font-weight: 400; color: #0072FF; background: #EAF4FF; border-radius: 10px; padding: 2px 10px; }
.nt-empty-card { margin-bottom: 16px; }
.nt-empty { margin-top: 4px; padding: 18px 14px; font-size: 13px; color: #8A94A6; background: #FAFBFC; border: 1px dashed #D7DCE3; border-radius: 10px; line-height: 1.7; }
.nt-card { border-left: 3px solid #0072FF; }
.nt-card.nt-read { border-left-color: #C9CDD4; opacity: .82; }
.nt-card.nt-unread { box-shadow: 0 2px 10px rgba(0, 114, 255, .14); }
.nt-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.nt-ops { flex: none; }
.nt-body { display: flex; flex-direction: column; gap: 7px; border-top: 1px dashed #EDF0F5; padding-top: 10px; }
.nt-row { display: flex; gap: 10px; font-size: 13px; line-height: 1.5; }
.nt-k { flex: none; width: 78px; color: #8A94A6; }
.nt-v { flex: 1; color: #1F2733; word-break: break-all; white-space: pre-wrap; }
/* 订单通知弹窗 */
.bam-mask { position: fixed; left: 0; top: 0; right: 0; bottom: 0; background: rgba(15, 23, 42, .5); display: flex; align-items: center; justify-content: center; z-index: 4000; }
.ba-list { display: flex; flex-direction: column; gap: 8px; max-height: 46vh; overflow: auto; }
.ba-item { display: flex; align-items: center; gap: 8px; font-size: 13px; color: #3D4452; background: #FAFBFC; border: 1px solid #F2F3F5; border-radius: 8px; padding: 9px 12px; cursor: pointer; }
.ba-item input { width: 15px; height: 15px; accent-color: #0072FF; }
.ba-item span { flex: 1; min-width: 0; }
.ba-item em { flex: none; font-style: normal; font-size: 11px; color: #8A94A6; }
.ba-empty { font-size: 13px; color: #8A94A6; padding: 18px; text-align: center; }

/* ==================== 参数中心 ==================== */
/* C 端前端页面底部广告条：通栏窄条，左 logo + 广告语 + 右侧红色「点击查看」按钮 */
.c-ad-bar { display: flex; align-items: center; gap: 8px; width: 100%; box-sizing: border-box; background: linear-gradient(90deg, #FFF6E8, #FFE8C8); border-top: 1px solid #FFD591; border-bottom: 1px solid #FFD591; padding: 8px 12px; cursor: pointer; user-select: none; }
.c-ad-logo { width: 30px; height: 30px; border-radius: 6px; object-fit: cover; flex: none; }
.c-ad-broken { font-size: 12px; line-height: 1.4; color: #999; }
.c-ad-slogan { flex: 1; min-width: 0; font-size: 14px; font-weight: 600; color: #D4380D; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.c-ad-btn { flex: none; background: #F5222D; color: #fff; border: none; border-radius: 14px; padding: 5px 14px; font-size: 12px; font-weight: 700; cursor: pointer; }
.c-ad-btn:active { transform: scale(.96); }
/* 广告弹窗：覆盖 phone-frame 手机可视区域 */
.c-ad-mask { position: absolute; inset: 0; z-index: 500; background: rgba(15, 20, 30, 0.55); display: flex; align-items: center; justify-content: center; }
.c-ad-modal { background: #fff; border-radius: 14px; padding: 20px 22px 18px; width: 280px; max-width: 84%; text-align: center; box-shadow: 0 12px 40px rgba(0,0,0,0.22); }
.c-ad-modal-title { font-size: 16px; font-weight: 700; color: #1F2733; margin-bottom: 12px; }
.c-ad-modal-qr { min-height: 40px; display: flex; align-items: center; justify-content: center; }
.c-ad-modal-qr img { width: 168px; height: 168px; object-fit: contain; border: 1px solid #EEF0F3; border-radius: 10px; background: #fff; }
.c-ad-modal-phone { margin-top: 12px; font-size: 14px; color: #3D4452; display: flex; align-items: center; justify-content: center; gap: 8px; }
.c-ad-tel { font-weight: 700; color: #0072FF; text-decoration: none; letter-spacing: 0.5px; }
.c-ad-copy { border: 1px solid #0072FF; color: #0072FF; background: #fff; border-radius: 6px; padding: 2px 10px; font-size: 12px; cursor: pointer; }
.c-ad-call { display: block; margin: 12px auto 0; width: 100%; max-width: 180px; padding: 9px 0; border: none; border-radius: 20px; background: linear-gradient(135deg, #F5222D, #FF7875); color: #fff; font-size: 15px; font-weight: 700; text-decoration: none; cursor: pointer; }
.c-ad-call:active { transform: scale(.97); }
.c-ad-close { margin-top: 10px; width: 100%; max-width: 180px; padding: 8px 0; border: none; border-radius: 20px; background: #F2F3F5; color: #5A6472; font-size: 13px; cursor: pointer; }
.c-ad-empty { color: #B0B3B8; font-size: 13px; }
/* C端活动详情页底部浅灰技术支持文案 */
.front-support { text-align: center; font-size: 11px; color: #B0B3B8; padding: 14px 0 20px; line-height: 1.6; }
/* 参数中心配置页上传行 */
.param-upload-row { display: flex; align-items: center; gap: 10px; }
.param-upload-name { font-size: 12px; color: #8A94A6; }

/* ================= 战队管理（后台） ================= */
.tm-grid { display: grid; grid-template-columns: 1.25fr 1fr; gap: 16px; align-items: start; }
.tm-col { min-width: 0; }
.tm-block { background: #fff; border: 1px solid #EEF0F4; border-radius: 10px; padding: 16px; }
.tm-block-title { font-size: 14px; font-weight: 600; color: #2B2F36; margin-bottom: 12px; }
.tm-block-title.sub { margin-top: 16px; font-size: 13px; color: #6B7280; }
.tm-count { font-weight: 400; color: #9AA3B2; margin-left: 4px; }
.tm-form { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.tm-input { padding: 8px 10px; border: 1px solid #E3E6EB; border-radius: 6px; font-size: 13px; color: #333; background: #fff; outline: none; min-width: 0; }
.tm-input:focus { border-color: #0072FF; box-shadow: 0 0 0 2px rgba(0, 114, 255, .12); }
.tm-form .tm-input { flex: 1 1 120px; }
.tm-form .btn-pill { flex: 0 0 auto; }
.tm-emp-list { display: flex; flex-direction: column; gap: 8px; margin-top: 6px; }
.tm-emp { display: flex; align-items: center; gap: 10px; background: #F8F9FB; border: 1px solid #EEF0F4; border-radius: 8px; padding: 10px 12px; }
.tm-emp-avatar { width: 34px; height: 34px; border-radius: 50%; color: #fff; font-size: 14px; font-weight: 600; display: flex; align-items: center; justify-content: center; flex: 0 0 34px; }
.tm-emp-main { flex: 1; min-width: 0; }
.tm-emp-name { font-size: 13px; font-weight: 600; color: #2B2F36; display: flex; align-items: center; gap: 6px; }
.tm-emp-tag { font-size: 11px; color: #fff; border-radius: 4px; padding: 1px 6px; font-weight: 400; }
.tm-emp-tag.gray { background: #9AA0A6; }
.tm-emp-phone { font-size: 12px; color: #9AA3B2; margin-top: 2px; }
.tm-emp-ops { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.tm-emp-grp { padding: 5px 6px; border: 1px solid #E3E6EB; border-radius: 6px; font-size: 12px; color: #333; background: #fff; max-width: 110px; }
.tm-emp-ops .pill { padding: 4px 9px; font-size: 12px; }
.tm-grp-list { display: flex; flex-direction: column; gap: 10px; margin-top: 6px; }
.tm-grp { border: 1px solid #EEF0F4; border-radius: 10px; padding: 12px; background: #fff; }
.tm-grp-head { display: flex; align-items: center; gap: 10px; }
.tm-grp-dot { width: 10px; height: 10px; border-radius: 50%; flex: 0 0 10px; }
.tm-grp-mid { flex: 1; min-width: 0; }
.tm-grp-name { font-size: 14px; font-weight: 600; color: #2B2F36; }
.tm-grp-slogan { font-size: 12px; color: #9AA3B2; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tm-grp-count { font-size: 12px; color: #0072FF; background: #EAF4FF; border-radius: 10px; padding: 2px 9px; flex: 0 0 auto; }
.tm-grp-members { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.tm-grp-member { font-size: 12px; color: #4A4E57; background: #F2F3F5; border-radius: 12px; padding: 3px 10px; }
.tm-grp-member.empty { color: #B0B3B8; font-style: italic; }
.tm-empty { text-align: center; color: #9AA3B2; font-size: 13px; padding: 26px 0; }
.tm-grp-ops { display: flex; gap: 6px; flex: 0 0 auto; }
.tm-grp-op { font-size: 12px; padding: 3px 9px; border: 1px solid #E3E6EB; border-radius: 6px; background: #fff; color: #4A4E57; cursor: pointer; }
.tm-grp-op:hover { border-color: #0072FF; color: #0072FF; }
.tm-grp-op.danger:hover { border-color: #E74C3C; color: #E74C3C; }
.tm-emp-op { font-size: 12px; padding: 4px 10px; border: 1px solid #0072FF; border-radius: 6px; background: #fff; color: #0072FF; cursor: pointer; flex: 0 0 auto; }
.tm-emp-op:hover { background: #EAF4FF; }
.tm-sub { width: 460px; max-width: 94vw; }
.tm-sub-body { padding: 14px 18px 8px; overflow: auto; }
.tm-sub .tm-form { display: flex; flex-direction: column; gap: 4px; }
.tm-label { font-size: 12px; color: #9AA3B2; margin-top: 6px; }
.tm-del-title { font-size: 14px; color: #2B2F36; font-weight: 600; margin: 4px 0 10px; }
.tm-del-tip { font-size: 12px; color: #9AA3B2; margin: 8px 0 2px; }
.tm-warn { font-size: 13px; color: #E74C3C; background: #FFF4F4; border: 1px solid #FFD7D7; border-radius: 8px; padding: 8px 10px; margin: 6px 0; }
.tm-radio-list { display: flex; flex-direction: column; gap: 8px; margin: 6px 0 2px; }
.tm-radio-item { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border: 1px solid #E3E6EB; border-radius: 8px; cursor: pointer; font-size: 13px; color: #2B2F36; }
.tm-radio-item.cur { background: #F2F3F5; color: #9AA3B2; }
.tm-radio-item:has(input:checked) { border-color: #0072FF; background: #EAF4FF; }
.tm-radio-dot { width: 10px; height: 10px; border-radius: 50%; flex: 0 0 10px; }
.tm-radio-name { flex: 1; min-width: 0; }
.tm-act-select { padding: 7px 10px; border: 1px solid #E3E6EB; border-radius: 6px; font-size: 13px; color: #333; background: #fff; min-width: 180px; }

/* ================= 战队PK（C端商家中心-工作台） ================= */
.ms-pk-module { background: #fff; border-radius: 12px; margin-top: 12px; padding: 14px; }
.ms-pk-title { font-size: 15px; font-weight: 700; color: #222; display: flex; align-items: center; gap: 8px; }
.ms-pk-live { font-size: 11px; color: #FF4D4F; background: #FFF1F0; border-radius: 8px; padding: 1px 7px; font-weight: 600; }
.ms-pk-live::before { content: ''; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: #FF4D4F; margin-right: 4px; vertical-align: 1px; animation: msPkBlink 1.2s infinite; }
@keyframes msPkBlink { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }
.ms-pk-sub { font-size: 12px; color: #8A94A6; margin: 12px 0 6px; font-weight: 600; }
.ms-pk-grp-list, .ms-pk-emp-list { display: flex; flex-direction: column; gap: 8px; }
.ms-pk-grp, .ms-pk-emp { display: flex; align-items: center; gap: 9px; background: #F8F9FB; border: 1px solid #EEF0F4; border-radius: 10px; padding: 10px 12px; }
.ms-pk-rank { width: 26px; height: 26px; border-radius: 50%; background: #F2F3F5; color: #6B7280; font-size: 12px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex: 0 0 26px; }
.ms-pk-rank.small { width: 22px; height: 22px; flex-basis: 22px; font-size: 11px; }
.ms-pk-dot { width: 10px; height: 10px; border-radius: 50%; flex: 0 0 10px; }
.ms-pk-grp-main, .ms-pk-emp-main { flex: 1; min-width: 0; }
.ms-pk-grp-name, .ms-pk-emp-name { font-size: 13px; font-weight: 600; color: #2B2F36; display: flex; align-items: center; gap: 6px; }
.ms-pk-grp-slogan { font-size: 11px; color: #9AA3B2; margin-top: 2px; }
.ms-pk-emp-avatar { width: 28px; height: 28px; border-radius: 50%; color: #fff; font-size: 12px; font-weight: 600; display: flex; align-items: center; justify-content: center; flex: 0 0 28px; }
.ms-pk-emp-phone { font-size: 11px; color: #9AA3B2; margin-top: 2px; }
.ms-pk-emp-tag { font-size: 10px; color: #fff; border-radius: 4px; padding: 1px 6px; font-weight: 400; }
.ms-pk-grp-num, .ms-pk-emp-num { text-align: right; flex: 0 0 auto; }
.ms-pk-grp-num b, .ms-pk-emp-num b { display: block; font-size: 14px; color: #FF6A00; font-weight: 700; }
.ms-pk-grp-num span, .ms-pk-emp-num span { font-size: 11px; color: #9AA3B2; }
.ms-pk-refresh { width: 100%; margin-top: 12px; padding: 8px 0; border: 1px solid #B8DCFF; background: #EAF4FF; color: #0072FF; border-radius: 8px; font-size: 13px; font-weight: 600; cursor: pointer; }
.ms-pk-refresh:hover { background: #D8ECFF; }

/* 战队PK 两级折叠（第一级：整体模块折叠，参照分销排名 .ms-rank-module 样式） */
.ms-pk-module-head { display: flex; align-items: center; gap: 10px; padding: 2px 2px 6px; cursor: pointer; }
.ms-pk-module-head:active { background: #FAFBFC; }
.ms-pk-module-head .ms-pk-title { flex: 1; min-width: 0; }
.ms-pk-module-count { font-size: 11px; color: #9AA3B2; background: #F0F2F5; border-radius: 999px; padding: 2px 9px; flex: 0 0 auto; }
.ms-pk-module-head .ms-rank-arrow { transition: transform .25s ease; }
.ms-pk-module.open .ms-pk-module-head .ms-rank-arrow { transform: rotate(90deg); }
.ms-pk-module-body { display: none; }
.ms-pk-module.open .ms-pk-module-body { display: block; }

/* 战队PK 两级折叠（第二级：各战队独立折叠，收起只显示战队名/销售额/单数） */
.ms-pk-grp { display: block; background: #F8F9FB; border: 1px solid #EEF0F4; border-radius: 10px; padding: 0; overflow: hidden; }
.ms-pk-grp-head { display: flex; align-items: center; gap: 9px; padding: 10px 12px; cursor: pointer; }
.ms-pk-grp-head:active { background: #F1F3F7; }
.ms-pk-grp-head .ms-rank-arrow { transition: transform .25s ease; }
.ms-pk-grp.open .ms-pk-grp-head .ms-rank-arrow { transform: rotate(90deg); }
.ms-pk-grp-body { display: none; border-top: 1px dashed #E4E8EE; background: #FDFDFE; padding: 8px 10px 10px; }
.ms-pk-grp.open .ms-pk-grp-body { display: block; }
.ms-pk-grp-sub { font-size: 11px; color: #9AA3B2; font-weight: 600; margin: 2px 0 6px; }

/* 用户管理弹层：已开通员工标签 */
.um-emp-tag { flex: none; font-size: 11px; color: #0B9B5E; background: #E9F8F0; border-radius: 999px; padding: 1px 7px; }
.um-emp-tag.btn { display: inline-block; line-height: 22px; }

/* 员工自助入驻页（C 端扫码进入） */
.ej-page { background: #F5F7FA; }
.ej-hero { margin: 14px 14px 0; border-radius: 12px; padding: 18px 16px; background: linear-gradient(135deg, #0072FF, #3E9BFF); color: #fff; }
.ej-hero-title { font-size: 16px; font-weight: 700; }
.ej-hero-sub { margin-top: 6px; font-size: 12px; opacity: .9; }
.ej-form { margin: 14px; border-radius: 12px; background: #fff; padding: 16px 14px; }
.ej-err { display: none; margin-bottom: 10px; padding: 8px 10px; border-radius: 8px; background: #FFF1F0; color: #E5484D; font-size: 12px; }
.ej-field { margin-bottom: 14px; }
.ej-field label { display: block; font-size: 13px; font-weight: 600; color: #1F2733; margin-bottom: 6px; }
.ej-input { width: 100%; box-sizing: border-box; height: 40px; padding: 0 12px; border: 1px solid #DDE2EA; border-radius: 8px; font-size: 14px; color: #1F2733; background: #fff; outline: none; }
.ej-input:focus { border-color: #0072FF; box-shadow: 0 0 0 2px rgba(0, 114, 255, .12); }
.ej-tip { margin-top: 6px; font-size: 12px; color: #9AA3B2; }
.ej-submit { width: 100%; margin-top: 4px; }
.ej-done { font-size: 16px; font-weight: 700; color: #12A150; text-align: center; padding: 10px 0 4px; }
.ej-done-sub { margin-top: 8px; font-size: 13px; color: #4B5563; line-height: 1.7; text-align: center; }

/* 开通员工弹窗 */
.eom-mask { position: fixed; z-index: 2100; inset: 0; background: rgba(17,24,39,.45); display: flex; align-items: center; justify-content: center; }
.eom-modal { width: 640px; max-width: 94vw; background: #fff; border-radius: 14px; padding: 22px 24px; box-shadow: 0 12px 40px rgba(17,24,39,.18); }
.eom-modal h3 { font-size: 16px; font-weight: 700; color: #1F2733; margin: 0 0 8px; }
.eom-sub { font-size: 13px; color: #6B7280; line-height: 1.6; margin: 0 0 14px; }
.eo-list { max-height: 240px; overflow: auto; border: 1px solid #EDEFF3; border-radius: 10px; padding: 8px; display: flex; flex-direction: column; gap: 6px; }
.eo-item { display: flex; align-items: center; gap: 8px; background: #F8F9FB; border: 1px solid #EEF0F4; border-radius: 8px; padding: 8px 10px; cursor: pointer; }
.eo-item:has(input:checked) { border-color: #0072FF; background: #F0F7FF; }
.eo-item input { flex: 0 0 auto; }
.eo-dot { width: 10px; height: 10px; border-radius: 50%; flex: 0 0 10px; }
.eo-grp-name { font-size: 13px; font-weight: 600; color: #2B2F36; }
.eo-item em { font-size: 11px; color: #9AA3B2; font-style: normal; margin-left: auto; }
.eo-empty { font-size: 12px; color: #9AA3B2; padding: 4px 2px; }
.eom-foot { display: flex; justify-content: flex-end; gap: 10px; margin-top: 16px; }

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

/* ============================================================
   活动数据大屏（深色科技风）
   ============================================================ */
/* 大屏整页深色容器：抵消 .content 内边距，铺满剩余视口 */
.dash-page {
  position: relative;
  margin: -20px -24px;
  min-height: calc(100vh - 56px);
  padding-bottom: 30px;
  background:
    radial-gradient(1200px 520px at 85% -8%, rgba(53,199,255,.16), transparent 60%),
    radial-gradient(900px 430px at -10% 110%, rgba(138,92,246,.13), transparent 60%),
    linear-gradient(180deg, #0B1A33 0%, #0A1428 100%);
  overflow: hidden;
}
.dash-page::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(90,120,210,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(90,120,210,.06) 1px, transparent 1px);
  background-size: 34px 34px;
}
.dash-page > * { position: relative; }
.dash-top {
  display: flex; align-items: center; gap: 14px;
  padding: 18px 26px; border-bottom: 1px solid rgba(255,255,255,.08);
  background: rgba(12,18,44,.92);
}
.dash-back {
  width: 40px; height: 40px; border-radius: 10px; flex: 0 0 auto;
  background: rgba(53,199,255,.12); color: #35C7FF; font-size: 26px; line-height: 36px;
  border: 1px solid rgba(53,199,255,.35); cursor: pointer; text-align: center;
  transition: all .2s;
}
.dash-back:hover { background: rgba(53,199,255,.28); transform: translateX(-2px); }
.dash-title-wrap { flex: 1 1 auto; min-width: 0; }
.dash-title { font-size: 22px; font-weight: 700; letter-spacing: 1px; color: #fff; }
.dash-sub { font-size: 12.5px; color: #8FA3C8; margin-top: 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dash-live {
  flex: 0 0 auto; display: inline-flex; align-items: center; gap: 7px;
  font-size: 13px; color: #35FFB2; border: 1px solid rgba(53,255,178,.4);
  border-radius: 999px; padding: 6px 14px; background: rgba(53,255,178,.08);
}
.dash-live-dot {
  width: 8px; height: 8px; border-radius: 50%; background: #35FFB2;
  animation: dash-breathe 1.6s ease-in-out infinite;
}
@keyframes dash-breathe {
  0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(53,255,178,.6); }
  50% { opacity: .45; box-shadow: 0 0 10px 4px rgba(53,255,178,.25); }
}
.dash-stats {
  display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px;
  padding: 16px 26px 0;
}
.dash-stat {
  position: relative; overflow: hidden;
  border-radius: 14px; padding: 16px 16px 15px;
  background: linear-gradient(160deg, rgba(28,38,82,.92), rgba(16,22,52,.95));
  border: 1px solid rgba(90,120,210,.25);
}
.dash-stat::before {
  content: ''; position: absolute; right: -26px; top: -26px;
  width: 90px; height: 90px; border-radius: 50%;
  background: radial-gradient(circle, rgba(53,199,255,.16), transparent 70%);
}
.dash-stat-label { font-size: 12px; color: #8FA3C8; letter-spacing: 1px; }
.dash-stat-val { font-size: 27px; font-weight: 800; font-variant-numeric: tabular-nums; margin-top: 8px; letter-spacing: .5px; }
.dash-grid {
  display: grid; grid-template-columns: 1.35fr 1fr; gap: 14px;
  padding: 14px 26px 26px;
}
.dash-panel {
  border-radius: 14px; padding: 14px 16px;
  background: linear-gradient(160deg, rgba(24,33,72,.9), rgba(14,19,46,.94));
  border: 1px solid rgba(90,120,210,.22);
  min-height: 120px;
}
.dash-panel-trend { grid-column: 1 / 3; }
.dash-panel-orders { grid-row: span 2; }
.dash-panel-title { font-size: 14px; font-weight: 700; color: #D7E3FF; margin-bottom: 10px; }
.dash-panel-title em { font-style: normal; font-size: 11px; color: #6E84B5; font-weight: 400; margin-left: 8px; }
.dash-svg { width: 100%; height: auto; display: block; }
.dash-svg-label { fill: #7E93BE; font-size: 12px; }
.dash-svg-axis { fill: #6E84B5; font-size: 11px; }
.dash-empty { font-size: 13px; color: #6E84B5; text-align: center; padding: 30px 0; }
.dash-order-row {
  display: flex; align-items: center; gap: 10px;
  font-size: 12.5px; color: #C7D6F5; padding: 8px 4px;
  border-bottom: 1px dashed rgba(110,132,181,.22);
}
.dash-order-row:last-child { border-bottom: none; }
.dash-order-idx {
  width: 20px; height: 20px; border-radius: 6px; flex: 0 0 auto; text-align: center; line-height: 20px;
  font-size: 11px; font-weight: 700; color: #35C7FF; background: rgba(53,199,255,.12);
}
.dash-order-name { width: 110px; flex: 0 0 auto; overflow: hidden; }
.dash-order-name em { display: block; font-style: normal; font-size: 10.5px; color: #6E84B5; margin-top: 1px; }
.dash-order-goods { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #B9CAF0; }
.dash-badge { font-size: 10px; color: #9B8CFF; border: 1px solid rgba(155,140,255,.5); border-radius: 4px; padding: 0 5px; margin-left: 6px; vertical-align: 1px; }
.dash-order-amt { flex: 0 0 auto; font-weight: 700; color: #35FFB2; font-variant-numeric: tabular-nums; }
.dash-order-time { flex: 0 0 auto; font-size: 11px; color: #6E84B5; font-variant-numeric: tabular-nums; }
.dash-order-status { flex: 0 0 auto; font-size: 11px; border-radius: 999px; padding: 2px 9px; }
.dash-order-status.ok { color: #35FFB2; background: rgba(53,255,178,.12); }
.dash-order-status.wait { color: #FFB020; background: rgba(255,176,32,.12); }
.dash-rank-row {
  display: flex; align-items: center; gap: 10px;
  font-size: 13px; color: #C7D6F5; padding: 8px 2px;
  border-bottom: 1px dashed rgba(110,132,181,.22);
}
.dash-rank-row:last-child { border-bottom: none; }
.dash-rank-no {
  width: 22px; height: 22px; border-radius: 7px; flex: 0 0 auto;
  text-align: center; line-height: 22px; font-size: 12px; font-weight: 800; color: #10182F;
}
.dash-rank-name { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dash-rank-name em { display: block; font-style: normal; font-size: 10.5px; color: #6E84B5; margin-top: 1px; }
.dash-rank-val { flex: 0 0 auto; font-weight: 700; color: #35FFB2; font-variant-numeric: tabular-nums; }

/* 新订单弹窗横幅 */
#dashToastBox { position: fixed; top: 22px; right: 22px; z-index: 9999; pointer-events: none; }
.dash-toast {
  pointer-events: auto;
  display: flex; align-items: flex-start; gap: 10px;
  width: 320px; padding: 12px 14px; border-radius: 12px;
  background: linear-gradient(140deg, #16204A, #0D1330);
  border: 1px solid rgba(53,199,255,.5);
  box-shadow: 0 8px 30px rgba(0,0,0,.45), 0 0 18px rgba(53,199,255,.18);
  opacity: 0; transform: translateX(30px) scale(.96);
  transition: opacity .28s ease, transform .28s ease;
}
.dash-toast.show { opacity: 1; transform: translateX(0) scale(1); }
.dash-toast-icon { width: 38px; height: 38px; flex: 0 0 auto; border-radius: 50%; background: rgba(53,199,255,.14); text-align: center; line-height: 38px; font-size: 18px; animation: dash-wiggle 1.2s ease-in-out infinite; }
@keyframes dash-wiggle {
  0%, 100% { transform: rotate(0); } 25% { transform: rotate(14deg); } 60% { transform: rotate(-10deg); } 85% { transform: rotate(6deg); }
}
.dash-toast-body { flex: 1 1 auto; min-width: 0; }
.dash-toast-title { font-size: 15px; font-weight: 800; color: #35FFB2; letter-spacing: 1px; }
.dash-toast-desc { font-size: 12px; color: #C7D6F5; margin-top: 4px; line-height: 1.5; }
.dash-toast-desc b { color: #35C7FF; font-variant-numeric: tabular-nums; }
.dash-toast-close { flex: 0 0 auto; width: 22px; height: 22px; border: none; cursor: pointer; border-radius: 6px; background: rgba(255,255,255,.1); color: #8FA3C8; font-size: 14px; line-height: 20px; }
.dash-toast-close:hover { background: rgba(255,255,255,.2); color: #fff; }

@media (max-width: 1200px) {
  .dash-stats { grid-template-columns: repeat(3, 1fr); }
  .dash-grid { grid-template-columns: 1fr; }
  .dash-panel-trend { grid-column: 1 / 2; }
  .dash-panel-orders { grid-row: auto; }
}

/* ===== 独立窗口数据大屏（dashboard.html）：全屏铺满 + 顶部汇总层级重排 ===== */
.dash-standalone { margin: 0; padding: 0; background: #0A1428; min-height: 100vh; overflow-x: hidden; }
.dash-standalone .dash-page { margin: 0; min-height: 100vh; }
.dash-standalone .dash-page::before { background-size: 42px 42px; }
.dash-standalone .dash-top { padding: 18px 34px; }
.dash-standalone .dash-stats { padding: 20px 34px 0; }
.dash-standalone .dash-grid { padding: 16px 34px 30px; }

/* 顶部汇总层级：总订单数主数字通栏放大；浏览量/待付款数次卡中等醒目；销售业绩/转化率常规卡 */
.dash-stats { grid-template-columns: 1.25fr 1.25fr 1fr 1fr; }
.dash-hero {
  grid-column: 1 / -1;
  display: flex; align-items: center; gap: 24px;
  border-radius: 16px; padding: 20px 28px;
  background:
    radial-gradient(360px 120px at 22% 50%, rgba(53,199,255,.30), transparent 70%),
    linear-gradient(135deg, rgba(138,92,246,.30), rgba(22,32,72,.95) 60%, rgba(53,199,255,.16));
  border: 1px solid rgba(138,92,246,.55);
  box-shadow: 0 0 30px rgba(138,92,246,.22), inset 0 0 40px rgba(53,199,255,.08);
}
.dash-hero::before {
  content: ''; position: absolute; left: -40px; top: -40px;
  width: 140px; height: 140px; border-radius: 50%;
  background: radial-gradient(circle, rgba(53,199,255,.22), transparent 70%);
}
.dash-hero-label { font-size: 14px; color: #C7D6F5; letter-spacing: 3px; white-space: nowrap; }
.dash-hero-val { font-size: 62px; font-weight: 900; line-height: 1; color: #fff; font-variant-numeric: tabular-nums; letter-spacing: 1px; text-shadow: 0 0 24px rgba(53,199,255,.6); }
.dash-hero-tip { margin-left: auto; font-size: 12px; color: #8FA3C8; letter-spacing: 1px; }
.dash-stat.sub { border-color: rgba(53,199,255,.55); background: linear-gradient(160deg, rgba(24,44,92,.95), rgba(14,20,52,.95)); box-shadow: 0 0 18px rgba(53,199,255,.10); }
.dash-stat.sub .dash-stat-label { color: #9FC7FF; font-size: 13px; }
.dash-stat.sub .dash-stat-val { font-size: 38px; }

/* ===== 三段式重排（本轮）：上排三栏（最新订单列表 | 订单总数主数字 | 战队业绩榜），第二排次卡，底部左商品榜/右分享榜 ===== */
.dash-upper {
  display: grid; grid-template-columns: 1.45fr 0.95fr 1.05fr; gap: 14px;
  padding: 16px 26px 0;
}
.dash-hero-wrap { display: flex; align-items: center; justify-content: center; min-width: 0; }
.dash-hero {
  grid-column: auto;
  width: 100%; min-height: 100%;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px;
  text-align: center;
  border-radius: 16px; padding: 22px 24px;
  background:
    radial-gradient(360px 120px at 50% 40%, rgba(53,199,255,.30), transparent 70%),
    linear-gradient(135deg, rgba(138,92,246,.30), rgba(22,32,72,.95) 60%, rgba(53,199,255,.16));
  border: 1px solid rgba(138,92,246,.55);
  box-shadow: 0 0 30px rgba(138,92,246,.22), inset 0 0 40px rgba(53,199,255,.08);
  position: relative; overflow: hidden;
}
.dash-hero::before {
  content: ''; position: absolute; left: 50%; top: -42px;
  width: 190px; height: 150px; transform: translateX(-50%);
  background: radial-gradient(circle, rgba(53,199,255,.22), transparent 70%);
}
.dash-hero-label { font-size: 14px; color: #C7D6F5; letter-spacing: 3px; white-space: nowrap; }
.dash-hero-val { font-size: 64px; font-weight: 900; line-height: 1; color: #fff; font-variant-numeric: tabular-nums; letter-spacing: 1px; text-shadow: 0 0 24px rgba(53,199,255,.6); }
.dash-hero-tip { font-size: 12px; color: #8FA3C8; letter-spacing: 1px; margin-left: 0; white-space: nowrap; }

.dash-panel-orders { grid-row: auto; }

.dash-lower {
  display: grid; grid-template-columns: 1fr 1fr; gap: 14px;
  padding: 14px 26px 26px;
}

/* 全屏按钮（标题栏）：进入=全屏 / 退出=还原，图标文案随 fullscreenchange 同步 */
.dash-full {
  flex: 0 0 auto; display: inline-flex; align-items: center; gap: 6px;
  font-size: 13px; color: #35C7FF; border: 1px solid rgba(53,199,255,.45);
  border-radius: 999px; padding: 7px 15px; background: rgba(53,199,255,.10);
  cursor: pointer; transition: all .2s; white-space: nowrap;
}
.dash-full:hover { background: rgba(53,199,255,.24); }
.dash-full.on { color: #FFB020; border-color: rgba(255,176,32,.5); background: rgba(255,176,32,.12); }

/* 独立窗口（dashboard.html）内边距覆盖 */
.dash-standalone .dash-upper { padding: 20px 34px 0; }
.dash-standalone .dash-stats { padding: 14px 34px 0; }
.dash-standalone .dash-lower { padding: 14px 34px 30px; }

@media (max-width: 1200px) {
  .dash-upper { grid-template-columns: 1fr; }
  .dash-lower { grid-template-columns: 1fr; }
  .dash-hero { min-height: 180px; }
}
