@timqi/pier 0.2.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/agent/listing.js +14 -10
  2. package/dist/agent/pi.js +2 -2
  3. package/dist/agent/roles.js +5 -4
  4. package/dist/channels/conversations.js +4 -4
  5. package/dist/channels/lark-outbound.js +5 -0
  6. package/dist/channels/lark.js +25 -5
  7. package/dist/channels/runtime.js +47 -2
  8. package/dist/channels/slack-outbound.js +7 -0
  9. package/dist/channels/slack-thread.js +65 -0
  10. package/dist/channels/slack.js +27 -72
  11. package/dist/cli.js +7 -2
  12. package/dist/core/chain.js +27 -5
  13. package/dist/core/identity.js +2 -2
  14. package/dist/core/inbound-file.js +9 -3
  15. package/dist/core/reply.js +17 -3
  16. package/dist/core/search.js +65 -0
  17. package/dist/core/types.js +2 -0
  18. package/dist/db.js +8 -0
  19. package/dist/drain.js +1 -1
  20. package/dist/main.js +21 -5
  21. package/dist/settings.js +1 -1
  22. package/dist/socket.js +1 -0
  23. package/dist/tasks/agent.js +1 -1
  24. package/dist/tasks/callbacks.js +1 -1
  25. package/dist/tasks/execution.js +9 -3
  26. package/dist/tasks/open-items.js +53 -35
  27. package/dist/tasks/service.js +22 -1
  28. package/dist/tasks/store.js +5 -2
  29. package/dist/tasks/types.js +0 -2
  30. package/dist/tools.js +10 -3
  31. package/dist/web/public/assets/{code-BZwvPani.js → code-CWT27KH1.js} +1 -1
  32. package/dist/web/public/assets/code-CWT27KH1.js.br +0 -0
  33. package/dist/web/public/assets/code-CWT27KH1.js.gz +0 -0
  34. package/dist/web/public/assets/{explorer-DDoVzMLQ.js → explorer-BoU77faI.js} +4 -4
  35. package/dist/web/public/assets/explorer-BoU77faI.js.br +0 -0
  36. package/dist/web/public/assets/explorer-BoU77faI.js.gz +0 -0
  37. package/dist/web/public/assets/highlight-CDSk2hRJ.js +72 -0
  38. package/dist/web/public/assets/highlight-CDSk2hRJ.js.br +0 -0
  39. package/dist/web/public/assets/highlight-CDSk2hRJ.js.gz +0 -0
  40. package/dist/web/public/assets/index-DqLJpDE0.js +14 -0
  41. package/dist/web/public/assets/index-DqLJpDE0.js.br +0 -0
  42. package/dist/web/public/assets/index-DqLJpDE0.js.gz +0 -0
  43. package/dist/web/public/assets/index-JN0Ic8K5.css +2 -0
  44. package/dist/web/public/assets/index-JN0Ic8K5.css.br +0 -0
  45. package/dist/web/public/assets/index-JN0Ic8K5.css.gz +0 -0
  46. package/dist/web/public/assets/settings-BprIId_R.js +9 -0
  47. package/dist/web/public/assets/settings-BprIId_R.js.br +0 -0
  48. package/dist/web/public/assets/settings-BprIId_R.js.gz +0 -0
  49. package/dist/web/public/index.html +3 -4
  50. package/dist/web/public/index.html.br +0 -0
  51. package/dist/web/public/index.html.gz +0 -0
  52. package/dist/web/push.js +2 -2
  53. package/dist/web/server.js +2 -4
  54. package/dist/web/session-state.js +1 -2
  55. package/package.json +1 -1
  56. package/skills/pier-help/SKILL.md +6 -1
  57. package/skills/pier-search/SKILL.md +27 -0
  58. package/skills/pier-tasks/SKILL.md +17 -3
  59. package/dist/web/public/assets/code-BZwvPani.js.br +0 -0
  60. package/dist/web/public/assets/code-BZwvPani.js.gz +0 -0
  61. package/dist/web/public/assets/explorer-DDoVzMLQ.js.br +0 -0
  62. package/dist/web/public/assets/explorer-DDoVzMLQ.js.gz +0 -0
  63. package/dist/web/public/assets/highlight-5Bl8zZ8q.js +0 -72
  64. package/dist/web/public/assets/highlight-5Bl8zZ8q.js.br +0 -0
  65. package/dist/web/public/assets/highlight-5Bl8zZ8q.js.gz +0 -0
  66. package/dist/web/public/assets/index-BpFzCwlo.js +0 -7
  67. package/dist/web/public/assets/index-BpFzCwlo.js.br +0 -0
  68. package/dist/web/public/assets/index-BpFzCwlo.js.gz +0 -0
  69. package/dist/web/public/assets/index-wAGxFFPj.css +0 -2
  70. package/dist/web/public/assets/index-wAGxFFPj.css.br +0 -0
  71. package/dist/web/public/assets/index-wAGxFFPj.css.gz +0 -0
  72. package/dist/web/public/assets/report-zjE8Bt8S.js +0 -8
  73. package/dist/web/public/assets/report-zjE8Bt8S.js.br +0 -0
  74. package/dist/web/public/assets/report-zjE8Bt8S.js.gz +0 -0
  75. package/dist/web/public/assets/settings-Cv7rbeqf.js +0 -9
  76. package/dist/web/public/assets/settings-Cv7rbeqf.js.br +0 -0
  77. package/dist/web/public/assets/settings-Cv7rbeqf.js.gz +0 -0
