.badge-notification-bell{position:relative;display:inline-flex;align-items:center}.badge-bell-button{background:transparent;border:none;font-size:1.25rem;cursor:pointer;position:relative;padding:.5rem;border-radius:50%;transition:background-color .2s}.badge-bell-button:hover{background-color:hsla(0,0%,100%,.08)}.badge-bell-button:focus{outline:2px solid #3b82f6;outline-offset:2px}.badge-bell-icon{display:inline-block;line-height:1}.badge-bell-count{position:absolute;top:0;right:0;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;border-radius:50%;width:18px;height:18px;font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px rgba(0,0,0,.2)}.badge-notification-dropdown{position:absolute;top:100%;right:0;background:rgba(15,10,40,.92);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border-radius:12px;border:1px solid hsla(0,0%,100%,.1);box-shadow:0 16px 48px rgba(0,0,0,.6),0 4px 16px rgba(0,0,0,.4);min-width:320px;max-width:380px;z-index:1000;margin-top:.5rem;overflow:hidden;opacity:1}@media (max-width:768px){.badge-notification-dropdown{position:fixed;top:0;left:0;right:0;bottom:0;width:100%;max-width:100%;min-width:100%;max-height:100vh;border-radius:0;margin-top:0;z-index:9999}}.badge-dropdown-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid hsla(0,0%,100%,.08)}.badge-dropdown-header h4{margin:0;font-size:.875rem;font-weight:600;color:#f5f5f7}.badge-mark-all-seen{background:none;border:none;color:#3b82f6;font-size:.75rem;cursor:pointer;padding:.25rem .5rem;border-radius:4px;transition:background-color .2s}.badge-mark-all-seen:hover{background-color:#eff6ff}.badge-dropdown-content{max-height:320px;overflow-y:auto}.badge-loading{display:flex;justify-content:center;align-items:center;padding:2rem}.badge-spinner{width:24px;height:24px;border:2px solid hsla(0,0%,100%,.1);border-top-color:#f59e0b;border-radius:50%;animation:badge-spin .8s linear infinite}@keyframes badge-spin{to{transform:rotate(1turn)}}.badge-error{text-align:center;padding:1.5rem;color:#8892a4}.badge-error-icon{font-size:1.5rem;display:block;margin-bottom:.5rem}.badge-error p{margin:0 0 .75rem;font-size:.875rem}.badge-retry-btn{background:hsla(0,0%,100%,.08);border:none;padding:.5rem 1rem;border-radius:6px;font-size:.75rem;color:#f5f5f7;cursor:pointer;transition:background-color .2s}.badge-retry-btn:hover{background:hsla(0,0%,100%,.15)}.badge-no-notifications{text-align:center;padding:2rem;color:#8892a4;font-size:.875rem;margin:0}.badge-notification-item{display:flex;align-items:flex-start;gap:.75rem;padding:.875rem 1rem;cursor:pointer;transition:background-color .2s;border-bottom:1px solid hsla(0,0%,100%,.05)}.badge-notification-item:last-child{border-bottom:none}.badge-notification-item:focus,.badge-notification-item:hover{background-color:rgba(245,158,11,.12)}.badge-notification-item:focus{outline:none}.badge-item-icon{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center}.badge-item-icon img{width:36px;height:36px;object-fit:contain}.badge-item-level-icon{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.875rem;color:#1f2937;box-shadow:0 2px 4px rgba(0,0,0,.1)}.badge-item-content{flex:1 1;min-width:0}.badge-item-name{display:block;font-size:.875rem;font-weight:600;color:#f5f5f7;margin-bottom:.125rem}.badge-item-level{display:block;font-size:.75rem;color:#f59e0b;font-weight:500;margin-bottom:.25rem}.badge-item-time{display:block;font-size:.75rem;color:#8892a4}.badge-dropdown-footer{padding:.75rem 1rem;border-top:1px solid hsla(0,0%,100%,.08);background:hsla(0,0%,100%,.04)}.badge-view-all{display:block;text-align:center;color:#3b82f6;font-size:.875rem;font-weight:500;text-decoration:none;transition:color .2s}.badge-view-all:hover{color:#2563eb;text-decoration:underline}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}