/**
 * DocNest front-end styles.
 */

.docnest-page {
	--dn-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, "Helvetica Neue", Arial, sans-serif;
	--dn-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
	--dn-text: #1f2933;
	--dn-heading: #10161d;
	--dn-muted: #6b7684;
	--dn-faint: #8d97a3;
	--dn-border: #e6e9ed;
	--dn-border-soft: #eef1f4;
	--dn-bg: #ffffff;
	--dn-bg-soft: #f7f8fa;
	--dn-radius: 7px;
	--dn-row-h: 34px;

	font-family: var(--dn-font);
	color: var(--dn-text);
	background: var(--dn-bg);
	-webkit-font-smoothing: antialiased;
}

.docnest-page *,
.docnest-page *::before,
.docnest-page *::after {
	box-sizing: border-box;
}

/* ---------------------------------------------------------------- Docs bar */

.docnest-bar {
	border-bottom: 1px solid var(--dn-border);
	background: var(--dn-bg);
	position: sticky;
	top: 0;
	z-index: 40;
}

.docnest-bar__inner {
	display: flex;
	align-items: center;
	gap: 20px;
	max-width: 1680px;
	margin: 0 auto;
	padding: 12px 24px;
}

.docnest-bar__brand {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	text-decoration: none;
	color: var(--dn-heading);
	font-weight: 600;
	font-size: 15px;
	flex: 0 0 auto;
}

.docnest-bar__logo {
	width: 26px;
	height: 26px;
	border-radius: 6px;
	object-fit: contain;
}

.docnest-bar__search {
	flex: 1 1 auto;
	max-width: 520px;
	margin: 0 auto;
}

.docnest-bar__actions {
	margin-left: auto;
	flex: 0 0 auto;
}

.docnest-bar__toggle {
	display: none;
	align-items: center;
	gap: 6px;
	padding: 7px 11px;
	font: inherit;
	font-size: 13px;
	color: var(--dn-text);
	background: var(--dn-bg-soft);
	border: 1px solid var(--dn-border);
	border-radius: var(--dn-radius);
	cursor: pointer;
}

.docnest-bar__toggle svg {
	width: 16px;
	height: 16px;
}

/* ----------------------------------------------------------------- Search */

.docnest-search {
	position: relative;
	display: flex;
	align-items: center;
}

.docnest-search .docnest-icon {
	position: absolute;
	left: 11px;
	width: 16px;
	height: 16px;
	fill: var(--dn-faint);
	pointer-events: none;
}

.docnest-search__input {
	width: 100%;
	height: 38px;
	padding: 0 38px 0 34px;
	font: inherit;
	font-size: 14px;
	color: var(--dn-text);
	background: var(--dn-bg-soft);
	border: 1px solid var(--dn-border);
	border-radius: var(--dn-radius);
	outline: none;
}

.docnest-search__input:focus {
	background: var(--dn-bg);
	border-color: var(--dn-accent, #1c7d5a);
	box-shadow: 0 0 0 3px rgba(var(--dn-accent-rgb, 28, 125, 90), 0.12);
}

.docnest-search__hint {
	position: absolute;
	right: 10px;
	padding: 1px 6px;
	font-family: var(--dn-mono);
	font-size: 11px;
	color: var(--dn-faint);
	background: var(--dn-bg);
	border: 1px solid var(--dn-border);
	border-radius: 4px;
	pointer-events: none;
}

.docnest-search__results {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	right: 0;
	max-height: 420px;
	overflow-y: auto;
	padding: 6px;
	background: var(--dn-bg);
	border: 1px solid var(--dn-border);
	border-radius: var(--dn-radius);
	box-shadow: 0 12px 28px rgba(16, 22, 29, 0.12);
	z-index: 60;
}

.docnest-search__result {
	display: block;
	padding: 8px 10px;
	border-radius: 5px;
	text-decoration: none;
	color: var(--dn-text);
}

.docnest-search__result:hover,
.docnest-search__result:focus,
.docnest-search__result.is-active {
	background: var(--dn-bg-soft);
}

.docnest-search__result-title {
	display: block;
	font-size: 14px;
	font-weight: 550;
	color: var(--dn-heading);
}

.docnest-search__result-trail {
	display: block;
	margin-top: 2px;
	font-size: 12px;
	color: var(--dn-faint);
}

.docnest-search__note {
	padding: 10px;
	font-size: 13px;
	color: var(--dn-muted);
}

/* ------------------------------------------------------------------ Shell */

.docnest-shell {
	display: grid;
	grid-template-columns: var(--dn-sidebar-w, 300px) minmax(0, 1fr) var(--dn-toc-w, 250px);
	align-items: start;
	max-width: 1680px;
	margin: 0 auto;
}

.docnest-shell--no-toc {
	grid-template-columns: var(--dn-sidebar-w, 300px) minmax(0, 1fr);
}

/*
 * The column itself is a plain, full-height track. It must NOT be sticky and
 * must NOT be height-capped: the sticky element is the *inner* pane, and a
 * sticky child can only travel as far as its containing block is tall. Capping
 * this box at 100vh was what made the sidebar scroll away after one screen.
 * The stickiness itself lives in docnest-ui.css, in one place.
 */
.docnest-shell__nav {
	border-right: 1px solid var(--dn-border);
	min-width: 0;
}

.docnest-shell__nav-inner {
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 26px 18px 40px 24px;
	scrollbar-width: auto;
	scrollbar-color: #d8d8d8 #ffffff;
}

.docnest-shell__toc {
	min-width: 0;
}

.docnest-shell__toc-inner {
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 26px 18px 40px 24px;
	scrollbar-width: thin;
	scrollbar-color: #c0c0c0 #f5f5f5;
}

.docnest-shell__toc-inner {
	padding: 26px 24px 40px 18px;
}

.docnest-shell__nav-inner::-webkit-scrollbar {
	width: 8px;
}

.docnest-shell__nav-inner::-webkit-scrollbar-track {
	background: #ffffff;
	border-radius: 0;
}

.docnest-shell__nav-inner::-webkit-scrollbar-thumb {
	background: #d8d8d8;
	border-radius: 4px;
	transition: background-color 0.2s ease;
}

.docnest-shell__nav-inner::-webkit-scrollbar-thumb:hover {
	background: #b8b8b8;
}

.docnest-shell__toc-inner::-webkit-scrollbar {
	width: 6px;
}

.docnest-shell__toc-inner::-webkit-scrollbar-track {
	background: #f5f5f5;
	border-radius: 3px;
}

.docnest-shell__toc-inner::-webkit-scrollbar-thumb {
	background: #c0c0c0;
	border-radius: 3px;
	transition: background-color 0.2s ease;
}

.docnest-shell__toc-inner::-webkit-scrollbar-thumb:hover {
	background: #a0a0a0;
}

.docnest-shell__nav-close {
	display: none;
}

.docnest-shell__main {
	min-width: 0;
	padding: 34px 44px 72px;
}

.docnest-doc {
	max-width: var(--dn-content-w, 780px);
}

/* -------------------------------------------------------------- Nested tree */

.docnest-nav__head {
	margin-bottom: 14px;
}

.docnest-nav__title {
	margin: 0 0 10px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--dn-faint);
}

