.cdk-entry .announcement-bell{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 42px;width:42px;height:42px;padding:0;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--dz-muted);cursor:pointer;transition:background .16s,color .16s}
.cdk-entry .announcement-bell:hover,.cdk-entry .announcement-bell[aria-expanded="true"]{background:var(--dz-accent-soft);color:var(--dz-accent)}
.announcement-bell svg{width:19px;height:19px;stroke-width:1.6}
.global-cdk .cdk-entry > #announcement-open > svg,.global-cdk .cdk-entry > #announcement-open > i{display:block}
.announcement-badge{position:absolute;top:0;right:-2px;min-width:19px;height:19px;padding:0 4px;border:2px solid var(--dz-surface);border-radius:12px;background:var(--dz-danger);color:var(--dz-on-accent);font:600 11px/15px sans-serif;text-align:center}
.announcement-badge[hidden],#announcement-dialog [hidden]{display:none!important}
#public-announcement[role="button"]{cursor:pointer}
#announcement-dialog{width:min(740px,calc(100vw - 28px));max-width:calc(100vw - 28px);max-height:calc(100dvh - 40px);padding:0;border:1px solid var(--dz-border);border-radius:20px;background:var(--dz-surface);color:var(--dz-text);box-shadow:var(--dz-shadow);font:14px/1.6 Inter,"Microsoft YaHei",sans-serif;overflow:hidden}
#announcement-dialog[open]{display:flex;flex-direction:column;animation:announcement-in .16s ease-out}
#announcement-dialog::backdrop{background:var(--dz-overlay)}
#announcement-dialog *{box-sizing:border-box}
#announcement-dialog button{font:inherit;cursor:pointer}
#announcement-dialog button:disabled{cursor:default;opacity:.55}
#announcement-dialog button:focus-visible,.announcement-bell:focus-visible,#public-announcement:focus-visible{outline:2px solid var(--dz-accent);outline-offset:2px}
.announcement-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:22px 24px 16px;flex-shrink:0}
.announcement-heading h2{margin:0;font-size:21px}.announcement-heading p{margin:5px 0 0;color:var(--dz-muted);font-size:12px}
#announcement-dialog .announcement-close{width:36px;height:36px;border:0;border-radius:8px;background:transparent;color:var(--dz-muted);font-size:26px;line-height:1}
#announcement-dialog .announcement-close:hover{background:var(--dz-hover)}
.announcement-list{display:flex;flex-direction:column;gap:12px;min-height:180px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:0 20px 18px}
.announcement-item{flex-shrink:0;border:1px solid var(--dz-border);border-radius:14px;padding:16px 18px;transition:background .16s}
.announcement-item.is-unread{background:var(--dz-accent-soft)}
.announcement-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.announcement-meta time{margin-left:auto;color:var(--dz-muted);font-size:12px}
.announcement-content{white-space:pre-wrap;overflow-wrap:anywhere;margin:10px 0 0;line-height:1.8}
.announcement-read-row{display:flex;align-items:center;justify-content:flex-end;gap:16px;min-height:26px;margin-top:6px;font-size:12px}
.announcement-unread{color:var(--dz-danger)}.announcement-read-label{color:var(--dz-muted)}
#announcement-dialog .announcement-read{padding:2px 0;background:transparent;border:0;color:var(--dz-accent);font-size:12px}
.announcement-feedback{padding:0 24px 14px;display:flex;gap:12px;color:var(--dz-muted);font-size:12px;flex-shrink:0}
.announcement-footer{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;border-top:1px solid var(--dz-border);padding:16px 24px;background:var(--dz-subtle);flex-shrink:0}
.announcement-paging{display:flex;align-items:center;flex-wrap:wrap;gap:10px;color:var(--dz-muted);font-size:12px}
#announcement-dialog .announcement-paging button,#announcement-dialog .announcement-feedback button{border:1px solid var(--dz-border);border-radius:7px;background:var(--dz-surface);color:var(--dz-text);padding:5px 9px;font-size:12px}
#announcement-dialog .announcement-all{border:0;border-radius:9px;background:var(--dz-accent);color:var(--dz-on-accent);padding:9px 15px;font-size:13px}
.announcement-empty{color:var(--dz-muted);text-align:center;padding:32px 0}
@keyframes announcement-in{from{opacity:.6;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){#announcement-dialog[open]{animation:none}.announcement-item,.cdk-entry .announcement-bell{transition:none}}
@media(max-width:600px){.announcement-heading{padding:18px 16px 14px}.announcement-list{padding:0 12px 14px}.announcement-item{padding:14px}.announcement-meta time{margin-left:0}.announcement-footer{padding:14px 16px}.announcement-feedback{padding:0 16px 12px}.cdk-entry .announcement-bell{flex-basis:36px;width:36px}}
