/* v1.0.96 — two-level unread drag with lightweight neutral smoke. */
#side-list .qy-unread-draggable{position:relative;z-index:1;display:inline-flex!important;align-items:center;justify-content:center;flex-shrink:0;min-width:18px;height:18px;padding:0 5px;line-height:1!important;border-radius:999px!important;touch-action:none!important;user-select:none;-webkit-user-select:none;cursor:grab;-webkit-tap-highlight-color:transparent;}
#side-list .qy-unread-draggable.qy-unread-hidden,.mobile-bar .qy-mobile-chat-unread.qy-unread-hidden{visibility:hidden!important;}
.qy-unread-drag-layer{position:fixed;inset:0;z-index:10070;pointer-events:none;overflow:visible;isolation:isolate;--qy-unread-drag-red:#ee576c;}
.qy-unread-elastic{position:absolute;inset:0;width:100%;height:100%;overflow:visible;color:var(--qy-unread-drag-red)}
.qy-unread-elastic path,.qy-unread-elastic circle{fill:currentColor;}
.qy-unread-float{position:absolute;display:flex;align-items:center;justify-content:center;min-width:18px;min-height:18px;box-sizing:border-box;padding:0 5px;border-radius:999px;background:var(--qy-unread-drag-red);color:#fff;font-size:10px;font-weight:700;line-height:1;transform:translate(-50%,-50%);box-shadow:0 2px 7px #bc20372a;white-space:nowrap;will-change:left,top,transform,opacity;}
.qy-unread-drag-layer.is-rebounding .qy-unread-float{transition:left .19s cubic-bezier(.22,1.12,.33,1),top .19s cubic-bezier(.22,1.12,.33,1);}
.qy-unread-drag-layer.is-popping .qy-unread-float{animation:qy-unread-pop .25s cubic-bezier(.2,.7,.35,1) forwards;}
@keyframes qy-unread-pop{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}45%{opacity:.6;transform:translate(-50%,-50%) scale(1.04)}100%{opacity:0;transform:translate(-50%,-50%) scale(.72)}}
@media(prefers-reduced-motion:reduce){.qy-unread-drag-layer.is-rebounding .qy-unread-float{transition:none}.qy-unread-drag-layer.is-popping .qy-unread-float{animation:none;opacity:0}}

/* Soft neutral haze: no bright red particles or explosive jump. */
.qy-unread-smoke{position:absolute;width:0;height:0;pointer-events:none;z-index:2}
.qy-unread-smoke-puff{position:absolute;left:0;top:0;width:var(--size,8px);height:var(--size,8px);border-radius:50%;box-sizing:border-box;background:radial-gradient(circle,#c6cfde95 0%,#dce3ec48 54%,transparent 79%);opacity:0;box-shadow:0 0 6px #cad1df42;animation:qy-unread-smoke-fade .48s ease-out var(--delay,0ms) both;filter:blur(1.1px)}
@keyframes qy-unread-smoke-fade{0%{opacity:0;transform:translate(-50%,-50%) scale(.42)}20%{opacity:.65}55%{opacity:.43}100%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(1.9)}}
/* A real unread-message total anchored to the chat icon, never the tab label. */
.mobile-bar button[data-nav="chats"] .mobile-nav-symbol{position:relative!important;overflow:visible!important}
.mobile-bar .qy-mobile-chat-unread{position:absolute;z-index:2;right:-13px;top:-6px;display:flex;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 4px;border-radius:10px;background:#f05a55;color:#fff!important;font-size:9px!important;font-family:inherit;line-height:1;font-weight:750!important;letter-spacing:0;white-space:nowrap;font-variant-numeric:tabular-nums;box-shadow:0 0 0 1.5px #fff,0 2px 5px #aa35432e;pointer-events:auto!important;touch-action:none!important;cursor:grab;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}
.mobile-bar .qy-mobile-chat-unread:empty{display:none}
@media(prefers-reduced-motion:reduce){.qy-unread-smoke-puff{animation:none!important;opacity:0!important}}

/* An uncertain text POST keeps its original client_id for a safe in-place retry. */
#chat-items .qy-retry-text{padding:2px 7px;background:transparent;border:1px solid currentColor;border-radius:7px;color:#c56b63;font-size:11px;line-height:1.5;cursor:pointer;opacity:.9}
#chat-items .qy-retry-text:active{opacity:.6}
