.announcement-admin-page { max-width: 1280px; }
.announcement-page-head { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:28px; }
.announcement-page-head h1 { margin-bottom:8px; }
.announcement-flash { margin-bottom:18px; padding:13px 16px; border:1px solid #cdebdc; border-radius:10px; background:#f0fbf5; color:#187449; }
.announcement-table-card { overflow:hidden; background:#fff; border:1px solid #e7e7f0; border-radius:16px; box-shadow:0 12px 30px rgba(39,35,91,.06); }
.announcement-table { width:100%; border-collapse:collapse; font-size:13px; }
.announcement-table th { padding:14px 16px; background:#fafaff; color:#77748b; font-size:11px; letter-spacing:.04em; text-align:left; text-transform:uppercase; }
.announcement-table td { padding:16px; border-top:1px solid #eeedf5; vertical-align:middle; }
.announcement-table td:first-child { min-width:220px; }
.announcement-table td strong, .announcement-table td small { display:block; }
.announcement-table td small { margin-top:5px; color:#8a879b; line-height:1.5; }
.announcement-scope, .announcement-status { display:inline-flex; align-items:center; min-height:28px; padding:0 9px; border-radius:8px; font-size:12px; font-weight:700; white-space:nowrap; }
.announcement-scope { background:#eef4ff; color:#425bc4; }
.announcement-status--active { background:#eaf9f0; color:#16804a; }
.announcement-status--inactive { background:#f0f0f4; color:#77748a; }
.announcement-status--draft { background:#fff5df; color:#a36b07; }
.announcement-actions { display:flex; gap:7px; white-space:nowrap; }
.announcement-actions form { margin:0; }
.admin-action-button { display:inline-flex; align-items:center; justify-content:center; min-height:34px; padding:0 11px; border:1px solid #e2e1ef; border-radius:8px; background:#f8f8ff; color:#4c58ca; font:600 12px inherit; text-decoration:none; cursor:pointer; }
.admin-action-button--danger { color:#bd405c; background:#fff3f5; border-color:#f5d7df; }
.announcement-empty { padding:48px !important; color:#77748a; text-align:center; }
.announcement-editor-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr); gap:22px; align-items:start; }
.announcement-form, .announcement-preview-panel { padding:26px; }
.announcement-form { display:grid; gap:24px; }
.announcement-form-section { display:grid; gap:14px; }
.announcement-form-section + .announcement-form-section { padding-top:24px; border-top:1px solid #ecebf4; }
.announcement-form-section h2 { margin:0; color:#282441; font-size:18px; }
.announcement-form label { display:grid; gap:7px; color:#5f5b76; font-size:12px; font-weight:700; }
.announcement-form input, .announcement-form select, .announcement-form textarea { width:100%; border:1px solid #dfdeea; border-radius:9px; background:#fff; color:#282441; font:inherit; outline:none; }
.announcement-form input, .announcement-form select { height:44px; padding:0 12px; }
.announcement-form textarea { min-height:230px; padding:13px; line-height:1.65; resize:vertical; }
.announcement-form input:focus, .announcement-form select:focus, .announcement-form textarea:focus { border-color:#6371e8; box-shadow:0 0 0 3px #6371e81f; }
.announcement-links-editor { display:grid; gap:10px; }
.announcement-link-row { display:grid; grid-template-columns:1fr 1.35fr auto auto; gap:8px; align-items:center; }
.announcement-link-row input { min-width:0; }
.announcement-checkbox { display:flex !important; grid-auto-flow:column; align-items:center; gap:5px !important; white-space:nowrap; }
.announcement-checkbox input { width:16px; height:16px; }
.announcement-remove-link { width:34px; height:34px; border:0; border-radius:8px; background:#fff1f4; color:#bd405c; font-size:20px; cursor:pointer; }
.announcement-form-actions { display:flex; justify-content:flex-end; gap:10px; padding-top:4px; }
.announcement-settings-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.announcement-settings-grid h2 { grid-column:1/-1; }
.announcement-preview-panel { position:sticky; top:92px; }
.announcement-preview-label { margin-bottom:12px; color:#7c7890; font-size:11px; font-weight:800; letter-spacing:.1em; }
.announcement-preview { max-height:650px; overflow:auto; padding:26px 24px; border:1px solid #e4e3ef; border-radius:16px; background:#fff; box-shadow:0 18px 50px #443da50f; }
.announcement-preview h2 { margin:0 0 20px; color:#24213f; font-size:28px; line-height:1.2; }
.announcement-preview p { margin:0 0 11px; color:#687184; font-size:16px; line-height:1.55; }
.announcement-preview ul, .announcement-preview ol { margin:0 0 14px; padding-left:22px; color:#687184; line-height:1.6; }
.announcement-preview-links { display:grid; gap:8px; margin-top:18px; padding-top:16px; border-top:1px solid #ecebf4; }
.announcement-preview-links a { color:#087be2; text-decoration:underline; overflow-wrap:anywhere; }
.announcement-admin-page code { padding:2px 5px; border-radius:5px; background:#f2f1fb; color:#5a52bd; font-size:.9em; }
.home-announcement { position:relative; display:flex; gap:16px; margin:0 0 30px; padding:20px 22px; border:1px solid #dfe5f4; border-radius:16px; background:linear-gradient(135deg,#fff 0%,#f5f8ff 100%); box-shadow:0 8px 24px rgba(39,35,91,.07); font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Segoe UI",Roboto,Helvetica,Arial,sans-serif; }
.home-announcement__accent { flex:0 0 5px; align-self:stretch; border-radius:999px; background:linear-gradient(180deg,#3d73f0,#7d4de6); }
.home-announcement__content { min-width:0; width:100%; }
.home-announcement h2 { margin:0 0 10px; color:#24213f; font-size:20px; line-height:1.3; }
.home-announcement__body { color:#596477; font-size:15px; line-height:1.6; overflow-wrap:anywhere; }
.home-announcement__body p { margin:0 0 8px; }
.home-announcement__body p:last-child { margin-bottom:0; }
.home-announcement__body ul, .home-announcement__body ol { margin:0 0 10px; padding-left:22px; }
.home-announcement__links { display:flex; flex-wrap:wrap; gap:10px 18px; margin-top:16px; padding-top:14px; border-top:1px solid #e0e6f2; }
.home-announcement__links a { color:#2676db; font-weight:700; overflow-wrap:anywhere; text-decoration:none; }
.home-announcement__links a:hover, .home-announcement__links a:focus-visible { color:#5146e5; text-decoration:underline; }
.announcement-home-badge { display:inline-flex; margin-top:6px; padding:4px 8px; border-radius:999px; background:#eef0ff; color:#5146e5; font-size:11px; font-weight:700; }
.announcement-home-default { grid-column:1 / -1; }
.announcement-home-default-help { grid-column:1 / -1; margin:-5px 0 0; font-size:12px; }

.announcement-root[hidden] { display:none; }
.announcement-root { position:fixed; inset:0; z-index:1000; display:grid; place-items:center; padding:20px; }
.announcement-overlay { position:absolute; inset:0; background:rgba(27,26,49,.6); backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px); }
.announcement-dialog { position:relative; display:flex; flex-direction:column; width:min(100%,620px); max-height:85vh; overflow:hidden; border:1px solid #e3e5ef; border-radius:16px; background:#fff; box-shadow:0 28px 90px rgba(20,24,62,.28); animation:announcementIn .22s ease-out; }
.announcement-dialog-header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:24px 28px 14px; }
.announcement-dialog-title { margin:0; color:#24213f; font-size:clamp(24px,4vw,32px); line-height:1.2; }
.announcement-close { display:grid; place-items:center; flex:0 0 auto; width:36px; height:36px; border:1px solid #e3e5ef; border-radius:10px; background:#fff; color:#76748a; font-size:23px; cursor:pointer; }
.announcement-close:hover, .announcement-close:focus-visible { background:#f0f4ff; color:#425be1; }
.announcement-dialog-body { min-height:0; overflow:auto; padding:10px 28px 24px; color:#697383; font-size:16px; line-height:1.55; }
.announcement-dialog-body p { margin:0 0 13px; }
.announcement-dialog-body ul, .announcement-dialog-body ol { margin:0 0 15px; padding-left:24px; }
.announcement-dialog-body a { color:#087be2; text-decoration:none; }
.announcement-dialog-body a:hover, .announcement-dialog-body a:focus-visible { text-decoration:underline; }
.announcement-dialog-links { display:grid; gap:8px; margin-top:18px; padding-top:16px; border-top:1px solid #ececf2; }
.announcement-dialog-links a { color:#087be2; text-decoration:underline; overflow-wrap:anywhere; }
.announcement-dialog-footer { display:flex; justify-content:flex-end; gap:10px; padding:16px 28px 22px; border-top:1px solid #e8e8f0; background:#fff; }
.announcement-dialog-footer button { min-height:42px; padding:0 18px; border:0; border-radius:10px; font:700 13px inherit; cursor:pointer; }
.announcement-dialog-close-button { background:#f0f1f7; color:#4f5164; }
.announcement-dialog-snooze { background:linear-gradient(100deg,#4058e8,#784de8); color:#fff; }
@keyframes announcementIn { from { opacity:0; transform:translateY(10px) scale(.985); } to { opacity:1; transform:none; } }
@media (max-width:900px) { .announcement-editor-grid { grid-template-columns:1fr; } .announcement-preview-panel { position:static; } }
@media (max-width:700px) { .announcement-page-head { align-items:flex-start; flex-direction:column; } .announcement-link-row { grid-template-columns:1fr 1fr; } .announcement-checkbox { grid-column:1; } .announcement-remove-link { grid-column:2; justify-self:end; } }
@media (max-width:576px) { .announcement-root { padding:12px; } .announcement-dialog { width:100%; max-height:85vh; } .announcement-dialog-header { padding:20px 18px 10px; } .announcement-dialog-body { padding:10px 18px 20px; font-size:15px; } .announcement-dialog-footer { flex-direction:column; padding:14px 18px 18px; } .announcement-dialog-footer button { width:100%; } .announcement-form, .announcement-preview-panel { padding:20px; } .announcement-settings-grid { grid-template-columns:1fr; } .announcement-settings-grid h2 { grid-column:auto; } }
@media (max-width:576px) { .home-announcement { gap:11px; margin-bottom:22px; padding:15px 14px; } .home-announcement h2 { font-size:18px; } .home-announcement__body { font-size:14px; } .home-announcement__links { gap:8px 14px; margin-top:13px; padding-top:12px; } }
@media (prefers-reduced-motion:reduce) { .announcement-dialog { animation:none; } }
