.kv-notif-bell{position:relative;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;border:none;background:0 0;line-height:1}.kv-notif-bell:focus-visible{outline:2px solid var(--brand-primary,#281070);outline-offset:2px}.kv-notif-badge{position:absolute;top:2px;right:2px;min-width:18px;height:18px;padding:0 5px;border-radius:50px;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;font-size:.58rem;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1;transform:scale(0);opacity:0;transition:all .3s cubic-bezier(.34, 1.56, .64, 1);box-shadow:0 2px 6px rgba(239,68,68,.4);pointer-events:none}.kv-notif-badge.visible{transform:scale(1);opacity:1}.kv-notif-badge.pulse{animation:kvBellPulse .6s ease-out}@keyframes kvBellPulse{0%{transform:scale(1)}50%{transform:scale(1.3)}100%{transform:scale(1)}}.kv-notif-bell.ring i,.kv-notif-bell.ring svg{animation:kvBellRing .5s ease-in-out}@keyframes kvBellRing{0%{transform:rotate(0)}15%{transform:rotate(14deg)}30%{transform:rotate(-14deg)}45%{transform:rotate(10deg)}60%{transform:rotate(-6deg)}75%{transform:rotate(2deg)}100%{transform:rotate(0)}}.kv-notif-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:380px;max-height:520px;background:var(--bg-card,#fff);border:1px solid var(--border-light,#e5e7eb);border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.15),0 4px 20px rgba(0,0,0,.08);z-index:9999;display:flex;flex-direction:column;opacity:0;visibility:hidden;transform:translateY(-8px) scale(.98);transition:all .25s cubic-bezier(.34, 1.56, .64, 1);overflow:hidden}.kv-notif-dropdown.open{opacity:1;visibility:visible;transform:translateY(0) scale(1)}[data-theme=dark] .kv-notif-dropdown{background:var(--bg-card-dark,#1e1e2e);border-color:var(--border-dark,#2d2d3d);box-shadow:0 20px 60px rgba(0,0,0,.4)}.kv-notif-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border-light,#e5e7eb)}[data-theme=dark] .kv-notif-header{border-color:var(--border-dark,#2d2d3d)}.kv-notif-header h3{font-size:.85rem;font-weight:700;margin:0;color:var(--text-primary,#1a1a2e)}.kv-notif-header-actions{display:flex;align-items:center;gap:6px}.kv-notif-header-actions button{font-size:.68rem;padding:4px 10px;border-radius:50px;border:1px solid var(--border-light,#e5e7eb);background:0 0;color:var(--text-secondary,#6b7280);cursor:pointer;transition:all .2s;font-weight:500}.kv-notif-header-actions button:hover{color:var(--brand-primary,#281070);border-color:var(--brand-primary,#281070);background:rgba(40,16,112,.05)}.kv-notif-filters{display:flex;gap:4px;padding:8px 16px;overflow-x:auto;border-bottom:1px solid var(--border-light,#f0f0f0);scrollbar-width:none}.kv-notif-filters::-webkit-scrollbar{display:none}.kv-notif-filter-btn{font-size:.65rem;padding:4px 10px;border-radius:50px;border:none;background:var(--bg-hover,#f3f4f6);color:var(--text-secondary,#6b7280);cursor:pointer;white-space:nowrap;transition:all .2s;font-weight:500}.kv-notif-filter-btn.active,.kv-notif-filter-btn:hover{background:var(--brand-primary,#281070);color:#fff}.kv-notif-list{flex:1;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.kv-notif-item{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;cursor:pointer;transition:all .2s;text-decoration:none;color:inherit;border-bottom:1px solid var(--border-light,#f5f5f5);position:relative}.kv-notif-item:hover{background:var(--bg-hover,#f9fafb)}[data-theme=dark] .kv-notif-item:hover{background:rgba(255,255,255,.03)}.kv-notif-item.unread{background:rgba(40,16,112,.03)}.kv-notif-item.unread::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--brand-primary,#281070);border-radius:0 3px 3px 0}[data-theme=dark] .kv-notif-item.unread{background:rgba(40,16,112,.08)}.kv-notif-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--bg-hover,#f3f4f6)}.kv-notif-icon i,.kv-notif-icon svg{width:16px;height:16px}.kv-notif-icon.cat-announcements{background:#f3e8ff;color:#7c3aed}.kv-notif-icon.cat-messages{background:#dbeafe;color:#2563eb}.kv-notif-icon.cat-assessments{background:#dcfce7;color:#16a34a}.kv-notif-icon.cat-quizzes{background:#fef3c7;color:#d97706}.kv-notif-icon.cat-certificates{background:#fce7f3;color:#db2777}.kv-notif-icon.cat-support{background:#e0e7ff;color:#4f46e5}.kv-notif-icon.cat-enrollment{background:#ccfbf1;color:#0d9488}.kv-notif-icon.cat-staff_workflow{background:#fef2f2;color:#dc2626}[data-theme=dark] .kv-notif-icon.cat-announcements{background:rgba(124,58,237,.15)}[data-theme=dark] .kv-notif-icon.cat-messages{background:rgba(37,99,235,.15)}[data-theme=dark] .kv-notif-icon.cat-assessments{background:rgba(22,163,106,.15)}[data-theme=dark] .kv-notif-icon.cat-quizzes{background:rgba(217,119,6,.15)}[data-theme=dark] .kv-notif-icon.cat-certificates{background:rgba(219,39,119,.15)}[data-theme=dark] .kv-notif-icon.cat-support{background:rgba(79,70,229,.15)}[data-theme=dark] .kv-notif-icon.cat-enrollment{background:rgba(13,148,136,.15)}[data-theme=dark] .kv-notif-icon.cat-staff_workflow{background:rgba(220,38,38,.15)}.kv-notif-content{flex:1;min-width:0}.kv-notif-title{font-size:.78rem;font-weight:600;color:var(--text-primary,#1a1a2e);margin:0 0 2px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.kv-notif-item.unread .kv-notif-title{font-weight:700}.kv-notif-body{font-size:.7rem;color:var(--text-secondary,#6b7280);margin:0;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.kv-notif-time{font-size:.6rem;color:var(--text-muted,#9ca3af);margin-top:4px;display:flex;align-items:center;gap:4px}.kv-notif-priority-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.kv-notif-priority-dot.urgent{background:#ef4444}.kv-notif-priority-dot.high{background:#f59e0b}.kv-notif-dismiss{position:absolute;top:8px;right:8px;width:20px;height:20px;border-radius:50%;border:none;background:var(--bg-hover,#f3f4f6);color:var(--text-muted,#9ca3af);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:all .2s;font-size:11px}.kv-notif-item:hover .kv-notif-dismiss{opacity:1}.kv-notif-dismiss:hover{background:#fee2e2;color:#ef4444}.kv-notif-footer{padding:10px 16px;border-top:1px solid var(--border-light,#e5e7eb);text-align:center}.kv-notif-footer a{font-size:.72rem;font-weight:600;color:var(--brand-primary,#281070);text-decoration:none;transition:opacity .2s}.kv-notif-footer a:hover{opacity:.7}.kv-notif-empty{padding:40px 20px;text-align:center}.kv-notif-empty-icon{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#f3e8ff,#dbeafe);display:flex;align-items:center;justify-content:center;margin:0 auto 12px;color:var(--brand-primary,#281070)}.kv-notif-empty p{font-size:.78rem;color:var(--text-muted,#9ca3af);margin:0}.kv-notif-skeleton{display:flex;gap:12px;padding:12px 16px}.kv-notif-skeleton-circle{width:36px;height:36px;border-radius:10px;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;animation:kvShimmer 1.5s infinite;flex-shrink:0}.kv-notif-skeleton-lines{flex:1}.kv-notif-skeleton-line{height:10px;border-radius:4px;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;animation:kvShimmer 1.5s infinite;margin-bottom:6px}.kv-notif-skeleton-line:last-child{width:60%}@keyframes kvShimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}.kv-sidebar-notif-badge{min-width:16px;height:16px;padding:0 4px;border-radius:50px;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;font-size:.55rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;line-height:1;margin-left:auto}@media (max-width:640px){.kv-notif-dropdown{position:fixed;top:0;left:0;right:0;bottom:0;width:100%;max-height:100vh;border-radius:0;transform:translateY(100%)}.kv-notif-dropdown.open{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.kv-notif-badge,.kv-notif-bell.ring i,.kv-notif-bell.ring svg,.kv-notif-dropdown{animation:none!important;transition:opacity .1s!important}}