.dev{--code:#07090b;--side:260px;position:relative}.dev .sr{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.dev-bar{display:none}.dev-shell{grid-template-columns:var(--side) minmax(0,1fr);max-width:1440px;margin:0 auto;display:grid}.dev-side{top:var(--nav);height:calc(100vh - var(--nav));border-right:1px solid var(--line);background:var(--bg);flex-direction:column;display:flex;position:sticky}.side-head{gap:8px;padding:18px 16px 10px;display:flex}.search{border:1px solid var(--line2);background:var(--surface);height:40px;color:var(--muted);border-radius:10px;flex:1;align-items:center;gap:8px;padding:0 10px;display:flex}.search:focus-within{border-color:var(--orange);box-shadow:0 0 0 3px var(--orange-soft)}.search .ico{width:16px;height:16px}.search input{min-width:0;height:100%;color:var(--text);font:14px var(--body);background:0 0;border:0;outline:none;flex:1;align-self:stretch}.search kbd{font:500 11px var(--mono);border:1px solid var(--line2);color:var(--dim);border-radius:5px;padding:1px 6px}.side-close{display:none}.side-nav{scrollbar-width:thin;flex:1;padding:4px 10px 20px;overflow-y:auto}.side-h{font:500 11px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);padding:16px 8px 6px}.side-nav ul{list-style:none}.side-nav li+li{margin-top:2px}.side-nav a{min-height:34px;color:var(--muted);border-left:2px solid #0000;border-radius:8px;align-items:center;gap:10px;padding:6px 8px;font-size:14px;display:flex}.side-nav a .ico{width:16px;height:16px;color:var(--dim)}.side-nav a:hover{color:var(--text);background:var(--surface)}.side-nav a[aria-current]{color:var(--text);background:var(--orange-soft);border-left-color:var(--orange)}.side-nav a[aria-current] .ico{color:var(--orange)}.mod-list a{padding-left:12px;font-size:13.5px}@media (pointer:coarse){.side-nav a{min-height:44px}.search{height:44px}}.side-empty{color:var(--muted);padding:10px 8px;font-size:14px}.side-cta{background:var(--orange-soft);height:44px;color:var(--orange);border:1px solid #ff6a1366;border-radius:10px;justify-content:space-between;align-items:center;margin:0 16px 16px;padding:0 14px;font-size:14px;font-weight:600;display:flex}.side-cta:hover{background:#ff6a1338}.dev-main{min-width:0;padding:0 0 80px}.dev-pad{padding:0 48px}.dev-head{border-bottom:1px solid var(--line);padding:56px 48px 36px;position:relative;overflow:hidden}.dev-head .grid-bg{opacity:.22}.dev-head>*{position:relative}.dev-head h1{margin:16px 0 12px;font-size:clamp(34px,4.4vw,54px)}.dev-head .lede{color:var(--muted);max-width:680px;font-size:18px}.dev-head .tags{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.dev h2.sec{margin:0 0 12px;font-size:clamp(24px,2.6vw,32px)}.dev p code,.dev li code,.dev td code{font:500 .86em var(--mono);background:var(--surface2);border:1px solid var(--line);color:#ffd2b0;word-break:break-word;border-radius:6px;padding:1px 6px}.dev .doc p{color:#cfd6dd;max-width:640px}.dev .doc p+p{margin-top:12px}.m{min-width:52px;font:600 11px var(--mono);letter-spacing:.06em;border:1px solid;border-radius:6px;justify-content:center;align-items:center;padding:3px 7px;display:inline-flex}.m-GET{color:var(--green);background:#2fd27a1a;border-color:#2fd27a59}.m-POST{color:var(--orange);background:var(--orange-soft);border-color:#ff6a1366}.m-PATCH{color:var(--yellow);background:#ffc21a1a;border-color:#ffc21a59}.m-DELETE{color:var(--red);background:#ff5a5f1a;border-color:#ff5a5f66}.ep-path{font:500 14px var(--mono);color:var(--text);word-break:break-all}.ep-path b{color:var(--orange);font-weight:500}.fields{border-top:1px solid var(--line);margin-top:14px;list-style:none}.fields li{border-bottom:1px solid var(--line);grid-template-columns:minmax(150px,220px) 1fr;gap:6px 18px;padding:14px 0;display:grid}.fields .fn{font:500 13.5px var(--mono);color:var(--text);word-break:break-word}.fields .ft{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.fields .fd{color:#c4ccd4;font-size:14.5px}.t{font:500 11px var(--mono);color:var(--blue);background:#4d9bff1a;border-radius:5px;padding:1px 6px}.t.req{color:var(--orange);background:var(--orange-soft)}.t.loc{color:var(--muted);background:var(--surface2)}@media (width<=640px){.fields li{grid-template-columns:1fr}}.codebox{background:var(--code);border:1px solid var(--line2);border-radius:12px;min-width:0;overflow:hidden}.codebox+.codebox{margin-top:14px}.cb-top{border-bottom:1px solid var(--line);background:#0c0f13;align-items:center;gap:4px;min-height:44px;padding:0 6px 0 12px;display:flex}.cb-title{font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--dim);white-space:nowrap;text-overflow:ellipsis;margin-right:auto;overflow:hidden}.cb-tab{height:44px;color:var(--muted);font:500 12px var(--mono);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:0 10px}.cb-tab[aria-selected=true]{color:var(--text);border-bottom-color:var(--orange)}.cb-copy{border:1px solid var(--line2);background:var(--surface);min-width:44px;height:32px;color:var(--muted);font:500 11px var(--mono);cursor:pointer;border-radius:7px;margin-left:4px;padding:0 10px}.cb-copy:hover{color:var(--text);border-color:var(--orange)}.cb-copy.ok{color:var(--green);border-color:var(--green)}.cb-lang{font:500 11px var(--mono);color:var(--muted);background:var(--surface2);text-transform:lowercase;border-radius:5px;margin-right:4px;padding:1px 6px}.cb-ln{border:1px solid var(--line2);min-width:32px;height:32px;color:var(--dim);font:500 12px var(--mono);cursor:pointer;background:0 0;border-radius:7px;padding:0 8px}.cb-ln:hover{color:var(--text)}.cb-ln[aria-pressed=true]{color:var(--orange);background:var(--orange-soft);border-color:#ff6a1373}.codebox button:focus-visible{outline:2px solid var(--orange);outline-offset:2px}.codebox pre.astro-code:focus-visible{outline:2px solid var(--orange);outline-offset:-2px}@media (width<=900px),(pointer:coarse){.cb-copy{height:44px}.cb-ln{min-width:44px;height:44px}}.dev-toast{z-index:70;max-width:calc(100vw - 32px);color:var(--green);font:500 12px var(--mono);overflow-wrap:anywhere;opacity:0;pointer-events:none;background:#0f1a14;border:1px solid #2fd27a66;border-radius:10px;padding:10px 14px;transition:opacity .2s,transform .2s;position:fixed;bottom:24px;left:50%;transform:translate(-50%,12px)}.dev-toast.on{opacity:1;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){.dev-toast{transition:none}}.dev p a:not([class]){text-underline-offset:3px;text-decoration:underline 1px}.codebox pre.astro-code{font:500 13px/1.65 var(--mono);scrollbar-width:thin;tab-size:2;max-height:520px;margin:0;padding:16px 18px;overflow:auto;background:var(--code)!important}.codebox[data-wrap] pre.astro-code{white-space:pre-wrap;word-break:break-word}.codebox pre.astro-code code{counter-reset:ln}.codebox[data-ln] pre.astro-code .line:before{counter-increment:ln;content:counter(ln);text-align:right;color:#3a4552;width:2.2em;margin-right:14px;display:inline-block}.ep{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;padding:48px;display:grid}.ep-code{top:calc(var(--nav) + 20px);align-self:start;position:sticky}@media (width<=1180px){.ep{grid-template-columns:minmax(0,1fr);gap:24px}.ep-code{position:static}}@media (width<=900px){.dev-shell{grid-template-columns:1fr}.dev-bar{top:var(--nav);z-index:30;-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line);background:#0a0c0feb;display:block;position:sticky}.dev-bar-in{justify-content:space-between;align-items:center;gap:10px;padding:8px 16px;display:flex}.dev-menu{border:1px solid var(--line2);background:var(--surface);height:44px;color:var(--text);font:600 14px var(--body);cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:0 14px;display:inline-flex}.dev-menu .ico{width:16px;height:16px;color:var(--orange)}.dev-side{z-index:60;width:min(340px,88vw);height:100%;transition:transform .3s cubic-bezier(.2,.8,.2,1);position:fixed;top:0;bottom:0;left:0;transform:translate(-102%);box-shadow:30px 0 60px -20px #000}.dev-side:not(.open){visibility:hidden;transition:transform .3s cubic-bezier(.2,.8,.2,1),visibility 0s .3s}.dev-side.open{transform:none}.side-close{border:1px solid var(--line2);background:var(--surface);width:44px;height:44px;color:var(--text);cursor:pointer;border-radius:10px;flex:none;justify-content:center;align-items:center;display:flex}.search{height:44px}.search kbd{display:none}.side-nav a{min-height:44px}.dev-scrim{z-index:55;background:#0009;position:fixed;inset:0}.dev-pad{padding:0 16px}.dev-head{padding:36px 16px 28px}.ep{padding:32px 16px}}
