/* Open API documentation, using the public site's existing theme tokens */
.api-shell { padding-bottom: 2rem; }
.api-shell code { font-family: var(--font-mono); font-size: 0.85em; }
.api-hero-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.api-spec-link { display: inline-flex; align-items: center; gap: 0.5rem; flex-shrink: 0; padding: 0.5rem 0.65rem; border: 1px solid var(--border); border-radius: var(--radius-sm); color: var(--text-2); font-family: var(--font-mono); font-size: 0.74rem; text-decoration: none; }
.api-spec-link:hover { color: var(--text); border-color: var(--border-strong); }
.api-base { display: flex; align-items: center; gap: 0.8rem; margin: 0.8rem 0; padding: 0.65rem 0.8rem; border-radius: var(--radius-sm); background: var(--bg-soft); }
.api-base > span { flex-shrink: 0; color: var(--text-3); font-family: var(--font-mono); font-size: 0.72rem; }
.api-base > code { flex: 1; min-width: 0; overflow-wrap: anywhere; font-size: 0.75rem; }
.api-switch { display: inline-flex; flex-shrink: 0; padding: 0.2rem; gap: 0.15rem; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--bg-soft); }
.api-switch a { color: var(--text-2); font-size: 0.8rem; text-decoration: none; padding: 0.4rem 0.85rem; border-radius: var(--radius-xs); transition: color 0.15s, background 0.15s; }
.api-switch a:hover { color: var(--text); }
.api-switch a.is-current { color: var(--invert-text); background: var(--invert-bg); font-weight: 600; }
.api-toc { position: sticky; top: 3.5rem; z-index: 5; display: flex; gap: 1.3rem; margin: 0 0 1.1rem; padding: 0.55rem 0; background: var(--bg); border-bottom: 1px solid var(--border); overflow-x: auto; }
.api-toc a { flex-shrink: 0; color: var(--text-3); font-size: 0.8rem; text-decoration: none; padding: 0.3rem 0; border-bottom: 1px solid transparent; }
.api-toc a:hover { color: var(--text); border-bottom-color: var(--text); }
.api-section { min-width: 0; margin: 0 0 1.1rem; padding: 1.15rem 1.3rem 1.25rem; border: 1px solid var(--border); border-radius: var(--radius); scroll-margin-top: 7.5rem; }
.api-section-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0.4rem 1rem; margin-bottom: 0.6rem; }
.api-section h2 { margin: 0; font-size: 1rem; font-weight: 650; letter-spacing: -0.015em; }
.api-section h3 { font-size: 0.9rem; font-weight: 600; }
.api-section p { margin: 0.5rem 0 0.9rem; color: var(--text-2); font-size: 0.875rem; line-height: 1.75; text-wrap: pretty; }
.api-caption { color: var(--text-3); font-family: var(--font-mono); font-size: 0.72rem; }
.api-section .api-note { margin: 0.9rem 0 0; font-size: 0.78rem; color: var(--text-3); }
.api-code-samples { overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--bg-soft); }
.api-tabs { display: flex; gap: 0.65rem; border-bottom: 1px solid var(--border); padding: 0 0.85rem; background: var(--bg); }
.api-tabs[hidden], .api-code-panel[hidden] { display: none; }
.api-tabs button { color: var(--text-3); background: none; border: 0; border-bottom: 2px solid transparent; padding: 0.7rem 0.25rem; font-family: var(--font-mono); font-size: 0.76rem; cursor: pointer; }
.api-tabs button[aria-selected="true"] { color: var(--text); border-bottom-color: var(--text); }
.api-code-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 0.55rem 0.85rem 0; color: var(--text-3); font-family: var(--font-mono); font-size: 0.7rem; }
.api-copy { display: inline-flex; align-items: center; gap: 0.4rem; flex-shrink: 0; border: 1px solid transparent; border-radius: var(--radius-xs); background: transparent; color: var(--text-3); padding: 0.35rem 0.45rem; font-family: var(--font-sans); font-size: 0.75rem; min-height: 2.25rem; cursor: pointer; transition: color 0.15s, background 0.15s, border-color 0.15s; }
.api-copy:hover { color: var(--text); border-color: var(--border); background: var(--bg); }
.api-copy:disabled { cursor: default; }
.api-copy:active { transform: translateY(1px); }
.api-pre { max-width: 100%; overflow-x: auto; margin: 0; padding: 0.75rem 1rem 1rem; background: var(--bg-soft); color: var(--text); font-family: var(--font-mono); font-size: 0.8rem; line-height: 1.8; tab-size: 2; }
.api-pre code { font-size: inherit; }
.api-endpoint { padding: 0.85rem 0; }
.api-endpoint + .api-endpoint { border-top: 1px solid var(--border); }
.api-endpoint h3 { display: flex; align-items: center; gap: 0.65rem; margin: 0; }
.api-endpoint h3 > code { font-size: 0.9rem; }
.api-method { padding: 0.2rem 0.4rem; background: var(--invert-bg); color: var(--invert-text); border-radius: var(--radius-xs); font-family: var(--font-mono); font-size: 0.65rem; font-weight: 600; }
.api-endpoint p { margin: 0.65rem 0; }
.api-request-line { display: flex; align-items: center; gap: 0.5rem; padding: 0.55rem 0.65rem; border-radius: var(--radius-xs); background: var(--bg-soft); }
.api-request-line code { flex: 1; min-width: 0; overflow-wrap: anywhere; white-space: pre-wrap; padding: 0.25rem 0; font-size: 0.75rem; }
.api-subheading { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.6rem; margin: 1.4rem 0 0.65rem; }
.api-subheading span { font-size: 0.78rem; font-weight: 400; color: var(--text-3); }
.api-table-wrap { max-width: 100%; overflow-x: auto; }
.api-table { width: 100%; min-width: 36rem; border-collapse: collapse; font-size: 0.78rem; line-height: 1.7; }
.api-table th, .api-table td { padding: 0.65rem 0.7rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--border); }
.api-table th { background: var(--bg-soft); color: var(--text-3); font-size: 0.7rem; font-weight: 500; }
.api-table td { color: var(--text-2); }
.api-table td:first-child { color: var(--text); width: 24%; }
.api-table td:nth-child(2) { width: 21%; }
.api-table td code { font-size: 0.75rem; }
.api-table tr:last-child td { border-bottom: none; }
.api-table .api-type { font-family: var(--font-mono); font-size: 0.68rem; color: var(--text-3); }
.api-params td:first-child, .api-params td:nth-child(2) { width: 17%; }
.api-headers td:first-child, .api-errors td:first-child { width: 34%; }
.api-headers td:nth-child(2), .api-errors td:nth-child(2) { width: auto; }
.api-details { border-top: 1px solid var(--border); margin-top: 0.8rem; }
.api-details summary { display: flex; align-items: center; gap: 0.7rem; padding: 0.85rem 0; color: var(--text-2); font-size: 0.78rem; cursor: pointer; list-style: none; }
.api-details summary::-webkit-details-marker { display: none; }
.api-details summary > i { margin-left: auto; font-size: 0.65rem; transition: transform 0.15s; }
.api-details[open] > summary > i { transform: rotate(180deg); }
.api-details summary > code { font-size: 0.8rem; color: var(--text); }
.api-response { margin-top: 0.65rem; border: 1px solid var(--border); border-radius: var(--radius-sm); overflow: hidden; }
.api-response summary { padding: 0.8rem 0.9rem; }
.api-response[open] summary { border-bottom: 1px solid var(--border); }
.api-response .api-code-toolbar { background: var(--bg-soft); }
.api-copy-status { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.api-shell :is(button, a, summary, [tabindex]):focus-visible { outline: 2px solid var(--text); outline-offset: 3px; border-radius: var(--radius-xs); }
.docs-navigation { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 0.7rem 1rem; margin-bottom: 1.5rem; }
.docs-navigation .history-nav { margin: 0; color: var(--text-3); font-size: 0.8rem; }
.docs-intro { margin-bottom: 1.25rem; }
.docs-intro .history-title { margin: 0 0 0.65rem; font-family: var(--font-display); }
.docs-intro .history-lead { max-width: 42rem; text-wrap: pretty; }
.docs-meta { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; margin-top: 0.9rem; color: var(--text-3); font-size: 0.75rem; font-variant-numeric: tabular-nums; }
.docs-meta > span + span { padding-left: 1rem; border-left: 1px solid var(--border); }
.docs-download { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 0.75rem 1rem; margin: 1rem 0; }
.docs-download > div { min-width: 0; }
.docs-download strong { font-family: var(--font-mono); font-size: 0.9rem; overflow-wrap: anywhere; }
.docs-download p { margin: 0.35rem 0 0; font-size: 0.8rem; }
.docs-primary { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; gap: 0.5rem; padding: 0.65rem 0.9rem; border: 1px solid var(--invert-bg); border-radius: var(--radius-sm); background: var(--invert-bg); color: var(--invert-text); font-size: 0.8rem; font-weight: 600; text-decoration: none; transition: opacity 0.15s; }
.docs-primary:visited { color: var(--invert-text); }
.docs-primary:hover { opacity: 0.82; }
.docs-primary:active { transform: translateY(1px); }
.docs-address > a { flex: 1; min-width: 0; display: block; color: var(--text); text-decoration: underline; text-decoration-color: var(--border); text-underline-offset: 3px; }
.docs-address > a:visited, .docs-text-link:visited { color: var(--text); }
.docs-address > a:hover, .docs-text-link:hover { text-decoration-color: currentColor; }
.docs-address code { display: block; }
.docs-text-link { display: inline-flex; align-items: center; gap: 0.45rem; margin-top: 0.85rem; color: var(--text); font-size: 0.8rem; text-decoration: underline; text-decoration-color: var(--border); text-underline-offset: 4px; }
.docs-install-table { min-width: 0; table-layout: fixed; margin-top: 0.7rem; }
.docs-install-table th:first-child, .docs-install-table td:first-child { width: 22%; }
.docs-install-table th:nth-child(n+2), .docs-install-table td:nth-child(n+2) { width: 39%; }
.docs-install-table code { white-space: normal; overflow-wrap: anywhere; }
.docs-prompts { display: grid; gap: 0.5rem; }
.docs-prompts .api-request-line > span { flex: 1; min-width: 0; font-size: 0.875rem; line-height: 1.6; }
.docs-service-state { padding: 0.7rem 0.8rem; background: var(--bg-soft); border-radius: var(--radius-sm); }
.docs-ai-install .api-section-head { align-items: center; margin-bottom: 0; }
.docs-ai-install .api-copy { border-color: var(--border); color: var(--text); padding-inline: 0.65rem; }
.docs-install-prompt { max-height: 13rem; overflow-y: auto; margin: 0; padding: 0.85rem 1rem; border-radius: var(--radius-sm); background: var(--bg-soft); color: var(--text-2); font-family: var(--font-sans); font-size: 0.8rem; line-height: 1.8; white-space: pre-wrap; overflow-wrap: anywhere; }
@media (max-width: 600px) {
  .docs-navigation { margin-bottom: 1.2rem; }
  .docs-download { align-items: flex-start; }
  .docs-primary { min-height: 2.6rem; box-sizing: border-box; }
  .api-table.docs-install-table { min-width: 0; }
  .docs-meta { gap: 0.4rem 0.65rem; }
  .docs-meta > span + span { padding-left: 0.65rem; }
  .api-hero-heading { align-items: flex-start; gap: 0.6rem; }
  .api-spec-link { padding: 0.4rem; font-size: 0.65rem; }
  .api-spec-link i { display: none; }
  .api-base { padding: 0.65rem; gap: 0.35rem 0.5rem; flex-wrap: wrap; }
  .api-base > span { width: 100%; font-size: 0.65rem; }
  .api-base > code { font-size: 0.67rem; }
  .api-base .api-copy { padding: 0.3rem; }
  .api-toc { gap: 1.1rem; top: 3.5rem; }
  .api-toc a { font-size: 0.73rem; }
  .api-section { padding: 1rem; }
  .api-section-head { row-gap: 0.25rem; }
  .api-section p { font-size: 0.875rem; }
  .api-section h2 { font-size: 0.95rem; }
  .api-table { min-width: 33rem; }
  .api-table th, .api-table td { padding: 0.6rem; }
  .api-pre { font-size: 0.73rem; padding: 0.65rem 0.8rem 0.85rem; }
  .api-tabs { padding: 0 0.65rem; }
  .api-request-line { gap: 0.2rem; padding: 0.45rem; }
  .api-request-line code { font-size: 0.69rem; }
}
@media (prefers-reduced-motion: reduce) {
  .api-shell *, .api-shell *::before, .api-shell *::after { transition: none; }
}
