
:root {
  --ground:#F7F8FA; --surface:#FFFFFF; --surface-2:#EFF2F6;
  --ink:#0D0F12; --ink-2:#37414E; --muted:#5C6A7A; --faint:#8996A6;
  --border:#DEE5ED; --border-2:#C9D3DF;
  --accent:#3047E0; --accent-ink:#1E2FA8; --accent-wash:#EDF0FE;
  --ok:#15803D; --warn:#9A5B08; --bad:#B5292B;
  --ok-w:#E8F5EC; --warn-w:#FBF1E3; --bad-w:#FBEAEA;
  --get:#0F6E77; --post:#3047E0; --put:#9A5B08; --del:#B5292B; --any:#5C6A7A;
  --mono: ui-monospace, "Cascadia Code", "Cascadia Mono", Consolas, "SF Mono", Menlo, monospace;
  --sans: "Segoe UI Variable Display", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
  --r:8px; --rail:272px;
}
@media (prefers-color-scheme: dark) {
  :root {
    --ground:#0C0F14; --surface:#141922; --surface-2:#1B2230;
    --ink:#E7EBF1; --ink-2:#C3CCD9; --muted:#8E9BAC; --faint:#6C7889;
    --border:#232B38; --border-2:#303B4B;
    --accent:#8698FF; --accent-ink:#AAB6FF; --accent-wash:#1A2140;
    --ok:#63C98C; --warn:#DFA451; --bad:#F0868A;
    --ok-w:#16281D; --warn-w:#2B2114; --bad-w:#2C1719;
    --get:#4FB8C0; --post:#8698FF; --put:#DFA451; --del:#F0868A; --any:#8E9BAC;
  }
}
:root[data-theme="dark"] {
  --ground:#0C0F14; --surface:#141922; --surface-2:#1B2230;
  --ink:#E7EBF1; --ink-2:#C3CCD9; --muted:#8E9BAC; --faint:#6C7889;
  --border:#232B38; --border-2:#303B4B;
  --accent:#8698FF; --accent-ink:#AAB6FF; --accent-wash:#1A2140;
  --ok:#63C98C; --warn:#DFA451; --bad:#F0868A;
  --ok-w:#16281D; --warn-w:#2B2114; --bad-w:#2C1719;
  --get:#4FB8C0; --post:#8698FF; --put:#DFA451; --del:#F0868A; --any:#8E9BAC;
}
:root[data-theme="light"] {
  --ground:#F7F8FA; --surface:#FFFFFF; --surface-2:#EFF2F6;
  --ink:#0D0F12; --ink-2:#37414E; --muted:#5C6A7A; --faint:#8996A6;
  --border:#DEE5ED; --border-2:#C9D3DF;
  --accent:#3047E0; --accent-ink:#1E2FA8; --accent-wash:#EDF0FE;
  --ok:#15803D; --warn:#9A5B08; --bad:#B5292B;
  --ok-w:#E8F5EC; --warn-w:#FBF1E3; --bad-w:#FBEAEA;
  --get:#0F6E77; --post:#3047E0; --put:#9A5B08; --del:#B5292B; --any:#5C6A7A;
}
/* the shipped logo is dark-ink artwork only; invert it for the dark theme */
@media (prefers-color-scheme: dark) { .brand img { filter: invert(1) hue-rotate(180deg); } }
:root[data-theme="dark"] .brand img { filter: invert(1) hue-rotate(180deg); }
:root[data-theme="light"] .brand img { filter: none; }

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition:none !important; animation:none !important; } }
body { margin:0; background:var(--ground); color:var(--ink); font-family:var(--sans);
  font-size:15.5px; line-height:1.68; -webkit-font-smoothing:antialiased; }

.skip { position:absolute; left:-9999px; }
.skip:focus { left:8px; top:8px; z-index:50; background:var(--surface); color:var(--ink);
  padding:8px 12px; border:1px solid var(--accent); border-radius:6px; }

.shell { display:grid; grid-template-columns:var(--rail) minmax(0,1fr); align-items:start; }
.rail { position:sticky; top:0; height:100vh; overflow-y:auto; background:var(--surface);
  border-right:1px solid var(--border); padding:20px 0 40px; display:flex; flex-direction:column; gap:14px; }
