/* === style block #1 === */

/* ============================================================
   数字卡券商城 · 商家后台 · 全局框架
   设计参数取自参考站实测（像素取样）
   ============================================================ */
:root{
  /* v98z 配色重做：全部视觉值收口到这一处，换色调只改这里。
     主色保留品牌蓝识别度但收敛刺眼度（白字对比 5.2:1 → 6.5:1）；
     中性色整体加深一档提升可读性；语义色统一到同一饱和度。 */
  --blue:#2F55D4;
  --blue-h:#3E67E6;
  --blue-l:#EDF2FF;
  --bg:#F4F6FA;
  --card:#FFFFFF;
  --text:#252E3D;
  --text-2:#5B6573;
  --muted:#7C8698;
  --menu:#4A5468;
  --group:#98A1B0;
  --line:#EDF0F5;
  --line2:#E3E8F0;
  --red:#E5544F;
  --red-l:#FDECEC;
  --green:#0FA97D;
  --green-l:#E7F8F1;
  --yellow:#F4C430;
  --yellow-l:#FFF6E1;
  --sky:#3B82F6;
  --notice-bg:#E7F8F1;
  --notice-tx:#14654A;
  --topbar-h:70px;
  --side-w:230px;
  --radius:10px;
  --radius-sm:8px;
  --radius-pill:999px;
  --shadow:0 1px 2px rgba(16,24,40,.04),0 8px 24px rgba(16,24,40,.06);
  --shadow-sm:0 1px 2px rgba(16,24,40,.05);
}

*{margin:0;padding:0;box-sizing:border-box;}
html,body{height:100%;}
body{
  font-family:"Nunito","Microsoft YaHei","PingFang SC","Helvetica Neue",Arial,sans-serif;
  background:var(--bg);color:var(--text);font-size:14px;-webkit-font-smoothing:antialiased;
}
a{text-decoration:none;color:inherit;cursor:pointer;}
ul{list-style:none;}
svg{display:block;}

