/* ===== 云枢智控 · 语音交互与思考反馈组件样式（static/voice/voice.css） =====
   20260867 语音R1-R7 消息中枢集成：独立目录语音组件（不挤 mobile.*.js 平铺）。
   覆盖：R1 全局播报开关(.vs-* 小组件，voice.js 注入) / R3 按住说话 / R4 语音回复开关 /
        R5 按钮触控规范 / R7 思考流步进条。与 voice.js/thinkflow.js 配套，被 /static/mobile.html 引用。
   约束：单文件 ≤500 行。 */

/* ===== R2 气泡播报双入口布局（AI 气泡内 文本 + 🔊 播报钮 并排） =====
   总整改单⑧ 20260818: 气泡最大宽统一 ≤70%（原 88%/80% 违反微信式气泡规格,收紧；文本+🔊并排由 flex 自适应,不另加宽） */
.kefu-bubble-row.theirs .kefu-bubble{
  display:flex;align-items:center;gap:6px;max-width:70%;
}
.kefu-bubble-row.theirs .kefu-text{flex:1;min-width:0}
.kefu-bubble-row.theirs .kefu-bubble.pending{display:block;max-width:70%}

/* 输入条行内新钮：允许 hint 收缩不挤占（R5 间距 ≥8dp 已由 .kefu-input-row gap 保证） */
.kefu-input-row .kefu-hint{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ===== R5 按钮触控规范（≥48dp 触控区 / ≥60dp 热区 / 间距 ≥8dp，不重叠） ===== */
.kefu-tap{
  min-width:48px;min-height:48px;padding:0 14px;
  border-radius:12px;border:none;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  font-size:15px;line-height:1;flex-shrink:0;touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
.kefu-tap:active{opacity:.85}

/* 气泡播报钮（R2 单条：双入口之一） */
.kefu-speak{
  min-width:44px;height:36px;border:none;border-radius:10px;cursor:pointer;
  background:var(--card);color:var(--accent,#4f46e5);font-size:15px;line-height:1;
  margin-left:6px;flex-shrink:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent;
}
.kefu-speak.speaking{background:var(--accent-grad,#4f46e5);color:#fff}
.kefu-bubble.speakable{cursor:pointer}

/* 输入条：按住说话（R3）+ 语音回复开关（R4）+ 发送 */
.kefu-hold{
  min-width:108px;height:48px;border-radius:12px;border:1px solid var(--border);
  background:var(--bg);color:var(--text);font-size:15px;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  touch-action:none;user-select:none;-webkit-user-select:none;flex-shrink:0;
  -webkit-tap-highlight-color:transparent;
}
.kefu-hold.listening{background:linear-gradient(135deg,#f43f5e,#ef4444);color:#fff;border-color:transparent}
.kefu-vreply{
  display:inline-flex;align-items:center;gap:4px;font-size:13px;color:var(--sub);
  cursor:pointer;flex-shrink:0;min-height:48px;padding:0 4px;
}
.kefu-vreply input{width:18px;height:18px;accent-color:#4f46e5;cursor:pointer}

/* ===== R7 思考流步进条（thinkflow.js 渲染目标容器 .tf-host） ===== */
.tf-host{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--sub)}
.tf-bar{display:inline-flex;align-items:center;gap:4px}
.tf-dot{
  width:8px;height:8px;border-radius:50%;background:var(--border,#d1d5db);
  transition:background .2s;
}
.tf-dot.done{background:#22c55e}
.tf-dot.active{background:#4f46e5;animation:tf-pulse 1s ease-in-out infinite}
.tf-label{margin-left:4px;white-space:nowrap}
@keyframes tf-pulse{0%,100%{opacity:1}50%{opacity:.4}}
.tf-type{white-space:pre-wrap;word-break:break-word;font-size:15px;line-height:1.55}

/* ===== R3 通话模式：出口/挂断/听筒-扬声器（一期按住说话，二期 VAD 扩展） ===== */
.kefu-call-bar{
  display:flex;align-items:center;justify-content:center;gap:12px;
  padding:8px 12px;background:var(--card);border-top:1px solid var(--border);
}
.kefu-call-btn{
  min-width:60px;height:48px;border-radius:12px;border:1px solid var(--border);
  background:var(--bg);color:var(--text);font-size:13px;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
  touch-action:manipulation;-webkit-tap-highlight-color:transparent;
}
.kefu-call-btn.hang{color:#ef4444;border-color:#ef4444}
.kefu-call-btn:active{opacity:.8}

/* ===== #60②③ 全局语音设置小组件（R1 开关矢量两态 + 语速三档，AppVoice.mountVoiceWidget 注入） ===== */
.vs-host{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}
.vs-btn{
  width:34px;height:34px;border:none;border-radius:50%;background:transparent;
  color:var(--accent,#4f46e5);cursor:pointer;flex-shrink:0;
  display:inline-flex;align-items:center;justify-content:center;
  touch-action:manipulation;-webkit-tap-highlight-color:transparent;
}
.vs-btn svg{width:20px;height:20px}
.vs-btn.off{color:var(--sub,#9ca3af);opacity:.55}   /* 关=灰暗 */
.vs-sel{
  height:32px;max-width:74px;border:1px solid var(--border);border-radius:16px;
  background:var(--card);color:var(--text);font-size:13px;padding:0 6px;flex-shrink:0;
}
/* #60② 语音设置组件进子页顶栏：标题收缩防溢出（长标题省略号，不换行顶乱顶栏） */
#screen-kefu .subbar h2,#screen-delegate .subbar h2,#screen-reviews .subbar h2{
  min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
