.announcement-modal { width: min(560px, calc(100% - 32px)); max-width: none; max-height: calc(100dvh - 32px); margin: auto; padding: 0; border: 1px solid var(--border, #e5e1da); border-radius: 20px; background: var(--surface, #fbfaf7); color: var(--text, #29353d); box-shadow: 0 24px 70px rgba(12, 24, 33, .3); }
.announcement-modal::backdrop { background: rgba(20, 31, 38, .62); }
.announcement-card { display: flex; flex-direction: column; gap: 18px; max-height: calc(100dvh - 34px); box-sizing: border-box; padding: 28px; text-align: center; }
.announcement-card h2 { flex: 0 0 auto; margin: 0; font-size: 23px; line-height: 1.4; }
.announcement-modal.is-important h2 { color: #b54734; }
html[data-theme="dark"] .announcement-modal.is-important h2 { color: #ffab94; }
.announcement-content { min-height: 0; overflow: auto; overscroll-behavior: contain; overflow-wrap: anywhere; font-size: 15px; line-height: 1.8; }
.announcement-body { white-space: pre-wrap; text-align: left; }
.announcement-subtitle { margin: 0 0 12px; font-size: 18px; font-weight: 700; line-height: 1.5; }
.announcement-subtitle[hidden] { display: none; }
.announcement-content p { margin: 0 0 .75em; }
.announcement-content p:last-child { margin-bottom: 0; }
.announcement-content strong { font-weight: 700; }
.announcement-content em { font-style: italic; }
.announcement-content u { text-decoration: underline; }
.announcement-actions { display: flex; flex: 0 0 auto; flex-direction: column; align-items: center; gap: 8px; }
.announcement-dismiss-option { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 28px; color: var(--muted, #718087); font-size: 12px; line-height: 1.5; cursor: pointer; }
.announcement-actions .announcement-dismiss { width: 14px; height: 14px; margin: 0; accent-color: var(--blue, #647d91); cursor: pointer; }
.announcement-actions .announcement-dismiss:focus-visible { outline: 2px solid var(--blue, #647d91); outline-offset: 3px; }
.announcement-actions button { min-height: 42px; padding: 9px 19px; border: 1px solid var(--border, #e5e1da); border-radius: 10px; background: transparent; color: var(--text, #29353d); font: inherit; font-size: 14px; cursor: pointer; }
.announcement-actions .announcement-confirm { min-width: 96px; border-color: var(--blue, #647d91); background: var(--blue, #647d91); color: #fff; font-weight: 650; }
.announcement-actions button:focus-visible { outline: 3px solid var(--blue, #647d91); outline-offset: 3px; }
.announcement-actions button:disabled { opacity: .6; cursor: wait; }
.announcement-card .announcement-period { flex: 0 0 auto; margin: 0; padding-top: 14px; border-top: 1px solid var(--border, #e5e1da); color: var(--muted, #718087); font-size: 12px; line-height: 1.7; }
.announcement-period time { white-space: nowrap; }
.announcement-card .announcement-error { margin: 0; color: #b54734; font-size: 13px; line-height: 1.6; }
.announcement-error[hidden] { display: none; }
html.announcement-open { overflow: hidden; }
@media (max-width: 480px) { .announcement-card { padding: 22px 18px; gap: 16px; } .announcement-card h2 { font-size: 21px; } }