.docnest-nav__filter {
	position: relative;
	display: flex;
	align-items: center;
}

.docnest-nav__filter .docnest-icon {
	position: absolute;
	left: 9px;
	width: 15px;
	height: 15px;
	fill: var(--dn-faint);
	pointer-events: none;
}

.docnest-nav__search {
	width: 100%;
	height: 34px;
	padding: 0 28px 0 30px;
	font: inherit;
	font-size: 13px;
	color: var(--dn-text);
	background: var(--dn-bg-soft);
	border: 1px solid var(--dn-border);
	border-radius: var(--dn-radius);
	outline: none;
}

.docnest-nav__search:focus {
	background: var(--dn-bg);
	border-color: var(--dn-accent, #1c7d5a);
	box-shadow: 0 0 0 3px rgba(var(--dn-accent-rgb, 28, 125, 90), 0.12);
}

.docnest-nav__clear {
	position: absolute;
	right: 6px;
	width: 22px;
	height: 22px;
	font-size: 16px;
	line-height: 1;
	color: var(--dn-faint);
	background: none;
	border: 0;
	border-radius: 4px;
	cursor: pointer;
}

.docnest-nav__empty {
	margin: 8px 0;
	font-size: 13px;
	color: var(--dn-muted);
}

.docnest-tree,
.docnest-tree ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.docnest-tree--level-1 > .docnest-tree__item + .docnest-tree__item {
	margin-top: 1px;
}

/* Nested levels get an indent plus a hairline guide. */
.docnest-tree__item > ul {
	margin-left: 11px;
	padding-left: 10px;
	border-left: 1px solid var(--dn-border-soft);
}

.docnest-tree__item.is-closed > ul {
	display: none;
}

.docnest-tree__row {
	display: flex;
	align-items: center;
	gap: 2px;
	min-height: var(--dn-row-h);
}

.docnest-tree__toggle {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 20px;
	width: 20px;
	height: 20px;
	padding: 0;
	background: none;
	border: 0;
	border-radius: 4px;
	cursor: pointer;
	color: var(--dn-faint);
}

.docnest-tree__toggle:hover {
	background: var(--dn-bg-soft);
	color: var(--dn-text);
}

.docnest-chevron {
	width: 15px;
	height: 15px;
	fill: currentColor;
	transition: transform 0.16s ease;
}

.docnest-tree__item.is-open > .docnest-tree__row .docnest-chevron {
	transform: rotate(90deg);
}

.docnest-tree__leaf {
	flex: 0 0 20px;
	width: 20px;
	height: 20px;
	position: relative;
}

/* Leaf rows get a small bullet, except at the top level. */
.docnest-tree__leaf::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 3px;
	height: 3px;
	margin: -2px 0 0 -2px;
	border-radius: 50%;
	background: #c6ccd4;
}

