
:root{
  --paper:#F2F4F7; --surface:#FFFFFF; --sunk:#E8EBF0; --raise:#FFFFFF;
  --ink:#0E1318; --ink-2:#3C4753; --ink-3:#6B7683;
  --rule:#D5DAE1; --rule-2:#B9C1CB;
  --accent:#17457E; --accent-2:#0E2E56; --wash:#E5EDF8; --on-accent:#FFFFFF;
  --none:#0A6656; --unknown:#8A5A0B; --moved:#992A28;
  --none-w:#E2F1ED; --unknown-w:#F6EEDE; --moved-w:#F8E7E5;
  --sel:#CFE0F5;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,"DejaVu Sans Mono",Consolas,monospace;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#090C0F; --surface:#10151A; --sunk:#0D1216; --raise:#151B21;
    --ink:#E7ECF2; --ink-2:#A5B0BC; --ink-3:#74808D;
    --rule:#1D242B; --rule-2:#2B343D;
    --accent:#8FB4E8; --accent-2:#B7CFF2; --wash:#111D2B; --on-accent:#090C0F;
    --none:#5FC6AC; --unknown:#D6A55E; --moved:#EA867D;
    --none-w:#0E211D; --unknown-w:#231B0E; --moved-w:#241211;
    --sel:#1B3350;
  }
}
:root[data-theme="dark"]{
  --paper:#090C0F; --surface:#10151A; --sunk:#0D1216; --raise:#151B21;
  --ink:#E7ECF2; --ink-2:#A5B0BC; --ink-3:#74808D;
  --rule:#1D242B; --rule-2:#2B343D;
  --accent:#8FB4E8; --accent-2:#B7CFF2; --wash:#111D2B; --on-accent:#090C0F;
  --none:#5FC6AC; --unknown:#D6A55E; --moved:#EA867D;
  --none-w:#0E211D; --unknown-w:#231B0E; --moved-w:#241211;
  --sel:#1B3350;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{animation-duration:.01ms !important; transition-duration:.01ms !important}
}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font:16px/1.62 var(--sans); font-variant-numeric:tabular-nums;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
::selection{background:var(--sel); color:var(--ink)}
:focus-visible{outline:2px solid var(--accent); outline-offset:2px; border-radius:2px}
code,pre,kbd,.mono{font-family:var(--mono); font-variant-numeric:tabular-nums}

/* ── top bar ── */
.top{
  position:sticky; top:0; z-index:40; background:var(--surface);
  border-bottom:1px solid var(--rule); display:flex; align-items:center;
  gap:18px; padding:0 20px; height:52px;
}
.wordmark{
  font-family:var(--mono); font-size:12.5px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--ink); text-decoration:none; font-weight:600;
  white-space:nowrap;
}
.wordmark b{color:var(--accent); font-weight:600}
.top .spacer{flex:1}
.top-l{
  font-family:var(--mono); font-size:12px; letter-spacing:.04em; color:var(--ink-3);
  text-decoration:none; padding:5px 8px; border-radius:3px; white-space:nowrap;
}
.top-l:hover{color:var(--accent); background:var(--wash)}
button.ctl{
  font-family:var(--mono); font-size:12px; color:var(--ink-2); background:var(--paper);
  border:1px solid var(--rule); border-radius:3px; padding:5px 9px; cursor:pointer;
  letter-spacing:.04em; display:inline-flex; align-items:center; gap:7px;
}
button.ctl:hover{border-color:var(--rule-2); color:var(--ink)}
kbd{
  font-size:10.5px; border:1px solid var(--rule); border-radius:3px;
  padding:1px 4px; color:var(--ink-3); background:var(--surface);
}
#search-open{min-width:160px; justify-content:space-between}
@media (max-width:860px){ #search-open{min-width:0} .top-l.hide-s{display:none} }

/* ── shell ── */
.shell{display:grid; grid-template-columns:262px minmax(0,1fr); max-width:1320px; margin:0 auto}
nav.side{
  position:sticky; top:52px; align-self:start; height:calc(100vh - 52px);
  overflow-y:auto; border-right:1px solid var(--rule); padding:26px 22px 60px;
  background:var(--paper);
}
.sec{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-3); margin:22px 0 8px; padding-bottom:6px; border-bottom:1px solid var(--rule);
}
.sec:first-child{margin-top:0}
nav.side a{
  display:block; text-decoration:none; color:var(--ink-2); font-size:13.5px;
  padding:5px 0 5px 11px; border-left:2px solid transparent; line-height:1.35;
}
nav.side a:hover{color:var(--accent); border-left-color:var(--rule-2)}
nav.side a.here{color:var(--accent); border-left-color:var(--accent); font-weight:600}
nav.side .toc a{
  font-size:12.5px; color:var(--ink-3); padding-left:22px; font-family:var(--mono);
  letter-spacing:-.01em;
}
nav.side .toc a:hover{color:var(--accent)}
main{padding:38px 44px 120px; min-width:0; max-width:960px}
@media (max-width:1000px){
  .shell{grid-template-columns:1fr}
  nav.side{position:static; height:auto; border-right:0; border-bottom:1px solid var(--rule); padding:20px}
  nav.side .toc{display:none}
  main{padding:26px 20px 80px}
}