.brand { display:flex; flex-direction:column; gap:4px; padding:0 20px; text-decoration:none; color:var(--ink); }
.brand img { display:block; height:24px; width:auto; }
.brand span { font:11px var(--mono); letter-spacing:.14em; text-transform:uppercase; color:var(--faint); }
.tools { display:flex; gap:6px; padding:0 16px; }
.filter { flex:1; min-width:0; padding:8px 11px; font:13px/1.4 var(--mono); color:var(--ink);
  background:var(--ground); border:1px solid var(--border-2); border-radius:var(--r); }
.filter::placeholder { color:var(--faint); }
.filter:focus-visible, .themebtn:focus-visible { outline:2px solid var(--accent); outline-offset:1px; }
.themebtn { font:10.5px var(--mono); letter-spacing:.06em; text-transform:uppercase; cursor:pointer;
  background:var(--ground); color:var(--muted); border:1px solid var(--border-2);
  border-radius:var(--r); padding:0 9px; }
.themebtn:hover { color:var(--ink); border-color:var(--accent); }

.results { margin:0 10px; border:1px solid var(--border); border-radius:var(--r);
  background:var(--ground); max-height:46vh; overflow-y:auto; }
.results a { display:block; padding:8px 12px; text-decoration:none; border-bottom:1px solid var(--border); }
.results a:last-child { border-bottom:0; }
.results a:hover, .results a:focus-visible { background:var(--accent-wash); outline:none; }
.results b { display:block; font-size:13.5px; color:var(--ink); font-weight:600; }
.results span { display:block; font-size:12px; color:var(--muted); }
.results .none { padding:10px 12px; font:12px var(--mono); color:var(--faint); }

nav { display:flex; flex-direction:column; gap:1px; padding:0 10px; }
nav .grp { font-size:10.5px; font-weight:700; letter-spacing:.13em; text-transform:uppercase;
  color:var(--faint); padding:14px 10px 5px; }
nav a { padding:6px 10px; border-radius:6px; color:var(--ink-2); text-decoration:none; font-size:14px; }
nav a:hover { background:var(--surface-2); color:var(--ink); }
nav a.on { background:var(--accent-wash); color:var(--accent-ink); font-weight:600; }
nav a:focus-visible { outline:2px solid var(--accent); outline-offset:-2px; }

main { min-width:0; padding:0 0 100px; }
.wrap { max-width:820px; padding:0 clamp(20px,4vw,56px); }
main.wide .wrap { max-width:1120px; }

.head { padding:clamp(34px,5vw,60px) 0 22px; border-bottom:1px solid var(--border); margin-bottom:28px; }
h1 { margin:0 0 10px; font-size:clamp(28px,4vw,40px); line-height:1.1; letter-spacing:-.025em;
  font-weight:700; text-wrap:balance; }
.sub { margin:0; font-size:17px; color:var(--muted); max-width:62ch; }

h2 { margin:44px 0 12px; font-size:23px; letter-spacing:-.018em; font-weight:700; text-wrap:balance;
  padding-bottom:8px; border-bottom:1px solid var(--border); scroll-margin-top:14px; }
h3 { margin:30px 0 10px; font-size:17px; font-weight:650; letter-spacing:-.01em; scroll-margin-top:14px; }
.anch { margin-left:.4em; color:var(--faint); text-decoration:none; opacity:0; font-weight:400; }
h2:hover .anch, h3:hover .anch, .anch:focus-visible { opacity:1; }

p { margin:0 0 14px; }
.lead { font-size:16.5px; color:var(--ink-2); }
a { color:var(--accent-ink); text-decoration-thickness:1px; text-underline-offset:2px; }
ul, ol { margin:0 0 14px; padding-left:22px; }
li { margin:0 0 6px; }
ol.steps { list-style:none; counter-reset:s; padding-left:0; }
ol.steps > li { counter-increment:s; position:relative; padding-left:38px; margin-bottom:14px; }
ol.steps > li::before { content:counter(s); position:absolute; left:0; top:1px; width:25px; height:25px;
  display:grid; place-items:center; border-radius:50%; background:var(--accent-wash);
  color:var(--accent-ink); font:12px/1 var(--mono); font-weight:700;
  border:1px solid color-mix(in srgb, var(--accent) 28%, transparent); }
