.announcement-feed { position: relative; text-align: left; }
.announcement-manage-link { text-align: right; margin-bottom: 8px; }
.announcement-scroll { height: 400px; overflow-y: auto; border-top: 1px solid #eee; }
.announcement-item { border-bottom: 1px dotted #999; }
.announcement-title { width: 100%; border: 0; background: #fff; padding: 12px 8px; text-align: left; display: flex; align-items: flex-start; color: #333; }
.announcement-title:hover, .announcement-title:focus { background: #fff8ed; outline: 1px solid #f0ad4e; }
.announcement-title-static { cursor: default; }
.announcement-marker { color: #f0ad4e; flex: 0 0 22px; }
.announcement-title-text { flex: 1 1 auto; min-width: 0; padding-right: 12px; }
.announcement-year { flex: 0 0 65px; margin-left: auto; text-align: right; white-space: nowrap; color: #d58512; font-weight: bold; }
.announcement-detail { display: none; padding: 0 12px 16px 30px; background: #fafafa; }
.announcement-content { padding: 12px 0; white-space: pre-wrap; overflow-wrap: break-word; }
.announcement-image-grid { margin: 10px -4px; overflow: hidden; }
.announcement-image-row { display: flex; width: 100%; }
.announcement-image { padding: 4px; min-width: 0; text-align: center; }
.announcement-image img { max-width: 100%; height: 110px; object-fit: contain; background: #fff; border: 1px solid #ddd; padding: 3px; }
.announcement-file-row { padding-top: 8px; }
.announcement-file-row a { display: block; margin: 5px 0; overflow-wrap: anywhere; }
.announcement-loading, .announcement-retry { display: none; margin: 12px auto; text-align: center; }
.mfp-close { width: 44px !important; height: 44px !important; font-size: 38px !important; }
@media (max-width: 767px) {
    .announcement-scroll { height: 360px; }
    .announcement-title { padding: 10px 4px; }
    .announcement-year { flex-basis: 48px; }
    .announcement-detail { padding-left: 10px; padding-right: 10px; }
    .announcement-image img { height: 80px; }
}