/* ── type ── */
h1{
  font-family:var(--mono); font-size:31px; line-height:1.18; letter-spacing:-.025em;
  margin:0 0 18px; font-weight:600; text-wrap:balance;
}
h2{
  font-family:var(--mono); font-size:19px; letter-spacing:-.02em; font-weight:600;
  margin:54px 0 14px; padding-top:14px; border-top:1px solid var(--rule);
  scroll-margin-top:70px; text-wrap:balance;
}
h3{font-family:var(--mono); font-size:15px; font-weight:600; margin:30px 0 8px; scroll-margin-top:70px}
h4{font-family:var(--mono); font-size:13.5px; font-weight:600; margin:24px 0 6px; color:var(--ink-2)}
.anchor{
  color:var(--rule-2); text-decoration:none; margin-left:8px; opacity:0;
  font-weight:400; transition:opacity .12s;
}
h2:hover .anchor,h3:hover .anchor,.anchor:focus-visible{opacity:1}
p,li{color:var(--ink-2); max-width:74ch}
p{margin:0 0 15px}
li{margin:5px 0}
strong{color:var(--ink); font-weight:600}
a{color:var(--accent); text-underline-offset:2px}
hr{border:0; border-top:1px solid var(--rule); margin:38px 0}
blockquote{
  margin:18px 0; padding:12px 16px; border-left:2px solid var(--accent);
  background:var(--wash); color:var(--ink-2); max-width:74ch;
}
blockquote p{margin:0}
ul.checks{list-style:none; padding-left:0}
ul.checks>li{
  border-top:1px solid var(--rule); padding:10px 0 10px 26px; position:relative; max-width:74ch;
}
li p:last-child{margin-bottom:0}
li figure.code{margin:10px 0}
ul.checks>li::before{
  content:"☐"; position:absolute; left:0; top:9px; font-family:var(--mono);
  color:var(--accent); font-size:14px;
}
code{
  background:var(--sunk); border:1px solid var(--rule); border-radius:3px;
  padding:1px 5px; font-size:.86em; color:var(--ink); white-space:nowrap;
}

