.announcement-body {
  overflow-wrap: anywhere;
}

.announcement-body > :last-child {
  margin-bottom: 0;
}

.announcement-body h1,
.announcement-body h2,
.announcement-body h3,
.announcement-body h4 {
  font-size: 1.05rem;
  font-weight: 700;
  margin: 1rem 0 0.5rem;
}

.announcement-body blockquote {
  border-left: 4px solid #dee2e6;
  padding-left: 0.75rem;
  color: #6c757d;
}

.announcement-body pre {
  background: #f1f3f5;
  border-radius: 0.5rem;
  padding: 0.75rem;
  overflow-x: auto;
}

.announcement-body code {
  background: #f1f3f5;
  border-radius: 0.25rem;
  padding: 0.1rem 0.3rem;
}

.announcement-body pre code {
  padding: 0;
}

.announcement-body table {
  width: 100%;
  margin-bottom: 1rem;
}

.announcement-body th,
.announcement-body td {
  border: 1px solid #dee2e6;
  padding: 0.35rem 0.6rem;
}

.announcement-unread {
  border-left: 5px solid #d6001c !important;
  background: linear-gradient(90deg, rgba(255, 193, 7, 0.14), #fff 45%);
}

.announcement-new-badge {
  background: #d6001c;
  color: #fff;
  animation: announcement-pulse 1.6s ease-in-out infinite;
}

.nav-announcement-dot {
  animation: announcement-pulse 1.6s ease-in-out infinite;
}

.announcement-banner {
  position: relative;
  border: 2px solid #ffc107;
  border-radius: 1rem;
  background: #fffbe6;
  box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.7);
  animation: announcement-glow 2.4s ease-out infinite;
}

@keyframes announcement-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.12); }
}

@keyframes announcement-glow {
  0% { box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.65); }
  70% { box-shadow: 0 0 0 14px rgba(255, 193, 7, 0); }
  100% { box-shadow: 0 0 0 0 rgba(255, 193, 7, 0); }
}

@media (prefers-reduced-motion: reduce) {
  .announcement-new-badge,
  .nav-announcement-dot,
  .announcement-banner {
    animation: none;
  }
}
