:root{
  --topbar-h:49px;--max:920px;
  color-scheme:light;
  --bg:#ffffff;--fg:#1f2328;--muted:#656d76;--border:#d0d7de;
  --sidebar-bg:#f6f8fa;--code-bg:#f6f8fa;--accent:#0969da;
  --topbar-bg:#1b1f24;--topbar-fg:#ffffff;--topbar-tag:#b9c0c8;
  --nav-hover:#eaeef2;--nav-current-bg:#ddf4ff;--nav-current-fg:#0550ae;
  --thead-bg:#f6f8fa;--table-stripe:#fbfcfd;
}
/* When JS is unavailable, still honour the OS dark preference. */
@media (prefers-color-scheme:dark){
  :root:not([data-theme]){
    color-scheme:dark;
    --bg:#0d1117;--fg:#e6edf3;--muted:#8b949e;--border:#30363d;
    --sidebar-bg:#161b22;--code-bg:#161b22;--accent:#4493f8;
    --topbar-bg:#010409;--topbar-fg:#e6edf3;--topbar-tag:#8b949e;
    --nav-hover:#21262d;--nav-current-bg:#193763;--nav-current-fg:#79c0ff;
    --thead-bg:#161b22;--table-stripe:#11161d;
  }
}
[data-theme="light"]{
  color-scheme:light;
  --bg:#ffffff;--fg:#1f2328;--muted:#656d76;--border:#d0d7de;
  --sidebar-bg:#f6f8fa;--code-bg:#f6f8fa;--accent:#0969da;
  --topbar-bg:#1b1f24;--topbar-fg:#ffffff;--topbar-tag:#b9c0c8;
  --nav-hover:#eaeef2;--nav-current-bg:#ddf4ff;--nav-current-fg:#0550ae;
  --thead-bg:#f6f8fa;--table-stripe:#fbfcfd;
}
[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0d1117;--fg:#e6edf3;--muted:#8b949e;--border:#30363d;
  --sidebar-bg:#161b22;--code-bg:#161b22;--accent:#4493f8;
  --topbar-bg:#010409;--topbar-fg:#e6edf3;--topbar-tag:#8b949e;
  --nav-hover:#21262d;--nav-current-bg:#193763;--nav-current-fg:#79c0ff;
  --thead-bg:#161b22;--table-stripe:#11161d;
}
[data-theme="nord"]{
  color-scheme:dark;
  --bg:#2e3440;--fg:#d8dee9;--muted:#9aa3b2;--border:#434c5e;
  --sidebar-bg:#3b4252;--code-bg:#3b4252;--accent:#88c0d0;
  --topbar-bg:#242933;--topbar-fg:#eceff4;--topbar-tag:#81a1c1;
  --nav-hover:#434c5e;--nav-current-bg:#4c566a;--nav-current-fg:#8fbcbb;
  --thead-bg:#3b4252;--table-stripe:#353c4a;
}
[data-theme="dracula"]{
  color-scheme:dark;
  --bg:#282a36;--fg:#f8f8f2;--muted:#6272a4;--border:#44475a;
  --sidebar-bg:#21222c;--code-bg:#21222c;--accent:#bd93f9;
  --topbar-bg:#191a21;--topbar-fg:#f8f8f2;--topbar-tag:#6272a4;
  --nav-hover:#44475a;--nav-current-bg:#44475a;--nav-current-fg:#8be9fd;
  --thead-bg:#21222c;--table-stripe:#2d2f3d;
}
[data-theme="solarized-light"]{
  color-scheme:light;
  --bg:#fdf6e3;--fg:#586e75;--muted:#93a1a1;--border:#ddd6c1;
  --sidebar-bg:#eee8d5;--code-bg:#eee8d5;--accent:#268bd2;
  --topbar-bg:#073642;--topbar-fg:#eee8d5;--topbar-tag:#93a1a1;
  --nav-hover:#e6dfca;--nav-current-bg:#d6e9f5;--nav-current-fg:#268bd2;
  --thead-bg:#eee8d5;--table-stripe:#f5efda;
}
[data-theme="solarized-dark"]{
  color-scheme:dark;
  --bg:#002b36;--fg:#93a1a1;--muted:#586e75;--border:#0a3c47;
  --sidebar-bg:#073642;--code-bg:#073642;--accent:#268bd2;
  --topbar-bg:#001a21;--topbar-fg:#93a1a1;--topbar-tag:#586e75;
  --nav-hover:#0a3c47;--nav-current-bg:#0a4250;--nav-current-fg:#2aa198;
  --thead-bg:#073642;--table-stripe:#04313c;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--fg);background:var(--bg);line-height:1.6;
  transition:background-color .15s ease,color .15s ease;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
code,pre{font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace}

.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:.6rem;
  background:var(--topbar-bg);color:var(--topbar-fg);padding:.8rem 1.2rem;height:var(--topbar-h)}
.topbar .brand{color:var(--topbar-fg);text-decoration:none;font-weight:700;font-size:1.05rem}
.topbar .tag{color:var(--topbar-tag);font-size:.78rem;text-transform:uppercase;letter-spacing:.07em}
.theme-select{margin-left:auto;background:rgba(127,127,127,.18);color:var(--topbar-fg);
  border:1px solid rgba(127,127,127,.35);border-radius:6px;padding:.28rem .55rem;
  font-size:.8rem;cursor:pointer}
