#announcements { min-width:0; width:100%; }
#announcementsBody { width:100%; min-width:0; max-width:1180px; margin:0 auto; }
.ann-header { display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap; margin-bottom:24px; }
.ann-header h2 { margin:4px 0 8px; font-size:28px; letter-spacing:-.6px; }
.ann-eyebrow { color:var(--green); letter-spacing:2px; font-size:12px; font-weight:700; }
.ann-muted,.ann-meta { color:var(--muted); font-size:14px; line-height:1.6; }
.ann-toolbar,.ann-meta { display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin:16px 0; }
.ann-toolbar button[aria-pressed=true] { background:var(--ink);color:var(--panel);border-color:var(--ink); }
#announcements button { min-height:44px; padding:10px 16px; border:1px solid var(--line); border-radius:8px; cursor:pointer; font:inherit; background:var(--panel);color:var(--ink); }
#announcements button.ann-primary { background:var(--green);color:#fff;border-color:var(--green);font-weight:600; }
#announcements button:disabled { opacity:.5; cursor:default; }
#announcements :focus-visible { outline:3px solid var(--blue);outline-offset:3px; }
.ann-list { display:grid;gap:16px; }
.ann-card { background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:24px; }
.ann-card h3 { margin:12px 0; font-size:20px;overflow-wrap:anywhere; }
.ann-card p { line-height:1.6;overflow-wrap:anywhere; }
.ann-pill { display:inline-block; background:#fff1dd;color:#79480f;padding:4px 10px;border-radius:20px;font-weight:600;font-size:13px; }
.ann-pill.is-done { background:#e1f3e9;color:#14523f; }
.ann-reader { max-width:880px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:32px;margin:20px 0;overflow-wrap:anywhere; }
.ann-reader h2 { font-size:28px;line-height:1.3;margin:16px 0; }
.ann-summary { color:var(--muted);font-size:17px;line-height:1.7;border-bottom:1px solid var(--line);padding-bottom:20px; }
.ann-prose { font-size:16px;line-height:1.8; }
.ann-prose h3 { font-size:20px;margin-top:32px; }
.ann-prose p { margin:12px 0; }
.ann-confirm,.ann-success { max-width:880px;padding:24px;border:1px solid var(--line);border-radius:12px;background:var(--panel); }
.ann-confirm label { display:flex;align-items:flex-start;gap:10px;font-weight:600;line-height:1.6; }
#announcements input[type=checkbox],#announcements input[type=radio] { width:20px;height:20px;flex:none;accent-color:var(--green);margin:3px 0; }
.ann-confirm p { font-size:14px;color:var(--muted); }
.ann-success { border-left:4px solid var(--green); }
.ann-error { padding:16px;background:#fff0ef;color:#8e2731;border:1px solid #e8b3b3;border-radius:8px;margin-bottom:16px; }
.ann-error button { margin-left:12px; }
.ann-form { display:grid;gap:20px;max-width:880px;margin:20px 0; }
.ann-form > label,.ann-toolbar label { display:grid;gap:8px; }
#announcements input:not([type=checkbox]):not([type=radio]),#announcements textarea,#announcements select { width:100%;min-height:44px;border:1px solid var(--line);border-radius:6px;padding:10px;font:inherit;color:var(--ink);background:var(--panel); }
.ann-form textarea { resize:vertical;line-height:1.6; }
.ann-form fieldset { border:1px solid var(--line);border-radius:8px;padding:16px; }
.ann-form fieldset label { display:flex;align-items:center;gap:8px;padding:8px 0; }
.ann-store-options { display:flex;gap:16px;flex-wrap:wrap; }
.ann-table-wrap { max-width:100%;overflow:auto; }
#announcements table { width:100%;min-width:0;border-collapse:collapse;font-size:14px; }
#announcements th,#announcements td { padding:12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top; }
#announcements th { background:var(--bg); }
.ann-metrics { display:flex;gap:16px;flex-wrap:wrap; }
.ann-metrics .ann-card { min-width:140px;flex:1;display:grid;gap:8px; }
.ann-metrics strong { font-size:32px; }
.ann-empty { padding:40px 16px;color:var(--muted);text-align:center; }
.ann-nav-count { background:var(--green);color:#fff;border-radius:12px;padding:2px 7px;margin-left:6px;font-size:12px; }
@media(max-width:600px) { .ann-reader{padding:20px 16px;} .ann-reader h2,.ann-header h2{font-size:24px;} .ann-card{padding:20px 16px;} .ann-confirm{padding:20px 16px;} .ann-confirm button{width:100%;} .ann-metrics{gap:8px;} .ann-metrics .ann-card{min-width:95px;padding:16px 10px;} #announcements th,#announcements td{padding:8px;} }
#announcements .ann-toolbar button[aria-pressed=true] { background:var(--ink);color:var(--panel);border-color:var(--ink); }
#announcementsBody > h2 { font-size:28px;line-height:1.35;margin:24px 0 12px; }
#announcementsBody > p { line-height:1.6;margin:12px 0; }
.ann-metrics { margin:20px 0; }
#navAnnouncements { color:var(--ink); }
#ownerNav #navAnnouncements.active { color:var(--green);font-weight:600; }

.ann-language{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:20px 0;font-weight:600}.ann-language select{font:inherit;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--ink)}

/* Login reminder uses the browser's focus trap and restores focus on close. */
dialog.ann-login-reminder { box-sizing:border-box; width:min(480px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); overflow:auto; margin:auto; padding:28px; border:1px solid #d3ded8; border-radius:18px; background:#fff; color:#18382d; box-shadow:0 24px 70px #0004; }
dialog.ann-login-reminder::backdrop { background:rgba(12,29,23,.56); }
dialog.ann-login-reminder h2 { margin:0 0 12px; font-size:22px; line-height:1.4; }
dialog.ann-login-reminder p { margin:0 0 24px; font-size:16px; line-height:1.7; }
.ann-reminder-actions { display:flex; flex-wrap:wrap; gap:12px; }
.ann-reminder-actions button { flex:1 1 150px; min-height:48px; padding:12px 16px; border-radius:10px; border:1px solid #aabbb1; background:#fff; color:#18382d; cursor:pointer; font:inherit; font-weight:650; }
.ann-reminder-actions button.ann-primary { background:#18563f; color:#fff; border-color:#18563f; }
.ann-reminder-actions button:focus-visible { outline:3px solid #b77a00; outline-offset:3px; }