/* ================= 顶栏 ================= */
.topbar{
  position:fixed;top:0;left:0;right:0;height:var(--topbar-h);
  background:#fff;display:flex;align-items:center;padding:0 24px;z-index:100;
}
.brand{display:flex;align-items:center;gap:10px;width:calc(var(--side-w) - 24px);}
.brand-badge{
  width:34px;height:34px;border-radius:5px;background:#E7141A;
  color:#fff;font-size:11px;font-weight:700;line-height:1.05;
  display:flex;align-items:center;justify-content:center;
  text-align:center;letter-spacing:0;flex-shrink:0;
}
.brand-name{font-size:17px;font-weight:700;color:#E7141A;letter-spacing:.5px;}
.icon-btn{
  width:38px;height:38px;border:none;background:transparent;border-radius:6px;
  color:#6B7280;cursor:pointer;display:flex;align-items:center;justify-content:center;position:relative;
}
.icon-btn:hover{background:#F3F4F8;color:var(--blue);}
.topbar-right{margin-left:auto;display:flex;align-items:center;gap:4px;}
.badge-dot{
  position:absolute;top:6px;right:6px;min-width:15px;height:15px;border-radius:8px;
  background:#FF3B30;color:#fff;font-size:10px;line-height:15px;text-align:center;padding:0 3px;
}
.user-chip{display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:20px;cursor:pointer;}
.user-chip:hover{background:#F3F4F8;}
.avatar{
  width:32px;height:32px;border-radius:50%;overflow:hidden;flex-shrink:0;
  background:linear-gradient(135deg,#F7C08A,#E08C4E);
  color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;
}
.user-chip .uname{font-size:14px;color:var(--text);}
.chev{color:#9AA0AE;}
.user-chip{position:relative;}
.user-menu{
  position:absolute;top:calc(100% + 6px);right:0;min-width:120px;
  background:#fff;border-radius:8px;box-shadow:0 6px 24px rgba(22,28,45,.12);
  border:1px solid #eef0f4;padding:6px;display:none;z-index:200;
}
.user-menu.open{display:block;}
.user-menu-item{
  padding:8px 12px;border-radius:6px;font-size:13px;color:var(--text);
  cursor:pointer;white-space:nowrap;
}
.user-menu-item:hover{background:#FDF0F0;color:#FF3B30;}

/* ================= 左侧菜单 ================= */
.sidebar{
  position:fixed;top:var(--topbar-h);left:0;bottom:0;width:var(--side-w);
  background:#fff;overflow-y:auto;overflow-x:hidden;
  padding:14px 20px 30px;z-index:90;
  box-shadow:0 0 14px rgba(84,90,109,.07);
  transition:width .2s ease,padding .2s ease;
}
.sidebar::-webkit-scrollbar{width:0;}
.nav-group{
  padding:16px 0 8px 9px;font-size:12px;color:var(--group);
  white-space:nowrap;letter-spacing:.3px;
}
.nav-group:first-child{padding-top:2px;}
.nav-item{
  display:flex;align-items:center;gap:16px;height:42px;
  padding:0 17px;border-radius:6px;color:var(--menu);
  font-size:14px;cursor:pointer;user-select:none;white-space:nowrap;
  transition:background .15s,color .15s;
}
.nav-item:hover{background:#F3F4F8;color:var(--blue);}
.nav-item.active,.nav-item.open{background:var(--blue);color:#fff;}
.nav-item.active svg,.nav-item.open svg{stroke:#fff;}
.nav-item .arrow{margin-left:auto;transition:transform .2s ease;color:#B4B9C6;}
.nav-item.active .arrow,.nav-item.open .arrow{color:#fff;transform:rotate(180deg);}
.nav-item svg{width:16px;height:16px;stroke:currentColor;fill:none;flex-shrink:0;}
/* v99z63：左侧导航待办角标（分组标题 / 父级菜单 / 超管控制台那一条） */
.nav-dot{display:inline-block;min-width:16px;height:16px;padding:0 4px;margin-left:6px;border-radius:8px;background:#FF4D4F;color:#fff;font-size:11px;line-height:16px;text-align:center;font-style:normal;font-weight:600;box-sizing:border-box;vertical-align:middle;}
.nav-item.active .nav-dot,.nav-item.open .nav-dot{background:#fff;color:var(--blue);}
/* v99z63b：三组「添加一行」统一版式 —— 固定等宽 92px（实测 .fld-ctrl 仅 351px，最紧的
   「代理分成规则」组在 92px 下仍余约 7px），主行 nowrap 不换行；选择器加 .rule-row 前缀把权重
   提到 (0,3,0)，稳定压过 .fld-ctrl .inp{width:100%} 与 .btn。 */
.rr-main{display:flex;flex-wrap:nowrap;gap:6px;align-items:center;}
.rule-row .rr-main>.inp{width:92px;min-width:0;flex:0 0 92px;box-sizing:border-box;}
.rule-row .rr-lbl{color:#64748b;font-size:12px;flex:0 0 auto;white-space:nowrap;}
.rule-row .rr-del{padding:3px 8px;font-size:12px;line-height:18px;flex:0 0 auto;white-space:nowrap;margin-left:auto;}
.rule-row .split-hint{display:block;font-size:12px;color:#94a3b8;line-height:1.6;margin-top:2px;}
@media (max-width:768px){.rule-row .rr-main{flex-wrap:wrap;}.rule-row .rr-main>.inp{width:auto;flex:1 1 88px;min-width:56px;max-width:none;}.rule-row .rr-del{margin-left:0;}}
/* v99z64：每行「你拿 X%」—— 代理拿 R%，货主自动拿 100−R%（与别的行毫无关系） */
.rule-row .split-mine{color:#137333;font-weight:600;}

/* 子菜单（手风琴：同时只展开一个） */
.submenu{max-height:0;overflow:hidden;transition:max-height .25s ease;}
.submenu-inner{padding:4px 0 6px;}
.sub-item{
  display:block;height:40px;line-height:40px;padding-left:41px;
  font-size:14px;color:var(--menu);border-radius:6px;white-space:nowrap;
  transition:color .15s;
}
.sub-item:hover{color:var(--blue);}
.sub-item.active{color:var(--blue);font-weight:700;}

/* 折叠态 */
body.collapsed .sidebar{width:64px;padding:14px 10px 30px;}
body.collapsed .brand{width:40px;}
body.collapsed .brand-name{display:none;}
body.collapsed .nav-group{visibility:hidden;height:30px;padding:8px 0;}
body.collapsed .nav-item{padding:0 12px;gap:0;}
body.collapsed .nav-item .label,body.collapsed .nav-item .arrow{display:none;}
body.collapsed .submenu{max-height:0 !important;}
body.collapsed .main{margin-left:64px;}

/* ================= 主区域 ================= */
.main{
  margin-left:var(--side-w);min-height:100vh;
  /* 参考站实测：内容区左右各 24px（卡片 254~1416，宽 1162 @1440 视口） */
  padding:calc(var(--topbar-h) + 24px) 24px 0;
  transition:margin-left .2s ease;
  display:flex;flex-direction:column;
}
.main > #pageRoot{flex:1 0 auto;}
.page{display:none;}
.page.show{display:block;animation:fade .18s ease;}
@keyframes fade{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:none;}}

/* 公告条（参考站实测：高 64px = 两行文字 + 上下 10px，下间距 20px） */
.notice-bar{
  background:var(--notice-bg);color:var(--notice-tx);
  padding:10px 16px;border-radius:6px;font-size:12px;line-height:1.85;
  margin-bottom:20px;
}
.notice-bar b{font-weight:700;color:#14603F;}

/* v41：顶部浮动广告位 */
/* ============ v44/v46：顶部浮动广告位（内嵌顶栏，全站每页可见） ============ */
/* v88：广告条上下各留 6px 余量，避免紧贴顶栏边缘 */
.ad-strip{display:none;flex:1 1 0;min-width:0;margin:0 18px;padding:6px 0;overflow:hidden;box-sizing:border-box;}
.ad-strip.on{display:block;}
.ad-scroll{width:100%;overflow:hidden;}
.ad-track{display:flex;gap:10px;align-items:center;width:max-content;}
.ad-track.run{animation:adMarquee 30s linear infinite;}
.ad-scroll:hover .ad-track.run{animation-play-state:paused;}
@keyframes adMarquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}
.ad-item{flex:0 0 auto;display:inline-flex;align-items:flex-start;gap:10px;padding:8px 14px;border-radius:10px;
  background:#F2F6FD;border:1px solid #E3EBF8;box-shadow:0 1px 2px rgba(16,24,40,.06);
  text-decoration:none;color:var(--text);transition:.15s;max-width:360px;min-height:46px;position:relative;}
.ad-item:hover{filter:brightness(.97);box-shadow:0 3px 10px rgba(16,24,40,.12);}
/* v98ac：整块广告可点 —— 盖一层透明的整块链接，点图片/标题/联系方式任意位置都能跳转 */
.ad-item .ad-hit{position:absolute;top:0;left:0;right:0;bottom:0;z-index:3;border-radius:10px;cursor:pointer;}
.ad-item .ad-img{width:44px;height:44px;border-radius:8px;object-fit:cover;background:#DCE5F2;flex-shrink:0;}
.ad-item .ad-body{display:flex;flex-direction:column;justify-content:center;gap:3px;min-width:0;}
.ad-item .ad-title{font-size:13px;font-weight:700;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px;}
.ad-item .ad-desc{display:none;}
.ad-item .ad-contact{font-size:12px;color:#E7141A;font-weight:700;line-height:1.2;}
.ad-item .ad-link{font-size:12px;color:#2F55D4;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px;display:block;}
.ad-item .ad-dot{display:none;}
@media (max-width:1000px){ .ad-strip{display:none !important;} }

/* 页面标题行（参考站实测：上边距 0，下边距 22px；顶栏下 24px 由 .main 提供） */
.page-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:0 2px 22px;gap:16px;
}
.page-head h1{font-size:16px;font-weight:600;color:var(--text);}
.crumb{font-size:12px;color:var(--muted);}
.crumb em{font-style:normal;color:var(--text);}

/* 卡片（v98z：加 1px 发丝边框 + 极淡阴影，替代旧的单层投影） */
.card{background:var(--card);border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow-sm);}
.card-head{display:flex;align-items:center;justify-content:space-between;padding:15px 20px 0;}
.card-head h3{font-size:15px;font-weight:600;color:var(--text);}

/* 栅格 */
.grid{display:grid;gap:24px;margin-bottom:24px;}
/* v99z59b：轨道必须写 minmax(0,1fr)。原来写 1fr = minmax(auto,1fr)，最小尺寸取内容 min-content，
   仪表盘右侧 .stat-grid/.stat-row 的 min-content 是 5×卡宽+4×gap=870px，而 1440 下右列只剩 781px
   ⇒ 整行被顶宽、第 5 张卡被切、页面出横向滚动条。minmax(0,1fr) 允许收缩，卡片按 flex:1 1 0 均分。 */
.grid-a{grid-template-columns:366px minmax(0,1fr);}
.grid-b{grid-template-columns:minmax(0,1fr) 366px;}

/* ============ 欢迎卡片 ============ */
.welcome{overflow:hidden;display:flex;flex-direction:column;}
.welcome-hero{
  background:linear-gradient(135deg,#E9F1FF 0%,#CFDEFB 55%,#BFD4FA 100%);
  padding:14px;display:flex;gap:10px;align-items:flex-start;flex:1;min-height:104px;
}
.welcome-hero .hero-txt{flex:1;min-width:0;}
.welcome-hero h4{font-size:15px;font-weight:700;color:#3C4858;margin-bottom:6px;}
.welcome-hero p{font-size:12px;color:#7C8AA5;line-height:1.7;}
.welcome-hero svg{flex-shrink:0;margin-top:0;}
.welcome-body{padding:12px 18px 14px;display:flex;gap:16px;}
.wprofile{width:96px;flex-shrink:0;}
.wprofile .avatar{width:44px;height:44px;border-radius:50%;font-size:16px;margin-bottom:7px;}
.wprofile .uname{font-size:13px;font-weight:600;color:var(--text);}
.wprofile .phone{font-size:11px;color:var(--muted);margin-top:2px;word-break:break-all;line-height:1.4;}
.wright{flex:1;min-width:0;display:flex;flex-direction:column;}
.wstats{display:flex;}
.wstat{flex:1;text-align:center;}
.wstat .num{font-size:14px;font-weight:700;color:var(--text);}
.wstat .lbl{font-size:12px;color:var(--muted);margin-top:5px;}
.wright .btn-row{margin-top:auto;padding-top:14px;}

/* 按钮 */
.btn{
  display:inline-flex;align-items:center;gap:5px;border:none;cursor:pointer;
  border-radius:6px;font-size:12px;font-family:inherit;
  padding:7px 14px;background:var(--blue);color:#fff;transition:background .15s;
}
.btn:hover{background:var(--blue-h);}
.btn.red{background:var(--red);}
.btn.red:hover{background:#FF8080;}
.btn.green{background:var(--green);color:#0B7F5D;}
.btn.yellow{background:var(--yellow);color:#8A6A00;}
.btn.sky{background:var(--sky);}
.btn.ghost{background:var(--blue);}
.btn svg{width:12px;height:12px;stroke:currentColor;fill:none;}

/* ============ 统计卡 ============ */
/* v99z24：9 张卡 → 桌面【第一排 5 张 + 第二排 4 张，第二排 4 张自动加宽填满整行】。
   为什么从 grid 换成 flex：网格列数是固定的，5 与 4 的最小公倍数是 20 列，
   而 gap 会落在 19 条列间隙上（19×20px = 380px 全被间隙吃掉），卡片会窄到没法看。
   改成「外层纵向 flex + 内层两个 .stat-row 各占一排」后，用 flex:1 1 0 就能让每排内部
   均分整行 —— 第一排各 1/5、第二排各 1/4（更宽），且不依赖 gap 的具体数值，改 gap 不会算错。 */
.stat-grid{display:flex;flex-direction:column;gap:20px;}
.stat-row{display:flex;gap:20px;}
.stat-row>.stat-card{flex:1 1 0;min-width:0;}
.stat-card{
  background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);
  padding:16px 18px;display:flex;align-items:center;justify-content:space-between;gap:10px;
  cursor:pointer;transition:box-shadow .18s,transform .18s;
}
.stat-card:hover{box-shadow:0 6px 20px rgba(60,72,88,.12);transform:translateY(-1px);}
/* v99z11：标签不再禁止换行。手机端（375px 视口转 2 列）单卡减掉图标与内边距只剩约 74px，
   而「今日手动提现」13px 就要 78px，后面再跟「N 笔」小标更长 —— nowrap 会把文字连图标一起挤出卡片。 */
.stat-card .lbl{font-size:13px;color:var(--muted);margin-bottom:9px;}
/* v99z11：让文字列可收缩（flex 项默认 min-width:auto，不放开就会顶到图标外面） */
.stat-card>div:first-child{min-width:0;}
.stat-card .val{font-size:22px;font-weight:700;color:var(--text);line-height:1;}
/* v99z10：统计卡第三行灰色小字（如「待结算」卡的「24:00后自动结算」）。
   故意**不加 nowrap** —— 小屏单卡可用宽度很窄（v99z11 前约 73px，手机档调整后约 100px），
   而「24:00后自动结算」约需 93px，nowrap 会直接画出卡片边界；放开折行后最多变两行。 */
.stat-card .sub{font-size:12px;color:var(--muted);margin-top:8px;line-height:1.35;}
/* v99z12：待结算卡小字在「这笔钱今晚其实不会到账」时变色（冻结 / 未实名 / 超单笔上限），
   橙色而非红色 —— 是提示不是报错，商户账户本身没出问题。 */
.stat-card .sub.warn{color:#E67E22;}
/* v99z59d：1281~1600 档「紧凑档」。基础样式是 padding 16/18 + 46px 圆形图标 + 22px 数值，
   而仪表盘右列（.grid-a 第二列）在 1440 下只有 757px，5 张卡各约 135px ⇒ 文字列只剩 43px。
   「¥240.00」整串在 Unicode 断行规则里不可断（¥ 是前置前缀，其后不换行），于是整串溢出卡片、
   压到图标底下（v99z59b 把 1fr 改成 minmax(0,1fr) 消除横向滚动条后，卡片回到真实宽度 135px，
   这个原本就被滚动条挡住的毛病才露出来）。1600 以上右列 ≥940px、单卡 ≥172px 放得下原尺寸，
   1280 及以下走既有手机档，所以只在这个区间降级：内边距 12、图标 28、数值 16、标签 12。 */
@media (min-width:1281px) and (max-width:1600px){
  .stat-grid{gap:14px;}
  .stat-row{gap:14px;}
  .stat-card{padding:12px;gap:8px;}
  .stat-card .lbl{font-size:12px;margin-bottom:7px;}
  .stat-card .val{font-size:16px;letter-spacing:-0.3px;}
  .stat-card .sub{font-size:11px;margin-top:6px;}
  .stat-ico{width:28px;height:28px;}
  .stat-ico svg{width:14px;height:14px;}
}
/* v99z11：目前无引用（原本只给「待结算」卡的「已打款」绿标用，那个绿标已移除），保留备用 */
.v18-subpaid{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:9px;font-size:12px;font-weight:600;line-height:1.7;color:#1f9d57;background:rgba(31,157,87,.12);vertical-align:middle;}
/* v99z9：统计卡标签后的「N 笔」中性小标（跟 .v18-subpaid 同尺寸，只是灰色） */
.v18-cnt{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:9px;font-size:12px;font-weight:600;line-height:1.7;color:#6B7686;background:rgba(107,118,134,.12);vertical-align:middle;}
.stat-ico{
  width:46px;height:46px;border-radius:50%;background:var(--blue);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.stat-ico svg{width:20px;height:20px;stroke:#fff;fill:none;}

/* ============ 生意罗盘 ============ */
.compass{display:flex;flex-direction:column;}
.compass-body{padding:14px 20px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex:1;}
.compass-body .sub{font-size:12px;color:var(--muted);margin:8px 0 10px;}
.uv-num{font-size:26px;font-weight:700;color:var(--text);line-height:1;}
.uv-num small{font-size:13px;font-weight:400;color:var(--text);margin-left:3px;}
.uv-trend{font-size:12px;margin-top:10px;color:var(--muted);}
.uv-trend .up{color:var(--green);font-weight:600;}
.compass-body .btn{margin-top:14px;}
.donut-wrap{text-align:center;}
.donut-wrap .cap{font-size:11px;color:var(--muted);margin-top:6px;}

/* ============ 交易统计 ============ */
.seg{display:flex;}
.seg button{
  border:none;font-family:inherit;font-size:12px;padding:6px 14px;cursor:pointer;
  background:#EDF1F8;color:var(--muted);transition:background .15s,color .15s;
}
.seg button:first-child{border-radius:6px 0 0 6px;}
.seg button:last-child{border-radius:0 6px 6px 0;}
.seg button.on{background:var(--blue);color:#fff;}
.chart-area{padding:8px 20px 14px;flex:1;display:flex;flex-direction:column;justify-content:center;}
.legend{display:flex;justify-content:center;gap:26px;padding:12px 0 6px;font-size:12px;color:var(--muted);}
.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px;}
/* v65：柱状图 hover 弹窗 + 热区 */
.chart-area{position:relative;}
.ch-bar{cursor:pointer;transition:opacity .12s;}
.ch-bar:hover{opacity:.82;}
.ch-hit{cursor:pointer;}
.ch-tip{display:none;position:absolute;background:#fff;border:1px solid #E4E7EE;border-radius:6px;padding:8px 10px;box-shadow:0 4px 14px rgba(0,0,0,.08);font-size:12px;color:#333;line-height:1.55;min-width:120px;pointer-events:none;z-index:20;}
.ch-tip::after{content:'';position:absolute;left:50%;bottom:-6px;transform:translateX(-50%);border:6px solid transparent;border-top-color:#fff;filter:drop-shadow(0 1px 0 #E4E7EE);}
.ch-tip-lbl{color:#8A8E9A;margin-bottom:2px;}
.ch-tip-row i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:-1px;}

/* ============ 表格（v98z：行高与配色重做） ============ */
/* 表头 44px 浅灰底 + 次要色小字；数据行 14px 内边距（约 48px 行高）、行间 1px 细线、hover 浅蓝。
   操作列/时间列的宽度由 colgroup 给足像素值（见 listPageHTML），从根上杜绝「文字被裁」。 */
table.dt{width:100%;border-collapse:collapse;table-layout:auto;}
table.dt thead th{
  text-align:left;font-size:12.5px;font-weight:600;color:var(--text-2);
  height:44px;padding:0 12px;background:#F8FAFC;border-bottom:1px solid var(--line2);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;
}
table.dt tbody td{
  font-size:13px;color:var(--text);padding:14px 12px;border-bottom:1px solid var(--line);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;
  line-height:20px;
}
table.dt th.chk,table.dt td.chk{text-align:left;padding-left:20px;width:50px;}
table.dt tbody tr{transition:background .12s;}
table.dt tbody tr:hover{background:#F6F9FF;}
table.dt tbody tr:last-child td{border-bottom:0;}
/* 操作列不允许裁切（配合 colgroup 的像素宽；窗口过窄时由 .tbl-wrap 横向滚动兜底） */
table.dt td:last-child{overflow:visible;}
/* v99z57：订单列表整行可点进详情（复选框 / 订单号 / N张 / 补发·退款 等交互元素内部自行处理） */
table.dt tbody tr.rowgo{cursor:pointer;}
/* v99z57：订单列表「实付款」列下方的分账小字（代理单：我到手 / 代理得）。
   td 默认 nowrap + text-overflow:ellipsis，这里必须放开折行，否则小字会被裁掉。 */
table.dt tbody td .split-note{font-size:11px;color:#8A93A3;line-height:1.45;margin-top:3px;white-space:normal;word-break:break-word;}
/* v99z57b：手机端 td 是 display:flex（表格卡片化），把「金额 + 分账小字」「商品名 + N张/券」
   各包成单个 flex 子项，免得被 justify-content:space-between 拆成并排的几段文字。 */
table.dt tbody td .pay-cell,table.dt tbody td .cell-wrap{min-width:0;word-break:break-word;line-height:1.5;}
/* v99z57c：「实付款」列窄，默认断行会断成「我到手 ¥80.00 · 代理 / 得 ¥120.00」。
   加 keep-all 后只在「·」处断，读起来是完整的两段；段内若真的放不下，overflow-wrap 兜底。 */
table.dt tbody td .split-note,table.dt tbody td .pay-cell{word-break:keep-all;overflow-wrap:break-word;}
.total-row td{background:#FAFBFD;font-weight:600;}

/* 表格内的彩色胶囊（v98z：字号 9.75px → 11px 便于阅读；统一药丸圆角与语义色） */
.pill{display:inline-block;padding:2px 9px;border-radius:var(--radius-pill);font-size:11px;line-height:1.7;font-weight:500;vertical-align:middle;}
.pill.primary{background:var(--blue);color:#fff;}
.pill.success{background:var(--green);color:#fff;}
.pill.danger{background:var(--red);color:#fff;}
.pill.warning{background:var(--yellow);color:#5A4500;}
.pill.soft-danger{color:#C93B36;background:var(--red-l);}
.pill.soft-success{color:#0B8A66;background:var(--green-l);}
.pill.soft-primary{color:var(--blue);background:var(--blue-l);}
.pill.soft-warning{color:#9A6B00;background:var(--yellow-l);}
.pill.lg{font-size:12px;padding:3px 11px;}

/* 商品名后的"卡"/"券"小绿徽章 */
.tag{display:inline-block;padding:1px 6px;border-radius:8px;font-size:12px;line-height:1.4;margin-left:4px;vertical-align:1px;}
.tag.s{background:#0FA97D;color:#fff;}
.tag.r{background:#E5544F;color:#fff;}

/* 表格内文字链接（库存列的 查看 / 导出 / 清空 等：纯蓝、无背景无边） */
.lnk{color:var(--blue);font-size:13px;margin:0 3px;cursor:pointer;background:none;border:0;font-family:inherit;}
.lnk:hover{text-decoration:underline;}
.lnk.danger{color:#E5544F;}
.lnk.danger:hover{color:#E03A3A;}

/* 行内按钮组（v98z：按钮宽度自适应文字，永不被压成方块）
   ⚠️ 旧版固定 flex-basis 36px + 容器 overflow:hidden —— 列一窄两个汉字就叠成一团。 */
.btn-group-row{display:inline-flex;flex-wrap:nowrap;gap:4px;width:auto;vertical-align:middle;}
.btn-group-row .b{
  flex:0 0 auto;min-width:46px;padding:0 9px;font-size:12px;
  border:1px solid var(--line2);border-radius:var(--radius-sm);
  background:#fff;color:var(--blue);line-height:26px;cursor:pointer;
  font-family:inherit;text-align:center;white-space:nowrap;
}
.btn-group-row .b.danger{color:var(--red);border-color:#F5C9C7;}
.btn-group-row .b:hover{background:var(--blue-l);border-color:var(--blue);}
.btn-group-row .b.danger:hover{background:var(--red-l);border-color:var(--red);}

/* 自定义开关（custom-switch：36×20，#2F55D4 选中底，标准 iOS 样式） */
.sw{position:relative;display:inline-block;width:36px;height:20px;vertical-align:middle;cursor:pointer;}
.sw input{opacity:0;width:0;height:0;position:absolute;}
.sw i{position:absolute;inset:0;background:#DCDFE6;border-radius:10px;transition:.2s;box-shadow:inset 0 1px 2px rgba(0,0,0,.06);}
.sw i:before{content:'';position:absolute;height:16px;width:16px;left:2px;top:2px;background:#fff;border-radius:50%;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.25);}
.sw input:checked + i{background:var(--blue);box-shadow:inset 0 1px 2px rgba(47,85,212,.2);}
.sw input:checked + i:before{transform:translateX(16px);box-shadow:0 1px 4px rgba(0,60,180,.3);}
.empty-row td{text-align:center;color:#AEB4C0;padding:34px 0;font-size:13px;}

/* ============ 系统公告 ============ */
.notice-list{padding:6px 0 10px;}
.notice-list li{display:flex;align-items:flex-start;gap:8px;padding:11px 20px;font-size:13px;color:var(--text);}
.notice-list li .date{color:var(--muted);font-size:12px;flex-shrink:0;}
.notice-list li .go{margin-left:auto;color:var(--blue);font-size:12px;flex-shrink:0;}
.notice-list li:hover{background:#FAFBFD;}

/* ============ 页脚（贴底，所有页面共用） ============ */
.foot{
  display:flex;justify-content:space-between;align-items:center;
  padding:20px 2px 26px;font-size:12px;color:var(--muted);
  margin-top:auto;
}

/* ============ 未制作页面占位 ============ */
.placeholder{
  padding:60px 20px;text-align:center;color:var(--muted);
}
.placeholder .ph-ico{
  width:64px;height:64px;margin:0 auto 18px;border-radius:50%;
  background:#EDF1F8;display:flex;align-items:center;justify-content:center;
}
.placeholder .ph-ico svg{width:28px;height:28px;stroke:#A8B0C0;fill:none;}
.placeholder h4{font-size:15px;color:var(--text);font-weight:600;margin-bottom:8px;}
.placeholder p{font-size:13px;line-height:1.9;}
.placeholder code{background:#EDF1F8;padding:2px 7px;border-radius:4px;font-size:12px;color:var(--blue);}

/* ============ 卡片内标题 / 提示条 / 信息条 ============ */
.card-title{padding:16px 20px;font-size:14px;font-weight:600;color:var(--text);}

/* 浅蓝提示条（可关闭） */
.tip-bar{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin:16px 20px 0;padding:10px 14px;background:#EAF2FE;border-radius:4px;
  font-size:12.5px;color:#3C6EDB;line-height:1.7;
}
.tip-bar .x{cursor:pointer;color:#9DB4E0;font-size:15px;line-height:1;user-select:none;flex-shrink:0;}
.tip-bar .x:hover{color:#3C6EDB;}
.tip-bar.yellow{background:#FDF6E1;color:#B98A16;}
.tip-bar.yellow .x{color:#DCC182;}
.tip-bar.green{background:#E6F7EF;color:#1B8F66;}
.tip-bar.green .x{color:#8FC9B2;}

/* 浅蓝信息条（推广链接 / 二维码 / 返利比例等） */
.info-bar{
  margin:16px 20px 0;padding:10px 14px;background:#EAF2FE;border-radius:4px;
  font-size:12.5px;color:#3C6EDB;line-height:1.9;
}
.info-bar .kv{display:inline-block;margin-right:22px;}
.info-bar .kv b{font-weight:600;}
.info-bar a{color:#2F6BE0;}

/* 工具栏下方的统计标签（收益统计等） */
.mini-stats{display:flex;gap:10px;padding:14px 20px 0;flex-wrap:wrap;}
.mini-stat{display:inline-block;padding:4px 12px;border-radius:4px;font-size:12.5px;line-height:1.65;}
.mini-stat.blue{background:#EAF2FE;color:#2F6BE0;}
.mini-stat.green{background:#E3F8F0;color:#18A87A;}

/* 合计行（渠道分析） */
table.dt tbody tr.total-row td{background:#FAFBFD;font-weight:600;}
/* v6 已校准的 4 个列表页保留 colgroup 固定列宽 */
table.dt.dt-fixed{table-layout:fixed;}

/* ============ v8：富文本编辑器 + 字段下方第二条提示 ============ */
.rt-bar{display:flex;flex-wrap:wrap;align-items:center;column-gap:0;row-gap:0;padding:0 0 1px 0;border:1px solid #CED4DA;border-bottom:0;background:#F8F9FC;border-radius:4px 4px 0 0;line-height:26px;}
.rt-bar button{height:26px;min-width:32px;padding:0 8px;background:transparent;border:0;cursor:pointer;font-size:13px;color:#545A6D;font-family:inherit;flex-shrink:0;white-space:nowrap;}
.rt-bar button:hover{background:#EEF1F6;color:var(--blue);}
.rt-bar .sep{width:1px;height:16px;background:#DEE2E6;margin:0 4px;}
.rt-area{min-height:130px;max-height:280px;overflow:auto;border:1px solid #CED4DA;border-radius:0 0 4px 4px;background:#fff;padding:10px 12px;font-size:13px;line-height:1.7;color:var(--text);outline:none;}
.rt-area:empty:before{content:attr(data-placeholder);color:#A8B0C0;pointer-events:none;}
.fld-tip2{margin:-6px 0 6px 189px;padding-left:378px;font-size:12px;color:#B98A16;line-height:1.7;}

/* ============ v8：弹窗（删除确认 / 链接 / 成功提示） ============ */
.modal-mask{position:fixed;inset:0;background:rgba(15,28,52,.45);display:flex;align-items:center;justify-content:center;z-index:9000;animation:fadeIn .15s ease;}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.modal-card{background:#fff;border-radius:6px;box-shadow:0 12px 36px rgba(15,28,52,.22);width:420px;max-width:92vw;animation:zoomIn .15s ease;}
@keyframes zoomIn{from{transform:scale(.95)}to{transform:scale(1)}}
.modal-head{padding:22px 24px 0;font-size:16px;font-weight:600;color:var(--text);}
.modal-body{padding:8px 24px 18px;font-size:13px;color:#7C8698;line-height:1.8;}
.modal-foot{padding:8px 24px 22px;display:flex;justify-content:flex-end;gap:10px;}

/* 链接弹窗（560 宽） */
.link-modal .modal-card{width:560px;}
.link-modal .link-state{display:inline-block;margin:6px 0 14px;}
.link-modal .link-row{display:flex;align-items:center;gap:10px;margin:14px 0 22px;}
.link-modal .link-row .url{flex:1;font-size:12.5px;color:var(--blue);background:#F5F6FA;padding:8px 10px;border-radius:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.link-modal .qr{display:flex;justify-content:center;padding:10px 0 22px;}

/* 成功提示（深灰圆角块，3 秒消失） */
.toast-msg{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:rgba(0,0,0,.78);color:#fff;font-size:13.5px;padding:9px 22px;border-radius:4px;z-index:9100;animation:toastIn .15s ease;}
/* v98s：toast 专用入场动画 —— zoomIn 的 keyframes 只有 scale，会把居中用的 translate 覆盖掉，
   导致提示先出现在未居中位置、动画结束瞬间跳到中心（用户看到「跳两个位置」） */
@keyframes toastIn{from{transform:translate(-50%,-50%) scale(.95)}to{transform:translate(-50%,-50%) scale(1)}}

/* ============================================================
   v11: 详情页（查看 + 编辑双模式共用的 formPageHTML 模板）
   ============================================================ */
.dp-info-bar{
  display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  padding:18px 24px;border:1px solid #E5EAFF;background:linear-gradient(90deg,#EEF2FF,#F7FAFF 80%);
  border-radius:6px;margin-bottom:18px;
}
.dp-info-bar .dp-id{font-size:15.5px;font-weight:600;color:#1F2A44;letter-spacing:0.5px;}
.dp-info-bar .dp-meta{font-size:13px;color:#5C6477;display:flex;align-items:center;gap:8px;}

.dp-card{margin-bottom:18px;}
.dp-card-title{
  font-size:14.5px;font-weight:600;color:#1F2A44;margin-bottom:14px;
  display:flex;align-items:center;gap:10px;
}
.dp-card-title::before{content:'';width:3px;height:14px;background:var(--blue);border-radius:2px;}
.dp-card-title .dp-tag{margin-left:auto;font-size:12px;color:var(--muted);font-weight:400;}

.dp-info-table{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  border:1px solid var(--line);border-radius:6px;background:#fff;overflow:hidden;
}
.dp-info-table .dp-row{
  display:flex;align-items:center;padding:14px 18px;font-size:13px;
  border-bottom:1px solid var(--line);border-right:1px solid var(--line);
}
.dp-info-table .dp-row.full{grid-column:1/span 2;border-right:0;}
.dp-info-table .dp-row:nth-last-child(-n+2){border-bottom:0;}
.dp-info-table .dp-row:nth-last-child(2):nth-child(odd){border-bottom:0;}
.dp-info-table .dp-row:nth-child(2n){border-right:0;}
.dp-info-table .dp-lbl{width:88px;flex-shrink:0;color:var(--muted);}
.dp-info-table .dp-val{color:var(--text);font-weight:500;flex:1;min-width:0;word-break:break-all;}
.dp-info-table .dp-val.mono{font-family:'SFMono-Regular',Consolas,Menlo,monospace;font-size:12.5px;}

.dp-actions{
  display:flex;justify-content:center;align-items:center;gap:12px;
  padding:20px;border-top:1px solid var(--line);margin-top:8px;
}
.dp-actions .btn-lg{font-weight:600;}

.dp-timeline{padding:6px 0 4px 4px;}
.dp-timeline .dp-tl-item{
  position:relative;padding:10px 0 10px 18px;
  font-size:13px;color:var(--text);
}
.dp-timeline .dp-tl-item::before{
  content:'';position:absolute;left:0;top:14px;
  width:9px;height:9px;border-radius:50%;
  background:var(--blue);box-shadow:0 0 0 4px rgba(47,85,212,.16);
}
.dp-timeline .dp-tl-item::after{
  content:'';position:absolute;left:4px;top:24px;bottom:-4px;
  width:1px;background:var(--line);
}
.dp-timeline .dp-tl-item:last-child::after{display:none;}
.dp-timeline .dp-tl-item .dp-tl-time{color:var(--muted);margin-right:8px;font-size:12px;}

.dp-cards{font-family:'SFMono-Regular',Consolas,Menlo,monospace;font-size:13px;
  background:#1F2A44;color:#E5EAFF;border-radius:6px;padding:14px 16px;line-height:1.85;word-break:break-all;}
.dp-cards .hl{color:#5DD4FA;}

/* 详情页头部状态胶囊 */
.dp-status-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;padding:14px 20px;
  background:#F7FAFF;border:1px solid #E5EAFF;border-radius:6px;margin-bottom:16px;}
.dp-status-row .lbl{color:var(--muted);font-size:12.5px;}
.dp-status-row .val{font-size:13.5px;font-weight:600;color:var(--text);}

/* 添加分类弹窗（独立组件，与详情页无关，但样式集中放） */
.cat-modal .modal-card{width:480px;}
.cat-modal .cat-body{padding:22px 26px;}
.cat-modal .cat-field{margin-bottom:16px;}
.cat-modal .cat-field > label{display:block;font-size:13px;color:var(--text);margin-bottom:6px;}
.cat-modal .cat-field > label i{color:var(--muted);font-style:normal;margin-left:4px;font-size:12px;}
.cat-modal .cat-field .inp,
.cat-modal .cat-field .sel-wrap{display:block;width:100%;height:38px;border:1px solid var(--line2);border-radius:6px;padding:0 12px;font-size:13px;color:var(--text);background:#fff;outline:none;}
.cat-modal .cat-field .inp:focus,
.cat-modal .cat-field .sel-wrap:focus-within{border-color:var(--blue);}
.cat-modal .cat-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;}
.cat-modal .cat-toggle{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text);cursor:pointer;user-select:none;}
.cat-modal .cat-toggle .sw{flex-shrink:0;}
.cat-modal .cat-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 26px;border-top:1px solid var(--line);background:#FAFBFD;border-radius:0 0 6px 6px;}

/* 详情页内 action-row 的链接风格（与列表行内按钮组一致） */
.dp-card .op a{font-size:13px;color:var(--blue);margin-right:12px;cursor:pointer;}
.dp-card .op a.danger{color:#E5544F;}
.dp-card .op a:hover{text-decoration:underline;}

/* ============ 表单 / 设置页 ============ */
.fs{display:flex;align-items:stretch;}
/* 左侧竖向导航（商家设置 / 店铺引导页） */
.fs-tabs{width:154px;flex-shrink:0;padding:14px 0 20px;}
.fs-tab{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;
  padding:15px 6px;margin:0 10px 8px;border-radius:6px;
  font-size:12.5px;color:var(--text);cursor:pointer;text-align:center;line-height:1.4;
  transition:background .15s,color .15s;
}
.fs-tab svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round;}
.fs-tab:hover{background:#F3F6FD;}
.fs-tab.on{background:var(--blue);color:#fff;}
.fs-body{flex:1;min-width:0;border-left:1px solid var(--line);padding:20px 24px 26px;}

/* 表单区块标题 */
.sec-t{font-size:14px;font-weight:600;color:var(--text);margin:4px 0 6px;}
.sec-en{font-size:11.5px;color:var(--muted);margin-bottom:14px;}

/* 字段行：标签 / 控件 / 说明 */
.ff{display:flex;align-items:flex-start;padding:9px 0;}
.ff-lbl{width:128px;flex-shrink:0;font-size:13px;color:var(--text);line-height:36px;}
.ff-ctl{flex:1;min-width:0;max-width:560px;}
.ff-ctl textarea{
  width:100%;min-height:84px;border:1px solid var(--line2);border-radius:6px;
  font-family:inherit;font-size:13px;color:var(--text);padding:9px 12px;outline:none;
  resize:vertical;line-height:1.8;
}
.ff-ctl textarea:focus{border-color:var(--blue);}
.ff-tip{font-size:12px;color:var(--muted);line-height:1.85;margin-top:6px;}
.ff-tip b{color:#E0A22B;font-weight:600;}
.ff-side{
  width:300px;flex-shrink:0;padding-left:22px;font-size:12px;
  color:var(--muted);line-height:1.85;padding-top:9px;
}

/* 单选 / 复选组（与 36px 输入框等高对齐） */
.radios{display:flex;align-items:center;flex-wrap:wrap;gap:20px 26px;min-height:36px;font-size:13px;color:var(--text);}
.radios label{display:inline-flex;align-items:center;gap:5px;cursor:pointer;flex-shrink:0;white-space:nowrap;}

/* 只读文本值 */
.static-v{font-size:13px;color:var(--text);line-height:36px;}

/* 二维码框 */
.qr-box{display:inline-block;padding:10px;border:1px solid var(--line);border-radius:6px;background:#fff;line-height:0;}

/* 表单提交按钮区 */
.form-actions{display:flex;gap:10px;padding:16px 0 4px;}
.form-actions.offset{padding-left:128px;}

/* ============ v7 补充：新增页面所需组件 ============ */
/* 工具栏静态文字（投诉管理「未处理投诉数」等） */
.bar-txt{font-size:13px;color:var(--text);line-height:36px;white-space:nowrap;}
.bar-txt.warn b{color:#E5544F;font-weight:600;}

/* 表格内小按钮 / 小标签 */
.btn-xs{height:28px;padding:0 12px;font-size:12.5px;border-radius:4px;}
.mini-btn{
  display:inline-block;height:26px;line-height:26px;padding:0 12px;margin-right:8px;
  background:#EDF3FE;color:#2F6BE0;border-radius:4px;font-size:12.5px;cursor:pointer;
}
.mini-btn:hover{background:#DCE8FD;}
.tag-g{
  display:inline-block;padding:1px 7px;background:#E3F8F0;color:#18A87A;
  border-radius:3px;font-size:11.5px;line-height:18px;
}

/* 表单页区块 / 提示 */
.sec-tip{font-size:12.5px;color:var(--muted);line-height:1.85;margin:-4px 0 10px;}
.card-title.bar{position:relative;padding-left:18px;}
.card-title.bar::before{
  content:'';position:absolute;left:8px;top:50%;transform:translateY(-50%);
  width:3px;height:15px;background:var(--blue);border-radius:2px;
}

/* 图片上传 / 二维码 */
.up-img{
  width:78px;height:78px;border-radius:4px;background:#F2F4F8;margin-bottom:8px;
  display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.up-img svg{width:32px;height:32px;}
.up-img.has-img{background:#fff;border:1px solid #E6EAF2;}
.up-img img{width:100%;height:100%;object-fit:contain;display:block;}
.up-box{
  width:200px;height:148px;border:1px dashed #D8DEE9;border-radius:4px;background:#FCFCFD;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  color:#AEB6C4;font-size:12.5px;cursor:pointer;transition:border-color .15s,color .15s;
}
.up-box svg{width:22px;height:22px;}
.up-box:hover{border-color:var(--blue);color:var(--blue);}
.qr-svg{width:152px;height:152px;padding:7px;background:#fff;border:1px solid var(--line);border-radius:4px;}
.qr-svg svg{width:100%;height:100%;display:block;}
.link-row{display:flex;align-items:center;gap:10px;min-height:36px;flex-wrap:wrap;}
.link-row a{color:var(--blue);font-size:13px;word-break:break-all;}

/* 状态标签（胶囊） */
.tag-s{display:inline-block;height:24px;line-height:24px;padding:0 12px;border-radius:12px;font-size:12.5px;flex-shrink:0;}
.tag-s.red{background:#FFECEC;color:#E85C5C;}
.tag-s.green{background:#E3F8F0;color:#18A87A;}

/* 认证状态卡（浅绿） */
.auth-box{
  background:#E6F7EF;border:none;box-shadow:none;
  padding:16px 20px;margin-bottom:16px;font-size:13px;color:#1B8F66;line-height:2;
}
.auth-box .tag-g{background:#C9EEDD;color:#12805A;}

/* 大屏补充 */
.sc-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px 10px;}
.sc-stat{background:rgba(86,146,255,.12);border-radius:4px;padding:10px 6px;text-align:center;}
.sc-stat b{display:block;font-size:18px;font-weight:600;color:#4DE1FF;line-height:1.35;}
.sc-stat span{font-size:11.5px;color:#A9C6F5;}
.sc-pie-wrap{display:flex;align-items:center;gap:12px;}
.sc-pie{width:98px;height:98px;flex-shrink:0;}
.sc-legend{font-size:11.5px;color:#A9C6F5;line-height:2.1;}
.sc-legend i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px;}
.sc-map{flex:1;display:flex;align-items:center;justify-content:center;min-height:250px;}
.sc-map svg{width:100%;height:100%;}
.sub-en{font-size:11px;color:#4D7FBF;letter-spacing:1px;}

/* 轻提示 */
#toast{
  position:fixed;left:50%;top:50%;transform:translate(-50%,-50%) scale(.96);
  background:rgba(28,36,52,.92);color:#fff;font-size:13px;padding:10px 20px;border-radius:6px;
  opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;z-index:9999;
  max-width:70vw;text-align:center;line-height:1.7;
}
#toast.show{opacity:1;transform:translate(-50%,-50%) scale(1);}

/* ============ 实时数据可视化（深蓝大屏） ============ */
.screen{
  background:radial-gradient(1200px 600px at 50% -10%,#0B2A66 0%,#061537 55%,#040D24 100%);
  border-radius:8px;padding:16px;display:flex;gap:14px;min-height:600px;
}
.screen .sc-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:14px;}
.screen .sc-mid{flex:1.75;}
.sc-panel{
  background:rgba(20,58,128,.35);border:1px solid rgba(86,146,255,.28);border-radius:6px;
  padding:12px 14px;
}
.sc-title{
  display:flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:#7FD4FF;
  padding-bottom:9px;margin-bottom:10px;border-bottom:1px solid rgba(86,146,255,.22);
}
.sc-title::before{content:'';width:3px;height:12px;background:#39C6FF;border-radius:2px;}
.sc-row{display:flex;align-items:center;justify-content:space-between;padding:7px 0;font-size:12px;color:#A9C6F5;}
.sc-row .v{font-size:16px;font-weight:600;color:#4DE1FF;font-family:'DIN Alternate','Segoe UI',inherit;}
.sc-row .v.g{color:#3BE8A8;}
.sc-row .v.y{color:#FFD666;}
.sc-hero{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;}
.sc-hero h2{font-size:22px;font-weight:700;color:#EAF4FF;letter-spacing:2px;text-shadow:0 0 18px rgba(80,170,255,.6);}
.sc-hero .sub{font-size:13px;color:#6FD0FF;letter-spacing:1px;}
.sc-rank{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:12px;color:#A9C6F5;}
.sc-rank .no{
  width:18px;height:18px;border-radius:3px;background:rgba(86,146,255,.3);color:#8FD4FF;
  display:inline-flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0;
}
.sc-rank .no.top{background:#FF7A45;color:#fff;}
.sc-rank .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sc-rank .am{color:#4DE1FF;font-weight:600;}
.sc-rank-head{display:flex;font-size:11.5px;color:#5E86C9;padding-bottom:7px;border-bottom:1px solid rgba(86,146,255,.18);margin-bottom:4px;}
.sc-rank-head .nm{flex:1;}

/* ============ 温馨提示页（支付API） ============ */
.tip-page{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:66px 20px 76px;text-align:center;
}
.tip-page h3{font-size:16px;font-weight:600;color:var(--text);margin-bottom:12px;}
.tip-page p{font-size:13px;color:var(--muted);line-height:2;}
.tip-page .qq{color:var(--blue);font-weight:600;}

/* ============ 公告详情 ============ */
.art-title{font-size:17px;font-weight:600;color:var(--text);padding:22px 22px 10px;}
.art-meta{font-size:12px;color:var(--muted);padding:0 22px 16px;border-bottom:1px solid var(--line);}
.art-body{padding:18px 22px 26px;font-size:13px;line-height:2.15;color:var(--text);}
.art-body p{margin:0 0 15px;text-indent:0;}

/* ============================================================
   列表页：工具栏 + 表格 + 分页（参考站实测：控件高 36px、间距 10px）
   ============================================================ */
.btn-lg{height:36px;padding:0 12px;font-size:13px;gap:5px;flex-shrink:0;justify-content:center;border-radius:5px;}
.btn-lg svg{width:13px;height:13px;flex-shrink:0;}
.btn-o{background:#fff;border:1px solid var(--line2);color:var(--text);}
.btn-o:hover{background:#F7F9FC;border-color:var(--blue);color:var(--blue);}

/* 工具栏彩色按钮（参考站实拍取色，白字） */
.btn-blue{background:var(--blue);color:#fff;}
.btn-blue:hover{background:#274AB8;}
.btn-sky{background:var(--sky);color:#fff;}
.btn-sky:hover{background:#2E6FD8;}
.btn-red{background:var(--red);color:#fff;}
.btn-red:hover{background:#D34843;}
.btn-green{background:var(--green);color:#fff;}
.btn-green:hover{background:#0C8F69;}
.btn-yellow{background:var(--yellow);color:#5A4500;}
.btn-yellow:hover{background:#E3B41F;}
.btn-gray{background:#EFF2F7;color:var(--text);}
.btn-gray:hover{background:#E5EAF2;}

/* 工具栏：参考站实测——上内边距 20、行间距 3、控件间距由各控件 margin 控制 */
.toolbar{
  display:flex;align-items:center;flex-wrap:wrap;row-gap:3px;
  padding:20px 20px 0;
}
.sel-wrap{position:relative;display:inline-block;flex-shrink:0;}
.sel{
  width:100%;height:36px;border:1px solid #CED4DA;border-radius:6px;background:#fff;
  font-family:inherit;font-size:13px;color:var(--text);outline:none;cursor:pointer;
  padding:0 26px 0 12px;appearance:none;-webkit-appearance:none;
}
.sel:focus{border-color:var(--blue);}
.sel-wrap .sel-ico{
  position:absolute;right:9px;top:50%;transform:translateY(-50%);
  pointer-events:none;color:#8A93A3;line-height:0;
}
.sel-wrap .sel-ico svg{width:11px;height:11px;stroke:currentColor;fill:none;}

.inp{
  height:36px;border:1px solid #CED4DA;border-radius:6px;background:#fff;
  font-family:inherit;font-size:13px;color:var(--text);outline:none;
  padding:0 12px;width:177px;
}
.inp:focus{border-color:var(--blue);}
.inp::placeholder{color:#AEB6BE;}
.inp.mini{width:56px;height:32px;text-align:center;padding:0 6px;}

/* 空表时卡片底部留白 20px（参考站实拍：表头线 → 卡片底 = 20px） */
.tbl-wrap{overflow-x:auto;padding-bottom:20px;}
table.dt td.chk,table.dt th.chk{width:50px;}
table.dt tbody tr{transition:background .12s;}
table.dt tbody tr:hover{background:#FAFBFD;}
table.dt tbody td{vertical-align:middle;}
.chkbox{width:15px;height:15px;accent-color:var(--blue);cursor:pointer;vertical-align:middle;margin:0;}

/* 开关 */
.sw{position:relative;display:inline-block;width:38px;height:21px;cursor:pointer;vertical-align:middle;}
.sw input{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:pointer;}
.sw i{position:absolute;inset:0;background:#D5DAE3;border-radius:11px;transition:background .18s;}
.sw i::after{
  content:"";position:absolute;left:2px;top:2px;width:17px;height:17px;border-radius:50%;
  background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.18);transition:transform .18s;
}
.sw input:checked + i{background:var(--blue);}
.sw input:checked + i::after{transform:translateX(17px);}

/* 分类标签 / 操作列 */
.tag{
  display:inline-block;font-size:12px;line-height:20px;padding:0 8px;
  border-radius:4px;background:var(--blue-l);color:var(--blue);
}
.op a{color:var(--blue);font-size:13px;}
.op a + a{margin-left:12px;}
.op a.del{color:var(--red);}
.op a:hover{text-decoration:underline;}

/* 分页（v8: ycyun 规格 —— Bootstrap 风格，justify-content:center 居中，34px 高，选中蓝底 #2F55D4） */
.pager:empty{display:none;}
.pager{
  display:flex;align-items:center;justify-content:center;gap:0;
  padding:18px 0 6px;font-size:13px;color:var(--text);
}
.pager .pg{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:34px;height:34px;padding:0 12px;margin-right:-1px;
  border:1px solid #CED4DA;background:#fff;color:var(--text);font-size:13px;
  cursor:pointer;font-family:inherit;line-height:1;
}
.pager .pg:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px;}
.pager .pg:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px;margin-right:0;}
.pager .pg:hover{color:var(--blue);border-color:var(--blue);position:relative;z-index:1;}
.pager .pg.on{background:var(--blue);border-color:var(--blue);color:#fff;z-index:1;}
.pager .pg.disabled{color:#CED4DA;cursor:not-allowed;background:#fff;}
.pager .pg.disabled:hover{color:#CED4DA;border-color:#CED4DA;}
.pager .ellipsis{
  border:0;background:none;color:var(--muted);cursor:default;
  min-width:auto;padding:0 8px;height:34px;display:inline-flex;align-items:center;
}

/* v48：分页条「左 / 中 / 右」三段 flex 布局。
   v47 用绝对定位把两侧贴边，只有 1 页（没有页码）时 .pager 高度塌陷成 padding，
   两侧内容溢出后被 .card 的 overflow:hidden 裁掉 —— 用户看到「选完每页行数只剩一条边」。
   现在三段都在文档流内：左侧 flex:1 贴左、中间 flex:0 0 auto 居中、右侧 flex:1 贴右，
   容器高度由最高子元素决定，任何页数都不会被裁。 */
.pager{padding:14px 0 10px;}
.pager .pg-left,.pager .pg-right{
  flex:1 1 0;min-width:0;display:flex;align-items:center;
}
.pager .pg-right{justify-content:flex-end;}
.pager .pg-nav{flex:0 0 auto;display:flex;align-items:center;}
.pager .pg-size,.pager .pg-total{
  font-size:13px;color:var(--muted);
  display:inline-flex;align-items:center;gap:6px;white-space:nowrap;
}
.pager .pg-size select{
  height:30px;padding:0 6px;border:1px solid #CED4DA;border-radius:4px;background:#fff;
  color:var(--text);font-size:13px;font-family:inherit;outline:none;cursor:pointer;
}
.pager .pg-size select:focus{border-color:var(--blue);}
/* 页码按钮垂直居中（原来靠 .pager 的 align-items:center） */
.pager .pg-nav{min-height:34px;}
@media(max-width:1200px){
  .pager{flex-wrap:wrap;row-gap:8px;}
  .pager .pg-left{order:1;}
  .pager .pg-right{order:2;flex:0 1 auto;}
  .pager .pg-nav{order:3;flex:1 1 100%;justify-content:center;}
}

/* ============================================================
   表单页（参考站实测：行高 54px、控件宽 351px、标签列 194px）
   ============================================================ */
.form-card{padding:11px 30px 24px;}      /* 左右从 20 改 30：标签离卡片左边 +10px，黄工指定 */
.fld{display:flex;align-items:flex-start;padding:9px 0;}
.fld-lbl{
  width:189px;flex-shrink:0;font-size:13px;color:var(--text);
  line-height:36px;white-space:nowrap;
}
.fld-ctrl{width:351px;flex-shrink:0;line-height:36px;}
.fld-ctrl .sel,.fld-ctrl .inp{width:100%;}
.fld-ctrl .sel-wrap{width:100%;display:block;}
.fld-tip{flex:1;min-width:0;font-size:13px;color:var(--muted);line-height:36px;padding-left:27px;}
.fld-ctrl textarea{
  width:100%;height:88px;border:1px solid #CED4DA;border-radius:6px;background:#fff;
  font-family:inherit;font-size:13px;color:var(--text);outline:none;padding:9px 12px;
  line-height:1.6;resize:vertical;
}
.fld-ctrl textarea:focus{border-color:var(--blue);}
.fld-ctrl textarea::placeholder{color:#AEB6BE;}
.fld-ctrl .rd-line{display:flex;align-items:center;flex-wrap:wrap;min-height:36px;row-gap:8px;}

/* 单选 */
.rd{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--text);cursor:pointer;margin-right:26px;}
.rd input{
  appearance:none;-webkit-appearance:none;width:16px;height:16px;flex-shrink:0;
  border:2px solid #C9CDD4;border-radius:50%;position:relative;cursor:pointer;margin:0;
  transition:border-color .15s;
}
.rd input:hover{border-color:#A9B2C0;}
.rd input:checked{border-color:var(--blue);}
.rd input:checked::after{
  content:"";position:absolute;inset:3px;border-radius:50%;background:var(--blue);
}
.form-foot{display:flex;gap:10px;padding:14px 0 0 189px;}

@media (max-width:1280px){
  .grid-a,.grid-b{grid-template-columns:1fr;}
  /* v99z24：≤1280 两排都折成 2 列（9 张 → 5 行）。basis 用 calc(50% - 12px)：
     减掉的 24px 大于两档 gap（20 / 14px），保证两张一定并排放得下，余量由 flex-grow 吸收。 */
  .stat-row{flex-wrap:wrap;}
  .stat-row>.stat-card{flex:1 1 calc(50% - 12px);}
}
/* v67：申请提现页「刷新余额」图标 */
#cashRefresh{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:#2F55D4;color:#fff;vertical-align:middle;margin-left:6px;}
#cashRefresh:hover{opacity:.85;}
/* v98aa：改为 animation 持续旋转到请求结束 —— 旧的 transition+rotate(360deg) 只转一圈就停，看着像「点了没反应」 */
#cashRefresh.spin{animation:chSpin .7s linear infinite;}
@keyframes chSpin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
#cashRefresh svg{width:12px;height:12px;display:block;}
/* v87：买家界面预览（替换原「支付方式」tab） */
.buyer-preview{max-width:920px;}
.bp-tpls{display:flex;gap:14px;flex-wrap:wrap;margin:10px 0 6px;}
.bp-tpl{display:flex;flex-direction:column;gap:4px;width:248px;border:1px solid var(--line,#E6E9F0);border-radius:10px;padding:14px 16px;cursor:pointer;background:#fff;transition:.18s;}
.bp-tpl:hover{border-color:#2F55D4;box-shadow:0 4px 14px rgba(47,85,212,.08);}
.bp-tpl input{position:absolute;opacity:0;pointer-events:none;}
.bp-tpl b{font-size:15px;color:#1c2330;}
.bp-tpl span{font-size:12.5px;color:#8a93a6;line-height:1.5;}
.bp-tpl:has(input:checked){border-color:#2F55D4;background:#f4f8ff;}
.bp-preview{margin:14px 0;border:1px solid var(--line,#E6E9F0);border-radius:10px;overflow:hidden;background:#f6f8fb;height:520px;}
.bp-preview iframe{width:100%;height:100%;border:0;background:#fff;}
.bp-actions{display:flex;align-items:center;gap:14px;margin-top:6px;}
.bp-saved{font-size:13px;color:#29b765;font-weight:600;}
.v18-fld{margin-bottom:14px;}

/* === style block #2 === */

/* ============ v49：移动端适配 ============
   断点：900px 起切抽屉布局；768px 起表格卡片化
   放在所有样式之后，保证同特异性下优先生效 */

.drawer-mask{display:none;position:fixed;left:0;right:0;bottom:0;top:var(--topbar-h);background:rgba(15,28,52,.45);z-index:150;}
body.drawer-open .drawer-mask{display:block;}
body.drawer-open{overflow:hidden;}

@media (max-width:900px){
  :root{--topbar-h:56px;}
  .topbar{padding:0 10px;}
  .brand{width:auto;}
  .brand-badge{width:30px;height:30px;font-size:10px;}
  .brand-name{display:none;}
  .icon-btn{width:36px;height:36px;}
  .topbar-right{gap:2px;}
  .user-chip{padding:2px 4px;}
  .user-chip .uname{display:none;}

  /* 主区域占满全宽（覆盖 body.collapsed 的 margin-left:64px） */
  .main{margin-left:0 !important;padding:calc(var(--topbar-h) + 14px) 12px 0;}
  body.collapsed .main{margin-left:0 !important;}

  /* 侧边栏 → 抽屉 */
  .sidebar{
    width:252px !important;padding:14px 16px 30px;
    transform:translateX(-100%);transition:transform .22s ease;
    z-index:200;box-shadow:0 0 28px rgba(15,28,52,.20);
  }
  body.drawer-open .sidebar{transform:translateX(0);}
  /* 抽屉内强制显示完整菜单（覆盖 body.collapsed 的收窄规则） */
  body.collapsed .sidebar{width:252px !important;padding:14px 16px 30px;}
  body.collapsed .nav-group{visibility:visible;height:auto;padding:16px 0 8px 9px;}
  body.collapsed .nav-item{padding:0 17px;gap:16px;}
  body.collapsed .nav-item .label,
  body.collapsed .nav-item .arrow{display:inline;}
  /* 注意：这里不要写 .submenu{max-height:none !important}，会让抽屉里所有子菜单永久展开。
     子菜单展开靠 JS 手风琴设内联 max-height，所以只要保证小屏不加 collapsed 即可（见 JS）。 */

  /* 栅格：取消 366px 固定列 */
  .grid,.grid-a,.grid-b{grid-template-columns:1fr !important;gap:16px;}

  /* v99z11：统计卡手机档。2 列时单卡只剩约 168px，图标固定 46px 太占地方，
     标题（「今日手动提现」+「N 笔」）和大额金额都会顶出卡片边界。
     这里收窄栅格间距、内边距和图标，并下调标题/金额字号，把宽度让给文字。 */
  .stat-grid{gap:14px;}
  .stat-row{gap:14px;}
  .stat-card{padding:12px;gap:8px;}
  .stat-card>div:first-child{min-width:0;}
  .stat-card .lbl{font-size:12px;margin-bottom:7px;}
  .stat-card .val{font-size:17px;letter-spacing:-0.2px;}
  .stat-ico{width:36px;height:36px;}
  .stat-ico svg{width:17px;height:17px;}

  /* 页面标题行竖排 */
  .page-head{flex-direction:column;align-items:flex-start;gap:6px;padding:0 2px 14px;}
  .page-head h1{font-size:15px;}

  .card-head{padding:13px 14px 0;}
  .notice-bar{font-size:11.5px;line-height:1.7;padding:8px 12px;margin-bottom:14px;}
  .welcome-body{flex-direction:column;gap:10px;}
  .wprofile{width:auto;}

  /* 弹窗：贴底、限高可滚 */
  .modal-mask{align-items:flex-end;}
  .modal-card{
    width:100% !important;max-width:100%;border-radius:14px 14px 0 0;
    max-height:88vh;overflow-y:auto;
  }
  /* v18 窗口式弹窗（广告编辑）：小屏铺满 */
  .v18-win{
    width:100vw !important;max-width:100vw !important;height:100vh !important;
    left:0 !important;right:0 !important;top:0 !important;border-radius:0 !important;
  }

  /* 触控友好 + 防 iOS 聚焦时自动放大页面 */
  input,select,textarea{font-size:16px !important;}
  .btn,.btn-o,.btn-blue,.btn-ghost,.btn-red{min-height:38px;}

  /* v18 超管控制台：KPI 单列、工具行换行 */
  .v18-kpi{grid-template-columns:1fr !important;}
  .v18-toolbar{gap:8px;}
  .v18-toolbar .v18-inp,.v18-toolbar select{width:100% !important;min-width:0;}

  /* v99z65c：表单行手机端竖排（修复 .fld-lbl 189px + .fld-ctrl 351px 在窄屏必横溢） */
  .fld{flex-direction:column;align-items:stretch;padding:8px 0;}
  .fld-lbl{width:auto;line-height:1.5;padding-bottom:4px;}
  .fld-ctrl{width:auto;line-height:1.4;}
  .fld-tip{padding-left:0;}
  .form-foot{padding-left:0;flex-wrap:wrap;}
  .fld-tip2{margin-left:0;}
}

@media (max-width:640px){
  /* v99z12：统计卡在真机宽度下改单列。2 列时单卡的文字区只有约 100px，
     「¥123,456.78」「今日手动提现 [2 笔]」这类内容仍会顶到卡片边缘（临界线，金额再长就又溢出）；
     单列后单卡约 327px 宽，金额再长也放得下，长标题也不用折行。
     放在 900px 档之后覆盖其 2 列设置；>640px（桌面 / 平板竖屏）不受影响。 */
  /* v99z24：真机宽度两排都改单列（2 列时单卡文字区只剩约 100px，长标题 / 大额会顶出边界） */
  .stat-row>.stat-card{flex:1 1 100%;}
}

@media (max-width:768px){
  /* ---- 表格卡片化：thead 隐藏，每行变一张卡，字段名由 data-label 提供 ---- */
  table.dt{display:block;width:100%;}
  table.dt colgroup{display:none;}
  table.dt thead{display:none;}
  table.dt tbody{display:block;}
  table.dt tbody tr{
    display:block;background:#fff;border:1px solid #E6EAF0;border-radius:10px;
    padding:10px 12px;margin-bottom:10px;box-shadow:0 1px 3px rgba(60,72,88,.05);
  }
  table.dt tbody tr:hover{background:#fff;}
  table.dt tbody td{
    /* v99z57c：baseline 让左侧字段名与右侧「首行」对齐；center 时「实付款」这种两行内容
       会把字段名悬在两行中间（看着像没对齐）。单行内容 baseline / center 无差别。 */
    display:flex;justify-content:space-between;align-items:baseline;gap:14px;
    padding:5px 0;border:0;font-size:13.5px;text-align:right;line-height:1.5;
    white-space:normal;word-break:break-word;
  }
  table.dt tbody td + td{border-top:1px dashed #F0F2F6;}
  table.dt tbody td::before{
    content:attr(data-label);
    color:#8A93A3;font-size:12.5px;font-weight:500;text-align:left;
    flex:0 0 auto;margin-right:auto;
  }
  table.dt tbody td:not([data-label])::before{content:none;}
  table.dt tbody td.chk{justify-content:flex-start;padding-left:0;}
  table.dt tbody td .btn,table.dt tbody td button{margin:2px 0 2px 6px;}

  /* 分页条：页码在上，两侧信息各占一行 */
  .pager{flex-wrap:wrap;gap:8px;}
  .pager .pg-nav{order:-1;flex:1 1 100%;justify-content:center;}
  .pager .pg-left,.pager .pg-right{flex:1 1 100%;justify-content:center;}

  /* 统计/筛选等横向排列改竖排 */
  .stat-row,.filter-bar{flex-wrap:wrap;}

  /* v52：列表工具栏（订单搜索等）在手机上占满整行，方便点按 */
  .toolbar{padding:14px 14px 0 !important;gap:8px;}
  .toolbar .sel-wrap,.toolbar .inp{width:100% !important;max-width:100%;}
  .toolbar .btn{width:auto !important;min-height:38px;}
}

/* === style block #3 === */

/* v60：统一弹窗窗口头（标题左 · 最小化/放大/关闭 右） */
.modal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.modal-head>.m-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.win-ctl{display:flex;align-items:center;gap:6px;flex-shrink:0;}
.win-ctl .wbtn{width:26px;height:26px;padding:0;box-sizing:border-box;border-radius:6px;border:1px solid #DDE3EC;background:#fff;color:#5B6573;font-size:12px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-family:inherit;}
.win-ctl .wbtn:hover{background:#EDF2FA;border-color:#C6D3E6;}
.win-ctl .wbtn.wclose:hover{background:#FDECEC;border-color:#F4C6C2;color:#DE3D33;}
/* 既有窗口按钮（cat 的 modal-icon-btn / v5 系的 v5winbtn）统一成同一外观 */
.modal-icon-btn,.v5winbtn{width:26px;height:26px;padding:0;box-sizing:border-box;border-radius:6px;border:1px solid #DDE3EC;background:#fff;color:#5B6573;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;}
.modal-icon-btn:hover,.v5winbtn:hover{background:#EDF2FA;border-color:#C6D3E6;color:#5B6573;}
.modal-icon-btn svg,.v5winbtn svg{width:14px;height:14px;fill:none;stroke:currentColor;}
/* 最小化：收起正文与底部，缩成标题条 */
.modal-card.win-min .modal-body,.modal-card.win-min .modal-foot{display:none!important;}
.modal-card.win-min{width:420px!important;max-width:92vw;}
/* 放大：加宽 */
.modal-card.win-max{width:min(1100px,92vw)!important;}
.modal-card.win-max .modal-body{max-height:72vh;overflow:auto;}
/* v82：收款信息锁定提示 + 超管代改弹窗 */
.v82-strong{color:#DE3D33;font-weight:600;}
.cash-lock-tip{display:block;margin:10px 0 0;padding:10px 12px;border:1px solid #F4C6C2;background:#FFF6F5;border-radius:6px;color:#8A4B45;line-height:1.7;}
.cash-lock-tip b{color:#DE3D33;}
.v82-pirow{display:flex;gap:10px;align-items:center;margin-bottom:10px;}
.v82-pirow label{width:96px;flex-shrink:0;color:#5B6573;font-size:13px;}
.v82-pirow .v18-inp{flex:1;}
.v82-piwrap{max-width:520px;}
.v82-authbox{margin:0 0 14px;padding:10px 12px;border:1px solid #DDE3EC;background:#F7F9FC;border-radius:6px;color:#5B6573;line-height:1.8;font-size:13px;}
.v82-authbox b{color:#2B3440;}
/* v84：删除账号全部信息确认框 */
.v84-warn{margin:0 0 14px;padding:12px 14px;border:1px solid #F5C2C7;background:#FFF5F5;border-radius:6px;color:#B02A37;line-height:1.9;font-size:13px;}
.v84-warn b{color:#8E1B24;}
.v84-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px;margin-bottom:14px;}
.v84-item{display:flex;justify-content:space-between;font-size:13px;color:#5B6573;border-bottom:1px dashed #E6EAF0;padding:4px 0;}
.v84-item b{color:#2B3440;font-weight:600;}
.v84-confirm label{display:block;font-size:13px;color:#5B6573;margin-bottom:6px;}
.v84-confirm label b{color:#E5544F;}
.v84-confirm .v18-inp{width:100%;}
.v82-warn{color:#DE3D33;}
/* v99k：删除弹窗分组 / 保留提示 / 备注与快照路径 */
.v84-grp{margin:0 0 6px;font-size:12px;color:#8A94A6;font-weight:600;}
.v84-grp+.v84-list{margin-bottom:12px;}
.v84-item.keep b{color:#1B7F4B;}
.v84-keep{margin:0 0 12px;padding:10px 14px;border:1px solid #BFE3CD;background:#F2FBF6;border-radius:6px;font-size:13px;color:#1B7F4B;line-height:1.85;}
.v84-keep b{color:#14663C;}
.v84-keep.off{border-color:#F5C2C7;background:#FFF5F5;color:#B02A37;}
.v84-keep.off b{color:#8E1B24;}
.v84-chk{display:flex;align-items:center;gap:8px;font-size:13px;color:#2B3440;margin:0 0 10px;cursor:pointer;}
.v84-chk input{width:16px;height:16px;}
.v99k-path{margin-top:10px;font-size:12px;color:#8A94A6;line-height:1.85;word-break:break-all;}
.v18-note{display:block;font-size:12px;color:#8A94A6;font-weight:400;margin-top:2px;}
.v18-searchrow{margin:0 0 12px;}
.v18-searchrow .v18-inp{width:280px;max-width:100%;}

/* === v99z74 修复：商户/运营后台共用表单·弹窗样式。
   原仅由 app.chunk.super.js 动态注入 v18Style，商户后台加载不到 ⇒ 申请提现/投诉回复/清空卡密 三弹窗裸奔。
   现下移为静态样式；super 端原有 v18Style 保留（重复声明无害，超管零变化）。=== */
.v18-pill{display:inline-block;padding:2px 9px;border-radius:10px;font-size:12px;line-height:1.6;}
.v18-pill.ok{background:#E8F8F0;color:#1FA75A;}
.v18-pill.wait{background:#FFF4E5;color:#E08A00;}
.v18-pill.no{background:#FDECEC;color:#DE3D33;}
.v18-pill.paid{background:#EAF0FF;color:#2F55D4;}
.v18-fld label{display:block;font-size:13px;color:var(--text);margin-bottom:7px;font-weight:500;}
.v18-inp{height:36px;border:1px solid #CED4DA;border-radius:6px;background:#fff;font-family:inherit;font-size:13px;color:var(--text);outline:none;padding:0 12px;width:100%;}
.v18-inp:focus{border-color:var(--blue);}
.v18-tip{font-size:12px;color:#8A93A3;}