@@ -0,0 +1,14 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/explorer-BoU77faI.js","assets/highlight-CDSk2hRJ.js","assets/code-CWT27KH1.js","assets/settings-BprIId_R.js"])))=>i.map(i=>d[i]);
2
+ import{$ as e,B as t,C as n,Ct as r,E as i,Et as a,G as o,H as s,J as c,K as l,Ot as u,P as d,Q as f,R as ee,S as p,St as m,T as te,Tt as ne,U as re,V as ie,W as h,X as ae,Y as oe,Z as se,b as ce,c as g,ct as le,d as ue,dt as de,et as fe,f as pe,ft as me,gt as he,h as ge,ht as _e,i as ve,it as ye,jt as be,kt as xe,l as Se,lt as Ce,mt as we,nt as Te,o as Ee,ot as _,pt as De,q as Oe,rt as ke,st as Ae,t as je,tt as v,u as Me,ut as Ne,vt as Pe,w as Fe,wt as y,x as Ie,xt as Le,yt as b}from"./highlight-CDSk2hRJ.js";import{t as Re}from"./hljs-BRz6a8Dq.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var ze=[[`path`,{d:`m12 19-7-7 7-7`}],[`path`,{d:`M19 12H5`}]],Be=[[`path`,{d:`M7 7h10v10`}],[`path`,{d:`M7 17 17 7`}]],Ve=[[`path`,{d:`M20 4v7a4 4 0 0 1-4 4H4`}],[`path`,{d:`m9 10-5 5 5 5`}]],He=[[`path`,{d:`M12 15V3`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`}],[`path`,{d:`m7 10 5 5 5-5`}]],Ue=[[`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`}],[`circle`,{cx:`12`,cy:`12`,r:`3`}]],We=[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`}]],Ge=[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`}]],Ke=[[`path`,{d:`M16 10a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 14.286V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z`}],[`path`,{d:`M20 9a2 2 0 0 1 2 2v10.286a.71.71 0 0 1-1.212.502l-2.202-2.202A2 2 0 0 0 17.172 19H10a2 2 0 0 1-2-2v-1`}]],qe=[[`path`,{d:`M5 12h14`}]],Je=[[`rect`,{width:`20`,height:`14`,x:`2`,y:`3`,rx:`2`}],[`line`,{x1:`8`,x2:`16`,y1:`21`,y2:`21`}],[`line`,{x1:`12`,x2:`12`,y1:`17`,y2:`21`}]],Ye=[[`path`,{d:`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`}]],Xe=[[`rect`,{x:`14`,y:`3`,width:`5`,height:`18`,rx:`1`}],[`rect`,{x:`5`,y:`3`,width:`5`,height:`18`,rx:`1`}]],Ze=[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`}],[`path`,{d:`m15 5 4 4`}]],Qe=[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`}],[`path`,{d:`M3 3v5h5`}],[`path`,{d:`M12 7v5l4 2`}]],$e=[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`}],[`circle`,{cx:`12`,cy:`12`,r:`3`}]],et=[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`}],[`line`,{x1:`9`,x2:`15`,y1:`15`,y2:`9`}]],tt=[[`circle`,{cx:`12`,cy:`12`,r:`4`}],[`path`,{d:`M12 2v2`}],[`path`,{d:`M12 20v2`}],[`path`,{d:`m4.93 4.93 1.41 1.41`}],[`path`,{d:`m17.66 17.66 1.41 1.41`}],[`path`,{d:`M2 12h2`}],[`path`,{d:`M20 12h2`}],[`path`,{d:`m6.34 17.66-1.41 1.41`}],[`path`,{d:`m19.07 4.93-1.41 1.41`}]],nt=String.raw`(?<when>(?:\d{4}-\d{2}-\d{2} )?\d{1,2}:\d{2})`,rt=String.raw`lang=(?<lang>[a-z]{2})`,it=new RegExp(String.raw`^\[(?:(?<name>[^\n[\]<>]*)<(?<id>[^\n[\]<>]+)>)? ?${nt}? ?(?<where>[a-z]+:[^\s[\]<>]+)? ?(?:${rt})?\]\n`),at=new RegExp(String.raw`^\[(?<name>[^\n[\]<>]*?) ${nt}(?: (?<where>[a-z]+))?(?: ${rt})?\]\n`);function ot(e){let t=it.exec(e),{id:n,when:r,where:i,lang:a}=t?.groups??{},o=n||r||i||a?t:at.exec(e);return o?.groups?{...o.groups.name?{name:o.groups.name}:{},...o.groups.id?{id:o.groups.id}:{},...o.groups.when?{when:o.groups.when}:{},...o.groups.where?{where:o.groups.where}:{},...o.groups.lang?{lang:o.groups.lang}:{},text:e.slice(o[0].length)}:{text:e}}var st=/(?:\n\[[^\]\n]*(?:\]\(\s*<?file:\/\/[^\n]*|$))+$/,ct=/^\s*`[^`\n]{40,}`\s+(\S[\s\S]*)$/;function lt(e){if(!e)return e;let{text:t}=ot(e);return t===e?e:t.replace(st,``).replace(ct,`$1`).replace(/\s+/g,` `).trim()||e}var ut=e=>[...new Set([...e].sort((e,t)=>t.createdAt-e.createdAt).map(e=>e.cwd))];function dt(e){let t=ut(e),n=new Set(t);return t.filter(e=>{let t=e.lastIndexOf(`/`),r=e.indexOf(`.`,t+2);return r<0||!n.has(e.slice(0,r))})}var ft=t(`#image-dialog`),x=t(`#image-stage`),pt=t(`#image-full`),mt=t(`#image-prev`),ht=t(`#image-next`),gt=t(`#image-close`),_t=[],vt=0;function yt(e){_t.length<2||(vt=(vt+e+_t.length)%_t.length,St(!1),pt.src=_t[vt])}var bt=2.5,xt=()=>x.dataset.zoom!==void 0;function St(e,t){if(!e){delete x.dataset.zoom,pt.style.cssText=``;return}let n=pt.getBoundingClientRect(),r=x.getBoundingClientRect(),i=t?(t.x-n.left)/n.width:.5,a=t?(t.y-n.top)/n.height:.5,o=n.width*bt,s=n.height*bt;x.dataset.zoom=``,pt.style.width=`${String(o)}px`,pt.style.height=`${String(s)}px`,x.scrollLeft=i*o-r.width/2,x.scrollTop=a*s-r.height/2}function Ct(e){let t=e.closest(`[data-gallery]`);_t=t?[...t.querySelectorAll(`img.thumb`)].map(e=>e.src):[e.src],vt=Math.max(0,_t.indexOf(e.src)),pt.src=e.src;let n=_t.length<2?`none`:`flex`;mt.style.display=n,ht.style.display=n,ft.showModal()}var wt=4,Tt,Et=!1;x.onpointerdown=e=>{Et=!1,!(!xt()||e.button!==0)&&(Tt={x:e.clientX,y:e.clientY,left:x.scrollLeft,top:x.scrollTop},x.setPointerCapture(e.pointerId))},x.onpointermove=e=>{if(!Tt)return;let t=e.clientX-Tt.x,n=e.clientY-Tt.y;(Math.abs(t)>wt||Math.abs(n)>wt)&&(Et=!0),x.scrollLeft=Tt.left-t,x.scrollTop=Tt.top-n};var Dt=()=>{Tt=void 0};x.onpointerup=Dt,x.onpointercancel=Dt,x.onclick=e=>{Et||(e.target===pt?St(!xt(),{x:e.clientX,y:e.clientY}):ft.close())},gt.onclick=()=>ft.close(),ft.onclose=()=>St(!1),mt.onclick=()=>yt(-1),ht.onclick=()=>yt(1),ft.onkeydown=e=>{(e.key===`ArrowLeft`||e.key===`ArrowRight`)&&(e.preventDefault(),yt(e.key===`ArrowLeft`?-1:1))};function Ot(e){let t=e.querySelector(`:scope > .thumbs`);if(t)return t;let n=c(`div`,`thumbs`);return e.append(n),n}function kt(e){let t=document.createElement(`img`);return t.src=e,t.loading=`lazy`,t.className=`thumb`,t.onclick=()=>Ct(t),t}var At=new Set([`png`,`jpg`,`jpeg`,`gif`,`webp`,`avif`,`bmp`]),jt=e=>e.split(`.`).pop()?.toLowerCase()??``,Mt=(e,t)=>`/api/sessions/${encodeURIComponent(e)}/files?path=${encodeURIComponent(t)}`,Nt=(e,t,n,r)=>void ve(()=>import(`./explorer-BoU77faI.js`).then(i=>i.openPath({id:e,cwd:t??``},n,r)),__vite__mapDeps([0,1,2]));function Pt(e,t){return m(e,/\]\(\s*<?file:\/\/(\/[^)>\s]*)>?\s*\)/g,e=>{let n=e[1];try{n=decodeURIComponent(n)}catch{}return`](${Mt(t,n)})`})}var Ft=e=>/^\/api\/sessions\/[^/]+\/files\?/.test(e);function It(e,t){let n=re(t)||`file`,r=Mt(e,t);return At.has(jt(n))?Xt(r,n):Zt(r,n)}function Lt(e){return new URLSearchParams(e.slice(e.indexOf(`?`)+1)).get(`path`)??``}var Rt=new Set(`ts.tsx.mts.cts.js.jsx.mjs.cjs.json.md.css.html.py.rs.go.rb.java.c.h.cpp.hpp.sh.sql.yml.yaml.toml.ini.conf.txt.lock`.split(`.`)),zt=/^(?:~|\/(?:home|Users|root|tmp|var|opt|etc|srv|mnt|media|data|usr))(?:\/|$)/;function Bt(e){let t=/^([^\s`"'()[\]{}<>]+?)(?::(\d+))?(?::\d+)?$/.exec(e);if(!t||e.includes(`://`))return null;let n=t[1],r=n.includes(`.`)?jt(n):``;return!zt.test(n)&&(!r||!Rt.has(r)&&!n.includes(`/`))?null:{path:n,line:t[2]===void 0?void 0:Number(t[2])}}var Vt;async function Ht(e,t){let n;if(e.startsWith(`~`)){Vt??=Ee().then(e=>e?.path??null);let r=await Vt;n=r===null?[]:[{path:`${r}${e.slice(1)}`,cwd:t[0]??null}]}else n=e.startsWith(`/`)?[{path:e,cwd:t[0]??null}]:t.map(t=>({path:`${t}/${e}`,cwd:t}));let r=await Promise.all(n.map(e=>Wt(e.path)));return n[r.indexOf(!0)]??null}var Ut=null;function Wt(e){return new Promise(t=>{Ut||(Ut=new Map,setTimeout(()=>void Kt(),0)),Ut.set(e,[...Ut.get(e)??[],t])})}var Gt=1e3;async function Kt(){let e=Ut;Ut=null;let t=[...e.keys()],n=Array.from({length:Math.ceil(t.length/Gt)},(e,n)=>t.slice(n*Gt,(n+1)*Gt)),r=await Promise.all(n.map(e=>ye(`/api/fs/exists`,{paths:e},`Could not check file references`))),i=r.find(e=>!e.ok);i&&!i.ok&&ve(()=>Promise.resolve().then(()=>ei).then(e=>e.report(i.error)),void 0),n.forEach((t,n)=>{let i=r[n];t.forEach((t,n)=>{for(let r of e.get(t)??[])r(i.ok&&i.value.exists[n]===!0)})})}function qt(e,t,n){for(let r of e){let e=Bt(r.textContent?.trim()??``);!e||r.closest(`a`)||Ht(e.path,n).then(n=>{n&&Yt(r,t,n.cwd,n.path,e.line)})}}function Jt(e){let t=e.textContent??``,n=[],r=[],i=0;for(let e of t.matchAll(/`([^`\n]+)`/g)){if(!Bt(e[1].trim()))continue;let a=e.index+1,o=c(`code`,``,e[1]);n.push(t.slice(i,a),o),r.push(o),i=a+e[1].length}return n.length&&e.replaceChildren(...n,t.slice(i)),r}function Yt(e,t,n,r,i){let a=()=>Nt(t,n,r,i);e.classList.add(`fileref`),e.tabIndex=0,e.setAttribute(`role`,`button`),e.title=i===void 0?r:`${r}:${String(i)}`,e.onclick=a,e.addEventListener(`pointerup`,()=>e.blur()),e.onkeydown=e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),a())}}function Xt(e,t){let n=kt(e);return n.alt=t,n}function Zt(e,t){let n=decodeURIComponent(/^\/api\/sessions\/([^/]+)\//.exec(e)?.[1]??``),r=jt(t),i=c(`span`,`inline-flex max-w-full items-center gap-2.5 rounded-lg border border-neutral-200 bg-neutral-50 px-2.5 py-1.5 no-underline`),a=c(`span`,`flex h-7 w-7 flex-none items-center justify-center rounded-md bg-indigo-50 text-[10px] font-semibold uppercase text-indigo-600`,r.slice(0,4)||`file`),o=c(`span`,`min-w-0 truncate text-[13px] font-medium text-neutral-800`,t),s=c(`span`,`ml-1 flex flex-none items-center gap-0.5`),l=c(`button`,`icon-btn h-6 w-6 text-[13px]`,y(Ue));l.setAttribute(`aria-label`,`Preview`),l.title=`Preview`,l.onclick=t=>{t.preventDefault(),Nt(n,null,Lt(e))},s.append(l);let u=document.createElement(`a`);return u.className=`icon-btn h-6 w-6 text-[13px] no-underline`,u.href=`${e}&download=1`,u.download=t,u.title=`Download`,u.append(y(He)),u.setAttribute(`aria-label`,`Download`),s.append(u),i.append(a,o,s),i}function Qt(e){let t=new Set;for(let n of e)n.parentElement&&t.add(n.parentElement);for(let n of t){let t=[...n.children].filter(t=>e.includes(t));if([...n.childNodes].every(e=>e.nodeType===Node.TEXT_NODE?!e.textContent?.trim():t.includes(e))){n.classList.add(`thumbs`);continue}let r=c(`div`,`thumbs`);r.append(...t),n.after(r)}}function $t(e){let t=[];for(let n of e.querySelectorAll(`img`)){let e=n.getAttribute(`src`)??``;if(!Ft(e))continue;let r=Xt(e,re(Lt(e)));n.replaceWith(r),t.push(r)}for(let n of e.querySelectorAll(`a`)){let e=n.getAttribute(`href`)??``;if(!Ft(e))continue;let r=re(Lt(e))||n.textContent?.trim()||`file`,i=At.has(jt(r))?Xt(e,r):Zt(e,r);n.replaceWith(i),t.push(i)}t.length&&Qt(t)}var en=null,tn=`max-w-full cursor-pointer break-words rounded-full border border-indigo-200 bg-indigo-50 px-2.5 py-0.5 text-left text-[12.5px] text-indigo-700 transition-colors hover:border-indigo-300 hover:bg-indigo-100`;function nn(){en=null}function rn(e,t,n){if(en?.remove(),en=null,!t.length)return;let r=c(`div`,`mt-1.5 flex flex-wrap gap-1.5`);for(let e of t){let t=c(`button`,tn,e);t.type=`button`,t.onclick=()=>{en===r&&(en=null),r.remove(),n(e)},r.append(t)}e.append(r),en=r}var an,S;function on(e,t){an=e,S=t}var sn=e=>e.slice(0,8),cn=e=>`system-card group relative mt-1.5 rounded-xl py-2.5 ${e}`,ln=e=>c(`div`,cn(e)),un=`fold-row`,dn=e=>c(`div`,`mt-1 whitespace-pre-wrap break-words text-[12.5px] leading-normal text-neutral-500`,e);function fn(e,t,n){let r=e.textContent??``,i=[],a=0;for(let e of r.matchAll(/\brun ([\w-]+)(…?)/g)){let[o,s=``,l]=e,u=Object.keys(t).find(e=>l?e.startsWith(s):e===s);if(!u)continue;let d=c(`button`,`text-indigo-600 hover:underline`,o);d.setAttribute(`type`,`button`),d.title=`Open run ${u}'s session`,d.onclick=()=>n(t[u]),i.push(r.slice(a,e.index),d),a=e.index+o.length}i.length&&e.replaceChildren(...i,r.slice(a))}function pn(e){let t=c(`div`,`flex ${e.expands?``:`flex-wrap`} items-center gap-x-2 gap-y-1 text-[11px] text-neutral-500`),n=e.expands?mn(t,e.expands,e.open??!1):t;if(n.append(e.glyph,c(`span`,`run-label flex-none font-semibold ${e.labelCls}`,e.label)),e.taskName&&n.append(c(`span`,e.expands?`min-w-0 truncate text-[12.5px] font-medium text-neutral-800`:`min-w-0 grow basis-0 truncate text-[12.5px] font-medium text-neutral-800 max-md:order-1 max-md:basis-full max-md:whitespace-normal max-md:line-clamp-2`,e.taskName)),e.failure){let t=c(`span`,`min-w-0 truncate text-[12.5px] ${e.labelCls}`,e.failure);t.title=e.failure,n.append(t)}n!==t&&t.append(n);let r=c(`div`,`run-meta ml-auto flex min-w-0 flex-wrap items-center gap-x-2 font-mono`);if(e.note&&r.append(c(`span`,`run-note flex-none`,e.note)),e.model){let t=c(`span`,`run-model flex-none rounded bg-black/[0.05] px-1.5 py-px font-medium text-neutral-700 dark:bg-neutral-200`,e.model.id);t.title=`${e.model.provider} / ${e.model.id}`,r.append(t)}if(e.thinking){let t=c(`span`,`run-thinking flex-none`,e.thinking);t.title=`Reasoning effort`,r.append(t)}if(e.runId){let t=c(`span`,`run-id flex-none`,sn(e.runId));t.title=`Run ${e.runId}`,r.append(t)}if(e.sessionId&&e.sessionId!==`console`){let t=e.sessionId,n=c(`button`,`run-session flex-none cursor-pointer text-indigo-600 hover:underline pointer-coarse:min-h-11`,sn(t));n.title=`Open session ${t}`,n.onclick=()=>an.select(t),r.append(n)}return t.append(r),t}function mn(e,t,n){let r=c(`button`,`flex min-w-0 grow cursor-pointer items-center gap-2 rounded-md text-left pointer-coarse:min-h-11`,h());return r.setAttribute(`type`,`button`),r.setAttribute(`aria-expanded`,String(n)),r.classList.toggle(`chev-open`,n),t.hidden=!n,r.onclick=()=>{let n=t.hidden===!0;t.hidden=!n,r.classList.toggle(`chev-open`,n),r.setAttribute(`aria-expanded`,String(n)),e.parentElement?.toggleAttribute(`data-expanded`,n)},r}var hn={queued:{edge:`border-l-amber-400`,label:`text-amber-700`,glyph:We},running:{edge:`border-l-neutral-400`,label:`text-neutral-600`,glyph:We},succeeded:{edge:`border-l-green-500`,label:`text-green-700`,glyph:be},failed:{edge:`border-l-red-500`,label:`text-red-600`,glyph:a},cancelled:{edge:`border-l-neutral-300`,label:`text-neutral-500`,glyph:qe},interrupted:{edge:`border-l-amber-400`,label:`text-amber-700`,glyph:Xe},skipped:{edge:`border-l-neutral-300`,label:`text-neutral-500`,glyph:qe}},gn=e=>y(hn[e].glyph,`h-3 w-3 ${e===`queued`||e===`running`?`spinner`:``} ${hn[e].label}`),_n=new Map,vn=new WeakMap;function yn(e){for(let[e,t]of _n)t.isConnected||_n.delete(e);let t=_n.get(e.runId);t||(t=ln(hn[e.state].edge),t.dataset.kind=`background-run`,S.el.append(t),_n.set(e.runId,t));let n=t.hasAttribute(`data-expanded`);t.className=`${cn(hn[e.state].edge)} ${un} system-row`;let r=e.state===`queued`||e.state===`running`;t.toggleAttribute(`data-active`,r);let i=Math.max(0,Math.round(((e.finishedAt??Date.now())-(e.startedAt??e.queuedAt))/1e3)),a=vn.get(t);!a&&e.prompt!==null&&(a=dn(e.prompt),vn.set(t,a));let o=pn({glyph:gn(e.state),label:`run · ${e.state}`,labelCls:hn[e.state].label,taskName:e.taskName,note:`${e.sessionMode??`task`} · ${String(i)}s${e.queuedMessages>0?` · ${String(e.queuedMessages)} queued`:``}`,runId:e.runId,sessionId:e.targetSessionId,...a?{expands:a,open:n}:{}});t.replaceChildren(o,...a?[a]:[]),S.scroll()}var C=null,w=null,bn=null,xn=!1;function Sn(){if(!w)return;w.text=w.text.slice(-4e3),w.pre.textContent=w.text;let e=(w.text.split(`
3
+ `).filter(Boolean).pop()??``).replace(/^[\s*_#]+|[\s*_]+$/g,``)||`thinking…`,t=w.summary.lastElementChild;t.textContent=e.length>90?`…`+e.slice(-90):e}function Cn(){if(bn){xn=!0;return}xn=!1,Sn(),bn=setTimeout(()=>{bn=null,xn&&Cn()},80)}function wn(){bn&&clearTimeout(bn),bn=null,xn&&Sn(),xn=!1}var Tn=new WeakMap,En=e=>{let t=Tn.get(e)??[];return Tn.set(e,t),t};function Dn(){C&&!C.toolRows.size&&Vn(`done`)}var On=null;function kn(){C=null,On=null,w=null,wn(),_n.clear()}function An(){let e=On;return!e||C?.el===e||(On=null,e!==S.el.lastElementChild)?null:(e.remove(),e.dataset.adopted=`1`,Mn(e,e.dataset.status),e)}var jn={running:`text-neutral-500 open:bg-black/[0.02] dark:open:bg-neutral-100`,done:`text-neutral-400 hover:text-neutral-600 open:bg-black/[0.02] open:text-neutral-500 dark:open:bg-neutral-100`,failed:`text-red-600 open:bg-red-50`,interrupted:`text-amber-700 open:bg-amber-50`};function Mn(e,t){e.dataset.status=t,e.className=`${un} py-1 rounded-xl text-[11.5px] leading-normal open:ring-1 open:ring-inset open:ring-neutral-200 open:py-2 ${jn[t]}`}var Nn={failed:a,interrupted:Xe};function Pn(e){return e===`running`?y(We,`spinner`):e===`done`?c(`span`,`hidden`):y(Nn[e],`h-3 w-3`)}function Fn(e){if(C)return C;let t=Pn(`running`),n=c(`span`,`min-w-0 truncate`,`working…`),{el:r}=Oe(``,[t,n]);r.dataset.kind=`activity`,Mn(r,`running`);let i=c(`div`,`mt-1.5 flex max-h-64 flex-col gap-1 overflow-y-auto overscroll-contain border-t border-black/5 pt-1.5 dark:border-neutral-200`);return r.append(i),Rn(r,i),S.el.append(r),On=r,S.scroll(),C={el:r,statusIcon:t,headline:n,rowsEl:i,toolRows:new Map,thinking:null,steps:0,failedSteps:0,startTs:e,sawError:!1},C}function In(e,t=``){let n=Fn(e);wn(),n.thinking=null,n.steps+=1;let r=c(`div`,`whitespace-pre-wrap break-words text-[12.5px] text-neutral-600`,t);r.dataset.raw=t;let i=c(`div`,`border-l-2 border-neutral-200 py-0.5 pl-5`,r);return i.dataset.kind=`progress`,n.rowsEl.append(i),Bn(n,`running`,`writing…`),zn(n),S.scroll(),r}function Ln(e){let t=e.closest(`details[data-kind="activity"]`);e.parentElement?.remove(),t&&!t.lastElementChild?.childElementCount&&(C?.el===t&&(C=null),On===t&&(On=null),t.remove())}function Rn(e,t){t.dataset.follow=`1`,t.addEventListener(`scroll`,()=>{let e=t.scrollHeight-t.scrollTop-t.clientHeight<24;t.dataset.follow=e?`1`:``}),e.addEventListener(`toggle`,()=>{e.open&&(t.scrollTop=t.scrollHeight,t.dataset.follow=`1`)})}function zn(e){S.bulk()||!e.el.open||!e.rowsEl.dataset.follow||(e.rowsEl.scrollTop=e.rowsEl.scrollHeight)}function Bn(e,t,n){let r=Math.max(1,Math.round((Date.now()-e.startTs)/1e3)),i=[t===`running`?`working`:t===`done`?`Completed`:t,e.steps?`${e.steps} step${e.steps===1?``:`s`}`:``,`${r}s`,t===`running`?n:``];e.headline.textContent=i.filter(Boolean).join(` · `),Mn(e.el,t);let a=Pn(t);e.statusIcon.replaceWith(a),e.statusIcon=a}function Vn(e){if(!C)return;wn();for(let e of C.toolRows.values())e.el.dataset.state===`running`&&Gn(e,`interrupted`);let t=En(C.el).length,n=t>0&&C.failedSteps===t;Bn(C,(C.sawError||n)&&e===`done`?`failed`:e===`done`&&C.toolRows.size?`interrupted`:e),C=null}function Hn(){C&&(C.sawError=!0)}function Un(e){let t=e.slice(0,400).replace(/\s+/g,` `);return t.length>100?t.slice(0,100)+`…`:t}function Wn(e,t,n,r){let i=Fn(e);i.steps+=1,wn(),i.thinking=null;let a=JSON.stringify(r,null,2)??``,o=c(`span`,`ml-auto flex flex-none`),s=c(`span`,`min-w-0 truncate text-neutral-500`,Un(a)),{el:l}=Oe(`rounded-md px-1 py-0.5 font-mono text-[12.5px] hover:bg-black/[0.03] dark:hover:bg-neutral-100`,[c(`span`,`flex-none font-semibold`,n),s,o]),u=c(`pre`,`max-h-40 overflow-y-auto whitespace-pre-wrap break-words rounded bg-black/[0.04] p-1.5 text-[12px] dark:bg-neutral-100`,a),d=c(`pre`,`hidden max-h-56 overflow-y-auto whitespace-pre-wrap break-words rounded bg-black/[0.04] p-1.5 text-[12px] dark:bg-neutral-100`);l.append(c(`div`,`mt-1 flex flex-col gap-1 pl-4`,u,d)),En(i.el).push({tool:n,call:t,preview:s,argsPre:u,outputPre:d});let f={el:l,statusEl:o,outputPre:d};Gn(f,`running`),i.toolRows.set(t,f),i.rowsEl.append(l),zn(i),Bn(i,`running`,n),S.scroll()}function Gn(e,t){e.el.dataset.state=t,e.statusEl.replaceChildren(gn(t)),e.statusEl.title=t;let n=e.el.firstElementChild;for(let e of[`rounded`,`bg-red-50`,`text-red-700`])n.classList.toggle(e,t===`failed`)}function Kn(e,t,n){let r=C;if(!r)return;let i=r.toolRows.get(e);r.toolRows.delete(e),i&&(Gn(i,t?`failed`:`succeeded`),n&&(i.outputPre.textContent=n.length>8e3?n.slice(0,he)+`…`:n,i.outputPre.classList.remove(`hidden`)),t&&(r.failedSteps+=1)),Bn(r,`running`)}function qn(e,t){let n=Fn(e);if(!n.thinking){wn();let{el:e,summary:t}=Oe(`rounded-md px-1 py-0.5 text-[12.5px] italic text-neutral-500 hover:bg-black/[0.03] dark:hover:bg-neutral-100`,[c(`span`,`min-w-0 truncate`,`thinking…`)]),r=c(`div`,`mt-1 max-h-56 overflow-y-auto whitespace-pre-wrap break-words pl-4 not-italic text-neutral-500`,``);e.append(r),n.rowsEl.append(e),n.steps+=1,n.thinking={pre:r,summary:t,text:``},w=n.thinking,zn(n),Bn(n,`running`,`thinking…`)}n.thinking.text+=t,Cn()}var Jn=0;function Yn(e,t=0,n=!1,r){let i=Date.now()-t,a=Fn(i).el;for(let t of e){if(t.kind===`progress`){In(i,t.text??``);continue}if(t.kind===`thinking`){qn(i,t.text??``);continue}let e=t.id??`replay-${++Jn}`;Wn(i,e,t.toolName??``,t.args),t.done&&Kn(e,t.isError??!1,t.output??``)}r!==void 0&&e.some(e=>e.kind===`tool`&&e.args===void 0)&&Xn(a,r),!n&&Vn(e.some(e=>e.kind===`tool`&&!e.done)?`interrupted`:`done`)}function Xn(e,t){let n=()=>{e.open&&(e.removeEventListener(`toggle`,n),Zn(e,t))};e.addEventListener(`toggle`,n)}async function Zn(e,t){let n=an.sessionId(),r=En(e),i=new Set(r.filter(e=>!e.argsPre.textContent)),a=e=>{for(let t of i)t.argsPre.textContent=e};if(a(`loading…`),!n)return a(`no session`);let o=await Te(`/api/sessions/${n}/turns/${t}/steps`,`could not load these steps`);if(!o.ok)return a(o.error);let s=o.value.steps.filter(e=>e.kind===`tool`);for(let[e,t]of r.entries()){if(!i.has(t))continue;let n=s[e];if(!(n&&(n.id?n.id===t.call:n.toolName===t.tool))){t.argsPre.textContent=`detail no longer available — reload the session`;continue}let r=JSON.stringify(n.args,null,2)??``;t.argsPre.textContent=r,t.preview.textContent=Un(r),n.output&&(t.outputPre.textContent=n.output,t.outputPre.classList.remove(`hidden`))}}var T,E=t(`#turns`);function Qn(e){T=e,on(e,{el:E,scroll:O,bulk:()=>D})}var D=!1,$n=()=>E.scrollHeight-E.scrollTop-E.clientHeight<80,er=!0,tr=0;E.addEventListener(`scroll`,()=>{let e=E.scrollTop,t=e<tr-4;tr=e,!D&&(t||$n())&&(er=$n())},{passive:!0});var nr=0;function rr(){!er||D||nr||(nr=requestAnimationFrame(()=>{nr=0,er&&!D&&(E.scrollTop=E.scrollHeight)}))}new ResizeObserver(rr).observe(E),E.addEventListener(`load`,rr,!0),new MutationObserver(rr).observe(E,{childList:!0,subtree:!0,characterData:!0});function ir(){$n()&&(er=!0)}function O(e=!1){D||(e&&(er=!0),er&&(E.scrollTop=E.scrollHeight))}var ar=1200;function or(e,t){let n=E.querySelector(`[data-kind="${e}"][data-at="${t}"]`);return n?(sr(n),!0):!1}function sr(e){er=!1,e.scrollIntoView({block:e.offsetHeight>E.clientHeight?`start`:`center`}),e.dataset.reveal=``,setTimeout(()=>delete e.dataset.reveal,ar)}var cr=500,lr=0,ur=0,dr=[],k=null,fr=!1;function pr(){if(!E.querySelector(`[data-readonly]`)){for(;E.childElementCount>cr;){let e=E.firstElementChild;e.remove(),e!==k&&(e.dataset.kind===`user`&&lr++,ur++)}ur&&(k||(k=c(`div`,`px-5 py-2 text-center text-[11.5px] italic text-neutral-400`),k.dataset.kind=`trim`),k.textContent=`${ur} earlier row${ur===1?``:`s`} not shown — still in the transcript, not on this screen`,E.firstElementChild!==k&&E.prepend(k))}}var mr={user:{row:``,body:`text-inherit`},assistant:{row:``,body:`text-neutral-900`},error:{row:`border-l-red-400 bg-red-50`,body:`text-red-700`},system:{row:`system-card border-l-cyan-500`,body:`text-neutral-500`}};function A(e,t,n=!1,i){Dn();let a=e===`assistant`?An():null,o=mr[e],s=e===`user`&&i!==void 0&&Ar(i)?i:void 0,l=s===void 0&&E.lastElementChild?.dataset.kind===e,u=c(`div`,`group relative ${o.row}`);u.dataset.kind=e,fr&&(u.dataset.readonly=``),l&&(u.dataset.grouped=``),D||(u.dataset.enter=``);let d=e===`user`?r(t):null,ee=d?.text??t,p=e===`user`?ot(ee):null,m=p?.id||p?.when||p?.where||p?.lang?p:null,te=m&&(m.id?m.id!==`web`:m.name)?m:null,ne=c(`div`,`whitespace-pre-wrap break-words ${o.body}`,m?.text??ee);(d?.paths.length||m)&&(ne.dataset.raw=t),n&&Nr(ne,t),i!==void 0&&jr(u,i),te&&u.append(hr(te)),u.append(ne);let re=T.sessionId();if(d?.paths.length&&re){let e=Ot(u);for(let t of d.paths)e.append(It(re,t))}if(e===`user`&&!fr){yr?.();let e=c(`button`,`message-edit absolute right-full top-1 flex h-8 w-8 items-center justify-center rounded-full`);e.title=`Edit message — resends it and drops everything after it`,e.setAttribute(`type`,`button`),e.setAttribute(`aria-label`,`Edit message`),e.append(y(Ze)),e.onclick=()=>Sr(u,ne),u.append(e)}if(s!==void 0){let e=c(`div`,`my-3 text-center text-[11px] text-neutral-400`);e.dataset.kind=`time`,e.dataset.at=String(s),Dr(e),Er??=setInterval(Or,6e4),e.title=f(s),E.append(e)}return a&&E.append(a),E.append(u),pr(),O(),ne}function hr(e){let t=c(`div`,`mb-1 flex flex-wrap items-baseline gap-x-2 gap-y-1 text-[11.5px] leading-tight opacity-85`),n=e?.name??e?.id;if(n){let r=c(`span`,`font-semibold text-inherit`,n);e?.id&&(r.title=e.id),t.append(r)}let r=T.sessionChannel();return r&&r!==`web`&&t.append(c(`span`,`text-[10px] uppercase tracking-wide opacity-60`,r)),t}var gr={"task-delegation":[Be,`delegation`,`text-cyan-700`],"task-callback":[Ve,`callback`,`text-cyan-700`],"session-seed":[Qe,`session seed`,`text-cyan-700`],"chat-command":[et,`command`,`text-cyan-700`]};function _r(e){let t=e.indexOf(`
4
+
5
+ `);if(t<0)return[null,e];let n=e.slice(0,t);return n.length>600||n.split(`
6
+ `).length>6?[null,e]:[n,e.slice(t+2)]}function vr(e,t){let n=t.kind===`task-message`?t.messageKind:t.kind,[r,i,a]=gr[n]??[Ve,n.replace(`_`,` `),`text-cyan-700`];Dn();let o=t.kind===`task-callback`?t.state:void 0,s=ln(o?hn[o].edge:`border-l-cyan-500`);s.classList.add(un),s.dataset.kind=`system`;let[c,l]=_r(e),u=dn(l);t.kind!==`chat-command`&&s.classList.add(`system-row`);let d=t.kind===`session-seed`?pn({glyph:y(r,`h-3 w-3 ${a}`),label:i,labelCls:a,taskName:t.reason,sessionId:t.previousSessionId,expands:u}):t.kind===`chat-command`?pn({glyph:y(r,`h-3 w-3 ${a}`),label:`/${t.command}`,labelCls:a}):pn({glyph:o?gn(o):y(r,`h-3 w-3 ${a}`),label:o?`${i} \u00b7 ${o}`:i,labelCls:o?hn[o].label:a,...t.source?{taskName:t.source.taskName,model:t.source.model,thinking:t.source.thinking}:c?{taskName:c.split(`
7
+ `)[0]}:{},...o===`failed`||o===`interrupted`?{failure:l.split(`
8
+ `).find(e=>e.trim())?.trim()??o}:{},runId:t.runId,sessionId:t.sourceSessionId,expands:u});if(t.kind===`chat-command`&&t.sessions&&fn(u,t.sessions,T.select),t.kind===`task-callback`){let e=Jt(u),n=t.sourceSessionId??T.sessionId();n&&qt(e,n,t.cwd?[t.cwd]:[]),t.cwd&&(dr=[t.cwd,...dr.filter(e=>e!==t.cwd)])}s.append(d,u),E.append(s),pr(),O()}var yr=null,br=e=>e.isConnected&&e.dataset.kind===`user`;function xr(e){let t=0;for(let n=e.nextElementSibling;n;n=n.nextElementSibling){let e=n.dataset.kind;(e===`user`||e===`assistant`||e===`system`)&&t++}return t}function Sr(e,t){if(!br(e)||e.querySelector(`textarea`))return;if(yr?.(),T.sessionState()!==`idle`){A(`error`,`can't edit while streaming — stop the turn first`);return}let n=document.createElement(`textarea`);n.value=t.dataset.raw??t.textContent??``,n.className=`block w-full resize-none rounded-xl border border-indigo-300 bg-white px-3 py-2 text-neutral-900 focus:outline-none`,n.setAttribute(`aria-label`,`Edit message`);let r=p(`Send edit`,!0),i=p(`Cancel`),a=xr(e),o=c(`div`,`mt-2 flex flex-wrap items-center justify-end gap-2`);a&&o.append(c(`div`,`mr-auto text-[11.5px] text-neutral-500`,`sending drops the ${a} message${a===1?``:`s`} after this one`)),o.append(i,r);let s=c(`div`,`message-editor`,n,o),l=()=>{n.style.height=`auto`,n.style.height=`${Math.min(n.scrollHeight,192)}px`,r.disabled=!n.value.trim()};n.oninput=l,e.dataset.editing=``,t.classList.add(`hidden`),t.after(s),l(),n.focus(),n.setSelectionRange(n.value.length,n.value.length);let u=()=>{s.remove(),t.classList.remove(`hidden`),delete e.dataset.editing,yr=null};yr=u,i.onclick=()=>{u(),e.querySelector(`.message-edit`)?.focus({preventScroll:!0})},r.onclick=()=>{let t=n.value.trim();t&&Cr(e,t)},s.onkeydown=e=>{e.isComposing||e.keyCode===229||(e.key===`Escape`&&(e.preventDefault(),e.stopPropagation(),i.click()),e.key===`Enter`&&!e.shiftKey&&e.target===n&&(e.preventDefault(),r.click()))}}async function Cr(e,t){let n=T.sessionId();if(!n||!br(e))return;if(T.sessionState()!==`idle`){A(`error`,`can't edit while streaming — stop the turn first`);return}yr?.();let r=[...E.querySelectorAll(`[data-kind="user"]:not([data-readonly])`)],i=r.indexOf(e),a=lr+i,o=r[i-1]?.dataset.at;Tr=o===void 0?null:Number(o);let s=e.previousElementSibling;for(s?.dataset.kind===`time`&&s.remove();e.nextElementSibling;)e.nextElementSibling.remove();e.remove(),T.ownTurn(t),A(`user`,t,!1,Date.now()),O(!0);let c=await _(`/api/sessions/${n}/turns/${a}/edit`,{text:t});if(!c.ok){let e=await v(c,`edit failed`);await T.reload(n),A(`error`,e)}}var wr=6e5,Tr=null,Er;function Dr(e){let t=Number(e.dataset.at);e.textContent=`${f(t).slice(0,16)} · ${s(t)}`}function Or(){let e=E.querySelectorAll(`[data-kind="time"]`);for(let t of e)Dr(t);e.length||(clearInterval(Er),Er=void 0)}var kr=(e,t)=>new Date(e).toDateString()===new Date(t).toDateString();function Ar(e){let t=Tr;return Tr=e,t===null||e-t>=wr||!kr(t,e)}function jr(e,t){e.dataset.at=String(t),e.dataset.time=f(t).slice(11)}function Mr(e){let t=T.sessionId();return ae(t?Pt(e,t):e)}function Nr(e,t){e.replaceChildren(...Mr(t).childNodes),e.classList.remove(`whitespace-pre-wrap`),e.classList.add(`md`),je(e),ie(e);let n=[...e.querySelectorAll(`code`)].filter(e=>!e.closest(`pre`));for(let e of n)oe(e,()=>e.textContent??``);$t(e);let r=T.sessionId(),i=T.sessionCwd();r&&qt(n,r,[...i?[i]:[],...dr.filter(e=>e!==i)])}function Pr(e,t,n,r=!1){let{text:i,suggestions:a}=de(t);return le({text:i,suggestions:a})?Fr(e,Ne(t)):Nr(e,i),r&&rn(e.parentElement??e,a,e=>T.send(`auto`,e)),n&&jr(e.parentElement??e,n.completedAt),e}function Fr(e,t){e.classList.remove(`md`,`whitespace-pre-wrap`),e.replaceChildren(c(`span`,`text-[12.5px] italic text-neutral-400`,t?`Stayed silent — ${t}`:`Stayed silent.`))}var Ir=(e,t,n=!1)=>Pr(A(`assistant`,``),e,t,n),j=null,Lr=null,Rr=!1,zr=0,Br=0;function Vr(e){let t=e.dataset.raw??``;for(;e.childNodes.length>Br;)e.lastChild.remove();let n=me(t,zr);n>zr&&(e.append(...Mr(De(t.slice(zr,n))).childNodes),zr=n,Br=e.childNodes.length),e.append(...Mr(de(t.slice(zr)).text).childNodes),e.classList.remove(`whitespace-pre-wrap`),e.classList.add(`md`)}function Hr(){if(Lr){Rr=!0;return}Rr=!1,j&&(Vr(j),O()),Lr=setTimeout(()=>{Lr=null,Rr&&Hr()},80)}function Ur(){Lr&&clearTimeout(Lr),Lr=null,Rr=!1}function Wr(e){j||(j=In(Date.now()),zr=0,Br=0),j.dataset.raw=(j.dataset.raw??``)+e,Hr()}function Gr(){if(!j)return;let e=j;j=null,Ur(),e.classList.remove(`md`),e.classList.add(`whitespace-pre-wrap`),e.textContent=e.dataset.raw??``}function Kr(){if(!j)return;let e=j.dataset.raw;return Ln(j),j=null,Ur(),e}function qr(e,t){e===``&&Gr();let n=Kr();Vn(`done`);let r=e??n;r&&Ir(r,t,!0)}function Jr(){let e=Kr();Vn(`interrupted`),e&&Ir(e)}function Yr(){yr?.(),clearInterval(Er),Er=void 0,E.replaceChildren(),lr=0,ur=0,dr=[],k=null,Tr=null,j=null,Ur(),kn(),nn()}function Xr(e){if(!e){E.querySelector(`[data-kind="loading"]`)?.remove();return}let t=c(`div`,`flex flex-col gap-3 px-5 py-4`);t.dataset.kind=`loading`;for(let e of[`w-2/5`,`w-4/5`,`w-3/5`,`w-1/3`,`w-2/3`])t.append(c(`div`,`skeleton h-3.5 ${e}`));E.append(t)}function Zr(e,t){let n=c(`div`,`my-4 text-center text-[11px] text-neutral-400`,`${e} · ${f(t).slice(0,16)}`);n.dataset.kind=`divider`,n.title=f(t),E.append(n),Tr=null}function Qr(e){let t=p(`Earlier session`);t.id=`chain-pager`,t.onclick=e;let n=c(`div`,`my-3 flex justify-center`,t);return n.dataset.kind=`pager`,E.append(n),t}function $r(e,t,n,r=!1){Xr(!1);let i=new Map(n.map(e=>[e.runId,e])),a=e=>[...i].filter(([,t])=>t.queuedAt<=e).map(([e])=>e),o=e=>{for(let t of e){let e=i.get(t);e&&(yn(e),i.delete(t))}},s=r?-1:e.reduce((e,t,n)=>t.role===`assistant`&&t.text&&!t.error?n:e,-1);D=!0,fr=r;try{for(let[n,r]of e.entries()){let i=t===`streaming`&&n===e.length-1&&r.role===`assistant`,c=r.steps;if(c?.length&&(Yn(c,r.meta?.durationMs,i,n),r.meta&&o(a(r.meta.completedAt))),r.role===`system`&&r.origin&&r.text){r.origin.kind!==`session-seed`&&r.origin.kind!==`chat-command`&&o(r.origin.kind===`task-message`?[r.origin.runId]:r.origin.runIds??[r.origin.runId]),vr(r.text,r.origin);continue}r.text&&(i?Wr(r.text):r.role===`assistant`?Ir(r.text,r.meta,t===`idle`&&n===s):A(r.role,r.text,!1,r.at)),r.error&&A(`error`,r.error)}for(let e of i.values())yn(e)}finally{D=!1,fr=!1}O(!0)}var ei=Re({initReport:()=>ci,report:()=>si}),ti=window.fetch.bind(window),ni=20,ri=6e4,ii=[],ai=new Map,oi=e=>e instanceof Error?e.stack??`${e.name}: ${e.message}`:void 0;function si(e,t){let n=t===void 0?e:`${e}: ${String(t)}`,r=Date.now();return r-(ai.get(n)??-6e4)<ri||(ai.size>100&&ai.clear(),ai.set(n,r),ii=ii.filter(e=>r-e<6e4),ii.length>=ni)?null:(ii.push(r),ti(`/api/client-log`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({message:n,stack:oi(t),view:location.hash||`/`}),keepalive:!0}).catch(()=>{}),A(`error`,n))}function ci(){window.__pierReporting=!0,window.addEventListener(`error`,e=>{!e.error&&e.message.includes(`ResizeObserver loop`)||si(`script error: ${e.message}`,e.error)}),window.addEventListener(`unhandledrejection`,e=>{si(`unhandled rejection`,e.reason)})}var li=window.fetch.bind(window),ui=()=>{location.assign(`/login?next=${encodeURIComponent(location.pathname+location.hash)}`)};function di(){window.fetch=async(...e)=>{let t=await li(...e);return t.status===401&&ui(),t}}function fi(e,t){if(e.readyState!==EventSource.CLOSED)return;let n=()=>{let e=si(`${t} stream disconnected`);if(!e)return;let n=p(`Reload`);n.classList.add(`ml-2`,`align-middle`),n.onclick=()=>location.reload(),e.append(` `,n)};li(`/api/sessions`).then(e=>e.status===401?ui():n(),n)}var pi=/Mac|iP(?:hone|ad|od)/.test(navigator.userAgent),mi=pi?`⌘`:`Ctrl+`,hi=pi?`⇧`:`Shift+`,gi=e=>e.startsWith(`shift+`)?{key:e.slice(6),shift:!0}:{key:e,shift:!1};function _i(e){let{key:t,shift:n}=gi(e);return`${mi}${n?hi:``}${t.toUpperCase()}`}var vi=e=>[...document.querySelectorAll(`dialog[open]`)].some(t=>!t.contains(e??null)),yi=`pointer-events-none fixed z-50 flex items-center gap-2 whitespace-nowrap rounded-md bg-neutral-800 px-2 py-1 text-[11.5px] text-neutral-100 shadow-lg`;function bi(e,t,n){e.removeAttribute(`title`);let r=null,i=()=>{r?.remove(),r=null,document.removeEventListener(`keydown`,i,!0)};e.addEventListener(`pointerenter`,a=>{if(a.pointerType!==`mouse`)return;i(),r=c(`div`,yi,t,c(`kbd`,`rounded bg-white/15 px-1 py-px font-sans text-[10.5px]`,n)),(e.closest(`dialog[open]`)??document.body).append(r);let o=e.getBoundingClientRect(),s=o.bottom+6,l=s+r.offsetHeight+8<=window.innerHeight;r.style.top=`${l?s:Math.max(8,o.top-r.offsetHeight-6)}px`,r.style.left=`${Math.max(8,Math.min(o.left,window.innerWidth-r.offsetWidth-8))}px`,document.addEventListener(`keydown`,i,!0)}),e.addEventListener(`pointerleave`,i),e.addEventListener(`pointerdown`,i)}function xi(e,t,n,r){bi(e,t,`Esc`),document.addEventListener(`keydown`,e=>{e.key!==`Escape`||e.isComposing||e.defaultPrevented||vi()||!r()||(e.preventDefault(),n())})}var Si=`input, textarea, select, [contenteditable]`;function Ci(e,t,n,r,i){bi(e,n,t[0].toUpperCase()),document.addEventListener(`keydown`,n=>{n.metaKey||n.ctrlKey||n.altKey||n.isComposing||n.defaultPrevented||!n.key||!t.includes(n.key.toLowerCase())||n.target?.closest?.(Si)||vi(e)||!i()||(n.preventDefault(),r())})}function wi(e,t,n){let{key:r,shift:i}=gi(e);document.addEventListener(`keydown`,e=>{!e.key||e.altKey||e.shiftKey!==i||e.key.toLowerCase()===r&&(!e.metaKey&&!e.ctrlKey||n?.()||(e.preventDefault(),e.stopPropagation(),t()))},!0)}var M,Ti=t(`#composer`),N=t(`#input`),Ei=t(`#send`),Di=t(`#send-arrow`),Oi=t(`#send-queue`),ki=t(`#stop`),Ai=t(`#queue-panel`),ji=t(`#queue-rows`),Mi=t(`#queue-label`),Ni=t(`#queue-actions`),Pi=t(`#image-strip`),Fi=t(`#command-menu`),Ii=t(`#attach-input`),Li=!1,Ri=0,zi=[],Bi={steering:[],followUp:[]},Vi=new Set,P=[],Hi=[];function Ui(){let e=window.visualViewport;if(!e)return;let t=()=>{let t=e.scale<=1.05&&window.innerHeight-e.height-e.offsetTop>80;t?document.body.dataset.kb=``:delete document.body.dataset.kb,document.body.style.height=t?`${String(e.height)}px`:``,t&&window.scrollY&&window.scrollTo(0,0)};e.addEventListener(`resize`,t),e.addEventListener(`scroll`,t)}function Wi(){let e=Ti.parentElement,t=[Ai,Ti],n=new ResizeObserver(()=>{let n=t.reduce((e,t)=>e+t.offsetHeight,0);e.style.setProperty(`--dock-h`,`${String(n)}px`)});for(let e of t)n.observe(e,{box:`border-box`})}function Gi(){N.focus()}function Ki(e){let t=Hi.indexOf(e);return t<0?!1:(Hi.splice(t,1),!0)}function qi(e){Hi.push(e)}function Ji(){Hi=[]}function Yi(){let e=M.sessionState()===`streaming`,t=M.sessionId()!==null||M.continuous();Ei.disabled=!t,Ei.className=`flex h-7 w-7 flex-none items-center justify-center rounded-lg ${t?e?`cursor-pointer bg-amber-100 text-amber-700 hover:bg-amber-200 active:bg-amber-300`:`cursor-pointer bg-indigo-600 text-white hover:bg-indigo-500 active:bg-indigo-700 dark:text-neutral-50`:`cursor-default bg-neutral-100 text-neutral-400`}`,Ei.title=t?e?`Queue — delivered when the turn ends`:`Send`:`No session`,Di.classList.toggle(`hidden`,e),Oi.classList.toggle(`hidden`,!e),ki.classList.toggle(`hidden`,!e),ki.classList.toggle(`flex`,e)}function Xi(){let e=M.chatVisible()&&Li;Ai.classList.toggle(`hidden`,!e),Ai.classList.toggle(`flex`,e)}function Zi(e,t,n=zi){++Ri,zi=n,Bi={steering:e,followUp:t};let r=[...e.map(e=>({mode:`steer`,text:e})),...t.map(e=>({mode:`queued`,text:e})),...zi.map(e=>({mode:`after this turn · ${e.runName}`,text:e.text}))];Li=r.length>0,Mi.textContent=r.length>1?`Queued · ${r.length}`:`Queued`;let i=e.length+t.length>0;Ni.classList.toggle(`hidden`,!i),Ni.classList.toggle(`flex`,i),Xi(),ji.replaceChildren(...r.map(e=>{let t=c(`li`,`flex items-start gap-2 text-[13px] leading-[18px]`);return e.mode===`steer`?t.append(c(`span`,`flex-none rounded bg-indigo-100 px-1 py-0.5 text-[10.5px] font-semibold uppercase tracking-wide text-indigo-700`,e.mode)):e.mode!==`queued`&&t.append(c(`span`,`max-w-[40%] flex-none truncate rounded bg-neutral-100 px-1 py-0.5 text-[10.5px] font-semibold text-neutral-600`,e.mode)),t.append(c(`span`,`min-w-0 whitespace-pre-wrap break-words text-neutral-700`,e.text)),t}))}function Qi(e){zi.some(t=>t.messageId===e)&&Zi(Bi.steering,Bi.followUp,zi.filter(t=>t.messageId!==e))}var $i=8;function ea(){let e=M.sessionId();e&&P.length?va.set(e,P):e&&va.delete(e),Pi.classList.toggle(`hidden`,P.length===0),Pi.classList.toggle(`flex`,P.length>0),Pi.replaceChildren(...P.map((e,t)=>{let n=e.mimeType.startsWith(`image/`)?kt(`data:${e.mimeType};base64,${e.data}`):c(`span`,`flex h-16 max-w-40 items-center truncate rounded-md border border-neutral-200 bg-neutral-50 px-2 text-[12px] text-neutral-700`,e.name??`file`),r=c(`button`,`absolute -right-1.5 -top-1.5 flex h-4 w-4 cursor-pointer items-center justify-center rounded-full bg-neutral-700 text-[10px] leading-none text-white hover:bg-red-600`,y(a,`h-3 w-3`));return r.setAttribute(`type`,`button`),r.setAttribute(`aria-label`,`Remove ${e.name??`attachment`}`),r.onclick=()=>{P.splice(t,1),ea()},c(`div`,`relative`,n,r)}))}function ta(e){if(P.length>=$i){A(`error`,`attachment limit is ${$i} files per message`);return}if(e.size>33554432){A(`error`,`${e.name||`file`} is too large (32MB max)`);return}let t=new FileReader;t.onload=()=>{let n=t.result;P.push(na({data:n.slice(n.indexOf(`,`)+1),mimeType:e.type||`application/octet-stream`,name:e.name||void 0})),ea()},t.readAsDataURL(e)}function na({data:e,mimeType:t,name:n}){let r={data:e,mimeType:t,name:n},i=_(`/api/inbox`,r).then(async e=>e.ok?Le((await e.json()).path):null).catch(()=>null);return{...r,marker:i}}async function ra(e){let t=await Promise.all(e.map(e=>e.marker));return t.every(e=>e!==null)?t:null}var ia=[],F=[],aa=0,oa=!1;function sa(e){ia=e,fa()}function ca(){let e=N.value;if(!e.startsWith(`/`)||/\s/.test(e)||oa)return[];let t=e.slice(1),n=M.continuous()?Object.keys(_e):[];return n.some(e=>e===t)?[]:[...n.filter(e=>e.startsWith(t)).map(e=>({word:`/${e}`,line:_e[e],fill:`/${e}`})),...ia.filter(e=>`skill:${e.name}`.startsWith(t)||e.name.startsWith(t)).map(e=>({word:`/skill:${e.name}`,line:e.description,fill:`/skill:${e.name} `}))]}var la=()=>F.length>0;function ua(e){if(F.length){aa=(e+F.length)%F.length;for(let[e,t]of F.entries())t.classList.toggle(`bg-indigo-50`,e===aa),t.setAttribute(`aria-selected`,String(e===aa));F[aa].scrollIntoView({block:`nearest`})}}function da(e){N.value=e.fill,N.focus(),ba(),I(),fa()}function fa(){F=ca().map(e=>{let t=c(`li`,`palette-row col-span-2 grid min-h-9 cursor-pointer grid-cols-subgrid items-center gap-x-3 rounded-[10px] px-2.5 py-1.5 text-[14px] leading-5 text-neutral-800`,c(`span`,`font-mono`,e.word),c(`span`,`min-w-0 truncate text-[13px] text-neutral-500`,e.line));t.setAttribute(`role`,`option`);let n;return t.onpointerdown=e=>{e.preventDefault(),n=e.clientY},t.onpointerup=t=>{n!==void 0&&Math.abs(t.clientY-n)<8&&da(e),n=void 0},t}),Fi.replaceChildren(...F),Fi.classList.toggle(`hidden`,!F.length),Fi.classList.toggle(`grid`,F.length>0),ua(0)}function pa(e){if(!la())return!1;let t=Se(e);if(t!==void 0)ua(aa+t);else if(e.key===`Enter`||e.key===`Tab`)da(ca()[aa]);else if(e.key===`Escape`)oa=!0,fa();else return!1;return e.preventDefault(),!0}var ma=`pier.draft.`,ha=e=>`${ma}${e}`,ga=0;function _a(){try{let e=[];for(let t=0;t<localStorage.length;t++){let n=localStorage.key(t);n?.startsWith(ma)&&e.push(n)}for(let t of e){let e=localStorage.getItem(t);e&&!sessionStorage.getItem(t)&&sessionStorage.setItem(t,e),localStorage.removeItem(t)}}catch(e){console.warn(`could not move older drafts out of localStorage`,e)}}var va=new Map;function I(e=M.sessionId(),t=N.value){e&&(t?sessionStorage.setItem(ha(e),t):sessionStorage.removeItem(ha(e)))}function ya(e){++ga,N.value=sessionStorage.getItem(ha(e))??``,ba(),oa=!1,fa(),P=va.get(e)??[],ea()}function ba(){let e=N.style.height;N.style.height=`auto`;let t=`${Math.min(N.scrollHeight,192)}px`;N.style.height=t,t!==e&&O()}var xa=!1;async function Sa(e,t){let n=(t??N.value).trim(),r=t===void 0?P:[],i=M.sessionId(),a=M.continuous();if(!(!n&&r.length===0||!i&&!a)){if(t===void 0){if(xa)return;xa=!0,N.value=``,ba(),I(),fa(),P=[],ea()}try{let t=[];if(r.length){let e=await ra(r);if(e===null){A(`error`,`attachment upload failed`),N.value=[n,N.value.trim()].filter(Boolean).join(`
9
+ `),ba(),I(),P=r.map(na),ea();return}t=e}let o=[n,...t].filter(Boolean).join(`
10
+ `),s=M.sessionState()===`idle`&&e===`auto`;s?M.setState(`streaming`):Yi(),(s||e===`steer`)&&(qi(o),A(`user`,o,!1,Date.now()),O(!0));let c=await _(a?`/api/continuous/messages`:`/api/sessions/${i}/messages`,{text:o,mode:e});if(!c.ok){let e=await v(c,`send failed`);i&&await M.reload(i),A(`error`,e)}else if(a){let{sessionId:e,command:t}=await c.json();t&&s&&M.setState(`idle`),e!==i&&M.headMoved?.()}}finally{t===void 0&&(xa=!1)}}}async function Ca(e){let t=M.sessionId();if(!t)return;Zi([],[]);let n=await _(`/api/sessions/${t}/queue/deliver`,{mode:e});if(!n.ok){let r=await v(n,`Queue ${e} failed`);await M.reload(t),M.sessionId()===t&&A(`error`,r)}}async function wa(){let e=M.sessionId();if(!e||Vi.has(e))return;Vi.add(e);let t=Ri,n=ga,r=document.activeElement;try{I();let i=await fetch(`/api/sessions/${e}/queue/recall`,{method:`POST`});if(!i.ok){let t=await v(i,`Could not recall queued messages`);M.sessionId()===e&&A(`error`,t);return}let{messages:a}=await i.json(),o=M.sessionId()===e;if(a.length)try{let t=o?N.value:sessionStorage.getItem(ha(e))??``,i=(t?[t,...a]:a).join(`
11
+ `);o&&(N.value=i,ba(),n===ga&&M.chatVisible()&&document.activeElement===r&&N.focus()),I(e,i)}catch(t){A(`error`,`Could not save recalled messages for session ${e}: ${String(t)}\nRecalled messages (not saved):\n${a.join(`
12
+ `)}`)}o&&t===Ri&&Zi([],[])}finally{Vi.delete(e)}}function Ta(e){M=e,_a(),Ui(),Wi();let n=()=>{let e=M.sessionId();e&&fetch(`/api/sessions/${e}/abort`,{method:`POST`})};ki.onclick=n,xi(ki,`Stop the running turn`,n,()=>M.sessionState()===`streaming`&&M.chatVisible()),t(`#queue-steer`).onclick=()=>void Ca(`steer`),t(`#queue-restart`).onclick=()=>void Ca(`restart`),t(`#queue-recall`).onclick=()=>void wa(),Ti.onsubmit=e=>{e.preventDefault(),Sa(`auto`)},Ci(N,[`/`],`Write a message`,Gi,M.chatVisible),N.onfocus=ir,N.oninput=()=>{ba(),I(),oa=!1,fa()};let r=!matchMedia(`(pointer: coarse)`).matches;N.onkeydown=e=>{e.isComposing||e.keyCode===229||pa(e)||r&&e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),Sa(`auto`))},N.onpaste=e=>{for(let t of e.clipboardData?.items??[]){let e=t.kind===`file`?t.getAsFile():null;e&&ta(e)}let t=e.clipboardData?.getData(`text/plain`)??``,n=t.trim();!n||n===t||(e.preventDefault(),N.setRangeText(n,N.selectionStart??0,N.selectionEnd??0,`end`),ba(),I())},E.ondragover=e=>e.preventDefault(),E.ondrop=e=>{e.preventDefault();for(let t of e.dataTransfer?.files??[])ta(t)},t(`#attach`).onclick=()=>Ii.click(),Ii.onchange=()=>{for(let e of Ii.files??[])ta(e);Ii.value=``},Yi()}var Ea=`pier.push`,Da=`/app/sw.js`,Oa=()=>/iPad|iPhone|iPod/.test(navigator.userAgent)||navigator.maxTouchPoints>1&&/Macintosh/.test(navigator.userAgent),ka=()=>matchMedia(`(display-mode: standalone)`).matches||navigator.standalone===!0;function Aa(){return window.isSecureContext?Oa()&&!ka()?`On iPhone and iPad, notifications work only from the installed app: Share → Add to Home Screen, then open Pier from that icon.`:!(`serviceWorker`in navigator)||!(`PushManager`in window)||!(`Notification`in window)?`This browser has no Web Push support.`:``:`Notifications need HTTPS. Reach this Pier through its public URL, not over plain http.`}var ja=[[/iPhone/,`iPhone`],[/iPad/,`iPad`],[/Android/,`Android`],[/Macintosh/,`Mac`],[/Windows/,`Windows`]],Ma=[[/Edg\//,`Edge`],[/Chrome\//,`Chrome`],[/Firefox\//,`Firefox`],[/Safari\//,`Safari`]];function Na(){let e=navigator.userAgent,t=(t,n)=>t.find(([t])=>t.test(e))?.[1]??n;return`${t(ja,`Linux`)} · ${t(Ma,`browser`)}${ka()?` (installed)`:``}`}var Pa=e=>{let t=atob(e.replace(/-/g,`+`).replace(/_/g,`/`)),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n},Fa=null;async function Ia(){return!(`serviceWorker`in navigator)||!window.isSecureContext?null:(Fa??=await navigator.serviceWorker.register(Da,{scope:`/app/`}).catch(e=>(console.warn(`service worker registration failed`,e),null)),Fa)}var La=(e,t)=>{let n=e?new Uint8Array(e):null;return n?.length===t.length&&n.every((e,n)=>e===t[n])};async function Ra(e){let{publicKey:t}=await ke(`/api/push`,`Could not read this instance's push key`),n=Pa(t),r=await e.pushManager.getSubscription();if(r){if(La(r.options.applicationServerKey,n))return r;await r.unsubscribe()}return e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:n})}async function za(e){return _(`/api/push/subscribe`,{...e.toJSON(),label:Na()})}async function Ba(){Ua();let e=await Ia();if(!(!e||localStorage.getItem(Ea)!==`on`)&&!(!(`Notification`in window)||Notification.permission!==`granted`))try{await za(await Ra(e))}catch(e){console.warn(`re-registering this browser for notifications failed`,e)}}var Va=null,Ha=null;function Ua(){window.addEventListener(`beforeinstallprompt`,e=>{e.preventDefault(),Va=e,Ha?.()}),window.addEventListener(`appinstalled`,()=>{Va=null,Ha?.()})}function Wa(e){let t=navigator;(e>0?t.setAppBadge?.(e):t.clearAppBadge?.())?.catch(()=>{})}function Ga(){let e=c(`span`,`text-[11.5px]`,``),t=p(`Send a test notification`),r=c(`div`,`flex items-center gap-3`,t,e),i=c(`div`,`flex flex-col gap-4`),a=()=>localStorage.getItem(Ea)===`on`,o=c(`div`,`flex flex-col gap-2`),l=c(`span`,`text-[11.5px]`,``),u=c(`div`,`flex flex-col gap-2`,o,l);async function f(e){d(l,`saving`,`removing…`);try{let t=await _(`/api/push/unsubscribe`,{endpoint:e.endpoint});if(!t.ok)d(l,`failed`,await v(t,`Could not remove it`));else{let t=await(await Ia())?.pushManager.getSubscription();t?.endpoint===e.endpoint&&(localStorage.setItem(Ea,`off`),await t.unsubscribe(),h()),d(l,`saved`,`Removed.`)}}catch(e){d(l,`failed`,`Could not remove it: ${String(e)}`)}await m()}async function m(){let e=await Te(`/api/push/subscriptions`,`Could not load subscribed devices`);if(!e.ok)return d(l,`failed`,e.error);if(!e.value.devices.length){o.replaceChildren(te(`No device is subscribed.`));return}o.replaceChildren(...e.value.devices.map(e=>{let t=p(`Remove`);return t.onclick=()=>{t.disabled=!0,f(e)},Fe(e.label,`subscribed ${s(e.createdAt)}`,t,{tag:e.current?ce(`This browser`,`bg-neutral-50 text-neutral-500 ring-neutral-200`):void 0})}))}async function ne(){d(e,`saving`,`asking this browser…`);let t=await Notification.requestPermission();if(t!==`granted`)return localStorage.setItem(Ea,`off`),h(),d(e,`failed`,t===`denied`?`Notifications are blocked for this site — allow them in the browser's site settings, then try again.`:`No answer to the permission prompt.`);let n=await Ia();if(!n)return d(e,`failed`,`This browser refused to register a service worker.`);try{let t=await za(await Ra(n));if(!t.ok)return d(e,`failed`,await v(t,`Could not register this browser`));localStorage.setItem(Ea,`on`),h(),d(e,`saved`,`This browser will be notified when a turn finishes unseen.`),m()}catch(t){d(e,`failed`,`Could not subscribe: ${String(t)}`)}}async function re(){localStorage.setItem(Ea,`off`),h();let t=await(await Ia())?.pushManager.getSubscription();t&&(await _(`/api/push/unsubscribe`,{endpoint:t.endpoint}),await t.unsubscribe()),d(e,`idle`,`This browser will not be notified.`),m()}t.onclick=()=>{d(e,`saving`,`sending…`),(async()=>{let t=await _(`/api/push/test`,{});if(!t.ok)return d(e,`failed`,await v(t,`Could not send`));let{sent:n,failed:r}=await t.json();d(e,r?`failed`:`saved`,`Handed ${String(n)} device(s) to their push service${r?`, ${String(r)} refused`:``}.`)})()};function ie(){if(!Va)return[];let e=p(`Install Pier`,!0);return e.onclick=()=>{let e=Va;e&&e.prompt().then(()=>e.userChoice).finally(()=>{Va=null,h()})},[c(`div`,`flex items-center gap-3`,e,c(`span`,`text-[11.5px] leading-snug text-neutral-500`,`Its own window and icon — and where notifications look like an app's.`))]}function h(){let e=Aa();if(e){i.replaceChildren(...ie(),c(`p`,`text-[12.5px] leading-snug text-neutral-500`,e),u);return}let n=a()&&Notification.permission===`granted`;t.disabled=!n,i.replaceChildren(...ie(),ee(`Notify this device`,`A turn that finishes while nobody is looking at it becomes a notification here. Per browser — each device is enabled on its own.`,n,e=>void(e?ne():re())),r,u)}return Ha=h,h(),{el:n(`Notifications`,`Web Push, so a finished turn reaches you with the workbench closed. Installed — Chrome's address-bar icon, or Share → Add to Home Screen on iOS — Pier notifies you the way an app does.`,i),load:()=>{d(l,`idle`,``),m()}}}var L,R=t(`#status-chip`),Ka=e=>e.modified??e.createdAt,qa=e=>e.unread,Ja=e=>e.state===`streaming`||qa(e)||e.activeRuns>0||e.runLive===!0||e.designOpen===!0;function Ya(e){return e.state===`streaming`?`working`:qa(e)?`unread`:e.activeRuns>0?`runs`:e.runLive?`queued`:e.designOpen?`design`:null}var Xa=e=>e===`unread`||e===`design`;function Za(e){let t=Ya(e);return t?$a(t===`working`?Qa:t===`unread`?[`bg-amber-500`,`turn finished — not viewed yet`]:t===`runs`?[`bg-sky-500`,`${e.activeRuns} subagent${e.activeRuns>1?`s`:``} running`]:[`bg-neutral-400`,t===`queued`?`lead — run queued`:`design — waiting for you to finalize`]):[]}var Qa=[`bg-green-500 animate-pulse`,`working…`];function $a([e,t]){let n=c(`span`,`h-2 w-2 flex-none rounded-full ${e}`);return n.title=t,[n]}var eo=e=>e.phase?to(e.phase,e.phase===`design`?`lead — designing with you`:`lead — building per the design`):[],to=(e,t)=>{let n=c(`span`,`flex-none rounded bg-neutral-100 px-1 text-[0.6875rem] font-medium leading-4 text-neutral-500`,e);return n.title=t,[n]};function no(e,t){let n=new Set(t.map(e=>e.sessionId));return e.filter(e=>Ja(e)&&!n.has(e.id))}var ro=()=>{let e=L.chain()[0]?.sessionId;return L.sessions().find(t=>t.id===e)},io=`flex items-center gap-1 rounded-[10px] px-1.5 hover:bg-neutral-100`,ao=`session-open flex min-h-10 min-w-0 flex-1 cursor-pointer items-center gap-1.5 text-left`,oo={"waiting on you":`bg-amber-50 text-amber-700`,running:`bg-green-50 text-green-700`,queued:`bg-neutral-100 text-neutral-600`,"pending release":`bg-neutral-100 text-neutral-600`};function so(e){let t=c(`li`,io),n=c(`span`,`min-w-0 flex-1 py-1`,c(`span`,`flex min-w-0 items-center gap-1.5`,c(`span`,`min-w-0 truncate`,e.label),...e.who?to(e.who,e.who):[]),c(`span`,`block truncate text-xs leading-4 text-neutral-500`,e.detail)),r=c(`span`,`flex-none rounded px-1.5 text-[0.6875rem] font-medium leading-5 ${oo[e.status]}`,e.status),i=c(`button`,ao,n,r);return i.setAttribute(`type`,`button`),i.onclick=()=>{g(),e.open()},e.id===L.currentId()&&i.setAttribute(`aria-current`,`page`),t.dataset.sessionId=e.id,t.title=e.title,t.append(i),t}var co=e=>e?.phase?`lead · ${e.phase}`:e?.channel&&e.channel!==`web`?e.channel:``,lo={working:[`running`,()=>`working`],unread:[`waiting on you`,()=>`turn finished — not viewed yet`],runs:[`running`,e=>`${e.activeRuns} subagent${e.activeRuns>1?`s`:``} running`],queued:[`queued`,()=>`run queued`],design:[`waiting on you`,()=>`design — finalize when it is ready`]};function uo(e,t){let[n,r]=lo[t];return{id:e.id,label:e.title??`untitled`,who:co(e),status:n,detail:`${r(e)} · active ${s(Ka(e))}`,title:[e.cwd,`created ${new Date(e.createdAt).toLocaleDateString()}`,...e.channel&&e.channel!==`web`?[`answering ${e.channel}`]:[]].join(`
13
+ `),open:()=>L.select(e.id)}}function fo(e,t){let n=[...e.runs.map(e=>Ce(e,t)),e.stage].filter(Boolean).join(` · `),r=e.runs.find(e=>e.targetSessionId),i=r?.targetSessionId??void 0,a=r?co(L.sessions().find(e=>e.id===i))||(r.workers?`lead`:`worker`):``;return{id:i??`item:${e.problem}`,label:e.problem,who:a,detail:n,status:e.status,title:[e.problem,n,...e.runs.flatMap(e=>e.cwd?[e.cwd]:[])].filter(Boolean).join(`
14
+ `),open:()=>i?L.select(i):L.openContinuous()}}var po=(e,t)=>({...fo({problem:e.name,stage:``,runs:[e],status:`running`},t),...e.state===`queued`?{status:`queued`}:{}});function mo(e){let t=L.open()??{items:[],unlisted:[]},n=new Set([...t.items.flatMap(e=>e.runs),...t.unlisted].flatMap(e=>e.targetSessionId?[e.targetSessionId]:[])),r=no(L.sessions(),L.chain()),i=[...t.items.map(t=>fo(t,e)),...t.unlisted.map(t=>po(t,e)),...r.flatMap(e=>{let t=Ya(e);return t&&!n.has(e.id)?[uo(e,t)]:[]})],a=e=>e.status===`waiting on you`||e.status===`pending release`;return{waiting:i.filter(a).map(so),running:i.filter(e=>!a(e)).map(so),sessions:r}}var ho=null,go=[[],[]],_o=!1,vo=()=>`${L.currentId()??``}\n${JSON.stringify(L.chain())}\n${JSON.stringify(L.sessions())}\n${JSON.stringify(L.open())}`,yo=``;function z(){let e=vo();if(e===yo)return;yo=e;let{waiting:t,running:n,sessions:r}=mo(Date.now());go=[t,n],Wa(r.filter(e=>Xa(Ya(e))).length+ +!!ro()?.unread);let i=[...n.length?[`${n.length} running`]:[],...t.length?[`${t.length} needs you`]:[]].join(` · `);_o=!!i,R.textContent=i,R.classList.toggle(`hidden`,!i),R.classList.toggle(`block`,!!i),R.classList.toggle(`text-amber-700`,t.length>0),R.classList.toggle(`text-neutral-600`,t.length===0),ho?.[0].isConnected&&!ho[0].closest(`[inert]`)&&(_o?bo(ho):g()),Xo()}function bo(e){let t=document.activeElement?.closest(`[data-session-id]`)?.dataset.sessionId;e.forEach((e,t)=>{e.replaceChildren(...go[t]),e.previousElementSibling?.classList.toggle(`hidden`,!go[t].length)}),e[1].previousElementSibling?.classList.toggle(`mt-2`,go[0].length>0),t&&go.flat().find(e=>e.dataset.sessionId===t)?.querySelector(`.session-open`)?.focus({preventScroll:!0})}var xo=`px-2 pb-1 text-xs font-semibold leading-5 text-neutral-500`;function So(){if(R.getAttribute(`aria-expanded`)===`true`)return g();if(!_o)return;let[e,t]=[c(`ul`,``),c(`ul`,``)];e.dataset.list=`waiting`,t.dataset.list=`running`;let n=c(`div`,`w-[min(32rem,calc(100vw-2rem))] max-sm:w-full font-sans text-sm`,c(`div`,xo,`Waiting on you`),e,c(`div`,xo,`In progress`),t);ho=[e,t],bo(ho),pe(R,n).setAttribute(`aria-label`,`Status`)}function Co(e){L=e,R.onclick=So,wi(`shift+p`,So,vi)}var wo,B=t(`#palette`),To=t(`#palette-input`),Eo=t(`#palette-list`),Do=t(`#palette-count`),Oo=[{name:`settings`,icon:$e,label:`Settings`,detail:`Console — models and providers, agent files and extensions, channels, password, sign out, security`}],ko=7,Ao=8,jo=80,Mo=``,No,Po,Fo;function Io(e){Mo!==e&&(clearTimeout(Fo),Po?.abort(),Po=void 0,Mo=e,No=void 0,e&&(Fo=setTimeout(()=>{let t=Po=new AbortController;Te(`/api/search?q=${encodeURIComponent(e)}`,`Search unavailable`,{signal:t.signal}).then(n=>{t.signal.aborted||Mo!==e||(Po=void 0,No=n.ok?{hits:n.value.hits}:{error:n.error},B.open&&Yo())})},jo)))}var V=[],H=0;function Lo(e){if(V.length){H=(e+V.length)%V.length;for(let[e,{el:t}]of V.entries())t.classList.toggle(`bg-indigo-50`,e===H),t.setAttribute(`aria-selected`,String(e===H));V[H]?.el.scrollIntoView({block:`nearest`})}}var Ro=e=>e.hit?.at??e.session?.createdAt;function zo(e){let t=c(`span`,`min-w-0 flex-1 truncate text-neutral-500`);for(let n of e.replaceAll(/\s+/g,` `).split(``)){let[e=``,r]=n.split(``,2);r===void 0?t.append(e):t.append(c(`span`,`font-medium text-neutral-800`,e),r)}return t}var Bo=`flex min-w-0 flex-1 items-baseline gap-2`,Vo=`shrink-0 truncate`,Ho=`min-w-[2.5em] truncate text-[0.8125rem] text-neutral-400`,Uo=`flex-none text-[0.75rem] tabular-nums text-neutral-400`,Wo=`flex h-7 w-7 flex-none items-center justify-center rounded-[8px] bg-neutral-100 text-neutral-500`;function Go(e){let t=c(`li`,`palette-row flex cursor-pointer items-center gap-3 rounded-[10px] px-2 leading-5 ${e.hit?`py-1.5`:`min-h-10`}`);t.setAttribute(`role`,`option`),t.append(c(`span`,Wo,y(e.icon,`h-4 w-4`)));let n=c(`div`,`flex min-w-0 flex-1 flex-col`),r=c(`div`,`flex items-center gap-2`);e.session&&r.append(...Za(e.session));let i=c(`span`,Bo,c(`span`,`${Vo} ${e.detail?`max-w-[calc(100%-3em)]`:`max-w-full`}`,e.label));e.detail&&i.append(c(`span`,Ho,e.detail)),r.append(i);let a=Ro(e);return e.session&&r.append(...eo(e.session)),a!==void 0&&r.append(c(`span`,Uo,se(a))),n.append(r),e.hit&&n.append(c(`div`,`flex items-baseline gap-2 text-[0.8125rem] leading-5`,c(`span`,`flex-none text-[0.75rem] text-neutral-400`,e.hit.role===`user`?`You`:`Agent`),zo(e.hit.snippet))),t.append(n),t.onclick=e.open,t}var Ko=e=>c(`li`,`px-2 pb-1.5 pt-4 text-[0.6875rem] font-semibold leading-4 tracking-[0.02em] text-neutral-400 first:pt-2`,e);function qo(e,t){let n=c(`li`,`px-2 py-2 pl-12 text-[0.8125rem] leading-5 text-neutral-400`,e);return t&&(n.title=t),n}var Jo=e=>e.channel&&e.channel!==`web`?e.channel:``;function Yo(){let t=To.value.trim(),n=t.toLowerCase().split(/\s+/).filter(Boolean),r=e=>{let t=e.toLowerCase();return n.every(e=>t.includes(e))},i=e=>()=>{B.close(),e()},a=wo.sessions(),o=new Map(a.map(e=>[e.id,e])),s=t=>({icon:Ge,label:t.title??e(t.cwd),detail:[re(t.cwd),Jo(t)].filter(Boolean).join(` · `),open:i(()=>void wo.select(t.id)),session:t}),c=ro(),l=!t||r(`pier conversation`)?[{icon:Ke,label:`Pier`,detail:``,open:i(wo.openContinuous),...c?{session:c}:{}}]:[],u=Oo.filter(e=>!t||r(`${e.label} ${e.detail}`)).map(({name:e,icon:t,label:n,detail:r})=>({icon:t,label:n,detail:r,open:i(()=>wo.openConsole(e))})),d=[[``,l]];if(!t)d.push([`Recent`,a.filter(e=>!Ja(e)&&e.id!==c?.id).slice(0,ko).map(s)],[`Actions`,u]);else{let e=a.filter(e=>r(`${e.title??``} ${e.cwd} ${Jo(e)}`)).slice(0,Ao),n=new Set(e.map(e=>e.id)),c=e.map(s);if(Mo!==t||!No)c.push(qo(`Searching messages…`));else if(`error`in No)c.push(qo(`Message search unavailable`,No.error));else{for(let e of No.hits){if(c.length>=Ao)break;let t=o.get(e.sessionId);!t||n.has(t.id)||c.push({...s(t),hit:e,open:i(()=>void wo.select(t.id).then(()=>or(e.role,e.at)))})}c.length||c.push(qo(`No sessions match`))}d.push([`Actions`,u],[`Sessions`,c])}V=[];let f=[];for(let[e,t]of d)if(t.length){e&&f.push(Ko(e));for(let e of t){if(e instanceof HTMLElement){f.push(e);continue}let t=Go(e);V.push({el:t,open:e.open}),f.push(t)}}Eo.replaceChildren(...f.length?f:[qo(`Nothing matches`)]),Do.textContent=`${V.length} ${V.length===1?`row`:`rows`}`,Lo(Math.min(H,Math.max(0,V.length-1)))}function Xo(){B.open&&Yo()}function Zo(){if(B.open)return B.close();To.value=``,H=0,Io(``),Yo(),B.showModal(),To.focus(),wo.loadSessions().then(Xo)}function Qo(e){wo=e,wi(`k`,Zo,()=>B.open||Me()),B.onclick=e=>{e.target===B&&B.close()},B.onclose=()=>Io(``),To.oninput=()=>{H=0,Io(To.value.trim()),Yo()},To.onkeydown=e=>{let t=Se(e);if(t!==void 0){e.preventDefault(),Lo(H+t);return}e.key===`Enter`&&!e.ctrlKey&&(e.preventDefault(),V[H]?.open())}}var $o=0,es=null;async function ts(){let{modelMenu:e}=await ke(`/api/settings`,`Could not read the pinned model menu`);return e}function ns(e){let t=c(`button`,`flex w-full min-w-0 cursor-pointer items-center gap-2 px-3 py-1.5 text-left hover:bg-neutral-100`,y(be,`h-3 w-3 text-indigo-600 ${e.checked?``:`invisible`}`),c(`span`,`truncate`,e.label));return e.hint&&t.append(c(`span`,`ml-auto flex-none text-[11.5px] text-neutral-400`,e.hint)),t.onclick=()=>e.onSelect(),t}function rs({models:e,current:t,thinkingLevel:n,thinkingLevels:r,onPick:i,onThinkingPick:a}){let o=n,s=c(`div`,`flex w-full min-w-0 flex-col sm:min-w-72`),l=c(`div`,`flex flex-col gap-2 border-b border-neutral-200 px-2 py-2`),d=document.createElement(`input`);if(d.type=`search`,d.placeholder=`Search models`,d.setAttribute(`aria-label`,`Search models`),d.className=`w-full rounded-md border border-neutral-300 px-2 py-1.5 text-[12.5px] focus:border-indigo-400 focus:outline-none`,l.append(d),r.length){let e=document.createElement(`details`),t=c(`span`,`ml-auto font-medium text-indigo-700`,we(o)),n=c(`summary`,`flex min-h-11 cursor-pointer list-none items-center gap-2 rounded-xl px-3 text-sm text-neutral-700 hover:bg-neutral-100 [&::-webkit-details-marker]:hidden`,c(`span`,`font-medium`,`Reasoning effort`),t,y(u,`chev h-3 w-3 text-neutral-400`)),i=c(`fieldset`,`grid grid-cols-2 gap-1 rounded-xl bg-neutral-50 p-1`);i.append(c(`legend`,`sr-only`,`Reasoning effort`));let s=`reasoning-${++$o}`;for(let e of r){let n=document.createElement(`input`);n.type=`radio`,n.name=s,n.value=e,n.checked=e===o,n.className=`peer sr-only`,n.onchange=()=>{n.checked&&(o=e,t.textContent=we(o),m(d.value),a(o))},i.append(c(`label`,`relative cursor-pointer`,n,c(`span`,`flex min-h-11 items-center rounded-lg border border-transparent px-3 text-sm text-neutral-700 hover:bg-neutral-100 peer-checked:border-indigo-200 peer-checked:bg-indigo-50 peer-checked:font-semibold peer-checked:text-indigo-700 peer-focus-visible:outline-2 peer-focus-visible:outline-indigo-500`,we(e))))}e.append(n,i),l.append(e)}let f=c(`div`,`max-h-72 overflow-y-auto py-1`),ee=new Map(e.map(e=>[b(e),e])),p=e=>{let n=(es??[]).map(e=>({e,model:ee.get(b(e))})).filter(t=>!!t.model&&(!e||b(t.model).toLowerCase().includes(e)));n.length&&f.append(c(`div`,`px-3 pb-0.5 pt-1 text-[10.5px] font-semibold uppercase tracking-wide text-neutral-400`,`Pinned`),...n.map(({e,model:n})=>ns({label:n.id,hint:we(e.thinking),checked:!!t&&b(t)===b(n)&&o===e.thinking,onSelect:()=>i(n,e.thinking)})),c(`div`,`my-1 border-t border-neutral-100`))},m=n=>{f.replaceChildren();let r=n.trim().toLowerCase();p(r);let a=new Map;for(let t of e){if(r&&!b(t).toLowerCase().includes(r))continue;let e=a.get(t.provider);e?e.push(t):a.set(t.provider,[t])}if(!a.size){f.append(c(`div`,`px-3 py-2 text-[12.5px] text-neutral-400`,e.length?`No matching models.`:`No models available.`));return}for(let[e,n]of a){let a=n.some(e=>!!t&&b(t)===b(e)),o=document.createElement(`details`);o.open=a||r.length>0;let s=c(`summary`,`flex cursor-pointer select-none items-center gap-1.5 px-3 py-1 text-[10.5px] font-semibold uppercase tracking-wide text-neutral-400 hover:bg-neutral-100`,y(u,`chev h-3 w-3`),c(`span`,`truncate`,e),c(`span`,`ml-auto flex-none normal-case text-neutral-300`,String(n.length)));o.append(s,...n.map(e=>ns({label:e.id,checked:!!t&&b(t)===b(e),onSelect:()=>i(e)}))),f.append(o)}};return d.oninput=()=>m(d.value),m(``),ts().then(e=>{let t=JSON.stringify(e)!==JSON.stringify(es);es=e,t&&m(d.value)}).catch(e=>si(`model menu unavailable`,e)),s.append(l,f),queueMicrotask(()=>d.focus()),s}function is(e,t,n,r){let a=t.model?`${t.model.id}${t.thinking?` · ${we(t.thinking)}`:``}`:t.thinking?`Pi default · ${we(t.thinking)}`:`Pi default`,o=Ie(a,`${ge} flex items-center gap-1.5 ${t.model?`text-neutral-700`:`text-neutral-400`}`);return o.title=t.model?b(t.model):`Whatever the project and Pi pick`,o.onclick=()=>{let e=rs({models:n,current:t.model,thinkingLevel:t.thinking??`medium`,thinkingLevels:[...Pe],onPick:(e,n)=>{g(),r({model:e,thinking:n??t.thinking})},onThinkingPick:e=>{t={...t,thinking:e},r(t)}}),i=Ie(`Pi default`,`w-full cursor-pointer px-3 py-1.5 text-left text-[12.5px] text-neutral-500 hover:bg-neutral-100`);i.onclick=()=>{g(),r({model:null,thinking:null})};let a=c(`div`,`flex flex-col`);a.append(e,c(`div`,`border-t border-neutral-200`),i),pe(o,a)},i(e,o)}var U;function as(e){U=e,ss.onclick=()=>U.openContinuous(),us.onclick=()=>ks(us),wi(os,()=>{U.currentSession()&&(g(),U.toggleFiles())},()=>vi(t(`#files-dialog`)))}var os=`i`,ss=t(`#bar-back`),cs=t(`#chat-title`),ls=t(`#chat-phase`),us=t(`#chat-menu`),ds=t(`#session-meta`),fs=null,ps=new Map,W=null,G=null,K=null,ms=null;function hs(){W=null,G=null,K=null,ms=null,Ss()}function gs(e,t,n,r){W=e,G=t,K=n,ms=r,q()}function _s(e){ms=e.completedAt,G&&={...G,tokens:e.tokens},Ss()}function q(){let t=U.currentSession(),n=U.continuousOpen();cs.textContent=n?`Pier`:t?t.title??e(t.cwd):U.currentId()??`no session`,cs.disabled=!t,cs.classList.toggle(`cursor-pointer`,!!t),cs.title=t?`Session info`:``,cs.onclick=t?()=>Cs(cs,t):null,ss.classList.toggle(`hidden`,n),ss.classList.toggle(`flex`,!n);let r=n?void 0:ro();ss.replaceChildren(y(xe,`h-4.5 w-4.5`),...r&&(r.state===`streaming`||r.unread)?Za(r):[]),ls.replaceChildren(...!n&&t?eo(t):[]),Ss()}var vs=70,ys=(e,t)=>Math.min(100,Math.round(e/t*100)),bs=e=>U.continuousOpen()?U.rotateAt():e.compactAt,xs=(e,t)=>e.tokens===null?`?/${Ae(t)}`:`${Ae(e.tokens)}/${Ae(t)} · ${100-ys(e.tokens,t)}% left`;function Ss(){let e=G,t=e?.tokens??null,n=U.currentId(),r=U.continuousOpen(),i=[];if(n&&!r){let e=(e,t)=>{let r=c(`button`,`cursor-pointer font-mono ${t}`,e);return r.title=`Change model or reasoning`,r.onclick=()=>void ws(r,n),r};W&&i.push(e(W.id,`min-w-0 truncate rounded bg-indigo-50 px-1.5 py-px font-medium text-indigo-700 hover:bg-indigo-100`)),K&&i.push(e(K,`flex-none text-neutral-500 hover:text-indigo-700`))}let a=e?bs(e):null,o=0;if(e&&t!==null&&a){o=ys(t,a);let n=o>=90?`text-red-700`:o>=vs?`text-amber-700`:`text-neutral-500`;if(r){let r=c(`span`,`flex-none rounded-full bg-neutral-100 px-2 py-0.5 font-mono text-[12px] ${n}`,Ae(t).toLowerCase());r.title=`Context: ${xs(e,a)} before the next message starts a new session`,i.push(r)}else i.push(c(`span`,`flex-none font-mono ${n}`,Ae(t).toLowerCase()))}let s=i.flatMap((e,t)=>t===0?[e]:[c(`span`,`flex-none text-neutral-300`,`·`),e]);ds.replaceChildren(...s),ds.classList.toggle(`hidden`,i.length===0),ds.classList.toggle(`flex`,i.length>0),ds.toggleAttribute(`data-urgent`,o>=vs),ds.toggleAttribute(`data-inline`,r)}function Cs(t,n,r){let i=[[`Directory`,n.cwd],[`Session`,n.id]],o=n.id===U.currentId();if(o){i.push([`Model`,W?.id??`—`]),i.push([`Reasoning`,K??`—`]);let e=G?bs(G):null;i.push([`Context`,G&&e?xs(G,e):`—`])}if(i.push([`Created`,f(n.createdAt),s(n.createdAt)]),o){let e=ms;i.push(e===null?[`Last reply`,`—`]:[`Last reply`,f(e),s(e)])}let u=c(`div`,`w-[min(26rem,calc(100vw-2rem))] max-sm:w-full rounded-xl bg-white px-3 py-3 font-sans text-[15px] leading-normal`),d=c(`button`,`icon-btn h-11 w-11 sm:h-8 sm:w-8`,y(a));d.setAttribute(`aria-label`,`Close session info`),d.onclick=g;let ee=c(`div`,`sticky top-0 z-10 flex items-start gap-2 bg-white pb-2`,c(`div`,`min-w-0 flex-1`,c(`div`,`text-sm font-medium text-neutral-500`,`Session info`),c(`h2`,`mt-1 [overflow-wrap:anywhere] text-lg leading-7 font-semibold text-neutral-900`,n.title??e(n.cwd))),d);if(r){let e=c(`button`,`icon-btn h-11 w-11 sm:h-8 sm:w-8`,y(ze));e.setAttribute(`aria-label`,`Back to session actions`),e.onclick=r,ee.prepend(e)}u.append(ee);let p=c(`dl`,``);for(let[e,t,n]of i){let r=e===`Directory`||e===`Session`,i=c(`dd`,`min-w-0 flex items-start gap-2 text-neutral-700 ${r?`font-mono text-sm leading-6`:``}`,c(`span`,`min-w-0 flex-1 [overflow-wrap:anywhere]`,t));if(r){let n=l(`min-h-11 min-w-11 sm:min-h-8 shrink-0 cursor-pointer rounded-lg px-2 py-1 text-[13px] font-sans text-neutral-500 hover:bg-neutral-100 focus-visible:outline-2`,()=>t);n.setAttribute(`aria-label`,`Copy ${e.toLowerCase()}`),i.append(n)}n&&i.firstElementChild?.append(c(`span`,`ml-2 inline-block font-sans text-[13px] leading-5 text-neutral-500`,n));let a=e===`Model`||e===`Created`;p.append(c(`div`,`grid gap-1 py-1.5 sm:grid-cols-[5.5rem_minmax(0,1fr)] sm:gap-3 ${a?`mt-2 border-t border-neutral-200 pt-2.5`:``}`,c(`dt`,`text-[15px] text-neutral-500`,e===`Session`?`Session ID`:e),i))}return u.append(p),pe(t,u)}async function ws(t,n,r){let i=c(`div`,`px-3 py-3 text-[15px] text-neutral-500`,`Loading models…`),a=c(`div`,`w-[min(24rem,calc(100vw-2rem))] min-w-0 max-sm:w-full`,i),o=i;r&&a.prepend(Os(t,r.title??e(r.cwd),`Close model picker`)),pe(t,a);let s=()=>o.isConnected&&!o.closest(`[inert]`),l=``,u=(e,r,i)=>{let s=JSON.stringify([e,r,i]);if(s===l)return;l=s;let c=rs({models:e,current:n===U.currentId()?W:null,thinkingLevel:r,thinkingLevels:i,onPick:(e,t)=>{g(),Ts(n,e,t)},onThinkingPick:e=>void Ds(n,e)});o.replaceWith(c),o=c,pe(t,a)},d=n===U.currentId()&&W?ps.get(b(W)):void 0;fs&&d&&K&&u(fs,K,d);try{let[e,t]=await Promise.all([ke(`/api/sessions/${n}/models`,`Could not load models`),ke(`/api/sessions/${n}/thinking`,`Could not read the reasoning level`)]);if(fs=e,n===U.currentId()&&W&&ps.set(b(W),t.levels),!s())return;u(e,t.level,t.levels)}catch(e){l?A(`error`,`model options are stale: ${String(e)}`):s()?(i.textContent=`Could not load models: ${String(e)}`,i.setAttribute(`role`,`alert`)):A(`error`,`model options failed: ${String(e)}`)}}async function Ts(e,t,n){await Es(e,t)&&n&&await Ds(e,n)}async function Es(e,t){let n=W;e===U.currentId()&&(W=t,q());let r=await _(`/api/sessions/${e}/model`,t);if(!r.ok){let{error:t}=await r.json().catch(()=>({}));return e===U.currentId()&&(W=n,q()),A(`error`,`model change failed: ${t??r.status}`),!1}let{model:i}=await r.json();return e===U.currentId()&&i&&(W=i,q()),!0}async function Ds(e,t){let n=await _(`/api/sessions/${e}/thinking`,{level:t});if(!n.ok){A(`error`,`reasoning change failed: ${n.status}`);return}let{level:r}=await n.json();e===U.currentId()&&(K=r,Ss())}function Os(e,t,n){let r=c(`button`,`icon-btn h-11 w-11`,y(ze));r.setAttribute(`aria-label`,`Back to session actions`),r.onclick=()=>ks(e);let i=c(`button`,`icon-btn h-11 w-11`,y(a));i.setAttribute(`aria-label`,n),i.onclick=g;let o=c(`span`,`min-w-0 flex-1 truncate text-sm font-medium`,t);return o.title=o.textContent??``,c(`div`,`flex items-center gap-2 border-b border-neutral-200 pb-2 mb-2`,r,o,i)}function ks(t){let n=U.currentSession(),r=U.continuousOpen(),i=n?{}:{disabled:!0,hint:`after the first reply`},a=[...r?[{label:`Search`,hint:_i(`k`),onSelect:()=>{g(),Zo()}}]:[],{label:`Session info`,separatorBefore:r,onSelect:()=>n&&Cs(t,n,()=>ks(t)),...i},{label:`Browse files`,hint:_i(os),onSelect:()=>{g(),U.openFiles()}},{label:`Model & reasoning…`,separatorBefore:!0,hint:W?.id??`…`,onSelect:()=>n&&void ws(t,n.id,n),...i},{label:`Settings`,separatorBefore:!0,onSelect:()=>{g(),U.openSettings()}}];ue(t,a,r?`Pier`:n?n.title??e(n.cwd):`Session`)}var As=`pier.theme`,js=[`system`,`light`,`dark`],Ms=window.matchMedia(`(prefers-color-scheme: dark)`),Ns={system:Je,light:tt,dark:Ye},Ps=()=>{let e=null;try{e=localStorage.getItem(As)}catch{return`system`}return e===`light`||e===`dark`?e:`system`},Fs=()=>{let e=Ps();return e===`system`?Ms.matches?`dark`:`light`:e};function Is(){let e=Fs();document.documentElement.dataset.theme=e;let n=getComputedStyle(document.documentElement).getPropertyValue(`--workbench-canvas`).trim();t(`meta[name="theme-color"]`).setAttribute(`content`,n)}function Ls(){let e=t(`#theme-toggle`),n=()=>{let t=Ps();e.title=`Theme: ${t}${t===`system`?` (${Fs()})`:``}`,e.replaceChildren(y(Ns[t])),e.setAttribute(`aria-label`,e.title),Is()};e.onclick=()=>{let e=js[(js.indexOf(Ps())+1)%js.length];try{e===`system`?localStorage.removeItem(As):localStorage.setItem(As,e)}catch{}n()},Ms.addEventListener(`change`,n),n()}var Rs=`https://github.com/timqi/pier`,zs=[`text-neutral-400`,`hover:text-neutral-700`],Bs=[`rounded-full`,`bg-emerald-50`,`px-1.5`,`text-emerald-700`,`ring-1`,`ring-inset`,`ring-emerald-600/20`,`hover:bg-emerald-100`],Vs=18e5,J=null,Hs=t(`#version`);function Us(e){let t=J?.available===!0&&J.latest!==null;Hs.textContent=`v${e}`,Hs.title=t?`Pier ${J?.latest} is out`:``,Hs.classList.remove(...t?zs:Bs),Hs.classList.add(...t?Bs:zs)}var Ws=(e,t=`px-3 py-1 text-[12px] leading-snug text-neutral-500`)=>c(`p`,t,e);function Gs(){let e=c(`div`,`flex w-72 flex-col gap-1 py-1`);if(!J)return e.append(Ws(`Checking the registry…`)),e;let{current:t,latest:n,available:r,canApply:i,problem:a}=J,o=c(`span`,``,``),s=(e,t)=>d(o,e?`failed`:`idle`,t),l=c(`div`,`flex items-center gap-2 px-3 py-1.5`);if(e.append(Ws(r?`Pier ${n} is out`:`Pier ${t}`,`px-3 py-1 text-[12.5px] font-medium text-neutral-700`),Ws(r?`You are running ${t}.`:n===null?`The registry could not be reached, so this may not be the latest.`:`This is the latest release.`)),a&&e.append(Ws(a,`mx-3 my-1 rounded-md bg-red-50 px-2 py-1.5 text-[11.5px] leading-snug text-red-700`)),r&&i&&!a){let e=p(`Update now`,!0);e.onclick=()=>void(async()=>{e.disabled=!0,s(!1,`starting the updater…`);let t=await _(`/api/update`,{});if(!t.ok)return e.disabled=!1,s(!0,await v(t,`Could not update`));let{draining:n}=await t.json();s(!1,n?`Waiting for running work to finish — Pier then installs and restarts.`:`Installing — Pier restarts once it is on disk, and this page reconnects on its own.`)})(),l.append(e)}l.append(Object.assign(c(`a`,`btn text-[12.5px] no-underline`,`Source`),{href:r?`${Rs}/releases`:Rs,target:`_blank`,rel:`noreferrer`,title:`Pier is free software (AGPL-3.0)`})),e.append(l,c(`div`,`px-3`,o)),r&&!i&&!a&&e.append(Ws(`No service manager owns this Pier, so it cannot restart itself — update it with: pier update`));let u=ee(`Update automatically`,i?`Installs a new release once nothing is running — no turn in flight, no task run.`:`Needs the systemd service (pier service install); nothing here can restart Pier.`,J.autoUpdate,e=>void(async()=>{J&&(J.autoUpdate=e);let t=await _(`/api/settings`,{autoUpdate:e},`PUT`);t.ok||(J&&(J.autoUpdate=!e),f&&(f.checked=!e),s(!0,await v(t,`Could not save`)))})()),f=u.querySelector(`input`);return f&&(f.disabled=!i),e.append(c(`div`,`mt-1 border-t border-neutral-200 px-3 pb-1 pt-2`,u)),e}async function Ks(e){let t=await Te(`/api/update`,`Update check failed`);t.ok&&Us((J=t.value).current||e)}function qs(e){Us(e),Hs.onclick=e=>{e.preventDefault(),pe(Hs,Gs())};let t=()=>void Ks(e);t(),setInterval(t,Vs)}var Y,Js=t(`#composer`),Ys=[t(`#bar`),E,Js],Xs=()=>$s===null,Zs=new Map,Qs=new Map,$s=null,ec=0,tc=new Map,nc={settings:`Settings`};function rc(e,t,n){let r=fc();r&&(r.kind!==`console`||r.name!==e)&&tc.set(e,r),mc({kind:`console`,name:e,arg:t,query:n}),$s=e;for(let e of Ys)e.classList.add(`hidden`);Xi();for(let[t,n]of Zs)t!==e&&n.hide();ic(e,t,n,++ec)}async function ic(e,n,r,i){let a=Zs.get(e);if(!a){let n=Qs.get(e);if(!n){let r=t(`#${e}-view`);n=yc[e](r).catch(t=>(console.warn(`${e} view failed to load`,t),o(r,()=>r.replaceChildren(c(`p`,`p-4 text-[13px] text-red-600`,`Could not load ${nc[e]} — reload the page.`))))),Qs.set(e,n)}a=await n,Zs.set(e,a),Qs.delete(e)}$s===e&&i===ec&&a.show(n,r)}var ac=(e,t)=>void ve(()=>import(`./explorer-BoU77faI.js`).then(n=>n.openFiles(Y.currentSession(),e,t)),__vite__mapDeps([0,1,2])),oc=()=>void ve(()=>import(`./explorer-BoU77faI.js`).then(e=>e.toggleFiles(Y.currentSession())),__vite__mapDeps([0,1,2]));function sc(e){let t=Y.currentId(),n=tc.get(e)??(t?hc(t):lc);tc.delete(e),mc(n)}function cc(){if($s){$s=null;for(let e of Zs.values())e.hide();for(let e of Ys)e.classList.remove(`hidden`);Xi(),Y.maybeAckRead()}}var lc={kind:`conversation`},uc=e=>e.kind===`session`?`#/session/${encodeURIComponent(e.id)}`:e.kind===`conversation`?`#/conversation`:`#/${e.name}${e.arg?`/${encodeURIComponent(e.arg)}`:``}${e.query?`?${e.query}`:``}`,dc={config:`files`,channels:`channels`,providers:`models`};function fc(){let e=location.hash.replace(/^#\/?/,``),t=e.indexOf(`?`),[n=``,r]=(t<0?e:e.slice(0,t)).split(`/`),i=t<0?void 0:e.slice(t+1)||void 0,a;try{a=r?decodeURIComponent(r):void 0}catch{return null}return dc[n]?{kind:`console`,name:`settings`,arg:dc[n]}:Object.hasOwn(nc,n)?{kind:`console`,name:n,arg:a,query:i}:n===`session`&&a?{kind:`session`,id:a}:n===`conversation`?lc:null}var pc=!1;function mc(e,t=!1){if(pc)return;let n=uc(e);location.hash!==n&&(t?history.replaceState(null,``,n):location.hash=n)}var hc=e=>Y.inConversation(e)?lc:{kind:`session`,id:e},gc=e=>mc(hc(e)),_c=()=>mc(lc);function vc(){let e=fc()??lc;pc=!0;try{e.kind===`conversation`?Y.openContinuous():e.kind===`session`?e.id===Y.currentId()?cc():Y.select(e.id):(Y.currentId()||Y.openContinuous(),rc(e.name,e.arg,e.query))}finally{pc=!1}e.kind===`conversation`?mc(lc,!0):e.kind===`session`&&mc(hc(e.id),!0)}var yc={settings:async e=>(await ve(async()=>{let{createSettingsView:e}=await import(`./settings-BprIId_R.js`);return{createSettingsView:e}},__vite__mapDeps([3,1,2]))).createSettingsView(e,()=>dt(Y.sessions()),e=>rc(`settings`,e),ac,()=>sc(`settings`))};function bc(e){Y=e,window.onhashchange=vc}var X=[],xc=null,Sc=0,Cc=!1,Z=null,wc=`idle`,Tc=null,Ec=0,Dc=!1,Oc=!1,kc=[],Ac=null,Q=[],jc=!1,Mc=!1,Nc=0,Pc=null,Fc=()=>kc[0]?.sessionId??null,Ic=e=>kc.some(t=>t.sessionId===e),Lc=()=>jc||Z!==null&&Z===Fc(),Rc={first:`new session`,idle:`new session — idle 1h`,lost:`new session — the previous one was lost`,full:`new session — the previous one was full`,new:`new session — /new`};async function zc(){let e=await fetch(`/api/continuous`);if(!e.ok)throw Error(await v(e,`Could not load the continuous conversation`));let{chain:t,rotateAt:n}=await e.json();if(!Array.isArray(t)||typeof n!=`number`||!(n>0))throw Error(`The continuous conversation's chain is malformed`);return{chain:t,rotateAt:n}}async function Bc(){let e=await fetch(`/api/continuous/open`);if(!e.ok)throw Error(await v(e,`Could not load the open items`));return await e.json()}var Vc=fe(async()=>{Pc=await Bc(),z()});function Hc(){let e=Fc();if(e)return void tl(e);if(jc)return cc(),_c();++Sc,I(),cc(),Tc?.close(),Tc=null,Z=null,xc=null,wc=`idle`,jc=!0,Q=[],nl(),A(`system`,`The continuous conversation — your first message starts it.`),_c(),z(),q(),Yi(),Gi()}async function Uc(e){Q=[],jc=!1,await tl(e),kc.length>1&&await Wc()}async function Wc(){let e=Fc(),t=kc[Q.length+1];if(!(Mc||!e||!t||Z!==e)){Mc=!0;try{let n=await Te(`/api/sessions/${t.sessionId}/history`,`Could not load the earlier session`);if(Z!==e)return;Q.unshift(n.ok?{member:t,turns:n.value.turns,runs:n.value.backgroundRuns}:{member:t,turns:[],runs:[],error:n.error});let r=E.scrollHeight-E.scrollTop,i=document.activeElement?.id===`chain-pager`;await rl(e,!0),E.scrollTop=E.scrollHeight-r,i&&document.getElementById(`chain-pager`)?.focus({preventScroll:!0}),Nc=Date.now()}finally{Mc=!1}}}function Gc(){Q.length<kc.length-1&&Qr(()=>void Wc());for(let[e,t]of Q.entries()){t.error&&A(`error`,t.error),$r(t.turns,`idle`,t.runs,!0);let n=Q[e+1]?.member??kc[0];Zr(Rc[n.reason],n.startedAt)}}E.addEventListener(`scroll`,()=>{E.scrollTop<40&&Lc()&&!Cc&&Date.now()-Nc>500&&Wc()},{passive:!0});function Kc(e){X=e.map(e=>({...e,title:lt(e.title)})),X.sort((e,t)=>t.createdAt-e.createdAt),z(),q(),qc()}var $=fe(async()=>{let[e,t,n]=await Promise.all([ke(`/api/sessions`,`Could not load sessions`),zc(),Bc()]),r=Lc(),i=Fc();kc=t.chain,Ac=t.rotateAt,Pc=n,Kc(e);let a=Fc();r&&a&&a!==i&&await Uc(a)});function qc(){if(document.hidden||!document.hasFocus()||!Xs())return;let e=X.find(e=>e.id===Z);e?.unread&&(e.unread=!1,z(),fetch(`/api/sessions/${e.id}/read`,{method:`POST`}))}function Jc(){return X.find(e=>e.id===Z)??(xc&&xc.id===Z?xc:void 0)}async function Yc(e){let t=await Te(`/api/sessions/${e}`,`failed to load session`);Z!==e||!t.ok||(xc={...t.value,title:lt(t.value.title)},q())}function Xc(e,t){let n=X.find(t=>t.id===e);!n||n.title||!t.trim()||(n.title=t.trim().slice(0,80),z(),q())}function Zc(e){wc=e;let t=X.find(e=>e.id===Z);t&&(t.state=e),z(),q(),Yi(),e===`idle`&&$()}function Qc(e){if(!(e.sessionId!==Z||e.seq<=Ec))switch(Ec=e.seq,e.type){case`turn-start`:Dc=!0,Oc=!1;break;case`system-input`:Gr(),vr(e.text,e.origin),e.origin.kind===`task-message`&&Qi(e.origin.messageId);break;case`task-status`:yn(e.run);break;case`user-message`:{let t=ot(e.text).text;if(Xc(e.sessionId,t),Ki(t))break;Gr(),A(`user`,e.text,!1,e.ts),O();break}case`text-start`:Gr();break;case`text-delta`:Wr(e.text);break;case`thinking-delta`:Gr(),qn(e.ts,e.text);break;case`tool-start`:Gr(),Wn(e.ts,e.toolCallId,e.toolName,e.args);break;case`tool-end`:Kn(e.toolCallId,e.isError,e.output);break;case`turn-end`:Dc=!1,qr(e.text,e.meta),e.meta&&_s(e.meta);break;case`queue-state`:Zi(e.steering,e.followUp);break;case`context-compacted`:Gr(),A(`system`,`Context compacted — ${Ae(e.before)} → ${Ae(e.after)}`,!1,e.ts),O();break;case`error`:Hn(),A(`error`,e.message),Oc&&(Oc=!1,Zc(`idle`));break;case`state`:Oc=!1,e.state===`idle`&&Dc&&(Dc=!1,Jr()),e.state===`idle`&&Zi([],[]),Zc(e.state)}}function $c(){let e=new EventSource(`/api/events`);e.onopen=()=>void $(),e.onerror=()=>fi(e,`Workspace`),e.onmessage=e=>{let t=JSON.parse(e.data);if(t.type===`sessions-changed`){$();return}if(t.type===`tasks-changed`||t.type===`task-run-changed`||t.type===`task-message-changed`||t.type===`task-group-changed`){t.type===`task-run-changed`&&$();return}if(t.type===`open-items-changed`){Vc();return}if(Pc&&[...Pc.items.flatMap(e=>e.runs),...Pc.unlisted].some(e=>e.targetSessionId===t.sessionId)&&Vc(),t.sessionId===Z)return;let n=X.find(e=>e.id===t.sessionId);if(!n){$();return}n.state=t.state,z(),t.sessionId===Fc()&&q()}}function el(e,t,n){Tc?.close();let r=new EventSource(`/api/sessions/${e}/events?after=${t}`),i=()=>Tc===r&&Z===e&&n===Sc;r.onmessage=e=>{i()&&Qc(JSON.parse(e.data))},r.addEventListener(`reset`,()=>{i()&&rl(e)}),r.onerror=()=>{i()&&fi(r,`Session`)},Tc=r}async function tl(e){Ic(e)&&(e=Fc()),(e!==Z||jc)&&(Q=[],jc=!1),cc(),gc(e),!(e===Z&&(Tc||Cc))&&(++Sc,I(),Z=e,xc=null,X.some(t=>t.id===e)||Yc(e),wc=X.find(t=>t.id===e)?.state??`idle`,ya(e),z(),q(),qc(),await rl(e))}function nl(){Yr(),Zi([],[],[]),sa([]),hs(),Dc=!1,Oc=!1,Ji(),Ec=0}async function rl(e,t=!1){if(Z!==e)return;let n=++Sc;Tc?.close(),Tc=null,Cc=!0,t||(nl(),Xr(!0));let r=await Te(`/api/sessions/${e}/history`,`failed to load session`);if(Z!==e||n!==Sc)return;if(Cc=!1,t&&nl(),!r.ok){Xr(!1),A(`error`,r.error);return}let i=r.value;Lc()&&Gc(),$r(i.turns,i.state,i.backgroundRuns),Ec=i.lastSeq,Dc=i.state===`streaming`,Zc(i.state),Zi(i.queue.steering,i.queue.followUp,i.queue.parked),sa(i.skills);let a=i.turns.reduce((e,t)=>t.meta?.completedAt??e,null);gs(i.model,i.context,i.thinkingLevel,a),el(e,`${i.epoch}:${i.lastSeq}`,n)}ci(),ne(),di(),Ls();var il=e=>{Oc=e===`streaming`,Zc(e)},al=async e=>{Z===e&&await rl(e)};Qn({sessionId:()=>Z,sessionCwd:()=>Jc()?.cwd??null,sessionChannel:()=>Jc()?.channel??null,sessionState:()=>wc,select:e=>void tl(e),send:(e,t)=>void Sa(e,t),ownTurn:e=>{qi(e),il(`streaming`)},reload:al}),Ta({sessionId:()=>Z,sessionState:()=>wc,chatVisible:Xs,setState:il,reload:al,continuous:Lc,headMoved:()=>void $()}),Co({sessions:()=>X,currentId:()=>Z,select:e=>void tl(e),chain:()=>kc,openContinuous:Hc,open:()=>Pc}),Qo({sessions:()=>X,loadSessions:$,select:tl,openContinuous:Hc,openConsole:rc}),as({currentId:()=>Z,currentSession:Jc,openFiles:ac,toggleFiles:oc,openSettings:()=>rc(`settings`),continuousOpen:Lc,rotateAt:()=>Ac,openContinuous:Hc}),bc({sessions:()=>X,currentId:()=>Z,currentSession:Jc,select:e=>void tl(e),inConversation:Ic,openContinuous:Hc,maybeAckRead:qc}),qs(`0.3.1`),Ba(),document.addEventListener(`gesturestart`,e=>e.preventDefault()),document.addEventListener(`visibilitychange`,qc),window.addEventListener(`focus`,qc),$c(),$().then(vc);export{Ci as a,xi as i,rs as n,We as o,Ga as r,is as t};
@@ -0,0 +1,2 @@
1
+ /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-content:"";--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-green-50:oklch(98.2% .018 155.826);--color-green-500:oklch(72.3% .219 149.579);--color-green-700:oklch(52.7% .154 150.069);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-cyan-500:oklch(71.5% .143 215.221);--color-cyan-700:oklch(52% .105 223.128);--color-sky-50:oklch(97.7% .013 236.62);--color-sky-200:oklch(90.1% .058 230.902);--color-sky-500:oklch(68.5% .169 237.323);--color-sky-700:oklch(50% .134 242.749);--color-blue-700:oklch(48.8% .243 264.376);--color-indigo-50:oklch(96.2% .018 272.314);--color-indigo-100:oklch(93% .034 272.788);--color-indigo-200:oklch(87% .065 274.039);--color-indigo-300:oklch(78.5% .115 274.713);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-indigo-800:oklch(39.8% .195 277.366);--color-violet-700:oklch(49.1% .27 292.581);--color-neutral-50:oklch(98.5% 0 none);--color-neutral-100:oklch(97% 0 none);--color-neutral-200:oklch(92.2% 0 none);--color-neutral-300:oklch(87% 0 none);--color-neutral-400:oklch(70.8% 0 none);--color-neutral-500:oklch(55.6% 0 none);--color-neutral-600:oklch(43.9% 0 none);--color-neutral-700:oklch(37.1% 0 none);--color-neutral-800:oklch(26.9% 0 none);--color-neutral-900:oklch(20.5% 0 none);--color-neutral-950:oklch(14.5% 0 none);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-2xl:42rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-normal:0em;--tracking-wide:.025em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--radius-xs:.125rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}body{background:var(--workbench-canvas)}::selection{background:var(--color-indigo-300);color:var(--color-indigo-800)}:focus-visible{outline:2px solid var(--color-indigo-500);outline-offset:3px}input,textarea,select{accent-color:var(--color-indigo-600)}dialog{background:var(--color-white);color:var(--color-neutral-800)}dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}*{scrollbar-width:thin;scrollbar-color:var(--color-neutral-300) transparent}}@layer components{.btn{cursor:pointer;border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-neutral-200);background-color:var(--color-white);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);--tw-shadow:0 1px var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));border-radius:2147483647px}@media (hover:hover){.btn:hover{border-color:var(--color-neutral-300);background-color:var(--color-neutral-50)}}.btn:active{background-color:var(--color-neutral-100)}.btn:disabled{cursor:not-allowed;opacity:.45}@media (hover:hover){.btn:disabled:hover{background-color:var(--color-white)}}.btn-primary{border-color:var(--color-indigo-600);background-color:var(--color-indigo-600);color:var(--color-white);--tw-shadow-color:#4f39f633}@supports (color:color-mix(in lab, red, red)){.btn-primary{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-indigo-600) 20%, transparent) var(--tw-shadow-alpha), transparent)}}@media (hover:hover){.btn-primary:hover{border-color:var(--color-indigo-500);background-color:var(--color-indigo-500)}}.btn-primary:active{background-color:var(--color-indigo-700)}.btn-primary:where([data-theme=dark],[data-theme=dark] *){color:var(--color-neutral-50)}.select{cursor:pointer;appearance:none;background-color:var(--color-white);padding-right:calc(var(--spacing) * 8);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));background-image:var(--select-chevron);background-position:right .5rem center;background-repeat:no-repeat;background-size:.9rem}.icon-btn{height:calc(var(--spacing) * 7);width:calc(var(--spacing) * 7);cursor:pointer;color:var(--color-neutral-400);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));border-radius:2147483647px;flex:none;justify-content:center;align-items:center;display:flex}@media (hover:hover){.icon-btn:hover{background-color:var(--color-neutral-200);color:var(--color-neutral-700)}}.pagehead{min-height:calc(var(--spacing) * 12);align-items:center;gap:calc(var(--spacing) * 2);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 2);white-space:nowrap;flex-wrap:wrap;flex:none;display:flex;overflow-x:auto}.lightbox-btn{height:calc(var(--spacing) * 10);width:calc(var(--spacing) * 10);cursor:pointer;background-color:#0009;border-radius:2147483647px;justify-content:center;align-items:center;display:flex;position:absolute}@supports (color:color-mix(in lab, red, red)){.lightbox-btn{background-color:color-mix(in oklab, var(--color-black) 60%, transparent)}}.lightbox-btn{--tw-leading:1;color:var(--color-white);--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);--tw-ring-color:#ffffff4d;font-size:1.5rem;line-height:1}@supports (color:color-mix(in lab, red, red)){.lightbox-btn{--tw-ring-color:color-mix(in oklab, var(--color-white) 30%, transparent)}}@media (hover:hover){.lightbox-btn:hover{background-color:#000000bf}@supports (color:color-mix(in lab, red, red)){.lightbox-btn:hover{background-color:color-mix(in oklab, var(--color-black) 75%, transparent)}}}.lightbox-btn:where([data-theme=dark],[data-theme=dark] *){color:var(--color-neutral-950)}summary{list-style-type:none}summary::-webkit-details-marker{display:none}.chev{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.15s;flex:none;font-size:10px;transition-duration:.15s;display:inline-block}details[open]>summary .chev,.chev-open .chev{transform:rotate(90deg)}.spinner{height:calc(var(--spacing) * 3);width:calc(var(--spacing) * 3);animation:var(--animate-spin);flex:none}.skeleton{animation:var(--animate-pulse);background-color:var(--color-neutral-200);border-radius:.25rem}.thumb{height:calc(var(--spacing) * 16);width:calc(var(--spacing) * 16);cursor:zoom-in;border-radius:var(--radius-md);border-style:var(--tw-border-style);border-width:1px;border-color:#0000000d;display:inline-block}@supports (color:color-mix(in lab, red, red)){.thumb{border-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.thumb{background-color:#00000005}@supports (color:color-mix(in lab, red, red)){.thumb{background-color:color-mix(in oklab, var(--color-black) 2%, transparent)}}.thumb{object-fit:contain;vertical-align:middle}.thumb:where([data-theme=dark],[data-theme=dark] *){border-color:var(--color-neutral-200);background-color:var(--color-neutral-100)}.thumbs{margin-top:calc(var(--spacing) * 1.5);align-items:center;gap:calc(var(--spacing) * 1.5);flex-wrap:wrap;display:flex}.help code{background-color:var(--color-neutral-100);padding-inline:var(--spacing);font-family:var(--font-mono);color:var(--color-neutral-700);border-radius:.25rem;padding-block:1px;font-size:11.5px}.help a{color:var(--color-indigo-600);text-decoration-line:underline}.help em{font-style:italic}.md{color:var(--tw-prose-body);max-width:65ch}.md :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.md :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}.md :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.md :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.md :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)),.md :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)),.md :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.md :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:decimal}.md :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.md :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.md :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.md :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.md :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.md :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.md :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.md :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.md :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.md :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:disc}.md :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.md :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.md :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}.md :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.md :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em;font-style:italic;font-weight:500}.md :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.md :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.md :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.md :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.md :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.md :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.md :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.md :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.md :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.5}.md :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.md :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.md :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}.md :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.md :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows), 0 3px 0 var(--tw-prose-kbd-shadows);padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;border-radius:.3125rem;padding-inline-start:.375em;font-family:inherit;font-size:.875em;font-weight:500}.md :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.md :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.md :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.md :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)),.md :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.md :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.md :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.md :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)),.md :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)),.md :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.md :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);padding-top:.857143em;padding-inline-end:1.14286em;padding-bottom:.857143em;border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding-inline-start:1.14286em;font-size:.875em;font-weight:400;line-height:1.71429;overflow-x:auto}.md :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;background-color:#0000;border-width:0;border-radius:0;padding:0}.md :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.md :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.md :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){table-layout:auto;width:100%;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.md :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.md :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);vertical-align:bottom;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em;font-weight:600}.md :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.md :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.md :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.md :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.md :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.md :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.md :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.md :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);margin-top:.857143em;font-size:.875em;line-height:1.42857}.md{--tw-prose-body:oklch(37.3% .034 259.733);--tw-prose-headings:oklch(21% .034 264.665);--tw-prose-lead:oklch(44.6% .03 256.802);--tw-prose-links:oklch(21% .034 264.665);--tw-prose-bold:oklch(21% .034 264.665);--tw-prose-counters:oklch(55.1% .027 264.364);--tw-prose-bullets:oklch(87.2% .01 258.338);--tw-prose-hr:oklch(92.8% .006 264.531);--tw-prose-quotes:oklch(21% .034 264.665);--tw-prose-quote-borders:oklch(92.8% .006 264.531);--tw-prose-captions:oklch(55.1% .027 264.364);--tw-prose-kbd:oklch(21% .034 264.665);--tw-prose-kbd-shadows:oklab(21% -.00316127 -.0338527/.1);--tw-prose-code:oklch(21% .034 264.665);--tw-prose-pre-code:oklch(92.8% .006 264.531);--tw-prose-pre-bg:oklch(27.8% .033 256.848);--tw-prose-th-borders:oklch(87.2% .01 258.338);--tw-prose-td-borders:oklch(92.8% .006 264.531);--tw-prose-invert-body:oklch(87.2% .01 258.338);--tw-prose-invert-lead:oklch(70.7% .022 261.325);--tw-prose-invert-counters:oklch(70.7% .022 261.325);--tw-prose-invert-bullets:oklch(44.6% .03 256.802);--tw-prose-invert-hr:oklch(37.3% .034 259.733);--tw-prose-invert-quotes:oklch(96.7% .003 264.542);--tw-prose-invert-quote-borders:oklch(37.3% .034 259.733);--tw-prose-invert-captions:oklch(70.7% .022 261.325);--tw-prose-invert-pre-code:oklch(87.2% .01 258.338);--tw-prose-invert-th-borders:oklch(44.6% .03 256.802);--tw-prose-invert-td-borders:oklch(37.3% .034 259.733);font-size:1rem;line-height:1.75}.md :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.md :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.md :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.md :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.md :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.md :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.md :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.md :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.md :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.md :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.md :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.md :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.md :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.md :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.md :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.md :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.md :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.md :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.md :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.571429em;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em}.md :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.md :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.md :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.md :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.md :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.md{--tw-prose-body:var(--color-neutral-900);--tw-prose-headings:var(--color-neutral-900);--tw-prose-lead:oklch(43.9% 0 none);--tw-prose-links:var(--color-neutral-900);--tw-prose-bold:var(--color-neutral-900);--tw-prose-counters:oklch(55.6% 0 none);--tw-prose-bullets:oklch(87% 0 none);--tw-prose-hr:oklch(92.2% 0 none);--tw-prose-quotes:var(--color-neutral-900);--tw-prose-quote-borders:oklch(92.2% 0 none);--tw-prose-captions:oklch(55.6% 0 none);--tw-prose-kbd:var(--color-neutral-900);--tw-prose-kbd-shadows:#1717171a;--tw-prose-code:oklch(20.5% 0 none);--tw-prose-pre-code:oklch(92.2% 0 none);--tw-prose-pre-bg:oklch(26.9% 0 none);--tw-prose-th-borders:oklch(87% 0 none);--tw-prose-td-borders:oklch(92.2% 0 none);--tw-prose-invert-body:oklch(87% 0 none);--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:oklch(70.8% 0 none);--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:oklch(70.8% 0 none);--tw-prose-invert-bullets:oklch(43.9% 0 none);--tw-prose-invert-hr:oklch(37.1% 0 none);--tw-prose-invert-quotes:oklch(97% 0 none);--tw-prose-invert-quote-borders:oklch(37.1% 0 none);--tw-prose-invert-captions:oklch(70.8% 0 none);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:#ffffff1a;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:oklch(87% 0 none);--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:oklch(43.9% 0 none);--tw-prose-invert-td-borders:oklch(37.1% 0 none);max-width:none;font-size:inherit;line-height:inherit}@supports (color:color-mix(in lab, red, red)){.md{--tw-prose-kbd-shadows:color-mix(in oklab, var(--color-neutral-900) 10%, transparent)}}.md{--tw-prose-code:var(--color-neutral-900);--tw-prose-counters:var(--color-neutral-500);--tw-prose-captions:var(--color-neutral-500);--tw-prose-bullets:var(--color-neutral-300);--tw-prose-th-borders:var(--color-neutral-300);--tw-prose-hr:var(--color-neutral-200);--tw-prose-quote-borders:var(--color-neutral-200);--tw-prose-td-borders:var(--color-neutral-200)}.md a{font-weight:inherit;text-underline-offset:.18em;text-decoration-color:currentColor;text-decoration-thickness:1px}@supports (color:color-mix(in lab, red, red)){.md a{-webkit-text-decoration-color:color-mix(in oklab, currentColor 30%, transparent);-webkit-text-decoration-color:color-mix(in oklab, currentColor 30%, transparent);-webkit-text-decoration-color:color-mix(in oklab, currentColor 30%, transparent);text-decoration-color:color-mix(in oklab, currentColor 30%, transparent)}}.md a{transition:text-decoration-color .12s}.md a:hover,.md a:focus-visible{text-decoration-color:currentColor}@media (pointer:coarse){.md a{padding-block:2px}}.md p,.md ul,.md ol,.md pre,.md blockquote,.md table{margin-block:.5em}.md li{margin-block:.1em}.md li>p,.md :is(ul,ol) :is(ul,ol){margin-block:.2em}.md :first-child{margin-top:0}.md :last-child{margin-bottom:0}.md :is(h1,h2,h3,h4,h5,h6){margin-block:.8em .2em;font-size:1em;font-weight:600;line-height:1.3}.md h1{font-size:1.22em}.md h2{font-size:1.12em}.md hr{margin-block:.9em}.md table{overscroll-behavior-x:contain;width:max-content;max-width:100%;display:block;overflow-x:auto}.md pre{border-radius:var(--radius-xl);border-style:var(--tw-border-style);border-width:1px;border-color:#e5e5e5b3;overflow-x:hidden}@supports (color:color-mix(in lab, red, red)){.md pre{border-color:color-mix(in oklab, var(--color-neutral-200) 70%, transparent)}}.md pre{background-color:var(--color-neutral-50);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 3);white-space:pre-wrap;font-size:13px}.md pre:where([data-theme=dark],[data-theme=dark] *){border-color:var(--color-neutral-200);background-color:var(--color-neutral-100)}.md pre{overflow-wrap:anywhere;color:var(--color-neutral-800)}.md pre code{white-space:inherit;overflow-wrap:inherit}.md :not(pre)>code{background-color:#0000000e;border-radius:.25rem}@supports (color:color-mix(in lab, red, red)){.md :not(pre)>code{background-color:color-mix(in oklab, var(--color-black) 5.5%, transparent)}}.md :not(pre)>code{padding-inline:var(--spacing);--tw-font-weight:var(--font-weight-normal);font-size:.9em;font-weight:var(--font-weight-normal);color:var(--color-neutral-800);padding-block:1px}.md :not(pre)>code:where([data-theme=dark],[data-theme=dark] *){background-color:var(--color-neutral-100)}.md :not(pre)>code:before,.md :not(pre)>code:after{content:none}@media (pointer:coarse){.md :not(pre)>code{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}}code.fileref{cursor:pointer}code.fileref:hover{background-color:var(--color-indigo-50);text-underline-offset:.18em;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.hljs-comment,.hljs-quote{color:var(--color-neutral-400);font-style:italic}.hljs-keyword,.hljs-literal,.hljs-selector-tag,.hljs-type{color:var(--color-violet-700)}.hljs-string,.hljs-regexp,.hljs-addition{color:var(--color-emerald-700)}.hljs-number,.hljs-symbol,.hljs-attr,.hljs-attribute,.hljs-meta{color:var(--color-amber-700)}.hljs-title,.hljs-section,.hljs-name{color:var(--color-blue-700)}.hljs-built_in,.hljs-variable,.hljs-template-variable{color:var(--color-cyan-700)}.hljs-deletion{color:var(--color-red-600)}.hljs-emphasis{font-style:italic}.hljs-strong{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}}@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-x-2{inset-inline:calc(var(--spacing) * 2)}.inset-y-1{inset-block:var(--spacing)}.-top-1\.5{top:calc(var(--spacing) * -1.5)}.top-0{top:0}.top-1{top:var(--spacing)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-\[-8px\]{top:-8px}.top-\[calc\(0\.5rem\+env\(safe-area-inset-top\)\)\]{top:calc(.5rem + env(safe-area-inset-top))}.top-full{top:100%}.-right-1\.5{right:calc(var(--spacing) * -1.5)}.right-0\.5{right:calc(var(--spacing) * .5)}.right-1\.5{right:calc(var(--spacing) * 1.5)}.right-2{right:calc(var(--spacing) * 2)}.right-full{right:100%}.bottom-2{bottom:calc(var(--spacing) * 2)}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.col-span-2{grid-column:span 2/span 2}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.m-0{margin:0}.m-auto{margin:auto}.mx-3{margin-inline:calc(var(--spacing) * 3)}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3{margin-block:calc(var(--spacing) * 3)}.my-4{margin-block:calc(var(--spacing) * 4)}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:decimal}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:disc}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em;font-style:italic;font-weight:500}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows), 0 3px 0 var(--tw-prose-kbd-shadows);padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;border-radius:.3125rem;padding-inline-start:.375em;font-family:inherit;font-size:.875em;font-weight:500}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);padding-top:.857143em;padding-inline-end:1.14286em;padding-bottom:.857143em;border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding-inline-start:1.14286em;font-size:.875em;font-weight:400;line-height:1.71429;overflow-x:auto}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;background-color:#0000;border-width:0;border-radius:0;padding:0}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){table-layout:auto;width:100%;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);vertical-align:bottom;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em;font-weight:600}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);margin-top:.857143em;font-size:.875em;line-height:1.42857}.prose{--tw-prose-body:oklch(37.3% .034 259.733);--tw-prose-headings:oklch(21% .034 264.665);--tw-prose-lead:oklch(44.6% .03 256.802);--tw-prose-links:oklch(21% .034 264.665);--tw-prose-bold:oklch(21% .034 264.665);--tw-prose-counters:oklch(55.1% .027 264.364);--tw-prose-bullets:oklch(87.2% .01 258.338);--tw-prose-hr:oklch(92.8% .006 264.531);--tw-prose-quotes:oklch(21% .034 264.665);--tw-prose-quote-borders:oklch(92.8% .006 264.531);--tw-prose-captions:oklch(55.1% .027 264.364);--tw-prose-kbd:oklch(21% .034 264.665);--tw-prose-kbd-shadows:oklab(21% -.00316127 -.0338527/.1);--tw-prose-code:oklch(21% .034 264.665);--tw-prose-pre-code:oklch(92.8% .006 264.531);--tw-prose-pre-bg:oklch(27.8% .033 256.848);--tw-prose-th-borders:oklch(87.2% .01 258.338);--tw-prose-td-borders:oklch(92.8% .006 264.531);--tw-prose-invert-body:oklch(87.2% .01 258.338);--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:oklch(70.7% .022 261.325);--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:oklch(70.7% .022 261.325);--tw-prose-invert-bullets:oklch(44.6% .03 256.802);--tw-prose-invert-hr:oklch(37.3% .034 259.733);--tw-prose-invert-quotes:oklch(96.7% .003 264.542);--tw-prose-invert-quote-borders:oklch(37.3% .034 259.733);--tw-prose-invert-captions:oklch(70.7% .022 261.325);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:#ffffff1a;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:oklch(87.2% .01 258.338);--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:oklch(44.6% .03 256.802);--tw-prose-invert-td-borders:oklch(37.3% .034 259.733);font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.571429em;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-\[12vh\]{margin-top:12vh}.mr-1{margin-right:var(--spacing)}.mr-auto{margin-right:auto}.mb-1{margin-bottom:var(--spacing)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-auto{margin-bottom:auto}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-4\.5{height:calc(var(--spacing) * 4.5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-16{height:calc(var(--spacing) * 16)}.h-24{height:calc(var(--spacing) * 24)}.h-72{height:calc(var(--spacing) * 72)}.h-\[1\.125rem\]{height:1.125rem}.h-\[3\.25rem\]{height:3.25rem}.h-\[100dvh\]{height:100dvh}.h-\[calc\(100dvh-2rem\)\]{height:calc(100dvh - 2rem)}.h-dvh{height:100dvh}.h-full{height:100%}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\[6rem\]{max-height:6rem}.max-h-\[18\.5rem\]{max-height:18.5rem}.max-h-\[60dvh\]{max-height:60dvh}.max-h-\[60vh\]{max-height:60vh}.max-h-\[65vh\]{max-height:65vh}.max-h-\[70dvh\]{max-height:70dvh}.max-h-\[92dvh\]{max-height:92dvh}.max-h-\[calc\(100dvh-1rem\)\]{max-height:calc(100dvh - 1rem)}.max-h-none{max-height:none}.min-h-0{min-height:0}.min-h-9{min-height:calc(var(--spacing) * 9)}.min-h-10{min-height:calc(var(--spacing) * 10)}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-12{min-height:calc(var(--spacing) * 12)}.w-1{width:var(--spacing)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-1\/3{width:33.3333%}.w-2{width:calc(var(--spacing) * 2)}.w-2\/3{width:66.6667%}.w-2\/5{width:40%}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-3\/5{width:60%}.w-4{width:calc(var(--spacing) * 4)}.w-4\.5{width:calc(var(--spacing) * 4.5)}.w-4\/5{width:80%}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-36{width:calc(var(--spacing) * 36)}.w-44{width:calc(var(--spacing) * 44)}.w-48{width:calc(var(--spacing) * 48)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-\[1\.125rem\]{width:1.125rem}.w-\[36rem\]{width:36rem}.w-\[38rem\]{width:38rem}.w-\[90rem\]{width:90rem}.w-\[min\(24rem\,calc\(100vw-2rem\)\)\]{width:min(24rem,100vw - 2rem)}.w-\[min\(26rem\,calc\(100vw-2rem\)\)\]{width:min(26rem,100vw - 2rem)}.w-\[min\(27rem\,calc\(100vw-3rem\)\)\]{width:min(27rem,100vw - 3rem)}.w-\[min\(32rem\,92vw\)\]{width:min(32rem,92vw)}.w-\[min\(32rem\,calc\(100vw-2rem\)\)\]{width:min(32rem,100vw - 2rem)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-28{max-width:calc(var(--spacing) * 28)}.max-w-40{max-width:calc(var(--spacing) * 40)}.max-w-48{max-width:calc(var(--spacing) * 48)}.max-w-52{max-width:calc(var(--spacing) * 52)}.max-w-72{max-width:calc(var(--spacing) * 72)}.max-w-96{max-width:calc(var(--spacing) * 96)}.max-w-\[40\%\]{max-width:40%}.max-w-\[45vw\]{max-width:45vw}.max-w-\[92vw\]{max-width:92vw}.max-w-\[calc\(100\%-3em\)\]{max-width:calc(100% - 3em)}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-\[min\(42rem\,calc\(100vw-1rem\)\)\]{max-width:min(42rem,100vw - 1rem)}.max-w-full{max-width:100%}.max-w-none{max-width:none}.min-w-0{min-width:0}.min-w-11{min-width:calc(var(--spacing) * 11)}.min-w-32{min-width:calc(var(--spacing) * 32)}.min-w-60{min-width:calc(var(--spacing) * 60)}.min-w-\[2\.5em\]{min-width:2.5em}.flex-1{flex:1}.flex-none{flex:none}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.shrink-\[999\]{flex-shrink:999}.grow{flex-grow:1}.basis-0{flex-basis:0}.basis-full{flex-basis:100%}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.cursor-default{cursor:default}.cursor-help{cursor:help}.cursor-pointer{cursor:pointer}.cursor-zoom-in{cursor:zoom-in}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.list-decimal{list-style-type:decimal}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.grid-cols-\[auto_minmax\(0\,1fr\)\]{grid-template-columns:auto minmax(0,1fr)}.grid-cols-\[minmax\(8rem\,1fr\)_minmax\(8rem\,auto\)_minmax\(9rem\,auto\)\]{grid-template-columns:minmax(8rem,1fr) minmax(8rem,auto) minmax(9rem,auto)}.grid-cols-subgrid{grid-template-columns:subgrid}.flex-col{flex-direction:column}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-1{row-gap:var(--spacing)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px * var(--tw-divide-x-reverse));border-inline-end-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}:where(.divide-neutral-200>:not(:last-child)){border-color:var(--color-neutral-200)}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-\[1\.75rem\]{border-radius:1.75rem}.rounded-\[8px\]{border-radius:8px}.rounded-\[10px\]{border-radius:10px}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-xs{border-radius:var(--radius-xs)}.rounded-t-3xl{border-top-left-radius:var(--radius-3xl);border-top-right-radius:var(--radius-3xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-black\/5{border-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.border-black\/5{border-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.border-black\/\[0\.08\]{border-color:#00000014}@supports (color:color-mix(in lab, red, red)){.border-black\/\[0\.08\]{border-color:color-mix(in oklab, var(--color-black) 8%, transparent)}}.border-indigo-200{border-color:var(--color-indigo-200)}.border-indigo-300{border-color:var(--color-indigo-300)}.border-neutral-100{border-color:var(--color-neutral-100)}.border-neutral-200{border-color:var(--color-neutral-200)}.border-neutral-200\/70{border-color:#e5e5e5b3}@supports (color:color-mix(in lab, red, red)){.border-neutral-200\/70{border-color:color-mix(in oklab, var(--color-neutral-200) 70%, transparent)}}.border-neutral-300{border-color:var(--color-neutral-300)}.border-transparent{border-color:#0000}.border-l-amber-400{border-left-color:var(--color-amber-400)}.border-l-cyan-500{border-left-color:var(--color-cyan-500)}.border-l-green-500{border-left-color:var(--color-green-500)}.border-l-neutral-300{border-left-color:var(--color-neutral-300)}.border-l-neutral-400{border-left-color:var(--color-neutral-400)}.border-l-red-400{border-left-color:var(--color-red-400)}.border-l-red-500{border-left-color:var(--color-red-500)}.bg-\(--workbench-canvas\){background-color:var(--workbench-canvas)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-100{background-color:var(--color-amber-100)}.bg-amber-100\/80{background-color:#fef3c6cc}@supports (color:color-mix(in lab, red, red)){.bg-amber-100\/80{background-color:color-mix(in oklab, var(--color-amber-100) 80%, transparent)}}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-black\/15{background-color:#00000026}@supports (color:color-mix(in lab, red, red)){.bg-black\/15{background-color:color-mix(in oklab, var(--color-black) 15%, transparent)}}.bg-black\/\[0\.04\]{background-color:#0000000a}@supports (color:color-mix(in lab, red, red)){.bg-black\/\[0\.04\]{background-color:color-mix(in oklab, var(--color-black) 4%, transparent)}}.bg-black\/\[0\.05\]{background-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.bg-black\/\[0\.05\]{background-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-emerald-200\/80{background-color:#a4f4cfcc}@supports (color:color-mix(in lab, red, red)){.bg-emerald-200\/80{background-color:color-mix(in oklab, var(--color-emerald-200) 80%, transparent)}}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-500{background-color:var(--color-green-500)}.bg-indigo-50{background-color:var(--color-indigo-50)}.bg-indigo-100{background-color:var(--color-indigo-100)}.bg-indigo-600{background-color:var(--color-indigo-600)}.bg-neutral-50{background-color:var(--color-neutral-50)}.bg-neutral-50\/50{background-color:#fafafa80}@supports (color:color-mix(in lab, red, red)){.bg-neutral-50\/50{background-color:color-mix(in oklab, var(--color-neutral-50) 50%, transparent)}}.bg-neutral-50\/60{background-color:#fafafa99}@supports (color:color-mix(in lab, red, red)){.bg-neutral-50\/60{background-color:color-mix(in oklab, var(--color-neutral-50) 60%, transparent)}}.bg-neutral-100{background-color:var(--color-neutral-100)}.bg-neutral-300{background-color:var(--color-neutral-300)}.bg-neutral-400{background-color:var(--color-neutral-400)}.bg-neutral-700{background-color:var(--color-neutral-700)}.bg-neutral-800{background-color:var(--color-neutral-800)}.bg-neutral-800\/95{background-color:#262626f2}@supports (color:color-mix(in lab, red, red)){.bg-neutral-800\/95{background-color:color-mix(in oklab, var(--color-neutral-800) 95%, transparent)}}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-200\/70{background-color:#ffcacab3}@supports (color:color-mix(in lab, red, red)){.bg-red-200\/70{background-color:color-mix(in oklab, var(--color-red-200) 70%, transparent)}}.bg-red-400{background-color:var(--color-red-400)}.bg-sky-50{background-color:var(--color-sky-50)}.bg-sky-500{background-color:var(--color-sky-500)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\/15{background-color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.bg-white\/15{background-color:color-mix(in oklab, var(--color-white) 15%, transparent)}}.bg-white\/85{background-color:#ffffffd9}@supports (color:color-mix(in lab, red, red)){.bg-white\/85{background-color:color-mix(in oklab, var(--color-white) 85%, transparent)}}.object-contain{object-fit:contain}.p-0{padding:0}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-px{padding-block:1px}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-1\.5{padding-right:calc(var(--spacing) * 1.5)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pb-0\.5{padding-bottom:calc(var(--spacing) * .5)}.pb-1{padding-bottom:var(--spacing)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pb-\[calc\(0\.25rem\+env\(safe-area-inset-bottom\)\)\]{padding-bottom:calc(.25rem + env(safe-area-inset-bottom))}.pl-0\.5{padding-left:calc(var(--spacing) * .5)}.pl-1\.5{padding-left:calc(var(--spacing) * 1.5)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-12{padding-left:calc(var(--spacing) * 12)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.75rem\]{font-size:.75rem}.text-\[0\.875rem\]{font-size:.875rem}.text-\[0\.6875rem\]{font-size:.6875rem}.text-\[0\.8125rem\]{font-size:.8125rem}.text-\[0\.9375rem\]{font-size:.9375rem}.text-\[1\.0625rem\]{font-size:1.0625rem}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11\.5px\]{font-size:11.5px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[16px\]{font-size:16px}.text-\[17px\]{font-size:17px}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-7{--tw-leading:calc(var(--spacing) * 7);line-height:calc(var(--spacing) * 7)}.leading-\[1\.5\]{--tw-leading:1.5;line-height:1.5}.leading-\[1\.45\]{--tw-leading:1.45;line-height:1.45}.leading-\[1\.55\]{--tw-leading:1.55;line-height:1.55}.leading-\[18px\]{--tw-leading:18px;line-height:18px}.leading-none{--tw-leading:1;line-height:1}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.02em\]{--tw-tracking:.02em;letter-spacing:.02em}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-amber-800{color:var(--color-amber-800)}.text-cyan-700{color:var(--color-cyan-700)}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-700{color:var(--color-emerald-700)}.text-green-700{color:var(--color-green-700)}.text-indigo-500{color:var(--color-indigo-500)}.text-indigo-600{color:var(--color-indigo-600)}.text-indigo-700{color:var(--color-indigo-700)}.text-indigo-800{color:var(--color-indigo-800)}.text-inherit{color:inherit}.text-neutral-100{color:var(--color-neutral-100)}.text-neutral-300{color:var(--color-neutral-300)}.text-neutral-400{color:var(--color-neutral-400)}.text-neutral-500{color:var(--color-neutral-500)}.text-neutral-600{color:var(--color-neutral-600)}.text-neutral-700{color:var(--color-neutral-700)}.text-neutral-800{color:var(--color-neutral-800)}.text-neutral-900{color:var(--color-neutral-900)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-sky-700{color:var(--color-sky-700)}.text-white{color:var(--color-white)}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-60{opacity:.6}.opacity-85{opacity:.85}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xs{--tw-shadow:0 1px var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-8{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(8px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-amber-100{--tw-ring-color:var(--color-amber-100)}.ring-amber-200{--tw-ring-color:var(--color-amber-200)}.ring-emerald-200{--tw-ring-color:var(--color-emerald-200)}.ring-emerald-600\/20{--tw-ring-color:#00976733}@supports (color:color-mix(in lab, red, red)){.ring-emerald-600\/20{--tw-ring-color:color-mix(in oklab, var(--color-emerald-600) 20%, transparent)}}.ring-indigo-50{--tw-ring-color:var(--color-indigo-50)}.ring-indigo-200\/70{--tw-ring-color:#c7d2ffb3}@supports (color:color-mix(in lab, red, red)){.ring-indigo-200\/70{--tw-ring-color:color-mix(in oklab, var(--color-indigo-200) 70%, transparent)}}.ring-neutral-200{--tw-ring-color:var(--color-neutral-200)}.ring-neutral-800{--tw-ring-color:var(--color-neutral-800)}.ring-red-200{--tw-ring-color:var(--color-red-200)}.ring-sky-200{--tw-ring-color:var(--color-sky-200)}.ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.ring-offset-white{--tw-ring-offset-color:var(--color-white)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.select-none{-webkit-user-select:none;user-select:none}.ring-inset{--tw-ring-inset:inset}@media (hover:hover){.group-hover\:block:is(:where(.group):hover *){display:block}.group-hover\:text-indigo-500:is(:where(.group):hover *){color:var(--color-indigo-500)}.group-hover\:opacity-100:is(:where(.group):hover *),.group-hover\/code\:opacity-100:is(:where(.group\/code):hover *){opacity:1}}.peer-checked\:border-indigo-200:is(:where(.peer):checked~*){border-color:var(--color-indigo-200)}.peer-checked\:bg-indigo-50:is(:where(.peer):checked~*){background-color:var(--color-indigo-50)}.peer-checked\:bg-indigo-600:is(:where(.peer):checked~*){background-color:var(--color-indigo-600)}.peer-checked\:font-semibold:is(:where(.peer):checked~*){--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.peer-checked\:text-indigo-700:is(:where(.peer):checked~*){color:var(--color-indigo-700)}.peer-focus-visible\:ring-2:is(:where(.peer):focus-visible~*){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.peer-focus-visible\:ring-indigo-200:is(:where(.peer):focus-visible~*){--tw-ring-color:var(--color-indigo-200)}.peer-focus-visible\:outline-2:is(:where(.peer):focus-visible~*){outline-style:var(--tw-outline-style);outline-width:2px}.peer-focus-visible\:outline-indigo-500:is(:where(.peer):focus-visible~*){outline-color:var(--color-indigo-500)}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-45:is(:where(.peer):disabled~*){opacity:.45}.marker\:text-neutral-400 ::marker{color:var(--color-neutral-400)}.marker\:text-neutral-400::marker{color:var(--color-neutral-400)}.marker\:text-neutral-400 ::-webkit-details-marker{color:var(--color-neutral-400)}.marker\:text-neutral-400::-webkit-details-marker{color:var(--color-neutral-400)}.placeholder\:text-neutral-400::placeholder{color:var(--color-neutral-400)}.backdrop\:bg-black\/25::backdrop{background-color:#00000040}@supports (color:color-mix(in lab, red, red)){.backdrop\:bg-black\/25::backdrop{background-color:color-mix(in oklab, var(--color-black) 25%, transparent)}}.backdrop\:bg-black\/30::backdrop{background-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.backdrop\:bg-black\/30::backdrop{background-color:color-mix(in oklab, var(--color-black) 30%, transparent)}}.backdrop\:bg-black\/40::backdrop{background-color:#0006}@supports (color:color-mix(in lab, red, red)){.backdrop\:bg-black\/40::backdrop{background-color:color-mix(in oklab, var(--color-black) 40%, transparent)}}.backdrop\:bg-black\/70::backdrop{background-color:#000000b3}@supports (color:color-mix(in lab, red, red)){.backdrop\:bg-black\/70::backdrop{background-color:color-mix(in oklab, var(--color-black) 70%, transparent)}}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:top-0\.5:after{content:var(--tw-content);top:calc(var(--spacing) * .5)}.after\:left-0\.5:after{content:var(--tw-content);left:calc(var(--spacing) * .5)}.after\:h-3:after{content:var(--tw-content);height:calc(var(--spacing) * 3)}.after\:w-3:after{content:var(--tw-content);width:calc(var(--spacing) * 3)}.after\:rounded-full:after{content:var(--tw-content);border-radius:2147483647px}.after\:bg-white:after{content:var(--tw-content);background-color:var(--color-white)}.after\:shadow-sm:after{content:var(--tw-content);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.after\:transition-transform:after{content:var(--tw-content);transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.peer-checked\:after\:translate-x-3:is(:where(.peer):checked~*):after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * 3);translate:var(--tw-translate-x) var(--tw-translate-y)}.first\:pt-2:first-child{padding-top:calc(var(--spacing) * 2)}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}.open\:flex:is([open],:popover-open,:open){display:flex}.open\:bg-amber-50:is([open],:popover-open,:open){background-color:var(--color-amber-50)}.open\:bg-black\/\[0\.02\]:is([open],:popover-open,:open){background-color:#00000005}@supports (color:color-mix(in lab, red, red)){.open\:bg-black\/\[0\.02\]:is([open],:popover-open,:open){background-color:color-mix(in oklab, var(--color-black) 2%, transparent)}}.open\:bg-red-50:is([open],:popover-open,:open){background-color:var(--color-red-50)}.open\:py-2:is([open],:popover-open,:open){padding-block:calc(var(--spacing) * 2)}.open\:text-neutral-500:is([open],:popover-open,:open){color:var(--color-neutral-500)}.open\:ring-1:is([open],:popover-open,:open){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.open\:ring-neutral-200:is([open],:popover-open,:open){--tw-ring-color:var(--color-neutral-200)}.open\:ring-inset:is([open],:popover-open,:open){--tw-ring-inset:inset}.focus-within\:border-indigo-400:focus-within{border-color:var(--color-indigo-400)}@media (hover:hover){.hover\:border-indigo-300:hover{border-color:var(--color-indigo-300)}.hover\:border-neutral-300:hover{border-color:var(--color-neutral-300)}.hover\:bg-amber-100:hover{background-color:var(--color-amber-100)}.hover\:bg-amber-200:hover{background-color:var(--color-amber-200)}.hover\:bg-black\/\[0\.03\]:hover{background-color:#00000008}@supports (color:color-mix(in lab, red, red)){.hover\:bg-black\/\[0\.03\]:hover{background-color:color-mix(in oklab, var(--color-black) 3%, transparent)}}.hover\:bg-emerald-100:hover{background-color:var(--color-emerald-100)}.hover\:bg-indigo-50:hover{background-color:var(--color-indigo-50)}.hover\:bg-indigo-100:hover{background-color:var(--color-indigo-100)}.hover\:bg-indigo-500:hover{background-color:var(--color-indigo-500)}.hover\:bg-neutral-50:hover{background-color:var(--color-neutral-50)}.hover\:bg-neutral-100:hover{background-color:var(--color-neutral-100)}.hover\:bg-neutral-200:hover{background-color:var(--color-neutral-200)}.hover\:bg-red-100:hover{background-color:var(--color-red-100)}.hover\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\:bg-transparent:hover{background-color:#0000}.hover\:bg-white:hover{background-color:var(--color-white)}.hover\:text-indigo-600:hover{color:var(--color-indigo-600)}.hover\:text-indigo-700:hover{color:var(--color-indigo-700)}.hover\:text-neutral-400:hover{color:var(--color-neutral-400)}.hover\:text-neutral-600:hover{color:var(--color-neutral-600)}.hover\:text-neutral-700:hover{color:var(--color-neutral-700)}.hover\:text-neutral-800:hover{color:var(--color-neutral-800)}.hover\:text-red-600:hover{color:var(--color-red-600)}.hover\:underline:hover{text-decoration-line:underline}.hover\:ring-2:hover{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.focus\:border-indigo-400:focus{border-color:var(--color-indigo-400)}.focus\:opacity-100:focus{opacity:1}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-indigo-100:focus{--tw-ring-color:var(--color-indigo-100)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.active\:bg-amber-200:active{background-color:var(--color-amber-200)}.active\:bg-amber-300:active{background-color:var(--color-amber-300)}.active\:bg-indigo-100:active{background-color:var(--color-indigo-100)}.active\:bg-indigo-700:active{background-color:var(--color-indigo-700)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}@media (hover:hover){.disabled\:hover\:bg-transparent:disabled:hover{background-color:#0000}}@media not all and (width>=48rem){.max-md\:order-1{order:1}.max-md\:m-0{margin:0}.max-md\:line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.max-md\:hidden{display:none}.max-md\:h-1\/2{height:50%}.max-md\:h-11{height:calc(var(--spacing) * 11)}.max-md\:h-dvh{height:100dvh}.max-md\:max-h-48{max-height:calc(var(--spacing) * 48)}.max-md\:w-11{width:calc(var(--spacing) * 11)}.max-md\:w-full{width:100%}.max-md\:max-w-none{max-width:none}.max-md\:basis-full{flex-basis:100%}.max-md\:flex-col{flex-direction:column}.max-md\:flex-wrap{flex-wrap:wrap}.max-md\:rounded-none{border-radius:0}.max-md\:border-0{border-style:var(--tw-border-style);border-width:0}.max-md\:pt-\[env\(safe-area-inset-top\)\]{padding-top:env(safe-area-inset-top)}.max-md\:pb-\[env\(safe-area-inset-bottom\)\]{padding-bottom:env(safe-area-inset-bottom)}.max-md\:whitespace-normal{white-space:normal}}@media not all and (width>=40rem){.max-sm\:w-full{width:100%}.max-sm\:grid-cols-\[1fr_auto\]{grid-template-columns:1fr auto}}@media (width>=40rem){.sm\:h-8{height:calc(var(--spacing) * 8)}.sm\:min-h-8{min-height:calc(var(--spacing) * 8)}.sm\:w-8{width:calc(var(--spacing) * 8)}.sm\:w-88{width:calc(var(--spacing) * 88)}.sm\:min-w-72{min-width:calc(var(--spacing) * 72)}.sm\:basis-0{flex-basis:0}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-\[5\.5rem_minmax\(0\,1fr\)\]{grid-template-columns:5.5rem minmax(0,1fr)}.sm\:gap-3{gap:calc(var(--spacing) * 3)}}@media (width>=48rem){.md\:hidden{display:none}.md\:max-w-\[calc\(100vw-9rem\)\]{max-width:calc(100vw - 9rem)}.md\:px-3{padding-inline:calc(var(--spacing) * 3)}}.dark\:border-neutral-200:where([data-theme=dark],[data-theme=dark] *){border-color:var(--color-neutral-200)}.dark\:bg-neutral-100:where([data-theme=dark],[data-theme=dark] *){background-color:var(--color-neutral-100)}.dark\:bg-neutral-200:where([data-theme=dark],[data-theme=dark] *){background-color:var(--color-neutral-200)}.dark\:text-neutral-50:where([data-theme=dark],[data-theme=dark] *){color:var(--color-neutral-50)}.dark\:text-neutral-950:where([data-theme=dark],[data-theme=dark] *){color:var(--color-neutral-950)}.dark\:after\:bg-neutral-950:where([data-theme=dark],[data-theme=dark] *):after{content:var(--tw-content);background-color:var(--color-neutral-950)}.dark\:open\:bg-neutral-100:where([data-theme=dark],[data-theme=dark] *):is([open],:popover-open,:open){background-color:var(--color-neutral-100)}@media (hover:hover){.dark\:hover\:bg-neutral-100:where([data-theme=dark],[data-theme=dark] *):hover{background-color:var(--color-neutral-100)}}@media (pointer:coarse){.pointer-coarse\:min-h-11{min-height:calc(var(--spacing) * 11)}.pointer-coarse\:opacity-100{opacity:1}}.\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker{display:none}}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--workbench-canvas:#f1f4f3;--workbench-mist:#e6f1f3;--workbench-mint:#e8f3ed;--glass-edge:#10182814;--glass-shadow:0 1px 2px #1018280f, 0 12px 32px -8px #10182824, inset 0 1px 0 #ffffffb3;--glass-shadow-raised:0 1px 2px #10182814, 0 6px 18px -2px #1018281f, 0 18px 40px -8px #10182833, inset 0 1px 0 #ffffffb3;--color-neutral-50:oklch(98% .004 260);--color-neutral-100:oklch(96% .006 260);--color-neutral-200:oklch(91% .009 260);--color-neutral-300:oklch(83% .012 260);--color-neutral-400:oklch(55% .018 260);--color-neutral-500:oklch(49% .02 260);--color-neutral-600:oklch(43% .022 260);--color-neutral-700:oklch(36% .024 260);--color-neutral-800:oklch(29% .026 260);--color-neutral-900:oklch(23% .028 260);--color-indigo-50:#eef5ff;--color-indigo-100:#deebff;--color-indigo-200:#bfd8ff;--color-indigo-300:#94beff;--color-indigo-400:#5799f5;--color-indigo-500:#1677ed;--color-indigo-600:#0066df;--color-indigo-700:#0054b6;--color-indigo-800:#03448f}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--workbench-canvas:#14171a;--workbench-mist:#1d282d;--workbench-mint:#1d2925;--glass-edge:#ffffff17;--glass-shadow:0 1px 2px #0006, 0 14px 36px -8px #0000008c, inset 0 1px 0 #ffffff12;--glass-shadow-raised:0 1px 2px #00000080, 0 6px 18px -2px #00000073, 0 18px 44px -8px #000000a6, inset 0 1px 0 #ffffff12;background-color:var(--workbench-canvas);--color-white:oklch(22.5% 0 none);--color-neutral-50:oklch(19% 0 none);--color-neutral-100:oklch(27.5% 0 none);--color-neutral-200:oklch(32.5% 0 none);--color-neutral-300:oklch(39% 0 none);--color-neutral-400:oklch(62% 0 none);--color-neutral-500:oklch(70% 0 none);--color-neutral-600:oklch(78% 0 none);--color-neutral-700:oklch(85% 0 none);--color-neutral-800:oklch(90% 0 none);--color-neutral-900:oklch(94% 0 none);--color-neutral-950:oklch(97% 0 none);--color-indigo-50:oklch(24.5% .028 255);--color-indigo-100:oklch(32% .065 255);--color-indigo-200:oklch(40% .09 255);--color-indigo-300:oklch(50% .125 255);--color-indigo-400:oklch(62% .155 255);--color-indigo-500:oklch(68% .165 255);--color-indigo-600:oklch(70% .175 255);--color-indigo-700:oklch(80% .115 255);--color-indigo-800:oklch(86% .08 255);--color-red-50:oklch(24.5% .028 17.38);--color-red-100:oklch(32% .065 17.717);--color-red-200:oklch(40% .09 18.334);--color-red-400:oklch(62% .155 22.216);--color-red-600:oklch(73% .145 27.325);--color-red-700:oklch(80% .115 27.518);--color-amber-50:oklch(24.5% .028 95.277);--color-amber-100:oklch(32% .065 95.617);--color-amber-200:oklch(40% .09 95.746);--color-amber-300:oklch(50% .125 91.605);--color-amber-400:oklch(62% .155 84.429);--color-amber-500:oklch(68% .165 70.08);--color-amber-600:oklch(73% .145 58.318);--color-amber-700:oklch(80% .115 48.998);--color-amber-800:oklch(86% .08 46.201);--color-emerald-50:oklch(24.5% .028 166.113);--color-emerald-100:oklch(32% .065 163.051);--color-emerald-200:oklch(40% .09 164.15);--color-emerald-400:oklch(62% .155 163.223);--color-emerald-500:oklch(68% .165 162.48);--color-emerald-600:oklch(73% .145 163.225);--color-emerald-700:oklch(80% .115 165.612);--color-green-50:oklch(24.5% .028 155.826);--color-green-200:oklch(40% .09 155.995);--color-green-500:oklch(68% .165 149.579);--color-green-700:oklch(80% .115 150.069);--color-green-800:oklch(86% .08 151.328);--color-cyan-50:oklch(24.5% .028 200.873);--color-cyan-100:oklch(32% .065 203.388);--color-cyan-200:oklch(40% .09 205.041);--color-cyan-400:oklch(62% .155 211.53);--color-cyan-500:oklch(68% .165 215.221);--color-cyan-700:oklch(80% .115 223.128);--color-cyan-800:oklch(86% .08 224.283);--color-sky-50:oklch(24.5% .028 236.62);--color-sky-200:oklch(40% .09 230.902);--color-sky-500:oklch(68% .165 237.323);--color-sky-700:oklch(80% .115 242.749);--color-violet-50:oklch(24.5% .028 293.756);--color-violet-200:oklch(40% .09 293.283);--color-violet-700:oklch(80% .115 292.581);--color-blue-700:oklch(80% .115 264.376)}html[data-accent=teal]{--color-indigo-50:oklch(96.8% .015 185);--color-indigo-100:oklch(93.6% .031 185);--color-indigo-200:oklch(87.7% .061 185);--color-indigo-300:oklch(79.6% .103 185);--color-indigo-400:oklch(68.1% .12 185);--color-indigo-500:oklch(58.5% .103 185);--color-indigo-600:oklch(53.7% .094 185);--color-indigo-700:oklch(46.6% .082 185);--color-indigo-800:oklch(39.8% .07 185)}html[data-theme=dark][data-accent=teal]{--color-indigo-50:oklch(24.5% .028 185);--color-indigo-100:oklch(32% .057 185);--color-indigo-200:oklch(40% .071 185);--color-indigo-300:oklch(50% .088 185);--color-indigo-400:oklch(62% .109 185);--color-indigo-500:oklch(68% .12 185);--color-indigo-600:oklch(70% .123 185);--color-indigo-700:oklch(80% .115 185);--color-indigo-800:oklch(86% .08 185)}html[data-accent=emerald]{--color-indigo-50:oklch(96.8% .015 160);--color-indigo-100:oklch(93.6% .031 160);--color-indigo-200:oklch(87.7% .061 160);--color-indigo-300:oklch(79.6% .103 160);--color-indigo-400:oklch(68.1% .153 160);--color-indigo-500:oklch(58.5% .132 160);--color-indigo-600:oklch(53.7% .121 160);--color-indigo-700:oklch(46.6% .105 160);--color-indigo-800:oklch(39.8% .09 160)}html[data-theme=dark][data-accent=emerald]{--color-indigo-50:oklch(24.5% .028 160);--color-indigo-100:oklch(32% .065 160);--color-indigo-200:oklch(40% .09 160);--color-indigo-300:oklch(50% .113 160);--color-indigo-400:oklch(62% .14 160);--color-indigo-500:oklch(68% .154 160);--color-indigo-600:oklch(70% .158 160);--color-indigo-700:oklch(80% .115 160);--color-indigo-800:oklch(86% .08 160)}html[data-accent=amber]{--color-indigo-50:oklch(96.8% .015 70);--color-indigo-100:oklch(93.6% .031 70);--color-indigo-200:oklch(87.7% .061 70);--color-indigo-300:oklch(79.6% .103 70);--color-indigo-400:oklch(74% .15 70);--color-indigo-500:oklch(66% .143 70);--color-indigo-600:oklch(60% .13 70);--color-indigo-700:oklch(52% .113 70);--color-indigo-800:oklch(44% .096 70)}html[data-theme=dark][data-accent=amber]{--color-indigo-50:oklch(24.5% .028 70);--color-indigo-100:oklch(32% .065 70);--color-indigo-200:oklch(40% .087 70);--color-indigo-300:oklch(50% .108 70);--color-indigo-400:oklch(62% .134 70);--color-indigo-500:oklch(68% .147 70);--color-indigo-600:oklch(70% .151 70);--color-indigo-700:oklch(80% .115 70);--color-indigo-800:oklch(86% .08 70)}html[data-accent=rose]{--color-indigo-50:oklch(96.8% .015 10);--color-indigo-100:oklch(93.6% .031 10);--color-indigo-200:oklch(87.7% .061 10);--color-indigo-300:oklch(79.6% .103 10);--color-indigo-400:oklch(68.1% .153 10);--color-indigo-500:oklch(58.5% .197 10);--color-indigo-600:oklch(53.7% .201 10);--color-indigo-700:oklch(46.6% .17 10);--color-indigo-800:oklch(39.8% .138 10)}html[data-theme=dark][data-accent=rose]{--color-indigo-50:oklch(24.5% .028 10);--color-indigo-100:oklch(32% .065 10);--color-indigo-200:oklch(40% .09 10);--color-indigo-300:oklch(50% .125 10);--color-indigo-400:oklch(62% .155 10);--color-indigo-500:oklch(68% .165 10);--color-indigo-600:oklch(70% .175 10);--color-indigo-700:oklch(80% .115 10);--color-indigo-800:oklch(86% .077 10)}html[data-accent=violet]{--color-indigo-50:oklch(96.8% .015 295);--color-indigo-100:oklch(93.6% .031 295);--color-indigo-200:oklch(87.7% .061 295);--color-indigo-300:oklch(79.6% .103 295);--color-indigo-400:oklch(68.1% .153 295);--color-indigo-500:oklch(58.5% .197 295);--color-indigo-600:oklch(53.7% .201 295);--color-indigo-700:oklch(46.6% .17 295);--color-indigo-800:oklch(39.8% .138 295)}html[data-theme=dark][data-accent=violet]{--color-indigo-50:oklch(24.5% .028 295);--color-indigo-100:oklch(32% .065 295);--color-indigo-200:oklch(40% .09 295);--color-indigo-300:oklch(50% .125 295);--color-indigo-400:oklch(62% .155 295);--color-indigo-500:oklch(68% .165 295);--color-indigo-600:oklch(70% .175 295);--color-indigo-700:oklch(80% .113 295);--color-indigo-800:oklch(86% .077 295)}html{--glass-surface:#fffc;font-size:112.5%}@supports (color:color-mix(in lab, red, red)){html{--glass-surface:color-mix(in oklab, var(--color-white) 80%, transparent)}}html{--ease-surface:cubic-bezier(.2, .8, .2, 1);touch-action:pan-x pan-y}.text-\[9px\]{font-size:.5625rem}.text-\[10px\]{font-size:.625rem}.text-\[10\.5px\]{font-size:.65625rem}.text-\[11px\]{font-size:.6875rem}.text-\[11\.5px\]{font-size:.71875rem}.text-\[12px\]{font-size:.75rem}.text-\[12\.5px\]{font-size:.78125rem}.text-\[13px\]{font-size:.8125rem}.text-\[13\.5px\]{font-size:.84375rem}.text-\[14px\]{font-size:.875rem}.text-\[15px\]{font-size:.9375rem}.text-\[16px\]{font-size:1rem}.text-\[17px\]{font-size:1.0625rem}.text-\[20px\]{font-size:1.25rem}.thumbs>*{margin:0}main{--head-h:calc(3rem + 8px);grid-template-rows:minmax(0,1fr) auto auto;grid-template-columns:minmax(0,1fr);display:grid}main>*{grid-column:1}main>section,#turns{grid-row:1/-1}#bar{grid-row:1;align-self:start}#queue-panel{grid-row:2}#composer{grid-row:3}:is(#bar,#queue-panel,#composer){z-index:1;position:relative}#queue-panel{border:1px solid var(--glass-edge);width:calc(100% - 2rem);max-width:58rem;box-shadow:var(--glass-shadow);border-radius:1.25rem;margin-inline:auto}@media (width>=48rem){.pagehead{flex-wrap:nowrap;padding-block:0}}@media not all and (width>=48rem){body{overscroll-behavior:none}#composer{padding-bottom:calc(.5rem + env(safe-area-inset-bottom))}@media (display-mode:standalone){body{height:100vh}}body[data-kb] #composer{padding-bottom:.5rem}main{padding-top:env(safe-area-inset-top)}}main{background:radial-gradient(ellipse 80% 65% at 100% 100%, var(--workbench-mist), transparent 75%), radial-gradient(ellipse 70% 65% at 0% 100%, var(--workbench-mint), transparent 75%)}@media (pointer:coarse),(width<48rem){.config-row,.session-open,#files-dialog :is(summary,button:not(.map-mark),a.btn){min-height:44px}#files-dialog .icon-btn{min-width:44px}#queue-panel button{min-width:44px;min-height:44px}#queue-panel>div:first-child{height:auto}#turns [data-kind=activity]>summary{min-height:44px}#turns [data-kind=activity] details>summary{min-height:28px}#turns [data-kind=activity]>summary+div{gap:0;max-height:20rem}}.palette-row.bg-indigo-50,#files-dialog button.bg-indigo-50{color:var(--color-indigo-700);background-color:var(--color-indigo-100);box-shadow:none;font-weight:500}:is(.glass,#bar,.pagehead){background:var(--glass-surface);border-color:var(--glass-edge);-webkit-backdrop-filter:blur(28px)saturate(1.4);backdrop-filter:blur(28px)saturate(1.4)}#queue-panel{background:#fffdf4}@supports (color:color-mix(in lab, red, red)){#queue-panel{background:color-mix(in oklab, var(--color-amber-50) 55%, var(--color-white))}}#queue-panel{border-color:var(--glass-edge)}.glass-menu{background:var(--color-white);box-shadow:var(--glass-shadow)}#bar,.pagehead{border:1px solid var(--glass-edge);box-shadow:var(--glass-shadow);border-radius:18px;margin:8px 8px 0;font-size:.9375rem}#bar{height:3rem}.pagehead-hug{width:fit-content;max-width:calc(100% - 16px);margin-inline:auto}#turns{padding:calc(var(--head-h) + .75rem) max(1rem, calc((100% - 58rem) / 2)) calc(var(--dock-h,4rem) + .5rem);scroll-padding-block:calc(var(--head-h) + .75rem) calc(var(--dock-h,4rem) + .5rem);-webkit-mask-image:linear-gradient(#0000 8px,#000 2.5rem calc(100% - 2rem),#0000);mask-image:linear-gradient(#0000 8px,#000 2.5rem calc(100% - 2rem),#0000)}#turns>:is([data-kind=user],[data-kind=assistant],[data-kind=system],[data-kind=error]){overflow-wrap:anywhere;border-radius:1.375rem;width:fit-content;max-width:88%;margin-block:.875rem;padding:.75rem 1rem}#turns>[data-grouped]{margin-top:-.5rem}#turns>[data-kind=user]{background:var(--color-indigo-100);color:var(--color-neutral-900);box-shadow:inset 0 0 0 1px var(--color-indigo-300);border-bottom-right-radius:.375rem;margin-left:auto}#turns>[data-kind=assistant]{background:var(--color-white);box-shadow:0 2px 8px #00000009, inset 0 0 0 1px var(--color-neutral-200);border-bottom-left-radius:.375rem;margin-right:auto}#turns>:is([data-kind=system],[data-kind=error]){border-left-width:2px;max-width:100%}#turns>:is([data-kind=activity],[data-kind=background-run]){border-radius:1rem;margin-block:.75rem}#turns>.system-card{border-left-width:0}.system-card:before{content:"";border-left:3px solid;border-left-color:inherit;border-radius:99px;height:1.25rem;position:absolute;top:.75rem;left:0}.system-card{background:var(--color-neutral-100);box-shadow:inset 0 0 0 1px var(--color-neutral-300)}.run-label{background:currentColor;border-radius:.375rem;padding:.125rem .375rem}@supports (color:color-mix(in lab, red, red)){.run-label{background:color-mix(in oklab, currentColor 8%, transparent)}}#turns>[data-kind=system].system-card{border-radius:.75rem;width:auto;padding-block:.625rem}#turns>.fold-row{padding-inline:.75rem}#turns>[data-kind=activity]{max-width:88%;margin-bottom:0}#turns>[data-kind=activity][data-adopted]+[data-kind=assistant]{margin-top:.375rem}#turns>[data-kind=user]:has(textarea){width:88%}.message-edit{color:var(--color-neutral-500);opacity:0;transition:opacity .16s}[data-editing]>.message-edit{visibility:hidden}[data-kind=user]:hover .message-edit,.message-edit:focus-visible{opacity:.85}.message-edit:hover{background:var(--color-indigo-100);opacity:1}@media (hover:none){.message-edit{opacity:.85}}@media (pointer:coarse){.message-edit{min-width:44px;min-height:44px}}@media (hover:hover){#turns>[data-time]:after{content:attr(data-time);font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--color-neutral-400);opacity:0;pointer-events:none;font-size:10.5px;line-height:1;transition:opacity .16s;position:absolute;bottom:.5rem}#turns>[data-kind=user][data-time]:after{right:calc(100% + .5rem)}#turns>[data-kind=user][data-time]:has(.message-edit):after{right:calc(100% + 2.5rem)}#turns>[data-kind=assistant][data-time]:after{left:calc(100% + .5rem)}#turns>:is([data-kind=system],[data-kind=error])[data-time]:after{bottom:-.6rem;right:.25rem}#turns>[data-time]:hover:after{opacity:1}}#turns>.system-row:not([data-expanded]){box-shadow:none;background:0 0;margin-block:.25rem;padding-block:.125rem}.system-row:not([data-expanded]):before,.system-row:not([data-expanded]) :is(.run-thinking,.run-id:has(~.run-session)){display:none}.system-row:not([data-expanded]) .run-meta{flex-wrap:nowrap}@media not all and (width>=48rem){.system-row:not([data-expanded]) :is(.run-model,.run-note){display:none}}#composer{--composer-control-size:2rem;z-index:1;position:relative}#input{padding-block:max(0px, calc((var(--composer-control-size) - 1lh) / 2))}#composer>div{--glass-shadow:var(--glass-shadow-raised);max-width:58rem;margin-inline:auto}#composer>div:focus-within{box-shadow:0 0 0 3px var(--color-indigo-100), var(--glass-shadow)}#composer :is(#attach,#send,#stop){width:var(--composer-control-size);height:var(--composer-control-size);border-radius:50%}.glass{box-shadow:var(--glass-shadow)}@keyframes surface-in{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}#turns>[data-enter]{animation:surface-in .24s var(--ease-surface)}dialog[open]:not(#image-dialog){animation:.16s ease-out surface-fade}#palette{border-color:var(--glass-edge);box-shadow:var(--glass-shadow-raised)}.palette-row{transition:background-color .12s}.palette-row:not(.bg-indigo-50):hover{background-color:var(--color-neutral-100)}#palette .palette-row.bg-indigo-50>span:first-child{background-color:#625fff2e}@supports (color:color-mix(in lab, red, red)){#palette .palette-row.bg-indigo-50>span:first-child{background-color:color-mix(in oklab, var(--color-indigo-500) 18%, transparent)}}#palette .palette-row.bg-indigo-50>span:first-child{color:inherit}@media (pointer:coarse){.palette-row{min-height:44px}#command-menu{max-height:calc(352px + .5rem)}#palette kbd,#palette-keys{display:none}}@keyframes turn-reveal{0%{outline:3px solid var(--color-indigo-400);outline-offset:3px}to{outline-offset:3px;outline:3px solid #0000}}#turns>[data-reveal]{animation:1.2s ease-out turn-reveal}.glass-menu{--menu-shift:translateY(-4px) scale(.97);transform-origin:top;opacity:1;transition:opacity .18s var(--ease-surface), transform .22s var(--ease-surface);transform:none}.glass-menu[data-presentation=sheet]{--menu-shift:translateY(1.25rem);transform-origin:bottom}.glass-menu[data-closing]{opacity:0;transform:var(--menu-shift);pointer-events:none;transition-duration:.12s}@starting-style{.glass-menu{opacity:0;transform:var(--menu-shift)}}:is(#turns,#files-dialog) details::details-content{interpolate-size:allow-keywords;opacity:0;block-size:0;transition:block-size .18s var(--ease-surface), opacity .18s, content-visibility .18s allow-discrete;overflow:clip}:is(#turns,#files-dialog) details[open]::details-content{opacity:1;block-size:auto}:is(.btn,.icon-btn,#composer button){transition:background-color .18s, box-shadow .18s, transform .18s var(--ease-surface)}:is(.btn,.icon-btn,#composer button):active:not(:disabled){transform:scale(.95)}@media (prefers-reduced-transparency:reduce),(prefers-contrast:more){:is(.glass,.glass-menu,#bar,#queue-panel,.pagehead){background:var(--color-white);-webkit-backdrop-filter:none;backdrop-filter:none;border-color:var(--color-neutral-400);box-shadow:none}}@media not all and (width>=48rem){#composer{--composer-control-size:2.25rem;padding-inline:.75rem}#queue-panel{width:calc(100% - 1.5rem)}main{--bar-h:3rem;--head-h:calc(var(--bar-h) + 8px)}main:has(#bar:not(.hidden)):has(#session-meta[data-urgent]:not([data-inline]):not(.hidden)){--bar-h:4rem}#bar{height:var(--bar-h);flex-wrap:wrap;align-content:center;row-gap:0}#bar #chat-title{flex:1 1 0;max-width:max-content}#bar #session-meta{flex-basis:100%;order:1;min-width:0;height:1.25rem;padding-left:.5rem}#bar #session-meta:not([data-urgent]){display:none}#bar #session-meta[data-inline]:not(.hidden){flex-basis:auto;order:0;height:auto;padding-left:0;display:flex}#turns{padding-inline:.625rem}#turns>:is([data-kind=user],[data-kind=assistant]){max-width:92%}#turns>[data-kind=user]{max-width:min(92%,100% - 3rem)}#turns>[data-kind=user]:has(textarea){width:92%}#turns>[data-time]:after{content:none}#input{font-size:max(16px,1rem)}}@keyframes surface-fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){#turns>[data-enter],dialog[open]:not(#image-dialog){animation:.12s ease-out surface-fade}#turns>[data-reveal]{outline:3px solid var(--color-indigo-400);outline-offset:3px;animation:none}.glass-menu,.glass-menu[data-presentation=sheet]{--menu-shift:none;transition-duration:.12s}:is(#turns,#files-dialog) details::details-content{transition:opacity .12s, content-visibility .12s allow-discrete}:is(.btn,.icon-btn,#composer button):active:not(:disabled){transform:none}}.field-label{color:var(--color-neutral-600);font-size:.71875rem;font-weight:500}#image-stage[data-zoom]{touch-action:none;justify-content:flex-start;align-items:flex-start;overflow:auto}#image-stage[data-zoom] img{cursor:zoom-out;max-width:none;max-height:none}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-duration{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}