/* Shared notification center for app topbars and the logged-in public header. */
.fd-notification-dropdown { position: relative; }
.fd-notification-dropdown .dropdown-toggle::after { display: none; }
.fd-notification-dropdown--public .fd-notification-btn {
  position: relative; width: 44px; height: 44px; min-width: 44px; padding: 0 !important;
  display: inline-grid; place-items: center; border: 1px solid rgba(15,23,42,.12); border-radius: 14px;
  color: #0f172a; background: #fff; box-shadow: 0 12px 26px rgba(15,23,42,.08);
}
.fd-notification-dropdown--public .fd-notification-btn:hover,
.fd-notification-dropdown--public .fd-notification-btn:focus,
.fd-notification-dropdown--public .fd-notification-btn[aria-expanded="true"] {
  color: #a90f1b; background: #fff7f8; border-color: #ffd3d8;
}
.fd-notification-dropdown--public .fd-notification-dot { top: -5px; inset-inline-end: -5px; }
.fd-notification-menu { z-index: 1085; }
.fd-notification-menu {
  width: min(410px, calc(100vw - 1.5rem));
  margin-top: .65rem !important;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--fd-border);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 22px 60px rgba(15, 23, 42, .16);
}
.fd-notification-menu__head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .9rem 1rem; border-bottom: 1px solid var(--fd-border); background: linear-gradient(180deg, #fff, #fbfcfe); }
.fd-notification-menu__head > div { min-width: 0; display: flex; flex-direction: column; gap: .15rem; }
.fd-notification-menu__head strong { color: var(--fd-ink); font-size: .9rem; }
.fd-notification-menu__head small { color: var(--fd-muted); font-size: .68rem; }
.fd-notification-menu__mark-all { flex: 0 0 auto; padding: .2rem .25rem; color: var(--fd-primary) !important; font-size: .68rem; font-weight: 700; text-decoration: none; }
.fd-notification-menu__body { max-height: min(440px, 62vh); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: rgba(100, 116, 139, .35) transparent; }
.fd-notification-menu__item { position: relative; display: flex; align-items: stretch; border-bottom: 1px solid #eef2f7; background: #fff; transition: background-color .15s ease; }
.fd-notification-menu__item:last-child { border-bottom: 0; }
.fd-notification-menu__item:hover { background: #f8fafc; }
.fd-notification-menu__item.is-unread { background: linear-gradient(90deg, rgba(167, 22, 31, .055), #fff 58%); box-shadow: inset -3px 0 0 rgba(167, 22, 31, .75); }
.fd-notification-menu__main { min-width: 0; flex: 1 1 auto; display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: .7rem; padding: .78rem .8rem .78rem .95rem; color: inherit !important; text-decoration: none !important; }
.fd-notification-menu__icon { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 11px; background: var(--fd-surface-muted); color: var(--fd-ink-soft); font-size: .98rem; }
.fd-notification-menu__item--danger .fd-notification-menu__icon { color: var(--fd-danger); background: var(--fd-danger-soft); }
.fd-notification-menu__item--warning .fd-notification-menu__icon { color: var(--fd-warning); background: var(--fd-warning-soft); }
.fd-notification-menu__item--success .fd-notification-menu__icon { color: var(--fd-success); background: var(--fd-success-soft); }
.fd-notification-menu__item--info .fd-notification-menu__icon { color: var(--fd-info); background: var(--fd-info-soft); }
.fd-notification-menu__copy { min-width: 0; display: flex; flex-direction: column; }
.fd-notification-menu__title-row { display: flex; align-items: center; gap: .45rem; min-width: 0; }
.fd-notification-menu__title-row strong { min-width: 0; flex: 1 1 auto; overflow: hidden; color: var(--fd-ink); font-size: .78rem; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
.fd-notification-menu__new { flex: 0 0 auto; display: inline-flex; align-items: center; min-height: 18px; padding: 0 .4rem; border-radius: 999px; background: var(--fd-primary-soft); color: var(--fd-primary); font-size: .58rem; font-weight: 800; }
.fd-notification-menu__message { display: -webkit-box; margin-top: .18rem; overflow: hidden; color: var(--fd-muted); font-size: .69rem; line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.fd-notification-menu__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .6rem; margin-top: .42rem; color: var(--fd-muted-2); font-size: .61rem; }
.fd-notification-menu__meta span + span::before { content: "•"; margin-inline-end: .6rem; color: #cbd5e1; }
.fd-notification-menu__read { width: 32px; height: 32px; flex: 0 0 32px; align-self: center; display: grid; place-items: center; margin-inline-end: .6rem; border: 1px solid transparent; border-radius: 9px; background: transparent; color: var(--fd-muted); }
.fd-notification-menu__read:hover { color: var(--fd-success); border-color: var(--fd-border); background: #fff; }
.fd-notification-menu__footer { padding: .65rem .85rem; border-top: 1px solid var(--fd-border); background: #fbfcfe; text-align: center; }
.fd-notification-menu__footer a { display: inline-flex; align-items: center; gap: .25rem; color: var(--fd-primary) !important; font-size: .72rem; font-weight: 800; }
.fd-notification-menu__empty { display: flex; min-height: 190px; flex-direction: column; align-items: center; justify-content: center; gap: .35rem; padding: 1.25rem; color: var(--fd-muted); text-align: center; }
.fd-notification-menu__empty i { width: 44px; height: 44px; display: grid; place-items: center; margin-bottom: .15rem; border-radius: 13px; background: var(--fd-surface-muted); color: var(--fd-muted); font-size: 1.1rem; }
.fd-notification-menu__empty strong { color: var(--fd-ink-soft); font-size: .82rem; }
.fd-notification-menu__empty span { max-width: 250px; font-size: .68rem; line-height: 1.6; }
.fd-notification-btn[aria-expanded="true"] { color: var(--fd-primary) !important; border-color: rgba(167, 22, 31, .24); background: var(--fd-primary-soft); }

@media (max-width: 575.98px) {
  .fd-notification-menu { width: min(370px, calc(100vw - 1rem)); }
  .fd-notification-menu__head { padding-inline: .8rem; }
  .fd-notification-menu__main { grid-template-columns: 34px minmax(0, 1fr); gap: .55rem; padding: .72rem .65rem .72rem .75rem; }
  .fd-notification-menu__icon { width: 34px; height: 34px; }
  .fd-notification-menu__read { margin-inline-end: .4rem; }
}

/* Archive cards are shared by subscriber and admin notification centers. */
.fd-notification-dot { position: absolute; top: -5px; inset-inline-end: -5px; min-width: 19px; height: 19px; padding: 0 .3rem; display: grid; place-items: center; border: 2px solid #fff; border-radius: 999px; background: var(--fd-danger, #dc2626); color: #fff; font-size: .58rem; font-weight: 800; line-height: 1; }
.fd-notification-list { display: grid; gap: .75rem; }
.fd-notification-card { position: relative; display: grid; grid-template-columns: 42px minmax(0,1fr) auto; gap: .8rem; align-items: flex-start; padding: .9rem; border: 1px solid var(--fd-border, #e2e8f0); border-radius: 14px; background: #fff; }
.fd-notification-card.is-unread { border-color: #e7b7bb; box-shadow: inset -3px 0 0 var(--fd-primary, #a7161f); }
.fd-notification-card__icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 12px; background: #f8fafc; color: var(--fd-ink-soft, #334155); }
.fd-notification-card--danger .fd-notification-card__icon { color: var(--fd-danger, #dc2626); background: var(--fd-danger-soft, #fef2f2); }
.fd-notification-card--warning .fd-notification-card__icon { color: var(--fd-warning, #d97706); background: var(--fd-warning-soft, #fffbeb); }
.fd-notification-card--success .fd-notification-card__icon { color: var(--fd-success, #059669); background: var(--fd-success-soft, #ecfdf5); }
.fd-notification-card--info .fd-notification-card__icon { color: var(--fd-info, #2563eb); background: var(--fd-info-soft, #eff6ff); }
.fd-notification-card__copy h2 { margin: 0; font-size: .86rem; }
.fd-notification-card__copy p { margin: .25rem 0 0; color: var(--fd-muted, #64748b); font-size: .76rem; line-height: 1.7; }
.fd-notification-card__meta { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin-top: .5rem; color: var(--fd-muted, #64748b); font-size: .67rem; }
@media (max-width: 575.98px) {
  .fd-notification-card { grid-template-columns: 38px minmax(0,1fr); }
  .fd-notification-card__action { grid-column: 1 / -1; }
}
