tmex-cli 0.9.0-test-1 → 0.9.2

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.
@@ -1,2 +1,2 @@
1
- import{u as N,r as j,a as Z,C as ee,M as se,b as M,j as e,N as G,B as w,P as W,A as ae,q as te,s as ie,O as ne,T as Y,v as re,w as ce,x as oe,y as de,z as le,Q as me,t as v,R as he,U as pe,V as ue,W as xe,Y as $,p as ve,Z as ye,_ as je,o as O,$ as ge,a0 as fe,a1 as we,a2 as Ne,D as De,d as Ce,e as be,f as Se,g as Ee,I as x,S as B,h as Q,i as z,k as V,l as g,a3 as Me,m as Pe}from"./index-mf4NroE4.js";import{C as S,c as E,a as Ke,b as Ie,d as $e}from"./card-DzykTTqt.js";function p(s){const c=s.trim();return c||void 0}function ke(s){return s?{name:s.name,type:s.type,host:s.host??"",port:s.port??22,username:s.username??"",sshConfigRef:s.sshConfigRef??"",session:s.session??"tmex",authMode:s.type==="local"?"auto":s.authMode,password:"",privateKey:"",privateKeyPassphrase:""}:{name:"",type:"local",host:"",port:22,username:"",sshConfigRef:"",session:"tmex",authMode:"auto",password:"",privateKey:"",privateKeyPassphrase:""}}function Ae(s){if(s.type==="local")return{name:s.name.trim(),type:"local",session:p(s.session)??"tmex",authMode:"auto"};const c={name:s.name.trim(),type:"ssh",host:p(s.host),port:s.port,username:p(s.username),sshConfigRef:p(s.sshConfigRef),session:p(s.session)??"tmex",authMode:s.authMode};return s.authMode==="password"&&(c.password=s.password),s.authMode==="key"&&(c.privateKey=s.privateKey,c.privateKeyPassphrase=s.privateKeyPassphrase||void 0),c}function Te(s){if(s.type==="local")return{name:s.name.trim(),session:p(s.session)??"tmex",authMode:"auto"};const c={name:s.name.trim(),host:p(s.host),port:s.port,username:p(s.username),sshConfigRef:p(s.sshConfigRef),session:p(s.session)??"tmex",authMode:s.authMode};return s.authMode==="password"&&s.password&&(c.password=s.password),s.authMode==="key"&&s.privateKey&&(c.privateKey=s.privateKey,c.privateKeyPassphrase=s.privateKeyPassphrase||void 0),c}async function U(s,c){try{return(await s.json()).error??c}catch{return c}}function Le(){const{t:s}=N(),[c,m]=j.useState(!1),[a,y]=j.useState(null),[n,o]=j.useState(null),l=Z();j.useEffect(()=>{const r=()=>m(!0);return window.addEventListener("tmex:open-add-device",r),()=>window.removeEventListener("tmex:open-add-device",r)},[]);const{data:d,isLoading:u,isError:P}=ee({queryKey:["devices"],queryFn:async()=>{const r=await fetch("/api/devices");if(!r.ok)throw new Error(s("device.loadFailed"));return r.json()},throwOnError:!1}),D=se(r=>r.hydrateDeviceErrors);j.useEffect(()=>{d!=null&&d.devices&&D(d.devices.map(r=>({deviceId:r.id,lastError:r.lastError??null,lastErrorType:r.lastErrorType??null})))},[d,D]);const C=M({mutationFn:async r=>{if(!(await fetch(`/api/devices/${r}`,{method:"DELETE"})).ok)throw new Error(s("device.deleteFailed"))},onSuccess:()=>{l.invalidateQueries({queryKey:["devices"]}),v.success(s("common.success"))},onError:r=>{v.error(r instanceof Error?r.message:s("common.error"))}}),b=(d==null?void 0:d.devices)??[];return e.jsxs("div",{className:"mx-auto flex w-full max-w-6xl flex-col gap-3 p-3 pb-[calc(1rem+env(safe-area-inset-bottom))] sm:gap-4 sm:p-5","data-testid":"devices-page",children:[u?e.jsx(S,{children:e.jsx(E,{className:"py-16 text-center text-sm text-muted-foreground",children:s("common.loading")})}):P?e.jsx(S,{children:e.jsx(E,{className:"py-16 text-center text-sm text-destructive",children:s("device.loadFailed")})}):b.length===0?e.jsx(S,{children:e.jsxs(E,{className:"space-y-4 py-14 text-center",children:[e.jsx("div",{className:"mx-auto flex h-12 w-12 items-center justify-center rounded-xl border border-border bg-muted",children:e.jsx(G,{className:"h-6 w-6 text-muted-foreground"})}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("h2",{className:"text-lg font-medium",children:s("device.noDevices")}),e.jsx("p",{className:"text-sm text-muted-foreground",children:s("device.addDevice")})]}),e.jsxs(w,{variant:"default","data-testid":"devices-add-empty",onClick:()=>m(!0),children:[e.jsx(W,{className:"h-4 w-4"}),s("device.addDevice")]})]})}):e.jsx("div",{className:"grid gap-3 lg:grid-cols-2",children:b.map(r=>e.jsx(Fe,{device:r,onEdit:()=>y(r),onDelete:()=>o(r)},r.id))}),c&&e.jsx(J,{mode:"create",onClose:()=>m(!1)}),a&&e.jsx(J,{mode:"edit",device:a,onClose:()=>y(null)}),e.jsx(ae,{open:n!==null,onOpenChange:r=>!r&&o(null),children:e.jsxs(te,{children:[e.jsxs(ie,{children:[e.jsx(ne,{className:"bg-destructive/10",children:e.jsx(Y,{className:"h-5 w-5 text-destructive"})}),e.jsx(re,{children:s("device.deleteConfirm")}),e.jsx(ce,{children:s("device.deleteDescription",{name:(n==null?void 0:n.name)??""})})]}),e.jsxs(oe,{children:[e.jsx(de,{children:s("common.cancel")}),e.jsx(le,{variant:"destructive",disabled:!n||C.isPending,onClick:()=>{n&&(C.mutate(n.id),o(null))},children:s("common.delete")})]})]})})]})}function Fe({device:s,onEdit:c,onDelete:m}){const{t:a}=N(),y=s.type==="local"?e.jsx(G,{className:"h-4 w-4"}):e.jsx(me,{className:"h-4 w-4"}),n=s.type==="local"?a("device.typeLocal"):`${s.username??"-"}@${s.host??"-"}:${s.port??22}`,o=M({mutationFn:async()=>{const l=await fetch(`/api/devices/${s.id}/test-connection`,{method:"POST"});let d=null;try{d=await l.json()}catch{d=null}if(!l.ok){const u=d;throw new Error((u==null?void 0:u.error)??a("common.error"))}return d},onSuccess:l=>{v.success(l.message??a("common.success"))},onError:l=>{v.error(l instanceof Error?l.message:a("common.error"))}});return e.jsxs(S,{"data-testid":"device-card","data-device-id":s.id,"data-device-name":s.name,className:"overflow-hidden",children:[e.jsxs(Ke,{className:"space-y-2 pb-2",children:[e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-2.5",children:[e.jsx("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-md border border-border bg-muted text-muted-foreground",children:y}),e.jsxs("div",{className:"min-w-0 space-y-0.5",children:[e.jsx(Ie,{className:"line-clamp-1 text-sm",title:s.name,children:s.name}),e.jsx($e,{className:"line-clamp-1 text-xs",children:n})]})]}),e.jsx("div",{className:"flex shrink-0 items-center gap-1",children:e.jsxs(he,{children:[e.jsx(pe,{render:e.jsx(w,{variant:"ghost",size:"icon-sm","data-testid":`device-card-actions-${s.id}`,"aria-label":a("common.edit"),title:a("common.edit")}),children:e.jsx(ue,{className:"h-4 w-4"})}),e.jsxs(xe,{align:"end",children:[e.jsxs($,{"data-testid":`device-card-edit-${s.id}`,onClick:c,children:[e.jsx(ve,{className:"h-4 w-4"}),a("common.edit")]}),s.type==="ssh"&&e.jsxs($,{"data-testid":`device-card-test-${s.id}`,onClick:()=>o.mutate(),disabled:o.isPending,children:[e.jsx(ye,{className:"h-4 w-4"}),a("common.test")]}),e.jsx(je,{}),e.jsxs($,{"data-testid":`device-card-delete-${s.id}`,variant:"destructive",onClick:m,children:[e.jsx(Y,{className:"h-4 w-4"}),a("common.delete")]})]})]})})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[e.jsx(O,{variant:"outline",className:"text-[11px] font-normal",children:s.type==="local"?a("device.typeLocal"):a("device.typeSSHBadge")}),s.session&&e.jsx(O,{variant:"outline",className:"text-[11px] font-normal",children:s.session}),e.jsx(ge,{deviceId:s.id})]})]}),e.jsxs(E,{className:"pt-0",children:[e.jsx(fe,{className:"mb-2"}),e.jsx("div",{className:"flex items-center justify-end",children:e.jsx(we,{to:`/devices/${s.id}`,"data-testid":`device-card-connect-${s.id}`,className:Ne({variant:"default",size:"sm"}),children:a("device.connect")})})]})]})}function J({mode:s,device:c,onClose:m}){const{t:a}=N(),y=Z(),[n,o]=j.useState(ke(c)),[l,d]=j.useState(!1),u=s==="edit",P=n.type==="ssh",D=M({mutationFn:async t=>{const i=await fetch("/api/devices",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!i.ok)throw new Error(await U(i,a("device.createFailed")));return i.json()},onSuccess:()=>{y.invalidateQueries({queryKey:["devices"]}),v.success(a("common.success")),m()},onError:t=>{v.error(t instanceof Error?t.message:a("common.error"))}}),C=M({mutationFn:async t=>{if(!c)throw new Error(a("apiError.deviceNotFound"));const i=await fetch(`/api/devices/${c.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!i.ok)throw new Error(await U(i,a("device.updateFailed")));return i.json()},onSuccess:()=>{y.invalidateQueries({queryKey:["devices"]}),v.success(a("common.success")),m()},onError:t=>{v.error(t instanceof Error?t.message:a("common.error"))}}),b=async t=>{t.preventDefault(),d(!0);try{s==="create"?await D.mutateAsync(Ae(n)):await C.mutateAsync(Te(n))}catch{}finally{d(!1)}},r=`${s}-device-name`,K=`${s}-device-type`,k=`${s}-device-host`,A=`${s}-device-port`,T=`${s}-device-username`,F=`${s}-device-session`,H=`${s}-device-auth-mode`,R=`${s}-device-password`,L=`${s}-device-private-key`,q=`${s}-device-private-key-passphrase`,_={local:a("device.typeLocal"),ssh:a("device.typeSSH")},X={password:a("device.authPassword"),key:a("device.authKey"),agent:a("device.authAgent"),configRef:"SSH Config"},I=t=>e.jsx("div",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:t}),h=(t,i,f)=>e.jsxs("label",{className:"block text-xs font-medium text-foreground",htmlFor:t,children:[i,f&&e.jsx("span",{className:"ml-0.5 text-destructive",children:"*"})]});return e.jsx(De,{open:!0,onOpenChange:t=>!t&&m(),children:e.jsxs(Ce,{"data-testid":"device-dialog",className:"w-full max-w-2xl",children:[e.jsxs(be,{children:[e.jsx(Se,{children:a(u?"device.editDevice":"device.addDevice")}),e.jsx(Ee,{children:a(u?"device.editDeviceDescription":"device.addDeviceDescription")})]}),e.jsxs("form",{onSubmit:b,className:"space-y-4",children:[e.jsxs("div",{className:"-mr-2 max-h-[min(70vh,720px)] space-y-5 overflow-y-auto pr-2",children:[e.jsxs("section",{className:"space-y-2.5",children:[I(a("device.sectionBasic")),e.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[e.jsxs("div",{className:"space-y-1.5 sm:col-span-2",children:[h(r,a("device.name"),!0),e.jsx(x,{id:r,"data-testid":"device-name-input",type:"text",value:n.name,onChange:t=>o(i=>({...i,name:t.target.value})),placeholder:a("device.namePlaceholder"),required:!0})]}),e.jsxs("div",{className:"space-y-1.5",children:[h(K,a("device.type")),e.jsxs(B,{value:n.type,onValueChange:t=>{if(!t)return;const i=t;o(f=>({...f,type:i,authMode:i==="local"?"auto":f.authMode==="auto"?"password":f.authMode}))},disabled:u,children:[e.jsx(Q,{id:K,"data-testid":"device-type-select",className:"w-full",children:e.jsx(z,{placeholder:a("device.type"),children:t=>_[t]??""})}),e.jsxs(V,{children:[e.jsx(g,{value:"local",children:a("device.typeLocal")}),e.jsx(g,{value:"ssh",children:a("device.typeSSH")})]})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[h(F,a("device.session")),e.jsx(x,{id:F,"data-testid":"device-session-input",type:"text",value:n.session,onChange:t=>o(i=>({...i,session:t.target.value})),placeholder:a("device.sessionPlaceholder")})]})]})]}),P&&e.jsxs(e.Fragment,{children:[e.jsxs("section",{className:"space-y-2.5",children:[I(a("device.sectionConnection")),e.jsxs("div",{className:"grid gap-3 sm:grid-cols-3",children:[e.jsxs("div",{className:"space-y-1.5 sm:col-span-2",children:[h(k,a("device.host")),e.jsx(x,{id:k,type:"text",value:n.host,onChange:t=>o(i=>({...i,host:t.target.value})),placeholder:a("device.hostPlaceholder")})]}),e.jsxs("div",{className:"space-y-1.5",children:[h(A,a("device.port")),e.jsx(x,{id:A,type:"number",value:n.port,onChange:t=>o(i=>({...i,port:Number.parseInt(t.target.value||"22",10)})),min:1,max:65535})]}),e.jsxs("div",{className:"space-y-1.5 sm:col-span-2",children:[h(T,a("device.username")),e.jsx(x,{id:T,type:"text",value:n.username,onChange:t=>o(i=>({...i,username:t.target.value})),placeholder:a("device.usernamePlaceholder")})]}),e.jsxs("div",{className:"space-y-1.5",children:[h(`${s}-device-ssh-config-ref`,"SSH Config"),e.jsx(x,{id:`${s}-device-ssh-config-ref`,type:"text",value:n.sshConfigRef,onChange:t=>o(i=>({...i,sshConfigRef:t.target.value})),placeholder:"~/.ssh/config"})]})]})]}),e.jsxs("section",{className:"space-y-2.5",children:[I(a("device.sectionAuth")),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"space-y-1.5",children:[h(H,a("device.authMode")),e.jsxs(B,{value:n.authMode,onValueChange:t=>{t&&o(i=>({...i,authMode:t}))},children:[e.jsx(Q,{id:H,className:"w-full",children:e.jsx(z,{placeholder:a("device.authMode"),children:t=>X[t]??""})}),e.jsxs(V,{children:[e.jsx(g,{value:"password",children:a("device.authPassword")}),e.jsx(g,{value:"key",children:a("device.authKey")}),e.jsx(g,{value:"agent",children:a("device.authAgent")}),e.jsx(g,{value:"configRef",children:"SSH Config"})]})]})]}),n.authMode==="password"&&e.jsxs("div",{className:"space-y-1.5",children:[h(R,a("device.password")),e.jsx(x,{id:R,type:"password",value:n.password,onChange:t=>o(i=>({...i,password:t.target.value}))})]}),n.authMode==="key"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"space-y-1.5",children:[h(L,a("device.privateKey")),e.jsx(Me,{id:L,value:n.privateKey,onChange:t=>o(i=>({...i,privateKey:t.target.value})),className:"h-28 font-mono text-xs",placeholder:a("device.privateKeyPlaceholder")})]}),e.jsxs("div",{className:"space-y-1.5",children:[h(q,a("device.passphrase")),e.jsx(x,{id:q,type:"password",value:n.privateKeyPassphrase,onChange:t=>o(i=>({...i,privateKeyPassphrase:t.target.value}))})]})]})]})]})]})]}),e.jsxs(Pe,{children:[e.jsx(w,{type:"button",variant:"outline",onClick:m,children:a("common.cancel")}),e.jsx(w,{type:"submit",variant:"default","data-testid":"device-dialog-save",disabled:l,children:a(l?"common.saving":"common.save")})]})]})]})})}function qe(){const{t:s}=N();return e.jsx(e.Fragment,{children:s("sidebar.manageDevices")})}function Oe(){const{t:s}=N(),c=()=>{window.dispatchEvent(new CustomEvent("tmex:open-add-device"))};return e.jsx(w,{variant:"ghost",size:"icon-sm","data-testid":"devices-add",onClick:c,"aria-label":s("sidebar.addDevice"),title:s("sidebar.addDevice"),children:e.jsx(W,{className:"h-4 w-4"})})}export{Oe as PageActions,qe as PageTitle,Le as default};
2
- //# sourceMappingURL=DevicesPage-CRK5IQTj.js.map
1
+ import{u as N,r as j,a as Z,C as ee,M as se,b as M,j as e,N as G,B as w,P as W,A as ae,q as te,s as ie,O as ne,T as Y,v as re,w as ce,x as oe,y as de,z as le,Q as me,t as v,R as he,U as pe,V as ue,W as xe,Y as $,p as ve,Z as ye,_ as je,o as O,$ as ge,a0 as fe,a1 as we,a2 as Ne,D as De,d as Ce,e as be,f as Se,g as Ee,I as x,S as B,h as Q,i as z,k as V,l as g,a3 as Me,m as Pe}from"./index-O2a9149K.js";import{C as S,c as E,a as Ke,b as Ie,d as $e}from"./card-X35xwXzW.js";function p(s){const c=s.trim();return c||void 0}function ke(s){return s?{name:s.name,type:s.type,host:s.host??"",port:s.port??22,username:s.username??"",sshConfigRef:s.sshConfigRef??"",session:s.session??"tmex",authMode:s.type==="local"?"auto":s.authMode,password:"",privateKey:"",privateKeyPassphrase:""}:{name:"",type:"local",host:"",port:22,username:"",sshConfigRef:"",session:"tmex",authMode:"auto",password:"",privateKey:"",privateKeyPassphrase:""}}function Ae(s){if(s.type==="local")return{name:s.name.trim(),type:"local",session:p(s.session)??"tmex",authMode:"auto"};const c={name:s.name.trim(),type:"ssh",host:p(s.host),port:s.port,username:p(s.username),sshConfigRef:p(s.sshConfigRef),session:p(s.session)??"tmex",authMode:s.authMode};return s.authMode==="password"&&(c.password=s.password),s.authMode==="key"&&(c.privateKey=s.privateKey,c.privateKeyPassphrase=s.privateKeyPassphrase||void 0),c}function Te(s){if(s.type==="local")return{name:s.name.trim(),session:p(s.session)??"tmex",authMode:"auto"};const c={name:s.name.trim(),host:p(s.host),port:s.port,username:p(s.username),sshConfigRef:p(s.sshConfigRef),session:p(s.session)??"tmex",authMode:s.authMode};return s.authMode==="password"&&s.password&&(c.password=s.password),s.authMode==="key"&&s.privateKey&&(c.privateKey=s.privateKey,c.privateKeyPassphrase=s.privateKeyPassphrase||void 0),c}async function U(s,c){try{return(await s.json()).error??c}catch{return c}}function Le(){const{t:s}=N(),[c,m]=j.useState(!1),[a,y]=j.useState(null),[n,o]=j.useState(null),l=Z();j.useEffect(()=>{const r=()=>m(!0);return window.addEventListener("tmex:open-add-device",r),()=>window.removeEventListener("tmex:open-add-device",r)},[]);const{data:d,isLoading:u,isError:P}=ee({queryKey:["devices"],queryFn:async()=>{const r=await fetch("/api/devices");if(!r.ok)throw new Error(s("device.loadFailed"));return r.json()},throwOnError:!1}),D=se(r=>r.hydrateDeviceErrors);j.useEffect(()=>{d!=null&&d.devices&&D(d.devices.map(r=>({deviceId:r.id,lastError:r.lastError??null,lastErrorType:r.lastErrorType??null})))},[d,D]);const C=M({mutationFn:async r=>{if(!(await fetch(`/api/devices/${r}`,{method:"DELETE"})).ok)throw new Error(s("device.deleteFailed"))},onSuccess:()=>{l.invalidateQueries({queryKey:["devices"]}),v.success(s("common.success"))},onError:r=>{v.error(r instanceof Error?r.message:s("common.error"))}}),b=(d==null?void 0:d.devices)??[];return e.jsxs("div",{className:"mx-auto flex w-full max-w-6xl flex-col gap-3 p-3 pb-[calc(1rem+env(safe-area-inset-bottom))] sm:gap-4 sm:p-5","data-testid":"devices-page",children:[u?e.jsx(S,{children:e.jsx(E,{className:"py-16 text-center text-sm text-muted-foreground",children:s("common.loading")})}):P?e.jsx(S,{children:e.jsx(E,{className:"py-16 text-center text-sm text-destructive",children:s("device.loadFailed")})}):b.length===0?e.jsx(S,{children:e.jsxs(E,{className:"space-y-4 py-14 text-center",children:[e.jsx("div",{className:"mx-auto flex h-12 w-12 items-center justify-center rounded-xl border border-border bg-muted",children:e.jsx(G,{className:"h-6 w-6 text-muted-foreground"})}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("h2",{className:"text-lg font-medium",children:s("device.noDevices")}),e.jsx("p",{className:"text-sm text-muted-foreground",children:s("device.addDevice")})]}),e.jsxs(w,{variant:"default","data-testid":"devices-add-empty",onClick:()=>m(!0),children:[e.jsx(W,{className:"h-4 w-4"}),s("device.addDevice")]})]})}):e.jsx("div",{className:"grid gap-3 lg:grid-cols-2",children:b.map(r=>e.jsx(Fe,{device:r,onEdit:()=>y(r),onDelete:()=>o(r)},r.id))}),c&&e.jsx(J,{mode:"create",onClose:()=>m(!1)}),a&&e.jsx(J,{mode:"edit",device:a,onClose:()=>y(null)}),e.jsx(ae,{open:n!==null,onOpenChange:r=>!r&&o(null),children:e.jsxs(te,{children:[e.jsxs(ie,{children:[e.jsx(ne,{className:"bg-destructive/10",children:e.jsx(Y,{className:"h-5 w-5 text-destructive"})}),e.jsx(re,{children:s("device.deleteConfirm")}),e.jsx(ce,{children:s("device.deleteDescription",{name:(n==null?void 0:n.name)??""})})]}),e.jsxs(oe,{children:[e.jsx(de,{children:s("common.cancel")}),e.jsx(le,{variant:"destructive",disabled:!n||C.isPending,onClick:()=>{n&&(C.mutate(n.id),o(null))},children:s("common.delete")})]})]})})]})}function Fe({device:s,onEdit:c,onDelete:m}){const{t:a}=N(),y=s.type==="local"?e.jsx(G,{className:"h-4 w-4"}):e.jsx(me,{className:"h-4 w-4"}),n=s.type==="local"?a("device.typeLocal"):`${s.username??"-"}@${s.host??"-"}:${s.port??22}`,o=M({mutationFn:async()=>{const l=await fetch(`/api/devices/${s.id}/test-connection`,{method:"POST"});let d=null;try{d=await l.json()}catch{d=null}if(!l.ok){const u=d;throw new Error((u==null?void 0:u.error)??a("common.error"))}return d},onSuccess:l=>{v.success(l.message??a("common.success"))},onError:l=>{v.error(l instanceof Error?l.message:a("common.error"))}});return e.jsxs(S,{"data-testid":"device-card","data-device-id":s.id,"data-device-name":s.name,className:"overflow-hidden",children:[e.jsxs(Ke,{className:"space-y-2 pb-2",children:[e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-2.5",children:[e.jsx("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-md border border-border bg-muted text-muted-foreground",children:y}),e.jsxs("div",{className:"min-w-0 space-y-0.5",children:[e.jsx(Ie,{className:"line-clamp-1 text-sm",title:s.name,children:s.name}),e.jsx($e,{className:"line-clamp-1 text-xs",children:n})]})]}),e.jsx("div",{className:"flex shrink-0 items-center gap-1",children:e.jsxs(he,{children:[e.jsx(pe,{render:e.jsx(w,{variant:"ghost",size:"icon-sm","data-testid":`device-card-actions-${s.id}`,"aria-label":a("common.edit"),title:a("common.edit")}),children:e.jsx(ue,{className:"h-4 w-4"})}),e.jsxs(xe,{align:"end",children:[e.jsxs($,{"data-testid":`device-card-edit-${s.id}`,onClick:c,children:[e.jsx(ve,{className:"h-4 w-4"}),a("common.edit")]}),s.type==="ssh"&&e.jsxs($,{"data-testid":`device-card-test-${s.id}`,onClick:()=>o.mutate(),disabled:o.isPending,children:[e.jsx(ye,{className:"h-4 w-4"}),a("common.test")]}),e.jsx(je,{}),e.jsxs($,{"data-testid":`device-card-delete-${s.id}`,variant:"destructive",onClick:m,children:[e.jsx(Y,{className:"h-4 w-4"}),a("common.delete")]})]})]})})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[e.jsx(O,{variant:"outline",className:"text-[11px] font-normal",children:s.type==="local"?a("device.typeLocal"):a("device.typeSSHBadge")}),s.session&&e.jsx(O,{variant:"outline",className:"text-[11px] font-normal",children:s.session}),e.jsx(ge,{deviceId:s.id})]})]}),e.jsxs(E,{className:"pt-0",children:[e.jsx(fe,{className:"mb-2"}),e.jsx("div",{className:"flex items-center justify-end",children:e.jsx(we,{to:`/devices/${s.id}`,"data-testid":`device-card-connect-${s.id}`,className:Ne({variant:"default",size:"sm"}),children:a("device.connect")})})]})]})}function J({mode:s,device:c,onClose:m}){const{t:a}=N(),y=Z(),[n,o]=j.useState(ke(c)),[l,d]=j.useState(!1),u=s==="edit",P=n.type==="ssh",D=M({mutationFn:async t=>{const i=await fetch("/api/devices",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!i.ok)throw new Error(await U(i,a("device.createFailed")));return i.json()},onSuccess:()=>{y.invalidateQueries({queryKey:["devices"]}),v.success(a("common.success")),m()},onError:t=>{v.error(t instanceof Error?t.message:a("common.error"))}}),C=M({mutationFn:async t=>{if(!c)throw new Error(a("apiError.deviceNotFound"));const i=await fetch(`/api/devices/${c.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!i.ok)throw new Error(await U(i,a("device.updateFailed")));return i.json()},onSuccess:()=>{y.invalidateQueries({queryKey:["devices"]}),v.success(a("common.success")),m()},onError:t=>{v.error(t instanceof Error?t.message:a("common.error"))}}),b=async t=>{t.preventDefault(),d(!0);try{s==="create"?await D.mutateAsync(Ae(n)):await C.mutateAsync(Te(n))}catch{}finally{d(!1)}},r=`${s}-device-name`,K=`${s}-device-type`,k=`${s}-device-host`,A=`${s}-device-port`,T=`${s}-device-username`,F=`${s}-device-session`,H=`${s}-device-auth-mode`,R=`${s}-device-password`,L=`${s}-device-private-key`,q=`${s}-device-private-key-passphrase`,_={local:a("device.typeLocal"),ssh:a("device.typeSSH")},X={password:a("device.authPassword"),key:a("device.authKey"),agent:a("device.authAgent"),configRef:"SSH Config"},I=t=>e.jsx("div",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:t}),h=(t,i,f)=>e.jsxs("label",{className:"block text-xs font-medium text-foreground",htmlFor:t,children:[i,f&&e.jsx("span",{className:"ml-0.5 text-destructive",children:"*"})]});return e.jsx(De,{open:!0,onOpenChange:t=>!t&&m(),children:e.jsxs(Ce,{"data-testid":"device-dialog",className:"w-full max-w-2xl",children:[e.jsxs(be,{children:[e.jsx(Se,{children:a(u?"device.editDevice":"device.addDevice")}),e.jsx(Ee,{children:a(u?"device.editDeviceDescription":"device.addDeviceDescription")})]}),e.jsxs("form",{onSubmit:b,className:"space-y-4",children:[e.jsxs("div",{className:"-mr-2 max-h-[min(70vh,720px)] space-y-5 overflow-y-auto pr-2",children:[e.jsxs("section",{className:"space-y-2.5",children:[I(a("device.sectionBasic")),e.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[e.jsxs("div",{className:"space-y-1.5 sm:col-span-2",children:[h(r,a("device.name"),!0),e.jsx(x,{id:r,"data-testid":"device-name-input",type:"text",value:n.name,onChange:t=>o(i=>({...i,name:t.target.value})),placeholder:a("device.namePlaceholder"),required:!0})]}),e.jsxs("div",{className:"space-y-1.5",children:[h(K,a("device.type")),e.jsxs(B,{value:n.type,onValueChange:t=>{if(!t)return;const i=t;o(f=>({...f,type:i,authMode:i==="local"?"auto":f.authMode==="auto"?"password":f.authMode}))},disabled:u,children:[e.jsx(Q,{id:K,"data-testid":"device-type-select",className:"w-full",children:e.jsx(z,{placeholder:a("device.type"),children:t=>_[t]??""})}),e.jsxs(V,{children:[e.jsx(g,{value:"local",children:a("device.typeLocal")}),e.jsx(g,{value:"ssh",children:a("device.typeSSH")})]})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[h(F,a("device.session")),e.jsx(x,{id:F,"data-testid":"device-session-input",type:"text",value:n.session,onChange:t=>o(i=>({...i,session:t.target.value})),placeholder:a("device.sessionPlaceholder")})]})]})]}),P&&e.jsxs(e.Fragment,{children:[e.jsxs("section",{className:"space-y-2.5",children:[I(a("device.sectionConnection")),e.jsxs("div",{className:"grid gap-3 sm:grid-cols-3",children:[e.jsxs("div",{className:"space-y-1.5 sm:col-span-2",children:[h(k,a("device.host")),e.jsx(x,{id:k,type:"text",value:n.host,onChange:t=>o(i=>({...i,host:t.target.value})),placeholder:a("device.hostPlaceholder")})]}),e.jsxs("div",{className:"space-y-1.5",children:[h(A,a("device.port")),e.jsx(x,{id:A,type:"number",value:n.port,onChange:t=>o(i=>({...i,port:Number.parseInt(t.target.value||"22",10)})),min:1,max:65535})]}),e.jsxs("div",{className:"space-y-1.5 sm:col-span-2",children:[h(T,a("device.username")),e.jsx(x,{id:T,type:"text",value:n.username,onChange:t=>o(i=>({...i,username:t.target.value})),placeholder:a("device.usernamePlaceholder")})]}),e.jsxs("div",{className:"space-y-1.5",children:[h(`${s}-device-ssh-config-ref`,"SSH Config"),e.jsx(x,{id:`${s}-device-ssh-config-ref`,type:"text",value:n.sshConfigRef,onChange:t=>o(i=>({...i,sshConfigRef:t.target.value})),placeholder:"~/.ssh/config"})]})]})]}),e.jsxs("section",{className:"space-y-2.5",children:[I(a("device.sectionAuth")),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"space-y-1.5",children:[h(H,a("device.authMode")),e.jsxs(B,{value:n.authMode,onValueChange:t=>{t&&o(i=>({...i,authMode:t}))},children:[e.jsx(Q,{id:H,className:"w-full",children:e.jsx(z,{placeholder:a("device.authMode"),children:t=>X[t]??""})}),e.jsxs(V,{children:[e.jsx(g,{value:"password",children:a("device.authPassword")}),e.jsx(g,{value:"key",children:a("device.authKey")}),e.jsx(g,{value:"agent",children:a("device.authAgent")}),e.jsx(g,{value:"configRef",children:"SSH Config"})]})]})]}),n.authMode==="password"&&e.jsxs("div",{className:"space-y-1.5",children:[h(R,a("device.password")),e.jsx(x,{id:R,type:"password",value:n.password,onChange:t=>o(i=>({...i,password:t.target.value}))})]}),n.authMode==="key"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"space-y-1.5",children:[h(L,a("device.privateKey")),e.jsx(Me,{id:L,value:n.privateKey,onChange:t=>o(i=>({...i,privateKey:t.target.value})),className:"h-28 font-mono text-xs",placeholder:a("device.privateKeyPlaceholder")})]}),e.jsxs("div",{className:"space-y-1.5",children:[h(q,a("device.passphrase")),e.jsx(x,{id:q,type:"password",value:n.privateKeyPassphrase,onChange:t=>o(i=>({...i,privateKeyPassphrase:t.target.value}))})]})]})]})]})]})]}),e.jsxs(Pe,{children:[e.jsx(w,{type:"button",variant:"outline",onClick:m,children:a("common.cancel")}),e.jsx(w,{type:"submit",variant:"default","data-testid":"device-dialog-save",disabled:l,children:a(l?"common.saving":"common.save")})]})]})]})})}function qe(){const{t:s}=N();return e.jsx(e.Fragment,{children:s("sidebar.manageDevices")})}function Oe(){const{t:s}=N(),c=()=>{window.dispatchEvent(new CustomEvent("tmex:open-add-device"))};return e.jsx(w,{variant:"ghost",size:"icon-sm","data-testid":"devices-add",onClick:c,"aria-label":s("sidebar.addDevice"),title:s("sidebar.addDevice"),children:e.jsx(W,{className:"h-4 w-4"})})}export{Oe as PageActions,qe as PageTitle,Le as default};
2
+ //# sourceMappingURL=DevicesPage-BPLJu-5J.js.map
@@ -1,4 +1,4 @@
1
- import{c as V,u as K,a as O,r as c,b as v,t as h,j as e,D as Qe,d as Ue,e as He,f as Ve,g as Je,I as C,S as J,h as W,i as G,k as Z,l as Q,m as We,B as y,L,P as Ge,n as A,o as Ze,X as rs,p as os,T as X,A as he,q as ue,s as ge,v as xe,w as pe,x as fe,y as je,z as ye,C as R,E as Xe,F as Ie,G as Re,H as Ye,J as cs,K as ds}from"./index-mf4NroE4.js";import{C as q,a as D,b as _,c as I}from"./card-DzykTTqt.js";import{R as ms}from"./refresh-cw-DaPtMs2v.js";/**
1
+ import{c as V,u as K,a as O,r as c,b as v,t as h,j as e,D as Qe,d as Ue,e as He,f as Ve,g as Je,I as C,S as J,h as W,i as G,k as Z,l as Q,m as We,B as y,L,P as Ge,n as A,o as Ze,X as rs,p as os,T as X,A as he,q as ue,s as ge,v as xe,w as pe,x as fe,y as je,z as ye,C as R,E as Xe,F as Ie,G as Re,H as Ye,J as cs,K as ds}from"./index-O2a9149K.js";import{C as q,a as D,b as _,c as I}from"./card-X35xwXzW.js";import{R as ms}from"./refresh-cw-D0LYIwxc.js";/**
2
2
  * @license lucide-react v0.564.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -19,4 +19,4 @@ import{c as V,u as K,a as O,r as c,b as v,t as h,j as e,D as Qe,d as Ue,e as He,
19
19
  * This source code is licensed under the ISC license.
20
20
  * See the LICENSE file in the root directory of this source tree.
21
21
  */const fs=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],Le=V("shield",fs);async function B(s,i){try{return(await s.json()).error??i}catch{return i}}const js=["openai-chat","openai-responses"],H="h-9 w-full";function ys({open:s,onOpenChange:i,provider:n}){const{t:a}=K(),d=O(),u=!!n,[w,p]=c.useState(""),[l,x]=c.useState(""),[f,m]=c.useState("openai-chat"),[j,b]=c.useState("");c.useEffect(()=>{s&&(p((n==null?void 0:n.name)??""),x((n==null?void 0:n.baseUrl)??""),m((n==null?void 0:n.protocol)??"openai-chat"),b(""))},[s,n]);const N=v({mutationFn:async()=>{const g={name:w.trim(),protocol:f,baseUrl:l.trim(),apiKey:j.trim(),enabled:!0},M=await fetch("/api/llm/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(g)});if(!M.ok)throw new Error(await B(M,a("settings.llm.createFailed")));return await M.json()},onSuccess:async g=>{await d.invalidateQueries({queryKey:["llm-providers"]}),g.modelsError?h.warning(a("settings.llm.modelsFetchFailed",{error:g.modelsError})):h.success(a("common.success")),i(!1)},onError:g=>{h.error(g instanceof Error?g.message:a("common.error"))}}),T=v({mutationFn:async()=>{if(!n)throw new Error(a("settings.llm.updateFailed"));const g={name:w.trim(),baseUrl:l.trim(),protocol:f};j.trim()&&(g.apiKey=j.trim());const M=await fetch(`/api/llm/providers/${n.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(g)});if(!M.ok)throw new Error(await B(M,a("settings.llm.updateFailed")));return await M.json()},onSuccess:async g=>{await d.invalidateQueries({queryKey:["llm-providers"]}),g.modelsError?h.warning(a("settings.llm.modelsFetchFailed",{error:g.modelsError})):h.success(a("common.success")),i(!1)},onError:g=>{h.error(g instanceof Error?g.message:a("common.error"))}}),E=N.isPending||T.isPending,r=w.trim().length>0&&l.trim().length>0&&(u||j.trim().length>0),P=()=>{!r||E||(u?T.mutate():N.mutate())};return e.jsx(Qe,{open:s,onOpenChange:i,children:e.jsxs(Ue,{className:"sm:max-w-lg","data-testid":u?`llm-provider-edit-modal-${n==null?void 0:n.id}`:"llm-provider-add-modal",children:[e.jsxs(He,{children:[e.jsx(Ve,{children:a(u?"settings.llm.editProvider":"settings.llm.addProvider")}),e.jsx(Je,{children:a("settings.llm.formHint")})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("label",{className:"block text-sm font-medium",htmlFor:"llm-form-name",children:a("settings.llm.name")}),e.jsx(C,{id:"llm-form-name","data-testid":"llm-provider-name-input",value:w,onChange:g=>p(g.target.value),placeholder:a("settings.llm.namePlaceholder"),className:H})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("label",{className:"block text-sm font-medium",htmlFor:"llm-form-baseurl",children:a("settings.llm.baseUrl")}),e.jsx(C,{id:"llm-form-baseurl","data-testid":"llm-provider-baseurl-input",value:l,onChange:g=>x(g.target.value),placeholder:a("settings.llm.baseUrlPlaceholder"),className:H}),e.jsx("p",{className:"text-xs text-muted-foreground",children:a("settings.llm.baseUrlHint")})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("label",{className:"block text-sm font-medium",htmlFor:"llm-form-protocol",children:a("settings.llm.protocol")}),e.jsxs(J,{value:f,onValueChange:g=>{g&&m(g)},children:[e.jsx(W,{id:"llm-form-protocol","data-testid":"llm-provider-protocol-select",className:H,children:e.jsx(G,{})}),e.jsx(Z,{children:js.map(g=>e.jsx(Q,{value:g,children:g},g))})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("label",{className:"block text-sm font-medium",htmlFor:"llm-form-apikey",children:a("settings.llm.apiKey")}),e.jsx(C,{id:"llm-form-apikey","data-testid":"llm-provider-apikey-input","data-key-set":n!=null&&n.hasApiKey?"true":"false",type:"password",value:j,onChange:g=>b(g.target.value),placeholder:n!=null&&n.hasApiKey?a("settings.llm.apiKeySetPlaceholder"):a("settings.llm.apiKeyPlaceholder"),className:H})]})]}),e.jsxs(We,{children:[e.jsx(y,{variant:"outline",onClick:()=>i(!1),disabled:E,children:a("common.cancel")}),e.jsxs(y,{"data-testid":"llm-provider-form-submit",onClick:P,disabled:!r||E,children:[E?e.jsx(L,{className:"h-4 w-4 animate-spin"}):e.jsx($,{className:"h-4 w-4"}),a("common.save")]})]})]})})}function ws({models:s,onChange:i}){const{t:n}=K(),[a,d]=c.useState(""),u=(l,x)=>{i(s.map(f=>f.id===l?{...f,enabled:x}:f))},w=l=>{i(s.filter(x=>x.id!==l))},p=()=>{const l=a.trim();if(l){if(s.some(x=>x.id===l)){d("");return}i([...s,{id:l,source:"manual",enabled:!0}]),d("")}};return e.jsxs("div",{className:"space-y-3","data-testid":"llm-provider-models",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(C,{value:a,onChange:l=>d(l.target.value),onKeyDown:l=>{l.key==="Enter"&&(l.preventDefault(),p())},placeholder:n("settings.llm.addModelPlaceholder"),className:"h-9","data-testid":"llm-provider-add-model-input"}),e.jsxs(y,{type:"button",variant:"outline",size:"lg",onClick:p,disabled:!a.trim(),"data-testid":"llm-provider-add-model",children:[e.jsx(Ge,{className:"h-4 w-4"}),n("common.add")]})]}),s.length===0?e.jsx("p",{className:"text-xs text-muted-foreground",children:n("settings.llm.modelsNotFetched")}):e.jsx("ul",{className:"max-h-56 space-y-1 overflow-y-auto rounded-lg border border-border bg-background p-2",children:s.map(l=>e.jsxs("li",{className:"flex items-center justify-between gap-2 rounded-md px-2 py-1.5","data-testid":`llm-provider-model-${l.id}`,children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[e.jsx(A,{checked:l.enabled,onCheckedChange:x=>u(l.id,!!x),"data-testid":`llm-provider-model-toggle-${l.id}`}),e.jsx("span",{className:"truncate font-mono text-xs",children:l.id}),l.source==="manual"&&e.jsx(Ze,{variant:"secondary",children:n("settings.llm.modelManual")})]}),l.source==="manual"&&e.jsx(y,{type:"button",variant:"ghost",size:"icon-sm",onClick:()=>w(l.id),"data-testid":`llm-provider-model-remove-${l.id}`,children:e.jsx(rs,{className:"h-4 w-4"})})]},l.id))})]})}function bs(s){return s.modelDetails.map(i=>({id:i.id,source:i.source,enabled:i.enabled}))}function vs({open:s,onOpenChange:i,provider:n}){const{t:a}=K(),d=O(),[u,w]=c.useState([]);c.useEffect(()=>{s&&w(bs(n))},[s,n]);const p=v({mutationFn:async()=>{const l=u.filter(j=>j.source==="manual").map(j=>j.id),x=u.filter(j=>!j.enabled).map(j=>j.id),f={manualModels:l,disabledModels:x},m=await fetch(`/api/llm/providers/${n.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(f)});if(!m.ok)throw new Error(await B(m,a("settings.llm.updateFailed")));return await m.json()},onSuccess:async l=>{await d.invalidateQueries({queryKey:["llm-providers"]}),l.modelsError?h.warning(a("settings.llm.modelsFetchFailed",{error:l.modelsError})):h.success(a("common.success")),i(!1)},onError:l=>{h.error(l instanceof Error?l.message:a("common.error"))}});return e.jsx(Qe,{open:s,onOpenChange:i,children:e.jsxs(Ue,{className:"sm:max-w-lg","data-testid":`llm-provider-models-modal-${n.id}`,children:[e.jsxs(He,{children:[e.jsx(Ve,{children:a("settings.llm.modelsTitle",{name:n.name})}),e.jsx(Je,{children:a("settings.llm.modelsHint")})]}),e.jsx(ws,{models:u,onChange:w}),e.jsxs(We,{children:[e.jsx(y,{variant:"outline",onClick:()=>i(!1),disabled:p.isPending,children:a("common.cancel")}),e.jsxs(y,{"data-testid":`llm-provider-models-save-${n.id}`,onClick:()=>p.mutate(),disabled:p.isPending,children:[p.isPending?e.jsx(L,{className:"h-4 w-4 animate-spin"}):e.jsx($,{className:"h-4 w-4"}),a("common.save")]})]})]})})}function Ns(s){try{const i=new URL(s);return`${i.protocol}//${i.host}${i.pathname==="/"?"":i.pathname}`}catch{return s}}function ks({provider:s,onEdit:i}){const{t:n}=K(),a=O(),[d,u]=c.useState(!1),[w,p]=c.useState(!1),l=v({mutationFn:async m=>{const j=await fetch(`/api/llm/providers/${s.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:m})});if(!j.ok)throw new Error(await B(j,n("settings.llm.updateFailed")))},onSuccess:async()=>{await a.invalidateQueries({queryKey:["llm-providers"]})},onError:m=>{h.error(m instanceof Error?m.message:n("common.error"))}}),x=v({mutationFn:async()=>{const m=await fetch(`/api/llm/providers/${s.id}/refresh-models`,{method:"POST"});if(!m.ok)throw new Error(await B(m,n("settings.llm.refreshModelsFailed")))},onSuccess:async()=>{await a.invalidateQueries({queryKey:["llm-providers"]}),h.success(n("common.success"))},onError:m=>{h.error(m instanceof Error?m.message:n("common.error"))}}),f=v({mutationFn:async()=>{const m=await fetch(`/api/llm/providers/${s.id}`,{method:"DELETE"});if(!m.ok)throw new Error(await B(m,n("settings.llm.deleteFailed")))},onSuccess:async()=>{await a.invalidateQueries({queryKey:["llm-providers"]}),await a.invalidateQueries({queryKey:["llm-settings"]}),h.success(n("common.success"))},onError:m=>{h.error(m instanceof Error?m.message:n("common.error"))}});return e.jsxs("div",{className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-3 sm:flex-row sm:items-center sm:justify-between","data-testid":`llm-provider-row-${s.id}`,"data-provider-name":s.name,children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[e.jsx(A,{checked:s.enabled,disabled:l.isPending,onCheckedChange:m=>l.mutate(!!m),"data-testid":`llm-provider-enabled-${s.id}`}),e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"truncate font-medium",children:s.name}),e.jsx(Ze,{variant:"outline",children:s.protocol})]}),e.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[e.jsx("span",{className:"truncate font-mono",children:Ns(s.baseUrl)}),e.jsx("span",{"aria-hidden":!0,children:"·"}),e.jsx("span",{className:"whitespace-nowrap",children:n("settings.llm.modelsCount",{total:s.models.length})})]})]})]}),e.jsxs("div",{className:"flex shrink-0 items-center gap-1",children:[e.jsx(y,{variant:"ghost",size:"icon-sm",title:n("settings.llm.refreshModels"),"data-testid":`llm-provider-refresh-models-${s.id}`,onClick:()=>x.mutate(),disabled:x.isPending,children:x.isPending?e.jsx(L,{className:"h-4 w-4 animate-spin"}):e.jsx(ms,{className:"h-4 w-4"})}),e.jsx(y,{variant:"ghost",size:"icon-sm",title:n("settings.llm.models"),"data-testid":`llm-provider-models-${s.id}`,onClick:()=>p(!0),children:e.jsx(us,{className:"h-4 w-4"})}),e.jsx(y,{variant:"ghost",size:"icon-sm",title:n("common.edit"),"data-testid":`llm-provider-edit-${s.id}`,onClick:()=>i(s),children:e.jsx(os,{className:"h-4 w-4"})}),e.jsx(y,{variant:"ghost",size:"icon-sm",title:n("common.delete"),"data-testid":`llm-provider-delete-${s.id}`,onClick:()=>u(!0),disabled:f.isPending,children:e.jsx(X,{className:"h-4 w-4 text-destructive"})})]}),e.jsx(vs,{open:w,onOpenChange:p,provider:s}),e.jsx(he,{open:d,onOpenChange:u,children:e.jsxs(ue,{children:[e.jsxs(ge,{children:[e.jsx(xe,{children:n("settings.llm.deleteProvider")}),e.jsx(pe,{children:n("settings.llm.deleteConfirm",{name:s.name})})]}),e.jsxs(fe,{children:[e.jsx(je,{onClick:()=>u(!1),children:n("common.cancel")}),e.jsx(ye,{variant:"destructive","data-testid":`llm-provider-delete-confirm-${s.id}`,onClick:()=>{f.mutate(),u(!1)},children:n("common.confirm")})]})]})})]})}function Cs(){var x;const{t:s}=K(),[i,n]=c.useState(!1),[a,d]=c.useState(void 0),u=R({queryKey:["llm-providers"],queryFn:async()=>{const f=await fetch("/api/llm/providers");if(!f.ok)throw new Error(await B(f,s("settings.llm.loadFailed")));return await f.json()}}),w=((x=u.data)==null?void 0:x.providers)??[],p=()=>{d(void 0),n(!0)},l=f=>{d(f),n(!0)};return e.jsxs(e.Fragment,{children:[e.jsxs(q,{className:"border-0 ring-0","data-testid":"llm-providers-section",children:[e.jsxs(D,{className:"flex flex-row items-center justify-between gap-2",children:[e.jsx(_,{children:s("settings.llm.title")}),e.jsxs(y,{"data-testid":"llm-provider-add",onClick:p,children:[e.jsx(Ge,{className:"h-4 w-4"}),s("settings.llm.addProvider")]})]}),e.jsxs(I,{className:"space-y-3",children:[u.isLoading&&e.jsx("div",{className:"text-sm text-muted-foreground",children:s("common.loading")}),!u.isLoading&&w.length===0&&e.jsx("div",{className:"text-sm text-muted-foreground","data-testid":"llm-providers-empty",children:s("settings.llm.empty")}),w.map(f=>e.jsx(ks,{provider:f,onEdit:l},f.id))]})]}),e.jsx(ys,{open:i,onOpenChange:n,provider:a}),e.jsx(Ss,{providers:w})]})}const ce="__none__";function Ss({providers:s}){var T,E;const{t:i}=K(),n=O(),[a,d]=c.useState(null),[u,w]=c.useState(""),p=R({queryKey:["llm-settings"],queryFn:async()=>{const r=await fetch("/api/llm/settings");if(!r.ok)throw new Error(await B(r,i("settings.llm.settingsLoadFailed")));return await r.json()}}),l=((T=p.data)==null?void 0:T.settings.defaultProviderId)??null,x=((E=p.data)==null?void 0:E.settings.defaultModelId)??"",f=!!p.data;c.useEffect(()=>{f&&(d(l),w(x))},[f,l,x]);const m=v({mutationFn:async()=>{const r={defaultProviderId:a,defaultModelId:u.trim()||null},P=await fetch("/api/llm/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});if(!P.ok)throw new Error(await B(P,i("settings.llm.settingsSaveFailed")))},onSuccess:async()=>{await n.invalidateQueries({queryKey:["llm-settings"]}),h.success(i("common.success"))},onError:r=>{h.error(r instanceof Error?r.message:i("common.error"))}}),j=s.filter(r=>r.enabled),b=s.find(r=>r.id===a),N=(b==null?void 0:b.models)??[];return e.jsxs(q,{className:"border-0 ring-0","data-testid":"llm-defaults-section",children:[e.jsx(D,{children:e.jsx(_,{children:i("settings.llm.defaults")})}),e.jsxs(I,{className:"space-y-6",children:[e.jsxs("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium",htmlFor:"llm-default-provider-select",children:i("settings.llm.defaultProvider")}),e.jsxs(J,{value:a??ce,onValueChange:r=>{r&&d(r===ce?null:r)},children:[e.jsx(W,{id:"llm-default-provider-select","data-testid":"llm-default-provider-select",className:"h-9 w-full",children:e.jsx(G,{children:(b==null?void 0:b.name)??i("settings.llm.defaultProviderNone")})}),e.jsxs(Z,{children:[e.jsx(Q,{value:ce,children:i("settings.llm.defaultProviderNone")}),j.map(r=>e.jsx(Q,{value:r.id,children:r.name},r.id))]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium",htmlFor:"llm-default-model-input",children:i("settings.llm.defaultModel")}),e.jsx(C,{id:"llm-default-model-input","data-testid":"llm-default-model-input",list:"llm-default-model-options",value:u,onChange:r=>w(r.target.value),placeholder:i("settings.llm.defaultModelPlaceholder"),className:"h-9"}),e.jsx("datalist",{id:"llm-default-model-options",children:N.map(r=>e.jsx("option",{value:r},r))})]})]}),e.jsx("div",{className:"flex justify-end",children:e.jsxs(y,{variant:"default","data-testid":"llm-defaults-save",onClick:()=>m.mutate(),disabled:m.isPending||p.isLoading,className:"w-full sm:w-auto",children:[m.isPending?e.jsx(L,{className:"h-4 w-4 animate-spin"}):e.jsx($,{className:"h-4 w-4"}),i("settings.llm.saveDefaults")]})})]})]})}const Es=["none","tavily","brave"];async function de(s,i){try{return(await s.json()).error??i}catch{return i}}function Ps(){var E;const{t:s}=K(),i=O(),[n,a]=c.useState("none"),[d,u]=c.useState(""),[w,p]=c.useState(""),[l,x]=c.useState(null),f=R({queryKey:["llm-settings"],queryFn:async()=>{const r=await fetch("/api/llm/settings");if(!r.ok)throw new Error(await de(r,s("settings.search.loadFailed")));return await r.json()}}),m=(E=f.data)==null?void 0:E.settings,j=m==null?void 0:m.searchProvider;c.useEffect(()=>{j&&a(j)},[j]);const b=v({mutationFn:async()=>{const r={searchProvider:n};d.trim()&&(r.tavilyApiKey=d.trim()),w.trim()&&(r.braveApiKey=w.trim());const P=await fetch("/api/llm/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});if(!P.ok)throw new Error(await de(P,s("settings.search.saveFailed")))},onSuccess:async()=>{u(""),p(""),await i.invalidateQueries({queryKey:["llm-settings"]}),h.success(s("common.success"))},onError:r=>{h.error(r instanceof Error?r.message:s("common.error"))}}),N=v({mutationFn:async r=>{const P={[r]:""},g=await fetch("/api/llm/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(P)});if(!g.ok)throw new Error(await de(g,s("settings.search.saveFailed")))},onSuccess:async()=>{await i.invalidateQueries({queryKey:["llm-settings"]}),h.success(s("common.success"))},onError:r=>{h.error(r instanceof Error?r.message:s("common.error"))}}),T=r=>r==="none"?s("settings.search.providerNone"):r==="tavily"?"Tavily":"Brave";return e.jsxs(q,{className:"border-0 ring-0","data-testid":"settings-search-section",children:[e.jsx(D,{children:e.jsx(_,{children:s("settings.search.title")})}),e.jsxs(I,{className:"space-y-6",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium",htmlFor:"search-provider-select",children:s("settings.search.provider")}),e.jsxs(J,{value:n,onValueChange:r=>{r&&a(r)},children:[e.jsx(W,{id:"search-provider-select","data-testid":"settings-search-provider-select",className:"w-full min-h-10",children:e.jsx(G,{children:T(n)})}),e.jsx(Z,{children:Es.map(r=>e.jsx(Q,{value:r,children:T(r)},r))})]})]}),e.jsx(Oe,{id:"search-tavily-key-input",testId:"settings-search-tavily",label:s("settings.search.tavilyApiKey"),value:d,hasKey:(m==null?void 0:m.hasTavilyApiKey)??!1,onChange:u,onClear:()=>x("tavilyApiKey"),clearing:N.isPending&&N.variables==="tavilyApiKey"}),e.jsx(Oe,{id:"search-brave-key-input",testId:"settings-search-brave",label:s("settings.search.braveApiKey"),value:w,hasKey:(m==null?void 0:m.hasBraveApiKey)??!1,onChange:p,onClear:()=>x("braveApiKey"),clearing:N.isPending&&N.variables==="braveApiKey"}),e.jsx(he,{open:l!==null,onOpenChange:r=>{r||x(null)},children:e.jsxs(ue,{children:[e.jsxs(ge,{children:[e.jsx(xe,{children:s("settings.search.clearKey")}),e.jsx(pe,{children:s("settings.search.clearKeyConfirm")})]}),e.jsxs(fe,{children:[e.jsx(je,{children:s("common.cancel")}),e.jsx(ye,{"data-testid":"settings-search-clear-confirm",onClick:()=>{l&&N.mutate(l),x(null)},children:s("settings.search.clearKey")})]})]})}),e.jsx("div",{className:"flex justify-end",children:e.jsxs(y,{variant:"default","data-testid":"settings-search-save",onClick:()=>b.mutate(),disabled:b.isPending||f.isLoading,className:"w-full sm:w-auto",children:[b.isPending?e.jsx(L,{className:"h-4 w-4 animate-spin"}):e.jsx($,{className:"h-4 w-4"}),s("common.save")]})})]})]})}function Oe({id:s,testId:i,label:n,value:a,hasKey:d,onChange:u,onClear:w,clearing:p}){const{t:l}=K();return e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium",htmlFor:s,children:n}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(C,{id:s,"data-testid":`${i}-input`,"data-key-set":d?"true":"false",type:"password",value:a,onChange:x=>u(x.target.value),placeholder:l(d?"settings.search.keySetPlaceholder":"settings.search.keyPlaceholder"),className:"min-h-10"}),d&&e.jsxs(y,{variant:"outline",size:"sm","data-testid":`${i}-clear`,onClick:w,disabled:p,className:"shrink-0",children:[e.jsx(X,{className:"h-4 w-4"}),l("settings.search.clearKey")]})]})]})}const me=["terminal_bell","terminal_notification","tmux_window_close","tmux_pane_close","device_tmux_missing","device_disconnect","session_created","session_closed","agent_confirmation_pending","agent_turn_finished","agent_error","watch_triggered","watch_model_unavailable","watch_rule_error"];async function F(s,i){try{return(await s.json()).error??i}catch{return i}}function As(){var $e,qe,De,_e;const{t:s}=K(),i=O(),{refreshSettings:n}=Xe(),[a,d]=c.useState("site"),u=Ie(t=>t.theme),w=Ie(t=>t.setTheme),p=u==="dark",[l,x]=c.useState("tmex"),[f,m]=c.useState(window.location.origin),[j,b]=c.useState("en_US"),[N,T]=c.useState(6),[E,r]=c.useState(3),[P,g]=c.useState(!0),[M,o]=c.useState(!0),[S,z]=c.useState(!0),[we,be]=c.useState(!0),[ve,Ne]=c.useState(2),[ke,Ce]=c.useState(10),[es,ss]=c.useState(!1),[Y,Se]=c.useState(""),[ee,Ee]=c.useState(""),[ts,as]=c.useState(null),[se,Pe]=c.useState(""),[te,Fe]=c.useState(""),[ae,Te]=c.useState(me),ns=t=>{const k=t?"dark":"light";w(k),document.documentElement.classList.toggle("dark",k==="dark")},ne=R({queryKey:["site-settings"],queryFn:async()=>{const t=await fetch("/api/settings/site");if(!t.ok)throw new Error(await F(t,s("settings.loadFailed")));return await t.json()}}),ie=R({queryKey:["telegram-bots"],queryFn:async()=>{const t=await fetch("/api/settings/telegram/bots");if(!t.ok)throw new Error(await F(t,s("telegram.loadBotsFailed")));return await t.json()}});c.useEffect(()=>{var k;const t=(k=ne.data)==null?void 0:k.settings;t&&(x(t.siteName),m(t.siteUrl),b(t.language??"en_US"),T(t.bellThrottleSeconds),r(t.notificationThrottleSeconds??3),g(t.enableBrowserBellToast??!0),o(t.enableBrowserNotificationToast??!0),z(t.enableTelegramBellPush??!0),be(t.enableTelegramNotificationPush??!0),Ne(t.sshReconnectMaxRetries),Ce(t.sshReconnectDelaySeconds))},[($e=ne.data)==null?void 0:$e.settings]);const Me=v({mutationFn:async()=>{const k=await fetch("/api/settings/site",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({siteName:l,siteUrl:f,language:j,bellThrottleSeconds:N,notificationThrottleSeconds:E,enableBrowserBellToast:P,enableBrowserNotificationToast:M,enableTelegramBellPush:S,enableTelegramNotificationPush:we,sshReconnectMaxRetries:ve,sshReconnectDelaySeconds:ke})});if(!k.ok)throw new Error(await F(k,s("settings.saveFailed")))},onSuccess:async()=>{var t,k;await Promise.all([i.invalidateQueries({queryKey:["site-settings"]}),n()]),h.success(s("settings.settingsSaved")),((k=(t=ne.data)==null?void 0:t.settings)==null?void 0:k.language)!==j&&(cs.changeLanguage(j),ss(!0))},onError:t=>{h.error(t instanceof Error?t.message:s("common.error"))}}),le=v({mutationFn:async()=>{const t=await fetch("/api/settings/telegram/bots",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:Y,token:ee,enabled:!0,allowAuthRequests:!0})});if(!t.ok)throw new Error(await F(t,s("telegram.createFailed")))},onSuccess:async()=>{Se(""),Ee(""),await i.invalidateQueries({queryKey:["telegram-bots"]}),h.success(s("common.success"))},onError:t=>{h.error(t instanceof Error?t.message:s("common.error"))}}),Ke=((qe=ie.data)==null?void 0:qe.bots)??[],re=R({queryKey:["webhooks"],queryFn:async()=>{const t=await fetch("/api/webhooks");if(!t.ok)throw new Error(await F(t,s("webhook.loadFailed")));return await t.json()}}),oe=v({mutationFn:async()=>{const t=await fetch("/api/webhooks",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:se,secret:te,eventMask:ae})});if(!t.ok)throw new Error(await F(t,s("webhook.createFailed")))},onSuccess:async()=>{Pe(""),Fe(""),Te(me),await i.invalidateQueries({queryKey:["webhooks"]}),h.success(s("common.success"))},onError:t=>{h.error(t instanceof Error?t.message:s("common.error"))}}),Ae=v({mutationFn:async t=>{const k=await fetch(`/api/webhooks/${t}`,{method:"DELETE"});if(!k.ok)throw new Error(await F(k,s("webhook.deleteFailed")))},onSuccess:async()=>{await i.invalidateQueries({queryKey:["webhooks"]}),h.success(s("common.success"))},onError:t=>{h.error(t instanceof Error?t.message:s("common.error"))}}),Be=((De=re.data)==null?void 0:De.webhooks)??[];return e.jsxs("div",{className:"mx-auto flex w-full max-w-6xl flex-col gap-4 p-3 pb-[calc(2rem+env(safe-area-inset-bottom))] sm:gap-6 sm:p-5","data-testid":"settings-page",children:[e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx(y,{type:"button",size:"sm",variant:a==="site"?"default":"outline","data-testid":"settings-tab-site",onClick:()=>d("site"),children:s("settings.siteSettings")}),e.jsx(y,{type:"button",size:"sm",variant:a==="notifications"?"default":"outline","data-testid":"settings-tab-notifications",onClick:()=>d("notifications"),children:s("settings.notificationsTab")}),e.jsx(y,{type:"button",size:"sm",variant:a==="telegram"?"default":"outline","data-testid":"settings-tab-telegram",onClick:()=>d("telegram"),children:s("telegram.title")}),e.jsx(y,{type:"button",size:"sm",variant:a==="webhooks"?"default":"outline","data-testid":"settings-tab-webhooks",onClick:()=>d("webhooks"),children:s("webhook.title")}),e.jsx(y,{type:"button",size:"sm",variant:a==="llm"?"default":"outline","data-testid":"settings-tab-llm",onClick:()=>d("llm"),children:s("settings.llm.title")}),e.jsx(y,{type:"button",size:"sm",variant:a==="search"?"default":"outline","data-testid":"settings-tab-search",onClick:()=>d("search"),children:s("settings.search.title")})]}),a==="site"&&e.jsxs(q,{className:"border-0 ring-0",children:[e.jsx(D,{children:e.jsx(_,{children:s("settings.siteSettings")})}),e.jsxs(I,{className:"space-y-6",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium",htmlFor:"site-name-input",children:s("settings.siteName")}),e.jsx(C,{id:"site-name-input",value:l,onChange:t=>x(t.target.value),placeholder:s("settings.siteNamePlaceholder"),className:"min-h-10"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium",htmlFor:"site-url-input",children:s("settings.siteUrl")}),e.jsx(C,{id:"site-url-input",value:f,onChange:t=>m(t.target.value),placeholder:s("settings.siteUrlPlaceholder"),className:"min-h-10"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium",htmlFor:"language-select",children:s("settings.language")}),e.jsxs(J,{value:j,onValueChange:t=>{t&&b(t)},children:[e.jsx(W,{id:"language-select","data-testid":"settings-language-select",className:"w-full min-h-10",children:e.jsx(G,{placeholder:s("settings.language"),children:((_e=Re.locales.find(t=>t.code===j))==null?void 0:_e.nativeName)??j})}),e.jsx(Z,{className:"max-h-[var(--tmex-viewport-height)]",children:Re.locales.map(t=>e.jsx(Q,{value:t.code,children:t.nativeName},t.code))})]}),es&&e.jsx("p",{className:"mt-1 text-xs text-primary","data-testid":"settings-refresh-notice",children:s("settings.refreshToApply")})]}),e.jsx("div",{className:"space-y-3",children:e.jsxs("div",{className:"flex min-h-10 items-center justify-between gap-4 rounded-lg border border-border bg-card px-4 py-2.5",children:[e.jsx("div",{className:"min-w-0 pr-2",children:e.jsx("div",{className:"text-sm font-medium",children:s("settings.theme")})}),e.jsx(A,{checked:p,onCheckedChange:t=>ns(!!t),"data-testid":"settings-theme-toggle"})]})})]})]}),a==="notifications"&&e.jsxs(q,{className:"border-0 ring-0",children:[e.jsx(D,{children:e.jsx(_,{children:s("settings.notificationsTab")})}),e.jsxs(I,{className:"space-y-6",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex min-h-10 items-center justify-between gap-4 rounded-lg border border-border bg-card px-4 py-2.5",children:[e.jsx("div",{className:"min-w-0 pr-2",children:e.jsx("div",{className:"text-sm font-medium",children:s("settings.enableBrowserBellToast")})}),e.jsx(A,{checked:P,onCheckedChange:t=>g(!!t),"data-testid":"settings-enable-browser-bell-toast"})]}),e.jsxs("div",{className:"flex min-h-10 items-center justify-between gap-4 rounded-lg border border-border bg-card px-4 py-2.5",children:[e.jsx("div",{className:"min-w-0 pr-2",children:e.jsx("div",{className:"text-sm font-medium",children:s("settings.enableTelegramBellPush")})}),e.jsx(A,{checked:S,onCheckedChange:t=>z(!!t),"data-testid":"settings-enable-telegram-bell-push"})]}),e.jsxs("div",{className:"flex min-h-10 items-center justify-between gap-4 rounded-lg border border-border bg-card px-4 py-2.5",children:[e.jsx("div",{className:"min-w-0 pr-2",children:e.jsx("div",{className:"text-sm font-medium",children:s("settings.enableBrowserNotificationToast")})}),e.jsx(A,{checked:M,onCheckedChange:t=>o(!!t),"data-testid":"settings-enable-browser-notification-toast"})]}),e.jsxs("div",{className:"flex min-h-10 items-center justify-between gap-4 rounded-lg border border-border bg-card px-4 py-2.5",children:[e.jsx("div",{className:"min-w-0 pr-2",children:e.jsx("div",{className:"text-sm font-medium",children:s("settings.enableTelegramNotificationPush")})}),e.jsx(A,{checked:we,onCheckedChange:t=>be(!!t),"data-testid":"settings-enable-telegram-notification-push"})]})]}),e.jsxs("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-3",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium",htmlFor:"bell-throttle-input",children:s("settings.bellThrottle")}),e.jsx(C,{id:"bell-throttle-input",type:"number",value:N,min:0,max:300,onChange:t=>T(Number(t.target.value)),className:"min-h-10"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium",htmlFor:"notification-throttle-input",children:s("settings.notificationThrottle")}),e.jsx(C,{id:"notification-throttle-input",type:"number",value:E,min:0,max:300,onChange:t=>r(Number(t.target.value)),className:"min-h-10"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium",htmlFor:"ssh-reconnect-retries-input",children:s("settings.sshReconnectMaxRetries")}),e.jsx(C,{id:"ssh-reconnect-retries-input",type:"number",value:ve,min:0,max:20,onChange:t=>Ne(Number(t.target.value)),className:"min-h-10"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium",htmlFor:"ssh-reconnect-delay-input",children:s("settings.sshReconnectDelay")}),e.jsx(C,{id:"ssh-reconnect-delay-input",type:"number",value:ke,min:1,max:300,onChange:t=>Ce(Number(t.target.value)),className:"min-h-10"})]})]})]})]}),a==="telegram"&&e.jsxs(q,{className:"border-0 ring-0",children:[e.jsx(D,{children:e.jsx(_,{children:s("telegram.title")})}),e.jsxs(I,{className:"space-y-6",children:[e.jsx("div",{className:"space-y-4",children:e.jsxs("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-12 md:items-end",children:[e.jsxs("div",{className:"md:col-span-4 space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium",htmlFor:"new-bot-name",children:s("telegram.botName")}),e.jsx(C,{id:"new-bot-name",value:Y,onChange:t=>Se(t.target.value),placeholder:s("telegram.botNamePlaceholder"),className:"min-h-10"})]}),e.jsxs("div",{className:"md:col-span-6 space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium",htmlFor:"new-bot-token",children:s("telegram.botToken")}),e.jsx(C,{id:"new-bot-token",type:"password",value:ee,onChange:t=>Ee(t.target.value),placeholder:s("telegram.botTokenPlaceholder"),className:"min-h-10"})]}),e.jsx("div",{className:"md:col-span-2",children:e.jsxs(y,{variant:"default",className:"w-full md:w-auto","data-testid":"telegram-add-bot",onClick:()=>le.mutate(),disabled:le.isPending||!Y.trim()||!ee.trim(),children:[le.isPending?e.jsx(L,{className:"h-4 w-4 animate-spin"}):e.jsx($,{className:"h-4 w-4"}),s("telegram.addBot")]})})]})}),e.jsxs("div",{className:"space-y-3",children:[ie.isLoading&&e.jsx("div",{className:"text-sm text-muted-foreground",children:s("common.loading")}),!ie.isLoading&&Ke.length===0&&e.jsx("div",{className:"text-sm text-muted-foreground",children:s("telegram.addBot")}),Ke.map(t=>e.jsx(Fs,{bot:t,expanded:ts===t.id,onToggleExpand:()=>{as(k=>k===t.id?null:t.id)}},t.id))]})]})]}),a==="webhooks"&&e.jsxs(q,{className:"border-0 ring-0",children:[e.jsx(D,{children:e.jsx(_,{children:s("webhook.title")})}),e.jsxs(I,{className:"space-y-6",children:[e.jsxs("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-12 md:items-end",children:[e.jsxs("div",{className:"md:col-span-6 space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium",htmlFor:"webhook-url-input",children:s("webhook.url")}),e.jsx(C,{id:"webhook-url-input","data-testid":"webhook-url-input",value:se,onChange:t=>Pe(t.target.value),placeholder:"https://example.com/webhook",className:"min-h-10"})]}),e.jsxs("div",{className:"md:col-span-4 space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium",htmlFor:"webhook-secret-input",children:s("webhook.secret")}),e.jsx(C,{id:"webhook-secret-input","data-testid":"webhook-secret-input",value:te,onChange:t=>Fe(t.target.value),placeholder:s("webhook.secretPlaceholder"),className:"min-h-10"})]}),e.jsx("div",{className:"md:col-span-2",children:e.jsxs(y,{variant:"default",className:"w-full md:w-auto","data-testid":"webhook-add",onClick:()=>oe.mutate(),disabled:oe.isPending||!se.trim()||!te.trim()||ae.length===0,children:[oe.isPending?e.jsx(L,{className:"h-4 w-4 animate-spin"}):e.jsx($,{className:"h-4 w-4"}),s("webhook.add")]})})]}),e.jsxs("div",{className:"space-y-3 rounded-lg border border-border bg-card px-4 py-3",children:[e.jsx("div",{className:"text-sm font-medium",children:s("webhook.eventMask")}),e.jsx("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:me.map(t=>{const k=ae.includes(t);return e.jsxs("div",{className:"flex min-h-10 items-center justify-between gap-4 rounded-lg border border-border bg-background px-3 py-2",children:[e.jsx("div",{className:"min-w-0 pr-2 text-sm font-medium",children:s(`notification.eventType.${t}`)}),e.jsx(A,{checked:k,"data-testid":`webhook-event-${t}`,onCheckedChange:is=>{Te(U=>is?U.includes(t)?U:[...U,t]:U.filter(ls=>ls!==t))}})]},t)})})]}),e.jsxs("div",{className:"space-y-2",children:[re.isLoading&&e.jsx("div",{className:"text-sm text-muted-foreground",children:s("common.loading")}),!re.isLoading&&Be.length===0&&e.jsx("div",{className:"text-sm text-muted-foreground",children:s("webhook.empty")}),Be.map(t=>e.jsxs("div",{"data-testid":"webhook-item","data-webhook-url":t.url,className:"flex items-center justify-between gap-3 rounded-lg border border-border bg-card px-4 py-2.5",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"truncate text-sm font-medium",children:t.url}),e.jsx("div",{className:"text-xs text-muted-foreground",children:new Date(t.createdAt).toLocaleString(Ye(j))})]}),e.jsx(y,{variant:"ghost",size:"icon-sm","data-testid":"webhook-delete",onClick:()=>Ae.mutate(t.id),disabled:Ae.isPending,"aria-label":s("common.delete"),title:s("common.delete"),children:e.jsx(X,{className:"h-4 w-4"})})]},t.id))]})]})]}),a==="llm"&&e.jsx(Cs,{}),a==="search"&&e.jsx(Ps,{}),(a==="site"||a==="notifications")&&e.jsx("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-end",children:e.jsxs(y,{variant:"default","data-testid":"settings-save",onClick:()=>Me.mutate(),disabled:Me.isPending,className:"w-full sm:w-auto",children:[e.jsx($,{className:"h-4 w-4"}),s("common.save")]})})]})}function Fs({bot:s,expanded:i,onToggleExpand:n}){var M;const{t:a}=K(),d=O(),[u,w]=c.useState(s.name),[p,l]=c.useState(""),[x,f]=c.useState(s.enabled),[m,j]=c.useState(s.allowAuthRequests);c.useEffect(()=>{w(s.name),f(s.enabled),j(s.allowAuthRequests)},[s.allowAuthRequests,s.enabled,s.name]);const b=R({queryKey:["telegram-bot-chats",s.id],enabled:i,queryFn:async()=>{const o=await fetch(`/api/settings/telegram/bots/${s.id}/chats`);if(!o.ok)throw new Error(await F(o,a("telegram.loadChatsFailed")));return await o.json()}}),N=c.useMemo(()=>{var S;const o=((S=b.data)==null?void 0:S.chats)??[];return{pending:o.filter(z=>z.status==="pending"),authorized:o.filter(z=>z.status==="authorized")}},[(M=b.data)==null?void 0:M.chats]),T=v({mutationFn:async()=>{const o={name:u,enabled:x,allowAuthRequests:m};p.trim()&&(o.token=p.trim());const S=await fetch(`/api/settings/telegram/bots/${s.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)});if(!S.ok)throw new Error(await F(S,a("telegram.updateFailed")))},onSuccess:async()=>{l(""),await d.invalidateQueries({queryKey:["telegram-bots"]}),h.success(a("common.success"))},onError:o=>{h.error(o instanceof Error?o.message:a("common.error"))}}),E=v({mutationFn:async()=>{const o=await fetch(`/api/settings/telegram/bots/${s.id}`,{method:"DELETE"});if(!o.ok)throw new Error(await F(o,a("telegram.deleteFailed")))},onSuccess:async()=>{await d.invalidateQueries({queryKey:["telegram-bots"]}),h.success(a("common.success"))},onError:o=>{h.error(o instanceof Error?o.message:a("common.error"))}}),r=v({mutationFn:async o=>{const S=await fetch(`/api/settings/telegram/bots/${s.id}/chats/${encodeURIComponent(o)}/approve`,{method:"POST"});if(!S.ok)throw new Error(await F(S,a("telegram.approveFailed")))},onSuccess:async()=>{await Promise.all([d.invalidateQueries({queryKey:["telegram-bots"]}),d.invalidateQueries({queryKey:["telegram-bot-chats",s.id]})]),h.success(a("common.success"))},onError:o=>{h.error(o instanceof Error?o.message:a("common.error"))}}),P=v({mutationFn:async o=>{const S=await fetch(`/api/settings/telegram/bots/${s.id}/chats/${encodeURIComponent(o)}`,{method:"DELETE"});if(!S.ok)throw new Error(await F(S,a("telegram.removeFailed")))},onSuccess:async()=>{await Promise.all([d.invalidateQueries({queryKey:["telegram-bots"]}),d.invalidateQueries({queryKey:["telegram-bot-chats",s.id]})]),h.success(a("common.success"))},onError:o=>{h.error(o instanceof Error?o.message:a("common.error"))}}),g=v({mutationFn:async o=>{const S=await fetch(`/api/settings/telegram/bots/${s.id}/chats/${encodeURIComponent(o)}/test`,{method:"POST"});if(!S.ok)throw new Error(await F(S,a("telegram.testMessageFailed")))},onSuccess:()=>{h.success(a("common.success"))},onError:o=>{h.error(o instanceof Error?o.message:a("common.error"))}});return e.jsxs("div",{className:"space-y-4 rounded-md border-0 bg-card p-4","data-testid":`telegram-bot-card-${s.id}`,"data-bot-name":s.name,children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("div",{className:"font-medium",children:s.name}),e.jsxs("div",{className:"text-xs text-muted-foreground",children:[s.authorizedCount," / ",s.pendingCount]})]}),e.jsx(y,{variant:"ghost","data-testid":`telegram-bot-toggle-${s.id}`,onClick:n,children:a(i?"common.collapse":"common.expand")})]}),e.jsxs("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-12 md:items-end",children:[e.jsxs("div",{className:"md:col-span-3 space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium",htmlFor:`bot-name-${s.id}`,children:a("telegram.botName")}),e.jsx(C,{id:`bot-name-${s.id}`,value:u,onChange:o=>w(o.target.value),className:"min-h-10"})]}),e.jsxs("div",{className:"md:col-span-4 space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium",htmlFor:`bot-token-${s.id}`,children:a("telegram.botToken")}),e.jsx(C,{id:`bot-token-${s.id}`,type:"password",value:p,onChange:o=>l(o.target.value),placeholder:a("telegram.tokenPlaceholder"),className:"min-h-10"})]}),e.jsx("div",{className:"md:col-span-2",children:e.jsxs("div",{className:"flex min-h-10 items-center justify-between gap-3 rounded-lg border border-border bg-background px-3 py-2.5",children:[e.jsx("span",{className:"text-sm font-medium",children:a("common.enabled")}),e.jsx(A,{checked:x,onCheckedChange:o=>f(!!o)})]})}),e.jsx("div",{className:"md:col-span-3",children:e.jsxs("div",{className:"flex min-h-10 items-center justify-between gap-3 rounded-lg border border-border bg-background px-3 py-2.5",children:[e.jsx("span",{className:"text-sm font-medium",children:a("telegram.allowAuthRequests")}),e.jsx(A,{checked:m,onCheckedChange:o=>j(!!o)})]})})]}),e.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-end",children:[e.jsxs(y,{variant:"destructive","data-testid":`telegram-bot-delete-${s.id}`,onClick:()=>E.mutate(),className:"w-full sm:w-auto",children:[e.jsx(X,{className:"h-4 w-4"}),a("telegram.deleteBot")]}),e.jsxs(y,{variant:"default","data-testid":`telegram-bot-save-${s.id}`,onClick:()=>T.mutate(),className:"w-full sm:w-auto",children:[e.jsx($,{className:"h-4 w-4"}),a("common.save")]})]}),i&&e.jsxs("div",{className:"grid grid-cols-1 gap-4 border-t border-border pt-4 lg:grid-cols-2",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("h3",{className:"text-sm font-semibold flex items-center gap-1",children:[e.jsx(Le,{className:"h-4 w-4"}),a("telegram.pendingChats")]}),N.pending.length===0&&e.jsx("div",{className:"text-xs text-muted-foreground",children:"-"}),N.pending.map(o=>e.jsx(ze,{chat:o,pending:!0,onApprove:()=>r.mutate(o.chatId),onDelete:()=>P.mutate(o.chatId)},`${o.botId}-${o.chatId}`))]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("h3",{className:"text-sm font-semibold flex items-center gap-1",children:[e.jsx(Le,{className:"h-4 w-4"}),a("telegram.chats")]}),N.authorized.length===0&&e.jsx("div",{className:"text-xs text-muted-foreground",children:"-"}),N.authorized.map(o=>e.jsx(ze,{chat:o,pending:!1,onTest:()=>g.mutate(o.chatId),onDelete:()=>P.mutate(o.chatId)},`${o.botId}-${o.chatId}`))]}),b.isLoading&&e.jsx("div",{className:"lg:col-span-2 text-xs text-muted-foreground",children:a("common.loading")})]})]})}function ze({chat:s,pending:i,onApprove:n,onDelete:a,onTest:d}){const{t:u}=K(),w=Xe(p=>{var l;return((l=p.settings)==null?void 0:l.language)??"en_US"});return e.jsxs("div",{className:"space-y-2 rounded border-0 bg-background p-3",children:[e.jsx("div",{className:"text-sm font-medium truncate",title:s.displayName,children:s.displayName}),e.jsxs("div",{className:"text-xs text-muted-foreground",children:[u("telegram.chatId"),":",s.chatId]}),e.jsx("div",{className:"text-xs text-muted-foreground",children:new Date(s.appliedAt).toLocaleString(Ye(w))}),e.jsx("div",{className:"flex items-center justify-end gap-2 pt-1",children:i?e.jsxs(e.Fragment,{children:[e.jsx(y,{variant:"outline",size:"sm",onClick:a,children:u("telegram.reject")}),e.jsx(y,{variant:"default",size:"sm",onClick:n,children:u("telegram.authorize")})]}):e.jsxs(e.Fragment,{children:[e.jsxs(y,{variant:"secondary",size:"sm",onClick:d,children:[e.jsx(ds,{className:"h-3.5 w-3.5"}),u("telegram.sendTestMessage")]}),e.jsx(y,{variant:"destructive",size:"sm",onClick:a,children:u("common.delete")})]})})]})}function Bs(){const{t:s}=K();return e.jsx(e.Fragment,{children:s("sidebar.settings")})}function $s(){const{t:s}=K(),[i,n]=c.useState(!1),a=v({mutationFn:async()=>{const d=await fetch("/api/settings/restart",{method:"POST"});if(!d.ok)throw new Error(await F(d,s("settings.restartFailed")))},onSuccess:()=>{h.success(s("settings.restartScheduled"))},onError:d=>{h.error(d instanceof Error?d.message:s("common.error"))}});return e.jsxs(e.Fragment,{children:[e.jsx(y,{variant:"ghost",size:"icon-sm",onClick:()=>n(!0),disabled:a.isPending,"aria-label":s("settings.restartGateway"),title:s("settings.restartGateway"),className:"text-destructive hover:text-destructive hover:bg-destructive/10",children:e.jsx(xs,{className:"h-4 w-4"})}),e.jsx(he,{open:i,onOpenChange:n,children:e.jsxs(ue,{children:[e.jsxs(ge,{children:[e.jsx(xe,{children:s("settings.restartGateway")}),e.jsx(pe,{children:s("settings.restartConfirm")})]}),e.jsxs(fe,{children:[e.jsx(je,{onClick:()=>n(!1),children:s("common.cancel")}),e.jsx(ye,{variant:"destructive",onClick:()=>{a.mutate(),n(!1)},children:s("common.confirm")})]})]})})]})}export{$s as PageActions,Bs as PageTitle,As as default};
