
/* ===== 白底风格(与CRM主页面UI色调一致：浅蓝·晴空蓝) ===== */
:root{
  --drag-blue:#3a6de3;
  --bg:#eef2f9; --bg2:#ffffff; --card:#ffffff; --card2:#f0f4fb;
  --line:#dbe3f0; --txt:#1f2533; --sub:#5d6b8a; --dim:#9aa5bd;
  --orange:#3370ff; --orange-soft:#e8eef8; --blue-bg:#f2f6ff;
  --green:#2fbf71; --red:#f5616b; --yellow:#f7b500; --blue:#3370ff; --blue-mid:#4d94ff; --purple:#7b5cf0;
  --r:12px; --shadow:0 2px 12px rgba(31,37,51,.08);
  /* ★ 2026-10-14 狼哥：补 --accent（原来全站未定义 → 用 var(--accent) 的按钮背景透明，白字看不见）*/
  --accent:#3370ff; --accent-soft:#e8eef8; --link:#3370ff; --gold:#E8A33D;
}
/* ===== 部门/模块色系统（狼哥09-10定稿）=====
   公共部分(驾驶舱/资产/知识库/HR/应用/设置/交接): 随深浅切换
   业务模块(8): 多巴胺色常驻, 深浅两模式适配 */
:root{
  --dept-pub:#6b8fc4;
  --dept-strategy:#5b6cff; --dept-content:#ff8c42; --dept-intel:#1fa8d3; --dept-brand:#ff6ba9;
  --dept-crm:#2fbf71; --dept-prj:#3370ff; --dept-prod:#a55eea; --dept-fin:#f0a020; --dept-kb:#e8467c;
  --dept-biztpl:#14b8a6;  /* ★ 企信定制（2026-10-04）：青绿，与图标同色 */
  --dop:.14;
}
/* ============================================================
   主题系统（视觉收口）：深浅色 + 字号三档
   只在 :root 换变量值 → 全站组件(引用 var) 自动联动
   ============================================================ */
/* 通用过渡(避免主题切换生硬) */
html,html *{transition-property:background,background-color,border-color,color,box-shadow;transition-duration:.2s}
/* ---- 深色主题: 参考官网 wolfmanai.com 深蓝旗舰色系 ---- */
[data-theme="dark"]{
  --bg:#0a1424; --bg2:#0e1a30; --card:#12203a; --card2:#1a2c4c;
  --line:#22345a; --txt:#e8eefc; --sub:#9db0d0; --dim:#7e91b8;
  --orange:#4da3ff; --orange-soft:#1a2c4c; --blue-bg:#152744;
  --green:#2fbf71; --red:#ff5a6e; --yellow:#ffb020; --blue:#4da3ff; --blue-mid:#35c6ff; --purple:#a78bfa;
  --r:12px; --shadow:0 2px 12px rgba(0,0,0,.35);
  color-scheme:dark;
}
[data-theme="dark"]{
  --dept-pub:#8fa3bd; --dept-kb:#e8467c;
}
/* 深色下把弱化辅助字(c-dim 类)也保证可读 */
[data-theme="dark"] .ov .otrend,[data-theme="dark"] .subhd,[data-theme="dark"] .desc,[data-theme="dark"] .tip{color:var(--sub)}
/* 深色下把常见硬编码浅色块兜底(主要给JS动态生成但没走变量的卡片/输入) */
[data-theme="dark"] input,[data-theme="dark"] textarea,[data-theme="dark"] select{
  background:var(--card);color:var(--txt);border-color:var(--line)
}
[data-theme="dark"] input::placeholder{color:var(--dim)}
[data-theme="dark"] .modal,[data-theme="dark"] [class*="pop"]{background:var(--card);color:var(--txt);border-color:var(--line)}
/* ---- 字号档位: 用 zoom 温和放大整个工作区(等比, 不畸形, 覆盖全部px字号) ----
   s=默认(1.0)  m=1.10  l=1.22 */
