.app-shell { display: flex; flex-direction: column; }
.app-shell > main { flex: 1 0 auto; }
.content-public-page { max-width: 1120px; }

.global-footer { flex: 0 0 auto; border-top: 4px solid var(--usp-teal, var(--teal)); background: var(--usp-navy, var(--navy)); color: #fff; }
.global-footer-inner,
.global-footer-meta { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }
.global-footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 2rem 0 1.5rem; }
.global-footer-brand { display: flex; align-items: center; gap: 1rem; }
.global-footer-brand img { width: 7.5rem; height: 3.75rem; padding: .35rem; object-fit: contain; object-position: left center; background: #fff; }
.global-footer-brand span,
.global-footer-brand strong,
.global-footer-brand small { display: block; }
.global-footer-brand strong { font-size: .85rem; }
.global-footer-brand small { margin-top: .2rem; color: #b9d0d4; font-size: .68rem; }
.global-footer-links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .65rem 1.3rem; }
.global-footer-links a { color: #dce9eb; font-size: .75rem; font-weight: 700; }
.global-footer-links a:hover { color: #fff; text-decoration: underline; text-underline-offset: .25rem; }
.global-footer-meta { display: flex; justify-content: space-between; gap: 1rem; padding: .85rem 0 1.15rem; border-top: 1px solid rgba(255, 255, 255, .16); color: #9fb9bd; font-size: .65rem; }

.content-hero {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: 1.5rem;
    padding: clamp(1.6rem, 4vw, 3.2rem);
    overflow: hidden;
    border: 1px solid #cfdddd;
    background:
        radial-gradient(circle at 92% 10%, rgba(51, 163, 170, .2), transparent 28%),
        linear-gradient(135deg, #fff 0%, #f1f7f7 100%);
}
.content-hero > div:first-child { max-width: 47rem; }
.content-hero .eyebrow { margin-bottom: .65rem; }
.content-hero h1 { margin: 0; color: var(--usp-navy, var(--navy)); font-size: clamp(2.1rem, 5vw, 3.8rem); line-height: 1.02; letter-spacing: -.045em; }
.content-hero > div:first-child > p:last-child { max-width: 42rem; margin: 1rem 0 0; color: #536164; line-height: 1.7; }
.content-hero-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .65rem; min-width: min(100%, 18rem); }

.help-content-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(20rem, .72fr);
    align-items: stretch;
    gap: 0;
    padding: 0;
}
.help-content-hero > .help-hero-copy {
    align-self: center;
    max-width: none;
    padding: clamp(2rem, 5vw, 4rem);
}
.help-hero-support {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    padding: clamp(1.35rem, 3vw, 2rem);
    color: #fff;
    background: var(--usp-navy, var(--navy));
}
.help-hero-support header { margin-bottom: .45rem; }
.help-hero-support .eyebrow { color: #9edadd; }
.help-hero-support h2 {
    margin: 0;
    color: #fff;
    font-size: clamp(1.25rem, 2.5vw, 1.65rem);
    line-height: 1.2;
    letter-spacing: -.025em;
}
.help-support-routes { margin-top: .75rem; border-bottom: 1px solid rgba(255, 255, 255, .19); }
.help-support-route {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .18rem 1rem;
    align-items: center;
    padding: .9rem .8rem;
    color: #fff;
    border-top: 1px solid rgba(255, 255, 255, .19);
    transition: background-color .16s ease;
}
.help-support-route:hover,
.help-support-route:focus-visible { color: #fff; background: rgba(255, 255, 255, .09); }
.help-support-route:focus-visible { outline: 2px solid #b7e6e7; outline-offset: -2px; }
.help-support-route-primary { border-left: 3px solid var(--usp-teal, var(--teal)); background: rgba(255, 255, 255, .07); }
.help-support-route > span:first-child {
    color: #a9d9dc;
    font-size: .57rem;
    font-weight: 850;
    letter-spacing: .09em;
    text-transform: uppercase;
}
.help-support-route strong { font-size: .86rem; line-height: 1.35; }
.help-support-route small {
    overflow: hidden;
    color: #c7dadd;
    font-size: .65rem;
    line-height: 1.4;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.help-support-route-arrow {
    grid-column: 2;
    grid-row: 1 / 4;
    color: #a9d9dc;
    font-size: 1rem;
    transition: transform .16s ease;
}
.help-support-route:hover .help-support-route-arrow,
.help-support-route:focus-visible .help-support-route-arrow { transform: translateX(.2rem); }
.help-hero-edit {
    width: max-content;
    margin: 1rem 0 0 auto;
    color: #c7dadd;
    font-size: .65rem;
    font-weight: 750;
    text-decoration: underline;
    text-underline-offset: .2rem;
}
.help-hero-edit:hover,
.help-hero-edit:focus-visible { color: #fff; }

.help-contact-layout { display: grid; grid-template-columns: minmax(18rem, .72fr) minmax(26rem, 1.28fr); gap: 1rem; }
.help-contact-card,
.help-map-card { margin: 0; }
.content-section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; }
.content-section-heading h2 { margin: 0; font-size: 1.35rem; }
.content-section-heading .eyebrow { margin-bottom: .35rem; }
.contact-detail-list { display: grid; gap: 0; margin: 0; }
.contact-detail-list > div { padding: .9rem 0; border-bottom: 1px solid #dfe6e6; }
.contact-detail-list dt { margin-bottom: .22rem; color: #657174; font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.contact-detail-list dd { margin: 0; color: var(--usp-navy, var(--navy)); font-size: .9rem; line-height: 1.55; }
.contact-detail-list a { color: var(--usp-blue, var(--blue)); font-weight: 750; text-decoration: underline; text-decoration-color: rgba(7, 87, 154, .28); text-underline-offset: .18em; }
.help-contact-note { margin: 1.2rem 0 0; padding: .85rem 1rem; border-left: 4px solid var(--usp-teal, var(--teal)); background: #edf6f6; color: #425456; font-size: .8rem; line-height: 1.55; }
.help-map-card .config-map-frame-wrap { min-height: 25rem; }

.faq-search-panel { position: sticky; top: .75rem; z-index: 5; display: grid; grid-template-columns: minmax(15rem, 1fr) auto; gap: .8rem 1.25rem; align-items: end; margin-bottom: 2rem; padding: 1rem; border: 1px solid #d2dddd; background: rgba(255, 255, 255, .96); box-shadow: 0 10px 28px rgba(0, 38, 62, .08); backdrop-filter: blur(9px); }
.faq-search-panel label { display: grid; gap: .45rem; color: var(--usp-navy, var(--navy)); font-size: .78rem; font-weight: 750; }
.faq-search-panel input { width: 100%; min-height: 3rem; padding: .7rem .9rem; border: 1px solid #bccccc; border-radius: 0; outline: 0; }
.faq-search-panel input:focus { border-color: var(--usp-teal, var(--teal)); box-shadow: 0 0 0 3px rgba(51, 163, 170, .14); }
.faq-category-links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .45rem; }
.faq-category-links a { padding: .55rem .7rem; border: 1px solid #cbd8d8; color: var(--usp-navy, var(--navy)); font-size: .72rem; font-weight: 750; }
.faq-category-links a:hover { border-color: var(--usp-teal, var(--teal)); background: #eef7f7; }
.faq-groups { display: grid; gap: 2.5rem; }
.faq-group { display: grid; grid-template-columns: minmax(12rem, .35fr) minmax(0, 1fr); gap: clamp(1.25rem, 4vw, 3rem); scroll-margin-top: 7rem; }
.faq-group > header { padding-top: .65rem; }
.faq-group > header .eyebrow { margin-bottom: .5rem; }
.faq-group > header h2 { margin: 0; color: var(--usp-navy, var(--navy)); font-size: 1.45rem; }
.faq-group > header > p:last-child { color: #5e6b6e; font-size: .8rem; line-height: 1.6; }
.faq-list { border-top: 1px solid #cfdada; }
.faq-item { border-bottom: 1px solid #cfdada; background: #fff; }
.faq-item[hidden],
.faq-group[hidden] { display: none; }
.faq-item summary { display: grid; grid-template-columns: 1fr auto; gap: 1rem; align-items: center; padding: 1.15rem .25rem; color: var(--usp-navy, var(--navy)); font-size: .9rem; font-weight: 750; cursor: pointer; list-style: none; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary span:last-child { display: grid; width: 1.75rem; height: 1.75rem; place-items: center; border: 1px solid #b9c9c9; color: var(--usp-teal, var(--teal)); font-size: 1.15rem; transition: transform .15s ease; }
.faq-item[open] summary span:last-child { transform: rotate(45deg); }
.faq-answer { max-width: 48rem; padding: 0 3rem 1.35rem .25rem; color: #4d5b5e; font-size: .86rem; line-height: 1.75; white-space: pre-line; }
.faq-no-results { margin: 0; text-align: center; }

.content-management-overview { align-content: start; }
.content-template-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.content-template-card { display: grid; grid-template-columns: auto 1fr auto; gap: 1rem; align-items: center; min-height: 9rem; padding: 1.25rem; border: 1px solid #cbd8d8; background: #fff; }
.content-template-card:hover { border-color: var(--usp-teal, var(--teal)); box-shadow: 0 10px 24px rgba(0, 38, 62, .08); }
.content-template-icon { display: grid; width: 2.7rem; height: 2.7rem; place-items: center; border-radius: 50%; background: var(--usp-navy, var(--navy)); color: #fff; font-size: 1rem; font-weight: 850; }
.content-template-card p { margin: 0 0 .2rem; color: #6b7678; font-size: .65rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.content-template-card h2 { margin: 0; color: var(--usp-navy, var(--navy)); font-size: 1rem; }
.content-template-card div > span { display: block; margin-top: .35rem; color: #657174; font-size: .74rem; line-height: 1.45; }
.content-template-card > strong { color: var(--usp-blue, var(--blue)); font-size: .74rem; }
.faq-admin-category-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
.faq-admin-category { display: grid; gap: 1rem; padding: 1rem; border: 1px solid #d8e1e1; background: #fff; }
.faq-admin-category h3 { margin: .6rem 0 .25rem; color: var(--usp-navy, var(--navy)); font-size: 1rem; }
.faq-admin-category p { margin: 0; color: #687477; font-size: .75rem; line-height: 1.5; }
.faq-admin-category footer { display: flex; align-items: center; gap: .8rem; padding-top: .75rem; border-top: 1px solid #e1e7e7; color: #697578; font-size: .7rem; }
.faq-admin-category footer .ops-action { margin-left: auto; }

@media (max-width: 900px) {
    .help-content-hero { grid-template-columns: 1fr; }
    .help-contact-layout,
    .faq-group { grid-template-columns: 1fr; }
    .faq-group { gap: .5rem; }
    .faq-search-panel { position: static; grid-template-columns: 1fr; }
    .faq-category-links { justify-content: flex-start; }
}

@media (max-width: 680px) {
    .content-hero { align-items: flex-start; flex-direction: column; }
    .help-content-hero { display: grid; }
    .help-content-hero > .help-hero-copy,
    .help-hero-support { width: 100%; padding: 1.35rem; }
    .content-hero-actions { justify-content: flex-start; }
    .help-map-card .config-map-frame-wrap { min-height: 18rem; }
    .content-template-grid,
    .faq-admin-category-grid { grid-template-columns: 1fr; }
    .content-template-card { grid-template-columns: auto 1fr; }
    .content-template-card > strong { grid-column: 2; }
    .global-footer-inner,
    .global-footer-meta { width: min(100% - 30px, 1180px); }
    .global-footer-inner { align-items: flex-start; flex-direction: column; }
    .global-footer-links { justify-content: flex-start; }
    .global-footer-meta { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
    .help-support-route,
    .help-support-route-arrow { transition: none; }
    .help-support-route:hover .help-support-route-arrow,
    .help-support-route:focus-visible .help-support-route-arrow { transform: none; }
}

/* Scoped announcements */
.content-template-grid { grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
.content-template-card-announcements .content-template-icon { background: #8a5a08; }

.home-announcements-section {
    padding-block: clamp(2.7rem, 5vw, 4.3rem);
    border-block: 1px solid #dce7e8;
    background: #f3f8f8;
}
.latest-announcements {
    padding: clamp(1.25rem, 3vw, 2rem);
    border: 1px solid #cfdee1;
    border-radius: 1.15rem;
    background:
        linear-gradient(125deg, rgba(51, 163, 170, .09), transparent 38%),
        #fff;
    box-shadow: 0 14px 38px rgba(0, 38, 62, .07);
}
.latest-announcements-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 1.35rem;
}
.latest-announcements-heading .eyebrow { margin-bottom: .45rem; }
.latest-announcements-heading h2 {
    margin: 0;
    color: var(--usp-navy, var(--navy));
    font-size: clamp(1.55rem, 3vw, 2.25rem);
    line-height: 1.08;
    letter-spacing: -.035em;
}
.latest-announcements-heading p:last-child {
    max-width: 42rem;
    margin: .45rem 0 0;
    color: #607074;
    font-size: .8rem;
    line-height: 1.55;
}
.latest-announcements-heading > a { flex: none; font-size: .75rem; white-space: nowrap; }
.latest-announcement-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(22rem, 100%), 1fr));
    gap: .8rem;
}
.latest-announcement-grid[data-count="3"] { grid-template-columns: minmax(0, 1.15fr) minmax(19rem, .85fr); }
.latest-announcement-grid[data-count="3"] .latest-announcement-featured { grid-row: span 2; }
.latest-announcement-card {
    --announcement-accent: #16738a;
    display: grid;
    grid-template-columns: minmax(7.6rem, .28fr) minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr) auto;
    overflow: hidden;
    border: 1px solid #d7e2e4;
    border-top: .24rem solid var(--announcement-accent);
    border-radius: .8rem;
    background: #fff;
    box-shadow: 0 5px 16px rgba(0, 38, 62, .045);
    transition: border-color .16s, box-shadow .16s, transform .16s;
}
.latest-announcement-card:hover {
    border-color: color-mix(in srgb, var(--announcement-accent) 42%, #d7e2e4);
    box-shadow: 0 10px 24px rgba(0, 38, 62, .08);
    transform: translateY(-1px);
}
.latest-announcement-card[data-severity="WARNING"] { --announcement-accent: #a96a00; }
.latest-announcement-card[data-severity="CRITICAL"],
.latest-announcement-card[data-severity="URGENT"],
.latest-announcement-card[data-severity="DANGER"] { --announcement-accent: #a63b42; }
.latest-announcement-scope {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .35rem;
    padding: 1rem .9rem;
    border-right: 1px solid #e0e8e9;
    background: #f5f9f9;
}
.latest-announcement-scope > span {
    display: inline-flex;
    padding: .3rem .5rem;
    border-radius: 999px;
    color: #0f5e70;
    background: #e2f1f3;
    font-size: .58rem;
    font-weight: 850;
    letter-spacing: .065em;
    line-height: 1.2;
    text-transform: uppercase;
}
.latest-announcement-scope > span[data-scope="SYSTEM"] { color: #fff; background: var(--usp-navy, var(--navy)); }
.latest-announcement-scope > span[data-scope="CAMPUS"] { color: #0d5e61; background: #dff2ef; }
.latest-announcement-scope > span[data-scope="FACILITY"] { color: #5e4611; background: #f6ebcf; }
.latest-announcement-scope strong { color: #344b53; font-size: .7rem; line-height: 1.35; }
.latest-announcement-scope small { color: #708084; font-size: .62rem; line-height: 1.35; }
.latest-announcement-body { min-width: 0; padding: 1rem 1.05rem; }
.latest-announcement-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem .75rem;
    align-items: center;
    color: #6b797c;
    font-size: .62rem;
    font-weight: 650;
}
.latest-announcement-meta > span + span::before { content: "\00b7"; margin-right: .75rem; color: #a0abad; }
.latest-announcement-meta time { font-weight: 750; }
.latest-announcement-severity { color: var(--announcement-accent); font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
.latest-announcement-body h3 { margin: .45rem 0 .35rem; font-size: 1rem; line-height: 1.25; }
.latest-announcement-featured .latest-announcement-body h3 { font-size: clamp(1.12rem, 2vw, 1.42rem); }
.latest-announcement-body h3 a { color: var(--usp-navy, var(--navy)); }
.latest-announcement-body h3 a:hover { color: var(--usp-blue, var(--blue)); text-decoration: underline; text-underline-offset: .18rem; }
.latest-announcement-body > p {
    display: -webkit-box;
    margin: 0;
    overflow: hidden;
    color: #526367;
    font-size: .74rem;
    line-height: 1.55;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
.latest-announcement-featured .latest-announcement-body > p { -webkit-line-clamp: 4; }
.latest-announcement-footer {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .8rem;
    padding: .65rem .9rem;
    border-top: 1px solid #e2e9ea;
    color: #586a70;
    background: #fbfcfc;
    font-size: .61rem;
}
.latest-announcement-footer > a { color: var(--usp-blue, var(--blue)); font-size: .68rem; font-weight: 800; white-space: nowrap; }
.latest-announcement-footer > a:hover { text-decoration: underline; text-underline-offset: .18rem; }

.announcement-management-page,
.announcement-editor-page { min-width: 0; }
.announcement-management-intro {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1.2rem;
    align-items: center;
    overflow: hidden;
    background:
        linear-gradient(100deg, rgba(51, 163, 170, .12), transparent 55%),
        #fff;
}
.announcement-management-intro h2 { margin: .25rem 0 .35rem; font-size: 1.35rem; }
.announcement-management-intro p:last-child { max-width: 42rem; margin: 0; color: #627174; font-size: .8rem; line-height: 1.55; }
.announcement-management-intro > strong { color: rgba(0, 38, 62, .12); font-size: clamp(3.2rem, 8vw, 5.2rem); line-height: .8; letter-spacing: -.08em; }
.announcement-admin-table { min-width: 880px; }
.announcement-admin-table th:first-child { width: 31%; }
.announcement-title-cell { max-width: 24rem; }
.announcement-title-cell > strong { margin-top: .15rem; font-size: .82rem; }
.announcement-title-cell > small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.announcement-severity-mark {
    width: max-content;
    color: #166578;
    font-size: .63rem;
    font-weight: 850;
    letter-spacing: .07em;
    text-transform: uppercase;
}
.announcement-severity-mark[data-severity="WARNING"] { color: #8a5a08; }
.announcement-severity-mark[data-severity="CRITICAL"],
.announcement-severity-mark[data-severity="URGENT"],
.announcement-severity-mark[data-severity="DANGER"] { color: #9a3038; }
.announcement-scope-cell,
.announcement-window-cell { display: grid; gap: .2rem; }
.announcement-scope-cell strong { color: var(--usp-navy, var(--navy)); font-size: .75rem; }
.announcement-scope-cell small { margin: 0; }
.announcement-window-cell { gap: .35rem; }
.announcement-window-cell > span { display: grid; gap: .05rem; }
.announcement-window-cell small { margin: 0; font-size: .62rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.announcement-window-cell strong { color: #374f60; font-size: .69rem; white-space: nowrap; }
.announcement-window-cell em { color: #748184; font-size: .62rem; font-style: normal; }
.announcement-row-actions { min-width: max-content; }
.ops-status[data-state="SCHEDULED"] { color: #7a5600; background: #fff1c8; }
.ops-status[data-state="DRAFT"],
.ops-status[data-state="EXPIRED"],
.ops-status[data-state="ENDED"] { color: #5e6b75; background: #edf1f4; }

.announcement-editor-page { display: grid; gap: 1rem; align-content: start; }
.announcement-editor-section { display: grid; gap: 1rem; }
.announcement-editor-section .ops-section-heading { margin-bottom: .1rem; }
.announcement-heading-fields { grid-template-columns: minmax(0, 1.6fr) minmax(12rem, .6fr); }
.announcement-form-state {
    padding: .4rem .65rem;
    border-radius: 999px;
    color: #53616d;
    background: #edf1f4;
    font-size: .67rem;
    font-weight: 850;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.announcement-form-state[data-state="ACTIVE"] { color: #11634f; background: #dff5ed; }
.announcement-form-state[data-state="SCHEDULED"] { color: #7a5600; background: #fff1c8; }
.announcement-content-field { display: grid; gap: .45rem; }
.announcement-editor-shell {
    overflow: hidden;
    border: 1px solid var(--border-strong, #c8d4df);
    border-radius: .8rem;
    background: #fff;
    transition: border-color .15s, box-shadow .15s;
}
.announcement-editor-shell:focus-within { border-color: var(--usp-teal, var(--teal)); box-shadow: 0 0 0 4px rgba(51, 163, 170, .14); }
.announcement-editor-toolbar.ql-toolbar.ql-snow { display: flex; flex-wrap: wrap; gap: .15rem; padding: .55rem .65rem; border: 0; border-bottom: 1px solid #dce5e8; background: #f6f9fa; font-family: inherit; }
.announcement-editor-toolbar .ql-formats { margin-right: .25rem; }
.announcement-editor-toolbar button,
.announcement-editor-toolbar select { border-radius: .3rem; }
.announcement-editor-toolbar button:hover,
.announcement-editor-toolbar button:focus,
.announcement-editor-toolbar .ql-picker-label:hover { background: #e8f2f3; }
.announcement-editor-surface.ql-container.ql-snow { min-height: 19rem; border: 0; font-family: inherit; font-size: .9rem; }
.announcement-editor-surface .ql-editor { min-height: 19rem; padding: 1.15rem 1.25rem; color: #263b49; line-height: 1.7; }
.announcement-editor-surface .ql-editor.ql-blank::before { left: 1.25rem; color: #788588; font-style: normal; }
.announcement-editor-surface .ql-editor h2 { margin: 1.35rem 0 .55rem; color: var(--usp-navy, var(--navy)); font-size: 1.45rem; }
.announcement-editor-surface .ql-editor h3 { margin: 1.15rem 0 .45rem; color: var(--usp-navy, var(--navy)); font-size: 1.15rem; }
.announcement-editor-surface .ql-editor blockquote { margin: 1rem 0; border-left-color: var(--usp-teal, var(--teal)); color: #536467; }
.announcement-editor-surface .ql-editor a { color: var(--usp-blue, var(--blue)); text-decoration: underline; text-underline-offset: .15rem; }
.announcement-editor-shell .ql-tooltip { z-index: 4; }
.announcement-editor-meta { display: flex; justify-content: space-between; gap: 1rem; }
.announcement-editor-meta small { color: #657477; font-size: .7rem; line-height: 1.45; }
.announcement-editor-meta small:first-child { max-width: 44rem; }
.announcement-editor-meta small:last-child { flex: none; font-variant-numeric: tabular-nums; }
.announcement-editor-notice { margin: .2rem 0 0; padding: .65rem .75rem; border-left: 3px solid #a96a00; background: #fff8e8; color: #74510d; font-size: .74rem; }
.announcement-editor-error { margin: .2rem 0 0; }
.announcement-editor-fallback textarea { display: block; width: 100%; min-height: 18rem; padding: 1rem; border: 0; resize: vertical; }

.announcement-scope-fieldset { display: grid; gap: .55rem; }
.announcement-scope-fieldset legend { margin-bottom: .2rem; }
.announcement-scope-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; }
.announcement-scope-option { position: relative; min-width: 0; cursor: pointer; }
.announcement-scope-option input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.announcement-scope-option > span {
    display: grid;
    gap: .25rem;
    min-height: 5.2rem;
    padding: .9rem 1rem;
    border: 1px solid #d5e0e4;
    border-radius: .75rem;
    background: #f8fafb;
    transition: border-color .15s, background .15s, box-shadow .15s, transform .15s;
}
.announcement-scope-option strong { color: var(--usp-navy, var(--navy)); font-size: .8rem; }
.announcement-scope-option small { color: #667477; font-size: .69rem; font-weight: 500; line-height: 1.4; }
.announcement-scope-option:hover > span { border-color: #9fc5ca; transform: translateY(-1px); }
.announcement-scope-option input:checked + span { border-color: var(--usp-teal, var(--teal)); background: #eef7f7; box-shadow: inset 0 0 0 1px var(--usp-teal, var(--teal)); }
.announcement-scope-option input:focus-visible + span { box-shadow: 0 0 0 4px rgba(51, 163, 170, .18); }
.announcement-target-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.announcement-target-grid [hidden],
.announcement-editor-section [hidden] { display: none !important; }
.announcement-target-summary,
.announcement-time-zone-note { margin: 0; padding: .72rem .85rem; border-left: 3px solid var(--usp-teal, var(--teal)); background: #f1f7f7; color: #4b6063; font-size: .75rem; line-height: 1.5; }
.announcement-time-zone-note strong { color: var(--usp-navy, var(--navy)); }
.announcement-date-time-control { position: relative; display: block; }
.form-field .announcement-date-time-control > [data-announcement-date-time-display] { width: 100%; padding-right: 3rem; }
.announcement-date-time-picker-button {
    position: absolute;
    top: 1px;
    right: 1px;
    bottom: 1px;
    width: 2.75rem;
    display: grid;
    place-items: center;
    padding: 0;
    border: 0;
    border-radius: 0 .65rem .65rem 0;
    color: var(--ink-strong);
    background: transparent;
    cursor: pointer;
}
.announcement-date-time-picker-button:hover { color: var(--teal); background: var(--surface-soft); }
.announcement-date-time-picker-button:focus-visible { outline: 2px solid var(--teal); outline-offset: -3px; }
.form-field .announcement-date-time-control.is-enhanced > [data-announcement-date-time-value] {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 1px;
    min-height: 0;
    height: 1px;
    padding: 0;
    border: 0;
    opacity: 0;
    pointer-events: none;
}
.announcement-publish-switch { align-items: flex-start; padding: .8rem .9rem; }
.announcement-publish-switch input { flex: none; margin-top: .15rem; }
.announcement-publish-switch > span { display: grid; gap: .12rem; }
.announcement-publish-switch strong { color: var(--usp-navy, var(--navy)); font-size: .78rem; }
.announcement-publish-switch small { color: #657477; font-size: .7rem; font-weight: 500; line-height: 1.4; }
.announcement-save-actions { align-items: center; }
.announcement-save-button { position: relative; min-width: 9.5rem; }
.announcement-save-spinner { display: none; width: .9rem; height: .9rem; border: 2px solid rgba(255, 255, 255, .45); border-top-color: #fff; border-radius: 50%; }
.announcement-editor-page.is-submitting .announcement-save-spinner { display: inline-block; animation: announcement-spin .65s linear infinite; }
@keyframes announcement-spin { to { transform: rotate(360deg); } }

.announcement-public-hero { margin-bottom: 1.5rem; }
.announcement-public-list { display: grid; gap: .8rem; }
.announcement-public-card {
    --announcement-accent: #16738a;
    display: grid;
    grid-template-columns: .36rem minmax(0, 1fr) auto;
    gap: 1.1rem;
    align-items: center;
    overflow: hidden;
    border: 1px solid #d3dfe2;
    background: #fff;
    box-shadow: 0 8px 24px rgba(0, 38, 62, .05);
}
.announcement-public-card[data-severity="WARNING"] { --announcement-accent: #a96a00; border-color: #ead4a2; }
.announcement-public-card[data-severity="CRITICAL"],
.announcement-public-card[data-severity="URGENT"],
.announcement-public-card[data-severity="DANGER"] { --announcement-accent: #a63b42; border-color: #e6c3c6; }
.announcement-public-card-marker { align-self: stretch; background: var(--announcement-accent); }
.announcement-public-card-body { min-width: 0; padding: 1.15rem 0; }
.announcement-public-card-meta,
.announcement-detail-meta { display: flex; flex-wrap: wrap; gap: .4rem .75rem; align-items: center; color: #697679; font-size: .67rem; font-weight: 750; }
.announcement-public-card-meta > span + span::before,
.announcement-detail-meta > span + span::before { content: "\00b7"; margin-right: .75rem; color: #a5afb1; }
.announcement-scope-label { color: var(--announcement-accent); font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.announcement-severity-label { color: var(--announcement-accent); }
.announcement-public-card h2 { margin: .35rem 0; font-size: 1.13rem; line-height: 1.25; }
.announcement-public-card h2 a { color: var(--usp-navy, var(--navy)); }
.announcement-public-card h2 a:hover { color: var(--usp-blue, var(--blue)); text-decoration: underline; text-underline-offset: .2rem; }
.announcement-public-card-body > p { max-width: 47rem; margin: 0; color: #526164; font-size: .8rem; line-height: 1.6; }
.announcement-public-card-window { display: flex; flex-wrap: wrap; gap: .35rem .9rem; margin-top: .65rem; color: #758184; font-size: .66rem; }
.announcement-public-card-link { margin-right: 1.25rem; color: var(--usp-blue, var(--blue)); font-size: .75rem; font-weight: 800; white-space: nowrap; }
.announcement-public-card-link:hover { text-decoration: underline; text-underline-offset: .2rem; }
.announcement-empty-state { min-height: 18rem; }

.announcement-detail-page { max-width: 980px; }
.announcement-detail {
    --announcement-accent: #16738a;
    overflow: hidden;
    border: 1px solid #d1dfe2;
    background: #fff;
    box-shadow: 0 18px 45px rgba(0, 38, 62, .08);
}
.announcement-detail[data-severity="WARNING"] { --announcement-accent: #a96a00; }
.announcement-detail[data-severity="CRITICAL"],
.announcement-detail[data-severity="URGENT"],
.announcement-detail[data-severity="DANGER"] { --announcement-accent: #a63b42; }
.announcement-detail-header { padding: clamp(1.5rem, 5vw, 3.25rem); border-top: .42rem solid var(--announcement-accent); background: linear-gradient(135deg, color-mix(in srgb, var(--announcement-accent) 8%, white), #fff 62%); }
.announcement-detail-header h1 { max-width: 48rem; margin: .7rem 0 1.3rem; color: var(--usp-navy, var(--navy)); font-size: clamp(2rem, 5vw, 3.4rem); line-height: 1.05; letter-spacing: -.045em; }
.announcement-detail-window { display: flex; flex-wrap: wrap; gap: .7rem 1.7rem; }
.announcement-detail-window > span { display: grid; gap: .1rem; }
.announcement-detail-window small { color: #6b797c; font-size: .63rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.announcement-detail-window strong { color: #3d5259; font-size: .75rem; }
.announcement-rich-content { max-width: 50rem; padding: clamp(1.5rem, 5vw, 3.25rem); color: #34474d; font-size: .9rem; line-height: 1.8; }
.announcement-rich-content > :first-child { margin-top: 0; }
.announcement-rich-content > :last-child { margin-bottom: 0; }
.announcement-rich-content h2 { margin: 1.8rem 0 .65rem; color: var(--usp-navy, var(--navy)); font-size: 1.55rem; line-height: 1.2; }
.announcement-rich-content h3 { margin: 1.45rem 0 .55rem; color: var(--usp-navy, var(--navy)); font-size: 1.2rem; line-height: 1.25; }
.announcement-rich-content p,
.announcement-rich-content ul,
.announcement-rich-content ol,
.announcement-rich-content blockquote { margin: 0 0 1rem; }
.announcement-rich-content li + li { margin-top: .3rem; }
.announcement-rich-content blockquote { padding: .8rem 1rem; border-left: 4px solid var(--announcement-accent); background: #f5f8f8; color: #4f6165; }
.announcement-rich-content a { color: var(--usp-blue, var(--blue)); font-weight: 700; text-decoration: underline; text-decoration-color: rgba(7, 87, 154, .35); text-underline-offset: .18rem; overflow-wrap: anywhere; }
.announcement-detail-footer { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; padding: 1.1rem clamp(1.5rem, 5vw, 3.25rem); border-top: 1px solid #dce5e7; background: #f8fafb; }

@media (max-width: 900px) {
    .latest-announcement-grid[data-count="3"] { grid-template-columns: 1fr; }
    .latest-announcement-grid[data-count="3"] .latest-announcement-featured { grid-row: auto; }
    .announcement-heading-fields,
    .announcement-target-grid { grid-template-columns: 1fr; }
    .announcement-scope-options { grid-template-columns: 1fr; }
    .announcement-scope-option > span { min-height: auto; }
}

@media (max-width: 680px) {
    .latest-announcements { padding: 1rem; border-radius: .9rem; }
    .latest-announcements-heading { align-items: flex-start; flex-direction: column; gap: .75rem; }
    .latest-announcement-card { grid-template-columns: 1fr; }
    .latest-announcement-scope { border-right: 0; border-bottom: 1px solid #e0e8e9; }
    .latest-announcement-footer { grid-column: 1; align-items: flex-start; flex-direction: column; }
    .announcement-management-intro { grid-template-columns: 1fr; }
    .announcement-management-intro > strong { display: none; }
    .announcement-editor-meta { align-items: flex-start; flex-direction: column; gap: .35rem; }
    .announcement-editor-toolbar.ql-toolbar.ql-snow { padding: .45rem; }
    .announcement-editor-toolbar .ql-formats { margin-right: 0; }
    .announcement-editor-surface.ql-container.ql-snow,
    .announcement-editor-surface .ql-editor { min-height: 16rem; }
    .announcement-save-actions { bottom: 5px; }
    .announcement-save-actions .button { flex: 1; justify-content: center; }
    .announcement-public-card { grid-template-columns: .3rem minmax(0, 1fr); padding-right: 1rem; }
    .announcement-public-card-link { grid-column: 2; width: max-content; margin: 0 0 1rem; }
    .announcement-public-card-body { padding-bottom: 0; }
    .announcement-detail-footer { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
    .latest-announcement-card { transition: none; }
    .latest-announcement-card:hover { transform: none; }
    .announcement-scope-option > span { transition: none; }
    .announcement-editor-page.is-submitting .announcement-save-spinner { animation-duration: 1.4s; }
}
