/* Snap Notify — public banner, sign-up and preferences — v1.0.10 — 2026-10-03 16:22 */

:root {
	--sn-info-bg: #0B4F9C;
	--sn-info-fg: #FFFFFF;
	--sn-important-bg: #F2A900;
	--sn-important-fg: #1F1600;
	--sn-emergency-bg: #B3121B;
	--sn-emergency-fg: #FFFFFF;
	--sn-ink: #111827;
	--sn-muted: #4A5568;
	--sn-line: #D1D5DB;
	--sn-surface: #FFFFFF;
	--sn-soft: #F3F5F8;
	--sn-focus: #1D4ED8;
	--sn-ok: #166534;
	--sn-ok-soft: #ECFDF3;
	--sn-err: #B3121B;
	--sn-err-soft: #FDECEC;
	--sn-radius: 8px;
}

/* ---------- Banner (v1.0.5 redesign) ----------
   Slim bar, one per emergency + one shared bar for everything else.
   Info / Important use light tints with a colored edge so they sit calmly
   above any header; Emergency is solid red so it can't be missed. */
.snap-notify-banners {
	--snb-info-bg: #EAF2FD;
	--snb-info-ink: #0B2E59;
	--snb-info-accent: #0B4F9C;
	--snb-imp-bg: #FFF4D6;
	--snb-imp-ink: #3D2A00;
	--snb-imp-accent: #C98A00;
	--snb-em-bg: #B3121B;
	--snb-em-ink: #FFFFFF;
	position: relative;
	z-index: 9990;
	width: 100%;
	font-family: inherit;
	line-height: 1.4;
}
.snap-notify-banners *,
.snap-notify-banners *::before,
.snap-notify-banners *::after { box-sizing: border-box; }

