/* ===== 云枢智控 · 我的助理干净聊天页样式（mobile.assist.css） =====
   0190 页面骨架 + 0193 视觉规格对齐（品牌绿/双卡胶囊/输入框/加号sheet/汉堡/语音条⑥）
   + 0194 持久化（呼吸留白滚动）。
   + 20260882 P0补⑦ 通话模式：通话状态条/挂断钮/通话入口（mobile.assist.call.js 配套）。
   复用 mobile.css 主题变量（--bg/--surface/--accent/--text 等），随亮暗主题切换。
   仅被 /static/mobile.html 引用。约束：单文件 ≤500 行。
   老板08-19 迭代期超限豁免：第5批~第四轮连续整改追加，行数 565→573（未超 600），下一轮若再超需抽独立文件。 */

/* ===== 屏7：flex 列布局（内部滚动；038⑥ 屏级禁滚动保证输入条恒贴底） ===== */
#screen-assist.active{display:flex;flex-direction:column;position:relative;overflow:hidden;height:100%}
#screen-assist{padding-top:calc(env(safe-area-inset-top, 0px) + 96px)}   /* 0914老板令:顶栏加高(胶囊行+44px)锁顶,中部独滚 */

/* ===== 顶部条（返回 + 汉堡 + 标题 + 联通状态小标识；总整改单② 内容区 44pt，back/汉堡 44×44 上下贴边无外 padding） ===== */
.assist-topbar{
  position:fixed;top:0;left:0;right:0;max-width:480px;margin:0 auto;z-index:10;background:var(--card);
  border-bottom:1px solid var(--border);padding:env(safe-area-inset-top, 0px) 10px 0;
  display:flex;align-items:center;gap:8px;flex-shrink:0;height:calc(env(safe-area-inset-top, 0px) + 52px);box-sizing:border-box;overflow:hidden;   /* v20260934 四·19: 沉浸页顶栏固定高=inset+52(老板08-29加8px顶距离津更宽), padTop与barH严格一致 */
}
.assist-back-btn{
  flex-shrink:0;width:44px;height:44px;display:flex;align-items:center;justify-content:center;
  background:transparent;border:none;padding:0;color:var(--text);cursor:pointer;border-radius:8px;
  -webkit-tap-highlight-color:transparent;
}
.assist-back-btn:active{background:var(--bar-bg)}
.assist-back-btn svg{display:block}
.hamburger-btn{
  width:44px;height:44px;flex-shrink:0;background:transparent;border:none;
  color:var(--text);font-size:20px;line-height:1;cursor:pointer;border-radius:8px;
}
.hamburger-btn:active{background:var(--bar-bg)}
.assist-title{flex:1;font-size:17px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:8px;min-width:0;align-self:stretch}   /* 老板08-19: 标题列填满顶栏高 → 话题文字垂直居中下移 */
.assist-logo-mini{font-size:22px;display:inline-flex;align-items:center;flex-shrink:0}
.logo-mini-img{width:44px;height:44px;border-radius:10px;object-fit:cover}
.assist-title-text{display:flex;flex-direction:column;align-items:flex-start;min-width:0;line-height:1.3;height:100%;justify-content:center}   /* 老板08-19: 名字+徽标块在顶栏内垂直居中 → 话题文字下移 */
.assist-title-name{font-size:17px;font-weight:700;color:var(--text)}
.assist-conn{
  flex-shrink:0;font-size:11px;color:var(--online);background:var(--online-soft);
  border:1px solid var(--online);border-radius:10px;padding:3px 8px;white-space:nowrap;
}

