/* Notifications feature styles. */ /* ===== Notifications glass style ===== */ .notifications-screen { position: relative; isolation: isolate; color: var(--text-primary); min-height: 100%; align-content: start; } .notifications-screen::before { content: ""; position: absolute; inset: -12px -12px 0; z-index: -1; pointer-events: none; background: radial-gradient(320px 320px at 86% 12%, color-mix(in srgb, var(--rel-contact) 20%, transparent), transparent 72%), radial-gradient(280px 280px at 18% 82%, color-mix(in srgb, var(--rel-contact) 14%, transparent), transparent 72%), radial-gradient(260px 260px at 70% 65%, color-mix(in srgb, var(--warning) 12%, transparent), transparent 75%), var(--surface); } .notifications-screen .tabs { background: var(--surface); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); border: 1px solid transparent; border-radius: 16px; } .notifications-screen .tab-btn { color: var(--text-secondary); } .notifications-screen .tab-btn.active { background: color-mix(in srgb, var(--warning) 12%, transparent); border: 1px solid transparent; color: var(--warning); } .notifications-screen .notifications-list > .card { background: var(--surface); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); border: 1px solid var(--border-subtle); border-radius: 20px; box-shadow: 0 0 60px color-mix(in srgb, var(--accent) 12%, transparent); } .notifications-screen::before { content: none; } /* Contacts overflow menu body portal: avoids topbar overflow hit-testing on desktop/Android. */ /* ===== Notifications: social event cards ===== */ .notifications-screen .notification-card { gap: 10px; } .notification-identity { display: flex; align-items: center; gap: 10px; min-width: 0; } .notification-avatar { width: 40px; height: 40px; min-width: 40px; min-height: 40px; flex: 0 0 auto; } .notification-identity-text { min-width: 0; flex: 1 1 auto; } .notification-identity-primary { display: flex; align-items: baseline; gap: 6px; min-width: 0; flex-wrap: wrap; } .notification-person-name { color: var(--text-primary); font-weight: 700; overflow-wrap: anywhere; } .notification-login, .notification-time-separator, .notification-time { color: var(--text-secondary); font-size: 12px; } .notification-action, .notification-content { margin: 0; } .notification-action { color: var(--text-secondary); font-size: 13px; } .notification-content { color: var(--text-primary); font-size: 15px; line-height: 1.45; white-space: pre-wrap; overflow-wrap: anywhere; } .notification-engagement { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; padding-top: 2px; color: var(--text-secondary); } .notification-engagement-item { display: inline-flex; align-items: center; gap: 5px; min-width: 24px; font-size: 12px; line-height: 1; } .notification-engagement-icon { font-size: 15px; } .notifications-screen .notification-card--clickable { cursor: pointer; transition: transform 120ms ease, border-color 120ms ease, background-color 120ms ease; } .notifications-screen .notification-card--clickable:hover, .notifications-screen .notification-card--clickable:focus-visible { border-color: var(--border-subtle); background: color-mix(in srgb, var(--text-primary) 6%, transparent); outline: none; } .notifications-screen .notification-card--clickable:active { transform: scale(0.99); } /* Уведомления: информационные блоки без рамок. Hover/focus не возвращает * обводку — различение сохраняется фоном и лёгкой реакцией на нажатие. */ .notifications-screen .notifications-list > .notification-card, .notifications-screen .notifications-list > .notification-card:hover, .notifications-screen .notifications-list > .notification-card:focus, .notifications-screen .notifications-list > .notification-card:focus-visible, .notifications-screen .notifications-list > .notification-card:active { border: 0; outline: 0; } .notifications-screen .notifications-list > .notification-empty-state.card, .notifications-screen .notification-empty-state { margin-top: var(--space-5); padding: var(--space-5) var(--space-4); border: 0; background: none; box-shadow: none; text-align: center; justify-items: center; } .notifications-screen .notification-empty-state strong { font-size: var(--text-md); color: var(--text-primary); } .notifications-screen .notification-empty-state .meta-muted { max-width: 30ch; font-size: var(--text-sm); } .notifications-screen .notification-feed-tabs { margin-bottom: var(--space-2); }