code { font:.875em var(--mono); background:var(--surface-2); border:1px solid var(--border);
  border-radius:4px; padding:.1em .34em; word-break:break-word; }
strong { font-weight:650; }

.tscroll { overflow-x:auto; background:var(--surface); border:1px solid var(--border);
  border-radius:var(--r); margin:0 0 18px; }
table { border-collapse:collapse; width:100%; font-size:14px; }
th, td { text-align:left; padding:9px 14px; border-bottom:1px solid var(--border); vertical-align:top; }
th { font:10.5px var(--mono); letter-spacing:.1em; text-transform:uppercase; color:var(--faint);
  font-weight:500; white-space:nowrap; background:var(--surface-2); }
tbody tr:last-child td { border-bottom:0; }
tbody tr:hover { background:var(--surface-2); }
td.p { font:12.5px var(--mono); }
td code, th code { background:none; border:0; padding:0; }

.cb { position:relative; margin:0 0 18px; }
.cb .cap { font:10.5px var(--mono); letter-spacing:.1em; text-transform:uppercase; color:var(--faint);
  padding:0 0 6px; }
.cb pre { margin:0; overflow-x:auto; background:var(--surface-2); border:1px solid var(--border);
  border-radius:var(--r); padding:14px 16px; font:13px/1.7 var(--mono); color:var(--ink-2); }
.cb pre b { color:var(--ink); font-weight:600; }
.cb pre i { color:var(--faint); font-style:normal; }
.cp { position:absolute; top:0; right:0; font:10.5px var(--mono); letter-spacing:.07em;
  text-transform:uppercase; cursor:pointer; background:var(--surface); color:var(--muted);
  border:1px solid var(--border-2); border-radius:6px; padding:3px 9px; }
.cb:hover .cp, .cp:focus-visible { color:var(--ink); border-color:var(--accent); }
.cp:focus-visible { outline:2px solid var(--accent); outline-offset:1px; }

.note { border:1px solid var(--border); border-left:3px solid var(--accent); background:var(--surface);
  border-radius:0 var(--r) var(--r) 0; padding:14px 16px; margin:0 0 18px; }
.note .lbl { display:block; font:10.5px var(--mono); font-weight:700; letter-spacing:.12em;
  text-transform:uppercase; color:var(--accent); margin-bottom:6px; }
.note p:last-child, .note ul:last-child, .note ol:last-child { margin-bottom:0; }
.note.warn { border-left-color:var(--warn); background:var(--warn-w); }
.note.warn .lbl { color:var(--warn); }
.note.danger { border-left-color:var(--bad); background:var(--bad-w); }
.note.danger .lbl { color:var(--bad); }
.note.tip { border-left-color:var(--ok); background:var(--ok-w); }
.note.tip .lbl { color:var(--ok); }

.toc { background:var(--surface); border:1px solid var(--border); border-radius:var(--r);
  padding:14px 16px; margin:0 0 26px; display:flex; flex-direction:column; gap:5px; }
.toc b { font:10.5px var(--mono); font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  color:var(--faint); }
.toc a { font-size:14px; text-decoration:none; color:var(--ink-2); }
.toc a:hover { color:var(--accent-ink); text-decoration:underline; }

.cards { display:grid; gap:12px; grid-template-columns:repeat(auto-fit,minmax(232px,1fr)); margin:0 0 18px; }
.card { display:flex; flex-direction:column; gap:4px; padding:15px 16px; text-decoration:none;
  background:var(--surface); border:1px solid var(--border); border-radius:var(--r); color:var(--ink); }
.card:hover { border-color:var(--accent); }
.card:focus-visible { outline:2px solid var(--accent); outline-offset:1px; }
.card b { font-size:15px; font-weight:650; }
.card span { font-size:13.5px; color:var(--muted); line-height:1.55; }

.kv { display:grid; grid-template-columns:max-content 1fr; gap:6px 18px; margin:0 0 18px; }
.kv dt { font:11px var(--mono); letter-spacing:.06em; text-transform:uppercase; color:var(--faint); padding-top:3px; }
.kv dd { margin:0; color:var(--ink-2); }

footer { border-top:1px solid var(--border); margin-top:56px; padding-top:22px; font-size:13px; color:var(--faint); }

