/* Экран «Уведомления» (techkarta-back#257): чего нет в файлах макета — появление строк, состояние загрузки и блок
   совета под лентой (на макете его нет, в сервисе есть — GET /api/v1/tip). Правила макета — в up-acct.css и
   up-home.css, их не трогаем. Только transform, opacity и filter; prefers-reduced-motion выключает кит
   (`.up * { animation: none; transition: none }`). */

/* Строки дня появляются лесенкой следом за карточкой дня — те же кадры, что у строк «Моих документов» (up-docs.css) */
.up-notif .x-ntf-in { animation: up-row-in-a .36s var(--ease-out) both; animation-delay: calc(var(--n, 0) * 40ms); }

/* Загрузка: контуры строк. Проявляются с задержкой — при быстром ответе их не видно вовсе */
.up-notif .x-ntf-skel { animation: x-ntf-wait .3s var(--ease-out) .35s both; }
/* место кнопки «Прочитать все» занято заранее: когда лента придёт, заголовок не сдвинется */
.up-notif .x-ntf-wait > .up-top { min-height: 36px; }
.up-notif .x-ntf-skel .up-ntf { pointer-events: none; }
.up-notif .x-ntf-skel .up-ntf-t { gap: 8px; }
.up-notif .x-ntf-skel .up-ntf-t > .x-ntf-sk { overflow: visible; }
.up-notif .x-ntf-sk { display: block; width: 46%; height: 12px; border-radius: 6px; background: var(--surface-2); animation: x-ntf-breathe 1.2s ease-in-out infinite alternate; }
.up-notif .x-ntf-sk.is-2 { width: 72%; height: 10px; }
.up-notif .x-ntf-sk.is-cap { width: 72px; height: 10px; margin: 3px 10px; background: var(--line); }
@keyframes x-ntf-wait { from { opacity: 0; } }
@keyframes x-ntf-breathe { to { opacity: .45; } }

