/* API reference (OpenAPI) pages. Extends docs.css + site.css tokens; logical properties only (RTL-safe). No JavaScript needed. */
.api-ref,.api-landing{
  --api-get-fg:var(--ds-route);--api-get-bg:var(--ds-route-100);
  --api-post-fg:#A8300A;--api-post-bg:var(--ds-orange-100);
  --api-patch-fg:var(--ds-warn);--api-patch-bg:var(--ds-warn-100);
  --api-delete-fg:var(--ds-danger);--api-delete-bg:#FBE3E0;
  --api-event-fg:#1D3FA8;--api-event-bg:#E3EAFB;
  --api-ok-fg:var(--ds-route);--api-ok-bg:var(--ds-route-100);
  --api-4-fg:var(--ds-warn);--api-4-bg:var(--ds-warn-100);
  --api-5-fg:var(--ds-danger);--api-5-bg:#FBE3E0;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .api-ref,:root:not([data-theme="light"]) .api-landing{
    --api-post-fg:#FF9A70;--api-delete-bg:#3A1713;--api-event-fg:#9DB8FF;--api-event-bg:#18233F;--api-5-bg:#3A1713;
  }
}
:root[data-theme="dark"] .api-ref,:root[data-theme="dark"] .api-landing{--api-post-fg:#FF9A70;--api-delete-bg:#3A1713;--api-event-fg:#9DB8FF;--api-event-bg:#18233F;--api-5-bg:#3A1713}

/* landing */
.api-landing .doc-cats{grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr))}
.api-landing__h{margin-block:var(--s-7) var(--s-3);font-size:1.375rem}
.api-card{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-3);align-content:start}
.api-card h2{margin:0}
.api-card p{margin:0}
.api-card__facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-4);margin:0;padding-block:var(--s-2)}
.api-card__facts div{display:grid;gap:2px}.api-card__facts dt{font-size:.8125rem;color:var(--ds-ink-500)}.api-card__facts dd{margin:0;font-weight:600}
.api-actions{display:flex;flex-wrap:wrap;gap:var(--s-3);margin-block:var(--s-4)}
.api-list{margin-block-end:var(--s-5);padding-inline-start:1.2em;display:grid;gap:var(--s-2)}
.api-note{color:var(--ds-ink-700);font-size:.9375rem;margin-block:var(--s-2)}

/* page header + overview */
.api-ref .docs-main>header .code{max-inline-size:78ch}
.api-section{margin-block-start:var(--s-7);scroll-margin-block-start:calc(var(--header-h) + 16px)}
.api-section>h2{padding-block-start:var(--s-4);border-block-start:1px solid var(--ds-line);font-size:clamp(1.5rem,1.2rem + 1vw,1.875rem)}
.api-facts{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-5);margin:var(--s-5) 0 0;max-inline-size:78ch}
.api-facts>div{display:grid;gap:var(--s-2)}
.api-facts dt{font:700 1rem var(--font-display)}.api-facts dd{margin:0;min-inline-size:0}
.api-facts dd p{margin-block:0 var(--s-2)}

/* endpoint index (sticky column, reuses .docs-nav / .tree) */
.api-index .tree a{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.api-index .tree .cat{font-weight:700}
.api-index .tree code{font-size:.8125rem;overflow-wrap:anywhere;background:none;border:0;padding:0;color:inherit}
@media (min-width:1000px){.api-index{max-block-size:calc(100vh - var(--header-h) - 32px)}}

/* method + status badges (text always present: colour is never the only cue) */
.method{display:inline-block;min-inline-size:3.6em;padding:1px 8px;border-radius:var(--r-sm);font:700 .75rem/1.7 var(--font-mono);text-align:center;letter-spacing:.02em;border:1px solid currentColor;unicode-bidi:isolate;direction:ltr}
.method--get{color:var(--api-get-fg);background:var(--api-get-bg)}
.method--post{color:var(--api-post-fg);background:var(--api-post-bg)}
.method--patch{color:var(--api-patch-fg);background:var(--api-patch-bg)}
.method--delete{color:var(--api-delete-fg);background:var(--api-delete-bg)}
.method--event{color:var(--api-event-fg);background:var(--api-event-bg)}
.status{display:inline-block;padding:0 8px;border-radius:var(--r-sm);font:700 .8125rem/1.7 var(--font-mono);border:1px solid currentColor;unicode-bidi:isolate;direction:ltr}
.status--2xx{color:var(--api-ok-fg);background:var(--api-ok-bg)}
.status--4xx{color:var(--api-4-fg);background:var(--api-4-bg)}
.status--5xx{color:var(--api-5-fg);background:var(--api-5-bg)}

/* one endpoint */
.api-op{margin-block-start:var(--s-6);padding:var(--s-5);border:1px solid var(--ds-line);border-radius:var(--r-md);background:var(--ds-surface);scroll-margin-block-start:calc(var(--header-h) + 16px)}
.api-op__title{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3);margin:0 0 var(--s-2);font-size:1.1875rem}
.api-path{font:600 1.0625rem var(--font-mono);overflow-wrap:anywhere;background:none;border:0;padding:0;color:var(--ds-ink-900);unicode-bidi:isolate}
.api-op__title .anchor{margin-inline-start:auto;color:var(--ds-ink-500);text-decoration:none;font-weight:400;min-inline-size:24px;text-align:center}
.api-op__title .anchor:hover,.api-op__title .anchor:focus-visible{color:var(--ds-orange-600)}
.api-op__summary{font-weight:600;font-size:1.0625rem;margin-block:0 var(--s-3)}
.api-op h4{margin:var(--s-5) 0 var(--s-2);font-size:1rem}
.api-section>h3{margin-block-start:var(--s-6)}
.api-meta{list-style:none;margin:var(--s-3) 0;padding:var(--s-3) var(--s-4);display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-2);background:var(--ds-paper);border-radius:var(--r-sm);font-size:.9375rem}
.api-meta__k{font-weight:700;margin-inline-end:6px}
.api-meta code{overflow-wrap:anywhere}
.api-ex-label{margin:var(--s-3) 0 0;font-weight:600;font-size:.9375rem}
.api-op--event .api-op__title{font-size:1.125rem}

