/* 泉江科技 AI 助手 */
#qj-launcher{position:fixed;right:22px;bottom:22px;z-index:9998;display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,#0070C0,#0B3D6E);color:#fff;border:none;border-radius:999px;padding:13px 22px;font-size:15px;font-weight:700;cursor:pointer;box-shadow:0 8px 24px rgba(0,112,192,.4);font-family:"Microsoft YaHei",sans-serif;transition:transform .2s}
#qj-launcher:hover{transform:translateY(-3px)}
#qj-launcher .dot{width:9px;height:9px;border-radius:50%;background:#2EE6A8;box-shadow:0 0 0 3px rgba(46,230,168,.35)}
#qj-panel{position:fixed;right:22px;bottom:96px;z-index:9999;width:390px;max-width:calc(100vw - 40px);height:600px;max-height:calc(100vh - 130px);background:#fff;border-radius:18px;box-shadow:0 20px 60px rgba(11,61,110,.28);display:none;flex-direction:column;overflow:hidden;font-family:"Microsoft YaHei","PingFang SC",sans-serif}
#qj-panel.open{display:flex}
#qj-head{background:linear-gradient(135deg,#0070C0,#0B3D6E);color:#fff;padding:16px 18px;display:flex;align-items:center;gap:12px}
#qj-head .av{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;font-size:20px}
#qj-head .tt h4{font-size:15px;margin:0}
#qj-head .tt span{font-size:11px;color:#cfe4f5}
#qj-close{margin-left:auto;background:none;border:none;color:#fff;font-size:20px;cursor:pointer;opacity:.85}
#qj-body{flex:1;overflow-y:auto;padding:16px;background:#F4F8FC}
.qj-msg{margin-bottom:12px;display:flex}
.qj-msg .bubble{max-width:80%;padding:10px 14px;border-radius:12px;font-size:13.5px;line-height:1.7;white-space:pre-wrap;word-break:break-word}
.qj-ai .bubble{background:#fff;border:1px solid #E3EEF7;border-top-left-radius:4px;color:#22303F}
.qj-user{justify-content:flex-end}
.qj-user .bubble{background:#0070C0;color:#fff;border-top-right-radius:4px}
.qj-typing .bubble{display:flex;gap:4px;padding:12px 14px}
.qj-typing .bubble i{width:7px;height:7px;border-radius:50%;background:#A9C2D8;animation:qj-blink 1s infinite}
.qj-typing .bubble i:nth-child(2){animation-delay:.2s}
.qj-typing .bubble i:nth-child(3){animation-delay:.4s}
@keyframes qj-blink{0%,80%,100%{opacity:.3}40%{opacity:1}}
.qj-quick{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px 10px;background:#F4F8FC}
.qj-quick button{border:1px solid #C9DCEF;background:#fff;color:#0070C0;border-radius:999px;padding:6px 13px;font-size:12.5px;cursor:pointer;transition:all .2s;font-family:"Microsoft YaHei",sans-serif}
.qj-quick button:hover{background:#0070C0;color:#fff}
#qj-input-bar{display:flex;gap:8px;padding:12px;border-top:1px solid #E3EEF7;background:#fff}
#qj-input{flex:1;border:1px solid #E3EEF7;border-radius:10px;padding:10px 14px;font-size:14px;outline:none;font-family:"Microsoft YaHei",sans-serif}
#qj-input:focus{border-color:#0070C0}
#qj-send{background:#0070C0;color:#fff;border:none;border-radius:10px;padding:0 18px;font-size:14px;cursor:pointer;font-weight:700}
#qj-send:hover{background:#005A9E}
.qj-form{background:#fff;border:1px solid #E3EEF7;border-radius:12px;padding:14px;margin-bottom:12px}
.qj-form h5{margin:0 0 8px;color:#0B3D6E;font-size:13.5px}
.qj-form input,.qj-form textarea{width:100%;border:1px solid #E3EEF7;border-radius:8px;padding:8px 10px;font-size:13px;margin-bottom:8px;outline:none;font-family:"Microsoft YaHei",sans-serif}
.qj-form textarea{resize:none;height:52px}
.qj-form .row{display:flex;gap:8px}
.qj-form button{width:100%;background:#D05020;color:#fff;border:none;border-radius:8px;padding:9px;font-size:14px;cursor:pointer;font-weight:700}
.qj-form .ok{text-align:center;color:#1E8E5A;font-size:13px;padding:6px 0;font-weight:600}
@media(max-width:480px){#qj-panel{right:10px;bottom:84px;left:10px;width:auto}}
