/* Rankd for Developers. Rankd's own tokens (web/src/ui.ts): the system greys,
   Rankd blue, 18px cards, light or dark with the system unless the reader
   picks one (data-theme). */
:root{
  color-scheme:light dark;
  --accent:#388ffa;--accent-soft:rgba(56,143,250,.14);--accent-text:#1f6fd6;
  --bg:#ffffff;--bg-2:#f5f5f7;--text:#000000;--dim:rgba(60,60,67,.66);--faint:rgba(60,60,67,.32);
  --fill:rgba(118,118,128,.12);--fill-2:rgba(118,118,128,.2);--sep:rgba(60,60,67,.13);
  --glass:rgba(255,255,255,.8);--glass-line:rgba(0,0,0,.08);
  --shadow:0 6px 22px rgba(0,0,0,.07),0 1px 3px rgba(0,0,0,.05);
  --code-bg:#f6f7f9;--code-text:#1d1d1f;
  --k:#9b2393;--s:#c41a16;--n:#1c00cf;--p:#0b4f79;--c:#6c7a89;
  --good:#1f9d5c;--bad:#e5341f;--warn:#b7791f;
  --radius:18px;--header:60px;
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Inter","Segoe UI",Roboto,sans-serif;
  --rounded:ui-rounded,"SF Pro Rounded",-apple-system,BlinkMacSystemFont,sans-serif;
  --mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,monospace;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#000000;--bg-2:#0e0e10;--text:#ffffff;--dim:rgba(235,235,245,.62);--faint:rgba(235,235,245,.3);
    --fill:rgba(118,118,128,.24);--fill-2:rgba(118,118,128,.34);--sep:rgba(84,84,88,.5);
    --glass:rgba(22,22,24,.78);--glass-line:rgba(255,255,255,.09);--shadow:0 8px 28px rgba(0,0,0,.5);
    --code-bg:#111113;--code-text:#e8e8ed;--accent-text:#6aaeff;
    --k:#ff7ab2;--s:#ff8170;--n:#d9c97c;--p:#6bdfff;--c:#7f8c98;
    --good:#30d158;--bad:#ff453a;--warn:#ffd60a;
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#000000;--bg-2:#0e0e10;--text:#ffffff;--dim:rgba(235,235,245,.62);--faint:rgba(235,235,245,.3);
  --fill:rgba(118,118,128,.24);--fill-2:rgba(118,118,128,.34);--sep:rgba(84,84,88,.5);
  --glass:rgba(22,22,24,.78);--glass-line:rgba(255,255,255,.09);--shadow:0 8px 28px rgba(0,0,0,.5);
  --code-bg:#111113;--code-text:#e8e8ed;--accent-text:#6aaeff;
  --k:#ff7ab2;--s:#ff8170;--n:#d9c97c;--p:#6bdfff;--c:#7f8c98;
  --good:#30d158;--bad:#ff453a;--warn:#ffd60a;
}
:root[data-theme="light"]{color-scheme:light}

*{box-sizing:border-box}
html{scroll-padding-top:calc(var(--header) + 16px);-webkit-text-size-adjust:100%}
html,body{margin:0;padding:0}
body{font:16px/1.6 var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:var(--accent-text);text-decoration:none}
a:hover{text-decoration:underline}
button{font:inherit;color:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--accent);color:#fff;padding:8px 14px;border-radius:10px;font-weight:700}
.skip:focus{top:10px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
svg.i{width:18px;height:18px;flex:none}

/* ---- header ---- */
.header{position:sticky;top:0;z-index:40;height:var(--header);display:flex;align-items:center;gap:14px;padding:0 20px;
  background:var(--glass);border-bottom:1px solid var(--sep);-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%)}
.brand{display:flex;align-items:center;gap:10px;color:var(--text);font:800 18px/1 var(--rounded);letter-spacing:-.02em;white-space:nowrap}
.brand:hover{text-decoration:none}
.brand small{font:600 14px/1 var(--font);color:var(--dim);letter-spacing:0}
.mark{width:30px;height:30px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;flex:none;
  background:linear-gradient(145deg,#5aa5ff,var(--accent) 55%,#2f6fd8);color:#fff;box-shadow:0 3px 10px rgba(56,143,250,.35)}
.mark svg{width:17px;height:17px}
.header .spacer{flex:1}
.search-button{display:flex;align-items:center;gap:8px;height:36px;min-width:230px;padding:0 10px 0 12px;border-radius:10px;
  background:var(--fill);border:1px solid transparent;color:var(--dim);font-size:14px}
.search-button:hover{border-color:var(--sep)}
.search-button span{flex:1;text-align:left}
kbd{font:600 11.5px/1 var(--mono);padding:3px 6px;border-radius:6px;background:var(--bg);border:1px solid var(--sep);color:var(--dim)}
.select{height:36px;border-radius:10px;background:var(--fill);border:1px solid transparent;padding:0 28px 0 10px;font:600 13px var(--font);color:var(--text);
  appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--dim) 50%),linear-gradient(135deg,var(--dim) 50%,transparent 50%);
  background-position:calc(100% - 15px) 16px,calc(100% - 10px) 16px;background-size:5px 5px;background-repeat:no-repeat}
