(()=>{var e,t,a,n={8768(e,t,a){"use strict";var n=a(6540),r=a(5338),o=a(1409),l=a(4976),s=a(7767),i=a(3362),c=a(2732),d=a(4164),m=a(856);function u(...e){return(0,m.QP)((0,d.$)(e))}var p=a(1425);function g(){return g=Object.assign?Object.assign.bind():function(e){for(var t=1;tn.createElement("button",g({className:u(f({variant:t,size:a,className:e})),ref:o},r)));w.displayName="Button";var b=a(8370),h=a(8697);function v(){return v=Object.assign?Object.assign.bind():function(e){for(var t=1;tn.createElement(b.hJ,v({className:u("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e)},t,{ref:a})));E.displayName=b.hJ.displayName;const N=(0,c.F)("fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out",{variants:{side:{top:"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",bottom:"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",left:"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",right:"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"}},defaultVariants:{side:"right"}}),k=n.forwardRef(({side:e="right",className:t,children:a,...r},o)=>n.createElement(y,null,n.createElement(E,null),n.createElement(b.UC,v({ref:o,className:u(N({side:e}),t)},r),n.createElement(b.bm,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary"},n.createElement(h.A,{className:"h-4 w-4"})),a)));k.displayName=b.UC.displayName;const S=({className:e,...t})=>n.createElement("div",v({className:u("flex flex-col space-y-2 text-center sm:text-left",e)},t));S.displayName="SheetHeader";const C=n.forwardRef(({className:e,...t},a)=>n.createElement(b.hE,v({ref:a,className:u("text-lg font-semibold text-foreground",e)},t)));C.displayName=b.hE.displayName;const A=n.forwardRef(({className:e,...t},a)=>n.createElement(b.VY,v({ref:a,className:u("text-sm text-muted-foreground",e)},t)));function R(){return R=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const c=function(){const[e,t]=n.useState(void 0);return n.useEffect(()=>{const e=window.matchMedia("(max-width: 767px)"),a=()=>{t(window.innerWidth<768)};return e.addEventListener("change",a),t(window.innerWidth<768),()=>e.removeEventListener("change",a)},[]),!!e}(),[d,m]=n.useState(!1),[p,g]=n.useState(e),f=t??p,w=n.useCallback(e=>{const t="function"==typeof e?e(f):e;a?a(t):g(t),document.cookie=`sidebar_state=${t}; path=/; max-age=604800`},[a,f]),b=n.useCallback(()=>c?m(e=>!e):w(e=>!e),[c,w,m]);n.useEffect(()=>{const e=e=>{"b"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),b())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[b]);const h=f?"expanded":"collapsed",v=n.useMemo(()=>({state:h,open:f,setOpen:w,isMobile:c,openMobile:d,setOpenMobile:m,toggleSidebar:b}),[h,f,w,c,d,m,b]);return n.createElement(z.Provider,{value:v},n.createElement("div",R({style:{"--sidebar-width":"16rem","--sidebar-width-icon":"3rem",...o},className:u("group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-sidebar",r),ref:i},s),l))});j.displayName="SidebarProvider";const D=n.forwardRef(({side:e="left",variant:t="sidebar",collapsible:a="offcanvas",className:r,children:o,...l},s)=>{const{isMobile:i,state:c,openMobile:d,setOpenMobile:m}=_();return"none"===a?n.createElement("div",R({className:u("flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground",r),ref:s},l),o):i?n.createElement(x,R({open:d,onOpenChange:m},l),n.createElement(k,{"data-sidebar":"sidebar","data-mobile":"true",className:"w-[--sidebar-width] bg-white p-0 text-sidebar-foreground [&>button]:hidden",style:{"--sidebar-width":"18rem"},side:e},n.createElement(S,{className:"sr-only"},n.createElement(C,null,"Sidebar"),n.createElement(A,null,"Displays the mobile sidebar.")),n.createElement("div",{className:"flex h-full w-full flex-col"},o))):n.createElement("div",{ref:s,className:"group peer hidden text-sidebar-foreground md:block","data-state":c,"data-collapsible":"collapsed"===c?a:"","data-variant":t,"data-side":e},n.createElement("div",{className:u("relative w-[--sidebar-width] bg-transparent transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0","group-data-[side=right]:rotate-180","floating"===t||"inset"===t?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]":"group-data-[collapsible=icon]:w-[--sidebar-width-icon]")}),n.createElement("div",R({className:u("fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] transition-[left,right,width] duration-200 ease-linear md:flex","left"===e?"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]":"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]","floating"===t||"inset"===t?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]":"group-data-[collapsible=icon]:w-[--sidebar-width-icon] group-data-[side=left]:border-r group-data-[side=right]:border-l",r)},l),n.createElement("div",{"data-sidebar":"sidebar",className:"flex h-full w-full flex-col bg-white group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow"},o)))});D.displayName="Sidebar";const P=n.forwardRef(({className:e,onClick:t,...a},r)=>{const{toggleSidebar:o}=_();return n.createElement(w,R({ref:r,"data-sidebar":"trigger",className:u(" aspect-square p-2 absolute top-4 left-4 md:hidden ",e),onClick:e=>{t?.(e),o()}},a),n.createElement(p.A,null),n.createElement("span",{className:"sr-only"},"Toggle Sidebar"))});P.displayName="SidebarTrigger";const O=n.forwardRef(({className:e,...t},a)=>n.createElement("div",R({ref:a,"data-sidebar":"header",className:u("flex flex-col gap-2 p-2",e)},t)));O.displayName="SidebarHeader";const L=n.forwardRef(({className:e,...t},a)=>n.createElement("div",R({ref:a,"data-sidebar":"footer",className:u("flex flex-col gap-2 p-2",e)},t)));L.displayName="SidebarFooter";const F=n.forwardRef(({className:e,...t},a)=>n.createElement("div",R({ref:a,"data-sidebar":"content",className:u("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",e)},t)));F.displayName="SidebarContent";const I=n.forwardRef(({className:e,...t},a)=>n.createElement("div",R({ref:a,"data-sidebar":"group",className:u("relative flex w-full min-w-0 flex-col p-2",e)},t)));I.displayName="SidebarGroup";const M=n.forwardRef(({className:e,...t},a)=>n.createElement("div",R({ref:a,"data-sidebar":"group-content",className:u("w-full text-sm",e)},t)));M.displayName="SidebarGroupContent";const $=n.forwardRef(({className:e,...t},a)=>n.createElement("ul",R({ref:a,"data-sidebar":"menu",className:u("flex w-full min-w-0 flex-col gap-1",e)},t)));$.displayName="SidebarMenu";const U=n.forwardRef(({className:e,...t},a)=>n.createElement("li",R({ref:a,"data-sidebar":"menu-item",className:u("group/menu-item relative",e)},t)));U.displayName="SidebarMenuItem";const V=(0,c.F)("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",{variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:!p-0"}},defaultVariants:{variant:"default",size:"default"}}),B=n.forwardRef(({asChild:e=!1,isActive:t=!1,variant:a="default",size:r="default",className:o,...l},s)=>{const c=e?i.DX:"button";return n.createElement(c,R({ref:s,"data-sidebar":"menu-button","data-size":r,"data-active":t,className:u(V({variant:a,size:r}),o)},l))});B.displayName="SidebarMenuButton",n.forwardRef(({className:e,...t},a)=>n.createElement("ul",R({ref:a,"data-sidebar":"menu-sub",className:u("mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5","group-data-[collapsible=icon]:hidden",e)},t))).displayName="SidebarMenuSub";const T=a.p+"29b11b04700dd487d6a4.webp";var Y=a(5042),q=a(1511),X=a(3724);const J=(0,q.v)(e=>{const t=JSON.parse(sessionStorage.getItem("userData")),a=!!t;if(t)try{X.A.defaults.headers.common.Authorization=`Bearer ${t.token}`}catch(t){e({error:`Error decoding token: ${t}`})}return{user:t||null,isAuth:a,login:t=>{e({user:t,isAuth:!0}),sessionStorage.setItem("userData",JSON.stringify(t)),X.A.defaults.headers.common.Authorization=`Bearer ${t.token}`},logout:t=>{e({user:null,isAuth:!1}),sessionStorage.removeItem("userData"),t("/login")}}}),G=({children:e,routes:t})=>{const a=(0,s.zy)(),r=(0,s.Zp)(),o=J(e=>e.logout),l=J(e=>e.user),i=t.filter(e=>e.onSideBar&&(e?.acceptedRoles&&e?.acceptedRoles.includes(l.usertype)||void 0===e?.acceptedRoles)),c=e=>a.pathname===e||a.pathname.startsWith(`${e}/`);return n.createElement(j,null,n.createElement(D,null,n.createElement(O,{className:"p-4 flex flex-col justify-center"},n.createElement("div",{className:"flex items-center"},n.createElement("img",{src:T,alt:"UANL logo",className:"w-8 h-8 aspect-square"}),n.createElement("p",{className:"font-bold text-2xl ml-2"},"Menu")),n.createElement("p",{className:"font-semibold text-sm"},"Bienvenido ",l.name,".")),n.createElement(F,null,n.createElement(I,null,n.createElement(M,null,n.createElement($,null,i.map(e=>n.createElement(U,{key:e.path},n.createElement(B,{asChild:!0,size:"lg",className:`\n transition-colors duration-300\n ${c(e.path)?"bg-sky-500 text-white hover:bg-sky-500":"hover:bg-gray-100"}\n `},n.createElement("a",{href:e.path,className:"font-semibold "+(c(e.path)?"text-white":"text-gray-800")},n.createElement(e.icon,null),n.createElement("span",null,e.title))))))))),n.createElement(L,null,n.createElement(B,{asChild:!0,size:"lg"},n.createElement(w,{onClick:()=>o(r),variant:"ghost"},n.createElement(Y.A,null),n.createElement("span",null,"Cerrar sesión"))))),n.createElement("main",{className:"flex-1"},n.createElement(P,null),e))};var H=a(5977),W=a(1999);function Q(){return Q=Object.assign?Object.assign.bind():function(e){for(var t=1;tn.createElement("div",Q({ref:a,className:u("rounded-xl border bg-card text-card-foreground shadow mt-9 md:mt-0",e)},t)));K.displayName="Card";const Z=n.forwardRef(({className:e,...t},a)=>n.createElement("div",Q({ref:a,className:u("flex flex-col space-y-1.5 p-6",e)},t)));Z.displayName="CardHeader";const ee=n.forwardRef(({className:e,...t},a)=>n.createElement("div",Q({ref:a,className:u("font-semibold leading-none tracking-tight",e)},t)));ee.displayName="CardTitle";const te=n.forwardRef(({className:e,...t},a)=>n.createElement("div",Q({ref:a,className:u("text-sm text-muted-foreground",e)},t)));te.displayName="CardDescription";const ae=n.forwardRef(({className:e,...t},a)=>n.createElement("div",Q({ref:a,className:u("p-6 pt-0",e)},t)));ae.displayName="CardContent";const ne=n.forwardRef(({className:e,...t},a)=>n.createElement("div",Q({ref:a,className:u("flex items-center p-6 pt-0",e)},t)));ne.displayName="CardFooter";const re=({children:e,isOpen:t,setIsOpen:a,title:r,description:o="",fitSize:l=!1})=>{(0,n.useEffect)(()=>{if(t){const e=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=e}}return()=>{document.body.style.overflow="auto"}},[t]);const s=e=>{e.preventDefault(),a(!1)};return n.createElement("div",{className:u("fixed inset-0 bg-black/50 flex items-center justify-center p-4 z-50 transition-opacity duration-300",t?"opacity-100 pointer-events-auto":"opacity-0 pointer-events-none"),onClick:s},n.createElement(K,{onClick:e=>e.stopPropagation(),className:u("transform transition-transform duration-300 flex flex-col",t?"scale-100":"scale-90",l?"w-fit h-fit p-4":"w-full max-w-5xl min-h-[85vh] max-h-[85vh]")},n.createElement(Z,{className:"pb-2 pt-4 shrink-0"},n.createElement(ee,{className:"flex"},n.createElement("p",{className:"flex-grow inline-block text-lg"},r),n.createElement(w,{variant:"ghost",onClick:s},n.createElement(h.A,{size:20}))),n.createElement(te,null,o)),e))};var oe=a(1938),le=a(9785),se=a(8952);const ie=se.Ik({firstName:se.Yj().min(1,{message:"El nombre es obligatorio"}),lastName:se.Yj().min(1,{message:"El apellido es obligatorio"}),email:se.Yj().min(5,{message:"El correo electrónico es muy corto"}).max(50,{message:"El correo electrónico es muy largo"}).email({message:"Dirección de correo electrónico inválida"}),password:se.Yj().min(10,{message:"La contraseña debe tener al menos 10 caracteres"}).max(20,{message:"La contraseña es demasiado larga"}),confirmPassword:se.Yj().min(10,{message:"La contraseña debe tener al menos 10 caracteres"}).max(20,{message:"La contraseña es demasiado larga"})}).refine(e=>e.password===e.confirmPassword,{message:"Las contraseñas no coinciden",path:["confirmPassword"]}),ce=window._env_?.BASE_URL,de=async e=>{try{if(e)return(await X.A.post(`${ce}/api/password-reset/request/`,{email:e})).data}catch(e){if(X.A.isAxiosError(e)&&e.response)throw new Error(e.response.data.error);throw new Error("Error al solicitar cambio de contraseña.")}};var me=a(8465),ue=a.n(me),pe=a(9644);const ge=a.n(pe)()(ue());function fe(e){return ge.fire({title:"¡Error!",icon:"error",text:e,confirmButtonColor:"#002b49"})}function we(e){return ge.fire({title:"¡Éxito!",icon:"success",text:e,confirmButtonColor:"#002b49"})}function be(e,t){return ge.fire({title:e,text:t,icon:"warning",showCancelButton:!0,confirmButtonText:"Si",cancelButtonText:"Cancelar",confirmButtonColor:"#ef4444",cancelButtonColor:"#6b7280"})}var he=a(7444);function ve(){return ve=Object.assign?Object.assign.bind():function(e){for(var t=1;tn.createElement(he.b,ve({ref:a,className:u(xe(),e)},t)));function Ee(){return Ee=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const e=n.useContext(Se),t=n.useContext(Ae),{getFieldState:a,formState:r}=(0,le.xW)(),o=a(e.name,r);if(!e)throw new Error("useFormField should be used within ");const{id:l}=t;return{id:l,name:e.name,formItemId:`${l}-form-item`,formDescriptionId:`${l}-form-item-description`,formMessageId:`${l}-form-item-message`,...o}},ke=le.Op,Se=n.createContext({}),Ce=({...e})=>n.createElement(Se.Provider,{value:{name:e.name}},n.createElement(le.xI,e)),Ae=n.createContext({}),Re=n.forwardRef(({className:e,...t},a)=>{const r=n.useId();return n.createElement(Ae.Provider,{value:{id:r}},n.createElement("div",Ee({ref:a,className:u("space-y-2",e)},t)))});Re.displayName="FormItem";const ze=n.forwardRef(({className:e,...t},a)=>{const{error:r,formItemId:o}=Ne();return n.createElement(ye,Ee({ref:a,className:u(r&&"text-destructive-label",e),htmlFor:o},t))});ze.displayName="FormLabel";const _e=n.forwardRef(({...e},t)=>{const{error:a,formItemId:r,formDescriptionId:o,formMessageId:l}=Ne();return n.createElement(i.DX,Ee({ref:t,id:r,"aria-describedby":a?`${o} ${l}`:`${o}`,"aria-invalid":!!a},e))});_e.displayName="FormControl",n.forwardRef(({className:e,...t},a)=>{const{formDescriptionId:r}=Ne();return n.createElement("p",Ee({ref:a,id:r,className:u("text-[0.8rem] text-muted-foreground",e)},t))}).displayName="FormDescription";const je=n.forwardRef(({className:e,children:t,...a},r)=>{const{error:o,formMessageId:l}=Ne(),s=o?String(o?.message??""):t;return s?n.createElement("p",Ee({ref:r,id:l,className:u("text-[0.8rem] font-medium text-destructive",e)},a),s):null});function De(){return De=Object.assign?Object.assign.bind():function(e){for(var t=1;tn.createElement("input",De({type:t,className:u("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:r},a)));Pe.displayName="Input";var Oe=a(1104);const Le=({alternativeLabel:e,useColorWhite:t=!1})=>n.createElement("div",{role:"status",className:u("flex opacity-80 animate-pulse items-center space-x-1",t?"text-white":"text-indigo-500")},n.createElement(Oe.A,{className:"w-4 h-4 animate-spin"}),n.createElement("span",null,e||"Cargando..."));function Fe(){return Fe=Object.assign?Object.assign.bind():function(e){for(var t=1;t{}})=>{const[t,a]=(0,n.useState)(!1),r=(0,le.mN)({resolver:(0,oe.u)(ie),defaultValues:{firstName:"",lastName:"",email:"",password:"",confirmPassword:""}});return n.createElement(ke,r,n.createElement("form",{onSubmit:r.handleSubmit(async function(t){a(!0);const{email:n,password:o,firstName:l,lastName:s}=t;if(n&&o&&l&&s){try{const t=await(async e=>{const{firstName:t,lastName:a,email:n,password:r}=e;try{return await X.A.post(`${ce}/api/register/`,{name:t,last_name:a,email:n,password:r}),!0}catch(e){if(X.A.isAxiosError(e)&&e.response)throw new Error(e.response.data.error);throw new Error("Error al registrar usuario")}})({email:n,password:o,firstName:l,lastName:s});t&&(we("Usuario creado correctamente").then(e),r.reset())}catch(e){fe(e.message)}a(!1)}}),className:"space-y-2"},n.createElement("div",{className:"grid grid-cols-2 gap-4"},n.createElement(Ce,{control:r.control,name:"firstName",render:({field:e})=>n.createElement(Re,null,n.createElement(ze,{className:"text-gray-700"},"Nombre(s)"),n.createElement(_e,null,n.createElement(Pe,Fe({},e,{className:"bg-white/70 border-gray-300"}))),n.createElement(je,null))}),n.createElement(Ce,{control:r.control,name:"lastName",render:({field:e})=>n.createElement(Re,null,n.createElement(ze,{className:"text-gray-700"},"Apellido(s)"),n.createElement(_e,null,n.createElement(Pe,Fe({},e,{className:"bg-white/70 border-gray-300"}))),n.createElement(je,null))})),n.createElement(Ce,{control:r.control,name:"email",render:({field:e})=>n.createElement(Re,null,n.createElement(ze,{className:"text-gray-700"},"Correo electrónico"),n.createElement(_e,null,n.createElement(Pe,Fe({placeholder:"email@uanl.mx"},e,{className:"bg-white/70 border-gray-300"}))),n.createElement(je,null))}),n.createElement(Ce,{control:r.control,name:"password",render:({field:e})=>n.createElement(Re,null,n.createElement(ze,{className:"text-gray-700"},"Contraseña"),n.createElement(_e,null,n.createElement(Pe,Fe({type:"password",placeholder:"Ingrese contraseña"},e,{className:"bg-white/70 border-gray-300"}))),n.createElement(je,null))}),n.createElement(Ce,{control:r.control,name:"confirmPassword",render:({field:e})=>n.createElement(Re,null,n.createElement(ze,{className:"text-gray-700"},"Confirmar Contraseña"),n.createElement(_e,null,n.createElement(Pe,Fe({type:"password",placeholder:"Ingrese contraseña"},e,{className:"bg-white/70 border-gray-300"}))),n.createElement(je,null))}),n.createElement(w,{disabled:t,className:"w-full text-white bg-sky-600 hover:bg-sky-700 py-2 text-base",type:"submit"},t?n.createElement(Le,null):n.createElement("span",null,"Crear cuenta"))))},Me=(e,t="top-right")=>{o.oR.success(e,{position:t})},$e=(e,t="top-right")=>{o.oR.error(e,{position:t})},Ue=["Doctor","Residente","Admin","Supervisor","Investigador"];var Ve=a(8445),Be=a(2102),Te=a(5107),Ye=a(5773),qe=a(5703);function Xe(){return Xe=Object.assign?Object.assign.bind():function(e){for(var t=1;tn.createElement(qe.PP,Xe({ref:a,className:u("flex cursor-default items-center justify-center py-1",e)},t),n.createElement(Be.A,{className:"h-4 w-4"})));He.displayName=qe.PP.displayName;const We=n.forwardRef(({className:e,...t},a)=>n.createElement(qe.wn,Xe({ref:a,className:u("flex cursor-default items-center justify-center py-1",e)},t),n.createElement(Te.A,{className:"h-4 w-4"})));We.displayName=qe.wn.displayName;const Qe=n.forwardRef(({className:e,children:t,...a},r)=>n.createElement(qe.l9,Xe({ref:r,className:u("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",e)},a),t,n.createElement(qe.In,{asChild:!0},n.createElement(Te.A,{className:"h-4 w-4 opacity-50"}))));Qe.displayName=qe.l9.displayName;const Ke=n.forwardRef(({className:e,children:t,position:a="popper",...r},o)=>n.createElement(qe.ZL,null,n.createElement(qe.UC,Xe({ref:o,className:u("relative z-50 max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-white text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-select-content-transform-origin]","popper"===a&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:a},r),n.createElement(He,null),n.createElement(qe.LM,{className:u("p-1","popper"===a&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]")},t),n.createElement(We,null))));Ke.displayName=qe.UC.displayName;const Ze=n.forwardRef(({className:e,children:t,...a},r)=>n.createElement(qe.q7,Xe({ref:r,className:u("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-gray-100 focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e)},a),n.createElement("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center"},n.createElement(qe.VF,null,n.createElement(Ye.A,{className:"h-4 w-4"}))),n.createElement(qe.p4,null,t)));Ze.displayName=qe.q7.displayName,n.forwardRef(({className:e,...t},a)=>n.createElement(qe.JU,Xe({ref:a,className:u("px-2 py-1.5 text-sm font-semibold",e)},t))).displayName=qe.JU.displayName;const et=({search:e,role:t,status:a,onSearchChange:r,onRoleChange:o,onStatusChange:l,onReset:s})=>n.createElement("div",{className:"bg-white rounded-lg shadow p-4 mb-6"},n.createElement("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4"},n.createElement("div",{className:"relative"},n.createElement("div",{className:"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none"},n.createElement(Ve.A,{className:"h-5 w-5 text-gray-400"})),n.createElement("input",{type:"text",placeholder:"Buscar usuarios...",value:e,onChange:e=>r(e.target.value),className:"block w-full pl-10 pr-3 py-2 border border-gray-300 rounded-md leading-5 bg-white placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500"})),n.createElement("div",null,n.createElement(Je,{value:t,onValueChange:o},n.createElement(Qe,null,n.createElement(Ge,{placeholder:"Selecciona un rol"})),n.createElement(Ke,null,Ue.map((e,t)=>n.createElement(Ze,{key:e,value:(t+1).toString()},e)),n.createElement(Ze,{value:"all"},"Todos los roles")))),n.createElement("div",null,n.createElement(Je,{value:a,onValueChange:l},n.createElement(Qe,null,n.createElement(Ge,{placeholder:"Selecciona un estatus"})),n.createElement(Ke,null,n.createElement(Ze,{value:"all"},"Todos los estatus"),n.createElement(Ze,{value:"active"},"Activo"),n.createElement(Ze,{value:"inactive"},"Inactivo")))),n.createElement("div",null,n.createElement(w,{onClick:s,variant:"outline",className:"w-full px-4 py-2 border border-gray-300 rounded-md text-gray-700 hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500"},"Limpiar filtros"))));var tt=a(250),at=a(7677);function nt(){return nt=Object.assign?Object.assign.bind():function(e){for(var t=1;tn.createElement("div",{className:"relative w-full overflow-auto rounded-lg border shadow-sm"},n.createElement("table",nt({ref:s,className:u("w-full caption-bottom text-sm border-collapse",e)},l)),t&&a&&r&&n.createElement(dt,{paginationData:a,onPageChange:r,pageSize:o})));rt.displayName="Table";const ot=n.forwardRef(({className:e,...t},a)=>n.createElement("thead",nt({ref:a,className:u("[&_tr]:border-b bg-sky-500 hover:bg-sky-500",e)},t)));ot.displayName="TableHeader";const lt=n.forwardRef(({className:e,...t},a)=>n.createElement("tbody",nt({ref:a,className:u("[&_tr:last-child]:border-0 divide-y divide-gray-200",e)},t)));lt.displayName="TableBody";const st=n.forwardRef(({className:e,...t},a)=>n.createElement("tr",nt({ref:a,className:u("transition-colors hover:bg-indigo-50 duration-200 even:bg-gray-50",e)},t)));st.displayName="TableRow";const it=n.forwardRef(({className:e,...t},a)=>n.createElement("th",nt({ref:a,className:u("h-12 px-4 text-left align-middle font-semibold text-gray-50",e)},t)));it.displayName="TableHead";const ct=n.forwardRef(({className:e,...t},a)=>n.createElement("td",nt({ref:a,className:u("p-4 align-middle text-gray-700",e)},t)));ct.displayName="TableCell";const dt=({paginationData:e,onPageChange:t,pageSize:a})=>{const{count:r,next:o,previous:l}=e,s=l?new URL(l).searchParams.get("page")?Number(new URL(l).searchParams.get("page"))+1:2:1,i=(s-1)*a+1,c=Math.min(s*a,r);return n.createElement("div",{className:"flex items-center justify-between p-2 border-t bg-gray-50"},n.createElement("span",{className:"text-sm text-gray-600"},"Mostrando ",i," - ",c," de ",r," resultados"),n.createElement("div",{className:"flex items-center gap-2"},n.createElement(w,{variant:"outline",size:"sm",onClick:()=>l&&t(l),disabled:!l},n.createElement(tt.A,{className:"h-4 w-4 mr-1"}),"Anterior"),n.createElement(w,{variant:"outline",size:"sm",onClick:()=>o&&t(o),disabled:!o},"Siguiente",n.createElement(at.A,{className:"h-4 w-4 ml-1"}))))};var mt=a(5892),ut=a(1839);const pt=({user:e,isEditing:t,draftData:a,onEdit:r,onCancel:o,onConfirm:l,onFieldChange:s,onRoleChange:i,onActivate:c,onSoftDelete:d})=>n.createElement(st,null,n.createElement(ct,null,n.createElement("div",{className:"flex items-center"},n.createElement("div",{className:"flex-shrink-0 h-10 w-10 rounded-full bg-indigo-100 flex items-center justify-center"},n.createElement("span",{className:"text-indigo-800 font-medium"},e.name?.[0],e.last_name?.[0])),n.createElement("div",{className:"ml-4 flex-grow"},t?n.createElement("div",{className:"space-y-2"},n.createElement("input",{className:"block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm p-2 border",value:a?.name??e.name??"",onChange:t=>s(e.id,"name",t.target.value),placeholder:"Nombre"}),n.createElement("input",{className:"block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm p-2 border",value:a?.last_name??e.last_name??"",onChange:t=>s(e.id,"last_name",t.target.value),placeholder:"Apellido"})):n.createElement("div",{className:"text-sm font-medium text-gray-900"},e.name," ",e.last_name)))),n.createElement(ct,{className:"px-6 py-4 whitespace-nowrap"},t?n.createElement("input",{className:"block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm p-2 border",value:a?.email??e.email??"",onChange:t=>s(e.id,"email",t.target.value),placeholder:"Email"}):n.createElement("div",{className:"text-sm text-gray-900"},e.email)),n.createElement(ct,{className:"px-6 py-4 whitespace-nowrap"},n.createElement(Je,{value:e?.user_type?e?.user_type.toString():"",onValueChange:t=>i(e.id,Number(t)||0)},n.createElement(Qe,null,n.createElement(Ge,{placeholder:"Seleccionar rol"})),n.createElement(Ke,null,Ue.map((e,t)=>n.createElement(Ze,{key:e,value:(t+1).toString()},e))))),n.createElement(ct,{className:"px-6 py-4 whitespace-nowrap"},n.createElement("span",{className:"px-2 inline-flex text-xs leading-5 font-semibold rounded-full "+(e.is_user_active?"bg-green-100 text-green-800":"bg-gray-100 text-gray-800")},e.is_user_active?"Activo":"Inactivo")),n.createElement(ct,{className:"px-6 py-4 whitespace-nowrap text-sm font-medium"},t?n.createElement("div",{className:"flex space-x-2"},n.createElement(w,{variant:"ghost",size:"icon",onClick:()=>l(e.id),className:"text-green-600 hover:text-green-900 p-1 rounded-full hover:bg-green-100",title:"Confirmar"},n.createElement(Ye.A,{className:"h-5 w-5"})),n.createElement(w,{variant:"ghost",size:"icon",onClick:()=>o(e.id),className:"text-gray-600 hover:text-gray-900 p-1 rounded-full hover:bg-gray-100",title:"Cancelar"},n.createElement(h.A,{className:"h-5 w-5"}))):n.createElement("div",{className:"flex space-x-2"},n.createElement(w,{variant:"ghost",size:"icon",onClick:()=>r(e.id),className:"text-indigo-600 hover:text-indigo-900 p-1 rounded-full hover:bg-indigo-100",title:"Editar"},n.createElement(mt.A,{className:"h-5 w-5"})),e.is_user_active?n.createElement(w,{variant:"ghost",size:"icon",onClick:()=>d(e.id),className:"text-red-600 hover:text-red-900 p-1 rounded-full hover:bg-red-100",title:"Desactivar"},n.createElement(ut.A,{className:"h-5 w-5"})):n.createElement(w,{variant:"ghost",size:"icon",onClick:()=>c(e.id),className:"text-green-600 hover:text-green-900 p-1 rounded-full hover:bg-green-100",title:"Activar"},n.createElement(W.A,{className:"h-5 w-5"}))))),gt=e=>{const{users:t,onResetFilters:a}=e;return 0===t.length?n.createElement("div",{className:"bg-white shadow rounded-lg p-12 text-center"},n.createElement("div",{className:"flex flex-col items-center justify-center"},n.createElement("svg",{className:"h-12 w-12 text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},n.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9.172 16.172a4 4 0 015.656 0M9 10h.01M15 10h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})),n.createElement("h3",{className:"mt-2 text-sm font-medium text-gray-900"},"Sin usuarios encontrados"),n.createElement("p",{className:"mt-1 text-sm text-gray-500"},"Intenta ajustar tu búsqueda o filtro."),n.createElement(w,{onClick:a,className:"mt-4 inline-flex items-center px-4 py-2 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500"},"Limpiar filtros"))):n.createElement("div",{className:"bg-white shadow overflow-hidden rounded-lg"},n.createElement("div",{className:"overflow-x-auto"},n.createElement(rt,null,n.createElement(ot,null,n.createElement(st,null,n.createElement(it,null,"Nombre"),n.createElement(it,null,"Correo electrónico"),n.createElement(it,null,"Rol"),n.createElement(it,null,"Estatus"),n.createElement(it,null,"Acciones"))),n.createElement(lt,null,t.map(t=>n.createElement(pt,{key:t.id,user:t,isEditing:e.editingUserId===t.id,draftData:e.localEdits[t.id],onEdit:e.onEdit,onCancel:e.onCancel,onConfirm:e.onConfirm,onFieldChange:e.onFieldChange,onRoleChange:e.onRoleChange,onActivate:e.onActivate,onSoftDelete:e.onSoftDelete}))))))},ft=se.Ik({email:se.Yj().min(5,{message:"El correo electrónico es muy corto"}).max(50,{message:"El correo electrónico es muy largo"}).email({message:"Dirección de correo electrónico inválida"}),password:se.Yj().min(10,{message:"La contraseña debe tener al menos 10 caracteres"}).max(20,{message:"La contraseña es demasiado larga"})});function wt(){return wt=Object.assign?Object.assign.bind():function(e){for(var t=1;tn.createElement("a",wt({ref:a,className:u("font-semibold pt-1 text-sm hover:underline transition-colors text-indigo-500 hover:text-indigo-600",e)},t)));bt.displayName="Link";const ht=a.p+"7f187108befa90c8c389.webp",vt=a.p+"775d5f670ce1e6f57965.webp",xt=a.p+"a8eb7ac4c5ff00e7ced1.webp";function yt(){return yt=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const[e,t]=(0,n.useState)(!1),a=J(e=>e.login),r=(0,s.Zp)(),l=(0,le.mN)({resolver:(0,oe.u)(ft),defaultValues:{email:"",password:""}});return n.createElement("div",{className:"min-h-screen flex items-center justify-center",style:{backgroundImage:`url(${vt})`,backgroundSize:"cover",backgroundPosition:"center",backgroundAttachment:"fixed"}},n.createElement("div",{className:"absolute inset-0 bg-black bg-opacity-40 backdrop-blur-sm"}),n.createElement(K,{className:"w-4/5 max-w-5xl h-[600px] flex p-0 bg-white backdrop-blur-md border-0 overflow-hidden"},n.createElement("div",{className:"w-1/2 flex flex-col p-8"},n.createElement("div",{className:"mb-2 w-full flex justify-center"},n.createElement("img",{src:ht,alt:"uanlLogo",className:"h-32"})),n.createElement("div",{className:"flex-1"},n.createElement(Z,{className:"text-left p-0 mb-2"},n.createElement(ee,{className:"font-bold text-3xl text-gray-800"},"Bienvenido")),n.createElement(ae,{className:"p-0"},n.createElement(ke,l,n.createElement("form",{onSubmit:l.handleSubmit(async e=>{t(!0);const{email:n,password:l}=e;if(n&&l){try{const e=await(async e=>{const{email:t,password:a}=e;try{return(await X.A.post(`${ce}/api/login/`,{email:t,password:a})).data}catch(e){if(X.A.isAxiosError(e)&&e.response)throw new Error(e.response.data.error);throw new Error("Error al iniciar sesión")}})({email:n,password:l});a(e),e&&we("Sesion iniciada correctamente").then(()=>{r("/")})}catch(e){((e,t="top-right")=>{o.oR.warn(e,{position:t})})(e.message,"bottom-center")}t(!1)}}),className:"space-y-6"},n.createElement(Ce,{control:l.control,name:"email",render:({field:e})=>n.createElement(Re,null,n.createElement(ze,{className:"text-gray-700"},"Correo electrónico"),n.createElement(_e,null,n.createElement(Pe,yt({placeholder:"email@uanl.mx"},e,{className:"bg-white/70 border-gray-300"}))),n.createElement(je,null))}),n.createElement(Ce,{control:l.control,name:"password",render:({field:e})=>n.createElement(Re,null,n.createElement(ze,{className:"text-gray-700"},"Contraseña"),n.createElement(_e,null,n.createElement(Pe,yt({type:"password",placeholder:"Ingrese su contraseña"},e,{className:"bg-white/70 border-gray-300"}))),n.createElement(je,null))}),n.createElement(w,{disabled:e,className:"w-full text-white bg-sky-600 hover:bg-sky-700 py-6 text-base",type:"submit"},e?n.createElement(Le,{useColorWhite:!0}):n.createElement("span",null,"Ingresar")))),n.createElement("div",{className:"text-center mt-6"},n.createElement(bt,{href:"/resetpsw",className:"text-gray-600 hover:text-sky-800 text-sm transition-colors"},"Olvide mi contraseña"))))),n.createElement("div",{className:"w-1/2 bg-cover bg-center",style:{backgroundImage:`url(${xt})`,backgroundSize:"90%",backgroundRepeat:"no-repeat"}},n.createElement("div",{className:"h-full w-full"}))))},path:"/login",isPrivate:!1,showSideBar:!1},{element:function(){const{state:e,actions:t}=(()=>{const[e,t]=(0,n.useState)([]),[a,r]=(0,n.useState)(!1),[o,l]=(0,n.useState)(null),[s,i]=(0,n.useState)(""),[c,d]=(0,n.useState)("all"),[m,u]=(0,n.useState)("all"),[p,g]=(0,n.useState)(null),[f,w]=(0,n.useState)({});(0,n.useEffect)(()=>{b()},[]);const b=async()=>{r(!0),l(null);try{const e=await(async()=>(await X.A.get(`${ce}/api/users/`)).data)();t(e)}catch{l("Failed to load users")}finally{r(!1)}},h=(0,n.useMemo)(()=>{let t=e;if("all"!==c&&(t=t.filter(e=>e?.user_type?.toString()===c)),"all"!==m){const e="active"===m;t=t.filter(t=>t.is_user_active===e)}const a=s.trim();if(!a)return t;const n=Number(a);if(!Number.isNaN(n)&&a.match(/^\d+$/))return t.filter(e=>e.id===n||`${e.id}`.includes(a));const r=a.toLowerCase();return t.filter(e=>[e.name??"",e.last_name??"",e.email??""].join(" ").toLowerCase().includes(r))},[s,e,c,m]);return{state:{users:h,loading:a,error:o,editingUserId:p,localEdits:f,filters:{search:s,role:c,status:m}},actions:{fetchUsers:b,setSearch:i,setRoleFilter:d,setStatusFilter:u,handleResetFilters:()=>{i(""),d("all"),u("all")},handleStartEdit:t=>{g(t);const a=e.find(e=>e.id===t);a&&w(e=>({...e,[t]:{...a}}))},handleCancelEdit:e=>{g(null),w(t=>{const a={...t};return delete a[e],a})},handleChangeEditField:(e,t,a)=>{w(n=>({...n,[e]:{...n[e]??{},[t]:a}}))},handleConfirmEdit:async a=>{const n=f[a];if(!n)return;const r=e.find(e=>e.id===a);if(r){t(e=>e.map(e=>e.id===a?{...e,...n}:e)),g(null),w(e=>{const t={...e};return delete t[a],t});try{await(async(e,t)=>{await X.A.patch(`${ce}/api/users/${e}/update/`,t)})(a,n),Me("Guardado","top-right")}catch{t(e=>e.map(e=>e.id===a?r:e)),$e("Fallo en edicion.")}}},handleSoftDelete:async a=>{const n=e.find(e=>e.id===a);if(!n)return;if(!(await be(`Desactivar ${n.name??n.id}?`,"Desactivando este usuario perdera acceso al sistema.")).isConfirmed)return;const r=[...e];t(e=>e.map(e=>e.id===a?{...e,is_user_active:!1}:e));try{await(async e=>{await X.A.delete(`${ce}/api/users/${e}/softdelete/`)})(a),Me("Desactivado")}catch{t(r),$e("No se pudo desactivar el usuario.")}},handleActivate:async a=>{const n=e.find(e=>e.id===a);if(!n)return;if(!(await be(`Activar ${n.name??n.id}?`,"Al activar el usuario tendra acceso al sistema.")).isConfirmed)return;const r=[...e];t(e=>e.map(e=>e.id===a?{...e,is_user_active:!0}:e));try{await(async e=>{await X.A.patch(`${ce}/api/users/${e}/activate/`,{})})(a),Me("Activado")}catch{t(r),$e("No se pudo activar el usuario.")}},handleChangeRole:async(a,n)=>{const r=e.find(e=>e.id===a);if(!r)return;const o=Ue[Math.max(n-1,0)],l=Ue[r.user_type-1]??"Sin Rol";if(!(await be(`Cambiar rol para ${r.name??r.id}?`,`Rol va a ser cambiado de "${l}" a "${o}". ¿Continuar?`)).isConfirmed)return;const s=[...e];t(e=>e.map(e=>e.id===a?{...e,user_type:n}:e));try{await(async(e,t)=>{await X.A.patch(`${ce}/api/users/${e}/role/`,{user_type:t})})(a,n.toString()),Me("Rol actualizado.")}catch{t(s),$e("Error al actualizar el rol.")}}}}})(),[a,r]=(0,n.useState)(!1);return n.createElement("div",{className:"p-6 min-h-screen bg-zinc-50"},n.createElement("div",{className:"flex justify-between items-center mb-6"},n.createElement("div",null,n.createElement("h1",{className:"text-2xl font-bold text-gray-900"},"Gestión de usuarios"),n.createElement("p",{className:"text-sm text-gray-500 mt-1"},"Gestiona usuarios y sus permisos.")),n.createElement("div",{className:"space-x-2"},n.createElement(w,{onClick:()=>t.fetchUsers(),className:"bg-sky-600 text-white hover:bg-sky-700"},n.createElement(H.A,{className:"w-5 h-5"}),"Actualizar"),n.createElement(w,{onClick:()=>r(!0),className:"bg-sky-600 text-white hover:bg-sky-700"},n.createElement(W.A,{className:"w-5 h-5"}),"Registrar"))),n.createElement(et,{search:e.filters.search,role:e.filters.role,status:e.filters.status,onSearchChange:t.setSearch,onRoleChange:t.setRoleFilter,onStatusChange:t.setStatusFilter,onReset:t.handleResetFilters}),e.loading?n.createElement("div",{className:"flex justify-center items-center h-64"},n.createElement(Le,null)):e.error?n.createElement("div",{className:"bg-red-50 p-4 rounded-md mb-6"},n.createElement("div",{className:"flex"},n.createElement("div",{className:"flex-shrink-0"},n.createElement("svg",{className:"h-5 w-5 text-red-400",viewBox:"0 0 20 20",fill:"currentColor"},n.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z",clipRule:"evenodd"}))),n.createElement("div",{className:"ml-3"},n.createElement("h3",{className:"text-sm font-medium text-red-800"},e.error)))):n.createElement(gt,{users:e.users,editingUserId:e.editingUserId,localEdits:e.localEdits,onEdit:t.handleStartEdit,onCancel:t.handleCancelEdit,onConfirm:t.handleConfirmEdit,onFieldChange:t.handleChangeEditField,onRoleChange:t.handleChangeRole,onActivate:t.handleActivate,onSoftDelete:t.handleSoftDelete,onResetFilters:t.handleResetFilters}),n.createElement(re,{isOpen:a,setIsOpen:()=>r(!1),title:"Registrar nuevo usuario",fitSize:!0},n.createElement(ae,null,n.createElement(Ie,{onSave:()=>r(!1)}))))},path:"/users",isPrivate:!0,onSideBar:!0,title:"Usuarios",showSideBar:!0,icon:()=>n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"},n.createElement("path",{d:"M9.5 12c2.206 0 4-1.794 4-4s-1.794-4-4-4-4 1.794-4 4 1.794 4 4 4zm1.5 1H8c-3.309 0-6 2.691-6 6v1h15v-1c0-3.309-2.691-6-6-6z"}),n.createElement("path",{d:"M16.604 11.048a5.67 5.67 0 0 0 .751-3.44c-.179-1.784-1.175-3.361-2.803-4.44l-1.105 1.666c1.119.742 1.8 1.799 1.918 2.974a3.693 3.693 0 0 1-1.072 2.986l-1.192 1.192 1.618.475C18.951 13.701 19 17.957 19 18h2c0-1.789-.956-5.285-4.396-6.952z"})),acceptedRoles:["admin"]},{element:function(){const[e,t]=(0,n.useState)(null),[a,r]=(0,n.useState)(null),[o,l]=(0,n.useState)(0),[s,i]=(0,n.useState)(0),{register:c,handleSubmit:d,formState:m,setValue:u,watch:p}=(0,le.mN)(),g=p("email");return(0,n.useEffect)(()=>{const e=localStorage.getItem("lastPasswordResetAttempt");if(e){const t=JSON.parse(e);r(t);const a=Date.now()-t.timestamp,n=Math.max(0,6e5-a);n>0?(l(Math.floor(n/1e3)),u("email",t.email)):(localStorage.removeItem("lastPasswordResetAttempt"),r(null));const o=t.resendCooldown||0,s=Math.max(0,o-Date.now());s>0&&i(Math.floor(s/1e3))}},[u]),(0,n.useEffect)(()=>{let e;return o>0&&(e=setInterval(()=>{l(t=>t<=1?(clearInterval(e),localStorage.removeItem("lastPasswordResetAttempt"),r(null),0):t-1)},1e3)),()=>clearInterval(e)},[o]),(0,n.useEffect)(()=>{let e;return s>0&&(e=setInterval(()=>{i(t=>t<=1?(clearInterval(e),0):t-1)},1e3)),()=>clearInterval(e)},[s]),n.createElement("div",{className:"min-h-screen flex items-center justify-center bg-gradient-to-br from-slate-50 to-slate-100 p-4"},n.createElement("div",{className:"absolute top-6 left-6"},n.createElement(w,{variant:"ghost",className:"flex items-center gap-2 text-slate-600 hover:text-slate-800 transition-colors",onClick:()=>window.location.assign("/")},n.createElement(Et.A,{size:16}),"Volver al inicio")),n.createElement(K,{className:"w-full max-w-md shadow-xl rounded-2xl overflow-hidden border-0"},n.createElement("div",{className:"bg-gradient-to-r from-sky-600 to-blue-600 h-2 w-full"}),n.createElement(Z,{className:"space-y-4 pb-6 text-center"},n.createElement("div",{className:"mx-auto bg-sky-100 p-3 rounded-full w-fit"},n.createElement(Nt.A,{className:"h-8 w-8 text-sky-600"})),n.createElement(ee,{className:"text-2xl font-bold text-slate-800"},o>0?"Enlace enviado":"¿Olvidaste tu contraseña?"),n.createElement(te,{className:"text-slate-500 text-base"},"Ingresa tu correo electrónico y te enviaremos un enlace para restablecer tu contraseña")),n.createElement(ae,null,n.createElement("form",{onSubmit:d(async e=>{t(null);try{const a=await de(e.email);t(a?.message||"Se envió un email para cambiar la contraseña.");const n={email:e.email,timestamp:Date.now()};localStorage.setItem("lastPasswordResetAttempt",JSON.stringify(n)),r(n),l(1800)}catch(e){fe(e.detail||e.message||"No se pudo solicitar el reseteo")}}),className:"space-y-5"},n.createElement("div",{className:"space-y-2"},n.createElement(ye,{htmlFor:"email",className:"text-slate-700 text-sm font-medium"},"Correo electrónico"),n.createElement(Pe,kt({id:"email",type:"email",placeholder:"tucorreo@uanl.mx",className:"py-5 px-4 rounded-lg border-slate-300 focus:border-sky-500 transition-colors",disabled:o>0},c("email",{required:!0,pattern:/^\S+@\S+\.\S+$/}))),o>0&&a&&n.createElement("p",{className:"text-xs text-slate-500 mt-1"},"Se envió un enlace a: ",n.createElement("span",{className:"font-medium"},a.email))),e&&n.createElement("div",{className:"p-3 rounded-lg text-sm bg-green-100 text-green-700"},e),n.createElement(w,{type:"submit",disabled:m.isSubmitting||o>0||!g,className:"w-full py-5 rounded-lg bg-sky-600 hover:bg-sky-700 transition-colors font-medium text-white shadow-md hover:shadow-lg disabled:bg-slate-300 disabled:text-slate-500 disabled:cursor-not-allowed"},m.isSubmitting?n.createElement(n.Fragment,null,n.createElement(Oe.A,{className:"mr-2 h-4 w-4 animate-spin"}),"Enviando..."):o>0?n.createElement(n.Fragment,null,"Se ha enviado el correo de recuperación"):"Enviar enlace de recuperación"),o>0&&n.createElement("div",{className:"mt-6 text-center text-sm text-slate-500"},"¿No recibiste el correo?"," ",n.createElement("button",{type:"button",disabled:s>0,className:"text-sky-600 hover:text-sky-800 font-medium underline-offset-4 hover:underline transition-colors disabled:text-slate-400 disabled:cursor-not-allowed",onClick:async()=>{if(a&&!(s>0))try{await de(a.email),t("Se reenvió el enlace de recuperación a tu correo.");const e={...a,resendCooldown:Date.now()+18e4};localStorage.setItem("lastPasswordResetAttempt",JSON.stringify(e)),r(e),i(180)}catch(e){fe(e.detail||e.message||"No se pudo reenviar el correo")}}},s>0?`Reenviar en ${(e=>{const t=e%60;return`${Math.floor(e/60).toString().padStart(2,"0")}:${t.toString().padStart(2,"0")}`})(s)}`:"Reenviar enlace"))))))},path:"/resetpsw",isPrivate:!1,showSideBar:!1},{element:function(){const e=new URLSearchParams((0,s.zy)().search),t=e.get("uid")||"",a=e.get("token")||"",r=(0,s.Zp)(),[o,l]=(0,n.useState)(!(!t||!a)),[i,c]=(0,n.useState)(null),[d,m]=(0,n.useState)(null),{register:u,handleSubmit:p,setError:g,formState:f}=(0,le.mN)({defaultValues:{newPassword:"",confirm:""}});return(0,n.useEffect)(()=>{!async function(){if(!t||!a)return l(!1),void c(null);try{const e=await(async(e,t)=>{try{if(e&&t)return(await X.A.get(`${ce}/api/password-reset/validate/`,{params:{uid:e,token:t}})).data}catch(e){if(X.A.isAxiosError(e)&&e.response)throw new Error(e.response.data.error);throw new Error("Error al solicitar cambio de contraseña.")}})(t,a);e?.valid?c(!0):fe(e?.detail??"URL invalido.")}catch{c(!1)}finally{l(!1)}}()},[t,a]),o?n.createElement("div",{className:"min-h-screen flex items-center justify-center bg-gradient-to-br from-slate-50 to-slate-100 p-4"},n.createElement("div",{className:"absolute top-6 left-6"},n.createElement(w,{variant:"ghost",className:"flex items-center gap-2 text-slate-600 hover:text-slate-800 transition-colors",onClick:()=>window.location.assign("/")},n.createElement(Et.A,{size:16}),"Volver al inicio")),n.createElement(K,{className:"w-full max-w-md shadow-xl rounded-2xl overflow-hidden border-0"},n.createElement("div",{className:"bg-gradient-to-r from-amber-600 to-orange-600 h-2 w-full"}),n.createElement(Z,{className:"space-y-6 pb-6 text-center"},n.createElement("div",{className:"mx-auto bg-amber-100 p-4 rounded-full w-fit"},n.createElement(Oe.A,{className:"h-10 w-10 text-amber-600 animate-spin"})),n.createElement(ee,{className:"text-2xl font-bold text-slate-800"},"Validando enlace"),n.createElement(te,{className:"text-slate-500 text-base"},"Por favor espera mientras verificamos tu enlace de recuperación.")),n.createElement(ae,{className:"flex justify-center"},n.createElement("div",{className:"w-3/4 h-1.5 bg-slate-200 rounded-full overflow-hidden"},n.createElement("div",{className:"h-full bg-amber-500 rounded-full animate-pulse"}))))):t&&a&&!1===i?n.createElement("div",{className:"min-h-screen flex items-center justify-center bg-gradient-to-br from-slate-50 to-slate-100 p-4"},n.createElement("div",{className:"absolute top-6 left-6"},n.createElement(w,{variant:"ghost",className:"flex items-center gap-2 text-slate-600 hover:text-slate-800 transition-colors",onClick:()=>window.location.assign("/")},n.createElement(Et.A,{size:16}),"Volver al inicio")),n.createElement(K,{className:"w-full max-w-md shadow-xl rounded-2xl overflow-hidden border-0"},n.createElement("div",{className:"bg-gradient-to-r from-rose-600 to-red-600 h-2 w-full"}),n.createElement(Z,{className:"space-y-6 pb-6 text-center"},n.createElement("div",{className:"mx-auto bg-rose-100 p-4 rounded-full w-fit"},n.createElement(St.A,{className:"h-10 w-10 text-rose-600"})),n.createElement(ee,{className:"text-2xl font-bold text-slate-800"},"Enlace inválido o expirado"),n.createElement(te,{className:"text-slate-500 text-base"},"El enlace para restablecer la contraseña es inválido o ya expiró.")),n.createElement(ae,{className:"space-y-4"},n.createElement("div",{className:"bg-rose-50 border border-rose-200 rounded-lg p-4 text-rose-700 text-sm"},n.createElement("p",null,"Si necesitas restablecer tu contraseña, solicita un nuevo enlace.")),n.createElement("div",{className:"flex flex-col sm:flex-row gap-3 pt-2"},n.createElement(w,{variant:"outline",onClick:()=>window.location.assign("/"),className:"flex-1 py-5 border-slate-300 text-slate-700 hover:bg-slate-100"},"Volver al inicio"))))):t&&a&&!0===i?n.createElement("div",{className:"min-h-screen flex items-center justify-center bg-gradient-to-br from-slate-50 to-slate-100 p-4"},n.createElement("div",{className:"absolute top-6 left-6"},n.createElement(w,{variant:"ghost",className:"flex items-center gap-2 text-slate-600 hover:text-slate-800 transition-colors",onClick:()=>window.location.assign("/")},n.createElement(Et.A,{size:16}),"Volver al inicio")),n.createElement(K,{className:"w-full max-w-md shadow-xl rounded-2xl overflow-hidden border-0"},n.createElement("div",{className:"bg-gradient-to-r from-sky-600 to-blue-600 h-2 w-full"}),n.createElement(Z,{className:"space-y-6 pb-6 text-center"},n.createElement("div",{className:"mx-auto bg-sky-100 p-4 rounded-full w-fit"},n.createElement(Ct.A,{className:"h-10 w-10 text-sky-600"})),n.createElement(ee,{className:"text-2xl font-bold text-slate-800"},"Restablecer contraseña"),n.createElement(te,{className:"text-slate-500 text-base"},"Crea una nueva contraseña segura para tu cuenta.")),n.createElement(ae,null,n.createElement("form",{onSubmit:p(async function(e){if(m(null),e.newPassword===e.confirm)try{await(async(e,t,a)=>{try{if(e&&t&&a)return(await X.A.post(`${ce}/api/password-reset/reset/`,{uid:e,token:t,newPassword:a})).data}catch(e){if(X.A.isAxiosError(e)&&e.response)throw new Error(e.response.data.error);throw new Error("Error al solicitar cambio de contraseña.")}})(t,a,e.newPassword),m("Contraseña restablecida correctamente. Redirigiendo al inicio..."),setTimeout(()=>r("/login",{replace:!0}),1200)}catch(e){fe(e.detail||e.message||"No se pudo restablecer la contraseña")}else fe("Las contraseñas no coinciden")}),className:"space-y-5"},n.createElement("div",{className:"space-y-2"},n.createElement(ye,{className:"text-slate-700 text-sm font-medium"},"Nueva contraseña",n.createElement("span",{className:"text-slate-400 text-xs ml-1"},"(mínimo 10 caracteres)")),n.createElement(Pe,At({type:"password",placeholder:"Escribe una contraseña segura",className:"py-5 px-4 rounded-lg border-slate-300 focus:border-sky-500 transition-colors"},u("newPassword",{required:!0,minLength:10})))),n.createElement("div",{className:"space-y-2"},n.createElement(ye,{className:"text-slate-700 text-sm font-medium"},"Confirmar contraseña"),n.createElement(Pe,At({type:"password",placeholder:"Repite la contraseña",className:"py-5 px-4 rounded-lg border-slate-300 focus:border-sky-500 transition-colors"},u("confirm",{required:!0,minLength:10})))),d&&n.createElement("div",{className:"p-3 rounded-lg text-sm bg-sky-100 text-sky-700"},d),n.createElement(w,{type:"submit",disabled:f.isSubmitting,className:"w-full py-5 rounded-lg bg-sky-600 hover:bg-sky-700 transition-colors font-medium text-white shadow-md hover:shadow-lg"},f.isSubmitting?n.createElement(n.Fragment,null,n.createElement(Oe.A,{className:"mr-2 h-4 w-4 animate-spin"}),"Guardando..."):"Guardar contraseña"),n.createElement("div",{className:"pt-2 text-center"},n.createElement(w,{variant:"ghost",onClick:()=>window.location.assign("/"),className:"text-slate-600 hover:text-slate-800"},"Cancelar")))))):void 0},path:"/resetpswform",isPrivate:!1,showSideBar:!1}],zt=se.Ik({name:se.Yj().min(1,{message:"El nombre completo es requerido."}).max(100,{message:"El nombre completo no puede exceder los 100 caracteres."}),registerNumber:se.Yj().min(1,{message:"El número de Registro es requerido."}).max(50,{message:"El número de Registro no puede exceder los 50 caracteres."}),dob:se.Yj().refine(e=>e&&!isNaN(Date.parse(e)),{message:"La fecha de nacimiento es requerida y debe ser válida."}).refine(e=>new Date(e)<=new Date,{message:"La fecha de nacimiento no puede ser en el futuro."}),sex:se.Yj().min(1,{message:"Debe seleccionar un sexo."}).refine(e=>["man","woman"].includes(e),{message:"El sexo debe de tener una opcion entre Hombre o Mujer"})}),_t=()=>n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"},n.createElement("path",{d:"M4.5 8.552c0 1.995 1.505 3.5 3.5 3.5s3.5-1.505 3.5-3.5-1.505-3.5-3.5-3.5-3.5 1.505-3.5 3.5zM19 8h-2v3h-3v2h3v3h2v-3h3v-2h-3zM4 19h10v-1c0-2.757-2.243-5-5-5H7c-2.757 0-5 2.243-5 5v1h2z"})),jt=window._env_?.BASE_URL,Dt=async e=>{try{return(await X.A.get(`${jt}/api/patientSearch/`,{params:{q:e}})).data}catch(e){if(X.A.isAxiosError(e)&&e.response)throw new Error(e.response.data.error);throw new Error("Error al consultar los pacientes")}};var Pt=a(1394),Ot=a(5313),Lt=a(6953),Ft=a(2307),It=a(193);function Mt(){return Mt=Object.assign?Object.assign.bind():function(e){for(var t=1;tn.createElement(It.ZL,null,n.createElement(It.UC,Mt({ref:o,align:t,sideOffset:a,className:u("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-popover-content-transform-origin]",e)},r)))));Vt.displayName=It.UC.displayName;var Bt=a(1207),Tt=a(9226);function Yt(){return Yt=Object.assign?Object.assign.bind():function(e){for(var t=1;tsvg]:rotate-180`,String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,e),captionLayout:r,formatters:{formatMonthDropdown:e=>e.toLocaleString("default",{month:"short"}),...l},classNames:{root:u("w-fit",c.root),months:u("flex gap-4 flex-col md:flex-row relative",c.months),month:u("flex flex-col w-full gap-4",c.month),nav:u("flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between",c.nav),button_previous:u(f({variant:o}),"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",c.button_previous),button_next:u(f({variant:o}),"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",c.button_next),month_caption:u("flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)",c.month_caption),dropdowns:u("w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5",c.dropdowns),dropdown_root:u("relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md",c.dropdown_root),dropdown:u("absolute inset-0 opacity-0",c.dropdown),caption_label:u("select-none font-medium","label"===r?"text-sm":"rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5",c.caption_label),table:"w-full border-collapse",weekdays:u("flex",c.weekdays),weekday:u("text-muted-foreground rounded-md flex-1 font-normal text-[0.8rem] select-none",c.weekday),week:u("flex w-full mt-2",c.week),week_number_header:u("select-none w-(--cell-size)",c.week_number_header),week_number:u("text-[0.8rem] select-none text-muted-foreground",c.week_number),day:u("relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none",c.day),range_start:u("rounded-l-md bg-accent",c.range_start),range_middle:u("rounded-none",c.range_middle),range_end:u("rounded-r-md bg-accent",c.range_end),today:u("bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",c.today),outside:u("text-muted-foreground aria-selected:text-muted-foreground",c.outside),disabled:u("text-muted-foreground opacity-50",c.disabled),hidden:u("invisible",c.hidden),...t},components:{Root:({className:e,rootRef:t,...a})=>n.createElement("div",Yt({"data-slot":"calendar",ref:t,className:u(e)},a)),Chevron:({className:e,orientation:t,...a})=>"left"===t?n.createElement(tt.A,Yt({className:u("size-4",e)},a)):"right"===t?n.createElement(at.A,Yt({className:u("size-4",e)},a)):n.createElement(Te.A,Yt({className:u("size-4",e)},a)),DayButton:Xt,WeekNumber:({children:e,...t})=>n.createElement("td",t,n.createElement("div",{className:"flex size-(--cell-size) items-center justify-center text-center"},e)),...s}},i))}function Xt({className:e,day:t,modifiers:a,...r}){const o=(0,Bt.a)(),l=n.useRef(null);return n.useEffect(()=>{a.focused&&l.current?.focus()},[a.focused]),n.createElement(w,Yt({ref:l,variant:"ghost",size:"icon","data-day":t.date.toLocaleDateString(),"data-selected-single":a.selected&&!a.range_start&&!a.range_end&&!a.range_middle,"data-range-start":a.range_start,"data-range-end":a.range_end,"data-range-middle":a.range_middle,className:u("data-[selected-single=true]:bg-primary p-2 data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 dark:hover:text-accent-foreground flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70",o.day,e)},r))}const Jt=n.forwardRef(({value:e,onChange:t,initialDate:a,maxDate:r},o)=>{const[l,s]=n.useState(!1),i=e?(0,Pt.H)(e):a?(0,Pt.H)(a):void 0,c=r?(0,Pt.H)(r):void 0,[d,m]=n.useState(i||new Date),p=(new Date).getFullYear(),g=Array.from({length:p-1900+1},(e,t)=>p-t),f=Array.from({length:12},(e,t)=>({value:t.toString(),label:(0,Ot.GP)(new Date(2e3,t),"MMMM",{locale:Lt.es})}));return n.useEffect(()=>{m(e?(0,Pt.H)(e):new Date)},[e]),n.createElement($t,{open:l,onOpenChange:s},n.createElement(Ut,{asChild:!0},n.createElement(w,{ref:o,variant:"outline",className:u("w-full justify-start text-left font-normal",!e&&"text-muted-foreground")},n.createElement(Ft.A,{className:"mr-2 h-4 w-4"}),e?(0,Ot.GP)((0,Pt.H)(e),"yyyy-MM-dd"):"Selecciona una fecha")),n.createElement(Vt,{className:"w-auto p-0"},n.createElement("div",{className:"p-3 pb-0"},n.createElement("div",{className:"flex items-center justify-center gap-2"},n.createElement(Je,{value:d.getMonth().toString(),onValueChange:e=>{const t=parseInt(e,10),a=new Date(d);a.setMonth(t),m(a)}},n.createElement(Qe,{className:"w-[60%] focus:ring-0"},n.createElement(Ge,null)),n.createElement(Ke,null,f.map(e=>n.createElement(Ze,{key:e.value,value:e.value},e.label.charAt(0).toUpperCase()+e.label.slice(1))))),n.createElement(Je,{value:d.getFullYear().toString(),onValueChange:e=>{const t=parseInt(e,10),a=new Date(d);a.setFullYear(t),m(a)}},n.createElement(Qe,{className:"w-[40%] focus:ring-0"},n.createElement(Ge,null)),n.createElement(Ke,{className:"max-h-60"},g.map(e=>n.createElement(Ze,{key:e,value:e.toString()},e)))))),n.createElement(qt,{locale:Lt.es,mode:"single",selected:i,onSelect:e=>{if(e){const a=new Date(e);if(a.setMinutes(0),c&&a>c)return;t?.((0,Ot.GP)(a,"yyyy-MM-dd")),m(e),s(!1)}},month:d,onMonthChange:m,disabled:e=>!!c&&e>c,className:"pt-2"})))});Jt.displayName="DatePicker";var Gt=a(5244);const Ht=()=>{const[e,t]=(0,n.useState)(!1),[a,r]=(0,n.useState)(""),[o,l]=(0,n.useState)([]),[s,i]=(0,n.useState)(!1),[c,d]=(0,n.useState)(null),[m,u]=(0,n.useState)(!1),[p,g]=(0,n.useState)(1),f=(0,n.useMemo)(()=>Math.max(1,Math.ceil(o.length/10)),[o.length]),b=(0,n.useMemo)(()=>o.slice(10*(p-1),10*p),[o,p]),h=async()=>{const e=a.trim();if(!e)return d("Ingrese un criterio de búsqueda para continuar."),l([]),void u(!1);try{i(!0),d(null),u(!0);const t=await(async e=>{try{return(await X.A.get(`${jt}/api/patientSearch/register/`,{params:{q:e}})).data}catch(e){if(X.A.isAxiosError(e)&&e.response)throw new Error(e.response.data.error);throw new Error("Error al consultar la información de los pacientes")}})(e);l(t),g(1)}catch(e){const t=e instanceof Error?e.message:"Ocurrió un error al consultar la información de los pacientes.";d(t),l([])}finally{i(!1)}};return n.createElement(n.Fragment,null,n.createElement(w,{type:"button",variant:"outline",className:"bg-sky-500 text-white hover:bg-sky-600 hover:text-white transition-color ",onClick:()=>{t(!0),r(""),l([]),d(null),u(!1),g(1)}},n.createElement(Gt.A,{className:"ml-2"}),"Directorio de pacientes"),n.createElement(re,{isOpen:e,setIsOpen:t,title:"Directorio de pacientes",description:"Busque pacientes por nombre o número de registro."},n.createElement(ae,{className:"flex flex-col gap-4 h-full overflow-hidden"},n.createElement("div",{className:"flex flex-col gap-2"},n.createElement("div",{className:"flex items-center gap-2"},n.createElement(Pe,{type:"text",value:a,onChange:e=>r(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),h())}}),n.createElement(w,{type:"button",size:"icon",className:"bg-sky-500 text-white hover:bg-sky-600",onClick:h,disabled:s},n.createElement(Ve.A,{className:"w-4 h-4"}))),c&&n.createElement("p",{className:"text-sm text-red-600"},c)),n.createElement("div",{className:o.length>0?"flex flex-1 flex-col min-h-0 mt-2":"flex-1 overflow-auto mt-2"},s?n.createElement("div",{className:"w-full flex justify-center"},n.createElement(Le,null)):0===o.length?n.createElement("p",{className:"text-sm text-gray-500 w-full text-center"},m?"No se encontraron pacientes con el criterio de búsqueda proporcionado.":"Realice una busqueda para mostrar pacientes."):n.createElement(n.Fragment,null,n.createElement("div",{className:"flex-1 min-h-0 overflow-auto rounded-lg border shadow-sm"},n.createElement(rt,{className:"border-0 shadow-none"},n.createElement(ot,{className:"sticky top-0 z-10 bg-sky-500 shadow-sm [&_tr]:border-b"},n.createElement(st,null,n.createElement(it,null,"Num. Registro"),n.createElement(it,null,"Nombre"),n.createElement(it,null,"Fecha de nacimiento"),n.createElement(it,null,"Edad"),n.createElement(it,null,"Sexo"))),n.createElement(lt,null,b.map(e=>n.createElement(st,{key:e.id},n.createElement(ct,null,e.patient_id),n.createElement(ct,null,e.patient_name),n.createElement(ct,null,e.dob),n.createElement(ct,null,e.age),n.createElement(ct,{className:"capitalize"},"man"===e.sex?"Hombre":"Mujer")))))),n.createElement("div",{className:"flex items-center justify-between gap-2 border-t bg-gray-50 px-3 py-2 shrink-0"},n.createElement("span",{className:"text-sm text-gray-600"},"Mostrando ",10*(p-1)+1," -"," ",Math.min(10*p,o.length)," de"," ",o.length," resultados"),n.createElement("div",{className:"flex items-center gap-2"},n.createElement(w,{variant:"outline",size:"sm",onClick:()=>g(e=>Math.max(1,e-1)),disabled:p<=1},n.createElement(tt.A,{className:"h-4 w-4 mr-1"}),"Anterior"),n.createElement(w,{variant:"outline",size:"sm",onClick:()=>g(e=>Math.min(f,e+1)),disabled:p>=f},"Siguiente",n.createElement(at.A,{className:"h-4 w-4 ml-1"})))))))))};var Wt=a(6765),Qt=a(927);var Kt=a(8686),Zt=a(418),ea=a(827);const ta=e=>{switch(e){case"man":return"Hombre";case"woman":return"Mujer";default:return"Otro"}},aa=({patient:e,role:t,loading:a,onClear:r})=>{const o="old"===t,l=o?"bg-gradient-to-r from-red-500 to-red-600":"bg-gradient-to-r from-emerald-500 to-emerald-600",s=o?"bg-red-100 text-red-700":"bg-emerald-100 text-emerald-700",i=o?"border-red-200":"border-emerald-200",c=o?"hover:bg-red-50/60":"hover:bg-emerald-50/60",d=o?"−":"+",m=o?"text-red-400":"text-emerald-400";if(a)return n.createElement("div",{className:`flex-1 rounded-xl border-2 ${i} bg-white flex items-center justify-center min-h-[340px]`},n.createElement(Le,{alternativeLabel:"Cargando información..."}));if(!e)return n.createElement("div",{className:"flex-1 rounded-xl border-2 border-dashed border-gray-300 bg-gray-50/70 flex flex-col items-center justify-center min-h-[340px] gap-3"},n.createElement("div",{className:"w-14 h-14 rounded-full bg-gray-200 flex items-center justify-center"},n.createElement(Kt.A,{className:"w-7 h-7 text-gray-400"})),n.createElement("p",{className:"text-sm text-gray-400 font-medium"},o?"Seleccione el registro duplicado":"Seleccione el registro correcto"),n.createElement("span",{className:`text-xs px-3 py-1 rounded-full ${s} font-semibold`},o?"DUPLICADO":"CORRECTO"));const u=[{label:"Num. Registro",value:e.patient_id},{label:"Nombre",value:e.patient_name},{label:"Fecha Nac.",value:e.dob},{label:"Edad",value:`${e.age} años`},{label:"Sexo",value:ta(e.sex)},{label:"Reportes",value:String(e.report_count)},{label:"Primer reporte",value:e.first_report??"—"},{label:"Último reporte",value:e.last_report??"—"}];return n.createElement("div",{className:`flex-1 rounded-xl border-2 ${i} bg-white overflow-hidden shadow-sm transition-shadow hover:shadow-md min-h-[340px]`},n.createElement("div",{className:`${l} px-4 py-3 flex items-center justify-between`},n.createElement("div",{className:"flex items-center gap-2"},n.createElement("span",{className:"text-xs font-bold px-2.5 py-0.5 rounded-full bg-white/20 text-white tracking-wide"},o?"DUPLICADO":"CORRECTO"),n.createElement("span",{className:"text-white font-semibold text-sm truncate max-w-[180px]"},e.patient_name)),n.createElement(w,{variant:"ghost",size:"icon",className:"h-7 w-7 text-white/80 hover:text-white hover:bg-white/20",onClick:r},n.createElement(h.A,{className:"w-4 h-4"}))),n.createElement("div",{className:"divide-y divide-gray-100"},u.map((e,t)=>n.createElement("div",{key:t,className:`flex items-center px-4 py-2.5 text-sm ${c} transition-colors`},n.createElement("span",{className:`w-5 font-mono text-base font-bold ${m} select-none`},d),n.createElement("span",{className:"w-[110px] text-gray-500 font-medium shrink-0 text-xs uppercase tracking-wider"},e.label),n.createElement("span",{className:"text-gray-800 font-medium truncate"},e.value)))),n.createElement("div",{className:`px-4 py-2.5 ${o?"bg-red-50/60":"bg-emerald-50/60"} border-t ${i}`},n.createElement("div",{className:"flex items-center gap-2"},o?n.createElement(n.Fragment,null,n.createElement(Zt.A,{className:"w-3.5 h-3.5 text-red-400"}),n.createElement("span",{className:"text-xs text-red-500 font-medium"},"Este registro se eliminará permanentemente")):n.createElement(n.Fragment,null,n.createElement(ea.A,{className:"w-3.5 h-3.5 text-emerald-400"}),n.createElement("span",{className:"text-xs text-emerald-600 font-medium"},"Toda la información se consolidará aquí")))))},na=()=>{const[e,t]=(0,n.useState)(!1),{searchQuery:a,searchResults:r,isSearching:o,handleSearchChange:l,oldPatient:s,newPatient:i,loadingInfo:c,handlePatientSelect:d,swapPatients:m,clearOldPatient:u,clearNewPatient:p,isMerging:g,handleMerge:f,resetAll:b}=(()=>{const[e,t]=(0,n.useState)(""),[a,r]=(0,n.useState)([]),[o,l]=(0,n.useState)(!1),s=(0,n.useRef)(null),[i,c]=(0,n.useState)(null),[d,m]=(0,n.useState)(null),[u,p]=(0,n.useState)(!1),[g,f]=(0,n.useState)(!1),w=(0,n.useCallback)(e=>{t(e),s.current&&clearTimeout(s.current),e.trim()?s.current=setTimeout(async()=>{l(!0);try{const t=await Dt(e);r(t)}catch{r([])}finally{l(!1)}},300):r([])},[]),b=(0,n.useCallback)(async e=>{p(!0);try{const t=await(async e=>{try{return(await X.A.get(`${jt}/api/patientMerge/`,{params:{q:e}})).data}catch(e){if(X.A.isAxiosError(e)&&e.response)throw new Error(e.response.data.error);throw new Error("Error al consultar la información del paciente")}})(String(e.patient_id)),a=Array.isArray(t)?t[0]:t;if(!a)return;i?d?(c(d),m(a)):m(a):c(a)}catch(e){fe(e instanceof Error?e.message:"Error al obtener información del paciente")}finally{p(!1)}},[i,d]),h=(0,n.useCallback)(()=>{c(e=>(m(i),d))},[i,d]),v=(0,n.useCallback)(async()=>{if(!i||!d)return;const e=await function(e,t){return ge.fire({title:"¿Consolidar registros?",icon:"warning",html:`\n
\n

\n Esta acción es irreversible y no se puede deshacer.\n

\n
\n
\n
\n Eliminar duplicado\n
\n

${e.patient_name}

\n

Registro: ${e.patient_id}

\n
\n\n
\n
\n Consolidar en este registro\n
\n

${t.patient_name}

\n

Registro: ${t.patient_id}

\n
\n
\n
\n `,showCancelButton:!0,confirmButtonText:"Sí, consolidar",cancelButtonText:"Cancelar",confirmButtonColor:"#0ea5e9",cancelButtonColor:"#6b7280"})}(i,d);if(e.isConfirmed){f(!0);try{await(async(e,t)=>{try{return await X.A.post(`${jt}/api/patientMerge/`,{old_patient_id:e,new_patient_id:t}),!0}catch(e){if(X.A.isAxiosError(e)&&e.response)throw new Error(e.response.data.error);throw new Error("Error al fusionar pacientes")}})(i.patient_id,d.patient_id),await we("Pacientes combinados exitosamente."),c(null),m(null),t(""),r([])}catch(e){fe(e instanceof Error?e.message:"Error al combinar los pacientes")}finally{f(!1)}}},[i,d]),x=(0,n.useCallback)(()=>c(null),[]),y=(0,n.useCallback)(()=>m(null),[]),E=(0,n.useCallback)(()=>{t(""),r([]),c(null),m(null),f(!1),p(!1)},[]);return{searchQuery:e,searchResults:a,isSearching:o,handleSearchChange:w,oldPatient:i,newPatient:d,loadingInfo:u,handlePatientSelect:b,swapPatients:h,clearOldPatient:x,clearNewPatient:y,isMerging:g,handleMerge:v,resetAll:E}})(),h=null!==s&&null!==i&&!g;return n.createElement(n.Fragment,null,n.createElement(w,{type:"button",variant:"outline",className:"bg-sky-500 text-white hover:bg-sky-600 hover:text-white transition-colors",onClick:()=>{b(),t(!0)}},n.createElement(Wt.A,{className:"ml-2"}),"Consolidar duplicados"),n.createElement(re,{isOpen:e,setIsOpen:t,title:"Consolidar duplicados",description:"Seleccione dos registros del mismo paciente para unificar su historial en un solo expediente correcto."},n.createElement(ae,{className:"flex flex-col gap-4 h-full overflow-hidden"},n.createElement("div",{className:"flex gap-4 flex-1 min-h-0 overflow-auto"},n.createElement("div",{className:"w-[22%] shrink-0 flex flex-col gap-3"},n.createElement("div",{className:"relative"},n.createElement(Ve.A,{className:"absolute left-2.5 top-1/2 -translate-y-1/2 w-4 h-4 text-gray-400 pointer-events-none"}),n.createElement(Pe,{type:"text",placeholder:"Buscar paciente...",value:a,onChange:e=>l(e.target.value),className:"pl-8 text-sm"})),n.createElement("div",{className:"flex-1 overflow-auto border rounded-lg bg-white divide-y divide-gray-100 shadow-inner"},o?n.createElement("div",{className:"flex justify-center py-6"},n.createElement(Le,{alternativeLabel:"Buscando..."})):0===r.length?n.createElement("p",{className:"text-xs text-gray-400 text-center py-6"},a.trim()?"Sin resultados":"Escriba para buscar"):r.map(e=>n.createElement("button",{key:e.id??e.patient_id,type:"button",className:"w-full text-left px-3 py-2.5 hover:bg-sky-50 transition-colors cursor-pointer group",onClick:()=>d(e),disabled:c},n.createElement("p",{className:"text-sm font-medium text-gray-800 group-hover:text-sky-600 truncate"},e.patient_name),n.createElement("p",{className:"text-xs text-gray-400"},"Registro: ",e.patient_id))))),n.createElement("div",{className:"flex-1 flex flex-col gap-3 min-w-0"},n.createElement("div",{className:"flex items-stretch gap-3 flex-1"},n.createElement(aa,{patient:s,role:"old",loading:c&&!s&&!i,onClear:u}),n.createElement("div",{className:"flex items-center"},n.createElement(w,{type:"button",variant:"outline",size:"icon",className:"rounded-full h-10 w-10 border-2 border-gray-300 text-gray-500 hover:border-sky-400 hover:text-sky-500 hover:bg-sky-50 transition-all shadow-sm",onClick:m,disabled:!s&&!i,title:"Intercambiar pacientes"},n.createElement(Qt.A,{className:"w-4 h-4"}))),n.createElement(aa,{patient:i,role:"new",loading:c&&!!s&&!i,onClear:p})),n.createElement("div",{className:"flex justify-end pt-1"},n.createElement(w,{type:"button",className:"bg-sky-500 hover:bg-sky-600 text-white font-semibold px-6 shadow-lg hover:shadow-xl transition-all disabled:opacity-60",disabled:!h,onClick:f},g?n.createElement(Le,{alternativeLabel:"Consolidando...",useColorWhite:!0}):n.createElement(n.Fragment,null,n.createElement(Wt.A,{className:"w-4 h-4 mr-2"}),"Unificar registros"))))))))};function ra(){return ra=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const[e,t]=(0,n.useState)(!1),a=(0,le.mN)({resolver:(0,oe.u)(zt),defaultValues:{name:"",registerNumber:"",dob:"",sex:""}});return n.createElement("div",{className:"min-h-screen bg-zinc-100 p-4 md:p-8 flex flex-col items-end"},n.createElement("div",{className:"flex flex-row items-center gap-2"},n.createElement(Ht,null),n.createElement(na,null)),n.createElement("div",{className:"mx-auto max-w-3xl mt-2"},n.createElement(K,{className:"overflow-hidden border-none bg-white/80 backdrop-blur-sm shadow-xl"},n.createElement("div",{className:"bg-sky-500 px-6 py-4"},n.createElement(Z,{className:"space-y-1 p-0"},n.createElement(ee,{className:"text-2xl font-bold tracking-tight text-white md:text-3xl"},"Registro de pacientes"),n.createElement(te,{className:"text-indigo-100"},"Complete todos los campos requeridos para el registro del paciente"))),n.createElement(ae,{className:"p-6 md:p-8"},n.createElement(ke,a,n.createElement("form",{onSubmit:a.handleSubmit(async e=>{t(!0);const n={name:"",registerNumber:"",dob:"",sex:"",...e},r=`Paciente ${"man"===n.sex?"masculino":"femenino"} de nombre\n ${n.name}, con número de registro ${n.registerNumber} y fecha de nacimiento ${n.dob}.`;if((await be("¿Confirma que los datos son correctos?",r)).isConfirmed)try{await(async e=>{const{name:t,registerNumber:a,dob:n,sex:r}=e;try{return await X.A.post(`${jt}/api/registerPatient/`,{patient_id:a,patient_name:t,dob:n,sex:r}),!0}catch(e){if(X.A.isAxiosError(e)&&e.response)throw new Error(e.response.data.error);throw new Error("Error al registrar usuario")}})(n)&&(await we("Paciente registrado correctamente."),a.reset())}catch(e){fe(e?.message||"Ocurrió un error inesperado al registrar el paciente.")}t(!1)}),className:"space-y-8"},n.createElement(Ce,{control:a.control,name:"name",render:({field:e})=>n.createElement(Re,null,n.createElement(ze,{className:"text-base font-medium text-gray-700"},"Paciente"),n.createElement(_e,null,n.createElement(Pe,ra({placeholder:"Nombre completo del paciente"},e))),n.createElement(je,null))}),n.createElement("div",{className:"grid grid-cols-1 gap-8 md:grid-cols-2"},n.createElement(Ce,{control:a.control,name:"registerNumber",render:({field:e})=>n.createElement(Re,null,n.createElement(ze,{className:"text-base font-medium text-gray-700"},"Registro"),n.createElement(_e,null,n.createElement(Pe,ra({placeholder:"Número de Registro"},e))),n.createElement(je,null))}),n.createElement(Ce,{control:a.control,name:"dob",render:({field:e})=>n.createElement(Re,null,n.createElement(ze,{className:"text-base font-medium text-gray-700"},"Fecha de nacimiento"),n.createElement(_e,null,n.createElement(Jt,{value:e.value,onChange:t=>e.onChange(t)})),n.createElement(je,null))})),n.createElement(Ce,{control:a.control,name:"sex",render:({field:e})=>n.createElement(Re,null,n.createElement(ze,{className:"text-base font-medium text-gray-700"},"Sexo"),n.createElement(Je,{onValueChange:e.onChange,value:e.value,defaultValue:e.value},n.createElement(_e,null,n.createElement(Qe,null,n.createElement(Ge,{placeholder:"Selecione..."}))),n.createElement(Ke,null,n.createElement(Ze,{value:"man"},"Hombre"),n.createElement(Ze,{value:"woman"},"Mujer"))),n.createElement(je,null))}),n.createElement("div",{className:"flex justify-end pt-6"},n.createElement(w,{type:"submit",disabled:e,className:" w-full space-x-1 items-center justify-center rounded-lg bg-sky-500 px-8 text-base font-semibold text-white shadow-lg transition-all hover:bg-sky-600 hover:shadow-xl disabled:opacity-70"},e?n.createElement("span",{className:"mr-2 inline-block h-5 w-5"},n.createElement(Le,{alternativeLabel:"Registrando...",useColorWhite:!0})):n.createElement(n.Fragment,null,n.createElement("span",{style:{fill:"white"},className:"mr-2 inline-block h-5 w-5"},n.createElement(_t,null)),"Registrar")))))))))},path:"/",isPrivate:!0,onSideBar:!0,title:"Registro Pacientes",showSideBar:!0,icon:_t}];function la(){return la=Object.assign?Object.assign.bind():function(e){for(var t=1;tn.createElement("textarea",la({className:u("flex min-h-[100px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:a},t)));function ia(){return ia=Object.assign?Object.assign.bind():function(e){for(var t=1;tn.createElement(b.hJ,ia({ref:a,className:u("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e)},t)));pa.displayName=b.hJ.displayName;const ga=n.forwardRef(({className:e,children:t,...a},r)=>n.createElement(ma,null,n.createElement(pa,null),n.createElement(b.UC,ia({ref:r,className:u("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e)},a),t,n.createElement(b.bm,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground"},n.createElement(h.A,{className:"h-4 w-4"})))));ga.displayName=b.UC.displayName;const fa=({className:e,...t})=>n.createElement("div",ia({className:u("flex flex-col space-y-1.5 text-center sm:text-left",e)},t));fa.displayName="DialogHeader";const wa=({className:e,...t})=>n.createElement("div",ia({className:u("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e)},t));wa.displayName="DialogFooter";const ba=n.forwardRef(({className:e,...t},a)=>n.createElement(b.hE,ia({ref:a,className:u("text-lg font-semibold leading-none tracking-tight",e)},t)));ba.displayName=b.hE.displayName;const ha=n.forwardRef(({className:e,...t},a)=>n.createElement(b.VY,ia({ref:a,className:u("text-sm text-muted-foreground",e)},t)));ha.displayName=b.VY.displayName;var va=a(8296),xa=a(6627);function ya(){return ya=Object.assign?Object.assign.bind():function(e){for(var t=1;tn.createElement(xa.bL,ya({ref:r,className:u("relative overflow-hidden",e)},a),n.createElement(xa.LM,{className:"h-full w-full rounded-[inherit]"},t),n.createElement(Na,null),n.createElement(xa.OK,null)));Ea.displayName=xa.bL.displayName;const Na=n.forwardRef(({className:e,orientation:t="vertical",...a},r)=>n.createElement(xa.VM,ya({ref:r,orientation:t,className:u("flex touch-none select-none transition-colors","vertical"===t&&"h-full w-2.5 border-l border-l-transparent p-[1px]","horizontal"===t&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",e)},a),n.createElement(xa.lr,{className:"relative flex-1 rounded-full bg-border"})));Na.displayName=xa.VM.displayName;var ka=a(2708);const Sa=({file:e,preview:t,onRemove:a})=>n.createElement("div",{className:"relative group border rounded-lg overflow-hidden"},e.type.startsWith("image/")?n.createElement("img",{src:t,alt:e.name,className:"w-full h-32 object-cover"}):n.createElement("video",{src:t,className:"w-full h-32 object-cover"}),n.createElement("div",{className:"absolute bottom-0 left-0 right-0 bg-black/50 p-2 text-white"},n.createElement("div",{className:"flex justify-between items-center"},n.createElement("span",{className:"text-xs truncate"},e.name),n.createElement("button",{type:"button",onClick:e=>{e.stopPropagation(),a()},className:"hover:text-red-400"},n.createElement(ka.A,{className:"w-4 h-4"})))));var Ca=a(824);function Aa(){return Aa=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const s=(0,n.useCallback)(n=>{if(e.length+n.length>a)return void alert(`Máximo ${a} archivos permitidos`);const r=n.map(e=>Object.assign(e,{preview:URL.createObjectURL(e),uniqueKey:`${e.name}-${e.size}-${Date.now()}`}));t([...e,...r])},[e,t,a]),{getRootProps:i,getInputProps:c,isDragActive:d}=(0,Ca.VB)({onDrop:s,accept:r||void 0,maxFiles:a});return n.createElement("div",{className:"space-y-4"},e.length0&&o&&n.createElement(Ea,{className:"h-64"},n.createElement("div",{className:"grid grid-cols-3 gap-4"},e.map((a,r)=>n.createElement(Sa,{key:a.name,file:a,preview:a.preview,onRemove:()=>(a=>{const n=e.filter((e,t)=>t!==a);t(n)})(r)})))))},_a=({files:e,onFilesChange:t})=>n.createElement(ca,null,n.createElement(da,{asChild:!0,className:"h-20 hover:bg-gray-100"},n.createElement(w,{variant:"outline",className:"flex-col"},n.createElement(va.A,{className:"w-8 h-8"}),"Imagenes/Videos")),n.createElement(ga,{className:"sm:max-w-3xl"},n.createElement(fa,null,n.createElement(ba,null,"Subir imagenes y/o videos"),n.createElement(ha,null,"Sube contenido gráfico para apoyar el reporte")),n.createElement("div",{className:"space-y-4"},n.createElement(za,{files:e,onFilesChange:t,maxFiles:100,showPreviewGrid:!1}),n.createElement(Ea,{className:"h-64"},n.createElement("div",{className:"grid grid-cols-3 gap-4"},e.map((a,r)=>n.createElement(Sa,{key:a.name,file:a,preview:a.preview,onRemove:()=>(a=>{const n=e.filter((e,t)=>t!==a);t(n)})(r)}))))),n.createElement(wa,null,n.createElement(ua,{asChild:!0},n.createElement(w,{type:"button",variant:"outline"},"Cancelar")),n.createElement(ua,{asChild:!0},n.createElement(w,{type:"button",className:"bg-blue-600 text-gray-50 hover:bg-blue-800"},"Guardar (",e.length,")"))))),ja=({label:e="Paciente",field:t,onSelect:a,value:r,initialPatient:o=null,onClearSelection:l})=>{const[s,i]=(0,n.useState)(r??(o?o.patient_name:"")),[c,d]=(0,n.useState)([]),[m,u]=(0,n.useState)(!1),[p,g]=(0,n.useState)(!1),f=(0,n.useRef)(null),w=(0,n.useRef)(null),b=(0,n.useRef)(null),h=(0,n.useCallback)(async e=>{g(!0);try{const t=await Dt(e);d(t)}catch(e){$e("Error fetching patients",e)}finally{g(!1)}},[]);(0,n.useEffect)(()=>{"string"==typeof r&&i(r)},[r]),(0,n.useEffect)(()=>{const e=e=>{b.current&&!b.current.contains(e.target)&&(w.current=setTimeout(()=>{u(!1),d([]),t?.onBlur&&t.onBlur()},120))};return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e),f.current&&clearTimeout(f.current),w.current&&clearTimeout(w.current)}},[t]),(0,n.useEffect)(()=>{o&&(i(o.patient_name),t?.onChange&&t.onChange(o.patient_id))},[o,t]);const v="string"==typeof r?r:s;return n.createElement(Re,null,n.createElement(ze,null,e),n.createElement(_e,null,n.createElement("div",{className:"w-full relative mt-2",ref:b},n.createElement(Ve.A,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-gray-500"}),n.createElement(Pe,{type:"search",placeholder:"Buscar paciente...",className:"pl-9",value:v,onChange:e=>{return""===(a=e.target.value)&&(t.onChange(null),l&&l()),i(a),f.current&&clearTimeout(f.current),void(f.current=setTimeout(()=>{a.trim().length>0?(h(a),u(!0)):(d([]),u(!1))},300));var a},onFocus:()=>{f.current&&clearTimeout(f.current),u(!0),s.trim().length>0&&h(s)},"aria-autocomplete":"list","aria-expanded":m,name:t?.name}),m&&(p||c.length>0)&&n.createElement("ul",{className:"absolute z-10 mt-1 max-h-60 w-full overflow-auto rounded-md bg-white shadow-lg border border-gray-200"},c.map(e=>n.createElement("li",{key:e.patient_id,className:"cursor-pointer px-4 py-2 hover:bg-gray-100 text-sm",onMouseDown:n=>{n.preventDefault(),(e=>{if(w.current&&clearTimeout(w.current),i(e.patient_name),u(!1),d([]),t&&"function"==typeof t.onChange){const a="number"==typeof e.patient_id?e.patient_id:"number"==typeof e.id?e.id:0;t.onChange(a)}a&&a(e)})(e)}},n.createElement("span",{className:"font-medium"},e.patient_name),n.createElement("span",{className:"ml-2 text-xs text-gray-400"},"(",e.patient_id,")")))))),n.createElement(je,null))};var Da=a(4796),Pa=a(2250),Oa=a(8614);function La(){return La=Object.assign?Object.assign.bind():function(e){for(var t=1;tn.createElement("div",{className:"col-span-4"},m&&n.createElement("p",{className:"font-semibold text-gray-500 animate-pulse"},n.createElement(Oe.A,{className:"animate-spin inline"}),"Transcibiendo"),"description"===e&&n.createElement("div",{className:"grid w-full items-center gap-1.5"},n.createElement(Ce,{control:u,name:"description",render:({field:e})=>n.createElement(Re,null,n.createElement(_e,null,n.createElement(sa,La({className:"w-full h-full",placeholder:"Describe el reporte",disabled:m},e))))})),"upload"===e&&n.createElement("div",{className:"w-full space-y-2"},n.createElement(w,{variant:"outline",className:"w-full hover:bg-gray-100 p-0",type:"button"},n.createElement("label",{htmlFor:"audio-upload",className:"cursor-pointer flex items-center justify-center gap-2 w-full"},n.createElement(Da.A,{className:"h-4 w-4"}),"Subir audio"),n.createElement("input",{id:"audio-upload",type:"file",accept:"audio/*",className:"hidden",onChange:a,disabled:m})),t&&n.createElement("div",{className:"text-sm text-gray-600 flex items-center gap-2"},n.createElement(Pa.A,{className:"h-4 w-4"}),n.createElement("span",{className:"font-medium"},t)),t&&n.createElement(w,{onClick:c,disabled:m},"Transcribir audio subido")),"record"===e&&n.createElement("div",{className:"w-full space-y-2"},n.createElement(w,{variant:"outline",type:"button",className:"w-full hover:bg-gray-100",onClick:r?i:s,disabled:m},n.createElement(Oa.A,{className:"h-4 w-4"}),r?n.createElement("div",{className:"flex items-center gap-2"},n.createElement("span",{className:"relative flex h-3 w-3"},n.createElement("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-red-400 opacity-75"}),n.createElement("span",{className:"relative inline-flex rounded-full h-3 w-3 bg-red-600"})),(e=>{const t=e%60;return`${Math.floor(e/60).toString().padStart(2,"0")}:${t.toString().padStart(2,"0")}`})(o)):"Grabar audio"),l&&n.createElement("div",{className:"mt-2 p-4 bg-gray-50 rounded-lg border border-gray-200"},n.createElement("p",{className:"text-sm font-medium mb-2"},"Audio grabado:"),n.createElement("audio",{controls:!0,className:"w-full [&::-webkit-media-controls-panel]:bg-gray-100 [&::-webkit-media-controls-current-time-display]:font-mono [&::-webkit-media-controls-time-remaining-display]:font-mono"},n.createElement("source",{src:URL.createObjectURL(l),type:"audio/wav"}))),l&&n.createElement(w,{onClick:d,disabled:m},"Transcribir audio grabado")));var Ia=a(8852);const Ma=({isSubmitting:e,onSubmit:t,isGenerating:a,onGenerate:r})=>n.createElement("div",{className:"mt-4 flex justify-center space-x-4"},n.createElement(w,{variant:"outline",className:"bg-sky-500 text-gray-50 hover:bg-sky-600 hover:text-gray-100 disabled:bg-gray-300 disabled:text-gray-800",type:"button",disabled:a,onClick:r},a?n.createElement(Le,{alternativeLabel:"Generando..."}):n.createElement(n.Fragment,null,n.createElement(Ia.A,{className:"w-4 h-4"}),"Generar")),n.createElement(w,{variant:"outline",className:"bg-sky-500 text-gray-50 hover:bg-sky-600 hover:text-gray-100 disabled:bg-gray-300 disabled:text-gray-800",disabled:e,onClick:t},e?n.createElement(Le,{alternativeLabel:"Guardando..."}):n.createElement(n.Fragment,null,n.createElement(Ia.A,{className:"w-4 h-4"}),"Guardar"))),$a=({user:e,searchQuery:t,doctors:a,isSearching:r,handleSearchFocus:o,handleSearchBlur:l,handleDoctorSelect:s,handleQueryChange:i})=>{const c=(0,n.useRef)(null),d=(0,n.useRef)(null);return(0,n.useEffect)(()=>{const e=e=>{!c.current||c.current.contains(e.target)||d.current?.contains(e.target)||l()};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[l]),n.createElement("div",{className:"grid grid-cols-2 gap-2"},n.createElement(Ce,{name:"doctorAssigned",render:({field:e})=>n.createElement(Re,null,n.createElement(ze,null,"Médico asignado"),n.createElement(_e,null,n.createElement("div",{className:"w-full relative mt-2",ref:c},n.createElement(Ve.A,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-gray-500"}),n.createElement(Pe,{type:"search",placeholder:"Buscar médico...",className:"pl-9",value:t,onChange:e=>i(e.target.value),onFocus:o,onBlur:l}),(r||a&&a.length>0)&&n.createElement("ul",{ref:d,className:"absolute z-10 mt-1 max-h-60 w-full overflow-auto rounded-md bg-white shadow-lg border border-gray-200"},a&&a.length>0?a.map(t=>n.createElement("li",{key:t.id,className:"cursor-pointer px-4 py-2 hover:bg-gray-100",onClick:()=>{s(t),e.onChange(t.id?.toString()??"")}},n.createElement("span",{className:"font-medium"},t.name," ",t.last_name," "))):n.createElement(n.Fragment,null,r?n.createElement("li",{className:"px-4 py-2 text-gray-500 animate-pulse"},"Buscando médicos..."):n.createElement("li",{className:"px-4 py-2 text-red-500/50"},"No se encontraron médicos"))))),n.createElement(je,null))}),n.createElement(Ce,{name:"doctorProcedure",render:()=>n.createElement(Re,null,n.createElement(ze,null,"Médico del procedimiento"),n.createElement(_e,null,n.createElement(Pe,{placeholder:`${e?.name??""} ${e?.last_name??""}`,readOnly:!0,disabled:!0})),n.createElement(je,null))}))};var Ua=a(3420);const Va=({node:e,activeKey:t,setActiveKey:a,editedValues:r,handleRestore:o,expandedNodes:l,toggleExpand:s,depth:i=0})=>{const c=t===e.fullPath,d=void 0!==r[e.fullPath];return n.createElement("div",{className:"w-full"},n.createElement("button",{className:`w-full text-sm text-left p-2 pl-${4*i+2} flex justify-between items-center transition-colors rounded ${c?"bg-blue-50 text-blue-700 font-medium":"hover:bg-gray-50"}`,onClick:t=>{t.preventDefault(),e.isLeaf?a(e.fullPath):s(e.fullPath)}},n.createElement("div",{className:"flex items-center gap-2 truncate"},!e.isLeaf&&n.createElement("button",{onClick:t=>{t.preventDefault(),t.stopPropagation(),s(e.fullPath)},className:"text-gray-400 hover:text-gray-600"},l[e.fullPath]?n.createElement(Te.A,{size:16}):n.createElement(at.A,{size:16})),n.createElement("span",{className:"truncate"},e.name)),d&&e.isLeaf&&n.createElement("div",{className:"flex items-center space-x-2"},n.createElement("span",{className:"w-2 h-2 bg-yellow-500 rounded-full"}),n.createElement("button",{onClick:t=>{t.preventDefault(),t.stopPropagation(),o(e.fullPath)},className:"text-xs text-yellow-500 hover:text-yellow-700 p-1"},n.createElement(Ua.A,{size:14})))),!e.isLeaf&&l[e.fullPath]&&e.children.map(e=>n.createElement(Va,{key:e.id,node:e,activeKey:t,setActiveKey:a,editedValues:r,handleRestore:o,expandedNodes:l,toggleExpand:s,depth:i+1})))},Ba=["Calificación","Calidad","Retroalimentación","CalidadDelReporte","EncabezadoReporte"],Ta=(e,t="",a=[])=>{for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(Ba.includes(n))continue;const r=t?`${t}&${n}`:n,o=e[n];o&&"object"==typeof o&&!Array.isArray(o)?(a.push({id:r,name:n,fullPath:r,isLeaf:!1,parent:t||null}),Ta(o,r,a)):a.push({id:r,name:n,fullPath:r,value:o,isLeaf:!0,parent:t||null})}return a},Ya=(e,t=null)=>e.filter(e=>e.parent===t).map(t=>({...t,children:Ya(e,t.fullPath)})),qa=window._env_?.BASE_URL,Xa=async e=>{try{const t=new FormData;return t.append("audio",e),(await X.A.post(`${qa}/api/transcribe/`,t)).data}catch(e){if(X.A.isAxiosError(e)&&e.response)throw new Error(e.response.data.error);throw new Error("Error al transcribir el reporte")}},Ja=({initialData:e,isOpen:t,onClose:a,reportId:r,onSave:o,skipSubmit:l=!1})=>{const{activeKey:s,editedValues:i,searchTerm:c,expandedNodes:d,modifiedCount:m,activeItem:u,filteredItems:p,setSearchTerm:g,setActiveKey:f,setEditedValues:b,handleTextChange:v,handleRestore:x,toggleExpand:y,getCurrentValue:E,getUpdatedData:N,submitReport:k,isSaving:S}=(e=>{const[t,a]=(0,n.useState)(""),[r,o]=(0,n.useState)({}),[l,s]=(0,n.useState)(""),[i,c]=(0,n.useState)({}),[d,m]=(0,n.useState)(!1),u=(0,n.useMemo)(()=>e?Ta(e):[],[e]),p=(0,n.useMemo)(()=>Ya(u),[u]),g=(0,n.useMemo)(()=>{if(!l)return p;const e=l.toLowerCase(),t=a=>!!a.name.toLowerCase().includes(e)||!!a.children&&a.children.some(t);return p.filter(t)},[p,l]);(0,n.useEffect)(()=>{if(l){const e={...i};g.forEach(t=>e[t.fullPath]=!0),c(e)}},[l,g]),(0,n.useEffect)(()=>{if(!e||0===Object.keys(e).length)return;const t=e=>{for(const a of e){if(a.isLeaf)return a.fullPath;if(a.children){const e=t(a.children);if(e)return e}}return""},n=t(p);if(n){a(n);const e=n.split("&"),t={...i};let r="";for(const a of e)r=r?`${r}.${a}`:a,t[r]=!0;c(t)}},[e,p]);const f=Object.keys(r).length,w=u.find(e=>e.fullPath===t),b=(e,t)=>{const a="function"==typeof structuredClone?structuredClone(e):JSON.parse(JSON.stringify(e)),n=(e,t,a)=>{const n=t.split("&");let r=e;for(let e=0;enull===e||("string"==typeof e?""===e.trim():"number"!=typeof e&&"boolean"!=typeof e&&(Array.isArray(e)?e.some(e=>h(e)):"object"==typeof e&&Object.keys(e).some(t=>h(e[t]))));return{activeKey:t,editedValues:r,searchTerm:l,expandedNodes:i,modifiedCount:f,activeItem:w,allItems:u,filteredItems:g,isSaving:d,setSearchTerm:s,setActiveKey:a,setEditedValues:o,getUpdatedData:()=>b(e,r),handleTextChange:(e,t)=>{t&&o(a=>{const n=u.find(e=>e.fullPath===t),r=n?n.value:"";if(e===r){const e={...a};return delete e[t],e}return{...a,[t]:e}})},handleRestore:e=>{o(t=>{const a={...t};return delete a[e],a})},toggleExpand:e=>{c(t=>({...t,[e]:!t[e]}))},getCurrentValue:e=>{if(void 0!==r[e])return r[e];const t=u.find(t=>t.fullPath===e);return t?null===t.value?"":t.value:""},submitReport:async t=>{if(!e)throw new Error("Faltan los datos inicales.");const a=b(e,r);if(h(r))throw new Error("Existen campos en blanco. Agrega un valor adecuado en los campos antes de aceptar.");m(!0);try{const e=await(async(e,t)=>{try{const a={json_updated_data:t};return(await X.A.patch(`${qa}/api/reports/${e}/`,a)).data}catch(e){const t=e?.response?.data??e?.message??"Unknown error";throw new Error("string"==typeof t?t:JSON.stringify(t))}})(t,a);return e&&e?.success&&o({}),e}finally{m(!1)}}}})(e),C=()=>{b({}),a()};return e&&0!==Object.keys(e).length||!t?n.createElement(re,{title:"Edicion de reporte",isOpen:t,setIsOpen:e=>{e||C()}},n.createElement(ae,{className:"flex flex-1 h-full overflow-auto"},n.createElement("div",{className:"w-1/3 border-r flex flex-col"},n.createElement("div",{className:"p-3 border-b sticky top-0 bg-white z-10"},n.createElement("input",{type:"text",placeholder:"Buscar campo...",className:"w-full px-3 py-2 border rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500",value:c,onChange:e=>g(e.target.value)})),n.createElement("div",{className:"overflow-y-auto flex-1 px-4"},p.length>0?p.map(e=>n.createElement(Va,{key:e.id,node:e,activeKey:s,setActiveKey:f,editedValues:i,handleRestore:x,expandedNodes:d,toggleExpand:y})):n.createElement("div",{className:"p-4 text-center text-gray-500"},"No se encontraron resultados"))),n.createElement("div",{className:"w-2/3 flex flex-col"},n.createElement("div",{className:"p-4 border-b"},u?n.createElement(n.Fragment,null,n.createElement("h3",{className:"font-medium text-gray-700"},"Editando: ",n.createElement("span",{className:"text-blue-600"},u.name)),n.createElement("div",{className:"text-xs text-gray-500 mt-1"},u.fullPath),void 0!==i[s]&&n.createElement("div",{className:"mt-1 flex items-center text-sm text-yellow-500"},n.createElement("span",{className:"w-2 h-2 bg-yellow-500 rounded-full mr-2"}),"Este valor ha sido modificado")):n.createElement("div",{className:"text-gray-500"},"Seleccione un elemento para editar")),n.createElement("div",{className:"flex-1 flex flex-col bg-zinc-100 p-4"},u&&u.isLeaf?n.createElement(n.Fragment,null,n.createElement(sa,{className:"flex-1 p-4 bg-white resize-none focus:outline-none font-mono text-sm rounded-lg",value:E(s),onChange:e=>v(e.target.value,s),spellCheck:"false"}),void 0!==i[s]&&n.createElement("div",{className:"p-3 border-t flex justify-end"},n.createElement(w,{onClick:e=>{e.preventDefault(),x(s)},variant:"ghost"},n.createElement(Ua.A,{size:16,className:"mr-1"}),"Restaurar valor original"))):u?n.createElement("div",{className:"flex-1 flex items-center justify-center text-gray-500 p-8 text-center"},"Este elemento contiene sub-elementos. Seleccione un elemento específico para editar."):n.createElement("div",{className:"flex-1 flex items-center justify-center text-gray-500 p-8 text-center"},"Seleccione un elemento de la lista para editar su contenido")))),n.createElement(ne,null,n.createElement("div",{className:"p-4 w-full border-t flex justify-between items-center"},n.createElement("div",{className:"flex items-center"},m>0?n.createElement("span",{className:"text-sm text-yellow-500 flex items-center"},n.createElement("span",{className:"w-2 h-2 bg-yellow-500 rounded-full mr-2"}),m," campo",1!==m?"s":""," modificado",1!==m?"s":""):n.createElement("span",{className:"text-sm text-gray-500"},"Sin modificaciones")),n.createElement("div",{className:"flex gap-2"},n.createElement(w,{onClick:e=>{e.preventDefault(),b({}),C()},variant:"outline"},"Cancelar"),n.createElement(w,{variant:"default",onClick:async e=>{try{e.preventDefault();const t=N();if(l){if("function"==typeof o)try{await o(t)}catch{fe("Error en guardando reporte.")}return void C()}if(null==r)return void fe("No se pudo identificar el reporte a editar.");const a=await k(r);a&&a.success?(we("Reporte editado con éxito"),"function"==typeof o&&a.updatedData&&o(a.updatedData),C()):fe("Error editando reporte")}catch(e){fe(e instanceof Error?e.message:"Error inesperado editando reporte.")}},disabled:S||0===m},n.createElement(Ia.A,{size:16,className:"mr-2"}),S?"Guardando...":"Guardar Cambios"))))):n.createElement("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center p-4 z-50"},n.createElement("div",{className:"bg-white rounded-lg shadow-xl w-full max-w-4xl min-h-[85vh] max-h-[85vh] flex flex-col"},n.createElement("div",{className:"p-4 border-b flex justify-between items-center"},n.createElement("h2",{className:"text-lg font-semibold"},"Edit Report"),n.createElement("button",{className:"p-1 rounded-full hover:bg-gray-100",onClick:C},n.createElement(h.A,{size:20}))),n.createElement("div",{className:"p-8 text-center text-gray-500"},"Sin información disponible")))},Ga=se.Ik({patient:se.ai({message:"El paciente es obligatorio"}),preliminaryDiagnosis:se.Yj().min(1,{message:"El diagnóstico preliminar es obligatorio"}),procedureName:se.Yj().min(1,{message:"El nombre del procedimiento es obligatorio"}),subprocedure:se.Yj().optional(),procedureId:se.Yj().min(1,{message:"El id del procedimiento es obligatorio"}),procedureDate:se.Yj().min(1,{message:"La fecha del procedimiento es obligatoria"}),sedation:se.Yj().optional(),referredBy:se.Yj().min(1,{message:"El referido por es obligatorio"}),doctorAssigned:se.Yj().min(1,{message:"El doctor asignado es obligatorio"}),doctorProcedure:se.Yj().min(1,{message:"El doctor del procedimiento es obligatorio"}),description:se.Yj().optional()});var Ha=a(737),Wa=a(4280),Qa=a(8188);const Ka=window._env_?.BASE_URL,Za=({form:e,disabled:t=!1,showAllOption:a=!1})=>{const[r,o]=(0,n.useState)([]),[l,s]=(0,n.useState)(!0),[i,c]=(0,n.useState)(null);return(0,n.useEffect)(()=>{(async()=>{try{const e=await(async()=>{try{return(await X.A.get(`${Ka}/api/proceduresList/`)).data}catch(e){if(X.A.isAxiosError(e)&&e.response)throw new Error(e.response.data.error);throw new Error("Error al consultar los procedimientos")}})();o(e),c(null)}catch{c("Error al cargar los procedimientos")}finally{s(!1)}})()},[]),l?n.createElement(Je,{disabled:!0},n.createElement(Qe,null,n.createElement(Ge,{className:"animate-pulse ",placeholder:"Obteniendo procedimientos..."}))):i?n.createElement("div",{className:"text-red-500/50 text-sm p-2 border rounded-md"},i):n.createElement(Je,{onValueChange:t=>{"all"===t&&(e.setValue("procedureId",""),e.setValue("procedureName",""));const a=r.find(e=>e.id.toString()===t);a&&(e.setValue("procedureId",t),e.setValue("procedureName",a.name))},value:e.getValues("procedureId"),disabled:t},n.createElement(Qe,null,n.createElement(Ge,{placeholder:"Selecciona un procedimiento"})),n.createElement(Ke,null,a&&n.createElement(Ze,{value:"all"},"Todos"),r.map(e=>n.createElement(Ze,{key:e.id,value:e.id.toString()},e.name))))};var en=a(6096),tn=a(4917);a(3632),a(3561);const an=({isOpen:e,onClose:t,pdfUrl:a,title:r="Detalles del Procedimiento"})=>{const o=(0,tn.defaultLayoutPlugin)();return e?n.createElement("div",{className:"fixed inset-0 bg-black bg-opacity-70 flex items-center justify-center z-50",onClick:t},n.createElement("div",{className:"bg-white rounded-lg w-[90%] h-[90%] flex flex-col",onClick:e=>e.stopPropagation()},n.createElement("div",{className:"flex justify-between items-center p-4 border-b shrink-0"},n.createElement("h3",{className:"text-xl font-semibold"},r),n.createElement(w,{onClick:t,className:"text-gray-500 hover:text-gray-700",variant:"ghost"},"Cerrar")),n.createElement("div",{className:"flex-1 overflow-hidden"},a?n.createElement(en.Worker,{workerUrl:"/pdf.worker.min.js"},n.createElement("div",{className:"h-full"},n.createElement(en.Viewer,{fileUrl:a,plugins:[o]}))):n.createElement("div",{className:"h-full flex items-center justify-center text-sm text-muted-foreground"},"No hay documento para mostrar.")))):null};function nn(){const[e,t]=(0,n.useState)({isOpen:!1,pdfUrl:""});return{pdfModalState:e,openPdfModal:(0,n.useCallback)(e=>{t({isOpen:!0,pdfUrl:e})},[]),closePdfModal:(0,n.useCallback)(()=>{t({isOpen:!1,pdfUrl:""})},[])}}const rn=window._env_?.BASE_URL,on=e=>{if(!e)return"bg-gray-200 text-gray-800";const t=e.toLowerCase();return t.includes("inadecu")||t.includes("mala")?"bg-red-100 text-red-700":t.includes("regul")?"bg-orange-100 text-orange-700":t.includes("buen")?"bg-yellow-100 text-yellow-800":t.includes("excel")||t.includes("buena")?"bg-green-100 text-green-800":"bg-gray-200 text-gray-800"},ln=({reportQualityDetails:e})=>{const[t,a]=(0,n.useState)(!0),r=(0,n.useMemo)(()=>{if(!e)return null;if("string"==typeof e)try{return JSON.parse(e)}catch{return{Retroalimentación:e}}return e},[e]),o=(0,n.useMemo)(()=>(e=>{if(!e)return"—";let t=String(e);return t=t.replace(/\\"/g,'"'),t=t.replace(/\\+/g,""),t=t.replace(/\*+/g,""),t=t.replace(/::+/g,":"),t=t.replace(/,\s*,+/g,","),t=t.replace(/\s{2,}/g," "),t=t.replace(/\s+:\s+/g,": "),t=t.replace(/\s+,/g,","),t=t.replace(/,:\s*/g,": "),t=t.trim(),t||"—"})(r?.Retroalimentación??""),[r]);return r?n.createElement("div",{className:"w-full max-w-3xl bg-white shadow rounded-lg border"},n.createElement("div",{className:"flex items-center justify-between p-4 border-b"},n.createElement("div",{className:"flex items-center gap-4"},n.createElement("div",{className:`px-3 py-1 rounded-full text-sm font-medium ${on(r.Calidad)}`},r.Calidad??"Sin calidad"),n.createElement("div",{className:"flex items-center gap-3"},n.createElement("div",{className:"text-sm text-gray-500"},"Puntaje: ",r.Calificación??0))),n.createElement("div",{className:"flex items-center gap-2"},n.createElement("button",{onClick:()=>a(e=>!e),className:"inline-flex items-center gap-2 text-sm text-gray-600 hover:text-gray-800",type:"button","aria-expanded":t},t?n.createElement(n.Fragment,null,n.createElement("span",null,"Ocultar"),n.createElement(Be.A,{className:"w-4 h-4"})):n.createElement(n.Fragment,null,n.createElement("span",null,"Mostrar"),n.createElement(Te.A,{className:"w-4 h-4"}))))),t&&n.createElement("div",{className:"p-4"},n.createElement("div",null,n.createElement("h3",{className:"text-sm font-semibold text-gray-700 mb-2"},"Retroalimentación"),n.createElement("div",{className:"whitespace-pre-wrap text-sm text-gray-700 bg-gray-50 p-3 rounded"},o)))):null};function sn(){return sn=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const[e,t]=(0,n.useState)("description"),[a,r]=(0,n.useState)(null),[o,l]=(0,n.useState)(!1),[s,i]=(0,n.useState)(!1),[c,d]=(0,n.useState)(!1),[m,p]=(0,n.useState)(!1),[g,f]=(0,n.useState)(!1),[b,h]=(0,n.useState)(null),[v,x]=(0,n.useState)(null),[y,E]=(0,n.useState)(null),[N,k]=(0,n.useState)(null),{user:S}=J(),{files:C,updateFiles:A,resetFiles:R}=(()=>{const[e,t]=(0,n.useState)([]);return{files:e,updateFiles:a=>{e.filter(e=>!a.includes(e)).forEach(e=>URL.revokeObjectURL(e.preview)),t(a)},resetFiles:()=>{e.forEach(e=>URL.revokeObjectURL(e.preview)),t([])}}})(),{pdfModalState:z,openPdfModal:_,closePdfModal:j}=nn(),{searchQuery:D,doctors:P,isSearching:O,handleSearchFocus:L,handleSearchBlur:F,handleDoctorSelect:I,handleQueryChange:M,resetSearch:$}=(e=>{const[t,a]=(0,n.useState)(""),[r,o]=(0,n.useState)([]),[l,s]=(0,n.useState)(!1),i=(0,n.useRef)(null),c=(0,n.useRef)(null),d=(0,n.useCallback)(async e=>{try{const t=await(async e=>{try{return(await X.A.get(`${rn}/api/userSearch/`,{params:{q:e}})).data}catch(e){if(X.A.isAxiosError(e)&&e.response)throw new Error(e.response.data.error);throw new Error("Error al consultar los pacientes")}})(e);o(t)}catch(e){$e("Error fetching Doctors:",e)}},[]);return(0,n.useEffect)(()=>()=>{i.current&&clearTimeout(i.current),c.current&&clearTimeout(c.current),localStorage.removeItem("procedureDoctorSelected")},[]),{searchQuery:t,doctors:r,isSearching:l,handleSearchFocus:()=>{s(!0),d(t)},handleSearchBlur:()=>{i.current=setTimeout(()=>{s(!1),o([])},300)},handleDoctorSelect:t=>{i.current&&clearTimeout(i.current),localStorage.setItem("procedureDoctorSelected",`${t.name} ${t.last_name}`),e(t.id.toString()),a(`${t.name} ${t.last_name}`),o([]),s(!1)},handleQueryChange:e=>{a(e),c.current&&clearTimeout(c.current),c.current=setTimeout(()=>{d(e)},300)},resetSearch:()=>{a(""),o([]),s(!1),localStorage.removeItem("procedureDoctorSelected")}}})(e=>{G.setValue("doctorAssigned",e,{shouldValidate:!0})}),{isRecording:U,recordingTime:V,audioBlob:B,startRecording:T,stopRecording:Y,setAudioBlob:q}=(()=>{const[e,t]=(0,n.useState)(!1),[a,r]=(0,n.useState)(null),[o,l]=(0,n.useState)(0),s=(0,n.useRef)(null),i=(0,n.useRef)(null);return(0,n.useEffect)(()=>()=>{i.current&&clearInterval(i.current)},[]),{isRecording:e,recordingTime:o,audioBlob:a,startRecording:(0,n.useCallback)(async()=>{try{l(0),r(null);const e=await navigator.mediaDevices.getUserMedia({audio:!0});s.current=new MediaRecorder(e);const a=[];s.current.ondataavailable=e=>{a.push(e.data)},s.current.onstop=()=>{const t=new Blob(a,{type:"audio/wav"});r(t),e.getTracks().forEach(e=>e.stop()),i.current&&(clearInterval(i.current),i.current=null)},s.current.start(),t(!0),i.current=setInterval(()=>{l(e=>e+1)},1e3)}catch(e){$e("Error accessing microphone:",e)}},[]),stopRecording:(0,n.useCallback)(()=>{s.current&&(s.current.stop(),t(!1))},[]),setRecordingTime:l,setAudioBlob:r}})(),G=(0,le.mN)({resolver:(0,oe.u)(Ga),defaultValues:{patient:0,preliminaryDiagnosis:"",procedureId:"",subprocedure:"",procedureDate:mn,sedation:"",referredBy:"",doctorAssigned:"",doctorProcedure:S?.id.toString()||"",procedureName:"",description:""}}),H=async e=>{l(!0);try{if(!W())return;if(!v)return void fe("Debe de generar el reporte primero.");const t=C.filter(e=>cn.some(t=>e.name.toLowerCase().endsWith(t)));if(0===t.length)return void fe("Debe de subir al menos una imagen al reporte");const a=C.filter(e=>dn.some(t=>e.name.toLowerCase().endsWith(t))),n=new File([v],"report.pdf",{type:"application/pdf"}),o=((e,t="data.json")=>{const a=JSON.stringify(e,null,2),n=new Blob([a],{type:"application/json"});return new File([n],t,{type:"application/json"})})(y),l={patient:e.patient,preliminaryDiagnosis:e.preliminaryDiagnosis,procedureName:e.procedureId,procedureDate:e.procedureDate,sedation:e.sedation,doctorAssigned:e.doctorAssigned,doctorProcedure:e.doctorProcedure,referredBy:e.referredBy,images:t,videos:a,pdf:n,jsonReport:o};await(async e=>{const{patient:t,preliminaryDiagnosis:a,procedureName:n,procedureDate:r,sedation:o,referredBy:l,doctorAssigned:s,doctorProcedure:i,images:c,videos:d,pdf:m,jsonReport:u}=e;try{const e=new FormData;return e.append("patient",t.toString()),e.append("preliminary_diagnosis",a),e.append("procedure_name",n),e.append("procedure_date",r),e.append("sedation",o),e.append("referred_by",l),e.append("doctor_assigned",s),e.append("doctor_of_procedure",i),e.append("report_pdf",m),e.append("json_file",u),c.forEach(t=>{e.append("images",t)}),d.forEach(t=>{e.append("videos",t)}),await X.A.post(`${qa}/api/reports/`,e),!0}catch(e){if(X.A.isAxiosError(e)&&e.response)throw new Error(e.response.data.error);throw new Error("Error al crear el reporte")}})(l),await we("Reporte creado exitosamente"),G.reset(),$(),k(null),x(null),h(null),d(!1),E(null),R(),q(null),r(null)}catch(e){fe(e)}finally{l(!1)}},W=()=>{const e=[{condition:!localStorage.getItem("patientSelect"),fieldName:"Paciente"},{condition:!G.getValues("preliminaryDiagnosis"),fieldName:"Diagnóstico preliminar"},{condition:!G.getValues("procedureId"),fieldName:"Procedimiento"},{condition:!G.getValues("procedureDate"),fieldName:"Fecha del estudio"},{condition:!G.getValues("sedation"),fieldName:"Sedación"},{condition:!G.getValues("referredBy"),fieldName:"Referido por"},{condition:!localStorage.getItem("procedureDoctorSelected"),fieldName:"Médico asignado"},{condition:!G.getValues("doctorProcedure"),fieldName:"Médico del procedimiento"},{condition:!G.getValues("description"),fieldName:"Descripción"},{condition:"Enteroscopia"===G.getValues("procedureName")&&!G.getValues("subprocedure"),fieldName:"Subtipo de Procedimiento"}];for(const{condition:t,fieldName:a}of e)if(t)return fe(`Por favor, complete el campo: ${a}`),!1;return!!C.some(e=>cn.some(t=>e.name.toLowerCase().endsWith(t)))||(fe("Debe de subir al menos una imagen al reporte"),!1)},Q=async e=>{const t=e??G.getValues("description"),a=localStorage.getItem("patientSelect"),n=localStorage.getItem("patientSelectDob"),r=localStorage.getItem("procedureDoctorSelected"),o=`${S.name} ${S.last_name}`,l={procedureId:G.getValues("procedureId"),subprocedure:G.getValues("subprocedure"),patient:a,dob:n,doctorProcedure:r,doctorAssigned:o,rawText:t,sedation:G.getValues("sedation"),referredBy:G.getValues("referredBy"),preliminaryDiagnosis:G.getValues("preliminaryDiagnosis"),procedureDate:G.getValues("procedureDate")};if(W()){p(!0);try{const t=C.filter(e=>cn.some(t=>e.name.toLowerCase().endsWith(t))),a=await(async e=>{const{rawText:t,procedureId:a,subprocedure:n,doctorProcedure:r,doctorAssigned:o,patient:l,images:s,sedation:i,referredBy:c,preliminaryDiagnosis:d,procedureDate:m,dob:u,treatRawTextAsJson:p}=e;try{const e=new FormData;return e.append("raw_text",t),e.append("procedure_id",a),e.append("procedure_type",n),e.append("doctor_of_procedure",r),e.append("doctor_assigned",o),e.append("patient_name",l),e.append("sedacion",i),e.append("referred_by",c),e.append("preliminary_diagnosis",d),e.append("procedure_date",m),e.append("patient_dob",u),e.append("treat_raw_text_as_json",(p??!1).toString()),s.forEach(t=>{e.append("images",t)}),(await X.A.post(`${qa}/api/reports/pdf-standardization/`,e)).data}catch(e){if(X.A.isAxiosError(e)&&e.response)throw new Error(e.response.data.error);throw new Error("Error al generar el reporte PDF")}})({...l,treatRawTextAsJson:!!e,images:t});k(a.report_quality);const n=((e,t="application/pdf")=>{const a=atob(e),n=new Array(a.length);for(let e=0;e()=>{b&&URL.revokeObjectURL(b)},[b]),n.createElement("div",{className:"flex min-h-screen justify-center bg-zinc-100 p-4"},n.createElement(K,{className:"w-full max-w-2xl bg-white shadow-md h-fit"},n.createElement(Z,{className:"bg-sky-500 rounded-t-xl text-white mb-4"},n.createElement(ee,{className:"text-xl font-semibold tracking-tight md:text-2xl"},"Registro de nuevo reporte"),n.createElement(te,{className:"text-indigo-100"},"Complete todos los campos requeridos para el registro del reporte.")),n.createElement(ae,null,n.createElement(ke,G,n.createElement("form",{onSubmit:G.handleSubmit(H),className:"space-y-4"},n.createElement(Ce,{control:G.control,name:"patient",render:({field:e})=>n.createElement(ja,{field:e,onSelect:e=>{localStorage.setItem("patientSelect",e.patient_name),localStorage.setItem("patientSelectDob",e.dob)},onClearSelection:()=>{localStorage.removeItem("patientSelect"),localStorage.removeItem("patientSelectDob")}})}),n.createElement(Ce,{control:G.control,name:"preliminaryDiagnosis",render:({field:e})=>n.createElement(Re,null,n.createElement(ze,null,"Diagnóstico preliminar"),n.createElement(_e,null,n.createElement(sa,sn({className:"w-full",placeholder:"Describe el diagnóstico"},e))),n.createElement(je,null))}),n.createElement("div",{className:"grid grid-cols-2 gap-2"},n.createElement(Re,null,n.createElement(ze,null,"Procedimiento"),n.createElement(Za,{form:G,disabled:o}),G.formState.errors.procedureId&&n.createElement(je,null,G.formState.errors.procedureId.message)),n.createElement(Ce,{control:G.control,name:"procedureDate",render:({field:e})=>n.createElement(Re,null,n.createElement(ze,null,"Fecha del estudio"),n.createElement(_e,null,n.createElement(Jt,{value:e.value,onChange:e.onChange,maxDate:mn,initialDate:mn})),n.createElement(je,null))}),"Enteroscopia"===G.getValues("procedureName")&&n.createElement(Re,{className:"col-span-2 "},n.createElement(ze,null,"Subtipo de Procedimiento"),n.createElement(Je,{disabled:o,value:G.getValues("subprocedure"),onValueChange:e=>G.setValue("subprocedure",e)},n.createElement(Qe,null,n.createElement(Ge,{placeholder:"Selecciona un subtipo de procedimiento"})),n.createElement(Ke,null,["Retrograda","Anterograda","Anterograda y Retrograda"].map(e=>n.createElement(Ze,{key:e,value:e},e)))),G.formState.errors.procedureId&&n.createElement(je,null,G.formState.errors.procedureId.message)),n.createElement(Ce,{control:G.control,name:"sedation",render:({field:e})=>n.createElement(Re,{className:"col-span-full"},n.createElement(ze,null,"Sedación"),n.createElement(_e,null,n.createElement(Pe,sn({placeholder:"Especificar medicamentos"},e))),n.createElement(je,null))}),n.createElement(Ce,{control:G.control,name:"referredBy",render:({field:e})=>n.createElement(Re,{className:"col-span-full"},n.createElement(ze,null,"Referido por"),n.createElement(_e,null,n.createElement(Pe,sn({placeholder:"Es referido por..."},e))),n.createElement(je,null))})),n.createElement($a,{user:{id:S.id.toString(),name:S.name,last_name:S.last_name},searchQuery:D,doctors:P,isSearching:O,handleSearchFocus:L,handleSearchBlur:F,handleDoctorSelect:I,handleQueryChange:M}),n.createElement("div",{className:"space-y-4"},n.createElement("div",{className:"col-span-3 flex flex-col gap-2"},n.createElement("div",{className:"flex justify-between"},n.createElement(w,{variant:"description"===e?"default":"outline",onClick:e=>{e.preventDefault(),t("description")},className:u("justify-start hover:bg-gray-100","description"===e&&"bg-sky-500")},n.createElement(Ha.A,{className:"h-4 w-4 mr-2"}),"Descripción"),n.createElement(w,{variant:"upload"===e?"default":"outline",onClick:e=>{e.preventDefault(),t("upload")},className:u("justify-start hover:bg-gray-100","upload"===e&&"bg-sky-500")},n.createElement(Da.A,{className:"h-4 w-4 mr-2"}),"Subir audio"),n.createElement(w,{variant:"record"===e?"default":"outline",onClick:e=>{e.preventDefault(),t("record")},className:u("justify-start hover:bg-gray-100","record"===e&&"bg-sky-500")},n.createElement(Oa.A,{className:"h-4 w-4 mr-2"}),"Grabar audio"))),n.createElement(Fa,{activeSection:e,uploadedFileName:a,handleFileUpload:e=>{const t=e.target.files?.[0];t&&(r(t.name),q(null))},isRecording:U,recordingTime:V,audioBlob:B,startRecording:T,stopRecording:Y,handleTranscribeUploaded:async()=>{const e=document.getElementById("audio-upload")?.files?.[0];if(e){i(!0);try{const a=await Xa(e);a.transcript&&(G.setValue("description",a.transcript),t("description"))}catch{fe("Error transcribiendo el audio")}finally{i(!1)}}},handleTranscribeRecorded:async()=>{if(!B)return;i(!0);const e=new File([B],"recorded_audio.wav",{type:"audio/wav"});try{const a=await Xa(e);a.transcript&&(G.setValue("description",a.transcript),t("description"))}catch{fe("Error transcribiendo el audio")}finally{i(!1)}},isTranscribing:s,control:G.control})),N&&n.createElement(ln,{reportQualityDetails:N}),n.createElement("div",{className:"grid grid-cols-2"},n.createElement("div",{className:"w-full flex items-center flex-col"},n.createElement("p",{className:"text-md font-semibold"},"Formatos multimedia"),n.createElement("div",null,n.createElement(_a,{files:C,onFilesChange:A}),C.length>0&&n.createElement("div",{className:"text-sm text-gray-600 flex items-center gap-2 mt-1"},n.createElement(va.A,{className:"h-4 w-4"}),n.createElement("span",{className:"font-medium"},C.length," archivo",C.length>1?"s":""," multimedia")))),n.createElement("div",{className:"flex items-center space-x-4 "},c&&n.createElement("div",{className:"w-full items-center text-center"},n.createElement(w,{variant:"outline",onClick:e=>{e.preventDefault(),b?_(b):fe("No hay PDF generado para mostrar")}},n.createElement(Wa.A,{className:"h-4 w-4"}),"Ver reporte")),y&&"object"==typeof y&&!Array.isArray(y)&&n.createElement(n.Fragment,null,n.createElement(w,{variant:"outline",onClick:e=>{e.preventDefault(),y?f(!0):fe("No hay reporte para editar")}},n.createElement(Qa.A,{className:"h-4 w-4"}),"Editar"),n.createElement(Ja,{isOpen:g,initialData:y,onClose:()=>f(!1),onSave:e=>{Q(JSON.stringify(e))},skipSubmit:!0})))),n.createElement(Ma,{isSubmitting:o,onSubmit:G.handleSubmit(H),onGenerate:()=>Q(),isGenerating:m}))))),n.createElement(an,{isOpen:z.isOpen,onClose:j,pdfUrl:z.pdfUrl,title:"Documento del reporte"}))},path:"/report",isPrivate:!0,onSideBar:!0,title:"Reportes",showSideBar:!0,icon:()=>n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"},n.createElement("path",{d:"M4 6h2v2H4zm0 5h2v2H4zm0 5h2v2H4zm16-8V6H8.023v2H18.8zM8 11h12v2H8zm0 5h12v2H8z"}))}];function pn(){return pn=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const[o,l]=(0,n.useState)(0),s=(0,n.useMemo)(()=>["Pensando...","Analizando reportes...","Recolectando información...","Analizando información..."],[]),i=t&&t.length>0?t:s;return(0,n.useEffect)(()=>{const e=setInterval(()=>{l(e=>(e+1)%i.length)},a);return()=>clearInterval(e)},[i.length,a]),n.createElement("div",{role:"status",className:u("w-full max-w-3xl mx-auto p-4 flex flex-col gap-4 items-center",e)},n.createElement("div",{className:"flex-1 w-full"},n.createElement("div",{className:"flex items-center gap-3 mb-3"},n.createElement(gn,{className:"h-10 w-48"}),n.createElement(gn,{className:"h-10 w-20"}),n.createElement(gn,{className:"h-10 w-full"})),n.createElement("div",{className:"flex w-full justify-center items-center animate-pulse mb-3"},n.createElement(Oe.A,{className:"h-6 w-6 text-gray-400 animate-spin"}),n.createElement("div",{className:"text-lg font-medium text-gray-400 min-h-[1.2rem]"},i[o])),n.createElement("div",{className:"space-y-2 mb-3"},n.createElement(gn,{className:"h-6 w-full"}),n.createElement(gn,{className:"h-8 w-11/12"}),n.createElement(gn,{className:"h-6 w-10/12"})),r&&n.createElement("div",{className:"flex gap-2 mt-2"},n.createElement(gn,{className:"h-8 w-24 rounded-full"}),n.createElement(gn,{className:"h-8 w-28 rounded-full"}),n.createElement(gn,{className:"h-8 w-20 rounded-full"}))))},wn=window._env_?.BASE_URL,bn=async e=>{try{return(await X.A.get(`${wn}/api/reports/${e}/pdf_url/`)).data.pdf_url}catch(e){if(X.A.isAxiosError(e)&&e.response)throw new Error(e.response.data.error||"No se pudo cargar la URL del PDF.");throw new Error("Error de red al obtener la URL del PDF.")}},hn=se.Ik({mainQuestion:se.Yj().min(5,{message:"La pregunta es demasiada corta"}).max(50,{message:"La pregunta es muy larga"}),procedureId:se.Yj().min(1,{message:"El procedimiento es obligatorio"}).optional(),startDate:se.Yj().min(1,{message:"La fecha es invalida"}).optional(),endDate:se.Yj().min(1,{message:"La fecha es invalida"}).optional(),patient:se.ai().optional(),procedureDoctor:se.Yj().min(1,{message:"El paciente es invalido"}).optional()}),vn=window._env_?.BASE_URL,xn="REPORT_QUESTIONS_STATE";var yn=a(1060);const En=({text:e,speed:t=30,startDelay:a=100,showCursor:r=!0,cursorChar:o="|",className:l,onFinished:s,allowSkip:i=!0})=>{const[c,d]=(0,n.useState)(""),m=(0,n.useRef)(0),u=(0,n.useRef)(null),p=(0,n.useRef)(!1),g=()=>{u.current&&(window.clearInterval(u.current),u.current=null)};return(0,n.useEffect)(()=>e?((()=>{g(),m.current=0,d(""),p.current=!0;const n=window.setTimeout(()=>{u.current=window.setInterval(()=>{m.current+=1,d(e.slice(0,m.current)),m.current>=e.length&&(g(),s?.())},t),window.clearTimeout(n)},a)})(),()=>g()):(d(""),void g()),[e,t,a]),(0,n.useEffect)(()=>()=>g(),[]),n.createElement("div",{onClick:()=>{i&&(g(),d(e),s?.())},role:"status","aria-live":"polite",className:l,style:{whiteSpace:"pre-wrap",cursor:i?"pointer":"default"},title:i?"Click to show full text":void 0},n.createElement("span",null,c),r&&c!==e&&n.createElement("span",{"aria-hidden":!0,className:"inline-block ml-1 animate-pulse"},o))},Nn=({answer:e,reports:t,totalReports:a,loadingPdf:r,handleViewDetailsClick:o,pagination:l})=>n.createElement(yn.P.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},transition:{duration:.3,ease:"easeInOut"}},n.createElement("div",{className:"space-y-6 my-6"},n.createElement("div",{className:"bg-white p-6 rounded-xl shadow-lg border border-gray-100"},n.createElement("h3",{className:"text-lg font-semibold text-gray-900 mb-4"},"Respuesta"),n.createElement("div",{className:"min-h-[120px] border-gray-200 bg-gray-50 rounded-lg p-4"},n.createElement(En,{text:e,speed:30,startDelay:80,cursorChar:"▎",allowSkip:!0})))),n.createElement("div",{className:"bg-white rounded-xl shadow-lg mb-6 overflow-hidden border border-gray-100 p-4"},n.createElement("div",{className:"flex items-center justify-between"},n.createElement("h2",{className:"text-lg font-semibold text-gray-900 mb-2"},"Reportes de apoyo"),n.createElement(Je,{value:l.pageSize?.toString(),onValueChange:e=>{l.setPageSize(Number(e)),l.setCurrentPage(1)},defaultValue:l.pageSize?.toString()},n.createElement(Qe,{className:"w-fit"},n.createElement(Ge,{placeholder:"Tamaño pag."})),n.createElement(Ke,null,n.createElement(Ze,{value:"10"},"10"),n.createElement(Ze,{value:"25"},"25"),n.createElement(Ze,{value:"50"},"50")))),n.createElement("div",{className:"border rounded-lg overflow-hidden mt-4"},n.createElement(rt,null,n.createElement(ot,{className:"bg-sky-500"},n.createElement(st,{className:"hover:bg-transparent"},n.createElement(it,null,"Fecha"),n.createElement(it,null,"Paciente"),n.createElement(it,null,"Procedimiento"),n.createElement(it,null,"Detalles"))),n.createElement(lt,null,t.map(e=>n.createElement(st,{key:e.id},n.createElement(ct,null,e.fecha),n.createElement(ct,null,e.paciente),n.createElement(ct,null,e.procedimiento),n.createElement(ct,null,n.createElement(w,{onClick:()=>o(e.id),disabled:r[e.id],variant:"outline"},r[e.id]?n.createElement(Oe.A,{className:"animate-spin"}):n.createElement("span",{className:"flex items-center"},n.createElement(Ha.A,{size:14})," Detalles")))))))),n.createElement("div",{className:"flex justify-between mt-4"},n.createElement("span",null,l.firstItemIndex," - ",l.lastItemIndex," de ",a),n.createElement("div",null,n.createElement(w,{variant:"outline",size:"sm",onClick:()=>l.setCurrentPage(e=>e-1),disabled:l.currentPage<=1},n.createElement(tt.A,null)),n.createElement(w,{variant:"outline",size:"sm",onClick:()=>l.setCurrentPage(e=>e+1),disabled:l.currentPage>=l.totalPages},n.createElement(at.A,null)))))),kn=[{element:()=>{const{form:e,question:t,setQuestion:a,isLoading:r,answer:o,supportingReports:l,selectedDoctor:s,setSelectedDoctor:i,selectedPatient:c,setSelectedPatient:d,handleSearch:m}=(()=>{const{user:e}=J(),[t,a]=(0,n.useState)(!1),[r,o]=(0,n.useState)(null),[l,s]=(0,n.useState)([]),[i,c]=(0,n.useState)(""),[d,m]=(0,n.useState)(null),[u,p]=(0,n.useState)(null),g=(0,le.mN)({resolver:(0,oe.u)(hn),defaultValues:{mainQuestion:"",procedureId:"",startDate:"",endDate:"",patient:0,procedureDoctor:""}});return(0,n.useEffect)(()=>{const e=localStorage.getItem(xn);if(e)try{const t=JSON.parse(e);c(t.question||""),o(t.answer),s(t.supportingReports||[]),t.selectedDoctor&&m(t.selectedDoctor),t.selectedPatient&&p(t.selectedPatient),t.procedureId&&g.setValue("procedureId",t.procedureId),t.filters.startDate&&g.setValue("startDate",t.filters.startDate),t.filters.endDate&&g.setValue("endDate",t.filters.endDate),t.selectedPatient&&g.setValue("patient",t.selectedPatient.patient_id),t.selectedDoctor&&g.setValue("procedureDoctor",t.selectedDoctor.id.toString())}catch{localStorage.removeItem(xn)}},[g]),(0,n.useEffect)(()=>{if(!r)return;const e={question:i,answer:r,supportingReports:l,filters:{startDate:g.getValues("startDate")||null,endDate:g.getValues("endDate")||null},selectedDoctor:d,selectedPatient:u,procedureId:g.getValues("procedureId")};localStorage.setItem(xn,JSON.stringify(e))},[r]),{form:g,question:i,setQuestion:c,isLoading:t,answer:r,supportingReports:l,selectedDoctor:d,setSelectedDoctor:m,selectedPatient:u,setSelectedPatient:p,handleSearch:async()=>{if(!i.trim())return fe("Por favor, ingrese una pregunta.");const t=g.getValues("startDate"),n=g.getValues("endDate");a(!0),s([]),o(null);try{const a={procedureType:g.getValues("procedureId")||void 0,startDate:t,endDate:n,patientId:g.getValues("patient")||void 0,doctorId:d?d.id.toString():void 0},r=await(async e=>{try{return(await X.A.post(`${vn}/api/reports/query/`,e)).data}catch(e){if(X.A.isAxiosError(e)&&e.response)throw new Error(e.response.data.error||"Falló la consulta de reportes.");throw new Error("Error de red al realizar la consulta.")}})({question:i,filters:a,user_id:e?.id});o(r.answer),s(r.supporting_reports)}catch(e){fe(e instanceof Error?e.message:"Error en la búsqueda.")}finally{a(!1)}}}})(),[u,p]=(0,n.useState)(10),[g,f]=(0,n.useState)(1),[b,h]=(0,n.useState)({}),{pdfModalState:v,openPdfModal:x,closePdfModal:y}=nn(),E=(0,n.useMemo)(()=>{const e=(g-1)*u;return l.slice(e,e+u)},[g,u,l]),N=Math.ceil(l.length/u),k=l.length>0?(g-1)*u+1:0,S=Math.min(g*u,l.length);return n.createElement("div",{className:"min-h-screen bg-zinc-100 p-6"},n.createElement(K,{className:"shadow-xl"},n.createElement("div",{className:"rounded-t-md bg-sky-500 px-6 py-4"},n.createElement(Z,{className:"space-y-1 p-0"},n.createElement(ee,{className:"text-2xl font-bold tracking-tight text-white md:text-3xl"},"Consulta de reportes"),n.createElement(te,{className:"text-indigo-100"},"Realiza preguntas basado en procedimientos, pacientes, fechas, etc."))),n.createElement(ae,{className:"p-4"},n.createElement("div",{className:"mb-2"},n.createElement("p",{className:"font-semibold text-lg mb-2"},"¿Cuál es tu pregunta?"),n.createElement(Pe,{type:"search",placeholder:"Describe la pregunta aquí...",value:t,onChange:e=>a(e.target.value)})),n.createElement(ke,e,n.createElement("div",{className:"hidden"})),n.createElement("div",{className:"flex justify-center"},n.createElement(w,{size:"lg",onClick:m,disabled:r,className:"h-10 rounded-xl text-white shadow-lg bg-sky-500 hover:bg-sky-600 transition-all transform hover:scale-[1.02]"},n.createElement(Ve.A,{className:"mr-2"}),"Consultar")))),r&&n.createElement("div",{className:"flex min-h-[30vh] items-center justify-center bg-gray-100 rounded-lg mt-4"},n.createElement(fn,null)),o&&!r&&n.createElement(Nn,{answer:o,reports:E,totalReports:l.length,loadingPdf:b,handleViewDetailsClick:async e=>{h(t=>({...t,[e]:!0}));try{const t=await bn(e);x(t)}catch(e){fe(e instanceof Error?e.message:"No se pudo cargar el PDF.")}finally{h(t=>({...t,[e]:!1}))}},pagination:{currentPage:g,pageSize:u,totalPages:N,setPageSize:p,setCurrentPage:f,firstItemIndex:k,lastItemIndex:S}}),n.createElement(an,{isOpen:v.isOpen,onClose:y,pdfUrl:v.pdfUrl,title:"Documento del procedimiento"}))},path:"/reportQuestions",isPrivate:!0,onSideBar:!0,title:"Consultas",showSideBar:!0,icon:()=>n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 50 50",fill:"currentColor"},n.createElement("path",{d:"M 21 3 C 11.601563 3 4 10.601563 4 20 C 4 29.398438 11.601563 37 21 37 C 24.355469 37 27.460938 36.015625 30.09375 34.34375 L 42.375 46.625 L 46.625 42.375 L 34.5 30.28125 C 36.679688 27.421875 38 23.878906 38 20 C 38 10.601563 30.398438 3 21 3 Z M 21 7 C 28.199219 7 34 12.800781 34 20 C 34 27.199219 28.199219 33 21 33 C 13.800781 33 8 27.199219 8 20 C 8 12.800781 13.800781 7 21 7 Z"})),acceptedRoles:["admin","researcher"]}],Sn=window._env_?.BASE_URL,Cn=async e=>{try{return(await X.A.get(`${Sn}/api/reports/${e}/`)).data}catch(e){if(X.A.isAxiosError(e)&&e.response)throw new Error(e.response.data.error||"Failed to fetch report details.");throw new Error("Network error while fetching report details.")}},An=async e=>{try{return(await X.A.get(`${Sn}/api/reports/${e}/images/`)).data.images}catch(e){if(X.A.isAxiosError(e)&&e.response)throw new Error(e.response.data.error||"No se pudo cargar las URLs de las imágenes.");throw new Error("Error de red al obtener las URLs de las imágenes.")}},Rn=async e=>{try{return(await X.A.get(`${Sn}/api/reports/${e}/videos/`)).data.videos}catch(e){if(X.A.isAxiosError(e)&&e.response)throw new Error(e.response.data.error||"No se pudo cargar las URLs de los videos.");throw new Error("Error de red al obtener las URLs de los videos.")}};var zn=a(6505);const _n=e=>{try{const t=e.split("/").pop()??"video.mp4";return decodeURIComponent(t.split("?")[0])}catch{return"video.mp4"}},jn=({onClose:e,reportId:t})=>{const a=null!=t,[r,o]=(0,n.useState)(!1),[l,s]=(0,n.useState)([]),[i,c]=(0,n.useState)(null);return(0,n.useEffect)(()=>{(async()=>{if(!a||null==t)return s([]),c(null),void o(!1);o(!0);try{const e=await Rn(t);s(Array.isArray(e)?e:[])}catch(e){fe(e?.message||"Error del sistema al obtener la informacion.")}finally{o(!1)}})()},[a,t]),(0,n.useMemo)(()=>e=>{if(null==e)return null;if(0===e)return"0 B";const t=Math.floor(Math.log(e)/Math.log(1024));return`${parseFloat((e/Math.pow(1024,t)).toFixed(2))} ${["B","KB","MB","GB","TB"][t]}`},[]),n.createElement(re,{title:"Videos del reporte",isOpen:a,setIsOpen:t=>{t||e()}},n.createElement(ae,{className:"flex flex-1 h-full overflow-hidden justify-center items-start p-6"},r?n.createElement("div",{className:"w-full max-w-4xl h-[60vh] md:h-[70vh] flex items-center justify-center"},n.createElement(Le,null)):n.createElement("div",{className:"w-full max-w-4xl h-[60vh] md:h-[70vh] flex flex-col gap-4 mx-auto"},n.createElement("div",{className:"flex-1 overflow-auto p-5"},n.createElement("div",{className:"flex items-center justify-between mb-4"},n.createElement("p",{className:"text-sm text-muted-foreground"},"Selecciona un video para descargar.")),0===l.length?n.createElement("div",{className:"text-center text-sm text-muted-foreground py-16"},"No se encontraron videos."):n.createElement(n.Fragment,null,n.createElement("ul",{className:"space-y-3"},l.map((e,t)=>{const a=_n(e),r=i===t;return n.createElement("li",{key:`${e}-${t}`,className:"last:mb-2"},n.createElement(K,{className:"border-0 bg-gray-50 hover:bg-sky-100 shadow-sm hover:shadow-md rounded-lg overflow-hidden"},n.createElement(ae,{className:"flex items-center justify-between gap-4 p-1 md:p-2"},n.createElement("div",{className:"min-w-0 flex items-center gap-4"},n.createElement("div",{className:"flex-shrink-0 w-10 h-10 rounded-full bg-sky-100 flex items-center justify-center"},n.createElement(zn.A,{className:"w-5 h-5 text-sky-600"})),n.createElement("div",{className:"min-w-0"},n.createElement("div",{className:"flex items-baseline gap-3"},n.createElement("span",{className:"font-medium truncate text-sm md:text-base text-slate-800"},"Video ",t+1," — ",a)))),n.createElement("div",{className:"flex items-center gap-3"},n.createElement(w,{type:"button",variant:"outline",onClick:()=>(async(e,t)=>{if(e){c(t);try{const t=await fetch(e);if(!t.ok)throw new Error(`Error al obtener el archivo: ${t.status}`);const a=await t.blob(),n=_n(e),r=URL.createObjectURL(a),o=document.createElement("a");o.href=r,o.download=n,document.body.appendChild(o),o.click(),o.remove(),URL.revokeObjectURL(r)}catch{try{window.open(e,"_blank","noopener")}catch{fe("No se pudo descargar ni abrir el archivo. ")}}finally{c(null)}}else fe("No hay archivo asociado a este registro para descargar.")})(e,t),disabled:r,"aria-busy":r,className:"rounded-lg px-4 py-2 flex items-center gap-2 shadow-sm hover:shadow-md"},n.createElement(zn.A,{className:"h-4 w-4"}),r?"Descargando…":"Descargar")))))})))))))};function Dn({filters:e,onChange:t,pageSize:a,onPageSizeChange:r,onSearch:o,onClear:l,disabled:s=!1}){return n.createElement(n.Fragment,null,n.createElement("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4 mb-4"},n.createElement("div",{className:"flex-1"},n.createElement(ye,{className:"block text-sm font-medium mb-2"},"Fecha de inicio"),n.createElement(Jt,{value:e.startDate||"",onChange:a=>t({...e,startDate:a})})),n.createElement("div",{className:"flex-1"},n.createElement(ye,{className:"block text-sm font-medium mb-2"},"Fecha final"),n.createElement(Jt,{value:e.endDate||"",onChange:a=>t({...e,endDate:a})})),n.createElement("div",{className:"flex-1"},n.createElement(ye,{className:"block text-sm font-medium mb-2"},"Busqueda general"),n.createElement(Pe,{placeholder:"Diagnóstico, sedación, procedimiento, etc.",value:e.general_search||"",onChange:a=>t({...e,general_search:a.target.value})}))),n.createElement("div",{className:"flex items-center justify-between gap-4 mb-8"},n.createElement("div",{className:"space-x-2"},n.createElement(w,{onClick:o,disabled:s},n.createElement(Ve.A,{className:"w-4 h-4 mr-2"}),"Filtrar"),n.createElement(w,{variant:"outline",onClick:l,disabled:s},n.createElement(h.A,{className:"w-4 h-4 mr-2"}),"Quitar filtros")),n.createElement("div",null,n.createElement(ye,{className:"text-sm"},"Registros por página:"),n.createElement(Je,{onValueChange:e=>r(Number(e)),value:a.toString(),defaultValue:a.toString()},n.createElement(Qe,null,n.createElement(Ge,{placeholder:"Seleccione..."})),n.createElement(Ke,null,n.createElement(Ze,{value:"10"},"10"),n.createElement(Ze,{value:"25"},"25"),n.createElement(Ze,{value:"50"},"50"),n.createElement(Ze,{value:"100"},"100"))))))}var Pn=a(7513),On=a(1759);function Ln({results:e,pageSize:t,isLoading:a,onPageChange:r,onOpenVideos:o,onViewDetails:l,onEdit:s,loadingView:i,loadingEdit:c}){if(a)return n.createElement("div",{className:"flex min-h-[45vh] items-center justify-center bg-gray-100 rounded-lg border"},n.createElement(Le,{alternativeLabel:"Buscando..."}));const d=e?.results??[],m=e?{count:e.count,next:e.next,previous:e.previous}:void 0;return 0===d.length?n.createElement("div",{className:"flex min-h-[45vh] items-center justify-center bg-white rounded-lg border"},n.createElement("div",{className:"text-sm text-muted-foreground"},"No se encontraron resultados.")):n.createElement(rt,{enablePagination:!0,paginationData:m,onPageChange:r,pageSize:t},n.createElement(ot,null,n.createElement(st,null,n.createElement(it,null,"Fecha"),n.createElement(it,null,"Paciente"),n.createElement(it,null,"Fecha de Nacimiento"),n.createElement(it,null,"Procedimiento"),n.createElement(it,null,"Acciones"))),n.createElement(lt,null,d.map(e=>{const t=!!i[e.id],a=!!c[e.id],r=t||a;return n.createElement(st,{key:e.id},n.createElement(ct,null,e.fecha),n.createElement(ct,null,e.paciente),n.createElement(ct,null,e.fecha_nacimiento),n.createElement(ct,null,e.procedimiento),n.createElement(ct,{className:"text-center"},n.createElement("div",{className:"flex space-x-1 justify-center"},n.createElement(w,{type:"button",variant:"outline",size:"sm",onClick:()=>o(e.id),disabled:r,"aria-label":`Ver videos del reporte ${e.id}`},n.createElement(Pn.A,{size:16,className:"mr-1"}),"Videos"),n.createElement(w,{type:"button",variant:"outline",size:"sm",onClick:()=>l(e.id),disabled:r,className:t?"opacity-80 cursor-not-allowed animate-pulse":"","aria-label":`Ver detalles del reporte ${e.id}`},t?n.createElement("span",{className:"text-xs font-semibold flex items-center"},n.createElement(Le,{alternativeLabel:"Cargando..."})):n.createElement(n.Fragment,null,n.createElement(On.A,{size:16,className:"mr-1"}),"Reporte")),n.createElement(w,{type:"button",variant:"outline",size:"sm",onClick:()=>s(e.id),disabled:r,"aria-label":`Editar reporte ${e.id}`},a?n.createElement("span",{className:"text-xs font-semibold flex items-center"},n.createElement(Oe.A,{className:"animate-spin"})):n.createElement(n.Fragment,null,n.createElement(Qa.A,{size:16,className:"mr-1"}),"Editar")))))})))}const Fn=[{element:()=>{const e=(0,n.useMemo)(()=>function(e){if(!e)return null;try{const t=JSON.parse(e);return t?"number"!=typeof t.id||"string"!=typeof t.name||"string"!=typeof t.last_name?null:{id:t.id,name:t.name,last_name:t.last_name}:null}catch{return null}}(sessionStorage.getItem("userData")),[]),t=e?String(e.id):void 0,{filters:a,setFilters:r,pageSize:o,setPageSize:l,results:s,isLoading:i,error:c,setError:d,search:m,goToPage:u,clearFilters:p}=function({doctorId:e,initialPageSize:t=10}){const[a,r]=(0,n.useState)({}),[o,l]=(0,n.useState)(t),[s,i]=(0,n.useState)(null),[c,d]=(0,n.useState)(!0),[m,u]=(0,n.useState)(null),p=(0,n.useMemo)(()=>({...a,...e?{doctor:e}:{}}),[a,e]),g=(0,n.useCallback)(async t=>{if(!e)return u("No se pudo identificar al doctor. Por favor, inicie sesión de nuevo."),i(null),void d(!1);const a={...t??p,doctor:e},n=function(e){const{startDate:t,endDate:a}=e;return t&&!a||!t&&a?"Debe proporcionar tanto la fecha de inicio como la fecha final.":t&&a&&t>a?"La fecha de inicio no puede ser posterior a la fecha final.":null}(a);if(n)u(n);else{u(null),d(!0);try{const e=await(async(e,t)=>{try{const a=new URLSearchParams;return e.procedureType&&a.append("procedure_type",e.procedureType),e.startDate&&a.append("start_date",e.startDate),e.endDate&&a.append("end_date",e.endDate),e.doctor&&a.append("doctor",e.doctor),e.general_search&&a.append("general_search",e.general_search),a.append("page_size",String(t)),(await X.A.get(`${wn}/api/reports/search/`,{params:a})).data}catch(e){if(X.A.isAxiosError(e)&&e.response)throw new Error(e.response.data.error||"Falló al buscar los reportes.");throw new Error("Error de red al buscar los reportes.")}})(a,o);i(e)}catch(e){const t=e instanceof Error?e.message:"Ocurrió un error en la búsqueda.";u(t),i(null)}finally{d(!1)}}},[e,p,o]),f=(0,n.useCallback)(async e=>{d(!0);try{const t=await(async e=>{try{return(await X.A.get(e)).data}catch(e){if(X.A.isAxiosError(e)&&e.response)throw new Error(e.response.data.error||"Falló al cambiar de página.");throw new Error("Error de red al cambiar de página.")}})(e);i(t)}catch(e){const t=e instanceof Error?e.message:"Error al cambiar de página.";u(t)}finally{d(!1)}},[]),w=(0,n.useCallback)(()=>{r({}),l(t)},[t]);return(0,n.useEffect)(()=>{g()},[e,o]),{filters:a,setFilters:r,pageSize:o,setPageSize:l,results:s,isLoading:c,error:m,setError:u,search:g,goToPage:f,clearFilters:w}}({doctorId:t,initialPageSize:10}),[g,f]=(0,n.useState)({}),[w,b]=(0,n.useState)({}),{pdfModalState:h,openPdfModal:v,closePdfModal:x}=nn(),[y,E]=(0,n.useState)(null),[N,k]=(0,n.useState)({isOpen:!1,reportId:null,initialData:null}),S=(0,n.useMemo)(()=>e?`Histórico del Doctor ${e.name} ${e.last_name}`:"Histórico del Doctor",[e]);(0,n.useEffect)(()=>{c&&(fe(c),d(null))},[c,d]);const C=(e,t)=>{f(a=>({...a,[e]:t}))},A=(e,t)=>{b(a=>({...a,[e]:t}))};return n.createElement("div",{className:"p-6 min-h-screen bg-zinc-100"},n.createElement(K,{className:"overflow-hidden border-none bg-white/80 backdrop-blur-sm shadow-xl"},n.createElement("div",{className:"bg-sky-500 px-5 py-4"},n.createElement(Z,{className:"p-0 space-y-1"},n.createElement(ee,{className:"text-2xl font-bold tracking-tight text-white md:text-3xl"},S),n.createElement(te,{className:"text-indigo-100"},"Consulta el historial de reportes realizados."))),n.createElement(ae,{className:"pt-2"},n.createElement(Dn,{filters:a,onChange:r,pageSize:o,onPageSizeChange:l,onSearch:()=>{m()},onClear:()=>{p(),m({})},disabled:i}),n.createElement(Ln,{results:s,pageSize:o,isLoading:i,onPageChange:u,onOpenVideos:E,onViewDetails:async e=>{if(!g[e]&&!w[e]){C(e,!0);try{const t=await bn(e);v(t)}catch(e){const t=e instanceof Error?e.message:"No se pudo cargar el PDF del reporte.";d(t)}finally{C(e,!1)}}},onEdit:async e=>{if(!w[e]&&!g[e]){A(e,!0);try{const t=await(async e=>{try{return(await X.A.get(`${wn}/api/reports/${e}/json_url/`)).data.json_url}catch(e){if(X.A.isAxiosError(e)&&e.response)throw new Error(e.response.data.error||"No se pudo cargar la URL del JSON.");throw new Error("Error de red al obtener la URL del JSON.")}})(e),a=await fetch(t);if(!a.ok)throw new Error("No se pudo descargar el archivo JSON desde S3.");const n=await a.json();k({isOpen:!0,reportId:e,initialData:n})}catch(e){const t=e instanceof Error?e.message:"No se pudo cargar el JSON del reporte.";d(t)}finally{A(e,!1)}}},loadingView:g,loadingEdit:w}))),n.createElement(an,{isOpen:h.isOpen,onClose:x,pdfUrl:h.pdfUrl,title:"Documento del procedimiento"}),n.createElement(Ja,{isOpen:N.isOpen,initialData:N.initialData,reportId:N.reportId,onClose:()=>k({isOpen:!1,reportId:null,initialData:null}),onSave:e=>k(t=>({...t,initialData:e}))}),n.createElement(jn,{reportId:y,onClose:()=>E(null)}))},path:"/history",isPrivate:!0,onSideBar:!0,title:"Historial",showSideBar:!0,icon:()=>n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512",fill:"currentColor"},n.createElement("path",{d:"M75 75L41 41C25.9 25.9 0 36.6 0 57.9L0 168c0 13.3 10.7 24 24 24l110.1 0c21.4 0 32.1-25.9 17-41l-30.8-30.8C155 85.5 203 64 256 64c106 0 192 86 192 192s-86 192-192 192c-40.8 0-78.6-12.7-109.7-34.4c-14.5-10.1-34.4-6.6-44.6 7.9s-6.6 34.4 7.9 44.6C151.2 495 201.7 512 256 512c141.4 0 256-114.6 256-256S397.4 0 256 0C185.3 0 121.3 28.7 75 75zm181 53c-13.3 0-24 10.7-24 24l0 104c0 6.4 2.5 12.5 7 17l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-65-65 0-94.1c0-13.3-10.7-24-24-24z"}))}];var In=a(6163),Mn=a(9612),$n=a(6808),Un=a(8309),Vn=a(3217);const Bn=({isOpen:e,onClose:t,imageUrl:a})=>a?n.createElement(ca,{open:e,onOpenChange:t},n.createElement(ga,{className:"max-w-4xl h-[90vh] flex flex-col p-0"},n.createElement(fa,{className:"p-4 border-b"},n.createElement(ba,null,"Visor de Imagen")),n.createElement("div",{className:"flex-grow w-full h-full overflow-hidden"},n.createElement(Vn.GT,null,n.createElement(Vn.WZ,{wrapperStyle:{width:"100%",height:"100%"},contentStyle:{width:"100%",height:"100%"}},n.createElement("img",{src:a,alt:"Visor de imagen médica",className:"w-full h-full object-contain"})))))):null,Tn=({imageUrls:e,videoUrls:t})=>{const[a,r]=(0,n.useState)(!1),[o,l]=(0,n.useState)(null),s=e.length>0||t.length>0;return n.createElement(n.Fragment,null,n.createElement(K,{className:"bg-white shadow-xl rounded-xl border border-gray-100 flex flex-col h-full overflow-hidden transition-all duration-300 hover:shadow-2xl"},n.createElement(Z,{className:"bg-gradient-to-r from-gray-50 to-white border-b border-gray-100 p-5"},n.createElement(ee,{className:"text-lg font-bold text-gray-800 flex items-center gap-2"},n.createElement("div",{className:"p-2 bg-indigo-100 rounded-lg text-indigo-600"},n.createElement(In.A,{className:"w-5 h-5"})),"Galería Multimedia")),n.createElement(ae,{className:"p-5 flex-grow"},s?n.createElement("div",{className:"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-4"},e.map((e,t)=>n.createElement("div",{key:e,className:"group relative bg-gray-100 rounded-xl shadow-sm aspect-square overflow-hidden cursor-pointer ring-1 ring-gray-200 hover:ring-2 hover:ring-indigo-500 transition-all duration-300",onClick:()=>(l(e),void r(!0))},n.createElement("img",{src:e,alt:`Imagen médica ${t+1}`,className:"object-cover w-full h-full transform group-hover:scale-110 transition-transform duration-500",loading:"lazy"}),n.createElement("div",{className:"absolute inset-0 bg-black/0 group-hover:bg-black/20 transition-colors flex items-center justify-center opacity-0 group-hover:opacity-100"},n.createElement(Mn.A,{className:"text-white w-8 h-8 drop-shadow-md"})))),t.map((e,t)=>n.createElement("div",{key:e,className:"group relative bg-gray-900 rounded-xl shadow-sm aspect-square overflow-hidden cursor-pointer ring-1 ring-gray-200 hover:ring-2 hover:ring-sky-500 transition-all duration-300 flex flex-col items-center justify-center text-white",onClick:()=>(async e=>{try{const t=await fetch(e);if(!t.ok)throw new Error(`Error al obtener el archivo: ${t.status}`);const a=await t.blob(),n=_n(e),r=URL.createObjectURL(a),o=document.createElement("a");o.href=r,o.download=n,document.body.appendChild(o),o.click(),o.remove(),URL.revokeObjectURL(r)}catch(e){console.error("Video download failed",e)}})(e)},n.createElement("div",{className:"absolute inset-0 bg-gradient-to-t from-black/80 to-transparent z-10"}),n.createElement($n.A,{size:48,className:"z-20 text-white/80 group-hover:text-white group-hover:scale-110 transition-all duration-300"}),n.createElement("span",{className:"z-20 text-xs font-medium mt-2 text-gray-300 group-hover:text-white"},"Video ",t+1),n.createElement("div",{className:"absolute top-2 right-2 z-20 opacity-0 group-hover:opacity-100 transition-opacity bg-black/50 p-1 rounded-full"},n.createElement(Un.A,{className:"w-4 h-4 text-white"}))))):n.createElement("div",{className:"flex flex-col items-center justify-center h-48 sm:h-64 text-gray-400 bg-gray-50/50 rounded-xl border border-dashed border-gray-200"},n.createElement(Mn.A,{className:"w-12 h-12 mb-3 opacity-50"}),n.createElement("p",{className:"text-sm font-medium"},"No hay archivos multimedia disponibles")))),n.createElement(Bn,{isOpen:a,onClose:()=>r(!1),imageUrl:o}))};var Yn=a(8397),qn=a(6844),Xn=a(1540),Jn=a(2247);const Gn=({reportDetails:e})=>e?n.createElement(K,{className:"bg-white shadow-xl rounded-xl border border-gray-100 overflow-hidden h-fit flex flex-col transition-all hover:shadow-2xl"},n.createElement(Z,{className:"bg-gradient-to-r from-gray-50 to-white border-b border-gray-100 p-5"},n.createElement(ee,{className:"text-lg font-bold text-gray-800 flex items-center gap-2"},n.createElement("div",{className:"p-2 bg-indigo-100 rounded-lg text-indigo-600"},n.createElement(Yn.A,{className:"w-5 h-5"})),"Información del Paciente")),n.createElement(ae,{className:"p-0"},n.createElement("div",{className:"divide-y divide-gray-50"},n.createElement(Hn,{icon:n.createElement(Kt.A,{className:"w-4 h-4 text-gray-400"}),label:"Nombre",value:e.patient.patient_name}),n.createElement(Hn,{icon:n.createElement(qn.A,{className:"w-4 h-4 text-gray-400"}),label:"Sexo",value:"man"==e.patient.sex?"Hombre":"Mujer"}),n.createElement(Hn,{icon:n.createElement(Ft.A,{className:"w-4 h-4 text-gray-400"}),label:"Fecha de Nacimiento",value:e.patient.dob}),n.createElement(Hn,{icon:n.createElement(Xn.A,{className:"w-4 h-4 text-gray-400"}),label:"Diagnóstico Preliminar",value:e.preliminary_diagnosis,highlight:!0}),n.createElement(Hn,{icon:n.createElement(qn.A,{className:"w-4 h-4 text-gray-400"}),label:"Procedimiento",value:e.procedure_name?.name,highlight:!0}),n.createElement(Hn,{icon:n.createElement(Jn.A,{className:"w-4 h-4 text-gray-400"}),label:"Sedación",value:e.sedation})))):null,Hn=({icon:e,label:t,value:a,highlight:r=!1})=>n.createElement("div",{className:"flex items-start gap-3 px-4 py-2 hover:bg-gray-50/80 transition-colors "+(r?"bg-indigo-50/30":"")},n.createElement("div",{className:"mt-0.5"},e),n.createElement("div",{className:"flex-1"},n.createElement("p",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wide mb-0.5"},t),n.createElement("p",{className:"text-sm font-medium "+(r?"text-indigo-900":"text-gray-800")},a||n.createElement("span",{className:"text-gray-400 italic"},"No proporcionado"))));var Wn=a(5005);function Qn(){return Qn=Object.assign?Object.assign.bind():function(e){for(var t=1;tn.createElement(K,{className:"bg-white shadow-xl rounded-xl border border-gray-100 overflow-hidden h-fit flex flex-col sticky top-2"},n.createElement(Z,{className:"bg-gradient-to-r from-gray-50 to-white border-b border-gray-100 p-5"},n.createElement(ee,{className:"text-lg font-bold text-gray-800 flex items-center gap-2"},n.createElement("div",{className:"p-2 bg-indigo-100 rounded-lg"},n.createElement(Wn.A,{className:"w-5 h-5 text-indigo-600"})),"Reporte del Residente"),n.createElement("p",{className:"text-sm text-gray-500 mt-1 pl-11"},"Redacte su análisis del caso para compararlo con el reporte experto.")),n.createElement(ae,{className:"p-5 flex-1"},n.createElement(ke,e,n.createElement("form",{className:"h-full flex flex-col",onSubmit:e=>e.preventDefault()},n.createElement(Ce,{control:e.control,name:"studentReport",render:({field:e})=>n.createElement(Re,{className:"h-full flex flex-col"},n.createElement(_e,null,n.createElement("div",{className:"relative h-full"},n.createElement(sa,Qn({placeholder:"Comience a escribir su reporte aquí...",className:"min-h-[300px] h-full resize-none p-4 text-gray-700 leading-relaxed border-gray-200 focus:border-indigo-400 focus:ring-indigo-100 bg-gray-50/50 hover:bg-white transition-colors rounded-lg text-base"},e)),n.createElement("div",{className:"absolute bottom-3 right-3 text-xs text-gray-400 bg-white/80 px-2 py-1 rounded backdrop-blur-sm border border-gray-100"},e.value?.length||0," caracteres"))),n.createElement(je,{className:"mt-2 text-red-500 text-sm font-medium"}))})))));var Zn=a(3598),er=a(8635),tr=a(835);function ar(){return ar=Object.assign?Object.assign.bind():function(e){for(var t=1;tsvg]:rotate-180",e)},a),t,n.createElement(Te.A,{className:"text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200"})))}function lr({className:e,children:t,...a}){return n.createElement(tr.UC,ar({"data-slot":"accordion-content",className:"data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm"},a),n.createElement("div",{className:u("pt-0 pb-4",e)},t))}const sr=({value:e})=>null==e?n.createElement("span",{className:"text-sm italic text-gray-400"},"— sin dato —"):"boolean"==typeof e?n.createElement("span",null,e?"Sí":"No"):"number"==typeof e?n.createElement("span",null,String(e)):"string"==typeof e?n.createElement("div",{className:"whitespace-pre-wrap text-sm text-gray-800"},e):n.createElement("pre",{className:"whitespace-pre-wrap text-sm"},JSON.stringify(e,null,2)),ir=({node:e,level:t=0})=>{const a=Math.min(8*t,48);return e.isLeaf?n.createElement("div",{className:"flex gap-3 items-start py-2 border-b last:border-b-0",style:{paddingLeft:a}},n.createElement("div",{className:"w-44 flex-shrink-0"},n.createElement("div",{className:"text-sm font-medium text-gray-700"},e.name)),n.createElement("div",{className:"flex-1"},n.createElement(sr,{value:e.value}))):n.createElement("div",{style:{paddingLeft:a}},n.createElement(nr,{type:"single",collapsible:!0},n.createElement(rr,{value:e.fullPath},n.createElement(or,null,n.createElement("div",{className:"flex items-center justify-between w-full"},n.createElement("div",{className:"flex items-center gap-3"},n.createElement("div",{className:"w-3 h-3 rounded-sm bg-gray-300"}),n.createElement("div",{className:"text-sm font-semibold text-gray-800"},e.name)))),n.createElement(lr,null,n.createElement("div",{className:"space-y-0"},e.children?.map(e=>n.createElement(ir,{key:e.fullPath,node:e,level:t+1})))))))},cr=({tree:e,className:t})=>e&&0!==e.length?n.createElement("div",{className:t},e.map(e=>n.createElement("div",{key:e.fullPath,className:"mb-2"},n.createElement(ir,{node:e})))):n.createElement("div",{className:"text-sm text-gray-500"},"No hay datos estructurados."),dr=e=>{if(null==e)return n.createElement("span",{className:"text-sm italic text-gray-400"},"—");if("string"==typeof e)return n.createElement("span",{className:"text-sm text-gray-700 mt-1 leading-relaxed"},e);if("number"==typeof e||"boolean"==typeof e)return n.createElement("span",{className:"text-sm font-semibold text-gray-800 mt-1"},String(e));try{const t=JSON.stringify(e);return t.length<=120?n.createElement("span",{className:"text-sm text-gray-700 mt-1 font-mono text-xs bg-gray-50 px-1 py-0.5 rounded"},t):n.createElement("pre",{className:"whitespace-pre-wrap text-xs text-gray-600 mt-1 bg-gray-50 p-2 rounded border border-gray-100 overflow-x-auto"},JSON.stringify(e,null,2))}catch{return n.createElement("span",{className:"text-sm italic text-gray-400 mt-1"},"[Datos Complejos]")}},mr=({parsedReport:e,tree:t,title:a="Reporte",fallbackText:r="Sin datos",showHighlightAttributes:o=!0,icon:l,isResult:s=!1})=>n.createElement(K,{className:u("shadow-xl rounded-xl border overflow-hidden h-full flex flex-col transition-all duration-300",s?"bg-white border-sky-100 ring-1 ring-sky-50":"bg-white border-gray-100")},n.createElement(Z,{className:u("border-b p-5",s?"bg-gradient-to-r from-sky-50/50 to-white":"bg-gradient-to-r from-gray-50 to-white")},n.createElement(ee,{className:u("text-lg font-bold flex items-center gap-3",s?"text-sky-800":"text-gray-800")},n.createElement("div",{className:u("p-2 rounded-lg",s?"bg-sky-100 text-sky-600":"bg-indigo-100 text-indigo-600")},l||n.createElement(ea.A,{className:"w-5 h-5"})),a)),n.createElement(ae,{className:"p-0 flex-1 relative"},0===t.length?n.createElement("div",{className:"p-5"},n.createElement(sa,{readOnly:!0,value:r,className:"min-h-[200px] bg-gray-50/50 border-gray-200 resize-none text-gray-500 italic p-4 focus:ring-0"})):n.createElement("div",{className:"h-full flex flex-col"},o&&(e?.Procedimientos||e?.Complicaciones)&&n.createElement("div",{className:"p-5 grid grid-cols-1 md:grid-cols-2 gap-4 bg-gray-50/30 border-b border-gray-100"},n.createElement("div",{className:"bg-white p-4 rounded-xl border border-gray-100 shadow-sm relative overflow-hidden group"},n.createElement("div",{className:"absolute top-0 left-0 w-1 h-full bg-blue-500 rounded-l-xl"}),n.createElement("div",{className:"flex items-center gap-2 mb-2 text-xs font-bold text-blue-600 uppercase tracking-wider"},n.createElement(qn.A,{className:"w-3.5 h-3.5"})," Procedimientos"),n.createElement("div",{className:"pl-2"},dr(e.Procedimientos))),n.createElement("div",{className:"bg-white p-4 rounded-xl border border-red-100 shadow-sm relative overflow-hidden group"},n.createElement("div",{className:"absolute top-0 left-0 w-1 h-full bg-red-400 rounded-l-xl"}),n.createElement("div",{className:"flex items-center gap-2 mb-2 text-xs font-bold text-red-500 uppercase tracking-wider"},n.createElement(Zt.A,{className:"w-3.5 h-3.5"})," Complicaciones"),n.createElement("div",{className:"pl-2"},dr(e.Complicaciones)))),n.createElement("div",{className:"p-5 overflow-auto flex-1 custom-scrollbar"},n.createElement(cr,{tree:t})))));function ur(e){const t=(0,n.useMemo)(()=>{if(!e)return null;if("string"==typeof e)try{return JSON.parse(e)}catch{return{Texto:e}}return e},[e]),a=(0,n.useMemo)(()=>t?Ta(t):[],[t]),r=(0,n.useMemo)(()=>Ya(a),[a]);return{parsed:t,flat:a,tree:r}}const pr=({isComparing:e,onCompare:t,expertReportContent:a,comparisonResult:r,showComparisonResult:o})=>{const{parsed:l,tree:s}=ur(a),{parsed:i,tree:c}=ur(r),d=(0,n.useCallback)(()=>o?i?n.createElement("div",{className:"w-full animate-in fade-in slide-in-from-bottom-4 duration-700"},n.createElement(mr,{parsedReport:i,tree:c,title:"Retroalimentación y Calificación",isResult:!0,fallbackText:r,showHighlightAttributes:!1})):n.createElement("div",{className:"w-full animate-in fade-in slide-in-from-bottom-4 duration-700"},n.createElement("div",{className:"flex items-center justify-center my-8"},n.createElement("div",{className:"h-px bg-gray-200 w-full max-w-xs"}),n.createElement("span",{className:"px-4 text-sm text-gray-500 font-medium"},"Resultado RAW"),n.createElement("div",{className:"h-px bg-gray-200 w-full max-w-xs"})),n.createElement(sa,{readOnly:!0,value:r,className:"w-full mt-2 bg-gray-50 border-gray-200 text-gray-700 min-h-[250px] p-4 rounded-lg font-mono text-sm leading-relaxed",placeholder:"Resultado de la comparación..."})):n.createElement(n.Fragment,null),[o,i,c,r]);return n.createElement("div",{className:"flex flex-col gap-6 h-full"},n.createElement("div",{className:"flex-1"},n.createElement(mr,{parsedReport:l,tree:s,title:"Reporte del Experto",icon:n.createElement(ea.A,{className:"w-5 h-5 text-indigo-600"}),fallbackText:a})),n.createElement("div",{className:"flex flex-col items-center justify-center bg-white/50 rounded-xl border border-dashed border-gray-300 gap-4"},o?n.createElement("div",{className:"w-full"},d()):n.createElement("div",{className:"text-center space-y-3 p-4"},n.createElement("p",{className:"text-sm text-gray-500 max-w-md mx-auto"},"Una vez completado su reporte, compare su diagnóstico con el del experto para recibir retroalimentación instantánea."),n.createElement(w,{onClick:t,className:"bg-sky-600 hover:bg-sky-700 text-white px-8 py-6 rounded-xl shadow-lg hover:shadow-xl transition-all active:scale-95 group text-lg font-medium",disabled:e},e?n.createElement(Le,{useColorWhite:!0}):n.createElement("span",{className:"flex items-center gap-3"},n.createElement(Zn.A,{className:"w-5 h-5"}),"Comparar Reportes",n.createElement(er.A,{className:"w-4 h-4 ml-1 opacity-70 group-hover:translate-x-1 transition-transform"}))))))};var gr=a(4953),fr=a(5333);const wr=({onUserSelect:e,initialDoctor:t,onClearSelection:a})=>{const[r,o]=(0,n.useState)(t?`${t.name} ${t.last_name}`:""),[l,s]=(0,n.useState)([]),[i,c]=(0,n.useState)(!1),d=(0,n.useRef)(null);return(0,n.useEffect)(()=>{const e=t?`${t.name} ${t.last_name}`:"";o(e)},[t]),(0,n.useEffect)(()=>(!r||t&&r===`${t.name} ${t.last_name}`?s([]):(d.current&&clearTimeout(d.current),d.current=setTimeout(async()=>{const e=await(async e=>{if(!e.trim())return[];try{return(await X.A.get(`${Sn}/api/userSearch/?q=${e}`)).data}catch{return[]}})(r);s(e)},300)),()=>{d.current&&clearTimeout(d.current)}),[r,t,a]),n.createElement("div",{className:"w-full relative"},n.createElement(Ve.A,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-gray-500"}),n.createElement(Pe,{type:"search",placeholder:"Buscar doctor...",className:"pl-9",value:r,onChange:e=>{const t=e.target.value;o(t),""===t&&(a&&a(),s([]))},onFocus:()=>c(!0),onBlur:()=>{setTimeout(()=>c(!1),150)},autoComplete:"off"}),i&&r&&l.length>0&&n.createElement("div",{className:"absolute z-10 mt-1 max-h-60 w-full overflow-auto rounded-md bg-white shadow-lg"},l.map(t=>n.createElement("div",{key:t.id,className:"cursor-pointer px-4 py-2 hover:bg-gray-100",onMouseDown:()=>(t=>{o(`${t.name} ${t.last_name}`),e(t),s([]),c(!1)})(t)},n.createElement("span",{className:"font-medium"},`${t.name} ${t.last_name}`)))))},br=({filters:e,setFilters:t,pageSize:a,setPageSize:r,selectedDoctor:o,setSelectedDoctor:l,procedures:s,isLoadingProcedures:i,onSearch:c,isSearching:d,searchButtonRef:m,error:u})=>n.createElement("div",{className:"space-y-6"},n.createElement("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 items-end"},n.createElement("div",{className:"space-y-2"},n.createElement("label",{className:"text-xs font-semibold uppercase tracking-wider text-gray-500 ml-1"},"Doctor"),n.createElement(wr,{onUserSelect:e=>l(e),initialDoctor:o,onClearSelection:()=>l(null)})),n.createElement("div",{className:"space-y-2"},n.createElement("label",{className:"text-xs font-semibold uppercase tracking-wider text-gray-500 ml-1"},"Procedimiento"),n.createElement(Je,{onValueChange:e=>{const a="all"===e?"":e;t(e=>({...e,procedureType:a}))},value:e.procedureType||"all",name:"procedureType",disabled:i},n.createElement(Qe,{className:"w-full bg-gray-50 border-gray-200 focus:bg-white transition-colors"},n.createElement(Ge,{placeholder:"Cualquier Procedimiento"})),n.createElement(Ke,null,i?n.createElement(Ze,{value:"loading",disabled:!0},"Cargando..."):n.createElement(n.Fragment,null,n.createElement(Ze,{value:"all"},"Cualquier Procedimiento"),s.map(e=>n.createElement(Ze,{key:e.id,value:e.name},e.name)))))),n.createElement("div",{className:"space-y-2"},n.createElement("label",{className:"text-xs font-semibold uppercase tracking-wider text-gray-500 ml-1"},"Fecha Inicio"),n.createElement("div",{className:"w-full"},n.createElement(Jt,{value:e.startDate||"",onChange:e=>{t(t=>({...t,startDate:e}))}}))),n.createElement("div",{className:"space-y-2"},n.createElement("label",{className:"text-xs font-semibold uppercase tracking-wider text-gray-500 ml-1"},"Fecha Final"),n.createElement("div",{className:"w-full"},n.createElement(Jt,{value:e.endDate||"",onChange:e=>{t(t=>({...t,endDate:e}))}})))),n.createElement("div",{className:"flex flex-col md:flex-row gap-4 items-center justify-between pt-2"},n.createElement("div",{className:"flex items-center gap-3 w-full md:w-auto"},n.createElement("label",{htmlFor:"pageSizeSelect",className:"text-sm font-medium text-gray-600 whitespace-nowrap"},"Mostrar:"),n.createElement("div",{className:"relative"},n.createElement(Je,{value:String(a),onValueChange:e=>r(Number(e))},n.createElement(Qe,{className:"w-20 bg-gray-50 border-gray-200 focus:bg-white transition-colors text-sm"},n.createElement(Ge,{placeholder:"25"})),n.createElement(Ke,null,[25,50,100].map(e=>n.createElement(Ze,{key:e,value:String(e)},e))))),n.createElement("span",{className:"text-sm text-gray-500"},"resultados")),n.createElement("div",{className:"w-full md:w-auto"},n.createElement(w,{ref:m,onClick:c,disabled:d,className:"w-full md:w-auto bg-gray-900 hover:bg-black text-white px-8 transition-all shadow-md active:scale-95"},d?n.createElement(Le,{useColorWhite:!0}):n.createElement(n.Fragment,null,n.createElement(Ve.A,{className:"w-4 h-4 mr-2"})," Buscar Reportes")))),u&&n.createElement("div",{className:"p-3 bg-red-50 text-red-600 text-sm rounded-md border border-red-100 flex items-center justify-center animate-in fade-in slide-in-from-top-2"},u));var hr=a(3160);const vr=({paginatedResults:e,isSearching:t,onSelectReport:a})=>n.createElement("div",{className:"mt-6 animate-in fade-in duration-500"},n.createElement("div",{className:"flex items-center justify-between mb-4"},n.createElement("h3",{className:"text-lg font-semibold text-gray-800 flex items-center gap-2"},n.createElement(ea.A,{className:"w-5 h-5 text-sky-500"}),"Resultados de la Búsqueda"),n.createElement("p",{className:"text-sm font-medium text-gray-500 bg-gray-100 px-3 py-1 rounded-full"},void 0!==e?.count?`${e.count} encontrados`:"Sin buscar")),n.createElement("div",{className:"bg-white border border-gray-200 rounded-xl shadow-sm overflow-hidden flex flex-col h-[400px]"},n.createElement("div",{className:"grid grid-cols-[1fr,1.5fr,2fr,auto] gap-4 p-4 bg-gray-50/80 border-b border-gray-100 text-xs font-semibold text-gray-500 uppercase tracking-wider"},n.createElement("div",{className:"flex items-center gap-2 pl-2"},n.createElement(Ft.A,{className:"w-3.5 h-3.5"})," Fecha"),n.createElement("div",{className:"flex items-center gap-2"},n.createElement(Kt.A,{className:"w-3.5 h-3.5"})," Paciente"),n.createElement("div",{className:"flex items-center gap-2"},n.createElement(qn.A,{className:"w-3.5 h-3.5"})," Procedimiento"),n.createElement("div",{className:"text-center pr-4"},"Acciones")),n.createElement("div",{className:"overflow-y-auto flex-1"},t?n.createElement("div",{className:"h-full flex flex-col items-center justify-center text-gray-400 gap-3"},n.createElement("div",{className:"w-8 h-8 border-4 border-sky-200 border-t-sky-600 rounded-full animate-spin"}),n.createElement("p",{className:"text-sm"},"Buscando coincidencias...")):e?.results&&e.results.length>0?n.createElement("div",{className:"divide-y divide-gray-50"},e.results.map(e=>n.createElement("div",{key:e.id,className:"grid grid-cols-[1fr,1.5fr,2fr,auto] gap-4 p-4 items-center hover:bg-slate-50 transition-colors duration-150 group"},n.createElement("span",{className:"text-sm text-gray-600 font-medium pl-2"},e.fecha),n.createElement("span",{className:"text-sm text-gray-800 font-medium"},e.paciente),n.createElement("span",{className:"text-sm text-sky-600 bg-sky-50 px-2 py-1 rounded-md w-fit font-medium text-xs"},e.procedimiento),n.createElement("div",{className:"text-right"},n.createElement(w,{variant:"outline",size:"sm",onClick:()=>a(e.id),className:"border-sky-200 text-sky-700 hover:bg-sky-600 hover:text-white hover:border-transparent transition-all shadow-sm group-hover:shadow-md h-8 text-xs gap-1"},n.createElement(hr.A,{className:"w-3.5 h-3.5"})," Ver Caso"))))):n.createElement("div",{className:"h-full flex flex-col items-center justify-center text-gray-400 gap-2"},n.createElement(xr,null),n.createElement("p",{className:"text-sm font-medium"},"No hay resultados para mostrar."),n.createElement("p",{className:"text-xs text-gray-400"},"Intenta ajustar los filtros de búsqueda."))))),xr=()=>n.createElement("svg",{className:"w-12 h-12 text-gray-200 mb-2",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","aria-hidden":"true"},n.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})),yr=({paginatedResults:e,currentPage:t,pageSize:a,isSearching:r,onPageChange:o})=>{if(!e||e.count<=0)return null;const l=Math.ceil(e.count/a);return n.createElement("div",{className:"flex justify-between items-center mt-6 px-2 py-3 bg-gray-50 rounded-lg border border-gray-100"},n.createElement(w,{onClick:()=>e.previous&&o(e.previous),disabled:!e.previous||r,variant:"ghost",size:"sm",className:"flex items-center gap-1 text-gray-600 hover:text-gray-900 overflow-hidden"},n.createElement(tt.A,{className:"w-4 h-4"}),n.createElement("span",{className:"hidden sm:inline"},"Anterior")),n.createElement("div",{className:"flex items-center gap-2"},n.createElement("span",{className:"text-xs text-gray-500 font-medium uppercase tracking-wider"},"Página"),n.createElement("div",{className:"flex items-center bg-white border border-gray-200 rounded-md px-3 py-1 shadow-sm"},n.createElement("span",{className:"text-sm font-bold text-gray-900"},t),n.createElement("span",{className:"text-gray-400 mx-2"},"/"),n.createElement("span",{className:"text-sm font-medium text-gray-600"},l))),n.createElement(w,{onClick:()=>e.next&&o(e.next),disabled:!e.next||r,variant:"ghost",size:"sm",className:"flex items-center gap-1 text-gray-600 hover:text-gray-900"},n.createElement("span",{className:"hidden sm:inline"},"Siguiente"),n.createElement(at.A,{className:"w-4 h-4"})))};const Er=({onApply:e,onSelectCase:t,onClearFilters:a})=>{const[r,o]=(0,n.useState)(!1),{procedures:l,isLoadingProcedures:s}=function(e){const[t,a]=(0,n.useState)([]),[r,o]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{e&&0===t.length&&(async()=>{o(!0);const e=await(async()=>{try{return(await X.A.get(`${Sn}/api/proceduresList/`)).data}catch{return[]}})();a(e),o(!1)})()},[e,t.length]),{procedures:t,isLoadingProcedures:r}}(r),{filters:i,setFilters:c,pageSize:d,setPageSize:m,selectedDoctor:u,setSelectedDoctor:p,isSearching:g,error:f,paginatedResults:b,currentPage:h,searchButtonRef:v,handleSearch:x,handlePageChange:y,clearAll:E}=function(){const[e,t]=(0,n.useState)({}),[a,r]=(0,n.useState)(25),[o,l]=(0,n.useState)(null),[s,i]=(0,n.useState)(!1),[c,d]=(0,n.useState)(null),[m,u]=(0,n.useState)(null),[p,g]=(0,n.useState)(1),f=(0,n.useRef)(null);(0,n.useEffect)(()=>{t(o?e=>({...e,doctor:String(o.id)}):e=>{const{doctor:t,...a}=e;return a})},[o]),(0,n.useEffect)(()=>{w()},[a]),(0,n.useEffect)(()=>{c&&(fe(c),d(null))},[c]);const w=(0,n.useCallback)(async()=>{const t={...e};if(o||delete t.doctor,t.startDate&&!t.endDate||!t.startDate&&t.endDate)d("Debe proporcionar tanto la fecha de inicio como la fecha final.");else if(t.startDate&&t.endDate&&t.startDate>t.endDate)d("La fecha de inicio no puede ser posterior a la fecha final.");else{d(null),i(!0);try{const e=await(async(e,t,a=1)=>{try{const n=new URLSearchParams;return e.procedureType&&n.append("procedure_type",e.procedureType),e.startDate&&n.append("start_date",e.startDate),e.endDate&&n.append("end_date",e.endDate),e.doctor&&n.append("doctor",e.doctor),e.general_search&&n.append("general_search",e.general_search),n.append("page_size",String(t)),n.append("page",String(a)),(await X.A.get(`${Sn}/api/reports/search/`,{params:n})).data}catch(e){if(X.A.isAxiosError(e)&&e.response)throw new Error(e.response.data.error||"Falló al buscar los reportes.");throw new Error("Error de red al buscar los reportes.")}})(t,a);u(e),g(1)}catch(e){e instanceof Error&&d(e.message||"Ocurrió un error en la búsqueda."),u(null)}finally{i(!1)}}},[e,a,o]);return{filters:e,setFilters:t,pageSize:a,setPageSize:r,selectedDoctor:o,setSelectedDoctor:l,isSearching:s,error:c,paginatedResults:m,currentPage:p,searchButtonRef:f,handleSearch:w,handlePageChange:async e=>{i(!0);try{const t=await(async e=>{try{return(await X.A.get(e)).data}catch(e){if(X.A.isAxiosError(e)&&e.response)throw new Error(e.response.data.error||"Falló al cambiar de página.");throw new Error("Error de red al cambiar de página.")}})(e);if(u(t),t.previous&&!t.next){const e=m?.count||0;g(Math.ceil(e/a))}else if(t.next&&!t.previous)g(1);else if(m){const t=new URL(e).searchParams.get("page");t&&g(Number(t))}}catch(e){e instanceof Error&&d(e.message||"Error al cambiar de página.")}finally{i(!1)}},clearAll:()=>{t({}),d(null),u(null),l(null),g(1),r(10)}}}();return(0,n.useEffect)(()=>{r&&setTimeout(()=>{v.current?.focus()},5)},[r,v]),n.createElement(ca,{open:r,onOpenChange:o},n.createElement(da,{asChild:!0},n.createElement(w,{className:"bg-white border text-indigo-600 border-indigo-200 hover:bg-indigo-50 hover:border-indigo-300 shadow-sm transition-all duration-200 flex items-center gap-2",size:"sm",variant:"outline"},n.createElement(fr.A,{className:"w-4 h-4"}),"Filtrar Casos")),n.createElement(ga,{className:"overflow-y-auto max-h-[90vh] max-w-5xl p-0 gap-0"},n.createElement(fa,{className:"p-6 pb-4 bg-white border-b sticky top-0 z-10 space-y-1"},n.createElement("div",{className:"flex items-center justify-between"},n.createElement(ba,{className:"text-2xl font-bold text-gray-900 tracking-tight"},"Búsqueda de Casos")),n.createElement("p",{className:"text-sm text-gray-500"},"Utilice los filtros para encontrar reportes específicos")),n.createElement("div",{className:"p-6 space-y-8 bg-gray-50/50"},n.createElement("div",{className:"bg-white p-5 rounded-xl shadow-sm border border-gray-100"},n.createElement(br,{filters:i,setFilters:c,pageSize:d,setPageSize:m,selectedDoctor:u,setSelectedDoctor:p,procedures:l,isLoadingProcedures:s,onSearch:x,isSearching:g,searchButtonRef:v,error:f})),n.createElement("div",{className:"space-y-4"},n.createElement(vr,{paginatedResults:b,isSearching:g,onSelectReport:e=>{t(e),o(!1),E()}}),n.createElement(yr,{paginatedResults:b,currentPage:h,pageSize:d,isSearching:g,onPageChange:y}))),n.createElement(wa,{className:"p-6 pt-4 bg-white border-t sticky bottom-0 z-10"},n.createElement("div",{className:"w-full flex justify-between items-center"},n.createElement(w,{variant:"ghost",onClick:()=>{E(),a(),o(!1)},className:"text-gray-500 hover:text-gray-700 hover:bg-gray-100"},"Limpiar Filtros"),n.createElement("div",{className:"flex gap-3"},n.createElement(ua,{asChild:!0},n.createElement(w,{variant:"outline",className:"border-gray-200 hover:bg-gray-50 text-gray-700"},"Cancelar")),n.createElement(w,{onClick:()=>{e(b?.results||[]),o(!1)},disabled:!b?.results||0===b.results.length,className:"bg-sky-600 hover:bg-sky-700 text-white shadow-md hover:shadow-lg transition-all duration-200"},"Aplicar Selección (",b?.results?.length||0,")"))))))},Nr=({onFetchCase:e,isLoading:t,isComparing:a})=>{const[r,o]=(0,n.useState)([]),[l,s]=(0,n.useState)(0);return n.createElement("div",{className:"flex items-center gap-4 mt-2 sm:mt-0"},n.createElement(Er,{onApply:t=>{const a=t.map(e=>e.id);o(a),s(0),a.length>0?e(a[0]):fe("La búsqueda no arrojó resultados.")},onSelectCase:t=>{o([]),s(0),e(t)},onClearFilters:()=>{o([]),s(0),e()},isLoading:t}),n.createElement(w,{onClick:()=>{if(r.length>0){const t=(l+1)%r.length;s(t);const a=r[t];e(a)}else e()},disabled:t||a,variant:"outline",size:"sm",className:"border-indigo-200 text-indigo-600 hover:bg-indigo-50 hover:text-indigo-700 font-semibold transition-colors flex items-center"},r.length>0?"Sig. Filtrado":"Siguiente",r.length>0?n.createElement(er.A,{className:"ml-2 h-4 w-4"}):n.createElement(gr.A,{className:"ml-2 h-4 w-4"})))},kr=se.Ik({studentReport:se.Yj().min(50,{message:"El reporte del estudiante no puede estar vacío."}).max(5e3,{message:"El reporte no puede exceder los 5000 caracteres."})});const Sr=[{element:()=>{const e=(0,le.mN)({resolver:(0,oe.u)(kr),defaultValues:{studentReport:""}}),{isLoading:t,reportDetails:a,imageUrls:r,videoUrls:o,fetchNewCase:l}=function(){const[e,t]=(0,n.useState)(!0),[a,r]=(0,n.useState)(null),[o,l]=(0,n.useState)([]),[s,i]=(0,n.useState)([]),c=(0,n.useRef)([]),d=(0,n.useRef)(!1),m=(0,n.useCallback)(()=>{c.current.forEach(e=>URL.revokeObjectURL(e)),c.current=[]},[]),u=(0,n.useCallback)(async e=>{t(!0),m(),l([]),i([]),r(null);try{const t=e??await(async()=>{try{return(await X.A.get(`${Sn}/api/reports/random/id/`)).data.id}catch(e){if(X.A.isAxiosError(e)&&e.response)throw new Error(e.response.data.error||"Could not get a random report ID.");throw new Error("Network error while getting a random report.")}})();if("number"!=typeof t||!isFinite(t))throw new Error("No se pudo obtener un ID de reporte válido.");const[a,n,o]=await Promise.all([Cn(t),An(t),Rn(t)]);r(a);const s=n.map(async e=>{const t=await fetch(e),a=await t.blob();return URL.createObjectURL(a)}),d=await Promise.all(s);l(d);const m=o.map(async e=>{const t=await fetch(e),a=await t.blob();return URL.createObjectURL(a)}),u=await Promise.all(m);i(u),c.current=[...d,...u]}catch(e){e instanceof Error&&fe(e.message||"Ocurrió un error inesperado al cargar el caso."),r(null),l([]),i([])}finally{t(!1)}},[m]);return(0,n.useEffect)(()=>(d.current||(d.current=!0,u()),()=>{m()}),[u,m]),{isLoading:e,reportDetails:a,imageUrls:o,videoUrls:s,fetchNewCase:u}}(),{expertReportContent:s,showComparisonResult:i,comparisonResult:c,isComparing:d,resetComparison:m,handleCompareReports:u}=function(){const[e,t]=(0,n.useState)("El reporte del experto aparecerá aquí..."),[a,r]=(0,n.useState)(!1),[o,l]=(0,n.useState)(""),[s,i]=(0,n.useState)(!1);return{expertReportContent:e,showComparisonResult:a,comparisonResult:o,isComparing:s,resetComparison:()=>{t("El reporte del experto aparecerá aquí..."),r(!1),l("")},handleCompareReports:async(e,a)=>{if(a?.id&&a.procedure_name?.id)if(e.trim()){i(!0),l("");try{const n=await(async e=>{try{return(await X.A.get(`${Sn}/api/reports/${e}/json_url/`)).data.json_url}catch(e){if(X.A.isAxiosError(e)&&e.response)throw new Error(e.response.data.error||"No se pudo cargar la URL del JSON.");throw new Error("Error de red al obtener la URL del JSON.")}})(a.id),o=await fetch(n);if(!o.ok)throw new Error("No se pudo obtener el reporte del experto.");const s=await o.json();t(JSON.stringify(s,null,2));const i={student_text:e,report_id:a.id,procedure_id:a.procedure_name.id},c=await(async e=>{try{return(await X.A.post(`${Sn}/api/reports/grade/`,e)).data}catch(e){if(X.A.isAxiosError(e)&&e.response)throw new Error(e.response.data.error||"Falló la calificación del reporte.");throw new Error("Error de red al calificar el reporte.")}})(i);l(JSON.stringify(c,null,2)),r(!0)}catch(e){const t=e instanceof Error?e.message:"Ocurrió un error inesperado al comparar los reportes.";fe(t),l(`Error: ${t}`),r(!0)}finally{i(!1)}}else fe("El reporte del residente no puede estar vacío.");else fe("No hay un reporte cargado con información de procedimiento válida.")}}}(),p=(0,n.useCallback)(t=>{m(),e.reset(),l(t)},[l,m,e]);return n.createElement("div",{className:"min-h-screen bg-gray-100 p-4 sm:p-6 md:p-8"},n.createElement("div",{className:"mb-6 flex justify-between items-center flex-wrap bg-sky-500 px-6 py-4 rounded-lg"},n.createElement("h1",{className:"text-3xl font-bold text-gray-50"},"Residentes"),n.createElement(Nr,{onFetchCase:p,isLoading:t,isComparing:d})),t?n.createElement("div",{className:"flex min-h-[50vh] items-center justify-center bg-gray-100"},n.createElement(Le,{alternativeLabel:"Cargando nuevo caso..."})):a?n.createElement("div",{className:"space-y-6"},n.createElement("div",{className:"grid grid-cols-1 lg:grid-cols-12 gap-6"},n.createElement("div",{className:"lg:col-span-8"},n.createElement(Tn,{imageUrls:r,videoUrls:o})),n.createElement("div",{className:"lg:col-span-4"},n.createElement(Gn,{reportDetails:a}))),n.createElement("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6 relative"},n.createElement(Kn,{form:e}),n.createElement(pr,{isComparing:d,onCompare:()=>{const t=e.getValues("studentReport");u(t,a)},expertReportContent:s,comparisonResult:c,showComparisonResult:i}))):n.createElement("div",{className:"flex min-h-[50vh] items-center justify-center bg-gray-100"},n.createElement(K,{className:"w-full max-w-md bg-white shadow-lg"},n.createElement(Z,null,n.createElement(ee,{className:"text-xl text-red-600"},"Error")),n.createElement(ae,null,n.createElement("p",{className:"text-gray-700"},"No se pudo cargar ningún caso. Por favor, intente de nuevo."),n.createElement(w,{onClick:()=>p(),className:"mt-6 w-full bg-indigo-600 hover:bg-indigo-700 text-white"},"Intentar de nuevo")))))},path:"/residentes",isPrivate:!0,onSideBar:!0,title:"Residentes",showSideBar:!0,icon:()=>n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor"},n.createElement("path",{d:"M2 7v1l11 4 9-4V7L11 4z"}),n.createElement("path",{d:"M4 11v4.267c0 1.621 4.001 3.893 9 3.734 4-.126 6.586-1.972 7-3.467.024-.089.037-.178.037-.268V11L13 14l-5-1.667v3.213l-1-.364V12l-3-1z"}))}];var Cr=a(9321);const Ar=window._env_?.BASE_URL,Rr=({templateName:e,templateId:t,isOpen:a,setIsOpen:r})=>{const[o,l]=(0,n.useState)([]),[s,i]=(0,n.useState)(!1);return n.createElement(re,{title:`Actualizar plantilla del procedimiento: ${e}`,isOpen:a,setIsOpen:r,fitSize:!0},o.length>0&&n.createElement("div",{className:"mb-4 p-3 bg-blue-50 rounded-lg border border-blue-200"},n.createElement("p",{className:"text-sm font-medium text-blue-800"},"Archivo seleccionado:"),n.createElement("p",{className:"text-blue-600"},o[0].name)),n.createElement(za,{files:o,onFilesChange:e=>{const t=e.filter(e=>e.name.endsWith(".docx")||"application/vnd.openxmlformats-officedocument.wordprocessingml.document"===e.type);l(t.slice(0,1))},maxFiles:1,accept:{"application/vnd.openxmlformats-officedocument.wordprocessingml.document":[".docx"]},showPreviewGrid:!1,labelAceptedFormats:"Documento de Word (.docx)"}),n.createElement("div",{className:"mt-6 text-center"},n.createElement(w,{onClick:async()=>{if(0===o.length)return;const e=o[0],a=e.file??e;if(a&&a instanceof File){i(!0);try{await(async e=>{try{const t=new FormData;return t.append("procedure_name",e.templateId.toString()),t.append("word_document",e.wordDocument),(await X.A.patch(`${Ar}/api/reports/templates/${e.templateId}`,t)).data}catch(e){if(X.A.isAxiosError(e)&&e.response){const t=e.response.data;throw new Error(t.error??"Error updating template")}throw new Error(e.message??"Error updating template")}})({templateId:t,wordDocument:a}),l([]),we("Plantilla actualizada correctamente")}catch(e){fe(e.message??"Error al subir la plantilla")}finally{i(!1),r(!1)}}else fe("No se encontró el archivo válido para subir.")},disabled:0===o.length||s,className:"w-full max-w-xs mx-auto"},s?n.createElement(Le,{alternativeLabel:"Subiendo...",useColorWhite:!0}):"Actualizar plantilla")))},zr=[...oa,...un,...kn,...Sr,{element:()=>{const[e,t]=(0,n.useState)([]),[a,r]=(0,n.useState)(!1),[o,l]=(0,n.useState)(!1),[s,i]=(0,n.useState)([]),[c,d]=(0,n.useState)(null),[m,u]=(0,n.useState)(!1),[p,g]=(0,n.useState)({templateId:null,templateName:null});(0,n.useEffect)(()=>{f()},[]);const f=async()=>{l(!0);try{const e=await(async()=>{try{return(await X.A.get(`${Ar}/api/reports/templates/`)).data}catch(e){if(X.A.isAxiosError(e)&&e.response){const t=e.response.data;throw new Error(t.error??"Error fetching templates")}throw new Error(e.message??"Error fetching templates")}})();i(e)}catch(e){fe("string"==typeof e?e:"Error cargando plantillas")}finally{l(!1)}};return n.createElement("div",{className:"space-y-8 p-6 bg-zinc-100"},n.createElement(K,{className:"border-blue-500"},n.createElement(Z,null,n.createElement(ee,null,"Plantilla de reporte")),n.createElement(ae,null,n.createElement("p",{className:"mb-2"},"Consideraciones para el documento de plantilla:"),n.createElement("ul",{className:"list-disc list-inside space-y-1 text-sm text-gray-600"},n.createElement("li",null,"Solo se aceptan archivos en formato DOCX (Microsoft Word)"),n.createElement("li",null,"El documento debe incluir todos los campos requeridos para el reporte"),n.createElement("li",null,"Verifica que el formato sea compatible antes de subirlo")))),n.createElement(K,null,n.createElement(Z,null,n.createElement(ee,null,"Plantillas existentes")),n.createElement(ae,{className:"px-8"},n.createElement(rt,null,n.createElement(ot,null,n.createElement(st,null,n.createElement(it,{className:"w-3/4"},"Tipo de reporte"),n.createElement(it,{className:"text-right"},"Acciones"))),n.createElement(lt,null,o?n.createElement(st,null,n.createElement(ct,{colSpan:2,className:"text-center py-6"},n.createElement(Le,{alternativeLabel:"Cargando plantillas..."}))):0===s.length?n.createElement(st,null,n.createElement(ct,{colSpan:2,className:"text-center py-6"},"No hay plantillas")):s.map(e=>n.createElement(st,{key:e.id},n.createElement(ct,{className:"font-medium"},e.name),n.createElement(ct,{className:"flex justify-end space-x-2"},n.createElement(w,{variant:"outline",size:"sm",onClick:()=>(async e=>{e.docx_url?window.open(e.docx_url,"_blank","noopener"):fe("No hay archivo asociado a esta plantilla para descargar.")})(e),disabled:!e.docx_url},n.createElement(zn.A,{size:16,className:"mr-1"}),"Descargar"),n.createElement(w,{variant:"outline",size:"sm",onClick:()=>(async e=>{g({templateId:e.id,templateName:e.name}),u(!0)})(e),disabled:!e.docx_url},n.createElement(Cr.A,{size:16,className:"mr-1"}),"Actualizar"),n.createElement(w,{variant:"destructive",size:"sm",onClick:()=>(async e=>{if((await be("Confirmar eliminacion","¿Estás seguro de eliminar esta plantilla?")).isConfirmed){d(e);try{await(async e=>{try{return(await X.A.delete(`${Ar}/api/reports/templates/${e}`)).data??{message:"Deleted"}}catch(e){if(X.A.isAxiosError(e)&&e.response){const t=e.response.data;throw new Error(t.error??"Error deleting template")}throw new Error(e.message??"Error deleting template")}})(e),i(t=>t.filter(t=>t.id!==e)),we("Plantilla eliminada")}catch(e){fe(e.message??"Error al eliminar plantilla")}finally{d(null)}}})(e.id),disabled:c===e.id},n.createElement(ka.A,{size:16,className:"mr-1"}),c===e.id?"Eliminando...":"Eliminar")))))))),n.createElement("div",{className:"flex justify-center"},n.createElement(K,{className:"w-1/2"},n.createElement(Z,null,n.createElement(ee,null,"Subir nueva plantilla")),n.createElement(ae,null,e.length>0&&n.createElement("div",{className:"mb-4 p-3 bg-blue-50 rounded-lg border border-blue-200"},n.createElement("p",{className:"text-sm font-medium text-blue-800"},"Archivo seleccionado:"),n.createElement("p",{className:"text-blue-600"},e[0].name)),n.createElement(za,{files:e,onFilesChange:e=>{const a=e.filter(e=>e.name.endsWith(".docx")||"application/vnd.openxmlformats-officedocument.wordprocessingml.document"===e.type);t(a.slice(0,1))},maxFiles:1,accept:{"application/vnd.openxmlformats-officedocument.wordprocessingml.document":[".docx"]},showPreviewGrid:!1,labelAceptedFormats:"Documento de Word (.docx)"}),n.createElement("div",{className:"mt-6 text-center"},n.createElement(w,{onClick:async()=>{if(0===e.length)return;const a=e[0],n=a.file??a;if(!(n&&n instanceof File))return void fe("No se encontró el archivo válido para subir. Asegúrate de que FileDropzone provee el objeto File.");const o=n.name.replace(/\.[^/.]+$/,"").trim();r(!0);try{await(async e=>{try{const t=new FormData;return t.append("procedure_name",e.procedureName),t.append("word_document",e.wordDocument),(await X.A.post(`${Ar}/api/reports/templates/`,t)).data}catch(e){if(X.A.isAxiosError(e)&&e.response){const t=e.response.data;throw new Error(t.error??"Error creating template")}throw new Error(e.message??"Error creating template")}})({procedureName:o,wordDocument:n}),await f(),t([]),we("Plantilla creada correctamente")}catch(e){fe(e.message??"Error al subir la plantilla")}finally{r(!1)}},disabled:0===e.length||a,className:"w-full max-w-xs mx-auto"},a?n.createElement(Le,{alternativeLabel:"Subiendo...",useColorWhite:!0}):"Nueva plantilla")))),n.createElement(Rr,{isOpen:m,setIsOpen:u,templateId:p.templateId??0,templateName:p.templateName??""})))},path:"/templates",isPrivate:!0,onSideBar:!0,title:"Plantillas",showSideBar:!0,icon:()=>n.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 384 512",fill:"currentColor"},n.createElement("path",{d:"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM112 256l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z"}))},...Fn,...Rt],_r=()=>{const{isAuth:e,user:t}=J();return n.createElement(n.Fragment,null,n.createElement(l.Kd,null,n.createElement("div",null,n.createElement(s.BV,null,zr.map(a=>{const r=a.element;let o=null;if(n.isValidElement(r))o=r;else if("function"==typeof r){const e=r;o=n.createElement(e,null)}else o=null;const l=!!a.isPrivate,i=!a.acceptedRoles||t&&Array.isArray(a.acceptedRoles)&&a.acceptedRoles.includes(t.usertype),c=l&&!e?n.createElement(s.C5,{to:"/login",replace:!0}):i?a.showSideBar?n.createElement(G,{routes:zr},o):o:n.createElement(s.C5,{to:"/login",replace:!0});return n.createElement(s.qh,{key:a.path,path:a.path,element:c})})))),n.createElement(o.N9,null))};var jr=a(5072),Dr=a.n(jr),Pr=a(7825),Or=a.n(Pr),Lr=a(7659),Fr=a.n(Lr),Ir=a(2675),Mr=a.n(Ir),$r=a(540),Ur=a.n($r),Vr=a(1113),Br=a.n(Vr),Tr=a(8961),Yr={};Yr.styleTagTransform=Br(),Yr.setAttributes=Mr(),Yr.insert=Fr().bind(null,"head"),Yr.domAPI=Or(),Yr.insertStyleElement=Ur(),Dr()(Tr.A,Yr),Tr.A&&Tr.A.locals&&Tr.A.locals;const qr=document.getElementById("root");(0,r.createRoot)(qr).render(n.createElement(n.StrictMode,null,n.createElement(_r,null)))},8961(e,t,a){"use strict";a.d(t,{A:()=>c});var n=a(1601),r=a.n(n),o=a(6314),l=a.n(o),s=a(2085),i=l()(r());i.i(s.A),i.push([e.id,'*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}/*\n! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com\n*//*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: #e5e7eb; /* 2 */\n}\n\n::before,\n::after {\n --tw-content: \'\';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user\'s configured `sans` font-family by default.\n5. Use the user\'s configured `sans` font-feature-settings by default.\n6. Use the user\'s configured `sans` font-variation-settings by default.\n7. Disable tap highlights on iOS\n*/\n\nhtml,\n:host {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */ /* 3 */\n tab-size: 4; /* 3 */\n font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */\n font-feature-settings: normal; /* 5 */\n font-variation-settings: normal; /* 6 */\n -webkit-tap-highlight-color: transparent; /* 7 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0; /* 1 */\n line-height: inherit; /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user\'s configured `mono` font-family by default.\n2. Use the user\'s configured `mono` font-feature-settings by default.\n3. Use the user\'s configured `mono` font-variation-settings by default.\n4. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */\n font-feature-settings: normal; /* 2 */\n font-variation-settings: normal; /* 3 */\n font-size: 1em; /* 4 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-feature-settings: inherit; /* 1 */\n font-variation-settings: inherit; /* 1 */\n font-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: inherit; /* 1 */\n letter-spacing: inherit; /* 1 */\n color: inherit; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\ninput:where([type=\'button\']),\ninput:where([type=\'reset\']),\ninput:where([type=\'submit\']) {\n -webkit-appearance: button; /* 1 */\n background-color: transparent; /* 2 */\n background-image: none; /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type=\'search\'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nReset default styling for dialogs.\n*/\ndialog {\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user\'s configured gray 400 color.\n*/\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role="button"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don\'t get the pointer cursor.\n*/\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n[hidden]:where(:not([hidden="until-found"])) {\n display: none;\n}\n * {\n border-color: var(--border);\n outline-color: var(--ring);\n}\n body {\n background-color: var(--background);\n color: var(--foreground);\n}\n textarea {\n field-sizing: content;\n };\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n.pointer-events-none {\n pointer-events: none;\n}\n.pointer-events-auto {\n pointer-events: auto;\n}\n.invisible {\n visibility: hidden;\n}\n.fixed {\n position: fixed;\n}\n.absolute {\n position: absolute;\n}\n.relative {\n position: relative;\n}\n.sticky {\n position: -webkit-sticky;\n position: sticky;\n}\n.inset-0 {\n inset: 0px;\n}\n.inset-x-0 {\n left: 0px;\n right: 0px;\n}\n.inset-y-0 {\n top: 0px;\n bottom: 0px;\n}\n.bottom-0 {\n bottom: 0px;\n}\n.bottom-3 {\n bottom: 0.75rem;\n}\n.left-0 {\n left: 0px;\n}\n.left-2\\.5 {\n left: 0.625rem;\n}\n.left-4 {\n left: 1rem;\n}\n.left-6 {\n left: 1.5rem;\n}\n.left-\\[50\\%\\] {\n left: 50%;\n}\n.right-0 {\n right: 0px;\n}\n.right-2 {\n right: 0.5rem;\n}\n.right-3 {\n right: 0.75rem;\n}\n.right-4 {\n right: 1rem;\n}\n.top-0 {\n top: 0px;\n}\n.top-1\\/2 {\n top: 50%;\n}\n.top-2 {\n top: 0.5rem;\n}\n.top-2\\.5 {\n top: 0.625rem;\n}\n.top-4 {\n top: 1rem;\n}\n.top-6 {\n top: 1.5rem;\n}\n.top-\\[50\\%\\] {\n top: 50%;\n}\n.z-10 {\n z-index: 10;\n}\n.z-20 {\n z-index: 20;\n}\n.z-50 {\n z-index: 50;\n}\n.col-span-2 {\n grid-column: span 2 / span 2;\n}\n.col-span-3 {\n grid-column: span 3 / span 3;\n}\n.col-span-4 {\n grid-column: span 4 / span 4;\n}\n.col-span-full {\n grid-column: 1 / -1;\n}\n.m-0 {\n margin: 0px;\n}\n.mx-2 {\n margin-left: 0.5rem;\n margin-right: 0.5rem;\n}\n.mx-3\\.5 {\n margin-left: 0.875rem;\n margin-right: 0.875rem;\n}\n.mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n.my-6 {\n margin-top: 1.5rem;\n margin-bottom: 1.5rem;\n}\n.my-8 {\n margin-top: 2rem;\n margin-bottom: 2rem;\n}\n.mb-0\\.5 {\n margin-bottom: 0.125rem;\n}\n.mb-1 {\n margin-bottom: 0.25rem;\n}\n.mb-2 {\n margin-bottom: 0.5rem;\n}\n.mb-3 {\n margin-bottom: 0.75rem;\n}\n.mb-4 {\n margin-bottom: 1rem;\n}\n.mb-6 {\n margin-bottom: 1.5rem;\n}\n.mb-8 {\n margin-bottom: 2rem;\n}\n.ml-1 {\n margin-left: 0.25rem;\n}\n.ml-2 {\n margin-left: 0.5rem;\n}\n.ml-3 {\n margin-left: 0.75rem;\n}\n.ml-4 {\n margin-left: 1rem;\n}\n.mr-1 {\n margin-right: 0.25rem;\n}\n.mr-2 {\n margin-right: 0.5rem;\n}\n.mt-0\\.5 {\n margin-top: 0.125rem;\n}\n.mt-1 {\n margin-top: 0.25rem;\n}\n.mt-2 {\n margin-top: 0.5rem;\n}\n.mt-4 {\n margin-top: 1rem;\n}\n.mt-6 {\n margin-top: 1.5rem;\n}\n.mt-9 {\n margin-top: 2.25rem;\n}\n.block {\n display: block;\n}\n.inline-block {\n display: inline-block;\n}\n.inline {\n display: inline;\n}\n.flex {\n display: flex;\n}\n.inline-flex {\n display: inline-flex;\n}\n.table {\n display: table;\n}\n.grid {\n display: grid;\n}\n.hidden {\n display: none;\n}\n.aspect-square {\n aspect-ratio: 1 / 1;\n}\n.size-4 {\n width: 1rem;\n height: 1rem;\n}\n.size-9 {\n width: 2.25rem;\n height: 2.25rem;\n}\n.size-auto {\n width: auto;\n height: auto;\n}\n.h-1\\.5 {\n height: 0.375rem;\n}\n.h-10 {\n height: 2.5rem;\n}\n.h-12 {\n height: 3rem;\n}\n.h-14 {\n height: 3.5rem;\n}\n.h-2 {\n height: 0.5rem;\n}\n.h-2\\.5 {\n height: 0.625rem;\n}\n.h-20 {\n height: 5rem;\n}\n.h-3 {\n height: 0.75rem;\n}\n.h-3\\.5 {\n height: 0.875rem;\n}\n.h-32 {\n height: 8rem;\n}\n.h-4 {\n height: 1rem;\n}\n.h-48 {\n height: 12rem;\n}\n.h-5 {\n height: 1.25rem;\n}\n.h-6 {\n height: 1.5rem;\n}\n.h-64 {\n height: 16rem;\n}\n.h-7 {\n height: 1.75rem;\n}\n.h-8 {\n height: 2rem;\n}\n.h-9 {\n height: 2.25rem;\n}\n.h-\\[400px\\] {\n height: 400px;\n}\n.h-\\[600px\\] {\n height: 600px;\n}\n.h-\\[60vh\\] {\n height: 60vh;\n}\n.h-\\[90\\%\\] {\n height: 90%;\n}\n.h-\\[90vh\\] {\n height: 90vh;\n}\n.h-\\[var\\(--radix-select-trigger-height\\)\\] {\n height: var(--radix-select-trigger-height);\n}\n.h-fit {\n height: -webkit-fit-content;\n height: fit-content;\n}\n.h-full {\n height: 100%;\n}\n.h-px {\n height: 1px;\n}\n.h-svh {\n height: 100svh;\n}\n.max-h-60 {\n max-height: 15rem;\n}\n.max-h-\\[--radix-select-content-available-height\\] {\n max-height: var(--radix-select-content-available-height);\n}\n.max-h-\\[85vh\\] {\n max-height: 85vh;\n}\n.max-h-\\[90vh\\] {\n max-height: 90vh;\n}\n.min-h-0 {\n min-height: 0px;\n}\n.min-h-\\[1\\.2rem\\] {\n min-height: 1.2rem;\n}\n.min-h-\\[100px\\] {\n min-height: 100px;\n}\n.min-h-\\[120px\\] {\n min-height: 120px;\n}\n.min-h-\\[200px\\] {\n min-height: 200px;\n}\n.min-h-\\[250px\\] {\n min-height: 250px;\n}\n.min-h-\\[300px\\] {\n min-height: 300px;\n}\n.min-h-\\[30vh\\] {\n min-height: 30vh;\n}\n.min-h-\\[340px\\] {\n min-height: 340px;\n}\n.min-h-\\[45vh\\] {\n min-height: 45vh;\n}\n.min-h-\\[50vh\\] {\n min-height: 50vh;\n}\n.min-h-\\[85vh\\] {\n min-height: 85vh;\n}\n.min-h-screen {\n min-height: 100vh;\n}\n.min-h-svh {\n min-height: 100svh;\n}\n.w-1 {\n width: 0.25rem;\n}\n.w-1\\/2 {\n width: 50%;\n}\n.w-1\\/3 {\n width: 33.333333%;\n}\n.w-10 {\n width: 2.5rem;\n}\n.w-10\\/12 {\n width: 83.333333%;\n}\n.w-11\\/12 {\n width: 91.666667%;\n}\n.w-12 {\n width: 3rem;\n}\n.w-14 {\n width: 3.5rem;\n}\n.w-2 {\n width: 0.5rem;\n}\n.w-2\\.5 {\n width: 0.625rem;\n}\n.w-2\\/3 {\n width: 66.666667%;\n}\n.w-20 {\n width: 5rem;\n}\n.w-24 {\n width: 6rem;\n}\n.w-28 {\n width: 7rem;\n}\n.w-3 {\n width: 0.75rem;\n}\n.w-3\\.5 {\n width: 0.875rem;\n}\n.w-3\\/4 {\n width: 75%;\n}\n.w-4 {\n width: 1rem;\n}\n.w-4\\/5 {\n width: 80%;\n}\n.w-44 {\n width: 11rem;\n}\n.w-48 {\n width: 12rem;\n}\n.w-5 {\n width: 1.25rem;\n}\n.w-6 {\n width: 1.5rem;\n}\n.w-7 {\n width: 1.75rem;\n}\n.w-72 {\n width: 18rem;\n}\n.w-8 {\n width: 2rem;\n}\n.w-\\[--sidebar-width\\] {\n width: var(--sidebar-width);\n}\n.w-\\[110px\\] {\n width: 110px;\n}\n.w-\\[22\\%\\] {\n width: 22%;\n}\n.w-\\[40\\%\\] {\n width: 40%;\n}\n.w-\\[60\\%\\] {\n width: 60%;\n}\n.w-\\[90\\%\\] {\n width: 90%;\n}\n.w-auto {\n width: auto;\n}\n.w-fit {\n width: -webkit-fit-content;\n width: fit-content;\n}\n.w-full {\n width: 100%;\n}\n.min-w-0 {\n min-width: 0px;\n}\n.min-w-\\[8rem\\] {\n min-width: 8rem;\n}\n.min-w-\\[var\\(--radix-select-trigger-width\\)\\] {\n min-width: var(--radix-select-trigger-width);\n}\n.max-w-2xl {\n max-width: 42rem;\n}\n.max-w-3xl {\n max-width: 48rem;\n}\n.max-w-4xl {\n max-width: 56rem;\n}\n.max-w-5xl {\n max-width: 64rem;\n}\n.max-w-\\[180px\\] {\n max-width: 180px;\n}\n.max-w-lg {\n max-width: 32rem;\n}\n.max-w-md {\n max-width: 28rem;\n}\n.max-w-xs {\n max-width: 20rem;\n}\n.flex-1 {\n flex: 1 1 0%;\n}\n.flex-shrink-0 {\n flex-shrink: 0;\n}\n.shrink-0 {\n flex-shrink: 0;\n}\n.flex-grow {\n flex-grow: 1;\n}\n.caption-bottom {\n caption-side: bottom;\n}\n.border-collapse {\n border-collapse: collapse;\n}\n.origin-\\[--radix-popover-content-transform-origin\\] {\n transform-origin: var(--radix-popover-content-transform-origin);\n}\n.origin-\\[--radix-select-content-transform-origin\\] {\n transform-origin: var(--radix-select-content-transform-origin);\n}\n.-translate-y-1\\/2 {\n --tw-translate-y: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.translate-x-\\[-50\\%\\] {\n --tw-translate-x: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.translate-x-px {\n --tw-translate-x: 1px;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.translate-y-0\\.5 {\n --tw-translate-y: 0.125rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.translate-y-\\[-50\\%\\] {\n --tw-translate-y: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.scale-100 {\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.scale-90 {\n --tw-scale-x: .9;\n --tw-scale-y: .9;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n@keyframes ping {\n\n 75%, 100% {\n transform: scale(2);\n opacity: 0;\n }\n}\n.animate-ping {\n animation: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;\n}\n@keyframes pulse {\n\n 50% {\n opacity: .5;\n }\n}\n.animate-pulse {\n animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n}\n@keyframes spin {\n\n to {\n transform: rotate(360deg);\n }\n}\n.animate-spin {\n animation: spin 1s linear infinite;\n}\n.cursor-default {\n cursor: default;\n}\n.cursor-not-allowed {\n cursor: not-allowed;\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.touch-none {\n touch-action: none;\n}\n.select-none {\n -webkit-user-select: none;\n user-select: none;\n}\n.resize-none {\n resize: none;\n}\n.list-inside {\n list-style-position: inside;\n}\n.list-disc {\n list-style-type: disc;\n}\n.grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n}\n.grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n.grid-cols-\\[1fr\\2c 1\\.5fr\\2c 2fr\\2c auto\\] {\n grid-template-columns: 1fr 1.5fr 2fr auto;\n}\n.flex-row {\n flex-direction: row;\n}\n.flex-col {\n flex-direction: column;\n}\n.flex-col-reverse {\n flex-direction: column-reverse;\n}\n.flex-wrap {\n flex-wrap: wrap;\n}\n.items-start {\n align-items: flex-start;\n}\n.items-end {\n align-items: flex-end;\n}\n.items-center {\n align-items: center;\n}\n.items-baseline {\n align-items: baseline;\n}\n.items-stretch {\n align-items: stretch;\n}\n.justify-start {\n justify-content: flex-start;\n}\n.justify-end {\n justify-content: flex-end;\n}\n.justify-center {\n justify-content: center;\n}\n.justify-between {\n justify-content: space-between;\n}\n.gap-0 {\n gap: 0px;\n}\n.gap-1 {\n gap: 0.25rem;\n}\n.gap-1\\.5 {\n gap: 0.375rem;\n}\n.gap-2 {\n gap: 0.5rem;\n}\n.gap-3 {\n gap: 0.75rem;\n}\n.gap-4 {\n gap: 1rem;\n}\n.gap-6 {\n gap: 1.5rem;\n}\n.gap-8 {\n gap: 2rem;\n}\n.space-x-1 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.25rem * var(--tw-space-x-reverse));\n margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse)));\n}\n.space-x-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.5rem * var(--tw-space-x-reverse));\n margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));\n}\n.space-x-4 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(1rem * var(--tw-space-x-reverse));\n margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));\n}\n.space-y-0 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0px * var(--tw-space-y-reverse));\n}\n.space-y-1 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));\n}\n.space-y-1\\.5 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.375rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.375rem * var(--tw-space-y-reverse));\n}\n.space-y-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));\n}\n.space-y-3 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));\n}\n.space-y-4 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1rem * var(--tw-space-y-reverse));\n}\n.space-y-5 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1.25rem * var(--tw-space-y-reverse));\n}\n.space-y-6 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));\n}\n.space-y-8 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(2rem * var(--tw-space-y-reverse));\n}\n.divide-y > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-y-reverse: 0;\n border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));\n border-bottom-width: calc(1px * var(--tw-divide-y-reverse));\n}\n.divide-gray-100 > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-opacity: 1;\n border-color: rgb(243 244 246 / var(--tw-divide-opacity, 1));\n}\n.divide-gray-200 > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-opacity: 1;\n border-color: rgb(229 231 235 / var(--tw-divide-opacity, 1));\n}\n.divide-gray-50 > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-opacity: 1;\n border-color: rgb(249 250 251 / var(--tw-divide-opacity, 1));\n}\n.overflow-auto {\n overflow: auto;\n}\n.overflow-hidden {\n overflow: hidden;\n}\n.overflow-x-auto {\n overflow-x: auto;\n}\n.overflow-y-auto {\n overflow-y: auto;\n}\n.overflow-x-hidden {\n overflow-x: hidden;\n}\n.truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.whitespace-nowrap {\n white-space: nowrap;\n}\n.whitespace-pre-wrap {\n white-space: pre-wrap;\n}\n.rounded {\n border-radius: var(--radius);\n}\n.rounded-2xl {\n border-radius: 1rem;\n}\n.rounded-\\[inherit\\] {\n border-radius: inherit;\n}\n.rounded-full {\n border-radius: 9999px;\n}\n.rounded-lg {\n border-radius: var(--radius-lg);\n}\n.rounded-md {\n border-radius: var(--radius-md);\n}\n.rounded-none {\n border-radius: 0px;\n}\n.rounded-sm {\n border-radius: var(--radius-sm);\n}\n.rounded-xl {\n border-radius: var(--radius-xl);\n}\n.rounded-l-md {\n border-top-left-radius: var(--radius-md);\n border-bottom-left-radius: var(--radius-md);\n}\n.rounded-l-xl {\n border-top-left-radius: var(--radius-xl);\n border-bottom-left-radius: var(--radius-xl);\n}\n.rounded-r-md {\n border-top-right-radius: var(--radius-md);\n border-bottom-right-radius: var(--radius-md);\n}\n.rounded-t-md {\n border-top-left-radius: var(--radius-md);\n border-top-right-radius: var(--radius-md);\n}\n.rounded-t-xl {\n border-top-left-radius: var(--radius-xl);\n border-top-right-radius: var(--radius-xl);\n}\n.border {\n border-width: 1px;\n}\n.border-0 {\n border-width: 0px;\n}\n.border-2 {\n border-width: 2px;\n}\n.border-4 {\n border-width: 4px;\n}\n.border-b {\n border-bottom-width: 1px;\n}\n.border-l {\n border-left-width: 1px;\n}\n.border-r {\n border-right-width: 1px;\n}\n.border-t {\n border-top-width: 1px;\n}\n.border-dashed {\n border-style: dashed;\n}\n.border-none {\n border-style: none;\n}\n.border-blue-200 {\n --tw-border-opacity: 1;\n border-color: rgb(191 219 254 / var(--tw-border-opacity, 1));\n}\n.border-blue-500 {\n --tw-border-opacity: 1;\n border-color: rgb(59 130 246 / var(--tw-border-opacity, 1));\n}\n.border-emerald-200 {\n --tw-border-opacity: 1;\n border-color: rgb(167 243 208 / var(--tw-border-opacity, 1));\n}\n.border-gray-100 {\n --tw-border-opacity: 1;\n border-color: rgb(243 244 246 / var(--tw-border-opacity, 1));\n}\n.border-gray-200 {\n --tw-border-opacity: 1;\n border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));\n}\n.border-gray-300 {\n --tw-border-opacity: 1;\n border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));\n}\n.border-indigo-200 {\n --tw-border-opacity: 1;\n border-color: rgb(199 210 254 / var(--tw-border-opacity, 1));\n}\n.border-input {\n border-color: var(--input);\n}\n.border-red-100 {\n --tw-border-opacity: 1;\n border-color: rgb(254 226 226 / var(--tw-border-opacity, 1));\n}\n.border-red-200 {\n --tw-border-opacity: 1;\n border-color: rgb(254 202 202 / var(--tw-border-opacity, 1));\n}\n.border-rose-200 {\n --tw-border-opacity: 1;\n border-color: rgb(254 205 211 / var(--tw-border-opacity, 1));\n}\n.border-sidebar-border {\n border-color: var(--sidebar-border);\n}\n.border-sky-100 {\n --tw-border-opacity: 1;\n border-color: rgb(224 242 254 / var(--tw-border-opacity, 1));\n}\n.border-sky-200 {\n --tw-border-opacity: 1;\n border-color: rgb(186 230 253 / var(--tw-border-opacity, 1));\n}\n.border-slate-300 {\n --tw-border-opacity: 1;\n border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));\n}\n.border-transparent {\n border-color: transparent;\n}\n.border-l-transparent {\n border-left-color: transparent;\n}\n.border-t-sky-600 {\n --tw-border-opacity: 1;\n border-top-color: rgb(2 132 199 / var(--tw-border-opacity, 1));\n}\n.border-t-transparent {\n border-top-color: transparent;\n}\n.bg-accent {\n background-color: var(--accent);\n}\n.bg-amber-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 243 199 / var(--tw-bg-opacity, 1));\n}\n.bg-amber-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(245 158 11 / var(--tw-bg-opacity, 1));\n}\n.bg-background {\n background-color: var(--background);\n}\n.bg-black {\n --tw-bg-opacity: 1;\n background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));\n}\n.bg-black\\/0 {\n background-color: rgb(0 0 0 / 0);\n}\n.bg-black\\/50 {\n background-color: rgb(0 0 0 / 0.5);\n}\n.bg-black\\/80 {\n background-color: rgb(0 0 0 / 0.8);\n}\n.bg-blue-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1));\n}\n.bg-blue-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1));\n}\n.bg-blue-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));\n}\n.bg-border {\n background-color: var(--border);\n}\n.bg-card {\n background-color: var(--card);\n}\n.bg-emerald-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(209 250 229 / var(--tw-bg-opacity, 1));\n}\n.bg-emerald-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(236 253 245 / var(--tw-bg-opacity, 1));\n}\n.bg-emerald-50\\/60 {\n background-color: rgb(236 253 245 / 0.6);\n}\n.bg-gray-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));\n}\n.bg-gray-200 {\n --tw-bg-opacity: 1;\n background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));\n}\n.bg-gray-300 {\n --tw-bg-opacity: 1;\n background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1));\n}\n.bg-gray-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));\n}\n.bg-gray-50\\/30 {\n background-color: rgb(249 250 251 / 0.3);\n}\n.bg-gray-50\\/50 {\n background-color: rgb(249 250 251 / 0.5);\n}\n.bg-gray-50\\/70 {\n background-color: rgb(249 250 251 / 0.7);\n}\n.bg-gray-50\\/80 {\n background-color: rgb(249 250 251 / 0.8);\n}\n.bg-gray-900 {\n --tw-bg-opacity: 1;\n background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1));\n}\n.bg-green-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1));\n}\n.bg-indigo-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(224 231 255 / var(--tw-bg-opacity, 1));\n}\n.bg-indigo-50\\/30 {\n background-color: rgb(238 242 255 / 0.3);\n}\n.bg-indigo-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(79 70 229 / var(--tw-bg-opacity, 1));\n}\n.bg-orange-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(255 237 213 / var(--tw-bg-opacity, 1));\n}\n.bg-popover {\n background-color: var(--popover);\n}\n.bg-primary {\n background-color: var(--primary);\n}\n.bg-red-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1));\n}\n.bg-red-400 {\n --tw-bg-opacity: 1;\n background-color: rgb(248 113 113 / var(--tw-bg-opacity, 1));\n}\n.bg-red-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));\n}\n.bg-red-50\\/60 {\n background-color: rgb(254 242 242 / 0.6);\n}\n.bg-red-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));\n}\n.bg-rose-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(255 228 230 / var(--tw-bg-opacity, 1));\n}\n.bg-rose-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(255 241 242 / var(--tw-bg-opacity, 1));\n}\n.bg-secondary {\n background-color: var(--secondary);\n}\n.bg-sidebar {\n background-color: var(--sidebar);\n}\n.bg-sky-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(224 242 254 / var(--tw-bg-opacity, 1));\n}\n.bg-sky-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(240 249 255 / var(--tw-bg-opacity, 1));\n}\n.bg-sky-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(14 165 233 / var(--tw-bg-opacity, 1));\n}\n.bg-sky-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(2 132 199 / var(--tw-bg-opacity, 1));\n}\n.bg-slate-200 {\n --tw-bg-opacity: 1;\n background-color: rgb(226 232 240 / var(--tw-bg-opacity, 1));\n}\n.bg-transparent {\n background-color: transparent;\n}\n.bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n}\n.bg-white\\/20 {\n background-color: rgb(255 255 255 / 0.2);\n}\n.bg-white\\/50 {\n background-color: rgb(255 255 255 / 0.5);\n}\n.bg-white\\/70 {\n background-color: rgb(255 255 255 / 0.7);\n}\n.bg-white\\/80 {\n background-color: rgb(255 255 255 / 0.8);\n}\n.bg-yellow-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 249 195 / var(--tw-bg-opacity, 1));\n}\n.bg-yellow-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(234 179 8 / var(--tw-bg-opacity, 1));\n}\n.bg-zinc-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(244 244 245 / var(--tw-bg-opacity, 1));\n}\n.bg-zinc-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(250 250 250 / var(--tw-bg-opacity, 1));\n}\n.bg-opacity-40 {\n --tw-bg-opacity: 0.4;\n}\n.bg-opacity-70 {\n --tw-bg-opacity: 0.7;\n}\n.bg-gradient-to-br {\n background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));\n}\n.bg-gradient-to-r {\n background-image: linear-gradient(to right, var(--tw-gradient-stops));\n}\n.bg-gradient-to-t {\n background-image: linear-gradient(to top, var(--tw-gradient-stops));\n}\n.from-amber-600 {\n --tw-gradient-from: #d97706 var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(217 119 6 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-black\\/80 {\n --tw-gradient-from: rgb(0 0 0 / 0.8) var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-emerald-500 {\n --tw-gradient-from: #10b981 var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(16 185 129 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-gray-50 {\n --tw-gradient-from: #f9fafb var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(249 250 251 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-red-500 {\n --tw-gradient-from: #ef4444 var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(239 68 68 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-rose-600 {\n --tw-gradient-from: #e11d48 var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(225 29 72 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-sky-50\\/50 {\n --tw-gradient-from: rgb(240 249 255 / 0.5) var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(240 249 255 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-sky-600 {\n --tw-gradient-from: #0284c7 var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(2 132 199 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.from-slate-50 {\n --tw-gradient-from: #f8fafc var(--tw-gradient-from-position);\n --tw-gradient-to: rgb(248 250 252 / 0) var(--tw-gradient-to-position);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);\n}\n.to-blue-600 {\n --tw-gradient-to: #2563eb var(--tw-gradient-to-position);\n}\n.to-emerald-600 {\n --tw-gradient-to: #059669 var(--tw-gradient-to-position);\n}\n.to-orange-600 {\n --tw-gradient-to: #ea580c var(--tw-gradient-to-position);\n}\n.to-red-600 {\n --tw-gradient-to: #dc2626 var(--tw-gradient-to-position);\n}\n.to-slate-100 {\n --tw-gradient-to: #f1f5f9 var(--tw-gradient-to-position);\n}\n.to-transparent {\n --tw-gradient-to: transparent var(--tw-gradient-to-position);\n}\n.to-white {\n --tw-gradient-to: #fff var(--tw-gradient-to-position);\n}\n.bg-cover {\n background-size: cover;\n}\n.bg-center {\n background-position: center;\n}\n.object-contain {\n object-fit: contain;\n}\n.object-cover {\n object-fit: cover;\n}\n.p-0 {\n padding: 0px;\n}\n.p-1 {\n padding: 0.25rem;\n}\n.p-12 {\n padding: 3rem;\n}\n.p-2 {\n padding: 0.5rem;\n}\n.p-3 {\n padding: 0.75rem;\n}\n.p-4 {\n padding: 1rem;\n}\n.p-5 {\n padding: 1.25rem;\n}\n.p-6 {\n padding: 1.5rem;\n}\n.p-8 {\n padding: 2rem;\n}\n.p-\\[1px\\] {\n padding: 1px;\n}\n.px-1 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n.px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.px-2\\.5 {\n padding-left: 0.625rem;\n padding-right: 0.625rem;\n}\n.px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n.px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n.px-5 {\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n}\n.px-6 {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n.px-8 {\n padding-left: 2rem;\n padding-right: 2rem;\n}\n.py-0\\.5 {\n padding-top: 0.125rem;\n padding-bottom: 0.125rem;\n}\n.py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n.py-1\\.5 {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n}\n.py-16 {\n padding-top: 4rem;\n padding-bottom: 4rem;\n}\n.py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.py-2\\.5 {\n padding-top: 0.625rem;\n padding-bottom: 0.625rem;\n}\n.py-3 {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n}\n.py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n.py-5 {\n padding-top: 1.25rem;\n padding-bottom: 1.25rem;\n}\n.py-6 {\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n}\n.pb-0 {\n padding-bottom: 0px;\n}\n.pb-2 {\n padding-bottom: 0.5rem;\n}\n.pb-4 {\n padding-bottom: 1rem;\n}\n.pb-6 {\n padding-bottom: 1.5rem;\n}\n.pl-10 {\n padding-left: 2.5rem;\n}\n.pl-11 {\n padding-left: 2.75rem;\n}\n.pl-2 {\n padding-left: 0.5rem;\n}\n.pl-3 {\n padding-left: 0.75rem;\n}\n.pl-8 {\n padding-left: 2rem;\n}\n.pl-9 {\n padding-left: 2.25rem;\n}\n.pr-1 {\n padding-right: 0.25rem;\n}\n.pr-3 {\n padding-right: 0.75rem;\n}\n.pr-4 {\n padding-right: 1rem;\n}\n.pr-8 {\n padding-right: 2rem;\n}\n.pt-0 {\n padding-top: 0px;\n}\n.pt-1 {\n padding-top: 0.25rem;\n}\n.pt-2 {\n padding-top: 0.5rem;\n}\n.pt-4 {\n padding-top: 1rem;\n}\n.pt-6 {\n padding-top: 1.5rem;\n}\n.text-left {\n text-align: left;\n}\n.text-center {\n text-align: center;\n}\n.text-right {\n text-align: right;\n}\n.align-middle {\n vertical-align: middle;\n}\n.font-mono {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;\n}\n.font-sans {\n font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";\n}\n.text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n.text-3xl {\n font-size: 1.875rem;\n line-height: 2.25rem;\n}\n.text-\\[0\\.8rem\\] {\n font-size: 0.8rem;\n}\n.text-\\[10px\\] {\n font-size: 10px;\n}\n.text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.text-xl {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.font-bold {\n font-weight: 700;\n}\n.font-medium {\n font-weight: 500;\n}\n.font-normal {\n font-weight: 400;\n}\n.font-semibold {\n font-weight: 600;\n}\n.uppercase {\n text-transform: uppercase;\n}\n.capitalize {\n text-transform: capitalize;\n}\n.italic {\n font-style: italic;\n}\n.leading-5 {\n line-height: 1.25rem;\n}\n.leading-none {\n line-height: 1;\n}\n.leading-relaxed {\n line-height: 1.625;\n}\n.tracking-tight {\n letter-spacing: -0.025em;\n}\n.tracking-wide {\n letter-spacing: 0.025em;\n}\n.tracking-wider {\n letter-spacing: 0.05em;\n}\n.text-accent-foreground {\n color: var(--accent-foreground);\n}\n.text-amber-600 {\n --tw-text-opacity: 1;\n color: rgb(217 119 6 / var(--tw-text-opacity, 1));\n}\n.text-blue-500 {\n --tw-text-opacity: 1;\n color: rgb(59 130 246 / var(--tw-text-opacity, 1));\n}\n.text-blue-600 {\n --tw-text-opacity: 1;\n color: rgb(37 99 235 / var(--tw-text-opacity, 1));\n}\n.text-blue-700 {\n --tw-text-opacity: 1;\n color: rgb(29 78 216 / var(--tw-text-opacity, 1));\n}\n.text-blue-800 {\n --tw-text-opacity: 1;\n color: rgb(30 64 175 / var(--tw-text-opacity, 1));\n}\n.text-card-foreground {\n color: var(--card-foreground);\n}\n.text-destructive {\n color: var(--destructive);\n}\n.text-emerald-400 {\n --tw-text-opacity: 1;\n color: rgb(52 211 153 / var(--tw-text-opacity, 1));\n}\n.text-emerald-600 {\n --tw-text-opacity: 1;\n color: rgb(5 150 105 / var(--tw-text-opacity, 1));\n}\n.text-emerald-700 {\n --tw-text-opacity: 1;\n color: rgb(4 120 87 / var(--tw-text-opacity, 1));\n}\n.text-foreground {\n color: var(--foreground);\n}\n.text-gray-200 {\n --tw-text-opacity: 1;\n color: rgb(229 231 235 / var(--tw-text-opacity, 1));\n}\n.text-gray-300 {\n --tw-text-opacity: 1;\n color: rgb(209 213 219 / var(--tw-text-opacity, 1));\n}\n.text-gray-400 {\n --tw-text-opacity: 1;\n color: rgb(156 163 175 / var(--tw-text-opacity, 1));\n}\n.text-gray-50 {\n --tw-text-opacity: 1;\n color: rgb(249 250 251 / var(--tw-text-opacity, 1));\n}\n.text-gray-500 {\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity, 1));\n}\n.text-gray-600 {\n --tw-text-opacity: 1;\n color: rgb(75 85 99 / var(--tw-text-opacity, 1));\n}\n.text-gray-700 {\n --tw-text-opacity: 1;\n color: rgb(55 65 81 / var(--tw-text-opacity, 1));\n}\n.text-gray-800 {\n --tw-text-opacity: 1;\n color: rgb(31 41 55 / var(--tw-text-opacity, 1));\n}\n.text-gray-900 {\n --tw-text-opacity: 1;\n color: rgb(17 24 39 / var(--tw-text-opacity, 1));\n}\n.text-green-600 {\n --tw-text-opacity: 1;\n color: rgb(22 163 74 / var(--tw-text-opacity, 1));\n}\n.text-green-700 {\n --tw-text-opacity: 1;\n color: rgb(21 128 61 / var(--tw-text-opacity, 1));\n}\n.text-green-800 {\n --tw-text-opacity: 1;\n color: rgb(22 101 52 / var(--tw-text-opacity, 1));\n}\n.text-indigo-100 {\n --tw-text-opacity: 1;\n color: rgb(224 231 255 / var(--tw-text-opacity, 1));\n}\n.text-indigo-500 {\n --tw-text-opacity: 1;\n color: rgb(99 102 241 / var(--tw-text-opacity, 1));\n}\n.text-indigo-600 {\n --tw-text-opacity: 1;\n color: rgb(79 70 229 / var(--tw-text-opacity, 1));\n}\n.text-indigo-800 {\n --tw-text-opacity: 1;\n color: rgb(55 48 163 / var(--tw-text-opacity, 1));\n}\n.text-indigo-900 {\n --tw-text-opacity: 1;\n color: rgb(49 46 129 / var(--tw-text-opacity, 1));\n}\n.text-muted-foreground {\n color: var(--muted-foreground);\n}\n.text-orange-700 {\n --tw-text-opacity: 1;\n color: rgb(194 65 12 / var(--tw-text-opacity, 1));\n}\n.text-popover-foreground {\n color: var(--popover-foreground);\n}\n.text-primary {\n color: var(--primary);\n}\n.text-primary-foreground {\n color: var(--primary-foreground);\n}\n.text-red-400 {\n --tw-text-opacity: 1;\n color: rgb(248 113 113 / var(--tw-text-opacity, 1));\n}\n.text-red-500 {\n --tw-text-opacity: 1;\n color: rgb(239 68 68 / var(--tw-text-opacity, 1));\n}\n.text-red-500\\/50 {\n color: rgb(239 68 68 / 0.5);\n}\n.text-red-600 {\n --tw-text-opacity: 1;\n color: rgb(220 38 38 / var(--tw-text-opacity, 1));\n}\n.text-red-700 {\n --tw-text-opacity: 1;\n color: rgb(185 28 28 / var(--tw-text-opacity, 1));\n}\n.text-red-800 {\n --tw-text-opacity: 1;\n color: rgb(153 27 27 / var(--tw-text-opacity, 1));\n}\n.text-rose-600 {\n --tw-text-opacity: 1;\n color: rgb(225 29 72 / var(--tw-text-opacity, 1));\n}\n.text-rose-700 {\n --tw-text-opacity: 1;\n color: rgb(190 18 60 / var(--tw-text-opacity, 1));\n}\n.text-secondary-foreground {\n color: var(--secondary-foreground);\n}\n.text-sidebar-foreground {\n color: var(--sidebar-foreground);\n}\n.text-sky-500 {\n --tw-text-opacity: 1;\n color: rgb(14 165 233 / var(--tw-text-opacity, 1));\n}\n.text-sky-600 {\n --tw-text-opacity: 1;\n color: rgb(2 132 199 / var(--tw-text-opacity, 1));\n}\n.text-sky-700 {\n --tw-text-opacity: 1;\n color: rgb(3 105 161 / var(--tw-text-opacity, 1));\n}\n.text-sky-800 {\n --tw-text-opacity: 1;\n color: rgb(7 89 133 / var(--tw-text-opacity, 1));\n}\n.text-slate-400 {\n --tw-text-opacity: 1;\n color: rgb(148 163 184 / var(--tw-text-opacity, 1));\n}\n.text-slate-500 {\n --tw-text-opacity: 1;\n color: rgb(100 116 139 / var(--tw-text-opacity, 1));\n}\n.text-slate-600 {\n --tw-text-opacity: 1;\n color: rgb(71 85 105 / var(--tw-text-opacity, 1));\n}\n.text-slate-700 {\n --tw-text-opacity: 1;\n color: rgb(51 65 85 / var(--tw-text-opacity, 1));\n}\n.text-slate-800 {\n --tw-text-opacity: 1;\n color: rgb(30 41 59 / var(--tw-text-opacity, 1));\n}\n.text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n.text-white\\/80 {\n color: rgb(255 255 255 / 0.8);\n}\n.text-yellow-500 {\n --tw-text-opacity: 1;\n color: rgb(234 179 8 / var(--tw-text-opacity, 1));\n}\n.text-yellow-800 {\n --tw-text-opacity: 1;\n color: rgb(133 77 14 / var(--tw-text-opacity, 1));\n}\n.underline-offset-4 {\n text-underline-offset: 4px;\n}\n.placeholder-gray-500::placeholder {\n --tw-placeholder-opacity: 1;\n color: rgb(107 114 128 / var(--tw-placeholder-opacity, 1));\n}\n.opacity-0 {\n opacity: 0;\n}\n.opacity-100 {\n opacity: 1;\n}\n.opacity-50 {\n opacity: 0.5;\n}\n.opacity-70 {\n opacity: 0.7;\n}\n.opacity-75 {\n opacity: 0.75;\n}\n.opacity-80 {\n opacity: 0.8;\n}\n.shadow {\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-\\[0_0_0_1px_hsl\\(var\\(--sidebar-border\\)\\)\\] {\n --tw-shadow: 0 0 0 1px hsl(var(--sidebar-border));\n --tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-inner {\n --tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-lg {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-md {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-none {\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-sm {\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-xl {\n --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.outline-none {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.outline {\n outline-style: solid;\n}\n.ring-1 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n.ring-gray-200 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(229 231 235 / var(--tw-ring-opacity, 1));\n}\n.ring-sidebar-ring {\n --tw-ring-color: var(--sidebar-ring);\n}\n.ring-sky-50 {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(240 249 255 / var(--tw-ring-opacity, 1));\n}\n.ring-offset-background {\n --tw-ring-offset-color: var(--background);\n}\n.drop-shadow-md {\n --tw-drop-shadow: drop-shadow(0 4px 3px rgb(0 0 0 / 0.07)) drop-shadow(0 2px 2px rgb(0 0 0 / 0.06));\n 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);\n}\n.filter {\n 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);\n}\n.backdrop-blur-md {\n --tw-backdrop-blur: blur(12px);\n -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);\n 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);\n}\n.backdrop-blur-sm {\n --tw-backdrop-blur: blur(4px);\n -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);\n 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);\n}\n.transition {\n transition-property: color, background-color, border-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-text-decoration-color, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-text-decoration-color, -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-\\[left\\2c right\\2c width\\] {\n transition-property: left,right,width;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-\\[width\\2c height\\2c padding\\] {\n transition-property: width,height,padding;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-\\[width\\] {\n transition-property: width;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-all {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-colors {\n transition-property: color, background-color, border-color, fill, stroke, -webkit-text-decoration-color;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-opacity {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-shadow {\n transition-property: box-shadow;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-transform {\n transition-property: transform;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.duration-150 {\n transition-duration: 150ms;\n}\n.duration-200 {\n transition-duration: 200ms;\n}\n.duration-300 {\n transition-duration: 300ms;\n}\n.duration-500 {\n transition-duration: 500ms;\n}\n.duration-700 {\n transition-duration: 700ms;\n}\n.ease-in-out {\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ease-linear {\n transition-timing-function: linear;\n}\n@keyframes enter {\n\n from {\n opacity: var(--tw-enter-opacity, 1);\n 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));\n }\n}\n@keyframes exit {\n\n to {\n opacity: var(--tw-exit-opacity, 1);\n 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));\n }\n}\n.animate-in {\n animation-name: enter;\n animation-duration: 150ms;\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n}\n.fade-in {\n --tw-enter-opacity: 0;\n}\n.slide-in-from-bottom-4 {\n --tw-enter-translate-y: 1rem;\n}\n.slide-in-from-top-2 {\n --tw-enter-translate-y: -0.5rem;\n}\n.duration-150 {\n animation-duration: 150ms;\n}\n.duration-200 {\n animation-duration: 200ms;\n}\n.duration-300 {\n animation-duration: 300ms;\n}\n.duration-500 {\n animation-duration: 500ms;\n}\n.duration-700 {\n animation-duration: 700ms;\n}\n.ease-in-out {\n animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n}\n.ease-linear {\n animation-timing-function: linear;\n}\n.\\[--cell-size\\:--spacing\\(8\\)\\] {\n --cell-size: var(--spacing(8));\n}\n\n@custom-variant dark (&:is(.dark *));\n\n:root {\n --background: oklch(1 0 0);\n --foreground: oklch(0.145 0 0);\n --card: oklch(1 0 0);\n --card-foreground: oklch(0.145 0 0);\n --popover: oklch(1 0 0);\n --popover-foreground: oklch(0.145 0 0);\n --primary: oklch(0.205 0 0);\n --primary-foreground: oklch(0.985 0 0);\n --secondary: oklch(0.97 0 0);\n --secondary-foreground: oklch(0.205 0 0);\n --muted: oklch(0.97 0 0);\n --muted-foreground: oklch(0.556 0 0);\n --accent: oklch(0.97 0 0);\n --accent-foreground: oklch(0.205 0 0);\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 210 40% 98%;\n --border: oklch(0.922 0 0);\n --input: oklch(0.922 0 0);\n --ring: oklch(0.708 0 0);\n --chart-1: oklch(0.646 0.222 41.116);\n --chart-2: oklch(0.6 0.118 184.704);\n --chart-3: oklch(0.398 0.07 227.392);\n --chart-4: oklch(0.828 0.189 84.429);\n --chart-5: oklch(0.769 0.188 70.08);\n --radius: 0.625rem;\n --sidebar: oklch(0.985 0 0);\n --sidebar-foreground: oklch(0.145 0 0);\n --sidebar-primary: oklch(0.205 0 0);\n --sidebar-primary-foreground: oklch(0.985 0 0);\n --sidebar-accent: oklch(0.97 0 0);\n --sidebar-accent-foreground: oklch(0.205 0 0);\n --sidebar-border: oklch(0.922 0 0);\n --sidebar-ring: oklch(0.708 0 0);\n}\n\n.dark {\n --background: oklch(0.145 0 0);\n --foreground: oklch(0.985 0 0);\n --card: oklch(0.145 0 0);\n --card-foreground: oklch(0.985 0 0);\n --popover: oklch(0.145 0 0);\n --popover-foreground: oklch(0.985 0 0);\n --primary: oklch(0.985 0 0);\n --primary-foreground: oklch(0.205 0 0);\n --secondary: oklch(0.269 0 0);\n --secondary-foreground: oklch(0.985 0 0);\n --muted: oklch(0.269 0 0);\n --muted-foreground: oklch(0.708 0 0);\n --accent: oklch(0.269 0 0);\n --accent-foreground: oklch(0.985 0 0);\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 210 40% 98%;\n --border: oklch(0.269 0 0);\n --input: oklch(0.269 0 0);\n --ring: oklch(0.439 0 0);\n --chart-1: oklch(0.488 0.243 264.376);\n --chart-2: oklch(0.696 0.17 162.48);\n --chart-3: oklch(0.769 0.188 70.08);\n --chart-4: oklch(0.627 0.265 303.9);\n --chart-5: oklch(0.645 0.246 16.439);\n --sidebar: oklch(0.205 0 0);\n --sidebar-foreground: oklch(0.985 0 0);\n --sidebar-primary: oklch(0.488 0.243 264.376);\n --sidebar-primary-foreground: oklch(0.985 0 0);\n --sidebar-accent: oklch(0.269 0 0);\n --sidebar-accent-foreground: oklch(0.985 0 0);\n --sidebar-border: oklch(0.269 0 0);\n --sidebar-ring: oklch(0.439 0 0);\n}\n\n:root, .dark {\n --color-background: var(--background);\n --color-foreground: var(--foreground);\n --color-card: var(--card);\n --color-card-foreground: var(--card-foreground);\n --color-popover: var(--popover);\n --color-popover-foreground: var(--popover-foreground);\n --color-primary: var(--primary);\n --color-primary-foreground: var(--primary-foreground);\n --color-secondary: var(--secondary);\n --color-secondary-foreground: var(--secondary-foreground);\n --color-muted: var(--muted);\n --color-muted-foreground: var(--muted-foreground);\n --color-accent: var(--accent);\n --color-accent-foreground: var(--accent-foreground);\n --color-destructive: var(--destructive);\n --color-destructive-foreground: var(--destructive-foreground);\n --color-border: var(--border);\n --color-input: var(--input);\n --color-ring: var(--ring);\n --color-chart-1: var(--chart-1);\n --color-chart-2: var(--chart-2);\n --color-chart-3: var(--chart-3);\n --color-chart-4: var(--chart-4);\n --color-chart-5: var(--chart-5);\n --radius-sm: calc(var(--radius) - 4px);\n --radius-md: calc(var(--radius) - 2px);\n --radius-lg: var(--radius);\n --radius-xl: calc(var(--radius) + 4px);\n --color-sidebar: var(--sidebar);\n --color-sidebar-foreground: var(--sidebar-foreground);\n --color-sidebar-primary: var(--sidebar-primary);\n --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);\n --color-sidebar-accent: var(--sidebar-accent);\n --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);\n --color-sidebar-border: var(--sidebar-border);\n --color-sidebar-ring: var(--sidebar-ring);\n}\n\n.placeholder\\:text-muted-foreground::placeholder {\n color: var(--muted-foreground);\n}\n\n.last\\:mb-2:last-child {\n margin-bottom: 0.5rem;\n}\n\n.last\\:border-b-0:last-child {\n border-bottom-width: 0px;\n}\n\n.even\\:bg-gray-50:nth-child(even) {\n --tw-bg-opacity: 1;\n background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));\n}\n\n.hover\\:scale-\\[1\\.02\\]:hover {\n --tw-scale-x: 1.02;\n --tw-scale-y: 1.02;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.hover\\:border-gray-400:hover {\n --tw-border-opacity: 1;\n border-color: rgb(156 163 175 / var(--tw-border-opacity, 1));\n}\n\n.hover\\:border-indigo-300:hover {\n --tw-border-opacity: 1;\n border-color: rgb(165 180 252 / var(--tw-border-opacity, 1));\n}\n\n.hover\\:border-sky-400:hover {\n --tw-border-opacity: 1;\n border-color: rgb(56 189 248 / var(--tw-border-opacity, 1));\n}\n\n.hover\\:border-transparent:hover {\n border-color: transparent;\n}\n\n.hover\\:bg-accent:hover {\n background-color: var(--accent);\n}\n\n.hover\\:bg-black:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));\n}\n\n.hover\\:bg-blue-800:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(30 64 175 / var(--tw-bg-opacity, 1));\n}\n\n.hover\\:bg-emerald-50\\/60:hover {\n background-color: rgb(236 253 245 / 0.6);\n}\n\n.hover\\:bg-gray-100:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));\n}\n\n.hover\\:bg-gray-50:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));\n}\n\n.hover\\:bg-gray-50\\/80:hover {\n background-color: rgb(249 250 251 / 0.8);\n}\n\n.hover\\:bg-green-100:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1));\n}\n\n.hover\\:bg-indigo-100:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(224 231 255 / var(--tw-bg-opacity, 1));\n}\n\n.hover\\:bg-indigo-50:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(238 242 255 / var(--tw-bg-opacity, 1));\n}\n\n.hover\\:bg-indigo-700:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(67 56 202 / var(--tw-bg-opacity, 1));\n}\n\n.hover\\:bg-red-100:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1));\n}\n\n.hover\\:bg-red-50\\/60:hover {\n background-color: rgb(254 242 242 / 0.6);\n}\n\n.hover\\:bg-red-600\\/70:hover {\n background-color: rgb(220 38 38 / 0.7);\n}\n\n.hover\\:bg-sidebar-accent:hover {\n background-color: var(--sidebar-accent);\n}\n\n.hover\\:bg-sky-100:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(224 242 254 / var(--tw-bg-opacity, 1));\n}\n\n.hover\\:bg-sky-50:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(240 249 255 / var(--tw-bg-opacity, 1));\n}\n\n.hover\\:bg-sky-500:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(14 165 233 / var(--tw-bg-opacity, 1));\n}\n\n.hover\\:bg-sky-600:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(2 132 199 / var(--tw-bg-opacity, 1));\n}\n\n.hover\\:bg-sky-700:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(3 105 161 / var(--tw-bg-opacity, 1));\n}\n\n.hover\\:bg-slate-100:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1));\n}\n\n.hover\\:bg-slate-50:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));\n}\n\n.hover\\:bg-transparent:hover {\n background-color: transparent;\n}\n\n.hover\\:bg-white:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n}\n\n.hover\\:bg-white\\/20:hover {\n background-color: rgb(255 255 255 / 0.2);\n}\n\n.hover\\:text-accent-foreground:hover {\n color: var(--accent-foreground);\n}\n\n.hover\\:text-gray-100:hover {\n --tw-text-opacity: 1;\n color: rgb(243 244 246 / var(--tw-text-opacity, 1));\n}\n\n.hover\\:text-gray-600:hover {\n --tw-text-opacity: 1;\n color: rgb(75 85 99 / var(--tw-text-opacity, 1));\n}\n\n.hover\\:text-gray-700:hover {\n --tw-text-opacity: 1;\n color: rgb(55 65 81 / var(--tw-text-opacity, 1));\n}\n\n.hover\\:text-gray-800:hover {\n --tw-text-opacity: 1;\n color: rgb(31 41 55 / var(--tw-text-opacity, 1));\n}\n\n.hover\\:text-gray-900:hover {\n --tw-text-opacity: 1;\n color: rgb(17 24 39 / var(--tw-text-opacity, 1));\n}\n\n.hover\\:text-green-900:hover {\n --tw-text-opacity: 1;\n color: rgb(20 83 45 / var(--tw-text-opacity, 1));\n}\n\n.hover\\:text-indigo-600:hover {\n --tw-text-opacity: 1;\n color: rgb(79 70 229 / var(--tw-text-opacity, 1));\n}\n\n.hover\\:text-indigo-700:hover {\n --tw-text-opacity: 1;\n color: rgb(67 56 202 / var(--tw-text-opacity, 1));\n}\n\n.hover\\:text-indigo-900:hover {\n --tw-text-opacity: 1;\n color: rgb(49 46 129 / var(--tw-text-opacity, 1));\n}\n\n.hover\\:text-red-400:hover {\n --tw-text-opacity: 1;\n color: rgb(248 113 113 / var(--tw-text-opacity, 1));\n}\n\n.hover\\:text-red-900:hover {\n --tw-text-opacity: 1;\n color: rgb(127 29 29 / var(--tw-text-opacity, 1));\n}\n\n.hover\\:text-sidebar-accent-foreground:hover {\n color: var(--sidebar-accent-foreground);\n}\n\n.hover\\:text-sky-500:hover {\n --tw-text-opacity: 1;\n color: rgb(14 165 233 / var(--tw-text-opacity, 1));\n}\n\n.hover\\:text-sky-800:hover {\n --tw-text-opacity: 1;\n color: rgb(7 89 133 / var(--tw-text-opacity, 1));\n}\n\n.hover\\:text-slate-800:hover {\n --tw-text-opacity: 1;\n color: rgb(30 41 59 / var(--tw-text-opacity, 1));\n}\n\n.hover\\:text-white:hover {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n\n.hover\\:text-yellow-700:hover {\n --tw-text-opacity: 1;\n color: rgb(161 98 7 / var(--tw-text-opacity, 1));\n}\n\n.hover\\:underline:hover {\n -webkit-text-decoration-line: underline;\n text-decoration-line: underline;\n}\n\n.hover\\:opacity-100:hover {\n opacity: 1;\n}\n\n.hover\\:shadow-2xl:hover {\n --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);\n --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.hover\\:shadow-\\[0_0_0_1px_hsl\\(var\\(--sidebar-accent\\)\\)\\]:hover {\n --tw-shadow: 0 0 0 1px hsl(var(--sidebar-accent));\n --tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.hover\\:shadow-lg:hover {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.hover\\:shadow-md:hover {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.hover\\:shadow-xl:hover {\n --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.hover\\:ring-2:hover {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n.hover\\:ring-indigo-500:hover {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity, 1));\n}\n\n.hover\\:ring-sky-500:hover {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(14 165 233 / var(--tw-ring-opacity, 1));\n}\n\n.focus\\:border-indigo-400:focus {\n --tw-border-opacity: 1;\n border-color: rgb(129 140 248 / var(--tw-border-opacity, 1));\n}\n\n.focus\\:border-indigo-500:focus {\n --tw-border-opacity: 1;\n border-color: rgb(99 102 241 / var(--tw-border-opacity, 1));\n}\n\n.focus\\:border-sky-500:focus {\n --tw-border-opacity: 1;\n border-color: rgb(14 165 233 / var(--tw-border-opacity, 1));\n}\n\n.focus\\:bg-gray-100:focus {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));\n}\n\n.focus\\:bg-white:focus {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n}\n\n.focus\\:text-accent-foreground:focus {\n color: var(--accent-foreground);\n}\n\n.focus\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n\n.focus\\:ring-0:focus {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n.focus\\:ring-1:focus {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n.focus\\:ring-2:focus {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n.focus\\:ring-blue-500:focus {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1));\n}\n\n.focus\\:ring-indigo-100:focus {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(224 231 255 / var(--tw-ring-opacity, 1));\n}\n\n.focus\\:ring-indigo-500:focus {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity, 1));\n}\n\n.focus\\:ring-ring:focus {\n --tw-ring-color: var(--ring);\n}\n\n.focus\\:ring-offset-2:focus {\n --tw-ring-offset-width: 2px;\n}\n\n.focus-visible\\:border-ring:focus-visible {\n border-color: var(--ring);\n}\n\n.focus-visible\\:outline-none:focus-visible {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n\n.focus-visible\\:ring-1:focus-visible {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n.focus-visible\\:ring-2:focus-visible {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n.focus-visible\\:ring-\\[3px\\]:focus-visible {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n.focus-visible\\:ring-red-600\\/20:focus-visible {\n --tw-ring-color: rgb(220 38 38 / 0.2);\n}\n\n.focus-visible\\:ring-ring:focus-visible {\n --tw-ring-color: var(--ring);\n}\n\n.active\\:scale-95:active {\n --tw-scale-x: .95;\n --tw-scale-y: .95;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.active\\:bg-sidebar-accent:active {\n background-color: var(--sidebar-accent);\n}\n\n.active\\:text-sidebar-accent-foreground:active {\n color: var(--sidebar-accent-foreground);\n}\n\n.disabled\\:pointer-events-none:disabled {\n pointer-events: none;\n}\n\n.disabled\\:cursor-not-allowed:disabled {\n cursor: not-allowed;\n}\n\n.disabled\\:bg-gray-300:disabled {\n --tw-bg-opacity: 1;\n background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1));\n}\n\n.disabled\\:bg-slate-300:disabled {\n --tw-bg-opacity: 1;\n background-color: rgb(203 213 225 / var(--tw-bg-opacity, 1));\n}\n\n.disabled\\:text-gray-800:disabled {\n --tw-text-opacity: 1;\n color: rgb(31 41 55 / var(--tw-text-opacity, 1));\n}\n\n.disabled\\:text-slate-400:disabled {\n --tw-text-opacity: 1;\n color: rgb(148 163 184 / var(--tw-text-opacity, 1));\n}\n\n.disabled\\:text-slate-500:disabled {\n --tw-text-opacity: 1;\n color: rgb(100 116 139 / var(--tw-text-opacity, 1));\n}\n\n.disabled\\:opacity-50:disabled {\n opacity: 0.5;\n}\n\n.disabled\\:opacity-60:disabled {\n opacity: 0.6;\n}\n\n.disabled\\:opacity-70:disabled {\n opacity: 0.7;\n}\n\n.group:hover .group-hover\\:translate-x-1 {\n --tw-translate-x: 0.25rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.group:hover .group-hover\\:scale-110 {\n --tw-scale-x: 1.1;\n --tw-scale-y: 1.1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.group:hover .group-hover\\:bg-black\\/20 {\n background-color: rgb(0 0 0 / 0.2);\n}\n\n.group:hover .group-hover\\:text-sky-600 {\n --tw-text-opacity: 1;\n color: rgb(2 132 199 / var(--tw-text-opacity, 1));\n}\n\n.group:hover .group-hover\\:text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n\n.group:hover .group-hover\\:opacity-100 {\n opacity: 1;\n}\n\n.group:hover .group-hover\\:shadow-md {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.peer:disabled ~ .peer-disabled\\:cursor-not-allowed {\n cursor: not-allowed;\n}\n\n.peer:disabled ~ .peer-disabled\\:opacity-70 {\n opacity: 0.7;\n}\n\n.has-\\[\\[data-variant\\=inset\\]\\]\\:bg-sidebar:has([data-variant=inset]) {\n background-color: var(--sidebar);\n}\n\n.group\\/menu-item:has([data-sidebar=menu-action]) .group-has-\\[\\[data-sidebar\\=menu-action\\]\\]\\/menu-item\\:pr-8 {\n padding-right: 2rem;\n}\n\n.aria-disabled\\:pointer-events-none[aria-disabled="true"] {\n pointer-events: none;\n}\n\n.aria-disabled\\:opacity-50[aria-disabled="true"] {\n opacity: 0.5;\n}\n\n.aria-selected\\:text-muted-foreground[aria-selected="true"] {\n color: var(--muted-foreground);\n}\n\n.data-\\[disabled\\]\\:pointer-events-none[data-disabled] {\n pointer-events: none;\n}\n\n.data-\\[side\\=bottom\\]\\:translate-y-1[data-side="bottom"] {\n --tw-translate-y: 0.25rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.data-\\[side\\=left\\]\\:-translate-x-1[data-side="left"] {\n --tw-translate-x: -0.25rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.data-\\[side\\=right\\]\\:translate-x-1[data-side="right"] {\n --tw-translate-x: 0.25rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.data-\\[side\\=top\\]\\:-translate-y-1[data-side="top"] {\n --tw-translate-y: -0.25rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.data-\\[range-end\\=true\\]\\:rounded-md[data-range-end="true"] {\n border-radius: var(--radius-md);\n}\n\n.data-\\[range-middle\\=true\\]\\:rounded-none[data-range-middle="true"] {\n border-radius: 0px;\n}\n\n.data-\\[range-start\\=true\\]\\:rounded-md[data-range-start="true"] {\n border-radius: var(--radius-md);\n}\n\n.data-\\[selected\\=true\\]\\:rounded-none[data-selected="true"] {\n border-radius: 0px;\n}\n\n.data-\\[range-end\\=true\\]\\:rounded-r-md[data-range-end="true"] {\n border-top-right-radius: var(--radius-md);\n border-bottom-right-radius: var(--radius-md);\n}\n\n.data-\\[range-start\\=true\\]\\:rounded-l-md[data-range-start="true"] {\n border-top-left-radius: var(--radius-md);\n border-bottom-left-radius: var(--radius-md);\n}\n\n.data-\\[active\\=true\\]\\:bg-sidebar-accent[data-active="true"] {\n background-color: var(--sidebar-accent);\n}\n\n.data-\\[range-end\\=true\\]\\:bg-primary[data-range-end="true"] {\n background-color: var(--primary);\n}\n\n.data-\\[range-middle\\=true\\]\\:bg-accent[data-range-middle="true"] {\n background-color: var(--accent);\n}\n\n.data-\\[range-start\\=true\\]\\:bg-primary[data-range-start="true"] {\n background-color: var(--primary);\n}\n\n.data-\\[selected-single\\=true\\]\\:bg-primary[data-selected-single="true"] {\n background-color: var(--primary);\n}\n\n.data-\\[state\\=open\\]\\:bg-accent[data-state="open"] {\n background-color: var(--accent);\n}\n\n.data-\\[state\\=open\\]\\:bg-secondary[data-state="open"] {\n background-color: var(--secondary);\n}\n\n.data-\\[active\\=true\\]\\:font-medium[data-active="true"] {\n font-weight: 500;\n}\n\n.data-\\[active\\=true\\]\\:text-sidebar-accent-foreground[data-active="true"] {\n color: var(--sidebar-accent-foreground);\n}\n\n.data-\\[placeholder\\]\\:text-muted-foreground[data-placeholder] {\n color: var(--muted-foreground);\n}\n\n.data-\\[range-end\\=true\\]\\:text-primary-foreground[data-range-end="true"] {\n color: var(--primary-foreground);\n}\n\n.data-\\[range-middle\\=true\\]\\:text-accent-foreground[data-range-middle="true"] {\n color: var(--accent-foreground);\n}\n\n.data-\\[range-start\\=true\\]\\:text-primary-foreground[data-range-start="true"] {\n color: var(--primary-foreground);\n}\n\n.data-\\[selected-single\\=true\\]\\:text-primary-foreground[data-selected-single="true"] {\n color: var(--primary-foreground);\n}\n\n.data-\\[state\\=open\\]\\:text-muted-foreground[data-state="open"] {\n color: var(--muted-foreground);\n}\n\n.data-\\[disabled\\]\\:opacity-50[data-disabled] {\n opacity: 0.5;\n}\n\n.data-\\[state\\=closed\\]\\:duration-300[data-state="closed"] {\n transition-duration: 300ms;\n}\n\n.data-\\[state\\=open\\]\\:duration-500[data-state="open"] {\n transition-duration: 500ms;\n}\n\n.data-\\[state\\=open\\]\\:animate-in[data-state="open"] {\n animation-name: enter;\n animation-duration: 150ms;\n --tw-enter-opacity: initial;\n --tw-enter-scale: initial;\n --tw-enter-rotate: initial;\n --tw-enter-translate-x: initial;\n --tw-enter-translate-y: initial;\n}\n\n.data-\\[state\\=closed\\]\\:animate-out[data-state="closed"] {\n animation-name: exit;\n animation-duration: 150ms;\n --tw-exit-opacity: initial;\n --tw-exit-scale: initial;\n --tw-exit-rotate: initial;\n --tw-exit-translate-x: initial;\n --tw-exit-translate-y: initial;\n}\n\n.data-\\[state\\=closed\\]\\:fade-out-0[data-state="closed"] {\n --tw-exit-opacity: 0;\n}\n\n.data-\\[state\\=open\\]\\:fade-in-0[data-state="open"] {\n --tw-enter-opacity: 0;\n}\n\n.data-\\[state\\=closed\\]\\:zoom-out-95[data-state="closed"] {\n --tw-exit-scale: .95;\n}\n\n.data-\\[state\\=open\\]\\:zoom-in-95[data-state="open"] {\n --tw-enter-scale: .95;\n}\n\n.data-\\[side\\=bottom\\]\\:slide-in-from-top-2[data-side="bottom"] {\n --tw-enter-translate-y: -0.5rem;\n}\n\n.data-\\[side\\=left\\]\\:slide-in-from-right-2[data-side="left"] {\n --tw-enter-translate-x: 0.5rem;\n}\n\n.data-\\[side\\=right\\]\\:slide-in-from-left-2[data-side="right"] {\n --tw-enter-translate-x: -0.5rem;\n}\n\n.data-\\[side\\=top\\]\\:slide-in-from-bottom-2[data-side="top"] {\n --tw-enter-translate-y: 0.5rem;\n}\n\n.data-\\[state\\=closed\\]\\:slide-out-to-bottom[data-state="closed"] {\n --tw-exit-translate-y: 100%;\n}\n\n.data-\\[state\\=closed\\]\\:slide-out-to-left[data-state="closed"] {\n --tw-exit-translate-x: -100%;\n}\n\n.data-\\[state\\=closed\\]\\:slide-out-to-left-1\\/2[data-state="closed"] {\n --tw-exit-translate-x: -50%;\n}\n\n.data-\\[state\\=closed\\]\\:slide-out-to-right[data-state="closed"] {\n --tw-exit-translate-x: 100%;\n}\n\n.data-\\[state\\=closed\\]\\:slide-out-to-top[data-state="closed"] {\n --tw-exit-translate-y: -100%;\n}\n\n.data-\\[state\\=closed\\]\\:slide-out-to-top-\\[48\\%\\][data-state="closed"] {\n --tw-exit-translate-y: -48%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-bottom[data-state="open"] {\n --tw-enter-translate-y: 100%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-left[data-state="open"] {\n --tw-enter-translate-x: -100%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-left-1\\/2[data-state="open"] {\n --tw-enter-translate-x: -50%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-right[data-state="open"] {\n --tw-enter-translate-x: 100%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-top[data-state="open"] {\n --tw-enter-translate-y: -100%;\n}\n\n.data-\\[state\\=open\\]\\:slide-in-from-top-\\[48\\%\\][data-state="open"] {\n --tw-enter-translate-y: -48%;\n}\n\n.data-\\[state\\=closed\\]\\:duration-300[data-state="closed"] {\n animation-duration: 300ms;\n}\n\n.data-\\[state\\=open\\]\\:duration-500[data-state="open"] {\n animation-duration: 500ms;\n}\n\n.data-\\[state\\=open\\]\\:hover\\:bg-sidebar-accent:hover[data-state="open"] {\n background-color: var(--sidebar-accent);\n}\n\n.data-\\[state\\=open\\]\\:hover\\:text-sidebar-accent-foreground:hover[data-state="open"] {\n color: var(--sidebar-accent-foreground);\n}\n\n.group\\/day[data-focused="true"] .group-data-\\[focused\\=true\\]\\/day\\:relative {\n position: relative;\n}\n\n.group[data-collapsible="offcanvas"] .group-data-\\[collapsible\\=offcanvas\\]\\:left-\\[calc\\(var\\(--sidebar-width\\)\\*-1\\)\\] {\n left: calc(var(--sidebar-width) * -1);\n}\n\n.group[data-collapsible="offcanvas"] .group-data-\\[collapsible\\=offcanvas\\]\\:right-\\[calc\\(var\\(--sidebar-width\\)\\*-1\\)\\] {\n right: calc(var(--sidebar-width) * -1);\n}\n\n.group\\/day[data-focused="true"] .group-data-\\[focused\\=true\\]\\/day\\:z-10 {\n z-index: 10;\n}\n\n.group[data-collapsible="icon"] .group-data-\\[collapsible\\=icon\\]\\:hidden {\n display: none;\n}\n\n.group[data-collapsible="icon"] .group-data-\\[collapsible\\=icon\\]\\:\\!size-8 {\n width: 2rem !important;\n height: 2rem !important;\n}\n\n.group[data-collapsible="icon"] .group-data-\\[collapsible\\=icon\\]\\:w-\\[--sidebar-width-icon\\] {\n width: var(--sidebar-width-icon);\n}\n\n.group[data-collapsible="icon"] .group-data-\\[collapsible\\=icon\\]\\:w-\\[calc\\(var\\(--sidebar-width-icon\\)_\\+_theme\\(spacing\\.4\\)\\)\\] {\n width: calc(var(--sidebar-width-icon) + 1rem);\n}\n\n.group[data-collapsible="icon"] .group-data-\\[collapsible\\=icon\\]\\:w-\\[calc\\(var\\(--sidebar-width-icon\\)_\\+_theme\\(spacing\\.4\\)_\\+2px\\)\\] {\n width: calc(var(--sidebar-width-icon) + 1rem + 2px);\n}\n\n.group[data-collapsible="offcanvas"] .group-data-\\[collapsible\\=offcanvas\\]\\:w-0 {\n width: 0px;\n}\n\n.group[data-side="right"] .group-data-\\[side\\=right\\]\\:rotate-180 {\n --tw-rotate: 180deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.group[data-collapsible="icon"] .group-data-\\[collapsible\\=icon\\]\\:overflow-hidden {\n overflow: hidden;\n}\n\n.group[data-variant="floating"] .group-data-\\[variant\\=floating\\]\\:rounded-lg {\n border-radius: var(--radius-lg);\n}\n\n.group[data-variant="floating"] .group-data-\\[variant\\=floating\\]\\:border {\n border-width: 1px;\n}\n\n.group[data-side="left"] .group-data-\\[side\\=left\\]\\:border-r {\n border-right-width: 1px;\n}\n\n.group[data-side="right"] .group-data-\\[side\\=right\\]\\:border-l {\n border-left-width: 1px;\n}\n\n.group\\/day[data-focused="true"] .group-data-\\[focused\\=true\\]\\/day\\:border-ring {\n border-color: var(--ring);\n}\n\n.group[data-variant="floating"] .group-data-\\[variant\\=floating\\]\\:border-sidebar-border {\n border-color: var(--sidebar-border);\n}\n\n.group[data-collapsible="icon"] .group-data-\\[collapsible\\=icon\\]\\:\\!p-0 {\n padding: 0px !important;\n}\n\n.group[data-collapsible="icon"] .group-data-\\[collapsible\\=icon\\]\\:\\!p-2 {\n padding: 0.5rem !important;\n}\n\n.group[data-variant="floating"] .group-data-\\[variant\\=floating\\]\\:shadow {\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.group\\/day[data-focused="true"] .group-data-\\[focused\\=true\\]\\/day\\:ring-\\[3px\\] {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n.dark\\:hover\\:text-accent-foreground:hover:is(.dark *) {\n color: var(--accent-foreground);\n}\n\n@media (min-width: 640px) {\n\n .sm\\:mt-0 {\n margin-top: 0px;\n }\n\n .sm\\:inline {\n display: inline;\n }\n\n .sm\\:h-64 {\n height: 16rem;\n }\n\n .sm\\:max-w-3xl {\n max-width: 48rem;\n }\n\n .sm\\:max-w-sm {\n max-width: 24rem;\n }\n\n .sm\\:grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n\n .sm\\:flex-row {\n flex-direction: row;\n }\n\n .sm\\:justify-end {\n justify-content: flex-end;\n }\n\n .sm\\:space-x-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.5rem * var(--tw-space-x-reverse));\n margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));\n }\n\n .sm\\:rounded-lg {\n border-radius: var(--radius-lg);\n }\n\n .sm\\:p-6 {\n padding: 1.5rem;\n }\n\n .sm\\:text-left {\n text-align: left;\n }\n\n .sm\\:text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n }\n}\n\n@media (min-width: 768px) {\n\n .md\\:mt-0 {\n margin-top: 0px;\n }\n\n .md\\:block {\n display: block;\n }\n\n .md\\:flex {\n display: flex;\n }\n\n .md\\:hidden {\n display: none;\n }\n\n .md\\:h-\\[70vh\\] {\n height: 70vh;\n }\n\n .md\\:w-auto {\n width: auto;\n }\n\n .md\\:grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n\n .md\\:grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n\n .md\\:grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n\n .md\\:flex-row {\n flex-direction: row;\n }\n\n .md\\:p-2 {\n padding: 0.5rem;\n }\n\n .md\\:p-8 {\n padding: 2rem;\n }\n\n .md\\:text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n }\n\n .md\\:text-3xl {\n font-size: 1.875rem;\n line-height: 2.25rem;\n }\n\n .md\\:text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n }\n\n .md\\:text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n }\n}\n\n@media (min-width: 1024px) {\n\n .lg\\:col-span-4 {\n grid-column: span 4 / span 4;\n }\n\n .lg\\:col-span-8 {\n grid-column: span 8 / span 8;\n }\n\n .lg\\:grid-cols-12 {\n grid-template-columns: repeat(12, minmax(0, 1fr));\n }\n\n .lg\\:grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n\n .lg\\:grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n\n .lg\\:grid-cols-5 {\n grid-template-columns: repeat(5, minmax(0, 1fr));\n }\n}\n\n.\\[\\&\\:\\:-webkit-media-controls-current-time-display\\]\\:font-mono::-webkit-media-controls-current-time-display {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;\n}\n\n.\\[\\&\\:\\:-webkit-media-controls-panel\\]\\:bg-gray-100::-webkit-media-controls-panel {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));\n}\n\n.\\[\\&\\:\\:-webkit-media-controls-time-remaining-display\\]\\:font-mono::-webkit-media-controls-time-remaining-display {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;\n}\n\n.\\[\\&\\:first-child\\[data-selected\\=true\\]_button\\]\\:rounded-l-md:first-child[data-selected=true] button {\n border-top-left-radius: var(--radius-md);\n border-bottom-left-radius: var(--radius-md);\n}\n\n.\\[\\&\\:last-child\\[data-selected\\=true\\]_button\\]\\:rounded-r-md:last-child[data-selected=true] button {\n border-top-right-radius: var(--radius-md);\n border-bottom-right-radius: var(--radius-md);\n}\n\n.\\[\\&\\>button\\]\\:hidden>button {\n display: none;\n}\n\n.\\[\\&\\>span\\:last-child\\]\\:truncate>span:last-child {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.\\[\\&\\>span\\]\\:line-clamp-1>span {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n}\n\n.\\[\\&\\>span\\]\\:text-xs>span {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n\n.\\[\\&\\>span\\]\\:opacity-70>span {\n opacity: 0.7;\n}\n\n.\\[\\&\\>svg\\]\\:size-3\\.5>svg {\n width: 0.875rem;\n height: 0.875rem;\n}\n\n.\\[\\&\\>svg\\]\\:size-4>svg {\n width: 1rem;\n height: 1rem;\n}\n\n.\\[\\&\\>svg\\]\\:shrink-0>svg {\n flex-shrink: 0;\n}\n\n.\\[\\&\\>svg\\]\\:text-muted-foreground>svg {\n color: var(--muted-foreground);\n}\n\n.\\[\\&\\[data-state\\=open\\]\\>svg\\]\\:rotate-180[data-state=open]>svg {\n --tw-rotate: 180deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.\\[\\&_svg\\]\\:pointer-events-none svg {\n pointer-events: none;\n}\n\n.\\[\\&_tr\\:last-child\\]\\:border-0 tr:last-child {\n border-width: 0px;\n}\n\n.\\[\\&_tr\\]\\:border-b tr {\n border-bottom-width: 1px;\n}\n\n[data-slot=card-content] .\\[\\[data-slot\\=card-content\\]_\\&\\]\\:bg-transparent {\n background-color: transparent;\n}\n\n[data-slot=popover-content] .\\[\\[data-slot\\=popover-content\\]_\\&\\]\\:bg-transparent {\n background-color: transparent;\n}\n',""]);const c=i},7640(){},3237(){},7492(){},1815(){},6671(){},2787(){}},r={};function o(e){var t=r[e];if(void 0!==t)return t.exports;var a=r[e]={id:e,exports:{}};return n[e].call(a.exports,a,a.exports,o),a.exports}o.m=n,e=[],o.O=(t,a,n,r)=>{if(!a){var l=1/0;for(d=0;d=r)&&Object.keys(o.O).every(e=>o.O[e](a[i]))?a.splice(i--,1):(s=!1,r0&&e[d-1][2]>r;d--)e[d]=e[d-1];e[d]=[a,n,r]},o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,o.t=function(e,n){if(1&n&&(e=this(e)),8&n)return e;if("object"==typeof e&&e){if(4&n&&e.__esModule)return e;if(16&n&&"function"==typeof e.then)return e}var r=Object.create(null);o.r(r);var l={};t=t||[null,a({}),a([]),a(a)];for(var s=2&n&&e;("object"==typeof s||"function"==typeof s)&&!~t.indexOf(s);s=a(s))Object.getOwnPropertyNames(s).forEach(t=>l[t]=()=>e[t]);return l.default=()=>e,o.d(r,l),r},o.d=(e,t)=>{for(var a in t)o.o(t,a)&&!o.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.p="/",(()=>{var e={792:0};o.O.j=t=>0===e[t];var t=(t,a)=>{var n,r,[l,s,i]=a,c=0;if(l.some(t=>0!==e[t])){for(n in s)o.o(s,n)&&(o.m[n]=s[n]);if(i)var d=i(o)}for(t&&t(a);co(8768));l=o.O(l)})();