/* Veil's app tokens and no-sidebar shell. Inside 1152px: 256px index + 32px gap + 864px article.
   On a 390px phone the existing 16px outer margins leave 358px for the article. */
.docs-layout { display: grid; grid-template-columns: 256px minmax(0, 1fr); gap: var(--s6); align-items: start; }
.docs-index { position: sticky; top: 80px; min-width: 0; }
.docs-nav summary { min-height: 44px; cursor: pointer; font-weight: 500; }
.docs-nav-content > label { display: block; margin-bottom: var(--s2); font-size: var(--fs-body); color: var(--muted); }
#docsSearch, #docsErrorSearch { width: 100%; min-height: 36px; padding: var(--s2) var(--s3); border: 1px solid var(--control); border-radius: var(--radius-nested); background: var(--panel); color: var(--text); font: inherit; }
#docsLinks { max-height: calc(100svh - 192px); overflow-y: auto; scrollbar-width: thin; margin-top: var(--s5); padding-right: var(--s2); }
.docs-nav-group + .docs-nav-group { margin-top: var(--s5); }
.docs-nav-group h2 { font-size: var(--fs-body); line-height: var(--lh-body); font-weight: 500; margin: 0 0 var(--s2); color: var(--text); }
.docs-nav-group ul { list-style: none; margin: 0; padding: 0; }
/* a row of the index: the method in a column of its own (once, before the title), the page you are on on the active pill */
.docs-nav-group a { display: flex; align-items: baseline; gap: var(--s3); min-height: 36px; padding: var(--s2) var(--s2); margin-inline: calc(-1 * var(--s2)); border-radius: var(--radius-nested); color: var(--muted); font-size: var(--fs-body); line-height: var(--lh-body); }
.docs-nav-group a:hover { color: var(--text); }
.docs-nav-group a[aria-current="page"] { color: var(--text); font-weight: 500; background: var(--active); }
/* the arrows move the focus down the index: the row it is on takes the active pill, with the ink outline over it */
.docs-nav-group a:focus-visible { color: var(--text); background: var(--active); outline: 2px solid var(--text); outline-offset: -2px; }
.docs-search-code { display: grid; gap: var(--s1); margin-block: 0 var(--s2); }
.docs-nav-method { flex: none; width: 36px; font-size: var(--fs-small); font-weight: 500; color: var(--faint); font-variant-numeric: tabular-nums; }
.docs-nav-group a[aria-current="page"] .docs-nav-method { color: var(--muted); } /* on --active the faint grey fell to 4.18:1 (A8) */
.docs-nav-title { min-width: 0; }
.docs-search-status { margin-block: var(--s2); color: var(--muted); }
.docs-content { min-width: 0; }
.docs-head { margin-bottom: var(--s6); }
/* the page's title is its one large thing (the stamp's size, 28 October 2026) */
.docs-head h1 { font-size: var(--fs-stamp); line-height: var(--lh-stamp); font-weight: 600; letter-spacing: -0.025em; margin: 0 0 var(--s3); }
.docs-intro { font-size: var(--fs-section); line-height: var(--lh-section); max-width: 72ch; margin: 0; color: var(--muted); }
.docs-article { font-size: var(--fs-body); line-height: 1.6; }
.docs-article > h2, .docs-article > section > h2 { font-size: var(--fs-section); line-height: var(--lh-section); font-weight: 600; margin: 0 0 var(--s3); }
/* one section pattern (pass ux, 29 October 2026): every section opens with its 16/600 heading, the page's section gap above it */
.docs-article > h2, .docs-article > section { margin-top: var(--sec-gap); }
.docs-article > section { margin-bottom: 0; }
.docs-article > .docs-head + h2, .docs-article > .docs-head + section { margin-top: 0; }
/* the "#" after a heading: the address of that section, shown when the heading is pointed at or the link has the focus */
.docs-anchor { margin-left: var(--s2); padding: 0 var(--s1); color: var(--faint); font-weight: 400; opacity: 0; transition: opacity var(--t-fast) var(--ease-out), color var(--t-fast) var(--ease-out); }
h2:hover > .docs-anchor, .docs-anchor:focus-visible { opacity: 1; }
.docs-anchor:hover { color: var(--text); }
@media (hover: none) { .docs-anchor { opacity: 1; } }
/* where the page sits: the documentation, its group, the page */
.docs-crumbs ol { display: flex; flex-wrap: wrap; gap: var(--s1) var(--s2); margin: 0 0 var(--s3); padding: 0; list-style: none; color: var(--muted); font-size: var(--fs-small); line-height: var(--lh-small); }
.docs-crumbs li + li::before { content: "›"; margin-right: var(--s2); color: var(--faint); }
.docs-crumbs [aria-current="page"] { color: var(--text); }
/* the next page to read, and the one before it, after everything else on the page */
.docs-pager { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--s4) var(--col-gap); margin-top: var(--sec-gap); }
.docs-pager a { display: grid; gap: 2px; align-content: start; padding-block: var(--s2); border-radius: var(--radius-small); }
.docs-pager-next { text-align: right; }
.docs-pager-k { color: var(--muted); font-size: var(--fs-small); line-height: var(--lh-small); }
.docs-pager-t { color: var(--text); font-weight: 500; text-underline-offset: 3px; }
.docs-pager a:hover .docs-pager-t { text-decoration: underline; }
.docs-article p { max-width: 76ch; margin-block: 0 var(--s4); }
.docs-article > p { margin-top: var(--s4); }
.docs-article code { font-family: var(--mono); font-size: var(--fs-body); font-weight: 400; overflow-wrap: anywhere; }
.docs-request-line { display: flex; align-items: baseline; gap: var(--s3); margin-block: var(--s5) var(--s3); min-width: 0; }
.docs-request-line > code { min-width: 0; color: var(--text); }
.docs-paths { margin: 0; padding-left: var(--s5); }
.docs-code { background: var(--panel); border-radius: var(--radius-card); margin-block: var(--s5); overflow: hidden; }
.docs-code-head { display: flex; justify-content: space-between; align-items: center; gap: var(--s3); padding: var(--s3) var(--s5) 0; color: var(--muted); font-size: var(--fs-small); }
.docs-code .text-btn { min-height: 28px; font-size: var(--fs-small); }
/* a curl example copies as it is, or rewritten as fetch or Python */
.docs-copy-as { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: 0 var(--s4); }
.docs-copy-k { color: var(--faint); }
.docs-code pre, .docs-response { margin: 0; padding: var(--s3) var(--s5) var(--s4); white-space: pre-wrap; overflow-wrap: anywhere; overflow-x: auto; }
.docs-code code, .docs-response code { display: block; font-family: var(--mono); line-height: 1.6; color: var(--text); }
/* the start page's ledger of endpoints: the method as a column of figures, the task with what it does, the path */
.docs-ledger { list-style: none; margin: 0 0 var(--s4); padding: 0; border-bottom: 1px solid var(--rule); }
.docs-ledger li { display: grid; grid-template-columns: 48px minmax(0, 1fr) minmax(0, 1fr); column-gap: var(--s4); align-items: baseline; padding-block: var(--s3); border-top: 1px solid var(--rule); }
.docs-ledger-method { font-size: var(--fs-small); line-height: var(--lh-small); font-weight: 600; color: var(--muted); font-variant-numeric: tabular-nums; }
.docs-ledger-what { display: grid; gap: 2px; min-width: 0; }
.docs-ledger-what > a.inline { text-decoration: none; font-weight: 500; justify-self: start; }
.docs-ledger-what > a.inline:hover { text-decoration: underline; }
.docs-ledger-what > span { color: var(--muted); font-size: var(--fs-small); line-height: var(--lh-small); }
.docs-ledger-path { font-size: var(--fs-small) !important; line-height: var(--lh-small); color: var(--text); overflow-wrap: anywhere; }
/* the live answer that opens the start page: the request on one line, then its fields with the values this answer holds */
.docs-live-auto { display: block; margin-block: 0 var(--s6); }
.docs-live-auto h2 { margin: 0 0 var(--s3); }
.docs-live-line { display: flex; align-items: baseline; flex-wrap: wrap; gap: var(--s2) var(--s4); }
.docs-live-line > code { color: var(--text); overflow-wrap: anywhere; min-width: 0; }
.docs-live-line .text-btn { margin-left: auto; }
.docs-live-auto .docs-request-status { margin: var(--s1) 0 var(--s3); }
.docs-live-fields { width: 100%; border-collapse: collapse; text-align: left; table-layout: fixed; }
.docs-live-fields th, .docs-live-fields td { vertical-align: top; padding: var(--s2) var(--s3) var(--s2) 0; border-bottom: 1px solid var(--rule); overflow-wrap: anywhere; }
.docs-live-fields thead th { color: var(--muted); font-size: var(--fs-small); font-weight: 400; }
.docs-live-fields tbody th { width: 18%; font-weight: 400; }
.docs-live-fields td:nth-child(2) { width: 36%; }
.docs-live-fields td:last-child { color: var(--muted); }
.docs-live-type { color: var(--faint); }
.docs-live-raw { margin-top: var(--s3); }
.docs-live-raw summary { cursor: pointer; color: var(--muted); font-weight: 500; width: max-content; max-width: 100%; }
.docs-live-raw summary:hover { color: var(--text); }
.docs-live-auto .docs-response { margin-top: var(--s3); }
@media (min-width: 601px) { .docs-live-fields tbody tr:last-child > * { border-bottom: 1px solid var(--rule); } }
/* "Try the request": its heading and its button on one line on the page, the answer under them */
.docs-live { flex-direction: row; flex-wrap: wrap; gap: var(--s3) var(--s4); align-items: center; }
.docs-live > :not(h2):not(.btn) { flex-basis: 100%; }
.docs-live h2, .docs-live p { margin: 0; }
.docs-live > .btn { margin-top: 0; }
.docs-live label { font-size: var(--fs-body); font-weight: 500; }
.docs-live textarea { width: 100%; min-height: 132px; resize: vertical; font-family: var(--mono); font-size: var(--fs-body); border: 1px solid var(--control); border-radius: var(--radius-nested); background: var(--ground); color: var(--text); padding: var(--s3); } /* taste-skill-ignore: a request body to send is code */
.docs-response { width: 100%; max-height: 320px; margin-top: var(--s2); padding: var(--s4); background: var(--raised); border-radius: var(--radius-nested); }
.docs-request-status[data-state="error"] { color: var(--negative); }
.docs-parameters { width: 100%; border-collapse: collapse; text-align: left; }
.docs-parameters th, .docs-parameters td { vertical-align: top; padding: var(--s3) var(--s3) var(--s3) 0; border-bottom: 1px solid var(--rule); }
.docs-parameters thead th { color: var(--muted); font-size: var(--fs-small); font-weight: 400; }
.docs-parameters tbody th { width: 22%; font-weight: 500; }
.docs-parameters tbody th .small { display: block; color: var(--muted); margin-top: var(--s1); font-weight: 400; }
.docs-parameters td:nth-child(2) { width: 14%; color: var(--muted); }
/* the guides of a section: a register of ruled rows, the guide on the left and what it is for beside it */
.docs-link-list { list-style: none; margin: 0 0 var(--s4); padding: 0; border-bottom: 1px solid var(--rule); }
.docs-link-list li { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); column-gap: var(--s6); align-items: baseline; padding-block: var(--s3); border-top: 1px solid var(--rule); }
.docs-link-what { display: grid; gap: 2px; min-width: 0; }
.docs-link-what > a.inline { text-decoration: none; font-weight: 500; justify-self: start; }
.docs-link-what > a.inline:hover { text-decoration: underline; }
/* an endpoint's call under its task, so the start page maps a task to its endpoint at a glance */
.docs-link-call { color: var(--muted); font-size: var(--fs-small) !important; line-height: var(--lh-small); }
.docs-link-list li > span { color: var(--muted); }
.docs-prose-list { padding-left: var(--s5); margin-block: var(--s4) var(--s5); }
.docs-prose-list li + li { margin-top: var(--s3); }
.docs-badge { margin: var(--s5) 0; }
.docs-badge img { max-width: 100%; height: auto; }
.docs-badge figcaption { color: var(--muted); font-size: var(--fs-small); margin-top: var(--s2); }
.docs-reference-group ul { list-style: none; margin: 0; padding: 0; }
.docs-reference-group li + li { border-top: 1px solid var(--rule); }
.docs-reference-group li > a { display: grid; gap: var(--s1); padding-block: var(--s3); color: var(--text); }
.docs-reference-group li > a:hover > span:first-child { text-decoration: underline; text-underline-offset: 3px; }
.docs-reference-group li code, .docs-reference-group li .small { color: var(--muted); }
.docs-related { margin-top: var(--sec-gap) !important; }
.docs-json-link { margin-top: var(--s6) !important; color: var(--muted); }
.docs-page :focus-visible { outline-color: var(--text); }
.docs-access { display: flex; flex-wrap: wrap; gap: var(--s4) var(--s6); margin: var(--s4) 0; }
.docs-access div { min-width: 0; }
.docs-access dt { color: var(--muted); font-size: var(--fs-small); }
.docs-access dd { margin: var(--s1) 0 0; }
/* "On this page" is the strip of a card (app.css .sec-index, jump.js): between the head and the first section, under the top
   bar while the article scrolls; the index on the left stays the way between pages */
