/* Built by api/build.mjs — do not edit. Tokens: explorer/views/theme.js; layout: api/theme/final-page.css. */
@font-face{font-family:"Sora";font-style:normal;font-weight:100 800;font-display:swap;src:url(/assets/font-sora-latin-wght.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/font-inter-latin-wght.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{
  --bg:#f7f8fc;--panel:#ffffff;--panel2:#f1f3fa;
  --ink:#0b1020;--ink-dim:#3f4761;--muted:#5c6482;
  --line:rgba(59,72,150,.14);--line2:rgba(124,58,237,.34);--chip:rgba(59,72,150,.07);
  --live:#7c3aed;--live-soft:rgba(124,58,237,.10);
  --commit:#0f766e;--commit-soft:rgba(15,118,110,.10);
  --good:#15803d;--bad:#dc2626;--bad-soft:rgba(220,38,38,.10);
  --tick:rgba(59,72,150,.22);--focus:#7c3aed;
  --mesh:radial-gradient(at 0% 0%,rgba(139,92,246,.10) 0,transparent 50%),
         radial-gradient(at 100% 0%,rgba(59,130,246,.08) 0,transparent 50%),
         radial-gradient(at 100% 100%,rgba(192,38,211,.06) 0,transparent 50%),
         radial-gradient(at 0% 100%,rgba(34,211,197,.08) 0,transparent 50%);
  --brand-line:var(--grad-accent);
  --glow:rgba(124,58,237,.28);
  --panel-blur:0px;--shadow:0 18px 44px rgba(15,23,42,.10);

  --violet:#8b5cf6;--violet-soft:#a78bfa;--indigo:#3b82f6;--electric:#2401f2;
  --magenta:#c026d3;--cyan:#22d3c5;
  --grad-accent:linear-gradient(96deg,#c233fb 0%,#a02ae4 52%,#8b5cf6 100%);
  --grad-primary:linear-gradient(96deg,#2401f2 0%,#3f3bfb 55%,#5560fe 100%);
  --grad-strand:linear-gradient(135deg,#22d3c5 0%,#3b82f6 55%,#a78bfa 100%);
  --grad-hairline:linear-gradient(90deg,transparent,rgba(167,139,250,.45),transparent);
  --radius:14px;--radius-lg:18px;--radius-sm:8px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
  --sans:"Inter",ui-sans-serif,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",sans-serif;
  --display:"Sora",var(--sans);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#000205;--panel:#050914;--panel2:#0a1020;
  --ink:#f5f7ff;--ink-dim:#b9c0d4;--muted:#97a0b8;
  --line:rgba(148,163,220,.14);--line2:rgba(167,139,250,.32);--chip:rgba(148,163,220,.08);
  --live:#8b5cf6;--live-soft:rgba(139,92,246,.16);
  --commit:#22d3c5;--commit-soft:rgba(34,211,197,.14);
  --good:#10b981;--bad:#ef4444;--bad-soft:rgba(239,68,68,.16);
  --tick:rgba(148,163,220,.18);--focus:#a78bfa;
  --mesh:radial-gradient(at 0% 0%,rgba(139,92,246,.16) 0,transparent 50%),
         radial-gradient(at 100% 0%,rgba(59,130,246,.12) 0,transparent 50%),
         radial-gradient(at 100% 100%,rgba(192,38,211,.10) 0,transparent 50%),
         radial-gradient(at 0% 100%,rgba(34,211,197,.10) 0,transparent 50%);
  --glow:rgba(139,92,246,.45);
  --panel-blur:10px;--shadow:0 18px 44px rgba(0,0,0,.55);
}}
:root[data-theme="dark"]{
  --bg:#000205;--panel:#050914;--panel2:#0a1020;
  --ink:#f5f7ff;--ink-dim:#b9c0d4;--muted:#97a0b8;
  --line:rgba(148,163,220,.14);--line2:rgba(167,139,250,.32);--chip:rgba(148,163,220,.08);
  --live:#8b5cf6;--live-soft:rgba(139,92,246,.16);
  --commit:#22d3c5;--commit-soft:rgba(34,211,197,.14);
  --good:#10b981;--bad:#ef4444;--bad-soft:rgba(239,68,68,.16);
  --tick:rgba(148,163,220,.18);--focus:#a78bfa;
  --mesh:radial-gradient(at 0% 0%,rgba(139,92,246,.16) 0,transparent 50%),
         radial-gradient(at 100% 0%,rgba(59,130,246,.12) 0,transparent 50%),
         radial-gradient(at 100% 100%,rgba(192,38,211,.10) 0,transparent 50%),
         radial-gradient(at 0% 100%,rgba(34,211,197,.10) 0,transparent 50%);
  --glow:rgba(139,92,246,.45);
  --panel-blur:10px;--shadow:0 18px 44px rgba(0,0,0,.55);
}
/* The API page: the explorer's visual system on aglio's markup.
 *
 * Every colour is one of the explorer's tokens (explorer/views/theme.js), which
 * build.mjs prepends to this file together with the fonts — light on :root,
 * dark under prefers-color-scheme unless data-theme="light", dark again under
 * data-theme="dark" so the switch wins both ways. Nothing here names a hue.
 *
 * Reading order of the markup (aglio-theme-olio, default template):
 *   nav                         the table of contents — group headings, then
 *                               one link per route with its method chip
 *   .content header             the hero (hero.mjs)
 *   .content > description      the overview, straight from the blueprint
 *   section.resource-group      a group; h2.group-heading
 *     .resource                 a route; h3.resource-heading
 *       .action.get|.post       one method; h4.action-heading, .definition,
 *                               .title + .collapse-content pairs for the
 *                               parameters, request and responses
 *
 * The explorer's semantics carry over to the methods: a GET is a read of what
 * is committed (verdigris, --commit), a POST moves something live (violet,
 * --live). The same two hues mark keys and strings in the JSON examples.
 */

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:16px}
body{margin:0;background-color:var(--bg);background-image:var(--mesh);background-attachment:fixed;
color:var(--ink);font:14px/1.55 var(--sans);font-variant-numeric:tabular-nums;
-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
a{color:inherit;text-decoration:none}
a:hover{color:var(--live)}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:4px}
::selection{background:var(--live-soft)}
code,pre{font-family:var(--mono)}
code{font-size:12.5px}
:not(pre)>code{padding:1px 5px;border-radius:4px;background:var(--chip);border:1px solid var(--line);word-break:break-all}
pre{margin:0 0 10px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);
background:var(--panel);overflow:auto;font-size:12.5px;line-height:1.5;tab-size:2}
pre code{padding:0;border:0;background:none;font-size:inherit;word-break:normal}
p{margin:0 0 12px;max-width:74ch}
ul,ol{margin:0 0 14px;padding-left:22px}
li{margin:0 0 4px;max-width:72ch}
li>p{margin:0}
strong{font-weight:600}
hr{border:0;height:1px;background:var(--line);margin:24px 0}
blockquote{margin:12px 0;padding:6px 14px;border-left:2px solid var(--line2);color:var(--ink-dim)}
table{border-collapse:collapse;border-spacing:0;margin:8px 0 20px;font-size:13px}
th,td{padding:7px 14px 7px 0;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
td:last-child,th:last-child{padding-right:0}
th{font:600 10.5px/1 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding-bottom:9px}
td code{white-space:nowrap}

/* ── the two columns ───────────────────────────────────────────────────────── */
nav.toc{position:fixed;top:0;bottom:0;left:0;width:264px;overflow-y:auto;padding:16px 10px 28px;
border-right:1px solid var(--line);background:color-mix(in srgb,var(--panel) 86%,transparent);
backdrop-filter:blur(var(--panel-blur));-webkit-backdrop-filter:blur(var(--panel-blur))}
.content{margin-left:264px;padding:26px 36px 0;max-width:1004px}
footer.page{margin:64px 0 0 264px;padding:16px 36px 40px;max-width:1004px;border-top:1px solid var(--line);
display:flex;flex-wrap:wrap;gap:6px 22px;font:12px/1.5 var(--mono);color:var(--muted)}
footer.page b{color:var(--ink);font-weight:600}

/* ── the table of contents ─────────────────────────────────────────────────── */
nav.toc .resource-group{margin:0 0 6px;padding:0}
nav.toc .heading{position:relative}
nav.toc .heading a{display:block;padding:10px 26px 6px 10px;border-radius:6px;
font:600 11px/1 var(--mono);text-transform:uppercase;letter-spacing:.12em;color:var(--muted);
white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
nav.toc .heading a:hover{color:var(--ink)}
nav.toc .chevron{position:absolute;right:13px;top:9px;pointer-events:none}
.chev{display:inline-block;width:6px;height:6px;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:rotate(45deg)}
nav.toc ul{list-style:none;margin:0;padding:0}
nav.toc li{margin:0;max-width:none}
nav.toc li ul{margin:0 0 2px;padding-left:8px}
nav.toc li a{display:flex;align-items:flex-start;gap:7px;padding:5px 10px;border-radius:6px;
font:500 12.5px/1.3 var(--sans);color:var(--ink-dim)}
nav.toc li a .badge{margin-top:1px}
nav.toc li a:hover{background:var(--chip);color:var(--ink)}
nav.toc li li a{font-size:12px;color:var(--muted)}
nav.toc .collapse-content{padding:0}
nav.toc .center{margin:14px 10px 0;padding-top:12px;border-top:1px solid var(--line);
font:11.5px/1.4 var(--mono);color:var(--muted);word-break:break-all;text-align:left;max-width:none}

/* the method chip: mono, the explorer's read/write hues */
.badge,.method{display:inline-block;padding:2px 6px;border-radius:4px;border:1px solid var(--line2);
background:var(--chip);color:var(--muted);font:600 9.5px/1.3 var(--mono);letter-spacing:.06em;text-align:center}
.badge{flex:none;min-width:38px}
.badge.get,.method.get{color:var(--commit);border-color:color-mix(in srgb,var(--commit) 45%,transparent)}
.badge.post,.method.post{color:var(--live);border-color:color-mix(in srgb,var(--live) 45%,transparent)}
.badge.put,.method.put,.badge.patch,.method.patch{color:var(--indigo)}
.badge.delete,.method.delete{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 45%,transparent)}

/* ── the content column ────────────────────────────────────────────────────── */
h1{font:600 30px/1.15 var(--display);letter-spacing:-.02em;margin:0}
.content h2{font:600 16px/1.3 var(--display);letter-spacing:-.01em;margin:30px 0 8px}
.content h2.group-heading{font:600 11px/1 var(--mono);text-transform:uppercase;letter-spacing:.12em;
color:var(--muted);margin:56px 0 14px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.content h3.resource-heading{font:600 18px/1.25 var(--display);letter-spacing:-.01em;margin:30px 0 4px}
.resource>p{color:var(--ink-dim)}
.permalink{opacity:0;margin-left:2px;color:var(--muted);font-weight:400;transition:opacity .2s var(--ease)}
h2:hover .permalink,h3:hover .permalink,h2:focus-within .permalink,h3:focus-within .permalink{opacity:1}

.action{margin:16px 0 28px;padding:0 0 0 16px;border-left:2px solid var(--line)}
.action.get{border-left-color:color-mix(in srgb,var(--commit) 40%,transparent)}
.action.post{border-left-color:color-mix(in srgb,var(--live) 40%,transparent)}
h4.action-heading{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:0 0 8px;font:600 14px var(--sans)}
h4.action-heading .name{order:1;flex:1 1 100%;font:600 15px/1.3 var(--display);letter-spacing:-.01em}
h4.action-heading .method{order:2;padding:3px 8px;font-size:10.5px;letter-spacing:.08em}
h4.action-heading code.uri{order:3;font:500 13px var(--mono);background:none;border:0;padding:0;color:var(--ink);word-break:break-all}
.action h4:not(.action-heading),.action h5{font:600 10.5px/1 var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:16px 0 6px}

.definition{margin:6px 0 10px;padding:9px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);
background:var(--panel);font:12.5px/1.6 var(--mono);word-break:break-all}
.definition .method{margin-right:4px;vertical-align:1px}
.definition .hostname{color:var(--muted)}
.definition .uri .hljs-attribute{color:var(--live)}

.title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 6px;font-size:12.5px}
.title strong{font-weight:600}
.title code{font-size:11.5px}
.collapse-button{cursor:pointer;user-select:none;font:600 10px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.collapse-button:hover{color:var(--ink)}
.collapse-button .close{display:none}
.collapse-button.show .close{display:inline}
.collapse-button.show .open{display:none}
.collapse-content{max-height:0;overflow:hidden;transition:max-height .3s var(--ease)}
/* Without the script the page is fully open and the Show/Hide controls are gone. */
html:not(.js) .collapse-content{max-height:none!important}
html:not(.js) .collapse-button{display:none}
.preload *{transition:none!important}
.inner .description{margin:0 0 8px;color:var(--ink-dim)}
.inner .description.text-muted{color:var(--muted);font-size:12.5px}
.hair{height:1px}

dl.inner{display:grid;grid-template-columns:minmax(110px,max-content) minmax(0,1fr);gap:8px 18px;margin:0 0 10px;
padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel)}
dl.inner dt{font:600 12.5px/1.5 var(--mono);color:var(--ink);word-break:break-all}
dl.inner dd{margin:0;font-size:13px;min-width:0}
dl.inner dd>code{margin-right:2px}
dl.inner .required{color:var(--bad);font-size:12px}
dl.inner .default,dl.inner .example{color:var(--muted);font-size:12px}
dl.inner .default span,dl.inner .example span{font-family:var(--mono)}
dl.inner dd p{margin:4px 0 0;max-width:none}
dl.inner .choices{font-size:12.5px}

/* highlight.js, two hues: keys move (live), values are what was said (commit) */
.hljs-attr,.hljs-attribute,.hljs-keyword{color:var(--live)}
.hljs-string{color:var(--commit)}
.hljs-number,.hljs-literal{color:var(--ink)}
.hljs-comment,.hljs-meta{color:var(--muted)}

.content p a,.content li a,.content td a,.content dd a{color:var(--live);text-decoration:underline;
text-decoration-color:var(--line2);text-underline-offset:2px}
.content p a:hover,.content li a:hover,.content td a:hover{text-decoration-color:var(--live)}

.back-to-top{position:fixed;z-index:3;right:18px;bottom:0;padding:6px 10px;
font:600 10px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);
background:var(--panel);border:1px solid var(--line);border-bottom:0;border-radius:6px 6px 0 0}
.back-to-top:hover{color:var(--ink)}

/* ── the plane chip and the colour-mode switch: the explorer's, verbatim ──── */
.env{font:600 10.5px var(--mono);letter-spacing:.06em;padding:3px 9px;border-radius:6px;
border:1px solid var(--line2);color:var(--muted);white-space:nowrap}
.env b{color:var(--live);font-weight:600}
.mode{display:flex;border:1px solid var(--line2);border-radius:var(--radius-sm);overflow:hidden;background:var(--chip)}
.mode a{font:600 10px var(--mono);letter-spacing:.08em;text-transform:uppercase;
padding:6px 10px;color:var(--muted);border-inline-end:1px solid var(--line2);transition:color .2s var(--ease),background-color .2s var(--ease)}
.mode a:last-child{border-inline-end:0}
.mode a:hover{color:var(--ink);background:var(--line)}
.mode a[aria-current]{color:var(--live);background:var(--live-soft)}

/* ── narrow ────────────────────────────────────────────────────────────────── */
@media (max-width:900px){
  nav.toc{position:static;width:auto;border-right:0;border-bottom:1px solid var(--line);padding:12px 8px 16px;
  background:var(--panel);backdrop-filter:none;-webkit-backdrop-filter:none}
  .content{margin-left:0;padding:18px 16px 0;max-width:none}
  footer.page{margin-left:0;padding:16px 16px 40px;max-width:none}
  .action{padding-left:12px}
  table{display:block;overflow-x:auto;max-width:100%}
}
@media (prefers-reduced-motion:reduce){
  *,::before,::after{transition:none!important;animation:none!important}
  html{scroll-behavior:auto}
}


/* ── the hero ──────────────────────────────────────────────────────────────── */
.hero{margin:0 0 30px;padding:18px 22px 20px;border:1px solid var(--line);border-radius:var(--radius-lg);
background:var(--panel);box-shadow:var(--shadow)}
.hero-head{display:flex;align-items:center;flex-wrap:wrap;gap:10px 12px;padding-bottom:14px;
background:var(--grad-hairline) no-repeat left bottom/100% 1px}
.hero-mark{width:40px;height:40px;border-radius:9px;flex:none}
.hero-head h1{font-size:26px;margin-right:auto}
.hero-body{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px 28px;align-items:center;padding-top:16px}
.hero-lede{font-size:15px;line-height:1.5;color:var(--ink-dim);margin:0 0 16px;max-width:50ch}
.hero-meta{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 16px;margin:0;font-size:12.5px}
.hero-meta dt{font:600 10.5px/1.7 var(--mono);letter-spacing:.08em;color:var(--muted)}
.hero-meta dd{margin:0;min-width:0;font-family:var(--mono);color:var(--ink);overflow-wrap:anywhere}
.hero-meta dd a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--line2);text-underline-offset:2px}
.hero-meta dd a:hover{color:var(--live);text-decoration-color:var(--live)}
.hero-art{margin:0;justify-self:end}
.hero-art svg{display:block;width:300px;max-width:100%;height:auto}
.hero-art .track{stroke:var(--tick);stroke-width:1.5;stroke-dasharray:3 6}
.hero-art .tick{stroke:var(--tick);stroke-width:1.5}
.hero-art .arc{stroke-width:3;opacity:.9}
.hero-art .beam{stroke:var(--line2);stroke-width:1.5}
.hero-art .node .dot{fill:var(--panel);stroke:var(--line2);stroke-width:1.5}
.hero-art .node.lit .dot{stroke:var(--live);stroke-width:2}
.hero-art .node .code{fill:var(--ink);font:600 9.5px var(--mono);letter-spacing:.06em}
.hero-art .brace{fill:none;stroke:var(--ink);stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.hero-art .core-ring{fill:var(--ink)}
.hero-art .core-dot{fill:var(--electric)}
@media (max-width:760px){
  .hero{padding:16px}
  .hero-body{grid-template-columns:1fr}
  .hero-art{justify-self:center}
}
