.wet-table-of-contents {
	--wet-toc-depth-indent: 18px;
	--wet-toc-indicator-color: #3157d5;
	--wet-toc-indicator-size: 10px;
	--wet-toc-item-gap: 4px;
	--wet-toc-marker-width: 28px;
	--wet-toc-rail-color: #dfe3eb;
	--wet-toc-sticky-offset: 20px;
	width: 100%;
	overflow: hidden;
	border: 1px solid #dfe3eb;
	border-radius: 14px;
	background: #fff;
	color: #172033;
}

.wet-table-of-contents__header {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	padding: 16px 18px;
	border: 0;
	border-bottom: 1px solid #e5e7ed;
	background: transparent;
	color: inherit;
	font-weight: 700;
	text-align: start;
}

button.wet-table-of-contents__header { cursor: pointer; }
.wet-table-of-contents__title-icon { display: inline-flex; }
.wet-table-of-contents__title-icon svg { fill: currentColor; }
.wet-table-of-contents__title { flex: 1; min-width: 0; }

.wet-table-of-contents__list {
	display: grid;
	gap: var(--wet-toc-item-gap);
	margin: 0;
	padding: 14px;
	list-style: none;
}

.wet-table-of-contents__item {
	min-width: 0;
}

.wet-table-of-contents__item[data-depth="1"] { margin-inline-start: var(--wet-toc-depth-indent); }
.wet-table-of-contents__item[data-depth="2"] { margin-inline-start: calc(var(--wet-toc-depth-indent) * 2); }
.wet-table-of-contents__item[data-depth="3"] { margin-inline-start: calc(var(--wet-toc-depth-indent) * 3); }
.wet-table-of-contents__item[data-depth="4"] { margin-inline-start: calc(var(--wet-toc-depth-indent) * 4); }

.wet-table-of-contents__link,
.wet-table-of-contents__link:visited,
.wet-table-of-contents__link:hover,
.wet-table-of-contents__link:focus,
.wet-table-of-contents__link:active {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	min-width: 0;
	padding: 9px 10px;
	border: 1px solid transparent;
	border-radius: 8px;
	color: #596176;
	text-decoration: none !important;
	transition: color .2s ease, background-color .2s ease, border-color .2s ease;
}

.wet-table-of-contents__link:hover {
	color: #3157d5;
	background: #edf1ff;
}

.wet-table-of-contents__link.is-active {
	color: #fff;
	background: #3157d5;
	font-weight: 700;
}

.wet-table-of-contents__link:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.wet-table-of-contents__marker {
	display: inline-flex;
	flex: 0 0 var(--wet-toc-marker-width);
	justify-content: center;
	color: currentColor;
}

.wet-table-of-contents__label {
	min-width: 0;
	overflow-wrap: anywhere;
}

.wet-table-of-contents__empty {
	margin: 0;
	padding: 18px;
	color: #687086;
	font-size: 13px;
}

.wet-table-of-contents__empty[hidden],
.wet-table-of-contents__list[hidden],
.wet-table-of-contents__marker[hidden],
.wet-table-of-contents__marker-template { display: none; }
.wet-table-of-contents.is-hidden { display: none; }

.wet-table-of-contents--clean .wet-table-of-contents__list { padding-block: 12px; }

.wet-table-of-contents--collapsible .wet-table-of-contents__list {
	grid-template-columns: 1fr;
	max-height: 1200px;
	opacity: 1;
	transition: max-height .3s ease, opacity .2s ease, padding .3s ease;
}

.wet-table-of-contents__toggle-icon::before {
	display: block;
	content: "⌃";
	transition: transform .2s ease;
}

.wet-table-of-contents--collapsible.is-collapsed .wet-table-of-contents__list {
	max-height: 0;
	overflow: hidden;
	padding-block: 0;
	opacity: 0;
}

.wet-table-of-contents--collapsible.is-collapsed .wet-table-of-contents__toggle-icon::before {
	transform: rotate(180deg);
}

.wet-table-of-contents--rail {
	overflow: visible;
}

.wet-table-of-contents--rail.is-sticky {
	position: sticky;
	top: var(--wet-toc-sticky-offset);
}

.wet-table-of-contents--rail .wet-table-of-contents__list {
	position: relative;
	padding-inline-start: 26px;
}

.wet-table-of-contents--rail .wet-table-of-contents__list::before {
	position: absolute;
	inset-block: 20px;
	inset-inline-start: 25px;
	width: 2px;
	background: var(--wet-toc-rail-color);
	content: "";
}

.wet-table-of-contents--rail-end .wet-table-of-contents__list {
	padding-inline: 14px 26px;
}

.wet-table-of-contents--rail-end .wet-table-of-contents__list::before {
	inset-inline-start: auto;
	inset-inline-end: 25px;
}

.wet-table-of-contents--rail .wet-table-of-contents__link {
	position: relative;
	background: transparent;
}

.wet-table-of-contents--rail .wet-table-of-contents__link::before {
	position: absolute;
	top: 50%;
	inset-inline-start: -15px;
	width: var(--wet-toc-indicator-size);
	height: var(--wet-toc-indicator-size);
	transform: translate(-50%, -50%);
	border: 2px solid #fff;
	border-radius: 50%;
	background: var(--wet-toc-rail-color);
	content: "";
}

.wet-table-of-contents--rail-end .wet-table-of-contents__link::before {
	inset-inline-start: auto;
	inset-inline-end: -15px;
	transform: translate(50%, -50%);
}

[dir="rtl"] .wet-table-of-contents--rail .wet-table-of-contents__link::before {
	transform: translate(50%, -50%);
}

[dir="rtl"] .wet-table-of-contents--rail-end .wet-table-of-contents__link::before {
	transform: translate(-50%, -50%);
}

.wet-table-of-contents--rail .wet-table-of-contents__link:hover::before,
.wet-table-of-contents--rail .wet-table-of-contents__link.is-active::before {
	background: var(--wet-toc-indicator-color);
}

.wet-table-of-contents--rail .wet-table-of-contents__link.is-active {
	color: var(--wet-toc-indicator-color);
	background: transparent;
}

@media (max-width: 1024px) {
	.wet-table-of-contents--disable-tablet.is-sticky { position: static; }
}

@media (max-width: 767px) {
	.wet-table-of-contents--disable-mobile.is-sticky { position: static; }
}

@media (prefers-reduced-motion: reduce) {
	.wet-table-of-contents *,
	.wet-table-of-contents *::before,
	.wet-table-of-contents *::after {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
	}
}
