/**
 * SB Notify components, library version 1.2.0.
 * Depends on tokens.css and one preset.
 */
.sbn-subscribe,
.sbn-action__card {
	box-sizing: border-box;
	max-width: var(--sbn-content-width);
	margin: var(--sbn-space-6) auto;
	padding: clamp(1.15rem, 3vw, 2rem);
	border: 1px solid var(--sbn-color-border);
	border-radius: var(--sbn-radius);
	background: var(--sbn-color-bg);
	color: var(--sbn-color-text);
	box-shadow: var(--sbn-shadow-small);
	font-family: var(--sbn-font-body);
	font-size: var(--sbn-font-size);
	line-height: var(--sbn-line-height);
}

.sbn-subscribe *,
.sbn-action *,
.sbn-bell *,
.sbn-notice {
	box-sizing: border-box;
}

.sbn-subscribe__title,
.sbn-action h1 {
	margin: 0 0 var(--sbn-space-3);
	color: var(--sbn-color-text);
	font-family: var(--sbn-font-heading);
	font-size: clamp(1.35rem, 3vw, 1.9rem);
	line-height: 1.2;
}

.sbn-subscribe__intro {
	margin: 0 0 var(--sbn-space-5);
	color: var(--sbn-color-muted);
}

.sbn-form {
	display: grid;
	gap: var(--sbn-space-4);
}

.sbn-form[hidden] {
	display: none !important;
}

.sbn-field {
	display: grid;
	gap: var(--sbn-space-2);
	margin: 0;
}

.sbn-field label,
.sbn-consent label {
	font-weight: 600;
}

.sbn-field input,
.sbn-field select {
	width: 100%;
	min-height: var(--sbn-button-min-height);
	padding: 0.65rem 0.75rem;
	border: 1px solid var(--sbn-color-border-strong);
	border-radius: var(--sbn-radius);
	background: var(--sbn-color-bg);
	color: var(--sbn-color-text);
	font: inherit;
}

.sbn-field input:focus,
.sbn-field select:focus,
.sbn-button:focus-visible,
.sbn-bell__summary:focus-visible,
.sbn-bell__read:focus-visible,
.sbn-bell__list a:focus-visible {
	outline: 3px solid var(--sbn-color-focus);
	outline-offset: 2px;
}

.sbn-consent {
	margin: 0;
	padding: var(--sbn-space-3);
	border-left: 3px solid var(--sbn-color-accent);
	background: var(--sbn-color-surface);
}

.sbn-consent label {
	display: block;
	font-weight: 400;
}

.sbn-consent a {
	display: inline-block;
	margin-top: var(--sbn-space-2);
	color: var(--sbn-color-primary);
	text-underline-offset: 0.16em;
}

.sbn-actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sbn-space-3);
	margin: 0;
}

.sbn-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: var(--sbn-button-min-height);
	padding: 0.65rem 1.15rem;
	border: 1px solid var(--sbn-color-primary);
	border-radius: var(--sbn-radius);
	background: var(--sbn-color-primary);
	color: var(--sbn-color-on-primary);
	font: inherit;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--sbn-transition), color var(--sbn-transition), border-color var(--sbn-transition);
}

.sbn-button:hover {
	border-color: var(--sbn-color-primary-hover);
	background: var(--sbn-color-primary-hover);
	color: var(--sbn-color-on-primary);
}

.sbn-button[hidden] {
	display: none;
}

.sbn-button--secondary {
	border-color: var(--sbn-color-border-strong);
	background: transparent;
	color: var(--sbn-color-text);
}

.sbn-button--secondary:hover {
	border-color: var(--sbn-color-text);
	background: var(--sbn-color-surface);
	color: var(--sbn-color-text);
}

.sbn-hp {
	position: absolute !important;
	inline-size: 1px !important;
	block-size: 1px !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	white-space: nowrap !important;
}

.sbn-note {
	margin: 0;
	color: var(--sbn-color-muted);
	font-size: 0.9rem;
}

.sbn-error {
	margin: 0;
	padding: var(--sbn-space-3);
	border: 1px solid var(--sbn-color-danger);
	background: var(--sbn-color-danger-bg);
	color: var(--sbn-color-danger);
}

.sbn-notice {
	position: relative;
	max-width: var(--sbn-content-width);
	margin: var(--sbn-space-4) auto;
	padding: var(--sbn-space-3) var(--sbn-space-4);
	border: 1px solid var(--sbn-color-success);
	background: #f2f8f4;
	color: var(--sbn-color-success);
	font-family: var(--sbn-font-body);
}

.sbn-action {
	min-height: 50vh;
	padding: var(--sbn-space-5);
	background: var(--sbn-color-surface);
}

.sbn-action-form {
	margin-top: var(--sbn-space-4);
}

/* Bell */
.sbn-bell {
	position: relative;
	max-width: 100%;
	color: var(--sbn-color-text);
	font-family: var(--sbn-font-body);
}