/* schema + parameter tables */
.api-table{inline-size:100%;border-collapse:collapse;background:var(--ds-surface);font-size:.9375rem;margin:0}
.api-table th,.api-table td{padding:8px 12px;border:1px solid var(--ds-line);vertical-align:top;text-align:start}
.api-table thead th{background:var(--ds-paper);font-weight:700;white-space:nowrap}
.api-table tbody th{font-weight:600;white-space:nowrap;padding-inline-start:calc(12px + var(--depth,0) * 1.25em);background:var(--ds-surface)}
.api-table td:nth-child(2){white-space:nowrap}
.api-table td p{margin:0 0 var(--s-1)}.api-table td p:last-child{margin-block-end:0}
.api-table code{overflow-wrap:anywhere}
.api-table tbody th code{white-space:nowrap}
.api-req{font-weight:700;color:var(--api-post-fg)}.api-opt{color:var(--ds-ink-500)}
.api-null{color:var(--ds-ink-500);font-size:.8125rem}
.api-enum code+code,.api-enum code+code{margin-inline-start:4px}
.api-enum{margin-block-start:var(--s-1)}
.api-constraints{display:flex;flex-wrap:wrap;gap:4px var(--s-4);color:var(--ds-ink-700);font-size:.875rem;margin-block-start:var(--s-1)}
.api-table .api-alt th{background:var(--ds-paper);font-weight:700;padding-inline-start:calc(12px + var(--depth,0) * 1.25em);white-space:normal}
.api-alt__text{display:block;font-weight:400;margin-block-start:2px}
.api-op .table-wrap{margin-block:var(--s-2) var(--s-3);border-radius:var(--r-sm)}

/* responses + samples */
.api-responses,.api-samples{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-2)}
.api-resp,.api-sample{min-inline-size:0;border:1px solid var(--ds-line);border-radius:var(--r-sm);background:var(--ds-surface)}
.api-resp>summary,.api-sample>summary{cursor:pointer;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3);min-block-size:44px;padding:6px var(--s-4);font-weight:600}
.api-resp__text{font-weight:400;color:var(--ds-ink-700);min-inline-size:0;overflow-wrap:anywhere}
.api-resp__body,.api-sample .code{margin:0 var(--s-4) var(--s-4)}
.api-resp__body>p{margin-block:var(--s-2)}
.api-resp[open]>summary,.api-sample[open]>summary{border-block-end:1px solid var(--ds-line);margin-block-end:var(--s-3)}
.api-resp>summary:focus-visible,.api-sample>summary:focus-visible,.api-op__title .anchor:focus-visible,.api-index a:focus-visible{outline:2px solid var(--ds-focus);outline-offset:2px;border-radius:var(--r-sm)}

@media (max-width:640px){
  .api-op{padding:var(--s-4) var(--s-3)}
  .api-card__facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .api-table th,.api-table td{padding:6px 8px}
  .api-op__title .anchor{margin-inline-start:0}
}
@media (forced-colors:active){.method,.status{border:1px solid CanvasText}}
@media print{.api-index,.api-actions{display:none}.api-resp,.api-sample{break-inside:avoid}}
.api-resp--shared{margin:0;border:1px solid var(--ds-line);border-radius:var(--r-sm);background:var(--ds-surface)}
.api-resp--shared a{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3);min-block-size:44px;padding:6px var(--s-4);color:var(--ds-ink-900);text-decoration:none}
.api-resp--shared a:hover .api-resp__more{text-decoration:underline}
.api-resp--shared a:focus-visible{outline:2px solid var(--ds-focus);outline-offset:2px;border-radius:var(--r-sm)}
.api-resp__more{margin-inline-start:auto;font-size:.875rem;color:var(--ds-ink-700)}