.docnest-tree--level-1 > .docnest-tree__item > .docnest-tree__row > .docnest-tree__leaf::after {
	display: none;
}

.docnest-tree__link {
	flex: 1 1 auto;
	min-width: 0;
	padding: 6px 9px;
	font-size: 14px;
	line-height: 1.35;
	color: var(--dn-text);
	text-decoration: none;
	border-radius: 6px;
	border: 1px solid transparent;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.docnest-tree__link:hover {
	background: #f0f0f0;
	color: var(--dn-heading);
}

.docnest-tree--level-1 > .docnest-tree__item > .docnest-tree__row > .docnest-tree__link {
	font-weight: 550;
	color: var(--dn-heading);
}

.docnest-tree--level-1 > .docnest-tree__item > .docnest-tree__row > .docnest-tree__link:hover {
	background: #f0f0f0;
	color: var(--dn-heading);
}

.docnest-tree--level-1 > .docnest-tree__item.is-current > .docnest-tree__row > .docnest-tree__link {
	color: #1d5a96;
	font-weight: 550;
	background: #e8f1fa;
	border-color: #a8c9e8;
	border-radius: 8px;
}

.docnest-tree__item.is-current > .docnest-tree__row > .docnest-tree__link {
	color: #1d5a96;
	font-weight: 550;
	background: #e8f1fa;
	border-color: #a8c9e8;
	border-radius: 8px;
}

.docnest-tree__item.is-ancestor > .docnest-tree__row > .docnest-tree__link {
	color: var(--dn-heading);
}

.docnest-tree__item.is-unpublished > .docnest-tree__row > .docnest-tree__link::after {
	content: " •";
	color: #d97706;
}

.docnest-tree__item[hidden] {
	display: none;
}

.docnest-tree__text mark {
	background: rgba(var(--dn-accent-rgb, 28, 125, 90), 0.18);
	color: inherit;
	padding: 0 1px;
	border-radius: 2px;
}

/* --------------------------------------------------------------- Doc body */

.docnest-breadcrumbs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	margin-bottom: 14px;
	font-size: 13px;
	color: var(--dn-muted);
}

.docnest-breadcrumbs a {
	color: var(--dn-muted);
	text-decoration: none;
}

.docnest-breadcrumbs a:hover {
	color: var(--dn-accent, #1c7d5a);
}

.docnest-breadcrumbs__sep {
	color: #cbd2d9;
}

.docnest-doc__header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 20px;
	padding-bottom: 18px;
	margin-bottom: 26px;
	border-bottom: 1px solid var(--dn-border);
}

.docnest-doc__title {
	margin: 0;
	font-size: 34px;
	line-height: 1.2;
	font-weight: 650;
	letter-spacing: -0.02em;
	color: var(--dn-heading);
}

.docnest-doc__edit {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	flex: 0 0 auto;
	padding: 7px 13px;
	font-size: 13px;
	color: var(--dn-text);
	text-decoration: none;
	background: var(--dn-bg);
	border: 1px solid var(--dn-border);
	border-radius: var(--dn-radius);
}