.sbn-bell__summary {
	display: inline-flex;
	align-items: center;
	gap: var(--sbn-space-2);
	min-height: 2.75rem;
	padding: 0.45rem 0.75rem;
	border: 1px solid var(--sbn-color-border);
	border-radius: var(--sbn-radius-round);
	background: var(--sbn-color-bg);
	color: var(--sbn-color-text);
	font: inherit;
	cursor: pointer;
	list-style: none;
	box-shadow: var(--sbn-shadow-small);
}

.sbn-bell__summary::-webkit-details-marker {
	display: none;
}

.sbn-bell__badge {
	display: inline-grid;
	min-width: 1.4rem;
	min-height: 1.4rem;
	place-items: center;
	padding: 0 0.25rem;
	border-radius: var(--sbn-radius-round);
	background: var(--sbn-color-danger);
	color: #ffffff;
	font-size: 0.75rem;
	font-weight: 700;
}

.sbn-bell__badge[hidden] {
	display: none;
}

.sbn-bell__panel {
	position: absolute;
	z-index: var(--sbn-z-bell);
	right: 0;
	width: var(--sbn-bell-width);
	max-height: min(32rem, calc(100vh - 6rem));
	margin-top: var(--sbn-space-2);
	overflow: auto;
	border: 1px solid var(--sbn-color-border);
	border-radius: var(--sbn-radius);
	background: var(--sbn-color-bg);
	box-shadow: var(--sbn-shadow);
}

/*
 * The dock is anchored to the bottom edge. Its panel must therefore open
 * upwards at every viewport size, not only in the mobile breakpoint.
 */
.sbn-bell-dock .sbn-bell__panel {
	top: auto;
	bottom: calc(100% + var(--sbn-space-2));
	right: 0;
	left: auto;
}

.sbn-bell__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--sbn-space-3);
	padding: var(--sbn-space-3) var(--sbn-space-4);
	border-bottom: 1px solid var(--sbn-color-border);
}

.sbn-bell__head h2 {
	margin: 0;
	font-family: var(--sbn-font-heading);
	font-size: 1.05rem;
}

.sbn-bell__read {
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--sbn-color-primary);
	font: inherit;
	font-size: 0.82rem;
	text-decoration: underline;
	text-underline-offset: 0.15em;
	cursor: pointer;
}

.sbn-bell__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.sbn-bell__list li {
	margin: 0;
	padding: var(--sbn-space-3) var(--sbn-space-4);
	border-bottom: 1px solid var(--sbn-color-border);
}

.sbn-bell__list li:last-child {
	border-bottom: 0;
}

.sbn-bell__list li.is-unread {
	background: var(--sbn-color-surface);
	box-shadow: inset 3px 0 0 var(--sbn-color-accent);
}

.sbn-bell__list a {
	display: grid;
	gap: var(--sbn-space-1);
	color: var(--sbn-color-text);
	text-decoration: none;
}

.sbn-bell__list a strong {
	line-height: 1.3;
}

.sbn-bell__list a span,
.sbn-bell__list time {
	color: var(--sbn-color-muted);
	font-size: 0.84rem;
}

.sbn-bell__list time {
	display: block;
	margin-top: var(--sbn-space-2);
}

.sbn-bell__empty {
	color: var(--sbn-color-muted);
}

.sbn-bell-dock {
	position: fixed;
	z-index: var(--sbn-z-bell);
	right: var(--sbn-space-4);
	bottom: var(--sbn-bell-bottom, var(--sbn-space-4));
	max-width: calc(100vw - 2rem);
}

@media (max-width: 520px) {
	.sbn-actions {
		display: grid;
	}

	.sbn-button {
		width: 100%;
	}

	.sbn-bell__label {
		display: none;
	}

	.sbn-bell__panel {
		width: min(var(--sbn-bell-width), calc(100vw - 2rem));
		max-height: min(70vh, 32rem);
	}
}

.sbn-sr-only {
	position: absolute !important;
	inline-size: 1px !important;
	block-size: 1px !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	white-space: nowrap !important;
}