.docs-article > .docs-on-page + h2, .docs-article > .docs-on-page + section { margin-top: 0; }
.docs-head:has(+ .docs-on-page[data-long]) { margin-bottom: var(--s4); }
.docs-article > .docs-on-page[data-long] + h2, .docs-article > .docs-on-page[data-long] + section { margin-top: var(--s5); }
.docs-article [id] { scroll-margin-top: 88px; }
.docs-article:has(> .docs-on-page[data-long]) [id] { scroll-margin-top: calc(49px + 40px + var(--s5)); }
.docs-article h3 { font-size: var(--fs-body); font-weight: 600; margin: var(--s5) 0 var(--s2); }
.docs-response-meta { display: flex; align-items: baseline; flex-wrap: wrap; gap: var(--s3); margin-block: var(--s4) var(--s3); }
.docs-response-meta > code { color: var(--muted); }
.docs-http-status, .docs-error-status { font-variant-numeric: tabular-nums; white-space: nowrap; }
.docs-http-status { font-weight: 500; }
.docs-fields, .docs-errors { width: 100%; border-collapse: collapse; text-align: left; table-layout: fixed; }
.docs-fields th, .docs-fields td, .docs-errors th, .docs-errors td { vertical-align: top; padding: var(--s3) var(--s3) var(--s3) 0; border-bottom: 1px solid var(--rule); overflow-wrap: anywhere; }
.docs-fields thead th, .docs-errors thead th { color: var(--muted); font-size: var(--fs-small); font-weight: 400; }
.docs-fields th:first-child { width: 25%; }
.docs-fields th:nth-child(2) { width: 25%; }
.docs-fields tbody th, .docs-errors tbody th { font-weight: 400; }
.docs-fields td:nth-child(2) { color: var(--muted); }
.docs-errors th:first-child { width: 56px; }
.docs-errors th:nth-child(2) { width: 28%; }
.docs-errors thead th:first-child, .docs-error-status { text-align: right; padding-right: var(--s4); }
.docs-errors td p { margin: 0; }
.docs-errors td p + p { margin-top: var(--s2); }
.docs-error-action { color: var(--muted); }
.docs-object { margin-top: var(--s3); border-bottom: 1px solid var(--rule); }
.docs-object summary { min-height: 44px; padding-block: var(--s3); cursor: pointer; font-weight: 500; }
.docs-object[open] { padding-bottom: var(--s3); }
.docs-object-type { margin-left: var(--s2); color: var(--muted); }
.docs-object-help { margin-top: var(--s4) !important; }
.docs-verify-note { padding: var(--s4) var(--s5); background: var(--panel); border-radius: var(--radius-card); }
.docs-verify-note p { margin-bottom: 0; }
.docs-notes .docs-prose-list { margin-bottom: 0; }
#error-codes > label { display: block; margin-bottom: var(--s2); }
#docsErrorStatus { margin-top: var(--s2); color: var(--muted); }
.docs-errors tr:target { background: var(--panel); }
.docs-errors tr[hidden] { display: none; }
/* every row of a reference table keeps its rule, the last one included, so no short rule hangs under the first column */
@media (min-width: 601px) { .docs-fields tbody tr:last-child > *, .docs-errors tbody tr:last-child > *, .docs-parameters tbody tr:last-child > * { border-bottom: 1px solid var(--rule); } }
@media (min-width: 961px) { .docs-ready .docs-nav > summary { display: none; } }
@media (max-width: 960px) {
  .docs-layout { grid-template-columns: minmax(0, 1fr); gap: var(--s5); }
  .docs-index { position: static; }
  .docs-nav { background: var(--panel); border-radius: var(--radius-card); padding: var(--s3) var(--s4); }
  .docs-nav summary { min-height: 24px; }
  .docs-nav-content { margin-top: var(--s4); }
  #docsLinks { max-height: 55svh; }
  .docs-nav-group a { min-height: 44px; }
}
@media (max-width: 600px) {
  .docs-pager { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .docs-pager-next { text-align: left; }
  .docs-pager a { min-height: 44px; }
  .docs-copy-as { gap: 0 var(--s4); }
  .docs-link-list li { grid-template-columns: minmax(0, 1fr); row-gap: 2px; }
  .docs-ledger li { grid-template-columns: 40px minmax(0, 1fr); row-gap: var(--s1); }
  .docs-ledger-path { grid-column: 2; }
  .docs-live-fields thead { display: none; }
  .docs-live-fields tbody tr { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: var(--s1) var(--s3); padding-block: var(--s3); border-bottom: 1px solid var(--rule); }
  .docs-live-fields th, .docs-live-fields td { padding: 0; border: 0; width: auto !important; }
  .docs-live-fields td:last-child { grid-column: 1 / -1; }
  .docs-live-line .text-btn { margin-left: 0; min-height: 44px; }
  .docs-head h1 { font-size: var(--fs-stamp); line-height: var(--lh-stamp); }
  .docs-code-head { padding-inline: var(--s4); }
  .docs-code pre { padding-inline: var(--s4); }
  .docs-code .text-btn, .docs-live > .btn { min-height: 44px; }
  #docsSearch, #docsErrorSearch, .docs-live textarea { font-size: 16px; min-height: 44px; }
  .docs-parameters thead { display: none; }
  .docs-parameters tbody tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--s1) var(--s3); padding-block: var(--s3); border-bottom: 1px solid var(--rule); }
  .docs-parameters th, .docs-parameters td { padding: 0; border: 0; width: auto !important; }
  .docs-parameters td:last-child { grid-column: 1 / -1; }
  .docs-parameters td:nth-child(2) { text-align: right; }
  .docs-nav-method, .docs-code-head, .docs-code .text-btn { font-size: var(--fs-small); }
  .docs-fields thead, .docs-errors thead { display: none; }
  .docs-fields tbody tr, .docs-errors tbody tr { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--s2) var(--s3); padding-block: var(--s4); border-bottom: 1px solid var(--rule); }
  .docs-fields th, .docs-fields td, .docs-errors th, .docs-errors td { padding: 0; border: 0; width: auto !important; }
  .docs-fields td:last-child, .docs-errors td:last-child { grid-column: 1 / -1; }
  .docs-fields td:nth-child(2) { text-align: right; }
  .docs-errors tbody tr { grid-template-columns: 44px minmax(0, 1fr); }
  .docs-verify-note { padding-inline: var(--s4); }
}

/* Stability (polish pass, 30 October 2026). A copy button says "Copied" in its own words: each is as wide as that word, so
   the buttons beside it and the line it stands on do not move when it says it. "The whole answer" opens by sliding
   (app.css, details). */
.docs-code .text-btn { min-width: 40px; text-align: center; }
:root:lang(it) .docs-code .text-btn { min-width: 44px; }
