/* Documentation site (design v9 boards DocsGuide and DocsEndpoint, Shells
   4.4; FE9-4 #2281). Everything here is scoped to the documentation pages,
   which load this sheet after shared/base.css: the public header and footer
   come from base.css; the sub-bar, the 264px navigation, the article, the
   224px contents, the endpoint columns, the lookup tables, the drawer and
   the search dialog are drawn here. */

body.docs-page { --docs-top: 100px; background: var(--gray-0); }
.docs-page [id] { scroll-margin-top: calc(var(--docs-top) + 16px); }

/* Sub-bar: 44px under the 56px header, sticky with it. */
.docs-sub { position: sticky; top: var(--site-head); z-index: calc(var(--z-topbar) - 1); height: 44px; border-bottom: 1px solid var(--line); background: var(--gray-0); }
.docs-sub-inner { display: flex; align-items: center; gap: 24px; height: 100%; max-width: 1440px; margin: 0 auto; padding: 0 32px; }
/* The tabs fill the 43px row inside the bar's bottom line, and the strip
   does not clip, so the current tab's 2px ink line covers that line. */
.docs-page .docs-sub .docs-tabs { align-self: stretch; gap: 24px; overflow: visible; border-bottom: 0; }
.docs-page .docs-sub .docs-tabs > .tab { height: 100%; font-size: 14px; }
.docs-sub-end { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.docs-version { display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: var(--r-6); background: var(--gray-100); color: var(--text-2); font: 500 12px/16px var(--font-sans); }
.docs-menu-btn, .docs-search-btn { display: none; }

/* Three columns: navigation 264, content, contents 224. */
.docs-layout { display: grid; grid-template-columns: 264px minmax(0, 1fr) 224px; gap: 48px; width: 100%; max-width: 1440px; margin: 0 auto; padding: 0 32px; }
.docs-layout.is-wide, .docs-layout.is-ref { grid-template-columns: 264px minmax(0, 1fr); }
.docs-side { position: sticky; top: var(--docs-top); align-self: start; max-height: calc(100vh - var(--docs-top)); overflow-y: auto; padding: 24px 4px 48px 0; min-width: 0; scrollbar-width: thin; }
.docs-search-trigger { display: flex; align-items: center; gap: 8px; width: 100%; height: 36px; margin-bottom: 8px; padding: 0 6px 0 12px; color: var(--text-3); font: 400 14px/20px var(--font-sans); text-align: left; cursor: pointer; }
.docs-search-trigger .docs-search-text { flex: 1 1 auto; }
.docs-search-trigger .kbd { margin-right: 0; }
.docs-group { display: flex; flex-direction: column; gap: 2px; margin-top: 20px; }
.docs-nav > .docs-group:first-child { margin-top: 12px; }
.docs-group-title { margin: 0; padding: 0 12px 4px; color: var(--text-3); font: 500 12px/16px var(--font-sans); }
.docs-link { display: flex; align-items: center; gap: 8px; min-height: 32px; padding: 6px 12px; border-radius: var(--r-6); color: var(--text-2); font-size: 14px; line-height: 20px; text-decoration: none; transition: background-color var(--t-hover) var(--ease), color var(--t-hover) var(--ease); }
.docs-link:hover { background: var(--wash-1); color: var(--text-1); text-decoration: none; }
.docs-link[aria-current="page"] { background: var(--gray-100); color: var(--text-1); font-weight: 500; }
.docs-link.is-mono .docs-link-text { font: 400 13px/20px var(--font-mono); }
.docs-link-text { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.docs-method { margin-left: auto; color: var(--text-3); font: 500 12px/16px var(--font-mono); }
.docs-main { min-width: 0; max-width: none; margin: 0; padding: 32px 0 96px; outline: none; }
.docs-toc { position: sticky; top: calc(var(--docs-top) + 24px); align-self: start; max-height: calc(100vh - var(--docs-top) - 48px); overflow-y: auto; padding: 32px 0; min-width: 0; }
.toc-title { margin: 0 0 8px; color: var(--text-3); font: 500 12px/16px var(--font-sans); }
.toc { display: flex; flex-direction: column; }
.toc a { display: block; padding: 4px 0 4px 12px; border-left: 1px solid var(--line); color: var(--text-3); font-size: 13px; line-height: 20px; text-decoration: none; }
.toc a:hover { color: var(--text-1); text-decoration: none; }
.toc a[aria-current="true"] { border-left-color: var(--gray-900); color: var(--text-1); }
.toc a.toc-sub { padding-left: 24px; }
.toc-fold { display: none; margin-top: 24px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.toc-fold-btn { display: flex; align-items: center; justify-content: space-between; height: 44px; padding: 0; color: var(--text-1); font: 500 14px/20px var(--font-sans); list-style: none; cursor: pointer; }
.toc-fold-btn::-webkit-details-marker { display: none; }
.toc-fold-btn .glyph { color: var(--text-3); transition: transform var(--t-in) var(--ease); }
.toc-fold[open] .toc-fold-btn .glyph { transform: rotate(180deg); }
.toc-fold .toc { padding-bottom: 12px; }

/* Article head: breadcrumb, H1 30/38, a lead, the Markdown actions. */
.docs-article { max-width: 720px; }
.docs-article.is-wide { max-width: none; }
.docs-crumbs { margin: 0; }
.docs-h1 { margin: 12px 0 0; color: var(--text-1); font: 600 30px/38px var(--font-sans); letter-spacing: -.01em; }
.docs-lead { max-width: 720px; margin: 8px 0 0; color: var(--text-2); font-size: 15px; line-height: 26px; }
.docs-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 16px; }
.docs-copy-status { color: var(--text-3); font-size: 13px; line-height: 20px; }
.docs-copy-status:empty { display: none; }

/* Guide prose: 15/26 Chinese, 16/28 English; H2 24/32 with 48 above. */
.prose { margin-top: 24px; color: var(--text-1); font-size: 15px; line-height: 26px; }
html[lang="en"] .prose { font-size: 16px; line-height: 28px; }
.prose > * + * { margin-top: 16px; }
.prose h2 { margin: 48px 0 0; color: var(--text-1); font: 600 24px/32px var(--font-sans); }
.prose h3 { margin: 32px 0 0; color: var(--text-1); font: 600 16px/24px var(--font-sans); }
.prose h2 + *, .prose h3 + * { margin-top: 8px; }
.prose p { margin-bottom: 0; }
.prose ul, .prose ol { display: flex; flex-direction: column; gap: 6px; margin-bottom: 0; padding-left: 22px; }
.prose a, .ep-intro a, .p-desc a, .doc-facts a, .doc-callout a { color: var(--violet-600); text-decoration: underline; text-decoration-color: var(--violet-200); text-underline-offset: 3px; }
.prose a:hover, .ep-intro a:hover, .p-desc a:hover, .doc-facts a:hover, .doc-callout a:hover { color: var(--violet-700); text-decoration-color: currentColor; }
.prose .card-link, .prose .doc-next-card { text-decoration: none; }
.prose .doc-endpoint-row, .prose .doc-endpoint-row:hover { color: var(--text-1); text-decoration: none; }
.docs-page .code-inline { white-space: nowrap; }
.docs-page .p-desc .code-inline, .docs-page .doc-lookup .code-inline { white-space: normal; }
/* Long inline code (a dotted path) wraps, preferably after a dot. */
.docs-page .code-inline.is-long { white-space: normal; overflow-wrap: anywhere; }
.doc-table { border: 1px solid var(--line); border-radius: var(--r-12); }
.doc-table .table { font-size: 14px; }
.doc-table .table th { position: static; }
.doc-table .table td { height: auto; padding-top: 12px; padding-bottom: 12px; line-height: 22px; vertical-align: top; white-space: normal; }
/* A guide table's labels keep their words whole: the first column on one
   line, the middle columns breaking only between words; the last column
   takes the rest of the width. */
.doc-table .table :is(th, td):first-child { white-space: nowrap; }
.doc-table .table :is(th, td):not(:first-child):not(:last-child) { word-break: keep-all; }
.doc-table .table tbody tr:hover { background: transparent; }

/* Numbered steps of a guide. */
.prose > .doc-step { margin-top: 40px; }
.doc-step { position: relative; padding-left: 48px; }
.doc-step > * + * { margin-top: 16px; }
.doc-step > h2 { margin: 0; }
.doc-step > h2 + * { margin-top: 8px; }
.doc-step > h3 { margin-top: 32px; }
.doc-step-num { position: absolute; top: 2px; left: 0; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--gray-0); box-shadow: inset 0 0 0 1px var(--line-strong); color: var(--text-1); font: 500 13px/20px var(--font-sans); font-variant-numeric: tabular-nums; }
.doc-step::before { content: ""; position: absolute; top: 38px; bottom: -32px; left: 14px; width: 1px; background: var(--line); }
.doc-step.is-last::before { display: none; }

/* Callouts: at most two per guide. */
.doc-callout { display: flex; align-items: flex-start; gap: 12px; padding: 12px 16px; border: 1px solid var(--line); border-radius: var(--r-8); background: var(--gray-25); color: var(--text-1); font-size: 14px; line-height: 22px; }
.doc-callout > .glyph { margin-top: 3px; color: var(--gray-700); }
.doc-callout > p { margin: 0; }
.doc-callout.is-warn { border-color: var(--warning-border); background: var(--warning-tint); }
.doc-callout.is-warn > .glyph { color: var(--warning-fg); }

/* Code: dark request groups, light responses and files, one-line snippets.
   Lines are numbered by CSS counters, so copying takes the code only. The
   tab strip is a tablist: it stays one row the height of the head, scrolls
   sideways when it must, and draws the selected tab's line inside itself. */
.docs-code .code-tabs { display: flex; flex: 0 1 auto; flex-wrap: nowrap; align-self: stretch; align-items: stretch; gap: 2px; min-width: 0; overflow-x: auto; overflow-y: hidden; border-bottom: 0; scrollbar-width: none; }
.docs-code .code-tabs::-webkit-scrollbar { display: none; }
.docs-code .code-tab { flex: none; height: auto; margin-bottom: 0; }
.docs-code .code-tab[aria-selected="true"]::after { bottom: 0; }
.docs-code .code-label { flex: none; white-space: nowrap; }
.docs-code pre { max-height: none; font-variant-ligatures: none; }
/* A long panel folds at a line boundary: 20 lines below the 12px padding;
   its control opens it. */
.docs-code pre.is-folded { max-height: calc(12px + 20 * 20px); }
.docs-code .code-panel.is-open pre.is-folded { max-height: none; }
.docs-code .docs-more { padding: 6px 8px; }
.docs-code.code-dark .docs-more { border-top-color: rgba(255, 255, 255, .06); }
.docs-code .cl { display: inline; min-height: 0; }
.docs-code pre.has-ln { counter-reset: docs-line; }
.docs-code pre.has-ln .cl::before { content: counter(docs-line); counter-increment: docs-line; display: inline-block; width: 20px; margin-right: 16px; color: var(--gray-400); text-align: right; user-select: none; }
.docs-code.code-dark pre.has-ln .cl::before { color: var(--code-dark-ln); }
.docs-code .tk-kw { color: var(--violet-700); }
.docs-code.code-dark .tk-kw { color: #c4b5fd; }
.docs-code.is-light .code-head { padding-left: 4px; background: var(--gray-25); }
.docs-code .code-copy { margin-left: auto; }
.docs-code .code-copy.is-copied { color: var(--success-fg); }
.docs-code.code-dark .code-copy.is-copied { color: #86efac; }
.code-sub { margin-left: 4px; color: var(--text-3); font-size: 12px; line-height: 16px; }
.docs-status { display: inline-flex; align-items: center; height: 22px; padding: 0 6px; border-radius: var(--r-4); background: var(--gray-100); color: var(--text-1); font: 500 12px/16px var(--font-mono); font-variant-numeric: tabular-nums; }
.docs-status.is-ok { background: var(--success-tint); color: var(--success-fg); }
.docs-status.is-warn { background: var(--warning-tint); color: var(--warning-fg); }
.docs-status.is-bad { background: var(--danger-tint); color: var(--danger-fg); }
.docs-code.is-light .code-head .docs-status { margin-left: 8px; }
.docs-snippet { height: auto; min-height: 40px; }
.docs-snippet pre { flex: 1 1 auto; min-width: 0; margin: 0; padding: 10px 0; overflow-x: auto; border: 0; background: none; color: inherit; font: 400 13px/20px var(--font-mono); white-space: pre; scrollbar-width: none; }
.docs-snippet .cl { display: inline; }
.docs-snippet .code-copy { flex: none; }
.docs-examples { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.docs-examples[hidden], .docs-example[hidden] { display: none; }

/* The address block (owner 2026-10-29): the console's API address with a
   copy button, or the placeholder text. */
.doc-base { padding: 16px 20px; border: 1px solid var(--accent-border); border-radius: var(--r-12); background: var(--accent-tint); }
.prose > .doc-base { margin-top: 24px; }
.doc-base-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; color: var(--accent-fg); }
.prose .doc-base-title, .doc-base-title { margin: 0; color: var(--text-1); font: 600 15px/22px var(--font-sans); }
.doc-base-state { color: var(--text-3); font-size: 12px; line-height: 16px; }
.doc-base-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-top: 10px; }
.doc-base-value { min-width: 0; padding: 6px 10px; border: 1px solid var(--line); border-radius: var(--r-6); background: var(--gray-0); color: var(--text-1); font: 500 14px/22px var(--font-mono); overflow-wrap: anywhere; }
/* While the console answers, the value keeps the width of an address. */
.doc-base-value.is-loading { width: min(28ch, 100%); min-height: 36px; border-style: dashed; background: var(--gray-25); }
.doc-base-value.is-placeholder { border-style: dashed; color: var(--text-2); font: 400 14px/22px var(--font-sans); }
.prose .doc-base-note, .doc-base-note { margin: 10px 0 0; color: var(--text-2); font-size: 13px; line-height: 20px; }

/* Task states in order. */
.doc-flow { padding: 20px 24px; border: 1px solid var(--line); border-radius: var(--r-12); background: var(--gray-25); }
.doc-flow-track { display: flex; align-items: flex-start; gap: 12px; }
.doc-flow-step { display: flex; flex: none; flex-direction: column; align-items: flex-start; gap: 8px; }
.doc-flow-step code, .doc-flow-pair code { color: var(--text-3); font: 400 12px/16px var(--font-mono); }
.doc-flow-line { flex: 1 1 24px; min-width: 16px; height: 1px; margin-top: 11px; background: var(--line-strong); }
.prose .doc-flow-alt, .doc-flow-alt { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 16px 0 0; padding-top: 16px; border-top: 1px solid var(--line-soft); color: var(--text-2); font-size: 14px; line-height: 20px; }
.doc-flow-pair { display: inline-flex; align-items: center; gap: 8px; margin-right: 8px; }
.doc-flow .badge .glyph { width: 12px; height: 12px; }

/* next steps cards and the page foot with the update date and prev/next. */
.prose > .doc-next { margin-top: 56px; }
.doc-next > h2 { margin: 0 0 16px; }
.doc-next-grid, .doc-home-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr)); gap: 16px; }
.doc-next-card, .doc-home-card { display: flex; flex-direction: column; gap: 4px; padding: 20px; color: var(--text-1); text-decoration: none; }
.doc-next-card > .glyph, .doc-home-card > .glyph { margin-bottom: 12px; color: var(--gray-700); }
.doc-next-title { color: var(--text-1); font: 600 16px/24px var(--font-sans); }
.doc-next-desc { color: var(--text-2); font-size: 13px; line-height: 20px; }
.doc-foot { display: flex; flex-direction: column; gap: 16px; margin-top: 64px; padding-top: 24px; border-top: 1px solid var(--line-soft); }
.doc-updated { margin: 0; color: var(--text-3); font-size: 13px; line-height: 20px; }
.pn-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.pn { display: flex; flex-direction: column; gap: 4px; padding: 16px 20px; border: 1px solid var(--line); border-radius: var(--r-12); background: var(--gray-0); color: var(--text-1); text-decoration: none; transition: border-color var(--t-hover) var(--ease), box-shadow var(--t-hover) var(--ease); }
.pn:hover { border-color: var(--gray-300); box-shadow: var(--e1); color: var(--text-1); text-decoration: none; }
.pn-label { display: flex; align-items: center; gap: 4px; color: var(--text-3); font-size: 12px; line-height: 16px; }
.pn-title { color: var(--text-1); font-size: 14px; line-height: 20px; font-weight: 500; }
.pn-desc { color: var(--text-2); font-size: 13px; line-height: 20px; }
.pn-next { grid-column: 2; align-items: flex-end; text-align: right; }

