/**
 * Billanz API Docs — layout, sidebar and reference styles.
 *
 * Theming contract (spec "Theming contract"): everything reads the internal
 * --bzdocs-* properties, which resolve theme knobs
 * (settings.custom.apiDocs.* → --wp--custom--api-docs--*), then core presets,
 * then plain fallbacks, so the docs look right on any FSE theme.
 * Method badge colours are semantic and deliberately NOT themeable.
 *
 * Contrast rule: the accent is used as TEXT only on white. On the gray
 * active/hover background (and tinted callouts) text stays --bzdocs-text and
 * the accent marks state with a bar, so a mid-tone brand accent (4.5:1 on
 * white only) never fails WCAG AA there.
 *
 * The tokens are also defined on the block wrappers so the reference and
 * endpoint blocks render correctly outside the docs template (the editor, a
 * theme template override).
 */

.bzdocs,
.bzdocs-reference,
.bzdocs-endpoint,
.bzdocs-search,
.bzdocs-search-dialog {
	--bzdocs-font: var(--wp--preset--font-family--body, system-ui, sans-serif);
	--bzdocs-font-mono: var(--wp--custom--api-docs--font-mono, var(--wp--preset--font-family--mono, ui-monospace, monospace));
	--bzdocs-accent: var(--wp--custom--api-docs--accent, var(--wp--preset--color--primary, #185fa5));
	--bzdocs-code-bg: var(--wp--custom--api-docs--code-bg, #16161a);
	--bzdocs-sidebar-w: var(--wp--custom--api-docs--sidebar-width, 260px);
	--bzdocs-border: var(--wp--custom--api-docs--border, var(--wp--preset--color--gray-lines, #e4e4e7));

	/* Internal only (not part of the public theming surface). */
	--bzdocs-text: var(--wp--preset--color--black, #18181b);
	--bzdocs-muted: var(--wp--preset--color--gray-text, #52525b);
	--bzdocs-hover-bg: var(--wp--preset--color--gray-bg, #f4f4f5);
	--bzdocs-sticky-top: 1.5rem;

	font-family: var(--bzdocs-font);
	color: var(--bzdocs-text);
}

/* ------------------------------------------------------------------ */
/* Page grid: sidebar | content                                        */
/* ------------------------------------------------------------------ */

.bzdocs-layout {
	box-sizing: border-box;
	display: grid;
	grid-template-columns: var(--bzdocs-sidebar-w) minmax(0, 1fr);
	gap: 3rem;
	width: 100%;
	max-width: var(--wp--style--global--wide-size, 1280px);
	margin-inline: auto !important; /* beat the theme's root layout margins */
	padding: 2.5rem clamp(1rem, 3vw, 2rem) 4rem;
}

.bzdocs-content {
	min-width: 0;
	max-width: 52rem;
}

.bzdocs-content > .wp-block-post-title {
	margin-top: 0;
}

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

.bzdocs-sidebar {
	position: sticky;
	top: var(--bzdocs-sticky-top);
	align-self: start;
	max-height: calc(100vh - 2 * var(--bzdocs-sticky-top));
	overflow-y: auto;
	overscroll-behavior: contain;
	padding-right: 1rem;
	border-right: 1px solid var(--bzdocs-border);
	font-family: var(--bzdocs-font);
	font-size: 0.875rem;
	line-height: 1.4;
}

.admin-bar .bzdocs-sidebar {
	top: calc(var(--wp-admin--admin-bar--height, 32px) + var(--bzdocs-sticky-top));
	max-height: calc(100vh - var(--wp-admin--admin-bar--height, 32px) - 2 * var(--bzdocs-sticky-top));
}

.bzdocs-sidebar__toggle {
	display: none;
}

.bzdocs-nav,
.bzdocs-nav__ops {
	list-style: none;
	margin: 0;
	padding: 0;
}

.bzdocs-nav--depth-0 > .bzdocs-nav__item--section + .bzdocs-nav__item,
.bzdocs-nav--depth-0 > .bzdocs-nav__item + .bzdocs-nav__item--section {
	margin-top: 1.5rem;
}

.bzdocs-nav--depth-2 {
	padding-left: 0.75rem;
}

.bzdocs-nav__label {
	display: block;
	margin-bottom: 0.4rem;
	padding: 0 0.6rem;
	color: var(--bzdocs-muted);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.bzdocs-nav__link,
.bzdocs-nav__op-link {
	display: block;
	padding: 0.35rem 0.6rem;
	border-radius: 6px;
	color: var(--bzdocs-text);
	text-decoration: none;
}

.bzdocs-nav__op-link.is-active {
	background: var(--bzdocs-hover-bg);
	color: var(--bzdocs-text);
	box-shadow: inset 2px 0 0 var(--bzdocs-accent);
}

.bzdocs-nav__op-link.is-active .bzdocs-nav__op-label {
	font-weight: 600;
}

.bzdocs-nav__link:hover,
.bzdocs-nav__op-link:hover {
	background: var(--bzdocs-hover-bg);
	color: var(--bzdocs-text);
}

.bzdocs-nav__link:focus-visible,
.bzdocs-nav__op-link:focus-visible,
.bzdocs-nav__summary:focus-visible {
	outline: 2px solid var(--bzdocs-accent);
	outline-offset: 1px;
}

.bzdocs-nav__link[aria-current="page"] {
	background: var(--bzdocs-hover-bg);
	color: var(--bzdocs-text);
	font-weight: 600;
	box-shadow: inset 2px 0 0 var(--bzdocs-accent);
}

/* Reference entries: the link sits inside <summary>; the marker toggles. */
.bzdocs-nav__summary {
	display: flex;
	align-items: center;
	border-radius: 6px;
	cursor: pointer;
	list-style: none;
}

.bzdocs-nav__summary::-webkit-details-marker {
	display: none;
}

.bzdocs-nav__summary > .bzdocs-nav__link {
	flex: 1;
}

/* Current reference: highlight the whole row, chevron included. */
.bzdocs-nav__summary:has(> [aria-current="page"]) {
	background: var(--bzdocs-hover-bg);
	box-shadow: inset 2px 0 0 var(--bzdocs-accent);
}

.bzdocs-nav__summary > .bzdocs-nav__link[aria-current="page"] {
	background: none;
	box-shadow: none;
}

.bzdocs-nav__summary::after {
	content: "";
	flex: none;
	width: 0.45rem;
	height: 0.45rem;
	margin: 0 0.6rem 0 0.25rem;
	border-right: 1.5px solid var(--bzdocs-muted);
	border-bottom: 1.5px solid var(--bzdocs-muted);
	transform: rotate(-45deg);
	transition: transform 0.15s ease;
}

.bzdocs-nav__details[open] > .bzdocs-nav__summary::after {
	transform: rotate(45deg);
}

.bzdocs-nav__ops {
	margin: 0.15rem 0 0.4rem 0.6rem;
	padding-left: 0.4rem;
	border-left: 1px solid var(--bzdocs-border);
}

.bzdocs-nav__op-link {
	display: flex;
	gap: 0.5rem;
	align-items: baseline;
	padding-block: 0.3rem;
	color: var(--bzdocs-muted);
	font-size: 0.8125rem;
}

.bzdocs-nav__op-link .bzdocs-method {
	flex: none;
	min-width: 3.1rem;
	text-align: center;
}

.bzdocs-nav__op-label {
	min-width: 0;
	overflow-wrap: anywhere; /* long labels wrap (never truncated) */
}

/* ------------------------------------------------------------------ */
/* Method badges (semantic, fixed)                                     */
/* ------------------------------------------------------------------ */

.bzdocs-method {
	display: inline-block;
	padding: 0.2em 0.45em;
	border-radius: 4px;
	font-family: var(--bzdocs-font-mono);
	font-size: 0.6875rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: #3f3f46;
	background: #f4f4f5;
}

.bzdocs-method--get { color: #15803d; background: #dcfce7; }
.bzdocs-method--post { color: #1d4ed8; background: #dbeafe; }
.bzdocs-method--put,
.bzdocs-method--patch { color: #b45309; background: #fef3c7; }
.bzdocs-method--delete { color: #b91c1c; background: #fee2e2; }

.bzdocs-badge {
	display: inline-flex;
	gap: 0.3em;
	align-items: center;
	padding: 0.15em 0.55em;
	border: 1px solid var(--bzdocs-border);
	border-radius: 999px;
	color: var(--bzdocs-muted);
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1.5;
}

.bzdocs-badge code {
	padding: 0;
	background: none;
	color: inherit;
	font-family: var(--bzdocs-font-mono);
	font-size: 0.95em;
}

.bzdocs-badge a {
	color: inherit;
	text-decoration: underline dotted;
	text-underline-offset: 0.2em;
}

.bzdocs-badge a:hover,
.bzdocs-badge a:focus-visible {
	text-decoration-style: solid;
}

/* Badge colours are semantic and fixed (like the method badges). */
.bzdocs-badge--public { border-color: #bbf7d0; color: #15803d; background: #f0fdf4; }
.bzdocs-badge--token { border-color: #e4e4e7; color: #3f3f46; background: #f4f4f5; }
.bzdocs-badge--permission { border-color: #c4b5fd; color: #6d28d9; background: transparent; }
.bzdocs-badge--rate-limit { border-color: #e4e4e7; color: #52525b; background: transparent; }
.bzdocs-badge--accepted { border-color: #bfdbfe; color: #1d4ed8; background: #eff6ff; }

.bzdocs-badge--deprecated {
	border-color: #fcd34d;
	color: #92400e;
	background: #fffbeb;
}

.bzdocs-sr-only {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	border: 0;
	white-space: nowrap;
}

/* ------------------------------------------------------------------ */
/* Reference                                                           */
/* ------------------------------------------------------------------ */

.bzdocs-reference__intro {
	margin-bottom: 1.5rem;
	color: var(--bzdocs-muted);
}

.bzdocs-op {
	padding-block: 2rem;
	border-top: 1px solid var(--bzdocs-border);
	scroll-margin-top: var(--bzdocs-sticky-top);
}

.admin-bar .bzdocs-op {
	scroll-margin-top: calc(var(--wp-admin--admin-bar--height, 32px) + var(--bzdocs-sticky-top));
}

/* The prose | code grid lives in code-panel.css (loaded with the reference block only). */

.bzdocs-op__main {
	min-width: 0;
}

.bzdocs-op__title {
	margin: 0 0 0.6rem;
	font-size: 1.375rem;
	line-height: 1.3;
}

.bzdocs-op__permalink {
	margin-left: 0.35rem;
	color: var(--bzdocs-muted);
	font-weight: 400;
	text-decoration: none;
	opacity: 0;
	transition: opacity 0.15s ease;
}

.bzdocs-op__title:hover .bzdocs-op__permalink,
.bzdocs-op__permalink:focus-visible {
	opacity: 1;
}

.bzdocs-op__endpoint {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
	margin: 0 0 0.75rem;
}

.bzdocs-op__path {
	padding: 0;
	background: none;
	font-family: var(--bzdocs-font-mono);
	font-size: 0.875rem;
	overflow-wrap: anywhere;
}

.bzdocs-op__summary {
	margin: 0 0 0.75rem;
	color: var(--bzdocs-muted);
}

.bzdocs-copy {
	padding: 0.15rem 0.55rem;
	border: 1px solid var(--bzdocs-border);
	border-radius: 6px;
	color: var(--bzdocs-muted);
	background: transparent;
	font: inherit;
	font-size: 0.75rem;
	line-height: 1.5;
	cursor: pointer;
}

.bzdocs-copy:hover,
.bzdocs-copy.is-copied {
	border-color: var(--bzdocs-accent);
	color: var(--bzdocs-accent);
}

.bzdocs-copy:focus-visible,
.bzdocs-op a:focus-visible,
.bzdocs-op summary:focus-visible {
	outline: 2px solid var(--bzdocs-accent);
	outline-offset: 2px;
}

/* ------------------------------------------------------------------ */
/* Prose (spec Markdown)                                               */
/* ------------------------------------------------------------------ */

.bzdocs-prose > :first-child { margin-top: 0; }
.bzdocs-prose > :last-child { margin-bottom: 0; }

.bzdocs-prose p,
.bzdocs-prose ul,
.bzdocs-prose ol {
	margin: 0 0 0.75em;
}

.bzdocs-prose ul,
.bzdocs-prose ol {
	padding-left: 1.25em;
}

.bzdocs-prose li + li {
	margin-top: 0.25em;
}

.bzdocs-op code,
.bzdocs-reference__intro code {
	padding: 0.1em 0.3em;
	border-radius: 4px;
	background: var(--bzdocs-hover-bg);
	font-family: var(--bzdocs-font-mono);
	font-size: 0.875em;
	overflow-wrap: anywhere;
}

.bzdocs-table-wrap {
	max-width: 100%;
	margin: 0 0 0.75em;
	overflow-x: auto;
}

.bzdocs-table-wrap table {
	border-collapse: collapse;
	font-size: 0.875rem;
}

.bzdocs-table-wrap th,
.bzdocs-table-wrap td {
	padding: 0.4rem 0.75rem;
	border: 1px solid var(--bzdocs-border);
	text-align: left;
	vertical-align: top;
}

.bzdocs-op__description {
	margin-bottom: 1rem;
}

/* Pin sizes/weights so themes with a large body size (Twenty Twenty-Five)
   or light headings keep the reference's rhythm. */
.bzdocs-op__summary,
.bzdocs-op__description {
	font-size: 1rem;
	line-height: 1.6;
}

.bzdocs-op__title,
.bzdocs-op__section-title {
	font-weight: 600;
}

/* ------------------------------------------------------------------ */
/* Badges row, sections                                                */
/* ------------------------------------------------------------------ */

.bzdocs-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin: 0 0 1.5rem;
	padding: 0;
	list-style: none;
}

.bzdocs-op__section {
	margin-top: 1.75rem;
}

.bzdocs-op__section-title {
	margin: 0 0 0.75rem;
	padding-bottom: 0.4rem;
	border-bottom: 1px solid var(--bzdocs-border);
	font-size: 1rem;
	line-height: 1.4;
}

.bzdocs-params__group + .bzdocs-params__group {
	margin-top: 1.25rem;
}

.bzdocs-params__title {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: baseline;
	margin: 0 0 0.25rem;
	color: var(--bzdocs-muted);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	line-height: 1.4;
	text-transform: uppercase;
}

.bzdocs-params__title .bzdocs-params__media {
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
}

.bzdocs-params__description {
	margin-bottom: 0.5rem;
	font-size: 0.875rem;
}

/* ------------------------------------------------------------------ */
/* Field lists (parameters, schemas)                                   */
/* ------------------------------------------------------------------ */

.bzdocs-fields {
	margin: 0;
	padding: 0;
	list-style: none;
}

.bzdocs-field {
	padding: 0.7rem 0;
	border-bottom: 1px solid var(--bzdocs-border);
	font-size: 0.875rem;
	line-height: 1.5;
}

.bzdocs-field:last-child {
	border-bottom: 0;
}

.bzdocs-field__head {
	display: flex;
	flex-wrap: wrap;
	gap: 0.2rem 0.6rem;
	align-items: baseline;
}

.bzdocs-op .bzdocs-field__name {
	padding: 0;
	background: none;
	color: var(--bzdocs-text);
	font-size: 0.875rem;
	font-weight: 600;
}

.bzdocs-field__type {
	color: var(--bzdocs-muted);
	font-family: var(--bzdocs-font-mono);
	font-size: 0.8125rem;
}

.bzdocs-required {
	color: #b91c1c;
	font-size: 0.75rem;
	font-weight: 600;
}

.bzdocs-field__description,
.bzdocs-field__constraints,
.bzdocs-field__enum,
.bzdocs-field__guide,
.bzdocs-field__note,
.bzdocs-field__alternatives {
	margin: 0.3rem 0 0;
}

.bzdocs-field__note {
	color: var(--bzdocs-muted);
	font-style: italic;
}

.bzdocs-field__constraints {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 1rem;
	padding: 0;
	list-style: none;
}

.bzdocs-field__constraint-label {
	margin: 0 0.35rem 0 0;
	color: var(--bzdocs-muted);
	font-size: 0.8125rem;
}

.bzdocs-field__enum code,
.bzdocs-field__enum-more code {
	display: inline-block;
	margin: 0 0.25rem 0.25rem 0;
}

.bzdocs-field__enum-more {
	display: inline;
}

.bzdocs-field__enum-more[open] {
	display: block;
	margin-top: 0.25rem;
}

.bzdocs-field__enum-more > summary,
.bzdocs-field__nested > summary,
.bzdocs-response__schema > summary {
	width: fit-content;
	color: var(--bzdocs-accent);
	font-size: 0.8125rem;
	font-weight: 600;
	cursor: pointer;
}

.bzdocs-field__enum-more > summary {
	display: inline;
}

.bzdocs-field__nested {
	margin-top: 0.5rem;
}

.bzdocs-field__nested > .bzdocs-fields,
.bzdocs-field__nested > .bzdocs-field__alternatives {
	margin: 0.4rem 0 0 0.3rem;
	padding-left: 0.9rem;
	border-left: 2px solid var(--bzdocs-border);
}

.bzdocs-field__alternative > summary .bzdocs-field__type {
	margin-left: 0.4rem;
	font-weight: 400;
}

/* ------------------------------------------------------------------ */
/* Responses                                                           */
/* ------------------------------------------------------------------ */

.bzdocs-responses,
.bzdocs-errors {
	margin: 0;
	padding: 0;
	list-style: none;
}

.bzdocs-response {
	padding: 0.75rem 0;
	border-bottom: 1px solid var(--bzdocs-border);
	font-size: 0.875rem;
}

.bzdocs-response__head {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
	margin-bottom: 0.3rem;
}

.bzdocs-op .bzdocs-status {
	padding: 0.1em 0.4em;
	border-radius: 4px;
	color: #b91c1c;
	background: #fef2f2;
	font-size: 0.8125rem;
	font-weight: 700;
}

.bzdocs-op .is-success .bzdocs-status {
	color: #15803d;
	background: #f0fdf4;
}

/* 202: the call succeeded but the outcome arrives later. */
.bzdocs-response.is-accepted {
	margin: 0.5rem 0;
	padding: 0.75rem 1rem;
	border: 1px solid #bfdbfe;
	border-left-width: 3px;
	border-radius: 6px;
	background: #f8fbff;
}

/* Accent text only on white: toggles inside the tinted 202 callout, and code
   chips (gray background) inside accent-coloured toggles, use the text colour. */
.bzdocs-response.is-accepted summary,
.bzdocs-op summary code {
	color: var(--bzdocs-text);
}

.bzdocs-op .is-accepted .bzdocs-status {
	color: #1d4ed8;
	background: #dbeafe;
}

.bzdocs-response__headers {
	margin: 0.5rem 0 0;
}

.bzdocs-response__headers dt {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: baseline;
}

.bzdocs-response__headers dd {
	margin: 0.15rem 0 0.5rem;
}

.bzdocs-response__schema {
	margin-top: 0.5rem;
}

.bzdocs-response__schema > .bzdocs-fields {
	margin-top: 0.25rem;
}

.bzdocs-error {
	display: grid;
	grid-template-columns: 3.25rem minmax(0, 1fr) auto;
	gap: 0.3rem 0.75rem;
	align-items: baseline;
	padding: 0.5rem 0;
	border-bottom: 1px solid var(--bzdocs-border);
	font-size: 0.8125rem;
	line-height: 1.5;
}

.bzdocs-error:last-child {
	border-bottom: 0;
}

.bzdocs-error__codes code {
	display: inline-block;
	margin: 0 0.25rem 0.2rem 0;
}

.bzdocs-error__codes + .bzdocs-error__note {
	display: block;
	color: var(--bzdocs-muted);
}

.bzdocs-error__shape {
	color: var(--bzdocs-muted);
	font-family: var(--bzdocs-font-mono);
	font-size: 0.75rem;
	white-space: nowrap;
}

.bzdocs-error__shape a {
	color: inherit;
}

.bzdocs-error__shape a:hover {
	color: var(--bzdocs-accent);
}

.bzdocs-notice {
	padding: 1rem 1.25rem;
	border: 1px solid var(--bzdocs-border);
	border-radius: 8px;
	color: var(--bzdocs-muted);
	background: var(--bzdocs-hover-bg);
}

.bzdocs-notice.is-warning {
	border-color: #f0b429;
	color: #7a4d00;
	background: #fff8e6;
}

/* ------------------------------------------------------------------ */
/* Endpoint embed (one operation inside a guide)                       */
/* ------------------------------------------------------------------ */

.bzdocs-endpoint {
	margin-block: 2rem;
}

.bzdocs-endpoint > .bzdocs-op {
	padding-block: 1.5rem 0;
}

.bzdocs-endpoint__more {
	margin: 1rem 0 0;
	padding-bottom: 1.5rem;
	border-bottom: 1px solid var(--bzdocs-border);
	font-size: 0.875rem;
}

.bzdocs-endpoint__more a {
	color: var(--bzdocs-accent);
	font-weight: 600;
	text-decoration: none;
}

.bzdocs-endpoint__more a:hover,
.bzdocs-endpoint__more a:focus-visible {
	text-decoration: underline;
}

/* ------------------------------------------------------------------ */
/* Guides: "On this page" TOC (>= 3 headings) and prev/next pager      */
/* ------------------------------------------------------------------ */

/* The content column is a size container: the TOC column (and, in
   code-panel.css, the prose|code grid) depend on the room the content
   actually has, not on the viewport. */
.bzdocs-content {
	container-type: inline-size;
	container-name: bzdocs-page bzdocs-entry;
}

/* The entry's own content box: what an operation's prose|code grid
   measures (a guide with a TOC column leaves less room than the page). */
.bzdocs-content .wp-block-post-content {
	container-type: inline-size;
	container-name: bzdocs-entry;
}

.bzdocs-content:has(> .bzdocs-guide) {
	max-width: 70rem; /* prose (52rem) + the TOC column */
}

/* Prose headings at documentation scale: themes size h2/h3 for marketing
   pages (SupportHost: 32/28px under a 40px page title). Core heading blocks
   only — operation titles and section labels keep their own sizes. Family
   and weight stay the theme's. */
.bzdocs-content .wp-block-post-content .wp-block-heading {
	margin-bottom: 0.375rem;
	line-height: 1.3;
}

.bzdocs-content .wp-block-post-content h2.wp-block-heading {
	margin-top: 2rem;
	margin-bottom: 0.5rem;
	font-size: 1.625rem;
	line-height: 1.25;
}

.bzdocs-content .wp-block-post-content h3.wp-block-heading {
	margin-top: 1.5rem;
	font-size: 1.25rem;
}

.bzdocs-content .wp-block-post-content h4.wp-block-heading {
	margin-top: 1.25rem;
	font-size: 1rem;
}

.bzdocs-content .wp-block-post-content > .wp-block-heading:first-child {
	margin-top: 0;
}

/* Tables in prose: URLs and paths (`code.is-path`, marked server-side by
   TableCode) never break; other code wraps like text. A table still too wide
   for a small screen scrolls inside its figure, not the page. */
.bzdocs-content .wp-block-table {
	max-width: 100%;
	overflow-x: auto;
}

.bzdocs-content .wp-block-table table.has-fixed-layout {
	table-layout: auto;
}

.bzdocs-content .wp-block-table code.is-path {
	white-space: nowrap;
	word-break: normal;
	overflow-wrap: normal;
}

.bzdocs-content :is(h2, h3)[id] {
	scroll-margin-top: calc(var(--bzdocs-sticky-top) + 0.5rem);
}

.admin-bar .bzdocs-content :is(h2, h3)[id] {
	scroll-margin-top: calc(var(--wp-admin--admin-bar--height, 32px) + var(--bzdocs-sticky-top) + 0.5rem);
}

.bzdocs-toc {
	margin: 0 0 2rem;
	border: 1px solid var(--bzdocs-border);
	border-radius: 8px;
	font-size: 0.875rem;
}

.bzdocs-toc__summary {
	padding: 0.75rem 1rem;
	font-weight: 600;
	cursor: pointer;
}

.bzdocs-toc__summary:focus-visible {
	outline: 2px solid var(--bzdocs-accent);
	outline-offset: 2px;
}

.bzdocs-toc__title {
	display: none;
}

.bzdocs-toc__nav {
	padding: 0 1rem 0.75rem;
}

.bzdocs-toc__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.bzdocs-toc__list--sub {
	padding-left: 0.875rem;
}

.bzdocs-toc__link {
	display: block;
	padding: 0.25rem 0 0.25rem 0.75rem;
	border-left: 2px solid var(--bzdocs-border);
	color: var(--bzdocs-muted);
	line-height: 1.4;
	text-decoration: none;
}

.bzdocs-toc__link:hover {
	color: var(--bzdocs-text);
}

.bzdocs-toc__link:focus-visible {
	outline: 2px solid var(--bzdocs-accent);
	outline-offset: 1px;
}

.bzdocs-toc__link.is-active {
	border-left-color: var(--bzdocs-accent);
	color: var(--bzdocs-accent);
	font-weight: 600;
}

@container bzdocs-page (min-width: 54rem) {
	.bzdocs-guide {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 13rem;
		column-gap: 2.5rem;
		align-items: start;
	}

	.bzdocs-guide > .wp-block-post-content {
		grid-row: 1;
		grid-column: 1;
	}

	.bzdocs-guide > .bzdocs-toc {
		position: sticky;
		top: var(--bzdocs-sticky-top);
		grid-row: 1;
		grid-column: 2;
		max-height: calc(100vh - 2 * var(--bzdocs-sticky-top));
		margin: 0;
		overflow-y: auto;
		border: 0;
		overscroll-behavior: contain;
	}

	.admin-bar .bzdocs-guide > .bzdocs-toc {
		top: calc(var(--wp-admin--admin-bar--height, 32px) + var(--bzdocs-sticky-top));
		max-height: calc(100vh - var(--wp-admin--admin-bar--height, 32px) - 2 * var(--bzdocs-sticky-top));
	}

	.bzdocs-toc__summary {
		display: none;
	}

	.bzdocs-toc__title {
		display: block;
		margin: 0 0 0.5rem;
		color: var(--bzdocs-text);
		font-size: 0.75rem;
		font-weight: 600;
		letter-spacing: 0.05em;
		text-transform: uppercase;
	}

	.bzdocs-toc__nav {
		padding: 0;
	}
}

.bzdocs-pager {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
	gap: 1rem;
	margin-top: 3rem;
	padding-top: 2rem;
	border-top: 1px solid var(--bzdocs-border);
}

.bzdocs-pager__link {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	padding: 0.875rem 1rem;
	border: 1px solid var(--bzdocs-border);
	border-radius: 8px;
	color: var(--bzdocs-text);
	text-decoration: none;
}

.bzdocs-pager__link--next {
	grid-column: -2;
	text-align: right;
}

.bzdocs-pager__link:hover,
.bzdocs-pager__link:focus-visible {
	border-color: var(--bzdocs-accent);
}

.bzdocs-pager__link:focus-visible {
	outline: 2px solid var(--bzdocs-accent);
	outline-offset: 2px;
}

.bzdocs-pager__label {
	color: var(--bzdocs-muted);
	font-size: 0.8125rem;
}

.bzdocs-pager__title {
	color: var(--bzdocs-accent);
	font-weight: 600;
}

/* ------------------------------------------------------------------ */
/* Search: sidebar trigger (⌘K), no-JS form, dialog                    */
/* ------------------------------------------------------------------ */

.bzdocs-search {
	margin-bottom: 1.25rem;
	font-family: var(--bzdocs-font);
	font-size: 0.875rem;
}

.bzdocs-search__form {
	display: flex;
	gap: 0.375rem;
}

.bzdocs-search__form[hidden],
.bzdocs-search__trigger[hidden] {
	display: none;
}

.bzdocs-search__input {
	flex: 1;
	min-width: 0;
	padding: 0.45rem 0.6rem;
	border: 1px solid var(--bzdocs-border);
	border-radius: 6px;
	font: inherit;
}

.bzdocs-search__submit {
	padding: 0.45rem 0.7rem;
	border: 1px solid var(--bzdocs-border);
	border-radius: 6px;
	background: var(--bzdocs-hover-bg);
	color: var(--bzdocs-text);
	font: inherit;
	cursor: pointer;
}

.bzdocs-search__trigger {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	width: 100%;
	padding: 0.5rem 0.625rem;
	border: 1px solid var(--bzdocs-border);
	border-radius: 8px;
	background: #fff;
	color: var(--bzdocs-muted);
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.bzdocs-search__trigger:hover {
	border-color: var(--bzdocs-muted);
}

.bzdocs-search__trigger:focus-visible,
.bzdocs-search__input:focus-visible,
.bzdocs-search__submit:focus-visible {
	outline: 2px solid var(--bzdocs-accent);
	outline-offset: 2px;
}

.bzdocs-search__icon {
	flex: none;
	width: 0.875rem;
	height: 0.875rem;
	border: 2px solid currentColor;
	border-radius: 50%;
	position: relative;
}

.bzdocs-search__icon::after {
	content: "";
	position: absolute;
	right: -0.3rem;
	bottom: -0.3rem;
	width: 0.35rem;
	height: 2px;
	background: currentColor;
	transform: rotate(45deg);
}

.bzdocs-search__label {
	flex: 1;
}

.bzdocs-search__kbd {
	flex: none;
	padding: 0.05rem 0.35rem;
	border: 1px solid var(--bzdocs-border);
	border-radius: 4px;
	font-family: var(--bzdocs-font-mono);
	font-size: 0.6875rem;
	color: var(--bzdocs-muted);
}

/* No keyboard shortcut to advertise on touch screens. */
@media (hover: none) {
	.bzdocs-search__kbd {
		display: none;
	}
}

.bzdocs-search-open {
	overflow: hidden;
}

.bzdocs-search-dialog {
	box-sizing: border-box;
	width: min(40rem, calc(100vw - 2rem));
	max-height: min(34rem, calc(100vh - 4rem));
	margin: min(10vh, 6rem) auto auto;
	padding: 0;
	border: 1px solid var(--bzdocs-border);
	border-radius: 12px;
	box-shadow: 0 20px 50px rgb(0 0 0 / 0.25);
	color: var(--bzdocs-text);
	background: #fff;
	font-family: var(--bzdocs-font);
	font-size: 0.9375rem;
}

.bzdocs-search-dialog::backdrop {
	background: rgb(9 9 11 / 0.45);
}

.bzdocs-search-dialog__box {
	display: flex;
	flex-direction: column;
	max-height: inherit;
}

.bzdocs-search-dialog__field {
	display: flex;
	gap: 0.5rem;
	align-items: center;
	padding: 0.75rem;
	border-bottom: 1px solid var(--bzdocs-border);
}

.bzdocs-search-dialog__input {
	flex: 1;
	min-width: 0;
	padding: 0.5rem 0.25rem;
	border: 0;
	font: inherit;
	font-size: 1.0625rem;
	color: inherit;
	background: transparent;
}

.bzdocs-search-dialog__input:focus {
	outline: none;
}

/* The dialog has its own Close button; the native clear "×" doubles it. */
.bzdocs-search-dialog__input::-webkit-search-cancel-button {
	display: none;
}

.bzdocs-search-dialog__field:focus-within {
	box-shadow: inset 0 -2px 0 var(--bzdocs-accent);
}

.bzdocs-search-dialog__close {
	flex: none;
	padding: 0.25rem 0.5rem;
	border: 1px solid var(--bzdocs-border);
	border-radius: 6px;
	background: var(--bzdocs-hover-bg);
	color: var(--bzdocs-muted);
	font: inherit;
	font-size: 0.8125rem;
	cursor: pointer;
}

.bzdocs-search-dialog__close:focus-visible {
	outline: 2px solid var(--bzdocs-accent);
	outline-offset: 2px;
}

.bzdocs-search-dialog__status {
	margin: 0;
	padding: 0 1rem;
	color: var(--bzdocs-muted);
	font-size: 0.875rem;
}

.bzdocs-search-dialog__status:not(:empty) {
	padding-block: 0.75rem;
}

.bzdocs-search-dialog__results {
	flex: 1;
	margin: 0;
	padding: 0.375rem;
	overflow-y: auto;
	list-style: none;
}

.bzdocs-search-dialog__results:empty {
	display: none;
}

.bzdocs-search-result__link {
	display: flex;
	gap: 0.75rem;
	align-items: flex-start;
	padding: 0.55rem 0.625rem;
	border-radius: 8px;
	color: inherit;
	text-decoration: none;
}

.bzdocs-search-result[aria-selected="true"] .bzdocs-search-result__link {
	background: var(--bzdocs-hover-bg);
	box-shadow: inset 3px 0 0 var(--bzdocs-accent);
}

.bzdocs-search-result__link .bzdocs-method {
	flex: none;
	min-width: 3.1rem;
	margin-top: 0.1rem;
	text-align: center;
}

.bzdocs-search-result__kind {
	flex: none;
	width: 3.1rem;
	color: var(--bzdocs-muted);
	font-weight: 600;
	text-align: center;
}

.bzdocs-search-result__text {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.bzdocs-search-result__title {
	font-weight: 600;
}

.bzdocs-search-result__meta {
	color: var(--bzdocs-muted);
	font-size: 0.8125rem;
	overflow-wrap: anywhere;
}

.bzdocs-search-result--operation .bzdocs-search-result__meta {
	font-family: var(--bzdocs-font-mono);
	font-size: 0.75rem;
}

.bzdocs-search-dialog__hint {
	margin: 0;
	padding: 0.5rem 1rem;
	border-top: 1px solid var(--bzdocs-border);
	color: var(--bzdocs-muted);
	font-size: 0.75rem;
}

@media (prefers-reduced-motion: no-preference) {
	.bzdocs-search-dialog[open] {
		animation: bzdocs-search-in 0.12s ease-out;
	}

	@keyframes bzdocs-search-in {
		from {
			opacity: 0;
			transform: translateY(-0.5rem);
		}
	}
}

/* ------------------------------------------------------------------ */
/* Mobile (< 960px): one column, sidebar becomes a disclosure          */
/* ------------------------------------------------------------------ */

@media (max-width: 959.98px) {
	.bzdocs-layout {
		grid-template-columns: minmax(0, 1fr);
		gap: 1.5rem;
		padding-top: 1.25rem;
	}

	.bzdocs-sidebar {
		position: static;
		max-height: none;
		overflow: visible;
		padding: 0 0 1rem;
		border-right: 0;
		border-bottom: 1px solid var(--bzdocs-border);
	}

	.bzdocs-sidebar.is-enhanced {
		padding-bottom: 0;
		border-bottom: 0;
	}

	.bzdocs-sidebar.is-enhanced .bzdocs-sidebar__toggle {
		display: flex;
		gap: 0.6rem;
		align-items: center;
		width: 100%;
		padding: 0.7rem 0.9rem;
		border: 1px solid var(--bzdocs-border);
		border-radius: 8px;
		color: var(--bzdocs-text);
		background: var(--wp--preset--color--white, #fff);
		font: inherit;
		font-weight: 600;
		cursor: pointer;
	}

	.bzdocs-sidebar__toggle-icon,
	.bzdocs-sidebar__toggle-icon::before,
	.bzdocs-sidebar__toggle-icon::after {
		display: block;
		width: 1rem;
		height: 2px;
		background: currentColor;
		border-radius: 1px;
	}

	.bzdocs-sidebar__toggle-icon {
		position: relative;
	}

	.bzdocs-sidebar__toggle-icon::before,
	.bzdocs-sidebar__toggle-icon::after {
		content: "";
		position: absolute;
		left: 0;
	}

	.bzdocs-sidebar__toggle-icon::before { top: -5px; }
	.bzdocs-sidebar__toggle-icon::after { top: 5px; }

	.bzdocs-sidebar.is-enhanced:not(.is-open) .bzdocs-sidebar__panel {
		display: none;
	}

	.bzdocs-sidebar.is-enhanced .bzdocs-sidebar__panel {
		margin-top: 0.5rem;
		padding: 0.75rem 0.5rem;
		border: 1px solid var(--bzdocs-border);
		border-radius: 8px;
	}

	.bzdocs-op__permalink {
		opacity: 1;
	}

	.bzdocs-error {
		grid-template-columns: 3.25rem minmax(0, 1fr);
	}

	.bzdocs-error__shape {
		grid-column: 2;
		white-space: normal;
	}
}

/* ------------------------------------------------------------------ */
/* Reduced motion: themes often set smooth scrolling globally           */
/* (SupportHost: html { scroll-behavior: smooth }); anchor jumps on     */
/* docs pages must be instant for readers who asked for less motion.    */
/* ------------------------------------------------------------------ */

@media (prefers-reduced-motion: reduce) {
	:root:has(.bzdocs) {
		scroll-behavior: auto;
	}
}
