/*
 * eveDocs — minimalist documentation theme styles.
 *
 * Uses CSS custom properties for theming. Dark mode is applied via
 * [data-theme="dark"] on <html>, set early in <head> to avoid a flash.
 */

/* ---------- Tokens ---------- */
:root {
	--evedocs-font-heading: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
	--evedocs-font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;

	--evedocs-radius: 8px;
	--evedocs-radius-lg: 12px;
	--evedocs-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 1px 3px rgba(15, 23, 42, 0.06);
	--evedocs-transition: 160ms ease;

	--evedocs-max-width: 1200px;
	--evedocs-content-width: 760px;
	--evedocs-sidebar-width: 280px;
}

:root,
:root[data-theme="light"] {
	--evedocs-bg: #ffffff;
	--evedocs-bg-alt: #f8fafc;
	--evedocs-bg-elevated: #ffffff;
	--evedocs-border: #e5e7eb;
	--evedocs-border-strong: #d1d5db;
	--evedocs-text: #111827;
	--evedocs-text-muted: #6b7280;
	--evedocs-link: #2563eb;
	--evedocs-link-hover: #1d4ed8;
	--evedocs-accent: #2563eb;
	--evedocs-code-bg: #f3f4f6;
	--evedocs-code-border: #e5e7eb;
	--evedocs-blockquote: #6b7280;
	--evedocs-selection: rgba(37, 99, 235, 0.18);
}

:root[data-theme="dark"] {
	--evedocs-bg: #0b1220;
	--evedocs-bg-alt: #0f172a;
	--evedocs-bg-elevated: #111a2e;
	--evedocs-border: #1f2a44;
	--evedocs-border-strong: #2a3653;
	--evedocs-text: #e5e7eb;
	--evedocs-text-muted: #94a3b8;
	--evedocs-link: #93c5fd;
	--evedocs-link-hover: #bfdbfe;
	--evedocs-accent: #93c5fd;
	--evedocs-code-bg: #111a2e;
	--evedocs-code-border: #1f2a44;
	--evedocs-blockquote: #94a3b8;
	--evedocs-selection: rgba(147, 197, 253, 0.25);
}

/* ---------- Reset & base ---------- */
*, *::before, *::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--evedocs-bg);
	color: var(--evedocs-text);
	font-family: var(--evedocs-font-body);
	font-size: 17px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	transition: background-color var(--evedocs-transition), color var(--evedocs-transition);
}

::selection { background: var(--evedocs-selection); }

img, svg, video { max-width: 100%; height: auto; display: block; }

a {
	color: var(--evedocs-link);
	text-decoration: none;
	transition: color var(--evedocs-transition);
}
a:hover, a:focus { color: var(--evedocs-link-hover); text-decoration: underline; }

h1, h2, h3, h4, h5, h6 {
	font-family: var(--evedocs-font-heading);
	color: var(--evedocs-text);
	line-height: 1.25;
	margin: 1.8em 0 0.6em;
	font-weight: 600;
	letter-spacing: -0.01em;
}
h1 { font-size: 2.25rem; letter-spacing: -0.02em; }
h2 { font-size: 1.6rem; }
h3 { font-size: 1.25rem; }
h4 { font-size: 1.1rem; }
h5 { font-size: 1rem; }
h6 { font-size: 0.9rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--evedocs-text-muted); }

p, ul, ol, dl, blockquote, pre, table, figure { margin: 0 0 1.2em; }

ul, ol { padding-left: 1.4em; }
li { margin: 0.2em 0; }

blockquote {
	border-left: 3px solid var(--evedocs-border-strong);
	margin: 1.4em 0;
	padding: 0.2em 1em;
	color: var(--evedocs-blockquote);
	font-style: italic;
}

code, kbd, pre, samp {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
	font-size: 0.92em;
}
code {
	background: var(--evedocs-code-bg);
	border: 1px solid var(--evedocs-code-border);
	border-radius: 4px;
	padding: 0.1em 0.35em;
}
pre {
	background: var(--evedocs-code-bg);
	border: 1px solid var(--evedocs-code-border);
	border-radius: var(--evedocs-radius);
	padding: 1em 1.2em;
	overflow-x: auto;
	line-height: 1.55;
}
pre code { background: none; border: 0; padding: 0; }

hr {
	border: 0;
	border-top: 1px solid var(--evedocs-border);
	margin: 2.4em 0;
}