/* Endpoint, object and event pages: the left column and a sticky code
   column of 400-480, request beside the parameters, response beside the
   result and the status codes; below 1024 they stack as a, request, the
   result, the response, the status codes and the rest. */
.ep { display: grid; grid-template-columns: minmax(0, 1fr) 480px; grid-template-areas: "a req" "b res" "s res" "c ."; column-gap: 48px; align-items: start; }
.ep.is-object { grid-template-areas: "a req" "b ." "c ."; }
.ep-a { grid-area: a; min-width: 0; max-width: 560px; }
.ep-b { grid-area: b; min-width: 0; max-width: 560px; }
.ep-s { grid-area: s; min-width: 0; max-width: 560px; }
.ep-c { grid-area: c; min-width: 0; max-width: 560px; }
.ep-req { grid-area: req; align-self: stretch; min-width: 0; }
.ep-res-cell { grid-area: res; align-self: stretch; min-width: 0; padding-top: 48px; }
.ep-code { position: sticky; top: calc(var(--docs-top) + 24px); display: flex; flex-direction: column; gap: 12px; min-width: 0; max-height: calc(100vh - var(--docs-top) - 48px); overflow-y: auto; scrollbar-width: none; }
.ep-rescol { position: sticky; top: calc(var(--docs-top) + 24px); display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.ep-code-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.ep-code-title { display: block; color: var(--text-2); font: 500 13px/20px var(--font-sans); }
.docs-responses { display: flex; flex-direction: column; gap: 12px; }
.ep-bar { display: flex; align-items: center; gap: 12px; min-height: 40px; margin-top: 16px; padding: 0 4px 0 8px; border: 1px solid var(--line); border-radius: var(--r-8); background: var(--gray-25); }
.method { display: inline-flex; flex: none; align-items: center; height: 24px; padding: 0 8px; border-radius: var(--r-6); background: var(--gray-0); box-shadow: inset 0 0 0 1px var(--line-strong); color: var(--text-1); font: 500 12px/16px var(--font-mono); letter-spacing: .02em; }
.ep-path { flex: 1 1 auto; min-width: 0; overflow: hidden; color: var(--text-1); font: 400 14px/20px var(--font-mono); text-overflow: ellipsis; white-space: nowrap; }
.ep-bar-note { flex: none; padding-right: 8px; color: var(--text-3); font-size: 12px; line-height: 16px; }
.doc-facts { display: flex; flex-direction: column; gap: 12px; margin: 24px 0 0; padding: 0; list-style: none; }
.doc-facts li { display: flex; align-items: flex-start; gap: 12px; color: var(--text-1); font-size: 14px; line-height: 22px; }
.doc-fact-icon { display: grid; flex: none; place-items: center; width: 20px; height: 22px; color: var(--gray-700); }
.doc-notes { display: flex; flex-direction: column; gap: 6px; margin: 20px 0 0; padding-left: 20px; color: var(--text-2); font-size: 14px; line-height: 22px; }
.ep-section { margin-top: 48px; }
.ep-h2 { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; margin: 0; padding-bottom: 12px; border-bottom: 1px solid var(--line); color: var(--text-1); font: 600 24px/32px var(--font-sans); }
.ep-h2-meta { color: var(--text-3); font: 400 12px/16px var(--font-mono); }
.ep-h3 { margin: 32px 0 8px; color: var(--text-1); font: 600 16px/24px var(--font-sans); }
.ep-intro { margin: 16px 0 0; color: var(--text-2); font-size: 14px; line-height: 22px; }
.doc-read { margin-top: 24px; }

/* Parameter rows: name, type, required; the description; constraint chips;
   values; children folded; content kinds behind a segmented control. */
.params > .param { padding: 16px 0; border-bottom: 1px solid var(--line-soft); }
.params > .param:last-child { border-bottom: 0; }
.param { position: relative; }
.param-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; }
.param-anchor { position: absolute; left: -20px; width: 16px; color: var(--text-3); font: 500 14px/20px var(--font-mono); text-align: center; text-decoration: none; opacity: 0; transition: opacity var(--t-hover) var(--ease); }
.param:hover > .param-head > .param-anchor, .param-anchor:focus-visible { opacity: 1; }
.p-name { color: var(--text-1); font: 500 14px/20px var(--font-mono); overflow-wrap: anywhere; }
.p-type { color: var(--text-3); font: 400 12px/16px var(--font-mono); }
.p-req { color: var(--text-1); font: 500 12px/16px var(--font-sans); }
.p-null { color: var(--text-3); font: 400 12px/16px var(--font-sans); }
.p-desc { margin: 4px 0 0; color: var(--text-2); font-size: 14px; line-height: 22px; }
.p-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 12px; }
.p-label { color: var(--text-3); font-size: 12px; line-height: 16px; }
/* A constraint's label stays with its first value on one line. */
.p-fact { display: inline-flex; align-items: center; gap: 8px; max-width: 100%; white-space: nowrap; }
.p-fact > .p-label { flex: none; }
.p-fact > .val { min-width: 0; white-space: normal; }
.p-sep { width: 1px; height: 12px; margin: 0 4px; background: var(--line-strong); }
.val { display: inline-flex; align-items: center; max-width: 100%; min-height: 22px; padding: 0 6px; border-radius: var(--r-4); background: var(--gray-100); color: var(--text-1); font: 400 12px/16px var(--font-mono); overflow-wrap: anywhere; }
.enum { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.enum-row { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; color: var(--text-2); font-size: 13px; line-height: 20px; }
.kids { margin-top: 12px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--r-12); }
.kids-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 8px 8px 12px; border-bottom: 1px solid var(--line-soft); background: var(--gray-25); }
.kids-note { color: var(--text-3); font-size: 12px; line-height: 16px; }
.kids .params > .param { padding: 12px 16px; }
.kids-fold { margin-top: 12px; }
.kids-toggle { display: inline-flex; align-items: center; gap: 6px; height: 28px; min-height: 0; padding: 0 12px; border: 1px solid var(--line); border-radius: var(--r-full); color: var(--text-2); font: 500 13px/20px var(--font-sans); list-style: none; cursor: pointer; }
.kids-toggle::-webkit-details-marker { display: none; }
.kids-toggle:hover { border-color: var(--gray-300); color: var(--text-1); }
.kids-toggle .glyph { transition: transform var(--t-in) var(--ease); transform: rotate(-90deg); }
.kids-fold[open] > .kids-toggle .glyph { transform: none; }
.kids-fold > .params { margin-top: 12px; padding: 0 16px; border: 1px solid var(--line); border-radius: var(--r-12); }
.doc-unsup { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line-soft); }
.doc-unsup-btn { display: flex; align-items: center; gap: 8px; min-height: 32px; padding: 0; color: var(--text-2); font: 500 14px/20px var(--font-sans); list-style: none; cursor: pointer; }
.doc-unsup-btn::-webkit-details-marker { display: none; }
.doc-unsup-btn:hover { color: var(--text-1); }
.doc-unsup-btn .glyph { color: var(--text-3); transition: transform var(--t-in) var(--ease); }
.doc-unsup[open] > .doc-unsup-btn .glyph { transform: rotate(90deg); }
.doc-unsup-body { display: flex; flex-direction: column; gap: 12px; margin-top: 8px; padding-left: 16px; color: var(--text-2); font-size: 13px; line-height: 20px; }
.doc-unsup-body p { margin: 0; }
.doc-unsup-group { display: flex; flex-direction: column; gap: 8px; }
.doc-unsup-group + .doc-unsup-group { padding-top: 12px; border-top: 1px solid var(--line-soft); }
.doc-unsup-names { display: flex; flex-wrap: wrap; gap: 8px; }
.res-fields > .params > .param { padding: 12px 0; }