22
- //# sourceMappingURL=SettingsPage-B6oIYlyE.js.map
22
+ //# sourceMappingURL=SettingsPage-CKP305BP.js.map
@@ -1,2 +1,2 @@
1
- import{j as r,a4 as d}from"./index-mf4NroE4.js";function o({className:a,size:t="default",...s}){return r.jsx("div",{"data-slot":"card","data-size":t,className:d("ring-foreground/10 bg-card text-card-foreground gap-4 overflow-hidden rounded-xl py-4 text-sm ring-1 has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl group/card flex flex-col",a),...s})}function i({className:a,...t}){return r.jsx("div",{"data-slot":"card-header",className:d("gap-1 rounded-t-xl px-4 group-data-[size=sm]/card:px-3 [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3 group/card-header @container/card-header grid auto-rows-min items-start has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]",a),...t})}function c({className:a,...t}){return r.jsx("div",{"data-slot":"card-title",className:d("text-base leading-snug font-medium group-data-[size=sm]/card:text-sm",a),...t})}function n({className:a,...t}){return r.jsx("div",{"data-slot":"card-description",className:d("text-muted-foreground text-sm",a),...t})}function u({className:a,...t}){return r.jsx("div",{"data-slot":"card-content",className:d("px-4 group-data-[size=sm]/card:px-3",a),...t})}export{o as C,i as a,c as b,u as c,n as d};
2
- //# sourceMappingURL=card-DzykTTqt.js.map
1
+ import{j as r,a4 as d}from"./index-O2a9149K.js";function o({className:a,size:t="default",...s}){return r.jsx("div",{"data-slot":"card","data-size":t,className:d("ring-foreground/10 bg-card text-card-foreground gap-4 overflow-hidden rounded-xl py-4 text-sm ring-1 has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl group/card flex flex-col",a),...s})}function i({className:a,...t}){return r.jsx("div",{"data-slot":"card-header",className:d("gap-1 rounded-t-xl px-4 group-data-[size=sm]/card:px-3 [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3 group/card-header @container/card-header grid auto-rows-min items-start has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]",a),...t})}function c({className:a,...t}){return r.jsx("div",{"data-slot":"card-title",className:d("text-base leading-snug font-medium group-data-[size=sm]/card:text-sm",a),...t})}function n({className:a,...t}){return r.jsx("div",{"data-slot":"card-description",className:d("text-muted-foreground text-sm",a),...t})}function u({className:a,...t}){return r.jsx("div",{"data-slot":"card-content",className:d("px-4 group-data-[size=sm]/card:px-3",a),...t})}export{o as C,i as a,c as b,u as c,n as d};
2
+ //# sourceMappingURL=card-X35xwXzW.js.map
@@ -0,0 +1 @@
1
+ /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:""}}}@layer theme{:root,:host{--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-700:oklch(50.5% .213 27.518);--color-orange-500:oklch(70.5% .213 47.604);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-emerald-500:oklch(69.6% .17 162.48);--color-cyan-400:oklch(78.9% .154 211.53);--color-cyan-500:oklch(71.5% .143 215.221);--color-cyan-600:oklch(60.9% .126 221.723);--color-cyan-700:oklch(52% .105 223.128);--color-cyan-800:oklch(45% .085 224.283);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-indigo-800:oklch(39.8% .195 277.366);--color-fuchsia-400:oklch(74% .238 322.16);--color-fuchsia-500:oklch(66.7% .295 322.15);--color-fuchsia-600:oklch(59.1% .293 322.896);--color-fuchsia-700:oklch(51.8% .253 323.949);--color-fuchsia-800:oklch(45.2% .211 324.591);--color-gray-400:oklch(70.7% .022 261.325);--color-neutral-100:oklch(97% 0 0);--color-neutral-500:oklch(55.6% 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-lg:32rem;--container-2xl:42rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-md:calc(var(--radius) - 2px);--radius-2xl:1rem;--radius-4xl:2rem;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--blur-xs:4px;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--text-family);--default-mono-font-family:GeistMonoTmex,NotoSansSymbols2Tmex,monospace;--color-accent:var(--accent);--color-border:var(--border);--display-weight:var(--display-weight)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){*{outline-color:color-mix(in oklab,var(--ring)50%,transparent)}}body{background-color:var(--background);color:var(--foreground)}.font-display{font-weight:var(--display-weight)}[data-slot=button],[data-slot=dialog-trigger],[data-slot=dropdown-menu-item],[data-slot=command-item],[data-slot=toggle-group-item],[data-slot=dropdown-menu-trigger],[data-slot=popover-trigger],[data-slot=tooltip-trigger],[data-slot=sheet-trigger],[data-slot=collapsible-trigger]{cursor:pointer!important}[data-slot=dialog-overlay],[data-slot=sheet-overlay],[data-slot=drawer-overlay]{background-color:#0003!important}@supports (color:color-mix(in lab,red,red)){[data-slot=dialog-overlay],[data-slot=sheet-overlay],[data-slot=drawer-overlay]{background-color:color-mix(in oklab,var(--color-black)20%,transparent)!important}}[data-slot=dialog-overlay],[data-slot=sheet-overlay],[data-slot=drawer-overlay]{--tw-backdrop-blur:blur(var(--blur-sm));-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,)}}@layer components;@layer utilities{.\@container\/card-header{container:card-header/inline-size}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.inset-y-0{inset-block:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-1{top:calc(var(--spacing)*1)}.top-1\.5{top:calc(var(--spacing)*1.5)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing)*2)}.top-3{top:calc(var(--spacing)*3)}.top-3\.5{top:calc(var(--spacing)*3.5)}.-right-1{right:calc(var(--spacing)*-1)}.right-0{right:calc(var(--spacing)*0)}.right-0\.5{right:calc(var(--spacing)*.5)}.right-1{right:calc(var(--spacing)*1)}.right-1\.5{right:calc(var(--spacing)*1.5)}.right-2{right:calc(var(--spacing)*2)}.right-3{right:calc(var(--spacing)*3)}.right-7{right:calc(var(--spacing)*7)}.right-11{right:calc(var(--spacing)*11)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-3{bottom:calc(var(--spacing)*3)}.-left-1{left:calc(var(--spacing)*-1)}.left-0{left:calc(var(--spacing)*0)}.left-1\/2{left:50%}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.col-span-2{grid-column:span 2/span 2}.col-start-2{grid-column-start:2}.row-1{grid-row:1}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.-mx-1{margin-inline:calc(var(--spacing)*-1)}.-mx-4{margin-inline:calc(var(--spacing)*-4)}.mx-2{margin-inline:calc(var(--spacing)*2)}.mx-3{margin-inline:calc(var(--spacing)*3)}.mx-3\.5{margin-inline:calc(var(--spacing)*3.5)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing)*1)}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-1\.5{margin-top:calc(var(--spacing)*1.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-auto{margin-top:auto}.-mr-2{margin-right:calc(var(--spacing)*-2)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-\[-8px\]{margin-right:-8px}.mr-auto{margin-right:auto}.-mb-4{margin-bottom:calc(var(--spacing)*-4)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-1\.5{margin-bottom:calc(var(--spacing)*1.5)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-2\.5{margin-bottom:calc(var(--spacing)*2.5)}.-ml-1{margin-left:calc(var(--spacing)*-1)}.ml-0\.5{margin-left:calc(var(--spacing)*.5)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-3{margin-left:calc(var(--spacing)*3)}.ml-4{margin-left:calc(var(--spacing)*4)}.ml-\[-8px\]{margin-left:-8px}.ml-\[36px\]{margin-left:36px}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.field-sizing-content{field-sizing:content}.aspect-square{aspect-ratio:1}.size-1\.5{width:calc(var(--spacing)*1.5);height:calc(var(--spacing)*1.5)}.size-2{width:calc(var(--spacing)*2);height:calc(var(--spacing)*2)}.size-2\.5{width:calc(var(--spacing)*2.5);height:calc(var(--spacing)*2.5)}.size-3{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.size-3\.5{width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-5{width:calc(var(--spacing)*5);height:calc(var(--spacing)*5)}.size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.size-7{width:calc(var(--spacing)*7);height:calc(var(--spacing)*7)}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-9{width:calc(var(--spacing)*9);height:calc(var(--spacing)*9)}.size-10{width:calc(var(--spacing)*10);height:calc(var(--spacing)*10)}.size-full{width:100%;height:100%}.h-1{height:calc(var(--spacing)*1)}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-3{height:calc(var(--spacing)*3)}.h-3\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-11{height:calc(var(--spacing)*11)}.h-12{height:calc(var(--spacing)*12)}.h-28{height:calc(var(--spacing)*28)}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-\[var\(--tmex-safe-area-bottom\)\]{height:var(--tmex-safe-area-bottom)}.h-\[var\(--tmex-safe-area-top\)\]{height:var(--tmex-safe-area-top)}.h-dvh{height:100dvh}.h-full{height:100%}.h-px{height:1px}.h-svh{height:100svh}.max-h-\(--available-height\){max-height:var(--available-height)}.max-h-24{max-height:calc(var(--spacing)*24)}.max-h-32{max-height:calc(var(--spacing)*32)}.max-h-40{max-height:calc(var(--spacing)*40)}.max-h-48{max-height:calc(var(--spacing)*48)}.max-h-56{max-height:calc(var(--spacing)*56)}.max-h-64{max-height:calc(var(--spacing)*64)}.max-h-\[28vh\]{max-height:28vh}.max-h-\[85dvh\]{max-height:85dvh}.max-h-\[min\(70vh\,720px\)\]{max-height:min(70vh,720px)}.max-h-\[var\(--tmex-viewport-height\)\]{max-height:var(--tmex-viewport-height)}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-7{min-height:calc(var(--spacing)*7)}.min-h-10{min-height:calc(var(--spacing)*10)}.min-h-11{min-height:calc(var(--spacing)*11)}.min-h-16{min-height:calc(var(--spacing)*16)}.min-h-\[4\.5rem\]{min-height:4.5rem}.min-h-\[88px\]{min-height:88px}.min-h-svh{min-height:100svh}.w-\(--anchor-width\){width:var(--anchor-width)}.w-\(--sidebar-width\){width:var(--sidebar-width)}.w-0\.5{width:calc(var(--spacing)*.5)}.w-1{width:calc(var(--spacing)*1)}.w-1\.5{width:calc(var(--spacing)*1.5)}.w-2{width:calc(var(--spacing)*2)}.w-3{width:calc(var(--spacing)*3)}.w-3\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-11{width:calc(var(--spacing)*11)}.w-12{width:calc(var(--spacing)*12)}.w-16{width:calc(var(--spacing)*16)}.w-72{width:calc(var(--spacing)*72)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\(--skeleton-width\){max-width:var(--skeleton-width)}.max-w-2xl{max-width:var(--container-2xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-\[85\%\]{max-width:85%}.max-w-\[120px\]{max-width:120px}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-full{max-width:100%}.max-w-sm{max-width:var(--container-sm)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-5{min-width:calc(var(--spacing)*5)}.min-w-9{min-width:calc(var(--spacing)*9)}.min-w-32{min-width:calc(var(--spacing)*32)}.min-w-36{min-width:calc(var(--spacing)*36)}.min-w-\[96px\]{min-width:96px}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.origin-\(--transform-origin\){transform-origin:var(--transform-origin)}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-px{--tw-translate-x:-1px;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-px{--tw-translate-x:1px;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[calc\(-50\%-2px\)\]{--tw-translate-y: calc(-50% - 2px) ;translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-45{rotate:45deg}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.scroll-my-1{scroll-margin-block:calc(var(--spacing)*1)}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[1fr_5rem\]{grid-template-columns:1fr 5rem}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.grid-rows-\[auto_1fr\]{grid-template-rows:auto 1fr}.grid-rows-\[auto_minmax\(0\,1fr\)\]{grid-template-rows:auto minmax(0,1fr)}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0{gap:calc(var(--spacing)*0)}.gap-0\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-5{gap:calc(var(--spacing)*5)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-4{column-gap:calc(var(--spacing)*4)}.gap-y-1\.5{row-gap:calc(var(--spacing)*1.5)}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overscroll-auto{overscroll-behavior:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-4xl{border-radius:var(--radius-4xl)}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-\[min\(var\(--radius-md\)\,10px\)\]{border-radius:min(var(--radius-md),10px)}.rounded-\[min\(var\(--radius-md\)\,12px\)\]{border-radius:min(var(--radius-md),12px)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-t-xl{border-top-left-radius:calc(var(--radius) + 4px);border-top-right-radius:calc(var(--radius) + 4px)}.rounded-b-xl{border-bottom-right-radius:calc(var(--radius) + 4px);border-bottom-left-radius:calc(var(--radius) + 4px)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.border-amber-400\/40{border-color:#fcbb0066}@supports (color:color-mix(in lab,red,red)){.border-amber-400\/40{border-color:color-mix(in oklab,var(--color-amber-400)40%,transparent)}}.border-black{border-color:var(--color-black)}.border-border,.border-border\/50{border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.border-border\/50{border-color:color-mix(in oklab,var(--border)50%,transparent)}}.border-border\/60{border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.border-border\/60{border-color:color-mix(in oklab,var(--border)60%,transparent)}}.border-destructive\/50{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.border-destructive\/50{border-color:color-mix(in oklab,var(--destructive)50%,transparent)}}.border-input{border-color:var(--input)}.border-primary,.border-primary\/30{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/30{border-color:color-mix(in oklab,var(--primary)30%,transparent)}}.border-primary\/45{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/45{border-color:color-mix(in oklab,var(--primary)45%,transparent)}}.border-primary\/50{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/50{border-color:color-mix(in oklab,var(--primary)50%,transparent)}}.border-primary\/65{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/65{border-color:color-mix(in oklab,var(--primary)65%,transparent)}}.border-red-400\/40{border-color:#ff656866}@supports (color:color-mix(in lab,red,red)){.border-red-400\/40{border-color:color-mix(in oklab,var(--color-red-400)40%,transparent)}}.border-sidebar-border,.border-sidebar-border\/60{border-color:var(--sidebar-border)}@supports (color:color-mix(in lab,red,red)){.border-sidebar-border\/60{border-color:color-mix(in oklab,var(--sidebar-border)60%,transparent)}}.border-sidebar-border\/70{border-color:var(--sidebar-border)}@supports (color:color-mix(in lab,red,red)){.border-sidebar-border\/70{border-color:color-mix(in oklab,var(--sidebar-border)70%,transparent)}}.border-transparent{border-color:#0000}.border-t-transparent{border-top-color:#0000}.bg-accent{background-color:var(--accent)}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab,red,red)){.bg-amber-500\/10{background-color:color-mix(in oklab,var(--color-amber-500)10%,transparent)}}.bg-background,.bg-background\/40{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.bg-background\/40{background-color:color-mix(in oklab,var(--background)40%,transparent)}}.bg-background\/60{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.bg-background\/60{background-color:color-mix(in oklab,var(--background)60%,transparent)}}.bg-background\/85{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.bg-background\/85{background-color:color-mix(in oklab,var(--background)85%,transparent)}}.bg-background\/95{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.bg-background\/95{background-color:color-mix(in oklab,var(--background)95%,transparent)}}.bg-black\/10{background-color:#0000001a}@supports (color:color-mix(in lab,red,red)){.bg-black\/10{background-color:color-mix(in oklab,var(--color-black)10%,transparent)}}.bg-border{background-color:var(--border)}.bg-card,.bg-card\/85{background-color:var(--card)}@supports (color:color-mix(in lab,red,red)){.bg-card\/85{background-color:color-mix(in oklab,var(--card)85%,transparent)}}.bg-card\/90{background-color:var(--card)}@supports (color:color-mix(in lab,red,red)){.bg-card\/90{background-color:color-mix(in oklab,var(--card)90%,transparent)}}.bg-chat-surface{background-color:var(--chat-surface)}.bg-destructive,.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/10{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-foreground{background-color:var(--foreground)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-muted{background-color:var(--muted)}.bg-muted-foreground,.bg-muted-foreground\/40{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.bg-muted-foreground\/40{background-color:color-mix(in oklab,var(--muted-foreground)40%,transparent)}}.bg-muted-foreground\/70{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.bg-muted-foreground\/70{background-color:color-mix(in oklab,var(--muted-foreground)70%,transparent)}}.bg-muted\/20{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/20{background-color:color-mix(in oklab,var(--muted)20%,transparent)}}.bg-muted\/40{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/40{background-color:color-mix(in oklab,var(--muted)40%,transparent)}}.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/50{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.bg-muted\/60{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/60{background-color:color-mix(in oklab,var(--muted)60%,transparent)}}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-primary-foreground\/80{background-color:var(--primary-foreground)}@supports (color:color-mix(in lab,red,red)){.bg-primary-foreground\/80{background-color:color-mix(in oklab,var(--primary-foreground)80%,transparent)}}.bg-primary\/10{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/10{background-color:color-mix(in oklab,var(--primary)10%,transparent)}}.bg-primary\/15{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/15{background-color:color-mix(in oklab,var(--primary)15%,transparent)}}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500)10%,transparent)}}.bg-secondary{background-color:var(--secondary)}.bg-sidebar{background-color:var(--sidebar)}.bg-sidebar-accent,.bg-sidebar-accent\/30{background-color:var(--sidebar-accent)}@supports (color:color-mix(in lab,red,red)){.bg-sidebar-accent\/30{background-color:color-mix(in oklab,var(--sidebar-accent)30%,transparent)}}.bg-sidebar-accent\/55{background-color:var(--sidebar-accent)}@supports (color:color-mix(in lab,red,red)){.bg-sidebar-accent\/55{background-color:color-mix(in oklab,var(--sidebar-accent)55%,transparent)}}.bg-sidebar-accent\/60{background-color:var(--sidebar-accent)}@supports (color:color-mix(in lab,red,red)){.bg-sidebar-accent\/60{background-color:color-mix(in oklab,var(--sidebar-accent)60%,transparent)}}.bg-sidebar-border{background-color:var(--sidebar-border)}.bg-sidebar\/60{background-color:var(--sidebar)}@supports (color:color-mix(in lab,red,red)){.bg-sidebar\/60{background-color:color-mix(in oklab,var(--sidebar)60%,transparent)}}.bg-transparent{background-color:#0000}.bg-clip-padding{background-clip:padding-box}.fill-foreground{fill:var(--foreground)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-1\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-8{padding:calc(var(--spacing)*8)}.p-\[3px\]{padding:3px}.p-px{padding:1px}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.py-14{padding-block:calc(var(--spacing)*14)}.py-16{padding-block:calc(var(--spacing)*16)}.\!pt-0{padding-top:calc(var(--spacing)*0)!important}.pt-0{padding-top:calc(var(--spacing)*0)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-3{padding-top:calc(var(--spacing)*3)}.pt-4{padding-top:calc(var(--spacing)*4)}.pr-1{padding-right:calc(var(--spacing)*1)}.pr-2{padding-right:calc(var(--spacing)*2)}.pr-7{padding-right:calc(var(--spacing)*7)}.pr-8{padding-right:calc(var(--spacing)*8)}.pr-12{padding-right:calc(var(--spacing)*12)}.pr-13{padding-right:calc(var(--spacing)*13)}.pr-24{padding-right:calc(var(--spacing)*24)}.pb-0{padding-bottom:calc(var(--spacing)*0)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pb-1\.5{padding-bottom:calc(var(--spacing)*1.5)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-2\.5{padding-bottom:calc(var(--spacing)*2.5)}.pb-6{padding-bottom:calc(var(--spacing)*6)}.pb-\[calc\(1rem\+env\(safe-area-inset-bottom\)\)\]{padding-bottom:calc(1rem + env(safe-area-inset-bottom))}.pb-\[calc\(2rem\+env\(safe-area-inset-bottom\)\)\]{padding-bottom:calc(2rem + env(safe-area-inset-bottom))}.pl-1\.5{padding-left:calc(var(--spacing)*1.5)}.pl-2{padding-left:calc(var(--spacing)*2)}.pl-2\.5{padding-left:calc(var(--spacing)*2.5)}.pl-5{padding-left:calc(var(--spacing)*5)}.pl-\[18px\]{padding-left:18px}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:GeistMonoTmex,NotoSansSymbols2Tmex,monospace}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-balance{text-wrap:balance}.\[overflow-wrap\:break-word\],.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-accent-foreground{color:var(--accent-foreground)}.text-amber-700{color:var(--color-amber-700)}.text-background{color:var(--background)}.text-card-foreground{color:var(--card-foreground)}.text-destructive{color:var(--destructive)}.text-emerald-500{color:var(--color-emerald-500)}.text-foreground,.text-foreground\/60{color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/60{color:color-mix(in oklab,var(--foreground)60%,transparent)}}.text-muted-foreground,.text-muted-foreground\/50{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/50{color:color-mix(in oklab,var(--muted-foreground)50%,transparent)}}.text-orange-500{color:var(--color-orange-500)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground,.text-primary-foreground\/80{color:var(--primary-foreground)}@supports (color:color-mix(in lab,red,red)){.text-primary-foreground\/80{color:color-mix(in oklab,var(--primary-foreground)80%,transparent)}}.text-red-700{color:var(--color-red-700)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-sidebar-accent-foreground{color:var(--sidebar-accent-foreground)}.text-sidebar-foreground,.text-sidebar-foreground\/70{color:var(--sidebar-foreground)}@supports (color:color-mix(in lab,red,red)){.text-sidebar-foreground\/70{color:color-mix(in oklab,var(--sidebar-foreground)70%,transparent)}}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-100{opacity:1}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,hsl(var(--sidebar-border)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-foreground\/10{--tw-ring-color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.ring-foreground\/10{--tw-ring-color:color-mix(in oklab,var(--foreground)10%,transparent)}}.ring-sidebar-ring{--tw-ring-color:var(--sidebar-ring)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur{--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,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-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,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[left\,right\,width\]{transition-property:left,right,width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[margin\,opacity\]{transition-property:margin,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\[-webkit-overflow-scrolling\:touch\]{-webkit-overflow-scrolling:touch}.\[-webkit-touch-callout\:none\]{-webkit-touch-callout:none}.\[-webkit-user-select\:none\]{-webkit-user-select:none}.\[animation-delay\:150ms\]{animation-delay:.15s}.\[animation-delay\:300ms\]{animation-delay:.3s}.duration-100{animation-duration:.1s}.duration-200{animation-duration:.2s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{animation-timing-function:linear}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.running{animation-play-state:running}.group-focus-within\:opacity-100:is(:where(.group):focus-within *),.group-focus-within\/menu-item\:opacity-100:is(:where(.group\/menu-item):focus-within *){opacity:1}@media(hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *),.group-hover\/menu-item\:opacity-100:is(:where(.group\/menu-item):hover *){opacity:1}}.group-focus\/dropdown-menu-item\:text-accent-foreground:is(:where(.group\/dropdown-menu-item):focus *){color:var(--accent-foreground)}.group-has-data-\[sidebar\=menu-action\]\/menu-item\:pr-8:is(:where(.group\/menu-item):has([data-sidebar=menu-action]) *){padding-right:calc(var(--spacing)*8)}.group-data-horizontal\/tabs\:h-8:is(:where(.group\/tabs)[data-horizontal] *){height:calc(var(--spacing)*8)}.group-data-horizontal\/tabs\:h-11:is(:where(.group\/tabs)[data-horizontal] *){height:calc(var(--spacing)*11)}.group-data-vertical\/tabs\:h-fit:is(:where(.group\/tabs)[data-vertical] *){height:fit-content}.group-data-vertical\/tabs\:w-full:is(:where(.group\/tabs)[data-vertical] *){width:100%}.group-data-vertical\/tabs\:flex-col:is(:where(.group\/tabs)[data-vertical] *){flex-direction:column}.group-data-vertical\/tabs\:justify-start:is(:where(.group\/tabs)[data-vertical] *){justify-content:flex-start}.group-data-\[collapsible\=icon\]\:-mt-8:is(:where(.group)[data-collapsible=icon] *){margin-top:calc(var(--spacing)*-8)}.group-data-\[collapsible\=icon\]\:hidden:is(:where(.group)[data-collapsible=icon] *){display:none}.group-data-\[collapsible\=icon\]\:size-8\!:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--spacing)*8)!important;height:calc(var(--spacing)*8)!important}.group-data-\[collapsible\=icon\]\:w-\(--sidebar-width-icon\):is(:where(.group)[data-collapsible=icon] *){width:var(--sidebar-width-icon)}.group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\)\]:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + (calc(var(--spacing)*4)))}.group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\+2px\)\]:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + (calc(var(--spacing)*4)) + 2px)}.group-data-\[collapsible\=icon\]\:overflow-hidden:is(:where(.group)[data-collapsible=icon] *){overflow:hidden}.group-data-\[collapsible\=icon\]\:p-0\!:is(:where(.group)[data-collapsible=icon] *){padding:calc(var(--spacing)*0)!important}.group-data-\[collapsible\=icon\]\:p-2\!:is(:where(.group)[data-collapsible=icon] *){padding:calc(var(--spacing)*2)!important}.group-data-\[collapsible\=icon\]\:opacity-0:is(:where(.group)[data-collapsible=icon] *){opacity:0}.group-data-\[collapsible\=offcanvas\]\:w-0:is(:where(.group)[data-collapsible=offcanvas] *){width:calc(var(--spacing)*0)}.group-data-\[collapsible\=offcanvas\]\:translate-x-0:is(:where(.group)[data-collapsible=offcanvas] *){--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[panel-open\]\:rotate-90:is(:where(.group)[data-panel-open] *){rotate:90deg}.group-data-\[side\=left\]\:-right-4:is(:where(.group)[data-side=left] *){right:calc(var(--spacing)*-4)}.group-data-\[side\=left\]\:border-r:is(:where(.group)[data-side=left] *){border-right-style:var(--tw-border-style);border-right-width:1px}.group-data-\[side\=right\]\:left-0:is(:where(.group)[data-side=right] *){left:calc(var(--spacing)*0)}.group-data-\[side\=right\]\:rotate-180:is(:where(.group)[data-side=right] *){rotate:180deg}.group-data-\[side\=right\]\:border-l:is(:where(.group)[data-side=right] *){border-left-style:var(--tw-border-style);border-left-width:1px}.group-data-\[size\=default\]\/switch\:size-4:is(:where(.group\/switch)[data-size=default] *){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.group-data-\[size\=sm\]\/alert-dialog-content\:grid:is(:where(.group\/alert-dialog-content)[data-size=sm] *){display:grid}.group-data-\[size\=sm\]\/alert-dialog-content\:grid-cols-2:is(:where(.group\/alert-dialog-content)[data-size=sm] *){grid-template-columns:repeat(2,minmax(0,1fr))}.group-data-\[size\=sm\]\/card\:p-3:is(:where(.group\/card)[data-size=sm] *){padding:calc(var(--spacing)*3)}.group-data-\[size\=sm\]\/card\:px-3:is(:where(.group\/card)[data-size=sm] *){padding-inline:calc(var(--spacing)*3)}.group-data-\[size\=sm\]\/card\:text-sm:is(:where(.group\/card)[data-size=sm] *){font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.group-data-\[size\=sm\]\/switch\:size-3:is(:where(.group\/switch)[data-size=sm] *){width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.group-data-\[variant\=floating\]\:rounded-lg:is(:where(.group)[data-variant=floating] *){border-radius:var(--radius)}.group-data-\[variant\=floating\]\:shadow-sm:is(:where(.group)[data-variant=floating] *){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-data-\[variant\=floating\]\:ring-1:is(:where(.group)[data-variant=floating] *){--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-data-\[variant\=floating\]\:ring-sidebar-border:is(:where(.group)[data-variant=floating] *){--tw-ring-color:var(--sidebar-border)}.group-data-\[variant\=line\]\/tabs-list\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *){background-color:#0000}@media(hover:hover){.peer-hover\/menu-button\:text-sidebar-accent-foreground:is(:where(.peer\/menu-button):hover~*){color:var(--sidebar-accent-foreground)}}.peer-data-active\/menu-button\:text-sidebar-accent-foreground:is(:where(.peer\/menu-button)[data-active]~*){color:var(--sidebar-accent-foreground)}.peer-data-\[size\=default\]\/menu-button\:top-1\.5:is(:where(.peer\/menu-button)[data-size=default]~*){top:calc(var(--spacing)*1.5)}.peer-data-\[size\=lg\]\/menu-button\:top-2\.5:is(:where(.peer\/menu-button)[data-size=lg]~*){top:calc(var(--spacing)*2.5)}.peer-data-\[size\=sm\]\/menu-button\:top-1:is(:where(.peer\/menu-button)[data-size=sm]~*){top:calc(var(--spacing)*1)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-6::file-selector-button{height:calc(var(--spacing)*6)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);inset:calc(var(--spacing)*-2)}.after\:-inset-x-3:after{content:var(--tw-content);inset-inline:calc(var(--spacing)*-3)}.after\:-inset-y-2:after{content:var(--tw-content);inset-block:calc(var(--spacing)*-2)}.after\:inset-y-0:after{content:var(--tw-content);inset-block:calc(var(--spacing)*0)}.after\:start-1\/2:after{content:var(--tw-content);inset-inline-start:50%}.after\:top-1:after{content:var(--tw-content);top:calc(var(--spacing)*1)}.after\:right-1:after{content:var(--tw-content);right:calc(var(--spacing)*1)}.after\:right-\[3px\]:after{content:var(--tw-content);right:3px}.after\:left-\[3px\]:after{content:var(--tw-content);left:3px}.after\:h-1\.5:after{content:var(--tw-content);height:calc(var(--spacing)*1.5)}.after\:w-1\.5:after{content:var(--tw-content);width:calc(var(--spacing)*1.5)}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.after\:rounded-full:after{content:var(--tw-content);border-radius:3.40282e38px}.after\:bg-emerald-500:after{content:var(--tw-content);background-color:var(--color-emerald-500)}.after\:bg-foreground:after{content:var(--tw-content);background-color:var(--foreground)}.after\:bg-transparent:after{content:var(--tw-content);background-color:#0000}.after\:opacity-0:after{content:var(--tw-content);opacity:0}.after\:transition-opacity:after{content:var(--tw-content);transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.group-data-horizontal\/tabs\:after\:inset-x-0:is(:where(.group\/tabs)[data-horizontal] *):after{content:var(--tw-content);inset-inline:calc(var(--spacing)*0)}.group-data-horizontal\/tabs\:after\:bottom-\[-5px\]:is(:where(.group\/tabs)[data-horizontal] *):after{content:var(--tw-content);bottom:-5px}.group-data-horizontal\/tabs\:after\:h-0\.5:is(:where(.group\/tabs)[data-horizontal] *):after{content:var(--tw-content);height:calc(var(--spacing)*.5)}.group-data-vertical\/tabs\:after\:inset-y-0:is(:where(.group\/tabs)[data-vertical] *):after{content:var(--tw-content);inset-block:calc(var(--spacing)*0)}.group-data-vertical\/tabs\:after\:-right-1:is(:where(.group\/tabs)[data-vertical] *):after{content:var(--tw-content);right:calc(var(--spacing)*-1)}.group-data-vertical\/tabs\:after\:w-0\.5:is(:where(.group\/tabs)[data-vertical] *):after{content:var(--tw-content);width:calc(var(--spacing)*.5)}.group-data-\[collapsible\=offcanvas\]\:after\:left-full:is(:where(.group)[data-collapsible=offcanvas] *):after{content:var(--tw-content);left:100%}.focus-within\:ring-1:focus-within{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-within\:ring-ring\/30:focus-within{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-within\:ring-ring\/30:focus-within{--tw-ring-color:color-mix(in oklab,var(--ring)30%,transparent)}}@media(hover:hover){.hover\:border-border:hover,.hover\:border-border\/40:hover{border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.hover\:border-border\/40:hover{border-color:color-mix(in oklab,var(--border)40%,transparent)}}.hover\:border-sidebar-border:hover{border-color:var(--sidebar-border)}.hover\:bg-accent:hover,.hover\:bg-accent\/30:hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/30:hover{background-color:color-mix(in oklab,var(--accent)30%,transparent)}}.hover\:bg-accent\/40:hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/40:hover{background-color:color-mix(in oklab,var(--accent)40%,transparent)}}.hover\:bg-accent\/50:hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/50:hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.hover\:bg-background:hover{background-color:var(--background)}.hover\:bg-destructive\/10:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/10:hover{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.hover\:bg-destructive\/20:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/20:hover{background-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.hover\:bg-muted:hover{background-color:var(--muted)}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.hover\:bg-sidebar-accent:hover,.hover\:bg-sidebar-accent\/35:hover{background-color:var(--sidebar-accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-sidebar-accent\/35:hover{background-color:color-mix(in oklab,var(--sidebar-accent)35%,transparent)}}.hover\:bg-sidebar-accent\/45:hover{background-color:var(--sidebar-accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-sidebar-accent\/45:hover{background-color:color-mix(in oklab,var(--sidebar-accent)45%,transparent)}}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-destructive:hover{color:var(--destructive)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-muted-foreground:hover{color:var(--muted-foreground)}.hover\:text-sidebar-accent-foreground:hover{color:var(--sidebar-accent-foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]:hover{--tw-shadow:0 0 0 1px var(--tw-shadow-color,hsl(var(--sidebar-accent)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:group-data-\[collapsible\=offcanvas\]\:bg-sidebar:hover:is(:where(.group)[data-collapsible=offcanvas] *){background-color:var(--sidebar)}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:var(--sidebar-border)}}.focus\:border-ring:focus{border-color:var(--ring)}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\:opacity-100:focus{opacity:1}:is(.focus\:\*\*\:text-accent-foreground:focus *),:is(.not-data-\[variant\=destructive\]\:focus\:\*\*\:text-accent-foreground:not([data-variant=destructive]):focus *){color:var(--accent-foreground)}.focus-visible\:border-destructive\/40:focus-visible{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:border-destructive\/40:focus-visible{border-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:border-transparent:focus-visible{border-color:#0000}.focus-visible\:ring-0:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-3:focus-visible,.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.focus-visible\:ring-ring\/30:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/30:focus-visible{--tw-ring-color:color-mix(in oklab,var(--ring)30%,transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--ring)}.active\:bg-sidebar-accent:active{background-color:var(--sidebar-accent)}.active\:text-sidebar-accent-foreground:active{color:var(--sidebar-accent-foreground)}.active\:after\:bg-sidebar-border:active:after{content:var(--tw-content);background-color:var(--sidebar-border)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-input\/50:disabled{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.disabled\:bg-input\/50:disabled{background-color:color-mix(in oklab,var(--input)50%,transparent)}}.disabled\:bg-transparent:disabled{background-color:#0000}.disabled\:opacity-50:disabled{opacity:.5}:where([data-side=left]) .in-data-\[side\=left\]\:cursor-w-resize{cursor:w-resize}:where([data-side=right]) .in-data-\[side\=right\]\:cursor-e-resize{cursor:e-resize}:where([data-slot=button-group]) .in-data-\[slot\=button-group\]\:rounded-lg{border-radius:var(--radius)}.has-data-\[icon\=inline-end\]\:pr-1\.5:has([data-icon=inline-end]){padding-right:calc(var(--spacing)*1.5)}.has-data-\[icon\=inline-end\]\:pr-2:has([data-icon=inline-end]){padding-right:calc(var(--spacing)*2)}.has-data-\[icon\=inline-end\]\:pr-3:has([data-icon=inline-end]){padding-right:calc(var(--spacing)*3)}.has-data-\[icon\=inline-start\]\:pl-1\.5:has([data-icon=inline-start]){padding-left:calc(var(--spacing)*1.5)}.has-data-\[icon\=inline-start\]\:pl-2:has([data-icon=inline-start]){padding-left:calc(var(--spacing)*2)}.has-data-\[icon\=inline-start\]\:pl-3:has([data-icon=inline-start]){padding-left:calc(var(--spacing)*3)}.has-data-\[slot\=alert-dialog-media\]\:grid-rows-\[auto_auto_1fr\]:has([data-slot=alert-dialog-media]){grid-template-rows:auto auto 1fr}.has-data-\[slot\=alert-dialog-media\]\:gap-x-4:has([data-slot=alert-dialog-media]){column-gap:calc(var(--spacing)*4)}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-data-\[slot\=card-description\]\:grid-rows-\[auto_auto\]:has([data-slot=card-description]){grid-template-rows:auto auto}.has-data-\[slot\=card-footer\]\:pb-0:has([data-slot=card-footer]){padding-bottom:calc(var(--spacing)*0)}.has-data-\[variant\=inset\]\:bg-sidebar:has([data-variant=inset]){background-color:var(--sidebar)}.has-\[\>img\:first-child\]\:pt-0:has(>img:first-child){padding-top:calc(var(--spacing)*0)}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-expanded\:bg-muted[aria-expanded=true]{background-color:var(--muted)}.aria-expanded\:bg-secondary[aria-expanded=true]{background-color:var(--secondary)}.aria-expanded\:text-foreground[aria-expanded=true]{color:var(--foreground)}.aria-expanded\:text-secondary-foreground[aria-expanded=true]{color:var(--secondary-foreground)}.aria-expanded\:opacity-100[aria-expanded=true]{opacity:1}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-2[aria-invalid=true]{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.aria-invalid\:ring-3[aria-invalid=true]{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.data-active\:border-transparent[data-active]{border-color:#0000}.data-active\:bg-background[data-active]{background-color:var(--background)}.data-active\:bg-sidebar-accent[data-active]{background-color:var(--sidebar-accent)}.data-active\:font-medium[data-active]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.data-active\:text-foreground[data-active]{color:var(--foreground)}.data-active\:text-sidebar-accent-foreground[data-active]{color:var(--sidebar-accent-foreground)}.group-data-\[variant\=default\]\/tabs-list\:data-active\:shadow-none:is(:where(.group\/tabs-list)[data-variant=default] *)[data-active]{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-data-\[variant\=default\]\/tabs-list\:data-active\:shadow-sm:is(:where(.group\/tabs-list)[data-variant=default] *)[data-active]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *)[data-active]{background-color:#0000}.group-data-\[variant\=line\]\/tabs-list\:data-active\:shadow-none:is(:where(.group\/tabs-list)[data-variant=line] *)[data-active]{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-data-\[variant\=line\]\/tabs-list\:data-active\:after\:opacity-100:is(:where(.group\/tabs-list)[data-variant=line] *)[data-active]:after{content:var(--tw-content);opacity:1}.data-checked\:bg-primary[data-checked]{background-color:var(--primary)}.group-data-\[size\=default\]\/switch\:data-checked\:translate-x-\[calc\(100\%-2px\)\]:is(:where(.group\/switch)[data-size=default] *)[data-checked],.group-data-\[size\=sm\]\/switch\:data-checked\:translate-x-\[calc\(100\%-2px\)\]:is(:where(.group\/switch)[data-size=sm] *)[data-checked]{--tw-translate-x: calc(100% - 2px) ;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-closed\:overflow-hidden[data-closed]{overflow:hidden}.data-closed\:animate-out[data-closed]{--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial;animation-name:exit;animation-duration:.15s}.data-closed\:fade-out-0[data-closed]{--tw-exit-opacity:0}.data-closed\:slide-out-to-bottom-16[data-closed]{--tw-exit-translate-y:4rem}.data-closed\:slide-out-to-top-16[data-closed]{--tw-exit-translate-y:-4rem}.data-closed\:zoom-out-95[data-closed]{--tw-exit-scale:.95}.data-disabled\:pointer-events-none[data-disabled]{pointer-events:none}.data-disabled\:cursor-not-allowed[data-disabled]{cursor:not-allowed}.data-disabled\:opacity-50[data-disabled]{opacity:.5}.data-ending-style\:opacity-0[data-ending-style]{opacity:0}.data-horizontal\:h-2\.5[data-horizontal]{height:calc(var(--spacing)*2.5)}.data-horizontal\:h-px[data-horizontal]{height:1px}.data-horizontal\:w-full[data-horizontal]{width:100%}.data-horizontal\:flex-col[data-horizontal]{flex-direction:column}.data-horizontal\:border-t[data-horizontal]{border-top-style:var(--tw-border-style);border-top-width:1px}.data-horizontal\:border-t-transparent[data-horizontal]{border-top-color:#0000}.data-inset\:pl-7[data-inset]{padding-left:calc(var(--spacing)*7)}.data-open\:bg-accent[data-open]{background-color:var(--accent)}.data-open\:text-accent-foreground[data-open]{color:var(--accent-foreground)}.data-open\:animate-in[data-open]{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-name:enter;animation-duration:.15s}.data-open\:fade-in-0[data-open]{--tw-enter-opacity:0}.data-open\:slide-in-from-bottom-16[data-open]{--tw-enter-translate-y:4rem}.data-open\:slide-in-from-top-16[data-open]{--tw-enter-translate-y:-4rem}.data-open\:zoom-in-95[data-open]{--tw-enter-scale:.95}@media(hover:hover){.data-open\:hover\:bg-sidebar-accent[data-open]:hover{background-color:var(--sidebar-accent)}.data-open\:hover\:text-sidebar-accent-foreground[data-open]:hover{color:var(--sidebar-accent-foreground)}}.data-placeholder\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-popup-open\:bg-accent[data-popup-open]{background-color:var(--accent)}.data-popup-open\:text-accent-foreground[data-popup-open]{color:var(--accent-foreground)}.data-popup-open\:opacity-100[data-popup-open]{opacity:1}.data-starting-style\:opacity-0[data-starting-style]{opacity:0}.data-unchecked\:bg-input[data-unchecked]{background-color:var(--input)}.group-data-\[size\=default\]\/switch\:data-unchecked\:translate-x-0:is(:where(.group\/switch)[data-size=default] *)[data-unchecked],.group-data-\[size\=sm\]\/switch\:data-unchecked\:translate-x-0:is(:where(.group\/switch)[data-size=sm] *)[data-unchecked]{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-vertical\:h-full[data-vertical]{height:100%}.data-vertical\:w-2\.5[data-vertical]{width:calc(var(--spacing)*2.5)}.data-vertical\:w-px[data-vertical]{width:1px}.data-vertical\:self-stretch[data-vertical]{align-self:stretch}.data-vertical\:border-l[data-vertical]{border-left-style:var(--tw-border-style);border-left-width:1px}.data-vertical\:border-l-transparent[data-vertical]{border-left-color:#0000}.data-\[align-trigger\=true\]\:animate-none[data-align-trigger=true]{animation:none}.data-\[orientation\=vertical\]\:h-4[data-orientation=vertical]{height:calc(var(--spacing)*4)}.data-\[side\=bottom\]\:inset-x-0[data-side=bottom]{inset-inline:calc(var(--spacing)*0)}.data-\[side\=bottom\]\:top-1[data-side=bottom]{top:calc(var(--spacing)*1)}.data-\[side\=bottom\]\:bottom-0[data-side=bottom]{bottom:calc(var(--spacing)*0)}.data-\[side\=bottom\]\:h-auto[data-side=bottom]{height:auto}.data-\[side\=bottom\]\:border-t[data-side=bottom]{border-top-style:var(--tw-border-style);border-top-width:1px}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-.5rem}.data-\[side\=bottom\]\:data-closed\:slide-out-to-bottom-10[data-side=bottom][data-closed]{--tw-exit-translate-y:2.5rem}.data-\[side\=bottom\]\:data-open\:slide-in-from-bottom-10[data-side=bottom][data-open]{--tw-enter-translate-y:2.5rem}.data-\[side\=inline-end\]\:top-1\/2\![data-side=inline-end]{top:50%!important}.data-\[side\=inline-end\]\:-left-1[data-side=inline-end]{left:calc(var(--spacing)*-1)}.data-\[side\=inline-end\]\:-translate-y-1\/2[data-side=inline-end]{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=inline-end\]\:slide-in-from-left-2[data-side=inline-end]{--tw-enter-translate-x:-.5rem}.data-\[side\=inline-start\]\:top-1\/2\![data-side=inline-start]{top:50%!important}.data-\[side\=inline-start\]\:-right-1[data-side=inline-start]{right:calc(var(--spacing)*-1)}.data-\[side\=inline-start\]\:-translate-y-1\/2[data-side=inline-start]{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=inline-start\]\:slide-in-from-right-2[data-side=inline-start]{--tw-enter-translate-x:.5rem}.data-\[side\=left\]\:inset-y-0[data-side=left]{inset-block:calc(var(--spacing)*0)}.data-\[side\=left\]\:top-1\/2\![data-side=left]{top:50%!important}.data-\[side\=left\]\:-right-1[data-side=left]{right:calc(var(--spacing)*-1)}.data-\[side\=left\]\:left-0[data-side=left]{left:calc(var(--spacing)*0)}.data-\[side\=left\]\:h-full[data-side=left]{height:100%}.data-\[side\=left\]\:w-3\/4[data-side=left]{width:75%}.data-\[side\=left\]\:-translate-y-1\/2[data-side=left]{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=left\]\:border-r[data-side=left]{border-right-style:var(--tw-border-style);border-right-width:1px}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:.5rem}.data-\[side\=left\]\:group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\][data-side=left]:is(:where(.group)[data-collapsible=offcanvas] *){left:calc(var(--sidebar-width)*-1)}.data-\[side\=left\]\:data-closed\:slide-out-to-left-10[data-side=left][data-closed]{--tw-exit-translate-x:-2.5rem}.data-\[side\=left\]\:data-open\:slide-in-from-left-10[data-side=left][data-open]{--tw-enter-translate-x:-2.5rem}.data-\[side\=right\]\:inset-y-0[data-side=right]{inset-block:calc(var(--spacing)*0)}.data-\[side\=right\]\:top-1\/2\![data-side=right]{top:50%!important}.data-\[side\=right\]\:right-0[data-side=right]{right:calc(var(--spacing)*0)}.data-\[side\=right\]\:-left-1[data-side=right]{left:calc(var(--spacing)*-1)}.data-\[side\=right\]\:h-full[data-side=right]{height:100%}.data-\[side\=right\]\:w-3\/4[data-side=right]{width:75%}.data-\[side\=right\]\:-translate-y-1\/2[data-side=right]{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=right\]\:border-l[data-side=right]{border-left-style:var(--tw-border-style);border-left-width:1px}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-.5rem}.data-\[side\=right\]\:group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\][data-side=right]:is(:where(.group)[data-collapsible=offcanvas] *){right:calc(var(--sidebar-width)*-1)}.data-\[side\=right\]\:data-closed\:slide-out-to-right-10[data-side=right][data-closed]{--tw-exit-translate-x:2.5rem}.data-\[side\=right\]\:data-open\:slide-in-from-right-10[data-side=right][data-open]{--tw-enter-translate-x:2.5rem}.data-\[side\=top\]\:inset-x-0[data-side=top]{inset-inline:calc(var(--spacing)*0)}.data-\[side\=top\]\:top-0[data-side=top]{top:calc(var(--spacing)*0)}.data-\[side\=top\]\:-bottom-2\.5[data-side=top]{bottom:calc(var(--spacing)*-2.5)}.data-\[side\=top\]\:h-auto[data-side=top]{height:auto}.data-\[side\=top\]\:border-b[data-side=top]{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:.5rem}.data-\[side\=top\]\:data-closed\:slide-out-to-top-10[data-side=top][data-closed]{--tw-exit-translate-y:-2.5rem}.data-\[side\=top\]\:data-open\:slide-in-from-top-10[data-side=top][data-open]{--tw-enter-translate-y:-2.5rem}.data-\[size\=default\]\:h-8[data-size=default]{height:calc(var(--spacing)*8)}.data-\[size\=default\]\:h-\[18\.4px\][data-size=default]{height:18.4px}.data-\[size\=default\]\:w-\[32px\][data-size=default]{width:32px}.data-\[size\=default\]\:max-w-xs[data-size=default]{max-width:var(--container-xs)}.data-\[size\=md\]\:text-sm[data-size=md]{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.data-\[size\=sm\]\:h-7[data-size=sm]{height:calc(var(--spacing)*7)}.data-\[size\=sm\]\:h-\[14px\][data-size=sm]{height:14px}.data-\[size\=sm\]\:w-\[24px\][data-size=sm]{width:24px}.data-\[size\=sm\]\:max-w-xs[data-size=sm]{max-width:var(--container-xs)}.data-\[size\=sm\]\:gap-3[data-size=sm]{gap:calc(var(--spacing)*3)}.data-\[size\=sm\]\:rounded-\[min\(var\(--radius-md\)\,10px\)\][data-size=sm]{border-radius:min(var(--radius-md),10px)}.data-\[size\=sm\]\:py-3[data-size=sm]{padding-block:calc(var(--spacing)*3)}.data-\[size\=sm\]\:text-xs[data-size=sm]{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.data-\[size\=sm\]\:has-data-\[slot\=card-footer\]\:pb-0[data-size=sm]:has([data-slot=card-footer]){padding-bottom:calc(var(--spacing)*0)}:is(.\*\:data-\[slot\=select-value\]\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.\*\:data-\[slot\=select-value\]\:flex>*)[data-slot=select-value]{display:flex}:is(.\*\:data-\[slot\=select-value\]\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\*\:data-\[slot\=select-value\]\:gap-1\.5>*)[data-slot=select-value]{gap:calc(var(--spacing)*1.5)}.data-\[state\=delayed-open\]\:animate-in[data-state=delayed-open]{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-name:enter;animation-duration:.15s}.data-\[state\=delayed-open\]\:fade-in-0[data-state=delayed-open]{--tw-enter-opacity:0}.data-\[state\=delayed-open\]\:zoom-in-95[data-state=delayed-open]{--tw-enter-scale:.95}.data-\[state\=open\]\:rotate-90[data-state=open]{rotate:90deg}.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{color:var(--destructive)}.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.data-\[variant\=destructive\]\:focus\:text-destructive[data-variant=destructive]:focus{color:var(--destructive)}.data-\[variant\=line\]\:rounded-none[data-variant=line]{border-radius:0}@supports ((-webkit-backdrop-filter:var(--tw)) or (backdrop-filter:var(--tw))){.supports-backdrop-filter\:backdrop-blur-xs{--tw-backdrop-blur:blur(var(--blur-xs));-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:40rem){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:flex{display:flex}.sm\:w-auto{width:auto}.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:justify-end{justify-content:flex-end}.sm\:gap-4{gap:calc(var(--spacing)*4)}.sm\:gap-6{gap:calc(var(--spacing)*6)}.sm\:p-5{padding:calc(var(--spacing)*5)}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:row-span-2:is(:where(.group\/alert-dialog-content)[data-size=default] *){grid-row:span 2/span 2}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:place-items-start:is(:where(.group\/alert-dialog-content)[data-size=default] *){place-items:start}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:text-left:is(:where(.group\/alert-dialog-content)[data-size=default] *){text-align:left}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:group-has-data-\[slot\=alert-dialog-media\]\/alert-dialog-content\:col-start-2:is(:where(.group\/alert-dialog-content)[data-size=default] *):is(:where(.group\/alert-dialog-content):has([data-slot=alert-dialog-media]) *){grid-column-start:2}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:has-data-\[slot\=alert-dialog-media\]\:grid-rows-\[auto_1fr\]:is(:where(.group\/alert-dialog-content)[data-size=default] *):has([data-slot=alert-dialog-media]){grid-template-rows:auto 1fr}.data-\[side\=left\]\:sm\:max-w-sm[data-side=left],.data-\[side\=right\]\:sm\:max-w-sm[data-side=right],.data-\[size\=default\]\:sm\:max-w-sm[data-size=default]{max-width:var(--container-sm)}}@media(min-width:48rem){.md\:col-span-2{grid-column:span 2/span 2}.md\:col-span-3{grid-column:span 3/span 3}.md\:col-span-4{grid-column:span 4/span 4}.md\:col-span-6{grid-column:span 6/span 6}.md\:block{display:block}.md\:flex{display:flex}.md\:h-16{height:calc(var(--spacing)*16)}.md\:h-\[calc\(100dvh-1rem\)\]{height:calc(100dvh - 1rem)}.md\:w-auto{width:auto}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.md\:items-end{align-items:flex-end}.md\:p-4{padding:calc(var(--spacing)*4)}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.md\:text-pretty{text-wrap:pretty}.md\:opacity-0{opacity:0}.md\:peer-data-\[variant\=inset\]\:m-2:is(:where(.peer)[data-variant=inset]~*){margin:calc(var(--spacing)*2)}.md\:peer-data-\[variant\=inset\]\:ml-0:is(:where(.peer)[data-variant=inset]~*){margin-left:calc(var(--spacing)*0)}.md\:peer-data-\[variant\=inset\]\:rounded-xl:is(:where(.peer)[data-variant=inset]~*){border-radius:calc(var(--radius) + 4px)}.md\:peer-data-\[variant\=inset\]\:shadow-sm:is(:where(.peer)[data-variant=inset]~*){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.md\:peer-data-\[variant\=inset\]\:peer-data-\[state\=collapsed\]\:ml-2:is(:where(.peer)[data-variant=inset]~*):is(:where(.peer)[data-state=collapsed]~*){margin-left:calc(var(--spacing)*2)}.md\:after\:hidden:after{content:var(--tw-content);display:none}}@media(min-width:64rem){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}.ltr\:-translate-x-1\/2:where(:dir(ltr),[dir=ltr],[dir=ltr] *),.rtl\:-translate-x-1\/2:where(:dir(rtl),[dir=rtl],[dir=rtl] *){--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.dark\:border-destructive:is(.dark *){border-color:var(--destructive)}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:bg-destructive\/20:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/20:is(.dark *){background-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:bg-transparent:is(.dark *){background-color:#0000}.dark\:text-amber-300:is(.dark *){color:var(--color-amber-300)}.dark\:text-muted-foreground:is(.dark *){color:var(--muted-foreground)}.dark\:text-red-300:is(.dark *){color:var(--color-red-300)}@media(hover:hover){.dark\:hover\:bg-destructive\/30:is(.dark *):hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-destructive\/30:is(.dark *):hover{background-color:color-mix(in oklab,var(--destructive)30%,transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input)50%,transparent)}}.dark\:hover\:bg-muted\/50:is(.dark *):hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-muted\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.dark\:hover\:bg-transparent:is(.dark *):hover{background-color:#0000}.dark\:hover\:text-foreground:is(.dark *):hover{color:var(--foreground)}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:disabled\:bg-input\/80:is(.dark *):disabled{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:disabled\:bg-input\/80:is(.dark *):disabled{background-color:color-mix(in oklab,var(--input)80%,transparent)}}.dark\:disabled\:bg-transparent:is(.dark *):disabled{background-color:#0000}.dark\:aria-invalid\:border-destructive\/50:is(.dark *)[aria-invalid=true]{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:border-destructive\/50:is(.dark *)[aria-invalid=true]{border-color:color-mix(in oklab,var(--destructive)50%,transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:data-active\:border-input:is(.dark *)[data-active]{border-color:var(--input)}.dark\:data-active\:border-transparent:is(.dark *)[data-active]{border-color:#0000}.dark\:data-active\:bg-input\/30:is(.dark *)[data-active]{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:data-active\:bg-input\/30:is(.dark *)[data-active]{background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:data-active\:bg-input\/60:is(.dark *)[data-active]{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:data-active\:bg-input\/60:is(.dark *)[data-active]{background-color:color-mix(in oklab,var(--input)60%,transparent)}}.dark\:data-active\:text-foreground:is(.dark *)[data-active]{color:var(--foreground)}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:border-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *)[data-active]{border-color:#0000}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *)[data-active]{background-color:#0000}.dark\:data-checked\:bg-primary-foreground:is(.dark *)[data-checked]{background-color:var(--primary-foreground)}.dark\:data-unchecked\:bg-foreground:is(.dark *)[data-unchecked]{background-color:var(--foreground)}.dark\:data-unchecked\:bg-input\/80:is(.dark *)[data-unchecked]{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:data-unchecked\:bg-input\/80:is(.dark *)[data-unchecked]{background-color:color-mix(in oklab,var(--input)80%,transparent)}}.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.\[\&_p\]\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5 svg:not([class*=size-]){width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-\[15px\] svg:not([class*=size-]){width:15px;height:15px}.\[\.border-b\]\:pb-4.border-b{padding-bottom:calc(var(--spacing)*4)}.group-data-\[size\=sm\]\/card\:\[\.border-b\]\:pb-3:is(:where(.group\/card)[data-size=sm] *).border-b{padding-bottom:calc(var(--spacing)*3)}:is(.\*\:\[a\]\:underline>*):is(a){text-decoration-line:underline}:is(.\*\:\[a\]\:underline-offset-3>*):is(a){text-underline-offset:3px}@media(hover:hover){.\[a\]\:hover\:bg-destructive\/20:is(a):hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.\[a\]\:hover\:bg-destructive\/20:is(a):hover{background-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.\[a\]\:hover\:bg-muted:is(a):hover{background-color:var(--muted)}.\[a\]\:hover\:bg-primary\/80:is(a):hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.\[a\]\:hover\:bg-primary\/80:is(a):hover{background-color:color-mix(in oklab,var(--primary)80%,transparent)}}.\[a\]\:hover\:bg-secondary\/80:is(a):hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.\[a\]\:hover\:bg-secondary\/80:is(a):hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.\[a\]\:hover\:text-muted-foreground:is(a):hover{color:var(--muted-foreground)}:is(.\*\:\[a\]\:hover\:text-foreground>*):is(a):hover{color:var(--foreground)}}:is(.\*\:\[img\:first-child\]\:rounded-t-xl>*):is(img:first-child){border-top-left-radius:calc(var(--radius) + 4px);border-top-right-radius:calc(var(--radius) + 4px)}:is(.\*\:\[img\:last-child\]\:rounded-b-xl>*):is(img:last-child){border-bottom-right-radius:calc(var(--radius) + 4px);border-bottom-left-radius:calc(var(--radius) + 4px)}:is(.\*\:\[span\]\:last\:flex>*):is(span):last-child{display:flex}:is(.\*\:\[span\]\:last\:items-center>*):is(span):last-child{align-items:center}:is(.\*\:\[span\]\:last\:gap-2>*):is(span):last-child{gap:calc(var(--spacing)*2)}:is(.data-\[variant\=destructive\]\:\*\:\[svg\]\:text-destructive[data-variant=destructive]>*):is(svg){color:var(--destructive)}:is(.\*\:\[svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-6>*):is(svg:not([class*=size-])){width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>span\:last-child\]\:truncate>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:top-4>svg{top:calc(var(--spacing)*4)}.\[\&\>svg\]\:left-4>svg{left:calc(var(--spacing)*4)}.\[\&\>svg\]\:size-3\!>svg{width:calc(var(--spacing)*3)!important;height:calc(var(--spacing)*3)!important}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:text-destructive>svg{color:var(--destructive)}.\[\&\>svg\]\:text-foreground>svg{color:var(--foreground)}.\[\&\>svg\]\:text-sidebar-accent-foreground>svg{color:var(--sidebar-accent-foreground)}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y:-3px;translate:var(--tw-translate-x)var(--tw-translate-y)}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:calc(var(--spacing)*7)}@media(any-pointer:coarse){.\[\@media\(any-pointer\:coarse\)\]\:right-0\.5{right:calc(var(--spacing)*.5)}.\[\@media\(any-pointer\:coarse\)\]\:right-10\.5{right:calc(var(--spacing)*10.5)}.\[\@media\(any-pointer\:coarse\)\]\:hidden{display:none}.\[\@media\(any-pointer\:coarse\)\]\:size-10{width:calc(var(--spacing)*10);height:calc(var(--spacing)*10)}.\[\@media\(any-pointer\:coarse\)\]\:h-4\.5{height:calc(var(--spacing)*4.5)}.\[\@media\(any-pointer\:coarse\)\]\:h-5{height:calc(var(--spacing)*5)}.\[\@media\(any-pointer\:coarse\)\]\:h-8{height:calc(var(--spacing)*8)}.\[\@media\(any-pointer\:coarse\)\]\:h-9{height:calc(var(--spacing)*9)}.\[\@media\(any-pointer\:coarse\)\]\:h-10{height:calc(var(--spacing)*10)}.\[\@media\(any-pointer\:coarse\)\]\:min-h-11{min-height:calc(var(--spacing)*11)}.\[\@media\(any-pointer\:coarse\)\]\:w-4{width:calc(var(--spacing)*4)}.\[\@media\(any-pointer\:coarse\)\]\:w-4\.5{width:calc(var(--spacing)*4.5)}.\[\@media\(any-pointer\:coarse\)\]\:w-5{width:calc(var(--spacing)*5)}.\[\@media\(any-pointer\:coarse\)\]\:w-8{width:calc(var(--spacing)*8)}.\[\@media\(any-pointer\:coarse\)\]\:w-9{width:calc(var(--spacing)*9)}.\[\@media\(any-pointer\:coarse\)\]\:w-10{width:calc(var(--spacing)*10)}.\[\@media\(any-pointer\:coarse\)\]\:min-w-10{min-width:calc(var(--spacing)*10)}.\[\@media\(any-pointer\:coarse\)\]\:min-w-48{min-width:calc(var(--spacing)*48)}:where(.\[\@media\(any-pointer\:coarse\)\]\:space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.\[\@media\(any-pointer\:coarse\)\]\:space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.\[\@media\(any-pointer\:coarse\)\]\:space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}.\[\@media\(any-pointer\:coarse\)\]\:rounded-lg{border-radius:var(--radius)}.\[\@media\(any-pointer\:coarse\)\]\:px-2{padding-inline:calc(var(--spacing)*2)}.\[\@media\(any-pointer\:coarse\)\]\:px-3{padding-inline:calc(var(--spacing)*3)}.\[\@media\(any-pointer\:coarse\)\]\:py-2{padding-block:calc(var(--spacing)*2)}.\[\@media\(any-pointer\:coarse\)\]\:py-2\.5{padding-block:calc(var(--spacing)*2.5)}.\[\@media\(any-pointer\:coarse\)\]\:pr-12{padding-right:calc(var(--spacing)*12)}.\[\@media\(any-pointer\:coarse\)\]\:pr-21{padding-right:calc(var(--spacing)*21)}.\[\@media\(any-pointer\:coarse\)\]\:opacity-100{opacity:1}}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{right:calc(var(--spacing)*-2)}[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize{cursor:e-resize}[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{left:calc(var(--spacing)*-2)}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{cursor:w-resize}}body{overscroll-behavior:none;background-color:var(--sidebar);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--text-family:var(--font-outfit),sans-serif}[data-theme-preset=underground]{--base-50:oklch(98.4% .0022 247.84);--base-100:oklch(96.87% .0051 247.88);--base-200:oklch(92.9% .0095 255.53);--base-300:oklch(86.9% .016 252.91);--base-400:oklch(70.4% .0291 256.81);--base-500:oklch(55.4% .0335 257.44);--base-600:oklch(44.6% .0313 257.3);--base-700:oklch(37.2% .0321 257.31);--base-800:oklch(27.9% .0299 260.05);--base-900:oklch(20.8% .0306 265.77);--base-950:oklch(12.9% .0306 264.71);--base-1000:oklch(7.8% .0306 264.02);--primary-50:oklch(97.97% .0095 159.88);--primary-100:oklch(95.64% .0234 159.23);--primary-200:oklch(91.64% .0434 159.21);--primary-300:oklch(86.03% .0731 158.6);--primary-400:oklch(78.1% .0975 156.24);--primary-500:oklch(71.22% .0991 154.66);--primary-600:oklch(61.47% .0867 154.73);--primary-700:oklch(53.15% .0694 156.19);--primary-800:oklch(44.16% .0544 157.47);--primary-900:oklch(38.7% .0436 159);--primary-950:oklch(26.43% .0295 160.27);--primary-1000:oklch(18.45% .0202 160.95);--secondary-50:oklch(97.55% .0049 330.01);--secondary-100:oklch(95.12% .0104 328.92);--secondary-200:oklch(90.2% .0219 329.77);--secondary-300:oklch(82.92% .0422 332);--secondary-400:oklch(73.08% .07 333.6);--secondary-500:oklch(66.24% .0855 334.26);--secondary-600:oklch(57.48% .0862 336.52);--secondary-700:oklch(52.11% .0755 338.14);--secondary-800:oklch(45.52% .0631 338.88);--secondary-900:oklch(40.42% .0512 339.72);--secondary-950:oklch(28.93% .0391 340.38);--secondary-1000:oklch(21.46% .0313 340.82);--background:var(--base-50);--foreground:var(--base-800);--card:var(--color-white);--card-foreground:var(--base-800);--popover:var(--color-white);--popover-foreground:var(--base-800);--primary:var(--primary-700);--primary-foreground:var(--color-white);--secondary:var(--secondary-600);--secondary-foreground:var(--color-white);--muted:var(--base-100);--muted-foreground:var(--base-600);--accent:var(--base-200);--accent-foreground:var(--base-800);--destructive:oklch(57.7% .245 27.325);--border:var(--base-200);--input:var(--base-300);--ring:var(--primary-700);--chart-1:var(--primary-700);--chart-2:var(--secondary-600);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--radius:.5rem;--sidebar:var(--color-white);--sidebar-foreground:var(--base-800);--sidebar-primary:var(--primary-700);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--color-white);--sidebar-border:var(--base-200);--sidebar-ring:var(--primary-700);--display-family:var(--font-hedvig-letters-serif),sans-serif;--display-weight:800;--text-family:var(--font-kumbh-sans),sans-serif}[data-theme-preset=underground]:is(.dark *){--background:var(--base-950);--foreground:var(--base-200);--card:var(--base-900);--card-foreground:var(--base-200);--popover:var(--base-900);--popover-foreground:var(--base-200);--primary:var(--primary-700);--primary-foreground:var(--color-white);--secondary:var(--secondary-600);--secondary-foreground:var(--color-white);--muted:var(--base-800);--muted-foreground:var(--base-300);--accent:var(--base-800);--accent-foreground:var(--base-200);--destructive:oklch(70.4% .191 22.216);--border:var(--base-800);--input:var(--base-700);--ring:var(--primary-700);--chart-1:var(--primary-700);--chart-2:var(--secondary-600);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--sidebar:var(--base-900);--sidebar-foreground:var(--base-200);--sidebar-primary:var(--primary-700);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--base-200);--sidebar-border:var(--base-800);--sidebar-ring:var(--primary-700)}[data-theme-preset=rose-garden]{--base-50:oklch(98.51% .001 33.69);--base-100:oklch(95.67% .0021 34.31);--base-200:oklch(92.27% .0029 34.49);--base-300:oklch(86.96% .0034 34.89);--base-400:oklch(70.88% .0038 34.83);--base-500:oklch(55.43% .0041 35.95);--base-600:oklch(44.23% .004 36.92);--base-700:oklch(37.31% .0037 36.25);--base-800:oklch(26.86% .0032 34.85);--base-900:oklch(21.2% .0029 34.69);--base-950:oklch(14.63% .0027 33.58);--base-1000:oklch(10.36% .0021 33.95);--primary-50:oklch(96.98% .0142 5.62);--primary-100:oklch(94.29% .0283 5.52);--primary-200:oklch(89.38% .0563 3.77);--primary-300:oklch(81.31% .1129 5.67);--primary-400:oklch(71.35% .1879 7.69);--primary-500:oklch(64.76% .2348 10.36);--primary-600:oklch(58.27% .2418 12.23);--primary-700:oklch(51.66% .2131 12.28);--primary-800:oklch(45.59% .1801 10);--primary-900:oklch(40.96% .1512 7.52);--primary-950:oklch(27.41% .1016 9.26);--primary-1000:oklch(18.61% .0693 10.39);--background:var(--color-white);--foreground:var(--base-800);--card:var(--color-white);--card-foreground:var(--base-800);--popover:var(--color-white);--popover-foreground:var(--base-800);--primary:var(--primary-600);--primary-foreground:var(--color-white);--secondary:var(--primary-300);--secondary-foreground:var(--base-800);--muted:var(--base-200);--muted-foreground:var(--base-600);--accent:var(--base-100);--accent-foreground:var(--base-800);--destructive:oklch(57.7% .245 27.325);--border:var(--base-200);--input:var(--base-300);--ring:var(--primary-600);--chart-1:var(--primary-600);--chart-2:var(--primary-200);--chart-3:var(--primary-400);--chart-4:var(--primary-300);--chart-5:var(--primary-100);--radius:1rem;--sidebar:var(--base-100);--sidebar-foreground:var(--base-800);--sidebar-primary:var(--primary-600);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary-600);--sidebar-accent-foreground:var(--color-white);--sidebar-border:var(--base-200);--sidebar-ring:var(--primary-600);--text-family:var(--font-poppins),sans-serif;--display-weight:600}[data-theme-preset=rose-garden]:is(.dark *){--background:var(--base-950);--foreground:var(--base-200);--card:var(--base-950);--card-foreground:var(--base-200);--popover:var(--base-950);--popover-foreground:var(--base-200);--primary:var(--primary-600);--primary-foreground:var(--color-white);--secondary:var(--primary-300);--secondary-foreground:var(--base-200);--muted:var(--base-900);--muted-foreground:var(--base-400);--accent:var(--base-900);--accent-foreground:var(--base-200);--destructive:oklch(70.4% .191 22.216);--border:var(--base-800);--input:var(--base-700);--ring:var(--primary-600);--chart-1:var(--primary-600);--chart-2:var(--primary-200);--chart-3:var(--primary-400);--chart-4:var(--primary-300);--chart-5:var(--primary-100);--sidebar:var(--base-800);--sidebar-foreground:var(--base-200);--sidebar-primary:var(--primary-600);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary-600);--sidebar-accent-foreground:var(--base-200);--sidebar-border:var(--base-800);--sidebar-ring:var(--primary-600)}[data-theme-preset=lake-view]{--base-50:oklch(98.49% .0024 160.68);--base-100:oklch(96.92% .005 161.7);--base-200:oklch(92.63% .0099 162.17);--base-300:oklch(85.04% .0147 163.22);--base-400:oklch(70.64% .0222 164.73);--base-500:oklch(55.37% .0287 165.9);--base-600:oklch(44.53% .0279 166.55);--base-700:oklch(37.31% .0248 166.06);--base-800:oklch(27.42% .0208 165.96);--base-900:oklch(21.19% .0173 166.78);--base-950:oklch(13.74% .0152 166.46);--base-1000:oklch(8.91% .0136 166.9);--primary-50:oklch(97.9% .021 166.11);--primary-100:oklch(95% .052 163.05);--primary-200:oklch(90.5% .093 164.15);--primary-300:oklch(84.5% .143 164.98);--primary-400:oklch(76.5% .177 163.22);--primary-500:oklch(69.6% .17 162.48);--primary-600:oklch(59.6% .145 163.22);--primary-700:oklch(50.8% .118 165.61);--primary-800:oklch(43.2% .095 166.91);--primary-900:oklch(37.8% .077 168.94);--primary-950:oklch(26.2% .051 171.55);--primary-1000:oklch(18.7% .034 172.89);--secondary-50:oklch(98.08% .0145 191.25);--secondary-100:oklch(95.16% .0437 191.52);--secondary-200:oklch(91.08% .0804 191.57);--secondary-300:oklch(85.76% .1202 192.38);--secondary-400:oklch(78.09% .1376 194.73);--secondary-500:oklch(70.79% .1273 196.21);--secondary-600:oklch(60.35% .1094 198.95);--secondary-700:oklch(55.1% .0899 200.52);--secondary-800:oklch(44.22% .0729 202.06);--secondary-900:oklch(39.06% .0594 203.06);--secondary-950:oklch(28.71% .0452 205.42);--secondary-1000:oklch(21.98% .036 206.01);--background:var(--base-50);--foreground:var(--base-800);--card:var(--color-white);--card-foreground:var(--base-800);--popover:var(--color-white);--popover-foreground:var(--base-800);--primary:var(--primary-400);--primary-foreground:var(--color-black);--secondary:var(--secondary-700);--secondary-foreground:var(--color-white);--muted:var(--base-100);--muted-foreground:var(--base-600);--accent:var(--base-100);--accent-foreground:var(--base-800);--destructive:oklch(57.7% .245 27.325);--border:var(--base-200);--input:var(--base-300);--ring:var(--primary-400);--chart-1:var(--primary-400);--chart-2:var(--secondary-700);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--radius:.75rem;--sidebar:var(--color-white);--sidebar-foreground:var(--base-800);--sidebar-primary:var(--primary-400);--sidebar-primary-foreground:var(--color-black);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--base-800);--sidebar-border:var(--base-200);--sidebar-ring:var(--primary-400);--display-weight:800;--text-family:var(--font-pt-sans),sans-serif}[data-theme-preset=lake-view]:is(.dark *){--background:var(--base-950);--foreground:var(--base-200);--card:var(--base-900);--card-foreground:var(--base-200);--popover:var(--base-900);--popover-foreground:var(--base-200);--primary:var(--primary-400);--primary-foreground:var(--color-black);--secondary:var(--secondary-700);--secondary-foreground:var(--color-white);--muted:var(--base-800);--muted-foreground:var(--base-300);--accent:var(--base-800);--accent-foreground:var(--base-200);--destructive:oklch(70.4% .191 22.216);--border:var(--base-800);--input:var(--base-700);--ring:var(--primary-400);--chart-1:var(--primary-400);--chart-2:var(--secondary-700);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--sidebar:var(--base-900);--sidebar-foreground:var(--base-200);--sidebar-primary:var(--primary-400);--sidebar-primary-foreground:var(--color-black);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--color-black);--sidebar-border:var(--base-800);--sidebar-ring:var(--primary-400)}[data-theme-preset=sunset-glow]{--base-50:oklch(98.53% .0041 157.18);--base-100:oklch(96.9% .0045 158.2);--base-200:oklch(92.61% .0057 158.66);--base-300:oklch(86.9% .0066 159.7);--base-400:oklch(70.64% .0074 161.16);--base-500:oklch(55.35% .008 162.35);--base-600:oklch(44.5% .0078 163.03);--base-700:oklch(37.3% .0072 162.52);--base-800:oklch(27.38% .0062 162.35);--base-900:oklch(21.18% .0057 163.13);--base-950:oklch(13.76% .0053 162.77);--base-1000:oklch(8.94% .0049 163.21);--primary-50:oklch(97.19% .0102 16.36);--primary-100:oklch(93.81% .0241 16.66);--primary-200:oklch(88.72% .0467 16.63);--primary-300:oklch(80.9% .0875 17.95);--primary-400:oklch(70.59% .1462 20.42);--primary-500:oklch(63.87% .1822 23.51);--primary-600:oklch(55.91% .1882 25.33);--primary-700:oklch(50.69% .1639 25.35);--primary-800:oklch(44.65% .1368 24.19);--primary-900:oklch(39.92% .1104 22.56);--primary-950:oklch(26.09% .0723 23.19);--primary-1000:oklch(17.09% .0473 23.59);--secondary-50:oklch(97.81% .0149 45.53);--secondary-100:oklch(94.91% .0351 44.57);--secondary-200:oklch(89.64% .0724 43.73);--secondary-300:oklch(79.38% .1248 42.42);--secondary-400:oklch(73.63% .1869 41.57);--secondary-500:oklch(68.49% .222 40.89);--secondary-600:oklch(62.57% .2229 39.75);--secondary-700:oklch(53.91% .1994 37.91);--secondary-800:oklch(46.28% .1643 36.26);--secondary-900:oklch(40.51% .1294 35.11);--secondary-950:oklch(26.41% .0836 34.57);--secondary-1000:oklch(17.26% .0534 33.77);--background:var(--color-white);--foreground:var(--base-800);--card:var(--color-white);--card-foreground:var(--base-800);--popover:var(--color-white);--popover-foreground:var(--base-800);--primary:var(--primary-600);--primary-foreground:var(--color-white);--secondary:var(--secondary-300);--secondary-foreground:var(--color-black);--muted:var(--base-50);--muted-foreground:var(--base-600);--accent:var(--primary-100);--accent-foreground:var(--base-800);--destructive:oklch(57.7% .245 27.325);--border:var(--base-200);--input:var(--base-300);--ring:var(--primary-600);--chart-1:var(--primary-600);--chart-2:var(--secondary-300);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--radius:1rem;--sidebar:var(--base-100);--sidebar-foreground:var(--base-800);--sidebar-primary:var(--primary-600);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--color-white);--sidebar-border:var(--base-200);--sidebar-ring:var(--primary-600)}[data-theme-preset=sunset-glow]:is(.dark *){--background:var(--base-950);--foreground:var(--base-200);--card:var(--base-950);--card-foreground:var(--base-200);--popover:var(--base-950);--popover-foreground:var(--base-200);--primary:var(--primary-600);--primary-foreground:var(--color-white);--secondary:var(--secondary-300);--secondary-foreground:var(--color-black);--muted:var(--base-900);--muted-foreground:var(--base-400);--accent:var(--base-900);--accent-foreground:var(--base-200);--destructive:oklch(70.4% .191 22.216);--border:var(--base-800);--input:var(--base-700);--ring:var(--primary-600);--chart-1:var(--primary-600);--chart-2:var(--secondary-300);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--sidebar:var(--base-900);--sidebar-foreground:var(--base-200);--sidebar-primary:var(--primary-600);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--color-white);--sidebar-border:var(--base-800);--sidebar-ring:var(--primary-600)}[data-theme-preset=forest-whisper]{--base-50:oklch(98.43% .0035 287.12);--base-100:oklch(96.65% .007 286.66);--base-200:oklch(91.97% .014 286.6);--base-300:oklch(87.08% .021 286.57);--base-400:oklch(72.44% .0315 286.35);--base-500:oklch(55.19% .042 286.22);--base-600:oklch(44.18% .0385 286.07);--base-700:oklch(36.98% .0315 286.09);--base-800:oklch(27.38% .021 286.32);--base-900:oklch(20.98% .014 286.17);--base-950:oklch(14.08% .0105 286.11);--base-1000:oklch(9.59% .007 286.07);--primary-50:oklch(98.15% .0164 177.79);--primary-100:oklch(95.11% .0547 177.24);--primary-200:oklch(90.8% .1019 177.16);--primary-300:oklch(85.22% .1484 177.84);--primary-400:oklch(77.41% .1676 178.16);--primary-500:oklch(70.21% .1559 178.48);--primary-600:oklch(59.91% .1318 180.39);--primary-700:oklch(52.76% .1072 182.22);--primary-800:oklch(43.59% .0869 183.94);--primary-900:oklch(38.42% .0703 184.51);--primary-950:oklch(27.38% .0502 187.51);--primary-1000:oklch(20.2% .0372 188.32);--secondary-50:oklch(97.7% .0034 244.64);--secondary-100:oklch(94.5% .0074 245.19);--secondary-200:oklch(89.44% .015 243.47);--secondary-300:oklch(82.08% .0278 242.12);--secondary-400:oklch(72.94% .0416 244.67);--secondary-500:oklch(65.78% .0485 247.35);--secondary-600:oklch(52.36% .0505 250.18);--secondary-700:oklch(49.5% .0469 251.28);--secondary-800:oklch(43.5% .0384 252.42);--secondary-900:oklch(38.63% .0295 252.97);--secondary-950:oklch(28.87% .0198 254.2);--secondary-1000:oklch(22.51% .0134 255.72);--background:var(--base-50);--foreground:var(--base-800);--card:var(--color-white);--card-foreground:var(--base-800);--popover:var(--color-white);--popover-foreground:var(--base-800);--primary:var(--primary-700);--primary-foreground:var(--color-white);--secondary:var(--secondary-600);--secondary-foreground:var(--color-white);--muted:var(--base-100);--muted-foreground:var(--base-600);--accent:var(--base-100);--accent-foreground:var(--base-800);--destructive:oklch(57.7% .245 27.325);--border:var(--base-200);--input:var(--base-300);--ring:var(--primary-700);--chart-1:var(--primary-700);--chart-2:var(--secondary-600);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--radius:.5rem;--sidebar:var(--color-white);--sidebar-foreground:var(--base-800);--sidebar-primary:var(--primary-700);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--color-white);--sidebar-border:var(--base-200);--sidebar-ring:var(--primary-700)}[data-theme-preset=forest-whisper]:is(.dark *){--background:var(--base-950);--foreground:var(--base-200);--card:var(--base-900);--card-foreground:var(--base-200);--popover:var(--base-900);--popover-foreground:var(--base-200);--primary:var(--primary-700);--primary-foreground:var(--color-white);--secondary:var(--secondary-600);--secondary-foreground:var(--color-white);--muted:var(--base-800);--muted-foreground:var(--base-300);--accent:var(--base-800);--accent-foreground:var(--base-200);--destructive:oklch(70.4% .191 22.216);--border:var(--base-800);--input:var(--base-700);--ring:var(--primary-700);--chart-1:var(--primary-700);--chart-2:var(--secondary-600);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--sidebar:var(--base-900);--sidebar-foreground:var(--base-200);--sidebar-primary:var(--primary-700);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--color-white);--sidebar-border:var(--base-800);--sidebar-ring:var(--primary-700)}[data-theme-preset=ocean-breeze]{--base-50:oklch(99% .0053 106.5);--base-100:oklch(96.95% .0058 107.51);--base-200:oklch(92.45% .0074 107.89);--base-300:oklch(86.89% .0085 108.73);--base-400:oklch(70.76% .0095 109.42);--base-500:oklch(55.32% .0103 110.92);--base-600:oklch(44.44% .0101 112.04);--base-700:oklch(37.34% .0093 111.24);--base-800:oklch(27.08% .008 110.04);--base-900:oklch(21.38% .0074 110.31);--base-950:oklch(14.21% .0069 109.25);--base-1000:oklch(9.56% .0064 109.76);--primary-50:oklch(97% .0123 254.6);--primary-100:oklch(93.2% .0281 255.58);--primary-200:oklch(88.2% .0518 254.13);--primary-300:oklch(80.9% .0922 251.81);--primary-400:oklch(70.7% .1449 254.62);--primary-500:oklch(62.3% .188 259.81);--primary-600:oklch(54.61% .2152 262.88);--primary-700:oklch(48.8% .2134 264.37);--primary-800:oklch(42.4% .1748 265.64);--primary-900:oklch(37.9% .1282 265.52);--primary-950:oklch(28.2% .0799 267.93);--primary-1000:oklch(21.9% .0483 269.5);--secondary-50:oklch(96.2% .0158 272.32);--secondary-100:oklch(93% .0298 272.79);--secondary-200:oklch(87% .0569 274.04);--secondary-300:oklch(78.5% .1007 274.72);--secondary-400:oklch(67.3% .1594 276.94);--secondary-500:oklch(58.54% .2041 277.12);--secondary-600:oklch(51.1% .2295 276.97);--secondary-700:oklch(45.7% .2102 277.03);--secondary-800:oklch(39.8% .1708 277.37);--secondary-900:oklch(35.9% .1261 278.7);--secondary-950:oklch(25.7% .0788 281.29);--secondary-1000:oklch(19.1% .0482 282.97);--background:var(--color-white);--foreground:var(--base-800);--card:var(--color-white);--card-foreground:var(--base-800);--popover:var(--color-white);--popover-foreground:var(--base-800);--primary:var(--primary-600);--primary-foreground:var(--color-white);--secondary:var(--secondary-500);--secondary-foreground:var(--color-white);--muted:var(--base-50);--muted-foreground:var(--base-600);--accent:var(--base-100);--accent-foreground:var(--base-800);--destructive:oklch(57.7% .245 27.325);--border:var(--base-200);--input:var(--base-300);--ring:var(--primary-600);--chart-1:var(--primary-600);--chart-2:var(--secondary-500);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--radius:.3rem;--sidebar:var(--base-100);--sidebar-foreground:var(--base-800);--sidebar-primary:var(--primary-600);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--color-white);--sidebar-border:var(--base-200);--sidebar-ring:var(--primary-600);--text-family:var(--font-plus-jakarta-sans),sans-serif;--display-weight:800}[data-theme-preset=ocean-breeze]:is(.dark *){--background:var(--base-950);--foreground:var(--base-200);--card:var(--base-950);--card-foreground:var(--base-200);--popover:var(--base-950);--popover-foreground:var(--base-200);--primary:var(--primary-600);--primary-foreground:var(--color-white);--secondary:var(--secondary-500);--secondary-foreground:var(--color-black);--muted:var(--base-900);--muted-foreground:var(--base-400);--accent:var(--base-900);--accent-foreground:var(--base-200);--destructive:oklch(70.4% .191 22.216);--border:var(--base-800);--input:var(--base-700);--ring:var(--primary-600);--chart-1:var(--primary-600);--chart-2:var(--secondary-500);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--sidebar:var(--base-900);--sidebar-foreground:var(--base-200);--sidebar-primary:var(--primary-600);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--color-white);--sidebar-border:var(--base-800);--sidebar-ring:var(--primary-600)}[data-theme-preset=lavender-dream]{--base-50:oklch(98.68% .0029 259.84);--base-100:oklch(96.92% .0058 262.54);--base-200:oklch(92.53% .0117 262.53);--base-300:oklch(86.92% .0175 260.34);--base-400:oklch(70.7% .0262 261.33);--base-500:oklch(55.1% .035 262.36);--base-600:oklch(44.6% .0335 258.8);--base-700:oklch(37.3% .0306 259.73);--base-800:oklch(27.8% .0277 258.85);--base-900:oklch(21% .024 262.66);--base-950:oklch(13% .0219 261.69);--base-1000:oklch(7.8% .0204 259.76);--primary-50:oklch(97.66% .0092 310.91);--primary-100:oklch(94.7% .0212 309.77);--primary-200:oklch(90.2% .0412 309.57);--primary-300:oklch(82.81% .078 309.73);--primary-400:oklch(71.97% .1318 309.2);--primary-500:oklch(63.59% .1699 307.95);--primary-600:oklch(57.09% .1808 306.89);--primary-700:oklch(50.09% .164 306.81);--primary-800:oklch(44.1% .1353 308.36);--primary-900:oklch(38.53% .1093 309.57);--primary-950:oklch(29.13% .0914 307.81);--primary-1000:oklch(22.29% .0786 306.49);--secondary-50:oklch(98.31% .0066 196.52);--secondary-100:oklch(95.43% .0181 196.87);--secondary-200:oklch(91.4% .033 197.14);--secondary-300:oklch(86.11% .0504 198.03);--secondary-400:oklch(81.1% .0589 201.14);--secondary-500:oklch(71.07% .0545 203.05);--secondary-600:oklch(60.54% .0473 206.07);--secondary-700:oklch(51.64% .0391 207.58);--secondary-800:oklch(44.48% .0317 208.98);--secondary-900:oklch(39.31% .0259 210.38);--secondary-950:oklch(29.23% .0201 212.36);--secondary-1000:oklch(22.7% .0163 212.92);--background:var(--base-50);--foreground:var(--base-800);--card:var(--color-white);--card-foreground:var(--base-800);--popover:var(--color-white);--popover-foreground:var(--base-800);--primary:var(--primary-600);--primary-foreground:var(--color-white);--secondary:var(--secondary-400);--secondary-foreground:var(--color-black);--muted:var(--base-100);--muted-foreground:var(--base-600);--accent:var(--base-200);--accent-foreground:var(--base-800);--destructive:oklch(57.7% .245 27.325);--border:var(--base-200);--input:var(--base-300);--ring:var(--primary-600);--chart-1:var(--primary-600);--chart-2:var(--secondary-400);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--radius:1rem;--sidebar:var(--color-white);--sidebar-foreground:var(--base-800);--sidebar-primary:var(--primary-600);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--color-white);--sidebar-border:var(--base-200);--sidebar-ring:var(--primary-600);--display-family:var(--font-hedvig-letters-serif),sans-serif}[data-theme-preset=lavender-dream]:is(.dark *){--background:var(--base-950);--foreground:var(--base-200);--card:var(--base-900);--card-foreground:var(--base-200);--popover:var(--base-900);--popover-foreground:var(--base-200);--primary:var(--primary-600);--primary-foreground:var(--color-white);--secondary:var(--secondary-400);--secondary-foreground:var(--color-black);--muted:var(--base-800);--muted-foreground:var(--base-300);--accent:var(--base-800);--accent-foreground:var(--base-200);--destructive:oklch(70.4% .191 22.216);--border:var(--base-800);--input:var(--base-700);--ring:var(--primary-600);--chart-1:var(--primary-600);--chart-2:var(--secondary-400);--chart-3:var(--primary-300);--chart-4:var(--secondary-300);--chart-5:var(--primary-100);--sidebar:var(--base-900);--sidebar-foreground:var(--base-200);--sidebar-primary:var(--primary-600);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--primary);--sidebar-accent-foreground:var(--color-white);--sidebar-border:var(--base-800);--sidebar-ring:var(--primary-600)}[data-theme-chart-preset=cyan]{--chart-1:var(--color-cyan-800);--chart-2:var(--color-cyan-700);--chart-3:var(--color-cyan-600);--chart-4:var(--color-cyan-500);--chart-5:var(--color-cyan-400)}[data-theme-chart-preset=amber]{--chart-1:var(--color-amber-800);--chart-2:var(--color-amber-700);--chart-3:var(--color-amber-600);--chart-4:var(--color-amber-500);--chart-5:var(--color-amber-400)}[data-theme-chart-preset=green]{--chart-1:var(--color-green-800);--chart-2:var(--color-green-700);--chart-3:var(--color-green-600);--chart-4:var(--color-green-500);--chart-5:var(--color-green-400)}[data-theme-chart-preset=indigo]{--chart-1:var(--color-indigo-800);--chart-2:var(--color-indigo-700);--chart-3:var(--color-indigo-600);--chart-4:var(--color-indigo-500);--chart-5:var(--color-indigo-400)}[data-theme-chart-preset=fuchsia]{--chart-1:var(--color-fuchsia-800);--chart-2:var(--color-fuchsia-700);--chart-3:var(--color-fuchsia-600);--chart-4:var(--color-fuchsia-500);--chart-5:var(--color-fuchsia-400)}[data-theme-radius=sm]{--radius:.3rem}[data-theme-radius=md]{--radius:.5rem}[data-theme-radius=lg]{--radius:1rem}[data-theme-radius=xl]{--radius:1.5rem}[data-theme-radius=none]{--radius:0rem}[data-theme-scale=sm]{--text-lg:1.05rem;--text-base:.85rem;--text-sm:.75rem;--spacing:.222222rem}[data-theme-scale=lg]{--text-lg:1.55rem;--text-base:1.35rem;--text-sm:1rem;--spacing:.262222rem}[data-theme-font=inter]{--font-sans:var(--font-inter)}[data-theme-font=roboto]{--font-sans:var(--font-roboto)}[data-theme-font=poppins]{--font-sans:var(--font-poppins)}[data-theme-font=montserrat]{--font-sans:var(--font-montserrat)}[data-theme-font=pt-sans]{--font-sans:var(--font-pt-sans)}[data-theme-font=overpass-mono]{--font-sans:var(--font-overpass-mono);letter-spacing:-.05em}@font-face{font-family:GeistMonoTmex;src:url(/fonts/GeistMono-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:GeistMonoTmex;src:url(/fonts/GeistMono-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:NotoSansSymbols2Tmex;src:url(/fonts/NotoSansSymbols2-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--tmex-safe-area-top:env(safe-area-inset-top,0px);--tmex-safe-area-bottom:env(safe-area-inset-bottom,0px);--base-50:oklch(98.5% .0013 286.84);--base-100:oklch(96.7% .0027 286.38);--base-200:oklch(92% .0053 286.32);--base-300:oklch(87.1% .008 286.29);--base-400:oklch(70.5% .012 286.07);--base-500:oklch(55.2% .016 285.94);--base-600:oklch(44.2% .0147 285.79);--base-700:oklch(37% .012 285.81);--base-800:oklch(27.4% .008 286.03);--base-900:oklch(21% .0053 285.89);--base-950:oklch(14.1% .004 285.83);--base-1000:oklch(9.6% .0027 285.79);--background:var(--color-white);--foreground:var(--base-800);--card:var(--color-white);--card-foreground:var(--base-800);--popover:var(--color-white);--popover-foreground:var(--base-800);--primary:var(--base-950);--primary-foreground:var(--color-white);--secondary:var(--base-300);--secondary-foreground:var(--base-800);--muted:var(--color-neutral-100);--muted-foreground:var(--color-neutral-500);--accent:var(--base-200);--accent-foreground:var(--base-800);--destructive:oklch(57.7% .245 27.325);--border:var(--base-200);--input:var(--base-300);--ring:var(--base-800);--chart-1:var(--base-950);--chart-2:var(--base-600);--chart-3:var(--base-800);--chart-4:var(--base-400);--chart-5:var(--base-300);--radius:.5rem;--sidebar:var(--base-100);--sidebar-foreground:var(--base-500);--sidebar-primary:var(--base-950);--sidebar-primary-foreground:var(--color-white);--sidebar-accent:var(--base-200);--sidebar-accent-foreground:var(--base-950);--sidebar-border:var(--base-200);--sidebar-ring:var(--base-800);--chat-surface:#fcfcfc;--terminal-shortcut-fg:#616161;--terminal-shortcut-bg:#e1e1e1;--display-weight:700;--fc-button-bg-color:var(--primary);--fc-button-hover-bg-color:var(--primary);--fc-button-active-bg-color:var(--primary);--fc-button-hover-border-color:transparent;--fc-button-active-border-color:transparent;--fc-button-border-color:transparent;--fc-event-border-color:transparent;--fc-event-text-color:oklch(100% 0 0);--fc-border-color:var(--border);--fc-page-bg-color:var(--muted);--fc-today-bg-color:var(--muted)}.dark{--background:var(--base-950);--foreground:var(--base-200);--card:var(--base-950);--card-foreground:var(--base-200);--popover:var(--base-950);--popover-foreground:var(--base-200);--primary:var(--base-50);--primary-foreground:var(--base-900);--secondary:var(--base-500);--secondary-foreground:var(--base-200);--muted:var(--base-900);--muted-foreground:var(--base-400);--accent:var(--base-900);--accent-foreground:var(--base-200);--destructive:oklch(70.4% .191 22.216);--border:var(--base-800);--input:var(--base-700);--ring:var(--base-200);--chart-1:var(--base-50);--chart-2:var(--base-400);--chart-3:var(--base-200);--chart-4:var(--base-600);--chart-5:var(--base-700);--sidebar:var(--base-900);--sidebar-foreground:var(--base-200);--sidebar-primary:var(--base-50);--sidebar-primary-foreground:var(--base-900);--sidebar-accent:var(--base-800);--sidebar-accent-foreground:var(--base-200);--sidebar-border:var(--base-800);--sidebar-ring:var(--base-200);--chat-surface:#121212;--terminal-shortcut-fg:#d0d0d0;--terminal-shortcut-bg:#262626}*{scrollbar-width:thin;scrollbar-color:var(--border)transparent}.terminal-shortcut-btn{color:var(--terminal-shortcut-fg);background-color:var(--terminal-shortcut-fg)}@supports (color:color-mix(in lab,red,red)){.terminal-shortcut-btn{background-color:color-mix(in srgb,var(--terminal-shortcut-fg)8%,transparent)}}.terminal-shortcut-btn{border:1px solid var(--terminal-shortcut-fg)}@supports (color:color-mix(in lab,red,red)){.terminal-shortcut-btn{border:1px solid color-mix(in srgb,var(--terminal-shortcut-fg)18%,transparent)}}.terminal-shortcut-btn:hover{color:var(--terminal-shortcut-fg);background-color:var(--terminal-shortcut-fg)}@supports (color:color-mix(in lab,red,red)){.terminal-shortcut-btn:hover{background-color:color-mix(in srgb,var(--terminal-shortcut-fg)16%,transparent)}}.terminal-shortcut-btn:active{background-color:var(--terminal-shortcut-fg)}@supports (color:color-mix(in lab,red,red)){.terminal-shortcut-btn:active{background-color:color-mix(in srgb,var(--terminal-shortcut-fg)26%,transparent)}}html{overscroll-behavior:none;overflow:hidden}*{text-autospace:no-autospace}body{overscroll-behavior:none;scrollbar-width:none;-ms-overflow-style:none;height:100dvh;overflow:hidden}body::-webkit-scrollbar{display:none}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0))}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}