/* ── code ── */
figure.code,figure.sample{
  margin:18px 0; border:1px solid var(--rule); border-radius:4px;
  background:var(--surface); position:relative;
}
figure.code[data-lang]::after{
  content:attr(data-lang); position:absolute; top:9px; right:64px;
  font-family:var(--mono); font-size:10px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--ink-3);
}
pre{
  margin:0; padding:15px 17px; overflow-x:auto; font-size:13px; line-height:1.62;
  color:var(--ink);
}
pre code{background:none; border:0; padding:0; font-size:inherit; white-space:pre}
button.copy{
  position:absolute; top:7px; right:7px; z-index:2; font-family:var(--mono);
  font-size:10.5px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--ink-3); background:var(--paper); border:1px solid var(--rule);
  border-radius:3px; padding:3px 7px; cursor:pointer;
}
button.copy:hover{color:var(--accent); border-color:var(--accent)}
figure.sample figcaption{
  display:flex; align-items:center; gap:12px; padding:0 8px 0 13px;
  border-bottom:1px solid var(--rule); background:var(--paper);
}
figure.sample .op{
  font-family:var(--mono); font-size:11px; color:var(--ink-3); letter-spacing:.03em;
  margin-right:auto; padding:9px 0;
}
.tabs{display:flex}
button.tab{
  font-family:var(--mono); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase;
  background:none; border:0; border-bottom:2px solid transparent; color:var(--ink-3);
  padding:10px 11px; cursor:pointer; margin-bottom:-1px;
}
button.tab:hover{color:var(--ink)}
button.tab[aria-selected="true"]{color:var(--accent); border-bottom-color:var(--accent)}
figure.sample .pane{display:none; position:relative}
figure.sample .pane.on{display:block}
.member{
  border-top:1px solid var(--rule); padding:16px 0; display:grid;
  grid-template-columns:minmax(0,1fr); gap:6px;
}
.member figure.code{margin:0; border:0; background:var(--sunk); border-radius:4px}
.member-doc{color:var(--ink-3); font-size:14px; max-width:74ch}

/* ── tables ── */
.scroll{overflow-x:auto; max-width:100%; margin:16px 0}
table{border-collapse:collapse; width:100%; font-size:13.5px}
th,td{text-align:left; padding:9px 16px 9px 0; border-bottom:1px solid var(--rule); vertical-align:top}
th{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.11em; text-transform:uppercase;
  color:var(--ink-3); font-weight:600; border-bottom:1px solid var(--rule-2); white-space:nowrap;
}
td{color:var(--ink-2)}
tbody tr:hover{background:var(--surface)}
td code{white-space:nowrap}
.endpoints td:first-child,.triggers td:first-child{width:1%}
.cmds td:first-child{width:1%; white-space:nowrap}
.m{
  font-family:var(--mono); font-size:10.5px; font-weight:700; letter-spacing:.07em;
  padding:2px 6px; border-radius:3px; background:var(--sunk); color:var(--ink-2);
  border:1px solid var(--rule);
}
.m-get{color:var(--none)} .m-post{color:var(--accent)} .m-delete,.m-patch,.m-put{color:var(--moved)}
.seq{font-family:var(--mono); font-size:12px; color:var(--ink-3); white-space:nowrap}
.dim{color:var(--ink-3)}
.note{font-family:var(--mono); font-size:11px; color:var(--ink-3)}

/* ── state markers ── */
.mk{
  display:inline-flex; align-items:center; gap:6px; font-family:var(--mono);
  font-size:11px; letter-spacing:.02em; white-space:nowrap; padding:2px 7px 2px 5px;
  border-radius:3px; border:1px solid transparent;
}
.mk .glyph{font-size:12px; line-height:1}
.mk-money-none{color:var(--none); background:var(--none-w); border-color:var(--none)}
.mk-money-unknown{color:var(--unknown); background:var(--unknown-w); border-color:var(--unknown)}
.mk-retry-safe{color:var(--none); background:var(--none-w); border-color:var(--none)}
.mk-retry-change{color:var(--unknown); background:var(--unknown-w); border-color:var(--unknown)}
.mk-retry-never{color:var(--moved); background:var(--moved-w); border-color:var(--moved)}
.th-mark{width:1%}
.legend{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:22px;
  border-top:1px solid var(--rule-2); border-bottom:1px solid var(--rule-2);
  padding:16px 0; margin:20px 0;
}
.legend-g{display:flex; flex-direction:column; gap:9px; align-items:flex-start}
.legend-i{display:flex; gap:10px; align-items:baseline; font-size:13px; color:var(--ink-3)}
.legend-i .mk{flex:none}
.legend-h{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.13em; text-transform:uppercase;
  color:var(--ink-3);
}

