/* ============================================================
   花生医疗私域运营平台 · main.css
   品牌主色 #30C0B4（青绿） + 辅助 蓝#4874CB / 橙#EE822F /
   黄#F2BA02 / 红#E54C5E。覆盖原型 index.html 的全部组件类。
   ============================================================ */
:root{
  --primary:#34B599;
  --primary-dark:#1a7a65;
  --secondary:#4874CB;
  --accent-orange:#EE822F;
  --accent-green:#07c160;
  --accent-yellow:#F2BA02;
  --accent-red:#E54C5E;
  --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);
}
*{box-sizing:border-box;margin:0;padding:0;}
html,body{height:100%;}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  background:var(--bg);color:var(--text-primary);font-size:14px;line-height:1.6;
}
button{font-family:inherit;cursor:pointer;}
a{color:var(--primary);text-decoration:none;}

/* ===================== 布局 ===================== */
.app-layout{display:flex;min-height:100vh;background:var(--bg);}
.sidebar{width:240px;background:#0c1929;border-right:1px solid rgba(255,255,255,.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:#0c1929;border-bottom:1px solid rgba(255,255,255,.08);
  display:flex;align-items:center;justify-content:space-between;padding:0 20px;
  position:fixed;top:0;left:240px;right:0;z-index:15;transition:left .2s ease;}
