.slambo-toc {
	--slambo-toc-accent: #78ad4b;
	--slambo-toc-accent-bright: #91c95d;
	--slambo-toc-accent-soft: #eef7e7;
	--slambo-toc-panel: #f8fafc;
	--slambo-toc-row: #ffffff;
	--slambo-toc-row-active: #f3f9ee;
	--slambo-toc-border: #cbd5e1;
	--slambo-toc-rule: #dbe2ea;
	--slambo-toc-text: #172033;
	--slambo-toc-muted: #64748b;
	position: relative;
	display: flex;
	flex-direction: column;
	width: 100%;
	min-height: 0;
	margin: 0 0 30px;
	padding: 0;
	overflow: visible;
	color: var(--slambo-toc-text);
	border: 1px solid var(--slambo-toc-border);
	border-radius: 13px;
	background: var(--slambo-toc-panel);
	box-shadow: 0 12px 34px rgb(15 23 42 / 9%);
	box-sizing: border-box;
}

.slambo-toc .slambo-toc__header {
	display: flex;
	align-items: center;
	width: 100%;
	min-height: 118px;
	padding: 25px 32px 20px;
	overflow: visible;
	box-sizing: border-box;
}

.slambo-toc__heading-wrap {
	position: relative;
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	justify-content: center;
	min-width: 0;
}

.slambo-toc__heading-wrap::after {
	position: absolute;
	bottom: -19px;
	left: 0;
	width: 62px;
	height: 3px;
	content: '';
	border-radius: 999px;
	background: var(--slambo-toc-accent-bright);
}

.slambo-toc .slambo-toc__icon {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	margin-right: 18px;
	color: var(--slambo-toc-accent-bright);
	font-size: 27px;
	line-height: 1;
	border: 1px solid color-mix(in srgb, var(--slambo-toc-accent) 55%, transparent);
	border-radius: 999px;
	background: color-mix(in srgb, var(--slambo-toc-accent) 9%, transparent);
	box-shadow: inset 0 0 0 7px color-mix(in srgb, var(--slambo-toc-accent) 4%, transparent);
}

.slambo-toc .slambo-toc__icon .rbi {
	margin: 0;
	color: inherit;
	font-size: inherit;
	line-height: 1;
	border: 0;
	background: none;
}

.slambo-toc .slambo-toc__heading-wrap .h3 {
	color: var(--slambo-toc-text);
	font-size: 25px;
	font-weight: 800;
	line-height: 1.2;
}

.slambo-toc__subtitle {
	display: none;
	margin-top: 3px;
	color: var(--slambo-toc-muted);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.3;
}

.slambo-toc__toggle {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	margin: 0;
	padding: 9px 12px;
	color: var(--slambo-toc-text);
	font: inherit;
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
	border: 0;
	border-radius: 8px;
	background: transparent;
	box-shadow: none;
	cursor: pointer;
}

.slambo-toc__toggle:hover,
.slambo-toc__toggle:focus-visible {
	color: var(--slambo-toc-accent);
	background: color-mix(in srgb, var(--slambo-toc-accent) 8%, transparent);
}

.slambo-toc__toggle:focus-visible {
	outline: 3px solid color-mix(in srgb, var(--slambo-toc-accent) 40%, transparent);
	outline-offset: 3px;
}

.slambo-toc__toggle .rbi {
	margin-left: 8px;
	font-size: 13px;
	transition: transform 160ms ease;
}

.slambo-toc.is-collapsed .slambo-toc__toggle .rbi {
	transform: rotate(180deg);
}

.slambo-toc .slambo-toc__content,
.table-fw.slambo-toc .slambo-toc__content {
	position: relative;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-template-rows: repeat(var(--slambo-toc-rows), minmax(62px, auto));
	grid-auto-flow: column;
	column-gap: 34px;
	row-gap: 0;
	margin: 0 32px;
	padding: 0 0 22px;
	border: 0;
	background: none;
	column-count: initial;
	counter-reset: none;
}

.table-fw.slambo-toc .slambo-toc__content::before,
.table-fw.slambo-toc .slambo-toc__content::after {
	display: none;
	border: 0;
	background: none;
}

.slambo-toc .slambo-toc__link,
.slambo-toc .slambo-toc__link:not(:first-child) {
	position: relative;
	display: flex;
	align-items: center;
	min-width: 0;
	min-height: 62px;
	margin: 0;
	padding: 9px 10px 9px 3px;
	overflow: visible;
	color: var(--slambo-toc-text);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.35;
	text-decoration: none;
	border: 0;
	border-top: 1px solid var(--slambo-toc-rule);
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	box-sizing: border-box;
	transform: none;
	transition: color 150ms ease, border-color 150ms ease, background-color 150ms ease;
}

.slambo-toc .slambo-toc__link::before {
	display: none;
	content: none;
}