.sn-banner {
	position: relative;
	width: 100%;
	border-left: 6px solid transparent;
	box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .08);
}
.sn-banner[hidden] { display: none !important; }
.sn-banner--info { background: var(--snb-info-bg); color: var(--snb-info-ink); border-left-color: var(--snb-info-accent); }
.sn-banner--important { background: var(--snb-imp-bg); color: var(--snb-imp-ink); border-left-color: var(--snb-imp-accent); }
.sn-banner--emergency { background: var(--snb-em-bg); color: var(--snb-em-ink); border-left-color: #FFD4D6; box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); }

/* Grouped bar: only the current notice shows. Without JavaScript the first one shows. */
.sn-group > .sn-banner[data-sn-later] { display: none; }
.sn-group.is-ready > .sn-banner { display: none; }
.sn-group.is-ready > .sn-banner.is-current { display: block; }

.sn-banner__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 8px 16px;
	min-height: 52px;
	display: flex;
	align-items: center;
	gap: 10px 12px;
}
.sn-banner__icon { flex: 0 0 auto; display: inline-flex; }
.sn-banner--info .sn-banner__icon { color: var(--snb-info-accent); }
.sn-banner--important .sn-banner__icon { color: var(--snb-imp-accent); }
.sn-banner--emergency .sn-banner__icon { color: #FFFFFF; }
.sn-banner__icon svg { display: block; }

.sn-banner__badge {
	flex: 0 0 auto;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: 3px 8px;
	border-radius: 4px;
	line-height: 1.2;
}
.sn-banner--info .sn-banner__badge { background: var(--snb-info-accent); color: #FFFFFF; }
.sn-banner--important .sn-banner__badge { background: #7A5200; color: #FFFFFF; }
.sn-banner--emergency .sn-banner__badge { background: #FFFFFF; color: var(--snb-em-bg); }

.sn-banner__text {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0 !important;
	padding: 0;
	font-size: 15px;
	line-height: 1.45;
	color: inherit;
}
.sn-banner__headline { font-weight: 700; }
.sn-banner__details { opacity: .92; }
.sn-banner--emergency .sn-banner__details { opacity: 1; }

.sn-banner__link {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	padding: 6px 12px;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 700;
	text-decoration: none !important;
	white-space: nowrap;
	color: inherit !important;
	border: 1.5px solid currentColor;
	transition: background-color .15s;
}
.sn-banner--info .sn-banner__link { color: var(--snb-info-accent) !important; }
.sn-banner--important .sn-banner__link { color: #6B4700 !important; }
.sn-banner__link:hover,
.sn-banner__link:focus { background: rgba(0, 0, 0, .06); }
.sn-banner--emergency .sn-banner__link:hover,
.sn-banner--emergency .sn-banner__link:focus { background: rgba(255, 255, 255, .15); }

.sn-banner__pager { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 2px; font-size: 13px; font-weight: 600; white-space: nowrap; }
.sn-banner__arrow { margin-left: 6px; }
.sn-banner__pager[hidden] { display: none !important; }
.sn-banner__count { min-width: 44px; text-align: center; opacity: .85; }

.sn-banner a:focus-visible,
.sn-banner button:focus-visible {
	outline: 3px solid currentColor !important;
	outline-offset: 2px !important;
}

/* Emergency: a soft pulse on the icon draws the eye (off for reduced motion). */
@media (prefers-reduced-motion: no-preference) {
	.sn-banner--emergency .sn-banner__icon { animation: sn-pulse 2s ease-in-out infinite; }
	@keyframes sn-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .55; } }
	.sn-banner { animation: sn-in .25s ease-out; }
	@keyframes sn-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
}

@media (max-width: 720px) {
	.sn-banner__inner { flex-wrap: wrap; padding: 10px 12px; gap: 6px 10px; }
	.sn-banner__text { flex: 1 1 calc(100% - 90px); order: 3; font-size: 15px; }
	.sn-banner__icon { order: 1; }
	.sn-banner__badge { order: 2; }
	.sn-banner__pager { order: 4; margin-left: auto; }
	.sn-banner__link { order: 5; }
	.sn-banner__close { order: 2; margin-left: auto; }
	.sn-banner__details {
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}
	.sn-banner__sep { display: none; }
	.sn-banner__headline { display: block; }
}

/* ---------- External link dialog ---------- */
.sn-modal-backdrop {
	position: fixed;
	inset: 0;
	background: rgba(17, 24, 39, .6);
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
}
.sn-modal {
	background: var(--sn-surface);
	color: var(--sn-ink);
	border-radius: 10px;
	max-width: 460px;
	width: 100%;
	padding: 24px;
	box-shadow: 0 20px 50px rgba(0, 0, 0, .3);
}
.sn-modal h2 { margin: 0 0 8px; font-size: 20px; }
.sn-modal p { margin: 0 0 12px; }
.sn-modal__url { word-break: break-all; font-weight: 700; background: var(--sn-soft); padding: 8px 10px; border-radius: 6px; }
.sn-modal__actions { display: flex; gap: 10px; justify-content: flex-end; margin-top: 16px; flex-wrap: wrap; }

/* ---------- Forms (sign-up / preferences / confirm) ---------- */
.sn-public {
	max-width: 640px;
	color: var(--sn-ink);
}
.sn-public .sn-field { margin: 0 0 18px; }
.sn-public label,
.sn-public legend { display: block; font-weight: 700; margin: 0 0 6px; }
.sn-public .sn-hint { display: block; color: var(--sn-muted); font-size: 14px; margin-top: 4px; font-weight: 400; }
.sn-public input[type="text"],
.sn-public input[type="email"],
.sn-public input[type="tel"] {
	width: 100%;
	min-height: 44px;
	padding: 10px 12px;
	border: 1px solid #6B7280;
	border-radius: 6px;
	font-size: 16px;
	box-sizing: border-box;
	background: #fff;
	color: var(--sn-ink);
}
.sn-public fieldset { border: 1px solid var(--sn-line); border-radius: var(--sn-radius); padding: 12px 16px 6px; margin: 0 0 18px; }
.sn-public .sn-check {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	min-height: 44px;
	font-weight: 400;
	margin: 0 0 4px;
	cursor: pointer;
}
.sn-public .sn-check input { width: 22px; height: 22px; margin: 2px 0 0; flex: 0 0 auto; }
.sn-public .sn-check--locked { color: var(--sn-muted); cursor: default; }
.sn-public .sn-consent { background: var(--sn-soft); border-radius: var(--sn-radius); padding: 12px 14px; }
.sn-public .sn-consent__text { font-size: 14px; line-height: 1.5; }
.sn-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 20px;
	border-radius: 6px;
	border: 2px solid var(--sn-info-bg);
	background: var(--sn-info-bg);
	color: #fff !important;
	font-size: 16px;
	font-weight: 700;
	cursor: pointer;
	text-decoration: none !important;
}
.sn-btn--ghost { background: transparent; color: var(--sn-info-bg) !important; }
.sn-btn--danger { background: var(--sn-emergency-bg); border-color: var(--sn-emergency-bg); }
.sn-btn:focus-visible,
.sn-public input:focus-visible,
.sn-modal button:focus-visible { outline: 3px solid var(--sn-focus); outline-offset: 2px; }
.sn-notice { border-radius: var(--sn-radius); padding: 12px 14px; margin: 0 0 18px; border-left: 5px solid; }
.sn-notice--ok { background: var(--sn-ok-soft); border-color: var(--sn-ok); color: #0F3D21; }
.sn-notice--err { background: var(--sn-err-soft); border-color: var(--sn-err); color: #6B0A10; }
.sn-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.screen-reader-text:not(:focus) {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important;
}

@media (prefers-reduced-motion: no-preference) {
	.sn-banner { animation: sn-in .25s ease-out; }
	@keyframes sn-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
}

/* ==========================================================================
   Theme-proofing (v1.0.2). Themes such as Hello Elementor and Elementor kits
   style every <button>/[type=submit] globally (pink #c36 outline, transparent
   background, hover fill). These rules restore Snap Notify's own buttons
   everywhere they appear: dashboard, Snap Dashboard home strip, public forms,
   banners and dialogs.
   ========================================================================== */
.sn-btn,
button.sn-btn,
a.sn-btn,
input.sn-btn,
.sn-dash .sn-btn,
.sn-public .sn-btn,
.sn-strip .sn-btn,
.sn-modal .sn-btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 6px;
	min-height: 44px !important;
	padding: 10px 20px !important;
	margin: 0;
	border: 2px solid #0B4F9C !important;
	border-radius: 6px !important;
	background: #0B4F9C !important;
	background-image: none !important;
	color: #FFFFFF !important;
	font-family: inherit !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	text-decoration: none !important;
	text-shadow: none !important;
	box-shadow: none !important;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color .15s, border-color .15s, color .15s !important;
	-webkit-appearance: none;
	appearance: none;
}
.sn-btn:hover,
.sn-btn:focus {
	background: #083B75 !important;
	border-color: #083B75 !important;
	color: #FFFFFF !important;
}
.sn-btn.sn-btn--ghost,
.sn-dash .sn-btn.sn-btn--ghost,
.sn-public .sn-btn.sn-btn--ghost,
.sn-modal .sn-btn.sn-btn--ghost {
	background: #FFFFFF !important;
	color: #0B4F9C !important;
	border-color: #0B4F9C !important;
}
.sn-btn.sn-btn--ghost:hover,
.sn-btn.sn-btn--ghost:focus {
	background: #E8F0FB !important;
	color: #083B75 !important;
	border-color: #083B75 !important;
}
.sn-btn.sn-btn--danger,
.sn-dash .sn-btn.sn-btn--danger,
.sn-strip .sn-btn.sn-btn--danger,
.sn-public .sn-btn.sn-btn--danger {
	background: #B3121B !important;
	border-color: #B3121B !important;
	color: #FFFFFF !important;
}
.sn-btn.sn-btn--danger:hover,
.sn-btn.sn-btn--danger:focus {
	background: #8E0E15 !important;
	border-color: #8E0E15 !important;
	color: #FFFFFF !important;
}
.sn-btn.sn-btn--sm {
	padding: 6px 14px !important;
	font-size: 14px !important;
}
.sn-btn[disabled],
.sn-btn:disabled {
	opacity: .55 !important;
	cursor: not-allowed !important;
}
.sn-btn:focus-visible {
	outline: 3px solid #1D4ED8 !important;
	outline-offset: 2px !important;
}

/* Banner close + pager buttons (theme-proofed). */
.snap-notify-banners .sn-banner__close,
.snap-notify-banners .sn-banner__nav,
.sn-preview .sn-banner__close {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex: 0 0 auto;
	width: 44px !important;
	height: 44px !important;
	min-width: 44px !important;
	min-height: 44px !important;
	padding: 0 !important;
	margin: 0 !important;
	background: transparent !important;
	background-image: none !important;
	color: inherit !important;
	border: 0 !important;
	border-radius: 999px !important;
	box-shadow: none !important;
	font-family: inherit !important;
	font-size: 22px !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	cursor: pointer;
	opacity: .8;
	transition: background-color .15s, opacity .15s !important;
}
.snap-notify-banners .sn-banner__nav { font-size: 26px !important; }
.snap-notify-banners .sn-banner__close:hover,
.snap-notify-banners .sn-banner__close:focus,
.snap-notify-banners .sn-banner__nav:hover,
.snap-notify-banners .sn-banner__nav:focus {
	background: rgba(0, 0, 0, .08) !important;
	color: inherit !important;
	opacity: 1;
}
.snap-notify-banners .sn-banner--emergency .sn-banner__close:hover,
.snap-notify-banners .sn-banner--emergency .sn-banner__nav:hover { background: rgba(255, 255, 255, .18) !important; }
.sn-linkbtn,
button.sn-linkbtn {
	background: none !important;
	border: 0 !important;
	padding: 0 !important;
	min-height: 44px;
	color: #0B4F9C !important;
	text-decoration: underline !important;
	font: inherit !important;
	letter-spacing: normal !important;
	box-shadow: none !important;
	text-transform: none !important;
	cursor: pointer;
}
.sn-linkbtn:hover,
.sn-linkbtn:focus {
	background: none !important;
	color: #083B75 !important;
}

/* v1.0.3 — manage-link request form, "already subscribed" link, subscribe button. */
.sn-public .sn-h { margin: 0 0 8px; font-size: 22px; }
.sn-public .sn-already { margin-top: 18px; }
.sn-public .sn-already a { display: inline-block; padding: 10px 0; font-weight: 600; }
.sn-subscribe-btn .dashicons { font-size: 20px; width: 20px; height: 20px; }

@media (max-width: 720px) {
	.snap-notify-banners .sn-banner__close { margin-left: auto !important; }
	.snap-notify-banners .sn-banner__pager { margin-right: auto; }
}

/* ---------- Pop-up sign-up (v1.0.6) ---------- */
.sn-popup { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 16px; }
.sn-popup[hidden] { display: none !important; }
.sn-popup__backdrop { position: absolute; inset: 0; background: rgba(15, 23, 42, .55); }
.sn-popup__card {
	position: relative;
	width: 100%;
	max-width: 420px;
	max-height: calc(100vh - 32px);
	overflow-y: auto;
	background: #FFFFFF;
	color: #111827;
	border-radius: 14px;
	padding: 22px 22px 18px;
	box-shadow: 0 24px 60px rgba(0, 0, 0, .3);
	font-family: inherit;
	text-align: left;
}
.sn-popup *, .sn-popup *::before, .sn-popup *::after { box-sizing: border-box; }
.sn-popup__head { display: flex; align-items: center; gap: 10px; margin: 0 36px 6px 0; }
.sn-popup__bell { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; background: #EAF2FD; color: #0B4F9C; flex: 0 0 auto; }
.sn-popup__title { margin: 0 !important; font-size: 19px !important; line-height: 1.3 !important; color: #111827 !important; font-weight: 700 !important; }
.sn-popup__text { margin: 4px 0 14px !important; font-size: 15px; line-height: 1.45; color: #374151; }
.sn-popup__row { display: flex; gap: 8px; }
.sn-popup__row input[type="email"] {
	flex: 1 1 auto; min-width: 0; min-height: 44px; padding: 10px 12px;
	border: 1px solid #6B7280 !important; border-radius: 8px !important; font-size: 16px; color: #111827; background: #FFFFFF !important; box-shadow: none !important;
}
.sn-popup__row input[type="email"]:focus-visible { outline: 3px solid #1D4ED8; outline-offset: 1px; border-color: #1D4ED8 !important; }
.sn-popup__row .sn-btn { flex: 0 0 auto; border-radius: 8px !important; }
.sn-popup__topics { border: 0 !important; margin: 12px 0 0 !important; padding: 0 !important; display: flex; flex-wrap: wrap; gap: 6px; }
.sn-popup__topics legend { font-size: 13px; font-weight: 700; color: #4B5563; margin: 0 0 6px; padding: 0; float: left; width: 100%; }
.sn-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 6px 12px 6px 8px; border: 1px solid #C7CBD2; border-radius: 999px; font-size: 13px; font-weight: 600; color: #1F2937; cursor: pointer; background: #FFFFFF; line-height: 1.2; margin: 0; }
.sn-chip input { width: 16px; height: 16px; margin: 0; accent-color: #0B4F9C; }
.sn-chip:has(input:checked) { background: #EAF2FD; border-color: #0B4F9C; color: #0B2E59; }
.sn-chip.is-locked { cursor: default; opacity: .85; }
.sn-chip:focus-within { outline: 3px solid #1D4ED8; outline-offset: 1px; }
.sn-popup__msg { margin: 10px 0 0 !important; font-size: 14px; font-weight: 600; min-height: 0; }
.sn-popup__msg:empty { display: none; }
.sn-popup__msg.is-ok { color: #14532D; background: #ECFDF3; border-radius: 8px; padding: 10px 12px; }
.sn-popup__msg.is-err { color: #7F1D1D; background: #FDECEC; border-radius: 8px; padding: 10px 12px; }
.sn-popup__form.is-done .sn-popup__row,
.sn-popup__form.is-done .sn-popup__topics,
.sn-popup__form.is-done .sn-popup__more { display: none; }
.sn-popup__more { margin: 10px 0 0 !important; font-size: 12.5px; line-height: 1.45; color: #4B5563; }
.sn-popup__more a { color: #0B4F9C !important; font-weight: 600; text-decoration: underline; }
.sn-popup .sn-popup__x {
	position: absolute !important; top: 10px; right: 10px;
	display: inline-flex !important; align-items: center !important; justify-content: center !important;
	width: 44px !important; height: 44px !important; min-height: 44px !important; padding: 0 !important; margin: 0 !important;
	background: transparent !important; color: #4B5563 !important; border: 0 !important; border-radius: 999px !important; box-shadow: none !important;
	font-size: 26px !important; line-height: 1 !important; font-weight: 400 !important; text-transform: none !important; letter-spacing: normal !important; cursor: pointer;
}
.sn-popup .sn-popup__x:hover, .sn-popup .sn-popup__x:focus { background: #F3F4F6 !important; color: #111827 !important; }
.sn-popup .sn-popup__x:focus-visible { outline: 3px solid #1D4ED8 !important; outline-offset: 0 !important; }
html.sn-popup-open { overflow: hidden; }
@media (prefers-reduced-motion: no-preference) {
	.sn-popup:not([hidden]) .sn-popup__card { animation: sn-pop .18s ease-out; }
	@keyframes sn-pop { from { opacity: 0; transform: translateY(8px) scale(.98); } to { opacity: 1; transform: none; } }
}
@media (max-width: 420px) {
	.sn-popup__row { flex-direction: column; }
	.sn-popup__row .sn-btn { width: 100%; }
}

/* Floating "Get alerts" button. */
.sn-float,
button.sn-float {
	position: fixed !important; bottom: 16px; z-index: 9989;
	display: inline-flex !important; align-items: center !important; gap: 8px;
	min-height: 48px !important; padding: 10px 18px 10px 14px !important; margin: 0 !important;
	background: #0B4F9C !important; color: #FFFFFF !important; border: 2px solid #FFFFFF !important; border-radius: 999px !important;
	box-shadow: 0 8px 24px rgba(0, 0, 0, .25) !important;
	font-family: inherit !important; font-size: 15px !important; font-weight: 700 !important; line-height: 1 !important;
	letter-spacing: normal !important; text-transform: none !important; cursor: pointer;
}
.sn-float:hover, .sn-float:focus { background: #083B75 !important; color: #FFFFFF !important; }
.sn-float:focus-visible { outline: 3px solid #1D4ED8 !important; outline-offset: 2px !important; }
.sn-popup-link { color: inherit; text-decoration: underline; font-weight: 600; cursor: pointer; }
.sn-float--right { right: 16px; left: auto; }
.sn-float--left { left: 16px; right: auto; }

/* ---------- Compact sign-up card (v1.0.7) ---------- */
.sn-signup--compact {
	max-width: 560px;
	background: #FFFFFF;
	border: 1px solid #E2E5EA;
	border-radius: 14px;
	padding: 22px 24px 18px;
	box-sizing: border-box;
}
.sn-signup--compact * { box-sizing: border-box; }
.sn-signup--compact .sn-card-title { margin: 0 0 4px !important; font-size: 24px !important; line-height: 1.25 !important; text-align: center; color: #111827; }
.sn-signup--compact .sn-card-sub { margin: 0 0 14px !important; text-align: center; color: #4B5563; font-size: 14.5px; line-height: 1.45; }
.sn-c-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.sn-c-field label { display: block; font-weight: 700; font-size: 14px; margin: 0 0 4px; }
.sn-c-field .sn-opt { font-weight: 400; color: #6B7280; }
.sn-signup--compact input[type="email"],
.sn-signup--compact input[type="text"],
.sn-signup--compact input[type="tel"] {
	width: 100%; min-height: 42px; padding: 8px 12px; font-size: 15px;
	border: 1px solid #8A919C; border-radius: 8px; background: #FFFFFF; color: #111827;
}
.sn-signup--compact input:focus-visible { outline: 3px solid #1D4ED8; outline-offset: 1px; border-color: #1D4ED8; }
.sn-c-topics { border: 0 !important; padding: 0 !important; margin: 12px 0 0 !important; display: flex; flex-wrap: wrap; gap: 6px; }
.sn-c-topics legend { float: left; width: 100%; font-weight: 700; font-size: 14px; margin: 0 0 6px; padding: 0; }
.sn-signup--compact .sn-chip input { width: 16px; height: 16px; }
.sn-c-check { display: flex !important; align-items: flex-start; gap: 8px; margin: 10px 0 0; font-size: 14px; line-height: 1.4; cursor: pointer; font-weight: 400 !important; }
.sn-c-check input { width: 18px; height: 18px; margin: 1px 0 0; flex: 0 0 auto; accent-color: #0B4F9C; }
.sn-c-sms { margin: 10px 0 0; font-size: 14px; }
.sn-c-sms summary { cursor: pointer; color: #0B4F9C; font-weight: 600; padding: 6px 0; list-style: revert; }
.sn-c-sms summary:focus-visible { outline: 3px solid #1D4ED8; outline-offset: 2px; border-radius: 4px; }
.sn-c-sms__body { margin: 6px 0 0; padding: 12px; background: #F3F5F8; border-radius: 8px; }
.sn-c-sms__body > label { display: block; font-weight: 700; margin: 0 0 4px; }
.sn-c-sms__body .sn-consent { background: transparent; padding: 0; }
.sn-c-sms__body .sn-consent__text { font-size: 13px; }
.sn-c-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin: 16px 0 0; }
.sn-c-manage { font-size: 14px; font-weight: 600; color: #0B4F9C !important; text-decoration: underline; padding: 10px 0; }
.sn-signup--compact .sn-notice { margin: 0 0 12px; }
@media (max-width: 520px) {
	.sn-signup--compact { padding: 18px 16px 14px; }
	.sn-c-row { grid-template-columns: 1fr; }
	.sn-c-actions .sn-btn { width: 100%; }
	.sn-c-actions { justify-content: center; }
}

/* ---------- Public Notices page (v1.0.8) ---------- */
.sn-notices { max-width: 820px; }
.sn-notices *, .sn-notices *::before, .sn-notices *::after { box-sizing: border-box; }
.sn-notices__title { margin: 0 0 12px; }
.sn-notices__filters { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 18px; }
.sn-notices__filters input[type="search"] { flex: 1 1 220px; min-height: 44px; padding: 8px 12px; border: 1px solid #8A919C; border-radius: 8px; font-size: 15px; background: #FFFFFF; color: #111827; }
.sn-notices__filters select { flex: 0 1 220px; min-height: 44px; padding: 8px 10px; border: 1px solid #8A919C; border-radius: 8px; font-size: 15px; background: #FFFFFF; color: #111827; }
.sn-notices__filters input:focus-visible, .sn-notices__filters select:focus-visible { outline: 3px solid #1D4ED8; outline-offset: 1px; }
.sn-notices__clear { font-weight: 600; color: #0B4F9C !important; padding: 10px 4px; }
.sn-notices__group { margin: 0 0 26px; }
.sn-notices__h { font-size: 19px; margin: 0 0 10px !important; padding-bottom: 6px; border-bottom: 2px solid #E2E5EA; }
.sn-notices__list { list-style: none !important; margin: 0 !important; padding: 0 !important; display: grid; gap: 10px; }
.sn-notice-card { margin: 0 !important; padding: 14px 16px; background: #FFFFFF; border: 1px solid #E2E5EA; border-left: 5px solid #0B4F9C; border-radius: 10px; }
.sn-notice-card--important { border-left-color: #C98A00; }
.sn-notice-card--emergency { border-left-color: #B3121B; }
.sn-notice-card.is-now { background: #F8FAFD; }
.sn-notice-card--important.is-now { background: #FFFBEF; }
.sn-notice-card--emergency.is-now { background: #FFF5F5; }
.sn-notice-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: 13px; color: #4B5563; }
.sn-notice-card__icon { display: inline-flex; color: #0B4F9C; }
.sn-notice-card--important .sn-notice-card__icon { color: #C98A00; }
.sn-notice-card--emergency .sn-notice-card__icon { color: #B3121B; }
.sn-notice-card__icon svg { width: 18px; height: 18px; }
.sn-notice-card__badge { font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; padding: 2px 7px; border-radius: 4px; background: #0B4F9C; color: #FFFFFF; }
.sn-notice-card--important .sn-notice-card__badge { background: #7A5200; }
.sn-notice-card--emergency .sn-notice-card__badge { background: #B3121B; }
.sn-notice-card__cat { font-weight: 600; color: #374151; }
.sn-notice-card__meta time { margin-left: auto; }
.sn-notice-card__title { margin: 8px 0 4px !important; font-size: 17px !important; line-height: 1.35 !important; color: #111827; }
.sn-notice-card__text { margin: 0 !important; font-size: 15px; line-height: 1.5; color: #1F2937; }
.sn-notice-card__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; margin-top: 10px; font-size: 14px; }
.sn-notice-card__until { color: #4B5563; }
.sn-notice-card__link, .sn-notice-card__edit { font-weight: 700; color: #0B4F9C !important; text-decoration: underline; padding: 6px 0; }
.sn-notice-card__edit { margin-left: auto; text-decoration: none; border: 1.5px solid #0B4F9C; border-radius: 999px; padding: 4px 12px; }
.sn-notice-card__edit:hover, .sn-notice-card__edit:focus { background: #EAF2FD; }
.sn-notices__empty { color: #4B5563; }
.sn-notices__pager { display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: 14px; }
.sn-notices__signup { margin-top: 8px; color: #374151; }
.sn-notices__signup a { font-weight: 700; color: #0B4F9C !important; }

/* v1.0.9 — banner headline links to the notice; Notices page anchors + staff Delete */
.sn-banners a.sn-banner__headline-link, .sn-banner a.sn-banner__headline-link { color: inherit !important; text-decoration: underline !important; text-decoration-thickness: 1px !important; text-underline-offset: 3px; font-weight: 700 !important; background: none !important; padding: 0 !important; }
.sn-banner a.sn-banner__headline-link:hover, .sn-banner a.sn-banner__headline-link:focus { text-decoration-thickness: 2px !important; }
.sn-notice-card { scroll-margin-top: 90px; }
.sn-notice-card:target { box-shadow: 0 0 0 3px #0B4F9C, 0 6px 18px rgba(11,79,156,.18); }
.sn-notice-card__staff { margin-left: auto; display: inline-flex; gap: 8px; }
.sn-notice-card__staff .sn-notice-card__edit { margin-left: 0; }
.sn-notice-card__edit.sn-notice-card__delete { color: #B42318 !important; border-color: #B42318; }
.sn-notice-card__edit.sn-notice-card__delete:hover, .sn-notice-card__edit.sn-notice-card__delete:focus { background: #FEF3F2; }

/* v1.0.10 — first + last name on every sign-up form */
.sn-popup__names { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0 0 8px; }
.sn-popup__names input {
	width: 100%; min-width: 0; min-height: 44px; padding: 10px 12px; box-sizing: border-box;
	border: 1px solid #6B7280 !important; border-radius: 8px !important; font-size: 16px; color: #111827; background: #FFFFFF !important; box-shadow: none !important;
}
.sn-popup__names input:focus-visible { outline: 3px solid #1D4ED8; outline-offset: 1px; border-color: #1D4ED8 !important; }
.sn-signup--compact .sn-c-row + .sn-c-field { margin-top: 10px; }
@media (max-width: 520px) { .sn-signup--compact .sn-c-row { grid-template-columns: 1fr 1fr; } }
.sn-name-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.sn-name-row .sn-field { margin-top: 0; }
.sn-name-row .sn-opt { font-weight: 400; color: #6B7280; }
@media (max-width: 380px) { .sn-name-row, .sn-popup__names, .sn-signup--compact .sn-c-row { grid-template-columns: 1fr; } }