.header-bar,.header-bar *{color:#fff !important;}
.header-bar .header-page-title{color:#fff;}
.main-content{margin-left:240px;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(255,255,255,.15);}
.sidebar-brand-icon{width:34px;height:34px;border-radius:8px;
  background:rgba(255,255,255,.25);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:#fff;}
.sidebar-brand-sub{font-size:11px;color:rgba(255,255,255,.6);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:rgba(255,255,255,.80);
  cursor:pointer;border-radius:7px;letter-spacing:.5px;user-select:none;
  transition:background .18s,color .18s,transform .12s;}
.nav-title:hover{background:rgba(255,255,255,.15);color:#fff;}
.nav-title:active{background:rgba(255,255,255,.25);transform:scale(.98);}
.nav-title .nav-arrow{font-size:9px;transition:transform .2s ease;color:rgba(255,255,255,.45);}
.nav-title:hover .nav-arrow{color:rgba(255,255,255,.8);}
.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:rgba(255,255,255,.70);}
.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:rgba(255,255,255,.75);font-size:13px;margin-bottom:1px;
  transition:background .18s,color .18s,transform .12s;cursor:pointer;}
.nav-leaf:hover{background:rgba(255,255,255,.15);color:#fff;}
.nav-leaf:active{background:rgba(255,255,255,.25);transform:scale(.98);}
/* 选中态：白底 + 品牌色字 */
.nav-leaf.active{background:#10b981;color:#fff;
  font-weight:600;box-shadow:0 2px 8px rgba(0,0,0,.25);}
.nav-leaf.active:hover{background:#0ea371;}
.nav-leaf.lvl3{font-size:12.5px;color:rgba(255,255,255,.65);}
.nav-leaf.lvl3:hover{color:#fff;background:rgba(255,255,255,.12);}
.nav-leaf.lvl3.active{color:#fff;background:#10b981;
  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(255,255,255,.08);}
.collapse-btn{width:100%;padding:9px;border:none;border-radius:8px;background:rgba(255,255,255,.06);
  color:rgba(255,255,255,.82);cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center;gap:6px;transition:background .15s;}
.collapse-btn:hover{background:rgba(255,255,255,.14);}
.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:rgba(255,255,255,.8);}
.sidebar.collapsed .nav-leaf.active::before{color:#fff;}
.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:#fff;font-size:19px;cursor:pointer;
  padding:5px 9px;border-radius:8px;line-height:1;transition:background .15s;}
.hamburger:hover{background:rgba(255,255,255,.12);}
.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:#10b981;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:#fff;}
.breadcrumb{display:flex;align-items:center;gap:6px;font-size:13px;margin-left:4px;}
.breadcrumb .bc-item{color:rgba(255,255,255,.55);}
.breadcrumb .bc-item.bc-cur{color:#fff;font-weight:600;}
.breadcrumb .bc-sep{color:rgba(255,255,255,.3);}
.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(255,255,255,.08);}
.header-avatar{width:32px;height:32px;border-radius:50%;background:#10b981;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:#fff;}
.hun-role{font-size:11px;color:rgba(255,255,255,.6);}
.caret{font-size:9px;color:rgba(255,255,255,.6);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:#374151 !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:#374151 !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:#eafaf7;border-color:var(--primary);}
#mpImgDrop.dragover{background:#d1f3ee;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:#fff;}
.header-avatar{width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.25);color:#fff;
  display:flex;align-items:center;justify-content:center;}
.header-logout{font-size:13px;color:rgba(255,255,255,.7);cursor:pointer;transition:color .15s;}
.header-logout:hover{color:#fff;}

/* ===================== 页面通用 ===================== */
.page{display:none;}
.page[style*="display: block"], .page[style*="display:block"]{
  display:block;
  min-height:calc(100vh - 84px);
  position:relative;
  visibility:visible !important;
  opacity:1 !important;
  transform:none !important;
  left:auto !important;
  top:auto !important;
}
.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:var(--card-bg);border:1px solid var(--border-color);border-left:4px solid var(--primary);border-radius:var(--radius-md);padding:18px;}
.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:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--radius-md);margin-bottom:20px;overflow:hidden;}
.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:#eafaf7;}
.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:#e6f7f4;color:var(--primary);}
.tag-default{background:#f1f5f9;color:#64748b;}

/* ===================== 按钮 ===================== */
.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:var(--primary);color:#fff;border-color:var(--primary);}
.btn-primary:hover{background:var(--primary-dark);}
.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:#EE822F;}
.mkt-badge.normal{background:#e8f4f2;color:#1a7a65;}
.mkt-badge.low{background:#eef2f7;color:#475569;}
.mkt-badge.status-done{background:#e6f7ee;color:#07c160;}
.mkt-badge.status-pending{background:#eef2f7;color:#475569;}
.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:248px;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:#eafaf7;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:linear-gradient(135deg,var(--primary-dark) 0%,var(--primary) 50%,#5eead4 100%);padding:20px;}
.login-box{width:380px;max-width:92vw;background:#fff;border-radius:var(--radius-lg);padding:40px 36px;box-shadow:var(--shadow-md);text-align:center;}
.login-logo-icon{width:64px;height:64px;margin:0 auto 16px;border-radius:18px;
  background:linear-gradient(145deg,var(--primary),var(--primary-dark));color:#fff;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:800;}
.login-box h1{font-size:20px;color:var(--text-primary);margin-bottom:28px;}
.login-form{text-align:left;}
.login-field{margin-bottom:16px;}
.login-field label{display:block;font-size:13px;color:var(--text-secondary);margin-bottom:6px;}
.login-field input{width:100%;padding:11px 14px;border:1.5px solid var(--border-color);border-radius:var(--radius-sm);font-size:14px;outline:none;transition:.2s;}
.login-field input:focus{border-color:var(--primary);}
.login-extras{display:flex;justify-content:space-between;margin:4px 0 18px;}
.login-link{font-size:12px;color:var(--text-muted);cursor:pointer;}
.login-link:hover{color:var(--primary);}
.btn-login-main{width:100%;padding:13px;border:none;border-radius:var(--radius-sm);background:var(--primary);color:#fff;font-size:15px;font-weight:600;margin-bottom:12px;}
.btn-login-main:hover{background:var(--primary-dark);}
.btn-register-outline{width:100%;padding:12px;border:1.5px solid var(--border-color);border-radius:var(--radius-sm);background:#fff;color:var(--text-secondary);font-size:14px;}
.login-slogan{margin-top:24px;color:#fff;font-size:14px;opacity:.9;}

/* ===================== 模态框 ===================== */
.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; }

/* 通用卡片容器 */
.card { background: #fff; border: 1px solid var(--border-light); border-radius: var(--radius-md); padding: 18px; }

/* 侧边栏 / 首页快捷入口：无查看权限的模块直接隐藏，不可见也不可点击 */
.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:#eafaf7;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;}

/* ===================== 响应式 ===================== */
@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:#eafaf7;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:#eafaf7;}
.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:#30C0B4;color:#157f76;}
.yz-tab.active{background:#30C0B4;border-color:#30C0B4;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,#eafaf7,#f8fafc);}
.yz-hot-block{position:absolute;border-radius:8px;display:flex;flex-direction:column;justify-content:center;align-items:center;
  color:#0f3d34;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(48,192,180,.25),rgba(48,192,180,.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:#157f76;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:#157f76;margin-bottom:10px;min-height:16px;}
.yz-gate-skip{margin:6px auto 0;display:block;border:1px dashed #30C0B4;background:#eafaf7;color:#157f76;
  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:#EE822F;}
.tc-pri.low{background:#eef2f7;color:#475569;}
.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:#EE822F;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:#18a058;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(48,192,180,.5) transparent;}
.chat-body::-webkit-scrollbar{width:8px;}
.chat-body::-webkit-scrollbar-track{background:transparent;}
.chat-body::-webkit-scrollbar-thumb{background:rgba(48,192,180,.5);border-radius:4px;}
.chat-body::-webkit-scrollbar-thumb:hover{background:rgba(48,192,180,.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:#999;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,#30c0b4 0%,#157f76 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(48,192,180,.3);transition:transform .15s;}
.chat-unread-banner:hover{transform:translateY(-1px);box-shadow:0 4px 10px rgba(48,192,180,.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:#999;margin-top:3px;}
/* 客户消息（左）: 紫头像 + 白气泡 */
.chat-msg.left{align-self:flex-start;}
.chat-msg.left .ava{background:#722ed1;}
.chat-msg.left .bubble{background:#fff;border:1px solid #e8eaed;}
/* 运营者消息（右）: 绿头像 + 浅绿气泡 */
.chat-msg.right{align-self:flex-end;flex-direction:row-reverse;}
.chat-msg.right .ava{background:#18a058;}
.chat-msg.right .bubble{background:#95ec69;color:#1a1a1a;}
/* 敏感词高亮 */
.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 #18a058;}
.chat-msg .ai-pop{position:absolute;top:-14px;background:#18a058;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:#666;flex-shrink:0;}
.chat-tool span{cursor:pointer;padding:2px 4px;}
.chat-tool span:hover{color:#18a058;}
.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 #e8eaed;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:#18a058;box-shadow:0 0 0 3px rgba(24,160,88,.1);}
.chat-input-row .send-btn{padding:8px 20px;background:#18a058;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:#999;cursor:pointer;font-weight:400;}
.chat-pane-h .pane-clear:hover{color:#18a058;}
.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:#999;font-size:12px;text-align:center;padding:40px 0;line-height:1.8;}
.chat-pane-empty .empty-title{font-size:14px;color:#666;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:#18a058;font-weight:600;font-size:12px;margin-bottom:4px;}
.chat-ai-item .ai-text{color:#333;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:#f6ffed;color:#389e0d;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 #d9d9d9;background:#fff;color:#666;}
.chat-pane-actions .act-btn.primary{background:#18a058;color:#fff;border-color:#18a058;}
.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:#333;}
.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:#18a058;}
.k-met-l{font-size:11px;color:#888;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,#18a058,#52c41a);border-radius:3px;}
.hot-n{color:#999;font-size:11px;}
.sens-word{background:#ffccc7;padding:1px 6px;border-radius:3px;color:#cf1322;font-size:12px;}
.sens-times{color:#999;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:#f6ffed;color:#389e0d;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:#555;font-size:12px;}
.sug-item{font-size:12px;line-height:1.7;color:#555;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:#18a058;color:#fff;padding:8px 16px;border-radius:20px;font-size:12px;cursor:pointer;display:none;box-shadow:0 2px 8px rgba(24,160,88,.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%,#52c41a 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:rgba(255,255,255,.2);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:#f6ffed;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:#f6ffed;color:var(--accent-green);}
.tag-cloud .tag.purple{background:#f9f0ff;color:#722ed1;}
.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:#722ed1;}
.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:#722ed1;}
.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:#334155;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:#334155;}
