:root{
  --ground:#F4F6F5;--surface:#FFFFFF;--text:#16201E;--muted:#5C6B67;--faint:#8A9793;--line:#E1E7E5;
  --accent:#0F766E;--accent-soft:#E3F0ED;--code-ground:#0E1A18;--code-text:#C9D8D4;
  --code-key:#83D2C4;--code-str:#E4B584;--code-num:#C7B2F2;
  --get:#1D6FB8;--post:#2E7D46;--put:#B4771A;--del:#C0453B;
  --mono:ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,monospace;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--rail:280px;
}
html.theme-dark{
  --ground:#0E1A18;--surface:#132420;--text:#E8F1EE;--muted:#A6BAB4;--faint:#6E827D;--line:#22403A;
  --accent:#83D2C4;--accent-soft:#17302B;
}
html.theme-dark .rail{background:#0A1513;}
html.theme-dark .drift{background:#241f13;border-color:#4a3d1e;color:#e0c890;}
html.theme-dark .req{background:#2a1614;border-color:#5c2b26;}
*{box-sizing:border-box;}
body{margin:0;background:var(--ground);color:var(--text);font-family:var(--sans);line-height:1.6;-webkit-font-smoothing:antialiased;}
a{color:var(--accent);text-decoration:none;}a:hover{text-decoration:underline;}
code{font-family:var(--mono);}
.layout{display:grid;grid-template-columns:var(--rail) minmax(0,1fr);min-height:100vh;}
.rail{background:var(--code-ground);color:#AEC2BD;position:sticky;top:0;align-self:start;height:100vh;overflow:hidden;display:flex;flex-direction:column;padding:24px 20px;border-right:1px solid #17302B;}
.brand{font-family:var(--mono);color:#EAF3F0;display:flex;align-items:center;gap:9px;min-width:0;}
.brand:hover{text-decoration:none;}
.brandtext{display:flex;flex-direction:column;line-height:1.2;white-space:nowrap;}
.brand b{font-weight:600;font-size:13.5px;}
.brand small{color:#6E827D;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;}
.brand .mark{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:7px;background:#17302B;color:var(--code-key);font-family:var(--mono);font-size:11px;font-weight:700;flex:none;}
.railtop{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.theme-btn{background:none;border:1px solid #24413B;color:#86a39c;border-radius:7px;width:28px;height:28px;cursor:pointer;font-size:14px;line-height:1;flex:none;}
.theme-btn:hover{color:#EAF3F0;border-color:#35564f;}
.searchbox{position:relative;margin-top:18px;}
.searchbox .kbd{position:absolute;right:9px;top:8px;font-family:var(--mono);font-size:10px;color:#5F736E;border:1px solid #24413B;border-radius:4px;padding:1px 5px;pointer-events:none;}
.results a.kbdactive{background:#17302B;color:#EAF3F0;}
.searchbox input{width:100%;background:#0A1513;border:1px solid #24413B;border-radius:8px;color:#EAF3F0;font-family:var(--sans);font-size:13px;padding:8px 11px;}
.searchbox input::placeholder{color:#5F736E;}
.searchbox input:focus{outline:none;border-color:var(--code-key);}
.results{display:none;position:absolute;top:calc(100% + 6px);left:0;right:0;max-height:60vh;overflow-y:auto;background:#0A1513;border:1px solid #24413B;border-radius:8px;z-index:20;box-shadow:0 16px 40px -12px rgba(0,0,0,.6);}
.results.open{display:block;}
.results a{display:block;padding:8px 11px;border-bottom:1px solid #17302B;color:#B8CCC7;}
.results a:hover{background:#17302B;text-decoration:none;}
.results a b{display:block;font-family:var(--mono);font-size:12px;color:#EAF3F0;font-weight:500;}
.results a span{display:block;font-size:11px;color:#6E827D;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.results .nores{padding:10px 11px;font-size:12px;color:#6E827D;}
.rail nav{margin-top:18px;flex:1;min-height:0;overflow-y:auto;}
.rail .eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#5F736E;margin:20px 0 8px;}
.rail ul{list-style:none;margin:0 0 4px;padding:0;}
.rail li a{display:block;padding:5px 10px;border-radius:7px;color:#B8CCC7;font-size:13px;font-family:var(--mono);}
.rail li a:hover{background:#17302B;text-decoration:none;color:#EAF3F0;}
.rail li a.active{background:#17302B;color:#EAF3F0;}
/* collapsible module groups */
.navtag{margin:0;}
.navtag>summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 10px;border-radius:7px;color:#B8CCC7;font-size:13px;font-family:var(--mono);}
.navtag>summary::-webkit-details-marker{display:none;}
.navtag>summary::marker{content:"";}
.navtag>summary:hover{background:#17302B;color:#EAF3F0;}
.navtag>summary.active .tgname{color:#EAF3F0;font-weight:600;}
.navtag>summary .caret{color:#5F736E;transition:transform .15s ease;font-size:10px;flex:none;}
.navtag[open]>summary .caret{transform:rotate(90deg);}
.navtag ul.eps{list-style:none;margin:2px 0 8px 13px;padding:0 0 0 7px;border-left:1px solid #17302B;}
.navtag ul.eps li a{display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:6px;color:#8CA39D;font-size:12px;font-family:var(--sans);}
.navtag ul.eps li a:hover{background:#17302B;color:#EAF3F0;text-decoration:none;}
.navtag ul.eps li a.active{background:#17302B;color:#EAF3F0;box-shadow:inset 2px 0 0 var(--code-key);}
.navtag ul.eps .verb{min-width:34px;font-size:8.5px;padding:1px 4px;flex:none;}
.eplabel{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.typeref{width:100%;border-collapse:collapse;margin:8px 0 20px;}
.typeref td{padding:10px 0;border-top:1px solid var(--line);font-size:13.5px;vertical-align:top;color:var(--muted);}
.typeref tr:first-child td{border-top:none;}
.typeref td:first-child{width:190px;}
main{max-width:100%;}
.wrap{max-width:none;padding:44px 52px 90px;margin:0;}
.crumb{font-family:var(--mono);font-size:12px;color:var(--faint);}.crumb b{color:var(--accent);font-weight:500;}
h1{font-family:var(--mono);font-weight:600;font-size:38px;letter-spacing:-.02em;margin:14px 0 8px;}
h1.home{font-size:46px;margin-top:6px;}
.eyebrow-top{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);}
h2.sec{font-size:22px;margin:44px 0 6px;letter-spacing:-.01em;}
h2.sec .count{font-family:var(--mono);font-size:12px;font-weight:400;color:var(--faint);letter-spacing:.04em;margin-left:8px;}
.modgroup h3{font-size:14px;font-family:var(--mono);letter-spacing:.04em;color:var(--muted);margin:22px 0 0;}
.hcard{display:flex;flex-direction:column;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:15px 17px;}
.hcard b{font-size:14px;}.hcard span{font-size:13px;color:var(--muted);}
ol.steps{padding-left:20px;margin:8px 0 18px;}
ol.steps li{margin:8px 0;color:var(--muted);}ol.steps li b{color:var(--text);}
.wrap h2{font-size:20px;margin:30px 0 8px;}
.wrap>p{color:var(--muted);}
.lede{font-size:17px;color:var(--muted);max-width:62ch;margin:0 0 26px;}
.callout{display:flex;gap:13px;background:var(--accent-soft);border:1px solid #CDE4DF;border-radius:12px;padding:14px 18px;margin:0 0 22px;}
.callout .ic{font-family:var(--mono);color:var(--accent);font-weight:700;}
.callout p{margin:0;font-size:14px;color:#234b45;}
.callout code{background:#d3e7e2;padding:1px 5px;border-radius:4px;font-size:12.5px;}
/* index cards */
.modgroup{margin:34px 0;}
.modgroup h2{font-size:16px;font-family:var(--mono);letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:8px;}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-top:14px;}
.card{display:flex;flex-direction:column;gap:3px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px 16px;}
.card:hover{border-color:var(--accent);text-decoration:none;}
.card b{font-family:var(--mono);font-size:14px;color:var(--text);}
.card span{font-size:12px;color:var(--faint);}
/* legend */
.legend{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:2px 20px;margin:0 0 34px;}
.legend>summary{cursor:pointer;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding:13px 0;list-style:none;display:flex;align-items:center;gap:8px;}
.legend>summary::-webkit-details-marker{display:none;}
.legend>summary .chev{transition:transform .16s ease;}.legend[open]>summary .chev{transform:rotate(90deg);}
.legend[open]>summary{border-bottom:1px solid var(--line);}
.legend table{width:100%;border-collapse:collapse;margin:4px 0 14px;}
.legend td{padding:10px 0;border-top:1px solid var(--line);font-size:13px;vertical-align:top;color:var(--muted);}
.legend tr:first-child td{border-top:none;}.legend td:first-child{width:170px;}
.legend td:last-child{font-family:var(--mono);font-size:12px;color:var(--faint);}
.tchip{font-family:var(--mono);font-size:11.5px;color:var(--accent);white-space:nowrap;}
.nul{font-family:var(--mono);font-size:10px;color:var(--faint);border:1px solid var(--line);border-radius:4px;padding:1px 5px;}
/* endpoint */
.ep{border-top:1px solid var(--line);padding-top:32px;margin-top:40px;}
.ep:first-of-type{border-top:none;}
.ep-head{scroll-margin-top:20px;}
.sig{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:4px;}
.sig .path{font-family:var(--mono);font-size:15px;font-weight:500;}.sig .path .pv{color:var(--accent);}
.anchor-link{font-family:var(--mono);color:var(--faint);text-decoration:none;font-size:15px;padding:0 4px;border-radius:5px;opacity:0;transition:opacity .12s;}
.sig:hover .anchor-link{opacity:1;}
.anchor-link:hover{color:var(--accent);background:var(--accent-soft);text-decoration:none;}
.anchor-link.copied{color:var(--post);opacity:1;}
.dlrow{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 26px;}
.btn{display:inline-block;font-family:var(--mono);font-size:12.5px;padding:8px 14px;border-radius:8px;border:1px solid var(--line);color:var(--text);background:var(--surface);}
.btn:hover{border-color:var(--accent);text-decoration:none;}
.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent);}
.btn.primary:hover{filter:brightness(1.06);}
.verb{font-family:var(--mono);font-weight:600;font-size:10px;padding:2px 6px;border-radius:5px;color:#fff;display:inline-block;min-width:46px;text-align:center;}
.verb.get{background:var(--get);}.verb.post{background:var(--post);}.verb.put{background:var(--put);}.verb.del{background:var(--del);}
.ep h2{font-size:20px;margin:6px 0 4px;}
.ep .desc{color:var(--muted);font-size:15px;max-width:60ch;margin:0 0 20px;}
.cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,468px);gap:32px;align-items:start;}
.subhead{font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--text);font-weight:600;margin:26px 0 4px;padding-bottom:8px;border-bottom:1px solid var(--line);}
.nested .subhead{color:var(--accent);border-bottom:none;margin:2px 0 6px;font-size:10.5px;}
.fieldlist{margin-bottom:10px;}
.field{padding:14px 0;border-top:1px solid var(--line);}
.field:first-child{border-top:none;}
.field-head{display:flex;align-items:baseline;gap:11px;flex-wrap:wrap;margin-bottom:5px;}
.field-head .n{font-family:var(--mono);font-weight:600;color:var(--text);font-size:13.5px;overflow-wrap:anywhere;}
.field-head .ftype{font-family:var(--mono);font-size:11.5px;color:var(--accent);font-weight:400;}
.fdesc{font-size:14px;color:var(--muted);max-width:64ch;}
.req{display:inline-block;font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;color:var(--del);border:1px solid #e6c4c0;background:#fbf0ef;border-radius:4px;padding:1px 5px;}
.fdesc{color:var(--muted);}
.fdesc .hint{display:block;margin-top:4px;font-size:12.5px;color:var(--faint);}
.fdesc code{background:#eef2f1;padding:1px 5px;border-radius:4px;font-size:12px;color:#294b46;}
.enumv{display:inline-block;font-family:var(--mono);font-size:11px;background:var(--accent-soft);color:#1e4b45;border-radius:4px;padding:1px 6px;margin:1px 2px;}
.expand{margin-top:8px;background:none;border:1px solid var(--line);color:var(--accent);font-family:var(--mono);font-size:11.5px;padding:3px 9px;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;}
.expand:hover{background:var(--accent-soft);}
.expand .chev{transition:transform .16s ease;display:inline-block;}.expand[aria-expanded="true"] .chev{transform:rotate(90deg);}
.nested{margin:12px 0 4px;padding-left:16px;border-left:2px solid var(--accent-soft);}
.nested[hidden]{display:none;}
.codecol{position:sticky;top:20px;display:flex;flex-direction:column;gap:14px;}
.panel{border-radius:13px;overflow:hidden;border:1px solid #17302B;box-shadow:0 20px 40px -28px rgba(14,26,24,.5);}
.resppanel{border-radius:13px;overflow:hidden;border:1px solid var(--line);background:var(--surface);}
.resphead{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding:10px 15px;border-bottom:1px solid var(--line);background:#f0f3f2;}
html.theme-dark .resphead{background:#0f1f1c;}
.resppanel pre{background:var(--surface);color:var(--text);max-height:calc(50vh - 66px);overflow:auto;}
.panel pre{max-height:calc(50vh - 66px);overflow:auto;}
.resppanel .k{color:var(--accent);}
.resppanel .s{color:#9a5b1a;}
.resppanel .num{color:#1D6FB8;}
.resppanel .mut{color:var(--faint);}
html.theme-dark .resppanel .s{color:var(--code-str);}
html.theme-dark .resppanel .num{color:var(--code-num);}
.panel .bar{background:#0A1513;display:flex;align-items:center;gap:3px;padding:9px 10px;border-bottom:1px solid #17302B;flex-wrap:wrap;}
.tab{background:none;border:none;color:#7E938E;font-family:var(--mono);font-size:12px;padding:5px 10px;border-radius:6px;cursor:pointer;}
.tab[aria-selected="true"]{background:#17302B;color:#EAF3F0;}
.tab:focus-visible{outline:2px solid var(--code-key);outline-offset:1px;}
.copy{margin-left:auto;background:none;border:1px solid #24413B;color:#86a39c;font-family:var(--mono);font-size:11px;padding:4px 9px;border-radius:6px;cursor:pointer;}
.copy:hover{color:#EAF3F0;border-color:#35564f;}
pre{margin:0;background:var(--code-ground);color:var(--code-text);font-family:var(--mono);font-size:12.4px;line-height:1.7;padding:16px 18px;overflow-x:auto;white-space:pre;}
pre[hidden]{display:none;}
.k{color:var(--code-key);}.s{color:var(--code-str);}.num{color:var(--code-num);}
footer{border-top:1px solid var(--line);margin-top:56px;padding-top:20px;font-size:12.5px;color:var(--faint);font-family:var(--mono);}
@media(max-width:900px){
  .layout{grid-template-columns:1fr;}
  .rail{position:static;height:auto;border-right:none;border-bottom:1px solid #17302B;}
  .wrap{padding:30px 20px 70px;}.cols{grid-template-columns:1fr;gap:18px;}.panel{position:static;}h1{font-size:30px;}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;}.expand .chev,.legend>summary .chev{transition:none;}}
html{scroll-behavior:smooth;}
