/* Public API reference */.openapi-reference-page .secondary-button {
  display: inline-flex;
  min-height: 44px;
  padding: 10px 16px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px solid transparent;
  border-radius: 10px;
  font-family: var(--font-heading);
  font-size: .9rem;
  font-weight: 650;
  line-height: 1.2;
  text-decoration: none;
  transition: transform 160ms ease, background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}
.openapi-reference-page .secondary-button { color: #24466d; border-color: #cbd9e9; background: white; }
.openapi-reference-page .secondary-button:hover { color: #153a66; border-color: #9db8d6; background: #f4f8fc; transform: translateY(-1px); }.openapi-reference-page .secondary-button svg { width: 18px; height: 18px; flex: 0 0 auto; }
.api-sdk-install { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 14px 16px 0; padding: 9px 9px 9px 15px; border: 1px solid #33415c; border-radius: 9px; background: #16203a; }
.api-sdk-install code { color: #9fe3b9; font: .84rem/1.5 ui-monospace, SFMono-Regular, Consolas, monospace; }
.api-copy--inline, .api-sdk-snippet .api-copy { position: static; }
.api-sdk-snippet { position: relative; display: flex; flex-direction: column; align-items: flex-end; }
.api-sdk-snippet .api-copy { position: absolute; top: 13px; right: 13px; }
.api-sdk-snippet pre { width: 100%; }
.api-lifecycle-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.api-lifecycle-state { padding: 16px; border: 1px solid #e1e8f1; border-radius: 12px; background: #f8fafc; }
.api-lifecycle-state code { display: inline-flex; margin-bottom: 9px; padding: 3px 8px; border-radius: 999px; color: #385777; background: #e8eef6; font-size: .75rem; font-weight: 700; }
.api-lifecycle-state p { font-size: .8rem; }
.api-lifecycle-state--running code { color: #795100; background: #fff0c7; }
.api-lifecycle-state--completed code { color: #076443; background: #dff7eb; }
.api-lifecycle-state--failed code { color: #9a3030; background: #fde8e8; }
.api-callout { display: flex; align-items: flex-start; gap: 9px; margin: 16px 0 0 !important; padding: 12px 14px; border-radius: 10px; color: #3d5877 !important; background: #eef5fc; font-size: .8rem; }
.api-callout svg { width: 16px; flex: 0 0 auto; margin-top: 2px; }
.api-callout--warning { color: #80510b !important; background: #fff6df; }
.api-result-contract { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.api-result-contract > div { padding: 18px; border: 1px solid #e1e8f1; border-radius: 12px; background: #f8fafc; }
.api-result-contract code { display: inline-block; margin-bottom: 9px; color: var(--docs-accent-strong); font-size: .85rem; font-weight: 700; }
.api-result-contract p { font-size: .84rem; }
.api-developer-docs pre code.hljs { display: block; overflow: visible; padding: 0; color: #e5edf9; background: transparent; }
.api-developer-docs .hljs-comment, .api-developer-docs .hljs-quote { color: #8292aa; font-style: italic; }
.api-developer-docs .hljs-keyword, .api-developer-docs .hljs-selector-tag { color: #ff7ab2; }
.api-developer-docs .hljs-string, .api-developer-docs .hljs-attr { color: #a8db87; }
.api-developer-docs .hljs-number, .api-developer-docs .hljs-literal { color: #79c7ff; }
.api-developer-docs .hljs-title, .api-developer-docs .hljs-function .hljs-title { color: #d9b8ff; }
.api-developer-docs .hljs-variable, .api-developer-docs .hljs-template-variable { color: #ffd580; }
@keyframes apiReveal { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
@media (max-width: 900px) {
  .api-lifecycle-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 620px) {
  .api-docs-grid, .api-rule-grid, .api-lifecycle-grid, .api-result-contract { grid-template-columns: 1fr; }
}

/* Self-hosted OpenAPI reference (no CDN or build step required). */
.shell:has(.openapi-reference-page) { max-width: none; padding: 0; }

/* Estas páginas usaban once azules distintos para el mismo papel (acento,
   texto de enlace, relleno de badge). Se reducen a cuatro escalones derivados
   del azul de marca y de la familia `--btn-key-*` de 00-tokens.css, para que
   la documentación se lea como el resto del sitio.

   Se declaran acotados a la página y no en 00-tokens.css porque son de esta
   cara del producto: ninguna otra plantilla carga estos dos módulos. No son un
   par base→override —son la definición única del color, consumida también por
   15-public-docs-b.css, que carga después. */
.openapi-reference-page {
  --docs-accent: #006fc0;
  --docs-accent-strong: #005596;
  --docs-accent-soft: #eaf3fb;
  --docs-accent-line: #bcd8ef;
}

.openapi-reference-page { display: grid; grid-template-columns: 280px minmax(0, 1fr); min-height: calc(100vh - 64px); background: #f7f9fc; }
/* `min-width: 0` en los dos carriles: sin él, el mínimo `auto` de la rejilla
   toma la anchura de contenido mínima de un token de código sin puntos de
   corte y estira el carril por encima del viewport. Como el body lleva
   `overflow-x: clip` (20-shell.css), eso no se ve como scroll: se ve como
   contenido cortado. */
.openapi-sidebar, .openapi-content { min-width: 0; }
.openapi-sidebar { position: sticky; top: 64px; align-self: start; height: calc(100vh - 64px); padding: 27px 20px; overflow: auto; border-right: 1px solid #dfe6ef; background: white; }
.openapi-sidebar > strong, .openapi-sidebar > small { display: block; margin: 18px 8px 0; }
.openapi-sidebar > small { margin-top: 4px; color: #758297; }
.openapi-back { display: flex; align-items: center; gap: 7px; color: var(--docs-accent); font-weight: 650; text-decoration: none; }
.openapi-back svg { width: 16px; }
.openapi-sidebar nav { display: grid; gap: 4px; margin-top: 24px; }
.openapi-sidebar nav a { display: grid; grid-template-columns: 48px 1fr; gap: 8px; align-items: center; padding: 9px 8px; border-radius: 8px; color: #536077; font-size: .75rem; line-height: 1.25; text-decoration: none; }
.openapi-sidebar nav a:hover { color: #172033; background: #f0f5fb; }
.method { display: inline-grid; min-width: 43px; padding: 4px 6px; place-items: center; border-radius: 5px; color: white; font: 750 .62rem/1 ui-monospace, monospace; text-transform: uppercase; }
.method-get { background: #16835f; }.method-post { background: var(--docs-accent); }.method-schema { background: #68758b; }
.openapi-content { width: min(980px, calc(100% - 48px)); margin: 0 auto; padding: 52px 0 80px; }
.openapi-operation, .openapi-schemas { margin-bottom: 24px; padding: 30px; border: 1px solid #dde5ef; border-radius: 16px; background: white; box-shadow: 0 7px 25px rgba(27, 47, 75, .04); scroll-margin-top: 85px; }
.openapi-operation > header { display: flex; align-items: center; gap: 11px; }.openapi-operation > header code { color: #34445c; font-size: .92rem; }
.openapi-operation h2 { margin: 20px 0 8px; font: 700 1.55rem/1.2 Outfit, sans-serif; }.openapi-operation > p { color: #66758c; line-height: 1.6; }
.openapi-operation h3 { margin: 27px 0 10px; font-size: .82rem; letter-spacing: .05em; text-transform: uppercase; }
.openapi-auth { display: flex; gap: 9px; align-items: center; margin-top: 18px; padding: 11px 13px; border-radius: 8px; color: #3b5575; background: #eff5fb; }.openapi-auth svg { width: 16px; }
.openapi-operation pre, .openapi-schemas pre { max-height: 420px; margin: 9px 0 0; padding: 16px; overflow: auto; border-radius: 9px; color: #dce8fa; background: #121c2f; font: .76rem/1.55 ui-monospace, monospace; }
.openapi-table, .openapi-responses { display: grid; border: 1px solid #e1e7ef; border-radius: 10px; overflow: hidden; }
.openapi-table > div, .openapi-responses > div { display: grid; grid-template-columns: 125px 1fr; gap: 12px; padding: 13px; }.openapi-table > div + div, .openapi-responses > div + div { border-top: 1px solid #e7ebf1; }
.openapi-table span, .openapi-responses span { color: #68768b; font-size: .83rem; }.openapi-table p { grid-column: 2; margin: -5px 0 0; color: #7b8799; font-size: .8rem; }
.openapi-responses pre { grid-column: 1 / -1; }.openapi-responses strong { color: #16765a; }
.openapi-media-type { grid-column: 1 / -1; width: fit-content; margin-top: 9px; padding: 3px 7px; border-radius: 5px; color: #536b87; background: #edf3f9; font-size: .7rem; }
.openapi-operation h4 { grid-column: 1 / -1; margin: 12px 0 0; color: #536077; font-size: .78rem; }
.openapi-response-headers { display: grid; grid-column: 1 / -1; grid-template-columns: max-content 1fr; gap: 7px 10px; padding: 10px; border-radius: 7px; background: #f6f8fb; }
.openapi-response-headers code { color: #365d87; font-size: .72rem; }
.openapi-schemas > h2 { font: 700 1.55rem Outfit, sans-serif; }
.openapi-schemas > p { color: #66758c; line-height: 1.6; margin: 0 0 6px; }
.openapi-schemas details { margin-top: 10px; border: 1px solid #e7ecf3; border-radius: 12px; background: #fbfcfe; overflow: hidden; transition: border-color .2s ease, box-shadow .2s ease; }
.openapi-schemas details[open] { border-color: #cfe0f5; box-shadow: 0 8px 24px rgba(19, 43, 76, .06); }
.openapi-schemas summary { display: grid; grid-template-columns: minmax(150px, 200px) 1fr 20px; gap: 12px; align-items: center; padding: 14px 16px; cursor: pointer; list-style: none; transition: background .16s ease; }
.openapi-schemas summary::-webkit-details-marker { display: none; }
.openapi-schemas summary:hover { background: #f2f7fc; }
.openapi-schemas details[open] > summary { border-bottom: 1px solid #edf1f6; }
.openapi-schemas summary code { padding: 3px 9px; border-radius: 7px; color: #2c5486; background: #e9f1fb; font-weight: 600; font-size: .78rem; overflow-wrap: anywhere; }
.openapi-schemas summary span { color: #788598; font-size: .8rem; }
.openapi-schemas summary svg { width: 16px; color: #94a3b8; transition: transform .22s ease; }
.openapi-schemas details[open] > summary svg { transform: rotate(180deg); }
.openapi-schemas details > pre { margin: 16px; }
.api-docs-sidebar nav { gap: 2px; }
.api-docs-sidebar nav .api-nav-group { margin: 18px 8px 6px; color: #9aa6b7; font-size: .66rem; font-weight: 750; letter-spacing: .09em; text-transform: uppercase; }
.api-docs-sidebar nav a { display: flex; grid-template-columns: none; gap: 9px; min-height: 37px; }
.api-docs-sidebar nav a > svg { width: 15px; flex: 0 0 auto; color: #8290a4; }
.api-docs-sidebar nav a.is-active { color: var(--docs-accent-strong); background: #eaf3fc; font-weight: 700; }
.api-docs-sidebar nav a.is-active > svg { color: var(--docs-accent); }
.api-doc-page { width: min(920px, calc(100% - 48px)); }
.api-doc-heading { margin-bottom: 28px; }
.api-doc-kicker { display: block; margin-bottom: 11px; color: var(--docs-accent); font-size: .72rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.api-doc-heading h1 { max-width: 780px; margin: 0 0 12px; color: #15233a; font: 700 clamp(2rem, 4vw, 3rem)/1.08 Outfit, sans-serif; letter-spacing: -.025em; }
.api-doc-heading > code { display: inline-block; margin: -2px 0 14px; padding: 4px 9px; border-radius: 6px; color: #42617f; background: #edf3f8; }
.api-doc-heading > p { max-width: 760px; margin: 0; color: #617087; font-size: 1.02rem; line-height: 1.7; }
.api-doc-scope-note { margin-top: 10px; padding-left: 14px; border-left: 3px solid #cfdcec; color: #7c8aa0; font-size: .86rem; line-height: 1.6; }