/* /api-docs - the public API reference.
   Loaded on that one page only, and every rule is scoped under .apidoc: a block that only
   loads on its own page must never be able to restyle the rest of the site (see the
   ".dash-head became global" note in CLAUDE.md). Colours come from the ACTIVE THEME's tokens,
   so the page follows whatever theme the site runs rather than hard-coding the gold one. */
.apidoc{--doc-mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;--doc-wash:color-mix(in srgb,var(--accent) 12%,transparent);max-width:1180px;margin:0 auto;padding:0 32px;display:grid;grid-template-columns:200px minmax(0,1fr);gap:64px;color:var(--text)}
.apidoc a{color:var(--accent);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent) 40%,transparent);text-underline-offset:3px}
.apidoc a:hover{text-decoration-color:var(--accent)}
.apidoc code,.apidoc pre{font-family:var(--doc-mono)}
.apidoc code{font-size:.88em}
.apidoc p code,.apidoc td code,.apidoc dd code{background:var(--surface-2);border:1px solid var(--border);border-radius:4px;padding:.06em .36em}
/* app.css sets code{word-break:break-word} for the /api page; inside a code block that would
   wrap JSON instead of letting the block scroll. */
.apidoc pre code{white-space:pre;word-break:normal;overflow-wrap:normal;font-size:inherit;background:none;border:0;padding:0}

.apidoc .doc-rail{position:sticky;top:0;align-self:start;max-height:100vh;overflow-y:auto;padding:40px 0}
.apidoc .doc-toc{display:flex;flex-direction:column;gap:1px}
.apidoc .doc-group{margin:24px 0 6px;font-size:11px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--faint)}
.apidoc .doc-group:first-child{margin-top:0}
.apidoc .doc-toc a{display:block;padding:5px 10px;margin-left:-10px;border-radius:6px;color:var(--muted);text-decoration:none;font-size:14px}
.apidoc .doc-toc a.code{font:400 13px/1.5 var(--doc-mono)}
.apidoc .doc-toc a:hover{color:var(--text);background:var(--surface)}
.apidoc .doc-toc a[aria-current]{color:var(--accent);background:var(--doc-wash)}

.apidoc .doc-main{min-width:0;max-width:780px;padding:40px 0 120px;display:flex;flex-direction:column;gap:56px}
.apidoc .doc-block{border-top:1px solid var(--border);padding-top:48px}
.apidoc .doc-eyebrow{margin:0 0 14px;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.apidoc h1{margin:0 0 16px;font-family:var(--display);font-weight:600;font-size:clamp(28px,4.2vw,40px);line-height:1.1;letter-spacing:-.018em;text-wrap:balance}
.apidoc .doc-lede{margin:0 0 30px;max-width:62ch;font-size:17px;line-height:1.6;color:var(--muted)}

.apidoc .doc-conn{margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--border);border:1px solid var(--border-2);border-radius:10px;overflow:hidden}
.apidoc .doc-conn .cell{min-width:0;background:var(--bg-2);padding:13px 16px}
.apidoc .doc-conn .wide{grid-column:1/-1;padding:16px}
.apidoc .doc-conn dt{margin:0 0 4px;font-size:11px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--faint)}
.apidoc .doc-conn dd{margin:0;font-size:14px;overflow-wrap:anywhere}
.apidoc .doc-conn .wide dd{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.apidoc .doc-conn .wide code{font-size:18px;color:var(--accent);background:none;border:0;padding:0}

.apidoc .doc-copy{flex:none;font:500 12px/1 var(--font);color:var(--muted);background:transparent;border:1px solid var(--border-2);border-radius:6px;padding:6px 10px;cursor:pointer}
.apidoc .doc-copy:hover{color:var(--text);border-color:var(--accent)}

.apidoc h2{margin:0 0 14px;font-family:var(--display);font-weight:600;font-size:25px;line-height:1.2;letter-spacing:-.01em;text-wrap:balance}
.apidoc h2.doc-action{font:500 22px/1.25 var(--doc-mono);letter-spacing:0}
.apidoc h2.doc-action .pre{color:var(--faint);font-weight:400}
.apidoc h3{margin:28px 0 10px;font-size:11px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--faint)}
.apidoc .doc-purpose{margin:0 0 6px;max-width:64ch;color:var(--muted)}
.apidoc .doc-note{margin:14px 0 0;max-width:64ch;font-size:14px;color:var(--muted)}
.apidoc .doc-note strong{color:var(--text)}

/* app.css paints table/th with surface fills and its own caps; this page draws hairline tables. */
.apidoc .doc-scroll{overflow-x:auto}
.apidoc table{width:100%;border-collapse:collapse;font-size:14px;background:transparent}
.apidoc th{background:transparent;text-align:left;padding:0 16px 8px 0;border-bottom:1px solid var(--border-2);font-size:11px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--faint);vertical-align:bottom}
.apidoc td{background:transparent;padding:11px 16px 11px 0;border-bottom:1px solid var(--border);vertical-align:top;overflow-wrap:anywhere}
.apidoc th:last-child,.apidoc td:last-child{padding-right:0}
.apidoc .doc-fields td:first-child{white-space:nowrap;width:1%}
.apidoc .doc-fields td:first-child code{color:var(--accent);background:none;border:0;padding:0;font-size:13.5px}
.apidoc .doc-fields td:nth-child(2){white-space:nowrap;width:1%}
.apidoc .doc-tag{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}
.apidoc .doc-tag.req{color:var(--accent);background:var(--doc-wash)}
.apidoc .doc-tag.opt,.apidoc .doc-tag.one{color:var(--muted);background:var(--surface-2)}
.apidoc .doc-type{font:400 12.5px/1 var(--doc-mono);color:var(--faint)}