html[data-fontsize="m"] .work{zoom:1.10}
html[data-fontsize="l"] .work{zoom:1.22}
/* 主区内部滚动容器跟随(避免zoom后滚动区错位) */
*{margin:0;padding:0;box-sizing:border-box}
/* ===== 内容运营驾驶舱 stats卡 ===== */
.stat-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px 6px;text-align:center;cursor:pointer;transition:.15s}
.stat-card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}
.stat-num{font-size:24px;font-weight:900;line-height:1.1}
.stat-label{font-size:11px;color:var(--sub);margin-top:4px}
.c-org{color:var(--orange)} .c-grn{color:var(--green)} .c-blu{color:var(--blue-mid)}
.c-pur{color:var(--purple)} .c-red{color:var(--red)} .c-pink{color:#e84393}
body{background:var(--bg);color:var(--txt);font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;line-height:1.5;display:flex;height:100vh;overflow:hidden}

/* ===== 工作台侧边栏(可收起) ===== */
.sidebar{--sb-brand-h:71px;width:181px;   /* ★2026-10-12 狼哥：210→181（按 logo 左间距 14px 对称） */background:var(--bg2);border-right:1px solid var(--line);display:flex;flex-direction:column;flex-shrink:0;
  transition:margin-left .3s ease;position:relative;z-index:30}
.sidebar.collapsed{margin-left:-181px}  /* 收起：往左移出 */
/* ===== ★ 2026-09-22 收起态：图标+文字换行模式（仿 LinkAI） ===== */
.sidebar.mini{--sb-brand-h-mini:65px;width:78px}
.sidebar.mini .sb-brand{padding:14px 0;justify-content:center}
.sidebar.mini .sb-brand>div:not(.sb-logo){display:none}
.sidebar.mini .sb-nav{padding:10px 5px}
/* 分组标题：收起时变成一条细分隔线 */
.sidebar.mini .nav-zone-hd{font-size:0;height:1px;background:var(--line);margin:8px 10px 8px;padding:0;opacity:.7}
/* 菜单项：图标在上、文字在下、居中 */
.sidebar.mini .nav-item{flex-direction:column;align-items:center;justify-content:center;gap:3px;
  padding:8px 1px;margin-bottom:4px;border-left:3px solid transparent;text-align:center}
.sidebar.mini .nav-item .nav-txt{flex:none;width:100%;white-space:nowrap;overflow:visible;text-overflow:clip;
  font-size:10px;line-height:1.15;letter-spacing:-.2px}
/* ★ 超长文字（5字以上）自动缩到 9px 并允许换行，避免被裁 */
.sidebar.mini .nav-item .nav-txt.long{font-size:9px;letter-spacing:-.3px;white-space:normal;line-height:1.1}
.sidebar.mini .nav-item .nav-badge{width:24px;height:24px;margin:0}
.sidebar.mini .nav-item .nav-arrow{display:none}
.sidebar.mini .nav-item .badge{margin:0;position:absolute;top:2px;right:4px;padding:0 4px;font-size:9px;line-height:14px}
.sidebar.mini .nav-item .tag{display:none}
.sidebar.mini .nav-item .nav-del{display:none !important}
.sidebar.mini .nav-item{position:relative}
/* 收起时隐藏底部文字署名，只留 logo */
.sidebar.mini .sb-foot{justify-content:center;padding:12px 0}
.sidebar.mini .sb-foot .sf-txt{display:none}
/* 收起时收起按钮保持绝对定位，但居中显示 */
/* 收起态：同一个竖框，位置对齐「工作台/战略咨询」之间的线 */
.sidebar.mini .sb-collapse{right:-7px;left:auto;top:142px;transform:translateY(-50%);bottom:auto;
  width:14px;height:40px;background:var(--bg);border:1px solid var(--line);z-index:32}
/* 收起时：鼠标移入某个菜单项，浮出完整文字提示（补偿小字看不清） */
.sidebar.mini .nav-item::after{content:attr(data-tip);position:absolute;left:calc(100% + 8px);top:50%;
  transform:translateY(-50%) scale(.96);transform-origin:left center;
  background:var(--card);color:var(--txt);border:1px solid var(--line);border-radius:8px;
  padding:5px 10px;font-size:12px;white-space:nowrap;box-shadow:0 6px 20px rgba(0,0,0,.18);
  opacity:0;pointer-events:none;transition:.14s;z-index:9999}
.sidebar.mini .nav-item:hover::after{opacity:1;transform:translateY(-50%) scale(1)}
/* 收起时子菜单(nav-sub)也收起 */
.sidebar.mini .nav-sub{display:none}

.sb-brand{display:flex;align-items:center;gap:10px;padding:16px 14px;border-bottom:1px solid var(--line)}
.sb-logo{width:36px;height:36px;border-radius:9px;overflow:hidden;background:var(--card);border:1px solid var(--line);flex-shrink:0}
.sb-logo img{width:100%;height:100%;object-fit:cover;display:block}
.sb-brand .t{font-weight:700;font-size:15px;color:var(--txt)}
.sb-brand .s{font-size:10px;color:var(--sub)}
.sb-nav{flex:1;padding:10px 8px;overflow-y:auto;display:flex;flex-direction:column}
/* ★ 2026-10-11 狼哥：侧边栏滑动高亮块（hover 时从旧位置滑到新位置，宽高跟随，带回弹） */
.sb-nav{position:relative}                      /* 高亮块定位基准 */
.nav-hl{position:absolute;left:8px;top:0;width:0;height:0;border-radius:9px;
  background:var(--card2);opacity:0;pointer-events:none;z-index:0;
  transition:left .3s cubic-bezier(.33,1.18,.55,1),
             top .3s cubic-bezier(.33,1.18,.55,1),
             width .3s cubic-bezier(.33,1.18,.55,1),
             height .3s cubic-bezier(.33,1.18,.55,1),
             opacity .18s ease}
.nav-hl.show{opacity:1}
.sb-nav .nav-item,.sb-nav .nav-zone,.sb-nav .nav-sub{position:relative;z-index:1}
/* ★ 2026-10-11 狼哥：部门项 hover 用【部门色】底色（原来 transparent 让滑动块承担，
   现在要 hover 显示部门底色 → 只对部门项放行，非部门项仍走滑动块） */
.sb-nav .nav-item:hover:not([data-dept-biz]):not([data-dept-pub]){background:transparent !important}
.sb-nav.dragging .nav-hl{opacity:0 !important}
@media (prefers-reduced-motion:reduce){.nav-hl{transition-duration:.01s !important}}

.sb-nav .grp{font-size:10px;color:var(--dim);padding:10px 10px 4px;letter-spacing:1px;font-weight:600}
.nav-item{display:flex;align-items:center;gap:9px;padding:9px 11px;border-radius:9px;font-size:13px;color:var(--sub);cursor:pointer;margin-bottom:2px;transition:.15s}
/* Markdown 富文本卡片(md-body) 2026-09-07 */
.md-body{width:100%;font-size:13px;line-height:1.75;color:var(--txt);word-break:break-word}
.md-body h1,.md-body h2,.md-body h3,.md-body h4{margin:.6em 0 .3em;line-height:1.35;font-weight:700}
.md-body h1{font-size:1.18em}.md-body h2{font-size:1.12em}.md-body h3{font-size:1.05em}.md-body h4{font-size:1em}
.md-body p{margin:.3em 0}
.md-body b{font-weight:800}
.mark{background:transparent}
.md-body mark.mdhl{background:linear-gradient(transparent 38%,rgba(247,181,0,.42) 38%);color:var(--txt);padding:0 1px;border-radius:2px;font-style:normal}
.md-body b,.md-body strong{font-weight:800}
.md-body em{font-style:italic}.md-body i{font-style:italic}
.md-body code.mdi{background:rgba(127,140,175,.16);padding:1px 5px;border-radius:4px;font-size:11.5px;font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--txt)}
.md-body pre.mdc{background:rgba(127,140,175,.08);border:1px solid rgba(127,140,175,.15);border-radius:8px;padding:9px 12px;overflow-x:auto;margin:.4em 0;color:var(--sub);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.5px;line-height:1.5;opacity:.75}
.md-body pre.mdc code{background:none;padding:0;color:inherit;font-size:12px}
.md-body table.mdt{border-collapse:collapse;margin:.4em 0;width:100%;font-size:12px;display:block;overflow-x:auto}
.md-body table.mdt th,.md-body table.mdt td{border:1px solid var(--line);padding:5px 9px;text-align:left;vertical-align:top}
.md-body table.mdt th{background:var(--card2);font-weight:600;white-space:nowrap}
.md-body ul.mdl,.md-body ol.mdl{margin:.3em 0 .3em 1.3em;padding-left:.4em}
.md-body ul.mdl{list-style:disc}.md-body ol.mdl{list-style:decimal}
.md-body ul.mdl li,.md-body ol.mdl li{margin:.12em 0}
.md-body blockquote.mdq{margin:.4em 0;padding:2px 0 2px 12px;border-left:3px solid var(--line);color:var(--sub);background:rgba(127,140,175,.07);border-radius:0 6px 6px 0}
.md-body hr.mdh{border:none;border-top:1px dashed var(--line);margin:.6em 0}
.md-body a{color:#3370ff;text-decoration:underline}
/* ===== AI 流式卡片(状态条+可折叠工具窗+富文本) 2026-09-08 ===== */
/* ★ 2026-10-01 狼哥：ai-card 在 .spk-tx 里应撑满（原来 86%/60% 限制 → 气泡缩窄+文字异常换行） */
.ai-card{display:flex;flex-direction:column;background:transparent;border:none;border-radius:0;overflow:visible;width:100%;max-width:100%;min-width:0}
/* 独立使用（不在 .spk-tx 里）时才保留原样式 */
.ai-card:not(.spk-tx .ai-card){max-width:86%;min-width:60%;background:var(--card2);border:1px solid var(--line);border-radius:2px 14px 14px 14px}
/* ★ 2026-10-01 狼哥：「处理中」提示框与消息气泡风格统一（原来是虚线边框的异类） */
.ai-status{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;padding:8px 12px;border-radius:10px;border-bottom-left-radius:3px;
  /* ★ 2026-10-17 狼哥：去掉边框（消息卡片上方不要横杠）*/
  font-size:12px;color:var(--sub);background:var(--card);border:none;margin-bottom:6px;
  position:relative;overflow:hidden;transition:opacity .35s ease,max-height .35s ease,padding .35s ease,margin .35s ease}
.ai-status .dot{width:7px;height:7px;border-radius:50%;background:var(--accent,#3370ff);flex:0 0 auto;position:relative;z-index:1}
.ai-status.streaming .dot{animation:aiPulse 1.1s ease-in-out infinite}
.ai-status.done .dot{background:#3ddc97}
.ai-status.err .dot{background:#c9302c}
.ai-status .txt{font-weight:600;color:var(--txt);white-space:nowrap;position:relative;z-index:1}
.ai-status .meta{white-space:nowrap;flex:none;position:relative;z-index:1}
.ai-status .meta{color:var(--dim);font-size:10.5px;margin-left:auto}
@keyframes aiPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.72)}}

/* ★★★ 2026-10-06 狼哥：「处理中」= 大光斑水波纹（8 光斑 · 渐变各异 · 规律不同）
   ── 设计（狼哥拍板，water10 版）──
   · 8 个 390-480px 大光斑（blur 28px）斜向正弦穿越
   · 每个渐变类型不同：radial / linear / conic 混用
   · 每个运动规律不同：45°/60°/90° 斜角 + 单/双正弦 + 圆形轨道
   · 无缝循环（起点/终点都在画外）
   · 结束后（.done）→ 光效停 + 整条淡出消失 */
.ai-status.streaming{background:linear-gradient(180deg,#f2f8ff,#e6f2ff);border-color:#c8ddff}
.ai-status.streaming .ai-water{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.ai-status.streaming .ai-water i{position:absolute;border-radius:50%;filter:blur(28px);left:0;top:50%;opacity:.85}
.ai-status.streaming .ai-water .g1{width:450px;height:450px;margin:-225px 0 0 0;
  background:radial-gradient(circle at 30% 30%, rgba(37,99,235,.65) 0%, rgba(59,130,246,.45) 35%, rgba(37,99,235,0) 72%);
  animation:aiw1 9s ease-in-out infinite}
.ai-status.streaming .ai-water .g2{width:420px;height:420px;margin:-210px 0 0 0;border-radius:40%;
  background:linear-gradient(135deg, rgba(34,211,238,.55) 0%, rgba(125,211,252,.4) 45%, rgba(34,211,238,0) 75%);
  animation:aiw2 12s ease-in-out infinite}
.ai-status.streaming .ai-water .g3{width:480px;height:480px;margin:-240px 0 0 0;
  background:conic-gradient(from 45deg, rgba(96,165,250,.5), rgba(147,197,253,.35), rgba(59,130,246,.5), rgba(96,165,250,.5));
  animation:aiw3 7.5s ease-in-out infinite}
.ai-status.streaming .ai-water .g4{width:390px;height:390px;margin:-195px 0 0 0;
  background:radial-gradient(ellipse at 70% 40%, rgba(99,102,241,.55) 0%, rgba(139,92,246,.3) 50%, rgba(99,102,241,0) 75%);
  animation:aiw4 14s ease-in-out infinite}
.ai-status.streaming .ai-water .g5{width:460px;height:460px;margin:-230px 0 0 0;
  background:radial-gradient(circle at 50% 20%, rgba(45,212,191,.5) 0%, rgba(56,189,248,.35) 45%, rgba(45,212,191,0) 72%);
  animation:aiw5 10.5s ease-in-out infinite}
.ai-status.streaming .ai-water .g6{width:400px;height:400px;margin:-200px 0 0 0;border-radius:45%;
  background:linear-gradient(45deg, rgba(139,92,246,.5) 0%, rgba(96,165,250,.4) 50%, rgba(139,92,246,0) 78%);
  animation:aiw6 13s ease-in-out infinite}
.ai-status.streaming .ai-water .g7{width:440px;height:440px;margin:-220px 0 0 0;
  background:radial-gradient(circle at 60% 60%, rgba(56,189,248,.55) 0%, rgba(37,99,235,.3) 55%, rgba(56,189,248,0) 75%);
  animation:aiw7 11s ease-in-out infinite}
.ai-status.streaming .ai-water .g8{width:430px;height:430px;margin:-215px 0 0 0;
  background:conic-gradient(from 200deg, rgba(96,165,250,.45), rgba(34,211,238,.35), rgba(99,102,241,.45), rgba(96,165,250,.45));
  animation:aiw8 8.5s ease-in-out infinite}
/* 8 种不同运动规律（斜向正弦穿越）*/
@keyframes aiw1{0%{transform:translate(-500px,90px) scale(.85)}25%{transform:translate(-80px,-70px) scale(1.1)}50%{transform:translate(260px,70px) scale(.95)}75%{transform:translate(600px,-60px) scale(1.08)}100%{transform:translate(900px,-95px) scale(.88)}}
@keyframes aiw2{0%{transform:translate(-480px,-85px) scale(.9)}16%{transform:translate(-260px,60px) scale(1.12)}33%{transform:translate(-40px,-65px) scale(.95)}50%{transform:translate(200px,55px) scale(1.15)}66%{transform:translate(440px,-60px) scale(1.0)}83%{transform:translate(660px,50px) scale(1.1)}100%{transform:translate(880px,-80px) scale(.9)}}
@keyframes aiw3{0%{transform:translate(-520px,120px) scale(1)}25%{transform:translate(-100px,-80px) scale(1.15)}50%{transform:translate(240px,90px) scale(.92)}75%{transform:translate(580px,-75px) scale(1.12)}100%{transform:translate(920px,-130px) scale(.95)}}
@keyframes aiw4{0%{transform:translate(880px,110px) scale(.92)}25%{transform:translate(560px,-65px) scale(1.1)}50%{transform:translate(240px,75px) scale(.96)}75%{transform:translate(-60px,-70px) scale(1.12)}100%{transform:translate(-500px,-100px) scale(.9)}}
@keyframes aiw5{0%{transform:translate(-460px,110px) scale(.9)}18%{transform:translate(-140px,-115px) scale(1.18)}38%{transform:translate(120px,115px) scale(.95)}58%{transform:translate(380px,-110px) scale(1.12)}78%{transform:translate(620px,100px) scale(1.0)}100%{transform:translate(880px,-100px) scale(.9)}}
@keyframes aiw6{0%{transform:translate(-480px,-60px) scale(1.05)}33%{transform:translate(0px,50px) scale(1.15)}66%{transform:translate(460px,-55px) scale(.95)}100%{transform:translate(870px,70px) scale(1.08)}}
@keyframes aiw7{0%{transform:translate(-440px,90px) scale(.95) rotate(0deg)}25%{transform:translate(-100px,-90px) scale(1.12) rotate(90deg)}50%{transform:translate(240px,90px) scale(1.0) rotate(180deg)}75%{transform:translate(580px,-85px) scale(1.1) rotate(270deg)}100%{transform:translate(880px,90px) scale(.95) rotate(360deg)}}
@keyframes aiw8{0%{transform:translate(870px,100px) scale(.9)}14%{transform:translate(700px,-70px) scale(1.14)}28%{transform:translate(520px,80px) scale(.94)}42%{transform:translate(340px,-75px) scale(1.12)}56%{transform:translate(160px,85px) scale(.96)}70%{transform:translate(-20px,-70px) scale(1.16)}85%{transform:translate(-220px,75px) scale(.98)}100%{transform:translate(-460px,-90px) scale(.9)}}
.ai-status.done{background:#eefaf3;border-color:#c8f0dc}
/* ★ 结束后：页头（状态条）整条消失，只留卡片内容 */
/* ★★ 2026-10-17 狼哥：gone 时【完全移除】（原来 max-height:0 会留一段空白）*/
.ai-status.gone{opacity:0;max-height:0;padding:0;margin:0;border:0;display:none!important}
.ai-toolsbar{border-bottom:1px solid var(--line);background:var(--bg)}
/* ★2026-09-30 狼哥：Agent 步骤流（工具/思考，就地展开、不折叠、横杠分隔） */
/* ★ 2026-10-06 狼哥：AI 卡片里的「引用块」（回复 XX）—— 在状态条之上 */
.ai-quote{margin:8px 13px 0;padding:6px 10px;background:rgba(0,0,0,.04);
  border-left:3px solid #c9cdd6;border-radius:5px;font-size:11.5px;color:var(--sub);
  line-height:1.5;max-height:52px;overflow:hidden;display:flex;align-items:center;gap:6px}
.ai-quote .aq-ic{flex:none;opacity:.6}
.ai-quote .aq-tx{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* ★★★ 2026-10-06 狼哥：工具步骤 = 【消息卡片内的次级灰底小框】
   · 不是与消息平级 → 嵌入卡片，有灰底 + 边框 + 圆角
   · 收起态：一行「次级灰色条」
   · 展开态：小框内展开（框内滚动，不撑开整张卡） */
.ai-toolbox{margin:6px 13px 0;border:1px solid var(--line);border-radius:8px;
  background:var(--bg);overflow:hidden}
.ai-toolbox:empty{display:none}
.ai-flow{padding:0}
.ai-flow:empty{display:none}
/* 收起态：一行灰条（可点） */
.ai-flow .af-fold{display:flex;align-items:center;gap:6px;padding:6px 10px;
  font-size:11.5px;color:var(--sub);cursor:pointer;user-select:none}
.ai-flow .af-fold:hover{color:var(--txt);background:rgba(0,0,0,.02)}
.ai-flow .af-fold .chev{transition:transform .18s;color:var(--dim);font-size:10px}
.ai-flow.open .af-fold .chev{transform:rotate(90deg)}
.ai-flow .af-fold .cnt{background:var(--card2);border:1px solid var(--line);
  border-radius:20px;padding:0 7px;font-size:10px;color:var(--dim)}
/* 展开态：内容区（限高 + 内滚，不撑开卡片） */
.ai-flow .af-body{padding:0 10px 6px;max-height:140px;overflow-y:auto}
.ai-flow.collapsed .af-body{display:none}
/* 步骤行 */
.af-step{padding:5px 0;border-bottom:1px dashed rgba(0,0,0,.05)}
.af-step:last-child{border-bottom:none}
.af-step .af-hd{display:flex;align-items:center;gap:6px;font-size:11.5px}
.af-step .af-ic{flex:0 0 auto;font-size:12px;line-height:1.2}
.af-step .af-ic.spin{animation:spin 1.4s linear infinite}
.af-step .af-nm{font-weight:600;color:var(--sub);font-size:11px;flex:1;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.af-step .af-state{margin-left:auto;font-size:10.5px;color:var(--dim);flex:0 0 auto}
.af-step[data-st="ok"] .af-state{color:#18a058}
.af-step[data-st="err"] .af-state{color:#e5484d}
/* ★★★ 2026-10-06 狼哥：工具步骤【运行中展开 · 结束后收起】
   · 运行中：每步分行显示（现状）
   · 结束后：整块收起 → 只留一行「🛠 工具 N 次 ▾」（点击可展开）
   · 收益：不再占消息卡片那么多行 */
.af-step{padding:7px 0}
.af-step .af-hd{display:flex;align-items:center;gap:8px;font-size:12.5px}
.af-step .af-ic{flex:0 0 auto;font-size:13px;line-height:1.2}
.af-step .af-ic.spin{animation:spin 1.4s linear infinite}
.af-step .af-nm{font-weight:600;color:var(--txt)}
.af-step .af-state{margin-left:auto;font-size:11px;color:var(--dim);flex:0 0 auto}
.af-step[data-st="ok"] .af-state{color:#18a058}
.af-step[data-st="err"] .af-state{color:#e5484d}
.af-step .af-desc{margin:4px 0 0 21px;font-size:11.5px;color:var(--sub);line-height:1.6}
.af-think{display:flex;align-items:flex-start;gap:8px;padding:7px 0;font-size:12px;color:var(--sub);font-style:italic}
.af-think .af-ic{flex:0 0 auto;font-size:13px}
.af-sep{height:1px;background:linear-gradient(90deg,var(--line),transparent);margin:2px 0}
.ai-tools-hd{display:flex;align-items:center;gap:7px;padding:4px 12px;font-size:11px;color:var(--sub);cursor:pointer;user-select:none}
.ai-tools-hd:hover{color:var(--txt)}
.ai-tools-hd .chev{transition:transform .18s;display:inline-block;color:var(--dim)}
.ai-tools-hd.open .chev{transform:rotate(90deg)}
.ai-tools-hd .cnt{background:var(--card2);border:1px solid var(--line);border-radius:20px;padding:0 7px;font-size:10px;color:var(--dim)}
.ai-tools{margin:0;padding:6px 12px 10px;list-style:none;font-size:11.5px}
.ai-tools li{display:flex;align-items:flex-start;gap:8px;padding:5px 8px;border-radius:7px;margin:3px 0;line-height:1.5;color:var(--txt)}
.ai-tools li .ic{flex:0 0 auto;font-size:12px}
.ai-tools li .ic.spin{animation:spin 1.4s linear infinite}
.ai-tools li .nm{font-weight:600;color:var(--txt)}
.ai-tools li .st{flex:0 0 auto;font-size:10px;font-weight:700;border-radius:4px;padding:0 5px}
.ai-tools li .st.ok{background:rgba(61,220,151,.14);color:#2fbf71}
.ai-tools li .st.run{background:rgba(84,160,255,.16);color:#3370ff}
.ai-tools li .st.err{background:rgba(201,48,44,.14);color:#c9302c}
.ai-tools li .desc{color:var(--sub);font-size:10.5px;margin-top:1px}
@keyframes spin{to{transform:rotate(360deg)}}
.ai-err{display:flex;gap:8px;align-items:flex-start;padding:9px 13px;color:#c9302c;font-size:12px;line-height:1.6}
.nav-item:hover{background:var(--card2);color:var(--txt)}
.nav-item.on{background:var(--orange-soft);color:var(--orange);font-weight:600}
/* ===== 部门模块色 · 底色（狼哥09-10 常驻 → 2026-10-11 改为仅 hover/选中）=====
   ★ 2026-10-11 狼哥：去掉常驻部门底色，只在 hover 或选中时出现（更干净） */
.nav-item{border-left:3px solid transparent}
.nav-item[data-dept-biz]{border-left-color:var(--mc)}
.nav-item[data-dept-biz]:hover{background:color-mix(in srgb, var(--mc) calc(var(--dop)*100%), transparent)}
.nav-item[data-dept-biz].on{background:color-mix(in srgb, var(--mc) calc(var(--dop)*175%), transparent);color:var(--txt);font-weight:700}
.nav-item[data-dept-pub]{border-left-color:var(--dept-pub)}
.nav-item[data-dept-pub]:hover{background:color-mix(in srgb, var(--dept-pub) calc(var(--dop)*.55*100%), transparent)}
.nav-item[data-dept-pub].on{background:color-mix(in srgb, var(--dept-pub) calc(var(--dop)*1.1*100%), transparent);color:var(--txt);font-weight:700}
[data-theme="dark"] .nav-item[data-dept-biz]:hover{background:color-mix(in srgb, var(--mc) calc(var(--dop)*1.5*100%), transparent)}
[data-theme="dark"] .nav-item[data-dept-pub]:hover{background:color-mix(in srgb, var(--dept-pub) calc(var(--dop)*.7*100%), transparent)}
.nav-item .badge{background:var(--red);color:#fff;font-size:10px;padding:1px 7px;border-radius:20px;margin-left:auto;font-weight:700}
/* ★2026-09-22 市场营销：生产任务徽标（三态：环形进度 / 数字 / 未读点）
   ★ 用独立类名，不占用 .badge（那是「交接」在用的） */
.nav-item .prod-task-badge{margin-left:auto;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;
  width:18px;height:18px;position:relative}
.nav-item .prod-task-badge .ptb-ring{width:18px;height:18px;display:block}
.nav-item .prod-task-badge .ptb-num{min-width:16px;height:16px;padding:0 4px;border-radius:8px;
  background:var(--mc,var(--purp,#a55eea));   /* ★2026-09-24 跟模块主题色 */
  color:#fff;font-size:10px;line-height:16px;font-weight:700;font-variant-numeric:tabular-nums;text-align:center}
.nav-item .prod-task-badge .ptb-dot{width:8px;height:8px;border-radius:50%;
  background:var(--mc,var(--red,#e5484d));   /* ★2026-09-24 跟模块主题色 */
  box-shadow:0 0 0 0 rgba(229,72,77,.55);animation:ptbBreath 1.8s ease-in-out infinite}
@keyframes ptbBreath{0%,100%{box-shadow:0 0 0 0 rgba(229,72,77,.55);opacity:1}50%{box-shadow:0 0 0 5px rgba(229,72,77,0);opacity:.75}}
/* ★ 2026-10-11 狼哥：数字变化 → 上下滚动切换 */
.nav-item .prod-task-badge{overflow:hidden}
.nav-item .prod-task-badge .ptb-roll{display:block;animation:ptbRollUp .32s cubic-bezier(.22,.61,.36,1)}
@keyframes ptbRollUp{0%{transform:translateY(105%);opacity:.2}100%{transform:translateY(0);opacity:1}}
/* ★ 2026-10-11 狼哥：进入该页 → 徽标缩小消失 */
.nav-item .prod-task-badge.ptb-shrink{animation:ptbShrink .34s cubic-bezier(.4,0,.2,1) forwards}
@keyframes ptbShrink{0%{transform:scale(1);opacity:1}60%{transform:scale(1.25);opacity:.7}100%{transform:scale(0);opacity:0}}
/* ★ 2026-10-11 狼哥：列表项「有更新」状态点呼吸 */
.prod-task-pop .ptp-item .ptp-newdot{width:7px;height:7px;border-radius:50%;flex:none;margin-right:6px;
  background:var(--mc,#a55eea);box-shadow:0 0 0 0 rgba(165,94,234,.5);animation:ptpDotBreath 1.6s ease-in-out infinite}
@keyframes ptpDotBreath{0%,100%{box-shadow:0 0 0 0 rgba(165,94,234,.5);opacity:1}50%{box-shadow:0 0 0 4px rgba(165,94,234,0);opacity:.6}}
/* 悬浮任务面板 */
.prod-task-pop{position:fixed;z-index:9998;width:290px;background:var(--card,#fff);border:1px solid var(--line,#e6e8ee);
  /* ★2026-09-25 狼哥：透明 hover 桥 —— 向左延伸 12px 不可见热区，
     鼠标从导航项横移到面板时【不会经过真空】→ 不再中途消失 */
  box-sizing:border-box;
  border-radius:12px;box-shadow:0 12px 32px rgba(16,24,40,.14);padding:10px 12px;font-size:12.5px;color:var(--txt,#1f2430);
  opacity:0;transform:translateY(4px);pointer-events:none;transition:opacity .16s ease,transform .16s ease}
.prod-task-pop.show{opacity:1;transform:translateY(0);pointer-events:auto}
/* 透明热区桥：向左 14px（覆盖 nav-item 与面板之间的缝隙），高度同面板 */
.prod-task-pop::before{content:'';position:absolute;left:-14px;top:0;width:14px;height:100%;background:transparent}
.prod-task-pop.suck{opacity:0;transform:translateY(-10px) scale(.8);transition:opacity .24s,transform .26s cubic-bezier(.6,-.15,.4,1)}
.prod-task-pop .ptp-hd{display:flex;align-items:center;justify-content:space-between;font-weight:700;font-size:12px;
  color:var(--dim,#8891a4);margin-bottom:8px}
.prod-task-pop .ptp-item{padding:7px 0;border-top:1px solid var(--line,#eef0f5)}
.prod-task-pop .ptp-item:first-of-type{border-top:none}
.prod-task-pop .ptp-t{display:flex;align-items:center;gap:6px;font-weight:600;font-size:12.5px}
.prod-task-pop .ptp-t .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:170px}
.prod-task-pop .ptp-t .st{font-size:11px;color:var(--dim,#8891a4);font-weight:500;flex-shrink:0}
.prod-task-pop .ptp-bar{height:4px;border-radius:2px;background:var(--line,#eef0f5);margin-top:6px;overflow:hidden}
.prod-task-pop .ptp-bar i{display:block;height:100%;border-radius:2px;background:var(--mc,var(--purp,#a55eea));transition:width .4s ease}
.prod-task-pop .ptp-ft{margin-top:9px;padding-top:8px;border-top:1px solid var(--line,#eef0f5);text-align:center;
  font-size:12px;color:var(--mc,var(--purp,#a55eea));font-weight:600;cursor:pointer}
.prod-task-pop .ptp-ft:hover{text-decoration:underline}
.prod-task-pop .ptp-ok{color:#2fbf71;font-weight:600}
.prod-task-pop .ptp-err{color:var(--red,#e5484d);font-weight:600}
/* ★2026-09-25 狼哥：超过3条面板内滚动 + 条目可点 */
.prod-task-pop .ptp-list{max-height:none}
.prod-task-pop .ptp-list.ptp-scroll{max-height:186px;overflow-y:auto;overscroll-behavior:contain;
  margin:0 -4px;padding:0 4px}
.prod-task-pop .ptp-list.ptp-scroll::-webkit-scrollbar{width:5px}
.prod-task-pop .ptp-list.ptp-scroll::-webkit-scrollbar-thumb{background:var(--line,#e6e8ee);border-radius:3px}
.prod-task-pop .ptp-list.ptp-scroll::-webkit-scrollbar-thumb:hover{background:var(--mc,var(--purp,#a55eea))}
.prod-task-pop .ptp-cnt{font-size:10.5px;font-weight:600;color:var(--dim,#8891a4);
  background:var(--line,#eef0f5);border-radius:7px;padding:1px 6px}
.prod-task-pop .ptp-item{cursor:pointer;border-radius:6px;transition:background .14s}
.prod-task-pop .ptp-item:hover{background:color-mix(in srgb, var(--mc,#a55eea) 9%, transparent)}

/* ===== 侧边栏三态（狼哥09-19《出厂标配》）：已开通 / 换出(locked) / 未开通(demo) ===== */
/* 换出模块：灰显只读（数据仍在，Agent 不能唤醒） */
.nav-item[data-ent-state="locked"]{opacity:.62;filter:grayscale(.85)}
.nav-item[data-ent-state="locked"]:hover{opacity:.85}
.nav-item[data-ent-state="locked"] .nav-txt::after{content:" 🔒";font-size:9px;opacity:.8}
/* 未开通(演示)模块：更淡 */
.nav-item[data-ent-state="demo"]{opacity:.5}
.nav-item[data-ent-state="demo"]:hover{opacity:.8}
/* 侧边栏悬停删除钮（仅未开通/换出可删） */
.nav-item .nav-del{display:none;margin-left:auto;font-size:11px;color:var(--dim);padding:0 3px;border-radius:4px;flex:none}
.nav-item:hover .nav-del{display:inline-block}
.nav-item .nav-del:hover{background:var(--red);color:#fff}
.nav-item .tag{font-size:9px;background:var(--orange-soft);color:var(--orange);padding:1px 6px;border-radius:20px;margin-left:auto;font-weight:600}
/* ===== 侧边栏徽章 + 分区 + 拖拽（狼哥09-10）===== */
.nav-item .nav-badge{width:22px;height:22px;border-radius:50%;flex-shrink:0;display:block}
.nav-item .nav-txt{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-zone{margin-bottom:6px}
.nav-divider{height:1px;background:var(--line);margin:10px 11px}
/* 预留区：后续买的模块加在这里（更多 与 应用商店 之间） */
.nav-reserve{flex:1;min-height:60px}
.nav-zone-bottom{padding-top:0;border-top:none}
.nav-zone-hd{font-size:9.5px;color:var(--dim);font-weight:800;letter-spacing:1px;padding:8px 11px 4px;opacity:.8}
/* ★2026-09-24：默认 pointer（利于点击），只有按住拖动时才 grab（狼哥要求） */
.nav-item[draggable="true"]{cursor:pointer}
.nav-item[draggable="true"]:active{cursor:grabbing}
.nav-item.dragging{cursor:grabbing !important}
/* 拖动排序（狼哥09-16升级：飞书蓝提示线 + 置灰透明 + FLIP动效） */
.nav-item.dragging{
  opacity:.4;
  background:#eef1f6 !important;
  color:#9aa4b2 !important;
  border-radius:8px}
.nav-item.dragging .nav-badge,.nav-item.dragging .nav-txt{filter:grayscale(1);opacity:.7}
.nav-item.drag-over::before,.nav-item.drag-under::after{
  content:"";position:absolute;left:0;right:0;height:3px;
  background:var(--drag-blue);border-radius:1.5px;z-index:5}
.nav-item.drag-over::before{top:-2px}
.nav-item.drag-under::after{bottom:-2px}
.nav-item.flip-anim{transition:transform .55s cubic-bezier(.34,.8,.36,1) !important}
.nav-zone.drag-hi{background:var(--orange-soft);border-radius:8px}
/* 「更多」收纳 */
.nav-zone[data-zone="more"] .nav-item[data-m]{display:none}
.nav-zone[data-zone="more"] .nav-item[data-m].show-inline{display:flex}
.nav-more-fly{position:fixed;z-index:9999;min-width:150px;background:var(--card);
  border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 34px rgba(0,0,0,.2);
  padding:6px;opacity:0;transform:translateY(-4px);pointer-events:none;transition:opacity .16s,transform .16s}
.nav-more-fly.show{opacity:1;transform:translateY(0);pointer-events:auto}
.nav-more-fly .mf-head{font-size:9.5px;color:var(--dim);font-weight:800;letter-spacing:1px;padding:4px 8px 6px}
.nav-more-fly .mf-item{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:7px;
  font-size:12.5px;color:var(--sub);cursor:pointer;border-left:3px solid transparent}
/* ★弹窗内图标尺寸约束（狼哥09-17：收纳后图标被撑爆） */
.nav-more-fly .mf-item>.mf-ico{width:20px;height:20px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;font-size:13px;line-height:1}
.nav-more-fly .mf-item>.mf-ico img,.nav-more-fly .mf-item>.mf-ico svg{width:20px;height:20px;border-radius:50%;display:block;object-fit:contain}
.nav-sub-ico{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;margin-right:6px}
.nav-sub-ico img,.nav-sub-ico svg{width:16px;height:16px;border-radius:50%;display:block;object-fit:contain}
.nav-more-fly .mf-item:hover{background:var(--card2);color:var(--txt)}
.nav-more-fly .mf-soon{margin-left:auto;font-size:9px;color:var(--dim);background:var(--card2);padding:1px 6px;border-radius:20px}
.nav-sub{display:none;padding-left:6px}
.nav-sub.open{display:block}
.nav-sub-item{display:flex;align-items:center;gap:8px;padding:7px 10px 7px 22px;border-radius:7px;
  font-size:12.5px;color:var(--sub);cursor:pointer;margin-bottom:2px}
.nav-sub-item:hover{background:var(--card2);color:var(--txt)}
.nav-sub-item .sub-soon{margin-left:auto;font-size:9px;color:var(--dim);background:var(--card2);padding:1px 6px;border-radius:20px}
.nav-more-fly .mf-empty{font-size:11px;color:var(--dim);padding:8px;line-height:1.6}
.nav-item .nav-arrow{margin-left:auto;font-size:9px;color:var(--t3);transition:transform .18s;flex:none}
.nav-item .drag-handle{display:none}
/* 业务方向·自用/客户模式 */
.grp-sw{color:var(--orange);cursor:pointer;font-weight:700;padding:0 6px;border-radius:6px;border:1px solid var(--line);background:var(--card);font-size:10px;letter-spacing:0}
.sb-bizmode{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--dim);padding:12px 10px 4px;letter-spacing:1px;font-weight:600}
/* 组织树部门项: 选中态深浅自适应 */
.ot-dept{border-left:3px solid transparent;background:transparent;color:var(--txt);font-weight:500;border-radius:8px}
.ot-dept:hover{background:var(--orange-soft)}
.ot-dept.on{border-left:3px solid var(--blue);background:var(--orange-soft);font-weight:800;color:var(--txt)}
.ot-dept-n{color:var(--dim);background:var(--card2)}
.ot-dept.on .ot-dept-n{color:var(--blue);background:color-mix(in srgb, var(--blue) 12%, transparent)}
[data-theme="dark"] .ot-dept.on{background:rgba(77,163,255,.18)}
[data-theme="dark"] .ot-dept:hover{background:rgba(77,163,255,.10)}
[data-theme="dark"] .ot-dept-n{background:rgba(78,108,153,.20)}
[data-theme="dark"] .ot-dept.on .ot-dept-n{background:rgba(77,163,255,.25);color:#8fbcff}

/* 人力资源岗位可视化 */
.hr-flex{display:flex;gap:10px;flex-wrap:wrap}
.hr-stat{flex:1;min-width:120px;background:var(--card2);border-radius:10px;padding:12px;text-align:center}
.hr-stat .n{font-size:22px;font-weight:700;color:var(--orange)}
.hr-stat .t{font-size:11px;color:var(--dim);margin-top:3px}
.hr-tbl{width:100%;border-collapse:collapse;font-size:12px}
.hr-tbl th{background:var(--card2);color:var(--dim);font-weight:600;padding:9px 12px;text-align:left;white-space:nowrap;border-bottom:1px solid var(--line)}
.hr-tbl td{padding:9px 12px;border-bottom:1px solid var(--line);color:var(--sub)}
.hr-tbl tr:hover td{background:var(--card2)}
.hr-tbl .ph{color:var(--orange);font-weight:600}
.hr-tbl .plt{font-size:10px;background:var(--orange-soft);color:var(--orange);padding:1px 8px;border-radius:20px;white-space:nowrap}
.hr-tbl .mgr{font-size:12px;background:var(--card2);color:var(--sub);padding:1px 8px;border-radius:20px;white-space:nowrap}
.hr-empty{text-align:center;color:var(--dim);padding:24px}
.hr-edit{border:none;background:var(--orange-soft);color:var(--orange);border-radius:6px;padding:2px 8px;cursor:pointer;font-size:12px}
.hr-edit.hr-del{background:#fde8e8;color:#e5484d}
.hr-dot{font-size:13px;margin-right:4px;vertical-align:middle}
.hr-dot-on{color:#2fbf71}
.hr-dot-mid{color:#f5a623}
.hr-dot-off{color:#f5616b}
.hr-conn{white-space:nowrap;text-align:center}
.hr-plat{display:inline-block;background:var(--card2);border-radius:6px;padding:2px 4px;margin-right:4px;vertical-align:middle}
.hr-plat img{display:block}
.hr-plat-off{opacity:.35;filter:grayscale(1)}
.hr-inp{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-size:13px;margin:4px 0 10px;color:var(--txt);background:var(--card)}
.hr-inp:focus{outline:none;border-color:var(--orange)}
.hr-agent{font-size:12px;background:#eef4ff;color:#3b6ef5;padding:1px 7px;border-radius:20px;margin-left:5px;white-space:nowrap}
.biz-mode-btn{border:none;background:transparent;color:var(--sub);font-size:12px;font-weight:600;padding:4px 16px;border-radius:7px;cursor:pointer;font-family:inherit}
.biz-mode-btn.on{background:var(--orange);color:#fff}
/* ★ 2026-10-06 狼哥：侧栏对话列表（模块独立 · 最多5个 · 悬浮操作 · 未读点） */
.sb-chats{margin-top:8px;padding:0 8px}
.sb-chats-hd{display:flex;align-items:center;justify-content:space-between;padding:8px 6px 4px}
.sb-chats-hd .t{font-size:10px;color:var(--dim);letter-spacing:1px;font-weight:600}
.sb-chats-hd .nw{width:20px;height:20px;border-radius:6px;border:1px solid var(--line);background:var(--bg);color:var(--sub);font-size:13px;line-height:1;cursor:pointer;display:none;align-items:center;justify-content:center;padding:0}
.sb-chats:hover .sb-chats-hd .nw{display:inline-flex}
/* ★ 2026-10-06 狼哥：收起/展开（悬浮才出现）+ 只在对话视图显示 */
.sb-chats-hd .tg{width:20px;height:20px;border-radius:6px;border:1px solid var(--line);background:var(--bg);color:var(--sub);font-size:12px;line-height:1;cursor:pointer;display:none;align-items:center;justify-content:center;padding:0;transition:transform .2s}
.sb-chats:hover .sb-chats-hd .tg{display:inline-flex}
.sb-chats.collapsed .sb-chats-list{display:none}
.sb-chats.collapsed .sb-chats-hd .tg{transform:rotate(-90deg)}
/* 只在对话视图显示（其他界面隐藏） */
.sb-chats{display:none!important}
body.sb-chats-on .sb-chats{display:block!important}
.sb-chats-hd .nw:hover{border-color:var(--accent);color:var(--accent)}
.sb-chats-list{max-height:230px;overflow-y:auto;overflow-x:hidden}
.sb-chat{position:relative;display:flex;align-items:center;gap:7px;padding:7px 8px;border-radius:8px;cursor:pointer;transition:background .12s;margin-bottom:1px}
.sb-chat:hover{background:rgba(120,130,150,.08)}
.sb-chat.on{background:rgba(40,141,245,.10)}
.sb-chat .ct{flex:1;min-width:0;font-size:12px;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-chat.on .ct{color:var(--accent);font-weight:600}
.sb-chat .udot{width:7px;height:7px;border-radius:50%;background:#2f8df5;flex:none;display:none}
.sb-chat.unread .udot{display:block}
.sb-chat .cact{display:none;align-items:center;gap:2px;flex:none}
.sb-chat:hover .cact{display:flex}
.sb-chat .cact button{width:18px;height:18px;border:0;background:transparent;color:var(--dim);cursor:pointer;border-radius:4px;font-size:12px;line-height:1;padding:0;display:inline-flex;align-items:center;justify-content:center}
.sb-chat .cact button:hover{background:rgba(120,130,150,.15);color:var(--sub)}
.sb-chat .pin{font-size:9px;color:var(--accent);flex:none}
.sb-chat-menu{position:fixed;z-index:10080;background:var(--card,#fff);border:1px solid var(--line);border-radius:9px;box-shadow:0 8px 26px rgba(0,0,0,.16);padding:4px;min-width:110px;display:none}
.sb-chat-menu .mi{padding:7px 10px;border-radius:6px;font-size:12px;color:var(--sub);cursor:pointer;white-space:nowrap}
.sb-chat-menu .mi:hover{background:rgba(120,130,150,.10)}
.sb-chat-menu .mi.danger{color:#e5484d}
.sb-foot{padding:14px 14px 18px;font-size:11px;color:var(--dim);margin-top:6px;border-top:1px solid var(--line);
  display:flex;align-items:center;gap:8px}
.sb-foot .sf-logo{width:22px;height:22px;flex-shrink:0;opacity:.9}
.sb-foot .sf-logo img{width:100%;height:100%;object-fit:cover;display:block}
.sb-foot .sf-txt{font-size:10.5px;color:var(--dim);letter-spacing:.3px;white-space:nowrap}
aside.mini .sb-foot{justify-content:center;padding:12px 0}
aside.mini .sb-foot .sf-txt{display:none}
/* 收起时悬浮按钮 */
.sb-toggle{position:fixed;left:0;top:20px;width:34px;height:34px;border-radius:0 8px 8px 0;background:var(--orange);color:#fff;border:none;cursor:pointer;z-index:40;
  display:flex;align-items:center;justify-content:center;font-size:16px;box-shadow:0 2px 8px rgba(255,159,67,.4);transition:.3s}
.sidebar:not(.collapsed) ~ .sb-toggle{opacity:0;pointer-events:none;transform:translateX(-30px)}  /* 展开时隐藏 */
/* 收起控制箭头(在侧边栏内) */
/* ★2026-10-01 狼哥：照搬知识库 kb-side-collapse —— 完整圆角竖框，扣在分隔线上
   （狼哥 09-26 对知识库的原话：「还是有点太不明显了，做个完整的框呢？」）
   ① 有边框 + 有底色（平时就看得见）② 竖框 18×44 跨在分隔线上、上下居中
   ③ hover 加深（蓝框蓝底）④ 白底盖住底下的 1px 分隔线 */
/* ★2026-10-01 狼哥：不要框！就一个纯箭头（原来「框里还有个小框」很丑）
   位置不变：还在那条分隔线上 */
/* ★2026-10-01 狼哥：外框（扁纵向线框）+ 里面【双尖角线箭头 «】
   照搬知识库 kb-side-collapse（权威源 /opt/wolfmanai-front/enterprise-kb/kb-tree.css:429）
   ★ 箭头必须是 « » 线箭头，不是 ◀ ▶ 实心三角（实心会显得"框里塞了个块"很丑）*/
.sb-collapse{position:absolute;right:-9px;top:142px;transform:translateY(-50%);z-index:31;
  width:18px;height:44px;padding:0;
  border:1px solid var(--line);border-radius:9px;background:var(--bg);
  color:var(--dim);font-size:13px;font-weight:600;cursor:pointer;line-height:1;
  display:flex;align-items:center;justify-content:center;
  transition:.14s;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.sb-collapse:hover{color:#2563d9;border-color:#2563d9;background:#eef4ff;
  box-shadow:0 2px 8px rgba(37,99,217,.22)}


/* ===== 主工作区 ===== */
.main{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}
/* ★2026-09-23 通用模块全屏：模块 postMessage MOD_FULLSCREEN → 隐侧栏+页头，iframe 铺满
   （配套：.mv-contain 原高 calc(100vh - 54px) 会矮 54px；.ceo-win z-index:960 会浮在 iframe 上） */
body.mod-immersive #wbSidebar{display:none !important}
body.mod-immersive .topbar{display:none !important}
body.mod-immersive .main{margin-left:0 !important}
body.mod-immersive .mv-contain{height:100vh !important}
body.mod-immersive .ceo-win{display:none !important}
body.mod-immersive #ceoBall{z-index:1 !important}
body.mod-immersive{overflow:hidden}
.topbar{position:relative;height:54px;background:var(--bg2);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;padding:0 20px;flex-shrink:0}
.crumb{font-size:13px;color:var(--sub);display:flex;align-items:center;gap:0;min-width:0}.crumb b{color:var(--txt)}/* ★2026-09-21 狼哥：分栏名+介绍 上移到标题栏（模块可 postMessage 覆盖） */.crumb .crumb-seg{color:var(--txt);font-weight:700;margin-left:6px;white-space:nowrap}.crumb .crumb-sub{color:var(--dim);font-size:12px;margin-left:10px;max-width:min(46vw,560px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-left:10px;border-left:1px solid var(--line)}
.topbar .spacer{flex:1}
@media(max-width:1080px){#gsWrap{position:static !important;transform:none !important;margin:0 auto}}
@media(max-width:820px){#gsInput{width:150px !important}}
/* ★2026-09-21 上传进度环（标题栏 & 对话加号 共用） */
.upq-list{display:none;position:absolute;top:32px;right:0;width:min(340px,86vw);background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 32px rgba(0,0,0,.20);padding:8px 10px;z-index:9999;overflow-y:auto;overscroll-behavior:contain}
.upq.hover .upq-list{display:block}
.upq-err{font-size:11px;color:#f5222d;line-height:1.4;margin-top:3px;word-break:break-all;opacity:.92}
.upq-row{padding:5px 0;border-bottom:1px solid rgba(127,127,127,.10)}
.upq-row:last-of-type{border-bottom:none}
.upq-l1{display:flex;align-items:center;gap:6px;margin-bottom:4px}
.upq-nm{flex:1;min-width:0;font-size:11.5px;color:var(--txt);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.upq-spd{flex:0 0 auto;font-size:10.5px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.upq-acts{flex:0 0 auto;display:flex;align-items:center;gap:2px}
.upq-btn{width:18px;height:18px;line-height:1;padding:0;border:1px solid var(--line);background:transparent;color:var(--dim);border-radius:5px;font-size:9px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .14s}
.upq-btn:hover{background:rgba(51,112,255,.10);color:#3370ff;border-color:rgba(51,112,255,.35)}
.upq-btn:disabled{opacity:.28;cursor:default}
.upq-btn.upq-del:hover{background:rgba(245,34,45,.10);color:#f5222d;border-color:rgba(245,34,45,.35)}
.upq-l2{display:flex;align-items:center;gap:8px}
.upq-bar{flex:1;height:4px;background:rgba(127,127,127,.18);border-radius:3px;overflow:hidden}
.upq-bar i{display:block;height:100%;border-radius:3px;transition:width .18s linear}
.upq-pct{flex:0 0 38px;text-align:right;font-size:10.5px;font-weight:600;font-variant-numeric:tabular-nums}
.upq-sum{margin-top:6px;padding-top:6px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:8px}
.upq-sumtxt{font-size:11px;color:var(--dim);text-align:left}
.upq-clear{font-size:10.5px;color:var(--dim);background:transparent;border:1px solid var(--line);border-radius:5px;padding:1px 7px;cursor:pointer}
.upq-clear:hover{color:#f5222d;border-color:rgba(245,34,45,.35);background:rgba(245,34,45,.06)}
.upq-list::-webkit-scrollbar{width:6px}.upq-list::-webkit-scrollbar-thumb{background:rgba(127,127,127,.3);border-radius:3px}
@media(max-width:900px){.upq-nm{font-size:11px}}
.top-ic{background:var(--card);border:1px solid var(--line);padding:6px 12px;border-radius:8px;font-size:12px;color:var(--sub)}
.top-ic.click{cursor:pointer}.top-ic.click:hover{color:var(--orange);border-color:var(--orange)}
/* ★ 2026-09-24 积分充值（仿即梦：左档位 + 右二维码）*/
.rc-wrap{display:flex;gap:18px;min-height:340px}
.rc-left{flex:1;min-width:0;display:flex;flex-direction:column;gap:9px;max-height:56vh;overflow-y:auto;padding-right:4px}
.rc-hint{font-size:11.5px;color:var(--dim);margin-bottom:2px}
.rc-item{position:relative;border:1.5px solid var(--line);border-radius:11px;padding:12px 15px;cursor:pointer;transition:.14s;background:var(--card)}
.rc-item:hover{border-color:var(--accent)}
.rc-item.on{border-color:var(--accent);background:linear-gradient(120deg,rgba(51,112,255,.07),rgba(51,112,255,.01));box-shadow:0 2px 10px rgba(51,112,255,.10)}
.rc-hot{position:absolute;top:10px;right:12px;font-size:10px;font-weight:700;color:#fff;background:var(--accent);padding:1px 8px;border-radius:5px}
.rc-i-nm{font-size:13.5px;font-weight:800;color:var(--txt)}
.rc-i-ds{font-size:11px;color:var(--dim);margin-top:2px}
.rc-i-pr{display:flex;align-items:baseline;gap:1px;margin-top:6px;color:var(--gold)}
.rc-i-pr .c{font-size:12.5px;font-weight:700}
.rc-i-pr .v{font-size:24px;font-weight:800;letter-spacing:-.5px}
.rc-i-get{font-size:12px;color:var(--txt);margin-top:2px}
.rc-i-get b{color:var(--gold);font-weight:800}
.rc-right{width:290px;flex:none;align-self:flex-start;border:1px solid var(--line);border-radius:13px;background:var(--bg2);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;padding:18px;min-height:340px}
.rc-qr-mask{text-align:center;padding:10px}
.rc-agree-t{font-size:13px;color:var(--sub);margin-bottom:14px}
.rc-agree-btn{padding:10px 30px;border-radius:10px;border:none;background:var(--accent);color:#fff;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit}
.rc-agree-btn:hover{filter:brightness(1.07)}
.rc-agree-btn:disabled{opacity:.6;cursor:default}
.rc-proto{font-size:10.5px;color:var(--dim);margin-top:16px;line-height:1.6;padding-top:12px;border-top:1px dashed var(--line)}
.rc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:10px}
.rc-card{position:relative;border:1px solid var(--line);border-radius:11px;background:var(--card);padding:13px 12px 11px;cursor:pointer;transition:.15s;text-align:center;overflow:hidden}
.rc-card:hover{border-color:var(--accent);transform:translateY(-2px)}
.rc-card.on{border-color:var(--accent);border-width:1.5px;background:rgba(255,106,0,.05)}
.rc-hot{position:absolute;top:0;right:0;background:linear-gradient(135deg,#FF8A00,#FF5A00);color:#fff;font-size:9.5px;font-weight:700;padding:2px 8px;border-radius:0 11px 0 9px}
.rc-c-get{font-size:19px;font-weight:800;color:var(--gold,#E8A33D);line-height:1.15;font-variant-numeric:tabular-nums}
.rc-c-get span{font-size:10.5px;font-weight:600;color:var(--sub);margin-left:2px}
.rc-c-pr{font-size:13px;font-weight:700;color:var(--txt);margin-top:5px}
.rc-c-pr .c{font-size:10.5px;margin-right:1px}
.rc-c-bd{font-size:10px;color:var(--orange);margin-top:3px}
/* ★ 2026-09-24 仿即梦「套餐中心」三页弹窗 */
.pc-mask{position:fixed;inset:0;z-index:9998;background:rgba(8,10,18,.62);display:flex;align-items:center;justify-content:center;padding:10px}
.pc-box{width:min(1100px,96vw);max-height:98vh;background:var(--card);border-radius:18px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 24px 70px rgba(0,0,0,.34)}
.pc-hd{display:flex;align-items:center;gap:6px;padding:16px 22px 0;border-bottom:1px solid var(--line);flex:none;position:relative}
.pc-tab{padding:10px 18px;font-size:14px;font-weight:600;color:var(--sub);cursor:pointer;border-bottom:2.5px solid transparent;margin-bottom:-1px;transition:.14s;font-family:inherit;background:none;border-top:none;border-left:none;border-right:none}
.pc-tab:hover{color:var(--txt)}
.pc-tab.on{color:var(--accent);border-bottom-color:var(--accent)}
.pc-x{margin-left:auto;width:30px;height:30px;border:none;background:transparent;color:var(--dim);font-size:18px;cursor:pointer;border-radius:8px;line-height:1}
.pc-x:hover{background:var(--bg2);color:var(--txt)}
.pc-body{padding:14px 18px 18px;overflow-y:auto}
/* ★ 2026-09-26 狼哥：套餐中心「合伙人」卡紧凑化 —— 一页显示全，不滚动 */
.pc-body.pc-compact .pt .top{padding:14px 16px 12px}
.pc-body.pc-compact .pt .nm{font-size:17px;margin-bottom:5px}
.pc-body.pc-compact .pt .ds{font-size:12px;margin-bottom:10px}
.pc-body.pc-compact .pt .rows{padding:2px 16px 0}
.pc-body.pc-compact .pt .rows .sec{padding:8px 0 6px}
.pc-body.pc-compact .pt .sec h5,.pc-body.pc-compact .pt .sec .st{font-size:11.5px;margin-bottom:5px}
.pc-body.pc-compact .pt .it,.pc-body.pc-compact .pt .kv{font-size:11.5px;padding:2px 0}
.pc-body.pc-compact .pt .de{font-size:10.5px;line-height:1.45;margin-bottom:5px}
.pc-body.pc-compact .pt .pr .v{font-size:26px}
.pc-body.pc-compact .pt .og{font-size:10.5px;margin-top:2px}
.pc-body.pc-compact .pt .foot{padding:12px 16px 14px}
.pc-body.pc-compact .pt .foot .btn{padding:9px 14px;font-size:12.5px}
.pc-body.pc-compact .pt .badge{font-size:10.5px}
/* 档位卡网格 */
.pc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(178px,1fr));gap:13px}
.pc-card{border:1.5px solid var(--line);border-radius:13px;padding:15px 16px;background:var(--card);cursor:pointer;transition:.15s;position:relative}
.pc-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 8px 22px rgba(51,112,255,.10)}
.pc-card.hot{border-color:var(--accent);background:linear-gradient(160deg,rgba(51,112,255,.06),rgba(51,112,255,.01))}
.pc-card.cur{border-color:var(--green);background:linear-gradient(160deg,rgba(47,191,113,.07),rgba(47,191,113,.01))}
.pc-rb{position:absolute;top:-1px;right:14px;font-size:10.5px;font-weight:700;color:#fff;padding:2px 9px;border-radius:0 0 7px 7px}
.pc-rb.hot{background:var(--accent)}
.pc-rb.cur{background:var(--green)}
.pc-nm{font-size:14px;font-weight:800;color:var(--txt)}
.pc-ds{font-size:11.5px;color:var(--dim);margin-top:3px;min-height:32px;line-height:1.5}
.pc-price{display:flex;align-items:baseline;gap:2px;margin-top:8px;color:var(--gold)}
.pc-price .c{font-size:12.5px;font-weight:700}
.pc-price .v{font-size:27px;font-weight:800;letter-spacing:-.5px}
.pc-price .u{font-size:11.5px;color:var(--dim);margin-left:3px}
.pc-get{font-size:12.5px;color:var(--txt);margin-top:5px}
.pc-get b{color:var(--gold);font-weight:800}
.pc-bonus{font-size:11px;color:var(--orange);margin-top:2px}
.pc-note{font-size:10.5px;color:var(--dim);margin-top:5px}
.pc-btn{width:100%;margin-top:11px;padding:9px;border:none;border-radius:9px;font-size:12.5px;font-weight:700;cursor:pointer;font-family:inherit;background:var(--accent);color:#fff}
.pc-btn:hover{filter:brightness(1.07)}
/* ★ 2026-09-27 咨询档下方「了解驾驶舱 →」 */
.cab-link{display:block;margin-top:8px;font-size:12px;color:var(--accent);text-decoration:none;font-weight:600;text-align:center}
.cab-link:hover{text-decoration:underline}
.pc-btn.gh{background:var(--card);color:var(--txt);border:1px solid var(--line)}
.pc-btn:disabled{background:var(--bg2);color:var(--dim);cursor:default}
/* 套餐权益行 */
.pc-feat{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px dashed var(--line);font-size:12px}
.pc-feat:last-child{border-bottom:none}
.pc-feat .k{color:var(--dim);flex:none}
.pc-feat .v{font-weight:700;color:var(--txt);text-align:right}
/* 周期切换 */
.pc-cyc{display:inline-flex;background:var(--bg2);border-radius:10px;padding:3px;gap:2px;margin-bottom:16px}
.pc-cyc button{padding:6px 16px;border:none;background:transparent;border-radius:8px;font-size:12.5px;font-weight:600;color:var(--sub);cursor:pointer;font-family:inherit}
.pc-cyc button.on{background:var(--card);color:var(--accent);box-shadow:0 1px 4px rgba(0,0,0,.08)}
.pc-load{text-align:center;padding:40px;color:var(--dim);font-size:13px}
/* ★ 顶部「版本 + 积分 + 账户」（2026-09-24 狼哥重做：拉开间距、分组成区） */
.topbar .top-ic + .top-ic{margin-left:4px}
/* 分组分隔线：图标群 | 版本 | 积分 | 账户 */
.topbar .tb-sep{width:1px;height:20px;background:var(--line);margin:0 6px;flex-shrink:0}
/* 版本徽章（套餐版本，如 企业版） */
#topPlan{display:flex;align-items:center;gap:5px;font-weight:600;color:var(--txt);
  background:linear-gradient(135deg,rgba(51,112,255,.10),rgba(51,112,255,.04));border-color:rgba(51,112,255,.25)}
#topPlan .tp-ic{width:14px;height:14px;display:block}
#topPlan:hover{color:var(--accent);border-color:var(--accent)}
/* 积分（SVG 金币图标 + 文字「积分」） */
#topCredits{display:flex;align-items:center;gap:6px;font-variant-numeric:tabular-nums;font-weight:600;
  background:linear-gradient(135deg,rgba(240,160,32,.10),rgba(51,112,255,.08));border-color:rgba(240,160,32,.28)}
#topCredits .cr-ic{width:15px;height:15px;display:block;flex-shrink:0}
#topCredits .cr-lb{font-size:11.5px;color:var(--sub);font-weight:500}
#topCredits .cr-num{font-size:12.5px;font-weight:700}
#topCredits:hover{color:var(--gold);border-color:var(--gold)}
/* ★ 顶栏日期（标题栏左侧） */
.topbar .top-date{margin-left:14px;background:transparent;border:none;color:var(--sub);padding:6px 2px}
/* ★ 公告小红点 */
#topNotice{position:relative}
.notice-dot{position:absolute;top:3px;right:4px;width:7px;height:7px;border-radius:50%;background:#f5222d;display:none}
.notice-dot.on{display:block}
/* ★ 顶栏下拉（公告 / 账户） */
/* ★ 2026-10-16 狼哥：加宽（360→480）+ 防横向滚动 */
.top-drop{position:absolute;top:48px;right:20px;width:480px;min-width:230px;max-width:calc(100vw - 40px);overflow-x:hidden;background:var(--card);border:1px solid var(--line);
  border-radius:12px;box-shadow:0 12px 40px rgba(0,0,0,.22);z-index:400;padding:6px 0;overflow:hidden}
.top-drop.hidden{display:none}
/* ★ 2026-09-25 狼哥：版本下拉不要外框 */
#planDrop{border:none!important;box-shadow:0 12px 40px rgba(0,0,0,.16)!important;
  min-width:356px;max-width:400px;padding:22px 26px!important;border-radius:18px!important;
  /* ★ 2026-09-27 狼哥：以版本按钮中线下拉（不是靠右挂） */
  left:50%!important;right:auto!important;transform:translateX(-50%)!important}
/* ★ 2026-09-25 顶栏版本下拉 · 套餐卡样式权益（狼哥：用套餐卡样式 + 不要外框）*/
.top-drop .pd-wrap{padding:0}
/* ★ 2026-09-27 v5 参考 LinkAI 形态 */
.top-drop .pd-hd{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;
  margin-bottom:15px;padding-bottom:15px;border-bottom:1px solid var(--line)}
.top-drop .pd-hd-l{min-width:0}
.top-drop .pd-hd-r{text-align:right;flex:none}
.top-drop .pd-k2{font-size:11px;color:var(--dim);margin-bottom:3px}
.top-drop .pd-nm{font-size:17px;font-weight:800;color:var(--txt);line-height:1.2}
.top-drop .pd-expv{font-size:13px;font-weight:700;color:var(--txt)}
.top-drop .pd-sec{display:flex;flex-direction:column;gap:0}
.top-drop .pd-st{font-size:11px;font-weight:700;color:var(--dim);letter-spacing:.4px;margin-bottom:6px}
.top-drop .pd-row{padding:6px 0;font-size:12px}
.top-drop .pd-line{display:flex;justify-content:space-between;align-items:center;gap:18px}
.top-drop .pd-k{color:var(--sub);flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;font-size:12px;white-space:nowrap}
.top-drop .pd-ic{font-style:normal;font-size:11px;opacity:.9}
.top-drop .pd-v{color:var(--txt);font-weight:700;text-align:right;flex:0 1 auto;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.top-drop .pd-sub{font-size:10.5px;color:var(--dim);line-height:1.45;margin-top:2px}
.top-drop .pd-bar{height:5px;border-radius:3px;background:var(--line);margin-top:6px;overflow:hidden}
.top-drop .pd-bar i{display:block;height:100%;border-radius:3px;
  background:linear-gradient(90deg,#4a7dff,#3370ff);transition:width .3s}
.top-drop .pd-btns{display:flex;flex-direction:column;gap:8px;margin-top:15px}
.top-drop .pd-btn{width:100%;padding:11px;border-radius:11px;border:none;
  background:linear-gradient(135deg,#4a7dff,#3370ff);color:#fff;font-size:13px;font-weight:700;
  cursor:pointer;font-family:inherit;transition:.15s}
.top-drop .pd-btn:hover{filter:brightness(1.08)}
.top-drop .pd-btn-up{background:linear-gradient(135deg,#f5a623,#e8891a)!important}
.top-drop .pd-tip{font-size:10.5px;color:var(--dim);text-align:center;margin-top:8px}

.top-drop .dp-hd{padding:11px 15px 9px;border-bottom:1px solid var(--line)}
.top-drop .dp-name{font-size:13px;font-weight:600;color:var(--txt)}
.top-drop .dp-sub{font-size:11px;color:var(--dim);margin-top:3px}
.top-drop .dp-item{display:flex;align-items:center;gap:9px;padding:9px 15px;font-size:12.5px;color:var(--txt);cursor:pointer}
.top-drop .dp-item:hover{background:var(--bg2);color:var(--orange)}
.top-drop .dp-item .dp-ic{font-size:13px;width:16px;text-align:center;flex:none}
.top-drop .dp-sep{height:1px;background:var(--line);margin:5px 0}
.top-drop .dp-empty{padding:18px 15px;font-size:12px;color:var(--dim);text-align:center}
/* 公告条目 */
.top-drop .nt-item{padding:10px 15px;cursor:pointer;border-bottom:1px solid var(--line)}
.top-drop .nt-item:last-child{border-bottom:none}
.top-drop .nt-item:hover{background:var(--bg2)}
.top-drop .nt-t{font-size:12.5px;color:var(--txt);font-weight:500;display:flex;align-items:center;gap:7px}
.top-drop .nt-d{font-size:11px;color:var(--dim);margin-top:3px}
.top-drop .nt-tag{font-size:10px;padding:1px 6px;border-radius:4px;background:rgba(51,112,255,.12);color:#3370ff;font-weight:600}
.top-drop .nt-tag.new{background:rgba(245,34,45,.12);color:#f5222d}
/* 下拉宽度按来源区分 */
#acctDrop{width:360px!important;min-width:250px}
#noticeDrop{min-width:320px;max-height:400px;overflow:auto}
/* 账户区箭头 */
#topUser .tu-arrow{font-size:9px;color:var(--dim);margin-left:1px}
/* 公告详情弹窗 */
.ntm-mask{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:9999;display:flex;align-items:center;justify-content:center}
.ntm-box{background:var(--bg);border-radius:16px;width:92%;max-width:600px;max-height:82vh;overflow:auto;padding:22px 24px 18px}
.ntm-hd{font-size:16px;font-weight:700;color:var(--txt);margin-bottom:6px;display:flex;align-items:center;gap:8px}
.ntm-hd svg{width:16px;height:16px;flex:none}
.ntm-meta{font-size:11.5px;color:var(--dim);margin-bottom:16px;display:flex;align-items:center;gap:10px}
.ntm-body{font-size:13px;color:var(--sub);line-height:1.95}
.ntm-body h4{font-size:13px;color:var(--txt);margin:14px 0 6px}
.ntm-body ul{padding-left:20px;margin:6px 0}
.ntm-body li{margin:4px 0}
/* ★ 个人中心 · 分页导航（狼哥09-17） */
/* ★ 2026-09-20 狼哥拍板：版本+积分 收进 banner 右上角（原来每个分页各放一份，重复）*/
.hd .hd-info,.mod-hd .hd-info{position:absolute;top:20px;right:22px;display:flex;align-items:center;gap:10px;z-index:2}
.hd .hd-info .hi-card,.mod-hd .hd-info .hi-card{display:flex;align-items:center;gap:9px;padding:8px 13px;border-radius:11px;
  background:color-mix(in srgb,var(--card) 78%,transparent);border:1px solid var(--line);backdrop-filter:blur(6px)}
.hd .hd-info .hi-ic,.mod-hd .hd-info .hi-ic{font-size:17px;line-height:1}
.hd .hd-info .hi-k,.mod-hd .hd-info .hi-k{font-size:10px;color:var(--dim);letter-spacing:.04em}
.hd .hd-info .hi-v,.mod-hd .hd-info .hi-v{font-size:14px;font-weight:800;color:var(--txt);line-height:1.25}
.hd .hd-info .hi-v.gold,.mod-hd .hd-info .hi-v.gold{color:var(--gold)}
.hd .hd-info .hi-sub,.mod-hd .hd-info .hi-sub{font-size:9.5px;color:var(--dim);margin-top:1px}
.hd .hd-info .hi-btn,.mod-hd .hd-info .hi-btn{padding:6px 11px;border-radius:8px;border:none;background:var(--accent);color:#fff;
  font-size:11px;font-weight:600;cursor:pointer;font-family:inherit;white-space:nowrap}
.hd .hd-info .hi-btn.ghost,.mod-hd .hd-info .hi-btn.ghost{background:var(--card);border:1px solid var(--line);color:var(--txt)}
@media(max-width:900px){ .hd .hd-info,.mod-hd .hd-info{position:static;margin-top:12px;flex-wrap:wrap} }
.acct-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px;border-bottom:1px solid var(--line);padding-bottom:0}
.acct-tab{padding:9px 16px;font-size:12.5px;color:var(--sub);cursor:pointer;border-radius:8px 8px 0 0;border-bottom:2px solid transparent;white-space:nowrap}
.acct-tab:hover{color:var(--txt);background:var(--bg2)}
.acct-tab.on{color:var(--orange);border-bottom-color:var(--orange);font-weight:600;background:var(--card)}
/* ★ 2026-09-25 狼哥：分栏图标统一为 org-medals 徽章（与侧栏同源），不再用 emoji */
.acct-tab{display:inline-flex;align-items:center;gap:6px}
.acct-tab-ic{width:16px;height:16px;flex:none;display:block;opacity:.85}
.acct-tab.on .acct-tab-ic{opacity:1}
/* ★2026-09-25 分栏图标统一：轮廓 SVG 未选空心 / 选中实心（对齐 mod-hd.css .mhtab 规格） */
.acct-tab-ic svg{width:16px;height:16px;stroke:currentColor;stroke-width:1.6;fill:none;
  stroke-linecap:round;stroke-linejoin:round;display:block;transition:fill .2s ease}
.acct-tab.on .acct-tab-ic svg{fill:currentColor;stroke:none}
.acct-tab.on .acct-tab-ic svg .st{fill:none;stroke:currentColor;stroke-width:1.2}

.acct-pane{display:none}
.acct-pane.on{display:block}

/* ═══ ★ 2026-09-22 任务中心（狼哥拍板：做任务领积分，发体验池）═══════
   ★ 之前只写了 HTML+JS，漏了这几个类 → 容器有内容但高度 0 = 用户看不见空白 */
.task{display:flex;align-items:center;gap:11px;padding:11px 13px;border-radius:11px;
  background:var(--card2);border:1px solid var(--line);margin-bottom:9px}
.task .ti{flex-shrink:0;width:34px;height:34px;border-radius:10px;display:flex;align-items:center;
  justify-content:center;font-size:17px;background:var(--card);border:1px solid var(--line)}
.task .tb{flex:1;min-width:0}
.task .tb .n{font-size:12.5px;font-weight:600;color:var(--txt);margin-bottom:2px}
.task .tb .d{font-size:11px;color:var(--dim);line-height:1.5}
.task .rw{flex-shrink:0;font-size:13px;font-weight:800;color:var(--orange);
  font-variant-numeric:tabular-nums;white-space:nowrap}
@media(max-width:640px){
  .task{flex-wrap:wrap}
  .task .tb{flex-basis:calc(100% - 45px)}
  .task .rw{order:3}
}


/* ═══ ★ 2026-09-21 勋章墙重排（狼哥拍板）═══════════════════════════
   问题：58px 太小 / 名字常驻=噪音 / flex 挤在左边 / 55 枚灰的铺满屏
   解法：88px 大图 · 名字 hover 才出 · grid 铺满 · 未解锁折叠
   ══════════════════════════════════════════════════════════════ */
.md-bar{margin-bottom:16px}
.md-bar-top{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;color:var(--sub);margin-bottom:7px}
.md-bar-top b{color:var(--accent);font-size:19px;font-weight:800;margin:0 2px}
.md-bar-pct{font-size:12px;font-weight:700;color:var(--accent);font-family:ui-monospace,monospace}
.md-bar-tr{height:8px;background:var(--card2);border-radius:5px;overflow:hidden}
.md-bar-in{height:100%;background:linear-gradient(90deg,var(--orange),var(--green));border-radius:5px;transition:width .5s ease}

/* ★ 2026-09-21 扁平化：删掉 .md-mod（模块头）/ .md-grp（分类头）两层，
   理由：狼哥"不要按照不同的部门来分勋章，勋章直接就平铺就行了"
   —— 分组头把画面切成碎块，反而看不清"我到底有哪些勋章" */
/* grid 铺满：auto-fill 让列数随宽度自适应（解决"全挤在左上角"）*/
.md-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(106px,1fr));gap:20px 12px}
.md-empty{font-size:11.5px;color:var(--dim);padding:14px 0 8px}

.md-card{text-align:center;cursor:pointer;padding:6px 2px;border-radius:12px;transition:background .18s,transform .18s}
.md-card:hover{background:var(--bg2);transform:translateY(-2px)}
.md-ring{position:relative;width:88px;height:88px;border-radius:50%;margin:0 auto 8px;transition:transform .2s}
.md-card:hover .md-ring{transform:scale(1.06)}
.md-img{width:88px;height:88px;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--card)}
.md-crown{position:absolute;top:-5px;right:-4px;font-size:15px;line-height:1;filter:drop-shadow(0 1px 3px rgba(0,0,0,.25))}
.md-lock{position:absolute;bottom:-2px;right:-2px;font-size:13px;line-height:1;opacity:.75;background:var(--card);border-radius:50%;width:22px;height:22px;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px rgba(0,0,0,.14)}
/* 名字：默认 1 行淡出，hover 才完整（信息在需要时出现）*/
.md-name{font-size:11px;color:var(--dim);line-height:1.35;height:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color .18s}
.md-on .md-name{color:var(--txt);font-weight:600}
.md-card:hover .md-name{white-space:normal;height:auto;color:var(--accent)}
.md-pts{position:absolute;top:6px;right:6px;font-size:9.5px;font-weight:700;color:#e0940f;background:rgba(240,160,32,.14);border:1px solid rgba(240,160,32,.3);border-radius:6px;padding:1px 5px;line-height:1.4;pointer-events:none}

.md-fold{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--sub);cursor:pointer;padding:7px 13px;border-radius:9px;background:var(--bg2);margin-top:4px;user-select:none;transition:background .18s,color .18s}
.md-fold:hover{background:var(--card2);color:var(--txt)}
.md-fold b{color:var(--accent);font-weight:800}
.md-fold-ar{display:inline-block;transition:transform .22s;font-size:10px;opacity:.7}
.md-fold.open .md-fold-ar{transform:rotate(90deg)}

/* ═══ 偏好设置 · 分组卡片（A 方案：并入个人资料，预留扩展位）══════ */
.set-grp{padding:15px 0;border-bottom:1px solid var(--line)}
.set-grp:first-child{padding-top:2px}
.set-grp:last-child{border-bottom:none;padding-bottom:2px}
.set-grp-hd{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.set-grp-ic{font-size:15px;line-height:1}
.set-grp-nm{font-size:12.5px;font-weight:700;color:var(--txt)}
.set-grp-tip{font-size:11px;color:var(--dim);line-height:1.7;margin-bottom:11px}
.set-row{display:flex;gap:10px;flex-wrap:wrap}
.set-opt{flex:1;min-width:132px;max-width:230px;padding:11px 14px;border-radius:10px;border:1.5px solid var(--line);background:var(--card);color:var(--txt);font-size:12.5px;cursor:pointer;font-family:inherit;display:flex;align-items:center;justify-content:center;gap:6px;transition:border-color .16s,background .16s,color .16s}
.set-opt:hover{border-color:var(--sub)}
.set-opt.on{border-color:var(--orange);background:rgba(240,160,32,.10);color:var(--orange);font-weight:700}
/* 预留占位（后续加设置项直接填这里）*/
.set-soon{font-size:11.5px;color:var(--dim);padding:13px 15px;border:1px dashed var(--line);border-radius:10px;text-align:center;line-height:1.8}

@media (max-width:640px){
  .md-grid{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:14px 8px}
  .md-ring,.md-img{width:70px;height:70px}
  .set-opt{max-width:none}
}

.top-user{display:flex;align-items:center;gap:8px}
#topUser{display:flex;align-items:center;gap:7px;padding:4px 10px 4px 5px}
#topUser .tu-av{width:24px;height:24px;border-radius:50%;flex:none;object-fit:cover;
  background:linear-gradient(135deg,#5b8def,#3370ff);display:flex;align-items:center;justify-content:center;font-size:13px;color:#fff;overflow:hidden}
#topUser .tu-nick{max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
#topUser:hover{color:var(--orange);border-color:var(--orange)}
@media (max-width:900px){ #topUser .tu-nick{display:none} }
.work{flex:1;overflow:auto;padding:20px 24px 56px}

/* ===== 驾驶舱首页 ===== */
/* ===== 分栏标题栏 · 统一 studio-hd 范式（狼哥09-10，对齐品牌设计）===== */
.hd{display:block;position:relative;padding:20px 22px 16px;margin-bottom:16px;overflow:hidden;border-radius:14px;
  background:linear-gradient(135deg,var(--orange-soft),transparent 62%);border:1px solid var(--line)}
.hd::after{content:"";position:absolute;left:22px;right:22px;bottom:0;height:3px;border-radius:3px;
  background:linear-gradient(90deg,var(--orange),color-mix(in srgb,var(--orange) 30%,transparent) 55%,transparent)}
/* 角标（独立 span，左对齐标题） */
.hd[data-eyebrow]::before{content:"◆ " attr(data-eyebrow);display:inline-flex;align-items:center;gap:6px;
  font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--orange);
  border:1px solid color-mix(in srgb,var(--orange) 40%,var(--line));border-radius:999px;padding:3px 11px;
  background:color-mix(in srgb,var(--orange) 8%,var(--card))}
.hd .eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--orange);border:1px solid color-mix(in srgb,var(--orange) 40%,var(--line));
  border-radius:999px;padding:3px 11px;background:color-mix(in srgb,var(--orange) 8%,var(--card))}
.hd h1{display:block;font-size:23px;font-weight:800;letter-spacing:-.01em;color:var(--txt);margin:12px 0 4px;line-height:1.25;clear:both}
.hd h1 small{font-size:12px;color:var(--sub);font-weight:400;margin-left:9px}
/* 模块图标徽章（SVG，右上角） */
.hd .hd-badge{position:absolute;top:22px;right:22px;width:50px;height:50px;display:flex;
  align-items:center;justify-content:center}
.hd .hd-badge img{width:100%;height:100%;display:block;border-radius:14px}
.hd .date{position:absolute;bottom:16px;right:22px;font-size:12px;color:var(--dim)}
.subhd{font-size:12.5px;color:var(--dim);margin-bottom:16px;line-height:1.7;max-width:780px}
.ov-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:20px}
.ov{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px;cursor:pointer;transition:.2s;position:relative;overflow:hidden}
.ov:hover{transform:translateY(-2px);border-color:var(--orange);box-shadow:var(--shadow)}
/* ===== 卡片常驻色底（狼哥09-10）===== */
.ov[data-dept-biz],.mcard[data-dept-biz]{border-top:3px solid var(--mc);background:linear-gradient(180deg,color-mix(in srgb,var(--mc) calc(var(--dop)*100%),transparent) 0%,var(--card) 46%)}
.ov[data-dept-pub],.mcard[data-dept-pub]{border-top:3px solid var(--dept-pub);background:linear-gradient(180deg,color-mix(in srgb,var(--dept-pub) calc(var(--dop)*.5*100%),transparent) 0%,var(--card) 46%)}
[data-theme="dark"] .ov[data-dept-biz],[data-theme="dark"] .mcard[data-dept-biz]{background:linear-gradient(180deg,color-mix(in srgb,var(--mc) calc(var(--dop)*1.2*100%),transparent) 0%,var(--card) 50%)}
[data-theme="dark"] .ov[data-dept-pub],[data-theme="dark"] .mcard[data-dept-pub]{background:linear-gradient(180deg,color-mix(in srgb,var(--dept-pub) calc(var(--dop)*.6*100%),transparent) 0%,var(--card) 50%)}
.ov .em{font-size:18px}.ov .oname{font-size:11px;color:var(--sub);margin-top:5px}
.ov .oval{font-size:22px;font-weight:800;margin-top:3px;color:var(--txt)}.ov .oval small{font-size:10px;color:var(--dim)}
.ov .otrend{font-size:10px;margin-top:3px}
.ov.placeholder{opacity:.55;border-style:dashed}

/* 三层 */
.layers{display:flex;flex-direction:column;gap:14px}
.layer{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px}
.layer .lhead{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.layer .lbadge{font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px}
.layer .ltitle{font-size:14px;font-weight:700}
.layer .ldesc{font-size:11px;color:var(--dim);margin-left:auto}
.l-info{border-left:3px solid var(--blue)}.l-info .lbadge{background:#eef4ff;color:var(--blue)}
.l-decide{border-left:3px solid var(--orange)}.l-decide .lbadge{background:var(--orange-soft);color:var(--orange)}
.l-act{border-left:3px solid var(--green)}.l-act .lbadge{background:#e6f9f0;color:var(--green)}
.l-coord{border-left:3px solid var(--purple)}.l-coord .lbadge{background:#f3e8ff;color:var(--purple)}
.l-exec{border-left:3px solid var(--blue)}.l-exec .lbadge{background:#eef4ff;color:var(--blue)}
.l-moni{border-left:3px solid var(--yellow)}.l-moni .lbadge{background:#fef9e7;color:var(--yellow)}
.l-track{border-left:3px solid var(--cyan,#1fa8d3)}.l-track .lbadge{background:#e6f7fc;color:#1fa8d3}
[data-theme="dark"] .l-track .lbadge{background:rgba(31,168,211,.18);color:#3fc6e8}
.tk-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:12px}
.tk{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:12px 14px;position:relative}
.tk .tk-l{font-size:11px;color:var(--sub)}
.tk .tk-v{font-size:22px;font-weight:800;color:var(--txt);margin-top:3px}
.tk .tk-v small{font-size:11px;color:var(--dim);font-weight:400}
.tk .tk-s{font-size:10.5px;color:var(--dim);margin-top:3px}
.tk-src{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}
.tk-chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:3px 10px}
.tk-chip b{color:var(--txt)}
.tk-empty{color:var(--dim);font-size:12px;padding:8px 0}
.tk-phone-wrap{margin-top:12px;border-top:1px dashed var(--line);padding-top:10px}
.tk-phone-h{font-size:11px;color:var(--sub);margin-bottom:8px;display:flex;align-items:center;gap:6px}
.tk-phone-h b{color:var(--txt);font-size:13px}
.tk-phone-list{display:flex;flex-direction:column;gap:6px;max-height:190px;overflow:auto}
.tk-phone-row{display:flex;align-items:center;gap:10px;font-size:11.5px;background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:7px 11px}
.tk-phone-row .pc-num{font-weight:800;color:var(--txt);font-variant-numeric:tabular-nums;letter-spacing:.3px}
.tk-phone-row .pc-n{color:var(--cyan,#1fa8d3);font-weight:700}
.tk-phone-row .pc-last{margin-left:auto;color:var(--dim);font-size:10.5px}
.tk-phone-row .pc-tag{font-size:10px;background:rgba(31,168,211,.12);color:var(--cyan,#1fa8d3);border-radius:6px;padding:1px 6px}
.domains{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
.dom{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:12px;min-height:88px;cursor:pointer;transition:.15s}
.dom:hover{border-color:var(--orange)}
.dom .dh{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;margin-bottom:8px}
.dom .dv{font-size:11px;color:var(--sub)}.dom .dv b{color:var(--txt);font-size:15px}.dom .dv .u{font-size:10px;color:var(--dim)}
.item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:9px;cursor:pointer;transition:.15s}
.item:hover{background:var(--bg)}
.item .dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.item .it{flex:1;min-width:0}
.item .it .i-title{font-size:12.5px;font-weight:500;color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.item .it .i-sub{font-size:11px;color:var(--sub);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.item .i-tag{font-size:10px;padding:2px 8px;border-radius:20px;flex-shrink:0}
.item .i-go{font-size:10px;color:var(--dim);flex-shrink:0}
.btn{background:var(--orange-soft);border:1px solid var(--orange);color:var(--orange);padding:4px 11px;border-radius:8px;font-size:11px;cursor:pointer;flex-shrink:0;transition:.15s}
.btn:hover{background:var(--orange);color:#fff}
.ok{color:var(--green)}.warn{color:var(--yellow)}.danger{color:var(--red)}.acc{color:var(--orange)}.cyan{color:var(--blue)}

/* 各域页面 */
.mod-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}
.mcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px}
.mcard h4{font-size:13.5px;font-weight:600;color:var(--txt);margin-bottom:12px}
.mcard h4 small{font-size:11px;color:var(--sub);font-weight:400;margin-left:6px}
.col3{grid-column:span 3}.col4{grid-column:span 4}.col5{grid-column:span 5}.col6{grid-column:span 6}.col7{grid-column:span 7}.col8{grid-column:span 8}.col9{grid-column:span 9}.col12{grid-column:span 12}
.tabs{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}
.tab{background:var(--bg);border:1px solid var(--line);padding:7px 14px;border-radius:9px;font-size:12.5px;color:var(--sub);cursor:pointer}
.tab.on{background:var(--orange-soft);border-color:var(--orange);color:var(--orange);font-weight:600}
.smmav{display:inline-flex;align-items:center;background:var(--bg);border:1px solid var(--line);padding:5px 12px;border-radius:24px;font-size:12px;color:var(--sub);cursor:pointer;white-space:nowrap;transition:.15s}
.smmav:hover{border-color:var(--orange);color:var(--txt)}
.smmav.on{background:var(--orange-soft);border-color:var(--orange);color:var(--orange);font-weight:600}
.fbtn{display:inline-flex;align-items:center;background:var(--bg);border:1px solid var(--line);padding:5px 12px;border-radius:9px;font-size:11.5px;color:var(--sub);cursor:pointer;transition:.15s;box-shadow:0 1px 2px rgba(0,0,0,.03)}
.fbtn:hover{border-color:var(--accent);color:var(--txt)}
.fbtn.on{background:var(--orange-soft);border-color:var(--orange);color:var(--orange);font-weight:700;box-shadow:inset 0 0 0 1px var(--orange)}


table{width:100%;border-collapse:collapse;font-size:12.5px}
th,td{padding:8px 11px;text-align:left;border-bottom:1px solid var(--line)}
th{color:var(--sub);font-weight:500;font-size:11px;background:var(--bg)}
.hidden{display:none !important}
/* 模块容器渲染隔离: 各模块独立布局/绘制, 互不牵连(切模块更顺) */
.mv-contain{contain:layout style;}   /* 不用 paint: 避免裁掉模块内浮层/弹窗 */
.ph{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;color:var(--dim);font-size:13px;gap:12px;text-align:center}
.ph .pc{width:64px;height:64px;border-radius:50%;border:2px dashed var(--line);display:flex;align-items:center;justify-content:center;font-size:26px}
.ph .ptip{font-size:11px;color:var(--sub)}
/* CRM iframe 容器 */
.crm-frame-wrap{flex:1;overflow:hidden;padding:0;margin:-20px -24px}
.crm-frame-wrap iframe{width:100%;height:100%;border:none;display:block}
/* ===== 项目并线对话 · cover-flow deck(移植自 prj-parallel-prototype) ===== */
#plDeck .pl-page{position:absolute;top:0;bottom:12px;left:50%;width:80%;margin-left:-40%;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden;transition:none;transform-origin:center}
/* ★ 09-26 平铺模式: grid 多列 */
#plDeck.tile-mode{position:absolute;inset:0;overflow:auto;padding:18px;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;align-content:start}
#plDeck.tile-mode .pl-page{position:relative;top:auto;bottom:auto;left:auto;width:auto;margin-left:0;height:420px}
#plDeck .pl-page .phead{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--line);flex-shrink:0;background:var(--card);cursor:default}
#plDeck .pl-page .phead .dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
#plDeck .pl-page .phead .nm{font-size:14px;font-weight:800;color:var(--txt)}
#plDeck .pl-page .phead .meta{font-size:11px;color:var(--dim);margin-left:4px}
#plDeck .pl-page .pmsgs{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:var(--bg2,#f7f9fc);min-height:0}
#plDeck .pl-page .pfoot{flex-shrink:0;border-top:1px solid var(--line);background:var(--card)}
#plDeck .pl-page .pfoot .inrow{display:flex;gap:8px;padding:10px 12px;align-items:center}
#plDeck .pl-page .pfoot input.q{flex:1;background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:9px 12px;color:var(--txt);font-size:13px;outline:none;min-width:0}
#plDeck .pl-page .pfoot input.q:focus{border-color:#3370ff}
#plDeck .pl-page .pfoot button.sd{background:linear-gradient(135deg,#1d6cf0,#2a7bff);color:#fff;border:none;border-radius:9px;padding:0 18px;font-weight:800;font-size:13px;cursor:pointer;flex-shrink:0}
#plDeck .msg{max-width:82%;padding:9px 12px;border-radius:12px;font-size:12.5px;line-height:1.6;white-space:pre-wrap;word-break:break-word}
#plDeck .msg.bot{background:var(--card,#fff);border:1px solid var(--line);align-self:flex-start;border-top-left-radius:3px;color:var(--txt)}
#plDeck .msg.me{background:linear-gradient(135deg,#1d6cf0,#2a7bff);color:#fff;align-self:flex-end;border-top-right-radius:3px}
#plDeck .msg .who{display:block;font-size:9.5px;opacity:.65;margin-bottom:2px;font-weight:700}
#plDeck .deck-typing{color:var(--dim);font-size:12px;padding:4px 6px}
.deck-switch.on{background:var(--green)}
.deck-switch.on::after{left:17px}
.deck-switch::after{content:"";position:absolute;top:2px;left:2px;width:15px;height:15px;border-radius:50%;background:#e8eaef;transition:.18s}
.deck-switch{background:#333a49;border-radius:12px;cursor:pointer;transition:.2s}
/* ===== 项目卡片 hover 悬浮操作条(上传/对话), 勾选态隐藏 ===== */
.prj-ops{position:absolute;left:0;right:0;bottom:0;display:flex;gap:7px;padding:8px 10px;background:linear-gradient(180deg,transparent,rgba(12,14,18,.85) 32%);opacity:0;transform:translateY(6px);transition:.18s;z-index:5;border-radius:0 0 12px 12px}
#prjArchiveList>div:hover .prj-ops{opacity:1;transform:none}
#prjArchiveList.pickon>div .prj-ops{display:none!important}
.prj-op{flex:1;text-align:center;padding:6px 0;border-radius:8px;font-weight:700;font-size:11.5px;cursor:pointer;border:none}
.prj-op.up{background:var(--card2);border:1px solid var(--line);color:var(--sub)}
.prj-op.up:hover{color:#fff;border-color:#3370ff}
.prj-op.chat{background:linear-gradient(135deg,#1d6cf0,#2a7bff);color:#fff}
.prj-op.chat:hover{filter:brightness(1.08)}

/* ===== ★2026-09-22 全局上传弹窗（文件选择 + AI 开关 + 确认）===== */
.gsup-dlg-mask{position:fixed;inset:0;background:rgba(15,17,23,.55);z-index:200;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px)}
.gsup-dlg-mask/* ★FOUC 兜底：仅当【没有】被 JS 显式打开时隐藏（避免 !important 压住 .open） */
[hidden]:not(.open){display:none!important}   /* ★2026-09-22 防刷新闪白：hidden 属性优先，杜绝样式重算那一帧露出 */
.gsup-dlg{width:min(520px,92vw);background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 18px 50px rgba(0,0,0,.28)}
.gsup-dlg-hd{display:flex;align-items:center;justify-content:space-between;padding:15px 20px;border-bottom:1px solid var(--line);font-size:14px;color:var(--txt)}
.gsup-dlg-x{cursor:pointer;color:var(--dim);font-size:15px}
.gsup-dlg-x:hover{color:var(--red)}
.gsup-dlg-zone{margin:16px 20px;border:1.5px dashed var(--line);border-radius:12px;padding:24px 16px;text-align:center;cursor:pointer;transition:.15s}
.gsup-dlg-zone.on,.gsup-dlg-zone:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,transparent)}
.gsup-dlg-ico{font-size:24px;color:var(--accent);line-height:1}
.gsup-dlg-t1{margin-top:9px;font-size:13.5px;color:var(--txt)}
.gsup-dlg-link{color:var(--accent);text-decoration:underline}
.gsup-dlg-t2{margin-top:5px;font-size:11.5px;color:var(--dim)}
.gsup-dlg-list{max-height:190px;overflow:auto;padding:0 20px}
.gsup-dlg-list:empty{display:none}
.gsup-dlg-opt{display:flex;align-items:center;gap:10px;padding:12px 20px 2px;flex-wrap:wrap}
.gsup-dlg-chk{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--txt);cursor:pointer;user-select:none}
.gsup-dlg-chk input{width:15px;height:15px;accent-color:var(--accent);cursor:pointer;margin:0}
.gsup-dlg-optip{font-size:11.5px;color:var(--dim)}
.gsup-dlg-foot{display:flex;align-items:center;gap:10px;padding:14px 20px 18px}
.gsup-dlg-nm{flex:1;font-size:11.5px;color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gsup-dlg-btn{background:var(--accent);color:#fff;border:none;border-radius:9px;padding:9px 20px;font-size:13px;font-weight:600;cursor:pointer}
.gsup-dlg-btn:hover{filter:brightness(1.08)}
.gsup-dlg-btn:disabled{opacity:.45;cursor:not-allowed;filter:none}
.gsup-dlg-btn.ghost{background:transparent;color:var(--sub);border:1px solid var(--line)}
.gsup-dlg-btn.ghost:hover{color:var(--txt);border-color:var(--sub);filter:none}

/* ===== 知识库·文件网格(狼哥0911: 多列铺满, 点卡片直接预览) ===== */
.file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
.file-grid-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:9px;cursor:pointer;transition:.15s}
.file-grid-card:hover{border-color:var(--accent);box-shadow:0 4px 14px rgba(0,0,0,.08);transform:translateY(-2px)}
.file-grid-card:hover .fg-del{opacity:1!important}
@keyframes mpIn{from{transform:scale(.86);opacity:0}to{transform:scale(1);opacity:1}}
.mp-sweep{position:absolute;inset:0;border-radius:50%;overflow:hidden;pointer-events:none}
.mp-sweep::after{content:'';position:absolute;top:-60%;left:-60%;width:60%;height:220%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.85),transparent);transform:rotate(25deg);animation:mpSweep 1.1s ease-in-out infinite}
@keyframes mpSweep{0%{left:-60%}100%{left:130%}}
/* ★ 2026-09-28 狼哥：最小化 = 底部窄条（输入框形态）—— 对话区收起，输入框留在底部 */
.ceo-win.mini{
  left:50%!important; transform:translateX(-50%)!important;
  bottom:24px!important; top:auto!important; right:auto!important;
  /* ★ 2026-10-08 狼哥：与 .ceo-win 保持同一套定位（left:50%+transform 居中）*/
  width:min(720px,92vw)!important; height:auto!important; max-height:none!important;
  border-radius:16px!important;
}
.ceo-win.mini .ceo-head{ display:none!important; }        /* 窄条不显示标题栏 */
/* ★★★ 2026-10-09 狼哥：用户拉伸过宽度后 → 用 --ceo-w（覆盖上面的 !important） */
.ceo-win.ceo-wset{ width:var(--ceo-w)!important }
.ceo-win.mini.ceo-wset{ width:var(--ceo-w)!important }
/* ★★★ 2026-10-02 狼哥：左吸附（dock）顶端按钮 —— 只留【搜索 / 锁定(pin) / 缩小(fold)】
   隐藏：待办(radar) / 最大化(expand) —— 生产环境下不需要 */
/* 吸附态标题栏：加「退出吸附」按钮（回到窄输入条） */
.ceo-win:not(.dock) .ceo-head .ch-btn.exitdock{ display:none!important; }
.ceo-win.mini .ceo-mid{ display:none!important; }         /* 对话区收起 */
.ceo-win.mini .ceo-foot{ border-radius:16px!important; }
/* ★ mini 态：点输入框区域 → 展开对话（logo 除外，logo 是变球） */
.ceo-win.mini .ceo-foot .cf-box{cursor:text}
/* ★ 2026-10-08 狼哥：输入框（mini 窄条）也支持拉高 —— 原来 max-height 卡死 */
.ceo-win.mini .ceo-foot .cf-box{max-height:150px;overflow:visible}
.ceo-win.mini .ceo-foot .cf-editor{max-height:120px;overflow-y:auto}
.ceo-win.mini .ceo-foot .cf-box:focus-within{cursor:text}
/* ★ 2026-09-28 狼哥：mini 形态保留把手（可拖动） */

/* ★ 灵感广场·模板推荐卡片（狼哥09-29） */
.ceo-reco{margin:8px 0 4px}
.ceo-reco-hd{font-size:12px;color:var(--sub);margin-bottom:6px}
.ceo-reco-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}
.ceo-reco-c{flex:0 0 132px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--card);cursor:pointer;transition:border-color .15s}
.ceo-reco-c:hover{border-color:var(--orange)}
.ceo-reco-c video,.ceo-reco-c img{width:100%;height:74px;object-fit:cover;display:block;background:#0b0f16}
.ceo-reco-c .ph{width:100%;height:74px;display:flex;align-items:center;justify-content:center;font-size:22px;background:#0b0f16}
.ceo-reco-c .nm{font-size:11px;font-weight:600;padding:5px 7px 1px;line-height:1.3}
.ceo-reco-c .ds{font-size:9.5px;color:var(--dim);padding:0 7px 5px;line-height:1.3;height:24px;overflow:hidden}
.ceo-reco-c .pick{width:calc(100% - 12px);margin:0 6px 6px;padding:4px 0;border:1px solid var(--orange);color:var(--orange);background:transparent;border-radius:6px;font-size:10px;cursor:pointer}
.ceo-reco-c .pick:hover{background:var(--orange);color:#fff}


/* ★2026-09-30 旧的 .ceo-spk 规则已删除 —— 统一到下方「全站对话统一标准」区 */
/* ═══ ★2026-09-30 狼哥：标记消息（黄色常亮 + 左侧时间点）—— 放最后，优先级最高 ═══ */


/* ★ 2026-10-06 狼哥：新人大礼包扫光特效 */
@keyframes wbwShine{
  0%   { left:-60%; }
  55%  { left:120%; }
  100% { left:120%; }
}

/* ★ 2026-10-06 狼哥：2000 积分呼吸感微动 */
@keyframes wbwBreath{
  0%,100% { transform:scale(0.98) translateY(0);     filter:drop-shadow(0 2px 6px rgba(240,160,32,.32)) brightness(1); }
  50%     { transform:scale(1.045) translateY(-1px); filter:drop-shadow(0 4px 14px rgba(255,190,70,.62)) brightness(1.08); }
}

/* ★ 2026-10-06 狼哥：对话内异常引导 —— 嵌在对话流里（不是飘在外面的弹窗） */
.ceo-err-guide{ margin:8px 0 2px; }
.ceo-err-guide .wbe-inline{ margin-top:0; background:rgba(239,68,68,.07); border-color:rgba(239,68,68,.22); }

/* ═══════════════════════════════════════════════════════════════
   ★ 2026-10-06 狼哥：窗口缩小 / 小屏适配（桌面为主，小屏降级可用）
     · ≤1180  侧栏自动 mini(78px) —— 保住主区宽度
     · ≤860   侧栏收起(0) —— 主区占满，靠顶栏左侧的汉堡键唤出
     · 顶栏按钮在窄屏隐藏次要项（日期/官网/文档）
     · 看板卡片在窄屏单列
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 1180px){
  body:not(.sb-user-open) .sidebar:not(.collapsed){ width:78px; }
  body:not(.sb-user-open) .sidebar:not(.collapsed) .sb-brand{padding:14px 0;justify-content:center}
  body:not(.sb-user-open) .sidebar:not(.collapsed) .sb-brand>div:not(.sb-logo){display:none}
  body:not(.sb-user-open) .sidebar:not(.collapsed) .nav-item{flex-direction:column;align-items:center;justify-content:center;gap:3px}
  body:not(.sb-user-open) .sidebar:not(.collapsed) .nav-item .nav-txt{width:100%;white-space:nowrap;overflow:visible;text-overflow:clip;font-size:9.5px;text-align:center}
  body:not(.sb-user-open) .sidebar:not(.collapsed) .sb-chats{display:none!important}
  body:not(.sb-user-open) .sidebar:not(.collapsed) .nav-zone-hd{font-size:0;height:1px;background:var(--line);margin:8px 10px;padding:0;opacity:.7}
}
@media (max-width: 860px){
  /* 顶栏：只留最必要的 */
  .topbar .top-date{display:none}
  .topbar .crumb{max-width:38%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  #gsWrap{position:static!important;transform:none!important;flex:1;min-width:0;margin:0 8px}
  #gsInput{width:100%!important}
  /* 看板：单列 */
  #dashGrid{grid-template-columns:1fr!important}
  .dash-wrap{overflow-x:hidden}
  /* 全局对话：贴底全宽 */
  .ceo-win{width:calc(100vw - 24px)!important;left:12px!important}
}
@media (max-width: 620px){
  /* 手机：侧栏默认收起（靠汉堡唤出） */
  .sidebar{position:fixed!important;left:0;top:0;bottom:0;z-index:200;box-shadow:6px 0 24px rgba(0,0,0,.35)}
  .sidebar:not(.sb-forced-open){margin-left:-210px}
  .sidebar.sb-forced-open{margin-left:0;width:210px!important}
  .main{padding-left:0!important}
  #dashGrid{grid-template-columns:1fr!important;gap:10px!important}
  .ceo-win{width:calc(100vw - 16px)!important;left:8px!important}
  /* ★ 2026-10-06 狼哥：手机端汉堡键【常显可点】（否则侧栏唤不出来） */
  .sb-toggle{opacity:1!important;pointer-events:auto!important;transform:none!important;
    left:0;top:14px;width:38px;height:38px;font-size:18px;z-index:210}
  /* 侧栏打开时的遮罩（点空白关侧栏） */
  #sbVeil{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:199}
  body.sb-open-mobile #sbVeil{display:block}
}


/* ═══════════════════════════════════════════════════════════
   ★ 2026-10-11 狼哥：视觉轻奢化 · 设计 Token 地基（Phase 1）
   原则：只加变量，不改现有规则 → 风险最低，后续组件逐个接入
   ═══════════════════════════════════════════════════════════ */
:root{
  /* ① 多层阴影（近/中/远）—— 替代单层"平"阴影 */
  --sh-1: 0 1px 2px rgba(16,24,40,.04), 0 1px 3px rgba(16,24,40,.06);
  --sh-2: 0 2px 4px rgba(16,24,40,.04), 0 4px 12px rgba(16,24,40,.08);
  --sh-3: 0 4px 8px rgba(16,24,40,.04), 0 12px 28px rgba(16,24,40,.12);
  --sh-4: 0 8px 16px rgba(16,24,40,.06), 0 24px 48px rgba(16,24,40,.16);
  /* ② 顶部高光（卡片"实体感"关键）*/
  --hl-top: inset 0 1px 0 rgba(255,255,255,.7);
  --hl-top-d: inset 0 1px 0 rgba(255,255,255,.08);
  /* ③ 圆角节奏 */
  --r-xs: 6px; --r-s: 8px; --r-m: 12px; --r-l: 16px; --r-xl: 20px; --r-2xl: 26px;
  /* ④ 间距系统（4 的倍数）*/
  --sp-1: 4px; --sp-2: 8px; --sp-3: 12px; --sp-4: 16px;
  --sp-5: 24px; --sp-6: 32px; --sp-7: 48px;
  /* ⑤ 字阶 */
  --fs-xs: 11px; --fs-sm: 12.5px; --fs-md: 14px; --fs-lg: 16px;
  --fs-xl: 20px; --fs-2xl: 26px; --fs-3xl: 34px;
  --lh-tight: 1.25; --lh-normal: 1.5; --lh-loose: 1.7;
  /* ⑥ 字重 */
  --fw-n: 400; --fw-m: 500; --fw-sb: 600; --fw-b: 700; --fw-eb: 800;
  /* ⑦ 动效曲线 */
  --ease-out: cubic-bezier(.22,1,.36,1);
  --ease-in-out: cubic-bezier(.4,0,.2,1);
  --ease-spring: cubic-bezier(.34,1.56,.64,1);
  --dur-fast: .15s; --dur-norm: .24s; --dur-slow: .4s;
  /* ⑧ 玻璃拟态 */
  --glass-bg: rgba(255,255,255,.72);
  --glass-blur: saturate(180%) blur(20px);
  /* ⑨ 焦点环 */
  --ring: 0 0 0 3px rgba(51,112,255,.18);
}
/* 深色主题下的 Token 覆盖 */
[data-theme="dark"]{
  --sh-1: 0 1px 2px rgba(0,0,0,.3), 0 1px 3px rgba(0,0,0,.4);
  --sh-2: 0 2px 4px rgba(0,0,0,.3), 0 4px 12px rgba(0,0,0,.45);
  --sh-3: 0 4px 8px rgba(0,0,0,.35), 0 12px 28px rgba(0,0,0,.5);
  --sh-4: 0 8px 16px rgba(0,0,0,.4), 0 24px 48px rgba(0,0,0,.6);
  --hl-top: inset 0 1px 0 rgba(255,255,255,.06);
  --glass-bg: rgba(22,28,42,.72);
}


/* ═══════════════════════════════════════════════════════════
   ★ 轻奢化试点（Phase 2.1）：驾驶舱卡片
   改动：多层阴影 + 顶部高光 + hover 微抬升
   ═══════════════════════════════════════════════════════════ */
/* 驾驶舱卡片（真实类名 = .grid-stack-item）*/
.dash-wrap .grid-stack-item > .grid-stack-item-content{
  box-shadow: var(--sh-2), var(--hl-top);
  border-radius: var(--r-l);
  transition: box-shadow var(--dur-norm) var(--ease-out),
              transform var(--dur-norm) var(--ease-out);
}
.dash-wrap .grid-stack-item:hover > .grid-stack-item-content{
  box-shadow: var(--sh-3), var(--hl-top);
  transform: translateY(-1px);
}
/* 顶栏 —— 微渐变（从"色带"到"质感层"）*/
.topbar{
  box-shadow: 0 1px 0 var(--line), 0 1px 3px rgba(16,24,40,.03);
}
/* 侧栏 —— 细分隔 + 微阴影 */
.sidebar{
  box-shadow: 1px 0 0 var(--line), 1px 0 12px rgba(16,24,40,.03);
}
/* 弹窗/面板 —— 深阴影 + 玻璃（试点）*/
.modal-box, .dlg-box{
  box-shadow: var(--sh-4);
  border-radius: var(--r-xl);
}
/* 按钮 —— 内高光 + 按下微缩 */
.btn-pri, .btn.primary{
  box-shadow: var(--sh-1), inset 0 1px 0 rgba(255,255,255,.18);
  transition: box-shadow var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}
.btn-pri:hover, .btn.primary:hover{ box-shadow: var(--sh-2), inset 0 1px 0 rgba(255,255,255,.22); }
.btn-pri:active, .btn.primary:active{ transform: translateY(1px); }


/* ═══════════════════════════════════════════════════════════
   ★ 轻奢化 Phase 2（续）：输入框 / 弹窗 / 侧栏 / 面板 / 徽章
   ═══════════════════════════════════════════════════════════ */
/* ② 输入框：内阴影凹槽感 + focus 光环 */
.cf-editor, .s2-neweditor, .p1-editor,
input[type="text"], input[type="password"], input[type="search"], textarea, select{
  transition: box-shadow var(--dur-norm) var(--ease-out),
              border-color var(--dur-norm) var(--ease-out);
}
.cf-editor:focus-visible, .s2-neweditor:focus-visible, .p1-editor:focus-visible,
input[type="text"]:focus, input[type="password"]:focus, input[type="search"]:focus,
textarea:focus, select:focus{
  outline: none;
  box-shadow: var(--ring);
}
/* ③ 弹窗/浮层：深阴影 + 更大圆角 */
.cs-modal-in, .gsup-dlg, .modal-box, .dlg-box, .art-box{
  box-shadow: var(--sh-4), var(--hl-top);
  border-radius: var(--r-xl);
}
/* ④ 侧栏：细分隔 + 微阴影（已加过，这里补 mini 态）*/
.sidebar.mini{ box-shadow: 1px 0 0 var(--line); }
/* 侧栏项 hover 微亮 */
.sb-item{ transition: background var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out); }
.sb-item:hover{ transform: translateX(1px); }
/* ⑤ 面板/卡片统一（顶部高光 + 圆角节奏）*/
.mcard, .mh-card, .hi-card, .set-grp{
  box-shadow: var(--sh-1), var(--hl-top);
  border-radius: var(--r-l);
  transition: box-shadow var(--dur-norm) var(--ease-out), transform var(--dur-norm) var(--ease-out);
}
.mcard:hover, .hi-card:hover{ box-shadow: var(--sh-2), var(--hl-top); }
/* ⑥ 徽章/标签：内高光（"实体"感）*/
.mh-badge img, .acct-tab-ic, .dept-chip{
  filter: drop-shadow(0 1px 1px rgba(16,24,40,.08));
}
/* ⑦ 表格行 hover（微亮）*/
tr:hover > td, .cs-row:hover{
  background: color-mix(in srgb, var(--accent) 4%, transparent);
}
/* ⑧ 滚动条美化（全局）*/
*::-webkit-scrollbar{ width: 8px; height: 8px; }
*::-webkit-scrollbar-track{ background: transparent; }
*::-webkit-scrollbar-thumb{
  background: color-mix(in srgb, var(--dim) 35%, transparent);
  border-radius: 8px;
  border: 2px solid transparent;
  background-clip: content-box;
}
*::-webkit-scrollbar-thumb:hover{
  background: color-mix(in srgb, var(--dim) 55%, transparent);
  background-clip: content-box;
}


/* ═══════════════════════════════════════════════════════════
   ★ 轻奢化 Phase 3：动效编排（统一曲线 + 入场 stagger）
   原则：尊重 prefers-reduced-motion；只加不覆盖
   ═══════════════════════════════════════════════════════════ */
/* ① 统一过渡（已有，补充缓动曲线）*/
.btn, button, a, .sb-item, .cs-tab, .acct-tab{
  transition-timing-function: var(--ease-out);
}
/* ② 卡片入场（stagger）—— 已有 dcIn，这里补通用 */
@keyframes liftIn{
  from{ opacity: 0; transform: translateY(8px); }
  to{ opacity: 1; transform: translateY(0); }
}
.mcard, .hi-card{ animation: liftIn var(--dur-slow) var(--ease-out) both; }
.mcard:nth-child(1){ animation-delay: 0s; }
.mcard:nth-child(2){ animation-delay: .04s; }
.mcard:nth-child(3){ animation-delay: .08s; }
.mcard:nth-child(4){ animation-delay: .12s; }
/* ③ tab 切换指示器（平滑）*/
.cs-tab, .acct-tab{
  transition: color var(--dur-fast) var(--ease-out),
              background var(--dur-fast) var(--ease-out);
}
/* ④ 尊重"减少动效"偏好 */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}


/* ═══════════════════════════════════════════════════════════
   ★ 轻奢化 Phase 4：细节（骨架屏 / 焦点环 / 选中态）
   ═══════════════════════════════════════════════════════════ */
/* ① 骨架屏（替代"加载中"文字）*/
@keyframes shimmer{
  0%{ background-position: -200% 0; }
  100%{ background-position: 200% 0; }
}
.skel, .dash-skel, [data-skel]{
  background: linear-gradient(90deg,
    color-mix(in srgb, var(--line) 40%, transparent) 25%,
    color-mix(in srgb, var(--line) 70%, transparent) 50%,
    color-mix(in srgb, var(--line) 40%, transparent) 75%);
  background-size: 200% 100%;
  animation: shimmer 1.4s infinite linear;
  border-radius: var(--r-s);
}
/* ② 全局焦点环（无障碍 + 高级感）*/
:focus-visible{
  outline: 2px solid color-mix(in srgb, var(--accent) 60%, transparent);
  outline-offset: 2px;
}
/* ③ 选中态（文本选中色）*/
::selection{
  background: color-mix(in srgb, var(--accent) 22%, transparent);
  color: inherit;
}
/* ④ 禁用态统一 */
[disabled], .disabled{
  opacity: .5;
  cursor: not-allowed !important;
  filter: grayscale(.3);
}
/* ⑤ 链接下划线微动 */
a{ text-decoration-thickness: 1px; text-underline-offset: 2px; }

/* ═══ ★ 2026-10-14 狼哥：hero 区质感升级（权威 token）═══ */
.hico{width:14px;height:14px;stroke:currentColor;stroke-width:1.9;fill:none;
  stroke-linecap:round;stroke-linejoin:round;vertical-align:-2px;margin-right:2px}
.dash-hero{
  background:linear-gradient(160deg,rgba(255,255,255,.94),rgba(245,248,255,.88));
  backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);
  border:1px solid rgba(255,255,255,.9);border-radius:var(--radius-2xl,21.6px);
  padding:18px 20px;margin:0 0 16px;
  box-shadow:var(--sh-card),var(--inner-hl);
  animation:heroIn .6s var(--ease-enter) both;
}
@keyframes heroIn{from{opacity:0;transform:translateY(14px) scale(.99)}}
/* 战报卡（升级：色阶 + 多层阴影 + hover 浮起）*/
.dash-hero .dh-rp{
  min-width:106px;padding:12px 17px;border-radius:var(--radius-xl,16.8px);
  background:linear-gradient(160deg,rgba(255,255,255,.85),rgba(240,246,255,.75));
  border:1px solid var(--blue-5,#c2e5ff);
  box-shadow:0 1px 2px rgba(15,20,34,.03),0 4px 10px -4px rgba(15,20,34,.06);
  transition:transform var(--dur-base,300ms) var(--ease-enter),box-shadow var(--dur-base,300ms) var(--ease-enter);
  animation:heroIn .5s var(--ease-enter) both;
}
.dash-hero .dh-rp:hover{
  transform:translateY(-4px);
  box-shadow:0 2px 4px rgba(15,20,34,.04),0 12px 26px -6px rgba(15,20,34,.12);
}
.dash-hero .dh-rp b{font-size:24px;font-weight:800;line-height:1.05;color:var(--blue-12,#113264);
  letter-spacing:-.8px;font-variant-numeric:tabular-nums}
.dash-hero .dh-rp span{font-size:11.5px;color:var(--gray-11,#646464);font-weight:500}
.dash-hero .dh-rp.hl{
  background:linear-gradient(180deg,#4a82ff,var(--blue-9,#0090ff));border-color:transparent;
  box-shadow:0 1px 2px rgba(15,20,34,.04),0 7px 14px -5px rgba(15,20,34,.10),inset 0 .5px 0 rgba(255,255,255,.35)}
.dash-hero .dh-rp.hl b{color:#fff} .dash-hero .dh-rp.hl span{color:#dce8ff}
.dash-hero .dh-rp.gr b{color:var(--green-11,#218358)}
.dash-hero .dh-rp.or b{color:var(--amber-11,#71624b)}
/* 页头按钮（升级）*/
.dash-hero .dh-acts .dash-btn{
  display:inline-flex;align-items:center;padding:7px 14px;border-radius:var(--radius-lg,12px);
  border:1px solid var(--gray-5,#e0e0e0);background:rgba(255,255,255,.72);
  color:var(--gray-11,#646464);font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit;
  transition:transform var(--dur-fast,150ms) var(--ease-standard),background var(--dur-fast),box-shadow var(--dur-fast)}
.dash-hero .dh-acts .dash-btn:hover{transform:translateY(-1px);background:#fff;box-shadow:var(--sh-card);color:var(--gray-12)}
.dash-hero .dh-acts .dash-btn:active{transform:translateY(0) scale(.97)}
.dash-hero .dh-acts .dash-btn-ceo{
  background:linear-gradient(180deg,#4a82ff,var(--blue-9,#0090ff));color:#fff;border-color:transparent;
  box-shadow:0 1px 2px rgba(15,20,34,.04),0 7px 14px -5px rgba(15,20,34,.10),inset 0 .5px 0 rgba(255,255,255,.35)}
.dash-hero .dh-acts .dash-btn-ceo:hover{box-shadow:0 2px 4px rgba(15,20,34,.04),0 12px 26px -6px rgba(15,20,34,.14),inset 0 .5px 0 rgba(255,255,255,.35)}

/* ============================================
 * ★★★ 2026-10-17 狼哥：对话卡片最终布局
 *   ① 思考 = 铺在正文里的分段段落（不断拉长）
 *   ② 工具调用 = 独立二级框（只列名称+状态+秒数，最多10条滚动，可折叠）
 * ============================================ */

/* ── ① 思考区：铺在正文里 ── */
.md-body .think-zone{ margin: 0 0 8px; }
.md-body .think-p{
  display: flex; gap: 7px; align-items: flex-start;
  padding: 4px 0;
  font-size: 12.5px; line-height: 1.75;
  color: var(--txt);   /* ★ 过程文字要能看清，用主文字色 */
}
.md-body .think-p .think-ic{
  flex: none; font-size: 12px; opacity: .7; margin-top: 3px;
}
.md-body .think-p .think-t{
  flex: 1; white-space: pre-wrap; word-break: break-word;
}

/* ── ② 工具调用二级框 ── */
.md-body .ai-toolbox{
  margin: 8px 0 12px !important;
  border: 1px solid var(--line) !important;
  border-radius: 8px !important;
  background: rgba(0,0,0,.015) !important;
  overflow: hidden !important;
}
/* 折叠头 */
.md-body .ai-toolbox .af-fold{
  display: flex !important; align-items: center; gap: 6px;
  padding: 7px 11px; font-size: 12px; color: var(--sub);
  cursor: pointer; user-select: none;
  background: rgba(0,0,0,.012);
}
.md-body .ai-toolbox .af-fold:hover{ background: rgba(0,0,0,.035); }
.md-body .ai-toolbox .af-fold .chev{
  transition: transform .18s; font-size: 10px; color: var(--dim);
}
.md-body .ai-toolbox .ai-flow:not(.collapsed) .af-fold .chev{ transform: rotate(90deg); }
.md-body .ai-toolbox .af-fold .cnt{
  margin-left: auto; background: var(--card2); border: 1px solid var(--line);
  border-radius: 9px; padding: 0 6px; font-size: 10.5px; color: var(--dim);
}
/* 折叠/展开 */
.md-body .ai-toolbox .ai-flow.collapsed .af-body{ display: none !important; }
.md-body .ai-toolbox .ai-flow:not(.collapsed) .af-body{ display: block !important; }
/* 步骤体：最多 10 条高度，超出滚动 */
.md-body .ai-toolbox .af-body{
  max-height: 240px; overflow-y: auto;
  padding: 2px 11px 6px;
}
/* 单步：一行（工具名 · 状态 · 秒数），不显示输出 */
.md-body .ai-toolbox .af-step{
  padding: 5px 0; border-bottom: 1px solid rgba(0,0,0,.14);
  font-size: 11.5px; color: var(--sub);
  display: flex; align-items: center; gap: 6px;
}
.md-body .ai-toolbox .af-step:last-child{ border-bottom: none; }
/* 隐藏步骤里的详细输出（要看就展开框，不占正文） */
.md-body .ai-toolbox .af-step .af-out{ display: none !important; }
/* 隐藏工具框里的思考（思考已在正文） */
.md-body .ai-toolbox .af-think{ display: none !important; }

/* ============================================
 * ★★★ 2026-10-17 狼哥：思考分段横杠切分 + 排版优化
 * ============================================ */
/* ① 思考段落：每段上方横杠（第一段除外） */
.md-body .think-zone .think-p{
  position: relative;
  padding: 8px 0 8px 0;
  font-size: 12.5px; line-height: 1.75; color: var(--txt);
  display: flex; gap: 7px; align-items: flex-start;
}
.md-body .think-zone .think-p + .think-p{
  border-top: 1px solid rgba(0,0,0,.16);   /* ★ 横杠切分 */
  margin-top: 2px;
}
.md-body .think-zone .think-p .think-ic{
  flex: none; font-size: 12px; opacity: .65; margin-top: 3px;
}
.md-body .think-zone .think-p .think-t{
  flex: 1; white-space: pre-wrap; word-break: break-word;
}

/* ② 思考区与正文之间也加横杠 */
.md-body .think-zone{ margin-bottom: 10px; }
.md-body .think-zone:not(:empty) + *{ border-top: 1px solid rgba(0,0,0,.16); padding-top: 10px; }

/* ③ 工具框：紧凑、清晰 */
.md-body .ai-toolbox{
  margin: 6px 0 12px !important;
  border: 1px solid var(--line) !important;
  border-radius: 8px !important;
  background: rgba(0,0,0,.015) !important;
  overflow: hidden !important;
}
/* ④ 折叠头：显示「🛠 工具调用 N 次 ▶」 */
.md-body .ai-toolbox .af-fold{
  display: flex !important; align-items: center; gap: 6px;
  padding: 7px 11px; font-size: 12px; color: var(--sub);
  cursor: pointer; user-select: none;
}
.md-body .ai-toolbox .af-fold:hover{ background: rgba(0,0,0,.03); }
.md-body .ai-toolbox .af-fold .chev{
  transition: transform .18s; font-size: 10px; color: var(--dim);
}
.md-body .ai-toolbox .ai-flow:not(.collapsed) .af-fold .chev{ transform: rotate(90deg); }
.md-body .ai-toolbox .af-fold .cnt{
  margin-left: auto; background: var(--card2); border: 1px solid var(--line);
  border-radius: 9px; padding: 0 6px; font-size: 10.5px; color: var(--dim);
}
/* ⑤ 折叠/展开 */
.md-body .ai-toolbox .ai-flow.collapsed .af-body{ display: none !important; }
.md-body .ai-toolbox .ai-flow:not(.collapsed) .af-body{
  display: block !important;
  max-height: 240px; overflow-y: auto;
  padding: 2px 11px 6px;
}
/* ⑥ 单步：一行（工具名 · 状态 · 秒数） */
.md-body .ai-toolbox .af-step{
  padding: 5px 0; border-bottom: 1px solid rgba(0,0,0,.14);
  font-size: 11.5px; color: var(--sub);
  display: flex; align-items: center; gap: 6px;
}
.md-body .ai-toolbox .af-step:last-child{ border-bottom: none; }
.md-body .ai-toolbox .af-step .af-out{ display: none !important; }
.md-body .ai-toolbox .af-think{ display: none !important; }

/* ============================================
 * ★★★ 2026-10-17 狼哥：最终布局
 *   ① 思考段 + 结果段：铺正文，横杠分隔
 *   ② 工具框：运行中展开，结束收起，10条滚动
 * ============================================ */

/* ── ① 思考段落 ── */
.md-body .think-zone{ margin: 0 0 10px; }
.md-body .think-zone .think-p{
  display: flex; gap: 7px; align-items: flex-start;
  padding: 7px 0;
  font-size: 12.5px; line-height: 1.75; color: var(--sub);
}
.md-body .think-zone .think-p + .think-p{
  border-top: 1px solid rgba(0,0,0,.16);
}
.md-body .think-zone .think-p .think-ic{
  flex: none; font-size: 12px; opacity: .65; margin-top: 3px;
}
.md-body .think-zone .think-p .think-t{
  flex: 1; white-space: pre-wrap; word-break: break-word;
}

/* ── ② 结果段落（工具输出的人话） ── */
.md-body .think-zone .result-p{
  display: flex; gap: 7px; align-items: flex-start;
  padding: 7px 0;
  border-top: 1px solid rgba(0,0,0,.16);
  font-size: 12.5px; line-height: 1.75; color: var(--txt);
}
.md-body .think-zone .result-p .result-ic{
  flex: none; font-size: 12px; margin-top: 3px;
}
.md-body .think-zone .result-p .result-t{
  flex: 1; white-space: pre-wrap; word-break: break-word;
}

/* ── ③ 工具框：紧凑 + 10条滚动 ── */
.md-body .ai-toolbox{
  margin: 6px 0 12px !important;
  border: 1px solid var(--line) !important;
  border-radius: 8px !important;
  background: rgba(0,0,0,.015) !important;
  overflow: hidden !important;
}
.md-body .ai-toolbox .af-fold{
  display: flex !important; align-items: center; gap: 6px;
  padding: 7px 11px; font-size: 12px; color: var(--sub);
  cursor: pointer; user-select: none;
}
.md-body .ai-toolbox .af-fold:hover{ background: rgba(0,0,0,.03); }
.md-body .ai-toolbox .af-fold .chev{
  transition: transform .18s; font-size: 10px; color: var(--dim);
}
.md-body .ai-toolbox .ai-flow:not(.collapsed) .af-fold .chev{ transform: rotate(90deg); }
.md-body .ai-toolbox .af-fold .cnt{
  margin-left: auto; background: var(--card2); border: 1px solid var(--line);
  border-radius: 9px; padding: 0 6px; font-size: 10.5px; color: var(--dim);
}
/* 折叠态 */
.md-body .ai-toolbox .ai-flow.collapsed .af-body{ display: none !important; }
/* 展开态：约 10 条（每条 28px）+ 滚动 */
.md-body .ai-toolbox .ai-flow:not(.collapsed) .af-body{
  display: block !important;
  max-height: 280px; overflow-y: auto;
  padding: 2px 11px 6px;
}
/* 单步：名称 · 状态 · 秒数 */
.md-body .ai-toolbox .af-step{
  padding: 5px 0; border-bottom: 1px solid rgba(0,0,0,.14);
  font-size: 11.5px; color: var(--sub);
  display: flex; align-items: center; gap: 6px;
}
.md-body .ai-toolbox .af-step:last-child{ border-bottom: none; }
/* 工具框里不显示输出和思考（已移到正文） */
.md-body .ai-toolbox .af-step .af-out{ display: none !important; }
.md-body .ai-toolbox .af-think{ display: none !important; }

/* ============================================
 * ★★★ 2026-10-17 狼哥：排版优化（过程 + 结果）
 * ============================================ */

/* ① 三段式容器间距 */
.md-body .ai-toolbox{ margin: 0 0 10px !important; }
.md-body .think-zone{ margin: 0 0 10px; }

/* ② 思考段落：左侧细竖线 + 灰字 */
.md-body .think-zone .think-p{
  position: relative;
  padding: 6px 0 6px 12px;
  font-size: 12.5px; line-height: 1.75; color: var(--dim);
  border-left: 3px solid rgba(51,112,255,.35);
  margin-left: 2px;
}
.md-body .think-zone .think-p + .think-p{
  border-top: 1px solid rgba(0,0,0,.16);
  margin-top: 2px;
}
.md-body .think-zone .think-p .think-t{
  white-space: pre-wrap; word-break: break-word;
}

/* ③ 结果段落：深色 + 左侧蓝线 */
.md-body .think-zone .result-p{
  padding: 7px 10px 7px 12px;
  border-left: none;
  border-top: 1px solid rgba(0,0,0,.16);
  font-size: 12.5px; line-height: 1.75; color: var(--txt);
  margin-left: 2px;
}
.md-body .think-zone .result-p .result-t{
  white-space: pre-wrap; word-break: break-word;
}

/* ④ 最终结果区：与过程分隔 + 更醒目 */
.md-body .final-result{
  border-top: 2px solid rgba(0,0,0,.22);
  padding-top: 12px;
  margin-top: 4px;
}
.md-body .final-result > *:first-child{ margin-top: 0; }
.md-body .final-result h2{
  font-size: 14px; font-weight: 600; margin: 14px 0 8px;
  padding-bottom: 5px; border-bottom: 1px solid rgba(0,0,0,.06);
}
.md-body .final-result h3{ font-size: 13px; font-weight: 600; margin: 12px 0 6px; }
.md-body .final-result p{ margin: 6px 0; line-height: 1.8; }
.md-body .final-result ul, .md-body .final-result ol{ margin: 6px 0 6px 18px; line-height: 1.8; }
.md-body .final-result li{ margin: 3px 0; }
.md-body .final-result table{
  width: 100%; border-collapse: collapse; margin: 8px 0; font-size: 12px;
}
.md-body .final-result th, .md-body .final-result td{
  border: 1px solid var(--line); padding: 6px 9px; text-align: left;
}
.md-body .final-result th{ background: rgba(0,0,0,.03); font-weight: 600; }
.md-body .final-result code{
  background: rgba(0,0,0,.05); padding: 1px 5px; border-radius: 3px;
  font-family: ui-monospace,Menlo,monospace; font-size: 11.5px;
}
.md-body .final-result pre{
  background: rgba(0,0,0,.04); padding: 10px 12px; border-radius: 6px;
  overflow-x: auto; margin: 8px 0;
}
.md-body .final-result pre code{ background: none; padding: 0; }

/* ============================================
 * ★★★ 2026-10-17 狼哥：横杠最终版（实线 + 加粗，绝对明显）
 * ============================================ */
.md-body .think-zone .think-p + .think-p{
  border-top: 1px solid #d0d5dd !important;   /* 明确的灰色实线 */
  padding-top: 9px !important;
  margin-top: 9px !important;
}
.md-body .think-zone .result-p{
  border-top: 1px solid #d0d5dd !important;
  padding-top: 9px !important;
  margin-top: 9px !important;
  border-left: 3px solid #3370ff !important;
  padding-left: 12px !important;
}
.md-body .final-result{
  border-top: 2px solid #c8cdd6 !important;
  padding-top: 14px !important;
  margin-top: 14px !important;
}

/* ═══ ★ 2026-10-18 狼哥：过程文字要醒目，代码块要弱化 ═══ */
/* 过程文字（think）用主文字色，字号略大 */
.md-body .think-p, .md-body .think-zone .think-p{
  color: var(--txt) !important;
  font-size: 13px !important;
}
/* 代码块整体弱化（没人看） */
.md-body pre, .md-body pre code{
  color: var(--sub) !important;
  background: rgba(127,140,175,.06) !important;
  font-size: 11px !important;
  opacity: .7;
  max-height: 120px;
  overflow-y: auto;
}
/* 行内代码也弱化 */
.md-body code{
  color: var(--sub) !important;
  background: rgba(127,140,175,.10) !important;
}
/* 最终结果/正文保持深色（要看的） */
.md-body .final-result, .md-body .result-p{
  color: var(--txt) !important;
}

/* ★ 2026-10-18 狼哥：代码块不显示，只留一行轻提示 */
.md-body .mdc-skip{
  display: inline-block;
  margin: 4px 0;
  padding: 2px 8px;
  font-size: 11px;
  color: var(--sub);
  background: rgba(127,140,175,.08);
  border-radius: 5px;
  opacity: .65;
}
/* 彻底隐藏所有 pre 代码块（双保险） */
.md-body pre.mdc{ display: none !important; }

/* ═══════════════════════════════════════════════════════════
 * ★ 2026-10-18 狼哥：竖条颜色修正
 *   · 过程文字（think-p）= 蓝色竖条（要看的，醒目）
 *   · 代码块 = 不显示（已由 pre.mdc display:none 处理）
 *   · 最终结果（final-result）= 深色粗竖条（结论，最醒目）
 * ═══════════════════════════════════════════════════════════ */

/* ① 过程文字：去竖条（狼哥 2026-10-20：竖条丑）→ 极淡底色区分 */
.md-body .think-p,
.md-body .think-zone .think-p{
  border-left: none !important;
  padding-left: 10px !important;
  margin-left: 0 !important;
  background: rgba(120,130,150,.045);
  border-radius: 6px;
}

/* ② 最终结果：更粗更深的竖条（结论优先）*/
.md-body .final-result,
.md-body .result-p{
  border-left: 4px solid #1d4ed8 !important;
  padding-left: 12px !important;
}

/* ③ 代码块彻底不显示（双保险）*/
.md-body pre,
.md-body pre.mdc,
.md-body pre code{
  display: none !important;
}

/* ④ 「略过 N 行代码」提示保持低调 */
.md-body .mdc-skip{
  border-left: none !important;
  display: inline-block !important;
  margin: 3px 0 !important;
  padding: 1px 7px !important;
  font-size: 10.5px !important;
  color: var(--dim) !important;
  background: rgba(127,140,175,.06) !important;
  opacity: .55 !important;
}
