/* ============================================================
   花生医疗私域运营平台 · main.css
   品牌主色 #10B981（翡翠绿） + 辅助 蓝#4874CB / 橙#E0A53A /
   黄#F0D86D / 红#E54C5E。覆盖原型 index.html 的全部组件类。
   ============================================================ */
:root{
  --primary:#10B981;
  --primary-dark:#047857;
  --secondary:#4874CB;
  --accent-orange:#E0A53A;
  --accent-green:#07c160;
  --accent-yellow:#F0D86D;
  --accent-red:#E54C5E;
  /* 新规范辅助色（5 个）+ rgb 分量（供 rgba(var(--x-rgb),透明度) 按透明度规范使用） */
  --primary-rgb:16,185,129;
  --aux-gray:#5A6961;  --aux-gray-rgb:90,105,97;
  --aux-orange:#E0A53A; --aux-orange-rgb:224,165,58;
  --aux-yellow:#F0D86D; --aux-yellow-rgb:240,216,109;
  --aux-cyan:#92D5C2;   --aux-cyan-rgb:146,213,194;
  --aux-light:#B8E3D2;  --aux-light-rgb:184,227,210;
  --bg:#f0f2f5;
  --bg-body:#f8fafc;
  --card-bg:#ffffff;
  --text-primary:#1f2937;
  --text-secondary:#475569;
  --text-muted:#94a3b8;
  --border-color:#e5e7eb;
  --border-light:#f0f2f4;
  --radius-sm:8px;
  --radius-md:12px;
  --radius-lg:16px;
  --radius-xl:20px;
  --shadow-sm:0 1px 2px rgba(0,0,0,.06);
  --shadow-md:0 4px 12px rgba(0,0,0,.08);
  --shadow-lg:0 10px 30px rgba(0,0,0,.12);
}

/* ============================================================
   深色主题（深空科技感 + 玻璃拟态）
   通过 <html data-theme="dark"> 启用，顶部按钮切换
   ============================================================ */
:root[data-theme="dark"]{
  /* —— 严格对齐原型设计 Token（深色玻璃拟态 + 翡翠绿） —— */
  --bg:#070b16;
  /* 2026-09-20：内嵌面（tab/chip/表头/步骤号…）随页面底一起上移，保持"面比底亮一档"。 */
  --bg-body:#111a2e;
  /* 2026-09-20：页面底 #050810 → #0b111e（= 侧栏的实际渲染色 rgba(13,20,36,.72) 叠在旧底上的结果），
     用户要求「整站去黑感、并与侧栏同色」。为避免丢失层次，深色所有「面」同步上移同一位移 (+6,+9,+14)：
       --bg-body  #0b1120 → #111a2e
       --card-bg  顶 rgba(21,30,50,.97) → rgba(27,39,64,.97)，底 rgba(11,17,30,.98) → rgba(17,26,44,.98)
     这样「页面底 < 内嵌面 < 卡片」的相对关系与改动前完全一致，只是整体提亮一档。
     注：--bg-deep 全仓库仅被下方 [data-theme="dark"] body 背景引用；侧栏/顶栏（rgba(13,20,36,.72) / 深蓝渐变）保持不动，
     因此页面底现在与侧栏同色（用户诉求），两者由 1px 边框分界。 */
  --bg-deep:#0b111e;
  --bg-card:rgba(255,255,255,.045);          /* 原型 --bg-card */
  --bg-card-hi:rgba(255,255,255,.08);         /* 原型 --bg-card-hi */
  --bg-chip:rgba(255,255,255,.05);            /* 原型 --bg-chip */
  /* 2026-09-20：深色卡片底由「半透明白」改为与知识库一致的「深蓝假玻璃」（全站统一配色）。
     改这一处，所有用 var(--card-bg) 的面（含下方 [class*="card"]/[class*="box"]/[class*="panel"] 通配规则，
     带 !important）会一次性对齐。
     注：**这里不再带翡翠径向光晕** —— 该 token 也被输入框/chip 等小元素复用，带光晕会让小元素泛绿
     （实测：朋友圈任务弹窗、渠道链接弹窗的输入框）。翡翠氛围光只保留在大卡上（见文件末尾「全站假玻璃统一层」T1）。
     2026-09-20：两端同步上移 (+6,+9,+14)，配合页面底抬到 #0b111e（见上方 --bg-deep 注释），保证「底 < 内嵌面 < 卡片」层次不变。 */
  --card-bg:linear-gradient(180deg, rgba(27,39,64,.97) 0%, rgba(17,26,44,.98) 100%);
  --border:rgba(255,255,255,.08);             /* 原型 --border（通透白边） */
  --border-hi:rgba(255,255,255,.16);           /* 原型 --border-hi */
  --border-color:rgba(255,255,255,.09);
  --border-light:rgba(255,255,255,.06);
  --accent:#10B981;                            /* 原型 --accent */
  --accent-2:#34D399;                          /* 原型 --accent-2 */
  --accent-glow:rgba(16,185,129,.45);          /* 原型 --accent-glow */
  --primary:#10B981;
  --primary-dark:#047857;
  --text:#E6EAF2;                              /* 原型 --text */
  --text-primary:#E6EAF2;
  --text-secondary:#aeb9cf;                     /* 原型 --text-secondary */
  --text-muted:#7c8aa5;
  --text-dim:#9AA7BD;                           /* 原型 --text-dim */
  --text-faint:#5b6b86;                         /* 原型 --text-faint */
  --shadow-card:0 10px 40px rgba(0,0,0,.45);    /* 原型 --shadow-card */
  --shadow-glow:0 0 24px rgba(16,185,129,.18);  /* 原型 --shadow-glow */
  --shadow-sm:0 1px 3px rgba(0,0,0,.5);
  --shadow-md:0 6px 18px rgba(0,0,0,.55);
  --shadow-lg:0 16px 48px rgba(0,0,0,.65);
  --radius-sm:10px;
  --radius-md:14px;
  --radius-lg:18px;
  --radius-xl:22px;
  --ease:cubic-bezier(.22,1,.36,1);
  --aux-gray:#8b9bb8; --aux-gray-rgb:139,155,184;
}
[data-theme="dark"] body{
  background:
    radial-gradient(1100px 700px at 8% -8%, rgba(16,185,129,.13), transparent 60%),
    radial-gradient(900px 600px at 95% 100%, rgba(56,189,248,.08), transparent 60%),
    radial-gradient(700px 500px at 50% 110%, rgba(120,80,255,.08), transparent 55%),
    var(--bg);
  background-attachment:fixed;
  color:var(--text-primary);
}
[data-theme="dark"] .app-layout{background:transparent;}
[data-theme="dark"] .sidebar,
[data-theme="dark"] .header-bar{
  background:rgba(13,20,36,.72);
  backdrop-filter:blur(16px) saturate(140%);
  -webkit-backdrop-filter:blur(16px) saturate(140%);
}
[data-theme="dark"] .sidebar{border-right:1px solid var(--border-light);}
[data-theme="dark"] .header-bar{border-bottom:1px solid var(--border-light);}
[data-theme="dark"] .sidebar-brand-name,
[data-theme="dark"] .header-bar .header-page-title,
[data-theme="dark"] .brand-mini-name{color:var(--text-primary);}
[data-theme="dark"] .sidebar-brand-sub{color:var(--text-muted);}
[data-theme="dark"] .nav-title{color:rgba(230,238,251,.75);}
[data-theme="dark"] .nav-title:hover{background:rgba(255,255,255,.06);color:#fff;}
[data-theme="dark"] .nav-leaf{color:rgba(230,238,251,.72);}
[data-theme="dark"] .sidebar-item.active,
[data-theme="dark"] .nav-leaf.active{background:rgba(52,211,153,.14);color:var(--primary);position:relative;}
[data-theme="dark"] .nav-leaf.active::before{
  content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:3px;height:18px;border-radius:0 3px 3px 0;
  background:var(--primary);box-shadow:0 0 12px rgba(16,185,129,.6);
}
[data-theme="dark"] .nav-title .nav-arrow{color:rgba(230,238,251,.4);}
/* 卡片统一玻璃拟态（强化：更大模糊 + 内高光 + 悬浮发光） */
[data-theme="dark"] .table-card,
[data-theme="dark"] .stat-card,
[data-theme="dark"] .account-card,
[data-theme="dark"] .tc-module-card{
  background:var(--card-bg);
  backdrop-filter:blur(20px) saturate(140%);
  -webkit-backdrop-filter:blur(20px) saturate(140%);
  border:1px solid var(--border-color);
  box-shadow:var(--shadow-md), inset 0 1px 0 rgba(255,255,255,.05);
  transition:transform .35s cubic-bezier(.22,1,.36,1), border-color .3s, box-shadow .3s;
}
[data-theme="dark"] .stat-card:hover,
[data-theme="dark"] .table-card:hover,
[data-theme="dark"] .account-card:hover,
[data-theme="dark"] .tc-module-card:hover{
  transform:translateY(-3px);
  border-color:rgba(16,185,129,.4);
  box-shadow:var(--shadow-lg), 0 0 26px rgba(16,185,129,.18);
}
[data-theme="dark"] .modal-overlay{background:rgba(3,6,14,.66);backdrop-filter:blur(4px);}
[data-theme="dark"] .modal-card,
[data-theme="dark"] .modal-box{
  background:rgba(17,24,42,.9);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  border:1px solid var(--border-color);
  box-shadow:var(--shadow-lg);
}
[data-theme="dark"] .table-card-header{border-bottom:1px solid var(--border-light);}
[data-theme="dark"] .filter-select,
[data-theme="dark"] .filter-input,
[data-theme="dark"] .form-control,
[data-theme="dark"] .form-input,
[data-theme="dark"] input[type=text],
[data-theme="dark"] input[type=number],
[data-theme="dark"] input[type=time],
[data-theme="dark"] input[type=date],
[data-theme="dark"] input[type=password],
[data-theme="dark"] textarea,
[data-theme="dark"] select{
  background:rgba(255,255,255,.06);
  border-color:var(--border-color);
  color:var(--text-primary);
}
[data-theme="dark"] .data-table th{background:rgba(255,255,255,.04);color:var(--text-secondary);}
[data-theme="dark"] .data-table td{border-bottom:1px solid var(--border-light);color:var(--text-primary);}
[data-theme="dark"] .data-table tbody tr:hover{background:rgba(255,255,255,.03);}
[data-theme="dark"] .tag{background:rgba(255,255,255,.07);color:var(--text-secondary);}
[data-theme="dark"] .btn-outline{border-color:var(--border-color);color:var(--text-primary);}
[data-theme="dark"] .tab-btn{background:rgba(255,255,255,.05);border-color:var(--border-color);color:var(--text-secondary);}
[data-theme="dark"] .empty-state{color:var(--text-muted);}
[data-theme="dark"] .page-desc{color:var(--text-muted);}
[data-theme="dark"] ::-webkit-scrollbar{width:10px;height:10px;}
[data-theme="dark"] ::-webkit-scrollbar-thumb{background:rgba(255,255,255,.08);border-radius:6px;}
[data-theme="dark"] ::-webkit-scrollbar-thumb:hover{background:rgba(16,185,129,.4);}

/* ===== 原型级玻璃卡：内高光 + 悬浮翡翠发光（严格对齐 .glass / .glass-hover） ===== */
[data-theme="dark"] .stat-card,
[data-theme="dark"] .table-card,
[data-theme="dark"] .account-card,
[data-theme="dark"] .tc-module-card,
[data-theme="dark"] .tc-task-card,
[data-theme="dark"] .mkt-task-card,
[data-theme="dark"] .strategy-card,
[data-theme="dark"] .wx-card,
[data-theme="dark"] .wx-editor,
[data-theme="dark"] .gs-col,
[data-theme="dark"] .gs-group-item,
[data-theme="dark"] .gs-simple-link-item,
[data-theme="dark"] .gs-link-section,
[data-theme="dark"] .yz-table,
[data-theme="dark"] .yz-insight-item,
[data-theme="dark"] .vd-account-card,
[data-theme="dark"] .vd-panel,
[data-theme="dark"] .vd-core-box,
[data-theme="dark"] .vd-ai-report,
[data-theme="dark"] .vd-topbar,
[data-theme="dark"] .vd-filter-bar,
[data-theme="dark"] .l-card,
[data-theme="dark"] .card,
[data-theme="dark"] .list-panel,
[data-theme="dark"] .kb-hero,
[data-theme="dark"] .kb-card,
[data-theme="dark"] .kb-lcard,
[data-theme="dark"] .kb-m-section,
[data-theme="dark"] .community-card,
[data-theme="dark"] .community-item,
[data-theme="dark"] .k-met,
[data-theme="dark"] .k-section,
[data-theme="dark"] .chart-card,
[data-theme="dark"] .panel,
[data-theme="dark"] .box,
[data-theme="dark"] .section{
  position:relative;overflow:hidden;
  border-radius:var(--radius-lg);
}
[data-theme="dark"] .stat-card::before,
[data-theme="dark"] .table-card::before,
[data-theme="dark"] .account-card::before,
[data-theme="dark"] .tc-module-card::before,
[data-theme="dark"] .tc-task-card::before,
[data-theme="dark"] .mkt-task-card::before,
[data-theme="dark"] .strategy-card::before,
[data-theme="dark"] .wx-card::before,
[data-theme="dark"] .gs-group-item::before,
[data-theme="dark"] .vd-account-card::before,
[data-theme="dark"] .vd-panel::before,
[data-theme="dark"] .l-card::before,
[data-theme="dark"] .card::before,
[data-theme="dark"] .kb-hero::before,
[data-theme="dark"] .kb-card::before,
[data-theme="dark"] .kb-lcard::before,
[data-theme="dark"] .community-card::before,
[data-theme="dark"] .k-met::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(255,255,255,.06), transparent 38%);
  pointer-events:none;
}
[data-theme="dark"] .stat-card:hover,
[data-theme="dark"] .table-card:hover,
[data-theme="dark"] .account-card:hover,
[data-theme="dark"] .tc-module-card:hover,
[data-theme="dark"] .tc-task-card:hover,
[data-theme="dark"] .mkt-task-card:hover,
[data-theme="dark"] .strategy-card:hover,
[data-theme="dark"] .wx-card:hover,
[data-theme="dark"] .gs-col:hover,
[data-theme="dark"] .gs-group-item:hover,
[data-theme="dark"] .vd-account-card:hover,
[data-theme="dark"] .vd-panel:hover,
[data-theme="dark"] .l-card:hover,
[data-theme="dark"] .card:hover,
[data-theme="dark"] .kb-hero:hover,
[data-theme="dark"] .kb-card:hover,
[data-theme="dark"] .kb-lcard:hover,
[data-theme="dark"] .community-card:hover,
[data-theme="dark"] .k-met:hover{
  transform:translateY(-3px);
  border-color:rgba(16,185,129,.4);
  box-shadow:var(--shadow-card), 0 0 24px rgba(16,185,129,.18);
}

/* 「切换模式」按钮（原太阳/月亮图标改为文字标签；深浅通用） */
.theme-toggle{
  height:38px;min-width:38px;padding:0 14px;border-radius:12px;border:1px solid var(--border-color);
  background:var(--card-bg);color:var(--text-primary);
  font-size:12.5px;font-weight:600;line-height:1;white-space:nowrap;font-family:inherit;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  transition:transform .15s ease, background .2s ease, border-color .2s ease;
}
.theme-toggle:hover{border-color:var(--primary);transform:scale(1.06);}


