/* ===== MO叔数字分身 · 水墨风聊天挂件 ===== */
.mo-fab{position:fixed;right:22px;bottom:22px;z-index:9990;width:74px;height:74px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#3a382f,#1F1E1B 70%);border:2px solid #D4AF50;color:#F7F3EA;
  font-family:"Songti SC","Noto Serif SC",serif;font-size:13px;font-weight:900;letter-spacing:1px;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;line-height:1.25;
  animation:moGlow 2.6s ease-in-out infinite, moFloat 5s ease-in-out infinite}
.mo-fab b{font-size:17px;color:#D4AF50;text-shadow:0 0 12px rgba(212,175,80,.6)}
@keyframes moGlow{
  0%,100%{box-shadow:0 10px 30px rgba(31,30,27,.35),0 0 0 0 rgba(212,175,80,.55)}
  50%{box-shadow:0 10px 30px rgba(31,30,27,.35),0 0 0 14px rgba(212,175,80,0)}
}
@keyframes moFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.mo-fab .mo-dot{position:absolute;top:2px;right:2px;width:14px;height:14px;border-radius:50%;background:#C0392B;
  border:2px solid #F7F3EA;animation:moPulse 1.6s infinite}
.mo-fab:hover{animation-play-state:paused;transform:scale(1.07)}
/* 首次引导气泡 */
.mo-hint{position:fixed;right:110px;bottom:34px;z-index:9989;max-width:250px;background:#F7F3EA;
  border:1px solid rgba(184,150,46,.55);border-radius:10px;padding:14px 16px;cursor:pointer;
  box-shadow:0 16px 44px rgba(31,30,27,.25);animation:moUp .45s cubic-bezier(.2,.7,.3,1)}
.mo-hint::after{content:"";position:absolute;right:-8px;bottom:22px;width:14px;height:14px;background:#F7F3EA;
  border-right:1px solid rgba(184,150,46,.55);border-top:1px solid rgba(184,150,46,.55);transform:rotate(45deg)}
.mo-hint .h{font-family:"Songti SC",serif;font-size:15px;font-weight:900;color:#1F1E1B;letter-spacing:1px}
.mo-hint .h em{font-style:normal;color:#8F7326}
.mo-hint .p{font-size:12.5px;color:#4A463F;margin-top:5px;line-height:1.7}
.mo-hint .x{position:absolute;top:6px;right:10px;color:#8B857A;font-size:13px;cursor:pointer}
.mo-hint .x:hover{color:#1F1E1B}
.mo-panel{position:fixed;right:22px;bottom:98px;z-index:9991;width:min(392px,calc(100vw - 28px));height:min(600px,calc(100vh - 130px));
  background:#F7F3EA;border:1px solid rgba(31,30,27,.2);border-radius:12px;overflow:hidden;
  box-shadow:0 30px 80px rgba(31,30,27,.35);display:none;flex-direction:column;font-family:"PingFang SC","Hiragino Sans GB",sans-serif}
.mo-panel.open{display:flex;animation:moUp .35s cubic-bezier(.2,.7,.3,1)}
@keyframes moUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.mo-head{background:#1F1E1B;color:#F7F3EA;padding:14px 16px;display:flex;align-items:center;gap:11px;flex-shrink:0}
.mo-avatar{width:40px;height:40px;border-radius:50%;background:#1F1E1B;border:1.5px solid #B8962E;display:flex;align-items:center;justify-content:center;
  font-family:"Songti SC",serif;font-size:14px;font-weight:900;color:#D4AF50;flex-shrink:0}
.mo-head .t{flex:1;min-width:0}
.mo-head .t b{font-family:"Songti SC",serif;font-size:16px;letter-spacing:2px;display:block}
.mo-head .t span{font-size:11px;color:#B7AE9C;letter-spacing:1px;display:flex;align-items:center;gap:5px}
.mo-head .t span i{width:6px;height:6px;border-radius:50%;background:#7BA05B;animation:moPulse 2s infinite}
@keyframes moPulse{0%,100%{opacity:1}50%{opacity:.3}}
.mo-head button{background:none;border:none;color:#B7AE9C;font-size:20px;cursor:pointer;padding:2px 6px;line-height:1}
.mo-head button:hover{color:#F7F3EA}
.mo-body{flex:1;overflow-y:auto;padding:16px 14px;display:flex;flex-direction:column;gap:12px;background:
  radial-gradient(500px 300px at 90% -10%,rgba(184,150,46,.06),transparent 60%),#F7F3EA}
.mo-msg{max-width:82%;padding:10px 14px;border-radius:10px;font-size:14px;line-height:1.8;white-space:pre-wrap;word-break:break-word}
.mo-msg.ai{align-self:flex-start;background:rgba(255,255,255,.85);border:1px solid rgba(31,30,27,.12);color:#1F1E1B;border-top-left-radius:2px}
.mo-msg.me{align-self:flex-end;background:#1F1E1B;color:#F2ECDF;border-top-right-radius:2px}
.mo-msg.typing{color:#8B857A;font-style:italic}
.mo-connect{align-self:center;width:88%;background:linear-gradient(160deg,rgba(184,150,46,.14),rgba(184,150,46,.05));
  border:1px solid rgba(143,115,38,.5);border-radius:10px;padding:16px 15px;text-align:center;animation:moUp .4s}
.mo-connect .big{font-family:"Songti SC",serif;font-size:16.5px;color:#1F1E1B;letter-spacing:1px;line-height:1.7}
.mo-connect .sub{font-size:12px;color:#8B857A;margin-top:6px;line-height:1.7}
.mo-connect .btns{display:flex;gap:10px;margin-top:12px}
.mo-connect .btns button{flex:1;padding:10px 0;border-radius:5px;font-size:13.5px;font-weight:700;letter-spacing:2px;cursor:pointer;transition:.3s}
.mo-connect .yes{background:#1F1E1B;color:#F7F3EA;border:none}
.mo-connect .yes:hover{background:#3a382f}
.mo-connect .no{background:none;border:1px solid rgba(31,30,27,.35);color:#4A463F}
.mo-connect .no:hover{border-color:#8B857A}
.mo-qrbox img{width:170px;height:170px;border-radius:8px;border:1px solid rgba(31,30,27,.2);display:block;margin:10px auto 8px;background:#fff}
.mo-qrbox .tip{font-size:12px;color:#4A463F;line-height:1.8}
.mo-qrbox .tip b{color:#8F7326}
.mo-input{flex-shrink:0;display:flex;gap:8px;padding:12px;border-top:1px solid rgba(31,30,27,.14);background:rgba(255,255,255,.6)}
.mo-input input{flex:1;border:1px solid rgba(31,30,27,.25);border-radius:6px;padding:10px 12px;font-size:14px;background:#fff;color:#1F1E1B;outline:none}
.mo-input input:focus{border-color:#B8962E}
.mo-input button{background:#1F1E1B;color:#F2ECDF;border:none;border-radius:6px;padding:0 18px;font-size:13.5px;font-weight:700;letter-spacing:2px;cursor:pointer}
.mo-input button:disabled{opacity:.45;cursor:default}
.mo-mini{background:none;border:none;color:#8F7326;font-size:11px;letter-spacing:1px;cursor:pointer;padding:4px 0;text-align:left}
.mo-mini:hover{text-decoration:underline}
@media (max-width:640px){
  .mo-fab{right:14px;bottom:14px;width:62px;height:62px;font-size:12px}
  .mo-fab b{font-size:15px}
  .mo-hint{right:12px;left:12px;bottom:88px;max-width:none}
  .mo-panel{right:8px;left:8px;bottom:84px;width:auto;height:min(62vh,540px)}
}
