heyio 1.6.1 → 1.7.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 (42) hide show
  1. package/dist/copilot/client.js +6 -1
  2. package/dist/copilot/gh-token.js +4 -0
  3. package/package.json +1 -1
  4. package/web-dist/assets/{AuditLogView-oxJKKvR2.js → AuditLogView-BKdTTuUZ.js} +2 -2
  5. package/web-dist/assets/ChatView-DpTWixGo.js +1 -0
  6. package/web-dist/assets/FeedView-DLpifZ22.js +6 -0
  7. package/web-dist/assets/HistoryView-DZpGvhB5.js +1 -0
  8. package/web-dist/assets/LoginView-D2-FBKS3.js +1 -0
  9. package/web-dist/assets/McpView-CRzUrNTa.js +1 -0
  10. package/web-dist/assets/{SchedulesView-Da2pTfUa.js → SchedulesView-nKZpyYX8.js} +2 -2
  11. package/web-dist/assets/SettingsView-Cng7uCir.js +1 -0
  12. package/web-dist/assets/{SkillsView-Dubj8VOL.js → SkillsView-p5j-mrYN.js} +4 -4
  13. package/web-dist/assets/SquadDetailView-D3dLQWq8.js +26 -0
  14. package/web-dist/assets/{SquadHealthView-BSJ5KMn5.js → SquadHealthView-C9BKBgkW.js} +3 -3
  15. package/web-dist/assets/SquadsView-hvOGTg2k.js +6 -0
  16. package/web-dist/assets/{ToggleSwitch.vue_vue_type_script_setup_true_lang-FHXcPBMk.js → ToggleSwitch.vue_vue_type_script_setup_true_lang-h2TRK3PD.js} +1 -1
  17. package/web-dist/assets/{UsageView-CE7sS6_n.js → UsageView-CXEO2kEU.js} +4 -4
  18. package/web-dist/assets/WikiView-CitkkJyn.js +26 -0
  19. package/web-dist/assets/{api-vVF1Oc7L.js → api-Dg3ccdl2.js} +1 -1
  20. package/web-dist/assets/{x-CdgExS41.js → arrow-left-ejwwm6eg.js} +2 -2
  21. package/web-dist/assets/{git-branch-D_pY2r5j.js → git-branch-BMAw22mD.js} +1 -1
  22. package/web-dist/assets/index-C5YYUXmF.css +1 -0
  23. package/web-dist/assets/index-DlMYQPPk.js +279 -0
  24. package/web-dist/assets/{plus-PnaymXR1.js → plus-B9RNjhEm.js} +1 -1
  25. package/web-dist/assets/{save-D0BBbT97.js → save-BHW-ttFe.js} +1 -1
  26. package/web-dist/assets/{search-DVR5XYa2.js → search-eMpKL6Mh.js} +1 -1
  27. package/web-dist/assets/{trash-2-xolVupQF.js → trash-2-E0uVesm_.js} +1 -1
  28. package/web-dist/assets/{triangle-alert-C4g2wb6r.js → triangle-alert-CV16lQQo.js} +2 -2
  29. package/web-dist/index.html +2 -2
  30. package/web-dist/assets/ChatView-CNVBIg3h.js +0 -11
  31. package/web-dist/assets/FeedView-eN_WAiS8.js +0 -6
  32. package/web-dist/assets/HistoryView-uxdpy_Fq.js +0 -1
  33. package/web-dist/assets/LoginView-eFYw6Ap_.js +0 -1
  34. package/web-dist/assets/McpView-CG3DdBIe.js +0 -1
  35. package/web-dist/assets/SettingsView-GUC--Ixb.js +0 -1
  36. package/web-dist/assets/SquadDetailView-BO2Zfq5o.js +0 -26
  37. package/web-dist/assets/SquadsView-D4gt4r9q.js +0 -6
  38. package/web-dist/assets/WikiView-DDQ9nt1B.js +0 -31
  39. package/web-dist/assets/arrow-left-DF5KDBVY.js +0 -6
  40. package/web-dist/assets/file-text-CLvVqElg.js +0 -6
  41. package/web-dist/assets/index-CFtE6hNm.js +0 -254
  42. package/web-dist/assets/index-CoyYyx4A.css +0 -1