table {
	width: 100%;
	border-collapse: collapse;
}
th, td {
	border: 1px solid var(--evedocs-border);
	padding: 0.55em 0.8em;
	text-align: left;
}
th { background: var(--evedocs-bg-alt); font-weight: 600; }

/* ---------- Layout ---------- */
.skip-link {
	position: absolute;
	left: -9999px;
	top: auto;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
.skip-link:focus {
	left: 1rem;
	top: 1rem;
	width: auto;
	height: auto;
	padding: 0.5em 0.8em;
	background: var(--evedocs-bg-elevated);
	border: 1px solid var(--evedocs-border-strong);
	border-radius: var(--evedocs-radius);
	z-index: 100;
}
.screen-reader-text {
	position: absolute !important;
	clip: rect(1px, 1px, 1px, 1px);
	width: 1px; height: 1px;
	overflow: hidden;
}

.evedocs-container {
	max-width: var(--evedocs-max-width);
	margin: 0 auto;
	padding: 0 1.5rem;
}

.evedocs-main {
	padding: 2.5rem 0 4rem;
}

/* ---------- Header ---------- */
.evedocs-site-header {
	background: var(--evedocs-bg);
	border-bottom: 1px solid var(--evedocs-border);
	position: sticky;
	top: 0;
	z-index: 50;
	backdrop-filter: saturate(180%) blur(8px);
	-webkit-backdrop-filter: saturate(180%) blur(8px);
}
.evedocs-site-header__inner {
	max-width: var(--evedocs-max-width);
	margin: 0 auto;
	padding: 0.9rem 1.5rem;
	display: grid;
	grid-template-columns: auto 1fr auto auto;
	gap: 1.2rem;
	align-items: center;
}
.evedocs-logo {
	display: inline-flex;
	align-items: center;
	font-family: var(--evedocs-font-heading);
	font-weight: 600;
	font-size: 1.1rem;
	color: var(--evedocs-text);
	text-decoration: none;
	letter-spacing: -0.01em;
}
.evedocs-logo:hover { color: var(--evedocs-text); text-decoration: none; }
.evedocs-logo--image img {
	max-height: 38px;
	width: auto;
}

.evedocs-site-header__search {
	min-width: 0;
}
.evedocs-search {
	position: relative;
	display: flex;
	align-items: center;
}
.evedocs-search i {
	position: absolute;
	left: 0.85rem;
	color: var(--evedocs-text-muted);
	font-size: 0.9rem;
}
.evedocs-search input[type="search"] {
	width: 100%;
	max-width: 480px;
	padding: 0.55rem 0.9rem 0.55rem 2.3rem;
	border: 1px solid var(--evedocs-border);
	border-radius: var(--evedocs-radius);
	background: var(--evedocs-bg-alt);
	color: var(--evedocs-text);
	font: inherit;
	font-size: 0.95rem;
	transition: border-color var(--evedocs-transition), background-color var(--evedocs-transition);
}
.evedocs-search input[type="search"]:focus {
	outline: none;
	border-color: var(--evedocs-accent);
	background: var(--evedocs-bg-elevated);
}

.evedocs-primary-menu {
	list-style: none;
	display: flex;
	gap: 1.2rem;
	margin: 0;
	padding: 0;
	font-size: 0.95rem;
}
.evedocs-primary-menu a {
	color: var(--evedocs-text-muted);
	text-decoration: none;
}
.evedocs-primary-menu a:hover { color: var(--evedocs-text); }

.evedocs-mode-toggle {
	background: var(--evedocs-bg-alt);
	border: 1px solid var(--evedocs-border);
	border-radius: 999px;
	width: 38px;
	height: 38px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	color: var(--evedocs-text);
	transition: background-color var(--evedocs-transition), border-color var(--evedocs-transition);
}
.evedocs-mode-toggle:hover { background: var(--evedocs-bg-elevated); border-color: var(--evedocs-border-strong); }
.evedocs-mode-toggle .evedocs-icon-dark,
.evedocs-mode-toggle .evedocs-icon-light { font-size: 0.95rem; }
:root[data-theme="light"] .evedocs-mode-toggle .evedocs-icon-light { display: none; }
:root[data-theme="light"] .evedocs-mode-toggle .evedocs-icon-dark { display: inline; }
:root[data-theme="dark"] .evedocs-mode-toggle .evedocs-icon-light { display: inline; }
:root[data-theme="dark"] .evedocs-mode-toggle .evedocs-icon-dark { display: none; }

/* ---------- Doc layout ---------- */
.evedocs-layout {
	padding: 2rem 0 4rem;
}
.evedocs-layout--with-sidebar {
	display: grid;
	grid-template-columns: var(--evedocs-sidebar-width) minmax(0, 1fr);
	gap: 3rem;
}
@media (max-width: 880px) {
	.evedocs-layout--with-sidebar {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}
}

.evedocs-layout__sidebar {
	position: sticky;
	top: 5.5rem;
	align-self: start;
	max-height: calc(100vh - 6rem);
	overflow-y: auto;
	padding-right: 0.5rem;
}
@media (max-width: 880px) {
	.evedocs-layout__sidebar {
		position: static;
		max-height: none;
		border-bottom: 1px solid var(--evedocs-border);
		padding-bottom: 1rem;
	}
}

.evedocs-layout__content {
	min-width: 0;
	max-width: var(--evedocs-content-width);
}

/* ---------- Doc tree ---------- */
.evedocs-doc-tree { font-size: 0.94rem; }
.evedocs-doc-tree__list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.evedocs-doc-tree__list .evedocs-doc-tree__list {
	margin-left: 0.95rem;
	border-left: 1px solid var(--evedocs-border);
	padding-left: 0.35rem;
}

.evedocs-doc-tree__item.has-children > ul { display: none; }
.evedocs-doc-tree__item.has-children.is-open > ul { display: block; }

.evedocs-doc-tree__row {
	display: flex;
	align-items: center;
	gap: 0.15rem;
	margin: 0.05rem 0;
	border-radius: 6px;
	transition: background-color var(--evedocs-transition);
}
.evedocs-doc-tree__row:hover { background: var(--evedocs-bg-alt); }
.evedocs-doc-tree__item.is-current > .evedocs-doc-tree__row { background: var(--evedocs-bg-alt); }

.evedocs-doc-tree__toggle,
.evedocs-doc-tree__spacer {
	flex: 0 0 auto;
	width: 22px;
	height: 22px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.evedocs-doc-tree__toggle {
	background: transparent;
	border: 0;
	padding: 0;
	cursor: pointer;
	color: var(--evedocs-text-muted);
	border-radius: 4px;
}
.evedocs-doc-tree__toggle:hover { color: var(--evedocs-text); background: var(--evedocs-bg-elevated); }
.evedocs-doc-tree__toggle i {
	font-size: 0.75rem;
	transition: transform var(--evedocs-transition);
}
.evedocs-doc-tree__item.is-open > .evedocs-doc-tree__row .evedocs-doc-tree__toggle i {
	transform: rotate(90deg);
}

.evedocs-doc-tree__link {
	flex: 1 1 auto;
	display: block;
	padding: 0.3rem 0.5rem;
	color: var(--evedocs-text-muted);
	text-decoration: none;
	line-height: 1.4;
	border-radius: 4px;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.evedocs-doc-tree__link:hover {
	color: var(--evedocs-text);
	text-decoration: none;
}
.evedocs-doc-tree__item.is-current > .evedocs-doc-tree__row .evedocs-doc-tree__link {
	color: var(--evedocs-accent);
	font-weight: 600;
}
.evedocs-doc-tree__list--root > .evedocs-doc-tree__item > .evedocs-doc-tree__row .evedocs-doc-tree__link {
	font-weight: 600;
	color: var(--evedocs-text);
}
.evedocs-doc-tree__list--root > .evedocs-doc-tree__item.is-current > .evedocs-doc-tree__row .evedocs-doc-tree__link {
	color: var(--evedocs-accent);
}

/* Archive-only "tree as primary content" variant. */
.evedocs-doc-tree--archive { font-size: 1rem; }
.evedocs-archive-tree-wrap {
	border: 1px solid var(--evedocs-border);
	border-radius: var(--evedocs-radius-lg);
	background: var(--evedocs-bg-elevated);
	padding: 1.2rem 1.4rem;
	max-width: 720px;
}
.evedocs-doc-tree--archive .evedocs-doc-tree__list--root > .evedocs-doc-tree__item + .evedocs-doc-tree__item {
	margin-top: 0.4rem;
	padding-top: 0.4rem;
	border-top: 1px solid var(--evedocs-border);
}
.evedocs-doc-tree--archive .evedocs-doc-tree__list--root > .evedocs-doc-tree__item > .evedocs-doc-tree__row .evedocs-doc-tree__link {
	font-size: 1.05rem;
}

/* ---------- Doc content ---------- */
.evedocs-doc {
	min-width: 0;
}
.evedocs-doc__header {
	margin-bottom: 2rem;
}
.evedocs-doc__title {
	margin: 0 0 0.4rem;
	font-size: 2.5rem;
	letter-spacing: -0.025em;
}
.evedocs-doc__meta {
	margin: 0;
	color: var(--evedocs-text-muted);
	font-size: 0.9rem;
}
.evedocs-doc__badge {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	background: var(--evedocs-bg-alt);
	border: 1px solid var(--evedocs-border);
	border-radius: 999px;
	padding: 0.15rem 0.6rem;
	font-size: 0.78rem;
	color: var(--evedocs-text-muted);
	margin: 0.4rem 0;
}
.evedocs-doc__badge--inline {
	margin-left: 0.4rem;
	padding: 0.1rem 0.4rem;
	font-size: 0.75rem;
	vertical-align: middle;
}
.evedocs-doc__content > :first-child { margin-top: 0; }
.evedocs-doc__content > :last-child { margin-bottom: 0; }

/* ---------- Breadcrumbs & pagination ---------- */
.evedocs-breadcrumbs {
	font-size: 0.85rem;
	color: var(--evedocs-text-muted);
	margin-bottom: 1.2rem;
	display: flex;
	gap: 0.4rem;
	flex-wrap: wrap;
}
.evedocs-breadcrumbs a {
	color: var(--evedocs-text-muted);
	text-decoration: none;
}
.evedocs-breadcrumbs a:hover { color: var(--evedocs-text); }
.evedocs-breadcrumbs__current { color: var(--evedocs-text); }

.evedocs-doc-pagination {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
	margin-top: 3rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--evedocs-border);
}
.evedocs-doc-pagination a {
	display: block;
	padding: 0.9rem 1.1rem;
	border: 1px solid var(--evedocs-border);
	border-radius: var(--evedocs-radius);
	text-decoration: none;
	color: var(--evedocs-text);
	background: var(--evedocs-bg-alt);
	transition: border-color var(--evedocs-transition), background-color var(--evedocs-transition);
}
.evedocs-doc-pagination a:hover {
	border-color: var(--evedocs-border-strong);
	background: var(--evedocs-bg-elevated);
	text-decoration: none;
}
.evedocs-doc-pagination__label {
	display: block;
	font-size: 0.8rem;
	color: var(--evedocs-text-muted);
	margin-bottom: 0.25rem;
}
.evedocs-doc-pagination__title {
	display: block;
	font-weight: 600;
}
.evedocs-doc-pagination__next { text-align: right; }
@media (max-width: 600px) {
	.evedocs-doc-pagination { grid-template-columns: 1fr; }
	.evedocs-doc-pagination__next { text-align: left; }
}

/* ---------- Cards & lists ---------- */
.evedocs-archive-header {
	margin-bottom: 2rem;
}
.evedocs-archive-title {
	margin: 0;
	font-size: 2rem;
	letter-spacing: -0.02em;
}
.evedocs-archive-desc {
	color: var(--evedocs-text-muted);
	margin-top: 0.5rem;
}

.evedocs-card-list,
.evedocs-card-grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 1rem;
}
.evedocs-card-grid {
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}

.evedocs-card {
	border: 1px solid var(--evedocs-border);
	border-radius: var(--evedocs-radius-lg);
	padding: 1.3rem 1.4rem;
	background: var(--evedocs-bg-elevated);
	transition: border-color var(--evedocs-transition), transform var(--evedocs-transition), box-shadow var(--evedocs-transition);
}
.evedocs-card:hover {
	border-color: var(--evedocs-border-strong);
	box-shadow: var(--evedocs-shadow);
}
.evedocs-card__title {
	margin: 0 0 0.5rem;
	font-size: 1.15rem;
}
.evedocs-card__title a {
	color: var(--evedocs-text);
	text-decoration: none;
}
.evedocs-card__title a:hover { color: var(--evedocs-link); }
.evedocs-card__excerpt {
	color: var(--evedocs-text-muted);
	font-size: 0.95rem;
}
.evedocs-card__excerpt p { margin: 0; }
.evedocs-card__children {
	list-style: none;
	padding: 0;
	margin: 0.9rem 0 0;
	border-top: 1px solid var(--evedocs-border);
	padding-top: 0.7rem;
}
.evedocs-card__children li { margin: 0.25rem 0; font-size: 0.93rem; }
.evedocs-card__children a {
	color: var(--evedocs-text-muted);
	text-decoration: none;
}
.evedocs-card__children a:hover { color: var(--evedocs-link); }

/* ---------- Front page ---------- */
.evedocs-front {
	padding-top: 2.5rem;
	padding-bottom: 4rem;
}
.evedocs-front__intro {
	text-align: center;
	max-width: 720px;
	margin: 0 auto 3rem;
}
.evedocs-front__title {
	margin: 0 0 0.5rem;
	font-size: 2.6rem;
	letter-spacing: -0.025em;
}
.evedocs-front__tagline {
	color: var(--evedocs-text-muted);
	font-size: 1.1rem;
	margin: 0;
}
.evedocs-empty {
	text-align: center;
	padding: 3rem 1rem;
	border: 1px dashed var(--evedocs-border);
	border-radius: var(--evedocs-radius-lg);
	color: var(--evedocs-text-muted);
}

/* ---------- Buttons ---------- */
.evedocs-button {
	display: inline-block;
	padding: 0.6rem 1.1rem;
	background: var(--evedocs-accent);
	color: #fff;
	border-radius: var(--evedocs-radius);
	text-decoration: none;
	font-weight: 500;
	transition: background-color var(--evedocs-transition), transform var(--evedocs-transition);
}
.evedocs-button:hover {
	background: var(--evedocs-link-hover);
	color: #fff;
	text-decoration: none;
}
:root[data-theme="dark"] .evedocs-button { color: #0b1220; }
:root[data-theme="dark"] .evedocs-button:hover { color: #0b1220; }

/* ---------- 404 ---------- */
.evedocs-404 {
	text-align: center;
	padding: 3rem 1rem;
}
.evedocs-404__title {
	font-size: 6rem;
	margin: 0;
	letter-spacing: -0.04em;
	color: var(--evedocs-text-muted);
}
.evedocs-404__text {
	font-size: 1.1rem;
	color: var(--evedocs-text-muted);
}
.evedocs-404 .evedocs-search { justify-content: center; margin: 1.5rem auto; max-width: 460px; }

/* ---------- Footer ---------- */
.evedocs-site-footer {
	border-top: 1px solid var(--evedocs-border);
	padding: 1.5rem 0;
	margin-top: 3rem;
	color: var(--evedocs-text-muted);
	font-size: 0.9rem;
}
.evedocs-site-footer__inner {
	max-width: var(--evedocs-max-width);
	margin: 0 auto;
	padding: 0 1.5rem;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
}
.evedocs-footer-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 1.2rem;
}
.evedocs-footer-menu a { color: var(--evedocs-text-muted); }
.evedocs-footer-menu a:hover { color: var(--evedocs-text); }

/* ---------- Pagination ---------- */
.pagination, .nav-links {
	display: flex;
	gap: 0.4rem;
	margin: 2rem 0;
	flex-wrap: wrap;
}
.page-numbers {
	display: inline-block;
	min-width: 36px;
	height: 36px;
	line-height: 34px;
	text-align: center;
	border: 1px solid var(--evedocs-border);
	border-radius: 6px;
	padding: 0 0.5rem;
	color: var(--evedocs-text-muted);
	text-decoration: none;
}
.page-numbers:hover { color: var(--evedocs-text); border-color: var(--evedocs-border-strong); text-decoration: none; }
.page-numbers.current {
	background: var(--evedocs-accent);
	color: #fff;
	border-color: var(--evedocs-accent);
}
:root[data-theme="dark"] .page-numbers.current { color: #0b1220; }

/* ---------- Mobile tweaks ---------- */
@media (max-width: 720px) {
	.evedocs-site-header__inner {
		grid-template-columns: auto 1fr auto;
		gap: 0.7rem;
	}
	.evedocs-site-header__nav { display: none; }
	.evedocs-doc__title { font-size: 1.9rem; }
	.evedocs-front__title { font-size: 2rem; }
	body { font-size: 16px; }
}