/* ── error blocks ── */
.errs{margin:18px 0; border-bottom:1px solid var(--rule)}
.err{border-top:1px solid var(--rule); padding:14px 0}
.err:target{background:var(--wash); box-shadow:-14px 0 0 var(--wash),14px 0 0 var(--wash)}
.err-h{display:flex; align-items:center; gap:9px; flex-wrap:wrap; margin-bottom:9px}
.err-k{background:none; border:0; padding:0; font-size:14px; font-weight:600; color:var(--ink); letter-spacing:-.01em}
.err-s{font-family:var(--mono); font-size:11px; color:var(--ink-3); border:1px solid var(--rule); border-radius:3px; padding:2px 6px}
.err-a{color:var(--rule-2); text-decoration:none; opacity:0; margin-left:auto}
.err:hover .err-a,.err-a:focus-visible{opacity:1}
.err dl{display:grid; grid-template-columns:132px minmax(0,1fr); gap:5px 18px; margin:0}
.err dl>div{display:contents}
.err dt{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink-3); padding-top:2px;
}
.err dd{margin:0; color:var(--ink-2); font-size:14px; max-width:74ch}
@media (max-width:620px){
  .err dl{grid-template-columns:minmax(0,1fr); gap:2px}
  .err dt{margin-top:8px}
}

/* ── landing ── */
.hero{padding:14px 0 6px}
.eyebrow{
  font-family:var(--mono); font-size:11px; letter-spacing:.15em; text-transform:uppercase;
  color:var(--ink-3); margin:0 0 14px;
}
.hero h1{font-size:33px; max-width:26ch}
.lede{font-size:17px; color:var(--ink-2); max-width:66ch}
.rule-stack{display:flex; flex-direction:column; gap:3px; margin:26px 0 8px}
.rule-stack i{height:1px; background:var(--rule-2)}
.rule-stack i:nth-child(2){background:var(--rule); width:70%}
.rule-stack i:nth-child(3){background:var(--rule); width:34%}
.cards{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  border-top:1px solid var(--rule); margin:18px 0;
}
.card{
  display:flex; flex-direction:column; gap:5px; padding:16px 18px 18px 0;
  border-bottom:1px solid var(--rule); text-decoration:none;
}
.card:hover .card-t{color:var(--accent)}
.card-t{font-family:var(--mono); font-size:14px; font-weight:600; color:var(--ink)}
.card-s{font-size:13px; color:var(--ink-3); line-height:1.45}

/* ── pager ── */
.pager{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:64px; border-top:1px solid var(--rule-2); padding-top:20px}
.pager a{
  display:flex; flex-direction:column; gap:4px; text-decoration:none;
  border:1px solid var(--rule); border-radius:4px; padding:12px 14px; background:var(--surface);
}
.pager a:hover{border-color:var(--accent)}
.pager .dir{font-family:var(--mono); font-size:10.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--ink-3)}
.pager .t{font-family:var(--mono); font-size:14px; color:var(--ink); font-weight:600}
.pager .next{text-align:right; grid-column:2}

/* ── search ── */
.sheet[hidden]{display:none}
.sheet{position:fixed; inset:0; z-index:60; background:rgba(8,12,16,.42); padding:10vh 16px 16px; display:flex; justify-content:center; align-items:flex-start}
.sheet-box{
  width:min(680px,100%); max-height:72vh; background:var(--surface);
  border:1px solid var(--rule-2); border-radius:6px; display:flex; flex-direction:column;
  overflow:hidden;
}
#q{
  border:0; border-bottom:1px solid var(--rule); background:none; color:var(--ink);
  font:15px var(--mono); padding:15px 17px; outline:none; width:100%;
}
#hits{overflow-y:auto; padding:6px 0}
#hits a{display:block; text-decoration:none; padding:9px 17px; border-left:2px solid transparent}
#hits a[aria-selected="true"]{background:var(--wash); border-left-color:var(--accent)}
#hits .h-t{font-family:var(--mono); font-size:13px; color:var(--ink); display:block}
#hits .h-p{font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3)}
#hits .h-x{font-size:12.5px; color:var(--ink-3); display:block; margin-top:2px}
#hits mark{background:var(--sel); color:var(--ink)}
.sheet-foot{
  border-top:1px solid var(--rule); padding:8px 17px; font-family:var(--mono);
  font-size:10.5px; color:var(--ink-3); letter-spacing:.06em;
}
