/*
 * Prosyo Docs
 * Everything is scoped under .pd so theme styles outside the docs are untouched.
 * Colours come from the Prosyo theme's CSS variables, with fallbacks for other themes.
 */

.pd {
	--pd-bg: var(--background, #030014);
	--pd-surface: rgba(255, 255, 255, .025);
	--pd-surface-2: rgba(255, 255, 255, .05);
	--pd-border: var(--stoke, rgba(255, 255, 255, .1));
	--pd-text: var(--text, #f3f3f3);
	--pd-heading: var(--white, #fff);
	--pd-muted: var(--paragraph, #8e8c99);
	--pd-body: #b7b4c8;
	--pd-accent: var(--primary, #b638ff);
	--pd-accent-2: var(--tertiary, #7350ff);
	--pd-accent-3: var(--secondary, #ff75d4);
	--pd-link: #d6a5ff;
	--pd-code-bg: #0b0820;
	--pd-code-text: #e6e1ff;
	--pd-radius: var(--_border-radius---br-fine, 16px);
	--pd-radius-sm: 10px;
	--pd-offset: 96px;
	--pd-font: var(--_font-family---font-family, Inter, system-ui, -apple-system, "Segoe UI", sans-serif);
	--pd-mono: ui-monospace, SFMono-Regular, "JetBrains Mono", Menlo, Consolas, monospace;
	--pd-scrollbar-thumb: var(--wp--preset--color--primary, var(--primary, #002a6d));
	--pd-scrollbar-track: var(--wp--preset--color--transparent, var(--transparent, #e2e8f000));

	background: var(--pd-bg);
	color: var(--pd-text);
	font-family: var(--pd-font);
	position: relative;
}

/* Keep every docs overflow surface on the active theme palette. */
body.prosyo-docs-page,
body.prosyo-docs-page * {
	scrollbar-width: thin;
	scrollbar-color: var(--pd-scrollbar-thumb, var(--wp--preset--color--primary, var(--primary, #002a6d))) var(--pd-scrollbar-track, var(--wp--preset--color--transparent, var(--transparent, #e2e8f000)));
}
body.prosyo-docs-page ::-webkit-scrollbar { width: 10px; height: 10px; }
body.prosyo-docs-page ::-webkit-scrollbar-track { background: var(--pd-scrollbar-track, var(--wp--preset--color--transparent, var(--transparent, #e2e8f000))); }
body.prosyo-docs-page ::-webkit-scrollbar-thumb {
	background: var(--pd-scrollbar-thumb, var(--wp--preset--color--primary, var(--primary, #002a6d)));
	border: 2px solid var(--pd-scrollbar-track, var(--wp--preset--color--transparent, var(--transparent, #e2e8f000)));
	border-radius: 999px;
}
body.prosyo-docs-page ::-webkit-scrollbar-thumb:hover { background: var(--pd-accent-2, var(--wp--preset--color--tertiary, var(--tertiary, #7350ff))); }

.pd--light {
	--pd-bg: #ffffff;
	--pd-surface: #f8f7fc;
	--pd-surface-2: #f1eff9;
	--pd-border: #e6e3f0;
	--pd-text: #1d1a2b;
	--pd-heading: #120f1f;
	--pd-muted: #6b6880;
	--pd-body: #3d3a4f;
	--pd-link: #7a2ed6;
	--pd-code-bg: #16132a;
}

@media (prefers-color-scheme: light) {
	.pd--auto {
		--pd-bg: #ffffff;
		--pd-surface: #f8f7fc;
		--pd-surface-2: #f1eff9;
		--pd-border: #e6e3f0;
		--pd-text: #1d1a2b;
		--pd-heading: #120f1f;
		--pd-muted: #6b6880;
		--pd-body: #3d3a4f;
		--pd-link: #7a2ed6;
		--pd-code-bg: #16132a;
	}
}

.pd *, .pd *::before, .pd *::after { box-sizing: border-box; }
.pd a { color: inherit; }
.pd .pd-sr, .pd .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;
}
.pd .pd-icon { flex: none; width: 18px; height: 18px; }
.pd kbd, .pd .pd-kbd {
	font-family: var(--pd-font); font-size: 12px; line-height: 1; color: var(--pd-muted);
	padding: 5px 7px; border-radius: 6px; border: 1px solid var(--pd-border); background: var(--pd-surface-2);
}

/* ------------------------------------------------------------------ Hero */

.pd-hero { position: relative; }
.pd-hero--compact .pd-hero__gap { padding-bottom: 56px; }
.pd-hero__title { text-wrap: balance; }
.pd-hero__block { max-width: 760px; }

/* Themes without the Prosyo hero styles */
body:not(.prosyo-theme) .pd-hero { padding: 120px 16px 56px; text-align: center; background: radial-gradient(60% 80% at 50% 100%, rgba(115, 80, 255, .25), transparent 70%); }
body:not(.prosyo-theme) .pd-hero .hero-block { margin: 0 auto; display: flex; flex-direction: column; align-items: center; }
body:not(.prosyo-theme) .pd-hero .hero-info { display: inline-block; padding: 5px 16px; border-radius: 99px; border: 1px solid var(--pd-border); font-size: 14px; color: var(--pd-heading); margin-bottom: 20px; }
body:not(.prosyo-theme) .pd-hero .pd-hero__title { font-size: clamp(32px, 5vw, 52px); line-height: 1.15; font-weight: 600; letter-spacing: -.03em; color: var(--pd-heading); margin: 0 0 16px; }
body:not(.prosyo-theme) .pd-hero .pd-hero__title--mobile { display: none; }
body:not(.prosyo-theme) .pd-hero .hero-except { color: var(--pd-muted); font-size: 18px; line-height: 1.6; margin: 0; }

/* Big Ctrl/⌘+K search bar */
.pd-searchbar {
	position: relative; display: flex; align-items: center; gap: 12px;
	width: min(680px, 100%); margin: 32px auto 0; padding: 0 12px 0 20px; height: 62px;
	border-radius: 16px; border: 1px solid var(--pd-border);
	background: linear-gradient(180deg, rgba(255, 255, 255, .06), rgba(255, 255, 255, .02));
	box-shadow: inset 0 0 20px rgba(115, 80, 255, .18), 0 20px 60px -30px rgba(182, 56, 255, .5);
	color: var(--pd-muted); transition: border-color .2s, box-shadow .2s;
	text-align: left; z-index: 2;
}
.pd-searchbar:hover, .pd-searchbar:focus-within {
	border-color: rgba(182, 56, 255, .55);
	box-shadow: inset 0 0 24px rgba(115, 80, 255, .28), 0 0 0 4px rgba(182, 56, 255, .14), 0 20px 60px -30px rgba(182, 56, 255, .7);
}
.pd-searchbar .pd-icon { width: 22px; height: 22px; color: var(--pd-accent); }
.pd-searchbar__input {
	flex: 1; min-width: 0; height: 100%; border: 0; outline: 0; background: transparent;
	color: var(--pd-heading); font: 500 17px/1 var(--pd-font); letter-spacing: -.01em;
	-webkit-appearance: none; appearance: none;
}
.pd-searchbar__input::placeholder { color: var(--pd-muted); opacity: 1; }
.pd-searchbar__input::-webkit-search-cancel-button { display: none; }
.pd-hero--compact .pd-searchbar { height: 54px; margin-top: 24px; }

/* ------------------------------------------------------------------ Shell */

.pd-shell {
	display: grid; grid-template-columns: 264px minmax(0, 1fr) 224px; gap: 48px;
	max-width: 1360px; margin: 0 auto; padding: 40px 24px 96px; position: relative;
}
.pd-wide { max-width: 1240px; margin: 0 auto; padding: 64px 24px 110px; }
.pd-view--section .pd-shell, .pd-view--search .pd-shell, .pd-view--not-found .pd-shell { grid-template-columns: 264px minmax(0, 1fr); }

.pd-main { min-width: 0; max-width: 800px; }
.pd-view--section .pd-main, .pd-view--search .pd-main { max-width: 960px; }

/* Sidebar */
.pd-sidebar {
	position: sticky; top: calc(var(--pd-offset) + 20px); align-self: start;
	max-height: calc(100vh - var(--pd-offset) - 40px); overflow-y: auto; overscroll-behavior: contain;
	padding: 4px 8px 24px 0;
}
.pd-sidebar__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.pd-sidebar__home { display: inline-flex; align-items: center; gap: 10px; color: var(--pd-heading); font-weight: 600; font-size: 15px; text-decoration: none; }
.pd-sidebar__home .pd-icon { color: var(--pd-accent); }
.pd-sidebar__close { display: none; }
.pd-sidebar__search {
	display: flex; align-items: center; gap: 10px; width: 100%; margin: 0 0 16px; padding: 10px 12px;
	border-radius: 12px; border: 1px solid var(--pd-border); background: var(--pd-surface);
	color: var(--pd-muted); font: 500 14px var(--pd-font); cursor: pointer; text-align: left;
}
.pd-sidebar__search span { flex: 1; }
.pd-sidebar__search:hover { border-color: rgba(182, 56, 255, .45); color: var(--pd-text); }

.pd-nav__section { border-bottom: 1px solid var(--pd-border); padding: 4px 0; }
.pd-nav__section:last-child { border-bottom: 0; }
.pd-nav__summary {
	display: flex; align-items: center; justify-content: space-between; gap: 8px; list-style: none; cursor: pointer;
	padding: 10px 8px; border-radius: 8px; color: var(--pd-heading); font-size: 13px; font-weight: 600;
	letter-spacing: .04em; text-transform: uppercase; user-select: none;
}
.pd-nav__summary::-webkit-details-marker { display: none; }
.pd-nav__summary:hover { background: var(--pd-surface); }
.pd-nav__summary .pd-icon { width: 16px; height: 16px; color: var(--pd-muted); transition: transform .2s; }
.pd-nav__section[open] > .pd-nav__summary .pd-icon { transform: rotate(90deg); }
.pd-nav__list { list-style: none; margin: 0 0 8px; padding: 0; }
.pd-nav__group { margin: 10px 8px 4px; font-size: 12px; font-weight: 600; color: var(--pd-muted); }
.pd-nav__link {
	display: block; padding: 7px 10px 7px 14px; margin: 1px 0; border-radius: 8px; border-left: 2px solid transparent;
	color: var(--pd-muted); font-size: 14px; line-height: 1.45; text-decoration: none; transition: color .15s, background .15s;
}
.pd-nav__link.is-nested { padding-left: 24px; }
.pd-nav__link:hover { color: var(--pd-heading); background: var(--pd-surface); }
.pd-nav__link.is-active {
	color: var(--pd-heading); font-weight: 500; border-left-color: var(--pd-accent);
	background: linear-gradient(90deg, rgba(182, 56, 255, .16), rgba(115, 80, 255, .04));
}

/* Table of contents */
.pd-toc-col { position: relative; }
.pd-toc--desktop {
	position: sticky; top: calc(var(--pd-offset) + 20px); max-height: calc(100vh - var(--pd-offset) - 40px);
	overflow-y: auto; padding-left: 16px; border-left: 1px solid var(--pd-border);
}
.pd-toc__title { margin: 0 0 10px; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--pd-heading); }
.pd-toc__list { list-style: none; margin: 0; padding: 0; }
.pd-toc__item a { display: block; padding: 5px 0; color: var(--pd-muted); font-size: 13px; line-height: 1.45; text-decoration: none; transition: color .15s; }
.pd-toc__item--h3 a { padding-left: 12px; font-size: 12.5px; }
.pd-toc__item a:hover, .pd-toc__item a.is-active { color: var(--pd-heading); }
.pd-toc__item a.is-active { color: var(--pd-link); }
.pd-toc--mobile { display: none; margin: 0 0 24px; border: 1px solid var(--pd-border); border-radius: 12px; background: var(--pd-surface); }
.pd-toc--mobile summary { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; cursor: pointer; list-style: none; font-weight: 600; font-size: 14px; color: var(--pd-heading); }
.pd-toc--mobile summary::-webkit-details-marker { display: none; }
.pd-toc--mobile[open] summary .pd-icon { transform: rotate(90deg); }
.pd-toc--mobile .pd-toc__list { padding: 0 16px 12px; }

/* Mobile bar and drawer */
.pd-mobilebar { display: none; }
.pd-overlay { position: fixed; inset: 0; background: rgba(3, 0, 20, .6); backdrop-filter: blur(2px); z-index: 100000; }

/* ------------------------------------------------------------------ Article */

.pd-crumbs ol { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0 0 12px; padding: 0; font-size: 13px; color: var(--pd-muted); }
.pd-crumbs li { display: inline-flex; align-items: center; gap: 6px; }
.pd-crumbs li + li::before { content: "/"; opacity: .5; }
.pd-crumbs a { color: var(--pd-muted); text-decoration: none; }
.pd-crumbs a:hover { color: var(--pd-heading); }
.pd-crumbs [aria-current] { color: var(--pd-text); }

.pd-article__title { color: var(--pd-heading); font-size: clamp(30px, 3.4vw, 44px); line-height: 1.2; letter-spacing: -.035em; font-weight: 600; margin: 0 0 12px; }
.pd-article__meta { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 0 0 28px; padding-bottom: 20px; border-bottom: 1px solid var(--pd-border); color: var(--pd-muted); font-size: 13px; }
.pd-article__meta .pd-icon { width: 15px; height: 15px; }
.pd-muted { color: var(--pd-muted); }

/* Prose (the theme's .prosyo-prose supplies base typography; these fill the gaps) */
.pd-prose { color: var(--pd-body); font-size: 17px; line-height: 1.8; min-width: 0; overflow-wrap: anywhere; }
.pd--light .pd-prose { --prosyo-reading-text: var(--pd-body); --prosyo-reading-heading: var(--pd-heading); --prosyo-reading-link: var(--pd-link); }
.pd-prose > :first-child { margin-top: 0; }
.pd-prose p { margin: 0 0 1.2em; }
.pd-prose :is(h2, h3, h4) { color: var(--pd-heading); position: relative; scroll-margin-top: calc(var(--pd-offset) + 24px); }
.pd-prose h2 { font-size: clamp(24px, 2.3vw, 30px); line-height: 1.3; letter-spacing: -.03em; font-weight: 600; margin: 2.2em 0 .7em; padding-top: .2em; }
.pd-prose h3 { font-size: clamp(19px, 1.8vw, 22px); line-height: 1.35; font-weight: 600; margin: 1.8em 0 .6em; }
.pd-prose h4 { font-size: 17px; font-weight: 600; margin: 1.6em 0 .5em; }
.pd-anchor { margin-left: .4em; color: var(--pd-accent); text-decoration: none; opacity: 0; font-weight: 400; transition: opacity .15s; }
.pd-prose :is(h2, h3, h4):hover .pd-anchor, .pd-anchor:focus { opacity: .8; }
.pd-prose a:not(.pd-anchor):not(.pd-callout__cta) { color: var(--pd-link); text-decoration: underline; text-decoration-color: rgba(214, 165, 255, .35); text-underline-offset: 3px; }
.pd-prose a:not(.pd-anchor):not(.pd-callout__cta):hover { text-decoration-color: currentColor; }
.pd-prose strong { color: var(--pd-heading); font-weight: 600; }
.pd-prose :is(ul, ol) { margin: 0 0 1.4em; padding-left: 1.4em; }
.pd-prose li { margin: .35em 0; }
.pd-prose li > :is(ul, ol) { margin: .35em 0 .2em; }
.pd-prose li::marker { color: var(--pd-accent); }
.pd-prose hr { border: 0; border-top: 1px solid var(--pd-border); margin: 2.4em 0; }
.pd-prose blockquote { margin: 1.4em 0; padding: 14px 20px; border-left: 3px solid var(--pd-accent-2); background: var(--pd-surface); border-radius: 0 12px 12px 0; color: var(--pd-text); font-style: normal; }
.pd-prose blockquote > :last-child { margin-bottom: 0; }
.pd-prose :not(pre) > code {
	font-family: var(--pd-mono); font-size: .86em; padding: .15em .45em; border-radius: 6px;
	background: rgba(182, 56, 255, .12); color: #e9c4ff; border: 1px solid rgba(182, 56, 255, .2); white-space: break-spaces;
}
.pd--light .pd-prose :not(pre) > code { background: #f3ecff; color: #6a1fc2; border-color: #e5d6ff; }
.pd-prose img { max-width: 100%; height: auto; border-radius: 12px; }
.pd-figure { margin: 1.6em 0; }
.pd-figure img, .pd-figure video { display: block; width: 100%; border-radius: 14px; border: 1px solid var(--pd-border); box-shadow: 0 30px 80px -40px rgba(115, 80, 255, .55); background: var(--pd-surface); cursor: zoom-in; }
.pd-figure video { cursor: auto; }
.pd-embed { position: relative; aspect-ratio: 16 / 9; margin: 1.6em 0; border-radius: 14px; overflow: hidden; border: 1px solid var(--pd-border); }
.pd-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/*
 * The Prosyo theme also styles .prosyo-prose. These selectors intentionally
 * outrank its generic editorial rules so rendered Markdown keeps one spacing
 * system and nested components do not gain duplicate margins or padding.
 */
body.prosyo-docs-page .pd .pd-prose > :first-child { margin-top: 0; }
body.prosyo-docs-page .pd .pd-prose > p { margin-block: 0 1.2em; }
body.prosyo-docs-page .pd .pd-prose > h2 {
	font-size: clamp(24px, 2.3vw, 30px); line-height: 1.3; letter-spacing: -.03em;
	margin-block: 2.2em .7em; padding-top: .2em;
}
body.prosyo-docs-page .pd .pd-prose > h3 { font-size: clamp(19px, 1.8vw, 22px); line-height: 1.35; margin-block: 1.8em .6em; }
body.prosyo-docs-page .pd .pd-prose > h4 { font-size: 17px; margin-block: 1.6em .5em; }
body.prosyo-docs-page .pd .pd-prose :is(ul, ol):not([class*="menu"]):not([role="listbox"]) {
	display: block; margin-block: 0 1.4em; padding-inline-start: 1.4em;
}
body.prosyo-docs-page .pd .pd-prose li { margin-block: .35em; padding-inline-start: 0; }
body.prosyo-docs-page .pd .pd-prose li > :is(ul, ol) { margin-block: .35em .2em; }
body.prosyo-docs-page .pd .pd-prose ul.pd-tasklist { padding-inline-start: 0; }
body.prosyo-docs-page .pd .pd-prose > blockquote {
	margin-block: 1.4em; padding: 14px 20px; border: 0; border-left: 3px solid var(--pd-accent-2);
	border-radius: 0 12px 12px 0; background: var(--pd-surface);
}
body.prosyo-docs-page .pd .pd-prose > blockquote > p { margin-block: 0 1.2em; }
body.prosyo-docs-page .pd .pd-prose > blockquote > :last-child { margin-bottom: 0; }
body.prosyo-docs-page .pd .pd-prose > hr { margin-block: 2.4em; }
body.prosyo-docs-page .pd .pd-prose .pd-callout__body > p { margin-block: 0 .6em; }
body.prosyo-docs-page .pd .pd-prose .pd-callout__body > :last-child { margin-bottom: 0; }

/* Tables */
.pd-table { margin: 1.4em 0 1.8em; padding: 0; overflow-x: auto; border: 1px solid var(--pd-border); border-radius: 14px; background: var(--pd-surface); }
.pd-table:focus-visible { outline: 2px solid var(--pd-accent); outline-offset: 2px; }
body.prosyo-docs-page .pd .pd-prose .pd-table > table {
	display: table; width: 100%; min-width: 100%; max-width: none; margin: 0;
	overflow: visible; border: 0; border-collapse: collapse; table-layout: auto;
	font-size: 14.5px; line-height: 1.55;
}
body.prosyo-docs-page .pd .pd-prose .pd-table > table th {
	min-width: 0; text-align: left; font-weight: 600; color: var(--pd-heading);
	background: var(--pd-surface-2); white-space: nowrap;
}
body.prosyo-docs-page .pd .pd-prose .pd-table > table :is(th, td) {
	padding: 11px 16px; border: 0; border-bottom: 1px solid var(--pd-border);
	vertical-align: top; overflow-wrap: anywhere;
}
body.prosyo-docs-page .pd .pd-prose .pd-table > table tbody tr { background: transparent; }
body.prosyo-docs-page .pd .pd-prose .pd-table > table tr:last-child td { border-bottom: 0; }
body.prosyo-docs-page .pd .pd-prose .pd-table > table td { min-width: 120px; color: var(--pd-body); }
body.prosyo-docs-page .pd .pd-prose .pd-table > table td:first-child { color: var(--pd-text); }

/* Code */
.pd-code { margin: 1.4em 0 1.8em; border-radius: 14px; overflow: hidden; border: 1px solid var(--pd-border); background: var(--pd-code-bg); }
.pd-code__bar { display: flex; align-items: center; justify-content: space-between; padding: 8px 10px 8px 16px; border-bottom: 1px solid rgba(255, 255, 255, .08); background: rgba(255, 255, 255, .03); }
.pd-code__lang { font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: #9b97b3; }
.pd-copy { font: 500 12px var(--pd-font); color: #d8d4ee; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); border-radius: 7px; padding: 5px 10px; cursor: pointer; transition: background .15s, color .15s; }
.pd-copy:hover { background: rgba(182, 56, 255, .25); color: #fff; }
.pd-copy.is-done { background: rgba(34, 197, 94, .2); border-color: rgba(34, 197, 94, .4); color: #b9f5cf; }
body.prosyo-docs-page .pd .pd-prose .pd-code > pre {
	display: block; width: 100%; max-width: 100%; margin: 0; padding: 16px 18px;
	overflow-x: auto; background: transparent; border: 0; border-radius: 0;
}
body.prosyo-docs-page .pd .pd-prose .pd-code > pre > code {
	font-family: var(--pd-mono); font-size: 13.5px; line-height: 1.65;
	color: var(--pd-code-text); white-space: pre; background: none; border: 0; padding: 0;
}
.pd-code[data-lang="text"] code { white-space: pre-wrap; }
.pd-code .t-str { color: #a5f3c7; }
.pd-code .t-num { color: #fbc583; }
.pd-code .t-key { color: #d6a5ff; }
.pd-code .t-com { color: #7c7894; font-style: italic; }
.pd-code .t-prop { color: #8ec5ff; }
.pd-code .t-var { color: #ff9ed8; }

/* Callouts */
.pd-callout { position: relative; margin: 1.6em 0; padding: 16px 20px 16px 20px; border-radius: 14px; border: 1px solid var(--pd-border); background: var(--pd-surface); border-left-width: 3px; }
.pd-callout__title { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 6px; }
.pd-callout__body > :last-child { margin-bottom: 0; }
.pd-callout__body p { margin-bottom: .6em; }
.pd-callout--tip { border-left-color: #22c55e; background: linear-gradient(90deg, rgba(34, 197, 94, .09), transparent 70%); }
.pd-callout--tip .pd-callout__title { color: #4ade80; }
.pd-callout--note { border-left-color: #60a5fa; background: linear-gradient(90deg, rgba(96, 165, 250, .09), transparent 70%); }
.pd-callout--note .pd-callout__title { color: #93c5fd; }
.pd-callout--important, .pd-callout--warning { border-left-color: #f5b041; background: linear-gradient(90deg, rgba(245, 176, 65, .1), transparent 70%); }
.pd-callout--important .pd-callout__title, .pd-callout--warning .pd-callout__title { color: #fcd34d; }
.pd-callout--upgrade {
	border-color: rgba(182, 56, 255, .45); border-left-color: var(--pd-accent);
	background: linear-gradient(120deg, rgba(182, 56, 255, .16), rgba(115, 80, 255, .08) 60%, transparent);
	box-shadow: inset 0 0 30px rgba(115, 80, 255, .12);
}
.pd-callout--upgrade .pd-callout__title { color: #e9c4ff; }
.pd-callout__cta { display: inline-flex; margin-top: 10px; padding: 8px 14px; border-radius: 10px; background: var(--button, #863aff); color: #fff !important; font-weight: 600; font-size: 14px; text-decoration: none; }
.pd-callout__cta:hover { filter: brightness(1.1); }
.pd--light .pd-callout--tip .pd-callout__title { color: #15803d; }
.pd--light .pd-callout--note .pd-callout__title { color: #1d4ed8; }
.pd--light .pd-callout--important .pd-callout__title, .pd--light .pd-callout--warning .pd-callout__title { color: #b45309; }
.pd--light .pd-callout--upgrade .pd-callout__title { color: #7a2ed6; }

/* Task lists */
.pd-prose ul.pd-tasklist { list-style: none; padding-left: 0; }
.pd-task { display: flex; gap: 10px; align-items: flex-start; }
.pd-task__box { flex: none; appearance: none; width: 19px; height: 19px; margin: .32em 0 0; border-radius: 6px; border: 1.5px solid rgba(182, 56, 255, .6); background: transparent; cursor: pointer; display: grid; place-content: center; }
.pd-task__box:checked { background: var(--pd-accent); border-color: var(--pd-accent); }
.pd-task__box:checked::after { content: ""; width: 9px; height: 5px; border: 2px solid #fff; border-top: 0; border-right: 0; transform: rotate(-45deg) translate(1px, -1px); }
.pd-task:has(.pd-task__box:checked) { color: var(--pd-muted); text-decoration: line-through; text-decoration-color: rgba(255, 255, 255, .25); }

/* FAQ */
.pd-faq { padding: 16px 0; border-bottom: 1px solid var(--pd-border); }
.pd-faq .pd-faq__q { margin: 0 0 6px; font-size: 17px; }
.pd-faq .pd-faq__a { margin: 0; }

/* CTA, pager, related */
.pd-cta {
	display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap;
	margin: 56px 0 32px; padding: 28px 32px; border-radius: 20px; border: 1px solid rgba(182, 56, 255, .35);
	background: radial-gradient(120% 140% at 0% 0%, rgba(182, 56, 255, .22), transparent 55%), radial-gradient(120% 140% at 100% 100%, rgba(115, 80, 255, .22), transparent 55%), var(--pd-surface);
}
.pd-cta__title { margin: 0 0 4px; color: var(--pd-heading); font-size: 22px; font-weight: 600; letter-spacing: -.02em; }
.pd-cta__body { margin: 0; color: var(--pd-muted); font-size: 15px; }
.pd-btn { display: inline-flex; align-items: center; justify-content: center; padding: 12px 22px; border-radius: 12px; background: linear-gradient(135deg, var(--pd-accent), var(--pd-accent-2)); color: #fff !important; font-weight: 600; text-decoration: none; box-shadow: 0 10px 30px -10px rgba(182, 56, 255, .7); }
.pd-btn:hover { filter: brightness(1.08); }

.pd-pager { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 40px 0; }
.pd-pager__link { display: flex; flex-direction: column; gap: 6px; padding: 18px 20px; border-radius: 16px; border: 1px solid var(--pd-border); background: var(--pd-surface); text-decoration: none; transition: border-color .15s, transform .15s; }
.pd-pager__link:hover { border-color: rgba(182, 56, 255, .5); transform: translateY(-2px); }
.pd-pager__link--next { text-align: right; align-items: flex-end; }
.pd-pager__label { display: inline-flex; align-items: center; gap: 6px; color: var(--pd-muted); font-size: 13px; }
.pd-pager__label .pd-icon { width: 15px; height: 15px; }
.pd-pager__title { color: var(--pd-heading); font-weight: 600; font-size: 16px; line-height: 1.35; }

.pd-related { margin-top: 48px; }
.pd-related__title { color: var(--pd-heading); font-size: 20px; font-weight: 600; margin: 0 0 16px; }
.pd-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.pd-cards__group { grid-column: 1 / -1; margin: 16px 0 0; font-size: 14px; letter-spacing: .06em; text-transform: uppercase; color: var(--pd-muted); }
.pd-card { display: flex; flex-direction: column; gap: 8px; padding: 20px; border-radius: 16px; border: 1px solid var(--pd-border); background: var(--pd-surface); text-decoration: none; transition: border-color .15s, transform .15s, background .15s; }
.pd-card:hover { border-color: rgba(182, 56, 255, .5); transform: translateY(-2px); background: var(--pd-surface-2); }
.pd-card__title { color: var(--pd-heading); font-weight: 600; font-size: 16px; line-height: 1.35; }
.pd-card__text { color: var(--pd-muted); font-size: 14px; line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.pd-card__more { margin-top: auto; display: inline-flex; align-items: center; gap: 6px; color: var(--pd-link); font-size: 13px; font-weight: 500; }
.pd-card__more .pd-icon { width: 15px; height: 15px; }

/* ------------------------------------------------------------------ Home */

.pd-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; max-width: 980px; margin: 0 auto 56px; }
.pd-article .pd-chips { justify-content: flex-start; max-width: none; margin: 0 0 40px; }
.pd-chip { padding: 8px 16px; border-radius: 99px; border: 1px solid var(--pd-border); background: var(--pd-surface); color: var(--pd-text); font-size: 14px; text-decoration: none; transition: border-color .15s, color .15s; }
.pd-chip:hover { border-color: rgba(182, 56, 255, .5); color: var(--pd-heading); }
.pd-sections { display: grid; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); gap: 20px; }
.pd-section-card { display: flex; flex-direction: column; padding: 24px; border-radius: 20px; border: 1px solid var(--pd-border); background: var(--pd-surface); scroll-margin-top: calc(var(--pd-offset) + 24px); transition: border-color .2s; }
.pd-section-card:hover { border-color: rgba(182, 56, 255, .35); }
.pd-section-card__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.pd-section-card__title { margin: 0; font-size: 20px; font-weight: 600; letter-spacing: -.02em; }
.pd-section-card__title a { color: var(--pd-heading); text-decoration: none; }
.pd-section-card__count { flex: none; font-size: 12px; color: var(--pd-muted); padding: 3px 10px; border-radius: 99px; background: var(--pd-surface-2); }
.pd-section-card__list { list-style: none; margin: 0 0 12px; padding: 0; }
.pd-section-card__list a { display: flex; align-items: center; gap: 10px; padding: 7px 0; color: var(--pd-muted); font-size: 14.5px; text-decoration: none; transition: color .15s; }
.pd-section-card__list a:hover { color: var(--pd-heading); }
.pd-section-card__list .pd-icon { width: 16px; height: 16px; color: var(--pd-accent); opacity: .8; }
.pd-section-card__more { margin-top: auto; display: inline-flex; align-items: center; gap: 6px; color: var(--pd-link); font-size: 14px; font-weight: 500; text-decoration: none; }
.pd-section-card__more .pd-icon { width: 15px; height: 15px; }
.pd-empty { text-align: center; color: var(--pd-muted); padding: 40px 0 80px; }

/* Search results page */
.pd-results { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.pd-result a { display: grid; gap: 4px; padding: 18px 20px; border-radius: 14px; border: 1px solid var(--pd-border); background: var(--pd-surface); text-decoration: none; }
.pd-result a:hover { border-color: rgba(182, 56, 255, .5); }
.pd-result__section { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--pd-muted); }
.pd-result__title { color: var(--pd-heading); font-weight: 600; }
.pd-result__text { color: var(--pd-muted); font-size: 14px; }

/* ------------------------------------------------------------------ Search palette */

.pd-search[hidden] { display: none; }
.pd-search { position: fixed; inset: 0; z-index: 100002; display: flex; justify-content: center; align-items: flex-start; padding: min(12vh, 120px) 16px 16px; }
.pd-search__backdrop { position: absolute; inset: 0; background: rgba(3, 0, 20, .72); backdrop-filter: blur(6px); animation: pd-fade .15s ease-out; }
.pd-search__panel {
	position: relative; width: min(680px, 100%); max-height: min(640px, 80vh); display: flex; flex-direction: column;
	border-radius: 20px; border: 1px solid rgba(182, 56, 255, .35); background: #0c0820; color: #f3f3f3;
	box-shadow: 0 40px 120px -20px rgba(115, 80, 255, .55), inset 0 0 40px rgba(115, 80, 255, .1);
	overflow: hidden; animation: pd-pop .18s cubic-bezier(.2, .9, .3, 1.2);
}
.pd--light .pd-search__panel { background: #fff; color: #1d1a2b; }
.pd-search__panel:focus-within {
	border-color: var(--pd-accent);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--pd-accent) 18%, transparent), 0 40px 120px -20px rgba(115, 80, 255, .55), inset 0 0 40px rgba(115, 80, 255, .1);
}
.pd-search__head { display: flex; align-items: center; gap: 12px; padding: 0 16px 0 20px; height: 64px; border-bottom: 1px solid rgba(255, 255, 255, .08); }
.pd-search__head .pd-icon { width: 22px; height: 22px; color: var(--pd-accent); }
.pd-search__input { flex: 1; min-width: 0; height: 100%; border: 0; outline: 0; background: transparent; color: inherit; font: 500 17px var(--pd-font); -webkit-appearance: none; appearance: none; }
input#pd-search-input:focus-visible { outline: 0; }
.pd-search__input::-webkit-search-cancel-button { display: none; }
.pd-search__esc { font: 500 12px var(--pd-font); color: #9b97b3; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); border-radius: 7px; padding: 5px 9px; cursor: pointer; }
.pd-search__results {
	overflow-y: auto; padding: 8px; overscroll-behavior: contain;
	scrollbar-color: var(--pd-scrollbar-thumb) var(--pd-scrollbar-track);
}
.pd-search__group { padding: 10px 12px 6px; font-size: 11.5px; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; color: #8e8aa6; }
.pd-search__item { display: flex; gap: 12px; align-items: flex-start; padding: 11px 12px; border-radius: 12px; color: inherit; text-decoration: none; cursor: pointer; }
.pd-search__item .pd-icon { margin-top: 2px; color: #8e8aa6; }
.pd-search__item.is-active, .pd-search__item:hover { background: linear-gradient(90deg, rgba(182, 56, 255, .22), rgba(115, 80, 255, .1)); }
.pd-search__item.is-active .pd-icon { color: #e9c4ff; }
.pd-search__text { display: grid; gap: 2px; min-width: 0; }
.pd-search__title { font-weight: 600; font-size: 15px; line-height: 1.35; }
.pd-search__sub { font-size: 13px; line-height: 1.45; color: #9b97b3; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.pd-search__item mark { background: rgba(182, 56, 255, .35); color: inherit; border-radius: 3px; padding: 0 1px; }
.pd-search__empty { padding: 28px 16px; text-align: center; color: #9b97b3; }
.pd-search__foot { display: flex; gap: 18px; padding: 10px 18px; border-top: 1px solid rgba(255, 255, 255, .08); font-size: 12px; color: #8e8aa6; }
.pd-search__foot kbd { margin-right: 3px; padding: 2px 5px; }
html.pd-lock, html.pd-lock body { overflow: hidden !important; }

@keyframes pd-fade { from { opacity: 0; } }
@keyframes pd-pop { from { opacity: 0; transform: translateY(8px) scale(.98); } }

/* Image lightbox */
.pd-lightbox { position: fixed; inset: 0; z-index: 100003; display: flex; align-items: center; justify-content: center; padding: 24px; background: rgba(3, 0, 20, .9); cursor: zoom-out; animation: pd-fade .15s; }
.pd-lightbox img { max-width: 100%; max-height: 100%; border-radius: 12px; box-shadow: 0 40px 120px rgba(0, 0, 0, .6); }

.pd-toast { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 100004; padding: 10px 16px; border-radius: 10px; background: #1b1438; color: #fff; font-size: 14px; border: 1px solid rgba(182, 56, 255, .4); animation: pd-pop .18s; }

/* ------------------------------------------------------------------ Responsive */

@media (max-width: 1199px) {
	.pd-shell { grid-template-columns: 240px minmax(0, 1fr); gap: 40px; }
	.pd-toc-col { display: none; }
	.pd-toc--mobile { display: block; }
}

@media (max-width: 991px) {
	.pd-shell, .pd-view--section .pd-shell, .pd-view--search .pd-shell, .pd-view--not-found .pd-shell { grid-template-columns: minmax(0, 1fr); padding: 0 16px 72px; }
	.pd-main { max-width: none; }

	.pd-mobilebar {
		display: flex; gap: 8px; position: sticky; top: var(--pd-offset); z-index: 50;
		padding: 10px 16px; margin: 0 0 20px; background: color-mix(in srgb, var(--pd-bg) 88%, transparent);
		backdrop-filter: blur(10px); border-bottom: 1px solid var(--pd-border);
	}
	.pd-mobilebar__btn { display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: 10px; border: 1px solid var(--pd-border); background: var(--pd-surface); color: var(--pd-text); font: 500 14px var(--pd-font); cursor: pointer; }
	.pd-mobilebar__btn:first-child { flex: 1; }

	.pd-sidebar {
		position: fixed; top: 0; left: 0; bottom: 0; width: min(320px, 86vw); height: 100vh; height: 100dvh; max-height: none; z-index: 100001;
		padding: 20px 16px 32px; background: var(--pd-bg); border-right: 1px solid var(--pd-border);
		transform: translateX(-102%); transition: transform .25s ease; box-shadow: 30px 0 80px rgba(0, 0, 0, .5);
	}
	.pd-sidebar.is-open { transform: none; }
	.pd-sidebar__close { display: inline-flex; padding: 6px; border: 0; background: none; color: var(--pd-muted); cursor: pointer; }
	.pd-sidebar__search { display: none; }
	.pd-hero--compact .pd-hero__gap { padding-bottom: 40px; }
}

@media (max-width: 767px) {
	.pd-shell, .pd-wide { padding-left: 16px; padding-right: 16px; }
	.pd-wide { padding-top: 40px; }
	.pd-chips { margin-bottom: 36px; }
	.pd-searchbar { height: 54px; margin-top: 24px; padding-left: 16px; }
	.pd-searchbar__input { font-size: 16px; }
	.pd-searchbar .pd-kbd { display: none; }
	.pd-pager { grid-template-columns: 1fr; }
	.pd-cta { padding: 22px; }
	.pd-sections { grid-template-columns: 1fr; }
	.pd-prose { font-size: 16px; }
	body.prosyo-docs-page .pd .pd-prose .pd-table > table { font-size: 13.5px; }
	body.prosyo-docs-page .pd .pd-prose .pd-table > table :is(th, td) { padding: 9px 12px; }
	body.prosyo-docs-page .pd .pd-prose .pd-code > pre { padding: 14px; }
	.pd-search { padding: 12px; }
	.pd-search__panel { max-height: 86vh; }
	.pd-search__foot { display: none; }
}

@media (prefers-reduced-motion: reduce) {
	.pd *, .pd *::before, .pd *::after { animation: none !important; transition: none !important; }
}

@media print {
	.pd-sidebar, .pd-toc-col, .pd-mobilebar, .pd-searchbar, .pd-pager, .pd-related, .pd-cta, .pd-search { display: none !important; }
	.pd-shell { display: block; }
}
