/* Floating WhatsApp and back-to-top buttons for the members' area (same look as the public site). */
.qb-float { position: fixed; right: 18px; z-index: 1040; width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; color: #fff !important; font-size: 1.45rem; box-shadow: 0 12px 26px -10px rgba(0,0,0,.45); border: 0; text-decoration: none; transition: transform .25s, opacity .3s, visibility .3s; }
.qb-float:hover { transform: scale(1.08); }
.qb-whatsapp { bottom: 88px; background: #25d366; }
.qb-whatsapp::before { content: ""; position: absolute; inset: 0; border-radius: 50%; background: #25d366; z-index: -1; animation: qb-pulse 2.2s ease-out infinite; }
@keyframes qb-pulse { 0% { transform: scale(1); opacity: .7; } 100% { transform: scale(1.7); opacity: 0; } }
.qb-totop { bottom: 24px; background: linear-gradient(135deg, #1f6fe5, #4a90ff); opacity: 0; visibility: hidden; transform: translateY(20px); }
.qb-totop.is-visible { opacity: 1; visibility: visible; transform: none; }
@media (max-width: 575.98px) { .qb-float { width: 46px; height: 46px; font-size: 1.25rem; right: 12px; } .qb-whatsapp { bottom: 78px; } }
@media (prefers-reduced-motion: reduce) { .qb-whatsapp::before { animation: none; } }

/* Notification bell */
.qb-bell-menu { width: min(360px, 92vw); }
.qb-bell-list { max-height: 60vh; overflow-y: auto; }
.qb-unread { background: #f1f6ff; }
.qb-bell-ring .bi { display: inline-block; animation: qb-ring .9s ease-in-out 2; transform-origin: 50% 0; }
@keyframes qb-ring { 0%, 100% { transform: rotate(0); } 20% { transform: rotate(14deg); } 40% { transform: rotate(-12deg); } 60% { transform: rotate(8deg); } 80% { transform: rotate(-4deg); } }
@media (prefers-reduced-motion: reduce) { .qb-bell-ring .bi { animation: none; } }
