/* ── 小安客服 ── */
.xa-bubble{position:fixed;bottom:140px;right:16px;z-index:999;width:auto;min-width:50px;padding:6px 8px 4px;border-radius:12px;background:linear-gradient(135deg,#0a84ff,#6366f1);color:#fff;display:flex;flex-direction:column;align-items:center;gap:1px;cursor:pointer;box-shadow:0 4px 16px rgba(10,132,255,.4);transition:all .2s;border:none}
.xa-bubble:active{transform:scale(.92)}
.xa-bubble.hidden{display:none}
.xa-bubble-icon{font-size:20px;line-height:1}
.xa-bubble-label{font-size:9px;line-height:1.2;font-weight:700;white-space:nowrap}

/* ── Panel ── */
.xa-panel{position:fixed;bottom:0;left:0;right:0;top:0;z-index:1000;background:#fff;display:none;flex-direction:column;max-width:430px;margin:0 auto;box-shadow:0 0 40px rgba(0,0,0,.12)}
.xa-panel.active{display:flex}
@media(min-width:431px){.xa-panel{top:auto;bottom:80px;left:auto;right:16px;width:380px;height:580px;border-radius:20px;box-shadow:0 8px 40px rgba(0,0,0,.15)}}

.xa-header{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid #e2e8f0;flex:none;background:linear-gradient(135deg,#0a84ff,#6366f1);color:#fff;border-radius:0}
.xa-avatar{font-size:28px;line-height:1}
.xa-title{flex:1}
.xa-name{font-size:15px;font-weight:800}
.xa-status{font-size:11px;opacity:.8}
.xa-close{width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.2);border:none;color:#fff;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center}

.xa-messages{flex:1;overflow-y:auto;padding:12px 14px;background:#f8fafc;-webkit-overflow-scrolling:touch}
.xa-msg{display:flex;margin-bottom:10px}
.xa-user{justify-content:flex-end}
.xa-assistant{justify-content:flex-start}
.xa-msg-bubble{max-width:82%;padding:10px 14px;border-radius:16px;font-size:14px;line-height:1.6;word-break:break-word}
.xa-user .xa-msg-bubble{background:#0a84ff;color:#fff;border-bottom-right-radius:4px}
.xa-assistant .xa-msg-bubble{background:#fff;color:#0f172a;border-bottom-left-radius:4px;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.xa-msg-time{font-size:10px;color:#94a3b8;margin-top:2px;padding:0 4px}
.xa-user .xa-msg-time{text-align:right}

/* ── FAQ ── */
.xa-faq{padding:6px 14px 2px;background:#fff;border-top:1px solid #f1f5f9;display:flex;flex-wrap:wrap;gap:6px;flex:none}
.xa-faq-btn{padding:5px 10px;border-radius:999px;border:1px solid #e2e8f0;background:#f8fafc;font-size:11px;color:#64748b;cursor:pointer;white-space:nowrap;transition:all .12s}
.xa-faq-btn:active{border-color:#0a84ff;background:#eff6ff;color:#0a84ff}

/* ── Input Bar ── */
.xa-input-bar{display:flex;align-items:center;gap:6px;padding:8px 10px;border-top:1px solid #e2e8f0;flex:none;background:#fff}
.xa-input{flex:1;padding:9px 12px;border:1.5px solid #e2e8f0;border-radius:999px;font-size:14px;outline:none;background:#f8fafc}
.xa-input:focus{border-color:#0a84ff;background:#fff}
.xa-voice-btn,.xa-send-btn{flex:none;width:36px;height:36px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;transition:all .12s}
.xa-voice-btn{background:transparent}
.xa-voice-btn:active{background:#e2e8f0}
.xa-voice-btn.recording{background:#fee2e2;color:#dc2626;animation:xa-pulse 1s infinite}
@keyframes xa-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}
.xa-send-btn{background:#0a84ff;color:#fff;font-size:12px;width:auto;padding:0 14px;border-radius:999px}
.xa-send-btn:active{opacity:.8}

/* ── Typing ── */
.xa-typing .xa-msg-bubble{background:#fff;padding:14px 18px}
.xa-typing-dots{display:flex;gap:4px;align-items:center}
.xa-typing-dot{width:6px;height:6px;border-radius:50%;background:#94a3b8;animation:xa-dot 1.2s infinite}
.xa-typing-dot:nth-child(2){animation-delay:.2s}
.xa-typing-dot:nth-child(3){animation-delay:.4s}
@keyframes xa-dot{0%,60%,100%{opacity:.3}30%{opacity:1}}