.apidoc .doc-rules{margin:0;display:grid;grid-template-columns:132px minmax(0,1fr);border-top:1px solid var(--border)}
.apidoc .doc-rules div{display:contents}
.apidoc .doc-rules dt,.apidoc .doc-rules dd{margin:0;padding:12px 0;border-bottom:1px solid var(--border)}
.apidoc .doc-rules dt{padding-right:20px;font-weight:600;font-size:14px}
.apidoc .doc-rules dd{color:var(--muted);font-size:14.5px}

.apidoc .doc-formula{margin-top:28px;padding:18px 20px;border:1px solid var(--border-2);border-radius:10px;background:var(--bg-2)}
.apidoc .doc-formula .label{margin:0 0 12px;font-size:11px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--accent)}
.apidoc .doc-eq{display:grid;grid-template-columns:max-content max-content minmax(0,1fr);column-gap:12px;row-gap:6px;font:400 16px/1.4 var(--doc-mono);font-variant-numeric:tabular-nums}
.apidoc .doc-eq .lhs{text-align:right}
.apidoc .doc-eq .op{color:var(--faint)}
.apidoc .doc-eq .row2{color:var(--muted)}
.apidoc .doc-eq .n{color:var(--warn)}
.apidoc .doc-formula .foot{margin:12px 0 0;font-size:13px;color:var(--faint)}

.apidoc figure.ex{margin:18px 0 0}
.apidoc figure.ex figcaption{display:flex;align-items:center;gap:10px;margin:0 0 8px;font-size:11px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--faint)}
.apidoc figure.ex figcaption .doc-copy{margin-left:auto;letter-spacing:0;text-transform:none}
.apidoc .doc-state{padding:3px 6px;border-radius:4px;font:500 10.5px/1 var(--doc-mono);letter-spacing:.02em;text-transform:none}
.apidoc .doc-state.live{color:var(--success);background:color-mix(in srgb,var(--success) 13%,transparent)}
.apidoc .doc-state.format{color:var(--muted);background:var(--surface-2)}
.apidoc .doc-code{background:var(--surface);border:1px solid var(--border);border-radius:8px}
.apidoc .doc-code pre{margin:0;padding:15px 18px;overflow-x:auto;font-size:13px;line-height:1.62;tab-size:2;background:none;border:0}
.apidoc .t-key,.apidoc .t-cmd{color:var(--accent)}
.apidoc .t-str{color:var(--success)}
.apidoc .t-num{color:var(--warn)}
.apidoc .t-lit,.apidoc .t-flag{color:var(--accent-2)}
.apidoc .t-p{color:var(--faint)}

.apidoc .doc-statuses td:first-child{white-space:nowrap;width:1%}
.apidoc .doc-statuses td:last-child{white-space:nowrap;width:1%;font-size:13px;color:var(--faint)}
.apidoc .doc-statuses td.is-final{color:var(--text)}

.apidoc .doc-errs tr.grp th{padding-top:26px;color:var(--accent);border-bottom:1px solid var(--border-2)}
.apidoc .doc-errs tbody:first-of-type tr.grp th{padding-top:4px}
.apidoc .doc-errs td:first-child{width:50%}
.apidoc .doc-errs td:first-child code{background:none;border:0;padding:0;color:var(--text);font-size:13px}
.apidoc .doc-errs td:last-child{color:var(--muted)}

.apidoc .doc-foot{border-top:1px solid var(--border);padding-top:26px;max-width:64ch;font-size:13px;color:var(--faint)}
.apidoc .doc-foot p{margin:0 0 8px}

@media (max-width:920px){
  .apidoc{grid-template-columns:minmax(0,1fr);gap:0;padding:0 20px}
  .apidoc .doc-rail{position:sticky;top:0;z-index:5;max-height:none;margin:0 -20px;padding:0;overflow-x:auto;overflow-y:hidden;background:var(--bg);border-bottom:1px solid var(--border)}
  .apidoc .doc-group{display:none}
  .apidoc .doc-toc{flex-direction:row;gap:2px;padding:9px 20px;white-space:nowrap}
  .apidoc .doc-toc a{margin-left:0}
  .apidoc .doc-main{padding-top:28px;gap:48px}
  .apidoc .doc-block{padding-top:40px}
  .apidoc .doc-conn{grid-template-columns:repeat(2,minmax(0,1fr))}
  .apidoc .doc-rules{grid-template-columns:minmax(0,1fr)}
  .apidoc .doc-rules dt{padding-bottom:2px;border-bottom:0}
  .apidoc .doc-rules dd{padding-top:0}
}
@media (max-width:480px){
  .apidoc .doc-lede{font-size:16px}
  .apidoc .doc-conn .wide code{font-size:15px}
  .apidoc .doc-errs td:first-child{width:auto}
}