@media (max-width:900px) {
  .shell { grid-template-columns:1fr; }
  .rail { position:static; height:auto; border-right:0; border-bottom:1px solid var(--border); }
  nav { max-height:none; }
  .wrap, main.wide .wrap { max-width:100%; }
}

/* ---- API reference endpoint blocks ---- */
h4 { margin:18px 0 7px; font:10.5px var(--mono); font-weight:700; letter-spacing:.12em;
  text-transform:uppercase; color:var(--faint); }
h2 .port { font:11.5px var(--mono); font-weight:500; letter-spacing:0; color:var(--accent-ink);
  background:var(--accent-wash); border:1px solid var(--border-2); padding:2px 8px;
  border-radius:20px; white-space:nowrap; margin-left:10px; vertical-align:middle; }
.v { display:inline-block; min-width:52px; text-align:center; font:10.5px var(--mono); font-weight:700;
  letter-spacing:.06em; padding:2px 7px; border-radius:4px; color:#fff; white-space:nowrap; }
.v.get{background:var(--get)} .v.post{background:var(--post)} .v.put{background:var(--put)}
.v.del{background:var(--del)} .v.any{background:var(--any)}
@media (prefers-color-scheme: dark) { .v, .sc { color:#0C0F14; } }
:root[data-theme="dark"] .v, :root[data-theme="dark"] .sc { color:#0C0F14; }
:root[data-theme="light"] .v { color:#fff; }
.tag { display:inline-block; font:11px var(--mono); padding:1px 7px; border-radius:20px;
  border:1px solid var(--border-2); color:var(--muted); white-space:nowrap; }
.tag.json { border-color:var(--accent); color:var(--accent-ink); }
.tag.file { border-color:var(--get); color:var(--get); }
.sc { font:11px var(--mono); font-weight:700; padding:1px 6px; border-radius:4px; }
.sc.s2{background:var(--ok)} .sc.s3{background:var(--warn)} .sc.s4{background:var(--warn)}
.sc.s5{background:var(--bad)}
td.req { font:11px var(--mono); color:var(--accent-ink); white-space:nowrap; }
td.p.wrap { white-space:normal; }
.ep { background:var(--surface); border:1px solid var(--border); border-radius:var(--r);
  margin:0 0 10px; overflow:hidden; }
.ep > summary { cursor:pointer; list-style:none; padding:11px 14px; display:flex; flex-wrap:wrap;
  gap:10px; align-items:center; }
.ep > summary::-webkit-details-marker { display:none; }
.ep > summary:hover { background:var(--surface-2); }
.ep > summary:focus-visible { outline:2px solid var(--accent); outline-offset:-2px; }
.ep .path { font:13px var(--mono); font-weight:600; color:var(--ink); word-break:break-all; }
.ep .desc { flex:1 1 200px; font-size:13px; color:var(--muted); }
.ep .body { padding:0 14px 16px; border-top:1px solid var(--border); }
details.ep[open] > summary { background:var(--surface-2); }
.ep .body .tscroll:last-child, .ep .body .cb:last-child { margin-bottom:0; }
.meta { display:flex; flex-wrap:wrap; gap:6px 18px; padding:12px 0 2px; font:11.5px var(--mono); }
.meta span { color:var(--muted); }
.meta span b { color:var(--ink); font-weight:600; }
.grpbox { border:1px solid var(--border); border-radius:var(--r); margin:0 0 12px; background:var(--surface); }
.grpbox > summary { cursor:pointer; list-style:none; padding:10px 14px; font-size:14px; font-weight:650;
  display:flex; gap:10px; align-items:center; }
.grpbox > summary::-webkit-details-marker { display:none; }
.grpbox > summary:hover { background:var(--surface-2); }
.grpbox > summary:focus-visible { outline:2px solid var(--accent); outline-offset:-2px; }
.grpbox > summary::before { content:"\25B8"; color:var(--faint); font-size:11px; }
.grpbox[open] > summary::before { content:"\25BE"; }
.grpbox[open] > summary { border-bottom:1px solid var(--border); }
.grpbox .inner { padding:12px; }
.grpbox .inner > *:last-child { margin-bottom:0; }
.grpbox .count { margin-left:auto; font:11px var(--mono); color:var(--faint); font-weight:400; }
