
/* V16 TARGETED CHAT POLISH
   Scope: nested quote colors, chat scroll performance, composer consistency,
   reaction animation duration. */
#chatWindow{
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  scroll-behavior:auto;
  contain:layout paint style;
  overflow-anchor:none;
}
#chatWindow .msg-row{
  contain:layout style;
}
.reply-quote-box{
  border-left:3px solid var(--quote-depth-color, var(--primary)) !important;
  background:color-mix(in srgb,var(--quote-depth-color, var(--primary)) 7%,var(--bg-header)) !important;
}
.reply-quote-sender{
  color:var(--quote-depth-color, var(--primary)) !important;
}
.reply-quote-depth-0{--quote-depth-color:#3b82f6}
.reply-quote-depth-1{--quote-depth-color:#8b5cf6}
.reply-quote-depth-2{--quote-depth-color:#14b8a6}
.reply-quote-depth-3{--quote-depth-color:#ec4899}
.reply-quote-depth-4{--quote-depth-color:var(--primary)}
.reaction-fly-up{
  animation-duration:2s !important;
  font-size:34px !important;
  bottom:8px;
}
@keyframes v12ReactionFly{
  0%{opacity:0;transform:translate(-50%,12px) scale(.55) rotate(-7deg)}
  14%{opacity:1;transform:translate(-50%,0) scale(1.15) rotate(5deg)}
  48%{opacity:1;transform:translate(-50%,-80px) scale(1) rotate(-3deg)}
  78%{opacity:.7;transform:translate(-50%,-145px) scale(.9) rotate(4deg)}
  100%{opacity:0;transform:translate(-50%,-210px) scale(.72) rotate(7deg)}
}
.sticker-grid.v16-sticker-grid{
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:8px;
}
.v16-sticker-item{
  width:100%;
  aspect-ratio:1;
  object-fit:contain;
  border-radius:12px;
  cursor:pointer;
  transition:transform .16s ease,background .16s ease;
  background:color-mix(in srgb,var(--hover-bg) 75%,transparent);
}
.v16-sticker-item:hover{transform:scale(1.08);background:var(--hover-bg)}
@media(max-width:767px){
  .sticker-grid.v16-sticker-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
  .v16-sticker-item{border-radius:10px}
}

