
/* ============================================================
 * 在线客服工作台 v3 · 专业级界面（支持浅色/深色主题）
 * ============================================================ */
:root{
  --kf-primary:#6366f1; --kf-primary2:#8b5cf6; --kf-danger:#ef4444; --kf-warn:#f59e0b;
  --kf-ok:#10b981; --kf-bg:#f4f5fb; --kf-card:#fff; --kf-line:#e7e8f2;
  --kf-text:#1f2937; --kf-sub:#6b7280; --kf-faint:#9ca3af;
  --kf-soft:#f3f4ff; --kf-soft2:#f8f9fd; --kf-bubble-me:#6366f1; --kf-bubble-them:#fff;
  --kf-shadow:0 8px 30px rgba(30,35,90,.06);
}
[data-kf-theme="dark"]{
  --kf-bg:#0f1117; --kf-card:#171a23; --kf-line:#252a36; --kf-text:#e5e7eb; --kf-sub:#9ca3af;
  --kf-soft:#1d2130; --kf-soft2:#1a1e28; --kf-faint:#6b7280;
  --kf-bubble-them:#1f2430; --kf-shadow:0 8px 30px rgba(0,0,0,.35);
}
.kefu-shell{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;height:100vh;height:100dvh;min-height:0;
  border-radius:0;overflow:hidden;background:var(--kf-card);border:none;box-shadow:none;z-index:90}
/* ---------- 顶栏 ---------- */
.kefu-bar{display:flex;align-items:center;gap:12px;padding:0 16px;height:56px;flex:0 0 56px;color:var(--kf-text);
  background:var(--kf-card);border-bottom:1px solid var(--kf-line);position:relative;z-index:2}
.kefu-bar::after{display:none}
.kefu-bar-logo{width:36px;height:36px;border-radius:10px;background:var(--kf-soft2);display:flex;
  align-items:center;justify-content:center;font-size:18px;flex:0 0 36px;border:1px solid var(--kf-line);cursor:pointer;transition:all .15s}
