/* 语音通话模式(全屏) */
.call-ov{position:fixed;inset:0;z-index:9000;display:flex;flex-direction:column;background:linear-gradient(160deg,#fbe4ec 0%,#e9ecfb 55%,#dbe8ff 100%);color:#1f2a3a;font-family:inherit}
.call-top{display:flex;align-items:center;gap:10px;padding:14px 16px;font-size:13px}
.call-top .call-scene{flex:1;text-align:center;font-weight:600;color:#3d4d60;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.call-ic{width:34px;height:34px;border-radius:50%;border:0;background:rgba(255,255,255,.6);color:#3d4d60;font-size:16px;cursor:pointer}
.call-ic.on{background:#4d7df3;color:#fff}
.call-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px 20px;min-height:0}
.call-avatar{position:relative;width:150px;height:150px;border-radius:50%;background:#fff;box-shadow:0 12px 40px rgba(77,125,243,.18);display:grid;place-items:center;font-size:64px;font-weight:700;color:#4d7df3}
.call-avatar span{position:relative;z-index:2}
.call-avatar i{position:absolute;inset:0;border-radius:50%;border:2px solid rgba(77,125,243,.35);opacity:0;pointer-events:none}
.call-avatar.speaking i{animation:ring 1.8s ease-out infinite}.call-avatar.speaking i:nth-child(3){animation-delay:.6s}.call-avatar.speaking i:nth-child(4){animation-delay:1.2s}
.call-avatar.listening{box-shadow:0 0 0 6px rgba(33,196,122,.25),0 12px 40px rgba(77,125,243,.18)}
.call-avatar.thinking span{animation:pulse 1.2s ease-in-out infinite}
@keyframes ring{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.55);opacity:0}}
@keyframes pulse{50%{opacity:.45}}
.call-name{margin-top:18px;font-size:16px;font-weight:600}.call-name small{font-weight:400;color:#7b8a9c;font-size:11px;margin-left:6px}
.call-dots{display:flex;gap:6px;margin-top:26px;height:8px}.call-dots b{width:8px;height:8px;border-radius:50%;background:#9fb0c8;animation:dot 1.4s infinite}.call-dots b:nth-child(2){animation-delay:.2s}.call-dots b:nth-child(3){animation-delay:.4s}
@keyframes dot{0%,80%,100%{opacity:.3}40%{opacity:1}}
.call-status{margin-top:12px;font-size:13px;color:#5b6b80;min-height:20px;text-align:center}
.call-cap{margin-top:14px;width:min(100%,560px);max-height:32vh;overflow:auto;display:flex;flex-direction:column;gap:6px;padding:0 4px}
.cap{font-size:13px;line-height:1.6;padding:8px 12px;border-radius:12px;max-width:92%;overflow-wrap:anywhere}
.cap.ai{align-self:flex-start;background:rgba(255,255,255,.75);color:#2f3d4e}
.cap.user{align-self:flex-end;background:rgba(77,125,243,.85);color:#fff}
.cap.user.live{background:rgba(77,125,243,.45)}
.call-kb{display:flex;gap:8px;padding:0 20px 8px}.call-kb input{flex:1;min-width:0;border:1px solid #d6deea;border-radius:12px;padding:10px 12px;background:#fff}.call-kb button{margin-top:0;width:auto;padding:0 16px}
.call-ctl{display:flex;justify-content:center;gap:26px;padding:12px 20px 10px}
.call-btn{width:60px;height:60px;border-radius:50%;border:0;background:rgba(255,255,255,.75);font-size:22px;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.08);display:grid;place-items:center;color:#3d4d60}
.call-btn.mic.on{background:#fff;color:#1f2a3a;box-shadow:0 0 0 4px rgba(33,196,122,.25)}
.call-btn.mic:not(.on){background:#e6ebf3;color:#8a98ab}
.call-btn.end{background:#ffe1e1;color:#d33}
.call-foot{text-align:center;font-size:10.5px;color:#9aa8b8;padding:0 20px 16px;margin:0}
@media(max-height:640px){.call-avatar{width:110px;height:110px;font-size:48px}.call-dots{margin-top:14px}}

/* 语速/声音切换 + 语音点单 */
.call-chips{display:flex;gap:8px;margin-top:10px}
.call-chip{border:1px solid rgba(61,77,96,.25);background:rgba(255,255,255,.6);color:#3d4d60;border-radius:999px;padding:5px 12px;font-size:12px;cursor:pointer}
.call-chip:active{background:#fff}
.vs-eg{margin-top:14px;font-size:12px;color:#5b6b80;text-align:center;line-height:1.7;padding:0 24px}
.vs-list{margin-top:16px;width:min(100%,520px)}.vs-list p{font-size:13px;color:#3d4d60;margin:0 0 8px}
.vs-opt{display:block;width:100%;text-align:left;border:1px solid rgba(61,77,96,.18);background:rgba(255,255,255,.75);border-radius:12px;padding:10px 14px;margin-bottom:8px;font-size:14px;color:#1f2a3a;cursor:pointer}
.vs-opt small{display:block;font-size:11px;color:#5b6b80;margin-top:2px}
.call-chip.on{background:#4d7df3;color:#fff;border-color:#4d7df3}
.call-btn.mic.hold{width:76px;height:76px;font-size:26px}
.call-btn.mic.pressing{background:#21c47a;color:#fff;box-shadow:0 0 0 8px rgba(33,196,122,.25);transform:scale(1.06)}
.call-btn{touch-action:none;user-select:none;-webkit-user-select:none}
/* 对练中调出知识库资料给车主看 */
.call-media{width:min(100%,560px);margin-top:12px;background:rgba(255,255,255,.9);border:1px solid rgba(77,125,243,.35);border-radius:14px;padding:10px 12px;box-shadow:0 8px 24px rgba(77,125,243,.12);text-align:left}
.messages .call-media{margin:12px auto;background:#fff}
.cm-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.cm-head b{flex:1;font-size:13.5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cm-head button{background:none;border:0;font-size:18px;color:#8a98ab;cursor:pointer}
.call-media video{display:block;width:100%;max-height:260px;background:#000;border-radius:10px}
.cm-cap{font-size:11px;color:#5b6b80;margin:4px 0 6px}
.cm-imgs{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px}
.cm-imgs img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;border:1px solid #e3e9f2;cursor:zoom-in}
.cm-sum{font-size:11.5px;color:#5b6b80;margin-top:8px;line-height:1.5;max-height:3.2em;overflow:hidden}
