.announcement-list{margin:0;padding:0;list-style:none}.announcement-card{border-radius:var(--v4-radius-sm,12px);border:1px solid var(--announcement-border,var(--v4-border,#ddedea));background:var(--announcement-bg,var(--v4-bg-elevated,#fcfefc));box-shadow:var(--v4-shadow-sm,0 2px 8px #24343a0d);transition:box-shadow var(--v4-transition,.22s ease-in-out), border-color var(--v4-transition,.22s ease-in-out), transform var(--v4-transition,.22s ease-in-out);margin-bottom:10px;padding:12px 14px;position:relative}.announcement-card:last-child{margin-bottom:0}.announcement-card:hover{border-color:var(--announcement-border-hover,var(--v4-primary-light,#6eb5af));box-shadow:var(--v4-shadow-hover,0 10px 16px #24343a12);transform:translateY(-1px)}.announcement-card--user{--announcement-border:var(--border,var(--v4-border));--announcement-bg:var(--bg-card,var(--v4-bg-elevated));--announcement-border-hover:var(--v4-primary-light);--announcement-text:var(--text-primary,var(--v4-text-primary));--announcement-muted:var(--text-muted,var(--v4-text-muted));--announcement-toggle:var(--primary,var(--v4-primary))}.announcement-card--admin{--announcement-border:var(--v4-border);--announcement-bg:var(--v4-bg-elevated);--announcement-border-hover:var(--v4-primary-light);--announcement-text:var(--v4-text-primary);--announcement-muted:var(--v4-text-muted);--announcement-toggle:var(--v4-primary)}.dark .announcement-card--admin{--announcement-border:#ffffff1a;--announcement-bg:#18181b;--announcement-border-hover:#ffffff2e;--announcement-text:#fff;--announcement-muted:#9ca3af;--announcement-toggle:#60a5fa}.announcement-card__top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.announcement-card__header{flex:auto;min-width:0}.announcement-card__title{color:var(--announcement-text);word-break:break-word;margin:0;font-size:.875rem;font-weight:700;line-height:1.4}.announcement-card__meta,.announcement-card__date{color:var(--announcement-muted);margin:4px 0 0;font-size:.6875rem;line-height:1.35}.announcement-card__actions{flex-wrap:wrap;flex-shrink:0;gap:8px;display:flex}.announcement-card__body{max-height:var(--announcement-collapsed-height,4.725em);margin-top:8px;transition:max-height .35s;overflow:hidden}.announcement-card__body--expanded{max-height:var(--announcement-expanded-height,2000px)}.announcement-card__content{color:var(--announcement-text);white-space:pre-wrap;word-break:break-word;margin:0;font-size:.8125rem;line-height:1.575}.announcement-card__content--clamped{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.announcement-card__body--user-clamped{max-height:none;overflow:visible}.announcement-card__content--user-clamped{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.announcement-card__toggle:disabled{opacity:.6;cursor:wait}.announcement-skeleton{border-radius:var(--v4-radius-sm,12px);border:1px solid var(--v4-border,#ddedea);background:linear-gradient(90deg, var(--v4-bg-soft,#f3f7f6) 0%, var(--v4-bg-elevated,#fcfefc) 50%, var(--v4-bg-soft,#f3f7f6) 100%);background-size:200% 100%;height:88px;margin-bottom:10px;animation:1.2s ease-in-out infinite announcement-skeleton-shimmer}@keyframes announcement-skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion:reduce){.announcement-skeleton{animation:none}}.announcement-card__measure{visibility:hidden;pointer-events:none;z-index:-1;white-space:pre-wrap;word-break:break-word;width:100%;height:auto;max-height:none;font-size:.8125rem;line-height:1.575;position:absolute;overflow:visible}.announcement-card__toggle{color:var(--announcement-toggle);cursor:pointer;background:0 0;border:none;align-items:center;margin-top:8px;padding:0;font-size:.75rem;font-weight:600;line-height:1.4;transition:opacity .15s;display:inline-flex}.announcement-card__toggle:hover{opacity:.82}.announcement-card__toggle:focus-visible{outline:2px solid var(--announcement-toggle);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion:reduce){.announcement-card{transition:border-color .2s,box-shadow .2s}.announcement-card:hover{transform:none}.announcement-card__body{transition:none}}@media (width<=639px){.announcement-card{border-radius:10px;margin-bottom:8px;padding:10px 12px}.announcement-card__title{font-size:.8125rem}}