.kefu-bar-logo:hover{background:var(--kf-primary);color:#fff;transform:scale(1.06)}
.kefu-bar-title{font-size:15px;font-weight:700;letter-spacing:.2px;color:var(--kf-text)}
.kefu-bar-sub{font-size:10.5px;color:var(--kf-faint);opacity:1;margin-top:1px}
.kefu-bar-stats{display:flex;gap:6px;margin-left:14px}
.kefu-bstat{background:var(--kf-soft2);border:1px solid var(--kf-line);border-radius:9px;padding:4px 11px;text-align:center}
.kefu-bstat b{display:block;font-size:13.5px;font-weight:800;line-height:1.2;color:var(--kf-primary)}
.kefu-bstat span{font-size:9px;color:var(--kf-faint);opacity:1}
.kefu-bar-right{margin-left:auto;display:flex;align-items:center;gap:10px}
.kefu-exit{display:flex;width:34px;height:34px;flex:0 0 34px;border:none;border-radius:50%;background:var(--kf-soft2);
  color:var(--kf-sub);font-size:14px;cursor:pointer;align-items:center;justify-content:center;transition:background .15s}
.kefu-exit:hover{background:var(--kf-line);color:var(--kf-text)}
.kefu-bar-search{position:relative}
.kefu-bar-search input{width:240px;border:none;border-radius:10px;padding:9px 14px 9px 34px;font-size:12.5px;
  background:rgba(255,255,255,.94);outline:none;color:#1f2937;transition:width .2s}
.kefu-bar-search input:focus{width:300px}
.kefu-bar-search .bs-ico{position:absolute;left:11px;top:50%;transform:translateY(-50%);font-size:13px;opacity:.5}
.kefu-bar-online{display:flex;align-items:center;gap:6px;font-size:11.5px;background:rgba(255,255,255,.15);
  padding:5px 11px;border-radius:999px}
.kefu-bar-online i{width:7px;height:7px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 3px rgba(74,222,128,.25)}
.kefu-theme-btn{width:32px;height:32px;border-radius:9px;border:none;background:rgba(255,255,255,.15);color:#fff;
  font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.kefu-theme-btn:hover{background:rgba(255,255,255,.28)}
/* ---------- 主体 ---------- */
.kefu-body{flex:1;display:flex;min-height:0}
/* 会话栏 */
.kefu-side{width:318px;flex:0 0 318px;display:flex;flex-direction:column;border-right:1px solid var(--kf-line);background:var(--kf-card)}
.kefu-side-tabs{display:flex;gap:4px;padding:12px 14px 8px}
.kefu-tab{flex:1;text-align:center;font-size:12px;color:var(--kf-sub);padding:7px 0;border-radius:9px;cursor:pointer;
  transition:all .15s;font-weight:600;border:1px solid transparent}
.kefu-tab:hover{background:var(--kf-soft);color:var(--kf-primary)}
.kefu-tab.on{background:linear-gradient(135deg,var(--kf-primary),var(--kf-primary2));color:#fff;
  box-shadow:0 3px 10px rgba(99,102,241,.3);border-color:transparent}
.kefu-tab .kt-n{display:inline-block;min-width:17px;height:17px;line-height:17px;border-radius:9px;background:none;color:#e5484d;
  color:#fff;font-size:10px;margin-left:4px;font-weight:700}
.kefu-tab.on .kt-n{background:rgba(255,255,255,.28)}
.kefu-side-list{flex:1;overflow-y:auto;padding:4px 10px 10px}
.kefu-sec-label{font-size:10px;color:var(--kf-faint);padding:8px 8px 4px;font-weight:700;letter-spacing:.6px;display:none}
.kefu-sec-label.show{display:block}
.kefu-item{display:flex;gap:10px;padding:10px 10px;border-radius:12px;cursor:pointer;align-items:center;transition:background .12s;
  border:1px solid transparent;position:relative}
.kefu-item:hover{background:var(--kf-soft)}
.kefu-item.on{background:#ebebeb;border-color:transparent}
.kefu-item.pinned{border-left:3px solid var(--kf-warn)}
.kefu-ava{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,var(--kf-primary),var(--kf-primary2));color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:17px;flex:0 0 42px;overflow:hidden;font-weight:700;position:relative}
.kefu-ava img{position:absolute;top:0;left:0;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:cover}
/* 无头像时的默认灰色头像（与悦动一致的简单样式） */
.kefu-ava .kefu-ava-txt{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:700}
.kefu-ava .kefu-ava-def{background:linear-gradient(135deg,#94a3b8,#64748b);color:#fff;font-size:19px}
/* 主站/分站标签 */
.kefu-site{font-size:10px;color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);padding:1px 7px;border-radius:6px;flex:0 0 auto;min-width:0;font-weight:600;white-space:nowrap;max-width:9em;overflow:hidden;text-overflow:ellipsis}
.kefu-msgcnt{font-size:10px;color:#94a3b8;margin-left:8px;flex:0 0 auto;white-space:nowrap}
.kefu-site.sub{background:linear-gradient(135deg,#f59e0b,#f97316)}
.kefu-item-main{flex:1;min-width:0}
.kefu-item-top{display:flex;align-items:center;gap:6px}
.kefu-nick{font-size:13px;font-weight:700;color:var(--kf-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:0 1 auto;min-width:0}
/* 会员编号主显：醒目品牌色，认人看编号 */
.kefu-nick.kf-mid{color:var(--kf-primary);font-size:14px;letter-spacing:.3px;flex:0 0 auto;min-width:auto}
/* 群聊名完整显示：不截断、允许换行 */
.kefu-nick.kefu-room-name{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.3;font-size:13px}
.kefu-room-sub{font-size:10px;color:var(--kf-faint);background:var(--kf-soft);padding:1px 6px;border-radius:6px;margin-right:6px}
.kefu-id{font-size:10px;color:var(--kf-faint);background:var(--kf-soft);padding:1px 6px;border-radius:6px;flex:0 0 auto;font-weight:500}
.kefu-time{font-size:10px;color:var(--kf-faint);margin-left:auto;flex:0 0 auto;white-space:nowrap}
.kefu-last{font-size:11.5px;color:var(--kf-sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px;
  display:flex;gap:5px;align-items:center}
.kefu-last .me-tag{color:var(--kf-primary);flex:0 0 auto}
.kefu-state{font-size:9.5px;padding:2px 7px;border-radius:999px;font-weight:700;flex:0 0 auto}
.kefu-state.todo{background:#fef3c7;color:#b45309}
.kefu-state.doing{background:#dbeafe;color:#1d4ed8}
.kefu-state.done{background:#d1fae5;color:#047857}
.kefu-state.online{background:#d1fae5;color:#059669;font-weight:700;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}
[data-kf-theme="dark"] .kefu-state.online{background:#0f2e23;color:#34d399}
.kefu-online-dot{position:absolute;right:0;bottom:0;width:11px;height:11px;border-radius:50%;background:#22c55e;
  border:2px solid var(--kf-card);box-shadow:0 0 0 2px rgba(34,197,94,.35);z-index:2}
.kefu-item.is-online{background:linear-gradient(135deg,rgba(34,197,94,.07),transparent 60%)}
.kefu-item.is-online:hover{background:linear-gradient(135deg,rgba(34,197,94,.12),var(--kf-soft))}
.kefu-online-card{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,rgba(34,197,94,.1),rgba(34,197,94,.03));
/* ---------- 群聊会话与群消息 ---------- */
.kefu-room-item{background:linear-gradient(135deg,rgba(168,85,247,.06),rgba(99,102,241,.03))}
.kefu-room-ava{background:linear-gradient(135deg,#a855f7,#6366f1);color:#fff;font-size:20px;box-shadow:0 4px 12px rgba(168,85,247,.25)}
.kefu-sname{font-size:11.5px;color:#a855f7;margin-bottom:4px;font-weight:600;padding-left:2px}
  border:1px solid rgba(34,197,94,.35);border-radius:12px;padding:11px 13px;margin-bottom:4px}
.kefu-online-card .oc-ico{width:38px;height:38px;border-radius:50%;background:#22c55e;color:#fff;display:flex;align-items:center;
  justify-content:center;font-size:18px;flex:0 0 38px;box-shadow:0 4px 12px rgba(34,197,94,.35)}
.kefu-online-card .oc-t{font-size:12px;color:var(--kf-text);font-weight:700;display:flex;gap:6px;align-items:center}
.kefu-online-card .oc-s{font-size:11px;color:var(--kf-sub);margin-top:2px;word-break:break-all}
[data-kf-theme="dark"] .kefu-state.todo{background:#3a2f10;color:#fbbf24}
[data-kf-theme="dark"] .kefu-state.doing{background:#12233f;color:#60a5fa}
[data-kf-theme="dark"] .kefu-state.done{background:#0f2e23;color:#34d399}
.kefu-unread{flex:0 0 auto;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:#e5484d;color:#fff;
  font-size:11px;display:flex;align-items:center;justify-content:center;font-weight:700;box-shadow:0 2px 6px rgba(229,72,77,.35)}
/* ---------- 统计面板（初始欢迎页） ---------- */
.kefu-stats-panel{flex:1;overflow-y:auto;padding:22px 26px;background:var(--kf-bg);min-height:0}
.kefu-stats-head{font-size:16px;font-weight:800;color:var(--kf-text);margin-bottom:4px;display:flex;align-items:center;gap:8px}
.kefu-stats-head small{font-size:11px;color:var(--kf-faint);font-weight:400}
.kefu-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:14px 0 16px}
.kefu-stat-card{background:var(--kf-card);border:1px solid var(--kf-line);border-radius:14px;padding:15px 16px;display:flex;align-items:center;gap:12px}
.kefu-stat-card .sc-ico{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;flex:0 0 44px}
.kefu-stat-card b{display:block;font-size:23px;font-weight:800;color:var(--kf-text);line-height:1.15}
.kefu-stat-card span{font-size:11px;color:var(--kf-faint)}
.kefu-stats-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}
.kefu-stats-box{background:var(--kf-card);border:1px solid var(--kf-line);border-radius:14px;padding:15px 18px}
.kefu-stats-box h4{margin:0 0 12px;font-size:13px;font-weight:700;color:var(--kf-text);display:flex;align-items:center;gap:6px}
.kefu-bar-chart{display:flex;align-items:flex-end;gap:10px;height:110px;padding-top:4px}
.kefu-bar-chart .bc{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;height:100%;justify-content:flex-end;min-width:0}
.kefu-bar-chart .bc-i{width:100%;max-width:26px;border-radius:5px 5px 2px 2px;background:linear-gradient(180deg,var(--kf-primary),var(--kf-primary2));min-height:2px;transition:height .4s}
.kefu-bar-chart .bc-i.zero{background:var(--kf-soft2)}
.kefu-bar-chart .bc b{font-size:10.5px;color:var(--kf-sub)}
.kefu-bar-chart .bc span{font-size:9px;color:var(--kf-faint)}
.kefu-dbar{display:flex;align-items:center;gap:10px;margin:7px 0}
.kefu-dbar .db-l{width:66px;font-size:12px;color:var(--kf-sub);flex:0 0 66px}
.kefu-dbar .db-t{flex:1;height:9px;border-radius:5px;background:var(--kf-soft2);overflow:hidden}
.kefu-dbar .db-f{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,var(--kf-primary),var(--kf-primary2));transition:width .4s}
.kefu-dbar .db-n{width:40px;text-align:right;font-size:11.5px;font-weight:700;color:var(--kf-text);flex:0 0 40px}
.kefu-stats-list{list-style:none;margin:0;padding:0}
.kefu-stats-list li{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px dashed var(--kf-line);cursor:pointer;border-radius:8px}
.kefu-stats-list li:hover{background:var(--kf-soft)}
.kefu-stats-list li:last-child{border-bottom:none}
.kefu-stats-list .sl-rank{width:20px;height:20px;border-radius:6px;background:var(--kf-soft2);color:var(--kf-primary);font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;flex:0 0 20px}
.kefu-stats-list .sl-name{flex:1;font-size:12.5px;color:var(--kf-text);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kefu-stats-list .sl-cnt{font-size:11.5px;color:var(--kf-faint);flex:0 0 auto}
.kefu-stats-list .sl-empty{font-size:12px;color:var(--kf-faint);padding:10px 0;border-bottom:none;cursor:default}
.kefu-stats-list .sl-empty:hover{background:none}
/* 顶栏发红包/详情：默认折叠（功能在 ··· 菜单里） */
.kefu-op-pc{display:none}
@media (max-width:820px){
  .kefu-stats-grid{grid-template-columns:repeat(2,1fr);gap:10px;padding:0 2px}
  .kefu-stats-panel{padding:16px 14px}
  .kefu-stats-cols{grid-template-columns:1fr;gap:10px}
}
/* 未读会话：最新消息预览红色（无底色） */
.kefu-item.unread .kefu-last{color:#e5484d;font-weight:600}
.kefu-item.unread .kefu-time{color:#e5484d}
.kefu-note-dot{font-size:11px;margin-left:auto;color:var(--kf-warn);flex:0 0 auto}
/* 在线客户第二行：正在浏览页面（绿色小点+文字） */
.kefu-browse{display:inline-flex;align-items:center;gap:5px;color:#059669;font-size:11.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.kefu-browse .b-dot{width:6px;height:6px;border-radius:50%;background:#22c55e;flex:0 0 6px;box-shadow:0 0 0 2px rgba(34,197,94,.25)}
/* 对接货源余额：低于预警阈值标红 */
.dock-list{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))!important}
.dock-item{display:flex;align-items:center;gap:8px;background:#f8fafc;border:1px solid #eef2f7;border-radius:8px;padding:7px 10px;margin:3px 0;transition:.15s}
.dock-item:hover{border-color:#c7d2fe}
.dock-item .sl-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;color:#1e293b}
.dock-item .sl-bal{font-weight:600;color:#334155;white-space:nowrap}
.dock-item .sl-bal.red{color:#dc2626}
.dock-item .sl-thr{font-size:11px;color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:99px;padding:1px 8px;white-space:nowrap}
.dock-item.sup-low{background:#fef2f2;border-color:#fecaca;border-left:4px solid #dc2626;box-shadow:0 1px 4px rgba(220,38,38,.12)}
.dock-item.sup-low .sl-name{color:#b91c1c}
.dock-item.sup-low .sl-bal.red{color:#dc2626;font-size:13px}
.kefu-stats-box.wide{grid-column:1/-1}
.kefu-side-foot{padding:10px 14px;border-top:1px solid var(--kf-line);display:flex;gap:8px}
.kefu-contact-btn{flex:1;border:none;border-radius:11px;padding:10px 0;font-size:13px;font-weight:700;cursor:pointer;
  background:linear-gradient(135deg,var(--kf-primary),var(--kf-primary2));color:#fff;transition:opacity .15s;display:flex;align-items:center;justify-content:center;gap:6px}
.kefu-contact-btn:hover{opacity:.9}
.kefu-batch-btn{flex:1;border:1.5px solid var(--kf-primary);border-radius:11px;padding:10px 0;font-size:13px;font-weight:700;cursor:pointer;
  background:var(--kf-card);color:var(--kf-primary);transition:opacity .15s;display:flex;align-items:center;justify-content:center;gap:6px}
.kefu-batch-btn:hover{opacity:.85}
/* 一键售后结果列表 */
.ab-err{padding:12px;border-radius:10px;background:rgba(239,68,68,.08);color:#ef4444;font-size:13px;margin-top:12px}
.ab-tip{font-size:12.5px;color:var(--kf-sub);margin-top:14px;padding:10px 12px;background:var(--kf-bg);border-radius:10px}
.ab-list{margin-top:8px;max-height:280px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}
.ab-item{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;font-size:13px}
.ab-item.ok{background:rgba(34,197,94,.08);color:#16a34a}
.ab-item.fail{background:rgba(239,68,68,.08);color:#dc2626}
.ab-no{font-weight:700;white-space:nowrap}
.ab-msg{font-size:12px;opacity:.85;text-align:right;word-break:break-all}
/* 聊天区 */
.kefu-chat{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--kf-bg)}
.kefu-chat-head{display:flex;align-items:center;gap:12px;padding:10px 18px;background:var(--kf-card);border-bottom:1px solid var(--kf-line);flex:0 0 auto}
.kefu-chat-ava{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--kf-primary),var(--kf-primary2));color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:18px;flex:0 0 44px;overflow:hidden;font-weight:700;position:relative}
.kefu-chat-ava img{position:absolute;top:0;left:0;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:cover}
.kefu-chat-ava .kefu-ava-def{background:linear-gradient(135deg,#94a3b8,#64748b);color:#fff;font-size:19px}
.kefu-chat-ava .dot{position:absolute;right:1px;bottom:1px;width:10px;height:10px;border-radius:50%;border:2px solid var(--kf-card);background:var(--kf-ok)}
.kefu-chat-info{flex:1;min-width:0}
.kefu-chat-name{font-size:15px;font-weight:800;color:var(--kf-text);display:flex;align-items:center;gap:8px}
.kefu-lv{font-size:10px;padding:2px 8px;border-radius:999px;background:linear-gradient(135deg,#f59e0b,#ef4444);color:#fff;font-weight:700}
.kefu-chat-sub{font-size:11px;color:var(--kf-faint);margin-top:3px}
.kefu-chat-ops{display:flex;gap:8px}
.kefu-op{display:flex;align-items:center;gap:5px;border:1px solid var(--kf-line);background:var(--kf-card);border-radius:10px;
  padding:7px 12px;font-size:12px;color:var(--kf-sub);cursor:pointer;transition:all .15s;font-weight:600}
.kefu-op:hover{border-color:var(--kf-primary);color:var(--kf-primary);background:var(--kf-soft)}
.kefu-op.rp:hover{border-color:var(--kf-danger);color:var(--kf-danger);background:#fef2f2}
/* 消息区 */
.kefu-msgs{flex:1;overflow-y:auto;padding:10px 22px;display:flex;flex-direction:column;gap:2px;scroll-behavior:smooth;background:#ededed}
[data-kf-theme="dark"] .kefu-msgs{background:var(--kf-bg)}
.kefu-loadmore{text-align:center;padding:6px 0 2px}
.kefu-loadmore button{border:1px solid var(--kf-line);background:var(--kf-card);color:var(--kf-sub);border-radius:999px;
  font-size:11.5px;padding:5px 14px;cursor:pointer}
.kefu-loadmore button:hover{color:var(--kf-primary);border-color:var(--kf-primary)}
.kefu-day{text-align:center;font-size:11px;color:var(--kf-faint);margin:10px 0 6px;display:flex;align-items:center;gap:10px}
.kefu-day::before,.kefu-day::after{content:'';flex:1;height:1px;background:var(--kf-line)}
.kefu-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--kf-faint);font-size:13px;flex-direction:column;gap:10px;white-space:pre-line;text-align:center;padding:20px;box-sizing:border-box}
.kefu-empty .ke-ico{font-size:30px}
.kefu-empty .ke-t1{font-size:15px;font-weight:700;color:var(--kf-text)}
.kefu-retry{margin-top:6px;padding:10px 26px;border:none;border-radius:12px;background:linear-gradient(135deg,var(--kf-primary),var(--kf-primary2));
  color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:transform .15s;min-height:44px}
.kefu-retry:hover{transform:scale(1.04)}
.kefu-empty .ke-ico{font-size:52px;opacity:.5;filter:grayscale(.2)}
.kefu-empty .ke-t1{font-size:14px;font-weight:600;color:var(--kf-sub)}
.kefu-msg{max-width:82%;display:flex;flex-direction:row;align-items:flex-start;gap:8px;margin:6px 0;position:relative;animation:kfIn .16s ease}
@keyframes kfIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.kefu-msg.them{align-self:flex-start}
.kefu-msg.me{align-self:flex-end;flex-direction:row-reverse}
.kefu-msg-ava{width:36px;height:36px;border-radius:9px;flex:0 0 36px;overflow:hidden;background:var(--kf-soft2);display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;color:var(--kf-primary);box-shadow:0 1px 3px rgba(30,35,90,.08)}
.kefu-msg-ava img{width:100%;height:100%;object-fit:cover;display:block}
.kefu-msg-ava-l{font-size:14px;font-weight:800;color:var(--kf-primary)}
.kefu-bubble-wrap{display:flex;flex-direction:column;align-items:flex-start;min-width:0;max-width:calc(100% - 44px)}
.kefu-msg.me .kefu-bubble-wrap{align-items:flex-end}
.kefu-bubble{padding:9px 13px;border-radius:15px;font-size:13.5px;line-height:1.6;word-break:break-word;white-space:pre-wrap;position:relative}
.kefu-msg.them .kefu-bubble{background:var(--kf-bubble-them);border:1px solid var(--kf-line);border-top-left-radius:4px;
  color:var(--kf-text);box-shadow:0 1px 3px rgba(30,35,90,.05)}
.kefu-msg.me .kefu-bubble{background:#95ec69;color:#111;
  border-top-right-radius:4px;box-shadow:0 1px 3px rgba(15,23,42,.08)}
.kefu-msg.me .kefu-quote{background:rgba(0,0,0,.06);border-left-color:rgba(0,0,0,.25);color:#111}
.kefu-quote{background:rgba(255,255,255,.14);border-left:3px solid rgba(255,255,255,.6);border-radius:7px;
  padding:4px 9px;font-size:11.5px;margin-bottom:5px;opacity:.92}
.kefu-msg.them .kefu-quote{background:var(--kf-soft2);border-left-color:var(--kf-primary);color:var(--kf-sub)}
.kefu-quote .qt-s{display:block;font-size:9.5px;opacity:.75;margin-bottom:1px}
.kefu-msg img.kefu-img{max-width:250px;max-height:280px;border-radius:12px;display:block;border:1px solid var(--kf-line);cursor:zoom-in}
.kefu-msg video.kefu-vid{max-width:300px;max-height:260px;border-radius:12px;background:#000;display:block}
.kefu-msg-meta{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--kf-faint);margin-top:3px;padding:0 3px}
.kefu-read{color:#9a9a9a;font-weight:600;font-size:10.5px}
/* 聊天消息内的未读：黑色文字（区别于列表红圈角标；列表角标在 .kefu-side 区域单独定义） */
.kefu-msg-meta .kefu-unread{background:none;color:var(--kf-text);box-shadow:none;min-width:auto;height:auto;
  padding:0;border-radius:0;font-size:10.5px;font-weight:600;display:inline}
.kefu-ops{display:none;position:absolute;top:-24px;right:0;background:var(--kf-card);border:1px solid var(--kf-line);
  border-radius:9px;padding:3px;box-shadow:0 6px 18px rgba(30,35,90,.12);z-index:20}
/* 订单号高亮（点击查询） */
.kf-order{display:inline-block;color:var(--kf-primary);background:rgba(99,102,241,.12);border:1px dashed rgba(99,102,241,.5);
  border-radius:6px;padding:0 6px;font-weight:700;cursor:pointer;line-height:1.5}
.kf-order:hover{background:rgba(99,102,241,.2)}
/* 订单查询弹窗 */
.kf-o-empty{padding:36px 10px;text-align:center;color:var(--kf-sub);font-size:13px}
.kf-o-head{display:flex;align-items:center;gap:10px;padding:13px 16px;border-radius:14px;
  background:linear-gradient(135deg,var(--kf-soft),rgba(99,102,241,.08));border:1px solid rgba(99,102,241,.25)}
.kf-o-no{font-size:13.5px;font-weight:800;color:var(--kf-text);word-break:break-all}
.kf-o-state{margin-left:auto;font-size:12px;font-weight:800;padding:4px 12px;border-radius:999px;flex:0 0 auto;white-space:nowrap}
.kf-o-state.s0{background:#e2e8f0;color:#475569}.kf-o-state.s1{background:#fef2f2;color:#dc2626}
.kf-o-state.s2{background:#fef3c7;color:#b45309}.kf-o-state.s3{background:#dbeafe;color:#2563eb}
.kf-o-state.s5{background:#ffedd5;color:#ea580c}.kf-o-state.s6{background:#dcfce7;color:#16a34a}
.kf-o-state.s7{background:#fee2e2;color:#dc2626}.kf-o-state.s8{background:#f1f5f9;color:#64748b}
.kf-o-state.s9{background:#fef2f2;color:#dc2626}.kf-o-state.s10{background:#e0e7ff;color:#4f46e5}
.kf-o-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px 14px;margin:14px 0 4px}
.kf-o-g-item{display:flex;flex-direction:column;gap:2px;min-width:0}
.kf-o-g-item .k{font-size:11px;color:var(--kf-faint)}
.kf-o-g-item .v{font-size:12.5px;color:var(--kf-text);font-weight:600;word-break:break-all}
.kf-o-refund{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:8px 10px}
.kf-o-refund .k{color:#dc2626}
.kf-o-refund .v{color:#dc2626}
.kf-o-refund .v b{font-size:14px}
.kf-o-g-item.full{grid-column:1/-1}
.kf-o-tl{list-style:none;margin:8px 0 0;padding:0}
.kf-o-tl li{position:relative;padding:0 0 13px 22px;font-size:12.5px}
.kf-o-tl li:before{content:'';position:absolute;left:4px;top:5px;width:9px;height:9px;border-radius:50%;background:var(--kf-primary);box-shadow:0 0 0 3px rgba(99,102,241,.18)}
.kf-o-tl li:after{content:'';position:absolute;left:8px;top:17px;bottom:-2px;width:1px;background:var(--kf-line)}
.kf-o-tl li:last-child:after{display:none}
.kf-o-tl .t{font-weight:700;color:var(--kf-text)}
.kf-o-tl .d{color:var(--kf-faint);font-size:11px;margin-left:8px}
/* 售后类型选项（chips） */
.as-chips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:10px}
.as-chip{border:1px solid var(--kf-line);background:var(--kf-card);color:var(--kf-text);border-radius:999px;
  padding:6px 13px;font-size:12.5px;cursor:pointer;transition:all .15s;font-weight:600}
.as-chip:hover{border-color:var(--kf-primary);color:var(--kf-primary);background:var(--kf-soft)}
.as-chip.on{background:linear-gradient(135deg,var(--kf-primary),var(--kf-primary2));color:#fff;border-color:transparent;
  box-shadow:0 3px 10px rgba(99,102,241,.3)}
.as-loading{font-size:12px;color:var(--kf-faint)}
/* 上游订单号：点击复制 */
.kf-o-copy{display:inline-block;color:var(--kf-primary);background:rgba(99,102,241,.1);border:1px dashed rgba(99,102,241,.45);
  border-radius:6px;padding:0 6px;cursor:pointer;font-weight:700;white-space:nowrap}
.kf-o-copy:hover{background:rgba(99,102,241,.2)}
/* 下单参数列表 */
.kf-o-params{margin-top:3px;display:flex;flex-direction:column;gap:5px;width:100%}
/* 顶栏订单搜索框（订单号/上游订单号） */
.kefu-mobile-osec{display:flex;gap:6px;padding:0 10px 6px}
.kefu-mo-item{flex:1;min-width:0;display:flex;gap:5px}
.kefu-mo-item input{flex:1;min-width:0;height:30px;border:1px solid var(--kf-line);border-radius:8px;background:var(--kf-card);color:var(--kf-text);font-size:12px;padding:0 9px;outline:none}
.kefu-mo-item input:focus{border-color:var(--kf-primary)}
.kefu-mo-item button{flex:0 0 auto;height:30px;border:none;border-radius:8px;background:linear-gradient(135deg,var(--kf-primary),var(--kf-primary2));color:#fff;font-size:12px;font-weight:700;padding:0 12px;cursor:pointer}
.kefu-mo-item button:active{opacity:.85}
/* 上游订单号多结果列表（弹窗内） */
.kf-up-list{display:flex;flex-direction:column;gap:6px;margin-top:4px;max-height:52vh;overflow-y:auto}
.kf-up-item{display:flex;align-items:center;gap:8px;padding:9px 11px;border-radius:10px;background:var(--kf-soft2);cursor:pointer;font-size:12.5px;transition:background .12s}
.kf-up-item:hover{background:var(--kf-soft)}
.kf-up-no{font-weight:700;color:var(--kf-text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kf-up-amt{color:var(--kf-sub);white-space:nowrap}
.kf-up-time{color:var(--kf-faint);font-size:11px;white-space:nowrap}
/* 设置弹窗：售后自动回复区块 */
.kefu-modal-lg{width:min(640px,94vw);max-height:86vh;overflow-y:auto}
.as-cfg-sec{margin-top:6px;border-top:1px dashed var(--kf-line);padding-top:10px}
.as-cfg-h{font-weight:800;color:var(--kf-primary)}
.as-switch{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:700;color:var(--kf-text);margin:8px 0 12px;cursor:pointer}
.as-switch input{width:18px;height:18px;accent-color:var(--kf-primary)}
.as-cfg-grid{display:grid;grid-template-columns:150px 1fr;gap:8px 12px;align-items:start}
.as-cfg-grid label{font-size:12.5px;color:var(--kf-sub);font-weight:700;padding-top:7px;text-align:right}
.as-cfg-grid textarea{width:100%;box-sizing:border-box;border:1px solid var(--kf-line);border-radius:9px;background:var(--kf-card);color:var(--kf-text);font-size:12.5px;line-height:1.6;padding:8px 10px;resize:vertical;outline:none;font-family:inherit}
.as-cfg-grid textarea:focus{border-color:var(--kf-primary)}
/* 余额/等级弹窗 */
.bal-cust{font-size:13px;font-weight:700;color:var(--kf-primary);background:var(--kf-soft2);border-radius:8px;padding:7px 10px}
.bal-sel{width:100%;box-sizing:border-box;padding:9px 10px;border:1px solid var(--kf-line);border-radius:9px;background:var(--kf-card);color:var(--kf-text);font-size:13px;outline:none;font-family:inherit}
.bal-sel:focus{border-color:var(--kf-primary)}
.kf-o-p-row{display:flex;align-items:center;gap:8px;background:var(--kf-soft2);border:1px solid var(--kf-line);
  border-radius:8px;padding:6px 10px;flex-wrap:wrap}
.kf-o-p-row .n{font-size:11.5px;color:var(--kf-faint);flex:0 0 auto}
.kf-o-p-row .val{font-size:12.5px;font-weight:600;color:var(--kf-text);word-break:break-all;flex:1;min-width:0}
.kf-o-open{flex:0 0 auto;border:none;background:linear-gradient(135deg,var(--kf-primary),var(--kf-primary2));color:#fff;
  font-size:11px;font-weight:700;border-radius:6px;padding:4px 10px;cursor:pointer}
.kf-o-open:hover{opacity:.9}
/* 进度条 */
.kf-o-prog{margin-top:3px;width:100%}
.kf-o-prog-top{display:flex;justify-content:space-between;font-size:12px;color:var(--kf-sub);font-weight:700;margin-bottom:5px}
.kf-o-bar{height:8px;background:var(--kf-line);border-radius:99px;overflow:hidden}
.kf-o-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--kf-primary),var(--kf-primary2));border-radius:99px;transition:width .3s}
.kf-o-prog-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(58px,1fr));gap:6px;margin-top:8px}
.kf-o-prog-grid > div{display:flex;flex-direction:column;align-items:center;gap:1px;background:var(--kf-soft2);border-radius:8px;padding:5px 4px}
.kf-o-prog-grid .k{font-size:10.5px;color:var(--kf-faint)}
.kf-o-prog-grid .v{font-size:13px;font-weight:800;color:var(--kf-text)}
/* 实测时速区 */
.kf-o-speed-load{font-size:12px;color:var(--kf-faint);padding:2px 0}
.kf-o-speed-err{font-size:12px;color:#dc2626;padding:2px 0}
.kf-o-speed-top{display:flex;justify-content:space-between;align-items:center;width:100%;margin-bottom:6px}
.kf-o-speed-top .k{font-size:12px;color:var(--kf-sub);font-weight:700}
.kf-o-speed .badge{font-size:11px;font-weight:800;border-radius:999px;padding:2px 10px}
.kf-o-speed .badge.fast{background:rgba(34,197,94,.12);color:#16a34a}
.kf-o-speed .badge.normal{background:rgba(59,130,246,.12);color:#2563eb}
.kf-o-speed .badge.slow{background:rgba(220,38,38,.12);color:#dc2626}
.kf-o-speed-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;width:100%}
.kf-o-speed-grid .s-item{display:flex;flex-direction:column;gap:1px;background:var(--kf-soft2);border-radius:8px;padding:6px 10px}
.kf-o-speed-grid .n{font-size:10.5px;color:var(--kf-faint)}
.kf-o-speed-grid .v{font-size:13px;font-weight:800;color:var(--kf-text)}
/* 同类实速最快 TOP5 推荐 */
.kf-o-top5{margin-top:10px;width:100%;border-top:1px dashed var(--kf-line);padding-top:8px}
.kf-o-top5-hd{font-size:12px;font-weight:800;color:var(--kf-text);margin-bottom:6px}
.kf-o-top5-row{display:flex;align-items:center;gap:7px;background:var(--kf-soft2);border:1px solid var(--kf-line);
  border-radius:8px;padding:5px 8px;margin-bottom:5px}
.kf-o-top5-row .idx{flex:0 0 auto;width:16px;height:16px;border-radius:50%;background:linear-gradient(135deg,var(--kf-primary),var(--kf-primary2));
  color:#fff;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center}
.kf-o-top5-row .nm{flex:1;min-width:0;font-size:12.5px;font-weight:600;color:var(--kf-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kf-o-top5-row .gid{flex:0 0 auto;font-size:11px;color:var(--kf-faint);font-weight:700}
.kf-o-top5-row .spd{flex:0 0 auto;font-size:11.5px;color:var(--kf-primary);font-weight:800;white-space:nowrap}
.kf-o-send{flex:0 0 auto;border:none;background:linear-gradient(135deg,var(--kf-primary),var(--kf-primary2));color:#fff;
  font-size:11px;font-weight:700;border-radius:6px;padding:4px 9px;cursor:pointer}
.kf-o-send:hover{opacity:.9}
.kf-o-send:disabled{opacity:.6;cursor:default}
/* 同类最快一键发送按钮 */
.kf-o-send-all{margin-top:10px;width:100%;border:none;background:linear-gradient(135deg,#f59e0b,#f97316);color:#fff;
  font-size:12.5px;font-weight:800;border-radius:10px;padding:9px 14px;cursor:pointer;box-shadow:0 3px 12px rgba(249,115,22,.28)}
.kf-o-send-all:hover{opacity:.92}
.kf-o-send-all:disabled{opacity:.6;cursor:default}
/* 分类全部时速列表 */
.kf-o-speed-cat{margin-top:10px;font-size:11.5px;color:var(--kf-sub);font-weight:800;border-top:1px dashed var(--kf-line);padding-top:8px}
.kf-o-speed-list{margin-top:6px;max-height:200px;overflow-y:auto;display:flex;flex-direction:column;gap:3px;border:1px solid var(--kf-line);border-radius:9px;padding:6px 8px;background:var(--kf-card)}
.kf-o-speed-li{display:flex;align-items:center;gap:7px;font-size:12px;line-height:1.5;padding:2px 0}
.kf-o-speed-li b{color:var(--kf-faint);flex:0 0 20px;font-weight:700}
.kf-o-speed-li .nm{flex:1;min-width:0;color:var(--kf-text);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kf-o-speed-li .gid{flex:0 0 auto;font-size:10.5px;color:var(--kf-faint)}
.kf-o-speed-li .sp{flex:0 0 auto;font-size:12px;font-weight:800;color:var(--kf-primary);background:var(--kf-soft2);border-radius:6px;padding:2px 8px}
.kefu-msg:hover .kefu-ops{display:flex}
.kefu-ops button{border:none;background:none;font-size:10.5px;color:var(--kf-sub);padding:5px 9px;border-radius:6px;cursor:pointer;font-weight:600}
.kefu-ops button:hover{background:var(--kf-soft);color:var(--kf-primary)}
.kefu-ops button.rec:hover{background:#fef2f2;color:var(--kf-danger)}
.kefu-rp{background:var(--kf-card);border:1px solid #fcd34d;border-radius:14px;padding:11px 16px;display:flex;gap:12px;align-items:center;min-width:210px;box-shadow:0 4px 14px rgba(245,158,11,.15)}
.kefu-rp-ico{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#f59e0b,#ef4444);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:19px;flex:0 0 40px}
.kefu-rp-tx{font-size:13.5px;color:#92400e;font-weight:600}
.kefu-rp-sub{font-size:11.5px;color:#b45309;margin-top:3px}
.kefu-rp-status{margin-left:auto;font-size:11px;padding:3px 9px;border-radius:999px;background:#fef3c7;color:#92400e;font-weight:600;flex:0 0 auto}
/* 输入区 */
.kefu-input{background:var(--kf-card);border-top:1px solid var(--kf-line);padding:8px 16px 6px;flex:0 0 auto;position:relative}
.kefu-quick{display:none;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.kefu-quick button{font-size:11.5px;padding:4px 11px;border-radius:999px;border:1px solid var(--kf-line);background:var(--kf-soft2);
  color:var(--kf-sub);cursor:pointer;transition:all .15s}
.kefu-quick button:hover{border-color:var(--kf-primary);color:var(--kf-primary);background:var(--kf-soft)}
.kefu-quick .kq-more{border-style:dashed}
.kefu-input-row{display:flex;gap:8px;align-items:flex-end}
.kefu-tool{display:none;width:38px;height:38px;border-radius:10px;border:1px solid var(--kf-line);background:var(--kf-card);font-size:17px;
  cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;flex:0 0 38px;position:relative;color:var(--kf-sub)}
.kefu-tool:hover{border-color:var(--kf-primary);background:var(--kf-soft);transform:translateY(-1px)}
.kefu-input-row textarea{flex:1;border:1px solid var(--kf-line);border-radius:8px;padding:5px 12px;font-size:13.5px;
  resize:none;min-height:32px;max-height:130px;outline:none;line-height:1.35;font-family:inherit;background:var(--kf-soft2);
  color:var(--kf-text);transition:border .15s,box-shadow .15s;box-sizing:border-box}
.kefu-input-row textarea:focus{border-color:var(--kf-primary);background:var(--kf-card);box-shadow:0 0 0 3px rgba(99,102,241,.13)}
.kefu-send{height:32px;padding:0 20px;border:none;border-radius:9px;background:linear-gradient(135deg,var(--kf-primary),var(--kf-primary2));
  color:#fff;font-size:13.5px;font-weight:700;cursor:pointer;flex:0 0 auto;transition:opacity .15s;box-shadow:0 3px 10px rgba(99,102,241,.3)}
.kefu-send:hover{opacity:.9}
.kefu-file{display:none}
/* ===== 微信风格组件 ===== */
.kefu-more-btn{display:flex;width:36px;height:36px;flex:0 0 36px;border:none;border-radius:50%;background:var(--kf-soft2);
  color:var(--kf-sub);font-size:15px;letter-spacing:2px;align-items:center;justify-content:center;
  cursor:pointer;font-weight:800;padding-bottom:4px;box-sizing:border-box}
.kefu-more-btn:hover{background:var(--kf-line)}
.kefu-send-btn{display:none}
/* 微信灰圆钮：😊 表情 / ＋ 更多（桌面手机通用，工具全部折叠进＋） */
.kefu-wx-emoji,.kefu-wx-plus{width:32px;height:32px;flex:0 0 32px;border:none;border-radius:50%;background:#f0f0f0;
  color:#5b6472;display:flex;align-items:center;justify-content:center;cursor:pointer;font-family:inherit;
  padding:0;line-height:1;box-sizing:border-box;transition:background .15s}
.kefu-wx-emoji{font-size:18px}
.kefu-wx-emoji:hover,.kefu-wx-plus:hover{background:#e2e8f0}
.kefu-wx-plus{font-size:22px;font-weight:500;padding-bottom:2px}
.kefu-wx-plus.on{background:#e2e8f0;font-size:16px;font-weight:600;padding-bottom:0}
.kefu-wx-send{display:none;height:32px;padding:0 18px;border:none;border-radius:9px;background:linear-gradient(135deg,#07c160,#06ad56);color:#fff;
  font-size:13.5px;font-weight:600;cursor:pointer;flex:0 0 auto;box-shadow:0 2px 8px rgba(7,193,96,.28);align-items:center;justify-content:center}
.kefu-wx-send:active{opacity:.88}
/* 加号折叠面板：桌面向上弹卡片 */
.kefu-plus-panel{position:absolute;bottom:calc(100% + 8px);left:12px;right:12px;background:var(--kf-card);
  border:1px solid var(--kf-line);border-radius:14px;box-shadow:0 14px 44px rgba(30,35,90,.16);padding:12px;
  display:none;z-index:70}
.kefu-plus-panel.show{display:block;animation:kefuFadeIn .18s ease}
.kefu-plus-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.kefu-plus-grid button{border:none;background:none;padding:8px 2px;display:flex;flex-direction:column;
  align-items:center;gap:7px;font-size:11.5px;color:var(--kf-sub);cursor:pointer;font-weight:600;font-family:inherit}
.kefu-plus-grid button:hover{color:var(--kf-primary)}
.kefu-plus-grid button:active{opacity:.8}
.kefu-plus-grid .pp-ico{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  font-size:26px;color:#fff;box-shadow:0 3px 10px rgba(15,23,42,.14)}
.pp-img{background:linear-gradient(135deg,#34d399,#10b981)}
.pp-vid{background:linear-gradient(135deg,#f87171,#ef4444)}
.pp-rp{background:linear-gradient(135deg,#fbbf24,#f59e0b)}
.pp-quick{background:linear-gradient(135deg,#818cf8,#6366f1)}
.kefu-more-mask{position:fixed;inset:0;background:rgba(15,23,42,.4);z-index:130;display:none;backdrop-filter:blur(2px)}
.kefu-more-mask.show{display:block}
.kefu-more-menu{position:absolute;top:52px;right:14px;width:210px;z-index:131;background:var(--kf-card);border-radius:14px;
  padding:6px;display:none;flex-direction:column;
  box-shadow:0 12px 40px rgba(15,23,42,.25);border:1px solid var(--kf-line)}
.kefu-more-menu.show{display:flex;animation:kefuFadeIn .18s ease}
@keyframes kefuSheetUp{from{transform:translateY(40px);opacity:.4}to{transform:translateY(0);opacity:1}}
.kefu-more-menu button{display:flex;align-items:center;gap:10px;width:100%;border:none;background:none;padding:14px 12px;
  font-size:15px;color:var(--kf-text);border-bottom:1px solid var(--kf-line);cursor:pointer;text-align:left;font-weight:600;font-family:inherit}
.kefu-more-menu button:last-child{border-bottom:none}
.kefu-more-menu button span{font-size:18px}
.kefu-more-menu button:hover{background:var(--kf-soft)}
.kefu-more-menu .kefu-more-cancel{margin-top:8px;border:none;text-align:center;justify-content:center;background:var(--kf-soft2);
  border-radius:12px;font-weight:700;color:var(--kf-sub)}
.kefu-more-menu .kefu-more-cancel:hover{background:var(--kf-line)}
@keyframes kefuFadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.kefu-rep-bar{display:none;align-items:center;gap:8px;background:var(--kf-soft2);border:1px solid var(--kf-line);border-radius:10px;
  padding:7px 12px;margin-bottom:8px;font-size:12px;color:var(--kf-sub)}
.kefu-rep-bar.show{display:flex}
.kefu-rep-bar b{color:var(--kf-primary);font-weight:600;flex:0 0 auto}
.kefu-rep-bar span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kefu-rep-bar button{border:none;background:none;color:var(--kf-danger);font-size:12px;cursor:pointer;flex:0 0 auto}
/* 详情侧栏 */
.kefu-detail{position:fixed;top:0;right:-380px;width:360px;height:100vh;background:var(--kf-card);z-index:120;
  transition:right .28s cubic-bezier(.4,0,.2,1);box-shadow:-16px 0 50px rgba(30,35,90,.14);display:flex;flex-direction:column}
.kefu-detail.open{right:0}
.kefu-detail-head{padding:18px 20px 14px;background:linear-gradient(135deg,var(--kf-primary),var(--kf-primary2));color:#fff;display:flex;align-items:center;gap:12px}
.kefu-detail-ava{width:52px;height:52px;border-radius:14px;background:rgba(255,255,255,.2);display:flex;align-items:center;
  justify-content:center;font-size:22px;font-weight:700;overflow:hidden}
.kefu-detail-ava img{width:100%;height:100%;object-fit:cover}
.kefu-detail-name{font-size:16px;font-weight:800}
.kefu-detail-sub{font-size:12px;opacity:.8;margin-top:2px}
.kefu-detail-close{margin-left:auto;width:30px;height:30px;border-radius:8px;background:rgba(255,255,255,.18);border:none;
  color:#fff;font-size:15px;cursor:pointer}
.kefu-detail-body{flex:1;overflow-y:auto;padding:16px 20px}
.kefu-d-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.kefu-d-stat{background:var(--kf-soft2);border:1px solid var(--kf-line);border-radius:12px;padding:12px}
.kefu-d-stat .ds-v{font-size:18px;font-weight:800;color:var(--kf-text)}
.kefu-d-stat .ds-l{font-size:11px;color:var(--kf-faint);margin-top:3px}
.kefu-d-sec{font-size:12.5px;font-weight:700;color:var(--kf-text);margin:14px 0 8px;display:flex;align-items:center;gap:6px}
.kefu-d-sec::before{content:'';width:4px;height:14px;border-radius:2px;background:linear-gradient(180deg,var(--kf-primary),var(--kf-primary2))}
.kefu-d-row{display:flex;justify-content:space-between;font-size:12.5px;padding:8px 0;border-bottom:1px dashed var(--kf-line);color:var(--kf-sub)}
.kefu-d-row b{color:var(--kf-text);font-weight:600;text-align:right;max-width:58%;word-break:break-all}
.kefu-d-note textarea{width:100%;box-sizing:border-box;border:1px solid var(--kf-line);border-radius:10px;padding:9px 12px;
  font-size:12.5px;resize:vertical;min-height:64px;outline:none;background:var(--kf-soft2);color:var(--kf-text);font-family:inherit}
.kefu-d-note textarea:focus{border-color:var(--kf-primary)}
.kefu-d-act{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.kefu-d-act button{border:1px solid var(--kf-line);background:var(--kf-card);border-radius:10px;padding:7px 12px;font-size:12px;
  color:var(--kf-sub);cursor:pointer;font-weight:600;transition:all .15s}
.kefu-d-act button:hover{border-color:var(--kf-primary);color:var(--kf-primary);background:var(--kf-soft)}
.kefu-d-act button.danger:hover{border-color:var(--kf-danger);color:var(--kf-danger);background:#fef2f2}
.kefu-d-act button.on{background:linear-gradient(135deg,var(--kf-primary),var(--kf-primary2));color:#fff;border-color:transparent}
/* 弹窗通用 */
.kefu-mask{position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:200;display:none;align-items:center;justify-content:center;backdrop-filter:blur(2px)}
.kefu-mask.show{display:flex}
.kefu-modal{background:var(--kf-card);border-radius:18px;padding:22px;width:min(440px,92vw);box-shadow:0 24px 80px rgba(0,0,0,.22);
  max-height:84vh;overflow-y:auto;color:var(--kf-text)}
.kefu-modal h3{margin:0 0 6px;font-size:15.5px;display:flex;align-items:center;gap:8px}
.kefu-x{margin-left:auto;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--kf-faint);font-size:12px;background:var(--kf-soft2);transition:.15s;flex:0 0 auto;line-height:1}
.kefu-x:hover{color:var(--kf-text);background:var(--kf-soft)}
.kefu-modal .mm-sub{font-size:12px;color:var(--kf-faint);margin-bottom:14px}
.kefu-modal .field{margin-bottom:12px}
.kefu-modal .field label{font-size:12px;color:var(--kf-sub);display:block;margin-bottom:5px;font-weight:600}
.kefu-modal .field input,.kefu-modal .field textarea{width:100%;border:1px solid var(--kf-line);border-radius:10px;
  padding:9px 12px;font-size:13px;outline:none;box-sizing:border-box;font-family:inherit;background:var(--kf-soft2);color:var(--kf-text)}
.kefu-modal .field input:focus,.kefu-modal .field textarea:focus{border-color:var(--kf-primary);background:var(--kf-card);box-shadow:0 0 0 3px rgba(99,102,241,.12)}

.kefu-modal .field select{width:100%;border:1px solid var(--kf-line);border-radius:10px;background:var(--kf-bg);color:var(--kf-text);padding:10px 12px;font-size:13.5px;outline:none}
.kefu-modal .field select:focus{border-color:var(--kf-primary);box-shadow:0 0 0 3px rgba(99,102,241,.12)}
.kefu-modal .field input[type="radio"]{width:auto;margin:0}

.bal-rebate-tip{margin:-4px 0 12px;padding:8px 12px;border-radius:8px;font-size:12.5px;line-height:1.6;display:none}
.bal-rebate-has{background:rgba(16,185,129,.10);border:1px solid rgba(16,185,129,.28);color:#0f766e}
.bal-rebate-has b{color:#059669}
.bal-rebate-has .bal-rebate-total{font-size:14px}
.bal-rebate-none{background:var(--kf-soft2);border:1px solid var(--kf-line);color:var(--kf-sub)}
.kefu-modal-btns{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}
.as-log-btn{display:inline-block;margin-top:10px;padding:8px 16px;border:0;border-radius:8px;background:linear-gradient(135deg,#0ea5e9,#6366f1);color:#fff;font-size:13px;font-weight:600;cursor:pointer}
.as-log-btn:hover{filter:brightness(1.08)}
.as-log-box{max-height:340px;overflow-y:auto;margin-top:10px;border:1px solid var(--kf-line);border-radius:10px;background:var(--kf-soft);padding:8px}
.as-log-line{font-size:12px;line-height:1.7;padding:5px 8px;border-radius:6px;margin-bottom:4px;word-break:break-all}
.as-log-line.ok{color:#16a34a;background:rgba(34,197,94,.08)}
.as-log-line.bad{color:#dc2626;background:rgba(239,68,68,.08)}
.as-log-empty{font-size:12.5px;color:var(--kf-faint);text-align:center;padding:22px 8px}
.kefu-modal-btns button{border-radius:10px;padding:9px 18px;font-size:13px;cursor:pointer;border:none;font-weight:700}
.kefu-m-cancel{background:var(--kf-soft2);color:var(--kf-sub)}
.kefu-m-ok{background:linear-gradient(135deg,var(--kf-primary),var(--kf-primary2));color:#fff}
/* 表情/快捷面板 */
.kefu-pop{position:absolute;bottom:50px;left:0;background:var(--kf-card);border:1px solid var(--kf-line);border-radius:14px;
  box-shadow:0 14px 44px rgba(30,35,90,.16);padding:10px;z-index:60;display:none;width:296px}
.kefu-pop.show{display:block}
.kefu-emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:2px;max-height:200px;overflow-y:auto}
.kefu-emoji-grid button{font-size:19px;padding:5px 0;border:none;background:none;cursor:pointer;border-radius:8px;line-height:1.4}
.kefu-emoji-grid button:hover{background:var(--kf-soft);transform:scale(1.15)}
.kefu-qpanel{position:absolute;bottom:50px;left:0;background:var(--kf-card);border:1px solid var(--kf-line);border-radius:14px;
  box-shadow:0 14px 44px rgba(30,35,90,.16);padding:10px;z-index:60;display:none;width:330px}
.kefu-qpanel.show{display:block}
.kefu-qhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.kefu-qhead b{font-size:13px;color:var(--kf-text)}
.kefu-qhead button{border:none;background:var(--kf-soft);color:var(--kf-primary);font-size:11.5px;padding:4px 10px;border-radius:8px;cursor:pointer;font-weight:600}
.kefu-qlist{max-height:230px;overflow-y:auto;display:flex;flex-direction:column;gap:5px}
.kefu-qlist div{font-size:12.5px;padding:8px 11px;border-radius:9px;cursor:pointer;background:var(--kf-soft2);border:1px solid var(--kf-line);transition:all .12s;color:var(--kf-text)}
.kefu-qlist div:hover{border-color:var(--kf-primary);background:var(--kf-soft)}
.kefu-qlist .kq-empty{text-align:center;color:var(--kf-faint);font-size:12px;padding:18px 0}
/* 联系客户 */
.kefu-search-list{display:flex;flex-direction:column;gap:6px;max-height:280px;overflow-y:auto}
.kefu-sr{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:11px;cursor:pointer;border:1px solid var(--kf-line);transition:all .12s}
.kefu-sr:hover{border-color:var(--kf-primary);background:var(--kf-soft)}
.kefu-sr .ka{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--kf-primary),var(--kf-primary2));color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;overflow:hidden;flex:0 0 36px}
.kefu-sr .ka img{width:100%;height:100%;object-fit:cover}
.kefu-sr-main{flex:1;min-width:0}
.kefu-sr-n{font-size:13px;font-weight:600;color:var(--kf-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kefu-sr-s{font-size:11px;color:var(--kf-faint);margin-top:2px}
.kefu-sr .go{color:var(--kf-primary);font-size:11px;font-weight:700;flex:0 0 auto}
/* ---------- 返回按钮（仅移动端显示） ---------- */
.kefu-back{display:none;width:36px;height:36px;flex:0 0 36px;border:none;border-radius:50%;
  background:var(--kf-soft);color:var(--kf-sub);cursor:pointer;align-items:center;justify-content:center;
  padding:0;line-height:1;transition:background .15s,color .15s}
.kefu-back:hover{background:var(--kf-line);color:var(--kf-text)}
/* ---------- 移动端搜索条（仅移动端显示） ---------- */
.kefu-mobile-search{display:none;padding:0 14px 8px}
.kefu-mobile-search input{width:100%;box-sizing:border-box;border:1px solid var(--kf-line);border-radius:11px;
  padding:10px 14px 10px 36px;font-size:13.5px;outline:none;background:var(--kf-card);color:var(--kf-text);
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2.4' stroke-linecap='round'><circle cx='11' cy='11' r='7'/><line x1='16.5' y1='16.5' x2='21' y2='21'/></svg>");
  background-repeat:no-repeat;background-position:12px center}
.kefu-mobile-search input:focus{border-color:var(--kf-primary);box-shadow:0 0 0 3px rgba(99,102,241,.13)}

/* ============================================================
 * 移动端专业布局（≤820px）：双屏切换 · 沉浸式 · 触控优化
 * ============================================================ */
@media (max-width:820px){
  /* 手机端 ··· 菜单：底部弹出面板 */
  .kefu-more-menu{position:fixed;left:0;right:0;bottom:0;top:auto;width:auto;border-radius:18px 18px 0 0;
    padding:10px 12px calc(env(safe-area-inset-bottom) + 10px);box-shadow:0 -10px 40px rgba(15,23,42,.2)}
  .kefu-more-menu.show{animation:kefuSheetUp .22s cubic-bezier(.4,0,.2,1)}
  .kefu-shell{position:fixed;top:0;left:0;right:0;height:100vh;height:100dvh;min-height:0;border-radius:0;border:none;box-shadow:none;z-index:90}
  /* 顶栏：状态栏安全区 + 信息精简 */
  .kefu-bar{padding:8px 12px 8px;height:auto;flex:0 0 auto;gap:8px;flex-wrap:wrap}
  .kefu-bar-sub{display:none}
  .kefu-bar-logo{width:32px;height:32px;flex:0 0 32px;font-size:16px;border-radius:9px}
  .kefu-bar-title{font-size:14px}
  .kefu-bar-stats{margin-left:auto;gap:5px}
  .kefu-bstat{padding:3px 9px;border-radius:9px}
  .kefu-bstat b{font-size:12px}
  .kefu-bstat span{font-size:8.5px}
  .kefu-bar-search{display:none}
  .kefu-bar-right{gap:6px}
  .kefu-exit{display:flex}
  .kefu-bar-online{display:none}
  .kefu-theme-btn{width:34px;height:34px}
  /* 主体：双屏容器 */
  .kefu-body{position:relative;flex:1;min-height:0}
  .kefu-side{position:absolute;inset:0;width:100%;flex:none;z-index:5;transform:translateX(0);
    transition:transform .26s cubic-bezier(.4,0,.2,1);background:var(--kf-soft2)}
  .kefu-side.hide{transform:translateX(-100%)}
  .kefu-chat{position:absolute;inset:0;z-index:6;transform:translateX(100%);
    transition:transform .26s cubic-bezier(.4,0,.2,1);background:var(--kf-bg)}
  .kefu-chat.open{transform:translateX(0)}
  .kefu-back{display:flex}
  .kefu-mobile-search{display:block}
  /* 会话列表 */
  .kefu-side-tabs{padding-top:10px;overflow-x:auto}
  .kefu-tab{flex:0 0 auto;padding:9px 14px;font-size:12.5px}
  .kefu-side-list{padding:2px 10px 14px}
  .kefu-item{padding:13px 10px}
  .kefu-ava{width:46px;height:46px;flex:0 0 46px;border-radius:13px;font-size:19px}
  .kefu-nick{font-size:13.5px}
  .kefu-last{font-size:12px}
  .kefu-side-foot{padding:10px 14px calc(env(safe-area-inset-bottom) + 10px)}
  .kefu-contact-btn{padding:12px 0;font-size:14px;border-radius:13px}
  /* 聊天页 */
  .kefu-chat-head{padding:8px 10px 8px;gap:10px}
  .kefu-chat-ava{width:42px;height:42px;flex:0 0 42px;font-size:17px}
  .kefu-chat-name{font-size:15px}
  .kefu-chat-ops{gap:6px}
  .kefu-op{padding:9px 12px;font-size:12.5px;border-radius:11px}
  .kefu-msgs{padding:8px 12px 4px}
  .kefu-msg{max-width:88%}
  .kefu-msg-ava{width:32px;height:32px;flex-basis:32px;border-radius:8px;font-size:13px}
  .kefu-bubble-wrap{max-width:calc(100% - 40px)}
  .kefu-msg{max-width:84%}
  .kefu-bubble{font-size:14.5px;padding:10px 14px;border-radius:17px}
  .kefu-msg img.kefu-img{max-width:210px}
  .kefu-msg video.kefu-vid{max-width:230px}
  .kefu-rp{min-width:190px}
  /* 输入区：固定底部 + 键盘避让 + 底部安全区 */
  .kefu-input{padding:9px 10px calc(env(safe-area-inset-bottom) + 9px)}
  .kefu-quick{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch}
  .kefu-quick button{flex:0 0 auto;font-size:12px;padding:6px 12px}
  .kefu-input-row{gap:6px}
  .kefu-tool{width:44px;height:44px;flex:0 0 44px;font-size:19px;border-radius:12px}
  .kefu-input-row textarea{min-height:44px;font-size:15px;padding:11px 14px;border-radius:13px}
  .kefu-send{height:44px;padding:0 24px;border-radius:13px;font-size:15px}
  .kefu-rep-bar{margin-bottom:6px}
  /* 表情 / 快捷面板：底部弹出 */
  .kefu-pop{left:0;width:100vw;bottom:calc(env(safe-area-inset-bottom) + 62px);border-radius:16px 16px 0 0;padding:14px 12px}
  .kefu-qpanel{left:0;width:100vw;bottom:calc(env(safe-area-inset-bottom) + 62px);border-radius:16px 16px 0 0;padding:14px 14px}
  .kefu-emoji-grid{grid-template-columns:repeat(9,1fr);max-height:230px}
  .kefu-emoji-grid button{font-size:22px;padding:7px 0}
  .kefu-qlist{max-height:250px}
  /* 弹窗：底部弹层 */
  .kefu-mask{align-items:flex-end}
  .kefu-modal{width:100%;max-width:none;border-radius:20px 20px 0 0;padding:22px 18px calc(env(safe-area-inset-bottom) + 26px);max-height:82dvh}
  .kefu-modal .field input,.kefu-modal .field textarea{font-size:15px;padding:12px 14px;border-radius:12px}
  .kefu-modal-btns button{padding:12px 20px;border-radius:12px;font-size:14px}
  /* 详情：全屏抽屉 */
  .kefu-detail{width:100%;right:-100%;max-width:none}
  .kefu-detail-head{padding:16px 18px 14px}
  .kefu-detail-close{width:38px;height:38px}
  .kefu-detail-body{padding:16px 18px calc(env(safe-area-inset-bottom) + 24px)}
  .kefu-d-stat{padding:13px 12px}
  .kefu-d-stat .ds-v{font-size:17px}
  .kefu-d-act button{padding:10px 14px;font-size:13px;border-radius:12px}
  .kefu-d-note textarea{font-size:14px;padding:11px 13px}
  /* 联系客户搜索列表 */
  .kefu-search-list{max-height:48vh}
  .kefu-sr{padding:12px 12px}
  .kefu-sr .ka{width:40px;height:40px;flex:0 0 40px;font-size:16px}
  /* 消息操作条：触控可点 */
  .kefu-ops{top:auto;bottom:-26px;right:4px;padding:4px}
  .kefu-ops button{font-size:11.5px;padding:7px 10px}
  /* 在线卡片 */
  .kefu-online-card{padding:13px 14px}
  /* ===== 手机端深度适配增强 ===== */
  /* 顶栏：统计折叠（首页统计面板查看），标题单行省略 */
  .kefu-bar{flex-wrap:nowrap}
  .kefu-bar-stats{display:none}
  .kefu-bar-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:56vw;font-size:13.5px}
  .kefu-bar-sub{display:none}
  /* 聊天头部：信息精简——副标题单行省略，操作按钮图标化省空间 */
  .kefu-chat-info{min-width:0;flex:1}
  .kefu-chat-name{max-width:56vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .kefu-chat-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:56vw;font-size:10.5px}
  .kefu-chat-ops{flex:0 0 auto;gap:5px}
  /* 快捷语：折叠进 ⚡ 快捷回复面板，输入区省出一整行 */
  .kefu-quick{display:none}
  /* 输入区：粘底避让键盘、输入框更大更好点 */
  .kefu-input{padding:7px 9px calc(env(safe-area-inset-bottom) + 7px)}
  .kefu-input-row{gap:6px}
  .kefu-input-row textarea{min-height:46px;font-size:15.5px;padding:12px 14px;border-radius:13px}
  .kefu-tool{width:44px;height:44px;flex:0 0 44px;font-size:19px;border-radius:12px}
  .kefu-send{height:44px;padding:0 22px;border-radius:13px;font-size:15px}
  /* 消息区更紧凑 */
  .kefu-msg{margin-bottom:9px}
  .kefu-msg-meta{font-size:10px}
  .kefu-sname{font-size:11px}
  /* 订单弹窗：手机上更紧凑 */
  .kefu-modal h3{font-size:16px}
  .kefu-modal .mm-sub{font-size:12px}
  /* ===== 微信 1:1 输入栏：灰底胶囊输入框 + 加号折叠面板 ===== */
  .kefu-tool-hide-m{display:none}
  .kefu-send-pc{display:none}
  .kefu-op-pc{display:none}
  /* 右上角 ··· */
  .kefu-more-btn{display:flex;width:40px;height:40px;border:none;border-radius:11px;
    background:var(--kf-soft2);color:var(--kf-sub);font-size:15px;letter-spacing:2px;align-items:center;justify-content:center;
    cursor:pointer;font-weight:800;padding-bottom:5px;box-sizing:border-box}
  .kefu-more-btn:active{background:var(--kf-line)}
  /* 输入区：微信浅灰底、无分隔线 */
  .kefu-input{background:#f7f7f7;border-top:none;padding:6px 10px calc(env(safe-area-inset-bottom) + 5px);box-shadow:none}
  .kefu-input-row{gap:7px;align-items:center}
  /* 输入框：微信长方形灰底，40px 标准高度 */
  .kefu-input-row textarea{background:#ededed;border:none;border-radius:8px;box-sizing:border-box;min-height:38px;max-height:100px;
    font-size:15px;padding:5px 12px;line-height:1.35;box-shadow:none}
  .kefu-input-row textarea:focus{background:#fff;box-shadow:0 0 0 2px rgba(99,102,241,.14)}
  /* 右侧固定两个微信灰钮：😊 表情 / ＋ 更多 */
  .kefu-wx-emoji,.kefu-wx-plus{width:38px;height:38px;flex:0 0 38px;font-size:19px}
  .kefu-wx-plus{font-size:24px;padding-bottom:2px}
  .kefu-wx-plus.on{font-size:17px;padding-bottom:0}
  /* 桌面发送按钮隐藏 */
  .kefu-send-pc{display:none}
  /* 加号面板：手机上块级展开在输入区下方 */
  .kefu-plus-panel{position:static;bottom:auto;left:auto;right:auto;background:none;border:none;box-shadow:none;
    border-radius:0;padding:0;margin-top:10px}
  .kefu-plus-panel.show{display:block;animation:kefuFadeIn .18s ease}
  .kefu-plus-grid{gap:8px}
  .kefu-plus-grid .pp-ico{width:56px;height:56px;border-radius:15px;font-size:28px}
}
/* 平板竖屏/窄窗口：同样全屏铺满，会话列表稍窄 */
@media (min-width:821px) and (max-width:1024px){
  .kefu-shell{height:100vh;height:100dvh;min-height:0}
  .kefu-side{width:270px;flex:0 0 270px}
}


/* ========== 客服工作台细节精修 v3.2（三端打磨升级） ========== */
/* 全局细滚动条 */
.kefu-shell ::-webkit-scrollbar{width:8px;height:8px}
.kefu-shell ::-webkit-scrollbar-track{background:transparent}
.kefu-shell ::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:99px;border:2px solid transparent;background-clip:content-box}
.kefu-shell ::-webkit-scrollbar-thumb:hover{background:#94a3b8}
/* 消息区背景：极淡点阵提升聊天质感 */
.kefu-msgs{background-image:radial-gradient(rgba(99,102,241,.05) 1px,transparent 1px);background-size:22px 22px}
[data-kf-theme="dark"] .kefu-msgs{background-image:radial-gradient(rgba(148,163,184,.05) 1px,transparent 1px);background-size:22px 22px}
/* toast 入场动画 */
#kfToast{animation:kfToastIn .25s cubic-bezier(.34,1.56,.64,1)}
@keyframes kfToastIn{from{opacity:0;transform:translate(-50%,-10px) scale(.96)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
/* 会话项微交互 */
.kefu-item{transition:background .12s ease,transform .12s ease,box-shadow .12s ease}
.kefu-item:hover{transform:translateX(2px);box-shadow:0 2px 10px rgba(30,35,90,.06)}
.kefu-item.on{background:linear-gradient(135deg,var(--kf-soft),rgba(99,102,241,.06));box-shadow:inset 3px 0 0 var(--kf-primary)}
/* 统计卡片 hover */
.kefu-stat-card{transition:transform .16s ease,box-shadow .16s ease}
.kefu-stat-card:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(30,35,90,.1)}
.kefu-stats-box{transition:box-shadow .16s ease}
.kefu-stats-box:hover{box-shadow:0 6px 18px rgba(30,35,90,.07)}
/* 弹窗/面板入场 */
.kefu-modal{animation:kfModalPop .2s cubic-bezier(.34,1.56,.64,1)}
@keyframes kfModalPop{from{opacity:0;transform:scale(.94) translateY(8px)}to{opacity:1;transform:none}}
.kefu-pop,.kefu-qpanel,.kefu-plus-panel{animation:kfPanelPop .18s ease}
@keyframes kfPanelPop{from{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}
/* 表情按钮点按反馈 */
.kefu-emoji-grid button:active{transform:scale(.9)}
/* 已读/未读对比增强（未读黑 / 已读灰） */
.kefu-msg-meta .kefu-unread{color:#1f2937;font-weight:700}
[data-kf-theme="dark"] .kefu-msg-meta .kefu-unread{color:#e5e7eb}
.kefu-read{color:#9ca3af}
/* 顶栏搜索聚焦 */
.kefu-bar-search input{transition:width .22s ease,box-shadow .15s ease}
.kefu-bar-search input:focus{box-shadow:0 0 0 3px rgba(99,102,241,.14)}
/* 快捷面板滚动条 */
.kefu-emoji-grid::-webkit-scrollbar,.kefu-qlist::-webkit-scrollbar{width:6px}
.kefu-emoji-grid::-webkit-scrollbar-thumb,.kefu-qlist::-webkit-scrollbar-thumb{background:#d4d8e8;border-radius:99px}
/* 发送按钮动效 */
.kefu-wx-send{transition:opacity .15s,filter .15s,transform .1s}
.kefu-wx-send:hover{filter:brightness(1.05)}
.kefu-wx-send:active{transform:scale(.97)}
/* 新未读红点脉冲（提醒更醒目） */
@keyframes unreadPulse{0%{transform:scale(.9)}60%{transform:scale(1.12)}100%{transform:scale(1)}}
.kefu-item.unread .kefu-unread{animation:unreadPulse .3s ease}
/* 移动端聊天点阵更密 */
@media (max-width:820px){.kefu-msgs{background-size:18px 18px}}

/* ========== 快捷回复分组 + 会话内搜索（v3.3） ========== */
/* 分组 tabs */
.kf-q-tabs{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:8px;padding-bottom:6px;border-bottom:1px dashed var(--kf-line)}
.kf-q-tab{font-size:11.5px;padding:3px 11px;border-radius:999px;border:1px solid var(--kf-line);background:var(--kf-soft2);
  color:var(--kf-sub);cursor:pointer;font-weight:600;transition:all .12s;font-family:inherit}
.kf-q-tab:hover{border-color:var(--kf-primary);color:var(--kf-primary)}
.kf-q-tab.on{background:linear-gradient(135deg,var(--kf-primary),var(--kf-primary2));color:#fff;border-color:transparent;box-shadow:0 2px 8px rgba(99,102,241,.3)}
.qmg-sel{border:1px solid var(--kf-line);border-radius:8px;background:var(--kf-soft2);color:var(--kf-text);font-size:12px;
  padding:6px 8px;outline:none;font-family:inherit;flex:0 0 auto;cursor:pointer}
.qmg-sel:focus{border-color:var(--kf-primary)}
/* 会话内搜索 */
.kefu-chat-sbtn{display:flex;width:32px;height:32px;flex:0 0 32px;border:none;border-radius:9px;background:var(--kf-soft2);
  color:var(--kf-sub);font-size:14px;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,color .15s,transform .1s}
.kefu-chat-sbtn:hover{background:var(--kf-soft);color:var(--kf-primary)}
.kefu-chat-sbtn:active{transform:scale(.94)}
.kefu-search-bar{display:none;align-items:center;gap:8px;padding:8px 14px 4px;flex:0 0 auto}
.kefu-search-bar input{flex:1;min-width:0;border:1px solid var(--kf-line);border-radius:9px;padding:7px 12px;font-size:12.5px;
  outline:none;background:var(--kf-card);color:var(--kf-text);box-sizing:border-box}
.kefu-search-bar input:focus{border-color:var(--kf-primary);box-shadow:0 0 0 3px rgba(99,102,241,.13)}
.kefu-search-bar button{border:none;background:var(--kf-soft2);color:var(--kf-sub);border-radius:9px;width:30px;height:30px;
  font-size:13px;cursor:pointer;flex:0 0 30px;transition:background .12s}
.kefu-search-bar button:hover{background:var(--kf-line)}
.kefu-srch-hd{display:flex;align-items:center;gap:8px;padding:7px 12px;margin:4px 6px 8px;border-radius:10px;
  background:rgba(99,102,241,.08);border:1px solid rgba(99,102,241,.22);color:var(--kf-primary);font-size:12px;font-weight:700}
.kefu-srch-hd button{margin-left:auto;border:none;background:var(--kf-soft2);color:var(--kf-sub);border-radius:7px;padding:3px 10px;font-size:11.5px;cursor:pointer;font-weight:600}
.kefu-srch-hd button:hover{background:var(--kf-line)}
.kefu-bubble mark{background:#fef08a;color:inherit;border-radius:3px;padding:0 2px}
[data-kf-theme="dark"] .kefu-bubble mark{background:#f59e0b;color:#111}
@media (max-width:820px){
  .kefu-search-bar{padding:6px 10px 2px}
  .kefu-chat-sbtn{width:34px;height:34px;flex-basis:34px}
}

/* ========== 手机端全面精修 v4（统一按钮规范） ========== */
@media (max-width:820px){
  /* ① 顶栏图标按钮统一：38×38 圆角方钮，垂直水平居中，同底色同圆角 */
  .kefu-bar-right .kefu-exit,
  .kefu-bar-right .kefu-theme-btn,
  .kefu-chat-head .kefu-back,
  .kefu-chat-head .kefu-chat-sbtn,
  .kefu-chat-head .kefu-more-btn{
    width:38px;height:38px;flex:0 0 38px;min-width:38px;border-radius:12px;padding:0;
    font-size:15px;line-height:1;align-items:center;justify-content:center;box-sizing:border-box;
  }
  .kefu-bar-right{gap:8px}
  .kefu-chat-head .kefu-op{min-height:34px;padding:8px 12px;border-radius:10px}
  /* ② 顶栏搜索框：放大高度与按钮齐平 */
  .kefu-bar-search{display:none}
  /* ③ 聊天头部信息区：垂直居中防变形 */
  .kefu-chat-info{display:flex;flex-direction:column;justify-content:center;min-width:0}
  .kefu-chat-head{align-items:center}
  /* ④ 会话列表搜索区：两个搜索框 + 按钮统一行高 */
  .kefu-mobile-search{display:flex;flex-wrap:nowrap;gap:6px;padding:8px 10px 4px;align-items:center}
  .kefu-mobile-search input{flex:1;min-width:0;height:36px;box-sizing:border-box;font-size:12.5px;
    border:1px solid var(--kf-line);border-radius:10px;padding:0 10px;background:var(--kf-card);outline:none;color:var(--kf-text)}
  .kefu-mobile-search button{flex:0 0 auto;width:38px;height:36px;border:none;border-radius:10px;
    background:var(--kf-soft2);color:var(--kf-sub);font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center}
  .kefu-mobile-search button:active{background:var(--kf-line)}
  /* ⑤ 会话列表底部：联系客户/一键售后按钮统一 44px 高、同圆角 */
  .kefu-side-foot{gap:8px}
  .kefu-contact-btn,.kefu-batch-btn{height:44px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:12px;font-size:14px;box-sizing:border-box}
  /* ⑥ 输入区：表情/加号 40×40 与输入框齐平，发送钮 40 高 */
  .kefu-tool,.kefu-wx-emoji,.kefu-wx-plus{width:40px;height:40px;flex:0 0 40px;border-radius:12px;font-size:20px;padding:0}
  .kefu-wx-plus{font-size:24px}
  .kefu-input-row textarea{min-height:40px;max-height:96px;padding:7px 14px;border-radius:10px;box-sizing:border-box}
  .kefu-send{height:40px;border-radius:12px}
  /* ⑦ 表情面板：九宫格按钮触控尺寸 */
  .kefu-emoji-grid button{font-size:24px;padding:8px 0}
  /* ⑧ 快捷面板按钮 */
  .kefu-qlist button{min-height:44px;padding:10px 12px;font-size:13.5px;border-radius:10px}
  .kefu-q-tabs .kefu-q-tab{min-height:32px;display:inline-flex;align-items:center}
  /* ⑨ 弹窗/详情：统一按钮高度与圆角 */
  .kefu-modal-btns button{height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;font-size:14px}
  .kefu-d-act button{min-height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px}
  .kefu-more-menu div[onclick], .kefu-more-menu button{min-height:46px;display:flex;align-items:center;border-radius:10px}
  /* ⑩ 消息操作条：触控更友好 */
  .kefu-ops{right:2px;bottom:-30px;gap:2px;padding:4px}
  .kefu-ops button{min-height:34px;padding:6px 11px;font-size:12px;border-radius:9px}
  /* ⑪ 搜索列表项与详情统计 */
  .kefu-sr{min-height:56px;display:flex;align-items:center}
  .kefu-d-stat{display:flex;align-items:center;gap:8px}
}
@media (max-width:400px){
  /* 超窄屏（≤400px）：进一步压缩间距 */
  .kefu-mobile-search{gap:5px}
  .kefu-mobile-search input{font-size:12px;padding:0 8px}
  .kefu-input-row textarea{font-size:14.5px;padding:6px 12px}
  .kefu-chat-head{padding:6px 8px;gap:7px}
  .kefu-bar{padding:6px 8px}
}



/* ===== 设置面板：左目录 + 右内容（客服模块设置重构） ===== */
.kefu-cfg-modal{max-width:880px;width:94%;}
.kefu-cfg-body{display:flex;min-height:430px;max-height:62vh;overflow:hidden;border-top:1px solid #e5e7eb;margin-top:2px;}
.kefu-cfg-nav{width:158px;flex:none;border-right:1px solid #e5e7eb;background:#f8fafc;padding:10px 0;overflow-y:auto;}
.cfg-nav-item{padding:11px 14px;cursor:pointer;font-size:13px;color:#475569;border-left:3px solid transparent;transition:all .15s;user-select:none;}
.cfg-nav-item:hover{background:#eef4ff;color:#1890ff;}
.cfg-nav-item.on{background:#fff;color:#1890ff;border-left-color:#1890ff;font-weight:600;}
.kefu-cfg-panels{flex:1;overflow-y:auto;padding:18px 20px;}
.cfg-panel{display:none;animation:kefuFade .18s ease;}
.cfg-panel.on{display:block;}
@keyframes kefuFade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.kefu-profile{display:flex;align-items:center;gap:16px;margin:12px 0 2px;}
.kp-ava{width:74px;height:74px;border-radius:50%;overflow:hidden;background:#eef4ff;display:flex;align-items:center;justify-content:center;font-size:36px;border:2px solid #dbeafe;flex:none;}
.kp-ava img{width:100%;height:100%;object-fit:cover;}
.kp-actions{display:flex;flex-direction:column;gap:8px;}
.kefu-btn-sm{display:inline-flex;align-items:center;justify-content:center;padding:7px 16px;border:1px solid #1890ff;color:#1890ff;border-radius:8px;cursor:pointer;font-size:13px;background:#fff;transition:all .15s;}
.kefu-btn-sm:hover{background:#eef4ff;}
.kefu-btn-ghost{border-color:#cbd5e1;color:#64748b;}
.kefu-btn-ghost:hover{background:#f1f5f9;}
.kp-tip{font-size:12px;color:#94a3b8;margin:6px 0 2px;}
@media (max-width:640px){
  .kefu-cfg-modal{width:98%;max-height:88vh;}
  .kefu-cfg-body{flex-direction:column;max-height:70vh;}
  .kefu-cfg-nav{width:100%;flex:none;border-right:none;border-bottom:1px solid #e5e7eb;display:flex;flex-wrap:nowrap;overflow-x:auto;padding:0;}
  .cfg-nav-item{flex:none;padding:10px 12px;border-left:none;border-bottom:2px solid transparent;white-space:nowrap;}
  .cfg-nav-item.on{border-bottom-color:#1890ff;}
  .kefu-cfg-panels{padding:14px;}
}


/* ---------- 客服渠道栏（统计面板顶部） ---------- */
.kefu-ch-bar{background:linear-gradient(135deg,#f0f7ff,#eef4ff);border:1px solid #dbeafe;border-radius:12px;padding:10px 14px;margin-bottom:14px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.kefu-ch-bar-t{font-weight:700;color:#334155;font-size:13px;flex:none;}
.kefu-ch-list{display:flex;gap:8px;flex-wrap:wrap;flex:1;min-width:200px;}
.kf-ch-card{display:flex;align-items:center;gap:8px;padding:8px 14px;background:#fff;border:1px solid #dbeafe;border-radius:10px;cursor:pointer;transition:all .15s;box-shadow:0 1px 3px rgba(24,144,255,.08);}
.kf-ch-card:hover{border-color:#1890ff;transform:translateY(-1px);box-shadow:0 4px 12px rgba(24,144,255,.15);}
.kf-ch-card.on{background:linear-gradient(135deg,#1890ff,#40a9ff);border-color:#1890ff;}
.kf-ch-card.on b,.kf-ch-card.on em{color:#fff;}
.kf-ch-ico{font-size:16px;}
.kf-ch-card b{font-size:13px;color:#1e293b;}
.kf-ch-card em{font-style:normal;font-size:11px;color:#94a3b8;}
.kf-ctrl{margin-left:auto;flex:none;}

/* ---------- API 接入通道 ---------- */
.ch-list-box{display:flex;flex-direction:column;gap:8px;margin:10px 0;}
.ch-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;flex-wrap:wrap;}
.ch-info{display:flex;flex-direction:column;gap:3px;min-width:220px;}
.ch-info b{font-size:14px;color:#1e293b;}
.ch-info span{font-size:12px;color:#64748b;}
.ch-key{background:#eef2ff;padding:2px 6px;border-radius:4px;color:#4338ca;word-break:break-all;}
.ch-ops{display:flex;gap:6px;flex-wrap:wrap;}
.ch-add-row{display:flex;gap:8px;margin:10px 0;flex-wrap:wrap;}
.ch-add-row input{flex:1;min-width:180px;padding:8px 12px;border:1px solid #dbeafe;border-radius:8px;font-size:13px;outline:none;}
.ch-add-row input:focus{border-color:#1890ff;box-shadow:0 0 0 2px rgba(24,144,255,.15);}
