Add system announcement feature.

This commit is contained in:
2025-07-04 08:05:11 +02:00
parent 667040d7f8
commit e31401a939
8 changed files with 1105 additions and 4 deletions

View File

@@ -1500,4 +1500,112 @@ input[type="time"]::-webkit-datetime-edit {
align-items: stretch;
gap: 0.5rem;
}
}
/* Announcement Styles */
.announcements {
margin-bottom: 1.5rem;
}
.announcements .alert {
margin-bottom: 1rem;
padding: 1rem;
border-radius: 8px;
border: 1px solid transparent;
position: relative;
}
.announcements .alert-info {
background-color: #d1ecf1;
border-color: #bee5eb;
color: #0c5460;
}
.announcements .alert-warning {
background-color: #fff3cd;
border-color: #ffeaa7;
color: #856404;
}
.announcements .alert-success {
background-color: #d4edda;
border-color: #c3e6cb;
color: #155724;
}
.announcements .alert-danger {
background-color: #f8d7da;
border-color: #f5c6cb;
color: #721c24;
}
.announcements .alert-urgent {
border-width: 2px;
box-shadow: 0 4px 12px rgba(220, 53, 69, 0.15);
animation: pulse-urgent 2s infinite;
}
@keyframes pulse-urgent {
0% { box-shadow: 0 4px 12px rgba(220, 53, 69, 0.15); }
50% { box-shadow: 0 6px 16px rgba(220, 53, 69, 0.25); }
100% { box-shadow: 0 4px 12px rgba(220, 53, 69, 0.15); }
}
.announcement-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 0.5rem;
}
.announcement-header strong {
font-size: 1.1rem;
}
.urgent-badge {
background: #dc3545;
color: white;
padding: 0.25rem 0.5rem;
border-radius: 12px;
font-size: 0.75rem;
font-weight: bold;
text-transform: uppercase;
animation: blink 1.5s infinite;
}
@keyframes blink {
0%, 50% { opacity: 1; }
51%, 100% { opacity: 0.6; }
}
.announcement-content {
margin-bottom: 0.5rem;
line-height: 1.5;
}
.announcement-content p {
margin-bottom: 0.5rem;
}
.announcement-content p:last-child {
margin-bottom: 0;
}
.announcement-date {
color: #6c757d;
font-size: 0.875rem;
font-style: italic;
}
/* Mobile responsiveness for announcements */
@media (max-width: 768px) {
.announcement-header {
flex-direction: column;
align-items: flex-start;
gap: 0.5rem;
}
.urgent-badge {
align-self: flex-end;
}
}