/* /api, the API's page (pages/api.html.twig, partials/api/parts.html.twig, pages/api.ts). */
.ld-ap { position: relative; }
.ld-ap h1, .ld-ap h2, .ld-ap h3, .ld-ap h4 { margin: 0; }
.ld-ap-eyebrow { font: 700 12px/16px var(--font-sans); letter-spacing: .08em; text-transform: uppercase; color: var(--ld-green); }
.ld-ap-muted { margin: 0; font: 400 13px/19px var(--font-sans); color: var(--ld-text-muted); }
.ld-ap code { font: 500 13px/18px var(--font-mono, ui-monospace, Menlo, monospace); }
/* The short page, in the legal pages' reading column */
.ld-ap-pub { max-width: 760px; margin: 0 auto; padding: 48px 24px 64px; display: flex; flex-direction: column; gap: 32px; }
.ld-ap-hero { display: flex; flex-direction: column; gap: 12px; }
.ld-ap-hero h1 { font: 800 44px/50px var(--font-display); color: var(--ld-text-strong); }
.ld-ap-hero p { margin: 0; font: 400 18px/27px var(--font-sans); color: var(--ld-text-secondary); }
.ld-ap-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.ld-ap-tiles.is-compact .ld-ap-tile { padding: 14px; }
.ld-ap-tile { display: flex; flex-direction: column; gap: 8px; padding: 18px; border-radius: var(--ld-radius-lg); border: 1px solid var(--ld-line); background: var(--ld-surface-2); }
.ld-ap-tile b { font: 700 15px/20px var(--font-display); color: var(--ld-text-strong); }
.ld-ap-tile small { font: 400 13.5px/19px var(--font-sans); color: var(--ld-text-secondary); }
.ld-ap-ti { width: 44px; height: 44px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; background: var(--ld-green-surface); color: var(--ld-green); }
.ld-ap-block { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.ld-ap-block h2 { font: 700 20px/26px var(--font-display); color: var(--ld-text-strong); }
.ld-ap-block > .ld-ap-code, .ld-ap-block > .ld-ap-tw { align-self: stretch; }
.ld-ap-block .btn, .ld-ap-band .btn, .ld-ap-gcard .btn { min-height: 44px; }
.ld-ap-tiers { display: flex; gap: 10px 18px; flex-wrap: wrap; }
.ld-ap-tier { display: inline-flex; align-items: center; gap: 10px; font: 700 15px/20px var(--font-sans); color: var(--ld-text-strong); }
.ld-ap-band { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 22px 24px; border-radius: var(--ld-radius-lg); border: 1px solid var(--ld-green-line); background: linear-gradient(135deg, rgba(14,229,155,.10), rgba(255,255,255,.01) 70%), var(--ld-surface-2); }
.ld-ap-band b { font: 700 18px/24px var(--font-display); color: var(--ld-text-strong); }
.ld-ap-band-b { display: flex; gap: 8px; flex-wrap: wrap; }
.ld-ap-go { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; color: var(--ld-green); font: 600 15px/20px var(--font-sans); text-decoration: none; }
.ld-ap-go svg { transition: transform 150ms ease-out; }
.ld-ap-go:hover svg, .ld-ap-go:focus-visible svg { transform: translateX(3px); }
/* Code */
.ld-ap-code { margin: 0; border-radius: var(--ld-radius-md); border: 1px solid var(--ld-line); background: var(--ld-surface-0); overflow: hidden; min-width: 0; }
.ld-ap-code figcaption { display: flex; align-items: center; gap: 10px; min-height: 40px; padding: 0 6px 0 14px; border-bottom: 1px solid var(--ld-line); font: 600 12px/16px var(--font-sans); color: var(--ld-text-muted); }
.ld-ap-code figcaption > span { flex: 1; }
.ld-ap-code pre { margin: 0; padding: 14px 16px; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.ld-ap-code pre code { display: block; white-space: pre; color: var(--ld-text-strong); font: 500 13px/20px var(--font-mono, ui-monospace, Menlo, monospace); }
.ld-ap-tabs { display: flex; gap: 2px; margin-right: 6px; }
.ld-ap-tabs button { position: relative; min-height: 32px; padding: 0 10px; border: 0; border-radius: 6px; background: none; color: var(--ld-text-muted); font: 600 12px/16px var(--font-sans); cursor: pointer; }
.ld-ap-tabs button::after { content: ""; position: absolute; inset: -6px -2px; }
.ld-ap-tabs button[aria-selected="true"] { background: var(--ld-surface-3); color: var(--ld-text-strong); }
/* Tables */
.ld-ap-tw { overflow-x: auto; border-radius: var(--ld-radius-md); border: 1px solid var(--ld-line); }
.ld-ap-t { width: 100%; border-collapse: collapse; font: 400 14px/20px var(--font-sans); }
.ld-ap-t th { padding: 10px 12px; text-align: left; font: 600 12px/16px var(--font-sans); color: var(--ld-text-muted); background: var(--ld-surface-2); border-bottom: 1px solid var(--ld-line); }
.ld-ap-t td { padding: 10px 12px; vertical-align: top; border-top: 1px solid var(--ld-line); color: var(--ld-text-secondary); }
.ld-ap-t td code { color: var(--ld-text-strong); }
.ld-ap-lim caption { caption-side: top; padding: 10px 12px; text-align: left; font: 700 13px/18px var(--font-sans); color: var(--ld-text-strong); background: var(--ld-surface-2); border-bottom: 1px solid var(--ld-line); }
.ld-ap-lim th[scope="row"] { color: var(--ld-text); font-weight: 500; white-space: nowrap; background: none; }
.ld-ap-lim td { text-align: right; font-variant-numeric: tabular-nums; color: var(--ld-text-strong); }
.ld-ap-lim thead th:not(:first-child) { text-align: right; }
/* The reference */
.ld-ap-ref { display: grid; grid-template-columns: 240px minmax(0, 1fr); max-width: 1240px; margin: 0 auto; padding: 0 32px; }
.ld-ap-pick { display: none; }
.ld-ap-toc { position: sticky; top: 64px; align-self: start; max-height: calc(100vh - 64px); overflow-y: auto; display: flex; flex-direction: column; gap: 2px; padding: 28px 16px 28px 0; border-right: 1px solid var(--ld-line); box-sizing: border-box; }
.ld-ap-grab { display: none; }
.ld-ap-search { display: flex; align-items: center; gap: 8px; min-height: 40px; margin: 0 0 12px; padding: 0 10px; border-radius: var(--ld-radius-md); border: 1px solid var(--ld-line-strong); background: var(--ld-surface-2); color: var(--ld-text-muted); }
.ld-ap-search input { flex: 1; min-width: 0; border: 0; outline: 0; background: none; color: var(--ld-text); font: 400 14px/20px var(--font-sans); }
.ld-ap-toc-a, .ld-ap-toc-e { display: flex; align-items: center; gap: 8px; min-height: 36px; padding: 0 10px; border-radius: 8px; color: var(--ld-text-secondary); font: 500 14px/18px var(--font-sans); text-decoration: none; }
.ld-ap-toc-e { min-height: 32px; padding-left: 18px; font-size: 13px; }
.ld-ap-toc-e .ld-ap-m { height: 18px; padding: 0 5px; font-size: 10px; }
.ld-ap-toc-a:hover, .ld-ap-toc-e:hover { background: var(--ld-fill-hover); color: var(--ld-text-strong); }
.ld-ap-toc-a[aria-current="true"] { background: var(--ld-green-surface); color: var(--ld-green); font-weight: 600; }
.ld-ap-none { margin: 8px 10px; font: 400 13px/18px var(--font-sans); color: var(--ld-text-muted); }
.ld-ap-doc { position: relative; min-width: 0; }
.ld-ap-docin { display: flex; flex-direction: column; gap: 36px; padding: 28px 0 48px 40px; max-width: 820px; }
.ld-ap-dh { display: flex; flex-direction: column; gap: 6px; }
.ld-ap-dh h1 { font: 800 32px/38px var(--font-display); color: var(--ld-text-strong); }
.ld-ap-dh p { margin: 0; font: 400 15px/22px var(--font-sans); color: var(--ld-text-secondary); }
.ld-ap-sec { display: flex; flex-direction: column; gap: 14px; scroll-margin-top: 80px; }
.ld-ap-sec p, .ld-ap-list { margin: 0; font: 400 15px/23px var(--font-sans); color: var(--ld-text-secondary); }
.ld-ap-list { padding-left: 20px; display: flex; flex-direction: column; gap: 6px; }
.ld-ap-sec p a { color: var(--ld-green); text-decoration: none; }
.ld-ap-sh { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 10px; border-bottom: 1px solid var(--ld-line); }
.ld-ap-sh h2 { font: 800 22px/28px var(--font-display); color: var(--ld-text-strong); }
.ld-ap-endpoint { display: flex; flex-direction: column; gap: 14px; padding-top: 8px; scroll-margin-top: 80px; }
.ld-ap-endpoint h3 { font: 700 17px/24px var(--font-display); color: var(--ld-text-strong); }
.ld-ap-endpoint h4 { display: flex; align-items: center; gap: 8px; margin-top: 6px; font: 700 14px/20px var(--font-sans); color: var(--ld-text-strong); }
.ld-ap-callout { display: flex; align-items: flex-start; gap: 10px; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--ld-green-line); background: var(--ld-green-surface); }
.ld-ap-sec .ld-ap-callout { color: var(--ld-text); }
.ld-ap-callout svg { color: var(--ld-green); margin-top: 2px; flex: none; }
.ld-ap-ep { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--ld-line); background: var(--ld-surface-2); }
.ld-ap-ep > code { font: 600 15px/20px var(--font-mono, ui-monospace, monospace); color: var(--ld-text-strong); overflow-wrap: anywhere; }
.ld-ap-m { display: inline-flex; align-items: center; height: 24px; padding: 0 9px; border-radius: 6px; font: 800 11.5px/14px var(--font-mono, ui-monospace, monospace); letter-spacing: .04em; flex: none; }
.ld-ap-m.get { background: rgba(127,176,253,.14); color: #9cc2ff; }
.ld-ap-m.post { background: rgba(14,229,155,.14); color: var(--ld-green); }
.ld-ap-m.put, .ld-ap-m.patch { background: rgba(251,176,31,.14); color: #f6c26b; }
.ld-ap-m.delete { background: rgba(255,138,156,.14); color: #ff9fae; }
.ld-ap-perm { display: inline-flex; align-items: center; gap: 5px; height: 24px; padding: 0 9px; border-radius: 999px; border: 1px solid var(--ld-line-strong); font: 600 12px/14px var(--font-mono, ui-monospace, monospace); color: var(--ld-text-secondary); }
.ld-ap-ep .ld-ap-perm:first-of-type { margin-left: auto; }
.ld-ap-st { display: inline-flex; align-items: center; height: 20px; padding: 0 7px; border-radius: 6px; background: rgba(255,138,156,.12); color: #ff9fae; font: 700 12px/14px var(--font-mono, ui-monospace, monospace); }
.ld-ap-st.ok { background: rgba(14,229,155,.14); color: var(--ld-green); }
.ld-ap-methods { display: flex; gap: 8px; }
/* A Free member's reference: blurred behind the paid plans' card */
.ld-ap-teaser { border-top: 1px solid var(--ld-line); padding-top: 12px; }
.ld-ap-tcap { max-width: 1240px; margin: 0 auto; padding: 12px 32px 0; font: 700 12px/16px var(--font-sans); letter-spacing: .08em; text-transform: uppercase; color: var(--ld-text-dim); }
.ld-ap-ref.is-locked .ld-ap-docin { filter: blur(6px); opacity: .55; pointer-events: none; user-select: none; }
.ld-ap-ref.is-locked .ld-ap-toc { pointer-events: none; opacity: .7; }
.ld-ap-gate { position: absolute; inset: 0; display: flex; align-items: flex-start; justify-content: center; padding: 120px 24px 0; }
.ld-ap-gcard { position: sticky; top: 80px; width: 420px; max-width: 100%; box-sizing: border-box; display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 28px; text-align: center; border-radius: var(--ld-radius-xl); border: 1px solid color-mix(in srgb, var(--ld-tier-spark) 45%, transparent); background: linear-gradient(160deg, color-mix(in srgb, var(--ld-tier-spark) 16%, transparent), color-mix(in srgb, var(--ld-tier-spark) 4%, transparent) 60%), var(--ld-surface-2); box-shadow: var(--ld-shadow-modal); }
.ld-ap-gcard b { font: 700 18px/24px var(--font-display); color: var(--ld-text-strong); }
.ld-ap-gcard small { font: 400 13.5px/19px var(--font-sans); color: var(--ld-text-secondary); }
.ld-ap-scrim { position: fixed; inset: 0; z-index: 59; background: var(--ld-scrim); animation: ld-fade 200ms ease-out both; }
@media (max-width: 760px) {
  .ld-ap-pub { padding: 28px 16px 40px; gap: 24px; }
  .ld-ap-hero h1 { font-size: 32px; line-height: 38px; }
  .ld-ap-tiles { grid-template-columns: 1fr; }
  .ld-ap-band { flex-direction: column; align-items: stretch; }
  .ld-ap-band-b { flex-direction: column; }
  .ld-ap-ref { grid-template-columns: 1fr; padding: 0 16px; }
  .ld-ap-pick { position: sticky; top: 56px; z-index: 5; display: flex; align-items: center; gap: 10px; min-height: 48px; margin: 0 -16px; padding: 0 16px; border: 0; border-bottom: 1px solid var(--ld-line); background: var(--ld-surface-1); color: var(--ld-text-strong); font: 600 14px/18px var(--font-sans); text-align: left; cursor: pointer; }
  .ld-ap-pick span { margin-left: auto; display: inline-flex; align-items: center; gap: 4px; color: var(--ld-text-muted); font-weight: 500; }
  .ld-ap-toc { display: none; }
  .ld-ap-toc.is-open { display: flex; position: fixed; left: 0; right: 0; bottom: 0; top: auto; z-index: 60; max-height: 80vh; padding: 8px 16px calc(24px + env(safe-area-inset-bottom)); border: 0; border-radius: 20px 20px 0 0; background: var(--ld-surface-2); animation: ld-sheet-in 250ms ease-out both; }
  .ld-ap-toc.is-open .ld-ap-grab { display: block; flex: none; width: 36px; height: 4px; margin: 0 auto 10px; border-radius: 2px; background: var(--ld-line-strong); }
  .ld-ap-docin { padding: 20px 0 40px; max-width: 100%; }
  .ld-ap-ep .ld-ap-perm:first-of-type { margin-left: 0; }
  .ld-ap-gate { padding-top: 60px; }
  .ld-ap-tcap { padding: 12px 16px 0; }
  .ld-ap-t { font-size: 13px; }
  .ld-ap-t th, .ld-ap-t td { padding: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  .ld-ap-go svg { transition: none; }
  .ld-ap-toc.is-open, .ld-ap-scrim { animation: none; }
}