.slambo-toc__number {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	margin-right: 13px;
	color: var(--slambo-toc-muted);
	font-size: 12px;
	font-weight: 800;
	line-height: 1;
	border: 1px solid var(--slambo-toc-border);
	border-radius: 999px;
	background: color-mix(in srgb, var(--slambo-toc-row) 92%, transparent);
	box-sizing: border-box;
}

.slambo-toc__label {
	flex: 1 1 auto;
	min-width: 0;
}

.slambo-toc__state {
	position: relative;
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 12px;
	height: 12px;
	margin-left: 12px;
	border: 0;
	border-radius: 999px;
	background: var(--slambo-toc-accent);
	box-shadow: 0 0 0 2px color-mix(in srgb, var(--slambo-toc-accent) 12%, transparent);
}

.slambo-toc .slambo-toc__link:hover,
.slambo-toc .slambo-toc__link:focus-visible {
	color: var(--slambo-toc-accent);
	background: color-mix(in srgb, var(--slambo-toc-accent) 6%, transparent);
}

.slambo-toc .slambo-toc__link:focus-visible {
	z-index: 2;
	outline: 3px solid color-mix(in srgb, var(--slambo-toc-accent) 38%, transparent);
	outline-offset: -2px;
	border-radius: 8px;
}

.slambo-toc .slambo-toc__link[aria-current='location'] {
	z-index: 1;
	margin: -1px -10px;
	padding-right: 19px;
	padding-left: 12px;
	color: var(--slambo-toc-text);
	border: 1px solid var(--slambo-toc-accent);
	border-radius: 8px;
	background: var(--slambo-toc-row-active);
	box-shadow: 0 0 0 1px color-mix(in srgb, var(--slambo-toc-accent) 16%, transparent);
}

.slambo-toc .slambo-toc__link[aria-current='location'] .slambo-toc__number {
	color: var(--slambo-toc-accent);
	border-color: var(--slambo-toc-accent);
	background: color-mix(in srgb, var(--slambo-toc-accent) 12%, var(--slambo-toc-row));
}

.slambo-toc .slambo-toc__link[aria-current='location'] .slambo-toc__state {
	border: 3px solid var(--slambo-toc-row-active);
	box-shadow: 0 0 0 2px var(--slambo-toc-accent);
}

.slambo-toc__progress {
	display: flex;
	align-items: center;
	min-height: 86px;
	padding: 20px 32px;
	color: var(--slambo-toc-text);
	border-top: 1px solid var(--slambo-toc-rule);
	box-sizing: border-box;
}

.slambo-toc__progress-icon {
	position: relative;
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	margin-right: 14px;
	border: 2px solid currentColor;
	border-radius: 999px;
}

.slambo-toc__progress-icon::before,
.slambo-toc__progress-icon::after {
	position: absolute;
	content: '';
	border-radius: 999px;
}

.slambo-toc__progress-icon::before {
	width: 12px;
	height: 12px;
	border: 2px solid currentColor;
}

.slambo-toc__progress-icon::after {
	width: 4px;
	height: 4px;
	background: var(--slambo-toc-accent-bright);
}

.slambo-toc__progress-label {
	flex: 0 0 auto;
	margin-right: 28px;
	font-size: 13px;
	font-weight: 700;
	white-space: nowrap;
}

.slambo-toc__progress-label strong {
	color: var(--slambo-toc-accent-bright);
}

.slambo-toc__progress-track {
	display: flex;
	flex: 1 1 auto;
	align-items: center;
	gap: 8px;
	min-width: 0;
}

.slambo-toc__progress-step {
	flex: 1 1 0;
	height: 4px;
	border-radius: 999px;
	background: var(--slambo-toc-border);
}

.slambo-toc__progress-step.is-complete,
.slambo-toc__progress-step.is-current {
	background: var(--slambo-toc-accent-bright);
}

.slambo-toc__heading {
	scroll-margin-top: 7rem;
}

.slambo-toc__dock {
	display: none;
}

.slambo-toc [hidden] {
	display: none !important;
}

[data-theme='dark'] .slambo-toc {
	--slambo-toc-panel: #0d1114;
	--slambo-toc-row: #11161a;
	--slambo-toc-row-active: #182018;
	--slambo-toc-border: #2d353c;
	--slambo-toc-rule: #263038;
	--slambo-toc-text: #f5f7f8;
	--slambo-toc-muted: #aeb6bd;
	box-shadow: 0 14px 38px rgb(0 0 0 / 34%);
}

@media (max-width: 1024px) {
	.slambo-toc .slambo-toc__content,
	.table-fw.slambo-toc .slambo-toc__content {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: none;
		grid-auto-flow: row;
	}
}

