/* ============================================================
   在线咨询悬浮小窗  assets/css/consult-widget.css
   专属顾问·小祐 | 按参考图像素级对齐
     - 头部：官网主色灰 #4b5563→#1f2937 竖渐变，橙 CTA 渐变圆 + 白色机器人
     - 消息：浅灰圆底 + 灰机器人头像，白色气泡 + 浅边框
     - 常见问题：白底圆角高按钮 2×2
     - 底部：白色圆角输入框 + 灰色方形纸飞机发送钮
   配套脚本: assets/js/consult-widget.js
   提交接口: pages/ajax_consult.asp
   ============================================================ */
#udata-consult{position:fixed;right:18px;bottom:18px;z-index:9999;font-family:"Microsoft YaHei","PingFang SC",Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;font-size:14px;color:#1f2937;line-height:1.6;letter-spacing:.02em}
#udata-consult *{box-sizing:border-box;margin:0}

/* ---------- 悬浮按钮（圆形 + 呼吸光圈） ---------- */
.udata-consult-btn{position:relative;width:60px;height:60px;border-radius:50%;border:0;background:linear-gradient(135deg,#4b5563,#1f2937);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 26px rgba(31,41,55,.35);transition:transform .25s,box-shadow .25s}
.udata-consult-btn:hover{transform:scale(1.05);box-shadow:0 14px 34px rgba(31,41,55,.45)}
.udata-consult-btn::after{content:'';position:absolute;inset:0;border-radius:50%;border:2px solid rgba(249,115,22,.55);animation:udataPulse 2.4s ease-out infinite;pointer-events:none}
@keyframes udataPulse{0%{transform:scale(1);opacity:.8}70%{transform:scale(1.45);opacity:0}100%{opacity:0}}

/* 招呼气泡（两行提示） */
.udata-consult-bubble{position:absolute;right:72px;bottom:20px;background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 10px 30px rgba(15,23,42,.1);padding:11px 17px;font-size:13px;color:#374151;display:none;flex-direction:column;gap:3px;animation:udataIn .3s ease}
.udata-consult-bubble .b1{font-size:13px;color:#374151;white-space:nowrap}
.udata-consult-bubble .b2{font-size:11px;color:#9ca3af;white-space:nowrap}
.udata-consult-bubble::after{content:'';position:absolute;right:-6px;bottom:16px;width:10px;height:10px;background:#fff;border-right:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;transform:rotate(-45deg)}
.udata-consult-bubble.show{display:flex}

/* ---------- 面板 ---------- */
.udata-consult-panel{position:absolute;right:0;bottom:76px;width:400px;height:min(640px,calc(100vh - 120px));background:#fff;border-radius:20px;box-shadow:0 24px 70px rgba(15,23,42,.16),0 4px 18px rgba(15,23,42,.06);overflow:hidden;display:flex;flex-direction:column;animation:udataIn .28s ease}
.udata-consult-panel[hidden]{display:none}
@keyframes udataIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}

/* ---------- 标题栏：柔和浅蓝竖渐变 + 浅蓝渐变圆白机器人 + 最小化/关闭 ---------- */
.udata-consult-head{background:linear-gradient(180deg,#4b5563 0%,#1f2937 100%);color:#fff;padding:12px 18px;display:flex;align-items:center;gap:13px;flex-shrink:0}
.udata-head-avatar{width:54px;height:54px;border-radius:50%;background:linear-gradient(135deg,#f97316 0%,#fb923c 100%);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
.udata-head-avatar svg{width:29px;height:29px;color:#fff;stroke-width:1.9}
.udata-head-info{flex:1;min-width:0}
.udata-head-info .t{font-size:16.5px;font-weight:700;line-height:1.3;letter-spacing:.04em}
.udata-head-info .s{font-size:12px;opacity:.95;display:flex;align-items:center;gap:7px;margin-top:5px;letter-spacing:.02em}
.udata-head-info .s i{width:8px;height:8px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 2px rgba(74,222,128,.3)}
.udata-head-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}
.udata-head-btn{background:rgba(255,255,255,.18);border:0;color:#fff;width:30px;height:30px;border-radius:50%;cursor:pointer;font-size:15px;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .2s;flex-shrink:0}
.udata-head-btn:hover{background:rgba(255,255,255,.32)}

/* ---------- 对话区 ---------- */
.udata-chat{flex:1;overflow-y:auto;padding:24px 20px 16px;background:#f9fafb}
.udata-msg{display:flex;align-items:flex-start;gap:11px;margin-bottom:22px;animation:udataMsgIn .25s ease}
.udata-msg.user{flex-direction:row-reverse;align-items:flex-end}
@keyframes udataMsgIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.udata-msg .avatar{width:44px;height:44px;border-radius:50%;background:#eef3f8;color:#4b5563;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.udata-msg .avatar svg{width:24px;height:24px;color:#4b5563}
.udata-msg-col{max-width:80%;display:flex;flex-direction:column;gap:5px;min-width:0}
.udata-msg-col .bubble{max-width:100%}
.udata-msg .bubble{padding:16px 18px;border-radius:18px;font-size:14.5px;line-height:1.9;word-break:break-word}
.udata-msg.bot .bubble{background:#fff;border:1px solid #e5e7eb;color:#1f2937;border-bottom-left-radius:6px;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.udata-msg.user .bubble{background:linear-gradient(135deg,#4b5563,#1f2937);color:#fff;border-bottom-right-radius:6px}
.udata-time{font-size:11px;color:#9ca3af;padding-left:4px;line-height:1.2;letter-spacing:.02em}
.udata-msg.user .udata-time{text-align:right;padding-right:4px;padding-left:0}

/* 分区小标题 */
.udata-block-label{font-size:12px;color:#9ca3af;font-weight:600;letter-spacing:.14em;margin:12px 0 14px}

/* 常见问题快捷区（2×2，白底圆角高按钮） */
.udata-quick{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:0 0 12px;margin-left:56px}
.udata-quick-btn{border:1px solid #e5e7eb;background:#fff;color:#374151;font-size:14px;font-family:inherit;border-radius:12px;padding:15px 18px;cursor:pointer;text-align:left;line-height:1.65;transition:all .2s;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.udata-quick-btn:hover{border-color:#f97316;color:#ea580c;box-shadow:0 6px 18px rgba(249,115,22,.12);transform:translateY(-1px)}
.udata-quick-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}

/* 快捷 chips（分类 / 后续操作） */
.udata-chips{display:flex;flex-wrap:wrap;gap:12px;padding:0 0 12px;margin-left:56px}
.udata-chip{border:1px solid #e5e7eb;background:#fff;color:#4b5563;font-size:13.5px;font-family:inherit;border-radius:999px;padding:10px 17px;cursor:pointer;transition:all .2s}
.udata-chip:hover{border-color:#f97316;color:#ea580c;background:#fff7ed}
.udata-chip:disabled{opacity:.5;cursor:not-allowed}

/* ---------- 底部开放式输入区：白色圆角输入框 + 浅蓝方形纸飞机发送钮 ---------- */
.udata-input-bar{flex-shrink:0;display:flex;align-items:center;gap:12px;padding:14px 18px 16px;background:#fff}
.udata-input{flex:1;height:48px;padding:12px 16px;border:1px solid #d1d5db;border-radius:12px;font-size:14.5px;color:#1f2937;outline:none;font-family:inherit;background:#fff;transition:border-color .2s,box-shadow .2s}
.udata-input:focus{border-color:#f97316;box-shadow:0 0 0 3px rgba(249,115,22,.14)}
.udata-input::placeholder{color:#9ca3af}
.udata-send{width:48px;height:48px;border:0;border-radius:12px;background:#4b5563;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,transform .2s;flex-shrink:0;box-shadow:0 2px 8px rgba(75,85,99,.35)}
.udata-send:hover{background:#1f2937;transform:translateY(-1px)}
.udata-send:disabled{opacity:.6;cursor:not-allowed;transform:none}

/* 打字动画 */
.udata-typing .bubble{display:flex;align-items:center;gap:6px;padding:15px 18px}
.udata-typing i{width:7px;height:7px;border-radius:50%;background:#9ca3af;animation:udataDot 1.2s infinite}
.udata-typing i:nth-child(2){animation-delay:.15s}
.udata-typing i:nth-child(3){animation-delay:.3s}
@keyframes udataDot{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}

/* ---------- 表单区 ---------- */
.udata-form{flex:1;overflow-y:auto;padding:20px 22px 20px;background:#fff;animation:udataIn .25s ease}
.udata-form-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.udata-form-top .title{font-size:15px;font-weight:700;color:#1f2937}
.udata-back{background:none;border:0;color:#4b5563;font-size:13px;cursor:pointer;font-family:inherit;display:flex;align-items:center;gap:4px;transition:color .2s}
.udata-back:hover{color:#ea580c}
.udata-cat-chip{display:flex;align-items:center;gap:6px;font-size:13px;color:#374151;background:#F9FAFB;border:1px solid #e5e7eb;border-radius:999px;padding:8px 15px;margin-bottom:14px}
.udata-cat-chip b{color:#ea580c}
.udata-cat-chip button{margin-left:auto;background:none;border:0;color:#ea580c;font-size:13px;cursor:pointer;font-family:inherit;font-weight:600;padding:0}
.udata-cat-chip button:hover{text-decoration:underline}

.udata-consult-field{margin-bottom:15px}
.udata-consult-field label{display:block;font-size:13px;color:#374151;margin-bottom:7px;font-weight:600}
.udata-consult-field label em{color:#dc2626;font-style:normal}
.udata-consult-field input,.udata-consult-field textarea{width:100%;padding:12px 14px;border:1px solid #d1d5db;border-radius:12px;font-size:14px;color:#1f2937;outline:none;transition:border-color .2s,box-shadow .2s;font-family:inherit;background:#fff}
.udata-consult-field input:focus,.udata-consult-field textarea:focus{border-color:#f97316;box-shadow:0 0 0 3px rgba(249,115,22,.1)}
.udata-consult-field textarea{resize:vertical;min-height:96px;line-height:1.7}
.udata-consult-err{color:#dc2626;font-size:13px;line-height:1.5;margin:3px 0 9px;display:none}
.udata-consult-submit{width:100%;padding:14px;border:0;border-radius:10px;background:linear-gradient(135deg,#f97316,#fb923c);color:#fff;font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;transition:opacity .2s;box-shadow:0 4px 12px rgba(249,115,22,.3)}
.udata-consult-submit:hover{opacity:.92}
.udata-consult-submit:disabled{opacity:.6;cursor:not-allowed}
.udata-consult-foot{font-size:12px;color:#9ca3af;text-align:center;margin-top:14px}

/* ---------- 移动端适配 ---------- */
@media(max-width:768px){
    #udata-consult{right:12px;bottom:12px}
    .udata-consult-bubble{right:64px;bottom:16px;font-size:12px;padding:8px 12px}
    .udata-consult-panel{width:calc(100vw - 24px);max-width:400px;bottom:68px;height:min(640px,calc(100vh - 96px))}
    .udata-input-bar{padding-bottom:12px}
}
