.notifications-page { min-height: 100vh; } .notifications-header { position: sticky; top: 0; background: var(--bg-secondary); padding: 16px; border-bottom: 1px solid var(--divider-color); display: flex; justify-content: space-between; align-items: center; z-index: 10; } .notifications-header > div { display: flex; align-items: center; gap: 12px; } .notifications-header h1 { font-size: 24px; font-weight: 700; color: var(--text-primary); } .unread-badge { padding: 4px 10px; border-radius: 12px; background: #FF3B30; color: white; font-size: 13px; font-weight: 700; } .mark-all-btn { display: flex; align-items: center; gap: 6px; padding: 8px 12px; border-radius: 20px; background: var(--button-accent); color: white; font-size: 14px; font-weight: 600; } .notifications-list { padding: 16px; display: flex; flex-direction: column; gap: 12px; } /* Telegram-стиль баблов */ .notification-bubble { display: flex; gap: 12px; padding: 12px; border-radius: 16px; background: var(--bg-secondary); box-shadow: 0 2px 8px var(--shadow-sm); cursor: pointer; transition: all 0.2s; position: relative; } .notification-bubble.unread { background: #E8F4FD; border-left: 3px solid var(--button-accent); } [data-theme="dark"] .notification-bubble.unread { background: rgba(255, 255, 255, 0.05); border-left: 3px solid var(--button-accent); } .notification-bubble:active { transform: scale(0.98); box-shadow: 0 1px 4px var(--shadow-sm); } .bubble-avatar { position: relative; flex-shrink: 0; } .bubble-avatar img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; } .bubble-icon { position: absolute; bottom: -2px; right: -2px; width: 24px; height: 24px; border-radius: 50%; display: flex; align-items: center; justify-content: center; border: 2px solid var(--bg-secondary); } .bubble-content { flex: 1; display: flex; flex-direction: column; gap: 6px; } .bubble-text { font-size: 15px; line-height: 1.4; } .bubble-username { font-weight: 600; color: var(--text-primary); } .bubble-action { color: var(--text-secondary); } .bubble-post-preview { padding: 8px 12px; border-radius: 10px; background: var(--bg-primary); font-size: 14px; color: var(--text-secondary); line-height: 1.4; } .bubble-image-preview { width: 100%; max-width: 200px; height: 120px; border-radius: 10px; overflow: hidden; } .bubble-image-preview img { width: 100%; height: 100%; object-fit: cover; } .bubble-time { font-size: 12px; color: var(--text-secondary); } .bubble-unread-dot { position: absolute; top: 16px; right: 12px; width: 10px; height: 10px; border-radius: 50%; background: var(--button-accent); } /* Разные стили для разных типов уведомлений */ .notification-bubble.unread:has(.bubble-icon[style*="FF3B30"]) { background: #FFE8E6; border-left-color: #FF3B30; } .notification-bubble.unread:has(.bubble-icon[style*="34C759"]) { background: #E6F9EB; border-left-color: #34C759; } .notification-bubble.unread:has(.bubble-icon[style*="5856D6"]) { background: #EEEAFD; border-left-color: #5856D6; } .notification-bubble.unread:has(.bubble-icon[style*="FF9500"]) { background: #FFF3E0; border-left-color: #FF9500; } /* Темная тема - менее яркие уведомления */ [data-theme="dark"] .notification-bubble.unread:has(.bubble-icon[style*="FF3B30"]) { background: rgba(255, 59, 48, 0.1); border-left-color: #FF3B30; } [data-theme="dark"] .notification-bubble.unread:has(.bubble-icon[style*="34C759"]) { background: rgba(52, 199, 89, 0.1); border-left-color: #34C759; } [data-theme="dark"] .notification-bubble.unread:has(.bubble-icon[style*="5856D6"]) { background: rgba(88, 86, 214, 0.1); border-left-color: #5856D6; } [data-theme="dark"] .notification-bubble.unread:has(.bubble-icon[style*="FF9500"]) { background: rgba(255, 149, 0, 0.1); border-left-color: #FF9500; }