@keyframes ring{0%{transform:rotate(0)}10%{transform:rotate(15deg)}20%{transform:rotate(-15deg)}30%{transform:rotate(15deg)}40%{transform:rotate(-15deg)}50%{transform:rotate(10deg)}60%{transform:rotate(-10deg)}70%{transform:rotate(5deg)}80%{transform:rotate(-5deg)}90%{transform:rotate(2deg)}to{transform:rotate(0)}}@keyframes pulse-scale{0%{transform:scale(1)}50%{transform:scale(1.15)}to{transform:scale(1)}}@keyframes badge-pop{0%{transform:scale(0);opacity:0}50%{transform:scale(1.3);opacity:1}to{transform:scale(1);opacity:1}}@keyframes glow-pulse{0%{box-shadow:0 0 0 0 rgba(239,68,68,.7)}70%{box-shadow:0 0 0 10px rgba(239,68,68,0)}to{box-shadow:0 0 0 0 rgba(239,68,68,0)}}.notification-bell-wrapper{position:relative;display:inline-block}.notification-bell{transition:transform .2s ease}.notification-bell-ringing{animation:ring 1s ease-in-out;transform-origin:center top}.notification-bell-pulse{animation:pulse-scale .6s ease-in-out}.notification-badge{position:absolute;top:-8px;right:-8px;background-color:#ef4444;color:white;border-radius:9999px;min-width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;padding:0 4px;border:2px solid white;box-shadow:0 2px 4px rgba(0,0,0,.1)}.notification-badge-animate{animation:badge-pop .5s cubic-bezier(.68,-.55,.265,1.55)}.notification-badge-pulse{animation:glow-pulse 1.5s infinite}.match-notification-popup{position:absolute;top:100%;right:0;margin-top:12px;background:linear-gradient(135deg,#667eea,#764ba2);color:white;padding:12px 16px;border-radius:8px;box-shadow:0 10px 25px rgba(0,0,0,.2);min-width:250px;z-index:1000;opacity:0;transform:translateY(-10px) scale(.95);transition:all .3s cubic-bezier(.68,-.55,.265,1.55);pointer-events:none}.match-notification-popup.show{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.match-notification-popup:before{content:"";position:absolute;top:-6px;right:20px;width:12px;height:12px;background:linear-gradient(135deg,#667eea,#764ba2);transform:rotate(45deg)}.match-notification-content{display:flex;align-items:center;gap:12px}.match-icon{font-size:24px;animation:pulse-scale 1s ease-in-out infinite}.match-text{flex:1}.match-title{font-weight:600;font-size:14px;margin-bottom:2px}.match-description{font-size:12px;opacity:.95}@keyframes success-ripple{0%{transform:scale(0);opacity:1}to{transform:scale(4);opacity:0}}.success-ripple{position:absolute;top:50%;left:50%;width:100%;height:100%;border-radius:50%;background-color:rgba(34,197,94,.3);transform:translate(-50%,-50%);animation:success-ripple 1s ease-out;pointer-events:none}