.theme-select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.theme-select option{color:#1f2328;background:#fff}

.layout{display:grid;grid-template-columns:260px minmax(0,1fr) 220px;align-items:start}

.sidebar{position:sticky;top:var(--topbar-h);height:calc(100vh - var(--topbar-h));overflow-y:auto;
  background:var(--sidebar-bg);border-right:1px solid var(--border);padding:1rem .75rem}
.nav-group{margin-bottom:1.1rem}
.nav-group-title{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;
  color:var(--muted);font-weight:700;padding:0 .5rem;margin-bottom:.35rem}
.nav-link{display:block;padding:.3rem .5rem;border-radius:6px;color:var(--fg);
  text-decoration:none;font-size:.9rem}
.nav-link:hover{background:var(--nav-hover)}
.nav-link.current{background:var(--nav-current-bg);color:var(--nav-current-fg);font-weight:600}

.content{min-width:0;padding:1.6rem 2.2rem 3rem;max-width:var(--max)}
.footer{margin-top:2.5rem;padding-top:1rem;border-top:1px solid var(--border);
  color:var(--muted);font-size:.8rem}
.footer code{background:var(--code-bg);padding:.1em .35em;border-radius:5px}

.toc{position:sticky;top:var(--topbar-h);height:calc(100vh - var(--topbar-h));overflow-y:auto;
  padding:1.6rem 1rem;font-size:.82rem}
.toc-title{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;
  color:var(--muted);font-weight:700;margin-bottom:.5rem}
.toc-link{display:block;color:var(--muted);text-decoration:none;padding:.18rem 0 .18rem .6rem;
  border-left:2px solid transparent}
.toc-link:hover{color:var(--accent);border-left-color:var(--accent)}
.toc-l3{padding-left:1.4rem;font-size:.78rem}

.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4{
  scroll-margin-top:calc(var(--topbar-h) + 12px);line-height:1.25;font-weight:600}
.markdown-body h1{font-size:1.9rem;margin:.2rem 0 1rem;padding-bottom:.3rem;border-bottom:1px solid var(--border)}
.markdown-body h2{font-size:1.4rem;margin:2rem 0 .8rem;padding-bottom:.3rem;border-bottom:1px solid var(--border)}
.markdown-body h3{font-size:1.15rem;margin:1.5rem 0 .6rem}
.markdown-body h4{font-size:1rem;margin:1.2rem 0 .5rem}
.markdown-body p{margin:.6rem 0}
.markdown-body a{color:var(--accent);text-decoration:none}
.markdown-body a:hover{text-decoration:underline}
.markdown-body code{background:var(--code-bg);padding:.15em .4em;border-radius:6px;font-size:.88em}
.markdown-body pre{background:var(--code-bg);border:1px solid var(--border);border-radius:8px;
  padding:.9rem 1rem;overflow-x:auto}
.markdown-body pre code{background:none;padding:0;font-size:.85rem;line-height:1.5}
.markdown-body table{border-collapse:collapse;width:100%;margin:1rem 0;display:block;overflow-x:auto}
.markdown-body th,.markdown-body td{border:1px solid var(--border);padding:.5rem .75rem;text-align:left}
.markdown-body thead th{background:var(--thead-bg)}
.markdown-body tbody tr:nth-child(even){background:var(--table-stripe)}
.markdown-body blockquote{margin:1rem 0;padding:.3rem 1rem;color:var(--muted);
  border-left:.25rem solid var(--border)}
.markdown-body ul,.markdown-body ol{padding-left:1.5rem}
.markdown-body li{margin:.25rem 0}
.markdown-body hr{border:none;border-top:1px solid var(--border);margin:2rem 0}
.markdown-body img{max-width:100%}

/* HTTP method badges + endpoint paths (rendered into endpoint headings). */
.method{display:inline-block;min-width:3.7em;text-align:center;padding:.16em .55em;
  border-radius:6px;font-size:.66em;font-weight:700;letter-spacing:.05em;color:#fff;
  vertical-align:.18em;font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace}
.method-get{background:#1f6feb}
.method-post{background:#1a7f37}
.method-put{background:#9a6700}
.method-patch{background:#0e8a8a}
.method-delete{background:#cf222e}
.endpoint-path{font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace}

/* Hover permalink shown next to headings. */
.markdown-body h2,.markdown-body h3,.markdown-body h4{position:relative}
.heading-anchor{opacity:0;margin-left:.4rem;color:var(--muted);text-decoration:none;font-weight:400}
.markdown-body h2:hover .heading-anchor,.markdown-body h3:hover .heading-anchor,
.markdown-body h4:hover .heading-anchor,.heading-anchor:focus{opacity:.55}
.heading-anchor:hover{opacity:1;text-decoration:none}

/* Callout boxes (GitHub-style alerts). Colors are fixed hues that read on both
   light and dark themes; the tinted background uses low alpha so it stays subtle. */
.markdown-body .callout{margin:1rem 0;padding:.65rem 1rem;border-left:.25rem solid var(--cl);
  border-radius:6px;background:var(--cl-bg)}
.markdown-body .callout>:first-child{margin-top:0}
.markdown-body .callout>:last-child{margin-bottom:0}
.callout-title{margin:0 0 .35rem;font-weight:700;font-size:.78rem;text-transform:uppercase;
  letter-spacing:.05em;color:var(--cl)}
.callout-note{--cl:#1f6feb;--cl-bg:rgba(31,111,235,.08)}
.callout-tip{--cl:#1a7f37;--cl-bg:rgba(26,127,55,.09)}
.callout-important{--cl:#8250df;--cl-bg:rgba(130,80,223,.09)}
.callout-warning{--cl:#bb8009;--cl-bg:rgba(154,103,0,.12)}
.callout-caution{--cl:#cf222e;--cl-bg:rgba(207,34,46,.09)}

@media (max-width:1200px){.layout{grid-template-columns:260px minmax(0,1fr)}.toc{display:none}}
@media (max-width:820px){.layout{grid-template-columns:1fr}
  .sidebar{position:static;height:auto;border-right:none;border-bottom:1px solid var(--border)}}
