.announcement-list { display: grid; gap: 16px; margin-top: 20px; }
.announcement-card { padding: 20px; border: 1px solid rgba(100,116,139,.18); border-radius: 16px; background: rgba(255,255,255,.65); }
.announcement-card h3 { margin: 0 0 8px; overflow-wrap: anywhere; }
.announcement-content { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.7; }
.announcement-dialog { width: min(600px,calc(100vw - 32px)); max-height: calc(100dvh - 40px); box-sizing: border-box; margin: auto; border: 1px solid rgba(100,116,139,.18); border-radius: 24px; padding: 28px; background: #f8fafc; color: #18334e; box-shadow: 0 24px 80px rgba(15,23,42,.22); overflow: auto; }
.announcement-dialog::backdrop { background: rgba(15,23,42,.32); backdrop-filter: blur(6px); }
.announcement-dialog h2 { overflow-wrap: anywhere; margin-top: 0; }
.announcement-dialog .dialog-actions { position: sticky; bottom: -28px; padding: 16px 0; background: #f8fafc; }
#announcementContentInput { min-height: 160px; resize: vertical; }