/* ===== 汉堡抽屉（0193②：绿云头像 + 昵称/体验版 + ⚙️设置 + 积分栏） ===== */
.assist-drawer{position:fixed;inset:0;z-index:150;display:none}
.assist-drawer.show{display:block}
/* 验收整改⑥：抽屉靠左滑入（遮罩淡入 + 面板从左滑入） */
.assist-drawer.show .assist-mask{animation:assistFadeIn .24s ease}
.assist-drawer.show .assist-panel{animation:assistSlideL .24s ease}
@keyframes assistFadeIn{from{opacity:0}to{opacity:1}}
@keyframes assistSlideL{from{transform:translateX(-100%)}to{transform:translateX(0)}}
.assist-mask{position:absolute;inset:0;background:#000a}
.assist-panel{
  position:absolute;left:0;right:auto;top:0;bottom:0;width:72%;max-width:320px;   /* 老板08-19: 折叠菜单面板 50%→72%(>2/3屏), 展开大一点不难看 */
  background:var(--card);border-right:1px solid var(--border);
  box-shadow:2px 0 12px rgba(0,0,0,.15);
  display:flex;flex-direction:column;padding:14px 0;gap:2px;
  overflow:hidden;   /* 0914越界·老板令②:面板自身不滚(改由 .assist-panel-scroll 滚),#asdBottom 钉死抽屉底 */
}
/* 0914越界·老板令②:抽屉滚动区(flex:1)——内容在这里滚,底部用户/设置条钉死面板底 */
.assist-panel-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
/* 0914越界·老板令①:桥接模式抽屉分组标题(工作区/会话历史话题) */
.ab-grp-title{padding:10px 16px 4px;font-size:11.5px;font-weight:700;color:var(--sub);letter-spacing:.4px}
.assist-user{display:flex;align-items:center;gap:10px;padding:8px 18px 16px;border-bottom:1px solid var(--border);margin-bottom:8px}
.assist-avatar{
  width:44px;height:44px;border-radius:10px;flex-shrink:0;   /* 老板08-19: 头像方形显示(圆角方形), 与个人中心头像统一 */
  background:var(--accent-grad);color:#fff;font-size:22px;
  display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.assist-avatar img{width:100%;height:100%;border-radius:10px;object-fit:cover}
.assist-user-meta{flex:1;display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.assist-uname{font-size:17px;font-weight:700;color:var(--text)}
.assist-tag{
  font-size:11px;color:#fff;background:var(--accent);border-radius:4px;
  padding:1px 6px;margin-top:3px;line-height:1.5;
}
.assist-gear{
  width:44px;height:44px;flex-shrink:0;background:transparent;border:none;
  color:var(--sub);line-height:1;cursor:pointer;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
}
.assist-gear svg{width:22px;height:22px}   /* 老板08-19: 六角形设置图标, 22px 放大(原 emoji 17px 太小) */
.assist-gear:active{background:var(--bar-bg)}
.assist-menu-item{
  display:flex;align-items:center;gap:10px;padding:13px 18px;
  background:transparent;border:none;color:var(--text);
  font-size:17px;text-align:left;cursor:pointer;min-height:44px;
}   /* 老板08-19: 文字 16→17px、上下留白加大, 排版对齐个人中心字号与间距 */
.assist-menu-item:active{background:var(--bar-bg)}
.assist-menu-item.active{background:var(--accent-bg-light);color:var(--accent);font-weight:700;border-right:3px solid var(--accent)}
/* 老板08-19: 折叠菜单「语音设置」行（语音开关+语速，vs-host 组件内联横排左对齐） */
.assist-vs-row{display:flex;align-items:center;justify-content:flex-start;gap:8px;padding:8px 18px;min-height:44px}
.assist-points{
  display:flex;align-items:center;gap:8px;padding:14px 18px;
  border-top:1px solid var(--border);margin-top:auto;
}
.ap-ico{font-size:16px}
.ap-lbl{font-size:14px;color:var(--sub);flex:1}
.ap-val{font-size:16px;font-weight:700;color:var(--accent)}

/* ===== 无历史首屏：LOGO + 双卡胶囊（0193①：48px 横向、r12、扁平无阴影、双态） =====
   08-31 牛牛(iOS 键盘顶起输入框): 欢迎页内容超长(下载横幅+LOGO+标题+口号+双卡)且 flex:1 默认 min-height:auto
   无法压缩→键盘压缩视口时输入条被内容顶出可视区「飘到天上」。补 min-height:0 允许压缩 + overflow-y:auto 内容可滚,
   用首/末子元素 auto margin 保持原垂直居中(内容超高时可滚到顶不丢顶部)。 */
/* 0914越界·老板令④:欢迎骨架锁定——banner已搬出welcome为兄弟浮层,横幅开关对welcome零位移;
   :first-child auto-margin 现恒落 assist-logo,竖直居中不随横幅态变 */
.assist-welcome{flex:1;position:relative;display:flex;flex-direction:column;align-items:center;gap:14px;padding:24px;min-height:0;overflow-y:auto}
.assist-welcome > :first-child{margin-top:auto}
.assist-welcome > :last-child{margin-bottom:auto}
/* ⑳ 08-29 参考 WorkBuddy 6.jpg 沉浸主页顶部：桌面端下载横幅 */
.assist-dl-banner{position:absolute;left:12px;right:12px;bottom:10px;z-index:5;width:100%;max-width:320px;display:flex;align-items:center;gap:8px;
  padding:9px 10px;border-radius:12px;background:linear-gradient(90deg,#13d3a2,#0aa48b);color:#083a2b;
  font-size:12.5px;box-shadow:0 2px 10px rgba(19,211,162,.25);margin-bottom:4px;cursor:pointer}
.assist-dl-banner .adb-ico{font-size:16px}
.assist-dl-banner .adb-txt{flex:1;min-width:0;line-height:1.35}
.assist-dl-banner .adb-act{flex-shrink:0;padding:5px 12px;border:none;border-radius:8px;
  background:#fff;color:#0a8f72;font-size:12px;font-weight:700}
.assist-dl-banner .adb-close{flex-shrink:0;border:none;background:transparent;color:#083a2b;
  font-size:17px;line-height:1;padding:2px 4px;opacity:.65;margin-left:-2px}
.assist-logo{
  /* 老板08-19: 机器人吉祥物镂空浮现, 无框无底色, 尺寸放大 */
  width:150px;height:150px;
  display:flex;align-items:center;justify-content:center;
}
.assist-logo img{width:100%;height:100%;object-fit:contain}
/* 老板08-19第二轮⑧: 图标下加产品名标题; 口号文案待决策(玩具城/I Do/爱索度) */
/* 20260828 大标题手机适配: 字号响应式clamp + 一行不换行(锁死结构,仅适配) */
.assist-wtitle{font-size:clamp(18px,5.4vw,22px);font-weight:700;color:var(--text);text-align:center;margin-top:2px;white-space:nowrap}
.assist-slogan{font-size:17px;font-weight:500;color:var(--text);text-align:center;margin-top:4px}  /* 老板08-19: 口号「开口即指令，所言皆可达」字太小→放大14px→17px(l2), 加粗提权重 */
.assist-cards{display:flex;flex-direction:column;gap:10px;width:100%;max-width:320px;margin-top:10px}
.assist-card{
  display:flex;align-items:center;gap:8px;height:48px;padding:0 14px;
  border-radius:12px;border:1px solid var(--border);cursor:pointer;
  font-size:16px;text-align:left;color:var(--text);
}
.assist-card .ac-ico{font-size:20px}
.assist-card.active{background:var(--surface);border-color:var(--border);color:#111;font-weight:600}
.assist-card.inactive{background:var(--bar-bg);border-color:transparent;color:var(--sub)}
.assist-card:active{opacity:.85}
/* 0209④ 用户端骨架：建设中标签 + 底部工具/登录入口（不假装可用） */
.assist-wip{font-size:11px;color:var(--sub);background:var(--bar-bg);border-radius:4px;padding:1px 6px;margin-left:auto;line-height:1.6;flex-shrink:0}
.assist-user-entries{display:flex;gap:10px;width:100%;max-width:320px;margin-top:4px}
.as-entry{
  flex:1;display:flex;align-items:center;justify-content:center;gap:6px;min-height:40px;
  background:var(--bar-bg);border:1px dashed var(--border);border-radius:10px;
  font-size:13px;color:var(--sub);cursor:pointer;padding:0 8px;
}
.as-entry .assist-wip{margin-left:0}
.as-entry:active{opacity:.8}

/* ===== 聊天体 ===== */
.assist-body{
  flex:1;overflow-y:auto;overflow-x:hidden;min-height:0;padding:14px 14px 36px;   /* 091 底部 padding 14→24px；验收整改⑨ 24→36px：输入条下移贴底后，消息区与输入条间留白加大 */
  display:flex;flex-direction:column;gap:14px;-webkit-overflow-scrolling:touch;   /* 老板08-19第三轮: 用户气泡↔AI回复 上下间距 10→14px 拉开 */
  touch-action:pan-y;overscroll-behavior-y:contain;   /* 0913老板: 消息区左右滑动会漂移——只允许纵向滚动,禁横向橡皮筋 */
}
/* 0913:markdown表格+代码围栏(手机紧凑版) */
.asd-markdown .md-twrap{overflow-x:auto;margin:6px 0;-webkit-overflow-scrolling:touch}
.asd-markdown table.md-table{border-collapse:collapse;font-size:12px;line-height:1.5;min-width:100%}
.asd-markdown .md-table th{background:rgba(232,196,107,.12);color:#E8C46B;font-weight:600;text-align:left;padding:5px 9px;border:1px solid rgba(255,255,255,.12);white-space:nowrap}
.asd-markdown .md-table td{padding:5px 9px;border:1px solid rgba(255,255,255,.09);vertical-align:top}
.asd-markdown .md-prewrap{margin:6px 0;overflow-x:auto;-webkit-overflow-scrolling:touch}
.asd-markdown .md-pre{margin:0;padding:9px 11px;background:#0d0d0d;border:1px solid rgba(255,255,255,.09);border-radius:8px;font-family:ui-monospace,Menlo,monospace;font-size:11.5px;line-height:1.55;white-space:pre;color:#d8d8d8}
/* 老板08-19: AI回复框两边留白太多→加宽靠边(82%→92%), 卡片边框改"重影/阴影"融入底色(去硬边框, 一点点边界感+柔和阴影透气) */
.assist-body .bubble{max-width:92%;padding:11px 14px;border-radius:12px;font-size:17px;line-height:1.5;word-break:break-word}
/* 验收整改⑫：云端会话 markdown 段落/列表紧凑排版（与 PC 会话 pc-msg 对齐） */
.assist-body .bubble.ai p{margin:0 0 6px}.assist-body .bubble.ai p:last-child{margin:0}.assist-body .bubble.ai ul,.assist-body .bubble.ai ol{margin:4px 0;padding-left:20px}
.assist-body .bubble.ai{align-self:flex-start;background:transparent;border:none;box-shadow:none;padding:0;color:var(--text)}   /* 0914老板令:AI回复拆卡,纯文本直铺 */
.assist-body .bubble.user{align-self:flex-end;background:var(--bubble-user);color:var(--bubble-user-ink,#fff)}   /* 0914:亮=桌面同步浅灰底深字,暗=深灰底白字 */

/* ===== 0226④ 思考=可见流式动效提示（诚实：不假装真实思考内容；正在分析 + 逐点浮现） ===== */
.thinking-wrap{border:none !important;background:transparent !important}   /* 0905 晨二改（老板令）：不要框——完全无边框 */
.think-live{font-size:14px;color:var(--sub)}
.think-dots{display:inline-flex;gap:3px;margin-left:4px;vertical-align:middle}
.think-dots i{width:4px;height:4px;border-radius:50%;background:var(--sub);animation:thinkDot 1s ease-in-out infinite}
.think-dots i:nth-child(2){animation-delay:.2s}
.think-dots i:nth-child(3){animation-delay:.4s}
@keyframes thinkDot{0%,100%{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}

/* ===== 050① 思考流式（仿豆包过程感）+ 思考收起回看条 + 050② 一键到最新 ===== */
.assist-body-wrap{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}
#assistBodyWrap .jump-latest{bottom:16px}
/* 验收整改⑪：回到最新 药丸→圆上箭头（SVG 矢量，非 emoji；chatJumpLatest/assistJumpLatest 共用） */
.jump-latest{width:44px;height:44px;padding:0;border-radius:50%;display:flex;align-items:center;justify-content:center}.jump-latest svg{display:block}
/* 思考流式：头部「正在分析」+ 逐条浮现要点（非静止三点） */
.think-head{display:flex;align-items:center;gap:6px}
.think-stream{display:flex;flex-direction:column;gap:2px;margin-top:6px;padding-top:6px;border-top:1px dashed var(--border)}
.ts-line{font-size:14px;color:var(--sub);line-height:1.5;animation:tsFade .3s ease-out}
@keyframes tsFade{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}
/* 思考结束自动收起：折叠成「思考过程」小条，点击展开回看要点 */
.think-box{max-width:100%;align-self:flex-start;cursor:pointer;-webkit-user-select:none;user-select:none}   /* 0905 晨二改（老板令）：展开宽随回复卡，但条子保持靠左 */
.tc-bar{display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:12px;background:var(--card);border:1px solid var(--border);color:var(--sub);font-size:14px}
.tc-ico{font-size:13px}
.tc-txt{flex:1;font-weight:600}
.tc-arrow{font-size:12px;color:var(--sub)}
.tc-body{display:none;margin-top:6px;padding:10px 12px;background:var(--bar-bg);border-radius:10px;flex-direction:column;gap:4px;max-height:46vh;overflow-y:auto}   /* 0905 晨（老板令）：展开放开到近半屏，长轨迹滚看 */
.think-box.open .tc-body{display:flex}
.tc-point{font-size:14px;color:var(--text);line-height:1.5}

/* ===== 0201 实测修正：回复=文字卡片，三操作图标（线条风格 SVG）移到卡片底部下方独立一行 ===== */
/* 老板08-19第二轮: 回复卡左右留白均衡(居中), 5操作图标收进长条胶囊更实更稳, 图标统一大小不虚不稀 */
.bubble-ai-wrap{display:flex;flex-direction:column;align-items:flex-start;gap:4px;max-width:100%;align-self:flex-start}   /* 0905 晨三改（老板令）：回复卡右边扩满，与深度思考卡对齐 */
.bubble-ai-wrap .bubble.ai{width:100%;max-width:100%}   /* 0905 晨（老板令）：回复卡恒定全宽——不随内容缩，与思考卡永远齐边 */
.bubble-actions{display:inline-flex;gap:2px;padding:1px 3px;background:var(--bar-bg);border:none;border-radius:17px;margin-top:4px}   /* 0905 晨(老板令: 胶囊恢复原样) */   /* 老板08-19: 胶囊压扁(高34=倒圆角17正胶囊), 去描边, 不再粗笨 */
.bact{
  background:transparent;border:none;cursor:pointer;line-height:1;
  padding:0;border-radius:50%;width:32px;height:32px;color:var(--text);
  display:inline-flex;align-items:center;justify-content:center;
}   /* 0905 晨(老板令: 恢复原样32px,热区仍由hit.css撑44) */
.bact svg{width:16px;height:16px;stroke-width:1.8}
.bact[data-act="speak"] svg{width:19px;height:19px}   /* 0905 晨(老板: 16太松22太土): 播放键19px 黄金点 */
.bact:active{background:var(--bg)}
.bact.speaking{color:var(--accent);animation:speakPulse .9s ease-in-out infinite;transform:scale(1.18)}   /* I播报: 播放中变色+闪动+放大, 播完恢复 */
.bact.active{color:var(--accent)}   /* v20260934 八·D.2: 赞/踩选中态 */
@keyframes speakPulse{0%,100%{opacity:1}50%{opacity:.35}}
/* 0209⑤-② 豆包式三段③：回复流式输出（逐段浮现 + 光标） */
.bubble.ai.streaming{border-color:var(--accent);white-space:pre-line}   /* P2-1 审核建议：流式期保留换行，长文多段完成瞬间排版跳变减少 */
.stream-caret{display:inline-block;width:2px;height:1em;background:var(--accent);margin-left:2px;vertical-align:-2px;animation:caretBlink .8s step-end infinite}
@keyframes caretBlink{0%,100%{opacity:1}50%{opacity:0}}

/* ===== ➕ 加号：底部滑入 sheet 三卡（0193④：r16、图标上文字下、轻微外阴影） ===== */
.assist-plus-sheet{position:fixed;inset:0;z-index:150;display:none}
.assist-plus-sheet.show{display:block}
.assist-plus-mask{position:absolute;inset:0;background:#000a}
.assist-plus-panel{
  position:absolute;left:0;right:0;bottom:0;
  background:var(--surface);border-radius:16px 16px 0 0;
  box-shadow:0 -4px 16px rgba(0,0,0,.18);
  padding:18px 16px var(--safe-b);
}
.ap-grid{display:flex;gap:10px}
.ap-card{
  flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;
  background:var(--bar-bg);border:1px solid transparent;border-radius:14px;padding:12px 6px;cursor:pointer;
}
.ap-card:active{background:var(--accent-bg-light);border-color:var(--accent)}
.ap-ico{font-size:22px}
.ap-name{font-size:12px;color:var(--text)}

/* ===== v20260934 八·E 按住说话·蓝色半球霞光(老板重点): 原红矩形→蓝, 散发式过渡渐变(非纯色), 半球从底部往上走上缘弧线(非完整圆球), 分界线过渡渐变柔和无硬边, 按住面积显大, 参考图=光球竖条 ===== */
/* 老板08-19 改: ①贴底拉宽铺满两边(left/right:0 bottom:0 不再悬浮输入条上方28px) ②渐变反调=下深上浅(底部#1E40AF最浓, 越往上越浅#93C5FD融入聊天区) ③上缘弧形迈进聊天区(50% 50% 0 0) ④面积≈键盘小一号(250px) ⑤音量联动: JS 写 --vo-vol(0~1)→show 态 scale 散发+光强 */
.voice-overlay{
  --vo-vol:0;
  position:fixed;left:0;right:0;bottom:0;margin:0 auto;max-width:480px;transform:none;transform-origin:50% 100%;   /* 0913老板令:按0902-57铁案,语音半球fixed贴死视口底边不留缝 */   /* 补偿输入条 16px 侧 padding, 光效铺满两边 */
  z-index:80;width:auto;height:250px;
  pointer-events:none;   /* 08-31 牛牛: 纯视觉光效, 必须穿透到下方语音条——否则 overlay 浮现盖住手指, 松手 pointerup/touchend 落在 overlay 上, pressEnd 不触发→overlay 卡住不消失 */
  border-radius:50% 50% 0 0;overflow:hidden;   /* 上边缘弧线=半球顶迈进聊天区, 底部直角贴底 */
  background:radial-gradient(ellipse 120% 115% at 50% 100%, #1E40AF 0%, #2563EB 32%, #3B82F6 55%, #93C5FD 72%, rgba(147,197,253,.35) 85%, rgba(147,197,253,0) 100%);   /* 老板08-19第二轮: 下深上浅, 顶部渐隐透明=像云朵融入页面, 无硬性边缘分界线 */
  box-shadow:0 -2px 24px rgba(59,130,246,.35);   /* 蓝色柔光, 分界线柔和 */
  padding:54px 20px 22px;display:none;flex-direction:column;align-items:center;justify-content:flex-end;gap:10px;
  transition:transform .12s ease-out;
}
.voice-overlay.show{display:flex;transform:scale(calc(1 + var(--vo-vol)*.16));animation:voIn .18s ease-out}   /* 声音越大→scale 越大, 光效散发越大; 浮现淡入不"突然" */
.voice-overlay.cancelling{background:radial-gradient(ellipse 120% 115% at 50% 100%, #64748B 0%, #94A3B8 50%, #CBD5E1 72%, rgba(203,213,225,0) 100%);box-shadow:0 -2px 20px rgba(100,116,139,.4);transform:none}
@keyframes voIn{from{opacity:0}to{opacity:1}}
/* 蓝色光晕波纹扩散(原红波纹): 白色波纹向外扩散于蓝光球 */
.vo-ripple{position:absolute;inset:0;pointer-events:none}
.vo-ripple i{position:absolute;left:50%;top:60%;width:190px;height:190px;margin:-95px 0 0 -95px;
  border-radius:50%;border:2px solid rgba(255,255,255,.55);opacity:0;animation:voRipple 1.6s ease-out infinite}
.vo-ripple i:nth-child(2){animation-delay:.5s}
.vo-ripple i:nth-child(3){animation-delay:1s}
@keyframes voRipple{0%{transform:scale(.25);opacity:.8}100%{transform:scale(2.2);opacity:0}}
.vo-wave{display:flex;align-items:center;gap:5px;height:34px;position:relative;z-index:2}
.vo-wave i{width:7px;border-radius:4px;background:#fff;animation:voWave 1s ease-in-out infinite}
.vo-wave i:nth-child(2n){animation-delay:.15s}
.vo-wave i:nth-child(3n){animation-delay:.3s}
.vo-tip{font-size:14px;color:#fff;font-weight:600;position:relative;z-index:2;text-shadow:0 1px 4px rgba(30,64,175,.35)}
@keyframes voWave{0%,100%{height:12px}50%{height:34px}}

/* ===== 聊天输入（0226① 单一圆角矩形输入框：默认一行=左说话图标+占位+右加号；点击=两行文字；长按=语音） ===== */
.assist-input{
  display:flex;flex-direction:column;gap:0;padding:8px 16px calc(8px + env(safe-area-inset-bottom));
  border-top:1px solid var(--border);background:var(--bg);flex-shrink:0;position:relative;   /* 老板08-19第二轮: 输入条底色=内容区背景, 与页面融为一体 */
}
/* 默认态（一行）：微信式——左语音图标+居中占位+右加号；平贴一条线，禁横跨全宽大圆角胶囊(老板08-18·四·三·八⑤) */
.assist-compose{
  display:flex;align-items:center;gap:10px;min-height:54px;padding:0 10px 0 16px;
  background:transparent;border:none;border-radius:0;cursor:pointer;color:var(--text);
  -webkit-user-select:none;user-select:none;-webkit-touch-callout:none;
  touch-action:none;   /* 08-28老板: 长按"按住说话"出复制文字=系统把触摸当文本选择接走, touch-action:none 让按压逻辑接管(同 prod .wx-voicebar) */
}
.assist-compose:active{opacity:.94}
.ac-mic{flex-shrink:0;color:var(--accent);opacity:1;width:27px;height:27px;touch-action:none}
.ac-ph{flex:1;min-width:0;text-align:center;font-size:16px;font-weight:500;color:var(--sub);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ac-plus{
  flex-shrink:0;width:44px;height:44px;border-radius:50%;border:none;
  background:var(--card);color:var(--sub);font-size:20px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
}
.ac-plus:active{background:var(--bar-bg)}
/* 点击态（两行文字）：上排=文字输入；下排=工具行（说话图标+Auto | 加号+发送） */
.assist-compose-open{display:none;flex-direction:column;gap:8px;background:var(--card);border-radius:24px;padding:8px}   /* 老板08-19第二轮: 文字输入容器同变白 */
.assist-input.text-mode .assist-compose{display:none}
.assist-input.text-mode .assist-compose-open{display:flex}
.assist-compose-open input,
.assist-compose-open textarea{
  flex:1;min-width:0;min-height:42px;background:var(--surface);border:1px solid var(--border);
  border-radius:14px;padding:0 12px;color:var(--text);font-size:16px;outline:none;
}
/* 0905 晨（老板：输入框不长高）：纵向 flex 容器里 flex-basis:0% 优先于内联 height——
   autoGrow 设的高度被布局无视，永远一行。textarea 改固定基准，内联高度说了算（最高96px≈4行） */
.assist-compose-open textarea{flex:0 0 auto}
.assist-compose-open input:focus,
.assist-compose-open textarea:focus{border-color:var(--accent)}
.aco-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.aco-mic{
  width:48px;height:48px;flex-shrink:0;background:transparent;border:none;   /* 老板08-19第二轮: 反应区 44→48 加大, 按住更灵敏 */
  color:var(--sub);border-radius:50%;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  touch-action:none;   /* 08-28: 文字模式长按麦克风按住说话, 出复制文字同样处理 */
}
.aco-mic:active{background:var(--bar-bg);color:var(--accent)}
.aco-mic.active{color:var(--accent)}
.aco-spacer{flex:1}
/* Auto 下拉（仅 Auto 可用，其余建设中）：十一·带框标签去框，透明无边框 */
.assist-auto{
  background:transparent;border:none;color:var(--sub);
  font-size:12px;padding:0 4px;cursor:pointer;flex-shrink:0;
  -webkit-appearance:none;appearance:none;max-width:80px;min-height:44px;
}
/* 0189-2：语音激活/按压时阻止系统文本选择与长按放大镜 */
.assist-compose-open input.voice-active,
.assist-compose-open input.voice-active:focus,
.assist-compose-open textarea.voice-active,
.assist-compose-open textarea.voice-active:focus{
  border-color:var(--accent);background:var(--accent-bg-light);
  box-shadow:0 0 0 2px var(--accent-border);
  -webkit-user-select:none;user-select:none;-webkit-touch-callout:none;
}
/* 十一·1 主对话屏发送键：有字显示，蓝底白↑=唯一发送形态（同 wx-send；老板08-28 点出漏了） */
.aco-send{flex-shrink:0;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;background:var(--accent);border:none;border-radius:50%;cursor:pointer;color:#fff;padding:0;-webkit-tap-highlight-color:transparent}
.aco-send svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.aco-send:active{opacity:.85}   /* 十一·1 主对话屏发送键：同 wx-send 唯一形态，蓝圆钮+白色↑ */
/* 加号（工具行小号）：热区≥44×44pt（老板08-18 热区铁律） */
.plus-btn{
  width:44px;height:44px;flex-shrink:0;background:transparent;border:none;
  color:var(--sub);font-size:17px;line-height:1;cursor:pointer;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
}
.plus-btn:active{background:var(--bar-bg);color:var(--accent)}
/* 圆形上箭头发送键（文字展开态下排右侧）：蓝底白↑=唯一发送形态（老板08-18 四·三） */
.send-circle{
  width:44px;height:44px;flex-shrink:0;border-radius:50%;border:none;cursor:pointer;
  background:var(--accent);color:#fff;font-size:16px;line-height:1;
  display:flex;align-items:center;justify-content:center;
}
.send-circle svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.send-circle:active{opacity:.8}

/* ===== 0209②+0226② 多选转发：工具条 + 勾选框在原消息位置旁（AI=左，用户=右） ===== */
.assist-multi-bar{
  display:none;align-items:center;gap:8px;padding:8px 12px;
  border-top:1px solid var(--border);background:var(--card);flex-shrink:0;
}
.assist-multi-bar.show{display:flex}
.multi-count{font-size:14px;color:var(--accent);font-weight:700;white-space:nowrap}
.multi-spacer{flex:1}
.multi-btn{min-height:38px;padding:0 16px;border-radius:19px;font-size:14px;font-weight:600;cursor:pointer}
.multi-btn.cancel{background:var(--bar-bg);border:1px solid var(--border);color:var(--sub)}
.multi-btn.send{background:var(--accent);border:none;color:#fff}
.multi-btn.send:active,.multi-btn.cancel:active{opacity:.85}
/* 0226② 勾选框按来源定位：AI 消息在左侧，用户消息在右侧（非重新汇集） */
.multi-row{display:flex;align-items:flex-start;gap:8px;cursor:pointer;max-width:100%}
.multi-row.left{justify-content:flex-start}
.multi-row.right{justify-content:flex-end}
.multi-row .bubble{align-self:auto;max-width:82%}
.multi-row.sel .bubble.ai{background:var(--accent-bg-light);border-color:var(--accent)}
.multi-row.sel .bubble.user{box-shadow:0 0 0 2px var(--accent)}
.multi-cb{
  width:22px;height:22px;border-radius:50%;border:2px solid var(--sub);flex-shrink:0;
  display:inline-flex;align-items:center;justify-content:center;font-size:12px;color:#fff;margin-top:6px;
}
.multi-cb.on{background:var(--accent);border-color:var(--accent)}

/* ===== 设置页⑤（整页骨架：账号区/积分/清除日志可用，其余建设中） ===== */
.assist-settings{
  position:absolute;inset:0;z-index:160;background:var(--bg);
  display:none;flex-direction:column;
}
.assist-settings.show{display:flex}
.assist-settings-bar{
  position:fixed;top:0;left:0;right:0;max-width:480px;margin:0 auto;z-index:10;background:var(--card);border-bottom:1px solid var(--border);
  padding:calc(env(safe-area-inset-top, 0px) + 10px) 12px 10px;display:flex;align-items:center;gap:8px;flex-shrink:0;   /* v20260934 四·19: 设置bar贴刘海, 内容区.as-body已同步max(inset,10) */
}
.assist-settings-bar h2{font-size:17px;font-weight:700;color:var(--text);flex:1;text-align:center}
.as-body{flex:1;overflow-y:auto;padding:calc(55px + max(env(safe-area-inset-top, 0px), 10px)) 12px 12px;display:flex;flex-direction:column;gap:12px;-webkit-overflow-scrolling:touch}   /* ⑭ 补偿 .assist-settings-bar 高度（v20260934 四·19: back-btn实为44px+pb10+border1=55，原51按旧40px算少4px被遮，与自身 max(inset,10) 对齐） */
.as-card{background:var(--card);border:1px solid var(--border);border-radius:12px;overflow:hidden}
.as-account{display:flex;align-items:center;gap:12px;padding:16px}
.as-acc-meta{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.as-name{font-size:17px;font-weight:700;color:var(--text)}
.as-tags{display:flex;gap:8px;align-items:center}
.as-sync{font-size:12px;color:var(--online);background:var(--online-soft);border:1px solid var(--online);border-radius:10px;padding:1px 8px}
.as-points{display:flex;align-items:center;gap:8px;padding:14px 16px}
.as-p-ico{font-size:18px}
.as-p-lbl{font-size:16px;color:var(--text);flex:1}
.as-p-val{font-size:17px;font-weight:700;color:var(--accent)}
.as-menu{display:flex;flex-direction:column}
.as-item{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  width:100%;min-height:48px;padding:0 16px;background:transparent;border:none;
  border-bottom:1px solid var(--border);color:var(--text);font-size:16px;cursor:pointer;
}
.as-item:last-child{border-bottom:none}
.as-item:active{background:var(--bar-bg)}
.as-arrow{font-size:16px;color:var(--sub)}

/* ===== 039② 转发目标选择：弹层（发往云端工作 / 发往连接电脑 / 取消），先选目标再发 ===== */
.assist-fwd-sheet{position:fixed;inset:0;z-index:150;display:none}
.assist-fwd-sheet.show{display:block}
.assist-fwd-mask{position:absolute;inset:0;background:#000a}
.assist-fwd-panel{
  position:absolute;left:0;right:0;bottom:0;background:var(--surface);
  border-radius:16px 16px 0 0;box-shadow:0 -4px 16px rgba(0,0,0,.18);
  padding:14px 16px var(--safe-b);display:flex;flex-direction:column;gap:8px;
}
.assist-fwd-title{font-size:16px;font-weight:700;color:var(--text);text-align:center;margin-bottom:2px}
.assist-fwd-btn{
  min-height:48px;background:var(--bar-bg);border:1px solid var(--border);border-radius:12px;
  color:var(--text);font-size:16px;font-weight:600;cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:6px;
}
.assist-fwd-btn:active{opacity:.85}
.assist-fwd-btn.cancel{background:var(--card);color:var(--sub)}

/* ===== 049 D组 AI助理 UI 优化 ===== */

/* 老板08-19: 欢迎屏「云端工作/连接电脑」横排两个胶囊; 第四轮改比例协调: 胶囊收窄不过大/字加大不过小/图标减小不过大 */
.assist-cards{flex-direction:row;gap:12px;margin-top:14px}
.assist-card{flex:1;min-width:0;justify-content:center;height:46px;border-radius:23px;font-size:15px;font-weight:600;padding:0 8px;gap:6px}   /* 老板08-19: 胶囊压扁不笨(高46=倒圆角23正胶囊) */
.assist-card .ac-ico{font-size:17px}
.assist-card .ac-name{font-size:15px;font-weight:600;white-space:nowrap}

/* ⑪ LOGO靠左/标题缩小/连接标识缩小 + 验收整改⑥：取消返回、三杠左上角常显 */
/* 0914老板令复形:顶栏还原单行52(胶囊属抽屉不属顶栏),徽章回归 */
.assist-topbar{gap:6px}
#screen-assist{padding-top:calc(env(safe-area-inset-top, 0px) + 52px)}   /* v20260934 四·19: 去掉原padding覆盖(6px会吞掉safe-area-inset-top导致刘海屏不贴顶), 贴刘海由基础规则padding:inset负责 */
.assist-title-name{font-size:16px;font-weight:700;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}   /* 老板08-19: 话题文字收缩短一点, 不占满眉头 */
.assist-conn{font-size:10px;padding:2px 6px;border-radius:8px;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* v20260934 八·B 顶栏4元素：①折叠菜单圆浮标(白底圆+两杠上长下短) ③新建话题(圆角矩形+圆加号) ④更多三点 */
.assist-menu-float{
  flex-shrink:0;width:44px;height:44px;border-radius:50%;border:1px solid var(--border);
  background:var(--card);color:var(--text);display:flex;align-items:center;justify-content:center;
  cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.08);
}
.assist-menu-float:active{background:var(--bar-bg)}
/* 老板08-19第二轮⑤: 新建话题=44×44正圆, 与折叠菜单圆同一规格(不再一圆一扁)
   老板08-19第四轮⑥: 去白底圆框+去蓝→统一黑色纯加号(与折叠菜单/更多同色), 不套背景; 图标拉大由HTML 22→26px */
.assist-new-topic{
  flex-shrink:0;width:44px;height:44px;padding:0;border-radius:50%;border:none;
  background:transparent;color:var(--text);display:flex;align-items:center;justify-content:center;
  cursor:pointer;
}
.assist-new-topic:active{background:var(--bar-bg)}
.assist-more{
  flex-shrink:0;width:44px;height:44px;border-radius:50%;border:none;background:transparent;
  color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;
}
.assist-more:active{background:var(--bar-bg)}
/* v20260934 八·A → 老板08-19改: 顶栏与页面完全融为一体(去颜色区分,干干净净); 折叠菜单圆浮标保留白底圆=唯一入口靠阴影浮起; 语音开关/语速已移出顶栏收进折叠菜单 */
/* 老板08-19第二轮⑥⑦: 顶栏底色=页面底色(刘海安全区无缝一体); 左右留呼吸感(padding14+gap10), 折叠菜单圆不再贴边 */
.assist-topbar{background:var(--bg);border-bottom:none;color:var(--text);padding:calc(env(safe-area-inset-top, 0px) + 8px) 14px 0;gap:10px}   /* 老板08-29: 顶部导航离津屏略近→padTop再加8px留白 */
.assist-topbar .assist-title-name{color:var(--text)}
.assist-topbar .assist-conn{background:var(--accent-soft);color:var(--accent);border-color:transparent}
.assist-menu-float{background:var(--card);color:var(--text);border:1px solid var(--border);box-shadow:0 2px 10px rgba(0,0,0,.10)}   /* 老板08-19⑯: 圆内两杠去蓝→与新建/更多同文字色(加厚同色) */
.assist-menu-float:active{background:var(--bar-bg)}
.assist-new-topic{background:transparent;color:var(--text);border:none;box-shadow:none}   /* 老板08-19第四轮⑥: 去白底圆框/去蓝→统一黑色, 与折叠菜单/更多同色 */
.assist-new-topic:active{background:var(--bar-bg)}
.assist-more{color:var(--text)}
.assist-more:active{background:var(--bar-bg)}
.assist-more-pop{
  position:fixed;top:calc(env(safe-area-inset-top, 0px) + 60px);right:10px;z-index:90;
  background:var(--card);border:1px solid var(--border);border-radius:12px;
  box-shadow:0 8px 24px rgba(0,0,0,.12);padding:6px;display:none;flex-direction:column;min-width:160px;
}
.assist-more-pop.show{display:flex}
.amp-item{
  border:none;background:transparent;text-align:left;padding:11px 12px;border-radius:8px;
  font-size:var(--fs-l3);color:var(--text);cursor:pointer;display:flex;align-items:center;gap:8px;   /* 20260818 字体规范: 菜单项L3=16pt, 去自创15px */
}
.amp-item:active{background:var(--bar-bg)}
.amp-danger{color:#ef4444}

/* ⑫ 输入框留白收敛 + ⑮ 输入框灰底；老板08-19: 输入条整体下沉贴底(下面太空), 底部留白收紧让 compose+AI生成行整体下移贴底(参照导航栏抵底) */
/* v1.1.2 ⑪ 老板UI验收(025949-160): 输入栏贴底太近→加底部安全白边, 不贴底。08-19 贴底被 08-29 追加⑪ 修正(留出 safe-area 白边) */
.assist-input{padding:6px 16px calc(14px + env(safe-area-inset-bottom))}   /* v1.1.2 ⑪: 底部留白(14px+safe-area)撑开, 输入栏不贴屏底 */
/* 输入框下方 AI 生成免责一行字（老板 14:5x 要求：内容由AI生成）→ 老板08-19: 与输入框整体往下滑、下沉贴底 */
.assist-ai-note{
  text-align:center;font-size:12px;color:var(--sub);opacity:.75;
  padding:10px 0 2px;line-height:1.2;-webkit-user-select:none;user-select:none;   /* 老板08-19: 与输入框间距拉开, 底部收紧 */
}
.assist-compose{   /* 老板08-19第二轮: 长条圆角矩形输入框(白底 card + 24px 圆角), 与灰底色区分 */
  background:var(--card);border:none;color:var(--text);
  min-height:54px;border-radius:24px;
}
.assist-compose .ac-mic{color:var(--accent)}
.assist-compose .ac-ph{color:var(--sub);font-weight:500}
.assist-compose .ac-plus{background:transparent;color:var(--sub);border:none}   /* 老板08-19: 加号去灰底圆框→纯加号(同工具行plus-btn), 不再粗笨 */
.assist-compose-open input{min-height:40px}
/* 091 输入框自动换行扩展：textarea 单行→多行，4 行(120px)封顶，超出内部滚动（autoGrow 切 overflow-y） */
.assist-compose-open textarea{
  min-height:42px;resize:none;overflow:hidden;line-height:1.4;
  padding-top:11px;padding-bottom:11px;max-height:120px;
}

/* ⑭ 华为长按语音：按住语音条/输入框/小喇叭时禁系统选择与上下文菜单 */
.assist-compose,.assist-compose-open input,.assist-compose-open textarea,.aco-mic,.plus-btn{
  -webkit-touch-callout:none;-webkit-user-select:none;user-select:none;
}
/* 08-31 item7 老板新点名: 长按语音条区域=录音, 禁系统「选择/复制」菜单——容器+语音条+overlay 全子元素兜底
   (iOS Safari 长按 select / -webkit-touch-callout 菜单 / 输入框子元素原生选择 全路径阻断)。
   输入框 textarea 本就 ⑭ 禁选(长按语音条=录音非编辑), 此块把漏网的子元素(SVG/占位span/工具行/overlay)补齐。 */
.assist-input,
.assist-compose, .assist-compose *,
.assist-compose-open, .assist-compose-open *,
.voice-overlay, .voice-overlay *,
.wx-voicebar, .wx-voicebar *{
  -webkit-touch-callout:none;
  -webkit-user-select:none;
  user-select:none;
  -webkit-tap-highlight-color:transparent;
}

/* 080 我的电脑：节点切换 sheet（底部滑出）+ 会话顶部节点切换条 */
.pc-node-sheet{position:fixed;inset:0;z-index:400;display:none}
.pc-node-sheet.show{display:block}
.pc-node-mask{position:absolute;inset:0;background:rgba(0,0,0,.4)}
.pc-node-panel{
  position:absolute;left:0;right:0;bottom:0;
  background:var(--bg,#fff);border-radius:16px 16px 0 0;
  padding:14px 14px var(--safe-b);
}
.pc-node-title{font-size:16px;font-weight:700;text-align:center;margin-bottom:10px}
.pc-node-list{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}
.pc-node-item{
  padding:12px 4px;border:1px solid var(--border);border-radius:12px;
  background:var(--card,#fff);font-size:14px;text-align:center;
}
.pc-node-item.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:700}
.pc-node-sub{display:block;font-size:11px;font-weight:400;opacity:.6;margin-top:2px}
.pc-node-note{font-size:12px;color:var(--sub,#888);text-align:center;margin:0 4px 10px;line-height:1.4}
.pc-node-cancel{
  width:100%;padding:12px;border-radius:12px;font-size:16px;
  background:var(--bar-bg);border:1px solid var(--border);
}
.pc-nodebar{
  display:flex;align-items:center;gap:6px;margin:8px 10px 2px;padding:10px 14px;
  background:var(--bar-bg);border:1px solid var(--border);border-radius:12px;
  font-size:13px;color:var(--text);
}
.pc-nodebar b{color:var(--accent)}
.pc-nodebar-arrow{margin-left:auto;color:var(--sub)}
/* 验收整改②：PC 会话副标题说明（非新装 AI，插话本机正在运行的会话） */
.pc-note{font-size:12px;color:var(--sub);margin:2px 10px 2px;padding:8px 14px;background:var(--card);border:1px dashed var(--border);border-radius:10px;line-height:1.4}

/* ===== 20260882 P0补⑦ 通话模式：状态条+挂断钮（进入隐藏普通输入条）+ 通话入口 ===== */
.assist-call-bar{
  display:none;align-items:center;gap:10px;
  min-height:54px;padding:0 16px;margin-top:6px;
  background:var(--card);border:1px solid var(--border);border-radius:14px;
  flex-shrink:0;
}
.assist-call-ico{font-size:16px;flex-shrink:0;animation:acallPulse 1.2s ease-in-out infinite}
.assist-call-status{
  flex:1;min-width:0;font-size:16px;color:var(--text);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.assist-call-hang{
  min-width:64px;height:48px;border-radius:24px;border:1px solid #ef4444;color:#ef4444;
  background:var(--bg);font-size:14px;font-weight:600;cursor:pointer;flex-shrink:0;
  display:inline-flex;align-items:center;justify-content:center;gap:4px;
  touch-action:manipulation;-webkit-tap-highlight-color:transparent;
}
.assist-call-hang:active{opacity:.8}
@keyframes acallPulse{0%,100%{opacity:1}50%{opacity:.4}}
/* 通话入口（文字展开态工具行内，R5 触控区 ≥44dp） */
.aco-call{
  width:44px;height:44px;flex-shrink:0;background:transparent;border:none;
  color:var(--accent);border-radius:50%;cursor:pointer;font-size:17px;
  display:inline-flex;align-items:center;justify-content:center;
  touch-action:manipulation;-webkit-tap-highlight-color:transparent;
}
.aco-call:active{background:var(--bar-bg);color:var(--accent)}
/* 通话中：隐藏普通输入条（默认语音条 / 文字行 / AI 免责行），显示通话状态条 */
.assist-input.call-mode .assist-compose,
.assist-input.call-mode .assist-compose-open,
.assist-input.call-mode .assist-ai-note{display:none}
.assist-input.call-mode .assist-call-bar{display:flex}

/* ===== P0 三杠菜单 A2 竖向列表（20260888，替换 ⑰ grid 2×2）：一排一个 + 集群 AI 常显/折叠 ===== */
.assist-menu-list{display:flex;flex-direction:column;padding:0 0 6px;border-bottom:1px solid var(--border);margin-bottom:8px}
.assist-menu-item .assist-sub{font-size:11px;color:var(--sub);font-weight:400;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.assist-menu-divider{font-size:11px;color:var(--sub);padding:8px 18px 4px;font-weight:700}
.assist-menu-fold{justify-content:space-between}
.assist-menu-fold .af-label{font-weight:700;color:var(--accent)}
.assist-menu-fold .af-arrow{font-size:12px;color:var(--sub)}
/* 老板08-19第二轮②：工作模式=两个胶囊并排一行(连接云端/本地电脑, 四字, 去副题解释) */
.assist-mode-row{display:flex;gap:8px;padding:0 18px 8px;flex-shrink:0}
.assist-mode-item{
  flex:1;display:flex;align-items:center;justify-content:center;gap:6px;
  height:44px;padding:0 10px;border-radius:22px;border:1px solid var(--border);
  background:var(--card);color:var(--text);font-size:15px;font-weight:600;text-align:center;
  cursor:pointer;min-height:44px;min-width:0;white-space:nowrap;
}
.assist-mode-item.active{background:var(--accent-bg-light);border-color:var(--accent);color:var(--accent);font-weight:700}
.assist-mode-item:active{background:var(--bar-bg)}
.assist-mode-item .assist-mode-ico{font-size:16px;flex-shrink:0}
/* 老板08-19第二轮③：AI集群(老板端)=胶囊并排, flex-wrap 自动换行 */
.assist-ai-row{display:flex;flex-wrap:wrap;gap:8px;padding:0 18px 8px;flex-shrink:0}
.assist-menu-item.assist-ai-item{
  display:inline-flex;align-items:center;gap:6px;height:44px;padding:0 16px;min-height:44px;
  border-radius:22px;border:1px solid var(--border);background:var(--card);color:var(--text);
  font-size:14px;font-weight:500;cursor:pointer;min-width:0;
}
.assist-menu-item.assist-ai-item:active{background:var(--bar-bg)}
.assist-ai-item .assist-ai-ico{font-size:16px;flex-shrink:0;width:auto}
.assist-ai-item .assist-ai-main{flex:0 0 auto;white-space:nowrap;overflow:visible}
.assist-other-ai{display:none;flex-wrap:wrap;gap:8px;padding:0 18px 8px}
.assist-other-ai.open{display:flex}

/* ===== P0 对话界面 B1/B2：气泡 markdown + 时间戳 + 最近动作/休眠 + 右上角回最新（20260888） ===== */
.pc-msg{display:flex;flex-direction:column;max-width:82%}
.pc-msg-user{align-self:flex-end;align-items:flex-end}
.pc-msg-ai{align-self:flex-start;align-items:flex-start}
.pc-msg-meta{display:flex;align-items:center;gap:6px;padding:2px 4px 0}
.pc-msg .bubble p{margin:0 0 6px}.pc-msg .bubble p:last-child{margin:0}
.pc-msg .bubble ul,.pc-msg .bubble ol{margin:4px 0;padding-left:20px}
.bubble-time{font-size:10px;color:var(--sub);opacity:.8}
.pc-status{font-size:12px;color:var(--sub);margin:4px 12px 2px;line-height:1.4}
.pc-sleep{color:#f59e0b;font-weight:600}
.jump-top{position:absolute;top:12px;right:12px;z-index:20;width:34px;height:34px;border-radius:50%;background:var(--accent);color:#fff;border:none;font-size:16px;line-height:1;box-shadow:0 2px 8px rgba(0,0,0,.35);cursor:pointer}
.msg-highlight{animation:pcMsgHi 1.6s ease-out 3;border-radius:8px}
@keyframes pcMsgHi{0%{background:var(--accent-bg-light)}100%{background:transparent}}

/* ===== 老板 8/9 图「连接电脑」配对落地页 + 未连接电脑说明窗（v1.1.2 连接电脑改造） ===== */
/* 8.jpg 落地页：暂无已连接的电脑 → 立即连接 → 自动化/助理 */
.pc-pair{width:100%;padding:6px 4px;box-sizing:border-box}
.pc-pair-hero{padding:20px 4px 22px}
.pc-pair-title{font-size:20px;font-weight:800;color:var(--text);margin-bottom:8px}
.pc-pair-sub{font-size:14px;color:var(--sub);line-height:1.5;margin-bottom:18px}
.pc-pair-btn{display:block;width:100%;height:50px;border:none;border-radius:28px;background:#111;color:#fff;font-size:16px;font-weight:700;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.18)}
.pc-pair-btn:active{transform:scale(.98)}
.pc-pair-item{display:flex;align-items:center;gap:12px;width:100%;padding:15px 6px;background:transparent;border:none;color:var(--text);font-size:16px;font-weight:600;cursor:pointer;border-radius:10px}
.pc-pair-item:active{background:var(--accent-bg-light)}
.pc-pair-ico{font-size:19px}

/* 9.jpg 未连接电脑 底部说明窗 */
.pc-conn-panel{padding-top:10px}
.pc-conn-handle{width:40px;height:5px;border-radius:3px;background:var(--border);margin:4px auto 18px}
.pc-conn-title{text-align:center;font-size:20px;font-weight:800;color:var(--text)}
.pc-conn-sub{text-align:center;font-size:14px;color:var(--sub);margin:8px 0 20px}
.pc-conn-steps{list-style:none;margin:0 0 4px;padding:0;display:flex;flex-direction:column;gap:12px}
.pc-conn-steps li{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px 16px;font-size:15px;color:var(--text)}
.pc-conn-steps li b{flex-shrink:0}
.pc-conn-steps li b em{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:8px;background:#e7f6ef;color:#0a9b6b;font-style:normal;font-weight:800;font-size:14px}
.pc-conn-steps li span{line-height:1.45}
.pc-conn-steps li i{font-style:normal;font-weight:700}
.pc-conn-up{flex-shrink:0;color:#0a9b6b;font-style:normal;font-weight:800}
.pc-conn-retry{display:block;width:100%;height:50px;margin-top:18px;border:none;border-radius:12px;background:#0a9b6b;color:#fff;font-size:16px;font-weight:700;cursor:pointer}
.pc-conn-know{display:block;width:100%;margin:8px 0 0;padding:12px;border:none;background:transparent;color:#0a9b6b;font-size:15px;font-weight:700;cursor:pointer}
.pc-conn-later{display:block;width:100%;margin:2px 0 4px;padding:13px;border:.5px solid var(--border);border-radius:12px;background:var(--card);color:var(--sub);font-size:15px;font-weight:600;cursor:pointer}


/* ═══ 0905 晨：AI 回复排版（md-h 标题 / md-li 列表 / 行内码 / 段距） ═══ */
.bubble.ai p{margin:7px 0;line-height:1.72}   /* 0905 晨（老板令：段落感）段距拉开 */
.bubble.ai .md-h{font-weight:800;font-size:15.5px;color:var(--text);margin:8px 0 3px;line-height:1.5}
.bubble.ai .md-li{margin:2px 0 2px 4px;padding-left:16px;text-indent:-16px;line-height:1.6}
.bubble.ai code{background:rgba(0,0,0,.06);padding:1px 5px;border-radius:4px;font-family:Menlo,Consolas,monospace;font-size:13px}
.bubble.ai strong{font-weight:800;color:var(--text);background:linear-gradient(transparent 62%, rgba(201,154,60,.28) 62%);padding:0 1px;border-radius:2px}   /* 0905 晨（老板令）：重点加粗+金色底衬高亮 */
.bubble.ai strong em,.bubble.ai strong i{font-style:normal}
[data-theme="dark"] .bubble.ai code{background:rgba(255,255,255,.1)}


/* ═══ 0905 晨：直播态思考框全宽（老板令：思考过程中流式文字也要向右扩，不是点开才宽） ═══ */
.bubble.ai.thinking-wrap{max-width:100%;width:100%;align-self:flex-start}


/* ═══ 0905 晨：AI 通话全屏（半双工对讲） ═══ */
#callScreen{position:fixed;inset:0;z-index:12000;background:linear-gradient(165deg,#1E2430,#12151C);display:flex;flex-direction:column;align-items:center;color:#EDEDF2;animation:callIn .25s ease}
@keyframes callIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.call-top{width:100%;padding:calc(env(safe-area-inset-top, 0px) + 20px) 24px 10px;display:flex;justify-content:space-between;align-items:center;box-sizing:border-box}
.call-title{font-size:16px;font-weight:700}
.call-timer{font-size:14px;color:#9EA0B0;font-variant-numeric:tabular-nums}
.call-avatar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;width:100%}
.call-orb{width:112px;height:112px;border-radius:50%;background:radial-gradient(circle at 32% 28%,#3A4356,#202634);display:flex;align-items:center;justify-content:center;font-size:46px;transition:box-shadow .3s}
.call-orb.live{animation:callPulse 1.5s ease-out infinite}
@keyframes callPulse{0%{box-shadow:0 0 0 0 rgba(201,154,60,.4)}100%{box-shadow:0 0 0 28px rgba(201,154,60,0)}}
.call-status{font-size:15px;color:#B9BCC8;text-align:center;padding:0 30px}
.call-controls{display:flex;align-items:center;gap:30px;padding:0 0 calc(env(safe-area-inset-bottom, 0px) + 48px)}
.call-btn{border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;min-width:60px;height:60px;padding:0 12px}
.call-mic{background:#2A3140;color:#EDEDF2;width:66px;height:66px}
.call-mic.on{background:var(--accent,#C99A3C);color:#141414}
.call-mute{background:#232936;color:#B9BCC8}
.call-mute.off{opacity:.45}
.call-end{background:#E5484D;color:#fff;width:66px}
.call-btn:active{transform:scale(.94)}


/* ═══ 0905 晨：音色性格选款弹窗（点图标=换嗓+试听） ═══ */
#voiceStylePick .ahd-sheet{max-width:340px}
.vsp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:6px 4px 2px}
.vsp-it{display:flex;flex-direction:column;align-items:center;gap:5px;padding:12px 4px;border-radius:14px;border:1.5px solid var(--border);background:var(--bar-bg);color:var(--text);font-size:13px;font-weight:600}
.vsp-it .vsp-ic{font-size:26px;line-height:1}
.vsp-it.on{border-color:var(--accent,#C99A3C);background:linear-gradient(180deg,rgba(201,154,60,.14),rgba(201,154,60,.05));box-shadow:0 0 0 1px var(--accent,#C99A3C) inset}
.vsp-it:active{transform:scale(.95)}
.vsp-nm{letter-spacing:.5px}
.vsp-tip{padding:10px 6px 2px;font-size:12px;color:var(--sub);text-align:center;line-height:1.5}

/* ═══ 0905 晨：对话框 🎭 选款按钮 ═══ */
.aco-style{width:38px;height:38px;border-radius:12px;border:1px solid var(--border);background:var(--bar-bg);color:var(--text);font-size:19px;display:flex;align-items:center;justify-content:center;padding:0;flex:0 0 auto}
.aco-style:active{transform:scale(.92)}

/* ═══ 0905 晨：款单回复内嵌选款 chips ═══ */
.vchip-row{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 2px}
.vchip{border:1.5px solid var(--border);background:var(--bar-bg);color:var(--text);border-radius:999px;padding:6px 13px;font-size:13px;font-weight:600}
.vchip.on{border-color:var(--accent,#C99A3C);color:var(--accent,#C99A3C);background:rgba(201,154,60,.08)}
.vchip:active{transform:scale(.94)}

/* ── 0905 晨：产物资产库（老板令搞通）── */
.asst-sheet{max-height:82vh}
.asst-list{max-height:66vh;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:4px 14px 14px}
.asst-row{padding:10px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.asst-row:last-child{border-bottom:none}
.asst-row-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.asst-ico{font-size:18px;flex-shrink:0}
.asst-title{flex:1;font-size:13px;color:var(--text,#eee);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.asst-date{font-size:11px;color:#8a8b96;flex-shrink:0}
.asst-media{width:100%;max-height:220px;border-radius:10px;background:#000;display:block}
img.asst-media{width:100%;height:auto;max-height:260px;object-fit:cover}
.asst-file{display:inline-block;font-size:13px;color:#BE8A2E;text-decoration:none;padding:6px 0}
.asst-acts{display:flex;gap:14px;margin-top:6px}
.asst-act{font-size:12px;color:#BE8A2E;text-decoration:none;background:none;border:none;padding:2px 0;cursor:pointer}

/* ── 0905 晨：技能广场（统一下单界面）── */
.sk-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid rgba(255,255,255,.06);padding:12px 2px;cursor:pointer}
.sk-ico{font-size:22px;flex-shrink:0}
.sk-mid{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.sk-mid b{font-size:14px;color:var(--text,#eee)}
.sk-mid i{font-style:normal;font-size:12px;color:#9a9ba6;line-height:1.35;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.sk-price{font-size:11px;color:#BE8A2E;flex-shrink:0}
.sk-free{color:#5fb878}
.sk-desc{font-size:12px;color:#9a9ba6;margin-bottom:8px}
.sk-textarea{width:100%;box-sizing:border-box;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:10px;color:var(--text,#eee);font-size:14px;padding:10px;min-height:72px;resize:none}
.sk-go{width:100%;margin-top:10px;background:#BE8A2E;color:#fff;border:none;border-radius:12px;font-size:15px;font-weight:600;padding:12px;cursor:pointer}
.sk-go:disabled{opacity:.6}
.sk-note{font-size:11px;color:#8a8b96;margin-top:8px;text-align:center}
.sk-row.sk-c .sk-mid b{color:#f0d9a8}
.sk-plug{flex-shrink:0;font-size:11px;border-radius:9px;padding:5px 9px;border:1px solid rgba(190,138,46,.5);background:rgba(190,138,46,.12);color:#BE8A2E;cursor:pointer}
.sk-plug.sk-on{border-color:rgba(95,184,120,.5);background:rgba(95,184,120,.12);color:#5fb878}

/* ── 0905 晨：插件广场·生产线跟踪卡（老板批：下单后要有看得见的进度）── */
.sk-steps{padding:6px 2px 2px}
.sk-step{font-size:13px;color:#8a8b96;padding:7px 0;border-bottom:1px dashed rgba(255,255,255,.07)}
.sk-step.sk-done{color:#5fb878}
.sk-step.sk-run{color:#f0d9a8;animation:skpulse 1.2s ease-in-out infinite}
.sk-step.sk-fail{color:#e07a7a}
@keyframes skpulse{0%,100%{opacity:.55}50%{opacity:1}}
.sk-result{font-size:13px;color:#d8d9de;background:rgba(255,255,255,.04);border-radius:10px;padding:10px;margin:8px 0;line-height:1.5;max-height:150px;overflow-y:auto;-webkit-overflow-scrolling:touch}
.sk-go2{margin-top:10px}
/* 0913老板:输入板块贴底——整个底条一色灰到底(含安全区),灭掉底部黑块;保留发丝线+柔影 */
/* 0914老板令:亮色乱配色真凶之一——底条硬编码#232427压过亮色令牌=上米下黑断裂;令牌化后亮=#EFECE4暗=#2C2C34 */
.assist-input{box-shadow:0 -8px 22px rgba(0,0,0,.10);background:var(--bar-bg,#232427);border-top:1px solid var(--border,#3C3C45);padding:8px 16px calc(2px + env(safe-area-inset-bottom))}
[data-theme="dark"] .assist-input{box-shadow:0 -1px 0 rgba(255,255,255,.06),0 -8px 22px rgba(0,0,0,.20)}
.assist-ai-note{padding:6px 0 0;opacity:.55}
/* 0913老板:桥接模式下Auto/✨AI优化/通话是云端功能(未接桥)——隐藏,桌面端对应能力后续接 */
/* 0913老板令:文字输入按钮对齐桌面端——解除桥接模式隐藏,Auto模型/通话/✨优化与桌面同排同功能 */

/* ===== 0914越界·老板令三段锁定(结构性退役0913终案fixed翻转化石) =====
   0913化石成因=预重装时代canvas底部47pt幽灵间隙(envT快照bug),fixed锚底是当时唯一解;
   default状态栏修复后canvas=玻璃底无缝(GEO4w实测docH=视口底),化石反成漂移温床(fixed↔static随键盘翻转)。
   今定案:#screen-assist.active flex列三段=顶栏fixed+spacer(envT+52)锁定 / 中部welcome|body-wrap flex:1内滚 /
   输入条基座flex-shrink:0(relative)列末钉底——无翻转无跳变,键盘态靠#app钉高(offsetTop+height)铁律照旧。
   GEO4w归因:fixed罩welcome底部93px致内容居中偏差半条高+两态翻转=漂移温床 */
body.kb-open #screen-assist.active .assist-body{padding-bottom:0}

/* 0913老板令:授权选择=图标+小三角+下拉列表;所有下拉型控件旁都有小三角 */
.assist-auto{-webkit-appearance:none;appearance:none;padding-right:15px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='5' viewBox='0 0 8 5'><path d='M0 0l4 5 4-5z' fill='%23888' /></svg>");background-repeat:no-repeat;background-position:right 3px center}
.auth-dd{position:relative;flex-shrink:0}
.auth-btn{width:auto;min-width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;gap:4px;background:transparent;border:none;color:var(--text);cursor:pointer;padding:0 6px;-webkit-tap-highlight-color:transparent}   /* 0913:44px定宽把图标+状态文字+三角全挤没了(吃掉血案),改auto自适应 */
.auth-btn:active{color:var(--accent)}
.dd-tri{width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor;opacity:.7}
.auth-mask{position:fixed;inset:0;z-index:9998;background:transparent}
.auth-list{position:absolute;left:0;bottom:calc(100% + 6px);z-index:9999;min-width:172px;   /* 0914老板令:加宽,四字选项不被截成自动化 */background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.4);overflow:hidden;display:flex;flex-direction:column}
.auth-list button{display:block;width:100%;text-align:left;min-height:42px;padding:0 14px;border:none;background:none;color:var(--text);font-size:14px;cursor:pointer}
.auth-list button:active{background:var(--accent-soft);color:var(--accent)}

/* 0913老板令:下拉触发器直显当前状态(图标+状态文字+小三角),选后最简展示 */
.auth-btn b,.model-btn b{font-size:13px;font-weight:500;color:var(--text);max-width:72px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.model-btn{width:auto;min-width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;gap:4px;background:transparent;border:none;color:var(--sub);cursor:pointer;padding:0 4px;-webkit-tap-highlight-color:transparent}
.model-btn:active{color:var(--accent)}

/* 0913老板令二改:启用态不学发送键(实心蓝圆),改线稿图标+双道扩散波环——多道光往外散发,一听就懂 */
.aco-call.rec{color:var(--accent)!important;background:transparent;border-radius:50%;position:relative}
.aco-call.rec::before,.aco-call.rec::after{content:'';position:absolute;inset:3px;border:2px solid var(--accent);border-radius:50%;animation:recWave 1.6s ease-out infinite;pointer-events:none}
.aco-call.rec::after{animation-delay:.8s}
@keyframes recWave{0%{transform:scale(.85);opacity:.85}100%{transform:scale(1.85);opacity:0}}

/* 0914老板令:下载横幅改悬浮浮层——不再插在欢迎流里把内容压低,关闭后吉祥物不再弹跳 */
.assist-dl-banner{position:fixed;top:calc(60px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:calc(100% - 24px);max-width:456px;z-index:80;box-shadow:0 6px 20px rgba(0,0,0,.45)}   /* 0914越界·老板令③:顶栏高envT+52,横幅下让至60px起——不再盖返回/汉堡 */

/* 0914老板令:下拉弹窗行=图标+文字+已选勾(行尾) */
.auth-list button{display:flex;align-items:center;gap:8px}
.al-ico{display:inline-flex;color:var(--sub);flex-shrink:0}
.al-check{margin-left:auto;color:var(--accent);font-style:normal;font-weight:700}

/* 0914老板令:AI忙时排队条(对齐桌面端)——回归文档流嵌在输入条上方,随键盘起落整体移动,不再逐步上飘 */
#assistQueue{position:absolute;bottom:112px;left:0;right:0;z-index:60;display:flex;flex-direction:column;gap:3px;padding:0 12px;pointer-events:none}   /* 0914老板令二改:压缩占面 */
.aq-item{display:flex;align-items:center;gap:6px;background:var(--card);border:1px solid var(--border);border-radius:9px;padding:3px 8px;pointer-events:auto;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.aq-txt{flex:1;font-size:12px;color:var(--sub);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aq-go{flex-shrink:0;width:30px;height:30px;border-radius:50%;border:none;background:var(--accent);color:#fff;font-size:15px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center}


/* 0914老板令:排队行三钮(插队↑/编辑✎/删除✕),对齐桌面端 */
.aq-edit,.aq-del,.aq-save{flex-shrink:0;width:30px;height:30px;border-radius:50%;border:none;background:var(--accent-soft);color:var(--accent);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center}   /* 0914老板令:30px防误触 */
.aq-del{background:rgba(220,38,38,.15);color:#dc2626}
.aq-inp{flex:1;min-width:0;background:var(--bg);border:1px solid var(--accent);border-radius:6px;color:var(--text);font-size:12px;padding:4px 6px}
.aq-save{background:var(--accent);color:#fff}

/* 0914老板令:有排队条时消息垫层加高——最新消息从输入框上方紧贴着向上生长,不被排队条压住 */
.assist-body.has-queue{padding-bottom:158px}

/* 0914老板令:排队条对齐桌面端QueueDock——面板式,多条折叠计数头,动作钮居右 */
#assistQueue{gap:0}
.aq-panel{background:var(--card);border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:0 4px 14px rgba(0,0,0,.35)}
.aq-head{display:flex;align-items:center;gap:8px;padding:9px 12px;cursor:pointer;font-size:13px;color:var(--text)}
.aq-lead{color:var(--sub);flex-shrink:0;font-style:normal}
.aq-count{flex:1;font-weight:600}
.aq-chev{color:var(--sub);font-size:12px}
.aq-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-top:1px solid var(--border);background:none;border-radius:0;box-shadow:none}
.aq-txt{font-size:13px;color:var(--sub)}
.aq-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}
.aq-inp{flex:1;min-width:0;background:var(--bg);border:1px solid var(--accent);border-radius:6px;color:var(--text);font-size:13px;padding:5px 8px}

/* 0914老板令:WorkBuddy同款连接电脑引导弹窗(底部滑入,三步卡+重新检测) */
.apg-mask{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:9000}
.apg-sheet{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:100%;max-width:480px;background:var(--bg,#f5f5f7);border-radius:18px 18px 0 0;padding:16px 16px calc(16px + env(safe-area-inset-bottom));z-index:9001;box-sizing:border-box}
.apg-head{display:flex;align-items:center;justify-content:space-between}
.apg-head b{font-size:18px;color:var(--text)}
.apg-x{background:none;border:none;font-size:22px;color:var(--sub);cursor:pointer;padding:0 4px}
.apg-sub{font-size:13px;color:var(--sub);margin:4px 0 12px}
.apg-card{display:flex;gap:10px;background:var(--card);border-radius:12px;padding:12px;margin-bottom:10px}
.apg-n{font-size:18px;font-weight:700;color:var(--sub);line-height:1.2}
.apg-c{display:flex;flex-direction:column;gap:2px;min-width:0}
.apg-c b{font-size:14px;color:var(--text)}
.apg-d{font-size:12px;color:var(--sub);overflow:hidden;text-overflow:ellipsis}
.apg-d a,.apg-link{color:var(--accent);text-decoration:none;font-style:normal}
.apg-recheck{width:100%;min-height:46px;border:none;border-radius:12px;background:#1a1a1e;color:#fff;font-size:15px;font-weight:600;cursor:pointer;margin-top:2px}
.apg-recheck:active{opacity:.85}
[data-theme=dark] .apg-sheet{background:#1c1d21}
[data-theme=dark] .apg-recheck{background:var(--accent);color:#141416}

/* 0914老板令:欢迎屏整页禁滚——探针实锤body滚了131px(整列被顶出视口=顶栏/输入条跟着漂)。顶栏输入条物理锁死:滚动只许发生在中部内容区 */
html,body{height:100%;overflow:hidden}
#app{height:100dvh;max-height:100dvh;overflow:hidden;display:flex;flex-direction:column}
/* 0914老板令二次修正:上版漏了.active限定=assist无条件display:flex,ID选择器压过.screen的display:none,
   设置中心永远被消息页盖住(.43病以新形态复发);现限定active,非激活态交还.screen的display:none */
#screen-assist.active{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}

/* 0914老板令:附件上传——预览条+聊天缩略图 */
#assistAttachStrip{display:none;gap:8px;padding:6px 4px;overflow-x:auto}
#assistAttachStrip .att-th{position:relative;flex:0 0 auto}
#assistAttachStrip .att-th img{width:64px;height:64px;object-fit:cover;border-radius:10px;display:block;border:1px solid var(--border,#3c3c45)}
#assistAttachStrip .att-th i{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:#e5484d;color:#fff;font-style:normal;font-size:14px;line-height:20px;text-align:center;cursor:pointer}
.asd-body .bubble.user .br-att,.assist-body .bubble.user .br-att{display:block;width:140px;max-width:60%;border-radius:10px;margin-top:6px;cursor:pointer}
#assistAttachStrip .att-fth{flex:0 0 auto;background:var(--card,#24242b);border:1px solid var(--border,#3c3c45);border-radius:10px;padding:6px 10px;font-size:12px;color:var(--text,#ededf2);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}
.asd-body .bubble.user .br-fatt,.assist-body .bubble.user .br-fatt{display:block;margin-top:6px;font-size:12px;color:var(--gold,#e8c46b);text-decoration:none;border:1px solid var(--gold,#e8c46b);border-radius:8px;padding:6px 10px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 0914老板令:工作模式胶囊上顶栏锁死——胶囊行占满顶栏第二行,顶底锁定只滚中间 */
.assist-mode-pill.amp-drawer{display:flex;align-items:stretch;gap:8px;padding:8px 14px 12px;flex-shrink:0;border-bottom:1px solid var(--border)}
.assist-mode-pill.amp-drawer .amp-box.amp-shrink{flex:1 1 auto;max-width:calc(100% - 52px)}
.amp-scan{width:44px;flex:0 0 44px;border:1px solid var(--border);border-radius:999px;background:var(--surface,#fff);color:var(--text);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.amp-scan:active{background:var(--bar-bg,#eef2f6)}
[data-theme=dark] .amp-scan{background:var(--bar-bg,#232323);border-color:#48484f}
.assist-mode-pill.amp-drawer .amp-box{width:100%}

/* 0914老板令定稿:抽屉顶排=模式下拉+扫一扫,紧凑一行;选项用.amp-btn复用全局委托 */
.dp-row{display:flex;align-items:center;gap:8px;padding:8px 14px 10px;flex-shrink:0;position:relative}
.dp-mode-wrap{position:relative;flex:0 0 auto}
.dp-mode{display:inline-flex;align-items:center;justify-content:center;gap:5px;height:34px;padding:0 14px;border:1px solid var(--border);border-radius:999px;background:var(--surface,#fff);color:var(--text);font-size:13.5px;font-weight:600;cursor:pointer}
.dp-mode b{font-weight:700}
.dp-mode svg{opacity:.65}
.dp-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:20;min-width:150px;background:var(--surface,#fff);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.18);padding:4px;display:none}
.dp-menu .dp-opt{display:flex;width:100%;height:36px;border-radius:8px;font-size:13.5px}
.dp-menu .dp-opt.active{background:var(--accent);color:#fff;-webkit-text-fill-color:#fff}
.dp-scan{display:inline-flex;align-items:center;justify-content:center;gap:5px;margin-left:auto;height:34px;padding:0 14px;border:1px solid var(--border);border-radius:999px;background:var(--surface,#fff);color:var(--text);font-size:13.5px;font-weight:600;cursor:pointer}
.dp-scan:active{background:var(--bar-bg,#eef2f6)}
[data-theme=dark] .dp-mode,[data-theme=dark] .dp-scan,[data-theme=dark] .dp-menu{background:var(--bar-bg,#232323);border-color:#48484f}

/* 0914老板令终稿:顶排纯文字无胶囊,紧凑相邻;下拉选项选中态保底 */
.dp-row{gap:18px}
.dp-mode,.dp-scan{border:none !important;background:transparent !important;height:auto;padding:4px 2px;border-radius:8px}
.dp-mode b{font-size:14.5px}
.dp-scan{color:var(--sub)}
.dp-scan svg{opacity:.8}
.dp-scan span{color:var(--text)}
/* 话题行:时间右贴边 */
.assist-menu-item.ah-item .ah-d{margin-left:auto;flex-shrink:0;padding-left:10px}
/* 工作目录折叠壳 */
.ab-ws{border:none;background:transparent;padding:0;margin:0}
.ab-ws>summary{list-style:none;display:flex;align-items:center;gap:6px;padding:9px 14px;font-size:14px;font-weight:600;color:var(--text);cursor:pointer}
.ab-ws>summary::-webkit-details-marker{display:none}
.ab-ws>summary .ab-arrow{font-size:10px;color:var(--sub)}
.ab-ws[open]>summary .ab-arrow{transform:rotate(90deg)}
.ab-ws .ab-ss .ah-d{color:var(--sub);font-size:11.5px}
/* 底条再压半:面板零底缝,行高更紧 */
.assist-panel{padding:10px 0 0}
.db-login{padding:6px 14px;font-size:13px}
.db-user .ap-ico{width:22px;height:22px;font-size:11px}

/* 0914老板令:抽屉字号对齐桌面左栏——目录/话题行回到菜单基线,不再小字 */
.ab-ws>summary{font-size:16px;padding:11px 14px}
.ab-ws .ab-ss{padding-left:34px !important}
.ab-ws .ab-ss .ah-t{font-size:15.5px}
.ab-ws .ab-ss .ah-d{font-size:12.5px}
.ab-ws .ah-empty{padding:8px 14px 12px 34px}
.dp-mode b{font-size:15.5px}
.dp-scan span{font-size:14.5px}
/* 0914老板令:底条真正贴底——面板零缝+安全区钉死 */
.assist-panel{padding:8px 0 0}
/* 0918老板令(20:03):底部条=登录/用户条+设置图标(不登录可用)——flex 一行贴底,登录钮大字体 */
.assist-bottom{margin-top:auto;display:flex;align-items:center;gap:10px;padding:10px 14px calc(env(safe-area-inset-bottom, 0px) + 12px)}
.assist-bottom .db-login{flex:1;font-size:15px;font-weight:600;min-height:44px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:var(--bar-bg)}
.assist-bottom .db-user{flex:1;min-height:44px}
.assist-bottom .db-set{flex:none;width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--text)}
.assist-bottom .db-set:active{opacity:.7}

/* 0914老板令:抽屉排版栅格化——行高42、内距10/16、组题12px,密而不挤 */
.assist-menu-item{padding:10px 16px;min-height:42px}
.ab-ws>summary{padding:10px 16px;font-size:15.5px;line-height:1.4}
.ab-ws .ab-ss{padding-left:36px !important;min-height:40px}
.ab-ws .ab-ss .ah-t{font-size:15px;line-height:1.4}
.ab-ws .ab-ss .ah-d{font-size:12px;color:var(--sub)}
.ab-grp-title,.assist-menu-divider{padding:12px 16px 6px;font-size:12px;letter-spacing:.5px}
.dp-row{padding:12px 16px}

/* 0914老板令:行高随字走——小字行不硬扛42,高度自适应 */
.assist-menu-item{min-height:0}
.ab-ws>summary{padding:9px 16px}
.ab-ws .assist-menu-item{min-height:0;padding:8px 16px 8px 36px}

/* 0914老板令:话题时间加大字且贴右缘 */
.assist-menu-item.ah-item .ah-d{font-size:13px;margin-left:auto;flex:0 0 auto;text-align:right}
.ab-ws .ab-ss .ah-d{font-size:13px}

/* 0917老板03:20令:左上角模式chip下方=连接状态小字(已接管/已连接/已断开/未登录) */
.assist-conn-sub{font-size:9px;line-height:1.1;padding:1px 6px;color:var(--muted,#999);opacity:.85;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 0918老板令:电脑组工具行(对齐桌面端左侧栏)——工作区下拉+新会话 */
.ab-toolbar{display:flex;gap:6px;align-items:center;margin:2px 2px 8px}
.ab-wsselect{flex:1;min-width:0;height:34px;border:1px solid var(--line,#e5e7eb);border-radius:9px;background:var(--surface,#fff);color:var(--ink,#18191c);font-size:13px;padding:0 8px}
.ab-newpc{flex-shrink:0;height:34px;border:1px solid var(--line,#e5e7eb);border-radius:9px;background:var(--surface,#fff);color:var(--ink,#18191c);font-size:13px;font-weight:600;padding:0 12px;cursor:pointer}
.ab-newpc:disabled{opacity:.5}

/* 0918老板令:横幅底置不挡吉祥物+欢迎内容垂直居中(覆盖fixed顶部旧规则) */
.assist-dl-banner{position:absolute;top:auto;bottom:12px;left:12px;right:12px;transform:none;width:auto;max-width:none;z-index:5}
.assist-welcome{justify-content:center}
.assist-welcome > :first-child{margin-top:0}
.assist-welcome > :last-child{margin-bottom:0}

/* 0918老板令:富媒体消息卡片 + 消息文字可长按选择(系统菜单:复制/全选) */
.asd-media{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.asd-media-card{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line,#e5e7eb);border-radius:12px;background:var(--surface,#fff);cursor:pointer;min-width:0}
.asd-media-card:active{opacity:.75}
.asd-media-ic{font-size:20px;flex-shrink:0}
.asd-media-nm{font-size:13px;color:var(--ink,#18191c);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.asd-media-img{width:100%;max-width:240px;max-height:180px;object-fit:cover;border-radius:8px;display:block}
.bubble, .bubble *{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}

/* 0918老板令:视频缩略图(首帧)+播放按钮;取不到首帧降级图标 */
.asd-media-vthumb{position:relative;width:124px;height:70px;border-radius:8px;background:#141416;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.asd-media-vthumb video{width:100%;height:100%;object-fit:cover;background:#141416}
.asd-media-vthumb .asd-media-play{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:22px;text-shadow:0 1px 8px rgba(0,0,0,.65);pointer-events:none}
.asd-media-vthumb .asd-media-vfallback{font-size:26px}