/* ===== AI文库单页：左侧目录（可收起，交互同小红书页）+ 右侧内容区 ===== */
.ai-lib-wrap{display:flex;gap:16px;align-items:flex-start;}
.ai-lib-side{
  flex:0 0 186px;max-width:186px;background:var(--card-bg);
  border:1px solid var(--border-color);border-radius:var(--radius-md,#12px);
  padding:10px;position:sticky;top:78px;transition:flex-basis .2s ease,max-width .2s ease;
}
.ai-lib-side.collapsed{flex-basis:56px;max-width:56px;padding:10px 6px;}
.ai-lib-side.collapsed .ai-lib-nav,
.ai-lib-side.collapsed .ai-lib-toc-t{display:none;}
.ai-lib-side.collapsed .ai-lib-toc-h{justify-content:center;gap:0;}
.ai-lib-toc-h{
  display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:9px;cursor:pointer;
  font-size:13.5px;font-weight:700;color:var(--text-primary);background:var(--soft,#f4f6f5);
  user-select:none;margin-bottom:6px;transition:background .15s;
}
.ai-lib-toc-h:hover{background:var(--chip,#eef2f1);}
.ai-lib-toc-h .ai-lib-toc-t{flex:1;letter-spacing:.4px;}
.ai-lib-toc-h .ai-lib-toc-a{opacity:.6;font-size:11px;}
.ai-lib-nav{display:flex;flex-direction:column;gap:3px;}
.ai-lib-nav button{
  display:flex;align-items:center;gap:8px;text-align:left;padding:9px 10px;border:0;border-radius:8px;
  background:transparent;color:var(--text-secondary);font-size:13px;font-family:inherit;
  cursor:pointer;transition:background .15s,color .15s;white-space:nowrap;
}
.ai-lib-nav button:hover{background:var(--soft,#f4f6f5);color:var(--text-primary);}
.ai-lib-nav button.active{background:rgba(16,185,129,.13);color:var(--primary);font-weight:600;}
.ai-lib-nav button .ico{font-size:14px;opacity:.9;}
.ai-lib-body{flex:1;min-width:0;}
/* 子页默认隐藏：用独立类名，避免与顶层 .page.active 冲突（切页时会清掉 .active） */
#page-ai-lib .page{display:none;}
#page-ai-lib .page.ai-sub-active{display:block;animation:pageIn .4s cubic-bezier(.22,1,.36,1);}
[data-theme="dark"] .ai-lib-side{background:rgba(255,255,255,.04);}
[data-theme="dark"] .ai-lib-toc-h{background:rgba(255,255,255,.07);color:#E6EAF2;}
[data-theme="dark"] .ai-lib-toc-h:hover{background:rgba(255,255,255,.11);}
[data-theme="dark"] .ai-lib-nav button{color:var(--text-secondary);}
[data-theme="dark"] .ai-lib-nav button:hover{background:rgba(255,255,255,.07);color:#E6EAF2;}
[data-theme="dark"] .ai-lib-nav button.active{background:rgba(16,185,129,.18);color:#34D399;}

*{box-sizing:border-box;margin:0;padding:0;}
html,body{height:100%;}
body{
  font-family:"圆体简","Yuanti SC",-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei","微软雅黑",sans-serif;
  background:radial-gradient(1200px 600px at 100% -10%, rgba(16,185,129,.05), transparent 55%), var(--bg);
  background-attachment:fixed;
  color:var(--text-primary);font-size:14px;line-height:1.6;
}
button{font-family:inherit;cursor:pointer;}
a{color:var(--primary);text-decoration:none;}

/* ===================== 布局 ===================== */
/* 2026-09-19：min-height 由 100vh 改为 calc(100vh - 64px)。
   原因：备案号页脚（index.html 末尾 body 直属的那个 <div>「京ICP备…」，实测高 48px + margin-top 16px = 64px）
   挂在 #appLayout 之外且是静态流元素，容器若仍为 100vh，文档总高 = 100vh + 64px
   ⇒ 任何页面滚到底都会多出一整块纯空白（实测所有普通页面 scrollH=1014 / 视口 950）。
   扣掉这 64px 后文档总高正好 100vh，页脚仍精确贴在文档最底部，视觉位置不变。 */
.app-layout{display:flex;min-height:calc(100vh - 64px);background:var(--bg);}
.sidebar{width:163px;background:#fff;border-right:1px solid rgba(0,0,0,.08);
  display:flex;flex-direction:column;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;z-index:20;
  transition:width .2s ease;}
.sidebar.collapsed{width:68px;}
.sidebar.collapsed ~ .header-bar{left:68px;}
.sidebar.collapsed ~ .main-content{margin-left:68px;}
.header-bar{height:60px;background:#fff;border-bottom:1px solid rgba(0,0,0,.08);
  display:flex;align-items:center;justify-content:space-between;padding:0 20px;
  position:fixed;top:0;left:163px;right:0;z-index:15;transition:left .2s ease;}

.header-bar .header-page-title{color:var(--text-primary);}
.main-content{margin-left:163px;margin-top:60px;padding:24px;flex:1;min-width:0;transition:margin-left .2s ease;}

/* ===================== 侧边栏 ===================== */
.sidebar-top{padding:20px 20px 16px;display:flex;align-items:center;gap:10px;
  border-bottom:1px solid rgba(0,0,0,.08);}
.sidebar-brand-icon{width:34px;height:34px;border-radius:8px;
  background:var(--primary);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;}
.sidebar-brand-name{font-weight:700;font-size:15px;letter-spacing:.5px;color:var(--text-primary);}
.sidebar-brand-sub{font-size:11px;color:var(--text-secondary);letter-spacing:2px;}
.sidebar-nav{padding:10px 8px;flex:1;}

/* 折叠导航：一级 / 二级 / 三级（品牌底色 + 白字 + 点击高亮） */
.sidebar-item{display:flex;align-items:center;cursor:pointer;}
.nav-group{margin-bottom:1px;}
.nav-title{display:flex;align-items:center;justify-content:space-between;
  padding:11px 12px;font-size:13px;font-weight:600;color:var(--text-primary);
  cursor:pointer;border-radius:7px;letter-spacing:.5px;user-select:none;
  transition:background .18s,color .18s,transform .12s;}
.nav-title:hover{background:rgba(0,0,0,.06);color:var(--text-primary);}
.nav-title:active{background:rgba(255,255,255,.25);transform:scale(.98);}
.nav-title .nav-arrow{font-size:9px;transition:transform .2s ease;color:var(--text-muted);}
.nav-title:hover .nav-arrow{color:var(--text-secondary);}
.nav-group.open > .nav-title .nav-arrow{transform:rotate(90deg);}
.nav-children{display:none;padding:4px 0 8px 14px;margin:0;}
.nav-group.open > .nav-children{display:block;}
.nav-sub > .nav-title{font-weight:500;padding:9px 12px;font-size:12.5px;color:var(--text-secondary);}
.nav-sub > .nav-title .nav-arrow{font-size:8px;}
.nav-sub-children{display:none;padding:2px 0 2px 14px;margin:0;}
.nav-sub.open > .nav-sub-children{display:block;}
.nav-leaf{display:flex;align-items:center;padding:8px 12px;border-radius:7px;
  color:var(--text-primary);font-size:13px;margin-bottom:1px;
  transition:background .18s,color .18s,transform .12s;cursor:pointer;}
.nav-leaf:hover{background:rgba(0,0,0,.06);color:var(--text-primary);}
.nav-leaf:active{background:rgba(0,0,0,.10);transform:scale(.98);}
/* 选中态：白底 + 品牌色字 */
.nav-leaf.active{background:rgba(16,185,129,.1);color:#10B981;
  font-weight:600;box-shadow:0 2px 8px rgba(0,0,0,.25);}
.nav-leaf.active:hover{background:rgba(16,185,129,.1);}
.nav-leaf.lvl3{font-size:12.5px;color:var(--text-secondary);}
.nav-leaf.lvl3:hover{color:var(--text-primary);background:rgba(0,0,0,.06);}
.nav-leaf.lvl3.active{color:#10B981;background:rgba(16,185,129,.1);
  box-shadow:0 2px 6px rgba(0,0,0,.2);}

/* ===== 侧边栏图标 / 折叠态 / 顶栏面包屑 / 用户菜单（增强） ===== */
.nav-ico{display:inline-flex;align-items:center;justify-content:center;width:20px;flex:none;font-size:15px;line-height:1;}
.nav-title .nav-ico{margin-right:9px;}
.nav-leaf .nav-ico{margin-right:9px;}
.nav-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.nav-leaf .nav-label{flex:none;}

/* 收起/展开按钮（侧边栏底部） */
.sidebar-footer{padding:10px 10px;border-top:1px solid rgba(0,0,0,.08);}
.collapse-btn{width:100%;padding:9px;border:none;border-radius:8px;background:rgba(0,0,0,.05);
  color:var(--text-secondary);cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center;gap:6px;transition:background .15s;}
.collapse-btn:hover{background:rgba(0,0,0,.10);}
.sidebar.collapsed .collapse-btn .txt{display:none;}

/* 折叠态：仅图标 + 悬浮提示 */
.sidebar.collapsed .sidebar-top{padding:14px 0;justify-content:center;}
.sidebar.collapsed .sidebar-brand-name,
.sidebar.collapsed .sidebar-brand-sub{display:none;}
.sidebar.collapsed .sidebar-nav{padding:10px 6px;}
.sidebar.collapsed .nav-title{padding:12px 0;justify-content:center;gap:0;}
.sidebar.collapsed .nav-title .nav-label,
.sidebar.collapsed .nav-title .nav-arrow{display:none;}
.sidebar.collapsed .nav-children{padding-left:0;}
.sidebar.collapsed .nav-sub-children{padding-left:0;}
.sidebar.collapsed .nav-leaf{padding:11px 0;justify-content:center;margin-bottom:2px;}
.sidebar.collapsed .nav-leaf .nav-label,
.sidebar.collapsed .nav-leaf .nav-ico{display:none;}
.sidebar.collapsed .nav-leaf::before{content:attr(data-abbr);font-size:13px;font-weight:600;color:var(--text-secondary);}
.sidebar.collapsed .nav-leaf.active::before{color:#10B981;}
.sidebar.collapsed .nav-sub > .nav-title{padding:10px 0;justify-content:center;}
.sidebar.collapsed .nav-title[data-tip]:hover::after,
.sidebar.collapsed .nav-leaf[data-tip]:hover::after{
  content:attr(data-tip);position:fixed;left:78px;
  background:rgba(12,25,41,.96);color:#fff;padding:6px 11px;border-radius:7px;font-size:12px;
  white-space:nowrap;pointer-events:none;z-index:200;box-shadow:0 6px 18px rgba(0,0,0,.3);}

/* 顶栏：汉堡按钮 + 品牌 + 面包屑 */
.hamburger{background:transparent;border:none;color:var(--text-secondary);font-size:19px;cursor:pointer;
  padding:5px 9px;border-radius:8px;line-height:1;transition:background .15s;}
.hamburger:hover{background:rgba(0,0,0,.08);}
.header-left{display:flex;align-items:center;gap:14px;}
.brand-mini{display:flex;align-items:center;gap:8px;}
.brand-mini-ico{width:28px;height:28px;border-radius:8px;background:var(--primary);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:12px;}
.brand-mini-name{font-weight:700;font-size:15px;color:var(--text-primary);}
.breadcrumb{display:flex;align-items:center;gap:6px;font-size:13px;margin-left:4px;}
.breadcrumb .bc-item{color:var(--text-secondary);}
.breadcrumb .bc-item.bc-cur{color:var(--text-primary);}
.breadcrumb .bc-sep{color:var(--text-muted);}
.header-page-title{display:none;}

/* 顶栏：用户卡片 + 下拉菜单 */
.header-user{position:relative;cursor:pointer;display:flex;align-items:center;gap:9px;padding:4px 6px;border-radius:10px;transition:background .15s;}
.header-user:hover{background:rgba(0,0,0,.06);}
.header-avatar{width:32px;height:32px;border-radius:50%;background:var(--primary);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex:none;}
.header-user-meta{display:flex;flex-direction:column;line-height:1.25;}
.hun-name{font-size:13px;font-weight:600;color:var(--text-primary);}
.hun-role{font-size:11px;color:var(--text-secondary);}
.caret{font-size:9px;color:var(--text-secondary);transition:transform .2s;}
.header-user.open .caret{transform:rotate(180deg);}
.user-menu{position:absolute;top:calc(100% + 10px);right:0;min-width:180px;background:#fff;
  border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.18);padding:6px;display:none;z-index:40;}
.user-menu.open{display:block;}
.um-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;
  color:var(--text-secondary) !important;font-size:13px;cursor:pointer;transition:background .12s;}
.um-item:hover{background:#f3f4f6;}
.um-ico{font-size:14px;width:18px;text-align:center;color:var(--text-secondary) !important;}
.um-sep{height:1px;background:#eef0f2;margin:4px 0;}
.um-logout{color:#e54c5e !important;}
.um-logout:hover{background:#fdeced;}
/* 点击高亮反馈：瞬间显色即还原 */
/* 点击高亮由 :active 伪类处理，无需 JS 动画 */

/* ===================== 看图生文 拖拽上传区 ===================== */
#mpImgDrop{position:relative;display:block;}
#mpImgDrop:hover{background:rgba(var(--primary-rgb),.06);border-color:var(--primary);}
#mpImgDrop.dragover{background:#d1fae5;border-color:var(--primary);border-style:solid;}
#mpImgDrop.has-image{cursor:default;}
#mpImgDrop.has-image #mpImgDropHint{display:none;}
/* 隐藏的 file input：通过 <label for> 自动触发选择，display:none 在某些浏览器会失效 */
#mpImgFile{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;clip:rect(0,0,0,0);}

/* ===================== 顶栏 ===================== */
.header-left .header-page-title{font-size:16px;font-weight:600;}
.header-right{display:flex;align-items:center;gap:16px;}
.header-user{display:flex;align-items:center;gap:8px;color:var(--text-primary);}
.header-avatar{width:32px;height:32px;border-radius:50%;background:var(--primary);color:#fff;
  display:flex;align-items:center;justify-content:center;}
.header-logout{font-size:13px;color:var(--text-secondary);cursor:pointer;transition:color .15s;}
.header-logout:hover{color:var(--text-primary);}

/* ===================== 页面通用 ===================== */
.page{display:none;animation:pageIn .5s cubic-bezier(.22,1,.36,1);}
/* 2026-09-19：keyframes 去掉 filter:blur(6px)（原写法每次切页都要对整个页面子树做一遍模糊，
   并迫使页内所有 backdrop-filter 毛玻璃每帧重算，是「切页/点击一顿」的主要结构性开销）；
   保留淡入 + 上移，观感基本一致。 */
@keyframes pageIn{from{opacity:0;transform:translateY(14px) scale(.997)}to{opacity:1;transform:none}}
.page-header{margin-bottom:20px;}
.page-title-row{display:flex;align-items:center;gap:12px;}
.page-title-icon{width:42px;height:42px;border-radius:12px;background:var(--primary);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:20px;}
.page-title{font-size:22px;font-weight:700;margin:0;}
.page-desc{color:var(--text-muted);font-size:13px;margin-top:6px;}

/* ===================== 卡片 / KPI ===================== */
.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:20px;}
.stat-card{background:rgba(255,255,255,.72);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-color);border-left:4px solid var(--primary);border-radius:var(--radius-md);padding:18px;box-shadow:var(--shadow-sm), inset 0 1px 0 rgba(255,255,255,.6);transition:transform .3s ease, box-shadow .3s, border-color .3s;}
.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md), 0 0 18px rgba(16,185,129,.1);border-color:rgba(16,185,129,.45);}
.stat-card-header{display:flex;justify-content:space-between;align-items:flex-start;}
.stat-card-title{font-size:13px;color:var(--text-secondary);}
.stat-card-icon{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:16px;}
.stat-card-value{font-size:26px;font-weight:700;margin-top:10px;}
.stat-card-footer{font-size:12px;color:var(--text-muted);margin-top:6px;display:flex;align-items:center;gap:6px;}
.trend-up{color:var(--accent-red);font-weight:600;}
.trend-down{color:var(--accent-green);font-weight:600;}

/* ===================== 表格卡片 ===================== */
.table-card{background:rgba(255,255,255,.72);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-color);border-radius:var(--radius-md);margin-bottom:20px;overflow:hidden;box-shadow:var(--shadow-sm), inset 0 1px 0 rgba(255,255,255,.6);transition:box-shadow .3s, border-color .3s;}
.table-card:hover{box-shadow:var(--shadow-md), 0 0 18px rgba(16,185,129,.08);border-color:rgba(16,185,129,.4);}
.table-card-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-light);}
.table-card-title{font-size:15px;font-weight:600;}

/* ===================== 功能入口 ===================== */
.feature-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:14px;}
.feature-item{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px;border-radius:10px;cursor:pointer;background:var(--bg-body);}
.feature-item:hover{background:rgba(var(--primary-rgb),.06);}
.feature-item-icon{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;}
.feature-item-name{font-size:13px;color:var(--text-secondary);}

/* ===================== 标签 ===================== */
.tag{display:inline-block;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:600;background:var(--bg-body);color:var(--text-secondary);}
.tag-success{background:#e7f7ee;color:#059669;}
.tag-info{background:#e7eefb;color:#2563eb;}
.tag-warning{background:#fef3d8;color:#d97706;}
.tag-danger{background:#fde8e8;color:#dc2626;}
.tag-primary{background:rgba(var(--primary-rgb),.1);color:var(--primary);}
.tag-default{background:#f1f5f9;color:var(--text-muted);}

/* ===================== 按钮 ===================== */
.btn-sm{padding:6px 14px;border-radius:7px;font-size:13px;border:1px solid transparent;cursor:pointer;font-weight:500;}
.btn-outline{background:#fff;border-color:var(--border-color);color:var(--text-secondary);}
.btn-outline:hover{border-color:var(--primary);color:var(--primary);}
.btn-primary{background:linear-gradient(120deg,#10B981,#34D399);color:#fff;border-color:transparent;box-shadow:0 4px 14px rgba(16,185,129,.3);}
.btn-primary:hover{background:linear-gradient(120deg,#059669,#10B981);box-shadow:0 8px 24px rgba(16,185,129,.45);}
.btn-success{background:var(--accent-green);color:#fff;border-color:var(--accent-green);}

/* ===================== 表单 / 筛选 ===================== */
.filter-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 20px;}
.filter-select,.filter-input,.form-control,.form-input{padding:8px 12px;border:1px solid var(--border-color);
  border-radius:8px;font-size:13px;background:#fff;color:var(--text-primary);outline:none;}
.filter-select:focus,.filter-input:focus,.form-control:focus{border-color:var(--primary);}
.form-row{display:flex;gap:16px;margin-bottom:14px;}
.form-item{flex:1;min-width:0;}
.form-item.full{flex:100%;}
.form-label{display:block;font-size:13px;color:var(--text-secondary);margin-bottom:6px;}
.req{color:var(--accent-red);}
.form-row-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px;}
@media (max-width:900px){.form-row-4{grid-template-columns:repeat(2,1fr);}}
.resizable{resize:both;min-height:56px;max-width:100%;overflow:auto;}
.stat-banner{padding:10px 16px;border-radius:8px;font-size:13px;margin:0 20px 16px;line-height:1.6;}
.stat-banner-ok{background:#e7f7ee;color:#059669;border:1px solid #b7ebcf;}
.stat-banner-warn{background:#fff7e6;color:#b45309;border:1px solid #fde68a;}

/* ===================== 数据表 ===================== */
.data-table{width:100%;border-collapse:collapse;font-size:13px;}
.data-table th{text-align:left;padding:12px 14px;background:var(--bg-body);color:var(--text-secondary);
  font-weight:600;border-bottom:1px solid var(--border-color);white-space:nowrap;}
.data-table td{padding:11px 14px;border-bottom:1px solid var(--border-light);color:var(--text-primary);}
.data-table tbody tr:hover{background:#fafcff;}

/* ===================== 分页 ===================== */
.pagination{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;font-size:13px;color:var(--text-muted);}
.page-btns{display:flex;gap:6px;}
.page-btn{min-width:30px;height:30px;padding:0 8px;border:1px solid var(--border-color);background:#fff;border-radius:6px;cursor:pointer;font-size:13px;}
.page-btn.active{background:var(--primary);color:#fff;border-color:var(--primary);}

/* ===================== 小程序会员模块 ===================== */
.header-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.mini-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;}
.card-body{padding:16px 20px;}
.mini-bar{display:flex;align-items:center;gap:10px;padding:5px 0;font-size:13px;}
.mini-bar-label{width:160px;flex:0 0 160px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mini-bar-track{flex:1;height:14px;background:var(--bg-body);border-radius:7px;overflow:hidden;}
.mini-bar-fill{height:100%;border-radius:7px;}
.mini-bar-val{width:48px;text-align:right;color:var(--text-primary);font-weight:600;}
@media (max-width: 900px){ .mini-cols{grid-template-columns:1fr;} .mini-bar-label{width:110px;flex-basis:110px;} }

/* ===================== Tab ===================== */
.mp-top-tab-btn{flex:1;padding:14px;background:#fff;border:none;cursor:pointer;font-size:15px;color:var(--text-secondary);border-bottom:2px solid transparent;}
.mp-top-tab-btn.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600;}
.tab-nav{display:flex;gap:6px;flex-wrap:wrap;}
.tab-btn{padding:8px 16px;border-radius:8px;background:var(--bg-body);border:1px solid var(--border-color);cursor:pointer;font-size:13px;color:var(--text-secondary);}
.tab-btn.active{background:var(--primary);color:#fff;border-color:var(--primary);}
.tab-btn-action{background:#fff;color:var(--secondary);border-color:var(--secondary);}
.tab-btn-action:hover{background:var(--secondary);color:#fff;}

/* ===================== 营销任务中心 ===================== */
.mkt-mod-tabs{display:none !important;}
.mkt-mod-panel{min-height:40px;}
.mkt-taskwrap{margin-top:4px;}
.mkt-task-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:10px;flex-wrap:wrap;}
.mkt-task-list{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;align-items:stretch;min-height:60px;}
.mkt-task-empty{color:var(--text-muted);font-size:13px;padding:24px;text-align:center;background:var(--bg-body);border:1px dashed var(--border-color);border-radius:10px;}
.mkt-task-noperm{color:var(--text-muted);font-size:13px;align-self:center;}
.tc-role{font-size:13px;color:var(--text-muted);}
.tc-role b{color:var(--text-strong);}
.mkt-task-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:10px;padding:14px 16px;display:flex;align-items:flex-start;gap:12px;height:100%;}
.mkt-task-card.done{opacity:.6;}
.mkt-task-main{flex:1;min-width:0;}
.mkt-task-title{font-size:14px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.mkt-task-meta{font-size:12px;color:var(--text-secondary);margin-top:5px;display:flex;gap:14px;flex-wrap:wrap;}
.mkt-task-content{font-size:12px;color:var(--text-muted);margin-top:6px;white-space:pre-wrap;line-height:1.5;}
.mkt-task-actions{display:flex;gap:6px;flex-shrink:0;}
.mkt-badge{font-size:11px;padding:1px 8px;border-radius:10px;font-weight:600;white-space:nowrap;}
.mkt-badge.high{background:#fde8ea;color:#E54C5E;}
.mkt-badge.medium{background:#fff4e2;color:#E0A53A;}
.mkt-badge.normal{background:#e8f4f2;color:var(--primary-dark);}
.mkt-badge.low{background:#eef2f7;color:var(--text-secondary);}
.mkt-badge.status-done{background:#e6f7ee;color:#07c160;}
.mkt-badge.status-pending{background:#eef2f7;color:var(--text-secondary);}
.mkt-badge.status-overdue{background:#fde8ea;color:#E54C5E;}
.mkt-modal-mask{position:fixed;inset:0;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;z-index:9999;}
.mkt-modal{background:#fff;border-radius:14px;width:460px;max-width:92vw;padding:22px;box-shadow:var(--shadow-lg);}
.mkt-modal h3{font-size:16px;margin-bottom:16px;}
.mkt-field{margin-bottom:12px;}
.mkt-field label{display:block;font-size:12px;color:var(--text-secondary);margin-bottom:5px;}
.mkt-field input,.mkt-field select,.mkt-field textarea{width:100%;padding:9px 11px;border:1px solid var(--border-color);border-radius:8px;font-size:13px;font-family:inherit;background:#fff;}
.mkt-field textarea{resize:vertical;min-height:64px;}
.mkt-modal-foot{display:flex;justify-content:flex-end;gap:10px;margin-top:8px;}
.btn-primary{background:var(--primary);color:#fff;border:none;border-radius:8px;padding:8px 16px;cursor:pointer;font-size:13px;font-weight:600;}
.btn-primary:hover{filter:brightness(.96);}

/* 顶部「模块切换」下拉菜单 */
.mkt-nav-btn{display:flex;align-items:center;gap:5px;padding:5px 12px;border:1px solid var(--border-color);border-radius:8px;background:var(--card-bg);cursor:pointer;font-size:13px;color:var(--text-secondary);white-space:nowrap;margin-left:6px;}
.mkt-nav-btn:hover{background:var(--bg-body);border-color:var(--primary);color:var(--primary);}
.mkt-dropdown-panel{position:fixed;top:52px;left:171px;background:#fff;border:1px solid var(--border-color);border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.14);z-index:9998;width:160px;max-height:90vh;overflow-y:auto;padding:12px;display:block;}
.mkt-dd-group{min-width:0;}
.mkt-dd-group-title{font-size:11px;font-weight:700;color:var(--text-muted);padding:6px 10px 3px;text-transform:uppercase;letter-spacing:.5px;text-align:left;}
.mkt-dd-item{font-size:13px;padding:7px 10px;border-radius:6px;cursor:pointer;color:var(--text-primary);white-space:nowrap;text-align:left;}
.mkt-dd-item:hover{background:var(--primary);color:#fff;}

/* 营销任务中心 总览 */
.tc-tabs{margin:14px 0 18px;}
.tc-module-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;}
.tc-module-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;padding:18px;cursor:pointer;transition:.15s;border-left:4px solid var(--primary);}
.tc-module-card:hover{box-shadow:var(--shadow);transform:translateY(-2px);}
.tc-module-name{font-size:15px;font-weight:700;color:var(--text-primary);}
.tc-module-stats{display:flex;gap:18px;margin-top:10px;font-size:13px;color:var(--text-secondary);}
.tc-module-stats b{color:var(--primary);font-size:18px;margin-left:4px;}
.tc-module-go{margin-top:10px;font-size:12px;color:var(--primary);font-weight:600;}
.tc-person-list{display:flex;flex-direction:column;gap:8px;}
.tc-person-row{display:flex;align-items:center;justify-content:space-between;background:var(--card-bg);border:1px solid var(--border-color);border-radius:10px;padding:12px 16px;}
.tc-person-name{font-size:14px;font-weight:600;color:var(--text-primary);}
.tc-person-stats{font-size:13px;color:var(--text-secondary);}
.trend-period-btn{cursor:pointer;}

/* ===================== 公众号账户卡片 ===================== */
.account-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;}
.account-card{position:relative;background:var(--card-bg);border:1px solid var(--border-color);border-radius:10px;padding:14px;cursor:pointer;transition:.15s;}
.account-card:hover{border-color:var(--primary);}
.account-card.selected{border-color:var(--primary);background:rgba(var(--primary-rgb),.06);box-shadow:0 0 0 2px var(--primary) inset;}
.check-badge{position:absolute;top:10px;right:10px;width:20px;height:20px;border-radius:50%;background:var(--primary);color:#fff;display:none;align-items:center;justify-content:center;font-size:12px;}
.account-card.selected .check-badge{display:flex;}
.account-name{font-weight:600;font-size:14px;}
.account-id{font-size:12px;color:var(--text-muted);margin:4px 0 8px;}
.account-tags{display:flex;gap:6px;flex-wrap:wrap;}
/* 账号定位文案：在卡片名称下方显示，自动换行 + 最多 4 行截断避免破坏网格 */
.account-direction{font-size:12.5px;color:var(--text-secondary);line-height:1.55;margin-top:6px;
  display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;
  word-break:break-word;background:#F7FBFA;border-left:3px solid var(--primary);
  padding:6px 10px;border-radius:4px;}

/* ===================== 步骤条 ===================== */
.steps{display:flex;align-items:center;gap:0;margin-bottom:24px;flex-wrap:wrap;}
.step{display:flex;align-items:center;gap:8px;}
.step-num{width:28px;height:28px;border-radius:50%;background:var(--bg-body);color:var(--text-muted);
  display:flex;align-items:center;justify-content:center;font-weight:700;border:1px solid var(--border-color);}
.step.active .step-num{background:var(--primary);color:#fff;border-color:var(--primary);}
.step-text{font-size:13px;color:var(--text-secondary);}
.step.active .step-text{color:var(--primary);font-weight:600;}
.step-line{flex:1;height:2px;background:var(--border-color);margin:0 12px;min-width:20px;}

/* ===================== 手机预览 ===================== */
.preview-phone{width:375px;max-width:100%;margin:0 auto;background:#fff;border:1px solid var(--border-color);border-radius:24px;overflow:hidden;box-shadow:var(--shadow-md);transition:max-width .2s,width .2s;}
.preview-phone.preview-pc{width:100%;max-width:960px;border-radius:14px;}
.phone-statusbar{display:flex;justify-content:space-between;padding:10px 16px;background:#f8fafc;font-size:12px;color:var(--text-secondary);}
.phone-content{padding:16px;}

/* ===================== 占位 / 空态 ===================== */
.dev-pending-page,.empty-state{text-align:center;padding:80px 20px;color:var(--text-muted);}
.dev-pending-icon,.empty-icon{font-size:56px;margin-bottom:16px;}
.dev-pending-title,.empty-title{font-size:18px;font-weight:700;color:var(--text-primary);margin-bottom:10px;}
.dev-pending-desc,.empty-desc{font-size:13px;line-height:1.8;max-width:480px;margin:0 auto 16px;}
.dev-pending-progress{display:inline-block;background:var(--bg-body);padding:8px 16px;border-radius:20px;font-size:12px;color:var(--text-secondary);}

/* ===================== 权限矩阵 ===================== */
.perm-grid{display:grid;grid-template-columns:2fr repeat(6,1fr);gap:0;border:1px solid var(--border-color);border-radius:8px;overflow:hidden;}
.perm-cell{padding:10px 12px;border-bottom:1px solid var(--border-light);font-size:13px;display:flex;align-items:center;}
.perm-cell.header{background:var(--bg-body);font-weight:600;justify-content:center;}
.perm-cell.module{font-weight:500;background:#fcfdfe;}
.perm-check{width:16px;height:16px;}

/* ===================== 登录页 ===================== */
.login-wrapper{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:
    radial-gradient(1100px 700px at 50% -10%, rgba(16,185,129,.12), transparent 60%),
    radial-gradient(900px 600px at 90% 100%, rgba(56,189,248,.07), transparent 60%),
    #f0f2f5;
  padding:20px;}
.login-box{width:400px;max-width:92vw;background:#ffffff;border:1px solid #e5e7eb;
  border-radius:20px;padding:40px 36px 26px;backdrop-filter:blur(28px) saturate(150%);text-align:center;
  box-shadow:0 18px 48px rgba(15,23,42,.10),0 0 40px rgba(16,185,129,.08);}
.login-logo-icon{width:64px;height:64px;margin:0 auto 16px;border-radius:18px;
  background:#fff;color:#fff;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:800;box-shadow:0 8px 24px rgba(16,185,129,.4);border:1px solid rgba(15,23,42,.15);}
.login-box h1{font-size:20px;color:#1f2937;margin-bottom:28px;letter-spacing:2px;}
.login-form{text-align:left;}
.login-field{margin-bottom:16px;}
.login-field label{display:block;font-size:13px;color:#6b7280;margin-bottom:6px;}
.login-field input{width:100%;padding:11px 14px;border:1px solid #e5e7eb;border-radius:8px;font-size:14px;outline:none;transition:.2s;background:#ffffff;color:#1f2937;box-sizing:border-box;}
.login-field input:focus{border-color:#10B981;background:rgba(16,185,129,.06);box-shadow:0 0 0 3px rgba(16,185,129,.18);}
.login-extras{display:flex;justify-content:space-between;margin:4px 0 18px;}
.login-link{font-size:12px;color:#6b7280;cursor:pointer;}
.login-link:hover{color:#34D399;}
.btn-login-main{width:100%;padding:13px;border:none;border-radius:8px;background:linear-gradient(120deg,#10B981,#34D399);color:#fff;font-size:15px;font-weight:600;letter-spacing:4px;margin-bottom:12px;box-shadow:0 8px 24px rgba(16,185,129,.35);transition:transform .2s, box-shadow .2s;}
.btn-login-main:hover{background:linear-gradient(120deg,#059669,#10B981);transform:translateY(-1px);box-shadow:0 12px 32px rgba(16,185,129,.55);}
.btn-register-outline{width:100%;padding:12px;border:1px solid #e5e7eb;border-radius:8px;background:#ffffff;color:#6b7280;font-size:14px;cursor:pointer;}
.btn-register-outline:hover{border-color:#10B981;color:#34D399;}
.login-slogan{margin-top:24px;color:#6B7280;font-size:14px;}

/* ===================== 模态框 ===================== */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:1000;align-items:center;justify-content:center;padding:20px;}
.modal-box{background:#fff;border-radius:var(--radius-lg);width:560px;max-width:94vw;max-height:90vh;overflow:auto;box-shadow:var(--shadow-lg);}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--border-light);}
.modal-head h3{font-size:17px;margin:0;}
.modal-close{border:none;background:none;font-size:24px;cursor:pointer;color:var(--text-muted);line-height:1;}
.modal-body{padding:22px;}
.modal-foot{padding:16px 22px;border-top:1px solid var(--border-light);display:flex;justify-content:flex-end;gap:10px;}

/* ===================== 小型弹窗（人工审核等） ===================== */
.modal-box-sm{background:#fff;border-radius:var(--radius-lg);width:380px;max-width:92vw;max-height:82vh;overflow:auto;box-shadow:var(--shadow-lg);}
.modal-box-sm .modal-body{padding:18px 20px;font-size:13px;line-height:1.8;}

/* ===================== 操作日志弹窗容器 ===================== */
.modal-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;}

/* 角色编辑：权限树禁用行/段（查看未勾选时） */
.perm-row-disabled { background-color: #f5f5f5; }
.perm-row-disabled .cell-action { opacity: 0.5; }
/* 深色模式必须给深色兜底：否则"查看未勾选"的行会变成一块白底（2026-09-21 用户反馈） */
[data-theme="dark"] .perm-row-disabled { background-color: rgba(255,255,255,.055); }
[data-theme="dark"] .perm-row-disabled .cell-action { opacity: .45; }
/* 分组标题可点：无权限时子项默认折叠，必须能展开才点得到（配合 _toggleSection） */
.tree-section .sec-label:hover { color: var(--primary); }

/* 通用卡片容器 */
.card { background: #fff; border: 1px solid var(--border-light); border-radius: var(--radius-md); padding: 18px; }

/* ===================== 查看 / 编辑 权限分离（2026-09-21）=====================
   用户口径：`查看` = 只能看（不能点操作）；`编辑` = 才能真操作。
   .perm-readonly 用于 [data-edit-module] 标注且无编辑权的控件；提示条用于点击拦截反馈。 */
.perm-readonly { opacity: .45 !important; cursor: not-allowed !important; filter: grayscale(.35); }
.perm-readonly * { pointer-events: none !important; }
.perm-toast {
  position: fixed; left: 50%; bottom: 56px; transform: translateX(-50%);
  background: rgba(17,24,39,.95); color: #fff; padding: 10px 18px; border-radius: 8px;
  font-size: 13px; z-index: 99999; box-shadow: 0 8px 24px rgba(0,0,0,.28);
  animation: permToastIn .18s ease-out;
}
[data-theme="dark"] .perm-toast { background: rgba(240,244,255,.96); color: #0b111e; }
@keyframes permToastIn { from { opacity: 0; transform: translate(-50%, 8px); } to { opacity: 1; transform: translate(-50%, 0); } }

/* 侧边栏 / 首页快捷入口：无查看权限的模块直接隐藏，不可见也不可点击 */
.sidebar-item.nav-disabled,
.feature-item.nav-disabled {
  display: none !important;
}

/* ===================== 加载动画 / 等待特效 ===================== */
.spinner{width:34px;height:34px;border:3px solid #d6e9e6;border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
.loadbox{display:flex;flex-direction:column;align-items:center;gap:14px;padding:10px 4px;}
.loadtext{font-size:13px;color:var(--text-secondary);text-align:center;}

/* 步骤3：正文 + 摘要 生成遮罩（覆盖字段区，避免显示旧内容） */
.gen-overlay{position:absolute;inset:0;background:rgba(255,255,255,.94);z-index:6;display:none;align-items:center;justify-content:center;border-radius:var(--radius-md);}
.gen-overlay-inner{display:flex;flex-direction:column;align-items:center;gap:16px;padding:24px;}
.gen-spinner{width:48px;height:48px;border:4px solid #d6e9e6;border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;}
.gen-text{font-size:14px;color:var(--primary);font-weight:550;text-align:center;line-height:1.7;}

/* ===================== 社群：群列表 / 策略卡 ===================== */
.group-item{display:flex;align-items:center;gap:10px;padding:12px;border-radius:10px;cursor:pointer;border:1px solid transparent;}
.group-item:hover{background:var(--bg-body);}
.group-item.selected{background:rgba(var(--primary-rgb),.06);border-color:var(--primary);}
.group-check{width:20px;height:20px;}
.group-info{flex:1;min-width:0;}
.group-name{font-weight:600;font-size:14px;}
.group-meta{font-size:12px;color:var(--text-muted);margin-top:2px;}
.strategy-card{background:var(--card-bg);border:1px solid var(--border-light);border-radius:10px;padding:14px;}
.strategy-card-icon{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:16px;margin-bottom:8px;}
.strategy-card-title{font-weight:600;font-size:14px;margin-bottom:6px;}
.strategy-card-text{font-size:12px;color:var(--text-secondary);line-height:1.6;}

/* ===================== 群聊弹窗 ===================== */
.chat-modal{display:flex;flex-direction:column;height:60vh;}
.chat-header{padding:10px 0;font-weight:600;border-bottom:1px solid var(--border-light);margin-bottom:10px;}
.chat-body{flex:1;overflow:auto;padding:6px 0;}
.chat-sys{text-align:center;font-size:12px;color:var(--text-muted);margin:8px 0;}
.chat-msg{background:var(--bg-body);border-radius:10px;padding:8px 12px;margin:6px 0;font-size:13px;max-width:80%;}
.chat-msg.chat-me{background:var(--primary);color:#fff;margin-left:auto;}
.chat-name{font-weight:600;font-size:12px;color:var(--secondary);margin-right:6px;}
.chat-input{display:flex;gap:8px;margin-top:10px;}

/* ===================== SOP 预览 ===================== */
.sop-preview{max-height:70vh;overflow:auto;}
.sop-badge{display:inline-block;background:var(--primary);color:#fff;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600;margin-bottom:8px;}
.sop-subtitle{font-size:13px;color:var(--text-secondary);margin-bottom:14px;}
.sop-card{background:var(--bg-body);border-radius:10px;padding:14px;margin-bottom:12px;}
.sop-card-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.sop-day{width:30px;height:30px;border-radius:8px;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;}
.sop-theme{font-weight:600;}
.sop-task{display:flex;align-items:center;gap:10px;margin-bottom:8px;}
.sop-num{width:22px;height:22px;border-radius:50%;background:#fff;border:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--text-muted);}
.sop-input{flex:1;padding:8px 12px;border:1px solid var(--border-color);border-radius:8px;font-size:13px;outline:none;}
.sop-input:focus{border-color:var(--primary);}

/* ===================== 微伴配置 ===================== */
.weiban-confirm{text-align:center;padding:10px;}
.weiban-icon{font-size:42px;margin-bottom:10px;}
.weiban-title{font-size:16px;font-weight:700;margin-bottom:6px;}
.weiban-sub{font-size:13px;color:var(--text-secondary);margin-bottom:18px;}
.weiban-actions{display:flex;gap:10px;justify-content:center;}
.weiban-config{padding:6px;}
.weiban-item{padding:10px 0;border-bottom:1px solid var(--border-light);}
.weiban-tip{font-size:12px;color:var(--text-muted);margin-top:12px;}

/* ===================== 配置群发面板 ===================== */
.groupsend-box{padding:4px 2px;}
.gs-row{display:flex;align-items:center;gap:10px;margin:12px 0;flex-wrap:wrap;}
.gs-label{width:64px;flex-shrink:0;color:var(--text-secondary);font-size:13px;font-weight:500;}
.gs-val{font-size:13px;color:var(--text-primary);}
.gs-input{flex:1;min-width:180px;padding:8px 10px;border:1px solid var(--border-color);border-radius:7px;font-size:13px;background:#fff;color:var(--text-primary);}
.gs-input:focus{border-color:var(--primary);outline:none;}
.gs-textarea{min-height:84px;resize:vertical;line-height:1.5;}
.gs-radio{font-size:13px;color:var(--text-primary);display:inline-flex;align-items:center;gap:4px;cursor:pointer;}
.gs-hint{font-size:12px;color:var(--text-muted);}
.gs-tip{font-size:12px;color:#e8833a;background:#fff6ee;border:1px solid #ffe0c2;border-radius:7px;padding:8px 10px;margin-top:6px;}

/* 新版配置群发：三栏布局 */
#dyn-modal.groupsend-wide .modal-box{width:960px;max-width:96vw;}
.groupsend-layout{display:flex;gap:16px;min-height:420px;}
.gs-col{display:flex;flex-direction:column;gap:10px;background:#f8fafc;border:1px solid var(--border-light);border-radius:10px;padding:14px;min-width:0;}
.gs-col-groups{width:240px;}
.gs-col-editor{flex:1;}
.gs-col-links{width:240px;}
.gs-col-title{font-size:15px;font-weight:600;color:var(--text-primary);}
.gs-col-tip{font-size:12px;color:var(--text-muted);}
.gs-col-foot{margin-top:auto;font-size:13px;color:var(--text-secondary);padding-top:8px;border-top:1px solid var(--border-light);}
.gs-search .gs-input{width:100%;min-width:0;font-size:13px;}
/* ⚠️ flex 列 + 限高滚动 的固定搭配：① 容器 min-height:0；② 子项 flex:0 0 auto。
   漏了子项就会被子容器**等比压缩**（群一多，每行被压到二十几像素 → 群名叠在一起）。
   2026-09-22 用户截图反馈「配置群发的群名叠在一起」就是这个原因。 */
.gs-group-list{flex:1;min-height:0;overflow-y:auto;max-height:360px;display:flex;flex-direction:column;gap:6px;}
.gs-group-list>*{flex:0 0 auto;}
.gs-group-item{padding:8px 10px;border-radius:8px;background:#fff;border:1px solid var(--border-light);transition:.15s;}
.gs-group-item.selected{background:#d1fae5;border-color:#10B981;}
.gs-group-item.disabled{opacity:.6;background:#f3f4f6;}
.gs-group-name{font-size:13px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1;}
.gs-group-meta{font-size:12px;color:var(--text-muted);margin-top:4px;}
.gs-group-note{width:100%;font-size:12px;padding:5px 8px;border:1px solid var(--border-color);border-radius:6px;margin-top:6px;box-sizing:border-box;background:#fafafa;color:var(--text-primary);transition:border-color .2s;}
.gs-group-note:focus{outline:none;border-color:#10B981;background:#fff;}
.gs-group-note:disabled{background:#f3f4f6;color:var(--text-muted);cursor:not-allowed;}
.gs-media-row{display:flex;align-items:center;gap:8px;margin:10px 0;}
.gs-link-section{background:#fff;border:1px solid var(--border-light);border-radius:8px;padding:12px;}
.gs-link-type{display:flex;gap:12px;margin-bottom:10px;flex-wrap:wrap;}
/* 同 .gs-group-list：右栏「选择链接」也是 flex 列 + 限高滚动，子项同样要禁止压缩 */
.gs-link-list{flex:1;min-height:0;overflow-y:auto;max-height:420px;display:flex;flex-direction:column;gap:8px;}
.gs-link-list>*{flex:0 0 auto;}
.gs-simple-link-item{padding:10px;border-radius:8px;background:#fff;border:1px solid var(--border-light);cursor:pointer;transition:.15s;}
.gs-simple-link-item:hover{border-color:var(--primary);background:#f0fdfa;}
.gs-simple-link-name{font-size:13px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.gs-simple-link-url{font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.gs-empty{font-size:13px;color:var(--text-muted);text-align:center;padding:20px 10px;}
@media(max-width:980px){
  .groupsend-layout{flex-direction:column;}
  .gs-col-groups,.gs-col-links{width:auto;max-height:220px;}
  .gs-col-editor{order:-1;}
}

/* ===================== 响应式 ===================== */
@media(max-width:900px){
  .app-layout{flex-direction:column;}
  .sidebar{width:100%;position:relative;}
  .header-bar{position:relative;left:0;top:0;}
  .main-content{margin-left:0;margin-top:0;}
  .perm-grid{grid-template-columns:1fr repeat(6,1fr);font-size:11px;}
}

/* ===================== 公众号运营：已选公众号常驻条 ===================== */
.mp-selbar{display:flex;align-items:center;gap:10px;margin:0 0 18px;padding:10px 16px;
  background:rgba(var(--primary-rgb),.06);border:1px solid #b7ebcf;border-radius:10px;font-size:13px;color:var(--text-secondary);}
.mp-selbar-dot{width:8px;height:8px;border-radius:50%;background:var(--primary);}
.mp-selbar-label{font-weight:600;color:var(--text-secondary);}
.mp-selbar b{color:var(--primary);font-weight:700;}
.mp-selbar-tip{color:var(--text-muted);font-size:12px;}

/* ===================== 公众号运营：仿微信图文编辑器 ===================== */
.wx-editor-wrap{display:grid;grid-template-columns:1fr 340px;gap:18px;align-items:start;}
.wx-editor{background:#fff;border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden;}
.wx-head{padding:18px 20px 0;border-bottom:1px solid var(--border-light);}
.wx-title-line{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border-light);padding-bottom:12px;}
.wx-title-input{flex:1;border:none;outline:none;font-size:20px;font-weight:600;padding:6px 0;color:var(--text-primary);}
.wx-title-input::placeholder{color:#c0c6cf;font-weight:500;}
.wx-title-count{font-size:12px;color:var(--text-muted);white-space:nowrap;}
.wx-meta-line{display:flex;align-items:center;gap:8px;padding:12px 0;flex-wrap:wrap;}
.wx-mini-label{font-size:13px;color:var(--text-secondary);white-space:nowrap;}
.wx-mini-input{padding:6px 10px;border:1px solid var(--border-color);border-radius:7px;font-size:13px;outline:none;min-width:120px;}
.wx-mini-input:focus{border-color:var(--primary);}
.wx-cover-line{display:flex;gap:14px;padding:12px 0 16px;align-items:stretch;}
.wx-cover-thumb{width:120px;height:120px;border:1px dashed var(--border-color);border-radius:8px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:13px;text-align:center;
  background:#fafbfc;background-size:cover;background-position:center;flex-shrink:0;overflow:hidden;}
.wx-cover-thumb:hover{border-color:var(--primary);color:var(--primary);}
.wx-cover-add{line-height:1.4;}
.wx-cover-meta{flex:1;display:flex;flex-direction:column;gap:10px;min-width:0;}
.wx-field{display:flex;align-items:flex-start;gap:8px;}
.wx-field .wx-mini-label{width:54px;padding-top:6px;flex-shrink:0;}
.wx-field textarea,.wx-field input{flex:1;border:1px solid var(--border-color);border-radius:7px;padding:6px 10px;font-size:13px;outline:none;font-family:inherit;resize:vertical;}
.wx-field textarea:focus,.wx-field input:focus{border-color:var(--primary);}

.wx-toolbar{display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding:8px 14px;background:#f7f9fb;border-bottom:1px solid var(--border-light);position:sticky;top:0;z-index:5;}
.wx-tb{border:1px solid var(--border-color);background:#fff;border-radius:6px;min-width:30px;height:30px;padding:0 6px;cursor:pointer;font-size:13px;color:var(--text-secondary);}
.wx-tb:hover{border-color:var(--primary);color:var(--primary);background:rgba(var(--primary-rgb),.06);}
.wx-tb-sel{height:30px;border:1px solid var(--border-color);border-radius:6px;background:#fff;font-size:12px;color:var(--text-secondary);padding:0 4px;}
.wx-tb-color{width:30px;height:30px;border:1px solid var(--border-color);border-radius:6px;background:#fff;padding:2px;cursor:pointer;}
.wx-sep{width:1px;height:20px;background:var(--border-color);margin:0 4px;}
.wx-gen-status{margin-left:auto;font-size:12px;color:var(--text-muted);}

.wx-content{min-height:420px;padding:22px 24px;font-size:16px;line-height:1.8;color:#2b2b2b;outline:none;font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;}
.wx-content:empty:before{content:attr(data-placeholder);color:#bcc2cc;}
.wx-content p{margin:0 0 14px;}
.wx-content img{max-width:100%;border-radius:6px;margin:6px 0;}
.wx-content blockquote{border-left:4px solid var(--primary);background:#f6fbfa;margin:12px 0;padding:10px 14px;color:var(--text-secondary);}
.wx-content h1,.wx-content h2,.wx-content h3{margin:18px 0 10px;line-height:1.4;}
.wx-content-foot{display:flex;justify-content:flex-end;padding:8px 20px;border-top:1px solid var(--border-light);font-size:12px;color:var(--text-muted);}

.wx-side{display:flex;flex-direction:column;gap:16px;}
.wx-card{background:#fff;border:1px solid var(--border-color);border-radius:var(--radius-md);padding:16px;}
.wx-card-title{font-size:14px;font-weight:600;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--border-light);}
.wx-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;font-size:13px;color:var(--text-secondary);}
.wx-sel{padding:6px 10px;border:1px solid var(--border-color);border-radius:7px;font-size:13px;outline:none;background:#fff;}
.wx-switch{display:flex;align-items:center;gap:6px;cursor:pointer;}
.wx-hint{font-size:12px;color:var(--text-secondary);line-height:1.7;background:var(--bg-body);border-radius:8px;padding:10px;}
@media(max-width:1100px){.wx-editor-wrap{grid-template-columns:1fr;}}

/* ===================== 有赞店铺数据看板 ===================== */
.yz-tabs{display:flex;gap:8px;margin-bottom:18px;}
.yz-tab{border:1px solid var(--border-color);background:#fff;color:var(--text-secondary);font-size:13px;
  padding:8px 16px;border-radius:8px;cursor:pointer;transition:.15s;}
.yz-tab:hover{border-color:#10B981;color:#047857;}
.yz-tab.active{background:#10B981;border-color:#10B981;color:#fff;font-weight:600;}

.yz-layout{display:grid;grid-template-columns:340px 1fr;gap:20px;align-items:start;}
@media(max-width:980px){.yz-layout{grid-template-columns:1fr;}}
.yz-phone-wrap{display:flex;flex-direction:column;align-items:center;gap:10px;}
.phone-frame{width:300px;background:#fff;border:10px solid #1f2937;border-radius:32px;overflow:hidden;
  box-shadow:0 10px 30px rgba(0,0,0,.12);position:relative;}
.phone-statusbar{display:flex;justify-content:space-between;padding:10px 16px;background:#f1f5f9;font-size:12px;color:var(--text-secondary);}
.phone-screen{position:relative;height:520px;background:linear-gradient(180deg,rgba(var(--primary-rgb),.06),#f8fafc);}
.yz-hot-block{position:absolute;border-radius:8px;display:flex;flex-direction:column;justify-content:center;align-items:center;
  color:var(--text-primary);font-size:11px;font-weight:600;box-shadow:inset 0 0 0 1px rgba(21,127,118,.25);}
.yz-hot-name{opacity:.9;}
.yz-hot-val{font-size:13px;margin-top:2px;}
.yz-heat-legend{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-muted);}
.yz-legend-bar{width:120px;height:8px;border-radius:4px;background:linear-gradient(90deg,rgba(16,185,129,.25),rgba(16,185,129,.85));}

.yz-side{display:flex;flex-direction:column;gap:16px;}
.yz-insight-list{padding:14px 18px;display:flex;flex-direction:column;gap:10px;}
.yz-insight-item{font-size:13px;line-height:1.7;color:var(--text-secondary);}

.yz-charts-row{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;margin-bottom:20px;}
@media(max-width:980px){.yz-charts-row{grid-template-columns:1fr;}}
.yz-table{width:100%;border-collapse:collapse;font-size:13px;}
.yz-table th,.yz-table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--border-light);color:var(--text-secondary);}
.yz-table th{color:var(--text-muted);font-weight:600;background:var(--bg-body);}
.yz-table tbody tr:hover{background:#f6fbfa;}

.yz-gate{position:fixed;inset:0;background:rgba(31,41,55,.45);display:flex;align-items:center;justify-content:center;z-index:1200;}
.yz-gate-box{background:#fff;border-radius:16px;padding:30px 34px;max-width:360px;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.2);}
.yz-gate-title{font-size:18px;font-weight:700;color:#047857;margin-bottom:10px;}
.yz-gate-desc{font-size:13px;line-height:1.7;color:var(--text-secondary);margin-bottom:18px;}
.yz-qr{width:180px;height:180px;margin:0 auto 12px;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--border-light);border-radius:10px;background:#fff;overflow:hidden;}
.yz-qr img{max-width:100%;}
.yz-gate-url{font-size:11px;color:var(--text-muted);word-break:break-all;margin-bottom:8px;}
.yz-gate-status{font-size:12px;color:#047857;margin-bottom:10px;min-height:16px;}
.yz-gate-skip{margin:6px auto 0;display:block;border:1px dashed #10B981;background:rgba(var(--primary-rgb),.06);color:#047857;
  font-size:12px;padding:8px 16px;border-radius:8px;cursor:pointer;}
.yz-gate-tip{font-size:11px;color:var(--text-muted);margin-top:12px;}

/* ===================== 营销任务中心（按原型工作台） ===================== */
.tc-header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.tc-role{font-size:13px;color:var(--text-secondary);display:flex;align-items:center;gap:6px;}
.tc-role select{padding:6px 10px;border:1px solid var(--border-color);border-radius:8px;font-size:13px;background:#fff;}
.tc-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin:16px 0;}
.tc-stat-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;padding:14px 16px;border-left:4px solid var(--primary);}
.tc-stat-card .num{font-size:24px;font-weight:800;color:var(--primary);line-height:1.1;}
.tc-stat-card .lbl{font-size:12px;color:var(--text-secondary);margin-top:4px;}
.tc-stat-card .sub-num{font-size:11px;color:var(--text-muted);margin-top:2px;}
.tc-tabs{display:flex;gap:6px;margin:6px 0 14px;border-bottom:1px solid var(--border-color);}
.tc-tab{padding:10px 16px;cursor:pointer;font-size:14px;color:var(--text-secondary);border-bottom:2px solid transparent;font-weight:600;white-space:nowrap;}
.tc-tab.active{color:var(--primary);border-bottom-color:var(--primary);}
.tc-toolbar{display:flex;justify-content:flex-end;margin-bottom:12px;}
.tc-filters{display:flex;gap:8px;flex-wrap:wrap;}
.tc-filters select{padding:7px 10px;border:1px solid var(--border-color);border-radius:8px;font-size:13px;background:#fff;}
.tc-empty{text-align:center;padding:40px 0;color:var(--text-muted);}
.tc-empty .big{font-size:16px;font-weight:700;color:var(--text-secondary);margin-bottom:4px;}
.tc-person-group{margin-bottom:22px;}
.tc-person-header{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap;}
.tc-person-header .count{font-size:13px;color:var(--text-secondary);}
.tc-owner-avatar{width:34px;height:34px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;flex-shrink:0;}
.tc-person-header .name{font-size:15px;font-weight:700;color:var(--text-primary);}
.tc-task-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;}
.tc-task-card{background:var(--card-bg);border:1px solid var(--border-color);border-left:4px solid var(--primary);border-radius:12px;padding:14px 16px;position:relative;height:100%;}
.tc-task-card .top{display:flex;align-items:center;gap:8px;margin-bottom:6px;}
.tc-ch-tag{font-size:11px;color:#fff;padding:2px 9px;border-radius:10px;font-weight:600;white-space:nowrap;}
.tc-pri{font-size:11px;padding:1px 8px;border-radius:10px;font-weight:600;white-space:nowrap;}
.tc-pri.high{background:#fde8ea;color:#E54C5E;}
.tc-pri.mid{background:#fff4e2;color:#E0A53A;}
.tc-pri.low{background:#eef2f7;color:var(--text-secondary);}
.tc-card-actions{position:absolute;top:10px;right:12px;display:flex;gap:4px;}
.tc-icon-btn{border:1px solid var(--border-color);background:#fff;border-radius:6px;width:26px;height:26px;cursor:pointer;font-size:12px;color:var(--text-secondary);}
.tc-icon-btn:hover{border-color:var(--primary);color:var(--primary);}
.tc-task-title{font-size:15px;font-weight:700;color:var(--text-primary);margin:2px 0 6px;padding-right:54px;}
.tc-task-time{font-size:13px;color:var(--text-secondary);display:flex;align-items:center;gap:8px;margin-bottom:6px;}
.tc-assist-flag{font-size:11px;color:#fff;background:#E0A53A;padding:1px 8px;border-radius:10px;font-weight:600;}
.tc-field{font-size:13px;color:var(--text-secondary);margin-bottom:3px;line-height:1.5;}
.tc-field b{color:var(--text-primary);}
.tc-owner-row{display:flex;align-items:center;gap:6px;margin:8px 0;font-size:13px;}
.tc-status-bar{display:flex;gap:6px;margin-top:10px;}
.tc-sbtn{flex:1;padding:6px;border:1px solid var(--border-color);background:#fff;border-radius:7px;cursor:pointer;font-size:12px;color:var(--text-secondary);transition:.12s;}
.tc-sbtn.active{background:var(--primary);color:#fff;border-color:var(--primary);}
.tc-sbtn:disabled{cursor:not-allowed;opacity:.7;}
.tc-modal{position:fixed;inset:0;background:rgba(15,23,42,.45);display:none;align-items:center;justify-content:center;z-index:9999;}
.tc-modal.show{display:flex;}
.tc-modal-box{background:#fff;border-radius:14px;width:560px;max-width:94vw;max-height:90vh;overflow-y:auto;padding:22px;box-shadow:0 12px 48px rgba(0,0,0,.2);}
.tc-modal-title{font-size:17px;font-weight:800;margin-bottom:16px;}
.tc-form-row{margin-bottom:12px;}
.tc-form-row > label{display:block;font-size:12px;color:var(--text-secondary);margin-bottom:5px;}
.tc-form-row input,.tc-form-row textarea,.tc-form-row select{width:100%;padding:9px 11px;border:1px solid var(--border-color);border-radius:8px;font-size:13px;font-family:inherit;background:#fff;box-sizing:border-box;}
.tc-form-row textarea{resize:vertical;min-height:60px;}
.tc-row-2{display:flex;gap:12px;}
.tc-row-2 .tc-form-row{flex:1;}
.tc-chips{display:flex;gap:8px;flex-wrap:wrap;}
.tc-chip{font-size:13px;padding:7px 14px;border:1px solid var(--border-color);border-radius:20px;background:#fff;cursor:pointer;color:var(--text-secondary);}
.tc-chip.active{color:#fff;border-color:transparent;}
.tc-chip.disabled{opacity:.5;cursor:not-allowed;text-decoration:line-through;}
.tc-checkbox-row{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary);cursor:pointer;}
.tc-checkbox-row input{width:auto;margin:0;}
.tc-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px;}
.tc-report-table{width:100%;border-collapse:collapse;font-size:12px;margin-top:8px;}
.tc-report-table th,.tc-report-table td{border:1px solid var(--border-color);padding:6px 8px;text-align:left;}

/* ===================== 社群 · 进入群聊窗口 ===================== */
.chat-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);display:none;align-items:center;justify-content:center;z-index:9999;}
.chat-overlay.on{display:flex;}
.chat-window{width:960px;height:680px;background:#f5f7fa;border-radius:12px;display:flex;overflow:hidden;box-shadow:0 12px 40px rgba(0,0,0,.25);}
.chat-left{display:flex;flex-direction:column;min-width:0;flex:1;min-height:0;}
.chat-left-h{background:#1f2d3d;color:#fff;padding:12px 18px;display:flex;align-items:center;gap:12px;flex-shrink:0;}
.chat-left-h .chat-avatar{width:38px;height:38px;border-radius:8px;background:#10B981;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex-shrink:0;}
.chat-left-h .chat-info{flex:1;}
.chat-left-h .chat-info .chat-name{font-weight:600;font-size:14px;}
.chat-left-h .chat-info .chat-meta{font-size:11px;color:#aab4c2;margin-top:2px;}
.chat-left-h .chat-close{color:#aab4c2;cursor:pointer;font-size:20px;padding:4px 8px;border-radius:4px;line-height:1;}
.chat-left-h .chat-close:hover{color:#fff;background:rgba(255,255,255,.1);}
.chat-body{flex:1;min-height:0;overflow-y:auto;padding:16px 18px;display:flex;flex-direction:column;gap:10px;background:#f5f7fa;scrollbar-width:thin;scrollbar-color:rgba(16,185,129,.5) transparent;}
.chat-body::-webkit-scrollbar{width:8px;}
.chat-body::-webkit-scrollbar-track{background:transparent;}
.chat-body::-webkit-scrollbar-thumb{background:rgba(16,185,129,.5);border-radius:4px;}
.chat-body::-webkit-scrollbar-thumb:hover{background:rgba(16,185,129,.8);}
.chat-left > div[style*="position:relative"]{display:flex;flex-direction:column;}
.chat-body::-webkit-scrollbar{width:6px;}
.chat-body::-webkit-scrollbar-thumb{background:#d9d9d9;border-radius:3px;}
.chat-body::-webkit-scrollbar-track{background:transparent;}
.chat-sys{text-align:center;font-size:11px;color:var(--text-muted);padding:4px 0;}
/* 消息气泡 */
.chat-msg{display:flex;gap:8px;align-items:flex-start;max-width:78%;position:relative;}
.chat-msg .ava{width:36px;height:36px;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;flex-shrink:0;box-shadow:0 1px 3px rgba(0,0,0,.12);position:relative;overflow:hidden;}
.chat-msg .ava::after{content:"";position:absolute;inset:0;border-radius:50%;background:linear-gradient(180deg,rgba(255,255,255,.18) 0%,rgba(255,255,255,0) 50%,rgba(0,0,0,.08) 100%);pointer-events:none;z-index:1;}
.chat-msg .ava .ava-img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block;}

/* 未读消息条：进入群聊时显示，sticky 在聊天区顶部 */
.chat-unread-banner{position:sticky;top:0;z-index:5;background:linear-gradient(135deg,#10B981 0%,#047857 100%);color:#fff;text-align:center;padding:8px 12px;font-size:13px;font-weight:600;cursor:pointer;border-radius:6px;margin:6px 8px;box-shadow:0 2px 6px rgba(16,185,129,.3);transition:transform .15s;}
.chat-unread-banner:hover{transform:translateY(-1px);box-shadow:0 4px 10px rgba(16,185,129,.4);}
.chat-unread-banner #chatUnreadCount{font-size:15px;margin:0 2px;}


.chat-msg .bubble{padding:8px 12px;border-radius:8px;font-size:13px;line-height:1.6;word-break:break-word;position:relative;cursor:default;user-select:text;}
.chat-msg .meta-l{font-size:10px;color:var(--text-muted);margin-top:3px;}
/* 客户消息（左）: 紫头像 + 白气泡 */
.chat-msg.left{align-self:flex-start;}
.chat-msg.left .ava{background:#10B981;}
.chat-msg.left .bubble{background:#fff;border:1px solid var(--border-color);}
/* 运营者消息（右）: 绿头像 + 浅绿气泡 */
.chat-msg.right{align-self:flex-end;flex-direction:row-reverse;}
.chat-msg.right .ava{background:#10B981;}
.chat-msg.right .bubble{background:#95ec69;color:var(--text-primary);}
/* 敏感词高亮 */
.chat-msg.warn .bubble{background:#fff7e6 !important;border:1px solid #ffc069 !important;}
.chat-msg.warn .bubble .hit-badge{display:block;font-size:10px;color:#d46b08;margin-bottom:4px;font-weight:600;text-transform:uppercase;}
.chat-msg.warn .bubble .hit-word{background:#ffccc7;padding:0 2px;border-radius:2px;}
/* 选中态 + AI 解读浮出按钮 */
.chat-msg.has-select .bubble{box-shadow:0 0 0 2px #10B981;}
.chat-msg .ai-pop{position:absolute;top:-14px;background:#10B981;color:#fff;padding:3px 10px;border-radius:4px;font-size:11px;cursor:pointer;display:none;box-shadow:0 2px 6px rgba(0,0,0,.15);z-index:5;white-space:nowrap;}
.chat-msg.left .ai-pop{right:0;}
.chat-msg.right .ai-pop{left:0;}
.chat-msg.has-select .ai-pop{display:block;}
/* 工具栏 + 输入 */
.chat-tool{padding:8px 18px;background:#fff;border-top:1px solid #e8eaed;display:flex;gap:10px;font-size:12px;color:var(--text-secondary);flex-shrink:0;}
.chat-tool span{cursor:pointer;padding:2px 4px;}
.chat-tool span:hover{color:#10B981;}
.chat-input-row{padding:10px 18px 14px;background:#fff;display:flex;gap:10px;align-items:flex-end;flex-shrink:0;}
.chat-input-row textarea{flex:1;border:1px solid var(--border-color);border-radius:8px;padding:8px 10px;font-size:13px;resize:none;height:58px;font-family:inherit;outline:none;}
/* 聊天窗口：纯查看模式（隐藏发送区，只用于实时监控群聊） */
.chat-window .chat-tool{display:none;}
.chat-window .chat-input-row{display:none;}
.chat-input-row textarea:focus{border-color:#10B981;box-shadow:0 0 0 3px rgba(16,185,129,.1);}
.chat-input-row .send-btn{padding:8px 20px;background:#10B981;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;white-space:nowrap;flex-shrink:0;}
.chat-input-row .send-btn:hover{background:#13804a;}
.chat-input-row .send-btn:disabled{opacity:.6;cursor:not-allowed;}
/* 右侧：AI 解读面板 */
.chat-right{background:#fff;border-left:1px solid #e8eaed;display:flex;flex-direction:column;width:320px;flex-shrink:0;}
.chat-pane-h{padding:14px 16px;border-bottom:1px solid #f0f0f0;font-weight:600;font-size:13px;display:flex;justify-content:space-between;align-items:center;flex-shrink:0;}
.chat-pane-h .pane-clear{font-size:12px;color:var(--text-muted);cursor:pointer;font-weight:400;}
.chat-pane-h .pane-clear:hover{color:#10B981;}
.chat-pane-body{flex:1;overflow-y:auto;padding:14px 16px;}
.chat-pane-body::-webkit-scrollbar{width:6px;}
.chat-pane-body::-webkit-scrollbar-thumb{background:#d9d9d9;border-radius:3px;}
.chat-pane-body::-webkit-scrollbar-track{background:transparent;}
.chat-pane-empty{color:var(--text-muted);font-size:12px;text-align:center;padding:40px 0;line-height:1.8;}
.chat-pane-empty .empty-title{font-size:14px;color:var(--text-secondary);margin-bottom:8px;}
.chat-ai-item{margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid #f5f5f5;}
.chat-ai-item:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0;}
.chat-ai-item .ai-label{color:#10B981;font-weight:600;font-size:12px;margin-bottom:4px;}
.chat-ai-item .ai-text{color:var(--text-primary);font-size:12px;line-height:1.7;white-space:pre-wrap;word-break:break-word;}
.chat-ai-badge{display:inline-block;padding:1px 7px;border-radius:3px;font-size:10px;margin-right:4px;font-weight:600;}
.chat-ai-badge.risk-high{background:#fff1f0;color:#cf1322;border:1px solid #ffa39e;}
.chat-ai-badge.risk-mid{background:#fff7e6;color:#d46b08;border:1px solid #ffd591;}
.chat-ai-badge.risk-low{background:#e7f7f2;color:#0e9f6e;border:1px solid #b7eb8f;}
.chat-pane-actions{padding:12px 16px;border-top:1px solid #f0f0f0;display:none;gap:8px;background:#fff;flex-shrink:0;}
.chat-pane-actions .act-btn{flex:1;text-align:center;padding:8px 0;border-radius:6px;font-size:12px;cursor:pointer;border:1px solid var(--border-color);background:#fff;color:var(--text-secondary);}
.chat-pane-actions .act-btn.primary{background:#10B981;color:#fff;border-color:#10B981;}
.chat-pane-actions .act-btn:hover{opacity:.85;}

/* ── AI 看板（6 块） ── */
.k-section{margin-bottom:16px;padding-bottom:14px;border-bottom:1px dashed #f0f0f0;}
.k-section:last-of-type{border-bottom:none;}
.k-title{font-size:13px;font-weight:600;margin-bottom:10px;color:var(--text-primary);}
.k-metrics{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;}
.k-met{background:#f7f8fa;border-radius:6px;padding:8px 6px;text-align:center;}
.k-met-n{font-size:16px;font-weight:700;color:#10B981;}
.k-met-l{font-size:11px;color:var(--text-muted);margin-top:2px;}
.hot-list,.sens-list,.opp-list,.sug-list{display:flex;flex-direction:column;gap:6px;}
.hot-item,.sens-item{display:flex;align-items:center;gap:8px;font-size:12px;}
.hot-name{min-width:80px;}
.hot-bar{flex:1;height:6px;background:#f0f0f0;border-radius:3px;position:relative;overflow:hidden;}
.hot-bar::before{content:'';position:absolute;left:0;top:0;height:100%;width:var(--w,0%);background:linear-gradient(90deg,#10B981,#52c41a);border-radius:3px;}
.hot-n{color:var(--text-muted);font-size:11px;}
.sens-word{background:#ffccc7;padding:1px 6px;border-radius:3px;color:#cf1322;font-size:12px;}
.sens-times{color:var(--text-muted);font-size:11px;}
.sens-lv{padding:1px 6px;border-radius:3px;font-size:10px;}
.sens-lv.high{background:#fff1f0;color:#cf1322;border:1px solid #ffa39e;}
.sens-lv.medium{background:#fff7e6;color:#d46b08;border:1px solid #ffd591;}
.sens-lv.low{background:#e7f7f2;color:#0e9f6e;border:1px solid #b7eb8f;}
.emo-bar{display:flex;height:24px;border-radius:4px;overflow:hidden;margin-bottom:8px;}
.emo-seg{color:#fff;font-size:11px;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.opp-item{display:flex;gap:6px;font-size:12px;line-height:1.5;padding:4px 0;}
.opp-tag{padding:1px 6px;border-radius:3px;font-size:10px;flex-shrink:0;}
.opp-tag.hot{background:#fff1f0;color:#cf1322;}
.opp-tag.warn{background:#fff7e6;color:#d46b08;}
.opp-tag{background:#f0f5ff;color:#1f6feb;}
.opp-txt{color:var(--text-secondary);font-size:12px;}
.sug-item{font-size:12px;line-height:1.7;color:var(--text-secondary);padding:2px 0;}
/* ===== 提醒功能：@角标 / 未读计数 / 新消息按钮 ===== */
/* 群列表 --- @角标（橙色） */
.grp-badge{display:inline-block;padding:1px 6px;border-radius:3px;font-size:10px;font-weight:700;margin-left:4px;vertical-align:1px;}
.grp-badge.at{background:#fff2e8;color:#fa8c16;border:1px solid #ffd591;}
.grp-badge.unread{background:#fff1f0;color:#f5222d;border:1px solid #ffa39e;min-width:16px;text-align:center;}
.grp-badge.sens{display:inline-block;width:7px;height:7px;border-radius:50%;background:#ffc069;margin-left:4px;vertical-align:0;}
/* 群列表顶部聚合行 */
.grp-mention-bar{padding:8px 12px;background:#fff2e8;border-bottom:1px solid #ffd591;font-size:12px;color:#d46b08;display:none;font-weight:500;}
.grp-mention-bar.on{display:block;}
/* 聊天窗口 --- @消息橙色虚线边框 */
.chat-msg.mentioned .bubble{border:2px dashed #fa8c16 !important;background:#fffbe6 !important;}
/* 聊天窗口 --- 右上角红点 */
.chat-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#f5222d;margin-left:4px;vertical-align:middle;flex-shrink:0;}
/* 新消息浮动按钮 */
.chat-new-msg-btn{position:absolute;right:16px;bottom:120px;background:#10B981;color:#fff;padding:8px 16px;border-radius:20px;font-size:12px;cursor:pointer;display:none;box-shadow:0 2px 8px rgba(16,185,129,.3);z-index:10;animation:fadeInUp .25s;}
.chat-new-msg-btn:hover{background:#13804a;}
.chat-new-msg-btn.on{display:block;}
@keyframes fadeInUp{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}
.tc-report-table th{background:var(--bg-body);color:var(--text-secondary);font-weight:600;}

/* ════════════════════════════════════════════════════════════
   知识库重构 v3 — 前台展示 + 后台管理样式
   ════════════════════════════════════════════════════════════ */

/* Hero 信息条 */
.kb-hero{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);border-radius:10px;padding:20px 24px;color:#fff;display:flex;align-items:center;gap:18px;margin-bottom:14px;}
.kb-hero .kb-hero-ava{width:60px;height:60px;border-radius:10px;background:#fff;display:flex;align-items:center;justify-content:center;font-size:28px;flex-shrink:0;}
.kb-hero .kb-hero-info{flex:1;}
.kb-hero .kb-hero-name{font-size:20px;font-weight:600;margin-bottom:4px;display:flex;align-items:center;gap:8px;}
.kb-hero .kb-hero-sub{font-size:12px;opacity:.85;line-height:1.6;}
.kb-hero .kb-hero-tags{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap;}
.kb-hero .kb-hero-tags span{background:rgba(255,255,255,.2);padding:2px 10px;border-radius:10px;font-size:11px;}
.kb-hero .kb-hero-ops{display:flex;gap:6px;flex-shrink:0;}

/* 核心定位 */
.positioning{background:#e7f7f2;border-left:3px solid var(--primary);padding:12px 16px;border-radius:0 6px 6px 0;font-size:13px;line-height:1.7;color:var(--text-primary);}

/* 详细介绍 */
.detail{font-size:13px;line-height:1.8;color:var(--text-primary);}
.detail h4{font-size:13px;font-weight:600;margin:14px 0 6px;color:var(--primary);}
.detail h4:first-child{margin-top:0;}
.detail p{margin-bottom:8px;color:var(--text-secondary);}
.detail ul{padding-left:20px;margin-bottom:8px;}
.detail ul li{color:var(--text-secondary);margin-bottom:4px;}

/* 标签云 */
.tag-cloud{display:flex;flex-wrap:wrap;gap:6px;}
.tag-cloud .tag{background:#f0f5ff;color:var(--secondary);padding:3px 10px;border-radius:10px;font-size:12px;}
.tag-cloud .tag.green{background:#e7f7f2;color:var(--accent-green);}
.tag-cloud .tag.purple{background:#e7f7f2;color:#10B981;}
.tag-cloud .tag.orange{background:#fff7e6;color:#d46b08;}
.tag-cloud .tag.cyan{background:#e6fffb;color:#13c2c2;}

/* 来源说明 */
.source{background:#fffbe6;border:1px solid #ffe58f;border-radius:6px;padding:10px 14px;font-size:12px;color:#ad6800;line-height:1.7;}

/* 双栏 */
.two-col{display:grid;grid-template-columns:2fr 1fr;gap:14px;}

/* 卡片 */
.card{border-radius:8px;padding:16px 20px;margin-bottom:14px;border:1px solid var(--border-color);background:var(--card-bg);}
.card-h{font-weight:600;font-size:14px;margin-bottom:12px;display:flex;justify-content:space-between;align-items:center;color:var(--text-primary);}

/* 基本信息列表 */
.info-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 18px;}
.info-list .row{display:flex;gap:8px;font-size:13px;}
.info-list .k{color:var(--text-muted);min-width:64px;}
.info-list .v{color:var(--text-primary);font-weight:500;}

/* 列表视图 */
.list-bar{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap;}
.list-bar input,.list-bar select{padding:8px 12px;border:1px solid var(--border-color);border-radius:6px;font-size:13px;background:#fff;}
.list-bar input:focus,.list-bar select:focus{outline:none;border-color:var(--primary);}
.list-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;}

/* 列表卡片 */
.l-card{background:var(--card-bg);border-radius:var(--radius-sm);padding:14px 16px;cursor:pointer;border-left:3px solid var(--primary);}
.l-card:hover{box-shadow:0 2px 8px rgba(0,0,0,.08);}
.l-card .hd{display:flex;align-items:center;gap:10px;margin-bottom:8px;}
.l-card .hd .av{width:40px;height:40px;border-radius:8px;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;}
.l-card .hd .av.purple{background:#10B981;}
.l-card .hd .av.cyan{background:#13c2c2;}
.l-card .hd .av.orange{background:#fa8c16;}
.l-card .hd .nm{font-weight:600;font-size:14px;}
.l-card .hd .sn{font-size:11px;color:var(--text-muted);}
.l-card .sns{font-size:12px;color:var(--text-muted);line-height:1.5;margin-bottom:6px;}
.l-card .l-tags{display:flex;flex-wrap:wrap;gap:5px;}
.l-card .l-tags span{background:#f0f5ff;color:var(--secondary);padding:1px 8px;border-radius:8px;font-size:11px;}

/* 后台管理：列表面板 */
.list-panel .it{padding:10px 14px;cursor:pointer;border-bottom:1px solid #f9f9f9;font-size:13px;}
.list-panel .it:hover{background:#f7f8fa;}
.list-panel .it.on{background:#e6fffb;border-left:3px solid var(--primary);}
.list-panel .it .nm{font-weight:500;}
.list-panel .it .sn{font-size:11px;color:var(--text-muted);margin-top:2px;}

/* 后台管理：表单 */
.form-control{width:100%;padding:7px 10px;border:1px solid var(--border-color);border-radius:5px;font-size:13px;font-family:inherit;margin-bottom:10px;}
.form-control:focus{outline:none;border-color:var(--primary);}
.form-label{display:block;font-size:12px;color:var(--text-secondary);margin-bottom:4px;font-weight:500;}
textarea.form-control{resize:vertical;min-height:80px;}

/* 返回链接 */
.back-link{cursor:pointer;color:var(--primary);font-size:13px;display:inline-flex;align-items:center;gap:4px;margin-bottom:14px;}
.back-link:hover{text-decoration:underline;}
.lnk{color:var(--primary);cursor:pointer;text-decoration:none;}
.lnk:hover{text-decoration:underline;}

/* KPI 卡片增强 */
.stat-card.purple{border-left-color:#10B981;}
.stat-card.cyan{border-left-color:#13c2c2;}
.stat-card.orange{border-left-color:var(--accent-orange);}
.stat-card .stat-card-value{font-size:24px;font-weight:700;margin:4px 0 2px;}
.stat-card .stat-card-delta{font-size:12px;color:var(--text-muted);}

/* ===================== 视频号数据分析（绿色主题，按原型） ===================== */
.vd-topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:var(--card-bg);border:1px solid var(--border-color);border-radius:10px;margin-bottom:16px;gap:12px;flex-wrap:wrap;}
.vd-topbar-left{display:flex;align-items:center;gap:10px;}
.vd-title{font-size:17px;font-weight:700;color:var(--text-primary);}
.vd-sub{font-size:12px;color:var(--text-secondary);margin-top:2px;}
.vd-topbar-actions{display:flex;gap:10px;flex-shrink:0;}
.vd-btn{padding:8px 16px;border-radius:6px;cursor:pointer;font-size:13px;font-weight:600;border:1px solid transparent;font-family:inherit;}
.vd-btn-primary{background:#2BB673;color:#fff;}
.vd-btn-primary:hover{background:#239a62;}
.vd-btn-outline{color:#2BB673;border-color:#2BB673;background:#E8F8F0;}
.vd-btn-outline:hover{background:#d5f3e6;}
.vd-back-btn{padding:6px 12px;border:1px solid var(--border-color);background:var(--card-bg);border-radius:6px;cursor:pointer;font-size:13px;color:var(--text-secondary);font-family:inherit;}
.vd-back-btn:hover{border-color:#2BB673;color:#2BB673;}
.vd-filter-bar{background:var(--card-bg);border:1px solid var(--border-color);border-radius:10px;padding:14px 16px;margin-bottom:16px;}
.vd-filter-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.vd-filter-row + .vd-filter-row{margin-top:10px;}
.vd-f-label{font-size:13px;color:var(--text-secondary);flex-shrink:0;}
.vd-name-tags{display:flex;gap:6px;flex-wrap:wrap;}
.vd-name-tag{padding:5px 14px;border:1px solid var(--border-color);border-radius:16px;font-size:12px;cursor:pointer;color:var(--text-secondary);background:var(--card-bg);}
.vd-name-tag:hover{border-color:#2BB673;color:#2BB673;}
.vd-name-tag.active{background:#2BB673;color:#fff;border-color:#2BB673;}
.vd-f-select{padding:6px 12px;border:1px solid var(--border-color);border-radius:6px;font-size:13px;color:var(--text-primary);outline:none;background:var(--card-bg);cursor:pointer;font-family:inherit;}
.vd-empty-num{font-size:12px;color:var(--text-secondary);margin-left:auto;}
.vd-account-list{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
@media (max-width:1100px){.vd-account-list{grid-template-columns:repeat(2,1fr);}}
@media (max-width:760px){.vd-account-list{grid-template-columns:1fr;}}
.vd-account-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:10px;padding:18px;cursor:pointer;transition:.15s;}
.vd-account-card:hover{border-color:#2BB673;box-shadow:0 4px 14px rgba(43,182,115,.12);}
.vd-ac-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.vd-ac-avatar{width:44px;height:44px;border-radius:50%;background:#E8F8F0;color:#2BB673;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:600;flex-shrink:0;}
.vd-ac-name{font-size:15px;font-weight:600;color:var(--text-primary);}
.vd-ac-badge{font-size:10px;padding:2px 7px;border-radius:4px;color:var(--text-secondary);background:#F3F4F6;margin-left:6px;}
.vd-ac-badge.auth{background:#FEF3C7;color:#B45309;}
.vd-ac-intro{font-size:12px;color:var(--text-secondary);margin-top:3px;}
.vd-ac-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;border-top:1px solid #F3F4F6;padding-top:12px;}
.vd-ac-stat .k{font-size:11px;color:var(--text-secondary);}
.vd-ac-stat .v{font-size:15px;font-weight:600;margin-top:2px;color:var(--text-primary);}
.vd-ac-stat .v.up{color:#2BB673;}
.vd-detail-body{display:grid;grid-template-columns:1fr 360px;gap:16px;align-items:start;}
@media (max-width:1000px){.vd-detail-body{grid-template-columns:1fr;}}
.vd-panel{background:var(--card-bg);border:1px solid var(--border-color);border-radius:10px;padding:20px;margin-bottom:16px;}
.vd-panel .pt{font-size:15px;font-weight:600;margin-bottom:14px;display:flex;align-items:center;gap:8px;color:var(--text-primary);}
.vd-panel .pt .bar{width:4px;height:16px;background:#2BB673;border-radius:2px;}
.vd-ac-info{display:flex;align-items:center;gap:12px;}
.vd-ac-info .vd-ac-avatar{width:56px;height:56px;font-size:24px;}
.vd-ac-info .nm{font-size:17px;font-weight:700;color:var(--text-primary);}
.vd-ac-info .intro{font-size:12px;color:var(--text-secondary);margin-top:4px;}
.vd-core-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
.vd-core-box{background:#F8FAF9;border:1px solid #EEF2EF;border-radius:8px;padding:14px;text-align:center;}
.vd-core-box .k{font-size:12px;color:var(--text-secondary);}
.vd-core-box .v{font-size:20px;font-weight:700;margin-top:6px;color:var(--text-primary);}
.vd-core-box .v.hl{color:#2BB673;}
.vd-field-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:8px;}
.vd-field-table td{padding:9px 0;border-bottom:1px solid #F3F4F6;}
.vd-field-table td:first-child{color:var(--text-secondary);width:30%;}
.vd-field-table td:last-child{font-weight:500;color:var(--text-primary);}
.vd-ai-side{position:sticky;top:80px;}
.vd-ai-report{background:var(--card-bg);border:1px solid #D1F0DF;border-radius:10px;padding:18px;}
.vd-ai-report .ai-tag{display:inline-block;background:#2BB673;color:#fff;font-size:11px;padding:3px 9px;border-radius:4px;margin-bottom:12px;}
.vd-ai-report h4{font-size:14px;margin:12px 0 6px;color:var(--text-primary);}
.vd-ai-report p{font-size:13px;line-height:1.8;color:var(--text-secondary);margin-bottom:6px;}
.vd-ai-report .hl{color:#2BB673;font-weight:600;}
.vd-ai-report .hl-red{color:#DC2626;font-weight:600;}
.vd-ai-metric{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px dashed #E5E7EB;font-size:12px;}
.vd-ai-metric .k{color:var(--text-secondary);}
.vd-ai-metric .v{font-weight:600;color:var(--text-primary);}
.vd-advice-list{margin-top:4px;}
.vd-advice-item{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid #F3F4F6;}
.vd-advice-item:last-child{border-bottom:none;}
.vd-advice-item .num{width:22px;height:22px;border-radius:50%;background:#E8F8F0;color:#2BB673;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;}
.vd-advice-item .txt{font-size:13px;line-height:1.7;color:var(--text-secondary);}

/* ============================================================
   全局玻璃拟态增强层（翡翠绿 #10B981）
   目标：把上一轮未覆盖的实底卡片/容器/弹窗统一玻璃化，
   深色=深空发光玻璃，浅色=克制毛玻璃。仅加 CSS，不改结构/逻辑。
   注：index.html 内联写死样式需用 replace 逐页处理，本层不覆盖内联。
   ============================================================ */

/* ---------- 浅色：克制玻璃（半透明白 + 轻模糊 + 轻翡翠边框） ---------- */
.account-card,.mkt-task-card,.tc-module-card,.tc-task-card,.strategy-card,
.wx-card,.wx-editor,.gs-col,.gs-group-item,.gs-simple-link-item,.gs-link-section,
.yz-table,.yz-insight-item,.vd-account-card,.vd-panel,.vd-core-box,.vd-ai-report,
.vd-topbar,.vd-filter-bar,.l-card,.card,.list-panel,.kb-hero,.positioning,.detail,
.source,.sop-card,.group-item,.chat-msg,.chat-ai-item,.k-met,.k-section,
.preview-phone,.phone-frame,.perm-cell,.form-row,.table-card,.stat-card,
.weiban-config,.mp-selbar,.sop-preview,.chat-modal{
  background:rgba(255,255,255,.72);
  backdrop-filter:blur(14px) saturate(135%);
  -webkit-backdrop-filter:blur(14px) saturate(135%);
  border:1px solid rgba(16,185,129,.16);
  box-shadow:0 6px 20px rgba(15,40,35,.06), inset 0 1px 0 rgba(255,255,255,.6);
}
/* 浅色：弹窗/聊天窗口接近实底（保证可读性），弱玻璃 */
.modal-box,.modal-card,.mkt-modal,.tc-modal-box,.chat-window,.chat-right,
.chat-tool,.chat-input-row,.yz-gate-box{
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(18px) saturate(140%);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  border:1px solid rgba(16,185,129,.18);
}
/* 浅色：hover 克制上浮 + 翡翠绿边（保留原 border-color 逻辑） */
.account-card:hover,.mkt-task-card:hover,.tc-module-card:hover,.tc-task-card:hover,
.strategy-card:hover,.wx-card:hover,.gs-col:hover,.gs-group-item:hover,
.gs-simple-link-item:hover,.yz-table:hover,.vd-account-card:hover,.vd-panel:hover,
.l-card:hover,.card:hover,.list-panel .it:hover,.kb-hero:hover,.sop-card:hover,
.group-item:hover,.k-met:hover,.table-card:hover,.stat-card:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 28px rgba(16,185,129,.12), inset 0 1px 0 rgba(255,255,255,.6);
}
/* 浅色：统一聚焦光晕（翡翠绿） */
.form-control:focus,.list-bar input:focus,.list-bar select:focus,
.vd-f-select:focus,input:focus,select:focus,textarea:focus{
  border-color:var(--primary) !important;
  box-shadow:0 0 0 3px rgba(16,185,129,.15) !important;
  outline:none;
}
/* 浅色：tab 玻璃 */
.tab-btn{background:rgba(255,255,255,.7);border:1px solid rgba(16,185,129,.18);color:var(--text-secondary);}
.tab-btn.active{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;border-color:transparent;box-shadow:0 6px 18px rgba(16,185,129,.22);}

/* ---------- 深色：补全发光玻璃（上一轮只覆盖了少数类） ---------- */
[data-theme="dark"] .mkt-task-card,
[data-theme="dark"] .tc-task-card,
[data-theme="dark"] .strategy-card,
[data-theme="dark"] .wx-card,
[data-theme="dark"] .wx-editor,
[data-theme="dark"] .gs-col,
[data-theme="dark"] .gs-group-item,
[data-theme="dark"] .gs-simple-link-item,
[data-theme="dark"] .gs-link-section,
[data-theme="dark"] .yz-table,
[data-theme="dark"] .yz-insight-item,
[data-theme="dark"] .vd-account-card,
[data-theme="dark"] .vd-panel,
[data-theme="dark"] .vd-core-box,
[data-theme="dark"] .vd-ai-report,
[data-theme="dark"] .vd-topbar,
[data-theme="dark"] .vd-filter-bar,
[data-theme="dark"] .l-card,
[data-theme="dark"] .card,
[data-theme="dark"] .list-panel,
[data-theme="dark"] .kb-hero,
[data-theme="dark"] .positioning,
[data-theme="dark"] .detail,
[data-theme="dark"] .source,
[data-theme="dark"] .sop-card,
[data-theme="dark"] .group-item,
[data-theme="dark"] .chat-msg,
[data-theme="dark"] .chat-ai-item,
[data-theme="dark"] .k-met,
[data-theme="dark"] .k-section,
[data-theme="dark"] .preview-phone,
[data-theme="dark"] .phone-frame,
[data-theme="dark"] .perm-cell,
[data-theme="dark"] .form-row,
[data-theme="dark"] .weiban-config,
[data-theme="dark"] .mp-selbar,
[data-theme="dark"] .sop-preview,
[data-theme="dark"] .chat-modal,
[data-theme="dark"] .mkt-modal,
[data-theme="dark"] .tc-modal-box,
[data-theme="dark"] .chat-window,
[data-theme="dark"] .chat-right,
[data-theme="dark"] .chat-tool,
[data-theme="dark"] .chat-input-row,
[data-theme="dark"] .yz-gate-box{
  background:var(--card-bg);
  backdrop-filter:blur(20px) saturate(140%);
  -webkit-backdrop-filter:blur(20px) saturate(140%);
  border:1px solid var(--border-color);
  box-shadow:var(--shadow-md), inset 0 1px 0 rgba(255,255,255,.05);
}
/* 深色：补全 hover 发光 */
[data-theme="dark"] .mkt-task-card:hover,
[data-theme="dark"] .tc-task-card:hover,
[data-theme="dark"] .strategy-card:hover,
[data-theme="dark"] .wx-card:hover,
[data-theme="dark"] .gs-col:hover,
[data-theme="dark"] .gs-group-item:hover,
[data-theme="dark"] .gs-simple-link-item:hover,
[data-theme="dark"] .yz-table:hover,
[data-theme="dark"] .vd-account-card:hover,
[data-theme="dark"] .vd-panel:hover,
[data-theme="dark"] .l-card:hover,
[data-theme="dark"] .card:hover,
[data-theme="dark"] .list-panel .it:hover,
[data-theme="dark"] .kb-hero:hover,
[data-theme="dark"] .sop-card:hover,
[data-theme="dark"] .group-item:hover,
[data-theme="dark"] .k-met:hover,
[data-theme="dark"] .table-card:hover,
[data-theme="dark"] .stat-card:hover{
  transform:translateY(-3px);
  border-color:rgba(16,185,129,.4);
  box-shadow:var(--shadow-lg), 0 0 26px rgba(16,185,129,.18);
}
/* 深色：聊天窗口/右栏/弹窗保持玻璃但不变换位移 */
[data-theme="dark"] .chat-window:hover,
[data-theme="dark"] .chat-right:hover,
[data-theme="dark"] .modal-box:hover,
[data-theme="dark"] .chat-modal:hover{transform:none;}

/* ---------- 页面标题区：翡翠绿强调（无内联时生效） ---------- */
.page-title-icon{
  background:linear-gradient(135deg,var(--primary),var(--primary-dark)) !important;
  box-shadow:0 6px 18px rgba(16,185,129,.32);
}
.page-header,.page-head{
  border-bottom:1px solid rgba(16,185,129,.14);
  padding-bottom:14px;
}
.page-title{color:var(--text-primary);}

/* ---------- 深色：表单控件白底全局兜底修复 ----------
   覆盖内联 style 写死 background:#fff 与 JS 动态生成的白底文本框（如社群群描述） */
[data-theme="dark"] input:not([type=checkbox]):not([type=radio]):not([type=button]):not([type=submit]):not([type=reset]):not([type=file]),
[data-theme="dark"] textarea,
[data-theme="dark"] select{
  /* 2026-09-20：由「深绿 rgba(15,28,26,.72)」改为全站统一深蓝（var(--card-bg)）——
     原来这个绿调让朋友圈任务弹窗 / 渠道链接弹窗里的输入框与面板"不是一个色"。 */
  background:var(--card-bg) !important;
  color:var(--text-primary) !important;
  border:1px solid var(--border-color) !important;
  caret-color:var(--primary);
}
[data-theme="dark"] input::placeholder,
[data-theme="dark"] textarea::placeholder{
  color:rgba(255,255,255,.35);
}
[data-theme="dark"] input:focus,
[data-theme="dark"] textarea:focus,
[data-theme="dark"] select:focus{
  border-color:var(--primary) !important;
  box-shadow:0 0 0 3px rgba(16,185,129,.16) !important;
}
[data-theme="dark"] select option{
  background:#0f1c1a;
  color:#e8f5f1;
}

/* ---------- 深色：知识库前台（kb-*）玻璃化覆盖 ---------- */
[data-theme="dark"] .kb-card,
[data-theme="dark"] .kb-m-section,
[data-theme="dark"] .kb-lcard,
[data-theme="dark"] .kb-exp-card,
[data-theme="dark"] .kb-mm-card,
[data-theme="dark"] .kb-branchitem,
[data-theme="dark"] .kb-manual-nav,
[data-theme="dark"] .kb-dr,
[data-theme="dark"] .kb-table,
[data-theme="dark"] .kb-th-ops,
[data-theme="dark"] .kb-drawer,
[data-theme="dark"] .sq-desc-box,
[data-theme="dark"] .cs-cl-row,
[data-theme="dark"] .cs-channel-wrap,
[data-theme="dark"] .cs-channel-card,
[data-theme="dark"] .community-card,
[data-theme="dark"] .community-item,
[data-theme="dark"] .vd-item,
[data-theme="dark"] .visit-card{
  background:var(--card-bg) !important;
  border:1px solid var(--border-color) !important;
  box-shadow:var(--shadow-md);
}
[data-theme="dark"] .kb-kv-card{
  background:rgba(255,255,255,.04) !important;
  border:1px solid var(--border-color) !important;
}
[data-theme="dark"] .kb-k,
[data-theme="dark"] .kb-v,
[data-theme="dark"] .kb-sn,
[data-theme="dark"] .kb-sns,
[data-theme="dark"] .kb-count,
[data-theme="dark"] .kb-mod-empty,
[data-theme="dark"] .kb-kv-v,
[data-theme="dark"] .kb-kv-list li,
[data-theme="dark"] .kb-plain-block,
[data-theme="dark"] .kb-plain-block p,
[data-theme="dark"] .kb-plain-block li,
[data-theme="dark"] .kb-detail p,
[data-theme="dark"] .kb-detail ul li,
[data-theme="dark"] .kb-article-body p,
[data-theme="dark"] .kb-doc-md p,
[data-theme="dark"] .kb-doc-md li,
[data-theme="dark"] .kb-dr-body p,
[data-theme="dark"] .kb-dr-body li,
[data-theme="dark"] .kb-exp-desc,
[data-theme="dark"] .kb-mm-name,
[data-theme="dark"] .kb-exp-name,
[data-theme="dark"] .kb-nm,
[data-theme="dark"] .kb-bi-name,
[data-theme="dark"] .kb-doc-name,
[data-theme="dark"] .kb-eg-t,
[data-theme="dark"] .kb-m-sub,
[data-theme="dark"] .kb-doc-md h5{
  color:var(--text-secondary) !important;
}
[data-theme="dark"] .kb-lcard{border-left:3px solid var(--primary) !important;}
[data-theme="dark"] .kb-doc-table,
[data-theme="dark"] .kb-cmp-table{background:transparent !important;}
[data-theme="dark"] .kb-doc-table th{
  background:rgba(16,185,129,.12) !important;
  color:#34d399 !important;
  border-color:var(--border-color) !important;
}
[data-theme="dark"] .kb-doc-table td,
[data-theme="dark"] .kb-cmp-table td{
  border-color:var(--border-color) !important;
  color:var(--text-secondary) !important;
}
[data-theme="dark"] .kb-cmp-table tr:first-child td{
  background:rgba(16,185,129,.10) !important;
  color:#34d399 !important;
}
[data-theme="dark"] .kb-manual-nav a{color:var(--text-secondary) !important;}
[data-theme="dark"] .kb-manual-nav a:hover{background:rgba(16,185,129,.12) !important;}
[data-theme="dark"] .kb-mm-oneliner,
[data-theme="dark"] .kb-dr-lead{
  background:rgba(16,185,129,.10) !important;
  color:#34d399 !important;
}
[data-theme="dark"] .kb-l-tags span{
  background:rgba(16,185,129,.12) !important;
  color:#34d399 !important;
}
[data-theme="dark"] .kb-tag{
  background:rgba(255,255,255,.06) !important;
  color:var(--text-secondary) !important;
}
[data-theme="dark"] .kb-tag.green{
  background:rgba(16,185,129,.14) !important;
  color:#34d399 !important;
}
[data-theme="dark"] .kb-tag.orange{
  background:rgba(238,130,47,.16) !important;
  color:#f0a35e !important;
}
[data-theme="dark"] .kb-source{
  background:rgba(242,186,2,.10) !important;
  border-color:rgba(242,186,2,.35) !important;
  color:#e8c96a !important;
}
[data-theme="dark"] .kb-positioning{
  background:rgba(16,185,129,.10) !important;
  color:var(--text-secondary) !important;
}
[data-theme="dark"] .kb-listbar input,
[data-theme="dark"] .kb-listbar select,
[data-theme="dark"] .kb-search,
[data-theme="dark"] .kb-in,
[data-theme="dark"] .kb-ta{
  background:var(--card-bg) !important;   /* 2026-09-20：同上一处，绿调 → 全站统一深蓝 */
  color:var(--text-primary) !important;
  border:1px solid var(--border-color) !important;
}
/* 深色：紫色装饰统一翡翠绿（内联浅色底/图标） */
[data-theme="dark"] [style*="background:#e7f7f2"]{
  background:rgba(16,185,129,.12) !important;
  color:#34d399 !important;
}
[data-theme="dark"] .kb-av.purple,
[data-theme="dark"] .l-card .hd .av.purple{
  background:var(--primary) !important;
}

/* ---------- 深色：全平台容器/卡片玻璃通用兜底（覆盖内联与动态白底/紫） ---------- */
[data-theme="dark"] .table-card,
[data-theme="dark"] .card,
[data-theme="dark"] .panel,
[data-theme="dark"] .box,
[data-theme="dark"] .modal,
[data-theme="dark"] .drawer,
[data-theme="dark"] .section,
[data-theme="dark"] .kv,
[data-theme="dark"] .stat-card,
[data-theme="dark"] .l-card,
[data-theme="dark"] .nav-module,
[data-theme="dark"] .feature-item,
[data-theme="dark"] .page-block,
[data-theme="dark"] .info-grid,
[data-theme="dark"] .form-card,
[data-theme="dark"] .chart-card,
[data-theme="dark"] .video-card,
[data-theme="dark"] .cs-card,
[data-theme="dark"] .perm-card,
[data-theme="dark"] .task-card,
[data-theme="dark"] .geo-card,
[data-theme="dark"] .m-card,
[data-theme="dark"] .list-card,
[data-theme="dark"] .community-card,
[data-theme="dark"] .kb-card,
[data-theme="dark"] .kb-m-section,
[data-theme="dark"] .kb-lcard,
[data-theme="dark"] .kb-exp-card,
[data-theme="dark"] .kb-mm-card,
[data-theme="dark"] .kb-branchitem,
[data-theme="dark"] .kb-manual-nav,
[data-theme="dark"] .kb-dr{
  background:var(--card-bg) !important;
  border:1px solid var(--border-color) !important;
  box-shadow:var(--shadow-md);
  color:var(--text-primary);
}
/* 内联白底兜底（style 属性写死 #fff 的容器/卡片/图标） */
[data-theme="dark"] [style*="background:#fff"],
[data-theme="dark"] [style*="background: #fff"],
[data-theme="dark"] [style*="background:#ffffff"],
[data-theme="dark"] [style*="background: #ffffff"],
[data-theme="dark"] [style*="background:white"],
[data-theme="dark"] [style*="background: white"]{
  background:rgba(255,255,255,.06) !important;
  border-color:var(--border-color) !important;
}
/* 内联浅色底兜底（旧浅灰底） */
[data-theme="dark"] .metric-card,
[data-theme="dark"] .analysis-card,
[data-theme="dark"] .analysis-block,
[data-theme="dark"] .comparison-item,
[data-theme="dark"] .geo-write-left,
[data-theme="dark"] .geo-write-right,
[data-theme="dark"] .geo-empty-block,
[data-theme="dark"] .cs-wrap,
[data-theme="dark"] .cs-topbar,
[data-theme="dark"] .cs-channels,
[data-theme="dark"] .cs-session-list,
[data-theme="dark"] .cs-chat,
[data-theme="dark"] .cs-panel,
[data-theme="dark"] .filter-bar,
[data-theme="dark"] .dash-card,
[data-theme="dark"] .mini-card,
[data-theme="dark"] .proto-card,
[data-theme="dark"] .geo-card{
  background:var(--card-bg) !important;
  border:1px solid var(--border-color) !important;
  box-shadow:var(--shadow-md);
  color:var(--text-primary);
}
[data-theme="dark"] th,
[data-theme="dark"] thead{
  background:rgba(255,255,255,.04) !important;
  color:var(--text-secondary) !important;
  border-color:var(--border-color) !important;
}
[data-theme="dark"] body{
  background:var(--bg-deep) !important;
  color:var(--text-primary) !important;
}
[data-theme="dark"] .topbar,
[data-theme="dark"] .navbar,
[data-theme="dark"] .header,
[data-theme="dark"] .nav,
[data-theme="dark"] .head{
  background:rgba(255,255,255,.05) !important;
  color:var(--text-primary) !important;
  border-color:var(--border-color) !important;
}
[data-theme="dark"] [class*="card"],
[data-theme="dark"] [class*="box"],
[data-theme="dark"] [class*="panel"]{
  background:var(--card-bg) !important;
  border-color:var(--border-color) !important;
  box-shadow:var(--shadow-md);
  color:var(--text-primary) !important;
}
[data-theme="dark"] table,
[data-theme="dark"] .tbl{background:transparent !important;}
[data-theme="dark"] td{background:transparent !important;color:var(--text-secondary) !important;border-color:var(--border-color) !important;}
[data-theme="dark"] a{color:var(--primary);}
[data-theme="dark"] .muted,
[data-theme="dark"] .sub,
[data-theme="dark"] .text-2,
[data-theme="dark"] .tagline{color:var(--text-secondary) !important;}
[data-theme="dark"] [style*="background:#f8fafc"],
[data-theme="dark"] [style*="background:#fafafa"],
[data-theme="dark"] [style*="background:#f5f7fa"],
[data-theme="dark"] [style*="background:#f3f4f6"],
[data-theme="dark"] [style*="background:#f0f2f5"],
[data-theme="dark"] [style*="background:#fbfcfd"],
[data-theme="dark"] [style*="background:#fcfcfc"],
[data-theme="dark"] [style*="background:#f7f8fa"],
[data-theme="dark"] [style*="background:#f9fafb"],
[data-theme="dark"] [style*="background:#f6f8f9"],
[data-theme="dark"] [style*="background:#f4f7f6"],
[data-theme="dark"] [style*="background:#f7faf8"],
[data-theme="dark"] [style*="background:#f7f8fa"]{
  background:rgba(255,255,255,.05) !important;
}
/* 实底紫色/杂色按钮 → 翡翠绿 */
[data-theme="dark"] [style*="background:#7c3aed"],
[data-theme="dark"] [style*="background:#722ed1"],
[data-theme="dark"] [style*="background:#8b5cf6"],
[data-theme="dark"] [style*="background:#a78bfa"]{
  background:var(--primary) !important;
  color:#fff !important;
}
/* 浅紫底 tag/icon → 翡翠浅底 */
[data-theme="dark"] [style*="background:#f3e8ff"],
[data-theme="dark"] [style*="background:#ede9fe"]{
  background:rgba(16,185,129,.14) !important;
  color:#34d399 !important;
}
[data-theme="dark"] [style*="linear-gradient(145deg,#7c3aed"],
[data-theme="dark"] [style*="linear-gradient(145deg, #7c3aed"],
[data-theme="dark"] [style*="linear-gradient(145deg,#6d28d9"]{
  background:linear-gradient(145deg,#10B981,#0e9f6e) !important;
}

/* ---------- 深色：模块局部变量重映射（治本：覆盖各独立 CSS 的作用域浅色变量） ---------- */
[data-theme="dark"] #page-miniapp{
  --primary:#34D399; --primary-dark:#10B981; --primary-light:rgba(16,185,129,.14);
  --text-main:#e7eefb; --text-secondary:#a9b7d0; --text-tertiary:#64748b; --text-primary:#e7eefb;
  --surface:rgba(255,255,255,.055); --border:rgba(148,180,255,.16); --bg:#070b16;
  --warning-bg:rgba(251,191,36,.12); --warning-border:rgba(251,191,36,.3); --warning-text:#FBBF24;
  --error-text:#F87171;
}
[data-theme="dark"] .vd-dash{
  --vd-ink:#e7eefb; --vd-ink2:#a9b7d0; --vd-line:rgba(148,180,255,.16);
  --vd-bg:#070b16; --vd-card:rgba(255,255,255,.055);
  --vd-brand:#34D399; --vd-brand2:#10B981; --vd-brand3:#6EE7B7;
  --vd-good:#34D399; --vd-bad:#F87171;
}
[data-theme="dark"] #page-cs,
[data-theme="dark"] #page-cs-channel{
  --cs-bg:#070b16; --cs-border:rgba(148,180,255,.16);
  --cs-ink:#e7eefb; --cs-sub:#a9b7d0; --cs-light:rgba(16,185,129,.14);
}

/* ---------- 深色：按钮文字/背景兜底（白底黑字 → 玻璃底浅字） ---------- */
[data-theme="dark"] .btn,
[data-theme="dark"] .page-btn{
  color:var(--text-primary) !important;
  background:rgba(255,255,255,.05) !important;
  border-color:var(--border-color) !important;
}
[data-theme="dark"] .btn.primary,
[data-theme="dark"] .btn-primary{
  background:linear-gradient(120deg,#10B981,#34D399) !important;
  color:#fff !important;
  border-color:transparent !important;
}
[data-theme="dark"] .btn-outline{
  background:rgba(255,255,255,.05) !important;
  color:var(--text-primary) !important;
  border-color:var(--border-color) !important;
}

/* ============================================================
   深色：独立模块 CSS 露白兜底
   原因：各模块 CSS（geo/cs/visit-dash/analytics/smart-query/brand/miniapp-proto）
   无 data-theme 覆盖，且类名不含 card/box/panel 而逃过通用兜底 → 深色下露白。
   本层只改配色，类名/结构/功能一律不动。
   ============================================================ */
[data-theme="dark"] .geo-date-range,
[data-theme="dark"] .geo-dropdown-trigger,
[data-theme="dark"] .geo-kw-input,
[data-theme="dark"] .geo-chip,
[data-theme="dark"] .geo-btn,
[data-theme="dark"] .geo-btn-danger,
[data-theme="dark"] .geo-ai-p,
[data-theme="dark"] .geo-pf-chip,
[data-theme="dark"] .geo-kw-tag,
[data-theme="dark"] .geo-config-right,
[data-theme="dark"] .cs-agent-status,
[data-theme="dark"] .cs-btn,
[data-theme="dark"] .cs-btn-sm,
[data-theme="dark"] .cs-chat-header,
[data-theme="dark"] .cs-msg-system,
[data-theme="dark"] .cs-kb-msg,
[data-theme="dark"] .cs-chat-input,
[data-theme="dark"] .cs-footer,
[data-theme="dark"] .cs-toast,
[data-theme="dark"] .cs-modal,
[data-theme="dark"] .cs-search-row,
[data-theme="dark"] .cs-quick .q,
[data-theme="dark"] .vd-dash .btn,
[data-theme="dark"] .vd-dash .chip,
[data-theme="dark"] .vd-dash .vd-tp-btn,
[data-theme="dark"] .vd-dash .vd-msd-toggle,
[data-theme="dark"] .vd-dash .filter-actions-bottom .btn-outline,
[data-theme="dark"] .vd-dash .icon-btn,
[data-theme="dark"] .vd-dash .kpi,
[data-theme="dark"] .an-filters,
[data-theme="dark"] .an-kpi,
[data-theme="dark"] .sq-confirm,
[data-theme="dark"] .sq-chip,
[data-theme="dark"] .doc-list-item,
[data-theme="dark"] .dir-tag,
[data-theme="dark"] .modal-box-sm,
[data-theme="dark"] .yz-tab,
[data-theme="dark"] .mp-top-tab-btn,
[data-theme="dark"] .tc-icon-btn,
[data-theme="dark"] .tc-sbtn,
[data-theme="dark"] .tc-chip,
[data-theme="dark"] .wx-tb,
[data-theme="dark"] .sop-num,
[data-theme="dark"] .ms-chip,
[data-theme="dark"] .ms-dropdown-toggle,
[data-theme="dark"] .chat-msg.left .bubble{
  background:rgba(255,255,255,.05) !important;
  border:1px solid var(--border-color) !important;
  color:var(--text-primary) !important;
}
[data-theme="dark"] .geo-dropdown-trigger:hover,
[data-theme="dark"] .geo-btn:hover,
[data-theme="dark"] .cs-btn:hover,
[data-theme="dark"] .cs-btn-sm:hover,
[data-theme="dark"] .cs-search-row:hover,
[data-theme="dark"] .vd-dash .btn:hover,
[data-theme="dark"] .vd-dash .icon-btn:hover,
[data-theme="dark"] .dir-tag:hover,
[data-theme="dark"] .tc-icon-btn:hover,
[data-theme="dark"] .wx-tb:hover,
[data-theme="dark"] .yz-tab:hover,
[data-theme="dark"] .ms-chip:hover{
  border-color:rgba(16,185,129,.45) !important;
  color:var(--accent-2) !important;
}
/* 下拉面板 / 弹窗：深空实底（保证可读） */
[data-theme="dark"] .geo-dropdown-menu,
[data-theme="dark"] .mkt-dropdown-panel,
[data-theme="dark"] .vd-dash .vd-msd-panel,
[data-theme="dark"] .ms-dropdown-panel,
[data-theme="dark"] .cs-modal,
[data-theme="dark"] .vd-dash .vd-modal,
[data-theme="dark"] .sq-unresolved{
  background:rgba(17,24,42,.96) !important;
  border:1px solid var(--border-color) !important;
  color:var(--text-primary) !important;
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  box-shadow:var(--shadow-lg) !important;
}
/* 弹窗遮罩 */
[data-theme="dark"] .modal-bg{background:rgba(3,6,14,.66) !important;}

/* JS 动态注入的浅色内联底（补充色值） */
[data-theme="dark"] [style*="background:#fafbfc"],
[data-theme="dark"] [style*="background: #fafbfc"],
[data-theme="dark"] [style*="background:#fafcfb"],
[data-theme="dark"] [style*="background:#f1f5f9"],
[data-theme="dark"] [style*="background:#fffbeb"],
[data-theme="dark"] [style*="background:#fffbe6"],
[data-theme="dark"] [style*="background:#f0f5ff"],
[data-theme="dark"] [style*="background:#e7f7f2"],
[data-theme="dark"] [style*="background:#e6f7f5"],
[data-theme="dark"] [style*="background:#eef1f5"],
[data-theme="dark"] [style*="background:#e5e7eb"]{
  background:rgba(255,255,255,.05) !important;
}

/* 深色：浅色徽标/横条/状态条（小面积）→ 深色同色系 */
[data-theme="dark"] .geo-detect-bar{
  background:rgba(16,185,129,.12) !important;
  border:1px solid rgba(16,185,129,.30) !important;
  color:var(--text-secondary) !important;
}
[data-theme="dark"] .geo-pill{
  background:rgba(224,165,58,.16) !important;
  color:#E0A53A !important;
  border:1px solid rgba(224,165,58,.35) !important;
}
[data-theme="dark"] .geo-placeholder{
  background:rgba(224,165,58,.12) !important;
  border:1px solid rgba(224,165,58,.30) !important;
  color:#E0A53A !important;
}
[data-theme="dark"] .cs-sc{
  background:rgba(255,255,255,.06) !important;
  color:var(--text-secondary) !important;
}
[data-theme="dark"] .vd-btn-outline{
  color:var(--accent-2) !important;
  border:1px solid rgba(16,185,129,.45) !important;
  background:rgba(16,185,129,.12) !important;
}
[data-theme="dark"] .vd-btn-outline:hover{background:rgba(16,185,129,.22) !important;}

/* 深色：小号徽标/头像/优先级标签（同色系深色化，保持语义色可辨） */
[data-theme="dark"] .geo-tag,
[data-theme="dark"] .geo-tag-default,
[data-theme="dark"] .geo-tag-gray{
  background:rgba(255,255,255,.07) !important;
  color:var(--text-secondary) !important;
  border-color:var(--border-color) !important;
}
[data-theme="dark"] .geo-tag-green{
  background:rgba(16,185,129,.14) !important;
  color:#34D399 !important;
  border-color:rgba(16,185,129,.30) !important;
}
[data-theme="dark"] .geo-tag-red{
  background:rgba(229,76,94,.16) !important;
  color:#F87171 !important;
  border-color:rgba(229,76,94,.35) !important;
}
[data-theme="dark"] .geo-tag-orange,
[data-theme="dark"] .geo-tag-yellow{
  background:rgba(224,165,58,.16) !important;
  color:#E0A53A !important;
  border-color:rgba(224,165,58,.35) !important;
}
[data-theme="dark"] .geo-tag-blue{
  background:rgba(56,189,248,.14) !important;
  color:#7DD3FC !important;
  border-color:rgba(56,189,248,.30) !important;
}
[data-theme="dark"] .geo-mini-btn{
  background:rgba(16,185,129,.12) !important;
  color:#34D399 !important;
  border-color:rgba(16,185,129,.35) !important;
}
[data-theme="dark"] .vd-ac-avatar{
  background:rgba(16,185,129,.16) !important;
  color:#34D399 !important;
}
[data-theme="dark"] .vd-ac-badge{
  background:rgba(255,255,255,.08) !important;
  color:var(--text-secondary) !important;
}
[data-theme="dark"] .vd-ac-badge.auth{
  background:rgba(245,158,11,.16) !important;
  color:#FBBF24 !important;
}
[data-theme="dark"] #page-cs .avatar{
  background:rgba(16,185,129,.16) !important;
  color:#34D399 !important;
}
[data-theme="dark"] .cs-badge-status,
[data-theme="dark"] .cs-badge{
  background:rgba(255,255,255,.08) !important;
  color:var(--text-secondary) !important;
}
[data-theme="dark"] .cs-badge-status.waiting{
  background:rgba(245,158,11,.16) !important;
  color:#FBBF24 !important;
}
[data-theme="dark"] .tc-pri.high,
[data-theme="dark"] .mkt-badge.high,
[data-theme="dark"] .mkt-badge.status-overdue{
  background:rgba(229,76,94,.16) !important;
  color:#F87171 !important;
}
[data-theme="dark"] .tc-pri.mid,
[data-theme="dark"] .mkt-badge.medium{
  background:rgba(224,165,58,.16) !important;
  color:#E0A53A !important;
}
[data-theme="dark"] .tc-pri.low,
[data-theme="dark"] .mkt-badge.normal,
[data-theme="dark"] .mkt-badge.status-pending{
  background:rgba(255,255,255,.08) !important;
  color:var(--text-secondary) !important;
}
[data-theme="dark"] .mkt-badge.status-pending{color:var(--text-secondary) !important;}

/* ============================================================
   浅色：知识库页（kb-*/kb-admin 写死深色）适配为亮色
   仅浅色主题生效（:root:not([data-theme="dark"])），类名/结构不动
   ============================================================ */
:root:not([data-theme="dark"]) .kb-proto,
:root:not([data-theme="dark"]) .kb-admin{color:#1f2937;}
:root:not([data-theme="dark"]) .kb-hero{
  background:linear-gradient(135deg,rgba(16,185,129,.10),rgba(16,185,129,.02));
  border:1px solid rgba(16,185,129,.25);color:#0f3d34;
  box-shadow:0 12px 40px rgba(15,40,35,.08),inset 0 1px 0 rgba(255,255,255,.6);
}
:root:not([data-theme="dark"]) .kb-name,
:root:not([data-theme="dark"]) .kb-head,
:root:not([data-theme="dark"]) .kb-card-h,
:root:not([data-theme="dark"]) .kb-pv-h,
:root:not([data-theme="dark"]) .kb-crumb b,
:root:not([data-theme="dark"]) .kb-dt{color:#0f3d34;}
:root:not([data-theme="dark"]) .kb-sub,
:root:not([data-theme="dark"]) .kb-tree-tip,
:root:not([data-theme="dark"]) .kb-crumb,
:root:not([data-theme="dark"]) .kb-tree-item,
:root:not([data-theme="dark"]) .kb-tree-hd{color:#64748b;}
:root:not([data-theme="dark"]) .kb-card,
:root:not([data-theme="dark"]) .kb-table,
:root:not([data-theme="dark"]) .kb-tree,
:root:not([data-theme="dark"]) .kb-branchitem,
:root:not([data-theme="dark"]) .kb-kv-card,
:root:not([data-theme="dark"]) .kb-m-section,
:root:not([data-theme="dark"]) .kb-lcard,
:root:not([data-theme="dark"]) .kb-exp-card,
:root:not([data-theme="dark"]) .kb-mm-card,
:root:not([data-theme="dark"]) .kb-manual-nav,
:root:not([data-theme="dark"]) .kb-dr,
:root:not([data-theme="dark"]) .kb-drawer{
  background:#fff;border:1px solid rgba(0,0,0,.08);
  box-shadow:0 6px 20px rgba(15,40,35,.06);color:#1f2937;
}
:root:not([data-theme="dark"]) .kb-search,
:root:not([data-theme="dark"]) .kb-in,
:root:not([data-theme="dark"]) .kb-listbar input,
:root:not([data-theme="dark"]) .kb-listbar select,
:root:not([data-theme="dark"]) .kb-ta{
  background:#fff;border:1px solid rgba(0,0,0,.12);color:#1f2937;
}
:root:not([data-theme="dark"]) .kb-table thead th{background:#f8fafc;color:#64748b;border-color:rgba(0,0,0,.08);}
:root:not([data-theme="dark"]) .kb-table tbody td{border-color:rgba(0,0,0,.06);color:#334155;}
:root:not([data-theme="dark"]) .kb-tree-item.on{background:linear-gradient(120deg,#10B981,#34D399);color:#fff;}
:root:not([data-theme="dark"]) .kb-positioning{background:rgba(16,185,129,.08);color:#0f3d34;}
:root:not([data-theme="dark"]) .kb-hero-tags span{background:rgba(16,185,129,.14);color:#0e9f6e;}
:root:not([data-theme="dark"]) .kb-ops-btn{background:#f8fafc;border:1px solid rgba(0,0,0,.12);color:#334155;}
:root:not([data-theme="dark"]) .kb-detail h5,
:root:not([data-theme="dark"]) .kb-article-body strong,
:root:not([data-theme="dark"]) .kb-pv-cap,
:root:not([data-theme="dark"]) .kb-doc-table th{color:#0e9f6e;}
:root:not([data-theme="dark"]) .kb-doc-table th{background:rgba(16,185,129,.10);}
:root:not([data-theme="dark"]) .kb-detail hr{border-top-color:rgba(0,0,0,.08);}
:root:not([data-theme="dark"]) .kb-source{background:rgba(251,191,36,.12);border-color:rgba(251,191,36,.4);color:#b45309;}
:root:not([data-theme="dark"]) .kb-dr-lead,
:root:not([data-theme="dark"]) .kb-mm-oneliner{background:rgba(16,185,129,.10);color:#0e9f6e;}
:root:not([data-theme="dark"]) .kb-l-tags span,
:root:not([data-theme="dark"]) .kb-tag.green{background:rgba(16,185,129,.12);color:#0e9f6e;}
:root:not([data-theme="dark"]) .kb-tag{background:rgba(96,165,250,.14);color:#2563eb;}

/* ============================================================
   KPI 统计卡：统一强调色（规范 = 翡翠绿）
   左侧强调色条 border-left 统一 #10B981；右上图标色块统一翡翠绿系
   （覆盖 index.html 内联写的蓝/黄/紫杂色，仅改配色，不动结构）
   ============================================================ */
[data-theme="dark"] .stat-card{border-left-color:#10B981 !important;}
:root:not([data-theme="dark"]) .stat-card{border-left-color:#10B981 !important;}
[data-theme="dark"] .stat-card-icon{background:rgba(16,185,129,.14) !important;color:#34D399 !important;}
:root:not([data-theme="dark"]) .stat-card-icon{background:rgba(16,185,129,.12) !important;color:#0e9f6e !important;}

/* ============================================================
   修复"卡片分层"：通用 [class*="card"] 兜底误伤了卡片内部子块
   （-header/-value/-footer/-title 等名字含 card），导致卡片出现色带。
   此处把子块底色复位为透明，卡片恢复为完整整体。
   ============================================================ */
[data-theme="dark"] [class*="card-header"],
[data-theme="dark"] [class*="card-value"],
[data-theme="dark"] [class*="card-footer"],
[data-theme="dark"] [class*="card-title"],
[data-theme="dark"] [class*="card-head"],
[data-theme="dark"] [class*="card-body"],
[data-theme="dark"] [class*="card-meta"],
[data-theme="dark"] [class*="card-sub"],
[data-theme="dark"] [class*="card-tags"],
[data-theme="dark"] [class*="card-actions"],
[data-theme="dark"] [class*="card-ops"],
[data-theme="dark"] [class*="card-row"],
[data-theme="dark"] [class*="card-foot"],
[data-theme="dark"] [class*="card-hd"],
[data-theme="dark"] [class*="card-desc"],
[data-theme="dark"] [class*="card-line"]{
  background:transparent !important;
  box-shadow:none !important;
}
:root:not([data-theme="dark"]) [class*="card-header"],
:root:not([data-theme="dark"]) [class*="card-value"],
:root:not([data-theme="dark"]) [class*="card-footer"],
:root:not([data-theme="dark"]) [class*="card-title"],
:root:not([data-theme="dark"]) [class*="card-head"],
:root:not([data-theme="dark"]) [class*="card-body"],
:root:not([data-theme="dark"]) [class*="card-meta"],
:root:not([data-theme="dark"]) [class*="card-sub"],
:root:not([data-theme="dark"]) [class*="card-tags"],
:root:not([data-theme="dark"]) [class*="card-actions"],
:root:not([data-theme="dark"]) [class*="card-ops"],
:root:not([data-theme="dark"]) [class*="card-row"],
:root:not([data-theme="dark"]) [class*="card-foot"],
:root:not([data-theme="dark"]) [class*="card-hd"],
:root:not([data-theme="dark"]) [class*="card-desc"],
:root:not([data-theme="dark"]) [class*="card-line"]{
  background:transparent !important;
  box-shadow:none !important;
}

/* 公众号配置：账号卡与备注框深色化（消除白框，含内联写死 #fff 的备注框） */
[data-theme="dark"] .account-card{background:var(--card-bg) !important;border-color:var(--border-color) !important;}
[data-theme="dark"] .account-card.selected{background:rgba(16,185,129,.12) !important;box-shadow:0 0 0 2px var(--primary) inset !important;}
[data-theme="dark"] .account-card textarea,
[data-theme="dark"] .account-grid textarea{
  background:rgba(255,255,255,.06) !important;
  color:var(--text-primary) !important;
  border:1px solid var(--border-color) !important;
}

/* ============================================================
   深色强兜底（置于文件最末，确保最高优先）：账号卡在任何状态都不发白
   ============================================================ */
[data-theme="dark"] .account-card,
[data-theme="dark"] .account-card:hover,
[data-theme="dark"] .account-card.selected,
[data-theme="dark"] .account-grid .account-card{
  background:rgba(255,255,255,.05) !important;
  border:1px solid rgba(255,255,255,.09) !important;
  color:#E6EAF2 !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  box-shadow:0 6px 18px rgba(0,0,0,.45) !important;
}
[data-theme="dark"] .account-card.selected{
  background:rgba(16,185,129,.14) !important;
  border-color:rgba(16,185,129,.55) !important;
}
[data-theme="dark"] .account-card .account-name,
[data-theme="dark"] .account-card .account-id,
[data-theme="dark"] .account-card .account-direction{color:#E6EAF2 !important;}
[data-theme="dark"] .account-card .account-direction{color:#9AA7BD !important;}
[data-theme="dark"] .account-card textarea{color:#E6EAF2 !important;}

/* 公众号「自动回复」列表卡片：改用类名（原为内联 background:#fff，悬停被 JS 重写后兜底失效→变白） */
.ar-acct-card{background:#fff;border:1px solid var(--border-color);border-radius:8px;padding:8px;border-left:3px solid #23B099;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.06);transition:all .15s;}
.ar-acct-name{font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:4px;line-height:1.3;}
.ar-acct-note{width:120px;height:24px;margin-top:4px;padding:2px 6px;border:1px solid var(--border-color);background:#fff;border-radius:4px;font-size:12px;color:#374151;box-sizing:border-box;resize:none;font-family:inherit;line-height:1.4;display:block;}
[data-theme="dark"] .ar-acct-card{background:rgba(255,255,255,.05) !important;border:1px solid rgba(255,255,255,.09) !important;border-left:3px solid #10B981 !important;color:#E6EAF2 !important;box-shadow:0 6px 18px rgba(0,0,0,.45) !important;}
[data-theme="dark"] .ar-acct-card .ar-acct-name{color:#E6EAF2 !important;}
[data-theme="dark"] .ar-acct-card .ar-acct-note{background:rgba(255,255,255,.06) !important;color:#E6EAF2 !important;border-color:var(--border-color) !important;}

/* ===== 菜单栏弹窗：右侧「渠道链接」面板（点选填入左侧子项） ===== */
.ar-chlink{background:#fafcfb;border:1px solid var(--border-color);border-radius:8px;padding:8px 10px;margin-bottom:6px;cursor:pointer;transition:all .15s;}
.ar-chlink:hover{border-color:var(--primary);background:rgba(16,185,129,.07);}
.ar-chlink-name{font-size:12px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ar-chlink-badge{font-size:10px;padding:1px 6px;border-radius:8px;background:rgba(16,185,129,.14);color:#0e9f6e;flex:0 0 auto;}
.ar-chlink-sub{font-size:11px;color:var(--text-muted);word-break:break-all;}
.ar-chtab{padding:3px 10px;font-size:11px;border:1px solid var(--border-color);border-radius:12px;background:var(--card-bg);color:var(--text-secondary);cursor:pointer;}
.ar-chtab.on{background:var(--primary);color:#fff;border-color:transparent;}
[data-theme="dark"] .ar-chlink{background:rgba(255,255,255,.04);border-color:var(--border-color);}
[data-theme="dark"] .ar-chlink:hover{background:rgba(16,185,129,.12);border-color:var(--primary);}
[data-theme="dark"] .ar-chlink-name{color:var(--text-primary);}
[data-theme="dark"] .ar-chlink-sub{color:var(--text-secondary);}
[data-theme="dark"] .ar-chlink-badge{background:rgba(16,185,129,.18);color:#34D399;}
/* 内联白底兜底：补充 rgb() 形式（悬停 JS 重写 style 后 #fff 会变成 rgb(255, 255, 255)） */
[data-theme="dark"] [style*="background: rgb(255, 255, 255)"],
[data-theme="dark"] [style*="background:rgb(255,255,255)"],
[data-theme="dark"] [style*="background:rgb(255, 255, 255)"],
[data-theme="dark"] [style*="background: rgb(255,255,255)"],
[data-theme="dark"] [style*="background: #ffffff"],
[data-theme="dark"] [style*="background:#FFF"],
[data-theme="dark"] [style*="background: #FFF"]{
  background:rgba(255,255,255,.06) !important;
}

/* ============================================================
   深色：所有弹窗改为不透明（去掉半透明+毛玻璃，避免透出背后内容）
   覆盖所有 *modal* 内容容器，排除遮罩层(.mask/.overlay/.modal-bg)
   ============================================================ */
[data-theme="dark"] .modal-box,
[data-theme="dark"] .modal-box-sm,
[data-theme="dark"] .modal-card,
[data-theme="dark"] .tc-modal-box,
[data-theme="dark"] .mkt-modal,
[data-theme="dark"] .cs-modal,
[data-theme="dark"] .yz-gate-box,
[data-theme="dark"] .geo-modal-box,
[data-theme="dark"] .chat-modal,
[data-theme="dark"] .chat-window,
[data-theme="dark"] .chat-right,
[data-theme="dark"] [class*="modal"]:not([class*="mask"]):not([class*="overlay"]):not(.modal-bg):not(.modal-overlay):not([class*="modal-head"]):not([class*="modal-body"]):not([class*="modal-foot"]):not([class*="modal-close"]){
  background:#101a30 !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  opacity:1 !important;
}
/* 弹窗内部区块保持与弹窗同色（避免内部再出现半透明层） */
[data-theme="dark"] .modal-head,
[data-theme="dark"] .modal-body,
[data-theme="dark"] .modal-foot{
  background:transparent !important;
}

/* ============================================================
   深色：内联浅色底「实色深色化」总兜底（置末尾，最高优先）
   覆盖所有常见内联浅色：菜单编辑框 .ar-top(#f7faf9)/.ar-sub(#fff)、
   各种白/浅灰卡、弹窗内区块等。原来只转成"半透明白"→仍发白。
   ============================================================ */
[data-theme="dark"] [style*="background:#fff"],
[data-theme="dark"] [style*="background: #fff"],
[data-theme="dark"] [style*="background:#ffffff"],
[data-theme="dark"] [style*="background: #ffffff"],
[data-theme="dark"] [style*="background:white"],
[data-theme="dark"] [style*="background: white"],
[data-theme="dark"] [style*="background:#FFF"],
[data-theme="dark"] [style*="background: #FFF"],
[data-theme="dark"] [style*="background:rgb(255, 255, 255)"],
[data-theme="dark"] [style*="background: rgb(255, 255, 255)"],
[data-theme="dark"] [style*="background:rgb(255,255,255)"],
[data-theme="dark"] [style*="background: rgb(255,255,255)"],
[data-theme="dark"] [style*="background:#f7faf9"],
[data-theme="dark"] [style*="background:#f8fafc"],
[data-theme="dark"] [style*="background:#f7f8fa"],
[data-theme="dark"] [style*="background:#fafafa"],
[data-theme="dark"] [style*="background:#fafbfc"],
[data-theme="dark"] [style*="background:#fbfcfd"],
[data-theme="dark"] [style*="background:#fcfcfc"],
[data-theme="dark"] [style*="background:#f5f7fa"],
[data-theme="dark"] [style*="background:#f3f4f6"],
[data-theme="dark"] [style*="background:#f1f5f9"],
[data-theme="dark"] [style*="background:#f0f2f5"],
[data-theme="dark"] [style*="background:#f9fafb"],
[data-theme="dark"] [style*="background:#f0fdfa"],
[data-theme="dark"] [style*="background:#e8f3ff"],
[data-theme="dark"] [style*="background:#e9fbf6"],
[data-theme="dark"] [style*="background:#e7f7f2"],
[data-theme="dark"] [style*="background:#ecfdf5"],
[data-theme="dark"] [style*="background:#eef1f5"],
[data-theme="dark"] [style*="background:#fffbe6"],
[data-theme="dark"] [style*="background:#fffbeb"],
[data-theme="dark"] [style*="background:#e5e7eb"],
[data-theme="dark"] [style*="background:#f0faf9"],
[data-theme="dark"] [style*="background: rgb(240, 250, 249)"]{
  background:#101a30 !important;
  color:#E6EAF2 !important;
  border-color:rgba(255,255,255,.09) !important;
}

/* 权限管理 · 编辑角色弹窗：公众号分配区块 */
[data-theme="dark"] #editRoleAccountsSection{
  background:rgba(255,255,255,.05) !important;
  border-color:rgba(16,185,129,.45) !important;
}
[data-theme="dark"] #editRoleAccountsSection,
[data-theme="dark"] #editRoleAccountsSection *{color:#E6EAF2;}
[data-theme="dark"] #editRoleAccountsList{color:#E6EAF2;}
/* 内联写死 background:#fff、无类名的弹窗框（如 #arEditMask/#arAcctFormMask/#dyn-modal）→ 实色不透明 */
[data-theme="dark"] .modal-overlay > div,
[data-theme="dark"] #arEditMask > div,
[data-theme="dark"] #arAcctFormMask > div,
[data-theme="dark"] #dyn-modal > div,
[data-theme="dark"] #csLinkMask > .cs-modal,
[data-theme="dark"] #csSimpleLinkMask > .cs-modal{
  background:#0f1830 !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  opacity:1 !important;
}
/* 弹窗内输入框/文本域：深色实底 */
[data-theme="dark"] #arEditMask input,
[data-theme="dark"] #arEditMask textarea,
[data-theme="dark"] #arAcctFormMask input,
[data-theme="dark"] #arAcctFormMask textarea{
  background:rgba(255,255,255,.06) !important;
  color:#E6EAF2 !important;
  border-color:var(--border-color) !important;
}

/* ============================================================
   全站「假玻璃」统一层（2026-09-20，用户要求：把所有毛玻璃的地方都换成假玻璃）
   ------------------------------------------------------------
   原理：玻璃感 = 内高光(inset) + 细边框 + 柔投影 + 极淡氛围渐变，而不是 backdrop-filter。
        背面模糊在纯色/柔和渐变底上几乎看不出（浅色底还被不透明 --bg 盖住），
        却要每帧重新采样+模糊——卡片面积越大越贵，是滚动/悬停/切页掉帧的主因。
   分层：T1 主卡大块（带翡翠氛围光 + 投影）｜T2 小元素/表单行/气泡（近实心 + 细边，不加投影）
        T3 浮层/弹窗/固定栏/登录卡（近实心，保证可读）｜T4 遮罩与已近实底下拉（只去模糊，背景不动）
   特性：全部**不加 !important** —— 与原声明同优先级、靠"位于文件末尾"生效，
        因此不会压掉各处的内联样式（如透明图片光箱 #case-img-lightbox .modal-box）。
   回滚：删除本段即可，原 backdrop-filter 声明都还在原处。
   注：知识库 kb-* 因其样式写在 index.html 内联块里，统一由 index.html 的「假玻璃试验块」负责。
   ============================================================ */

/* ---------- T1 主卡/大块 ---------- */
:root:not([data-theme="dark"]) .l-card,
:root:not([data-theme="dark"]) .card,
:root:not([data-theme="dark"]) .list-panel,
:root:not([data-theme="dark"]) .table-card,
:root:not([data-theme="dark"]) .stat-card,
:root:not([data-theme="dark"]) .account-card,
:root:not([data-theme="dark"]) .mkt-task-card,
:root:not([data-theme="dark"]) .tc-module-card,
:root:not([data-theme="dark"]) .tc-task-card,
:root:not([data-theme="dark"]) .strategy-card,
:root:not([data-theme="dark"]) .wx-card,
:root:not([data-theme="dark"]) .wx-editor,
:root:not([data-theme="dark"]) .vd-panel,
:root:not([data-theme="dark"]) .vd-account-card,
:root:not([data-theme="dark"]) .vd-core-box,
:root:not([data-theme="dark"]) .vd-ai-report,
:root:not([data-theme="dark"]) .vd-topbar,
:root:not([data-theme="dark"]) .vd-filter-bar,
:root:not([data-theme="dark"]) .filter-bar,
:root:not([data-theme="dark"]) .sop-card,
:root:not([data-theme="dark"]) .sop-preview,
:root:not([data-theme="dark"]) .kb-hero,
:root:not([data-theme="dark"]) .mp-selbar,
:root:not([data-theme="dark"]) .weiban-config,
:root:not([data-theme="dark"]) .chat-modal{
  backdrop-filter:none; -webkit-backdrop-filter:none;
  background:
    radial-gradient(120% 90% at 88% -12%, rgba(16,185,129,.055), transparent 62%),
    linear-gradient(180deg, #ffffff 0%, #fbfdfc 100%);
  border:1px solid rgba(16,185,129,.16);
  box-shadow:0 6px 20px rgba(15,40,35,.07), inset 0 1px 0 rgba(255,255,255,.95);
}
[data-theme="dark"] .l-card,
[data-theme="dark"] .card,
[data-theme="dark"] .list-panel,
[data-theme="dark"] .table-card,
[data-theme="dark"] .stat-card,
[data-theme="dark"] .account-card,
[data-theme="dark"] .mkt-task-card,
[data-theme="dark"] .tc-module-card,
[data-theme="dark"] .tc-task-card,
[data-theme="dark"] .strategy-card,
[data-theme="dark"] .wx-card,
[data-theme="dark"] .wx-editor,
[data-theme="dark"] .vd-panel,
[data-theme="dark"] .vd-account-card,
[data-theme="dark"] .vd-core-box,
[data-theme="dark"] .vd-ai-report,
[data-theme="dark"] .vd-topbar,
[data-theme="dark"] .vd-filter-bar,
[data-theme="dark"] .filter-bar,
[data-theme="dark"] .sop-card,
[data-theme="dark"] .sop-preview,
[data-theme="dark"] .kb-hero,
[data-theme="dark"] .mp-selbar,
[data-theme="dark"] .weiban-config,
[data-theme="dark"] .chat-modal{
  backdrop-filter:none; -webkit-backdrop-filter:none;
  background:
    radial-gradient(120% 90% at 88% -12%, rgba(16,185,129,.12), transparent 62%),
    linear-gradient(180deg, rgba(27,39,64,.97) 0%, rgba(17,26,44,.98) 100%);
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 12px 34px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.07);
}

/* ---------- T2 小元素 / 表单行 / 气泡（近实心 + 细边，不加投影，保持"平"） ---------- */
:root:not([data-theme="dark"]) .form-row,
:root:not([data-theme="dark"]) .perm-cell,
:root:not([data-theme="dark"]) .k-met,
:root:not([data-theme="dark"]) .k-section,
:root:not([data-theme="dark"]) .group-item,
:root:not([data-theme="dark"]) .yz-table,
:root:not([data-theme="dark"]) .yz-insight-item,
:root:not([data-theme="dark"]) .gs-col,
:root:not([data-theme="dark"]) .gs-group-item,
:root:not([data-theme="dark"]) .gs-simple-link-item,
:root:not([data-theme="dark"]) .gs-link-section,
:root:not([data-theme="dark"]) .preview-phone,
:root:not([data-theme="dark"]) .phone-frame,
:root:not([data-theme="dark"]) .positioning,
:root:not([data-theme="dark"]) .detail,
:root:not([data-theme="dark"]) .source,
:root:not([data-theme="dark"]) .chat-msg,
:root:not([data-theme="dark"]) .chat-ai-item{
  backdrop-filter:none; -webkit-backdrop-filter:none;
  background:linear-gradient(180deg, #ffffff 0%, #fcfefd 100%);
  border:1px solid rgba(16,185,129,.14);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95);
}
[data-theme="dark"] .form-row,
[data-theme="dark"] .perm-cell,
[data-theme="dark"] .k-met,
[data-theme="dark"] .k-section,
[data-theme="dark"] .group-item,
[data-theme="dark"] .yz-table,
[data-theme="dark"] .yz-insight-item,
[data-theme="dark"] .gs-col,
[data-theme="dark"] .gs-group-item,
[data-theme="dark"] .gs-simple-link-item,
[data-theme="dark"] .gs-link-section,
[data-theme="dark"] .preview-phone,
[data-theme="dark"] .phone-frame,
[data-theme="dark"] .positioning,
[data-theme="dark"] .detail,
[data-theme="dark"] .source,
[data-theme="dark"] .chat-msg,
[data-theme="dark"] .chat-ai-item{
  backdrop-filter:none; -webkit-backdrop-filter:none;
  background:linear-gradient(180deg, rgba(232,240,255,.07) 0%, rgba(232,240,255,.04) 100%);
  border:1px solid rgba(255,255,255,.10);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07);
}

/* ---------- T3 浮层 / 弹窗 / 固定栏（近实心，保证可读） ---------- */
.modal-box,
.modal-card,
.mkt-modal,
.tc-modal-box,
.chat-window,
.chat-right,
.chat-tool,
.chat-input-row,
.yz-gate-box,
.theme-toggle{
  backdrop-filter:none; -webkit-backdrop-filter:none;
  background:linear-gradient(180deg, #ffffff 0%, #fcfdfd 100%);
  border:1px solid rgba(16,185,129,.18);
  box-shadow:0 10px 30px rgba(15,40,35,.10), inset 0 1px 0 rgba(255,255,255,.95);
}
[data-theme="dark"] .modal-box,
[data-theme="dark"] .modal-card,
[data-theme="dark"] .mkt-modal,
[data-theme="dark"] .tc-modal-box,
[data-theme="dark"] .chat-window,
[data-theme="dark"] .chat-right,
[data-theme="dark"] .chat-tool,
[data-theme="dark"] .chat-input-row,
[data-theme="dark"] .yz-gate-box,
[data-theme="dark"] .theme-toggle,
[data-theme="dark"] .sidebar,
[data-theme="dark"] .header-bar{
  backdrop-filter:none; -webkit-backdrop-filter:none;
  background:linear-gradient(180deg, rgba(19,27,45,.98) 0%, rgba(11,17,30,.99) 100%);
  border-color:rgba(255,255,255,.10);
  box-shadow:0 12px 34px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.06);
}
[data-theme="dark"] .sidebar{border-right:1px solid rgba(255,255,255,.10);box-shadow:none;}
[data-theme="dark"] .header-bar{border-bottom:1px solid rgba(255,255,255,.10);box-shadow:none;}

/* 登录卡（index.html 登录页，2026-11-06 何先生：改为浅色） */
.login-box{
  backdrop-filter:none; -webkit-backdrop-filter:none;
  background:
    radial-gradient(120% 90% at 85% -10%, rgba(16,185,129,.08), transparent 62%),
    #ffffff;
  border:1px solid rgba(16,185,129,.16);
  box-shadow:0 18px 48px rgba(15,23,42,.10), 0 0 40px rgba(16,185,129,.08), inset 0 1px 0 rgba(255,255,255,.9);
}

/* ---------- T4 遮罩 / 已是近实心底的下拉面板（只去模糊，背景一律不动） ---------- */
.modal-overlay,
.modal-bg,
.cs-modal,
.geo-dropdown-menu,
.mkt-dropdown-panel,
.ms-dropdown-panel,
.vd-msd-panel,
.vd-modal,
.sq-unresolved,
.kb-mask{
  backdrop-filter:none; -webkit-backdrop-filter:none;
}

/* ---------- 补充：次级按钮 .btn-ghost（index.html 未加载 brand.css，深色下会退回浏览器默认浅色按钮） ---------- */
.btn-ghost{
  background:linear-gradient(180deg, #ffffff 0%, #fbfdfc 100%);
  border:1px solid rgba(16,185,129,.18);
  color:var(--text-primary);
  border-radius:7px;
  padding:6px 14px;
  font-size:13px;
  cursor:pointer;
}
.btn-ghost:hover{border-color:rgba(16,185,129,.45);}
[data-theme="dark"] .btn-ghost{
  background:linear-gradient(180deg, rgba(232,240,255,.07) 0%, rgba(232,240,255,.04) 100%);
  border:1px solid rgba(255,255,255,.10);
  color:var(--text-primary);
}
[data-theme="dark"] .btn-ghost:hover{border-color:rgba(16,185,129,.45);}

/* ---------- 原生控件/滚动条跟随主题（2026-09-20）----------
   实测：深色下弹出的「新增」表单里，原生 <input type=checkbox>（13×13）仍是浏览器默认白底。
   设 color-scheme 后，复选框/单选框/数字步进器/滚动条等"浏览器自己画"的部分会整体跟随主题，
   不必再逐个元素打补丁。 */
:root[data-theme="dark"]{ color-scheme: dark; }
:root:not([data-theme="dark"]){ color-scheme: light; }
/* 原生复选框/单选框：深色下仍有显式白底（实测任务页「新增」弹窗里的 input[type=checkbox]）→ 用 !important 兜底统一 */
[data-theme="dark"] input[type="checkbox"],
[data-theme="dark"] input[type="radio"]{
  background-color:rgba(255,255,255,.10) !important;
  /* 2026-09-20：原文件在此处被截断（`border:1px solid` 无颜色值、且整块未闭合），已补完。 */
  border:1px solid rgba(255,255,255,.28) !important;
  accent-color:var(--primary) !important;
}
