/* Shared scrolling and dismissal for the public bell and internal warning panels. */
.etop-notice-dialog .etop-dismissible { position:relative;overflow:hidden;touch-action:pan-y; }
.etop-notice-dialog .etop-notice-content { position:relative;z-index:1;display:block;padding-right:36px!important;background:var(--ea-raised,#f4f8fd)!important;will-change:transform; }
.etop-notice-dialog .etop-notice-remove { position:absolute;z-index:2;right:6px;top:6px;width:28px;height:28px;min-width:28px;border:1px solid var(--ea-line,#ccd8e5);border-radius:8px;background:var(--ea-raised,#eaf1f8);color:var(--ea-ink,#1d3651);font:22px/1 Arial,sans-serif;cursor:pointer;opacity:0;pointer-events:none; }
.etop-notice-dialog .etop-dismissible:hover .etop-notice-remove,.etop-notice-dialog .etop-dismissible:focus-within .etop-notice-remove { opacity:1;pointer-events:auto; }
.etop-notice-dialog .etop-notice-swipe-delete { position:absolute;right:0;top:0;bottom:0;z-index:0;width:76px;border:0;border-radius:0;background:#c93937;color:#fff;font:600 14px/1.3 'Segoe UI',Arial,sans-serif;cursor:pointer; }
.etop-notice-dialog .etop-notice-swipe-delete[hidden] { display:none; }
.etop-notice-undo { position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:13010;display:flex;align-items:center;gap:14px;max-width:calc(100vw - 28px);padding:12px 16px;border:1px solid #6d8198;border-radius:12px;background:#20334b;color:#fff;box-shadow:0 5px 22px #15243b55;font:14px/1.4 'Segoe UI',Arial,sans-serif; }
.etop-notice-undo button { flex-shrink:0;padding:7px 10px;border:1px solid #9cb7d5;border-radius:8px;background:#eaf3ff;color:#075cbe;font:600 14px/1.3 'Segoe UI',Arial,sans-serif;cursor:pointer; }
@media (hover:none) { .etop-notice-dialog .etop-notice-remove { display:none; } .etop-notice-dialog .etop-dismissible:focus-within .etop-notice-remove { display:block; } }
.etop-notice-dialog .etop-notice-audio { display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 8px;color:var(--ea-muted,#52677d);font:12px/1.4 "Segoe UI",Arial,sans-serif; }
.etop-notice-dialog .etop-notice-audio > span { flex:1 1 100%; }
.etop-masthead-notifications :is([data-etop-masthead-badge],[data-eh-badge]), .eh-bell [data-eh-badge] { position:absolute; top:-5px; right:-5px; display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box; min-width:20px; height:20px; padding:0 4px; border:2px solid var(--ea-surface,#f4f7fb); border-radius:12px; background:#d53930; color:#fff; font:700 11px/1 Arial,sans-serif; font-variant-numeric:tabular-nums; }
.etop-masthead-notifications :is([data-etop-masthead-badge],[data-eh-badge])[hidden], .eh-bell [data-eh-badge][hidden] { display:none!important; }
.etop-notice-backdrop { position:fixed; inset:0; z-index:12000; background:rgba(15,35,56,.16); touch-action:none; }
.etop-notice-backdrop[hidden], .etop-notice-dialog[hidden] { display:none!important; }
.etop-notice-dialog.eh-inbox-panel, .etop-notice-dialog.etop-fc__panel { position:fixed; z-index:12001; display:flex; flex-direction:column; max-height:var(--etop-notice-height,calc(100dvh - 24px)); min-height:0; overflow:hidden; box-sizing:border-box; animation:none; overscroll-behavior:contain; }
.etop-notice-dialog > :not(ul) { flex:0 0 auto; }
.etop-notice-dialog > ul { flex:0 1 auto; min-height:0; max-height:none!important; overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; touch-action:pan-y pinch-zoom; }
.etop-notice-dialog > .etop-notice-scrollport { position:relative; display:flex; flex:0 1 auto; min-height:0; overflow:hidden; isolation:isolate; }
.etop-notice-dialog .etop-notice-scrollport > ul { flex:0 1 auto; width:100%; min-width:0; min-height:0; max-height:none!important; margin-top:0; margin-bottom:0; overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; touch-action:pan-y pinch-zoom; }
.etop-notice-dialog.is-notice-pulling .etop-notice-scrollport > ul,
.etop-notice-dialog.is-notice-settling .etop-notice-scrollport > ul { will-change:transform; }
.etop-notice-dialog .etop-notice-pull { position:absolute; left:0; right:0; z-index:-1; display:flex; align-items:center; justify-content:center; gap:9px; height:44px; padding:0 12px; box-sizing:border-box; color:var(--ea-muted,#536d88); font:12px/1.4 Arial,sans-serif; pointer-events:none; transform-origin:center; will-change:transform,opacity; }
.etop-notice-dialog .etop-notice-pull[hidden] { display:none!important; }
.etop-notice-dialog .etop-notice-pull-top { top:0; }
.etop-notice-dialog .etop-notice-pull-bottom { bottom:0; }
.etop-notice-dialog .etop-notice-pull-icon { display:inline-flex; align-items:center; justify-content:center; flex:0 0 28px; width:28px; height:28px; border:1px solid var(--ea-line,#cfdeef); border-radius:50%; color:#0871c7; background:var(--ea-raised,#eff6fe); box-shadow:0 2px 1px #16314f20,0 4px 8px #16314f18; }
.etop-notice-dialog .etop-notice-pull-icon svg { display:block; width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.etop-notice-dialog .etop-notice-pull .etop-notice-refresh-status { margin:0; padding:0; color:inherit; font:inherit; }
.etop-notice-dialog.is-notice-ready .etop-notice-pull-top { color:#0871c7; }
.etop-notice-dialog.is-notice-ready .etop-notice-pull-icon { border-color:#ff8133; }
.etop-notice-dialog.is-notice-refreshing .etop-notice-pull-top { z-index:1; }
.etop-notice-dialog.is-notice-refreshing .etop-notice-pull-icon svg { animation:etop-notice-spin .85s linear infinite; }
@keyframes etop-notice-spin { to { transform:rotate(360deg); } }

.etop-notice-dialog > header { align-items:center; gap:8px; }
.etop-notice-dialog > header > :first-child { flex:1 1 auto; min-width:0; }
.etop-notice-dialog > header > button:not(.etop-notice-close) { flex:0 1 auto; max-width:125px; }
.etop-notice-dialog > header > .etop-notice-close { display:inline-flex; flex:0 0 36px; align-items:center; justify-content:center; width:36px; height:36px; min-width:36px; min-height:36px; padding:0; border:1px solid var(--ea-line,#cfdeef); border-radius:9px; background:var(--ea-raised,#eff6fe); color:var(--ea-ink,#16314f); font:500 26px/1 Arial,sans-serif; cursor:pointer; }
.etop-notice-dialog > header > .etop-notice-close:hover { border-color:#ff8133; box-shadow:0 0 0 2px #ff813344; }
.etop-notice-dialog .etop-notice-close:focus-visible { outline:2px solid #ff8133; outline-offset:2px; }
.etop-notice-dialog > header > .etop-notice-refresh { display:inline-flex; align-items:center; justify-content:center; flex:0 0 36px; width:36px; height:36px; max-width:none; padding:0; border:1px solid var(--ea-line,#cfdeef); border-radius:9px; background:var(--ea-raised,#eff6fe); color:var(--ea-ink,#16314f); font:500 24px/1 Arial,sans-serif; cursor:pointer; }
.etop-notice-dialog > header > .etop-notice-refresh:hover { border-color:#ff8133; box-shadow:0 0 0 2px #ff813344; }
.etop-notice-dialog > header > .etop-notice-refresh:disabled { opacity:.6; cursor:wait; }
.etop-notice-dialog .etop-notice-refresh-status, .etop-notice-dialog .etop-notice-updated { font:12px/1.5 Arial,sans-serif; color:var(--ea-muted,#536d88); padding:6px 0; margin:4px 0; overflow-wrap:anywhere; }
.etop-notice-dialog .etop-notice-refresh-status[hidden] { display:none!important; }
.etop-notice-dialog.etop-fc__panel .etop-notice-refresh-status, .etop-notice-dialog.etop-fc__panel .etop-notice-updated { padding:7px 16px; }
.etop-notice-dialog > header > button[data-etop-fc-read-all] { max-width:88px; }
.etop-admin-shell .ea-staff-dialog.etop-overlay-dialog { position:fixed; margin:0; inset:auto; width:660px; max-width:calc(100vw - 24px); max-height:var(--etop-notice-height,calc(100dvh - 24px)); padding:0; overflow:hidden; }
/* Learner dialogs use header/tabs/body/footer rather than a single outer form. */
.etop-admin-shell .ea-staff-dialog.sp-learner-dialog.etop-overlay-dialog { width:min(840px,calc(100vw - 24px)); padding:var(--sp-learner-gutter,24px); }
.etop-admin-shell .sp-learner-dialog.etop-overlay-dialog [data-staff-scroll] { padding:0 8px 8px 0; }
.etop-admin-shell .sp-learner-dialog.etop-overlay-dialog > .ea-staff-actions { margin-top:0; }
.ea-staff-dialog.etop-overlay-dialog > form { display:flex; flex-direction:column; margin:0; padding:20px; box-sizing:border-box; max-height:var(--etop-notice-height,calc(100dvh - 24px)); min-height:0; }
.ea-staff-dialog.etop-overlay-dialog form > header, .ea-staff-dialog.etop-overlay-dialog form > .ea-staff-actions { flex:0 0 auto; }
.ea-staff-dialog.etop-overlay-dialog [data-staff-scroll] { overflow-y:auto; min-height:0; flex:0 1 auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; touch-action:pan-y pinch-zoom; padding:0 3px; }
.ea-staff-dialog.etop-overlay-dialog header h2 { min-width:0; overflow-wrap:anywhere; }
.ea-staff-dialog.etop-overlay-dialog header [data-staff-close] { flex:0 0 40px; height:40px; width:40px; padding:0; font-size:24px; }
.ea-staff-dialog.etop-overlay-dialog .ea-staff-actions { margin-top:14px; }
@media(max-width:600px) { .ea-staff-dialog.etop-overlay-dialog > form { padding:14px; } }
.etop-admin-shell .ea-staff-row-actions > a.ea-staff-info { display:inline-flex; }
.ea-staff-account-panel { padding:22px!important; margin-bottom:18px; }
.ea-staff-account-panel h2 { overflow-wrap:anywhere; }
.ea-staff-account-panel p { line-height:1.6; }
.ea-staff-account-details { display:grid; grid-template-columns:minmax(130px,190px) minmax(0,1fr); margin:18px 0; }
.ea-staff-account-details dt,.ea-staff-account-details dd { margin:0; padding:10px 0; border-bottom:1px solid var(--ea-line); overflow-wrap:anywhere; }
.ea-staff-account-details dt { color:var(--ea-muted); padding-right:12px; }
.ea-staff-password-form { max-width:560px; }
.ea-staff-password-form > label { display:block; margin:16px 0; font-weight:600; }
.etop-admin-shell .ea-staff-password-form input:not([type=hidden]) { display:block; box-sizing:border-box; min-width:0; width:100%; max-width:100%; height:44px; margin:8px 0 0; padding:9px 11px; font-size:16px; }
.ea-staff-password-tools { display:flex; flex-wrap:wrap; gap:10px; }
@media(max-width:480px) { .ea-staff-account-panel { padding:16px!important; } .ea-staff-account-details { grid-template-columns:minmax(110px,42%) minmax(0,1fr); font-size:14px; } }

/* Class and lesson dialogs use the same viewport and page-lock behavior. */
.etop-admin-shell .es-dialog.etop-overlay-dialog { position:fixed; inset:auto; margin:0; padding:0; max-width:calc(100vw - 24px); max-height:var(--etop-notice-height,calc(100dvh - 24px)); overflow:hidden; box-sizing:border-box; }
.etop-admin-shell .es-dialog.etop-overlay-dialog[open] { display:flex; flex-direction:column; }
.etop-admin-shell .es-dialog.etop-overlay-dialog .es-dialog-header, .etop-admin-shell .es-dialog.etop-overlay-dialog .es-dialog-footer { flex:0 0 auto; }
.etop-admin-shell .es-dialog.etop-overlay-dialog .es-dialog-header h2 { min-width:0; overflow-wrap:anywhere; }
.etop-admin-shell .es-dialog.etop-overlay-dialog .es-dialog-header button { flex:0 0 40px; width:40px; height:40px; padding:0; }
.etop-admin-shell .es-dialog.etop-overlay-dialog .es-dialog-body { flex:0 1 auto; min-height:0; max-height:none; overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; touch-action:pan-y pinch-zoom; }

/* The same light elevation for ordinary, health and floating notification lists. */
.etop-notice-dialog { --etop-notice-card-rest:inset 0 1px #ffffff70,0 2px 4px #16395712;--etop-notice-card-hover:inset 0 1px #ffffff90,0 3px 2px #16395710,0 7px 12px -4px #16395726;--etop-notice-card-press:inset 0 1px 3px #16395716,0 1px 2px #16395714; }
[data-ea-theme=dark] .etop-admin-shell .etop-notice-dialog { --etop-notice-card-rest:inset 0 1px #ffffff12,0 2px 4px #0003;--etop-notice-card-hover:inset 0 1px #ffffff18,0 3px 2px #0003,0 7px 12px -4px #0006;--etop-notice-card-press:inset 0 1px 3px #0005,0 1px 2px #0003; }
.etop-notice-dialog :is(.eh-notification.ea-panel,.etop-fc__notification) { position:relative;min-width:0;margin:10px 6px;border-radius:10px;box-shadow:var(--etop-notice-card-rest);--etop-control-elevation:1;--etop-control-press:var(--etop-notice-card-press);transition:transform var(--etop-motion-base,220ms) var(--etop-motion-ease,ease),box-shadow var(--etop-motion-base,220ms) ease; }
.etop-notice-dialog :is(.eh-notification,.etop-fc__notification) > a { border-radius:inherit; }
@media(hover:hover) and (pointer:fine) {
 .etop-notice-dialog :is(.eh-notification.ea-panel,.etop-fc__notification):hover { transform:translateY(-2px);box-shadow:var(--etop-notice-card-hover); }
}
.etop-notice-dialog :is(.eh-notification.ea-panel,.etop-fc__notification):active { transform:translateY(1px) scale(.99);box-shadow:var(--etop-notice-card-press); }


/* One presentation for public and admin inboxes, independent of their data adapters. */
.etop-public-page .etop-notice-dialog { --ea-blue:#005ab7;--ea-ink:#15243b;--ea-muted:#52677d;--ea-line:#cbd8e5;--ea-surface:#eff4f9;--ea-raised:#e3ecf5; }
:is(.etop-admin-shell,.etop-public-page) .etop-notice-dialog:is(.eh-inbox-panel,.etop-fc__panel) { padding:16px;border:1px solid var(--ea-line,#dfe7f1);border-radius:14px;background:var(--ea-surface,#fff);color:var(--ea-ink,#15243b);font:15px/1.5 "Segoe UI",Arial,sans-serif;box-shadow:0 12px 30px #0003; }
.etop-notice-dialog > header { display:flex;align-items:center;gap:8px;padding:0;margin:0 0 10px;border:0;background:transparent; }
.etop-notice-dialog > header > :first-child { margin:0;color:var(--ea-ink,#15243b);font:700 16px/1.5 "Segoe UI",Arial,sans-serif; }
.etop-notice-dialog > header > button { box-sizing:border-box;height:36px!important;min-height:36px!important;margin:0!important;display:inline-flex;align-items:center;justify-content:center; }
.etop-notice-dialog > header > button[data-etop-fc-read-all],.etop-notice-dialog > header > button[data-eh-read-all] { box-sizing:border-box;min-height:36px;max-width:125px;padding:7px 9px;border:1px solid var(--ea-line,#cfdeef);border-radius:9px;background:var(--ea-raised,#eff6fe);color:var(--ea-ink,#16314f);font:600 12px/1.4 "Segoe UI",Arial,sans-serif; }
:is(.etop-admin-shell,.etop-public-page) .etop-notice-dialog :is(.eh-notification.ea-panel,.etop-fc__notification) { border:1px solid var(--eh-severity,var(--ea-blue,#005ab7));background:var(--ea-raised,#eff6fe); }
.etop-notice-dialog .etop-fc__notification.etop-health-red { --eh-severity:#e85850; }
.etop-notice-dialog .etop-fc__notification.etop-health-yellow { --eh-severity:#dba13d; }
.etop-notice-dialog .etop-fc__notification.etop-health-green { --eh-severity:#34a476; }
.etop-notice-dialog :is(.eh-notification,.etop-fc__notification) > a { display:block;padding:12px;color:var(--ea-ink,#15243b);background:transparent;text-decoration:none;overflow-wrap:anywhere; }
.etop-notice-dialog .etop-fc__notification:is(.is-unread,:last-child) > a,.etop-notice-dialog .etop-fc__notification > a:is(:hover,:focus-visible) { background:transparent; }
.etop-notice-dialog :is(.eh-notification,.etop-fc__notification) strong { display:block;margin:0;color:inherit;font:700 14px/1.5 "Segoe UI",Arial,sans-serif; }
.etop-notice-dialog :is(.eh-notification,.etop-fc__notification) > a > span { display:block;margin-top:5px;color:var(--ea-muted,#66758b);font:12px/1.5 "Segoe UI",Arial,sans-serif; }
.etop-notice-dialog.etop-fc__panel :is(.etop-notice-refresh-status,.etop-notice-updated) { padding:6px 0;margin:4px 0; }

/* Read titles start at the card padding; unread titles alone receive a marker. */
.etop-notice-dialog :is(.eh-notification,.etop-fc__notification) > a > strong::before { content:none;display:none;box-sizing:border-box;width:8px;height:8px;margin:0 7px 1px 0;border:0;border-radius:50%;background:transparent; }
.etop-notice-dialog :is(.eh-notification,.etop-fc__notification).is-unread > a > strong::before { content:'';display:inline-block;background:var(--eh-severity,var(--ea-blue,#005ab7));opacity:1; }
.etop-notice-dialog :is(.eh-notification,.etop-fc__notification):not(.is-unread) > a > strong { font-weight:700; }

/* Shared warning glow: every red and amber card on both sites, independent of reading. */
.etop-notice-dialog :is(.eh-notification,.etop-fc__notification)::before { content:none;animation:none; }
.etop-notice-dialog :is(.eh-red,.etop-health-red) { --eh-glow:232,88,80; }
.etop-notice-dialog :is(.eh-yellow,.etop-health-yellow) { --eh-glow:219,161,61; }
.etop-notice-dialog :is(.eh-notification,.etop-fc__notification):is(.eh-red,.eh-yellow,.etop-health-red,.etop-health-yellow)::before { content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(var(--eh-glow),.5),0 0 10px 2px rgba(var(--eh-glow),.22);animation:etop-notice-warning-light 2.1s ease-in-out infinite; }
@keyframes etop-notice-warning-light { 0%,100% { opacity:.25; } 50% { opacity:1; } }

/* Keep bulk actions readable and inside the panel on phones. */
.etop-notice-dialog > header { flex-wrap:wrap; }
.etop-notice-dialog > header > :first-child { flex-basis:100%; }
.etop-notice-dialog > header > button[data-etop-notice-clear] { padding:7px 9px;border:1px solid #d56962;border-radius:9px;background:var(--ea-raised,#eff6fe);color:var(--ea-ink,#16314f);font:600 12px/1.4 "Segoe UI",Arial,sans-serif;cursor:pointer; }
.etop-notice-dialog > header > button[data-etop-notice-clear]:disabled { opacity:.5;cursor:default; }
.etop-notice-clear-confirm { flex:0 0 auto;margin:0 0 10px;padding:12px;border:1px solid #d56962;border-radius:10px;background:var(--ea-raised,#eff6fe);color:var(--ea-ink,#16314f);font:14px/1.5 "Segoe UI",Arial,sans-serif; }
.etop-notice-clear-confirm p { margin:0 0 10px;color:inherit; }
.etop-notice-clear-confirm > div { display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px; }
.etop-notice-clear-confirm button { min-height:38px;margin:0;padding:7px 12px;border:1px solid var(--ea-line,#cfdeef);border-radius:8px;background:var(--ea-surface,#fff);color:inherit;font:600 14px/1.4 "Segoe UI",Arial,sans-serif;cursor:pointer; }
.etop-notice-clear-confirm .etop-notice-clear-approve { border-color:#bd342a;background:#bd342a;color:#fff; }
.etop-notice-clear-confirm button:focus-visible { outline:2px solid #ff8133;outline-offset:2px; }
