:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh}.notification-item-link{text-decoration:none;color:inherit;display:block}.notification-item{display:flex;align-items:flex-start;padding:12px 16px;border-bottom:1px solid #f3f4f6;transition:background-color .2s;cursor:pointer;position:relative}.notification-item:hover{background-color:#f9fafb}.notification-item.unread{background-color:#eff6ff;border-left:3px solid #3b82f6;padding-left:13px}.notification-item.unread:hover{background-color:#dbeafe}.notification-item.priority-urgent{border-left-color:#ef4444}.notification-item.priority-high{border-left-color:#f59e0b}.notification-item.priority-medium{border-left-color:#3b82f6}.notification-item.priority-low{border-left-color:#6b7280}.notification-icon{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;margin-right:12px;background:#f3f4f6;border-radius:50%;font-size:16px}.notification-item.unread .notification-icon{background:#e0e7ff}.notification-content{flex:1;min-width:0;margin-right:8px}.notification-title{font-size:14px;font-weight:600;color:#111827;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notification-message{font-size:13px;color:#6b7280;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:4px}.notification-time{font-size:12px;color:#9ca3af}.notification-actions{display:flex;gap:4px;opacity:0;transition:opacity .2s}.notification-item:hover .notification-actions{opacity:1}.notification-action-btn{background:transparent;border:none;cursor:pointer;padding:4px;border-radius:4px;transition:background-color .2s;color:#6b7280;font-size:14px;line-height:1}.notification-action-btn:hover{background-color:#0000000d}.notification-action-btn.mark-read{color:#10b981}.notification-action-btn.mark-read:hover{background-color:#10b9811a}.notification-action-btn.archive{color:#ef4444}.notification-action-btn.archive:hover{background-color:#ef44441a}.notification-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 10px 25px #0000001a,0 4px 10px #0000000d;width:380px;max-width:90vw;z-index:1000;overflow:hidden;animation:dropdown-slide .2s ease-out}@keyframes dropdown-slide{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.notification-dropdown-header{padding:16px;border-bottom:1px solid #e5e7eb;background:#f9fafb;display:flex;justify-content:space-between;align-items:center}.notification-dropdown-header h3{margin:0;font-size:16px;font-weight:600;color:#111827}.notification-dropdown-actions{display:flex;gap:12px;align-items:center}.mark-all-read-btn{background:none;border:none;color:#3b82f6;font-size:14px;cursor:pointer;padding:4px 8px;border-radius:4px;transition:background-color .2s;font-weight:500}.mark-all-read-btn:hover{background-color:#3b82f61a}.view-all-link{color:#3b82f6;text-decoration:none;font-size:14px;font-weight:500;padding:4px 8px;border-radius:4px;transition:background-color .2s}.view-all-link:hover{background-color:#3b82f61a}.notification-dropdown-content{max-height:400px;overflow-y:auto;background:#fff}.notification-list{padding:0}.notification-loading{padding:40px;text-align:center;color:#6b7280}.spinner{display:inline-block;width:24px;height:24px;border:3px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:12px}@keyframes spin{to{transform:rotate(360deg)}}.notification-empty{padding:40px;text-align:center;color:#9ca3af}.empty-icon{margin-bottom:12px;color:#d1d5db}.notification-empty p{margin:0;font-size:14px}.notification-dropdown-footer{padding:12px 16px;border-top:1px solid #e5e7eb;background:#f9fafb;text-align:center}.see-more-link{color:#3b82f6;text-decoration:none;font-size:14px;font-weight:500}.see-more-link:hover{text-decoration:underline}.notification-dropdown-content::-webkit-scrollbar{width:6px}.notification-dropdown-content::-webkit-scrollbar-track{background:#f3f4f6}.notification-dropdown-content::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.notification-dropdown-content::-webkit-scrollbar-thumb:hover{background:#9ca3af}.notification-bell-container{position:relative;display:inline-block}.notification-bell{position:relative;background:transparent;border:none;cursor:pointer;padding:8px;border-radius:50%;transition:background-color .2s;color:#666}.notification-bell:hover{background-color:#0000000d;color:#333}.notification-bell:focus{outline:none;box-shadow:0 0 0 2px #4299e180}.notification-bell.disconnected{opacity:.6}.bell-icon{display:block}.notification-badge{position:absolute;top:4px;right:4px;background:#ef4444;color:#fff;font-size:10px;font-weight:700;padding:2px 4px;border-radius:10px;min-width:16px;text-align:center;line-height:12px;animation:badge-pulse 2s infinite}@keyframes badge-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.connection-indicator{position:absolute;bottom:6px;right:6px;width:6px;height:6px;background:#fbbf24;border-radius:50%;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.notification-center{max-width:800px;margin:0 auto;padding:24px;min-height:100vh}.notification-center-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.notification-center-header h1{font-size:28px;font-weight:700;color:#111827;margin:0}.connection-status{padding:4px 12px;border-radius:16px;font-size:12px;font-weight:500}.connection-status.disconnected{background:#fef3c7;color:#92400e}.notification-center-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #e5e7eb}.notification-filters{display:flex;gap:8px}.filter-btn{padding:8px 16px;background:transparent;border:1px solid #d1d5db;border-radius:6px;color:#6b7280;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.filter-btn:hover{border-color:#9ca3af;color:#374151}.filter-btn.active{background:#3b82f6;border-color:#3b82f6;color:#fff}.mark-all-read-btn.primary{padding:8px 16px;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.mark-all-read-btn.primary:hover{background:#2563eb}.notification-center-content{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.notification-center-list{border-top:1px solid #f3f4f6}.notification-center-list .notification-item:last-child{border-bottom:none}.notification-center-loading,.notification-center-empty{padding:60px 24px;text-align:center}.spinner-large{display:inline-block;width:48px;height:48px;border:4px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:16px}.empty-icon-large{color:#d1d5db;margin-bottom:16px}.notification-center-empty h2{font-size:20px;font-weight:600;color:#374151;margin:0 0 8px}.notification-center-empty p{font-size:14px;color:#6b7280;margin:0}.notification-center-footer{padding:16px;text-align:center}.load-more-btn{padding:10px 24px;background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.load-more-btn:hover:not(:disabled){border-color:#9ca3af;background:#f9fafb}.load-more-btn:disabled{opacity:.5;cursor:not-allowed}.notification-preferences{margin-top:32px}.preferences-toggle{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.preferences-toggle:hover{border-color:#9ca3af;background:#f9fafb}.preferences-panel{margin-top:16px;padding:24px;background:#fff;border:1px solid #e5e7eb;border-radius:8px}.preferences-panel h3{font-size:18px;font-weight:600;color:#111827;margin:0 0 20px}.preference-item{margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid #f3f4f6}.preference-item:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.preference-item label{display:flex;align-items:center;gap:12px;font-size:14px;font-weight:500;color:#374151;cursor:pointer}.preference-item input[type=checkbox]{width:18px;height:18px;cursor:pointer}.preference-description{margin:8px 0 0 30px;font-size:13px;color:#6b7280}.permission-btn{padding:4px 12px;background:#3b82f6;color:#fff;border:none;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;transition:background-color .2s}.permission-btn:hover{background:#2563eb}.permission-status{padding:2px 8px;border-radius:4px;font-size:12px}.permission-status.granted{background:#d1fae5;color:#065f46}.permission-status.denied{background:#fee2e2;color:#991b1b}