@media (max-width: 767px) {
	.slambo-toc {
		margin-bottom: 24px;
		overflow: visible;
		border-radius: 12px;
	}

	.slambo-toc .slambo-toc__header {
		min-height: 85px;
		padding: 18px 19px;
		border-bottom: 1px solid var(--slambo-toc-rule);
	}

	.slambo-toc .slambo-toc__icon {
		width: 46px;
		height: 46px;
		margin-right: 13px;
		font-size: 23px;
		border-radius: 9px;
		box-shadow: none;
	}

	.slambo-toc .slambo-toc__heading-wrap .h3 {
		font-size: 20px;
	}

	.slambo-toc__heading-wrap::after {
		display: none;
	}

	.slambo-toc__subtitle {
		display: block;
	}

	.slambo-toc__toggle {
		width: 42px;
		min-width: 42px;
		height: 42px;
		min-height: 42px;
		padding: 0;
		color: var(--slambo-toc-accent-bright);
		border: 1px solid var(--slambo-toc-border);
		border-radius: 999px;
	}

	.slambo-toc__toggle-label {
		position: absolute;
		width: 1px;
		height: 1px;
		padding: 0;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
		border: 0;
	}

	.slambo-toc__toggle .rbi {
		margin: 0;
		font-size: 16px;
	}

	.slambo-toc .slambo-toc__content,
	.table-fw.slambo-toc .slambo-toc__content {
		margin: 0 19px;
		padding: 0 0 11px;
	}

	.slambo-toc .slambo-toc__link,
	.slambo-toc .slambo-toc__link:not(:first-child) {
		min-height: 58px;
		padding: 8px 5px 8px 0;
		font-size: 13px;
	}

	.slambo-toc__number {
		width: 34px;
		height: 34px;
		margin-right: 12px;
		color: var(--slambo-toc-accent-bright);
		border-color: color-mix(in srgb, var(--slambo-toc-accent) 36%, var(--slambo-toc-border));
		background: color-mix(in srgb, var(--slambo-toc-accent) 5%, var(--slambo-toc-row));
	}

	.slambo-toc__state {
		width: 9px;
		height: 9px;
		margin-right: 5px;
		margin-left: 10px;
		border: solid var(--slambo-toc-muted);
		border-width: 1px 1px 0 0;
		border-radius: 0;
		background: transparent;
		box-shadow: none;
		transform: rotate(45deg);
	}

	.slambo-toc .slambo-toc__link[aria-current='location'] {
		margin: 0;
		padding-right: 5px;
		padding-left: 0;
		color: var(--slambo-toc-accent-bright);
		border: 0;
		border-top: 1px solid var(--slambo-toc-rule);
		border-radius: 0;
		background: color-mix(in srgb, var(--slambo-toc-accent) 3%, transparent);
		box-shadow: none;
	}

	.slambo-toc .slambo-toc__link[aria-current='location']::after {
		position: absolute;
		top: 0;
		bottom: 0;
		left: -20px;
		width: 3px;
		content: '';
		border-radius: 0 3px 3px 0;
		background: var(--slambo-toc-accent-bright);
	}

	.slambo-toc .slambo-toc__link[aria-current='location'] .slambo-toc__number {
		color: #17210f;
		border-color: var(--slambo-toc-accent-bright);
		background: var(--slambo-toc-accent-bright);
	}

	.slambo-toc .slambo-toc__link[aria-current='location'] .slambo-toc__state {
		border: solid var(--slambo-toc-muted);
		border-width: 1px 1px 0 0;
		box-shadow: none;
	}

	.slambo-toc__progress {
		display: none;
	}

	.slambo-toc__dock {
		position: fixed;
		right: 18px;
		bottom: max(18px, env(safe-area-inset-bottom));
		z-index: 110;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 52px;
		padding: 8px 17px 8px 9px;
		color: var(--slambo-toc-text);
		font: inherit;
		font-size: 13px;
		font-weight: 700;
		line-height: 1;
		border: 1px solid color-mix(in srgb, var(--slambo-toc-accent) 34%, var(--slambo-toc-border));
		border-radius: 999px;
		background: color-mix(in srgb, var(--slambo-toc-panel) 94%, transparent);
		box-shadow: 0 7px 24px rgb(0 0 0 / 28%);
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transform: translateY(10px);
		transition: opacity 160ms ease, transform 160ms ease, visibility 160ms ease;
		backdrop-filter: blur(12px);
	}

	.slambo-toc__dock.is-visible {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transform: translateY(0);
	}

	#back-top.slambo-toc-dock-active {
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
	}

	.slambo-toc__dock .rbi {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 34px;
		height: 34px;
		margin-right: 8px;
		color: var(--slambo-toc-accent-bright);
		border-radius: 999px;
		background: color-mix(in srgb, var(--slambo-toc-accent) 14%, transparent);
	}
}

@media (prefers-reduced-motion: reduce) {
	.slambo-toc__toggle .rbi,
	.slambo-toc__dock,
	.slambo-toc .slambo-toc__link {
		transition: none;
	}
}

@media print {
	.slambo-toc {
		color: #000;
		border-color: #999;
		background: #fff;
		box-shadow: none;
	}

	.slambo-toc__toggle,
	.slambo-toc__dock {
		display: none;
	}
}