/* Status codes with error.code chips, related guides, retry timeline. */
.st-wrap { margin-top: 16px; border: 1px solid var(--line); border-radius: var(--r-12); }
.st-table { min-width: 320px; }
.st-table th { position: static; }
.st-table td { height: auto; padding-top: 16px; padding-bottom: 16px; color: var(--text-1); font-size: 14px; line-height: 22px; vertical-align: top; white-space: normal; }
.st-table td:first-child { width: 80px; }
.st-table tbody tr:hover { background: transparent; }
.st-codes { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.st-headers { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 8px; }
.ecode { display: inline-flex; align-items: center; height: 22px; padding: 0 6px; border-radius: var(--r-4); background: var(--accent-tint); color: var(--accent-fg); font: 400 12px/16px var(--font-mono); text-decoration: none; }
.ecode:hover { background: var(--violet-100); color: var(--accent-fg); text-decoration: none; }
.doc-rel { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)); column-gap: 24px; margin-top: 8px; }
.doc-rel a { display: flex; align-items: center; justify-content: space-between; gap: 8px; height: 44px; border-bottom: 1px solid var(--line-soft); color: var(--text-1); font-size: 14px; line-height: 20px; text-decoration: none; }
.doc-rel a .glyph { color: var(--text-3); transition: transform var(--t-hover) var(--ease), color var(--t-hover) var(--ease); }
.doc-rel a:hover { color: var(--violet-600); text-decoration: none; }
.doc-rel a:hover .glyph { color: var(--violet-600); transform: translateX(2px); }
.doc-timeline { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 0; padding: 0; list-style: none; }
.doc-timeline li { display: inline-flex; align-items: center; height: 28px; padding: 0 10px; border: 1px solid var(--line); border-radius: var(--r-full); color: var(--text-2); font-size: 13px; line-height: 20px; }