.status{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 12px;border-radius:999px;background:var(--fill);font-size:13px;font-weight:600;color:var(--dim);white-space:nowrap}
.status:hover{text-decoration:none;color:var(--text)}
.dot{width:8px;height:8px;border-radius:50%;background:var(--faint);flex:none}
.status[data-state="operational"] .dot{background:var(--good);box-shadow:0 0 0 3px color-mix(in srgb,var(--good) 22%,transparent)}
.status[data-state="degraded"] .dot{background:var(--warn)}
.status[data-state="down"] .dot{background:var(--bad)}
.icon-button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:var(--fill);border:0;color:var(--text)}
.menu-button{display:none}

/* ---- three columns ---- */
.layout{display:grid;grid-template-columns:268px minmax(0,1fr) 220px;max-width:1440px;margin:0 auto}
.sidebar{position:sticky;top:var(--header);height:calc(100vh - var(--header));overflow-y:auto;padding:22px 14px 40px 20px;border-right:1px solid var(--sep)}
.nav-group{margin-bottom:22px}
.nav-group h2{font:800 11px/1 var(--font);letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin:0 0 8px 10px}
.nav-group ul{list-style:none;margin:0;padding:0}
.nav-group a{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:9px;color:var(--text);font-size:14.5px;line-height:1.35}
.nav-group a:hover{background:var(--fill);text-decoration:none}
.nav-group a[aria-current="page"]{background:var(--accent-soft);color:var(--accent-text);font-weight:650}
.verb{font:700 10px/1 var(--mono);padding:3px 5px;border-radius:5px;background:color-mix(in srgb,var(--good) 16%,transparent);color:var(--good);letter-spacing:.02em;flex:none}
main{min-width:0;padding:36px 48px 80px}
.toc{position:sticky;top:var(--header);height:calc(100vh - var(--header));overflow-y:auto;padding:36px 20px 40px 8px;font-size:13.5px}
.toc h2{font:800 11px/1 var(--font);letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin:0 0 10px}
.toc ul{list-style:none;margin:0;padding:0;border-left:1px solid var(--sep)}
.toc li a{display:block;padding:4px 0 4px 12px;margin-left:-1px;border-left:2px solid transparent;color:var(--dim);line-height:1.35}
.toc li.sub a{padding-left:24px}
.toc a:hover{color:var(--text);text-decoration:none}
.toc a.active{color:var(--accent-text);border-left-color:var(--accent)}

/* ---- content ---- */
article{max-width:820px}
.eyebrow{font:800 12px/1 var(--font);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-text);margin:0 0 10px}
h1{font:800 38px/1.1 var(--rounded);letter-spacing:-.025em;margin:0 0 14px}
h2{font:800 25px/1.2 var(--rounded);letter-spacing:-.02em;margin:48px 0 12px;padding-top:4px}
h3{font:750 18px/1.3 var(--font);letter-spacing:-.01em;margin:30px 0 8px}
h2 .anchor,h3 .anchor{opacity:0;margin-left:6px;color:var(--faint);font-weight:500}
h2:hover .anchor,h3:hover .anchor,.anchor:focus{opacity:1}
.lead{font-size:18.5px;line-height:1.55;color:var(--dim);margin:0 0 24px}
p,ul,ol{margin:0 0 16px}
li{margin:4px 0}
code{font:0.88em/1.4 var(--mono);background:var(--fill);padding:2px 6px;border-radius:6px;overflow-wrap:anywhere}
pre code{background:none;padding:0;border-radius:0;font-size:13.5px;line-height:1.6;overflow-wrap:normal}
hr{border:0;border-top:1px solid var(--sep);margin:40px 0}
strong{font-weight:700}

.base-url{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:6px 0 28px;padding:16px 18px;border-radius:var(--radius);
  background:linear-gradient(135deg,var(--accent-soft),transparent 70%),var(--bg-2);border:1px solid var(--sep)}
.base-url .label{font:800 11px/1 var(--font);letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}
.base-url code{font-size:17px;background:none;padding:0;color:var(--text);font-weight:600;flex:1;min-width:0}

.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin:18px 0 28px}
.card{display:block;padding:18px;border-radius:var(--radius);border:1px solid var(--sep);background:var(--bg-2);color:var(--text)}
.card:hover{text-decoration:none;border-color:color-mix(in srgb,var(--accent) 50%,var(--sep));box-shadow:var(--shadow)}
.card h3{margin:0 0 6px;font-size:16px}
.card p{margin:0;color:var(--dim);font-size:14.5px;line-height:1.5}