/* Compact, progressive channel selection. Each channel owns its consent. */
.sbn-subscribe { max-width:100%; width:100%; padding:0; margin:1rem 0; border:0; border-top:1px solid var(--sbn-color-border); border-bottom:1px solid var(--sbn-color-border); border-radius:0; box-shadow:none; }
.sbn-subscribe__toolbar { display:grid; grid-template-columns:1fr 1fr; gap:0 .75rem; }
.sbn-subscribe__toolbar > details[open] { grid-column:1 / -1; }
.sbn-subscribe summary { cursor:pointer; min-height:44px; padding:.75rem .25rem; font:inherit; font-weight:700; color:var(--sbn-color-text); }
.sbn-subscribe summary:focus-visible { outline:3px solid var(--sbn-color-focus); outline-offset:2px; }
.sbn-subscribe__content { padding:.75rem 0 1rem; }
.sbn-subscribe__title { font-size:1.3rem; }
.sbn-subscribe__intro { margin-bottom:.75rem; }
.sbn-channel { border:1px solid var(--sbn-color-border); border-radius:var(--sbn-radius); margin:.65rem 0; background:var(--sbn-color-bg); }
.sbn-channel > summary { padding:.8rem 1rem; }
.sbn-channel > summary span { display:block; margin-top:.2rem; font-weight:400; font-size:.9em; color:var(--sbn-color-muted); }
.sbn-channel > .sbn-form, .sbn-channel > .sbn-note, .sbn-channel > noscript { margin:0; padding:0 1rem 1rem; }
.sbn-share__links { display:flex; flex-wrap:wrap; align-items:center; gap:.75rem; padding:.5rem 0 1rem; }
.sbn-share__links [data-sbdia-auto-share] { margin:0; }
/* Imported controls no longer have the original .sb-dialog ancestor. */
.sbn-share__links [data-sbdia-share] { width:100%; margin:0; padding:0; border:0; background:transparent; box-shadow:none; }
.sbn-share__links .sb-dialog__module-heading { display:none; }
.sbn-share__links .sb-dialog__share-buttons { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.sbn-share__links .sb-dialog__share-button { display:inline-flex; align-items:center; justify-content:center; gap:7px; width:auto; min-width:0; max-width:100%; min-height:44px; margin:0; padding:8px 12px; border:1px solid var(--sbn-color-border); border-radius:var(--sbn-radius); background:var(--sbn-color-bg); color:var(--sbn-color-text); font:inherit; font-size:14px; font-weight:600; line-height:1.3; text-decoration:none; cursor:pointer; box-shadow:none; }
.sbn-share__links .sb-dialog__share-button svg { display:block; width:18px; height:18px; min-width:18px; max-width:18px; flex:0 0 18px; fill:none; stroke:currentColor; color:inherit; }
.sbn-share__links .sb-dialog__share-button .screen-reader-text { position:static !important; display:inline; width:auto; height:auto; margin:0; padding:0; overflow:visible; clip:auto; clip-path:none; white-space:normal; }
.sbn-share__links .sb-dialog__share-button:hover { background:var(--sbn-color-surface); border-color:var(--sbn-color-accent); }
.sbn-share__links .sb-dialog__share-button:focus-visible { outline:2px solid var(--sbn-color-focus); outline-offset:2px; }
.sbn-share__links .sb-dialog__local-feedback { margin-top:8px; font-size:14px; }
.sbn-subscribe [hidden] { display:none !important; }
.sbn-subscribe details:not([open]) > :not(summary) { display:none !important; }
.sbn-subscribe { scroll-margin-top:120px; }
body.sb-base-fg-site .sbn-subscribe, body.sb-base-fg-site .sbn-action, body.sb-base-fg-site .sbn-bell-dock { --sbn-color-primary:var(--fg-orange,#f5a623); --sbn-color-primary-hover:var(--fg-cyan-dark,#d4891a); --sbn-color-on-primary:var(--fg-ink,#111); --sbn-color-text:var(--fg-ink,#111); --sbn-color-muted:var(--fg-muted,#666); --sbn-color-border:var(--fg-line,#e8e8e8); --sbn-color-accent:var(--fg-orange,#f5a623); --sbn-color-surface:var(--fg-soft,#f4f4f4); --sbn-color-focus:var(--fg-ink,#111); --sbn-font-body:var(--sb-base-font-body,inherit); --sbn-font-heading:var(--sb-base-font-heading,inherit); --sbn-radius:2px; }
body.sb-base-fg-site .sbn-bell__panel { width:min(380px,calc(100vw - 2rem)); border-top:3px solid var(--fg-orange,#f5a623); }
body.sb-base-fg-site .sbn-bell__summary { border-radius:2px; }
body.sb-base-fg-site .sbn-consent a, body.sb-base-fg-site .sbn-bell__read, body.sb-base-fg-site .sbn-share__links a { color:var(--fg-ink,#111); text-decoration:underline; text-decoration-color:var(--fg-orange,#f5a623); text-underline-offset:.2em; }
body.sb-base-fg-site .sbn-share__links a.sb-dialog__share-button { text-decoration:none; }
@media(max-width:600px) { .sbn-subscribe__toolbar { grid-template-columns:1fr; } .sbn-channel > summary { padding:.75rem; } .sbn-channel > .sbn-form { padding:0 .75rem .75rem; } }

body.sb-base-fg-site .sbn-compact-transparency { margin-block:1rem; padding:1rem; font-size:.875rem; line-height:1.6; box-shadow:none; }
body.sb-base-fg-site .sbn-compact-transparency h2 { font-size:1.1rem; margin-block:0 .5rem; }
