html { scroll-snap-type: none; }
body.announcements-page { min-height: 100vh; display: flex; flex-direction: column; overflow-x: hidden; }
.announcements-main { flex: 1 0 auto; position: relative; z-index: 2; width: min(100% - 36px, 1120px); margin: 0 auto; padding: calc(var(--nav-height) + 44px) 0 72px; }
.announcements-page > .footer { width: 100%; margin-top: auto; }
.announcements-hero { margin: 0 auto 28px; text-align: center; }
.announcements-hero .section-badge { margin-bottom: 13px; }
.announcements-hero h1 { margin: 0 0 8px; color: #fff; font-size: clamp(2.2rem, 6vw, 3.35rem); line-height: 1.1; }
.announcements-hero p { margin: 0 auto 16px; color: var(--text-muted); }
.announcement-login-open { min-height: 38px; margin-top: 3px; }
.announcement-admin { margin: 0 0 30px; padding: 20px; border: 1px solid rgba(139,92,246,.28); border-radius: 17px; background: rgba(14,11,20,.94); }
.announcement-admin[hidden], .announcement-auth-modal[hidden] { display: none !important; }
.announcement-admin-heading { display: flex; justify-content: space-between; align-items: center; gap: 18px; padding-bottom: 16px; border-bottom: 1px solid rgba(255,255,255,.08); }
.announcement-admin-heading .section-badge { display: inline-flex; margin-bottom: 5px; }
.announcement-admin-heading h2 { color: #fff; font-size: 1.2rem; }
.announcement-admin-heading p { margin-top: 4px; color: #9990a8; font-size: .78rem; }
.announcement-admin-buttons { display: flex; flex-wrap: wrap; gap: 8px; }
.announcement-admin-grid { display: grid; grid-template-columns: minmax(210px,.62fr) minmax(0,1.15fr) minmax(0,.9fr); align-items: start; gap: 16px; padding-top: 17px; }
.announcement-list-panel, .announcement-preview-wrap { min-width: 0; padding: 14px; background: rgba(255,255,255,.022); border: 1px solid rgba(255,255,255,.075); border-radius: 12px; }
.announcement-list-panel h3 { margin: 0 0 10px; color: #eee9f6; font-size: .86rem; }
.announcement-admin-list { display: grid; gap: 8px; max-height: 760px; overflow: auto; }
.announcement-admin-row { display: grid; gap: 8px; padding: 10px; background: rgba(5,4,10,.42); border: 1px solid rgba(255,255,255,.07); border-radius: 9px; }
.announcement-admin-row strong { overflow-wrap: anywhere; color: #f0ebf8; font-size: .8rem; }
.announcement-admin-row small { color: #958ba4; font-size: .69rem; line-height: 1.45; }
.announcement-admin-row-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.announcement-admin-row-actions button { min-height: 30px; padding: 5px 8px; font-size: .7rem; }
.announcement-form { display: grid; gap: 12px; min-width: 0; }
.announcement-field { display: grid; min-width: 0; gap: 6px; color: #ded7e9; font-size: .78rem; font-weight: 700; }
.announcement-field small { color: #978da4; font-size: .7rem; font-weight: 400; line-height: 1.5; }
.announcement-field input, .announcement-field select, .announcement-field textarea { width: 100%; min-width: 0; min-height: 42px; padding: 10px 11px; color: #f1edf7; font: 400 .82rem/1.5 var(--font-family); background: #13101a; border: 1px solid rgba(255,255,255,.13); border-radius: 9px; outline: 0; }
.announcement-field textarea { min-height: 320px; resize: vertical; font-family: ui-monospace,Consolas,monospace; tab-size: 2; }
.announcement-field input:focus, .announcement-field select:focus, .announcement-field textarea:focus { border-color: rgba(167,139,250,.6); box-shadow: 0 0 0 3px rgba(139,92,246,.1); }
.announcement-field select option { color: #f1edf7; background: #13101a; }
.announcement-markdown-field code { color: #d4c2f4; font-size: .92em; }
.announcement-options { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.announcement-checks { display: grid; gap: 8px; padding: 11px 12px; color: #c9c1d3; background: rgba(255,255,255,.025); border: 1px solid rgba(255,255,255,.07); border-radius: 9px; font-size: .77rem; }
.announcement-checks label { display: flex; align-items: center; gap: 9px; cursor: pointer; }
.announcement-checks input { width: 16px; height: 16px; accent-color: #8b5cf6; }
.announcement-editor-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.announcement-editor-actions [role="status"] { flex: 1 1 180px; color: #b6a6dc; font-size: .76rem; }
.announcement-editor-actions [role="status"].is-error { color: #ff9da8; }
.announcement-preview-wrap { position: sticky; top: 86px; max-height: calc(100vh - 110px); overflow: auto; }
.announcement-preview-wrap > .section-badge { display: inline-flex; margin-bottom: 13px; }
.announcement-preview-content { color: #d5d0e0; font-size: .84rem; line-height: 1.7; overflow-wrap: anywhere; }
.announcement-preview-content h2,.announcement-preview-content h3 { margin: 1.1em 0 .45em; color: #f6f1ff; line-height: 1.3; }
.announcement-preview-content p { margin: .65em 0; }
.announcement-preview-content ul,.announcement-preview-content ol { padding-left: 1.4em; }
.announcement-preview-content blockquote { margin: .8em 0; padding: 5px 12px; color: #bdb2cc; border-left: 2px solid #9270ce; background: rgba(255,255,255,.025); }
.announcement-preview-content pre { overflow: auto; padding: 10px; color: #d5c7eb; background: #09070e; border: 1px solid rgba(255,255,255,.08); border-radius: 8px; }
.announcement-preview-content code { color: #d5c7eb; }
.announcement-preview-content a { color: #c4a5ff; }
.announcement-preview-content .rules-inline-color-red { color: #f29aa4; }.announcement-preview-content .rules-inline-color-orange { color: #edb17e; }.announcement-preview-content .rules-inline-color-yellow { color: #e9d179; }.announcement-preview-content .rules-inline-color-green { color: #8bd1a9; }.announcement-preview-content .rules-inline-color-blue { color: #88c6e8; }.announcement-preview-content .rules-inline-color-purple { color: #c4a5ff; }.announcement-preview-content .rules-inline-color-muted { color: #a9a1b4; }
.announcement-preview-content hr { border: 0; border-top: 1px solid rgba(255,255,255,.13); }
.announcement-preview-content .rules-callout { margin: 9px 0; padding: 9px 11px; background: rgba(255,255,255,.025); border: 1px solid rgba(255,255,255,.07); border-left: 2px solid #a17bc6; border-radius: 8px; }
.announcement-preview-content .rules-callout > strong { display: block; margin-bottom: 3px; color: #d7c4f6; font-size: .69rem; letter-spacing: .04em; text-transform: uppercase; }
.announcement-preview-content .announcement-admin-note { border-style: dashed; border-color: rgba(218,181,111,.32); border-left-color: rgba(218,181,111,.6); }
.announcement-preview-content .announcement-admin-note > strong { color: #e1c98f; }
.announcement-preview-content .rules-callout p { margin: 4px 0; font-size: .78rem; }
.announcements-feed { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px; }
.announcement-feed-loading, .announcement-feed-empty { grid-column: 1/-1; margin: 0; padding: 25px; color: #aaa1b2; text-align: center; background: rgba(15,13,19,.6); border: 1px dashed rgba(255,255,255,.12); border-radius: 14px; }
.announcement-feed-card { min-width: 0; padding: 20px; color: inherit; text-align: left; cursor: pointer; background: rgba(16,13,24,.87); border: 1px solid rgba(255,255,255,.085); border-radius: 15px; transition: border-color .18s,transform .18s,background .18s; }
.announcement-feed-card:hover { transform: translateY(-2px); background: rgba(25,19,37,.94); border-color: rgba(167,139,250,.35); }
.announcement-feed-card time { display: block; margin-bottom: 8px; color: #a596bd; font-size: .7rem; }
.announcement-feed-card strong { display: block; color: #f4effa; font-size: 1rem; line-height: 1.4; }
.announcement-feed-card p { display: -webkit-box; overflow: hidden; margin-top: 7px; color: #aaa1b2; font-size: .82rem; line-height: 1.6; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.announcement-auth-modal { position: fixed; z-index: 2500; inset: 0; display: grid; place-items: center; padding: 18px; }
.announcement-auth-backdrop { position: absolute; inset: 0; border: 0; background: rgba(3,2,6,.82); backdrop-filter: blur(8px); }
.announcement-auth-card { position: relative; width: min(100%,420px); padding: 26px; background: #100d17; border: 1px solid rgba(167,139,250,.35); border-radius: 17px; box-shadow: 0 24px 90px rgba(0,0,0,.58); }
.announcement-auth-close { position: absolute; top: 12px; right: 12px; display: grid; width: 34px; height: 34px; place-items: center; color: #ddd4e9; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1); border-radius: 9px; }
.announcement-auth-card .section-badge { display: inline-flex; margin-bottom: 7px; }
.announcement-auth-card h2 { margin-bottom: 5px; color: #fff; font-size: 1.2rem; }
.announcement-auth-card > p { margin: 6px 0 13px; color: #aaa1b2; font-size: .8rem; }
.announcement-auth-card form { display: grid; gap: 12px; }
.announcement-auth-card > a { display: inline-block; margin-top: 10px; color: #c4a5ff; font-size: .77rem; }
.announcement-auth-card [role="status"] { color: #ff9da8; }
body.announcement-auth-open { overflow: hidden; }
@media(max-width:920px) { .announcement-admin-grid { grid-template-columns: minmax(0,1fr) minmax(0,1fr); } .announcement-list-panel { grid-column: 1/-1; } .announcement-admin-list { grid-template-columns: repeat(2,minmax(0,1fr)); } .announcement-preview-wrap { position: static; max-height: none; } }
@media(max-width:620px) { .announcements-main { width: min(100% - 24px,1120px); padding-top: calc(var(--nav-height) + 30px); } .announcement-admin { padding: 14px; } .announcement-admin-heading { align-items: flex-start; flex-direction: column; } .announcement-admin-grid,.announcements-feed { grid-template-columns: minmax(0,1fr); } .announcement-list-panel { grid-column: auto; } .announcement-admin-list { grid-template-columns: 1fr; } .announcement-options { grid-template-columns: 1fr; } .announcement-preview-wrap { position: static; } .announcement-admin-buttons { width: 100%; } .announcement-admin-buttons>* { flex: 1; justify-content: center; } .announcements-page .nav-links { display: none; } }
.announcement-preview-content img{display:block;max-width:100%;height:auto;margin:10px 0;border:1px solid rgba(255,255,255,.1);border-radius:9px}
.announcement-preview-content .announcement-video{width:100%;max-width:760px;aspect-ratio:16/9;position:relative;overflow:hidden;margin:10px 0;background:#050408;border:1px solid rgba(255,255,255,.1);border-radius:10px}.announcement-preview-content .announcement-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.announcement-preview-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:10px}.announcement-preview-wrap>.announcement-preview-heading>.section-badge{margin:0}.announcement-link-check{margin:0 0 8px;color:#a99bbd;font-size:.68rem;line-height:1.45}.announcement-link-check:empty{display:none}.announcement-insert-image{justify-self:start}.announcement-gallery-modal{position:fixed;z-index:2600;inset:0;display:grid;place-items:center;padding:18px}.announcement-gallery-modal[hidden]{display:none!important}.announcement-gallery-backdrop{position:absolute;inset:0;border:0;background:rgba(3,2,6,.84);backdrop-filter:blur(8px)}.announcement-gallery-card{position:relative;width:min(920px,100%);max-height:min(86vh,900px);overflow:auto;padding:22px;background:#100d17;border:1px solid rgba(167,139,250,.35);border-radius:18px;box-shadow:0 24px 90px rgba(0,0,0,.58)}.announcement-gallery-card>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.announcement-gallery-card h2{margin:7px 0;color:#f4efff;font-size:1.15rem}.announcement-gallery-card>p{color:#aaa1b2;font-size:.78rem}.announcement-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:10px}.announcement-gallery-item{display:grid;gap:7px;min-width:0;padding:8px;color:#e8e0f2;text-align:left;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:10px;cursor:pointer}.announcement-gallery-item:hover{border-color:rgba(167,139,250,.5);background:rgba(139,92,246,.09)}.announcement-gallery-item img{width:100%;height:112px;object-fit:cover;background:#0b0910;border-radius:7px}.announcement-gallery-item span{overflow:hidden;font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.announcement-gallery-open{overflow:hidden}.announcement-form>.admin-local-draft{grid-column:1/-1;margin:0 0 2px}.announcement-preview-mobile{width:100%;max-width:430px!important;max-height:72vh!important;justify-self:center;overflow:auto}