.callout{display:flex;gap:12px;padding:14px 16px;border-radius:14px;margin:18px 0;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 25%,transparent)}
.callout.warn{background:color-mix(in srgb,var(--warn) 12%,transparent);border-color:color-mix(in srgb,var(--warn) 30%,transparent)}
.callout p{margin:0}
.callout p + p{margin-top:8px}
.callout svg{margin-top:3px;color:var(--accent)}
.callout.warn svg{color:var(--warn)}

.table-wrap{overflow-x:auto;margin:0 0 20px;border:1px solid var(--sep);border-radius:14px}
table{width:100%;border-collapse:collapse;font-size:14.5px}
th,td{text-align:left;vertical-align:top;padding:10px 14px;border-bottom:1px solid var(--sep)}
tr:last-child td{border-bottom:0}
table.facts th{text-transform:none;letter-spacing:0;font-size:14px;width:170px;color:var(--text);background:var(--bg-2)}
th{font-size:12px;font-weight:750;letter-spacing:.04em;text-transform:uppercase;color:var(--dim);background:var(--bg-2)}
td p{margin:0}
.field{font:600 13.5px var(--mono);white-space:nowrap}
.type{font:13px var(--mono);color:var(--dim)}
.req{font:700 10.5px var(--font);letter-spacing:.04em;text-transform:uppercase;color:var(--bad);margin-left:6px}
.nested td:first-child{padding-left:30px}
.nested.depth-2 td:first-child{padding-left:46px}

.endpoint{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 20px;padding:10px 14px;border-radius:12px;background:var(--code-bg);border:1px solid var(--sep);font:14.5px var(--mono);overflow-x:auto}
.endpoint .verb{font-size:12px;padding:4px 7px}
.endpoint .path{font-weight:600;word-break:break-all}
.badges{display:flex;gap:8px;flex-wrap:wrap;margin:-4px 0 20px}
.badge{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:999px;background:var(--fill);font-size:12.5px;font-weight:650;color:var(--dim)}

/* ---- code blocks ---- */
.code{position:relative;margin:0 0 20px;border-radius:14px;border:1px solid var(--sep);background:var(--code-bg);overflow:hidden}
.code pre{margin:0;padding:16px 18px;overflow-x:auto;color:var(--code-text);tab-size:2}
.code-head{display:flex;align-items:center;gap:4px;min-height:42px;padding:0 6px 0 8px;border-bottom:1px solid var(--sep);overflow-x:auto}
.code-head .title{font:600 12.5px var(--font);color:var(--dim);padding:0 8px;flex:1;white-space:nowrap}
[role="tab"]{border:0;background:none;padding:7px 11px;border-radius:8px;font-size:13px;font-weight:650;color:var(--dim);white-space:nowrap}
[role="tab"][aria-selected="true"]{background:var(--fill-2);color:var(--text)}
[role="tab"]:hover{color:var(--text)}
.copy{margin-left:auto;display:inline-flex;align-items:center;gap:6px;border:0;background:none;color:var(--dim);font-size:12.5px;font-weight:650;padding:7px 10px;border-radius:8px;white-space:nowrap}
.copy:hover{background:var(--fill);color:var(--text)}
.copy[data-copied]{color:var(--good)}
.tok-k{color:var(--k)}.tok-s{color:var(--s)}.tok-n{color:var(--n)}.tok-p{color:var(--p)}.tok-c{color:var(--c);font-style:italic}

/* ---- responses ---- */
details.response{border:1px solid var(--sep);border-radius:14px;margin:0 0 12px;background:var(--bg)}
details.response > summary{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;list-style:none}
details.response > summary::-webkit-details-marker{display:none}
details.response > summary::after{content:"";margin-left:auto;width:8px;height:8px;border-right:2px solid var(--dim);border-bottom:2px solid var(--dim);transform:rotate(45deg);transition:transform .15s}
details.response[open] > summary::after{transform:rotate(225deg)}
details.response > div{padding:0 16px 4px}
.code-status{font:700 13px var(--mono);padding:3px 8px;border-radius:7px;background:var(--fill)}
.code-status.s2{background:color-mix(in srgb,var(--good) 16%,transparent);color:var(--good)}
.code-status.s3{background:var(--accent-soft);color:var(--accent-text)}
.code-status.s4{background:color-mix(in srgb,var(--warn) 18%,transparent);color:var(--warn)}
.code-status.s5{background:color-mix(in srgb,var(--bad) 14%,transparent);color:var(--bad)}
.summary-text{color:var(--dim);font-size:14.5px}

