/* Announcement cards — keep text inside boxes; let NEW badge breathe */
.announcement-box {
    max-width: 100%;
    overflow: visible;
    padding-top: 0.5rem;
    padding-right: 0.35rem;
}

.announcement-card {
    overflow: hidden;
    max-width: 100%;
}

.announcement-item {
    min-width: 0;
    overflow: visible;
}

.announcement-item__body,
.announcement-card__body {
    min-width: 0;
    overflow: hidden;
}

.announcement-item__badge {
    position: absolute;
    top: -0.35rem;
    right: -0.15rem;
    z-index: 10;
    pointer-events: none;
}

.announcement-item__title,
.announcement-card__title {
    overflow-wrap: anywhere;
    word-break: break-word;
    hyphens: auto;
}

.announcement-item__text,
.announcement-card__excerpt {
    overflow-wrap: anywhere;
    word-break: break-word;
    hyphens: auto;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.announcement-item__text {
    -webkit-line-clamp: 2;
}

.announcement-card__excerpt {
    -webkit-line-clamp: 3;
}

.announcement-item__url,
.announcement-card__url {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: block;
    max-width: 100%;
}

.announcement-card__meta {
    min-width: 0;
    flex: 1 1 auto;
}

.announcement-card__file-name,
.announcement-card__doc-title {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.announcement-card__footer {
    gap: 0.75rem;
    flex-wrap: wrap;
}

.announcement-card__action {
    max-width: 100%;
    flex-shrink: 0;
}

.announcement-card__action-label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.announcement-detail__content {
    overflow-wrap: anywhere;
    word-break: break-word;
    hyphens: auto;
}

.line-clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.line-clamp-3 {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.announcement-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    animation: announcementFadeInUp 0.6s ease forwards;
}

.announcement-card__content {
    flex: 1 1 auto;
    min-height: 0;
    min-width: 0;
    overflow: hidden;
}

.announcement-card__footer-wrap {
    margin-top: auto;
}

@keyframes announcementFadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .announcement-card {
        animation: none;
    }
}