/* Lookup pages: a 36px filter over full-width tables with anchored rows. */
.doc-filter { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 24px; }
.doc-filter-control { width: min(360px, 100%); height: 36px; color: var(--text-3); }
.doc-filter-count { color: var(--text-3); font-size: 13px; line-height: 20px; }
.doc-status-section { margin-top: 40px; }
.doc-lookup { margin-top: 16px; border: 1px solid var(--line); border-radius: var(--r-12); }
.doc-lookup-table { table-layout: fixed; min-width: 640px; }
.doc-lookup-table.is-errors { min-width: 1000px; }
.doc-lookup-table.is-errors th:nth-child(1) { width: 88px; }
.doc-lookup-table.is-errors th:nth-child(2) { width: 264px; }
.doc-lookup-table.is-errors th:nth-child(5), .doc-lookup-table.is-errors th:nth-child(6) { width: 112px; }
.doc-lookup-table.is-values th:nth-child(1) { width: 288px; }
.doc-lookup-table.is-values th:nth-child(3) { width: 112px; }
.docs-page .doc-lookup-table .doc-row-anchor .code-inline { font-size: 12px; white-space: nowrap; }
.doc-lookup-table th { top: 0; }
.doc-lookup-table td { height: auto; padding-top: 12px; padding-bottom: 12px; line-height: 22px; vertical-align: top; white-space: normal; overflow-wrap: anywhere; }
.doc-lookup-table tbody tr:target { background: var(--accent-tint); }
.doc-lookup-status { white-space: nowrap; }
.doc-row-anchor { text-decoration: none; }
.doc-lookup-ops { display: block; margin-top: 4px; color: var(--text-3); font-size: 12px; line-height: 18px; }
.doc-lookup-ops a { color: var(--text-3); }
.doc-lookup-ops a:hover { color: var(--violet-600); }
.doc-filter-empty { margin: 16px 0 0; color: var(--text-3); font-size: 14px; line-height: 22px; }

