.fs-notifications-page,
.fs-notifications-card,
.fs-notifications-list {
  display: grid;
  gap: 12px;
}

.fs-notifications-header,
.fs-notifications-header-actions,
.fs-notification-item,
.fs-notification-meta {
  display: flex;
  align-items: center;
  gap: 12px;
}

.fs-notifications-header {
  justify-content: space-between;
}

.fs-notifications-header p,
.fs-notification-item p,
.fs-notification-meta {
  color: var(--fs-color-text-secondary);
  font-size: 13px;
  line-height: 1.45;
}

.fs-notifications-header-actions {
  flex-wrap: wrap;
  justify-content: flex-end;
}

.fs-notifications-card {
  padding: 12px;
}

.fs-notifications-status {
  color: var(--fs-color-text-secondary);
  font-size: 13px;
}

.fs-notification-item {
  align-items: flex-start;
  justify-content: space-between;
  padding: 14px;
  background: var(--fs-color-surface);
  border: 1px solid var(--fs-color-border-subtle);
  border-radius: var(--fs-radius-md);
}

.fs-notification-item.is-unread {
  background: var(--fs-color-primary-subtle);
  border-color: var(--fs-color-primary-line);
}

.fs-notification-copy {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.fs-notification-copy strong {
  color: var(--fs-color-text);
  font-size: 14px;
}

.fs-notification-copy a {
  width: fit-content;
  color: var(--fs-color-primary-hover);
  font-size: 13px;
  font-weight: 700;
}

.fs-notification-meta {
  flex-wrap: wrap;
  gap: 7px;
  font-size: 11px;
}

.fs-notification-source {
  padding: 3px 7px;
  color: var(--fs-color-primary-hover);
  background: var(--fs-color-primary-line);
  border-radius: 999px;
  font-weight: 700;
}

.fs-notification-read {
  flex: 0 0 auto;
}

.fs-shell-action--notifications {
  position: relative;
}

.fs-shell-notification-count {
  position: absolute;
  top: -4px;
  right: -4px;
  display: grid;
  place-items: center;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  color: #fff;
  background: var(--fs-color-danger);
  border: 2px solid var(--fs-color-header-surface);
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
}

.fs-shell-notification-count[hidden] {
  display: none;
}

@media (max-width: 600px) {
  .fs-notifications-header,
  .fs-notification-item {
    align-items: stretch;
    flex-direction: column;
  }

  .fs-notifications-header-actions {
    justify-content: stretch;
  }

  .fs-notifications-header-actions .fs-btn,
  .fs-notification-read {
    width: 100%;
  }
}