.docnest-doc__edit:hover {
	border-color: var(--dn-accent, #1c7d5a);
	color: var(--dn-accent, #1c7d5a);
}

.docnest-doc__edit svg {
	width: 15px;
	height: 15px;
}

.docnest-doc__body {
	font-size: 16.5px;
	line-height: 1.72;
}

.docnest-doc__body > *:first-child {
	margin-top: 0;
}

.docnest-doc__body h2,
.docnest-doc__body h3,
.docnest-doc__body h4,
.docnest-doc__body h5,
.docnest-doc__body h6 {
	color: var(--dn-heading);
	line-height: 1.3;
	scroll-margin-top: calc(var(--dn-pane-top, 62px) + var(--dn-offset, 24px) + 22px);
}

.docnest-doc__body h2 {
	margin: 2.2em 0 0.7em;
	font-size: 25px;
	font-weight: 640;
	letter-spacing: -0.01em;
}

.docnest-doc__body h3 {
	margin: 1.9em 0 0.6em;
	font-size: 20px;
	font-weight: 620;
}

.docnest-doc__body h4 {
	margin: 1.7em 0 0.5em;
	font-size: 17px;
	font-weight: 620;
}

.docnest-doc__body p,
.docnest-doc__body ul,
.docnest-doc__body ol,
.docnest-doc__body blockquote,
.docnest-doc__body table,
.docnest-doc__body pre {
	margin: 0 0 1.15em;
}

.docnest-doc__body a {
	color: var(--dn-accent, #1c7d5a);
	text-decoration: none;
	border-bottom: 1px solid rgba(var(--dn-accent-rgb, 28, 125, 90), 0.35);
}

.docnest-doc__body a:hover {
	border-bottom-color: var(--dn-accent, #1c7d5a);
}

.docnest-doc__body img {
	max-width: 100%;
	height: auto;
	border: 1px solid var(--dn-border);
	border-radius: 8px;
}

.docnest-doc__body code {
	padding: 0.15em 0.4em;
	font-family: var(--dn-mono);
	font-size: 0.88em;
	background: var(--dn-bg-soft);
	border: 1px solid var(--dn-border-soft);
	border-radius: 4px;
}

.docnest-doc__body pre {
	padding: 16px 18px;
	overflow-x: auto;
	background: #10161d;
	border-radius: 8px;
	color: #e7ecf2;
	font-size: 14px;
	line-height: 1.6;
}

.docnest-doc__body pre code {
	padding: 0;
	background: none;
	border: 0;
	color: inherit;
	font-size: inherit;
}

.docnest-doc__body blockquote {
	padding: 2px 0 2px 18px;
	border-left: 3px solid rgba(var(--dn-accent-rgb, 28, 125, 90), 0.45);
	color: var(--dn-muted);
}

.docnest-doc__body table {
	width: 100%;
	border-collapse: collapse;
	font-size: 15px;
}

.docnest-doc__body th,
.docnest-doc__body td {
	padding: 9px 12px;
	border: 1px solid var(--dn-border);
	text-align: left;
}

.docnest-doc__body th {
	background: var(--dn-bg-soft);
	font-weight: 600;
}

/* ----------------------------------------------------- Child list & pager */

.docnest-doc__children {
	margin-top: 44px;
}

.docnest-doc__children h2 {
	margin: 0 0 14px;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--dn-faint);
}

.docnest-childlist {
	display: grid;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.docnest-childlist__link {
	display: block;
	padding: 13px 16px;
	text-decoration: none;
	background: var(--dn-bg);
	border: 1px solid var(--dn-border);
	border-radius: var(--dn-radius);
	transition: border-color 0.14s ease, transform 0.14s ease;
}

.docnest-childlist__link:hover {
	border-color: var(--dn-accent, #1c7d5a);
	transform: translateY(-1px);
}

.docnest-childlist__title {
	display: block;
	font-size: 15px;
	font-weight: 570;
	color: var(--dn-heading);
}

.docnest-childlist__desc {
	display: block;
	margin-top: 3px;
	font-size: 13.5px;
	color: var(--dn-muted);
}

.docnest-doc__footer {
	margin-top: 48px;
	padding-top: 22px;
	border-top: 1px solid var(--dn-border);
}

.docnest-doc__updated {
	margin: 0 0 20px;
	font-size: 13px;
	color: var(--dn-faint);
}

.docnest-pager {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}

.docnest-pager__link {
	display: block;
	padding: 14px 16px;
	text-decoration: none;
	border: 1px solid var(--dn-border);
	border-radius: var(--dn-radius);
}

.docnest-pager__link:hover {
	border-color: var(--dn-accent, #1c7d5a);
}

.docnest-pager__link--next {
	text-align: right;
}

.docnest-pager__label {
	display: block;
	font-size: 12px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--dn-faint);
}

.docnest-pager__title {
	display: block;
	margin-top: 3px;
	font-size: 15px;
	font-weight: 560;
	color: var(--dn-heading);
}

/* ------------------------------------------------------------ Outline rail */

.docnest-toc__title {
	margin: 0 0 12px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--dn-faint);
}

.docnest-toc__list {
	margin: 0;
	padding: 0;
	list-style: none;
	border-left: 1px solid var(--dn-border);
}

.docnest-toc__link {
	display: block;
	padding: 6px 12px;
	margin-left: -1px;
	font-size: 13.5px;
	line-height: 1.45;
	color: var(--dn-muted);
	text-decoration: none;
	border-left: 3px solid transparent;
	border-radius: 5px;
	transition: background-color 0.12s ease, color 0.12s ease, border-left-color 0.12s ease;
}

.docnest-toc__link:hover {
	color: var(--dn-heading);
	background: rgba(var(--dn-accent-rgb, 28, 125, 90), 0.08);
}

.docnest-toc__link.is-active {
	color: var(--dn-accent, #1c7d5a);
	font-weight: 600;
	border-left-color: var(--dn-accent, #1c7d5a);
	background: rgba(var(--dn-accent-rgb, 28, 125, 90), 0.12);
}

.docnest-toc__item--indent-1 .docnest-toc__link {
	padding-left: 24px;
}

.docnest-toc__item--indent-2 .docnest-toc__link {
	padding-left: 36px;
	font-size: 13px;
}

.docnest-toc__item--indent-3 .docnest-toc__link {
	padding-left: 48px;
	font-size: 13px;
}

/* ------------------------------------------------------------- Docs index */

.docnest-index {
	max-width: 1180px;
	margin: 0 auto;
	padding: 48px 24px 80px;
}

.docnest-index__header {
	margin-bottom: 34px;
}

.docnest-index__title {
	margin: 0 0 18px;
	font-size: 36px;
	font-weight: 660;
	letter-spacing: -0.02em;
	color: var(--dn-heading);
}

.docnest-index__search {
	max-width: 520px;
}

.docnest-index__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.docnest-index__item {
	padding: 12px 0;
	border-bottom: 1px solid var(--dn-border-soft);
}

.docnest-index__item a {
	font-size: 16px;
	font-weight: 560;
	color: var(--dn-heading);
	text-decoration: none;
}

.docnest-index__trail {
	display: block;
	margin-top: 2px;
	font-size: 12.5px;
	color: var(--dn-faint);
}

.docnest-grid {
	display: grid;
	gap: 18px;
}

.docnest-grid--cols-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.docnest-grid--cols-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.docnest-grid--cols-4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.docnest-card {
	padding: 20px;
	background: var(--dn-bg);
	border: 1px solid var(--dn-border);
	border-radius: 10px;
}

.docnest-card__title {
	margin: 0 0 8px;
	font-size: 17px;
	font-weight: 620;
}

.docnest-card__title a {
	color: var(--dn-heading);
	text-decoration: none;
}

.docnest-card__title a:hover {
	color: var(--dn-accent, #1c7d5a);
}

.docnest-card__desc {
	margin: 0 0 12px;
	font-size: 14px;
	line-height: 1.6;
	color: var(--dn-muted);
}

.docnest-card__links {
	margin: 0;
	padding: 0;
	list-style: none;
}

.docnest-card__links li {
	padding: 3px 0;
}

.docnest-card__links a {
	font-size: 14px;
	color: var(--dn-text);
	text-decoration: none;
}

.docnest-card__links a:hover {
	color: var(--dn-accent, #1c7d5a);
}

.docnest-empty {
	color: var(--dn-muted);
}

/* ------------------------------------------------------------------ Scrim */

.docnest-scrim {
	position: fixed;
	inset: 0;
	z-index: 45;
	background: rgba(16, 22, 29, 0.4);
	border: 0;
}

/* ------------------------------------------------------------ Focus states */

.docnest-page a:focus-visible,
.docnest-page button:focus-visible,
.docnest-page input:focus-visible {
	outline: 2px solid var(--dn-accent, #1c7d5a);
	outline-offset: 2px;
}

/* ------------------------------------------------------------ Breakpoints */

@media (max-width: 1240px) {
	.docnest-shell {
		grid-template-columns: var(--dn-sidebar-w, 300px) minmax(0, 1fr);
	}

	.docnest-shell__toc {
		display: none;
	}

	.docnest-shell__main {
		padding: 30px 32px 64px;
	}
}

@media (max-width: 900px) {
	.docnest-shell,
	.docnest-shell--no-toc {
		grid-template-columns: minmax(0, 1fr);
	}

	.docnest-bar__toggle {
		display: inline-flex;
	}

	.docnest-bar__search {
		margin: 0;
	}

	.docnest-shell__nav {
		position: fixed;
		top: 0;
		bottom: 0;
		left: 0;
		width: min(88vw, 340px);
		z-index: 50;
		background: var(--dn-bg);
		border-right: 1px solid var(--dn-border);
		transform: translateX(-102%);
		transition: transform 0.22s ease;
	}

	.docnest-shell__nav.is-open {
		transform: translateX(0);
		box-shadow: 0 0 40px rgba(16, 22, 29, 0.18);
	}

	.docnest-shell__nav-inner {
		position: static;
		max-height: 100%;
		height: 100%;
		padding: 20px 18px 40px;
	}

	.docnest-shell__nav-close {
		display: block;
		margin-left: auto;
		width: 32px;
		height: 32px;
		font-size: 22px;
		line-height: 1;
		color: var(--dn-muted);
		background: none;
		border: 0;
		cursor: pointer;
	}

	.docnest-shell__main {
		padding: 24px 20px 56px;
	}

	.docnest-doc__title {
		font-size: 27px;
	}

	.docnest-doc__body {
		font-size: 16px;
	}

	.docnest-pager {
		grid-template-columns: minmax(0, 1fr);
	}

	.docnest-grid--cols-2,
	.docnest-grid--cols-3,
	.docnest-grid--cols-4 {
		grid-template-columns: minmax(0, 1fr);
	}

	.docnest-search__hint {
		display: none;
	}
}

/* Inline outline for narrow screens, shown above the content. */
.docnest-toc-inline {
	margin: 0 0 26px;
	border: 1px solid var(--dn-border);
	border-radius: var(--dn-radius);
	background: var(--dn-bg-soft);
}

.docnest-toc-inline > summary {
	padding: 10px 14px;
	font-size: 13px;
	font-weight: 600;
	color: var(--dn-heading);
	cursor: pointer;
}

.docnest-toc-inline .docnest-toc {
	padding: 0 14px 12px;
}

.docnest-toc-inline .docnest-toc__title {
	display: none;
}

/* --------------------------------------------------------------- Dark mode */

@media (prefers-color-scheme: dark) {
	.docnest-page {
		--dn-text: #c9d1d9;
		--dn-heading: #f0f3f6;
		--dn-muted: #97a1ad;
		--dn-faint: #7d8896;
		--dn-border: #2b323b;
		--dn-border-soft: #232a32;
		--dn-bg: #14181d;
		--dn-bg-soft: #1b2027;
	}

	.docnest-doc__body pre {
		background: #0d1015;
	}

	.docnest-shell__nav-inner,
	.docnest-shell__toc-inner {
		scrollbar-color: #7a8390 #232a32;
	}

	.docnest-shell__nav-inner::-webkit-scrollbar-track,
	.docnest-shell__toc-inner::-webkit-scrollbar-track {
		background: #232a32;
	}

	.docnest-shell__nav-inner::-webkit-scrollbar-thumb,
	.docnest-shell__toc-inner::-webkit-scrollbar-thumb {
		background: #7a8390;
	}
}

/* ---------------------------------------------------------- Reduced motion */

@media (prefers-reduced-motion: reduce) {
	.docnest-page *,
	.docnest-shell__nav {
		transition: none !important;
		animation: none !important;
	}
}

/* ----------------------------------------------------------------- Utility */

.docnest-page .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ==========================================================================
   1.1.0 — node kinds, motion, resizable sidebar, richer content area
   Appended deliberately: these rules build on the base above rather than
   replacing it, so a theme override of the earlier selectors still applies.
   ========================================================================== */

.docnest-page {
	--dn-guide: #e3e7ec;
	--dn-guide-active: rgba(var(--dn-accent-rgb, 28, 125, 90), 0.45);
	--dn-icon: #97a1ad;
	--dn-ease: cubic-bezier(0.32, 0.72, 0, 1);
}

/* ------------------------------------------------------------- Type icons */

.docnest-tree__icon {
	flex: 0 0 16px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 16px;
	height: 16px;
	margin-right: 7px;
	color: var(--dn-icon);
	transition: color 0.12s ease;
}

.docnest-tree__icon svg {
	width: 16px;
	height: 16px;
	fill: currentColor;
}

.docnest-tree__icon--emoji {
	font-size: 13px;
	line-height: 1;
}

/* Folders read as containers, articles as content. */
.docnest-tree__item.is-kind-folder > .docnest-tree__row .docnest-tree__icon {
	color: #b0870f;
}

.docnest-tree__item.is-kind-section > .docnest-tree__row .docnest-tree__icon {
	color: #6b7684;
}

.docnest-tree__item.is-current > .docnest-tree__row .docnest-tree__icon,
.docnest-tree__link:hover .docnest-tree__icon {
	color: currentColor;
}

/* The link is a flex row now that it carries an icon. */
.docnest-tree__link {
	display: flex;
	align-items: center;
}

.docnest-tree__text {
	min-width: 0;
}

/* A folder label is a button; strip the UA styling back to the link's look. */
.docnest-tree__link--folder {
	appearance: none;
	background: none;
	border: 0;
	margin: 0;
	width: 100%;
	font: inherit;
	text-align: left;
	cursor: pointer;
	color: var(--dn-text);
}

.docnest-tree__link--folder:hover {
	background: var(--dn-bg-soft);
	color: var(--dn-heading);
}

/* --------------------------------------------------- Hierarchy and guides */

.docnest-nav--guides .docnest-tree__item > ul {
	border-left-color: var(--dn-guide);
}

/* Light up the guide of the branch you are actually inside. */
.docnest-nav--guides .docnest-tree__item.is-ancestor > ul,
.docnest-nav--guides .docnest-tree__item.is-current > ul {
	border-left-color: var(--dn-guide-active);
}

.docnest-nav:not(.docnest-nav--guides) .docnest-tree__item > ul {
	border-left-color: transparent;
}

/* A clear selected state: accent bar plus tinted row. */
.docnest-tree__item.is-current > .docnest-tree__row {
	position: relative;
}

.docnest-tree__item.is-current > .docnest-tree__row::before {
	content: "";
	position: absolute;
	left: -11px;
	top: 4px;
	bottom: 4px;
	width: 2px;
	border-radius: 2px;
	background: var(--dn-accent, #1c7d5a);
}

.docnest-tree--level-1 > .docnest-tree__item.is-current > .docnest-tree__row::before {
	left: -12px;
}

.docnest-tree__link:focus-visible,
.docnest-tree__toggle:focus-visible {
	outline: 2px solid var(--dn-accent, #1c7d5a);
	outline-offset: 1px;
}

/* Keyboard roving focus target, when focus is moved programmatically. */
.docnest-tree__item.is-kb-focus > .docnest-tree__row > .docnest-tree__link {
	background: var(--dn-bg-soft);
}

/* -------------------------------------------------- Expand / collapse motion */

.docnest-tree__item > ul {
	overflow: hidden;
}

.docnest-tree__item.is-animating > ul {
	transition: height 0.24s var(--dn-ease), opacity 0.18s ease;
}

.docnest-tree__item.is-closed > ul {
	display: none;
}

/* While animating, the list must render even though it is logically closed. */
.docnest-tree__item.is-closed.is-animating > ul {
	display: block;
}

/* ------------------------------------------------------- Sidebar chrome */

.docnest-nav__head {
	position: sticky;
	top: 0;
	z-index: 2;
	background: var(--dn-bg);
	padding-bottom: 8px;
}

.docnest-nav__tools {
	display: flex;
	align-items: center;
	gap: 4px;
	margin-bottom: 6px;
}

.docnest-nav__tool {
	appearance: none;
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 4px 7px;
	font: inherit;
	font-size: 12px;
	color: var(--dn-muted);
	background: none;
	border: 1px solid transparent;
	border-radius: 5px;
	cursor: pointer;
}

.docnest-nav__tool:hover {
	background: var(--dn-bg-soft);
	color: var(--dn-heading);
	border-color: var(--dn-border);
}

.docnest-nav__tool svg {
	width: 13px;
	height: 13px;
	fill: currentColor;
}

/* Drag handle for width. Hidden from assistive tech: the setting is the
   accessible route, this is a pointer affordance. */
.docnest-resize {
	position: absolute;
	top: 0;
	right: -3px;
	bottom: 0;
	width: 6px;
	cursor: col-resize;
	background: transparent;
	border: 0;
	padding: 0;
	z-index: 3;
	touch-action: none;
}

.docnest-resize::after {
	content: "";
	position: absolute;
	inset: 0 auto 0 2px;
	width: 2px;
	background: transparent;
	transition: background-color 0.14s ease;
}

.docnest-resize:hover::after,
.docnest-resize.is-dragging::after {
	background: var(--dn-accent, #1c7d5a);
}

body.docnest-resizing {
	cursor: col-resize;
	user-select: none;
}

/* Collapsed rail. */
.docnest-shell.is-nav-collapsed {
	grid-template-columns: 0 minmax(0, 1fr) var(--dn-toc-w, 250px);
}

.docnest-shell.is-nav-collapsed.docnest-shell--no-toc {
	grid-template-columns: 0 minmax(0, 1fr);
}

.docnest-shell.is-nav-collapsed .docnest-shell__nav {
	overflow: hidden;
	opacity: 0;
	pointer-events: none;
}

.docnest-nav__reveal {
	position: sticky;
	top: 12px;
	display: none;
	margin: 0 0 10px;
}

.docnest-shell.is-nav-collapsed ~ .docnest-nav__reveal,
.docnest-shell.is-nav-collapsed .docnest-nav__reveal {
	display: block;
}

@media (max-width: 1024px) {
	.docnest-resize {
		display: none;
	}
}

/* ------------------------------------------------------- Content: breadcrumbs */

.docnest-breadcrumbs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	margin-bottom: 14px;
	font-size: 12.5px;
	color: var(--dn-muted);
}

.docnest-breadcrumbs a {
	color: var(--dn-muted);
	text-decoration: none;
	border-radius: 3px;
}

.docnest-breadcrumbs a:hover {
	color: var(--dn-accent, #1c7d5a);
	text-decoration: underline;
}

.docnest-breadcrumbs__sep {
	color: var(--dn-faint);
}

.docnest-breadcrumbs [aria-current="page"] {
	color: var(--dn-heading);
	font-weight: 500;
}

/* --------------------------------------------------------- Content: meta row */

.docnest-doc__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 14px;
	margin: -2px 0 22px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--dn-border-soft);
	font-size: 12.5px;
	color: var(--dn-muted);
}

.docnest-doc__meta-item {
	display: inline-flex;
	align-items: center;
	gap: 5px;
}

.docnest-doc__meta svg {
	width: 13px;
	height: 13px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.5;
}

.docnest-copy-link {
	appearance: none;
	display: inline-flex;
	align-items: center;
	gap: 5px;
	margin-left: auto;
	padding: 4px 9px;
	font: inherit;
	font-size: 12.5px;
	color: var(--dn-muted);
	background: none;
	border: 1px solid var(--dn-border);
	border-radius: 5px;
	cursor: pointer;
	transition: color 0.12s ease, border-color 0.12s ease;
}

.docnest-copy-link:hover {
	color: var(--dn-heading);
	border-color: var(--dn-faint);
}

.docnest-copy-link.is-done {
	color: var(--dn-accent, #1c7d5a);
	border-color: var(--dn-accent, #1c7d5a);
}

/* ------------------------------------------------------- Content: headings */

.docnest-doc__body h2,
.docnest-doc__body h3,
.docnest-doc__body h4 {
	position: relative;
	scroll-margin-top: calc(var(--dn-pane-top, 62px) + 16px);
	color: var(--dn-heading);
	letter-spacing: -0.011em;
}

.docnest-doc__body h2 {
	margin: 2.1em 0 0.65em;
	padding-top: 0.5em;
	font-size: 1.44em;
	font-weight: 650;
	border-top: 1px solid var(--dn-border-soft);
}

.docnest-doc__body h2:first-child {
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}

.docnest-doc__body h3 {
	margin: 1.7em 0 0.5em;
	font-size: 1.16em;
	font-weight: 620;
}

.docnest-doc__body h4 {
	margin: 1.4em 0 0.4em;
	font-size: 1.02em;
	font-weight: 620;
	color: var(--dn-text);
}

.docnest-anchor {
	position: absolute;
	right: 100%;
	top: 0;
	bottom: 0;
	display: inline-flex;
	align-items: center;
	padding-right: 6px;
	padding-top: inherit;
	color: var(--dn-faint);
	text-decoration: none;
	opacity: 0;
	transition: opacity 0.12s ease;
}

.docnest-doc__body h2:hover .docnest-anchor,
.docnest-doc__body h3:hover .docnest-anchor,
.docnest-doc__body h4:hover .docnest-anchor,
.docnest-anchor:focus-visible {
	opacity: 1;
}

.docnest-anchor svg {
	width: 14px;
	height: 14px;
	fill: currentColor;
}

@media (max-width: 900px) {
	.docnest-anchor {
		display: none;
	}
}

/* ------------------------------------------------------ Content: code blocks */

.docnest-doc__body pre {
	position: relative;
	margin: 1.35em 0;
	padding: 15px 16px;
	overflow: auto;
	font-family: var(--dn-mono);
	font-size: 13px;
	line-height: 1.62;
	color: #e7ecf2;
	background: #171d26;
	border-radius: var(--dn-radius);
	tab-size: 2;
}

.docnest-doc__body pre code {
	padding: 0;
	font-size: inherit;
	color: inherit;
	background: none;
	border: 0;
}

.docnest-doc__body :not(pre) > code {
	padding: 0.12em 0.36em;
	font-family: var(--dn-mono);
	font-size: 0.885em;
	color: #b2462f;
	background: #f6f7f9;
	border: 1px solid var(--dn-border);
	border-radius: 4px;
}

.docnest-code-copy {
	position: absolute;
	top: 8px;
	right: 8px;
	appearance: none;
	padding: 3px 8px;
	font: inherit;
	font-size: 11.5px;
	color: #b9c3cf;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 4px;
	cursor: pointer;
	opacity: 0;
	transition: opacity 0.14s ease, color 0.14s ease;
}

.docnest-doc__body pre:hover .docnest-code-copy,
.docnest-code-copy:focus-visible {
	opacity: 1;
}

.docnest-code-copy.is-done {
	color: #7fd6ad;
}

/* ------------------------------------------------------- Content: callouts */

.docnest-callout {
	display: flex;
	gap: 11px;
	margin: 1.4em 0;
	padding: 13px 15px;
	font-size: 0.955em;
	background: var(--dn-bg-soft);
	border: 1px solid var(--dn-border);
	border-left: 3px solid var(--dn-faint);
	border-radius: var(--dn-radius);
}

.docnest-callout > svg {
	flex: 0 0 17px;
	width: 17px;
	height: 17px;
	margin-top: 2px;
	fill: currentColor;
}

.docnest-callout__body > :first-child {
	margin-top: 0;
}

.docnest-callout__body > :last-child {
	margin-bottom: 0;
}

.docnest-callout__title {
	display: block;
	margin-bottom: 3px;
	font-weight: 620;
	color: var(--dn-heading);
}

.docnest-callout--note {
	color: #1d4f8b;
	background: #f2f7fd;
	border-color: #d7e6f7;
	border-left-color: #3b7dd8;
}

.docnest-callout--tip {
	color: #14614a;
	background: #f1f9f5;
	border-color: #d3ebe0;
	border-left-color: var(--dn-accent, #1c7d5a);
}

.docnest-callout--warning {
	color: #8a5406;
	background: #fdf8ef;
	border-color: #f2e4c9;
	border-left-color: #d3900c;
}

.docnest-callout--danger {
	color: #8f2b26;
	background: #fdf4f3;
	border-color: #f4dcd9;
	border-left-color: #c8453c;
}

.docnest-callout__body a {
	color: inherit;
	text-decoration: underline;
}

/* ------------------------------------------------------------ Reduced motion */

@media (prefers-reduced-motion: reduce) {
	.docnest-tree__item.is-animating > ul,
	.docnest-chevron,
	.docnest-tree__icon,
	.docnest-anchor {
		transition: none !important;
	}
}

/* Folder icon carries both states; the open one shows only when expanded. */
.docnest-tree__icon--folder .docnest-tree__icon-open,
.docnest-tree__item.is-open > .docnest-tree__row .docnest-tree__icon--folder .docnest-tree__icon-closed {
	display: none;
}

.docnest-tree__item.is-open > .docnest-tree__row .docnest-tree__icon--folder .docnest-tree__icon-open {
	display: block;
}

.docnest-tree__icon--emoji .docnest-tree__icon-open,
.docnest-tree__icon--emoji .docnest-tree__icon-closed {
	line-height: 1;
}

/* ------------------------------------------------- Resume last article */

.docnest-resume-slot {
	margin: 0 0 18px;
}

.docnest-resume {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 7px 12px;
	font-size: 13px;
	color: var(--dn-heading);
	text-decoration: none;
	background: var(--dn-bg-soft);
	border: 1px solid var(--dn-border);
	border-radius: var(--dn-radius);
}

.docnest-resume:hover {
	border-color: var(--dn-accent, #1c7d5a);
	color: var(--dn-accent, #1c7d5a);
}

/* The toolbar's last control sits hard right. */
.docnest-nav__tool--end {
	margin-left: auto;
}