/* Home: six cards, common endpoints, resources. */
.docs-home .doc-home-cards { margin-top: 32px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.doc-home-h2 { margin: 48px 0 12px; color: var(--text-1); font: 600 20px/28px var(--font-sans); }
.doc-endpoints { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: var(--r-12); overflow: hidden; }
.prose > .doc-endpoints { margin-top: 16px; }
.doc-endpoint-row { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 8px 16px; border-bottom: 1px solid var(--line-soft); color: var(--text-1); text-decoration: none; }
.doc-endpoint-row:last-child { border-bottom: 0; }
.doc-endpoint-row:hover { background: var(--gray-50); color: var(--text-1); text-decoration: none; }
.doc-endpoint-row .method { min-width: 56px; justify-content: center; }
.doc-endpoint-path { flex: 0 1 auto; min-width: 0; overflow: hidden; color: var(--text-1); font: 400 13px/20px var(--font-mono); text-overflow: ellipsis; white-space: nowrap; }
.doc-endpoint-title { margin-left: auto; padding-left: 12px; color: var(--text-2); font-size: 14px; line-height: 20px; text-align: right; }
.doc-resources { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; list-style: none; font-size: 14px; line-height: 22px; }
.doc-resources li { display: flex; flex-wrap: wrap; gap: 4px 12px; }
.doc-resources a { color: var(--violet-600); font-weight: 500; }
.doc-resources span { color: var(--text-2); }

/* The contents drawer below 1200 and the Ctrl K search dialog. */
.docs-drawer, .docs-search-layer { position: fixed; inset: 0; z-index: var(--z-overlay); }
.docs-drawer-scrim, .docs-search-scrim { position: absolute; inset: 0; background: rgba(16, 22, 31, .48); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.docs-drawer-panel { position: absolute; top: 0; bottom: 0; left: 0; display: flex; flex-direction: column; gap: 12px; width: min(320px, 85%); padding: 0 16px 16px; overflow-y: auto; background: var(--gray-0); box-shadow: var(--e3); }
.docs-drawer-head { display: flex; flex: none; align-items: center; justify-content: space-between; height: 52px; margin-right: -8px; }
.docs-drawer-title { margin: 0; color: var(--text-1); font: 600 16px/24px var(--font-sans); }
.docs-drawer-tabs { display: flex; flex: none; width: 100%; height: 40px; }
.docs-drawer-tabs .seg-item { flex: 1 1 0; height: 36px; font-size: 13px; }
.docs-drawer-panel .docs-search-trigger { flex: none; }
.docs-drawer-panel .docs-group { margin-top: 12px; }
.docs-search-dialog { position: relative; display: flex; flex-direction: column; width: 640px; max-width: calc(100% - 32px); max-height: min(600px, calc(100vh - 128px)); margin: 96px auto 0; overflow: hidden; border-radius: var(--r-12); background: var(--gray-0); box-shadow: var(--e3); }
.docs-search-field { display: flex; flex: none; align-items: center; gap: 12px; height: 56px; padding: 0 8px 0 16px; border-bottom: 1px solid var(--line-soft); color: var(--text-3); }
.docs-search-field input { flex: 1 1 auto; min-width: 0; height: 100%; padding: 0; border: 0; outline: 0; background: transparent; box-shadow: none; color: var(--text-1); font: 400 16px/24px var(--font-sans); }
.docs-search-field input::-webkit-search-cancel-button { display: none; }
.docs-search-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 8px; }
.docs-search-results:empty { display: none; }
.docs-search-group { margin: 0; padding: 8px 8px 4px; color: var(--text-3); font: 500 12px/16px var(--font-sans); }
.docs-hit { display: flex; flex-direction: column; gap: 2px; padding: 8px 12px; border-radius: var(--r-8); color: var(--text-1); text-decoration: none; }
.docs-hit:hover { background: var(--gray-50); color: var(--text-1); text-decoration: none; }
.docs-hit[aria-selected="true"], .docs-hit[aria-selected="true"]:hover { background: var(--accent-tint); }
.docs-hit-title { display: flex; align-items: center; gap: 8px; font-size: 14px; line-height: 20px; font-weight: 500; overflow-wrap: anywhere; }
.docs-hit-title .glyph { color: var(--text-3); }
.docs-hit-title.is-code { font: 500 13px/20px var(--font-mono); }
.docs-hit-kind { margin-left: auto; color: var(--text-3); font: 400 12px/16px var(--font-sans); white-space: nowrap; }
.docs-hit-text { padding-left: 22px; color: var(--text-2); font-size: 13px; line-height: 20px; }
.docs-hit mark { border-radius: var(--r-4); background: var(--violet-100); color: inherit; }
.docs-search-state { padding: 16px 8px; }
.docs-search-hint { margin: 0; color: var(--text-3); font-size: 13px; line-height: 20px; }
.docs-search-title { margin: 0 0 4px; color: var(--text-1); font: 500 14px/20px var(--font-sans); }
.docs-search-popular { display: flex; flex-direction: column; gap: 2px; margin-top: 8px; }
.docs-search-pop { display: flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: var(--r-8); color: var(--text-1); font-size: 14px; line-height: 20px; text-decoration: none; }
.docs-search-pop:hover { background: var(--gray-50); color: var(--text-1); text-decoration: none; }
.docs-search-pop .glyph { color: var(--text-3); }
.docs-search-error .btn { margin-top: 12px; }
.docs-search-foot { display: flex; flex: none; flex-wrap: wrap; align-items: center; gap: 8px 16px; padding: 12px 16px; border-top: 1px solid var(--line-soft); background: var(--gray-25); color: var(--text-3); font-size: 12px; line-height: 16px; }
.docs-search-foot > span { display: inline-flex; align-items: center; gap: 4px; }
body.docs-overlay-open { overflow: hidden; }
.docs-moved { display: none; }

/* Below 1440 the code column narrows; below 1200 the navigation becomes
   the contents drawer; below 1024 the contents fold under the H1 and the code
   stacks under its section; below 768 the sub-bar is [Contents] [Search]. */
@media (max-width: 1439px) {
  .ep { grid-template-columns: minmax(0, 1fr) clamp(360px, calc(100% - 472px), 400px); column-gap: 32px; }
}
@media (max-width: 1199px) {
  .docs-layout { grid-template-columns: minmax(0, 1fr) 200px; gap: 32px; }
  .docs-layout.is-wide, .docs-layout.is-ref { grid-template-columns: minmax(0, 1fr); }
  .docs-side { display: none; }
  .docs-menu-btn, .docs-search-btn { display: inline-flex; }
}
@media (max-width: 1024px) {
  .docs-sub-inner, .docs-layout { padding: 0 24px; }
}
@media (max-width: 1023px) {
  .docs-layout { grid-template-columns: minmax(0, 1fr); }
  .docs-toc { display: none; }
  .toc-fold { display: block; }
  .ep, .ep.is-object { grid-template-columns: minmax(0, 1fr); grid-template-areas: "a" "req" "b" "res" "s" "c"; }
  .ep-a, .ep-b, .ep-s, .ep-c { max-width: none; }
  .ep-code, .ep-rescol { position: static; max-height: none; overflow: visible; }
  .ep-req, .ep-res-cell { padding-top: 40px; }
  .docs-home .doc-home-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  body.docs-page { --docs-top: 96px; }
  .docs-sub { top: var(--site-head); }
  .docs-sub-inner, .docs-layout { padding: 0 16px; }
  .docs-sub-inner { gap: 8px; }
  .docs-page .docs-sub .docs-tabs { display: none; }
  .docs-menu-btn, .docs-search-btn { height: 36px; }
  .docs-main { padding-top: 24px; }
  .docs-h1 { font-size: 26px; line-height: 34px; }
  .doc-step { display: grid; grid-template-columns: 28px minmax(0, 1fr); column-gap: 12px; padding-left: 0; }
  .doc-step > * { grid-column: 1 / -1; }
  .doc-step > .doc-step-num { position: static; grid-column: 1; align-self: center; }
  .doc-step > h2 { grid-column: 2; align-self: center; }
  .doc-step > .doc-step-num + h2 { margin-top: 0; }
  .doc-step::before { display: none; }
  .doc-next-card { display: grid; grid-template-columns: 20px minmax(0, 1fr); column-gap: 12px; row-gap: 2px; padding: 16px; }
  .doc-next-card > .glyph { grid-row: 1 / 3; margin: 2px 0 0; }
  .docs-home .doc-home-cards { grid-template-columns: minmax(0, 1fr); }
  .doc-home-card { display: grid; grid-template-columns: 20px minmax(0, 1fr); column-gap: 12px; row-gap: 2px; padding: 16px; }
  .doc-home-card > .glyph { grid-row: 1 / 3; margin: 2px 0 0; }
  .pn-grid { grid-template-columns: minmax(0, 1fr); }
  .pn-next { grid-column: auto; }
  .doc-flow { padding: 16px; }
  .doc-flow-track { flex-wrap: wrap; }
  .doc-endpoint-row { flex-wrap: wrap; gap: 4px 12px; }
  .doc-endpoint-title { width: 100%; margin-left: 0; padding-left: 0; text-align: left; }
  .docs-search-dialog { width: 100%; max-width: none; max-height: calc(100vh - 48px); margin-top: 48px; border-radius: var(--r-12) var(--r-12) 0 0; }
  .ep-bar-note { display: none; }
  .doc-table .table :is(th, td):first-child { white-space: normal; word-break: keep-all; }
  /* Lookup tables fit the phone: the values tables drop their desktop
     widths, and each error code becomes a card of labelled lines. */
  .doc-lookup-table.is-values { min-width: 0; table-layout: auto; }
  .doc-lookup-table.is-values th:nth-child(1), .doc-lookup-table.is-values th:nth-child(3) { width: auto; }
  .doc-lookup-table.is-errors { min-width: 0; table-layout: auto; }
  .doc-lookup-table.is-errors thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .doc-lookup-table.is-errors tbody, .doc-lookup-table.is-errors tr { display: block; }
  .doc-lookup-table.is-errors tr { padding: 12px 16px; border-bottom: 1px solid var(--line-soft); }
  .doc-lookup-table.is-errors tr:last-child { border-bottom: 0; }
  .doc-lookup-table.is-errors td { display: block; height: auto; padding: 0; border: 0; }
  .doc-lookup-table.is-errors td:nth-child(-n+2) { display: inline-block; margin: 0 8px 4px 0; vertical-align: middle; }
  .doc-lookup-table.is-errors td[data-label] { margin-top: 8px; }
  .doc-lookup-table.is-errors td[data-label]::before { content: attr(data-label); display: block; color: var(--text-3); font-size: 12px; line-height: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .docs-page *, .docs-page *::before, .docs-page *::after { transition-duration: .01ms !important; }
}