@@ -1,16 +1,16 @@
1
- import{l as q,o as Q,s as R,u as d,k as r,h as t,n as _,D as k,C as W,F as i,w as m,m as w,z as o,e as X,j as u,T as O,O as B,v as a,q as Y,r as Z,g as tt}from"./index-CFtE6hNm.js";import{b as T,d as z}from"./api-vVF1Oc7L.js";import{T as et}from"./triangle-alert-C4g2wb6r.js";/**
1
+ import{r as L,u as j,E as Q,J as d,q as r,n as t,t as _,T as k,C as W,d as i,L as m,s as w,R as o,k as X,p as u,a5 as F,a1 as O,K as a,z as Y,D as Z,m as tt}from"./index-DlMYQPPk.js";import{b as T,d as q}from"./api-Dg3ccdl2.js";import{T as et}from"./triangle-alert-CV16lQQo.js";/**
2
2
  * @license lucide-vue-next v0.474.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
5
5
  * See the LICENSE file in the root directory of this source tree.
6
- */const st=q("BotIcon",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);/**
6
+ */const st=L("BotIcon",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);/**
7
7
  * @license lucide-vue-next v0.474.0 - ISC
8
8
  *
9
9
  * This source code is licensed under the ISC license.
10
10
  * See the LICENSE file in the root directory of this source tree.
11
- */const ot=q("DollarSignIcon",[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]]);/**
11
+ */const ot=L("DollarSignIcon",[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]]);/**
12
12
  * @license lucide-vue-next v0.474.0 - ISC
13
13
  *
14
14
  * This source code is licensed under the ISC license.
15
15
  * See the LICENSE file in the root directory of this source tree.
16
- */const dt=q("TrendingUpIcon",[["polyline",{points:"22 7 13.5 15.5 8.5 10.5 2 17",key:"126l90"}],["polyline",{points:"16 7 22 7 22 13",key:"kwv8wd"}]]),rt={class:"p-6"},lt={class:"flex items-center gap-3 mb-6"},nt={key:0,class:"text-muted-foreground"},at={class:"flex gap-1 border-b border-border mb-6"},it=["onClick"],ut={key:0,class:"space-y-6"},pt={class:"grid grid-cols-2 md:grid-cols-4 gap-4"},xt={class:"border border-border rounded-lg p-4"},ct={class:"flex items-center gap-2 text-muted-foreground text-xs mb-1"},mt={class:"text-2xl font-bold"},gt={class:"text-xs text-muted-foreground mt-1"},ht={class:"border border-border rounded-lg p-4"},vt={class:"flex items-center gap-2 text-muted-foreground text-xs mb-1"},bt={class:"text-2xl font-bold"},yt={class:"border border-border rounded-lg p-4"},ft={class:"flex items-center gap-2 text-muted-foreground text-xs mb-1"},_t={class:"text-2xl font-bold"},kt={class:"border border-border rounded-lg p-4"},wt={class:"flex items-center gap-2 text-muted-foreground text-xs mb-1"},Tt={class:"text-2xl font-bold"},Mt={key:0,class:"flex items-center gap-2 text-sm text-yellow-600 bg-yellow-500/10 border border-yellow-500/20 rounded-lg px-4 py-3"},Ct={key:1},Pt={class:"border border-border rounded-lg overflow-hidden"},St={class:"w-full text-sm"},At={class:"px-4 py-2 font-medium"},Ut={class:"px-4 py-2 text-right text-muted-foreground"},$t={class:"px-4 py-2 text-right text-muted-foreground"},Dt={class:"px-4 py-2 text-right text-muted-foreground"},It={key:2,class:"text-sm text-muted-foreground"},Et={key:1},Vt={key:0,class:"text-sm text-muted-foreground"},Ft={key:1,class:"border border-border rounded-lg overflow-hidden"},Nt={class:"w-full text-sm"},Ot={class:"px-4 py-2 font-medium"},Bt={class:"px-4 py-2 text-right text-muted-foreground"},qt={class:"px-4 py-2 text-right text-muted-foreground"},zt={class:"px-4 py-2 text-right font-medium"},Lt={class:"px-4 py-2 text-right text-muted-foreground"},Ht={class:"px-4 py-2 text-right text-muted-foreground"},jt={key:2},Gt={key:0,class:"text-sm text-muted-foreground"},Kt={key:1,class:"border border-border rounded-lg overflow-hidden"},Jt={class:"w-full text-sm"},Qt={class:"px-4 py-2 font-medium"},Rt={class:"px-4 py-2 text-right text-muted-foreground"},Wt={class:"px-4 py-2 text-right text-muted-foreground"},Xt={class:"px-4 py-2 text-right font-medium"},Yt={class:"px-4 py-2 text-right text-muted-foreground"},Zt={class:"px-4 py-2 text-right text-muted-foreground"},te={key:3},ee={key:0,class:"text-sm text-muted-foreground"},se={class:"mb-6"},oe={class:"flex items-end gap-1 h-32 border border-border rounded-lg p-3 bg-muted/20"},de={class:"absolute bottom-full left-1/2 -translate-x-1/2 mb-1 hidden group-hover:block bg-popover border border-border text-xs rounded px-2 py-1 whitespace-nowrap z-10"},re={class:"border border-border rounded-lg overflow-hidden"},le={class:"w-full text-sm"},ne={class:"px-4 py-2 font-mono text-xs"},ae={class:"px-4 py-2 text-right text-muted-foreground"},ie={class:"px-4 py-2 text-right text-muted-foreground"},ue={class:"px-4 py-2 text-right font-medium"},pe={class:"px-4 py-2 text-right text-muted-foreground"},xe={key:4,class:"space-y-6"},ce={class:"flex items-center gap-3 max-w-sm"},me=["disabled"],ge={key:0,class:"border border-border rounded-lg p-4 mb-4 max-w-md space-y-3"},he={class:"font-medium text-sm"},ve={class:"bg-muted px-1 rounded"},be={class:"flex gap-3"},ye={class:"flex-1"},fe={class:"flex-1"},_e={class:"flex gap-2"},ke=["disabled"],we={class:"border border-border rounded-lg overflow-hidden"},Te={class:"w-full text-sm"},Me={class:"px-4 py-2 font-mono text-xs"},Ce={class:"px-4 py-2 text-right text-muted-foreground"},Pe={class:"px-4 py-2 text-right text-muted-foreground"},Se={class:"px-4 py-2 text-right"},Ae=["onClick"],Ve=Q({__name:"UsageView",setup(Ue){const N=a(!0),p=a("overview"),L=[{id:"overview",label:"Overview"},{id:"by-squad",label:"By Squad"},{id:"by-agent",label:"By Agent"},{id:"daily",label:"Daily Trend"},{id:"pricing",label:"Pricing"}],g=a(null),h=a([]),C=a([]),M=a([]),v=a({}),b=a(null),P=a(!1),S=a(!1),A=a(!1),U=a(!1),x=a(""),$=a(0),D=a(0);async function H(){N.value=!0;try{const[l,e,c,I,E,V]=await Promise.all([T("/token-usage/summary"),T("/token-usage/by-squad"),T("/token-usage/by-agent"),T("/token-usage/daily?days=30"),T("/token-usage/pricing"),T("/token-usage/alert-threshold")]);g.value=l,h.value=e.filter(f=>f.record_count>0),C.value=c.filter(f=>f.record_count>0),M.value=I,v.value=E,b.value=V.tokenAlertThreshold}finally{N.value=!1}}async function j(){P.value=!0,S.value=!1;try{await z("/token-usage/alert-threshold",{tokenAlertThreshold:b.value}),S.value=!0,setTimeout(()=>S.value=!1,2e3)}finally{P.value=!1}}function G(l){var e,c;x.value=l,$.value=((e=v.value[l])==null?void 0:e.inputPer1M)??0,D.value=((c=v.value[l])==null?void 0:c.outputPer1M)??0}async function K(){if(x.value){A.value=!0,U.value=!1;try{const l={...v.value,[x.value]:{inputPer1M:$.value,outputPer1M:D.value}};await z("/token-usage/pricing",l),v.value=l,x.value="",U.value=!0,setTimeout(()=>U.value=!1,2e3)}finally{A.value=!1}}}function n(l){return l>=1e6?`${(l/1e6).toFixed(2)}M`:l>=1e3?`${(l/1e3).toFixed(1)}K`:String(l)}function y(l){return l<1e-4?"$0.00":l<.01?`$${l.toFixed(4)}`:`$${l.toFixed(2)}`}const J=tt(()=>Math.max(1,...M.value.map(l=>l.total_tokens)));return R(H),(l,e)=>{var c,I,E,V,f;return d(),r("div",rt,[t("div",lt,[_(k(W),{class:"w-6 h-6 text-primary"}),e[4]||(e[4]=t("h1",{class:"text-2xl font-bold"},"Token Usage",-1))]),N.value?(d(),r("div",nt,"Loading...")):(d(),r(i,{key:1},[t("div",at,[(d(),r(i,null,m(L,s=>t("button",{key:s.id,onClick:F=>p.value=s.id,class:Y(["px-4 py-2 text-sm font-medium border-b-2 transition-colors",p.value===s.id?"border-primary text-foreground":"border-transparent text-muted-foreground hover:text-foreground"])},o(s.label),11,it)),64))]),p.value==="overview"?(d(),r("div",ut,[t("div",pt,[t("div",xt,[t("div",ct,[_(k(dt),{class:"w-3 h-3"}),e[5]||(e[5]=w(" Total Tokens ",-1))]),t("div",mt,o(n(((c=g.value)==null?void 0:c.total_tokens)??0)),1),t("div",gt,o(n(((I=g.value)==null?void 0:I.total_input_tokens)??0))+" in / "+o(n(((E=g.value)==null?void 0:E.total_output_tokens)??0))+" out ",1)]),t("div",ht,[t("div",vt,[_(k(ot),{class:"w-3 h-3"}),e[6]||(e[6]=w(" Est. Cost ",-1))]),t("div",bt,o(y(((V=g.value)==null?void 0:V.total_cost_usd)??0)),1),e[7]||(e[7]=t("div",{class:"text-xs text-muted-foreground mt-1"},"all time",-1))]),t("div",yt,[t("div",ft,[_(k(X),{class:"w-3 h-3"}),e[8]||(e[8]=w(" Active Squads ",-1))]),t("div",_t,o(h.value.length),1),e[9]||(e[9]=t("div",{class:"text-xs text-muted-foreground mt-1"},"with usage",-1))]),t("div",kt,[t("div",wt,[_(k(st),{class:"w-3 h-3"}),e[10]||(e[10]=w(" Active Agents ",-1))]),t("div",Tt,o(C.value.length),1),e[11]||(e[11]=t("div",{class:"text-xs text-muted-foreground mt-1"},"with usage",-1))])]),b.value!==null?(d(),r("div",Mt,[_(k(et),{class:"w-4 h-4 shrink-0"}),w(" Alert threshold active: "+o(n(b.value))+" tokens per task ",1)])):u("",!0),h.value.length>0?(d(),r("div",Ct,[e[13]||(e[13]=t("h2",{class:"text-base font-semibold mb-3"},"Top Squads by Token Usage",-1)),t("div",Pt,[t("table",St,[e[12]||(e[12]=t("thead",{class:"bg-muted"},[t("tr",null,[t("th",{class:"text-left px-4 py-2 font-medium"},"Squad"),t("th",{class:"text-right px-4 py-2 font-medium"},"Tokens"),t("th",{class:"text-right px-4 py-2 font-medium"},"Est. Cost"),t("th",{class:"text-right px-4 py-2 font-medium"},"Calls")])],-1)),t("tbody",null,[(d(!0),r(i,null,m(h.value.slice(0,5),s=>(d(),r("tr",{key:s.id,class:"border-t border-border"},[t("td",At,o(s.name),1),t("td",Ut,o(n(s.total_tokens)),1),t("td",$t,o(y(s.total_cost_usd)),1),t("td",Dt,o(s.record_count),1)]))),128))])])])])):u("",!0),((f=g.value)==null?void 0:f.total_records)===0?(d(),r("div",It," No token usage recorded yet. Usage will appear here after squads or agents complete tasks. ")):u("",!0)])):u("",!0),p.value==="by-squad"?(d(),r("div",Et,[h.value.length===0?(d(),r("div",Vt,"No usage data yet.")):(d(),r("div",Ft,[t("table",Nt,[e[14]||(e[14]=t("thead",{class:"bg-muted"},[t("tr",null,[t("th",{class:"text-left px-4 py-2 font-medium"},"Squad"),t("th",{class:"text-right px-4 py-2 font-medium"},"Input Tokens"),t("th",{class:"text-right px-4 py-2 font-medium"},"Output Tokens"),t("th",{class:"text-right px-4 py-2 font-medium"},"Total Tokens"),t("th",{class:"text-right px-4 py-2 font-medium"},"Est. Cost"),t("th",{class:"text-right px-4 py-2 font-medium"},"API Calls")])],-1)),t("tbody",null,[(d(!0),r(i,null,m(h.value,s=>(d(),r("tr",{key:s.id,class:"border-t border-border"},[t("td",Ot,o(s.name),1),t("td",Bt,o(n(s.total_input_tokens)),1),t("td",qt,o(n(s.total_output_tokens)),1),t("td",zt,o(n(s.total_tokens)),1),t("td",Lt,o(y(s.total_cost_usd)),1),t("td",Ht,o(s.record_count),1)]))),128))])])]))])):u("",!0),p.value==="by-agent"?(d(),r("div",jt,[C.value.length===0?(d(),r("div",Gt,"No usage data yet.")):(d(),r("div",Kt,[t("table",Jt,[e[15]||(e[15]=t("thead",{class:"bg-muted"},[t("tr",null,[t("th",{class:"text-left px-4 py-2 font-medium"},"Agent"),t("th",{class:"text-right px-4 py-2 font-medium"},"Input Tokens"),t("th",{class:"text-right px-4 py-2 font-medium"},"Output Tokens"),t("th",{class:"text-right px-4 py-2 font-medium"},"Total Tokens"),t("th",{class:"text-right px-4 py-2 font-medium"},"Est. Cost"),t("th",{class:"text-right px-4 py-2 font-medium"},"API Calls")])],-1)),t("tbody",null,[(d(!0),r(i,null,m(C.value,s=>(d(),r("tr",{key:s.id,class:"border-t border-border"},[t("td",Qt,o(s.name),1),t("td",Rt,o(n(s.total_input_tokens)),1),t("td",Wt,o(n(s.total_output_tokens)),1),t("td",Xt,o(n(s.total_tokens)),1),t("td",Yt,o(y(s.total_cost_usd)),1),t("td",Zt,o(s.record_count),1)]))),128))])])]))])):u("",!0),p.value==="daily"?(d(),r("div",te,[M.value.length===0?(d(),r("div",ee,"No usage data yet.")):(d(),r(i,{key:1},[t("div",se,[e[16]||(e[16]=t("h2",{class:"text-base font-semibold mb-3"},"Last 30 Days — Token Usage",-1)),t("div",oe,[(d(!0),r(i,null,m(M.value,s=>(d(),r("div",{key:s.date,class:"flex-1 bg-primary/60 rounded-t min-w-[4px] relative group",style:Z({height:`${s.total_tokens/J.value*100}%`})},[t("div",de,o(s.date)+": "+o(n(s.total_tokens))+" tokens ("+o(y(s.total_cost_usd))+") ",1)],4))),128))])]),t("div",re,[t("table",le,[e[17]||(e[17]=t("thead",{class:"bg-muted"},[t("tr",null,[t("th",{class:"text-left px-4 py-2 font-medium"},"Date"),t("th",{class:"text-right px-4 py-2 font-medium"},"Input Tokens"),t("th",{class:"text-right px-4 py-2 font-medium"},"Output Tokens"),t("th",{class:"text-right px-4 py-2 font-medium"},"Total Tokens"),t("th",{class:"text-right px-4 py-2 font-medium"},"Est. Cost")])],-1)),t("tbody",null,[(d(!0),r(i,null,m([...M.value].reverse(),s=>(d(),r("tr",{key:s.date,class:"border-t border-border"},[t("td",ne,o(s.date),1),t("td",ae,o(n(s.total_input_tokens)),1),t("td",ie,o(n(s.total_output_tokens)),1),t("td",ue,o(n(s.total_tokens)),1),t("td",pe,o(y(s.total_cost_usd)),1)]))),128))])])])],64))])):u("",!0),p.value==="pricing"?(d(),r("div",xe,[t("div",null,[e[18]||(e[18]=t("h2",{class:"text-base font-semibold mb-1"},"Alert Threshold",-1)),e[19]||(e[19]=t("p",{class:"text-sm text-muted-foreground mb-3"}," Post a feed alert when a single task exceeds this many tokens. Leave empty to disable. ",-1)),t("div",ce,[O(t("input",{"onUpdate:modelValue":e[0]||(e[0]=s=>b.value=s),type:"number",min:"0",placeholder:"e.g. 100000",class:"flex-1 rounded-md border border-input bg-background px-3 py-2 text-sm"},null,512),[[B,b.value,void 0,{number:!0}]]),t("button",{onClick:j,disabled:P.value,class:"px-4 py-2 rounded-md bg-primary text-primary-foreground text-sm hover:bg-primary/90 disabled:opacity-50 shrink-0"},o(P.value?"Saving...":S.value?"Saved ✓":"Save"),9,me)])]),t("div",null,[e[24]||(e[24]=t("h2",{class:"text-base font-semibold mb-1"},"Model Pricing",-1)),e[25]||(e[25]=t("p",{class:"text-sm text-muted-foreground mb-3"}," Prices in USD per 1M tokens. Used for cost estimates only. ",-1)),x.value?(d(),r("div",ge,[t("div",he,[e[20]||(e[20]=w("Editing: ",-1)),t("code",ve,o(x.value),1)]),t("div",be,[t("div",ye,[e[21]||(e[21]=t("label",{class:"text-xs text-muted-foreground"},"Input (per 1M tokens)",-1)),O(t("input",{"onUpdate:modelValue":e[1]||(e[1]=s=>$.value=s),type:"number",min:"0",step:"0.01",class:"w-full mt-1 rounded-md border border-input bg-background px-3 py-2 text-sm"},null,512),[[B,$.value,void 0,{number:!0}]])]),t("div",fe,[e[22]||(e[22]=t("label",{class:"text-xs text-muted-foreground"},"Output (per 1M tokens)",-1)),O(t("input",{"onUpdate:modelValue":e[2]||(e[2]=s=>D.value=s),type:"number",min:"0",step:"0.01",class:"w-full mt-1 rounded-md border border-input bg-background px-3 py-2 text-sm"},null,512),[[B,D.value,void 0,{number:!0}]])])]),t("div",_e,[t("button",{onClick:K,disabled:A.value,class:"px-3 py-1.5 rounded-md bg-primary text-primary-foreground text-sm hover:bg-primary/90 disabled:opacity-50"},o(A.value?"Saving...":U.value?"Saved ✓":"Save"),9,ke),t("button",{onClick:e[3]||(e[3]=s=>x.value=""),class:"px-3 py-1.5 rounded-md border border-border text-sm hover:bg-accent"},"Cancel")])])):u("",!0),t("div",we,[t("table",Te,[e[23]||(e[23]=t("thead",{class:"bg-muted"},[t("tr",null,[t("th",{class:"text-left px-4 py-2 font-medium"},"Model"),t("th",{class:"text-right px-4 py-2 font-medium"},"Input / 1M tokens"),t("th",{class:"text-right px-4 py-2 font-medium"},"Output / 1M tokens"),t("th",{class:"text-right px-4 py-2 font-medium"})])],-1)),t("tbody",null,[(d(!0),r(i,null,m(v.value,(s,F)=>(d(),r("tr",{key:F,class:"border-t border-border"},[t("td",Me,o(F),1),t("td",Ce,"$"+o(s.inputPer1M.toFixed(2)),1),t("td",Pe,"$"+o(s.outputPer1M.toFixed(2)),1),t("td",Se,[t("button",{onClick:$e=>G(F),class:"text-xs text-primary hover:underline"},"Edit",8,Ae)])]))),128))])])])])])):u("",!0)],64))])}}});export{Ve as default};
16
+ */const dt=L("TrendingUpIcon",[["polyline",{points:"22 7 13.5 15.5 8.5 10.5 2 17",key:"126l90"}],["polyline",{points:"16 7 22 7 22 13",key:"kwv8wd"}]]),rt={class:"p-6"},lt={class:"flex items-center gap-3 mb-6"},nt={key:0,class:"text-muted-foreground"},at={class:"flex gap-1 border-b border-border mb-6"},it=["onClick"],ut={key:0,class:"space-y-6"},pt={class:"grid grid-cols-2 md:grid-cols-4 gap-4"},xt={class:"border border-border rounded-lg p-4"},ct={class:"flex items-center gap-2 text-muted-foreground text-xs mb-1"},mt={class:"text-2xl font-bold"},gt={class:"text-xs text-muted-foreground mt-1"},ht={class:"border border-border rounded-lg p-4"},vt={class:"flex items-center gap-2 text-muted-foreground text-xs mb-1"},bt={class:"text-2xl font-bold"},yt={class:"border border-border rounded-lg p-4"},ft={class:"flex items-center gap-2 text-muted-foreground text-xs mb-1"},_t={class:"text-2xl font-bold"},kt={class:"border border-border rounded-lg p-4"},wt={class:"flex items-center gap-2 text-muted-foreground text-xs mb-1"},Tt={class:"text-2xl font-bold"},Mt={key:0,class:"flex items-center gap-2 text-sm text-yellow-600 bg-yellow-500/10 border border-yellow-500/20 rounded-lg px-4 py-3"},Ct={key:1},Pt={class:"border border-border rounded-lg overflow-hidden"},St={class:"w-full text-sm"},At={class:"px-4 py-2 font-medium"},Ut={class:"px-4 py-2 text-right text-muted-foreground"},$t={class:"px-4 py-2 text-right text-muted-foreground"},Dt={class:"px-4 py-2 text-right text-muted-foreground"},It={key:2,class:"text-sm text-muted-foreground"},Et={key:1},Vt={key:0,class:"text-sm text-muted-foreground"},Nt={key:1,class:"border border-border rounded-lg overflow-hidden"},Bt={class:"w-full text-sm"},Ft={class:"px-4 py-2 font-medium"},Ot={class:"px-4 py-2 text-right text-muted-foreground"},Lt={class:"px-4 py-2 text-right text-muted-foreground"},qt={class:"px-4 py-2 text-right font-medium"},zt={class:"px-4 py-2 text-right text-muted-foreground"},Ht={class:"px-4 py-2 text-right text-muted-foreground"},Kt={key:2},Gt={key:0,class:"text-sm text-muted-foreground"},Jt={key:1,class:"border border-border rounded-lg overflow-hidden"},Rt={class:"w-full text-sm"},jt={class:"px-4 py-2 font-medium"},Qt={class:"px-4 py-2 text-right text-muted-foreground"},Wt={class:"px-4 py-2 text-right text-muted-foreground"},Xt={class:"px-4 py-2 text-right font-medium"},Yt={class:"px-4 py-2 text-right text-muted-foreground"},Zt={class:"px-4 py-2 text-right text-muted-foreground"},te={key:3},ee={key:0,class:"text-sm text-muted-foreground"},se={class:"mb-6"},oe={class:"flex items-end gap-1 h-32 border border-border rounded-lg p-3 bg-muted/20"},de={class:"absolute bottom-full left-1/2 -translate-x-1/2 mb-1 hidden group-hover:block bg-popover border border-border text-xs rounded px-2 py-1 whitespace-nowrap z-10"},re={class:"border border-border rounded-lg overflow-hidden"},le={class:"w-full text-sm"},ne={class:"px-4 py-2 font-mono text-xs"},ae={class:"px-4 py-2 text-right text-muted-foreground"},ie={class:"px-4 py-2 text-right text-muted-foreground"},ue={class:"px-4 py-2 text-right font-medium"},pe={class:"px-4 py-2 text-right text-muted-foreground"},xe={key:4,class:"space-y-6"},ce={class:"flex items-center gap-3 max-w-sm"},me=["disabled"],ge={key:0,class:"border border-border rounded-lg p-4 mb-4 max-w-md space-y-3"},he={class:"font-medium text-sm"},ve={class:"bg-muted px-1 rounded"},be={class:"flex gap-3"},ye={class:"flex-1"},fe={class:"flex-1"},_e={class:"flex gap-2"},ke=["disabled"],we={class:"border border-border rounded-lg overflow-hidden"},Te={class:"w-full text-sm"},Me={class:"px-4 py-2 font-mono text-xs"},Ce={class:"px-4 py-2 text-right text-muted-foreground"},Pe={class:"px-4 py-2 text-right text-muted-foreground"},Se={class:"px-4 py-2 text-right"},Ae=["onClick"],Ve=j({__name:"UsageView",setup(Ue){const B=a(!0),p=a("overview"),z=[{id:"overview",label:"Overview"},{id:"by-squad",label:"By Squad"},{id:"by-agent",label:"By Agent"},{id:"daily",label:"Daily Trend"},{id:"pricing",label:"Pricing"}],g=a(null),h=a([]),C=a([]),M=a([]),v=a({}),b=a(null),P=a(!1),S=a(!1),A=a(!1),U=a(!1),x=a(""),$=a(0),D=a(0);async function H(){B.value=!0;try{const[l,e,c,I,E,V]=await Promise.all([T("/token-usage/summary"),T("/token-usage/by-squad"),T("/token-usage/by-agent"),T("/token-usage/daily?days=30"),T("/token-usage/pricing"),T("/token-usage/alert-threshold")]);g.value=l,h.value=e.filter(f=>f.record_count>0),C.value=c.filter(f=>f.record_count>0),M.value=I,v.value=E,b.value=V.tokenAlertThreshold}finally{B.value=!1}}async function K(){P.value=!0,S.value=!1;try{await q("/token-usage/alert-threshold",{tokenAlertThreshold:b.value}),S.value=!0,setTimeout(()=>S.value=!1,2e3)}finally{P.value=!1}}function G(l){var e,c;x.value=l,$.value=((e=v.value[l])==null?void 0:e.inputPer1M)??0,D.value=((c=v.value[l])==null?void 0:c.outputPer1M)??0}async function J(){if(x.value){A.value=!0,U.value=!1;try{const l={...v.value,[x.value]:{inputPer1M:$.value,outputPer1M:D.value}};await q("/token-usage/pricing",l),v.value=l,x.value="",U.value=!0,setTimeout(()=>U.value=!1,2e3)}finally{A.value=!1}}}function n(l){return l>=1e6?`${(l/1e6).toFixed(2)}M`:l>=1e3?`${(l/1e3).toFixed(1)}K`:String(l)}function y(l){return l<1e-4?"$0.00":l<.01?`$${l.toFixed(4)}`:`$${l.toFixed(2)}`}const R=tt(()=>Math.max(1,...M.value.map(l=>l.total_tokens)));return Q(H),(l,e)=>{var c,I,E,V,f;return d(),r("div",rt,[t("div",lt,[_(k(W),{class:"w-6 h-6 text-primary"}),e[4]||(e[4]=t("h1",{class:"text-2xl font-bold"},"Token Usage",-1))]),B.value?(d(),r("div",nt,"Loading...")):(d(),r(i,{key:1},[t("div",at,[(d(),r(i,null,m(z,s=>t("button",{key:s.id,onClick:N=>p.value=s.id,class:Y(["px-4 py-2 text-sm font-medium border-b-2 transition-colors",p.value===s.id?"border-primary text-foreground":"border-transparent text-muted-foreground hover:text-foreground"])},o(s.label),11,it)),64))]),p.value==="overview"?(d(),r("div",ut,[t("div",pt,[t("div",xt,[t("div",ct,[_(k(dt),{class:"w-3 h-3"}),e[5]||(e[5]=w(" Total Tokens ",-1))]),t("div",mt,o(n(((c=g.value)==null?void 0:c.total_tokens)??0)),1),t("div",gt,o(n(((I=g.value)==null?void 0:I.total_input_tokens)??0))+" in / "+o(n(((E=g.value)==null?void 0:E.total_output_tokens)??0))+" out ",1)]),t("div",ht,[t("div",vt,[_(k(ot),{class:"w-3 h-3"}),e[6]||(e[6]=w(" Est. Cost ",-1))]),t("div",bt,o(y(((V=g.value)==null?void 0:V.total_cost_usd)??0)),1),e[7]||(e[7]=t("div",{class:"text-xs text-muted-foreground mt-1"},"all time",-1))]),t("div",yt,[t("div",ft,[_(k(X),{class:"w-3 h-3"}),e[8]||(e[8]=w(" Active Squads ",-1))]),t("div",_t,o(h.value.length),1),e[9]||(e[9]=t("div",{class:"text-xs text-muted-foreground mt-1"},"with usage",-1))]),t("div",kt,[t("div",wt,[_(k(st),{class:"w-3 h-3"}),e[10]||(e[10]=w(" Active Agents ",-1))]),t("div",Tt,o(C.value.length),1),e[11]||(e[11]=t("div",{class:"text-xs text-muted-foreground mt-1"},"with usage",-1))])]),b.value!==null?(d(),r("div",Mt,[_(k(et),{class:"w-4 h-4 shrink-0"}),w(" Alert threshold active: "+o(n(b.value))+" tokens per task ",1)])):u("",!0),h.value.length>0?(d(),r("div",Ct,[e[13]||(e[13]=t("h2",{class:"text-base font-semibold mb-3"},"Top Squads by Token Usage",-1)),t("div",Pt,[t("table",St,[e[12]||(e[12]=t("thead",{class:"bg-muted"},[t("tr",null,[t("th",{class:"text-left px-4 py-2 font-medium"},"Squad"),t("th",{class:"text-right px-4 py-2 font-medium"},"Tokens"),t("th",{class:"text-right px-4 py-2 font-medium"},"Est. Cost"),t("th",{class:"text-right px-4 py-2 font-medium"},"Calls")])],-1)),t("tbody",null,[(d(!0),r(i,null,m(h.value.slice(0,5),s=>(d(),r("tr",{key:s.id,class:"border-t border-border"},[t("td",At,o(s.name),1),t("td",Ut,o(n(s.total_tokens)),1),t("td",$t,o(y(s.total_cost_usd)),1),t("td",Dt,o(s.record_count),1)]))),128))])])])])):u("",!0),((f=g.value)==null?void 0:f.total_records)===0?(d(),r("div",It," No token usage recorded yet. Usage will appear here after squads or agents complete tasks. ")):u("",!0)])):u("",!0),p.value==="by-squad"?(d(),r("div",Et,[h.value.length===0?(d(),r("div",Vt,"No usage data yet.")):(d(),r("div",Nt,[t("table",Bt,[e[14]||(e[14]=t("thead",{class:"bg-muted"},[t("tr",null,[t("th",{class:"text-left px-4 py-2 font-medium"},"Squad"),t("th",{class:"text-right px-4 py-2 font-medium"},"Input Tokens"),t("th",{class:"text-right px-4 py-2 font-medium"},"Output Tokens"),t("th",{class:"text-right px-4 py-2 font-medium"},"Total Tokens"),t("th",{class:"text-right px-4 py-2 font-medium"},"Est. Cost"),t("th",{class:"text-right px-4 py-2 font-medium"},"API Calls")])],-1)),t("tbody",null,[(d(!0),r(i,null,m(h.value,s=>(d(),r("tr",{key:s.id,class:"border-t border-border"},[t("td",Ft,o(s.name),1),t("td",Ot,o(n(s.total_input_tokens)),1),t("td",Lt,o(n(s.total_output_tokens)),1),t("td",qt,o(n(s.total_tokens)),1),t("td",zt,o(y(s.total_cost_usd)),1),t("td",Ht,o(s.record_count),1)]))),128))])])]))])):u("",!0),p.value==="by-agent"?(d(),r("div",Kt,[C.value.length===0?(d(),r("div",Gt,"No usage data yet.")):(d(),r("div",Jt,[t("table",Rt,[e[15]||(e[15]=t("thead",{class:"bg-muted"},[t("tr",null,[t("th",{class:"text-left px-4 py-2 font-medium"},"Agent"),t("th",{class:"text-right px-4 py-2 font-medium"},"Input Tokens"),t("th",{class:"text-right px-4 py-2 font-medium"},"Output Tokens"),t("th",{class:"text-right px-4 py-2 font-medium"},"Total Tokens"),t("th",{class:"text-right px-4 py-2 font-medium"},"Est. Cost"),t("th",{class:"text-right px-4 py-2 font-medium"},"API Calls")])],-1)),t("tbody",null,[(d(!0),r(i,null,m(C.value,s=>(d(),r("tr",{key:s.id,class:"border-t border-border"},[t("td",jt,o(s.name),1),t("td",Qt,o(n(s.total_input_tokens)),1),t("td",Wt,o(n(s.total_output_tokens)),1),t("td",Xt,o(n(s.total_tokens)),1),t("td",Yt,o(y(s.total_cost_usd)),1),t("td",Zt,o(s.record_count),1)]))),128))])])]))])):u("",!0),p.value==="daily"?(d(),r("div",te,[M.value.length===0?(d(),r("div",ee,"No usage data yet.")):(d(),r(i,{key:1},[t("div",se,[e[16]||(e[16]=t("h2",{class:"text-base font-semibold mb-3"},"Last 30 Days — Token Usage",-1)),t("div",oe,[(d(!0),r(i,null,m(M.value,s=>(d(),r("div",{key:s.date,class:"flex-1 bg-primary/60 rounded-t min-w-[4px] relative group",style:Z({height:`${s.total_tokens/R.value*100}%`})},[t("div",de,o(s.date)+": "+o(n(s.total_tokens))+" tokens ("+o(y(s.total_cost_usd))+") ",1)],4))),128))])]),t("div",re,[t("table",le,[e[17]||(e[17]=t("thead",{class:"bg-muted"},[t("tr",null,[t("th",{class:"text-left px-4 py-2 font-medium"},"Date"),t("th",{class:"text-right px-4 py-2 font-medium"},"Input Tokens"),t("th",{class:"text-right px-4 py-2 font-medium"},"Output Tokens"),t("th",{class:"text-right px-4 py-2 font-medium"},"Total Tokens"),t("th",{class:"text-right px-4 py-2 font-medium"},"Est. Cost")])],-1)),t("tbody",null,[(d(!0),r(i,null,m([...M.value].reverse(),s=>(d(),r("tr",{key:s.date,class:"border-t border-border"},[t("td",ne,o(s.date),1),t("td",ae,o(n(s.total_input_tokens)),1),t("td",ie,o(n(s.total_output_tokens)),1),t("td",ue,o(n(s.total_tokens)),1),t("td",pe,o(y(s.total_cost_usd)),1)]))),128))])])])],64))])):u("",!0),p.value==="pricing"?(d(),r("div",xe,[t("div",null,[e[18]||(e[18]=t("h2",{class:"text-base font-semibold mb-1"},"Alert Threshold",-1)),e[19]||(e[19]=t("p",{class:"text-sm text-muted-foreground mb-3"}," Post a feed alert when a single task exceeds this many tokens. Leave empty to disable. ",-1)),t("div",ce,[F(t("input",{"onUpdate:modelValue":e[0]||(e[0]=s=>b.value=s),type:"number",min:"0",placeholder:"e.g. 100000",class:"flex-1 rounded-md border border-input bg-background px-3 py-2 text-sm"},null,512),[[O,b.value,void 0,{number:!0}]]),t("button",{onClick:K,disabled:P.value,class:"px-4 py-2 rounded-md bg-primary text-primary-foreground text-sm hover:bg-primary/90 disabled:opacity-50 shrink-0"},o(P.value?"Saving...":S.value?"Saved ✓":"Save"),9,me)])]),t("div",null,[e[24]||(e[24]=t("h2",{class:"text-base font-semibold mb-1"},"Model Pricing",-1)),e[25]||(e[25]=t("p",{class:"text-sm text-muted-foreground mb-3"}," Prices in USD per 1M tokens. Used for cost estimates only. ",-1)),x.value?(d(),r("div",ge,[t("div",he,[e[20]||(e[20]=w("Editing: ",-1)),t("code",ve,o(x.value),1)]),t("div",be,[t("div",ye,[e[21]||(e[21]=t("label",{class:"text-xs text-muted-foreground"},"Input (per 1M tokens)",-1)),F(t("input",{"onUpdate:modelValue":e[1]||(e[1]=s=>$.value=s),type:"number",min:"0",step:"0.01",class:"w-full mt-1 rounded-md border border-input bg-background px-3 py-2 text-sm"},null,512),[[O,$.value,void 0,{number:!0}]])]),t("div",fe,[e[22]||(e[22]=t("label",{class:"text-xs text-muted-foreground"},"Output (per 1M tokens)",-1)),F(t("input",{"onUpdate:modelValue":e[2]||(e[2]=s=>D.value=s),type:"number",min:"0",step:"0.01",class:"w-full mt-1 rounded-md border border-input bg-background px-3 py-2 text-sm"},null,512),[[O,D.value,void 0,{number:!0}]])])]),t("div",_e,[t("button",{onClick:J,disabled:A.value,class:"px-3 py-1.5 rounded-md bg-primary text-primary-foreground text-sm hover:bg-primary/90 disabled:opacity-50"},o(A.value?"Saving...":U.value?"Saved ✓":"Save"),9,ke),t("button",{onClick:e[3]||(e[3]=s=>x.value=""),class:"px-3 py-1.5 rounded-md border border-border text-sm hover:bg-accent"},"Cancel")])])):u("",!0),t("div",we,[t("table",Te,[e[23]||(e[23]=t("thead",{class:"bg-muted"},[t("tr",null,[t("th",{class:"text-left px-4 py-2 font-medium"},"Model"),t("th",{class:"text-right px-4 py-2 font-medium"},"Input / 1M tokens"),t("th",{class:"text-right px-4 py-2 font-medium"},"Output / 1M tokens"),t("th",{class:"text-right px-4 py-2 font-medium"})])],-1)),t("tbody",null,[(d(!0),r(i,null,m(v.value,(s,N)=>(d(),r("tr",{key:N,class:"border-t border-border"},[t("td",Me,o(N),1),t("td",Ce,"$"+o(s.inputPer1M.toFixed(2)),1),t("td",Pe,"$"+o(s.outputPer1M.toFixed(2)),1),t("td",Se,[t("button",{onClick:$e=>G(N),class:"text-xs text-primary hover:underline"},"Edit",8,Ae)])]))),128))])])])])])):u("",!0)],64))])}}});export{Ve as default};
@@ -0,0 +1,26 @@
1
+ import{r as j,u as se,a3 as oe,J as o,q as a,d as b,L as K,m as A,n as t,o as I,T as d,a as ce,t as v,F as ve,R as N,D as pe,z,a7 as fe,p as B,K as c,E as me,B as H,s as S,a5 as V,a1 as L,a6 as R,X as Z,l as G}from"./index-DlMYQPPk.js";import{b as T,d as E,a as J}from"./api-Dg3ccdl2.js";import{S as xe}from"./search-eMpKL6Mh.js";import{P as O}from"./plus-B9RNjhEm.js";import{P as X,S as Y}from"./save-BHW-ttFe.js";import{T as ee}from"./trash-2-E0uVesm_.js";/**
2
+ * @license lucide-vue-next v0.474.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */const ge=j("ChevronRightIcon",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/**
7
+ * @license lucide-vue-next v0.474.0 - ISC
8
+ *
9
+ * This source code is licensed under the ISC license.
10
+ * See the LICENSE file in the root directory of this source tree.
11
+ */const te=j("FileCodeIcon",[["path",{d:"M10 12.5 8 15l2 2.5",key:"1tg20x"}],["path",{d:"m14 12.5 2 2.5-2 2.5",key:"yinavb"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z",key:"1mlx9k"}]]);/**
12
+ * @license lucide-vue-next v0.474.0 - ISC
13
+ *
14
+ * This source code is licensed under the ISC license.
15
+ * See the LICENSE file in the root directory of this source tree.
16
+ */const he=j("FilePlusIcon",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M9 15h6",key:"cctwl0"}],["path",{d:"M12 18v-6",key:"17g6i2"}]]);/**
17
+ * @license lucide-vue-next v0.474.0 - ISC
18
+ *
19
+ * This source code is licensed under the ISC license.
20
+ * See the LICENSE file in the root directory of this source tree.
21
+ */const be=j("FolderIcon",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);/**
22
+ * @license lucide-vue-next v0.474.0 - ISC
23
+ *
24
+ * This source code is licensed under the ISC license.
25
+ * See the LICENSE file in the root directory of this source tree.
26
+ */const ye=j("LinkIcon",[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]]),ke={class:"select-none"},we=["onClick"],_e={class:"truncate"},Ce=["onClick"],$e=se({__name:"WikiTree",props:{pages:{},selectedPage:{},searchQuery:{}},emits:["select","addFile"],setup(U,{emit:w}){const x=U,f=w,g=c(new Set);function y(i){const u=[];for(const n of i){const p=n.split("/");let m=u;for(let h=0;h<p.length;h++){const P=p[h],$=p.slice(0,h+1).join("/"),k=h<p.length-1;let F=m.find(D=>D.name===P&&D.isFolder===k);F||(F={name:P,path:$,children:[],isFolder:k},m.push(F)),m=F.children}}const s=n=>{n.sort((p,m)=>p.isFolder!==m.isFolder?p.isFolder?-1:1:p.name.localeCompare(m.name)),n.forEach(p=>s(p.children))};return s(u),u}const _=A(()=>{let i=x.pages;if(x.searchQuery){const u=x.searchQuery.toLowerCase();i=x.pages.filter(s=>s.toLowerCase().includes(u))}return y(i)});oe(()=>x.selectedPage,i=>{if(!i)return;const u=i.split("/");for(let s=1;s<u.length;s++)g.value.add(u.slice(0,s).join("/"))},{immediate:!0});function q(i){g.value.has(i)?g.value.delete(i):g.value.add(i)}function M(i,u){const s=[];for(const n of i)s.push({node:n,depth:u}),n.isFolder&&g.value.has(n.path)&&s.push(...M(n.children,u+1));return s}const C=A(()=>M(_.value,0));return(i,u)=>(o(),a("div",ke,[(o(!0),a(b,null,K(C.value,({node:s,depth:n})=>(o(),a("div",{key:s.path,class:"group relative"},[t("button",{onClick:p=>s.isFolder?q(s.path):f("select",s.path),class:z(["w-full text-left flex items-center gap-1 py-1 text-xs rounded hover:bg-accent transition-colors",{"bg-accent font-medium":!s.isFolder&&U.selectedPage===s.path}]),style:pe({paddingLeft:n*12+8+"px"})},[s.isFolder?(o(),a(b,{key:0},[g.value.has(s.path)?(o(),I(d(ce),{key:0,class:"w-3 h-3 shrink-0 text-muted-foreground"})):(o(),I(d(ge),{key:1,class:"w-3 h-3 shrink-0 text-muted-foreground"})),v(d(be),{class:"w-3.5 h-3.5 shrink-0 text-muted-foreground"})],64)):(o(),a(b,{key:1},[u[0]||(u[0]=t("span",{class:"w-3 shrink-0"},null,-1)),v(d(ve),{class:"w-3.5 h-3.5 shrink-0 text-muted-foreground"})],64)),t("span",_e,N(s.name),1)],14,we),s.isFolder?(o(),a("button",{key:0,onClick:fe(p=>f("addFile",s.path),["stop"]),class:"absolute right-1 top-1/2 -translate-y-1/2 p-0.5 rounded opacity-0 group-hover:opacity-100 hover:bg-primary/10 text-muted-foreground hover:text-primary transition-all",title:"Add file here"},[v(d(he),{class:"w-3.5 h-3.5"})],8,Ce)):B("",!0)]))),128))]))}}),Fe={class:"flex flex-col h-full"},Pe={class:"flex border-b border-border shrink-0"},Te={key:0,class:"flex flex-1 overflow-hidden"},qe={class:"w-64 border-r border-border flex flex-col shrink-0"},Me={class:"p-3 border-b border-border space-y-2"},Se={class:"relative"},Ve={key:0,class:"space-y-1.5"},Le={class:"flex gap-1"},Ne=["disabled"],je={class:"flex-1 overflow-y-auto p-2"},De={key:0,class:"text-xs text-muted-foreground p-2"},Ee={class:"flex-1 flex flex-col overflow-hidden"},ze={key:0,class:"flex items-center justify-center h-full text-muted-foreground"},Be={class:"text-center"},Ie={class:"flex items-center justify-between px-4 py-2 border-b border-border"},Ue={class:"text-sm font-medium font-mono"},Ke={class:"flex gap-1"},Qe={class:"flex-1 overflow-y-auto p-4"},We={key:0,class:"mt-8 pt-4 border-t border-border"},Ae={class:"flex items-center gap-1.5 mb-2 text-xs font-medium text-muted-foreground"},He={class:"space-y-1"},Re=["onClick"],Ze={key:1,class:"flex flex-1 overflow-hidden"},Ge={class:"w-64 border-r border-border flex flex-col shrink-0"},Je={class:"p-3 border-b border-border space-y-2"},Oe={key:0,class:"space-y-1.5"},Xe={class:"flex gap-1"},Ye=["disabled"],et={class:"flex-1 overflow-y-auto p-2"},tt={key:0,class:"text-xs text-muted-foreground p-2"},st={key:1,class:"text-xs text-muted-foreground p-2"},ot=["onClick"],lt={class:"flex-1 flex flex-col overflow-hidden"},at={key:0,class:"flex items-center justify-center h-full text-muted-foreground"},nt={class:"text-center"},rt={class:"flex items-center justify-between px-4 py-2 border-b border-border"},it={class:"text-sm font-medium font-mono"},ut={class:"flex gap-1"},dt={class:"flex-1 overflow-y-auto p-4"},gt=se({__name:"WikiView",setup(U){const w=c("pages"),x=c([]),f=c(null),g=c(""),y=c(!1),_=c(""),q=c(""),M=c(!0),C=c(!1),i=c(""),u=c([]),s=c([]),n=c(null),p=c(""),m=c(!1),h=c(""),P=c(!1),$=c(!1),k=c("");me(async()=>{try{x.value=await T("/wiki/pages")}finally{M.value=!1}}),oe(w,async r=>{if(r==="templates"&&s.value.length===0){P.value=!0;try{s.value=await T("/wiki/templates/squad")}finally{P.value=!1}}});async function F(r){f.value=r,y.value=!1;const e=await T(`/wiki/page/${r}`);g.value=e.content,u.value=await T(`/wiki/backlinks/${r}`)}function D(){_.value=g.value,y.value=!0}async function le(){f.value&&(await E(`/wiki/page/${f.value}`,{content:_.value}),g.value=_.value,y.value=!1,u.value=await T(`/wiki/backlinks/${f.value}`))}async function ae(){f.value&&confirm(`Delete "${f.value}"?`)&&(await J(`/wiki/page/${f.value}`),x.value=x.value.filter(r=>r!==f.value),f.value=null,g.value="",u.value=[])}async function Q(){const r=i.value.trim();if(!r)return;const e=r.endsWith(".md")?r:`${r}.md`;await E(`/wiki/page/${e}`,{content:""}),x.value.includes(e)||(x.value.push(e),x.value.sort()),C.value=!1,i.value="",f.value=e,g.value="",_.value="",y.value=!0,u.value=[]}async function ne(r){n.value=r,m.value=!1;const e=await T(`/wiki/template/squad/${r}`);p.value=e.content}function re(){h.value=p.value,m.value=!0}async function ie(){n.value&&(await E(`/wiki/template/squad/${n.value}`,{content:h.value}),p.value=h.value,m.value=!1)}async function ue(){n.value&&confirm(`Delete template "${n.value}"?`)&&(await J(`/wiki/template/squad/${n.value}`),s.value=s.value.filter(r=>r!==n.value),n.value=null,p.value="")}async function W(){const r=k.value.trim();if(!r)return;const e=r.endsWith(".md")?r:`${r}.md`;await E(`/wiki/template/squad/${e}`,{content:""}),s.value.includes(e)||(s.value.push(e),s.value.sort()),$.value=!1,k.value="",n.value=e,p.value="",h.value="",m.value=!0}return(r,e)=>(o(),a("div",Fe,[t("div",Pe,[t("button",{onClick:e[0]||(e[0]=l=>w.value="pages"),class:z(["px-4 py-2 text-sm font-medium border-b-2 transition-colors",w.value==="pages"?"border-primary text-primary":"border-transparent text-muted-foreground hover:text-foreground"])},[v(d(H),{class:"inline w-4 h-4 mr-1.5 -mt-0.5"}),e[15]||(e[15]=S(" Pages ",-1))],2),t("button",{onClick:e[1]||(e[1]=l=>w.value="templates"),class:z(["px-4 py-2 text-sm font-medium border-b-2 transition-colors",w.value==="templates"?"border-primary text-primary":"border-transparent text-muted-foreground hover:text-foreground"])},[v(d(te),{class:"inline w-4 h-4 mr-1.5 -mt-0.5"}),e[16]||(e[16]=S(" Squad Templates ",-1))],2)]),w.value==="pages"?(o(),a("div",Te,[t("div",qe,[t("div",Me,[t("div",Se,[v(d(xe),{class:"absolute left-2.5 top-2.5 w-3.5 h-3.5 text-muted-foreground"}),V(t("input",{"onUpdate:modelValue":e[2]||(e[2]=l=>q.value=l),placeholder:"Search pages...",class:"w-full rounded-md border border-input bg-background pl-8 pr-3 py-2 text-xs focus:outline-none focus:ring-1 focus:ring-ring"},null,512),[[L,q.value]])]),t("button",{onClick:e[3]||(e[3]=l=>C.value=!C.value),class:"w-full flex items-center justify-center gap-1.5 px-2 py-1.5 text-xs rounded-md bg-primary text-primary-foreground hover:bg-primary/90"},[v(d(O),{class:"w-3.5 h-3.5"}),e[17]||(e[17]=S(" New Page ",-1))]),C.value?(o(),a("div",Ve,[V(t("input",{"onUpdate:modelValue":e[4]||(e[4]=l=>i.value=l),placeholder:"path/to/page.md",class:"w-full rounded-md border border-input bg-background px-2 py-1.5 text-xs focus:outline-none focus:ring-1 focus:ring-ring",onKeyup:R(Q,["enter"])},null,544),[[L,i.value]]),t("div",Le,[t("button",{onClick:Q,disabled:!i.value.trim(),class:"flex-1 px-2 py-1 text-xs rounded bg-primary text-primary-foreground hover:bg-primary/90 disabled:opacity-50"}," Create ",8,Ne),t("button",{onClick:e[5]||(e[5]=l=>{C.value=!1,i.value=""}),class:"px-2 py-1 text-xs rounded border border-border hover:bg-accent"}," Cancel ")])])):B("",!0)]),t("div",je,[M.value?(o(),a("div",De,"Loading...")):(o(),I($e,{key:1,pages:x.value,"selected-page":f.value,"search-query":q.value,onSelect:e[6]||(e[6]=l=>F(l)),onAddFile:e[7]||(e[7]=l=>{C.value=!0,i.value=l+"/"})},null,8,["pages","selected-page","search-query"]))])]),t("div",Ee,[f.value?(o(),a(b,{key:1},[t("div",Ie,[t("span",Ue,N(f.value),1),t("div",Ke,[y.value?(o(),a(b,{key:1},[t("button",{onClick:le,class:"p-1.5 rounded hover:bg-accent text-green-500",title:"Save"},[v(d(Y),{class:"w-4 h-4"})]),t("button",{onClick:e[8]||(e[8]=l=>y.value=!1),class:"p-1.5 rounded hover:bg-accent text-muted-foreground",title:"Cancel"},[v(d(Z),{class:"w-4 h-4"})])],64)):(o(),a(b,{key:0},[t("button",{onClick:D,class:"p-1.5 rounded hover:bg-accent text-muted-foreground",title:"Edit"},[v(d(X),{class:"w-4 h-4"})]),t("button",{onClick:ae,class:"p-1.5 rounded hover:bg-destructive/10 text-muted-foreground hover:text-destructive",title:"Delete"},[v(d(ee),{class:"w-4 h-4"})])],64))])]),t("div",Qe,[y.value?V((o(),a("textarea",{key:0,"onUpdate:modelValue":e[9]||(e[9]=l=>_.value=l),class:"w-full h-full min-h-[400px] font-mono text-sm bg-background border border-input rounded-md p-3 focus:outline-none focus:ring-1 focus:ring-ring resize-none"},null,512)),[[L,_.value]]):(o(),a(b,{key:1},[v(G,{content:g.value},null,8,["content"]),u.value.length>0?(o(),a("div",We,[t("div",Ae,[v(d(ye),{class:"w-3.5 h-3.5"}),e[19]||(e[19]=S(" Backlinks ",-1))]),t("ul",He,[(o(!0),a(b,null,K(u.value,l=>(o(),a("li",{key:l},[t("button",{onClick:de=>F(l),class:"text-xs text-primary hover:underline font-mono"},N(l),9,Re)]))),128))])])):B("",!0)],64))])],64)):(o(),a("div",ze,[t("div",Be,[v(d(H),{class:"w-12 h-12 mx-auto mb-3 opacity-50"}),e[18]||(e[18]=t("p",null,"Select a page to view",-1))])]))])])):(o(),a("div",Ze,[t("div",Ge,[t("div",Je,[e[21]||(e[21]=t("p",{class:"text-xs text-muted-foreground"}," Files copied verbatim into each new squad's wiki directory on creation. ",-1)),t("button",{onClick:e[10]||(e[10]=l=>$.value=!$.value),class:"w-full flex items-center justify-center gap-1.5 px-2 py-1.5 text-xs rounded-md bg-primary text-primary-foreground hover:bg-primary/90"},[v(d(O),{class:"w-3.5 h-3.5"}),e[20]||(e[20]=S(" New Template ",-1))]),$.value?(o(),a("div",Oe,[V(t("input",{"onUpdate:modelValue":e[11]||(e[11]=l=>k.value=l),placeholder:"filename.md",class:"w-full rounded-md border border-input bg-background px-2 py-1.5 text-xs focus:outline-none focus:ring-1 focus:ring-ring",onKeyup:R(W,["enter"])},null,544),[[L,k.value]]),t("div",Xe,[t("button",{onClick:W,disabled:!k.value.trim(),class:"flex-1 px-2 py-1 text-xs rounded bg-primary text-primary-foreground hover:bg-primary/90 disabled:opacity-50"}," Create ",8,Ye),t("button",{onClick:e[12]||(e[12]=l=>{$.value=!1,k.value=""}),class:"px-2 py-1 text-xs rounded border border-border hover:bg-accent"}," Cancel ")])])):B("",!0)]),t("div",et,[P.value?(o(),a("div",tt,"Loading...")):s.value.length===0?(o(),a("div",st,"No templates yet.")):(o(!0),a(b,{key:2},K(s.value,l=>(o(),a("button",{key:l,onClick:de=>ne(l),class:z(["w-full text-left px-2 py-1.5 text-xs rounded hover:bg-accent font-mono truncate",n.value===l?"bg-accent text-accent-foreground":"text-foreground"])},N(l),11,ot))),128))])]),t("div",lt,[n.value?(o(),a(b,{key:1},[t("div",rt,[t("span",it,N(n.value),1),t("div",ut,[m.value?(o(),a(b,{key:1},[t("button",{onClick:ie,class:"p-1.5 rounded hover:bg-accent text-green-500",title:"Save"},[v(d(Y),{class:"w-4 h-4"})]),t("button",{onClick:e[13]||(e[13]=l=>m.value=!1),class:"p-1.5 rounded hover:bg-accent text-muted-foreground",title:"Cancel"},[v(d(Z),{class:"w-4 h-4"})])],64)):(o(),a(b,{key:0},[t("button",{onClick:re,class:"p-1.5 rounded hover:bg-accent text-muted-foreground",title:"Edit"},[v(d(X),{class:"w-4 h-4"})]),t("button",{onClick:ue,class:"p-1.5 rounded hover:bg-destructive/10 text-muted-foreground hover:text-destructive",title:"Delete"},[v(d(ee),{class:"w-4 h-4"})])],64))])]),t("div",dt,[m.value?V((o(),a("textarea",{key:0,"onUpdate:modelValue":e[14]||(e[14]=l=>h.value=l),class:"w-full h-full min-h-[400px] font-mono text-sm bg-background border border-input rounded-md p-3 focus:outline-none focus:ring-1 focus:ring-ring resize-none"},null,512)),[[L,h.value]]):(o(),I(G,{key:1,content:p.value},null,8,["content"]))])],64)):(o(),a("div",at,[t("div",nt,[v(d(te),{class:"w-12 h-12 mx-auto mb-3 opacity-50"}),e[22]||(e[22]=t("p",null,"Select a template to edit",-1)),e[23]||(e[23]=t("p",{class:"text-xs mt-1"},"Templates are copied into new squads on creation",-1))])]))])]))]))}});export{gt as default};
@@ -1 +1 @@
1
- import{E as i,y as c}from"./index-CFtE6hNm.js";const o="/api";function u(t){try{return JSON.parse(atob(t.split(".")[1])).exp*1e3<=Date.now()+6e4}catch{return!0}}async function n(){const t=i(),e={"Content-Type":"application/json"};return t.token&&u(t.token)&&await t.refreshToken(),t.token&&(e.Authorization=`Bearer ${t.token}`),e}async function s(t,e){if(t.status===401){const r=i();try{if(await r.refreshToken(),r.token){const a=await e();if(a.status===401)throw r.logout(),c.push("/login"),new Error("Session expired");return a}}catch{}throw r.logout(),c.push("/login"),new Error("Session expired")}return t}async function w(t){const e=await s(await fetch(`${o}${t}`,{headers:await n()}),async()=>fetch(`${o}${t}`,{headers:await n()}));if(!e.ok)throw new Error(`API error: ${e.status}`);return e.json()}async function f(t,e){const r={method:"POST",headers:await n(),body:e?JSON.stringify(e):void 0},a=await s(await fetch(`${o}${t}`,r),async()=>fetch(`${o}${t}`,{...r,headers:await n()}));if(!a.ok)throw new Error(`API error: ${a.status}`);return a.json()}async function $(t,e){const r={method:"PUT",headers:await n(),body:e?JSON.stringify(e):void 0},a=await s(await fetch(`${o}${t}`,r),async()=>fetch(`${o}${t}`,{...r,headers:await n()}));if(!a.ok)throw new Error(`API error: ${a.status}`);return a.json()}async function d(t){const e={method:"DELETE",headers:await n()},r=await s(await fetch(`${o}${t}`,e),async()=>fetch(`${o}${t}`,{...e,headers:await n()}));if(!r.ok)throw new Error(`API error: ${r.status}`);return r.json()}function p(){const t=i(),e=`${o}/stream?token=${t.token??""}`;return new EventSource(e)}export{d as a,w as b,f as c,$ as d,p as e};
1
+ import{V as i,O as c}from"./index-DlMYQPPk.js";const o="/api";function u(t){try{return JSON.parse(atob(t.split(".")[1])).exp*1e3<=Date.now()+6e4}catch{return!0}}async function n(){const t=i(),e={"Content-Type":"application/json"};return t.token&&u(t.token)&&await t.refreshToken(),t.token&&(e.Authorization=`Bearer ${t.token}`),e}async function s(t,e){if(t.status===401){const r=i();try{if(await r.refreshToken(),r.token){const a=await e();if(a.status===401)throw r.logout(),c.push("/login"),new Error("Session expired");return a}}catch{}throw r.logout(),c.push("/login"),new Error("Session expired")}return t}async function w(t){const e=await s(await fetch(`${o}${t}`,{headers:await n()}),async()=>fetch(`${o}${t}`,{headers:await n()}));if(!e.ok)throw new Error(`API error: ${e.status}`);return e.json()}async function f(t,e){const r={method:"POST",headers:await n(),body:e?JSON.stringify(e):void 0},a=await s(await fetch(`${o}${t}`,r),async()=>fetch(`${o}${t}`,{...r,headers:await n()}));if(!a.ok)throw new Error(`API error: ${a.status}`);return a.json()}async function $(t,e){const r={method:"PUT",headers:await n(),body:e?JSON.stringify(e):void 0},a=await s(await fetch(`${o}${t}`,r),async()=>fetch(`${o}${t}`,{...r,headers:await n()}));if(!a.ok)throw new Error(`API error: ${a.status}`);return a.json()}async function d(t){const e={method:"DELETE",headers:await n()},r=await s(await fetch(`${o}${t}`,e),async()=>fetch(`${o}${t}`,{...e,headers:await n()}));if(!r.ok)throw new Error(`API error: ${r.status}`);return r.json()}function p(){const t=i(),e=`${o}/stream?token=${t.token??""}`;return new EventSource(e)}export{d as a,w as b,f as c,$ as d,p as e};
@@ -1,6 +1,6 @@
1
- import{l as e}from"./index-CFtE6hNm.js";/**
1
+ import{r}from"./index-DlMYQPPk.js";/**
2
2
  * @license lucide-vue-next v0.474.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
5
5
  * See the LICENSE file in the root directory of this source tree.
6
- */const t=e("XIcon",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);export{t as X};
6
+ */const o=r("ArrowLeftIcon",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);export{o as A};
@@ -1,4 +1,4 @@
1
- import{l as c}from"./index-CFtE6hNm.js";/**
1
+ import{r as c}from"./index-DlMYQPPk.js";/**
2
2
  * @license lucide-vue-next v0.474.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -0,0 +1 @@
1
+ @import"https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;700&display=swap";.overlay-fab[data-v-532d00e7]{position:fixed;bottom:1rem;right:1rem;z-index:50;display:flex;height:3rem;align-items:center;gap:.5rem;border-radius:9999px;padding-left:1rem;padding-right:1rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1));--tw-shadow: 0 0 40px hsl(var(--gradient-mid) / .3);--tw-shadow-colored: 0 0 40px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}@media(min-width:640px){.overlay-fab[data-v-532d00e7]{bottom:1.5rem;right:1.5rem}}.overlay-fab[data-v-532d00e7]{background:linear-gradient(135deg,hsl(var(--gradient-start)),hsl(var(--gradient-mid)),hsl(var(--gradient-end)))}.overlay-fab-label[data-v-532d00e7]{font-family:Bebas Neue,Inter,sans-serif;font-size:1.125rem;line-height:1.75rem;line-height:1;letter-spacing:.1em}.overlay-fab[data-v-532d00e7]:hover{--tw-translate-y: -.125rem;--tw-scale-x: 1.02;--tw-scale-y: 1.02;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-shadow: 0 0 20px hsl(var(--gradient-mid) / .2);--tw-shadow-colored: 0 0 20px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.overlay-fab[data-v-532d00e7]:active{--tw-translate-y: 0px;--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.overlay-fab[data-v-532d00e7]:focus-visible{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-color: hsl(var(--ring));--tw-ring-offset-width: 2px;--tw-ring-offset-color: hsl(var(--background))}.overlay-panel[data-v-532d00e7]{position:fixed;left:0;right:0;bottom:0;z-index:50;display:flex;height:100dvh;flex-direction:column;overflow:hidden;border-width:1px;border-color:hsl(var(--border));background-color:hsl(var(--card) / .95);--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}@media(min-width:768px){.overlay-panel[data-v-532d00e7]{bottom:1rem;right:1rem;left:auto;height:min(44rem,85vh);width:min(27rem,calc(100vw - 2.25rem));border-radius:1rem}}@media(min-width:1024px){.overlay-panel[data-v-532d00e7]{bottom:1.5rem;right:1.5rem;height:min(46rem,86vh);width:29rem}}.overlay-panel-dragging[data-v-532d00e7]{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-color: hsl(var(--primary) / .5)}.overlay-header[data-v-532d00e7]{display:flex;align-items:center;justify-content:space-between;border-bottom-width:1px;border-color:hsl(var(--border) / .8);background-color:hsl(var(--header) / .85);padding:.75rem 1rem}.overlay-status-dot[data-v-532d00e7]{height:.625rem;width:.625rem;border-radius:9999px;--tw-bg-opacity: 1;background-color:rgb(52 211 153 / var(--tw-bg-opacity, 1));box-shadow:0 0 0 4px #34d39924}.overlay-title[data-v-532d00e7]{font-family:Bebas Neue,Inter,sans-serif;font-size:1.25rem;line-height:1.75rem;line-height:1;letter-spacing:.08em;color:hsl(var(--foreground))}.overlay-meta[data-v-532d00e7]{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;line-height:1rem}.overlay-icon-btn[data-v-532d00e7]{border-radius:calc(var(--radius) - 2px);padding:.375rem;color:hsl(var(--muted-foreground));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.overlay-icon-btn[data-v-532d00e7]:hover{background-color:hsl(var(--accent));color:hsl(var(--foreground))}.overlay-icon-btn[data-v-532d00e7]:focus-visible{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-color: hsl(var(--ring));--tw-ring-offset-width: 2px;--tw-ring-offset-color: hsl(var(--card))}.overlay-messages[data-v-532d00e7]{position:relative;flex:1 1 0%}.overlay-messages[data-v-532d00e7]>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.overlay-messages[data-v-532d00e7]{overflow-y:auto;padding:.875rem .75rem}@media(min-width:768px){.overlay-messages[data-v-532d00e7]{padding-left:1rem;padding-right:1rem}}.overlay-messages[data-v-532d00e7]{background:radial-gradient(circle at 25% 0%,hsl(var(--primary) / .08),transparent 30%),linear-gradient(180deg,hsl(var(--background)),hsl(var(--card)))}.overlay-bubble[data-v-532d00e7]{max-width:90%;border-radius:.75rem;border-width:1px;padding:.625rem .75rem;font-size:13px;line-height:1.625}@media(min-width:768px){.overlay-bubble[data-v-532d00e7]{max-width:84%}}.overlay-bubble-assistant[data-v-532d00e7]{border-color:hsl(var(--border) / .7);background-color:hsl(var(--secondary));color:hsl(var(--foreground))}.overlay-bubble-user[data-v-532d00e7]{border-color:transparent;color:hsl(var(--primary-foreground));background:linear-gradient(135deg,hsl(var(--gradient-start) / .9),hsl(var(--gradient-mid) / .95),hsl(var(--gradient-end) / .92))}.overlay-dot[data-v-532d00e7]{height:.375rem;width:.375rem;border-radius:9999px;background-color:currentColor}.overlay-attachment[data-v-532d00e7]{border-radius:var(--radius);border-width:1px;border-color:hsl(var(--border) / .6);background-color:hsl(var(--background) / .6);padding:.5rem;color:hsl(var(--foreground))}.overlay-markdown[data-v-532d00e7] p:last-child{margin-bottom:0}.overlay-markdown[data-v-532d00e7] pre{border-radius:var(--radius);border-width:1px;border-color:hsl(var(--border) / .8);background-color:hsl(var(--background) / .65);padding:0}.overlay-markdown[data-v-532d00e7] pre code{display:block;overflow-x:auto;padding:.5rem .75rem;font-size:12px;font-weight:500;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace}.overlay-scroll-hint[data-v-532d00e7]{position:absolute;bottom:9.25rem;left:50%;z-index:10;display:inline-flex;--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));align-items:center;gap:.25rem;border-radius:9999px;border-width:1px;border-color:hsl(var(--border));background-color:hsl(var(--card) / .95);padding:.25rem .625rem;font-size:11px;color:hsl(var(--muted-foreground));--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace}.overlay-footer[data-v-532d00e7]{border-top-width:1px;border-color:hsl(var(--border) / .8);background-color:hsl(var(--card) / .95);padding:.75rem}.overlay-chip[data-v-532d00e7]{display:flex;align-items:center;gap:.375rem;border-radius:calc(var(--radius) - 2px);border-width:1px;border-color:hsl(var(--border));background-color:hsl(var(--muted) / .6);padding:.25rem .375rem;font-size:11px;color:hsl(var(--foreground));font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace}.overlay-input[data-v-532d00e7]{max-height:136px;min-height:42px;flex:1 1 0%;resize:none;border-radius:var(--radius);border-width:1px;border-color:hsl(var(--input));background-color:hsl(var(--input));padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;color:hsl(var(--foreground));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.overlay-input[data-v-532d00e7]::-moz-placeholder{color:hsl(var(--muted-foreground))}.overlay-input[data-v-532d00e7]::placeholder{color:hsl(var(--muted-foreground))}.overlay-input[data-v-532d00e7]:hover{border-color:hsl(var(--border))}.overlay-input[data-v-532d00e7]:focus{outline:2px solid transparent;outline-offset:2px}.overlay-input[data-v-532d00e7]:focus-visible{border-color:hsl(var(--ring));--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-color: hsl(var(--ring));--tw-ring-offset-width: 1px;--tw-ring-offset-color: hsl(var(--card))}.overlay-attach-btn[data-v-532d00e7]{display:flex;height:2.5rem;width:2.5rem;align-items:center;justify-content:center;border-radius:var(--radius);border-width:1px;border-color:hsl(var(--input));background-color:hsl(var(--input));color:hsl(var(--muted-foreground));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.overlay-attach-btn[data-v-532d00e7]:disabled{cursor:not-allowed;opacity:.45}.overlay-attach-btn[data-v-532d00e7]:hover:not(:disabled){border-color:hsl(var(--border));background-color:hsl(var(--accent));color:hsl(var(--foreground))}.overlay-attach-btn[data-v-532d00e7]:focus-visible{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-color: hsl(var(--ring));--tw-ring-offset-width: 2px;--tw-ring-offset-color: hsl(var(--card))}.overlay-send-btn[data-v-532d00e7]{display:flex;height:2.5rem;width:2.5rem;align-items:center;justify-content:center;border-radius:var(--radius);color:hsl(var(--primary-foreground));transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.overlay-send-btn[data-v-532d00e7]:disabled{cursor:not-allowed;opacity:.45}.overlay-send-btn[data-v-532d00e7]{background:linear-gradient(135deg,hsl(var(--gradient-start)),hsl(var(--gradient-mid)),hsl(var(--gradient-end)))}.overlay-send-btn[data-v-532d00e7]:hover:not(:disabled){--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-brightness: brightness(1.1);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)}.overlay-send-btn[data-v-532d00e7]:active:not(:disabled){--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-brightness: brightness(1);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)}.overlay-send-btn[data-v-532d00e7]:focus-visible{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-color: hsl(var(--ring));--tw-ring-offset-width: 2px;--tw-ring-offset-color: hsl(var(--card))}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 240 20% 98%;--foreground: 240 10% 10%;--card: 0 0% 100%;--card-foreground: 240 10% 10%;--primary: 326 82% 56%;--primary-foreground: 0 0% 100%;--secondary: 240 5% 93%;--secondary-foreground: 240 5.9% 10%;--muted: 240 5% 93%;--muted-foreground: 240 4% 46%;--accent: 326 82% 95%;--accent-foreground: 326 82% 40%;--destructive: 0 84% 60%;--destructive-foreground: 0 0% 98%;--border: 240 6% 90%;--input: 240 6% 90%;--ring: 326 82% 56%;--radius: .5rem;--gradient-start: 0 69% 52%;--gradient-mid: 326 75% 56%;--gradient-end: 292 100% 63%;--sidebar: 240 15% 96%;--header: 0 0% 100%}.dark{--background: 240 15% 6%;--foreground: 0 0% 95%;--card: 240 14% 10%;--card-foreground: 0 0% 95%;--primary: 326 82% 56%;--primary-foreground: 0 0% 100%;--secondary: 240 10% 13%;--secondary-foreground: 0 0% 95%;--muted: 240 10% 13%;--muted-foreground: 240 5% 50%;--accent: 240 10% 15%;--accent-foreground: 0 0% 95%;--destructive: 0 63% 31%;--destructive-foreground: 0 0% 98%;--border: 240 10% 15%;--input: 240 12% 12%;--ring: 326 82% 56%;--radius: .5rem;--gradient-start: 0 69% 52%;--gradient-mid: 326 75% 56%;--gradient-end: 292 100% 63%;--sidebar: 240 14% 8%;--header: 240 14% 9%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:Inter,system-ui,-apple-system,sans-serif;letter-spacing:-.01em}.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);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.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] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.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] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.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] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.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);font-weight:600;margin-top:1.25em}.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] *)){font-weight:500;font-style:italic;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}.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);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.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] *)){display:block;margin-top:2em;margin-bottom:2em}.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] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.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] *)){color:inherit}.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] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.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);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.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] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.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);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.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);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body: #374151;--tw-prose-headings: #111827;--tw-prose-lead: #4b5563;--tw-prose-links: #111827;--tw-prose-bold: #111827;--tw-prose-counters: #6b7280;--tw-prose-bullets: #d1d5db;--tw-prose-hr: #e5e7eb;--tw-prose-quotes: #111827;--tw-prose-quote-borders: #e5e7eb;--tw-prose-captions: #6b7280;--tw-prose-kbd: #111827;--tw-prose-kbd-shadows: rgb(17 24 39 / 10%);--tw-prose-code: #111827;--tw-prose-pre-code: #e5e7eb;--tw-prose-pre-bg: #1f2937;--tw-prose-th-borders: #d1d5db;--tw-prose-td-borders: #e5e7eb;--tw-prose-invert-body: #d1d5db;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #9ca3af;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #9ca3af;--tw-prose-invert-bullets: #4b5563;--tw-prose-invert-hr: #374151;--tw-prose-invert-quotes: #f3f4f6;--tw-prose-invert-quote-borders: #374151;--tw-prose-invert-captions: #9ca3af;--tw-prose-invert-kbd: #fff;--tw-prose-invert-kbd-shadows: rgb(255 255 255 / 10%);--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #d1d5db;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #4b5563;--tw-prose-invert-td-borders: #374151;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] *)){padding-inline-start:.375em}.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] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.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:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.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}.prose-sm{font-size:.875rem;line-height:1.7142857}.prose-sm :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em;margin-bottom:1.1428571em}.prose-sm :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2857143em;line-height:1.5555556;margin-top:.8888889em;margin-bottom:.8888889em}.prose-sm :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em;padding-inline-start:1.1111111em}.prose-sm :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:2.1428571em;margin-top:0;margin-bottom:.8em;line-height:1.2}.prose-sm :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.4285714em;margin-top:1.6em;margin-bottom:.8em;line-height:1.4}.prose-sm :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2857143em;margin-top:1.5555556em;margin-bottom:.4444444em;line-height:1.5555556}.prose-sm :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.4285714em;margin-bottom:.5714286em;line-height:1.4285714}.prose-sm :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7142857em;margin-bottom:1.7142857em}.prose-sm :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7142857em;margin-bottom:1.7142857em}.prose-sm :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-sm :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7142857em;margin-bottom:1.7142857em}.prose-sm :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;border-radius:.3125rem;padding-top:.1428571em;padding-inline-end:.3571429em;padding-bottom:.1428571em;padding-inline-start:.3571429em}.prose-sm :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em}.prose-sm :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.9em}.prose-sm :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em}.prose-sm :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;line-height:1.6666667;margin-top:1.6666667em;margin-bottom:1.6666667em;border-radius:.25rem;padding-top:.6666667em;padding-inline-end:1em;padding-bottom:.6666667em;padding-inline-start:1em}.prose-sm :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em;margin-bottom:1.1428571em;padding-inline-start:1.5714286em}.prose-sm :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em;margin-bottom:1.1428571em;padding-inline-start:1.5714286em}.prose-sm :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.2857143em;margin-bottom:.2857143em}.prose-sm :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4285714em}.prose-sm :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4285714em}.prose-sm :where(.prose-sm>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5714286em;margin-bottom:.5714286em}.prose-sm :where(.prose-sm>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em}.prose-sm :where(.prose-sm>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em}.prose-sm :where(.prose-sm>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em}.prose-sm :where(.prose-sm>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.1428571em}.prose-sm :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5714286em;margin-bottom:.5714286em}.prose-sm :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em;margin-bottom:1.1428571em}.prose-sm :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.1428571em}.prose-sm :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.2857143em;padding-inline-start:1.5714286em}.prose-sm :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2.8571429em;margin-bottom:2.8571429em}.prose-sm :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;line-height:1.5}.prose-sm :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:1em;padding-bottom:.6666667em;padding-inline-start:1em}.prose-sm :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-sm :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-sm :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.6666667em;padding-inline-end:1em;padding-bottom:.6666667em;padding-inline-start:1em}.prose-sm :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-sm :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-sm :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7142857em;margin-bottom:1.7142857em}.prose-sm :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-sm :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8571429em;line-height:1.3333333;margin-top:.6666667em}.prose-sm :where(.prose-sm>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(.prose-sm>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-invert{--tw-prose-body: var(--tw-prose-invert-body);--tw-prose-headings: var(--tw-prose-invert-headings);--tw-prose-lead: var(--tw-prose-invert-lead);--tw-prose-links: var(--tw-prose-invert-links);--tw-prose-bold: var(--tw-prose-invert-bold);--tw-prose-counters: var(--tw-prose-invert-counters);--tw-prose-bullets: var(--tw-prose-invert-bullets);--tw-prose-hr: var(--tw-prose-invert-hr);--tw-prose-quotes: var(--tw-prose-invert-quotes);--tw-prose-quote-borders: var(--tw-prose-invert-quote-borders);--tw-prose-captions: var(--tw-prose-invert-captions);--tw-prose-kbd: var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows: var(--tw-prose-invert-kbd-shadows);--tw-prose-code: var(--tw-prose-invert-code);--tw-prose-pre-code: var(--tw-prose-invert-pre-code);--tw-prose-pre-bg: var(--tw-prose-invert-pre-bg);--tw-prose-th-borders: var(--tw-prose-invert-th-borders);--tw-prose-td-borders: var(--tw-prose-invert-td-borders)}.btn-gradient{position:relative;overflow:hidden;border-radius:calc(var(--radius) - 2px);padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1));transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;background-image:linear-gradient(135deg,hsl(var(--gradient-start)),hsl(var(--gradient-mid)),hsl(var(--gradient-end)));background-size:200% auto;box-shadow:0 10px 25px -12px hsl(var(--gradient-mid) / .6)}.btn-gradient:hover{background-position:right center;transform:translateY(-1px);box-shadow:0 14px 30px -14px hsl(var(--gradient-mid) / .8)}.btn-gradient:active{transform:translateY(0)}.btn-gradient:disabled{opacity:.5;transform:none;box-shadow:none;cursor:not-allowed}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-x-0{left:0;right:0}.bottom-0{bottom:0}.bottom-4{bottom:1rem}.bottom-6{bottom:1.5rem}.bottom-\[9\.25rem\]{bottom:9.25rem}.bottom-full{bottom:100%}.left-1\/2{left:50%}.left-2{left:.5rem}.left-2\.5{left:.625rem}.left-4{left:1rem}.left-auto{left:auto}.right-1{right:.25rem}.right-4{right:1rem}.right-6{right:1.5rem}.top-1\/2{top:50%}.top-2\.5{top:.625rem}.z-10{z-index:10}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.-mt-0\.5{margin-top:-.125rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.mr-1{margin-right:.25rem}.mr-1\.5{margin-right:.375rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-96{height:24rem}.h-\[100dvh\]{height:100dvh}.h-\[min\(44rem\,85vh\)\]{height:min(44rem,85vh)}.h-\[min\(46rem\,86vh\)\]{height:min(46rem,86vh)}.h-full{height:100%}.h-screen{height:100vh}.max-h-44{max-height:11rem}.max-h-\[120px\]{max-height:120px}.max-h-\[136px\]{max-height:136px}.min-h-\[400px\]{min-height:400px}.min-h-\[40px\]{min-height:40px}.min-h-\[42px\]{min-height:42px}.min-h-screen{min-height:100vh}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-\[29rem\]{width:29rem}.w-\[min\(27rem\,calc\(100vw-2\.25rem\)\)\]{width:min(27rem,calc(100vw - 2.25rem))}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[4px\]{min-width:4px}.max-w-\[120px\]{max-width:120px}.max-w-\[170px\]{max-width:170px}.max-w-\[75\%\]{max-width:75%}.max-w-\[90\%\]{max-width:90%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-0\.5{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-5{--tw-translate-x: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-4{--tw-translate-y: 1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-\[0\.98\]{--tw-scale-x: .98;--tw-scale-y: .98;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-\[1\.02\]{--tw-scale-x: 1.02;--tw-scale-y: 1.02;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes ping{75%,to{transform:scale(2);opacity:0}}.animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize: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-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:.75rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-border{border-color:hsl(var(--border))}.border-border\/50{border-color:hsl(var(--border) / .5)}.border-border\/60{border-color:hsl(var(--border) / .6)}.border-border\/70{border-color:hsl(var(--border) / .7)}.border-border\/80{border-color:hsl(var(--border) / .8)}.border-destructive\/30{border-color:hsl(var(--destructive) / .3)}.border-green-500\/30{border-color:#22c55e4d}.border-input{border-color:hsl(var(--input))}.border-primary{border-color:hsl(var(--primary))}.border-red-500\/50{border-color:#ef444480}.border-ring{border-color:hsl(var(--ring))}.border-transparent{border-color:transparent}.border-yellow-500\/20{border-color:#eab30833}.border-l-blue-500{--tw-border-opacity: 1;border-left-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.border-l-green-500{--tw-border-opacity: 1;border-left-color:rgb(34 197 94 / var(--tw-border-opacity, 1))}.border-l-primary{border-left-color:hsl(var(--primary))}.border-l-red-500{--tw-border-opacity: 1;border-left-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.border-l-yellow-500{--tw-border-opacity: 1;border-left-color:rgb(234 179 8 / var(--tw-border-opacity, 1))}.bg-accent{background-color:hsl(var(--accent))}.bg-accent\/40{background-color:hsl(var(--accent) / .4)}.bg-background{background-color:hsl(var(--background))}.bg-background\/60{background-color:hsl(var(--background) / .6)}.bg-background\/65{background-color:hsl(var(--background) / .65)}.bg-background\/70{background-color:hsl(var(--background) / .7)}.bg-blue-500\/10{background-color:#3b82f61a}.bg-blue-500\/20{background-color:#3b82f633}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.bg-card{background-color:hsl(var(--card))}.bg-card\/95{background-color:hsl(var(--card) / .95)}.bg-current{background-color:currentColor}.bg-green-500\/10{background-color:#22c55e1a}.bg-green-500\/20{background-color:#22c55e33}.bg-header{background-color:hsl(var(--header))}.bg-header\/85{background-color:hsl(var(--header) / .85)}.bg-indigo-500\/20{background-color:#6366f133}.bg-input{background-color:hsl(var(--input))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/10{background-color:hsl(var(--muted) / .1)}.bg-muted\/20{background-color:hsl(var(--muted) / .2)}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/60{background-color:hsl(var(--muted) / .6)}.bg-orange-500\/10{background-color:#f973161a}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-primary\/60{background-color:hsl(var(--primary) / .6)}.bg-purple-500\/10{background-color:#a855f71a}.bg-purple-500\/20{background-color:#a855f733}.bg-red-500\/10{background-color:#ef44441a}.bg-red-500\/20{background-color:#ef444433}.bg-secondary{background-color:hsl(var(--secondary))}.bg-sidebar{background-color:hsl(var(--sidebar))}.bg-teal-500\/20{background-color:#14b8a633}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(234 179 8 / var(--tw-bg-opacity, 1))}.bg-yellow-500\/10{background-color:#eab3081a}.bg-yellow-500\/20{background-color:#eab30833}.bg-gradient-brand{background-image:linear-gradient(135deg,hsl(var(--gradient-start)),hsl(var(--gradient-mid)),hsl(var(--gradient-end)))}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.object-contain{-o-object-fit:contain;object-fit:contain}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-3{padding-bottom:.75rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.tracking-\[0\.08em\]{letter-spacing:.08em}.tracking-\[0\.18em\]{letter-spacing:.18em}.tracking-\[0\.1em\]{letter-spacing:.1em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-destructive{color:hsl(var(--destructive))}.text-foreground{color:hsl(var(--foreground))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-indigo-400{--tw-text-opacity: 1;color:rgb(129 140 248 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-orange-500{--tw-text-opacity: 1;color:rgb(249 115 22 / var(--tw-text-opacity, 1))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-primary-foreground\/70{color:hsl(var(--primary-foreground) / .7)}.text-purple-400{--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.text-purple-500{--tw-text-opacity: 1;color:rgb(168 85 247 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-teal-400{--tw-text-opacity: 1;color:rgb(45 212 191 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.text-yellow-600{--tw-text-opacity: 1;color:rgb(202 138 4 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-65{opacity:.65}.opacity-70{opacity:.7}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_0_1px_rgba\(228\,58\,156\,0\.35\)\]{--tw-shadow: 0 0 0 1px rgba(228,58,156,.35);--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-glow-lg{--tw-shadow: 0 0 40px hsl(var(--gradient-mid) / .3);--tw-shadow-colored: 0 0 40px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-black\/10{--tw-ring-color: rgb(0 0 0 / .1)}.ring-ring{--tw-ring-color: hsl(var(--ring))}.ring-offset-1{--tw-ring-offset-width: 1px}.ring-offset-2{--tw-ring-offset-width: 2px}.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-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.\[animation-delay\:140ms\]{animation-delay:.14s}.\[animation-delay\:280ms\]{animation-delay:.28s}@keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.dark\:prose-invert:is(.dark *){--tw-prose-body: var(--tw-prose-invert-body);--tw-prose-headings: var(--tw-prose-invert-headings);--tw-prose-lead: var(--tw-prose-invert-lead);--tw-prose-links: var(--tw-prose-invert-links);--tw-prose-bold: var(--tw-prose-invert-bold);--tw-prose-counters: var(--tw-prose-invert-counters);--tw-prose-bullets: var(--tw-prose-invert-bullets);--tw-prose-hr: var(--tw-prose-invert-hr);--tw-prose-quotes: var(--tw-prose-invert-quotes);--tw-prose-quote-borders: var(--tw-prose-invert-quote-borders);--tw-prose-captions: var(--tw-prose-invert-captions);--tw-prose-kbd: var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows: var(--tw-prose-invert-kbd-shadows);--tw-prose-code: var(--tw-prose-invert-code);--tw-prose-pre-code: var(--tw-prose-invert-pre-code);--tw-prose-pre-bg: var(--tw-prose-invert-pre-bg);--tw-prose-th-borders: var(--tw-prose-invert-th-borders);--tw-prose-td-borders: var(--tw-prose-invert-td-borders)}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:border-foreground:hover{border-color:hsl(var(--foreground))}.hover\:border-primary\/50:hover{border-color:hsl(var(--primary) / .5)}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-accent\/50:hover{background-color:hsl(var(--accent) / .5)}.hover\:bg-destructive\/10:hover{background-color:hsl(var(--destructive) / .1)}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-primary\/10:hover{background-color:hsl(var(--primary) / .1)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-red-500\/10:hover{background-color:#ef44441a}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-primary:hover{color:hsl(var(--primary))}.hover\:text-red-400:hover{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color: hsl(var(--background))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:block{display:block}.group:hover .group-hover\:opacity-100{opacity:1}@media(min-width:640px){.sm\:bottom-6{bottom:1.5rem}}@media(min-width:768px){.md\:flex{display:flex}.md\:max-w-\[84\%\]{max-width:84%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1024px){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}