/* ============================================================
   全局即时消息组件样式（右下角消息入口 + 新消息弹窗通知 + 迷你聊天窗）
   来源：原 fragments/footer.html 内联 <style>（第 2 段），原位抽离
   注意：本文件由 footer 片段在 body 内原位引入，请勿移动到 <head>，
         否则会改变它与页面自身样式的层叠顺序。
   ============================================================ */
.im-global-btn { position:fixed; right:22px; bottom:22px; z-index:1300; width:54px; height:54px; border-radius:50%;
    background:linear-gradient(135deg,#b47a2a,#d9a85c); color:#fff; font-size:1.5rem; display:flex; align-items:center; justify-content:center;
    cursor:pointer; box-shadow:0 6px 20px rgba(180,122,42,.4); border:none; }
.im-global-btn:hover { transform:scale(1.06); }
.im-global-btn .badge { position:absolute; top:-3px; right:-3px; background:#eb1313; color:#fff; min-width:18px; height:18px;
    line-height:18px; border-radius:9px; font-size:.66rem; text-align:center; padding:0 5px; display:none; }
.im-notify { position:fixed; right:22px; bottom:86px; z-index:1300; width:300px; background:#fff; border-radius:14px;
    box-shadow:0 8px 30px rgba(0,0,0,.16); overflow:hidden; display:none; font-size:.85rem; animation:imPop .25s ease; }
@keyframes imPop { from { transform:translateY(12px); opacity:0; } to { transform:none; opacity:1; } }
.im-notify .head { background:linear-gradient(90deg,#b47a2a,#c8924a); color:#fff; padding:9px 14px; font-weight:600;
    display:flex; align-items:center; gap:8px; }
.im-notify .head .x { margin-left:auto; cursor:pointer; font-weight:400; opacity:.85; }
.im-notify .item { padding:10px 14px; border-bottom:1px solid #f5f1ec; cursor:pointer; display:flex; gap:9px; align-items:center; }
.im-notify .item:last-child { border-bottom:none; }
.im-notify .item:hover { background:#faf6ef; }
.im-notify .item .av { width:30px; height:30px; border-radius:50%; background:linear-gradient(135deg,#d9b98a,#c8924a);
    color:#fff; display:flex; align-items:center; justify-content:center; font-size:.85rem; flex-shrink:0; }
.im-notify .item .tx { flex:1; min-width:0; }
.im-notify .item .nm { font-size:.78rem; color:#999; }
.im-notify .item .ct { color:#444; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin-top:2px; }
.im-notify .foot { text-align:center; color:#b47a2a; font-size:.75rem; padding:8px; cursor:pointer; }
.im-notify .foot:hover { background:#faf6ef; }
/* 迷你聊天窗 */
.im-mini { position:fixed; right:22px; bottom:86px; z-index:1300; width:320px; height:430px; background:#fff;
    border-radius:14px; box-shadow:0 10px 34px rgba(0,0,0,.18); display:flex; flex-direction:column; overflow:hidden; font-size:.85rem; }
.im-mini-head { background:linear-gradient(90deg,#b47a2a,#c8924a); color:#fff; padding:10px 14px; font-weight:600;
    display:flex; align-items:center; gap:8px; }
.im-mini-head .x { margin-left:auto; cursor:pointer; }
.im-mini-body { flex:1; overflow-y:auto; }
.im-mini-convs { padding:6px; }
.im-mini-conv { display:flex; gap:9px; padding:9px 10px; border-radius:10px; cursor:pointer; align-items:center; }
.im-mini-conv:hover { background:#f7f3ec; }
.im-mini-conv .av { width:32px; height:32px; border-radius:50%; background:linear-gradient(135deg,#d9b98a,#c8924a);
    color:#fff; display:flex; align-items:center; justify-content:center; font-size:.85rem; flex-shrink:0; }
.im-mini-conv .tx { flex:1; min-width:0; }
.im-mini-conv .nm { font-size:.83rem; color:#333; }
.im-mini-conv .last { font-size:.72rem; color:#999; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin-top:2px; }
.im-mini-conv .bd { background:#eb1313; color:#fff; min-width:16px; height:16px; line-height:16px; border-radius:8px;
    font-size:.62rem; text-align:center; padding:0 4px; }
.im-mini-chat { display:flex; flex-direction:column; height:100%; }
.im-mini-chat-head { padding:9px 14px; border-bottom:1px solid #f0ece8; font-weight:600; display:flex; align-items:center; gap:8px; cursor:pointer; }
.im-mini-chat-head .dot { width:7px; height:7px; border-radius:50%; background:#7fd8a0; }
.im-mini-chat-head .dot.off { background:#bbb; }
.im-mini-msgs { flex:1; overflow-y:auto; background:#f7f5f2; padding:10px; }
.im-mini-msg { margin-bottom:8px; display:flex; flex-direction:column; align-items:flex-start; }
.im-mini-msg.me { align-items:flex-end; }
.im-mini-msg .b { max-width:80%; padding:7px 11px; border-radius:10px; background:#fff; border:1px solid #e8e0d8; line-height:1.5; word-break:break-word; }
.im-mini-msg.me .b { background:#b47a2a; color:#fff; border-color:#b47a2a; }
.im-mini-msg .tm { font-size:.62rem; color:#c0b8b0; margin-top:2px; }
.im-mini-input-row { display:flex; gap:6px; padding:8px; background:#fff; border-top:1px solid #eee; align-items:center; }
.im-mini-input { flex:1; border:none; outline:none; padding:7px 11px; background:#f5f3f0; border-radius:16px; font-size:.83rem; }
.im-mini-send { background:#b47a2a; color:#fff; border:none; border-radius:16px; padding:7px 14px; cursor:pointer; font-size:.83rem; }