/* API documentation (/docs/api/**): operation blocks, language tabs, search. Uses only tokens from rf.css; docs.css supplies .prose tables and notes. */

/* wider reading column than the narrative docs: reference tables and code need room */
.docs-main>.prose{max-width:min(100%,860px)}
.prose .lead{max-width:68ch}

/* operation heading and signature */
.prose h2[id]{scroll-margin-top:calc(var(--hdr) + 16px)}
.prose h2:target,.prose h3:target{background:linear-gradient(90deg,var(--acc-soft),transparent 70%);margin-inline:-8px;padding-inline:8px;border-radius:var(--r-sm)}
.api-sig{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:.5em}
.api-sig .badge{flex:none}
.api-path{font-size:14px;overflow-wrap:anywhere;word-break:break-word}

/* tables: identifiers stay whole, the last column wraps */
.api-table td,.api-table th{vertical-align:top}
.api-table td code{overflow-wrap:anywhere}
.prose .scroll table.api-table{min-width:0}
.prose .scroll table.api-table:has(th:nth-child(4)){min-width:560px}
.prose .scroll table.api-table:has(th:nth-child(6)){min-width:860px}
.prose .scroll table.api-table td:first-child{white-space:nowrap}
.prose .scroll table.api-table td:last-child{min-width:12em}
.api-table th:first-child:empty{display:none}

/* language tabs: stacked blocks without script, real tabs with it */
.api-tabs{margin-top:1.2em;border:1px solid var(--line);border-radius:var(--r);background:var(--panel2);overflow:hidden}
.prose .api-tabs .code{margin-top:0;border:0;border-radius:0;background:transparent}
.api-tabs .api-panel+.api-panel{border-top:1px solid var(--line)}
.api-tabs .api-panel-label{padding:10px 14px 0;color:var(--mute)}
.api-tabs.is-tabs .api-panel+.api-panel{border-top:0}
.api-tabs.is-tabs .api-panel-label{display:none}
.api-tabs .tabs{background:var(--panel);padding:0 6px}
.api-tabs .api-panel[hidden]{display:none}
.api-tabs .api-panel:focus-visible{outline:2px solid var(--acc);outline-offset:-2px}

/* search and filter */
.api-search,.api-filter{position:relative;margin-top:1.2em;max-width:560px}
.api-search[hidden],.api-filter[hidden],.api-results[hidden]{display:none}
.api-filter label{margin-bottom:6px}
.api-filter p{margin:6px 0 0}
.api-results{position:absolute;z-index:30;inset-inline:0;top:calc(100% + 4px);list-style:none;margin:0;padding:4px;background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--r);box-shadow:var(--sh2);max-height:min(60vh,440px);overflow-y:auto}
.api-results li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;align-items:baseline;padding:8px 10px;border-radius:var(--r-sm);cursor:pointer;color:var(--fg)}
.api-results li[aria-selected=true]{background:var(--acc-soft)}
.api-results li:hover{background:var(--side)}
.api-results li[aria-selected=true]:hover{background:var(--acc-soft)}
.api-r-title{font-weight:500;font-size:14px;overflow-wrap:anywhere}
.api-r-kind{font:500 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}
.api-r-meta{grid-column:1/-1;font:12.5px var(--mono);color:var(--mute);overflow-wrap:anywhere}
.api-results .api-none{display:block;color:var(--mute);cursor:default}

/* error and CLI pages */
.api-kv{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:4px 16px}

/* long identifiers in lead text */
.lead code{overflow-wrap:anywhere}

@media (max-width:560px){
  .api-results{position:static;margin-top:6px;box-shadow:none}
  .prose .scroll table.api-table:has(th:nth-child(6)){min-width:720px}
}
@media (prefers-reduced-motion:reduce){.api-results li{transition:none}}
@media print{.api-search,.api-filter,.api-tabs .tabs{display:none!important}.api-tabs .api-panel[hidden]{display:block}}