/* ---- try it ---- */
.try{border:1px solid color-mix(in srgb,var(--accent) 35%,var(--sep));border-radius:var(--radius);padding:18px;margin:0 0 28px;background:linear-gradient(180deg,var(--accent-soft),transparent 120px)}
.try h3{margin:0 0 4px}
.try > p{color:var(--dim);font-size:14px;margin:0 0 14px}
.try-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin-bottom:14px}
.try label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:650}
.try label span{font:600 12.5px var(--mono)}
.try label small{color:var(--dim);font-weight:500}
.try input,.try select{height:38px;border-radius:10px;border:1px solid var(--sep);background:var(--bg);color:var(--text);padding:0 11px;font:14px var(--mono);width:100%}
.try input:focus,.try select:focus{outline:2px solid var(--accent);outline-offset:0;border-color:transparent}
.try-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 18px;border-radius:999px;border:0;background:var(--accent);color:#fff;font-weight:700;font-size:14.5px}
.button:hover{text-decoration:none;filter:brightness(1.06)}
.button[disabled]{opacity:.6;cursor:progress}
.button.secondary{background:var(--fill);color:var(--text)}
.try-url{font:12.5px var(--mono);color:var(--dim);word-break:break-all;flex:1;min-width:0}
.try-result{margin-top:14px}
.try-result[hidden]{display:none}
.try-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:13px;color:var(--dim);margin-bottom:8px}
.try-result pre{max-height:460px}

/* ---- search ---- */
dialog.search{padding:0;border:0;border-radius:18px;width:min(640px,calc(100vw - 32px));max-height:min(620px,calc(100vh - 80px));margin:10vh auto auto;
  background:var(--bg);color:var(--text);box-shadow:0 30px 80px rgba(0,0,0,.35),0 0 0 1px var(--glass-line);overflow:hidden}
dialog.search::backdrop{background:rgba(0,0,0,.4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.search-box{display:flex;align-items:center;gap:10px;padding:0 16px;border-bottom:1px solid var(--sep)}
.search-box input{flex:1;height:56px;border:0;background:none;color:var(--text);font:17px var(--font);outline:none;min-width:0}
.search-results{list-style:none;margin:0;padding:8px;overflow-y:auto;max-height:calc(min(620px,100vh - 80px) - 100px)}
.search-results li a{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:10px;color:var(--text)}
.search-results li a:hover,.search-results li a[aria-selected="true"]{background:var(--accent-soft);text-decoration:none}
.search-results .kind{font:700 10.5px var(--font);letter-spacing:.07em;text-transform:uppercase;color:var(--dim)}
.search-results .title{font-weight:650}
.search-results .text{font-size:13.5px;color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.search-results mark{background:none;color:var(--accent-text);font-weight:750}
.search-empty{padding:26px;text-align:center;color:var(--dim)}
.search-foot{display:flex;gap:14px;padding:10px 16px;border-top:1px solid var(--sep);font-size:12px;color:var(--dim)}

.pager{display:flex;justify-content:space-between;gap:14px;margin-top:56px;padding-top:24px;border-top:1px solid var(--sep)}
.pager a{display:flex;flex-direction:column;gap:2px;padding:12px 16px;border-radius:14px;border:1px solid var(--sep);min-width:0;max-width:48%}
.pager a:hover{text-decoration:none;border-color:var(--accent)}
.pager small{color:var(--dim);font-size:12px}
.pager .next{margin-left:auto;text-align:right}
.footer{margin-top:40px;font-size:13px;color:var(--dim)}
.select.small{height:30px}
.footer a{color:var(--dim);text-decoration:underline}

/* ---- narrower screens ---- */
@media (max-width:1240px){
  .layout{grid-template-columns:248px minmax(0,1fr)}
  .toc{display:none}
}
@media (max-width:900px){
  .layout{display:block}
  .menu-button{display:inline-flex}
  .sidebar{position:fixed;top:var(--header);left:0;bottom:0;height:auto;width:min(310px,86vw);z-index:35;background:var(--bg);
    transform:translateX(-102%);transition:transform .2s ease;box-shadow:var(--shadow);border-right:1px solid var(--sep)}
  body.nav-open .sidebar{transform:none}
  body.nav-open::after{content:"";position:fixed;inset:var(--header) 0 0 0;background:rgba(0,0,0,.35);z-index:30}
  main{padding:26px 16px 64px}
  .search-button{min-width:0;width:36px;padding:0;justify-content:center}
  .search-button span,.search-button kbd{display:none}
  .brand small{display:none}
  .status .label{display:none}
  .status{padding:0 12px}
  h1{font-size:31px}
  h2{font-size:22px}
  .lead{font-size:17px}
}
@media (max-width:480px){
  .header{gap:8px;padding:0 12px}
  .select{padding:0 24px 0 8px}
  .pager{flex-direction:column}
  .pager a{max-width:none}
  .pager .next{margin-left:0}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media print{.header,.sidebar,.toc,.try,.pager{display:none}.layout{display:block}}
