/* AKJ PaisaGyan - Gullu live helper (assets/js/gullu.js). Floating avatar + bubble, reaction animations, emoji burst. */
.gl-float { position: fixed; left: 12px; bottom: calc(76px + var(--bn-off, 0px)); z-index: 1400; display: flex; align-items: flex-end; gap: 8px; pointer-events: none; max-width: calc(100vw - 24px); }
.gl-float > * { pointer-events: auto; }
.gl-avatar { position: relative; flex: 0 0 auto; width: 52px; height: 52px; padding: 0; border-radius: 50%; border: 2px solid #fff; overflow: visible; cursor: pointer; background: linear-gradient(135deg, #fde68a, #fbcfe8); box-shadow: 0 8px 18px -6px rgba(0, 0, 0, .45); animation: gl-bob 3s ease-in-out infinite; }
.gl-avatar img { width: 100%; height: 100%; object-fit: contain; padding: 3px; border-radius: 50%; display: block; }
.gl-badge { position: absolute; right: -4px; top: -6px; font-style: normal; font-size: .85rem; line-height: 1; background: #fff; border-radius: 50%; padding: 3px; box-shadow: 0 2px 6px rgba(0, 0, 0, .3); }
.gl-bubble { position: relative; max-width: min(300px, 66vw); padding: 10px 14px; border-radius: 16px 16px 16px 4px; background: #fff; color: #1f2937; font-size: .9rem; font-weight: 600; line-height: 1.5; box-shadow: 0 12px 26px -12px rgba(0, 0, 0, .55); border: 1px solid #e5e7eb; }
.gl-bubble[hidden] { display: none; }
.gl-bubble.gl-pop { animation: gl-pop .35s cubic-bezier(.2, 1.4, .4, 1); }
.gl-acts { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; margin-top: 6px; }
.gl-hint { border: 0; border-radius: 999px; padding: 3px 12px; font-size: .78rem; font-weight: 800; color: #fff; background: linear-gradient(135deg, #f59e0b, #ef4444); cursor: pointer; }
.gl-hint[hidden] { display: none; }
.gl-hide { border: 0; background: none; padding: 0; font-size: .7rem; color: #6b7280; text-decoration: underline; cursor: pointer; }
.gl-hop { animation: gl-hop .6s cubic-bezier(.3, 1.6, .5, 1); }
.gl-sway { animation: gl-sway .8s ease-in-out; }
.gl-burst { position: fixed; z-index: 1450; pointer-events: none; font-size: 1.2rem; animation: gl-burst 1s ease-out forwards; }
@keyframes gl-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes gl-pop { from { opacity: 0; transform: scale(.7) translateX(-10px); } to { opacity: 1; transform: none; } }
@keyframes gl-hop { 0% { transform: translateY(0) scale(1); } 40% { transform: translateY(-14px) scale(1.12); } 100% { transform: translateY(0) scale(1); } }
@keyframes gl-sway { 0%, 100% { transform: rotate(0); } 25% { transform: rotate(-8deg); } 75% { transform: rotate(8deg); } }
@keyframes gl-burst { from { opacity: 1; transform: translate(0, 0) scale(.6); } to { opacity: 0; transform: translate(var(--dx), var(--dy)) scale(1.2); } }
html[data-theme="dark"] .gl-bubble, html[data-theme="ocean"] .gl-bubble { background: #1e293b; color: #e2e8f0; border-color: rgba(255, 255, 255, .18); }
html[data-theme="dark"] .gl-hide, html[data-theme="ocean"] .gl-hide { color: #94a3b8; }
@media (prefers-reduced-motion: reduce) { .gl-avatar, .gl-bubble.gl-pop, .gl-hop, .gl-sway, .gl-burst { animation: none !important; } }
@media print { .gl-float, .gl-burst { display: none !important; } }
